Descent3/scripts/merc5.cpp

10687 lines
415 KiB
C++

/*
* Descent 3
* Copyright (C) 2024 Parallax Software
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/////////////////////////////////////////////////////////////////////
// D.A.L.L.A.S. Generated Level Script - DLL Source File
//
// Filename: Merc5.cpp
// Version: 3
/////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "osiris_import.h"
#include "osiris_common.h"
#include "DallasFuncs.cpp"
#include "module.h"
#ifdef __cplusplus
extern "C" {
#endif
DLLEXPORT char STDCALL InitializeDLL(tOSIRISModuleInit *func_list);
DLLEXPORT void STDCALL ShutdownDLL(void);
DLLEXPORT int STDCALL GetGOScriptID(const char *name, uint8_t is_door);
DLLEXPORT void STDCALLPTR CreateInstance(int id);
DLLEXPORT void STDCALL DestroyInstance(int id, void *ptr);
DLLEXPORT int16_t STDCALL CallInstanceEvent(int id, void *ptr, int event, tOSIRISEventInfo *data);
DLLEXPORT int STDCALL GetTriggerScriptID(int trigger_room, int trigger_face);
DLLEXPORT int STDCALL GetCOScriptList(int **list, int **id_list);
DLLEXPORT int STDCALL SaveRestoreState(void *file_ptr, uint8_t saving_state);
#ifdef __cplusplus
}
#endif
// =================
// Script ID Numbers
// =================
#define ID_LEVEL_0000 0x000
#define ID_CUSTOM_OBJECT_11C4 0x001
#define ID_CUSTOM_OBJECT_1088 0x002
#define ID_CUSTOM_OBJECT_09C6 0x003
#define ID_CUSTOM_OBJECT_11C5 0x004
#define ID_CUSTOM_OBJECT_09C7 0x005
#define ID_CUSTOM_OBJECT_182E 0x006
#define ID_CUSTOM_OBJECT_0A05 0x007
#define ID_CUSTOM_OBJECT_0A04 0x008
#define ID_CUSTOM_OBJECT_0A03 0x009
#define ID_CUSTOM_OBJECT_1A02 0x00a
#define ID_CUSTOM_OBJECT_1033 0x00b
#define ID_CUSTOM_OBJECT_1200 0x00c
#define ID_CUSTOM_OBJECT_1036 0x00d
#define ID_CUSTOM_OBJECT_1035 0x00e
#define ID_CUSTOM_OBJECT_3032 0x00f
#define ID_CUSTOM_OBJECT_1830 0x010
#define ID_CUSTOM_OBJECT_28A2 0x011
#define ID_CUSTOM_OBJECT_0A06 0x012
#define ID_CUSTOM_OBJECT_2885 0x013
#define ID_CUSTOM_OBJECT_107E 0x014
#define ID_CUSTOM_OBJECT_1185 0x015
#define ID_CUSTOM_OBJECT_21B2 0x016
#define ID_CUSTOM_OBJECT_09DE 0x017
#define ID_CUSTOM_OBJECT_09DD 0x018
#define ID_CUSTOM_OBJECT_09DC 0x019
#define ID_CUSTOM_OBJECT_21DA 0x01a
#define ID_CUSTOM_OBJECT_0899 0x01b
#define ID_CUSTOM_OBJECT_089A 0x01c
#define ID_CUSTOM_OBJECT_089B 0x01d
#define ID_CUSTOM_OBJECT_1098 0x01e
#define ID_CUSTOM_OBJECT_09A1 0x01f
#define ID_CUSTOM_OBJECT_19A0 0x020
#define ID_CUSTOM_OBJECT_09C9 0x021
#define ID_CUSTOM_OBJECT_1007 0x022
#define ID_CUSTOM_OBJECT_1016 0x023
#define ID_TRIGGER_000F 0x024
#define ID_TRIGGER_0000 0x025
#define ID_TRIGGER_0010 0x026
#define ID_TRIGGER_000E 0x027
#define ID_TRIGGER_000D 0x028
#define ID_TRIGGER_000B 0x029
#define ID_TRIGGER_0009 0x02a
#define ID_TRIGGER_000C 0x02b
#define ID_TRIGGER_000A 0x02c
#define ID_TRIGGER_0007 0x02d
#define ID_TRIGGER_0008 0x02e
// ========================
// Script Class Definitions
// ========================
class BaseScript {
public:
BaseScript();
~BaseScript();
virtual int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class LevelScript_0000 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_11C4 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_1088 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_09C6 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_11C5 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_09C7 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_182E : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_0A05 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_0A04 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_0A03 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_1A02 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_1033 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_1200 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_1036 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_1035 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_3032 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_1830 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_28A2 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_0A06 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_2885 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_107E : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_1185 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_21B2 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_09DE : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_09DD : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_09DC : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_21DA : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_0899 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_089A : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_089B : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_1098 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_09A1 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_19A0 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_09C9 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_1007 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_1016 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000F : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0000 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0010 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000E : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000D : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000B : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0009 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000C : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000A : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0007 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0008 : public BaseScript {
public:
int16_t CallEvent(int event, tOSIRISEventInfo *data);
};
// ======================
// Global Action Counters
// ======================
#define MAX_ACTION_CTR_VALUE 100000
int ScriptActionCtr_000 = 0;
int ScriptActionCtr_005 = 0;
int ScriptActionCtr_012 = 0;
int ScriptActionCtr_010 = 0;
int ScriptActionCtr_017 = 0;
int ScriptActionCtr_040 = 0;
int ScriptActionCtr_042 = 0;
int ScriptActionCtr_043 = 0;
int ScriptActionCtr_072 = 0;
int ScriptActionCtr_073 = 0;
int ScriptActionCtr_077 = 0;
int ScriptActionCtr_074 = 0;
int ScriptActionCtr_075 = 0;
int ScriptActionCtr_076 = 0;
int ScriptActionCtr_001 = 0;
int ScriptActionCtr_002 = 0;
int ScriptActionCtr_008 = 0;
int ScriptActionCtr_003 = 0;
int ScriptActionCtr_029 = 0;
int ScriptActionCtr_004 = 0;
int ScriptActionCtr_030 = 0;
int ScriptActionCtr_031 = 0;
int ScriptActionCtr_033 = 0;
int ScriptActionCtr_032 = 0;
int ScriptActionCtr_024 = 0;
int ScriptActionCtr_006 = 0;
int ScriptActionCtr_058 = 0;
int ScriptActionCtr_057 = 0;
int ScriptActionCtr_048 = 0;
int ScriptActionCtr_046 = 0;
int ScriptActionCtr_045 = 0;
int ScriptActionCtr_044 = 0;
int ScriptActionCtr_007 = 0;
int ScriptActionCtr_047 = 0;
int ScriptActionCtr_037 = 0;
int ScriptActionCtr_060 = 0;
int ScriptActionCtr_078 = 0;
int ScriptActionCtr_059 = 0;
int ScriptActionCtr_013 = 0;
int ScriptActionCtr_014 = 0;
int ScriptActionCtr_036 = 0;
int ScriptActionCtr_050 = 0;
int ScriptActionCtr_018 = 0;
int ScriptActionCtr_051 = 0;
int ScriptActionCtr_022 = 0;
int ScriptActionCtr_009 = 0;
int ScriptActionCtr_011 = 0;
int ScriptActionCtr_016 = 0;
int ScriptActionCtr_021 = 0;
int ScriptActionCtr_023 = 0;
int ScriptActionCtr_041 = 0;
int ScriptActionCtr_049 = 0;
int ScriptActionCtr_028 = 0;
int ScriptActionCtr_084 = 0;
int ScriptActionCtr_083 = 0;
int ScriptActionCtr_082 = 0;
int ScriptActionCtr_019 = 0;
int ScriptActionCtr_081 = 0;
int ScriptActionCtr_080 = 0;
int ScriptActionCtr_079 = 0;
int ScriptActionCtr_020 = 0;
int ScriptActionCtr_088 = 0;
int ScriptActionCtr_087 = 0;
int ScriptActionCtr_085 = 0;
int ScriptActionCtr_086 = 0;
int ScriptActionCtr_025 = 0;
int ScriptActionCtr_027 = 0;
int ScriptActionCtr_026 = 0;
int ScriptActionCtr_038 = 0;
int ScriptActionCtr_034 = 0;
int ScriptActionCtr_035 = 0;
int ScriptActionCtr_039 = 0;
int ScriptActionCtr_054 = 0;
int ScriptActionCtr_063 = 0;
int ScriptActionCtr_071 = 0;
int ScriptActionCtr_070 = 0;
int ScriptActionCtr_069 = 0;
int ScriptActionCtr_068 = 0;
int ScriptActionCtr_067 = 0;
int ScriptActionCtr_066 = 0;
int ScriptActionCtr_065 = 0;
int ScriptActionCtr_064 = 0;
int ScriptActionCtr_015 = 0;
// ========================================
// Function to Clear Global Action Counters
// ========================================
void ClearGlobalActionCtrs(void) {
ScriptActionCtr_000 = 0;
ScriptActionCtr_005 = 0;
ScriptActionCtr_012 = 0;
ScriptActionCtr_010 = 0;
ScriptActionCtr_017 = 0;
ScriptActionCtr_040 = 0;
ScriptActionCtr_042 = 0;
ScriptActionCtr_043 = 0;
ScriptActionCtr_072 = 0;
ScriptActionCtr_073 = 0;
ScriptActionCtr_077 = 0;
ScriptActionCtr_074 = 0;
ScriptActionCtr_075 = 0;
ScriptActionCtr_076 = 0;
ScriptActionCtr_001 = 0;
ScriptActionCtr_002 = 0;
ScriptActionCtr_008 = 0;
ScriptActionCtr_003 = 0;
ScriptActionCtr_029 = 0;
ScriptActionCtr_004 = 0;
ScriptActionCtr_030 = 0;
ScriptActionCtr_031 = 0;
ScriptActionCtr_033 = 0;
ScriptActionCtr_032 = 0;
ScriptActionCtr_024 = 0;
ScriptActionCtr_006 = 0;
ScriptActionCtr_058 = 0;
ScriptActionCtr_057 = 0;
ScriptActionCtr_048 = 0;
ScriptActionCtr_046 = 0;
ScriptActionCtr_045 = 0;
ScriptActionCtr_044 = 0;
ScriptActionCtr_007 = 0;
ScriptActionCtr_047 = 0;
ScriptActionCtr_037 = 0;
ScriptActionCtr_060 = 0;
ScriptActionCtr_078 = 0;
ScriptActionCtr_059 = 0;
ScriptActionCtr_013 = 0;
ScriptActionCtr_014 = 0;
ScriptActionCtr_036 = 0;
ScriptActionCtr_050 = 0;
ScriptActionCtr_018 = 0;
ScriptActionCtr_051 = 0;
ScriptActionCtr_022 = 0;
ScriptActionCtr_009 = 0;
ScriptActionCtr_011 = 0;
ScriptActionCtr_016 = 0;
ScriptActionCtr_021 = 0;
ScriptActionCtr_023 = 0;
ScriptActionCtr_041 = 0;
ScriptActionCtr_049 = 0;
ScriptActionCtr_028 = 0;
ScriptActionCtr_084 = 0;
ScriptActionCtr_083 = 0;
ScriptActionCtr_082 = 0;
ScriptActionCtr_019 = 0;
ScriptActionCtr_081 = 0;
ScriptActionCtr_080 = 0;
ScriptActionCtr_079 = 0;
ScriptActionCtr_020 = 0;
ScriptActionCtr_088 = 0;
ScriptActionCtr_087 = 0;
ScriptActionCtr_085 = 0;
ScriptActionCtr_086 = 0;
ScriptActionCtr_025 = 0;
ScriptActionCtr_027 = 0;
ScriptActionCtr_026 = 0;
ScriptActionCtr_038 = 0;
ScriptActionCtr_034 = 0;
ScriptActionCtr_035 = 0;
ScriptActionCtr_039 = 0;
ScriptActionCtr_054 = 0;
ScriptActionCtr_063 = 0;
ScriptActionCtr_071 = 0;
ScriptActionCtr_070 = 0;
ScriptActionCtr_069 = 0;
ScriptActionCtr_068 = 0;
ScriptActionCtr_067 = 0;
ScriptActionCtr_066 = 0;
ScriptActionCtr_065 = 0;
ScriptActionCtr_064 = 0;
ScriptActionCtr_015 = 0;
}
// ========================================
// Function to Save Global Action Counters
// ========================================
void SaveGlobalActionCtrs(void *file_ptr) {
File_WriteInt(ScriptActionCtr_000, file_ptr);
File_WriteInt(ScriptActionCtr_005, file_ptr);
File_WriteInt(ScriptActionCtr_012, file_ptr);
File_WriteInt(ScriptActionCtr_010, file_ptr);
File_WriteInt(ScriptActionCtr_017, file_ptr);
File_WriteInt(ScriptActionCtr_040, file_ptr);
File_WriteInt(ScriptActionCtr_042, file_ptr);
File_WriteInt(ScriptActionCtr_043, file_ptr);
File_WriteInt(ScriptActionCtr_072, file_ptr);
File_WriteInt(ScriptActionCtr_073, file_ptr);
File_WriteInt(ScriptActionCtr_077, file_ptr);
File_WriteInt(ScriptActionCtr_074, file_ptr);
File_WriteInt(ScriptActionCtr_075, file_ptr);
File_WriteInt(ScriptActionCtr_076, file_ptr);
File_WriteInt(ScriptActionCtr_001, file_ptr);
File_WriteInt(ScriptActionCtr_002, file_ptr);
File_WriteInt(ScriptActionCtr_008, file_ptr);
File_WriteInt(ScriptActionCtr_003, file_ptr);
File_WriteInt(ScriptActionCtr_029, file_ptr);
File_WriteInt(ScriptActionCtr_004, file_ptr);
File_WriteInt(ScriptActionCtr_030, file_ptr);
File_WriteInt(ScriptActionCtr_031, file_ptr);
File_WriteInt(ScriptActionCtr_033, file_ptr);
File_WriteInt(ScriptActionCtr_032, file_ptr);
File_WriteInt(ScriptActionCtr_024, file_ptr);
File_WriteInt(ScriptActionCtr_006, file_ptr);
File_WriteInt(ScriptActionCtr_058, file_ptr);
File_WriteInt(ScriptActionCtr_057, file_ptr);
File_WriteInt(ScriptActionCtr_048, file_ptr);
File_WriteInt(ScriptActionCtr_046, file_ptr);
File_WriteInt(ScriptActionCtr_045, file_ptr);
File_WriteInt(ScriptActionCtr_044, file_ptr);
File_WriteInt(ScriptActionCtr_007, file_ptr);
File_WriteInt(ScriptActionCtr_047, file_ptr);
File_WriteInt(ScriptActionCtr_037, file_ptr);
File_WriteInt(ScriptActionCtr_060, file_ptr);
File_WriteInt(ScriptActionCtr_078, file_ptr);
File_WriteInt(ScriptActionCtr_059, file_ptr);
File_WriteInt(ScriptActionCtr_013, file_ptr);
File_WriteInt(ScriptActionCtr_014, file_ptr);
File_WriteInt(ScriptActionCtr_036, file_ptr);
File_WriteInt(ScriptActionCtr_050, file_ptr);
File_WriteInt(ScriptActionCtr_018, file_ptr);
File_WriteInt(ScriptActionCtr_051, file_ptr);
File_WriteInt(ScriptActionCtr_022, file_ptr);
File_WriteInt(ScriptActionCtr_009, file_ptr);
File_WriteInt(ScriptActionCtr_011, file_ptr);
File_WriteInt(ScriptActionCtr_016, file_ptr);
File_WriteInt(ScriptActionCtr_021, file_ptr);
File_WriteInt(ScriptActionCtr_023, file_ptr);
File_WriteInt(ScriptActionCtr_041, file_ptr);
File_WriteInt(ScriptActionCtr_049, file_ptr);
File_WriteInt(ScriptActionCtr_028, file_ptr);
File_WriteInt(ScriptActionCtr_084, file_ptr);
File_WriteInt(ScriptActionCtr_083, file_ptr);
File_WriteInt(ScriptActionCtr_082, file_ptr);
File_WriteInt(ScriptActionCtr_019, file_ptr);
File_WriteInt(ScriptActionCtr_081, file_ptr);
File_WriteInt(ScriptActionCtr_080, file_ptr);
File_WriteInt(ScriptActionCtr_079, file_ptr);
File_WriteInt(ScriptActionCtr_020, file_ptr);
File_WriteInt(ScriptActionCtr_088, file_ptr);
File_WriteInt(ScriptActionCtr_087, file_ptr);
File_WriteInt(ScriptActionCtr_085, file_ptr);
File_WriteInt(ScriptActionCtr_086, file_ptr);
File_WriteInt(ScriptActionCtr_025, file_ptr);
File_WriteInt(ScriptActionCtr_027, file_ptr);
File_WriteInt(ScriptActionCtr_026, file_ptr);
File_WriteInt(ScriptActionCtr_038, file_ptr);
File_WriteInt(ScriptActionCtr_034, file_ptr);
File_WriteInt(ScriptActionCtr_035, file_ptr);
File_WriteInt(ScriptActionCtr_039, file_ptr);
File_WriteInt(ScriptActionCtr_054, file_ptr);
File_WriteInt(ScriptActionCtr_063, file_ptr);
File_WriteInt(ScriptActionCtr_071, file_ptr);
File_WriteInt(ScriptActionCtr_070, file_ptr);
File_WriteInt(ScriptActionCtr_069, file_ptr);
File_WriteInt(ScriptActionCtr_068, file_ptr);
File_WriteInt(ScriptActionCtr_067, file_ptr);
File_WriteInt(ScriptActionCtr_066, file_ptr);
File_WriteInt(ScriptActionCtr_065, file_ptr);
File_WriteInt(ScriptActionCtr_064, file_ptr);
File_WriteInt(ScriptActionCtr_015, file_ptr);
}
// ===========================================
// Function to Restore Global Action Counters
// ===========================================
void RestoreGlobalActionCtrs(void *file_ptr) {
ScriptActionCtr_000 = File_ReadInt(file_ptr);
ScriptActionCtr_005 = File_ReadInt(file_ptr);
ScriptActionCtr_012 = File_ReadInt(file_ptr);
ScriptActionCtr_010 = File_ReadInt(file_ptr);
ScriptActionCtr_017 = File_ReadInt(file_ptr);
ScriptActionCtr_040 = File_ReadInt(file_ptr);
ScriptActionCtr_042 = File_ReadInt(file_ptr);
ScriptActionCtr_043 = File_ReadInt(file_ptr);
ScriptActionCtr_072 = File_ReadInt(file_ptr);
ScriptActionCtr_073 = File_ReadInt(file_ptr);
ScriptActionCtr_077 = File_ReadInt(file_ptr);
ScriptActionCtr_074 = File_ReadInt(file_ptr);
ScriptActionCtr_075 = File_ReadInt(file_ptr);
ScriptActionCtr_076 = File_ReadInt(file_ptr);
ScriptActionCtr_001 = File_ReadInt(file_ptr);
ScriptActionCtr_002 = File_ReadInt(file_ptr);
ScriptActionCtr_008 = File_ReadInt(file_ptr);
ScriptActionCtr_003 = File_ReadInt(file_ptr);
ScriptActionCtr_029 = File_ReadInt(file_ptr);
ScriptActionCtr_004 = File_ReadInt(file_ptr);
ScriptActionCtr_030 = File_ReadInt(file_ptr);
ScriptActionCtr_031 = File_ReadInt(file_ptr);
ScriptActionCtr_033 = File_ReadInt(file_ptr);
ScriptActionCtr_032 = File_ReadInt(file_ptr);
ScriptActionCtr_024 = File_ReadInt(file_ptr);
ScriptActionCtr_006 = File_ReadInt(file_ptr);
ScriptActionCtr_058 = File_ReadInt(file_ptr);
ScriptActionCtr_057 = File_ReadInt(file_ptr);
ScriptActionCtr_048 = File_ReadInt(file_ptr);
ScriptActionCtr_046 = File_ReadInt(file_ptr);
ScriptActionCtr_045 = File_ReadInt(file_ptr);
ScriptActionCtr_044 = File_ReadInt(file_ptr);
ScriptActionCtr_007 = File_ReadInt(file_ptr);
ScriptActionCtr_047 = File_ReadInt(file_ptr);
ScriptActionCtr_037 = File_ReadInt(file_ptr);
ScriptActionCtr_060 = File_ReadInt(file_ptr);
ScriptActionCtr_078 = File_ReadInt(file_ptr);
ScriptActionCtr_059 = File_ReadInt(file_ptr);
ScriptActionCtr_013 = File_ReadInt(file_ptr);
ScriptActionCtr_014 = File_ReadInt(file_ptr);
ScriptActionCtr_036 = File_ReadInt(file_ptr);
ScriptActionCtr_050 = File_ReadInt(file_ptr);
ScriptActionCtr_018 = File_ReadInt(file_ptr);
ScriptActionCtr_051 = File_ReadInt(file_ptr);
ScriptActionCtr_022 = File_ReadInt(file_ptr);
ScriptActionCtr_009 = File_ReadInt(file_ptr);
ScriptActionCtr_011 = File_ReadInt(file_ptr);
ScriptActionCtr_016 = File_ReadInt(file_ptr);
ScriptActionCtr_021 = File_ReadInt(file_ptr);
ScriptActionCtr_023 = File_ReadInt(file_ptr);
ScriptActionCtr_041 = File_ReadInt(file_ptr);
ScriptActionCtr_049 = File_ReadInt(file_ptr);
ScriptActionCtr_028 = File_ReadInt(file_ptr);
ScriptActionCtr_084 = File_ReadInt(file_ptr);
ScriptActionCtr_083 = File_ReadInt(file_ptr);
ScriptActionCtr_082 = File_ReadInt(file_ptr);
ScriptActionCtr_019 = File_ReadInt(file_ptr);
ScriptActionCtr_081 = File_ReadInt(file_ptr);
ScriptActionCtr_080 = File_ReadInt(file_ptr);
ScriptActionCtr_079 = File_ReadInt(file_ptr);
ScriptActionCtr_020 = File_ReadInt(file_ptr);
ScriptActionCtr_088 = File_ReadInt(file_ptr);
ScriptActionCtr_087 = File_ReadInt(file_ptr);
ScriptActionCtr_085 = File_ReadInt(file_ptr);
ScriptActionCtr_086 = File_ReadInt(file_ptr);
ScriptActionCtr_025 = File_ReadInt(file_ptr);
ScriptActionCtr_027 = File_ReadInt(file_ptr);
ScriptActionCtr_026 = File_ReadInt(file_ptr);
ScriptActionCtr_038 = File_ReadInt(file_ptr);
ScriptActionCtr_034 = File_ReadInt(file_ptr);
ScriptActionCtr_035 = File_ReadInt(file_ptr);
ScriptActionCtr_039 = File_ReadInt(file_ptr);
ScriptActionCtr_054 = File_ReadInt(file_ptr);
ScriptActionCtr_063 = File_ReadInt(file_ptr);
ScriptActionCtr_071 = File_ReadInt(file_ptr);
ScriptActionCtr_070 = File_ReadInt(file_ptr);
ScriptActionCtr_069 = File_ReadInt(file_ptr);
ScriptActionCtr_068 = File_ReadInt(file_ptr);
ScriptActionCtr_067 = File_ReadInt(file_ptr);
ScriptActionCtr_066 = File_ReadInt(file_ptr);
ScriptActionCtr_065 = File_ReadInt(file_ptr);
ScriptActionCtr_064 = File_ReadInt(file_ptr);
ScriptActionCtr_015 = File_ReadInt(file_ptr);
}
// ===============================================================
// Start of Custom Script Block - DO NOT EDIT ANYTHING BEFORE THIS
// ===============================================================
/**{CUSTOM_SCRIPT_BLOCK_START}** DO NOT EDIT! **/
// Enter your custom script code here
/*
$$ENUM Region
0:Intro
1:Outside
2:Temple
3:Level3
4:Level2
5:Level1
$$END
*/
// Got from Nate
/*
$$ACTION
Custom
Emit [f:Number=20.0] sparks from [o:Object]
aEmitSparks
Make object spark
Makes an object emit sparks
Parameters:
Number: the number of sparks to create
Object: the object to make sparks come out of
$$END
*/
void aEmitSparks(float num_sparks, int objhandle) {
int room;
vector pos;
if (!qObjExists(objhandle))
return;
Obj_Value(objhandle, VF_GET, OBJV_V_POS, &pos);
Obj_Value(objhandle, VF_GET, OBJV_I_ROOMNUM, &room);
Game_CreateRandomSparks((int)num_sparks, &pos, room);
}
#define N_REGIONS 2
const char *RegionList[N_REGIONS] = {"LeftLabR", "RightLabR"};
int level_custom_timer_id = 0;
/*
$$ENUM LevelRegion
0:LeftLab
1:RightLab
$$END
*/
/*
$$ACTION
Custom
Set fog in region [e:LevelRegion] to color = [f:Red=0.5],[f:Green=0.5],[f:Blue=0.5], depth = [f:Depth=500.0]
cFogRegion
Set region fog
Sets the fog color and depth for a predefined region
Parameters:
Region: the region to set
R,G,B: the fog color (0-1)
Depth: how deep the fog should be
$$END
*/
void cFogRegion(int region, float r, float g, float b, float depth) {
// iterate through all room names starting with region string and set fog region
int i = 0, ri;
do {
char room_name[32];
snprintf(room_name, sizeof(room_name), "%s%c", RegionList[region], (i <= 9) ? (char)('0' + i) : ('A' + i - 10));
ri = Scrpt_FindRoomName(room_name);
if (ri >= 0) {
aRoomSetFog(ri, r, g, b, depth);
}
i++;
} while (i < 36);
}
/*
$$ACTION
Custom
Change fog in region [e:LevelRegion] to color = [f:Red=0.5],[f:Green=0.5],[f:Blue=0.5], depth = [f:Depth=200.0] over
[f:Time=20.0] seconds cChangeFogRegion Change region fog over time Changes the fog of a predefined region to a color
over a time period
Parameters:
Region: the region to change
R,G,B: the fog color (0-1)
Depth: hoe deep the fog should be.
$$END
*/
void cChangeFogRegion(int region, float r, float g, float b, float depth, float time) {
// iterate through all room names starting with region string and set fog region
int i = 0, ri;
do {
char room_name[32];
snprintf(room_name, sizeof(room_name), "%s%c", RegionList[region], (i <= 9) ? (char)('0' + i) : ('A' + i - 10));
ri = Scrpt_FindRoomName(room_name);
if (ri >= 0) {
aRoomChangeFog(ri, r, g, b, depth, time);
}
i++;
} while (i < 36);
}
/*
$$ACTION
Custom
Turn [e:On/Off] Flicker in region [e:LevelRegion]
cRegionSetLightingFlicker
Turn On/Off flicker in region
Turns on or off the light flicker in a predefined region
Parameters:
On/Off: whether the flicker should be on or off
Region: the region to set
$$END
*/
void cRegionSetLightingFlicker(int state, int region) {
int i = 0, ri;
do {
char room_name[32];
snprintf(room_name, sizeof(room_name), "%s%c", RegionList[region], (i <= 9) ? (char)('0' + i) : ('A' + i - 10));
ri = Scrpt_FindRoomName(room_name);
if (ri >= 0) {
aRoomSetLightingFlicker(state, ri);
}
i++;
} while (i < 36);
}
/*
$$ACTION
Custom
Malfunction doors in region [e:LevelRegion]
cMalfunctionRegionDoors
Malfunction doors in region.
Causes doors in region to do some random freakout behavior
Parameters:
Region: the region to set
$$END
*/
#define N_DOORS_PER_REGION 8
const char *Region_door_names[N_REGIONS][N_DOORS_PER_REGION] = {{
"Door-Left01",
"Door-Left02",
"Door-Left12",
"Door-Left11",
"Door-Left21",
"Door-Left22",
"End",
},
{
"Door-Right01",
"Door-Right02",
"Door-Right12",
"Door-Right11",
"Door-Right21",
"Door-Right22",
"End",
}};
void cMalfunctionRegionDoors(int region) {
int i;
i = 0;
while (strcmp(Region_door_names[region][i], "End") != 0) {
int rnum = rand() % 100;
if (rnum < 50) {
int doorref = Scrpt_FindDoorName(Region_door_names[region][i]);
if (doorref != OBJECT_HANDLE_NONE) {
if (rnum >= 30 && rnum < 50) {
aDoorActivate(doorref);
} else if (rnum >= 10 && rnum < 30) {
rnum = rand() % 20;
aDoorSetPos(doorref, 0.55f + (rnum * 0.01f));
} else {
aDoorStop(doorref);
}
}
}
i++;
}
}
/*
$$ACTION
Custom
Timed breaking of glass in room [r:Room], portal [i:PortalNum=0] in [f:Seconds=0.0]
cTimeGlassBreak
Delay breaking glass for a room
Delays breaking glass for specified time in a specified room.
Parameters:
Room: room to break glass
PortalNum: portal number of glass
Seconds: Time
$$END
*/
static uint8_t breaking_glass_index = 0;
static struct t_breaking_glass_data {
int16_t room_number;
int16_t portal_num;
} breaking_glass_data[64];
#define SPECIAL_TIMER_ID_BASE 1000
#define SPECIAL_TIMER_CLASSES 4
#define SPECIAL_TIMER_MAX 256
#define SPECIAL_TIMER_ID_LIMIT (SPECIAL_TIMER_ID_BASE + SPECIAL_TIMER_MAX * SPECIAL_TIMER_CLASSES - 1)
inline int LEVEL_TIMER_UID(uint8_t timer_class, uint8_t index) {
return (SPECIAL_TIMER_ID_BASE + (timer_class % SPECIAL_TIMER_CLASSES) * SPECIAL_TIMER_MAX + index);
}
void cTimeGlassBreak(int room_number, int portal_num, float time) {
if (breaking_glass_index >= 64)
breaking_glass_index = 0;
breaking_glass_data[breaking_glass_index].room_number = room_number;
breaking_glass_data[breaking_glass_index].portal_num = portal_num;
aSetLevelTimer(time, LEVEL_TIMER_UID(0, breaking_glass_index++));
}
/*
$$ACTION
Custom
Query and execute custom timer event with timer id [e:TimerID]
cExecTimerEvent
Executes a custom timer event.
Runs a specific function initialized by a custom timer event function (i.e. glass break)
Parameters:
TimerID: Timer id of event.
$$END
*/
void cExecTimerEvent(int timerid) {
if (timerid < SPECIAL_TIMER_ID_BASE || timerid > SPECIAL_TIMER_ID_LIMIT) {
return;
}
int index = (timerid - SPECIAL_TIMER_ID_BASE);
int timer_class = index / SPECIAL_TIMER_MAX;
index = index % SPECIAL_TIMER_MAX;
switch (timer_class) {
case 0: // break glass!
if (index < 64 && index >= 0) {
aPortalBreakGlass(breaking_glass_data[index].portal_num, breaking_glass_data[index].room_number);
}
break;
}
}
// Tell the code to call our functions
#define ENABLE_CUSTOM_SAVE_AND_RESTORE
// Save custom data for this script
void dsCustomSave(void *fileptr) {}
// Restore custom data for this script
void dsCustomRestore(void *fileptr) {}
/**{CUSTOM_SCRIPT_BLOCK_END}**** DO NOT EDIT! **/
// ============================================================
// End of Custom Script Block - DO NOT EDIT ANYTHING AFTER THIS
// ============================================================
// =================
// Message File Data
// =================
#define MAX_SCRIPT_MESSAGES 256
#define MAX_MSG_FILEBUF_LEN 1024
#define NO_MESSAGE_STRING "*Message Not Found*"
#define INV_MSGNAME_STRING "*Message Name Invalid*"
#define WHITESPACE_CHARS " \t\r\n"
// Structure for storing a script message
struct tScriptMessage {
char *name; // the name of the message
char *message; // the actual message text
};
// Global storage for level script messages
tScriptMessage *message_list[MAX_SCRIPT_MESSAGES];
int num_messages;
// ======================
// Message File Functions
// ======================
// Initializes the Message List
void InitMessageList(void) {
for (int j = 0; j < MAX_SCRIPT_MESSAGES; j++)
message_list[j] = NULL;
num_messages = 0;
}
// Clear the Message List
void ClearMessageList(void) {
for (int j = 0; j < num_messages; j++) {
free(message_list[j]->name);
free(message_list[j]->message);
free(message_list[j]);
message_list[j] = NULL;
}
num_messages = 0;
}
// Adds a message to the list
int AddMessageToList(char *name, char *msg) {
int pos;
// Make sure there is room in the list
if (num_messages >= MAX_SCRIPT_MESSAGES)
return false;
// Allocate memory for this message entry
pos = num_messages;
message_list[pos] = (tScriptMessage *)malloc(sizeof(tScriptMessage));
if (message_list[pos] == NULL)
return false;
// Allocate memory for the message name
message_list[pos]->name = (char *)malloc(strlen(name) + 1);
if (message_list[pos]->name == NULL) {
free(message_list[pos]);
return false;
}
strcpy(message_list[pos]->name, name);
// Allocate memory for the message name
message_list[pos]->message = (char *)malloc(strlen(msg) + 1);
if (message_list[pos]->message == NULL) {
free(message_list[pos]->name);
free(message_list[pos]);
return false;
}
strcpy(message_list[pos]->message, msg);
num_messages++;
return true;
}
// Removes any whitespace padding from the end of a string
void RemoveTrailingWhitespace(char *s) {
int last_char_pos;
last_char_pos = strlen(s) - 1;
while (last_char_pos >= 0 && isspace(s[last_char_pos])) {
s[last_char_pos] = '\0';
last_char_pos--;
}
}
// Returns a pointer to the first non-whitespace char in given string
char *SkipInitialWhitespace(char *s) {
while ((*s) != '\0' && isspace(*s))
s++;
return (s);
}
// Read in the Messages
int ReadMessageFile(const char *filename) {
void *infile;
char filebuffer[MAX_MSG_FILEBUF_LEN + 1];
char *line, *msg_start;
int line_num;
bool next_msgid_found;
// Try to open the file for loading
infile = File_Open(filename, "rt");
if (!infile)
return false;
line_num = 0;
next_msgid_found = true;
// Clear the message list
ClearMessageList();
// Read in and parse each line of the file
while (!File_eof(infile)) {
// Clear the buffer
strcpy(filebuffer, "");
// Read in a line from the file
File_ReadString(filebuffer, MAX_MSG_FILEBUF_LEN, infile);
line_num++;
// Remove whitespace padding at start and end of line
RemoveTrailingWhitespace(filebuffer);
line = SkipInitialWhitespace(filebuffer);
// If line is a comment, or empty, discard it
if (strlen(line) == 0 || strncmp(line, "//", 2) == 0)
continue;
if (!next_msgid_found) { // Parse out the last message ID number
// Grab the first keyword, make sure it's valid
line = strtok(line, WHITESPACE_CHARS);
if (line == NULL)
continue;
// Grab the second keyword, and assign it as the next message ID
line = strtok(NULL, WHITESPACE_CHARS);
if (line == NULL)
continue;
next_msgid_found = true;
} else { // Parse line as a message line
// Find the start of message, and mark it
msg_start = strchr(line, '=');
if (msg_start == NULL)
continue;
msg_start[0] = '\0';
msg_start++;
// Add the message to the list
AddMessageToList(line, msg_start);
}
}
File_Close(infile);
return true;
}
// Find a message
const char *GetMessage(const char *name) {
// Make sure given name is valid
if (name == NULL)
return INV_MSGNAME_STRING;
// Search message list for name
for (int j = 0; j < num_messages; j++)
if (strcmp(message_list[j]->name, name) == 0)
return (message_list[j]->message);
// Couldn't find it
return NO_MESSAGE_STRING;
}
//======================
// Name List Arrays
//======================
#define NUM_DOOR_NAMES 2
const char *Door_names[NUM_DOOR_NAMES] = {"Door-Top1", "Door-Escape"};
int Door_handles[NUM_DOOR_NAMES];
#define NUM_OBJECT_NAMES 175
const char *Object_names[NUM_OBJECT_NAMES] = {"ReceptorNode-01",
"ReceptorNode-02",
"ReceptorNode-03",
"ReceptorNode-04",
"PowerNode-01",
"PowerNode-02",
"PowerNode-03",
"PowerNode-04",
"PSGadget0",
"PSGadget1",
"Virus Device",
"PlayerIntroCamera",
"Virus Device2",
"BigBoulder",
"RockWallBoulder",
"Drop2",
"TargetExt1",
"IntroSpark-1",
"IGIntro2",
"IntroSmoke2",
"IntroSmoke1",
"TargetInt2",
"IntroSmoke-4",
"IntroSmoke-3",
"TargetInt1",
"Drop1",
"TargetExt2",
"BoulderExplosion1",
"BoulderExplosion2",
"BHit1",
"Bhit3",
"BHit2",
"FlasherCrystal",
"CrystalBar1",
"CrystalBar2",
"CrystralBar3",
"CrystalBar4",
"CrystalBarCenter",
"CrystalCenter4",
"CrystalCenter3",
"CrystalCenter2",
"CrystalCenter1",
"BTSmoke3",
"BTLight",
"BTSmoke5",
"BTSmoke4",
"BTSmoke1",
"BTSmoke2",
"CrystalMainTarget",
"CFX5",
"CFX4",
"CFX3",
"CFX2",
"CFX1",
"CBCHit1",
"CBCHit2",
"CBCHit6",
"CBCHit5",
"CBCHit4",
"CBCHit3",
"CrystalCenterBeam",
"MidBot5",
"MidBot4",
"MidBot3",
"MidBot2",
"MidBot1",
"HiBot4",
"HiBot3",
"HiBot2",
"HiBot1",
"LoBot6",
"LoBot5",
"LoBot4",
"LoBot3",
"LoBot2",
"LoBot1",
"RightTopInter",
"RightHubBeam",
"LeftTopInterface",
"LeftHubBeam",
"LeftVirusTerminal",
"RightVirusTerminal",
"DataArmLeftHub",
"LeftBottomInterfac",
"TopDoorSmoke2",
"LeftTurret-3",
"LeftTurret-2",
"LeftTurret-5",
"LeftTurret-6",
"LeftTurret-7",
"LeftTurret-9",
"LeftTurret-A",
"LeftTurret-B",
"LeftTurret-E",
"LeftTurret-J",
"LeftTurret-H",
"LeftTurret-I",
"LeftTurret-C",
"SmokeHub2",
"SmokeHub1",
"LeftLabHalonSpew0",
"LeftLabHalonSpew1",
"LeftLabHalonSpew2",
"LeftLabHalonSpew3",
"LeftLabHalonSpew4",
"LeftLabHalonSpew5",
"LeftLabHalonSpew6",
"LeftLabHalonSpew7",
"LeftLabHalonSpew8",
"LeftLabHalonSpew9",
"LeftLabHalonSpewA",
"RightDataArm",
"RightBottomInter",
"TDSmoke1",
"RightTurret-1",
"RightTurret-2",
"RightTurret-3",
"RightTurret-5",
"RightTurret-6",
"RightTurret-7",
"RightTurret-8",
"RightTurret-9",
"RightTurret-B",
"RightTurret-C",
"RightTurret-D",
"SmokeRight2",
"SmokeRight1",
"RightLabHalonSpew0",
"RightLabHalonSpew1",
"RightLabHalonSpew2",
"RightLabHalonSpew3",
"EightLabHalonSpew4",
"RightLabHalonSpew5",
"RightLabHalonSpew6",
"RightLabHalonSpew7",
"RightLabHalonSpew9",
"RightLabHalonSpewA",
"RightLabHalonSpewB",
"RightLabHalonSpewC",
"PowerBackup-04",
"PowerBackup-03",
"PowerBackup-02",
"PowerBackup-01",
"PNodeSmoker4",
"PNodeSmoker3",
"PNodeSmoker2",
"PNodeSmoker1",
"MainPowerBeam2",
"MainBeamTarget2",
"MainBeamTarget1",
"MainPowerBeam1",
"RecSwitch4",
"RecSwitch3",
"RecSwitch2",
"RecSwitch1",
"ReBootSwitch2",
"ReBootSwitch1",
"MainPowerWhite1",
"MainPowerWhite2",
"PT1",
"PT2",
"PT3",
"PT4",
"TargetExit1",
"Door-Escape",
"ExitSmoke1",
"ExitSmoke3",
"ExitSmoke4",
"ExitSmoke2",
"Drop2Smoke2",
"Drop2Smoke1",
"Turret-Outer13",
"Turret-Outer12",
"Turret-Outer11",
"Door-Bottom2"};
int Object_handles[NUM_OBJECT_NAMES];
#define NUM_ROOM_NAMES 50
const char *Room_names[NUM_ROOM_NAMES] = {
"Creeper-Mid0", "Creeper-Mid0A", "Creeper-Mid0B", "Creeper-Mid0C", "Creeper-Mid0D", "LeftLabRO",
"Creeper-LLR0A", "Creeper-LLR0B", "Creeper-LLR0C", "Creeper-LLR0D", "Creeper-LLR0E", "Creeper-LLROF",
"Creeper-Mid2", "Creeper-Mid2A", "RightLabR3", "Creeper-RL3-A", "Creeper-RL3-B", "Creeper-RL3-C",
"Creeper-RL3-D", "RightLabRJ", "Creeper-RLJ-A", "Creeper-RLJ-B", "Creeper-RLJ-C", "Creeper-RLJ-D",
"Creeper-RLJ-E", "Creeper-RLJ-F", "Creeper-RLJ-G", "Creeper-RLJ-H", "Creeper-Mid1", "Creeper-Mid1A",
"BoulderHitRoom", "CrystalCenterRoom", "NRGCreep", "LeftLabCreep1", "LeftLabCreep0", "LeftX1",
"PowerChute2", "PowerLow8", "PowerLow7", "PowerLow6", "PowerLow5", "PowerLow4",
"PowerLow3", "PowerLow2", "PowerLow1", "PowerChute", "PowerSide2", "PowerDoor",
"PowerSide1", "PowerStation"};
int Room_indexes[NUM_ROOM_NAMES];
#define NUM_TRIGGER_NAMES 11
const char *Trigger_names[NUM_TRIGGER_NAMES] = {
"RollingBallWatchout", "RollingBallDetonate", "BeginEndSequence", "MusicLevel1-1", "MusicLevel2-2", "MusicLevel2-1",
"MusicLevel3-2", "MusicLevel3-1", "MusicTemple-2", "MusicTemple-1", "MusicOutside-1"};
int Trigger_indexes[NUM_TRIGGER_NAMES];
int Trigger_faces[NUM_TRIGGER_NAMES];
int Trigger_rooms[NUM_TRIGGER_NAMES];
#define NUM_SOUND_NAMES 11
const char *Sound_names[NUM_SOUND_NAMES] = {"AmbExplosionFarB", "RockBreakAway", "WpnEMDFireD", "AmbSteamHigh",
"AmbSirenBRedAcrop", "ExpMissileLarge1", "WpnPyroGLOmegaFire", "AmbSwitch21",
"Wall fade ???", "AmbSwitch31", "AmbSwitch11"};
int Sound_indexes[NUM_SOUND_NAMES];
#define NUM_TEXTURE_NAMES 5
const char *Texture_names[NUM_TEXTURE_NAMES] = {"FunkyEffectGreen", "FunkyEffect3", "HellionBeam", "FunkyEffect1",
"FunkyEffectAntiV"};
int Texture_indexes[NUM_TEXTURE_NAMES];
#define NUM_PATH_NAMES 14
const char *Path_names[NUM_PATH_NAMES] = {"PSGadget0Path", "PSGadget1Path", "IntroCam-Ext1", "IGInt2", "IntroCam-Int2",
"IntroCam-Int1", "IntroCam-Ext2", "MidPatrol1", "LowPatrol2", "LowPatrol1",
"ExitCam-1", "ExitShip-1", "ExitCam-2", "ExitShip-2"};
int Path_indexes[NUM_PATH_NAMES];
#define NUM_MATCEN_NAMES 0
const char **Matcen_names = NULL;
int *Matcen_indexes = NULL;
#define NUM_GOAL_NAMES 7
const char *Goal_names[NUM_GOAL_NAMES] = {"Blast Into the Laboratory", "Infect Computer Hub Delta",
"Infect Computer Hub Gamma", "Reboot the System",
"Shut Down the Main Power", "Infect the Lab System With Virus Data",
"Escape Before the System Reboots"};
int Goal_indexes[NUM_GOAL_NAMES];
#define NUM_MESSAGE_NAMES 16
const char *Message_names[NUM_MESSAGE_NAMES] = {
"VirusDeviceName", "IntroMessage", "EmptyMessage", "Watchout",
"LeftLabInitData", "LeftLabInfected", "LeftLabNotReady", "RightLabInfected",
"LeftLabVirusPlaced", "VirusInfectFail", "GetToPower", "RechargeSucceed",
"RechargeFail", "DeactivateSucceed", "DeactivateFail", "10Seconds"};
const char *Message_strings[NUM_MESSAGE_NAMES];
// ===============
// InitializeDLL()
// ===============
char STDCALL InitializeDLL(tOSIRISModuleInit *func_list) {
osicommon_Initialize((tOSIRISModuleInit *)func_list);
if (func_list->game_checksum != CHECKSUM) {
mprintf(0, "Game-Checksum FAIL!!! (%ul!=%ul)\n", func_list->game_checksum, CHECKSUM);
mprintf(0, "RECOMPILE YOUR SCRIPTS!!!\n");
return 0;
}
ClearGlobalActionCtrs();
dfInit();
InitMessageList();
// Build the filename of the message file
char filename[_MAX_PATH + 32];
char english_filename[(_MAX_PATH + 32) * 2];
int lang_type;
if (func_list->script_identifier != NULL) {
_splitpath(func_list->script_identifier, NULL, NULL, filename, NULL);
snprintf(english_filename, sizeof(english_filename), "%s.msg", filename);
lang_type = Game_GetLanguage();
if (lang_type == LANGUAGE_FRENCH)
strcat(filename, "_FRN");
else if (lang_type == LANGUAGE_GERMAN)
strcat(filename, "_GER");
else if (lang_type == LANGUAGE_ITALIAN)
strcat(filename, "_ITN");
else if (lang_type == LANGUAGE_SPANISH)
strcat(filename, "_SPN");
else if (lang_type == LANGUAGE_POLISH)
strcat(filename, "_POL");
strcat(filename, ".msg");
} else {
strcpy(filename, "Merc5.msg");
lang_type = LANGUAGE_ENGLISH;
}
if (!ReadMessageFile(filename)) {
if (lang_type == LANGUAGE_ENGLISH) {
mprintf(0, "ERROR: Could not load message file - %s\n", filename);
} else if (!ReadMessageFile(english_filename)) {
mprintf(0, "ERROR: Could not load message file - %s\n", english_filename);
}
}
int j;
// Do Door Index lookups
for (j = 0; j < NUM_DOOR_NAMES; j++)
Door_handles[j] = Scrpt_FindDoorName(Door_names[j]);
// Do Object Index lookups
for (j = 0; j < NUM_OBJECT_NAMES; j++)
Object_handles[j] = Scrpt_FindObjectName(Object_names[j]);
// Do Room Index lookups
for (j = 0; j < NUM_ROOM_NAMES; j++)
Room_indexes[j] = Scrpt_FindRoomName(Room_names[j]);
// Do Trigger Index lookups
for (j = 0; j < NUM_TRIGGER_NAMES; j++) {
Trigger_indexes[j] = Scrpt_FindTriggerName(Trigger_names[j]);
Trigger_faces[j] = Scrpt_GetTriggerFace(Trigger_indexes[j]);
Trigger_rooms[j] = Scrpt_GetTriggerRoom(Trigger_indexes[j]);
}
// Do Sound Index lookups
for (j = 0; j < NUM_SOUND_NAMES; j++)
Sound_indexes[j] = Scrpt_FindSoundName(Sound_names[j]);
// Do Texture Index lookups
for (j = 0; j < NUM_TEXTURE_NAMES; j++)
Texture_indexes[j] = Scrpt_FindTextureName(Texture_names[j]);
// Do Path Index lookups
for (j = 0; j < NUM_PATH_NAMES; j++)
Path_indexes[j] = Scrpt_FindPathName(Path_names[j]);
// Do Matcen Index lookups
for (j = 0; j < NUM_MATCEN_NAMES; j++)
Matcen_indexes[j] = Scrpt_FindMatcenName(Matcen_names[j]);
// Do Goal Index lookups
for (j = 0; j < NUM_GOAL_NAMES; j++)
Goal_indexes[j] = Scrpt_FindLevelGoalName(Goal_names[j]);
// Do Message Name lookups
for (j = 0; j < NUM_MESSAGE_NAMES; j++)
Message_strings[j] = GetMessage(Message_names[j]);
return 1;
}
// =============
// ShutdownDLL()
// =============
void STDCALL ShutdownDLL(void) { ClearMessageList(); }
// ===============
// GetGOScriptID()
// ===============
int STDCALL GetGOScriptID(const char *name, uint8_t isdoor) { return -1; }
// ================
// CreateInstance()
// ================
void STDCALLPTR CreateInstance(int id) {
switch (id) {
case ID_LEVEL_0000:
return new LevelScript_0000;
break;
case ID_CUSTOM_OBJECT_11C4:
return new CustomObjectScript_11C4;
break;
case ID_CUSTOM_OBJECT_1088:
return new CustomObjectScript_1088;
break;
case ID_CUSTOM_OBJECT_09C6:
return new CustomObjectScript_09C6;
break;
case ID_CUSTOM_OBJECT_11C5:
return new CustomObjectScript_11C5;
break;
case ID_CUSTOM_OBJECT_09C7:
return new CustomObjectScript_09C7;
break;
case ID_CUSTOM_OBJECT_182E:
return new CustomObjectScript_182E;
break;
case ID_CUSTOM_OBJECT_0A05:
return new CustomObjectScript_0A05;
break;
case ID_CUSTOM_OBJECT_0A04:
return new CustomObjectScript_0A04;
break;
case ID_CUSTOM_OBJECT_0A03:
return new CustomObjectScript_0A03;
break;
case ID_CUSTOM_OBJECT_1A02:
return new CustomObjectScript_1A02;
break;
case ID_CUSTOM_OBJECT_1033:
return new CustomObjectScript_1033;
break;
case ID_CUSTOM_OBJECT_1200:
return new CustomObjectScript_1200;
break;
case ID_CUSTOM_OBJECT_1036:
return new CustomObjectScript_1036;
break;
case ID_CUSTOM_OBJECT_1035:
return new CustomObjectScript_1035;
break;
case ID_CUSTOM_OBJECT_3032:
return new CustomObjectScript_3032;
break;
case ID_CUSTOM_OBJECT_1830:
return new CustomObjectScript_1830;
break;
case ID_CUSTOM_OBJECT_28A2:
return new CustomObjectScript_28A2;
break;
case ID_CUSTOM_OBJECT_0A06:
return new CustomObjectScript_0A06;
break;
case ID_CUSTOM_OBJECT_2885:
return new CustomObjectScript_2885;
break;
case ID_CUSTOM_OBJECT_107E:
return new CustomObjectScript_107E;
break;
case ID_CUSTOM_OBJECT_1185:
return new CustomObjectScript_1185;
break;
case ID_CUSTOM_OBJECT_21B2:
return new CustomObjectScript_21B2;
break;
case ID_CUSTOM_OBJECT_09DE:
return new CustomObjectScript_09DE;
break;
case ID_CUSTOM_OBJECT_09DD:
return new CustomObjectScript_09DD;
break;
case ID_CUSTOM_OBJECT_09DC:
return new CustomObjectScript_09DC;
break;
case ID_CUSTOM_OBJECT_21DA:
return new CustomObjectScript_21DA;
break;
case ID_CUSTOM_OBJECT_0899:
return new CustomObjectScript_0899;
break;
case ID_CUSTOM_OBJECT_089A:
return new CustomObjectScript_089A;
break;
case ID_CUSTOM_OBJECT_089B:
return new CustomObjectScript_089B;
break;
case ID_CUSTOM_OBJECT_1098:
return new CustomObjectScript_1098;
break;
case ID_CUSTOM_OBJECT_09A1:
return new CustomObjectScript_09A1;
break;
case ID_CUSTOM_OBJECT_19A0:
return new CustomObjectScript_19A0;
break;
case ID_CUSTOM_OBJECT_09C9:
return new CustomObjectScript_09C9;
break;
case ID_CUSTOM_OBJECT_1007:
return new CustomObjectScript_1007;
break;
case ID_CUSTOM_OBJECT_1016:
return new CustomObjectScript_1016;
break;
case ID_TRIGGER_000F:
return new TriggerScript_000F;
break;
case ID_TRIGGER_0000:
return new TriggerScript_0000;
break;
case ID_TRIGGER_0010:
return new TriggerScript_0010;
break;
case ID_TRIGGER_000E:
return new TriggerScript_000E;
break;
case ID_TRIGGER_000D:
return new TriggerScript_000D;
break;
case ID_TRIGGER_000B:
return new TriggerScript_000B;
break;
case ID_TRIGGER_0009:
return new TriggerScript_0009;
break;
case ID_TRIGGER_000C:
return new TriggerScript_000C;
break;
case ID_TRIGGER_000A:
return new TriggerScript_000A;
break;
case ID_TRIGGER_0007:
return new TriggerScript_0007;
break;
case ID_TRIGGER_0008:
return new TriggerScript_0008;
break;
default:
mprintf(0, "SCRIPT: Illegal ID (%d)\n", id);
break;
}
return NULL;
}
// =================
// DestroyInstance()
// =================
void STDCALL DestroyInstance(int id, void *ptr) {
switch (id) {
case ID_LEVEL_0000:
delete ((LevelScript_0000 *)ptr);
break;
case ID_CUSTOM_OBJECT_11C4:
delete ((CustomObjectScript_11C4 *)ptr);
break;
case ID_CUSTOM_OBJECT_1088:
delete ((CustomObjectScript_1088 *)ptr);
break;
case ID_CUSTOM_OBJECT_09C6:
delete ((CustomObjectScript_09C6 *)ptr);
break;
case ID_CUSTOM_OBJECT_11C5:
delete ((CustomObjectScript_11C5 *)ptr);
break;
case ID_CUSTOM_OBJECT_09C7:
delete ((CustomObjectScript_09C7 *)ptr);
break;
case ID_CUSTOM_OBJECT_182E:
delete ((CustomObjectScript_182E *)ptr);
break;
case ID_CUSTOM_OBJECT_0A05:
delete ((CustomObjectScript_0A05 *)ptr);
break;
case ID_CUSTOM_OBJECT_0A04:
delete ((CustomObjectScript_0A04 *)ptr);
break;
case ID_CUSTOM_OBJECT_0A03:
delete ((CustomObjectScript_0A03 *)ptr);
break;
case ID_CUSTOM_OBJECT_1A02:
delete ((CustomObjectScript_1A02 *)ptr);
break;
case ID_CUSTOM_OBJECT_1033:
delete ((CustomObjectScript_1033 *)ptr);
break;
case ID_CUSTOM_OBJECT_1200:
delete ((CustomObjectScript_1200 *)ptr);
break;
case ID_CUSTOM_OBJECT_1036:
delete ((CustomObjectScript_1036 *)ptr);
break;
case ID_CUSTOM_OBJECT_1035:
delete ((CustomObjectScript_1035 *)ptr);
break;
case ID_CUSTOM_OBJECT_3032:
delete ((CustomObjectScript_3032 *)ptr);
break;
case ID_CUSTOM_OBJECT_1830:
delete ((CustomObjectScript_1830 *)ptr);
break;
case ID_CUSTOM_OBJECT_28A2:
delete ((CustomObjectScript_28A2 *)ptr);
break;
case ID_CUSTOM_OBJECT_0A06:
delete ((CustomObjectScript_0A06 *)ptr);
break;
case ID_CUSTOM_OBJECT_2885:
delete ((CustomObjectScript_2885 *)ptr);
break;
case ID_CUSTOM_OBJECT_107E:
delete ((CustomObjectScript_107E *)ptr);
break;
case ID_CUSTOM_OBJECT_1185:
delete ((CustomObjectScript_1185 *)ptr);
break;
case ID_CUSTOM_OBJECT_21B2:
delete ((CustomObjectScript_21B2 *)ptr);
break;
case ID_CUSTOM_OBJECT_09DE:
delete ((CustomObjectScript_09DE *)ptr);
break;
case ID_CUSTOM_OBJECT_09DD:
delete ((CustomObjectScript_09DD *)ptr);
break;
case ID_CUSTOM_OBJECT_09DC:
delete ((CustomObjectScript_09DC *)ptr);
break;
case ID_CUSTOM_OBJECT_21DA:
delete ((CustomObjectScript_21DA *)ptr);
break;
case ID_CUSTOM_OBJECT_0899:
delete ((CustomObjectScript_0899 *)ptr);
break;
case ID_CUSTOM_OBJECT_089A:
delete ((CustomObjectScript_089A *)ptr);
break;
case ID_CUSTOM_OBJECT_089B:
delete ((CustomObjectScript_089B *)ptr);
break;
case ID_CUSTOM_OBJECT_1098:
delete ((CustomObjectScript_1098 *)ptr);
break;
case ID_CUSTOM_OBJECT_09A1:
delete ((CustomObjectScript_09A1 *)ptr);
break;
case ID_CUSTOM_OBJECT_19A0:
delete ((CustomObjectScript_19A0 *)ptr);
break;
case ID_CUSTOM_OBJECT_09C9:
delete ((CustomObjectScript_09C9 *)ptr);
break;
case ID_CUSTOM_OBJECT_1007:
delete ((CustomObjectScript_1007 *)ptr);
break;
case ID_CUSTOM_OBJECT_1016:
delete ((CustomObjectScript_1016 *)ptr);
break;
case ID_TRIGGER_000F:
delete ((TriggerScript_000F *)ptr);
break;
case ID_TRIGGER_0000:
delete ((TriggerScript_0000 *)ptr);
break;
case ID_TRIGGER_0010:
delete ((TriggerScript_0010 *)ptr);
break;
case ID_TRIGGER_000E:
delete ((TriggerScript_000E *)ptr);
break;
case ID_TRIGGER_000D:
delete ((TriggerScript_000D *)ptr);
break;
case ID_TRIGGER_000B:
delete ((TriggerScript_000B *)ptr);
break;
case ID_TRIGGER_0009:
delete ((TriggerScript_0009 *)ptr);
break;
case ID_TRIGGER_000C:
delete ((TriggerScript_000C *)ptr);
break;
case ID_TRIGGER_000A:
delete ((TriggerScript_000A *)ptr);
break;
case ID_TRIGGER_0007:
delete ((TriggerScript_0007 *)ptr);
break;
case ID_TRIGGER_0008:
delete ((TriggerScript_0008 *)ptr);
break;
default:
mprintf(0, "SCRIPT: Illegal ID (%d)\n", id);
break;
}
}
// ===================
// CallInstanceEvent()
// ===================
int16_t STDCALL CallInstanceEvent(int id, void *ptr, int event, tOSIRISEventInfo *data) {
switch (id) {
case ID_LEVEL_0000:
case ID_CUSTOM_OBJECT_11C4:
case ID_CUSTOM_OBJECT_1088:
case ID_CUSTOM_OBJECT_09C6:
case ID_CUSTOM_OBJECT_11C5:
case ID_CUSTOM_OBJECT_09C7:
case ID_CUSTOM_OBJECT_182E:
case ID_CUSTOM_OBJECT_0A05:
case ID_CUSTOM_OBJECT_0A04:
case ID_CUSTOM_OBJECT_0A03:
case ID_CUSTOM_OBJECT_1A02:
case ID_CUSTOM_OBJECT_1033:
case ID_CUSTOM_OBJECT_1200:
case ID_CUSTOM_OBJECT_1036:
case ID_CUSTOM_OBJECT_1035:
case ID_CUSTOM_OBJECT_3032:
case ID_CUSTOM_OBJECT_1830:
case ID_CUSTOM_OBJECT_28A2:
case ID_CUSTOM_OBJECT_0A06:
case ID_CUSTOM_OBJECT_2885:
case ID_CUSTOM_OBJECT_107E:
case ID_CUSTOM_OBJECT_1185:
case ID_CUSTOM_OBJECT_21B2:
case ID_CUSTOM_OBJECT_09DE:
case ID_CUSTOM_OBJECT_09DD:
case ID_CUSTOM_OBJECT_09DC:
case ID_CUSTOM_OBJECT_21DA:
case ID_CUSTOM_OBJECT_0899:
case ID_CUSTOM_OBJECT_089A:
case ID_CUSTOM_OBJECT_089B:
case ID_CUSTOM_OBJECT_1098:
case ID_CUSTOM_OBJECT_09A1:
case ID_CUSTOM_OBJECT_19A0:
case ID_CUSTOM_OBJECT_09C9:
case ID_CUSTOM_OBJECT_1007:
case ID_CUSTOM_OBJECT_1016:
case ID_TRIGGER_000F:
case ID_TRIGGER_0000:
case ID_TRIGGER_0010:
case ID_TRIGGER_000E:
case ID_TRIGGER_000D:
case ID_TRIGGER_000B:
case ID_TRIGGER_0009:
case ID_TRIGGER_000C:
case ID_TRIGGER_000A:
case ID_TRIGGER_0007:
case ID_TRIGGER_0008:
return ((BaseScript *)ptr)->CallEvent(event, data);
break;
default:
mprintf(0, "SCRIPT: Illegal ID (%d)\n", id);
break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
// ==================
// SaveRestoreState()
// ==================
int STDCALL SaveRestoreState(void *file_ptr, uint8_t saving_state) { return 0; }
// ====================
// GetTriggerScriptID()
// ====================
int STDCALL GetTriggerScriptID(int trigger_room, int trigger_face) {
if (trigger_room == Trigger_rooms[0] && trigger_face == Trigger_faces[0])
return ID_TRIGGER_000F;
if (trigger_room == Trigger_rooms[1] && trigger_face == Trigger_faces[1])
return ID_TRIGGER_0000;
if (trigger_room == Trigger_rooms[2] && trigger_face == Trigger_faces[2])
return ID_TRIGGER_0010;
if (trigger_room == Trigger_rooms[3] && trigger_face == Trigger_faces[3])
return ID_TRIGGER_000E;
if (trigger_room == Trigger_rooms[4] && trigger_face == Trigger_faces[4])
return ID_TRIGGER_000D;
if (trigger_room == Trigger_rooms[5] && trigger_face == Trigger_faces[5])
return ID_TRIGGER_000B;
if (trigger_room == Trigger_rooms[6] && trigger_face == Trigger_faces[6])
return ID_TRIGGER_0009;
if (trigger_room == Trigger_rooms[7] && trigger_face == Trigger_faces[7])
return ID_TRIGGER_000C;
if (trigger_room == Trigger_rooms[8] && trigger_face == Trigger_faces[8])
return ID_TRIGGER_000A;
if (trigger_room == Trigger_rooms[9] && trigger_face == Trigger_faces[9])
return ID_TRIGGER_0007;
if (trigger_room == Trigger_rooms[10] && trigger_face == Trigger_faces[10])
return ID_TRIGGER_0008;
return -1;
}
// =================
// GetCOScriptList()
// =================
int STDCALL GetCOScriptList(int **list, int **id_list) {
static int cust_handle_list[35];
static int cust_id_list[35] = {
ID_CUSTOM_OBJECT_11C4, ID_CUSTOM_OBJECT_1088, ID_CUSTOM_OBJECT_09C6, ID_CUSTOM_OBJECT_11C5,
ID_CUSTOM_OBJECT_09C7, ID_CUSTOM_OBJECT_182E, ID_CUSTOM_OBJECT_0A05, ID_CUSTOM_OBJECT_0A04,
ID_CUSTOM_OBJECT_0A03, ID_CUSTOM_OBJECT_1A02, ID_CUSTOM_OBJECT_1033, ID_CUSTOM_OBJECT_1200,
ID_CUSTOM_OBJECT_1036, ID_CUSTOM_OBJECT_1035, ID_CUSTOM_OBJECT_3032, ID_CUSTOM_OBJECT_1830,
ID_CUSTOM_OBJECT_28A2, ID_CUSTOM_OBJECT_0A06, ID_CUSTOM_OBJECT_2885, ID_CUSTOM_OBJECT_107E,
ID_CUSTOM_OBJECT_1185, ID_CUSTOM_OBJECT_21B2, ID_CUSTOM_OBJECT_09DE, ID_CUSTOM_OBJECT_09DD,
ID_CUSTOM_OBJECT_09DC, ID_CUSTOM_OBJECT_21DA, ID_CUSTOM_OBJECT_0899, ID_CUSTOM_OBJECT_089A,
ID_CUSTOM_OBJECT_089B, ID_CUSTOM_OBJECT_1098, ID_CUSTOM_OBJECT_09A1, ID_CUSTOM_OBJECT_19A0,
ID_CUSTOM_OBJECT_09C9, ID_CUSTOM_OBJECT_1007, ID_CUSTOM_OBJECT_1016};
// Fill in the custom handle list
cust_handle_list[0] = Object_handles[16];
cust_handle_list[1] = Object_handles[17];
cust_handle_list[2] = Object_handles[21];
cust_handle_list[3] = Object_handles[24];
cust_handle_list[4] = Object_handles[26];
cust_handle_list[5] = Object_handles[13];
cust_handle_list[6] = Object_handles[36];
cust_handle_list[7] = Object_handles[35];
cust_handle_list[8] = Object_handles[34];
cust_handle_list[9] = Object_handles[33];
cust_handle_list[10] = Object_handles[32];
cust_handle_list[11] = Object_handles[48];
cust_handle_list[12] = Object_handles[56];
cust_handle_list[13] = Object_handles[57];
cust_handle_list[14] = Object_handles[58];
cust_handle_list[15] = Object_handles[59];
cust_handle_list[16] = Object_handles[60];
cust_handle_list[17] = Object_handles[37];
cust_handle_list[18] = Object_handles[82];
cust_handle_list[19] = Object_handles[111];
cust_handle_list[20] = Object_handles[10];
cust_handle_list[21] = Object_handles[12];
cust_handle_list[22] = Object_handles[151];
cust_handle_list[23] = Object_handles[152];
cust_handle_list[24] = Object_handles[153];
cust_handle_list[25] = Object_handles[154];
cust_handle_list[26] = Object_handles[3];
cust_handle_list[27] = Object_handles[2];
cust_handle_list[28] = Object_handles[1];
cust_handle_list[29] = Object_handles[0];
cust_handle_list[30] = Object_handles[155];
cust_handle_list[31] = Object_handles[156];
cust_handle_list[32] = Object_handles[163];
cust_handle_list[33] = Object_handles[164];
cust_handle_list[34] = Object_handles[174];
*list = cust_handle_list;
*id_list = cust_id_list;
return 35;
}
//=======================
// Script Implementation
//=======================
BaseScript::BaseScript() {}
BaseScript::~BaseScript() {}
int16_t BaseScript::CallEvent(int event, tOSIRISEventInfo *data) {
mprintf(0, "BaseScript::CallEvent()\n");
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t LevelScript_0000::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_SAVESTATE: {
tOSIRISEVTSAVESTATE *event_data = &data->evt_savestate;
SaveGlobalActionCtrs(event_data->fileptr);
dfSave(event_data->fileptr);
#ifdef ENABLE_CUSTOM_SAVE_AND_RESTORE
dsCustomSave(event_data->fileptr);
#endif
} break;
case EVT_RESTORESTATE: {
tOSIRISEVTRESTORESTATE *event_data = &data->evt_restorestate;
RestoreGlobalActionCtrs(event_data->fileptr);
dfRestore(event_data->fileptr);
#ifdef ENABLE_CUSTOM_SAVE_AND_RESTORE
dsCustomRestore(event_data->fileptr);
#endif
} break;
case EVT_INTERVAL: {
tOSIRISEVTINTERVAL *event_data = &data->evt_interval;
// Script 042: Level FRAME (Left Creepers)
if (qUserFlag(0) == true) {
if ((qRoomHasPlayer(Room_indexes[0]) == 1) && (qUserFlag(8) == 0)) {
aUserFlagSet(8, 1);
cTimeGlassBreak(Room_indexes[1], 0, qRandomValue(1.500000f, 5.000000f));
cTimeGlassBreak(Room_indexes[2], 0, qRandomValue(1.500000f, 5.000000f));
cTimeGlassBreak(Room_indexes[3], 0, qRandomValue(1.500000f, 5.000000f));
cTimeGlassBreak(Room_indexes[4], 0, qRandomValue(1.500000f, 5.000000f));
}
if ((qRoomHasPlayer(Room_indexes[5]) == 1) && (qUserFlag(12) == 0)) {
aUserFlagSet(12, 1);
cTimeGlassBreak(Room_indexes[6], 0, qRandomValue(1.500000f, 8.000000f));
cTimeGlassBreak(Room_indexes[7], 0, qRandomValue(1.500000f, 8.000000f));
cTimeGlassBreak(Room_indexes[8], 0, qRandomValue(1.500000f, 8.000000f));
cTimeGlassBreak(Room_indexes[9], 0, qRandomValue(1.500000f, 8.000000f));
cTimeGlassBreak(Room_indexes[10], 0, qRandomValue(1.500000f, 8.000000f));
cTimeGlassBreak(Room_indexes[11], 0, qRandomValue(1.500000f, 8.000000f));
}
// Increment the script action counter
if (ScriptActionCtr_042 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_042++;
}
// Script 043: Level FRAME (Right Creepers)
if (qUserFlag(1) == true) {
if ((qRoomHasPlayer(Room_indexes[12]) == 1) && (qUserFlag(13) == 0)) {
aUserFlagSet(13, 1);
aPortalBreakGlass(0, Room_indexes[13]);
}
if ((qRoomHasPlayer(Room_indexes[14]) == 1) && (qUserFlag(19) == 0)) {
aUserFlagSet(19, 1);
cTimeGlassBreak(Room_indexes[15], 0, qRandomValue(3.000000f, 8.000000f));
cTimeGlassBreak(Room_indexes[16], 0, qRandomValue(1.500000f, 5.000000f));
cTimeGlassBreak(Room_indexes[17], 0, qRandomValue(1.500000f, 6.000000f));
cTimeGlassBreak(Room_indexes[18], 0, qRandomValue(1.500000f, 4.000000f));
}
if ((qRoomHasPlayer(Room_indexes[19]) == 1) && (qUserFlag(20) == 0)) {
aUserFlagSet(20, 1);
cTimeGlassBreak(Room_indexes[20], 0, qRandomValue(1.500000f, 8.000000f));
cTimeGlassBreak(Room_indexes[21], 0, qRandomValue(1.500000f, 8.000000f));
cTimeGlassBreak(Room_indexes[22], 0, qRandomValue(1.500000f, 8.000000f));
cTimeGlassBreak(Room_indexes[23], 0, qRandomValue(1.500000f, 8.000000f));
cTimeGlassBreak(Room_indexes[24], 0, qRandomValue(1.500000f, 8.000000f));
cTimeGlassBreak(Room_indexes[25], 0, qRandomValue(1.500000f, 8.000000f));
cTimeGlassBreak(Room_indexes[26], 0, qRandomValue(1.500000f, 8.000000f));
cTimeGlassBreak(Room_indexes[27], 0, qRandomValue(1.500000f, 8.000000f));
}
if ((qRoomHasPlayer(Room_indexes[28]) == 1) && (qUserFlag(9) == 0)) {
aUserFlagSet(9, 1);
cTimeGlassBreak(Room_indexes[29], 0, qRandomValue(1.500000f, 8.000000f));
}
// Increment the script action counter
if (ScriptActionCtr_043 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_043++;
}
} break;
case EVT_LEVELSTART: {
tOSIRISEVTLEVELSTART *event_data = &data->evt_levelstart;
ClearGlobalActionCtrs();
dfInit();
// Script 000: Level INIT (Weather)
if (1) {
aRainTurnOn(0.900000f);
// Increment the script action counter
if (ScriptActionCtr_000 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_000++;
}
// Script 005: Level INIT (CrystalCenter)
if (1) {
aUserFlagSet(15, 0);
aUserFlagSet(14, 0);
// Increment the script action counter
if (ScriptActionCtr_005 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_005++;
}
// Script 012: Level INIT (Power Station)
if (1) {
aObjPlayAnim(Object_handles[0], 0, 1, 1.000000f, 0);
aObjPlayAnim(Object_handles[1], 0, 1, 1.000000f, 0);
aObjPlayAnim(Object_handles[2], 0, 1, 1.000000f, 0);
aObjPlayAnim(Object_handles[3], 0, 1, 1.000000f, 0);
aObjPlayAnim(Object_handles[4], 0, 1, 1.000000f, 0);
aObjPlayAnim(Object_handles[5], 0, 1, 1.000000f, 0);
aObjPlayAnim(Object_handles[6], 0, 1, 1.000000f, 0);
aObjPlayAnim(Object_handles[7], 0, 1, 1.000000f, 0);
aAIGoalFollowPathSimple(Object_handles[8], Path_indexes[0], 8392965, -1, 3);
aAIGoalFollowPathSimple(Object_handles[9], Path_indexes[1], 8392965, -1, 3);
aObjSetShields(Object_handles[8], 100.000000f);
aObjSetShields(Object_handles[9], 100.000000f);
// Increment the script action counter
if (ScriptActionCtr_012 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_012++;
}
// Script 010: Level INIT (Player Inventory)
if ((ScriptActionCtr_010 < 1) && (1)) {
aAddObjectToInventoryNamed(Object_handles[10], qPlayerClosest(Object_handles[11], 0), Message_strings[0], 0);
aAddObjectToInventoryNamed(Object_handles[12], qPlayerClosest(Object_handles[11], 0), Message_strings[0], 0);
// Increment the script action counter
if (ScriptActionCtr_010 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_010++;
}
// Script 017: Level INIT (Terminals)
if (1) {
aUserFlagSet(0, 0);
aUserFlagSet(1, 0);
// Increment the script action counter
if (ScriptActionCtr_017 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_017++;
}
// Script 040: Level INIT (Misc)
if (1) {
aObjMakeInvuln(Object_handles[13], 99999);
aObjMakeInvuln(Object_handles[14], 99999);
aObjSetMovementType(Object_handles[13], 0);
aUserFlagSet(10, 0);
aUserFlagSet(11, 0);
aUserFlagSet(8, 0);
aUserFlagSet(9, 0);
aUserFlagSet(13, 0);
aUserFlagSet(12, 0);
// Increment the script action counter
if (ScriptActionCtr_040 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_040++;
}
// Script 072: IntroCam-1
if (1 == true) {
aObjGhostSet(1, Object_handles[15]);
aLightningTurnOn(0.100000f, 0.080000f);
aCinematicSimple(Path_indexes[2], Message_strings[1], Object_handles[16], 8.000000f, 1);
// Increment the script action counter
if (ScriptActionCtr_072 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_072++;
}
// Script 031: INIT Crystal Bars
if (1) {
aCloakObject(Object_handles[32], 999999.000000f);
aObjGhostSet(1, Object_handles[32]);
aObjSetMovementType(Object_handles[32], 0);
aObjSetMovementType(Object_handles[33], 0);
aObjSetMovementType(Object_handles[34], 0);
aObjSetMovementType(Object_handles[35], 0);
aObjSetMovementType(Object_handles[36], 0);
aObjSetMovementType(Object_handles[37], 0);
aLightningCreate(Object_handles[36], Object_handles[38], 99999.000000f, 2.000000f, 1, Texture_indexes[0],
0.300000f, 3, 180, 180, 255, 0);
aLightningCreate(Object_handles[35], Object_handles[39], 99999.000000f, 2.000000f, 1, Texture_indexes[0],
0.300000f, 3, 180, 180, 255, 0);
aLightningCreate(Object_handles[34], Object_handles[40], 99999.000000f, 2.000000f, 1, Texture_indexes[0],
0.300000f, 3, 180, 180, 255, 0);
aLightningCreate(Object_handles[33], Object_handles[41], 99999.000000f, 2.000000f, 1, Texture_indexes[0],
0.300000f, 3, 180, 180, 255, 0);
// Increment the script action counter
if (ScriptActionCtr_031 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_031++;
}
// Script 037: INIT Patrols
if ((ScriptActionCtr_037 < 1) && (1)) {
aAIGoalFollowPathSimple(Object_handles[61], Path_indexes[7], 8392960, -1, 0);
aAIGoalFollowPathSimple(Object_handles[62], Path_indexes[7], 8392960, -1, 0);
aAIGoalFollowPathSimple(Object_handles[63], Path_indexes[7], 8392960, -1, 0);
aAIGoalFollowPathSimple(Object_handles[64], Path_indexes[7], 8392704, -1, 3);
aAIGoalFollowPathSimple(Object_handles[65], Path_indexes[7], 8392704, -1, 3);
aAIGoalFollowPathSimple(Object_handles[66], Path_indexes[8], 8392960, -1, 0);
aAIGoalFollowPathSimple(Object_handles[67], Path_indexes[8], 8392704, -1, 0);
aAIGoalFollowPathSimple(Object_handles[68], Path_indexes[8], 8392704, -1, 3);
aAIGoalFollowPathSimple(Object_handles[69], Path_indexes[8], 8392704, -1, 3);
aAIGoalFollowPathSimple(Object_handles[70], Path_indexes[9], 8392960, -1, 3);
aAIGoalFollowPathSimple(Object_handles[71], Path_indexes[9], 8392704, -1, 3);
aAIGoalFollowPathSimple(Object_handles[72], Path_indexes[9], 8392960, -1, 0);
aAIGoalFollowPathSimple(Object_handles[73], Path_indexes[9], 8392704, -1, 0);
aAIGoalFollowPathSimple(Object_handles[74], Path_indexes[9], 8392960, -1, 0);
aAIGoalFollowPathSimple(Object_handles[75], Path_indexes[9], 8392960, -1, 0);
// Increment the script action counter
if (ScriptActionCtr_037 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_037++;
}
// Script 060: INIT Hub Terminals
if (1) {
aLightningCreate(Object_handles[76], Object_handles[77], 99999.000000f, 5.000000f, 1, Texture_indexes[1],
0.400000f, 2, 255, 150, 255, 0);
aLightningCreate(Object_handles[76], Object_handles[77], 99999.000000f, 3.500000f, 1, Texture_indexes[3],
0.800000f, 2, 100, 100, 255, 0);
aLightningCreate(Object_handles[78], Object_handles[79], 99999.000000f, 5.000000f, 1, Texture_indexes[1],
0.400000f, 2, 255, 150, 255, 0);
aLightningCreate(Object_handles[78], Object_handles[79], 99999.000000f, 3.500000f, 1, Texture_indexes[3],
0.800000f, 2, 100, 100, 255, 0);
aObjGhostSet(1, Object_handles[80]);
aObjGhostSet(1, Object_handles[81]);
// Increment the script action counter
if (ScriptActionCtr_060 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_060++;
}
// Script 028: INIT Main Power Array
if (1) {
aUserFlagSet(7, 0);
aUserFlagSet(6, 0);
aObjMakeInvuln(Object_handles[139], 99999);
aObjMakeInvuln(Object_handles[140], 99999);
aObjMakeInvuln(Object_handles[141], 99999);
aObjMakeInvuln(Object_handles[142], 99999);
aObjMakeInvuln(Object_handles[3], 99999);
aObjMakeInvuln(Object_handles[2], 99999);
aObjMakeInvuln(Object_handles[1], 99999);
aObjMakeInvuln(Object_handles[0], 99999);
aObjMakeInvuln(Object_handles[7], 99999);
aObjMakeInvuln(Object_handles[6], 99999);
aObjMakeInvuln(Object_handles[5], 99999);
aObjMakeInvuln(Object_handles[4], 99999);
aLightningCreate(Object_handles[143], Object_handles[7], 99999.000000f, 3.000000f, 1, Texture_indexes[1],
0.500000f, 3, 200, 100, 255, 0);
aLightningCreate(Object_handles[144], Object_handles[6], 99999.000000f, 3.000000f, 1, Texture_indexes[1],
0.500000f, 3, 200, 100, 255, 0);
aLightningCreate(Object_handles[145], Object_handles[5], 99999.000000f, 3.000000f, 1, Texture_indexes[1],
0.500000f, 3, 200, 100, 255, 0);
aLightningCreate(Object_handles[146], Object_handles[4], 99999.000000f, 3.000000f, 1, Texture_indexes[1],
0.500000f, 3, 200, 100, 255, 0);
aLightningCreate(Object_handles[147], Object_handles[148], 99999.000000f, 4.500000f, 2, Texture_indexes[1],
0.400000f, 3, 200, 150, 100, 0);
aLightningCreate(Object_handles[149], Object_handles[150], 99999.000000f, 3.500000f, 2, Texture_indexes[0],
0.500000f, 3, 0, 150, 250, 0);
// Increment the script action counter
if (ScriptActionCtr_028 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_028++;
}
// Script 063: Music-Level Start (Intro)
if (1) {
aMusicSetRegionAll(0);
// Increment the script action counter
if (ScriptActionCtr_063 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_063++;
}
} break;
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 002: RockWall Detonation
if (event_data->id == 13) {
aTurnOnSpew(Object_handles[27], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.300000f, 0.090000f, 0.700000f,
14.000000f, 100.000000f, 0, -1);
aTurnOnSpew(Object_handles[28], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, 0.600000f,
22.000000f, 60.000000f, 0, -1);
aObjMakeVulnerable(Object_handles[14]);
aObjDestroy(Object_handles[14]);
aSoundPlayObject(Sound_indexes[1], Object_handles[13], 1.000000f);
aMiscViewerShake(50.000000f);
aSetObjectTimer(Object_handles[13], 0.350000f, 3);
aSetObjectTimer(Object_handles[13], 2.000000f, 1);
// Increment the script action counter
if (ScriptActionCtr_002 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_002++;
}
// Script 030: Rolling Ball Hit Part2
if ((ScriptActionCtr_030 < 1) && (event_data->id == 21)) {
aRoomSetWind(Room_indexes[30], 0.000000f, 0.000000f, 0.000000f, 1.000000f);
aMiscViewerShake(40.000000f);
// Increment the script action counter
if (ScriptActionCtr_030 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_030++;
}
// Script 022: LeftLab Infection-On
if (event_data->id == 4) {
cRegionSetLightingFlicker(1, 0);
aSetLevelTimer(qRandomValue(2.000000f, 4.000000f), 5);
// Increment the script action counter
if (ScriptActionCtr_022 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_022++;
}
// Script 009: LeftLab Infection-Off
if (event_data->id == 5) {
cRegionSetLightingFlicker(0, 0);
aSetLevelTimer(qRandomValue(3.000000f, 6.000000f), 4);
// Increment the script action counter
if (ScriptActionCtr_009 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_009++;
}
// Script 011: LeftLab Infection Door
if (event_data->id == 8) {
cMalfunctionRegionDoors(0);
aSetLevelTimer(qRandomValue(3.000000f, 7.000000f), 8);
// Increment the script action counter
if (ScriptActionCtr_011 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_011++;
}
// Script 016: RightLab Infection-On
if (event_data->id == 6) {
cRegionSetLightingFlicker(1, 1);
aSetLevelTimer(qRandomValue(2.000000f, 4.000000f), 7);
// Increment the script action counter
if (ScriptActionCtr_016 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_016++;
}
// Script 021: RightLab Infection-Off
if (event_data->id == 7) {
cRegionSetLightingFlicker(0, 1);
aSetLevelTimer(qRandomValue(3.000000f, 6.000000f), 6);
// Increment the script action counter
if (ScriptActionCtr_021 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_021++;
}
// Script 023: RightLab Infection Door
if (event_data->id == 12) {
cMalfunctionRegionDoors(1);
aSetLevelTimer(qRandomValue(3.000000f, 7.000000f), 12);
// Increment the script action counter
if (ScriptActionCtr_023 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_023++;
}
// Script 049: Creeper Timer Events
if (1) {
cExecTimerEvent(event_data->id);
// Increment the script action counter
if (ScriptActionCtr_049 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_049++;
}
// Script 034: End Level in 10 seconds!
if (event_data->id == 14) {
aShowColoredHUDMessage(255, 0, 0, Message_strings[15]);
// Increment the script action counter
if (ScriptActionCtr_034 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_034++;
}
// Script 035: Failed
if ((ScriptActionCtr_035 < 1) && (event_data->id == 23)) {
aGoalFailed(Goal_indexes[6], 1);
aFailLevel();
// Increment the script action counter
if (ScriptActionCtr_035 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_035++;
}
// Script 039: End Level Failure
if ((ScriptActionCtr_039 < 1) && (event_data->id == 16)) {
aSetLevelTimer(3.800000f, 23);
aFadeWhiteAndEndlevel(4.000000f, Message_strings[2]);
// Increment the script action counter
if (ScriptActionCtr_039 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_039++;
}
// Script 054: Exit Shaker
if (event_data->id == 19) {
aMiscViewerShake(qRandomValue(40.000000f, 70.000000f));
aSetLevelTimer(qRandomValue(1.500000f, 3.500000f), 19);
// Increment the script action counter
if (ScriptActionCtr_054 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_054++;
}
} break;
case EVT_LEVEL_GOAL_COMPLETE: {
tOSIRISEVTLEVELGOALCOMPLETE *event_data = &data->evt_level_goal_complete;
// Script 041: Both Hubs Infected
if ((ScriptActionCtr_041 < 1) && ((qUserFlag(1) == 1) && (qUserFlag(0) == 1))) {
aShowHUDMessage(Message_strings[10]);
aDoorSetPos(Door_handles[0], 0.800000f);
// Increment the script action counter
if (ScriptActionCtr_041 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_041++;
}
} break;
case EVT_PLAYER_MOVIE_END: {
tOSIRISEVTPLAYERMOVIEEND *event_data = &data->evt_player_movie_end;
// Script 026: EndMovie-2
if ((ScriptActionCtr_026 < 1) && (1)) {
aObjGhostSet(0, Object_handles[15]);
aLightningTurnOn(0.100000f, 0.080000f);
aTurnOnSpew(Object_handles[169], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.400000f, 0.100000f, 10.000000f,
7.000000f, 50.000000f, 0, -1);
aTurnOnSpew(Object_handles[170], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.400000f, 0.100000f, 10.000000f,
7.000000f, 50.000000f, 0, -1);
aObjSpark(Object_handles[171], 30.000000f, 10.000000f);
aObjSpark(Object_handles[172], 30.000000f, 10.000000f);
aObjSpark(Object_handles[173], 30.000000f, 10.000000f);
aStartEndlevelSequencePath(Path_indexes[12], Path_indexes[13], 8.000000f, Message_strings[2]);
// Increment the script action counter
if (ScriptActionCtr_026 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_026++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_11C4::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_AIN_MOVIE_END: {
tOSIRISEVTAINOTIFY *event_data = &data->evt_ain_movie_end;
// Script 073: IntroCam-2
if (1) {
aMusicSetRegionAll(1);
aSetObjectTimer(Object_handles[17], 2.000000f, -1);
aAISetMaxSpeed(Object_handles[18], 16.000000f);
aAIGoalFollowPathSimple(Object_handles[18], Path_indexes[3], 4352, -1, 3);
aTurnOnSpew(Object_handles[19], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, 10.000000f,
5.000000f, 30.000000f, 0, -1);
aTurnOnSpew(Object_handles[20], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, 10.000000f,
5.000000f, 30.000000f, 0, -1);
aCinematicSimple(Path_indexes[4], Message_strings[2], Object_handles[21], 8.000000f, 1);
// Increment the script action counter
if (ScriptActionCtr_073 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_073++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_1088::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 077: Intro2 Spark
if (1) {
aTurnOnSpew(Object_handles[22], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 20.000000f,
4.000000f, 30.000000f, 0, -1);
aTurnOnSpew(Object_handles[23], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 20.000000f,
4.000000f, 30.000000f, 0, -1);
aEmitSparks(80.000000f, Object_handles[17]);
// Increment the script action counter
if (ScriptActionCtr_077 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_077++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_09C6::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_AIN_MOVIE_END: {
tOSIRISEVTAINOTIFY *event_data = &data->evt_ain_movie_end;
// Script 074: IntroCam-3
if (1) {
aCinematicSimple(Path_indexes[5], Message_strings[2], Object_handles[24], 9.000000f, 1);
// Increment the script action counter
if (ScriptActionCtr_074 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_074++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_11C5::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_AIN_MOVIE_END: {
tOSIRISEVTAINOTIFY *event_data = &data->evt_ain_movie_end;
// Script 075: IntroCam-4
if (1) {
aLightningTurnOn(0.150000f, 0.080000f);
aAISetState(0, Object_handles[25]);
aObjSetVelocity(Object_handles[25], 0.000000f, 0.000000f, -1.000000f, 120.000000f);
aPhysFlags(1, 58787840, Object_handles[25]);
aCinematicSimple(Path_indexes[6], Message_strings[2], Object_handles[26], 8.000000f, 1);
// Increment the script action counter
if (ScriptActionCtr_075 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_075++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_09C7::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_AIN_MOVIE_END: {
tOSIRISEVTAINOTIFY *event_data = &data->evt_ain_movie_end;
// Script 076: IntroCam-POST
if (1) {
aLightningTurnOn(0.200000f, 0.080000f);
aObjGhostSet(1, Object_handles[25]);
// Increment the script action counter
if (ScriptActionCtr_076 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_076++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_182E::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 029: Rolling Ball Hit Something
if ((qObjIsPlayer(event_data->it_handle) == true) || (qObjIsType(event_data->it_handle, 2) == true)) {
aObjMakeVulnerable(event_data->it_handle);
aObjKill(event_data->it_handle, 0, 1, 196832, 0.000000f, 0.000000f);
// Increment the script action counter
if (ScriptActionCtr_029 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_029++;
}
} break;
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 008: Rolling Ball Drop
if (event_data->id == 3) {
aMiscViewerShake(70.000000f);
aTurnOnSpew(Object_handles[28], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.400000f, 0.100000f, 0.800000f,
19.000000f, 80.000000f, 0, -1);
aObjSetMovementType(data->me_handle, 1);
// Increment the script action counter
if (ScriptActionCtr_008 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_008++;
}
// Script 003: Rolling Ball Shaker
if (event_data->id == 1) {
aMiscShakeArea(data->me_handle, 60.000000f, 400.000000f);
aSetObjectTimer(data->me_handle, qRandomValue(1.000000f, 2.500000f), 1);
// Increment the script action counter
if (ScriptActionCtr_003 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_003++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_0A05::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 033: Crystal Hit 4
if ((ScriptActionCtr_033 < 1) && (qObjIsPlayerWeapon(event_data->it_handle) == true)) {
aSoundPlayObject(Sound_indexes[2], data->me_handle, 1.000000f);
aSetObjectTimer(Object_handles[37], 0.000000f, -1);
aEmitSparks(50.000000f, data->me_handle);
aEmitSparks(30.000000f, Object_handles[37]);
aLightningCreate(Object_handles[37], data->me_handle, 99999.000000f, 1.500000f, 2, Texture_indexes[0], 0.500000f,
3, 180, 180, 255, 0);
aLightningCreate(data->me_handle, Object_handles[37], 99999.000000f, 1.500000f, 2, Texture_indexes[1], 1.000000f,
2, 100, 200, 255, 0);
aObjSetMovementType(data->me_handle, 1);
// Increment the script action counter
if (ScriptActionCtr_033 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_033++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_0A04::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 032: Crystal Hit 3
if ((ScriptActionCtr_032 < 1) && (qObjIsPlayerWeapon(event_data->it_handle) == true)) {
aSoundPlayObject(Sound_indexes[2], data->me_handle, 1.000000f);
aSetObjectTimer(Object_handles[37], 0.000000f, -1);
aEmitSparks(50.000000f, data->me_handle);
aEmitSparks(30.000000f, Object_handles[37]);
aLightningCreate(Object_handles[37], data->me_handle, 99999.000000f, 2.500000f, 2, Texture_indexes[0], 0.500000f,
3, 180, 180, 255, 0);
aLightningCreate(data->me_handle, Object_handles[37], 99999.000000f, 1.500000f, 2, Texture_indexes[1], 1.000000f,
2, 100, 200, 255, 0);
aObjSetMovementType(data->me_handle, 1);
// Increment the script action counter
if (ScriptActionCtr_032 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_032++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_0A03::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 024: Crystal Hit 2
if ((ScriptActionCtr_024 < 1) && (qObjIsPlayerWeapon(event_data->it_handle) == true)) {
aSoundPlayObject(Sound_indexes[2], data->me_handle, 1.000000f);
aSetObjectTimer(Object_handles[37], 0.000000f, -1);
aEmitSparks(50.000000f, data->me_handle);
aEmitSparks(30.000000f, Object_handles[37]);
aLightningCreate(Object_handles[37], data->me_handle, 99999.000000f, 2.500000f, 2, Texture_indexes[0], 0.500000f,
3, 180, 180, 255, 0);
aLightningCreate(data->me_handle, Object_handles[37], 99999.000000f, 1.500000f, 2, Texture_indexes[1], 1.000000f,
2, 100, 200, 255, 0);
aObjSetMovementType(data->me_handle, 1);
// Increment the script action counter
if (ScriptActionCtr_024 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_024++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_1A02::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 006: Crystal Hit 1
if ((ScriptActionCtr_006 < 1) && (qObjIsPlayerWeapon(event_data->it_handle) == true)) {
aSoundPlayObject(Sound_indexes[2], data->me_handle, 1.000000f);
aSetObjectTimer(Object_handles[37], 0.000000f, -1);
aEmitSparks(50.000000f, data->me_handle);
aEmitSparks(30.000000f, Object_handles[37]);
aLightningCreate(Object_handles[37], data->me_handle, 99999.000000f, 2.500000f, 2, Texture_indexes[0], 0.500000f,
3, 180, 180, 255, 0);
aLightningCreate(data->me_handle, Object_handles[37], 99999.000000f, 1.500000f, 2, Texture_indexes[1], 1.000000f,
2, 100, 200, 255, 0);
aObjSetMovementType(data->me_handle, 1);
// Increment the script action counter
if (ScriptActionCtr_006 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_006++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_1033::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 058: Crystal Complete8
if (1) {
aSoundPlayObject(Sound_indexes[3], Object_handles[42], 1.000000f);
aSoundPlayObject(Sound_indexes[4], Object_handles[43], 1.000000f);
aGoalCompleted(Goal_indexes[0], 1);
aTurnOnSpew(Object_handles[44], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.300000f, 0.100000f, -1.000000f,
3.000000f, 15.000000f, 0, -1);
aTurnOnSpew(Object_handles[45], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.300000f, 0.100000f, -1.000000f,
3.000000f, 15.000000f, 0, -1);
aTurnOnSpew(Object_handles[46], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.100000f, -1.000000f,
4.000000f, 30.000000f, 0, -1);
aTurnOnSpew(Object_handles[47], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.100000f, -1.000000f,
4.000000f, 30.000000f, 0, -1);
aTurnOnSpew(Object_handles[42], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.100000f, -1.000000f,
4.000000f, 30.000000f, 0, -1);
aObjSetLightingDist(Object_handles[43], 250.000000f);
aObjSetLightingDist(Object_handles[32], 0.000000f);
aObjGhostSet(1, Object_handles[32]);
aRoomSetWind(Room_indexes[31], 0.000000f, 0.000000f, 0.000000f, 1.000000f);
aMiscViewerShake(100.000000f);
aTurnOnSpew(Object_handles[48], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.140000f, 0.600000f,
250.000000f, 50.000000f, 0, -1);
aPortalRenderToggle(0, Room_indexes[31], 1);
// Increment the script action counter
if (ScriptActionCtr_058 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_058++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_1200::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 057: Crystal Complete7
if (1) {
aSoundStopObj(Object_handles[37]);
aSoundPlayObject(Sound_indexes[5], Object_handles[32], 1.000000f);
aSetObjectTimer(Object_handles[32], 0.250000f, -1);
aMiscViewerShake(100.000000f);
aTurnOnSpew(Object_handles[49], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.140000f, 0.600000f,
300.000000f, 200.000000f, 0, -1);
aTurnOnSpew(Object_handles[50], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.140000f, 0.600000f,
300.000000f, 200.000000f, 0, -1);
aTurnOnSpew(Object_handles[51], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.140000f, 0.600000f,
300.000000f, 200.000000f, 0, -1);
aTurnOnSpew(Object_handles[52], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.140000f, 0.600000f,
300.000000f, 200.000000f, 0, -1);
aTurnOnSpew(Object_handles[53], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.100000f, 0.140000f, 1.000000f,
300.000000f, 200.000000f, 0, -1);
aTurnOnSpew(Object_handles[54], -1, 2, 0.000000f, 0.000000f, 65536, 0, 0.900000f, 0.120000f, 0.400000f,
150.000000f, 200.000000f, 0, -1);
aTurnOnSpew(Object_handles[55], -1, 2, 0.000000f, 0.000000f, 65536, 0, 0.900000f, 0.120000f, 0.400000f,
150.000000f, 200.000000f, 0, -1);
aRoomSetWind(Room_indexes[31], 0.000000f, -1.000000f, 0.000000f, 40.000000f);
// Increment the script action counter
if (ScriptActionCtr_057 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_057++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_1036::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 048: Crystal Complete6
if (1) {
aRoomSetWind(Room_indexes[31], 0.000000f, 1.000000f, 0.000000f, 0.500000f);
aSetObjectTimer(Object_handles[48], 1.350000f, -1);
aMiscViewerShake(80.000000f);
aObjSetLightingDist(Object_handles[32], 140.000000f);
aTurnOnSpew(data->me_handle, -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.400000f, 0.100000f, 1.700000f, 22.000000f,
60.000000f, 0, -1);
// Increment the script action counter
if (ScriptActionCtr_048 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_048++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_1035::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 046: Crystal Complete5
if (1) {
aSetObjectTimer(Object_handles[56], 1.500000f, -1);
aMiscViewerShake(80.000000f);
aObjSetLightingDist(Object_handles[32], 125.000000f);
aTurnOnSpew(data->me_handle, -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.400000f, 0.100000f, 3.200000f, 22.000000f,
60.000000f, 0, -1);
// Increment the script action counter
if (ScriptActionCtr_046 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_046++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_3032::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 045: Crystal Complete4
if (1) {
aSetObjectTimer(Object_handles[57], 1.500000f, -1);
aMiscViewerShake(80.000000f);
aObjSetLightingDist(Object_handles[32], 110.000000f);
aTurnOnSpew(data->me_handle, -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.400000f, 0.100000f, 4.700000f, 22.000000f,
60.000000f, 0, -1);
// Increment the script action counter
if (ScriptActionCtr_045 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_045++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_1830::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 044: Crystal Complete3
if (1) {
aSetObjectTimer(Object_handles[58], 1.500000f, -1);
aMiscViewerShake(80.000000f);
aObjSetLightingDist(Object_handles[32], 95.000000f);
aTurnOnSpew(data->me_handle, -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.400000f, 0.100000f, 6.200000f, 22.000000f,
60.000000f, 0, -1);
// Increment the script action counter
if (ScriptActionCtr_044 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_044++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_28A2::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 007: Crystal Complete2
if (1) {
aSoundPlayObject(Sound_indexes[6], Object_handles[37], 1.000000f);
aSetObjectTimer(Object_handles[59], 2.000000f, -1);
aObjGhostSet(0, Object_handles[32]);
aObjSetLightingDist(Object_handles[32], 80.000000f);
aMiscViewerShake(80.000000f);
aEmitSparks(50.000000f, data->me_handle);
aTurnOnSpew(Object_handles[55], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.300000f, 0.100000f, 8.000000f,
12.000000f, 80.000000f, 0, -1);
aTurnOnSpew(Object_handles[54], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.300000f, 0.100000f, 8.000000f,
12.000000f, 80.000000f, 0, -1);
aTurnOnSpew(Object_handles[48], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.300000f, 0.100000f, 8.200000f,
14.000000f, 70.000000f, 0, -1);
aTurnOnSpew(Object_handles[48], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.300000f, 0.120000f, 8.200000f,
25.000000f, 50.000000f, 0, -1);
aLightningCreate(Object_handles[48], Object_handles[60], 8.100000f, 8.000000f, 1, Texture_indexes[2], 0.600000f,
3, 200, 255, 150, 0);
// Increment the script action counter
if (ScriptActionCtr_007 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_007++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_0A06::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 047: Crystal Complete1
if (((ScriptActionCtr_006 > 0) == true) && ((ScriptActionCtr_024 > 0) == true) &&
((ScriptActionCtr_032 > 0) == true) && ((ScriptActionCtr_033 > 0) == true)) {
aSetObjectTimer(Object_handles[60], 1.000000f, -1);
aMiscViewerShake(40.000000f);
aEmitSparks(80.000000f, data->me_handle);
aLightningCreate(Object_handles[48], Object_handles[37], 9.200000f, 2.000000f, 2, Texture_indexes[1], 0.400000f,
3, 100, 200, 255, 0);
aLightningCreate(Object_handles[60], Object_handles[37], 99999.000000f, 2.000000f, 1, Texture_indexes[1],
0.500000f, 3, 100, 200, 255, 0);
// Increment the script action counter
if (ScriptActionCtr_047 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_047++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_2885::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 078: LeftDataArm Hit-1
if ((ScriptActionCtr_078 < 1) && ((qObjIsPlayerWeapon(event_data->it_handle) == true) && (1))) {
aObjSpark(Object_handles[83], 50.000000f, 5.000000f);
aObjSpark(Object_handles[78], 50.000000f, 5.000000f);
aTurnOnSpew(Object_handles[83], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 3.000000f, 3.000000f,
15.000000f, 0, -1);
aTurnOnSpew(Object_handles[78], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 3.000000f, 3.000000f,
15.000000f, 0, -1);
aObjDelete(Object_handles[79]);
aShowHUDMessage(Message_strings[4]);
aSoundPlayObject(Sound_indexes[7], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 1, 5, 4.000000f, 0);
// Increment the script action counter
if (ScriptActionCtr_078 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_078++;
}
// Script 059: LeftDataArm Hit-2
if ((qObjIsPlayerWeapon(event_data->it_handle) == true) && (qObjAnimFrame(data->me_handle) == 5.000000f) &&
(qGoalCompleted(Goal_indexes[1]) == false)) {
if ((qUserFlag(0) == false) && (qUserFlag(14) == true)) {
aTurnOnSpew(Object_handles[84], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, -1.000000f,
3.000000f, 15.000000f, 0, -1);
aPortalBreakGlass(0, Room_indexes[32]);
aPortalBreakGlass(0, Room_indexes[33]);
aPortalBreakGlass(0, Room_indexes[34]);
aAISetTeam(65536, Object_handles[85]);
aAISetTeam(131072, Object_handles[86]);
aAISetTeam(131072, Object_handles[87]);
aAISetTeam(131072, Object_handles[88]);
aAISetTeam(131072, Object_handles[89]);
aAISetTeam(131072, Object_handles[90]);
aAISetTeam(65536, Object_handles[91]);
aAISetTeam(131072, Object_handles[92]);
aAISetTeam(196608, Object_handles[93]);
aAISetTeam(131072, Object_handles[94]);
aAISetTeam(131072, Object_handles[95]);
aAISetTeam(65536, Object_handles[96]);
aAISetTeam(131072, Object_handles[97]);
aMiscViewerShake(80.000000f);
aTurnOnSpew(Object_handles[98], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, -1.000000f,
5.000000f, 30.000000f, 0, -1);
aTurnOnSpew(Object_handles[99], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, -1.000000f,
5.000000f, 30.000000f, 0, -1);
aSoundPlayObject(Sound_indexes[7], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 5, 9, 4.000000f, 0);
aUserFlagSet(0, 1);
aGoalCompleted(Goal_indexes[1], 1);
aObjSpark(Object_handles[78], 30.000000f, 99999.000000f);
aObjSpark(Object_handles[83], 30.000000f, 99999.000000f);
aObjSpark(Object_handles[80], 60.000000f, 99999.000000f);
aLightningCreate(Object_handles[83], Object_handles[78], 99999.000000f, 5.000000f, 1, Texture_indexes[1],
0.400000f, 2, 255, 150, 255, 0);
aLightningCreate(Object_handles[78], Object_handles[80], 99999.000000f, 3.000000f, 1, Texture_indexes[4],
0.600000f, 3, 255, 255, 255, 0);
aLightningCreate(Object_handles[83], Object_handles[80], 99999.000000f, 3.000000f, 1, Texture_indexes[4],
0.600000f, 3, 255, 255, 255, 0);
aSetLevelTimer(2.000000f, 4);
aSetLevelTimer(2.000000f, 8);
aRoomFogSetState(1, Room_indexes[35]);
aRoomSetFog(Room_indexes[35], 0.250000f, 0.000000f, 0.500000f, 300.000000f);
cFogRegion(0, 0.250000f, 0.000000f, 0.500000f, 1000.000000f);
cChangeFogRegion(0, 0.250000f, 0.000000f, 0.500000f, 300.000000f, 20.000000f);
aTurnOnSpew(Object_handles[100], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 0);
aTurnOnSpew(Object_handles[101], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 1);
aTurnOnSpew(Object_handles[102], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 2);
aTurnOnSpew(Object_handles[103], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 3);
aTurnOnSpew(Object_handles[104], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 4);
aTurnOnSpew(Object_handles[105], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 5);
aTurnOnSpew(Object_handles[106], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 6);
aTurnOnSpew(Object_handles[107], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 7);
aTurnOnSpew(Object_handles[108], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 8);
aTurnOnSpew(Object_handles[109], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 9);
aTurnOnSpew(Object_handles[110], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 10);
aShowHUDMessage(Message_strings[5]);
} else {
aShowHUDMessage(Message_strings[6]);
}
// Increment the script action counter
if (ScriptActionCtr_059 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_059++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_107E::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 013: RightDataArm Hit-1
if ((ScriptActionCtr_013 < 1) && ((qObjIsPlayerWeapon(event_data->it_handle) == true) && (1))) {
aObjSpark(Object_handles[76], 50.000000f, 5.000000f);
aObjSpark(Object_handles[112], 50.000000f, 5.000000f);
aTurnOnSpew(Object_handles[76], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 3.000000f, 3.000000f,
15.000000f, 0, -1);
aTurnOnSpew(Object_handles[112], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 3.000000f, 3.000000f,
15.000000f, 0, -1);
aObjDelete(Object_handles[77]);
aShowHUDMessage(Message_strings[4]);
aSoundPlayObject(Sound_indexes[7], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 1, 5, 4.000000f, 0);
// Increment the script action counter
if (ScriptActionCtr_013 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_013++;
}
// Script 014: RightDataArm Hit-2
if ((qObjIsPlayerWeapon(event_data->it_handle) == true) && (qObjAnimFrame(data->me_handle) == 5.000000f) &&
(qGoalCompleted(Goal_indexes[2]) == false)) {
if ((qUserFlag(1) == false) && (qUserFlag(15) == true)) {
aTurnOnSpew(Object_handles[113], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, -1.000000f,
3.000000f, 15.000000f, 0, -1);
aAISetTeam(131072, Object_handles[114]);
aAISetTeam(131072, Object_handles[115]);
aAISetTeam(65536, Object_handles[116]);
aAISetTeam(131072, Object_handles[117]);
aAISetTeam(65536, Object_handles[118]);
aAISetTeam(131072, Object_handles[119]);
aAISetTeam(196608, Object_handles[120]);
aAISetTeam(131072, Object_handles[121]);
aAISetTeam(131072, Object_handles[122]);
aAISetTeam(65536, Object_handles[123]);
aAISetTeam(131072, Object_handles[124]);
aAISetTeam(131072, Object_handles[124]);
aMiscViewerShake(80.000000f);
aObjPlayAnim(data->me_handle, 5, 9, 4.000000f, 0);
aSoundPlayObject(Sound_indexes[7], data->me_handle, 1.000000f);
aObjSpark(Object_handles[81], 60.000000f, 99999.000000f);
aObjSpark(Object_handles[76], 30.000000f, 99999.000000f);
aObjSpark(Object_handles[112], 30.000000f, 99999.000000f);
aLightningCreate(Object_handles[76], Object_handles[81], 99999.000000f, 3.000000f, 1, Texture_indexes[4],
0.600000f, 3, 255, 255, 255, 0);
aLightningCreate(Object_handles[112], Object_handles[81], 99999.000000f, 3.000000f, 1, Texture_indexes[4],
0.600000f, 3, 255, 255, 255, 0);
aLightningCreate(Object_handles[112], Object_handles[76], 99999.000000f, 5.000000f, 1, Texture_indexes[1],
0.400000f, 2, 255, 150, 255, 0);
aUserFlagSet(1, 1);
aGoalCompleted(Goal_indexes[2], 1);
aSetLevelTimer(2.000000f, 6);
aSetLevelTimer(2.000000f, 12);
cFogRegion(1, 0.500000f, 0.000000f, 0.250000f, 1000.000000f);
cChangeFogRegion(1, 0.500000f, 0.000000f, 0.250000f, 300.000000f, 20.000000f);
aTurnOnSpew(Object_handles[125], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, -1.000000f,
5.000000f, 30.000000f, 0, -1);
aTurnOnSpew(Object_handles[126], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, -1.000000f,
5.000000f, 30.000000f, 0, -1);
aTurnOnSpew(Object_handles[127], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 11);
aTurnOnSpew(Object_handles[128], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 12);
aTurnOnSpew(Object_handles[129], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 13);
aTurnOnSpew(Object_handles[130], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 14);
aTurnOnSpew(Object_handles[131], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 15);
aTurnOnSpew(Object_handles[132], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 16);
aTurnOnSpew(Object_handles[133], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 17);
aTurnOnSpew(Object_handles[134], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 18);
aTurnOnSpew(Object_handles[135], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 20);
aTurnOnSpew(Object_handles[136], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 21);
aTurnOnSpew(Object_handles[137], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 22);
aTurnOnSpew(Object_handles[138], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f,
4.000000f, 20.000000f, 1, 23);
aShowHUDMessage(Message_strings[7]);
} else {
aShowHUDMessage(Message_strings[6]);
}
// Increment the script action counter
if (ScriptActionCtr_014 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_014++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_1185::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 036: PICKUP Virus
if (qObjIsPlayer(event_data->it_handle) == true) {
aAddObjectToInventoryNamed(data->me_handle, event_data->it_handle, Message_strings[0], 0);
// Increment the script action counter
if (ScriptActionCtr_036 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_036++;
}
} break;
case EVT_USE: {
tOSIRISEVTUSE *event_data = &data->evt_use;
// Script 018: Hub Virus Placement
if (1) {
if ((qObjGetDistance(event_data->it_handle, Object_handles[80]) < 40.000000f) && (qUserFlag(14) == false) &&
((ScriptActionCtr_078 > 0) == true)) {
aShowHUDMessage(Message_strings[8]);
aUserFlagSet(14, 1);
aSoundPlayObject(Sound_indexes[8], Object_handles[80], 1.000000f);
aObjGhostSet(0, Object_handles[80]);
aEmitSparks(80.000000f, Object_handles[80]);
} else {
if ((qObjGetDistance(event_data->it_handle, Object_handles[81]) < 40.000000f) && (qUserFlag(15) == false) &&
((ScriptActionCtr_013 > 0) == true)) {
aShowHUDMessage(Message_strings[8]);
aUserFlagSet(15, 1);
aSoundPlayObject(Sound_indexes[8], Object_handles[81], 1.000000f);
aObjGhostSet(0, Object_handles[81]);
aEmitSparks(80.000000f, Object_handles[81]);
} else {
aObjGhostSet(0, data->me_handle);
aAddObjectToInventoryNamed(data->me_handle, event_data->it_handle, Message_strings[0], 0);
aShowColoredHUDMessageObj(255, 0, 0, Message_strings[9], event_data->it_handle);
}
}
// Increment the script action counter
if (ScriptActionCtr_018 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_018++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_21B2::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 050: PICKUP Virus 2
if (qObjIsPlayer(event_data->it_handle) == true) {
aAddObjectToInventoryNamed(data->me_handle, event_data->it_handle, Message_strings[0], 0);
// Increment the script action counter
if (ScriptActionCtr_050 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_050++;
}
} break;
case EVT_USE: {
tOSIRISEVTUSE *event_data = &data->evt_use;
// Script 051: Hub Virus Placement 2
if (1) {
if ((qObjGetDistance(event_data->it_handle, Object_handles[80]) < 40.000000f) && (qUserFlag(14) == false) &&
((ScriptActionCtr_078 > 0) == true)) {
aShowHUDMessage(Message_strings[8]);
aUserFlagSet(14, 1);
aSoundPlayObject(Sound_indexes[8], Object_handles[80], 1.000000f);
aObjGhostSet(0, Object_handles[80]);
aEmitSparks(80.000000f, Object_handles[80]);
} else {
if ((qObjGetDistance(event_data->it_handle, Object_handles[81]) < 40.000000f) && (qUserFlag(15) == false) &&
((ScriptActionCtr_013 > 0) == true)) {
aShowHUDMessage(Message_strings[8]);
aUserFlagSet(15, 1);
aSoundPlayObject(Sound_indexes[8], Object_handles[81], 1.000000f);
aObjGhostSet(0, Object_handles[81]);
aEmitSparks(80.000000f, Object_handles[81]);
} else {
aObjGhostSet(0, data->me_handle);
aAddObjectToInventoryNamed(data->me_handle, event_data->it_handle, Message_strings[0], 0);
aShowColoredHUDMessageObj(255, 0, 0, Message_strings[9], event_data->it_handle);
}
}
// Increment the script action counter
if (ScriptActionCtr_051 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_051++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_09DE::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 084: Receptor Switch4
if ((ScriptActionCtr_084 < 1) && (qObjIsPlayerWeapon(event_data->it_handle) == 1)) {
aMiscShakeArea(data->me_handle, 40.000000f, 200.000000f);
aObjDelete(Object_handles[143]);
aTurnOnSpew(Object_handles[3], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, 2.000000f, 2.500000f,
15.000000f, 0, -1);
aTurnOnSpew(Object_handles[7], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, -1.000000f, 2.500000f,
15.000000f, 0, 4);
aSetObjectTimer(Object_handles[3], 2.000000f, -1);
aSoundPlayObject(Sound_indexes[9], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 0, 4, 2.000000f, 0);
// Increment the script action counter
if (ScriptActionCtr_084 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_084++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_09DD::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 083: Receptor Switch3
if ((ScriptActionCtr_083 < 1) && (qObjIsPlayerWeapon(event_data->it_handle) == 1)) {
aMiscShakeArea(data->me_handle, 40.000000f, 200.000000f);
aObjDelete(Object_handles[144]);
aTurnOnSpew(Object_handles[2], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, 2.000000f, 2.500000f,
15.000000f, 0, -1);
aTurnOnSpew(Object_handles[6], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, -1.000000f, 2.500000f,
15.000000f, 0, 3);
aSetObjectTimer(Object_handles[2], 2.000000f, -1);
aSoundPlayObject(Sound_indexes[9], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 0, 4, 2.000000f, 0);
// Increment the script action counter
if (ScriptActionCtr_083 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_083++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_09DC::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 082: Receptor Switch2
if ((ScriptActionCtr_082 < 1) && (qObjIsPlayerWeapon(event_data->it_handle) == 1)) {
aObjDelete(Object_handles[145]);
aTurnOnSpew(Object_handles[1], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, 2.000000f, 2.500000f,
15.000000f, 0, -1);
aTurnOnSpew(Object_handles[5], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, -1.000000f, 2.500000f,
15.000000f, 0, 2);
aSetObjectTimer(Object_handles[1], 2.000000f, -1);
aSoundPlayObject(Sound_indexes[9], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 0, 4, 2.000000f, 0);
aMiscShakeArea(data->me_handle, 40.000000f, 200.000000f);
// Increment the script action counter
if (ScriptActionCtr_082 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_082++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_21DA::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 019: Receptor Switch1
if ((ScriptActionCtr_019 < 1) && (qObjIsPlayerWeapon(event_data->it_handle) == 1)) {
aObjDelete(Object_handles[146]);
aTurnOnSpew(Object_handles[0], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, 2.000000f, 2.500000f,
15.000000f, 0, -1);
aTurnOnSpew(Object_handles[4], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, -1.000000f, 2.500000f,
15.000000f, 0, 1);
aSetObjectTimer(Object_handles[0], 2.000000f, -1);
aSoundPlayObject(Sound_indexes[9], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 0, 4, 2.000000f, 0);
aMiscShakeArea(data->me_handle, 40.000000f, 200.000000f);
// Increment the script action counter
if (ScriptActionCtr_019 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_019++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_0899::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 081: Receptor NodeShutdown4
if ((ScriptActionCtr_081 < 1) && (1)) {
aObjPlayAnim(Object_handles[7], 1, 2, 1.000000f, 0);
aObjSpark(data->me_handle, 50.000000f, 2.000000f);
aSoundPlayObject(Sound_indexes[8], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 5, 6, 1.000000f, 0);
// Increment the script action counter
if (ScriptActionCtr_081 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_081++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_089A::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 080: Receptor NodeShutdown3
if ((ScriptActionCtr_080 < 1) && (1)) {
aObjPlayAnim(Object_handles[6], 1, 2, 1.000000f, 0);
aObjSpark(data->me_handle, 50.000000f, 2.000000f);
aSoundPlayObject(Sound_indexes[8], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 5, 6, 1.000000f, 0);
// Increment the script action counter
if (ScriptActionCtr_080 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_080++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_089B::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 079: Receptor NodeShutdown2
if ((ScriptActionCtr_079 < 1) && (1)) {
aObjPlayAnim(Object_handles[5], 1, 2, 1.000000f, 0);
aObjSpark(data->me_handle, 50.000000f, 2.000000f);
aSoundPlayObject(Sound_indexes[8], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 5, 6, 1.000000f, 0);
// Increment the script action counter
if (ScriptActionCtr_079 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_079++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_1098::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 020: Receptor NodeShutdown1
if ((ScriptActionCtr_020 < 1) && (1)) {
aObjPlayAnim(Object_handles[4], 1, 2, 1.000000f, 0);
aObjSpark(data->me_handle, 50.000000f, 2.000000f);
aSoundPlayObject(Sound_indexes[8], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 5, 6, 1.000000f, 0);
// Increment the script action counter
if (ScriptActionCtr_020 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_020++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_09A1::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 085: Restore Power
if ((qObjIsPlayerWeapon(event_data->it_handle) == true) && (qUserFlag(7) == false)) {
if (((ScriptActionCtr_086 > 0) == true) && (1)) {
aSetLevelTimer(50.000000f, 14);
aSetLevelTimer(60.000000f, 16);
aTimerShow(16);
aSetObjectTimer(Object_handles[156], 1.000000f, -1);
aSetObjectTimer(Object_handles[155], 4.000000f, -1);
aDoorSetPos(Door_handles[0], 0.000000f);
aObjPlayAnim(Object_handles[7], 2, 3, 1.000000f, 0);
aObjPlayAnim(Object_handles[6], 2, 3, 1.000000f, 0);
aObjPlayAnim(Object_handles[5], 2, 3, 1.000000f, 0);
aObjPlayAnim(Object_handles[4], 2, 3, 1.000000f, 0);
aGoalCompleted(Goal_indexes[3], 1);
aUserFlagSet(7, 1);
aShowHUDMessage(Message_strings[11]);
aSoundPlayObject(Sound_indexes[10], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 0, 3, 3.000000f, 0);
} else {
if (qUserFlag(7) == false) {
aShowHUDMessage(Message_strings[12]);
}
}
// Increment the script action counter
if (ScriptActionCtr_085 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_085++;
}
} break;
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 088: RestorePower3
if (1) {
aSetLevelTimer(4.000000f, 19);
aObjSpark(Object_handles[7], 20.000000f, 5.000000f);
aObjSpark(Object_handles[6], 20.000000f, 5.000000f);
aObjSpark(Object_handles[5], 20.000000f, 5.000000f);
aObjSpark(Object_handles[4], 20.000000f, 5.000000f);
aLightningCreate(Object_handles[5], Object_handles[141], 99999.000000f, 3.000000f, 2, Texture_indexes[4],
0.500000f, 2, 255, 255, 255, 0);
aLightningCreate(Object_handles[6], Object_handles[140], 99999.000000f, 3.000000f, 2, Texture_indexes[4],
0.500000f, 2, 255, 255, 255, 0);
aLightningCreate(Object_handles[4], Object_handles[142], 99999.000000f, 3.000000f, 2, Texture_indexes[4],
0.500000f, 2, 255, 255, 255, 0);
aLightningCreate(Object_handles[7], Object_handles[139], 99999.000000f, 3.000000f, 2, Texture_indexes[4],
0.500000f, 2, 255, 255, 255, 0);
aMiscShakeArea(Object_handles[150], 80.000000f, 500.000000f);
// Increment the script action counter
if (ScriptActionCtr_088 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_088++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_19A0::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 086: Shutdown Power
if ((qObjIsPlayerWeapon(event_data->it_handle) == true) && (qUserFlag(6) == false)) {
if (((ScriptActionCtr_084 > 0) == true) && ((ScriptActionCtr_083 > 0) == true) &&
((ScriptActionCtr_082 > 0) == true) && ((ScriptActionCtr_019 > 0) == true)) {
aObjSetLightingColor(Object_handles[157], 1.000000f, 0.200000f, 0.200000f);
aObjSetLightingColor(Object_handles[158], 1.000000f, 0.200000f, 0.200000f);
aRoomSetLightingPulse(Room_indexes[36], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[37], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[38], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[39], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[40], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[41], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[42], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[43], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[44], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[45], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[46], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[47], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[48], 20.000000f, 0.000000f);
aRoomSetLightingPulse(Room_indexes[49], 20.000000f, 0.000000f);
aMiscShakeArea(Object_handles[150], 80.000000f, 200.000000f);
aTurnOnSpew(Object_handles[150], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, -1.000000f,
2.500000f, 15.000000f, 0, -1);
aTurnOnSpew(Object_handles[147], 0, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.100000f, -1.000000f,
2.500000f, 15.000000f, 0, -1);
aGoalCompleted(Goal_indexes[4], 1);
aUserFlagSet(6, 1);
aAISetState(0, Object_handles[159]);
aAISetState(0, Object_handles[160]);
aAISetState(0, Object_handles[161]);
aAISetState(0, Object_handles[162]);
aTurnOffSpew(1);
aTurnOffSpew(2);
aTurnOffSpew(3);
aTurnOffSpew(4);
aObjDelete(Object_handles[149]);
aObjDelete(Object_handles[148]);
aObjSpark(Object_handles[150], 30.000000f, 99999.000000f);
aObjSpark(Object_handles[147], 30.000000f, 99999.000000f);
aShowHUDMessage(Message_strings[13]);
aSoundPlayObject(Sound_indexes[4], Object_handles[158], 1.000000f);
aSoundPlayObject(Sound_indexes[4], Object_handles[157], 1.000000f);
aSoundPlayObject(Sound_indexes[10], data->me_handle, 1.000000f);
aObjPlayAnim(data->me_handle, 0, 3, 3.000000f, 0);
} else {
if (qUserFlag(6) == false) {
aShowHUDMessage(Message_strings[14]);
}
}
// Increment the script action counter
if (ScriptActionCtr_086 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_086++;
}
} break;
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 087: RestorePower2
if (1) {
aObjPlayAnim(Object_handles[139], 0, 3, 3.000000f, 0);
aObjPlayAnim(Object_handles[140], 0, 3, 3.000000f, 0);
aObjPlayAnim(Object_handles[141], 0, 3, 3.000000f, 0);
aObjPlayAnim(Object_handles[142], 0, 3, 3.000000f, 0);
aObjSpark(Object_handles[139], 25.000000f, 5.000000f);
aObjSpark(Object_handles[140], 25.000000f, 5.000000f);
aObjSpark(Object_handles[141], 25.000000f, 5.000000f);
aObjSpark(Object_handles[142], 25.000000f, 5.000000f);
// Increment the script action counter
if (ScriptActionCtr_087 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_087++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_09C9::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 025: EndMovie-1
if ((ScriptActionCtr_025 < 1) && (1)) {
aSetObjectTimer(Object_handles[164], 1.200000f, -1);
aTurnOnSpew(Object_handles[165], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 3.000000f,
3.000000f, 20.000000f, 0, -1);
aTurnOnSpew(Object_handles[166], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.120000f, 10.000000f,
4.000000f, 30.000000f, 0, -1);
aTurnOnSpew(Object_handles[167], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.120000f, 10.000000f,
4.000000f, 30.000000f, 0, -1);
aTurnOnSpew(Object_handles[168], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 3.000000f,
3.000000f, 20.000000f, 0, -1);
aCinematicIntro(Path_indexes[10], Message_strings[2], Object_handles[39], Path_indexes[11], 8.000000f);
// Increment the script action counter
if (ScriptActionCtr_025 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_025++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_1007::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 027: EndMovie-1 Door Open
if (1) {
aTurnOnSpew(Object_handles[166], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 10.000000f,
5.000000f, 30.000000f, 0, -1);
aTurnOnSpew(Object_handles[167], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 10.000000f,
5.000000f, 30.000000f, 0, -1);
aDoorSetPos(Door_handles[1], 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_027 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_027++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t CustomObjectScript_1016::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 015: BrokenDoor
if (1) {
aEmitSparks(qRandomValue(10.000000f, 50.000000f), data->me_handle);
// Increment the script action counter
if (ScriptActionCtr_015 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_015++;
return CONTINUE_DEFAULT;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t TriggerScript_000F::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 001: Rolling Ball Initiator
if ((ScriptActionCtr_001 < 1) && (1)) {
aShowHUDMessageObj(Message_strings[3], event_data->it_handle);
aSoundPlayObject(Sound_indexes[0], Object_handles[14], 1.000000f);
aMiscViewerShake(60.000000f);
aSetLevelTimer(1.000000f, 13);
// Increment the script action counter
if (ScriptActionCtr_001 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_001++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t TriggerScript_0000::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 004: Rolling Ball Detonation
if ((ScriptActionCtr_004 < 1) && (event_data->it_handle == Object_handles[13])) {
aTurnOnSpew(Object_handles[29], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.300000f, 0.120000f, 0.800000f,
32.000000f, 70.000000f, 0, -1);
aTurnOnSpew(Object_handles[29], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.400000f, 0.100000f, 0.500000f,
20.000000f, 110.000000f, 0, -1);
aTurnOnSpew(Object_handles[30], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.400000f, 0.100000f, 0.700000f,
22.000000f, 100.000000f, 0, -1);
aTurnOnSpew(Object_handles[31], -1, 2, 0.000000f, 0.000000f, 65536, 0, 1.400000f, 0.100000f, 0.700000f,
22.000000f, 100.000000f, 0, -1);
aSetLevelTimer(0.300000f, 21);
aRoomSetWind(Room_indexes[30], 0.000000f, 1.000000f, 0.000000f, 15.000000f);
aObjMakeVulnerable(event_data->it_handle);
aMiscViewerShake(100.000000f);
aObjKill(event_data->it_handle, 0, 2, 524384, 0.000000f, 0.000000f);
// Increment the script action counter
if (ScriptActionCtr_004 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_004++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t TriggerScript_0010::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 038: Exit Level
if ((ScriptActionCtr_038 < 1) &&
((qObjIsPlayer(event_data->it_handle) == 1) && ((ScriptActionCtr_085 > 0) == true))) {
aCancelTimer(16);
aGoalCompleted(Goal_indexes[5], 1);
aGoalCompleted(Goal_indexes[6], 1);
aSetObjectTimer(Object_handles[163], 0.000000f, -1);
// Increment the script action counter
if (ScriptActionCtr_038 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_038++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t TriggerScript_000E::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 071: Music-Level11
if (1) {
aMusicSetRegion(5, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_071 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_071++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t TriggerScript_000D::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 070: Music-Level22
if (1) {
aMusicSetRegion(4, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_070 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_070++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t TriggerScript_000B::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 069: Music-Level21
if (1) {
aMusicSetRegion(4, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_069 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_069++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t TriggerScript_0009::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 068: Music-Level32
if (1) {
aMusicSetRegion(3, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_068 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_068++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t TriggerScript_000C::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 067: Music-Level31
if (1) {
aMusicSetRegion(3, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_067 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_067++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t TriggerScript_000A::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 066: Music-Temple21
if (1) {
aMusicSetRegion(2, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_066 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_066++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t TriggerScript_0007::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 065: Music-Temple1
if (1) {
aMusicSetRegion(2, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_065 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_065++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
int16_t TriggerScript_0008::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 064: Music-Outside1
if (1) {
aMusicSetRegion(1, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_064 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_064++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
/*********************************************************
Script Save Block: DO NOT TOUCH ANYTHING IN THIS BLOCK!!!
**********************************************************
$$SCRIPT_BLOCK_START
VERSION 3
NEXT_ID 89
// UserType value blocks
$$UTYPE_VALS_START UserVar
0:TempValue
1:CrystalCenterMainRed
2:CrystalCenterMainBlue
3:CrystalCenterMainGreen
4:GadgetCinematicFrame
5:FinalCountdownTimer
$$UTYPE_VALS_END
$$UTYPE_VALS_START UserFlag
0:LeftTermInfected
1:RightTermInfected
6:PowerDeactivated
7:PowerRecharging
8:CreeperMid0Activated
9:CreeperMid1Activated
10:CreeperRL0Activated
11:CreeperRL1Activated
12:CreeperLLR0Activated
13:CreeperMid2Activated
14:LeftVirusPlaced
15:RightVirusPlaced
19:CreeperRL3Activated
20:CreeperRLJActivated
21:DoomedGadgetHelpless
$$UTYPE_VALS_END
$$UTYPE_VALS_START SpewHandle
0:hLeftLabHalonSpew0
1:hLeftLabHalonSpew1
2:hLeftLabHalonSpew2
3:hLeftLabHalonSpew3
4:hLeftLabHalonSpew4
5:hLeftLabHalonSpew5
6:hLeftLabHalonSpew6
7:hLeftLabHalonSpew7
8:hLeftLabHalonSpew8
9:hLeftLabHalonSpew9
10:hLeftLabHalonSpewA
11:hRightLabHalonSpew0
12:hRightLabHalonSpew1
13:hRightLabHalonSpew2
14:hRightLabHalonSpew3
15:hRightLabHalonSpew4
16:hRightLabHalonSpew5
17:hRightLabHalonSpew6
18:hRightLabHalonSpew7
19:hRightLabHalonSpew8
20:hRightLabHalonSpew9
21:hRightLabHalonSpewA
22:hRightLabHalonSpewB
23:hRightLabHalonSpewC
24:hPowerNodeSpewer
$$UTYPE_VALS_END
$$UTYPE_VALS_START TimerID
0:PowerNodeBeamTimer1
1:BoulderShakeTimer
2:CrystalCenterMainTimer
3:BoulderDropTimer
4:LeftLabInfectTimer
5:LeftLabInfectTimerOff
6:RightLabInfectTimer
7:RightLabInfectTimerOff
8:LeftLabDoorInfectTimer
9:HubCinematicTimer2
10:HubCinematicTimer0
11:HubCinematicTimer1
12:RightLabDoorInfectTimer
13:BoulderWallDetonateTimer
14:PowerStationDeadTimer
15:PowerStationDeadTimer2
16:FinalCountdownTimer
17:CrystalCenterDelayTimer
18:CrystalCenterDelayTimer2
19:FinalShakeTimer
20:CrystalTrapSpewTimer
21:BoulderHitWind
22:StartLowPatrol
23:Failed
$$UTYPE_VALS_END
$$UTYPE_VALS_START SavedObjectSlot
0:PowerNode4
1:PowerNode1
2:PowerNode2
3:PowerNode3
$$UTYPE_VALS_END
$$UTYPE_VALS_START GoalID
0:DoomedGadgetPathComplete
1:GadgetKillerPathComplete
$$UTYPE_VALS_END
// Name Lists
$$DOOR_LIST_START
Door-Top1
Door-Escape
$$DOOR_LIST_END
$$OBJECT_LIST_START
ReceptorNode-01
ReceptorNode-02
ReceptorNode-03
ReceptorNode-04
PowerNode-01
PowerNode-02
PowerNode-03
PowerNode-04
PSGadget0
PSGadget1
Virus Device
PlayerIntroCamera
Virus Device2
BigBoulder
RockWallBoulder
Drop2
TargetExt1
IntroSpark-1
IGIntro2
IntroSmoke2
IntroSmoke1
TargetInt2
IntroSmoke-4
IntroSmoke-3
TargetInt1
Drop1
TargetExt2
BoulderExplosion1
BoulderExplosion2
BHit1
Bhit3
BHit2
FlasherCrystal
CrystalBar1
CrystalBar2
CrystralBar3
CrystalBar4
CrystalBarCenter
CrystalCenter4
CrystalCenter3
CrystalCenter2
CrystalCenter1
BTSmoke3
BTLight
BTSmoke5
BTSmoke4
BTSmoke1
BTSmoke2
CrystalMainTarget
CFX5
CFX4
CFX3
CFX2
CFX1
CBCHit1
CBCHit2
CBCHit6
CBCHit5
CBCHit4
CBCHit3
CrystalCenterBeam
MidBot5
MidBot4
MidBot3
MidBot2
MidBot1
HiBot4
HiBot3
HiBot2
HiBot1
LoBot6
LoBot5
LoBot4
LoBot3
LoBot2
LoBot1
RightTopInter
RightHubBeam
LeftTopInterface
LeftHubBeam
LeftVirusTerminal
RightVirusTerminal
DataArmLeftHub
LeftBottomInterfac
TopDoorSmoke2
LeftTurret-3
LeftTurret-2
LeftTurret-5
LeftTurret-6
LeftTurret-7
LeftTurret-9
LeftTurret-A
LeftTurret-B
LeftTurret-E
LeftTurret-J
LeftTurret-H
LeftTurret-I
LeftTurret-C
SmokeHub2
SmokeHub1
LeftLabHalonSpew0
LeftLabHalonSpew1
LeftLabHalonSpew2
LeftLabHalonSpew3
LeftLabHalonSpew4
LeftLabHalonSpew5
LeftLabHalonSpew6
LeftLabHalonSpew7
LeftLabHalonSpew8
LeftLabHalonSpew9
LeftLabHalonSpewA
RightDataArm
RightBottomInter
TDSmoke1
RightTurret-1
RightTurret-2
RightTurret-3
RightTurret-5
RightTurret-6
RightTurret-7
RightTurret-8
RightTurret-9
RightTurret-B
RightTurret-C
RightTurret-D
SmokeRight2
SmokeRight1
RightLabHalonSpew0
RightLabHalonSpew1
RightLabHalonSpew2
RightLabHalonSpew3
EightLabHalonSpew4
RightLabHalonSpew5
RightLabHalonSpew6
RightLabHalonSpew7
RightLabHalonSpew9
RightLabHalonSpewA
RightLabHalonSpewB
RightLabHalonSpewC
PowerBackup-04
PowerBackup-03
PowerBackup-02
PowerBackup-01
PNodeSmoker4
PNodeSmoker3
PNodeSmoker2
PNodeSmoker1
MainPowerBeam2
MainBeamTarget2
MainBeamTarget1
MainPowerBeam1
RecSwitch4
RecSwitch3
RecSwitch2
RecSwitch1
ReBootSwitch2
ReBootSwitch1
MainPowerWhite1
MainPowerWhite2
PT1
PT2
PT3
PT4
TargetExit1
Door-Escape
ExitSmoke1
ExitSmoke3
ExitSmoke4
ExitSmoke2
Drop2Smoke2
Drop2Smoke1
Turret-Outer13
Turret-Outer12
Turret-Outer11
Door-Bottom2
$$OBJECT_LIST_END
$$ROOM_LIST_START
Creeper-Mid0
Creeper-Mid0A
Creeper-Mid0B
Creeper-Mid0C
Creeper-Mid0D
LeftLabRO
Creeper-LLR0A
Creeper-LLR0B
Creeper-LLR0C
Creeper-LLR0D
Creeper-LLR0E
Creeper-LLROF
Creeper-Mid2
Creeper-Mid2A
RightLabR3
Creeper-RL3-A
Creeper-RL3-B
Creeper-RL3-C
Creeper-RL3-D
RightLabRJ
Creeper-RLJ-A
Creeper-RLJ-B
Creeper-RLJ-C
Creeper-RLJ-D
Creeper-RLJ-E
Creeper-RLJ-F
Creeper-RLJ-G
Creeper-RLJ-H
Creeper-Mid1
Creeper-Mid1A
BoulderHitRoom
CrystalCenterRoom
NRGCreep
LeftLabCreep1
LeftLabCreep0
LeftX1
PowerChute2
PowerLow8
PowerLow7
PowerLow6
PowerLow5
PowerLow4
PowerLow3
PowerLow2
PowerLow1
PowerChute
PowerSide2
PowerDoor
PowerSide1
PowerStation
$$ROOM_LIST_END
$$TRIGGER_LIST_START
RollingBallWatchout
RollingBallDetonate
BeginEndSequence
MusicLevel1-1
MusicLevel2-2
MusicLevel2-1
MusicLevel3-2
MusicLevel3-1
MusicTemple-2
MusicTemple-1
MusicOutside-1
$$TRIGGER_LIST_END
$$SOUND_LIST_START
AmbExplosionFarB
RockBreakAway
WpnEMDFireD
AmbSteamHigh
AmbSirenBRedAcrop
ExpMissileLarge1
WpnPyroGLOmegaFire
AmbSwitch21
Wall fade ???
AmbSwitch31
AmbSwitch11
$$SOUND_LIST_END
$$TEXTURE_LIST_START
FunkyEffectGreen
FunkyEffect3
HellionBeam
FunkyEffect1
FunkyEffectAntiV
$$TEXTURE_LIST_END
$$SPECNAME_LIST_START
$$SPECNAME_LIST_END
$$PATH_LIST_START
PSGadget0Path
PSGadget1Path
IntroCam-Ext1
IGInt2
IntroCam-Int2
IntroCam-Int1
IntroCam-Ext2
MidPatrol1
LowPatrol2
LowPatrol1
ExitCam-1
ExitShip-1
ExitCam-2
ExitShip-2
$$PATH_LIST_END
$$MATCEN_LIST_START
$$MATCEN_LIST_END
$$GOAL_LIST_START
Blast Into the Laboratory
Infect Computer Hub Delta
Infect Computer Hub Gamma
Reboot the System
Shut Down the Main Power
Infect the Lab System With Virus Data
Escape Before the System Reboots
$$GOAL_LIST_END
$$STRM_AUDIO_LIST_START
$$STRM_AUDIO_LIST_END
// Script Tree Dump
00:0:Level INIT (Weather)
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aRainTurnOn
$$CHILD_BLOCK_START
10:9:0.900000:Density
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:5:Level INIT (CrystalCenter)
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:15:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:14:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:12:Level INIT (Power Station)
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:0:Object
10:4:0:StartFrame
10:4:1:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:1:Object
10:4:0:StartFrame
10:4:1:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:2:Object
10:4:0:StartFrame
10:4:1:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:3:Object
10:4:0:StartFrame
10:4:1:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:4:Object
10:4:0:StartFrame
10:4:1:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:5:Object
10:4:0:StartFrame
10:4:1:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:6:Object
10:4:0:StartFrame
10:4:1:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:7:Object
10:4:0:StartFrame
10:4:1:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:8:Object
10:16:0:Path
10:15:8392965:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:3:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:9:Object
10:16:1:Path
10:15:8392965:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:3:GoalPriority
$$CHILD_BLOCK_END
08:aObjSetShields
$$CHILD_BLOCK_START
10:1:0:8:Object
10:6:100.000000:Shields
$$CHILD_BLOCK_END
08:aObjSetShields
$$CHILD_BLOCK_START
10:1:0:9:Object
10:6:100.000000:Shields
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:10:Level INIT (Player Inventory)
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aAddObjectToInventoryNamed
$$CHILD_BLOCK_START
10:1:0:10:Object
06:qPlayerClosest:PlayerObject
$$CHILD_BLOCK_START
10:1:0:11:Object
10:10:0:0:UserVar
$$CHILD_BLOCK_END
10:8:VirusDeviceName:ItemName
10:5:0:Spewable
$$CHILD_BLOCK_END
08:aAddObjectToInventoryNamed
$$CHILD_BLOCK_START
10:1:0:12:Object
06:qPlayerClosest:PlayerObject
$$CHILD_BLOCK_START
10:1:0:11:Object
10:10:0:0:UserVar
$$CHILD_BLOCK_END
10:8:VirusDeviceName:ItemName
10:5:0:Spewable
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:17:Level INIT (Terminals)
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:0:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:1:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:40:Level INIT (Misc)
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:13:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:14:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:0:13:Object
10:10:0:0:MovementType
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:10:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:11:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:8:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:9:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:13:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:12:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:42:Level FRAME (Left Creepers)
$$CHILD_BLOCK_START
01:2:0
02:5
03:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:0:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qRoomHasPlayer:Bool
$$CHILD_BLOCK_START
10:2:0:Room
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:8:UserFlag
$$CHILD_BLOCK_END
07:1:0
10:5:0:Bool
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:8:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:1:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:5.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:2:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:5.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:3:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:5.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:4:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:5.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qRoomHasPlayer:Bool
$$CHILD_BLOCK_START
10:2:5:Room
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:12:UserFlag
$$CHILD_BLOCK_END
07:1:0
10:5:0:Bool
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:12:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:6:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:7:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:8:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:9:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:10:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:11:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:43:Level FRAME (Right Creepers)
$$CHILD_BLOCK_START
01:2:0
02:5
03:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:1:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qRoomHasPlayer:Bool
$$CHILD_BLOCK_START
10:2:12:Room
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:13:UserFlag
$$CHILD_BLOCK_END
07:1:0
10:5:0:Bool
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:13:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aPortalBreakGlass
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:13:Room
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qRoomHasPlayer:Bool
$$CHILD_BLOCK_START
10:2:14:Room
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:19:UserFlag
$$CHILD_BLOCK_END
07:1:0
10:5:0:Bool
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:19:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:15:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:3.000000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:16:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:5.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:17:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:6.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:18:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:4.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qRoomHasPlayer:Bool
$$CHILD_BLOCK_START
10:2:19:Room
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:20:UserFlag
$$CHILD_BLOCK_END
07:1:0
10:5:0:Bool
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:20:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:20:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:21:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:22:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:23:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:24:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:25:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:26:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:27:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qRoomHasPlayer:Bool
$$CHILD_BLOCK_START
10:2:28:Room
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:9:UserFlag
$$CHILD_BLOCK_END
07:1:0
10:5:0:Bool
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:9:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:cTimeGlassBreak
$$CHILD_BLOCK_START
10:2:29:Room
10:4:0:PortalNum
06:qRandomValue:Seconds
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:8.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:72:IntroCam-1
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
10:5:1:Literal
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:15:Object
$$CHILD_BLOCK_END
08:aLightningTurnOn
$$CHILD_BLOCK_START
10:6:0.100000:Seconds
10:9:0.080000:Probability
$$CHILD_BLOCK_END
08:aCinematicSimple
$$CHILD_BLOCK_START
10:16:2:CameraPath
10:8:IntroMessage:Text
10:1:0:16:Target
10:6:8.000000:Seconds
10:5:1:FadeIn
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:73:IntroCam-2
$$CHILD_BLOCK_START
01:1:16
02:18
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMusicSetRegionAll
$$CHILD_BLOCK_START
10:10:0:1:Region
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:17:Object
10:6:2.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aAISetMaxSpeed
$$CHILD_BLOCK_START
10:1:0:18:Object
10:6:16.000000:MaxSpeed
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:18:Object
10:16:3:Path
10:15:4352:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:3:GoalPriority
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:19:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:10.000000:SpewLife
10:6:5.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:20:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:10.000000:SpewLife
10:6:5.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aCinematicSimple
$$CHILD_BLOCK_START
10:16:4:CameraPath
10:8:EmptyMessage:Text
10:1:0:21:Target
10:6:8.000000:Seconds
10:5:1:FadeIn
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:77:Intro2 Spark
$$CHILD_BLOCK_START
01:1:17
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:22:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:20.000000:SpewLife
10:6:4.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:23:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:20.000000:SpewLife
10:6:4.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:80.000000:Number
10:1:0:17:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:74:IntroCam-3
$$CHILD_BLOCK_START
01:1:21
02:18
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aCinematicSimple
$$CHILD_BLOCK_START
10:16:5:CameraPath
10:8:EmptyMessage:Text
10:1:0:24:Target
10:6:9.000000:Seconds
10:5:1:FadeIn
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:75:IntroCam-4
$$CHILD_BLOCK_START
01:1:24
02:18
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aLightningTurnOn
$$CHILD_BLOCK_START
10:6:0.150000:Seconds
10:9:0.080000:Probability
$$CHILD_BLOCK_END
08:aAISetState
$$CHILD_BLOCK_START
10:10:0:0:On/Off
10:1:0:25:Object
$$CHILD_BLOCK_END
08:aObjSetVelocity
$$CHILD_BLOCK_START
10:1:0:25:Object
10:6:0.000000:X
10:6:0.000000:Y
10:6:-1.000000:Z
10:6:120.000000:Speed
$$CHILD_BLOCK_END
08:aPhysFlags
$$CHILD_BLOCK_START
10:10:0:1:Set/Clear
10:15:58787840:PhysicsFlags
10:1:0:25:Object
$$CHILD_BLOCK_END
08:aCinematicSimple
$$CHILD_BLOCK_START
10:16:6:CameraPath
10:8:EmptyMessage:Text
10:1:0:26:Target
10:6:8.000000:Seconds
10:5:1:FadeIn
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:76:IntroCam-POST
$$CHILD_BLOCK_START
01:1:26
02:18
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aLightningTurnOn
$$CHILD_BLOCK_START
10:6:0.200000:Seconds
10:9:0.080000:Probability
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:25:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:1:Rolling Ball Initiator
$$CHILD_BLOCK_START
01:0:0
02:1
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Watchout:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:0:14:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:60.000000:Amount
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:13:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:2:RockWall Detonation
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:13:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:27:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.300000:BlobLifetime
10:6:0.090000:BlobInterval
10:6:0.700000:SpewLife
10:6:14.000000:BlobSize
10:6:100.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:28:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:0.600000:SpewLife
10:6:22.000000:BlobSize
10:6:60.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aObjMakeVulnerable
$$CHILD_BLOCK_START
10:1:0:14:Object
$$CHILD_BLOCK_END
08:aObjDestroy
$$CHILD_BLOCK_START
10:1:0:14:Object
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:0:13:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:50.000000:Amount
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:13:Object
10:6:0.350000:Time
10:10:0:3:TimerID
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:13:Object
10:6:2.000000:Time
10:10:0:1:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:8:Rolling Ball Drop
$$CHILD_BLOCK_START
01:1:13
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:3:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:70.000000:Amount
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:28:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.400000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:0.800000:SpewLife
10:6:19.000000:BlobSize
10:6:80.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:10:0:1:MovementType
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:3:Rolling Ball Shaker
$$CHILD_BLOCK_START
01:1:13
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:1:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMiscShakeArea
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:6:60.000000:Amount
10:6:400.000000:Dist
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:2:-1:Object
06:qRandomValue:Time
$$CHILD_BLOCK_START
10:6:1.000000:LowerLimit
10:6:2.500000:UpperLimit
$$CHILD_BLOCK_END
10:10:0:1:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:29:Rolling Ball Hit Something
$$CHILD_BLOCK_START
01:1:13
02:0
03:0
$$CHILD_BLOCK_START
09:1
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayer:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qObjIsType:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
10:10:0:2:ObjectType
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aObjMakeVulnerable
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
08:aObjKill
$$CHILD_BLOCK_START
10:1:1:-1:Object
10:10:0:0:DeathDelayType
10:10:0:1:DeathExplosionSize
10:15:196832:DeathFlags
10:6:0.000000:MinDelay
10:6:0.000000:MaxDelay
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:4:Rolling Ball Detonation
$$CHILD_BLOCK_START
01:0:1
02:1
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:1:1:-1:Object
07:1:0
10:1:0:13:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:29:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.300000:BlobLifetime
10:6:0.120000:BlobInterval
10:6:0.800000:SpewLife
10:6:32.000000:BlobSize
10:6:70.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:29:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.400000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:0.500000:SpewLife
10:6:20.000000:BlobSize
10:6:110.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:30:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.400000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:0.700000:SpewLife
10:6:22.000000:BlobSize
10:6:100.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:31:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.400000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:0.700000:SpewLife
10:6:22.000000:BlobSize
10:6:100.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:0.300000:Time
10:10:0:21:TimerID
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:30:Room
10:6:0.000000:X
10:6:1.000000:Y
10:6:0.000000:Z
10:6:15.000000:Speed
$$CHILD_BLOCK_END
08:aObjMakeVulnerable
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:100.000000:Amount
$$CHILD_BLOCK_END
08:aObjKill
$$CHILD_BLOCK_START
10:1:1:-1:Object
10:10:0:0:DeathDelayType
10:10:0:2:DeathExplosionSize
10:15:524384:DeathFlags
10:6:0.000000:MinDelay
10:6:0.000000:MaxDelay
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:30:Rolling Ball Hit Part2
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:21:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:30:Room
10:6:0.000000:X
10:6:0.000000:Y
10:6:0.000000:Z
10:6:1.000000:Speed
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:40.000000:Amount
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:31:INIT Crystal Bars
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aCloakObject
$$CHILD_BLOCK_START
10:1:0:32:Object
10:6:999999.000000:Seconds
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:32:Object
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:0:32:Object
10:10:0:0:MovementType
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:0:33:Object
10:10:0:0:MovementType
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:0:34:Object
10:10:0:0:MovementType
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:0:35:Object
10:10:0:0:MovementType
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:0:36:Object
10:10:0:0:MovementType
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:0:37:Object
10:10:0:0:MovementType
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:36:Object1
10:1:0:38:Object2
10:6:99999.000000:Lifetime
10:6:2.000000:Thickness
10:4:1:NumTiles
10:14:0:Texture
10:6:0.300000:SlideTime
10:4:3:TimesDrawn
10:4:180:Red
10:4:180:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:35:Object1
10:1:0:39:Object2
10:6:99999.000000:Lifetime
10:6:2.000000:Thickness
10:4:1:NumTiles
10:14:0:Texture
10:6:0.300000:SlideTime
10:4:3:TimesDrawn
10:4:180:Red
10:4:180:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:34:Object1
10:1:0:40:Object2
10:6:99999.000000:Lifetime
10:6:2.000000:Thickness
10:4:1:NumTiles
10:14:0:Texture
10:6:0.300000:SlideTime
10:4:3:TimesDrawn
10:4:180:Red
10:4:180:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:33:Object1
10:1:0:41:Object2
10:6:99999.000000:Lifetime
10:6:2.000000:Thickness
10:4:1:NumTiles
10:14:0:Texture
10:6:0.300000:SlideTime
10:4:3:TimesDrawn
10:4:180:Red
10:4:180:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:33:Crystal Hit 4
$$CHILD_BLOCK_START
01:1:36
02:0
03:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:2:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:37:Object
10:6:0.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:50.000000:Number
10:1:2:-1:Object
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:30.000000:Number
10:1:0:37:Object
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:37:Object1
10:1:2:-1:Object2
10:6:99999.000000:Lifetime
10:6:1.500000:Thickness
10:4:2:NumTiles
10:14:0:Texture
10:6:0.500000:SlideTime
10:4:3:TimesDrawn
10:4:180:Red
10:4:180:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:2:-1:Object1
10:1:0:37:Object2
10:6:99999.000000:Lifetime
10:6:1.500000:Thickness
10:4:2:NumTiles
10:14:1:Texture
10:6:1.000000:SlideTime
10:4:2:TimesDrawn
10:4:100:Red
10:4:200:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:10:0:1:MovementType
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:32:Crystal Hit 3
$$CHILD_BLOCK_START
01:1:35
02:0
03:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:2:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:37:Object
10:6:0.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:50.000000:Number
10:1:2:-1:Object
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:30.000000:Number
10:1:0:37:Object
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:37:Object1
10:1:2:-1:Object2
10:6:99999.000000:Lifetime
10:6:2.500000:Thickness
10:4:2:NumTiles
10:14:0:Texture
10:6:0.500000:SlideTime
10:4:3:TimesDrawn
10:4:180:Red
10:4:180:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:2:-1:Object1
10:1:0:37:Object2
10:6:99999.000000:Lifetime
10:6:1.500000:Thickness
10:4:2:NumTiles
10:14:1:Texture
10:6:1.000000:SlideTime
10:4:2:TimesDrawn
10:4:100:Red
10:4:200:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:10:0:1:MovementType
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:24:Crystal Hit 2
$$CHILD_BLOCK_START
01:1:34
02:0
03:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:2:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:37:Object
10:6:0.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:50.000000:Number
10:1:2:-1:Object
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:30.000000:Number
10:1:0:37:Object
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:37:Object1
10:1:2:-1:Object2
10:6:99999.000000:Lifetime
10:6:2.500000:Thickness
10:4:2:NumTiles
10:14:0:Texture
10:6:0.500000:SlideTime
10:4:3:TimesDrawn
10:4:180:Red
10:4:180:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:2:-1:Object1
10:1:0:37:Object2
10:6:99999.000000:Lifetime
10:6:1.500000:Thickness
10:4:2:NumTiles
10:14:1:Texture
10:6:1.000000:SlideTime
10:4:2:TimesDrawn
10:4:100:Red
10:4:200:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:10:0:1:MovementType
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:6:Crystal Hit 1
$$CHILD_BLOCK_START
01:1:33
02:0
03:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:2:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:37:Object
10:6:0.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:50.000000:Number
10:1:2:-1:Object
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:30.000000:Number
10:1:0:37:Object
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:37:Object1
10:1:2:-1:Object2
10:6:99999.000000:Lifetime
10:6:2.500000:Thickness
10:4:2:NumTiles
10:14:0:Texture
10:6:0.500000:SlideTime
10:4:3:TimesDrawn
10:4:180:Red
10:4:180:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:2:-1:Object1
10:1:0:37:Object2
10:6:99999.000000:Lifetime
10:6:1.500000:Thickness
10:4:2:NumTiles
10:14:1:Texture
10:6:1.000000:SlideTime
10:4:2:TimesDrawn
10:4:100:Red
10:4:200:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:10:0:1:MovementType
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:58:Crystal Complete8
$$CHILD_BLOCK_START
01:1:32
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:3:Sound
10:1:0:42:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:4:Sound
10:1:0:43:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:0:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:44:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.300000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:3.000000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:45:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.300000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:3.000000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:46:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.000000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:47:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.000000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:42:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.000000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aObjSetLightingDist
$$CHILD_BLOCK_START
10:1:0:43:Object
10:6:250.000000:Distance
$$CHILD_BLOCK_END
08:aObjSetLightingDist
$$CHILD_BLOCK_START
10:1:0:32:Object
10:6:0.000000:Distance
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:32:Object
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:31:Room
10:6:0.000000:X
10:6:0.000000:Y
10:6:0.000000:Z
10:6:1.000000:Speed
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:100.000000:Amount
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:48:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.000000:BlobLifetime
10:6:0.140000:BlobInterval
10:6:0.600000:SpewLife
10:6:250.000000:BlobSize
10:6:50.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aPortalRenderToggle
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:31:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:57:Crystal Complete7
$$CHILD_BLOCK_START
01:1:48
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aSoundStopObj
$$CHILD_BLOCK_START
10:1:0:37:Object
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:5:Sound
10:1:0:32:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:32:Object
10:6:0.250000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:100.000000:Amount
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:49:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.000000:BlobLifetime
10:6:0.140000:BlobInterval
10:6:0.600000:SpewLife
10:6:300.000000:BlobSize
10:6:200.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:50:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.000000:BlobLifetime
10:6:0.140000:BlobInterval
10:6:0.600000:SpewLife
10:6:300.000000:BlobSize
10:6:200.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:51:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.000000:BlobLifetime
10:6:0.140000:BlobInterval
10:6:0.600000:SpewLife
10:6:300.000000:BlobSize
10:6:200.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:52:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.000000:BlobLifetime
10:6:0.140000:BlobInterval
10:6:0.600000:SpewLife
10:6:300.000000:BlobSize
10:6:200.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:53:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.100000:BlobLifetime
10:6:0.140000:BlobInterval
10:6:1.000000:SpewLife
10:6:300.000000:BlobSize
10:6:200.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:54:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:0.900000:BlobLifetime
10:6:0.120000:BlobInterval
10:6:0.400000:SpewLife
10:6:150.000000:BlobSize
10:6:200.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:55:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:0.900000:BlobLifetime
10:6:0.120000:BlobInterval
10:6:0.400000:SpewLife
10:6:150.000000:BlobSize
10:6:200.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:31:Room
10:6:0.000000:X
10:6:-1.000000:Y
10:6:0.000000:Z
10:6:40.000000:Speed
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:48:Crystal Complete6
$$CHILD_BLOCK_START
01:1:56
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:31:Room
10:6:0.000000:X
10:6:1.000000:Y
10:6:0.000000:Z
10:6:0.500000:Speed
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:48:Object
10:6:1.350000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:80.000000:Amount
$$CHILD_BLOCK_END
08:aObjSetLightingDist
$$CHILD_BLOCK_START
10:1:0:32:Object
10:6:140.000000:Distance
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.400000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:1.700000:SpewLife
10:6:22.000000:BlobSize
10:6:60.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:46:Crystal Complete5
$$CHILD_BLOCK_START
01:1:57
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:56:Object
10:6:1.500000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:80.000000:Amount
$$CHILD_BLOCK_END
08:aObjSetLightingDist
$$CHILD_BLOCK_START
10:1:0:32:Object
10:6:125.000000:Distance
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.400000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:3.200000:SpewLife
10:6:22.000000:BlobSize
10:6:60.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:45:Crystal Complete4
$$CHILD_BLOCK_START
01:1:58
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:57:Object
10:6:1.500000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:80.000000:Amount
$$CHILD_BLOCK_END
08:aObjSetLightingDist
$$CHILD_BLOCK_START
10:1:0:32:Object
10:6:110.000000:Distance
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.400000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:4.700000:SpewLife
10:6:22.000000:BlobSize
10:6:60.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:44:Crystal Complete3
$$CHILD_BLOCK_START
01:1:59
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:58:Object
10:6:1.500000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:80.000000:Amount
$$CHILD_BLOCK_END
08:aObjSetLightingDist
$$CHILD_BLOCK_START
10:1:0:32:Object
10:6:95.000000:Distance
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.400000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:6.200000:SpewLife
10:6:22.000000:BlobSize
10:6:60.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:7:Crystal Complete2
$$CHILD_BLOCK_START
01:1:60
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:6:Sound
10:1:0:37:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:59:Object
10:6:2.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:0:Ghost/Unghost
10:1:0:32:Object
$$CHILD_BLOCK_END
08:aObjSetLightingDist
$$CHILD_BLOCK_START
10:1:0:32:Object
10:6:80.000000:Distance
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:80.000000:Amount
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:50.000000:Number
10:1:2:-1:Object
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:55:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.300000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:8.000000:SpewLife
10:6:12.000000:BlobSize
10:6:80.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:54:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.300000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:8.000000:SpewLife
10:6:12.000000:BlobSize
10:6:80.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:48:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.300000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:8.200000:SpewLife
10:6:14.000000:BlobSize
10:6:70.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:48:Object
10:4:-1:GunNum
10:10:0:2:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.300000:BlobLifetime
10:6:0.120000:BlobInterval
10:6:8.200000:SpewLife
10:6:25.000000:BlobSize
10:6:50.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:48:Object1
10:1:0:60:Object2
10:6:8.100000:Lifetime
10:6:8.000000:Thickness
10:4:1:NumTiles
10:14:2:Texture
10:6:0.600000:SlideTime
10:4:3:TimesDrawn
10:4:200:Red
10:4:255:Green
10:4:150:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:47:Crystal Complete1
$$CHILD_BLOCK_START
01:1:37
02:9
03:0
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:6:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:24:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:32:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:33:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:60:Object
10:6:1.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:40.000000:Amount
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:80.000000:Number
10:1:2:-1:Object
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:48:Object1
10:1:0:37:Object2
10:6:9.200000:Lifetime
10:6:2.000000:Thickness
10:4:2:NumTiles
10:14:1:Texture
10:6:0.400000:SlideTime
10:4:3:TimesDrawn
10:4:100:Red
10:4:200:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:60:Object1
10:1:0:37:Object2
10:6:99999.000000:Lifetime
10:6:2.000000:Thickness
10:4:1:NumTiles
10:14:1:Texture
10:6:0.500000:SlideTime
10:4:3:TimesDrawn
10:4:100:Red
10:4:200:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:37:INIT Patrols
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:61:Object
10:16:7:Path
10:15:8392960:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:0:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:62:Object
10:16:7:Path
10:15:8392960:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:0:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:63:Object
10:16:7:Path
10:15:8392960:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:0:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:64:Object
10:16:7:Path
10:15:8392704:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:3:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:65:Object
10:16:7:Path
10:15:8392704:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:3:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:66:Object
10:16:8:Path
10:15:8392960:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:0:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:67:Object
10:16:8:Path
10:15:8392704:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:0:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:68:Object
10:16:8:Path
10:15:8392704:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:3:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:69:Object
10:16:8:Path
10:15:8392704:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:3:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:70:Object
10:16:9:Path
10:15:8392960:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:3:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:71:Object
10:16:9:Path
10:15:8392704:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:3:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:72:Object
10:16:9:Path
10:15:8392960:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:0:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:73:Object
10:16:9:Path
10:15:8392704:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:0:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:74:Object
10:16:9:Path
10:15:8392960:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:0:GoalPriority
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:75:Object
10:16:9:Path
10:15:8392960:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:0:GoalPriority
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:60:INIT Hub Terminals
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:76:Object1
10:1:0:77:Object2
10:6:99999.000000:Lifetime
10:6:5.000000:Thickness
10:4:1:NumTiles
10:14:1:Texture
10:6:0.400000:SlideTime
10:4:2:TimesDrawn
10:4:255:Red
10:4:150:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:76:Object1
10:1:0:77:Object2
10:6:99999.000000:Lifetime
10:6:3.500000:Thickness
10:4:1:NumTiles
10:14:3:Texture
10:6:0.800000:SlideTime
10:4:2:TimesDrawn
10:4:100:Red
10:4:100:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:78:Object1
10:1:0:79:Object2
10:6:99999.000000:Lifetime
10:6:5.000000:Thickness
10:4:1:NumTiles
10:14:1:Texture
10:6:0.400000:SlideTime
10:4:2:TimesDrawn
10:4:255:Red
10:4:150:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:78:Object1
10:1:0:79:Object2
10:6:99999.000000:Lifetime
10:6:3.500000:Thickness
10:4:1:NumTiles
10:14:3:Texture
10:6:0.800000:SlideTime
10:4:2:TimesDrawn
10:4:100:Red
10:4:100:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:80:Object
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:81:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:78:LeftDataArm Hit-1
$$CHILD_BLOCK_START
01:1:82
02:0
03:0
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:0
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:83:Object
10:6:50.000000:SparkRate
10:6:5.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:78:Object
10:6:50.000000:SparkRate
10:6:5.000000:Time
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:83:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:3.000000:SpewLife
10:6:3.000000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:78:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:3.000000:SpewLife
10:6:3.000000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aObjDelete
$$CHILD_BLOCK_START
10:1:0:79:Object
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:LeftLabInitData:Message
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:7:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:1:StartFrame
10:4:5:EndFrame
10:6:4.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:59:LeftDataArm Hit-2
$$CHILD_BLOCK_START
01:1:82
02:0
03:0
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qObjAnimFrame:Float
$$CHILD_BLOCK_START
10:1:2:-1:Object
$$CHILD_BLOCK_END
07:1:0
10:6:5.000000:Literal
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qGoalCompleted:Bool
$$CHILD_BLOCK_START
10:18:0:1:LevelGoal
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:0:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:14:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:84:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:3.000000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aPortalBreakGlass
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:32:Room
$$CHILD_BLOCK_END
08:aPortalBreakGlass
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:33:Room
$$CHILD_BLOCK_END
08:aPortalBreakGlass
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:34:Room
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:65536:Teams
10:1:0:85:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:86:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:87:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:88:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:89:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:90:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:65536:Teams
10:1:0:91:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:92:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:196608:Teams
10:1:0:93:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:94:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:95:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:65536:Teams
10:1:0:96:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:97:Object
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:80.000000:Amount
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:98:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:5.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:99:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:5.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:7:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:5:StartFrame
10:4:9:EndFrame
10:6:4.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:0:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:1:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:78:Object
10:6:30.000000:SparkRate
10:6:99999.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:83:Object
10:6:30.000000:SparkRate
10:6:99999.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:80:Object
10:6:60.000000:SparkRate
10:6:99999.000000:Time
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:83:Object1
10:1:0:78:Object2
10:6:99999.000000:Lifetime
10:6:5.000000:Thickness
10:4:1:NumTiles
10:14:1:Texture
10:6:0.400000:SlideTime
10:4:2:TimesDrawn
10:4:255:Red
10:4:150:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:78:Object1
10:1:0:80:Object2
10:6:99999.000000:Lifetime
10:6:3.000000:Thickness
10:4:1:NumTiles
10:14:4:Texture
10:6:0.600000:SlideTime
10:4:3:TimesDrawn
10:4:255:Red
10:4:255:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:83:Object1
10:1:0:80:Object2
10:6:99999.000000:Lifetime
10:6:3.000000:Thickness
10:4:1:NumTiles
10:14:4:Texture
10:6:0.600000:SlideTime
10:4:3:TimesDrawn
10:4:255:Red
10:4:255:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:4:TimerID
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:8:TimerID
$$CHILD_BLOCK_END
08:aRoomFogSetState
$$CHILD_BLOCK_START
10:10:0:1:On/Off
10:2:35:Room
$$CHILD_BLOCK_END
08:aRoomSetFog
$$CHILD_BLOCK_START
10:2:35:Room
10:6:0.250000:Red
10:6:0.000000:Green
10:6:0.500000:Blue
10:6:300.000000:Depth
$$CHILD_BLOCK_END
08:cFogRegion
$$CHILD_BLOCK_START
10:10:0:0:LevelRegion
10:6:0.250000:Red
10:6:0.000000:Green
10:6:0.500000:Blue
10:6:1000.000000:Depth
$$CHILD_BLOCK_END
08:cChangeFogRegion
$$CHILD_BLOCK_START
10:10:0:0:LevelRegion
10:6:0.250000:Red
10:6:0.000000:Green
10:6:0.500000:Blue
10:6:300.000000:Depth
10:6:20.000000:Time
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:100:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:0:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:101:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:102:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:2:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:103:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:3:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:104:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:4:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:105:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:5:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:106:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:6:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:107:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:7:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:108:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:8:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:109:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:9:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:110:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:10:SpewHandle
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:LeftLabInfected:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:LeftLabNotReady:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:13:RightDataArm Hit-1
$$CHILD_BLOCK_START
01:1:111
02:0
03:0
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:0
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:76:Object
10:6:50.000000:SparkRate
10:6:5.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:112:Object
10:6:50.000000:SparkRate
10:6:5.000000:Time
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:76:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:3.000000:SpewLife
10:6:3.000000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:112:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:3.000000:SpewLife
10:6:3.000000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aObjDelete
$$CHILD_BLOCK_START
10:1:0:77:Object
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:LeftLabInitData:Message
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:7:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:1:StartFrame
10:4:5:EndFrame
10:6:4.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:14:RightDataArm Hit-2
$$CHILD_BLOCK_START
01:1:111
02:0
03:0
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qObjAnimFrame:Float
$$CHILD_BLOCK_START
10:1:2:-1:Object
$$CHILD_BLOCK_END
07:1:0
10:6:5.000000:Literal
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qGoalCompleted:Bool
$$CHILD_BLOCK_START
10:18:0:2:LevelGoal
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:1:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:15:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:113:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:3.000000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:114:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:115:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:65536:Teams
10:1:0:116:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:117:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:65536:Teams
10:1:0:118:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:119:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:196608:Teams
10:1:0:120:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:121:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:122:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:65536:Teams
10:1:0:123:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:124:Object
$$CHILD_BLOCK_END
08:aAISetTeam
$$CHILD_BLOCK_START
10:10:0:131072:Teams
10:1:0:124:Object
$$CHILD_BLOCK_END
08:aMiscViewerShake
$$CHILD_BLOCK_START
10:6:80.000000:Amount
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:5:StartFrame
10:4:9:EndFrame
10:6:4.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:7:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:81:Object
10:6:60.000000:SparkRate
10:6:99999.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:76:Object
10:6:30.000000:SparkRate
10:6:99999.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:112:Object
10:6:30.000000:SparkRate
10:6:99999.000000:Time
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:76:Object1
10:1:0:81:Object2
10:6:99999.000000:Lifetime
10:6:3.000000:Thickness
10:4:1:NumTiles
10:14:4:Texture
10:6:0.600000:SlideTime
10:4:3:TimesDrawn
10:4:255:Red
10:4:255:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:112:Object1
10:1:0:81:Object2
10:6:99999.000000:Lifetime
10:6:3.000000:Thickness
10:4:1:NumTiles
10:14:4:Texture
10:6:0.600000:SlideTime
10:4:3:TimesDrawn
10:4:255:Red
10:4:255:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:112:Object1
10:1:0:76:Object2
10:6:99999.000000:Lifetime
10:6:5.000000:Thickness
10:4:1:NumTiles
10:14:1:Texture
10:6:0.400000:SlideTime
10:4:2:TimesDrawn
10:4:255:Red
10:4:150:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:1:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:2:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:6:TimerID
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:12:TimerID
$$CHILD_BLOCK_END
08:cFogRegion
$$CHILD_BLOCK_START
10:10:0:1:LevelRegion
10:6:0.500000:Red
10:6:0.000000:Green
10:6:0.250000:Blue
10:6:1000.000000:Depth
$$CHILD_BLOCK_END
08:cChangeFogRegion
$$CHILD_BLOCK_START
10:10:0:1:LevelRegion
10:6:0.500000:Red
10:6:0.000000:Green
10:6:0.250000:Blue
10:6:300.000000:Depth
10:6:20.000000:Time
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:125:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:5.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:126:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:5.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:127:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:11:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:128:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:12:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:129:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:13:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:130:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:14:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:131:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:15:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:132:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:16:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:133:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:17:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:134:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:18:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:135:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:20:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:136:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:21:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:137:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:22:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:138:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:23:SpewHandle
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:RightLabInfected:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:LeftLabNotReady:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:36:PICKUP Virus
$$CHILD_BLOCK_START
01:1:10
02:0
03:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayer:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aAddObjectToInventoryNamed
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:1:1:-1:PlayerObject
10:8:VirusDeviceName:ItemName
10:5:0:Spewable
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:50:PICKUP Virus 2
$$CHILD_BLOCK_START
01:1:12
02:0
03:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayer:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aAddObjectToInventoryNamed
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:1:1:-1:PlayerObject
10:8:VirusDeviceName:ItemName
10:5:0:Spewable
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:18:Hub Virus Placement
$$CHILD_BLOCK_START
01:1:10
02:25
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qObjGetDistance:Float
$$CHILD_BLOCK_START
10:1:1:-1:Object1
10:1:0:80:Object2
$$CHILD_BLOCK_END
07:1:3
10:6:40.000000:Literal
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:14:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:78:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:LeftLabVirusPlaced:Message
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:14:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:8:Sound
10:1:0:80:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:0:Ghost/Unghost
10:1:0:80:Object
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:80.000000:Number
10:1:0:80:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qObjGetDistance:Float
$$CHILD_BLOCK_START
10:1:1:-1:Object1
10:1:0:81:Object2
$$CHILD_BLOCK_END
07:1:3
10:6:40.000000:Literal
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:15:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:13:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:LeftLabVirusPlaced:Message
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:15:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:8:Sound
10:1:0:81:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:0:Ghost/Unghost
10:1:0:81:Object
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:80.000000:Number
10:1:0:81:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:0:Ghost/Unghost
10:1:2:-1:Object
$$CHILD_BLOCK_END
08:aAddObjectToInventoryNamed
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:1:1:-1:PlayerObject
10:8:VirusDeviceName:ItemName
10:5:0:Spewable
$$CHILD_BLOCK_END
08:aShowColoredHUDMessageObj
$$CHILD_BLOCK_START
10:4:255:Red
10:4:0:Green
10:4:0:Blue
10:8:VirusInfectFail:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:51:Hub Virus Placement 2
$$CHILD_BLOCK_START
01:1:12
02:25
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qObjGetDistance:Float
$$CHILD_BLOCK_START
10:1:1:-1:Object1
10:1:0:80:Object2
$$CHILD_BLOCK_END
07:1:3
10:6:40.000000:Literal
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:14:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:78:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:LeftLabVirusPlaced:Message
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:14:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:8:Sound
10:1:0:80:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:0:Ghost/Unghost
10:1:0:80:Object
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:80.000000:Number
10:1:0:80:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qObjGetDistance:Float
$$CHILD_BLOCK_START
10:1:1:-1:Object1
10:1:0:81:Object2
$$CHILD_BLOCK_END
07:1:3
10:6:40.000000:Literal
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:15:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:13:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:LeftLabVirusPlaced:Message
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:15:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:8:Sound
10:1:0:81:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:0:Ghost/Unghost
10:1:0:81:Object
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:80.000000:Number
10:1:0:81:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:0:Ghost/Unghost
10:1:2:-1:Object
$$CHILD_BLOCK_END
08:aAddObjectToInventoryNamed
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:1:1:-1:PlayerObject
10:8:VirusDeviceName:ItemName
10:5:0:Spewable
$$CHILD_BLOCK_END
08:aShowColoredHUDMessageObj
$$CHILD_BLOCK_START
10:4:255:Red
10:4:0:Green
10:4:0:Blue
10:8:VirusInfectFail:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:22:LeftLab Infection-On
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:4:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:cRegionSetLightingFlicker
$$CHILD_BLOCK_START
10:10:0:1:On/Off
10:10:0:0:LevelRegion
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qRandomValue:Time
$$CHILD_BLOCK_START
10:6:2.000000:LowerLimit
10:6:4.000000:UpperLimit
$$CHILD_BLOCK_END
10:10:0:5:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:9:LeftLab Infection-Off
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:5:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:cRegionSetLightingFlicker
$$CHILD_BLOCK_START
10:10:0:0:On/Off
10:10:0:0:LevelRegion
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qRandomValue:Time
$$CHILD_BLOCK_START
10:6:3.000000:LowerLimit
10:6:6.000000:UpperLimit
$$CHILD_BLOCK_END
10:10:0:4:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:11:LeftLab Infection Door
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:8:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:cMalfunctionRegionDoors
$$CHILD_BLOCK_START
10:10:0:0:LevelRegion
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qRandomValue:Time
$$CHILD_BLOCK_START
10:6:3.000000:LowerLimit
10:6:7.000000:UpperLimit
$$CHILD_BLOCK_END
10:10:0:8:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:16:RightLab Infection-On
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:6:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:cRegionSetLightingFlicker
$$CHILD_BLOCK_START
10:10:0:1:On/Off
10:10:0:1:LevelRegion
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qRandomValue:Time
$$CHILD_BLOCK_START
10:6:2.000000:LowerLimit
10:6:4.000000:UpperLimit
$$CHILD_BLOCK_END
10:10:0:7:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:21:RightLab Infection-Off
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:7:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:cRegionSetLightingFlicker
$$CHILD_BLOCK_START
10:10:0:0:On/Off
10:10:0:1:LevelRegion
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qRandomValue:Time
$$CHILD_BLOCK_START
10:6:3.000000:LowerLimit
10:6:6.000000:UpperLimit
$$CHILD_BLOCK_END
10:10:0:6:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:23:RightLab Infection Door
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:12:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:cMalfunctionRegionDoors
$$CHILD_BLOCK_START
10:10:0:1:LevelRegion
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qRandomValue:Time
$$CHILD_BLOCK_START
10:6:3.000000:LowerLimit
10:6:7.000000:UpperLimit
$$CHILD_BLOCK_END
10:10:0:12:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:41:Both Hubs Infected
$$CHILD_BLOCK_START
01:2:0
02:23
03:0
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:1:UserFlag
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:0:UserFlag
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:GetToPower:Message
$$CHILD_BLOCK_END
08:aDoorSetPos
$$CHILD_BLOCK_START
10:0:0:0:Door
10:9:0.800000:Position
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:49:Creeper Timer Events
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:cExecTimerEvent
$$CHILD_BLOCK_START
10:10:2:0:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:28:INIT Main Power Array
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:7:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:6:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:139:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:140:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:141:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:142:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:3:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:2:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:1:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:0:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:7:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:6:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:5:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:4:Object
10:4:99999:Time
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:143:Object1
10:1:0:7:Object2
10:6:99999.000000:Lifetime
10:6:3.000000:Thickness
10:4:1:NumTiles
10:14:1:Texture
10:6:0.500000:SlideTime
10:4:3:TimesDrawn
10:4:200:Red
10:4:100:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:144:Object1
10:1:0:6:Object2
10:6:99999.000000:Lifetime
10:6:3.000000:Thickness
10:4:1:NumTiles
10:14:1:Texture
10:6:0.500000:SlideTime
10:4:3:TimesDrawn
10:4:200:Red
10:4:100:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:145:Object1
10:1:0:5:Object2
10:6:99999.000000:Lifetime
10:6:3.000000:Thickness
10:4:1:NumTiles
10:14:1:Texture
10:6:0.500000:SlideTime
10:4:3:TimesDrawn
10:4:200:Red
10:4:100:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:146:Object1
10:1:0:4:Object2
10:6:99999.000000:Lifetime
10:6:3.000000:Thickness
10:4:1:NumTiles
10:14:1:Texture
10:6:0.500000:SlideTime
10:4:3:TimesDrawn
10:4:200:Red
10:4:100:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:147:Object1
10:1:0:148:Object2
10:6:99999.000000:Lifetime
10:6:4.500000:Thickness
10:4:2:NumTiles
10:14:1:Texture
10:6:0.400000:SlideTime
10:4:3:TimesDrawn
10:4:200:Red
10:4:150:Green
10:4:100:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:149:Object1
10:1:0:150:Object2
10:6:99999.000000:Lifetime
10:6:3.500000:Thickness
10:4:2:NumTiles
10:14:0:Texture
10:6:0.500000:SlideTime
10:4:3:TimesDrawn
10:4:0:Red
10:4:150:Green
10:4:250:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:84:Receptor Switch4
$$CHILD_BLOCK_START
01:1:151
02:0
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aMiscShakeArea
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:6:40.000000:Amount
10:6:200.000000:Dist
$$CHILD_BLOCK_END
08:aObjDelete
$$CHILD_BLOCK_START
10:1:0:143:Object
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:3:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:2.000000:SpewLife
10:6:2.500000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:7:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:2.500000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:4:SpewHandle
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:3:Object
10:6:2.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:9:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:0:StartFrame
10:4:4:EndFrame
10:6:2.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:83:Receptor Switch3
$$CHILD_BLOCK_START
01:1:152
02:0
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aMiscShakeArea
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:6:40.000000:Amount
10:6:200.000000:Dist
$$CHILD_BLOCK_END
08:aObjDelete
$$CHILD_BLOCK_START
10:1:0:144:Object
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:2:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:2.000000:SpewLife
10:6:2.500000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:6:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:2.500000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:3:SpewHandle
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:2:Object
10:6:2.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:9:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:0:StartFrame
10:4:4:EndFrame
10:6:2.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:82:Receptor Switch2
$$CHILD_BLOCK_START
01:1:153
02:0
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aObjDelete
$$CHILD_BLOCK_START
10:1:0:145:Object
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:1:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:2.000000:SpewLife
10:6:2.500000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:5:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:2.500000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:2:SpewHandle
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:1:Object
10:6:2.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:9:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:0:StartFrame
10:4:4:EndFrame
10:6:2.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aMiscShakeArea
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:6:40.000000:Amount
10:6:200.000000:Dist
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:19:Receptor Switch1
$$CHILD_BLOCK_START
01:1:154
02:0
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aObjDelete
$$CHILD_BLOCK_START
10:1:0:146:Object
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:0:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:2.000000:SpewLife
10:6:2.500000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:4:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:2.500000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:1:SpewHandle
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:0:Object
10:6:2.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:9:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:0:StartFrame
10:4:4:EndFrame
10:6:2.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aMiscShakeArea
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:6:40.000000:Amount
10:6:200.000000:Dist
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:81:Receptor NodeShutdown4
$$CHILD_BLOCK_START
01:1:3
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:7:Object
10:4:1:StartFrame
10:4:2:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:6:50.000000:SparkRate
10:6:2.000000:Time
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:8:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:5:StartFrame
10:4:6:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:80:Receptor NodeShutdown3
$$CHILD_BLOCK_START
01:1:2
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:6:Object
10:4:1:StartFrame
10:4:2:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:6:50.000000:SparkRate
10:6:2.000000:Time
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:8:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:5:StartFrame
10:4:6:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:79:Receptor NodeShutdown2
$$CHILD_BLOCK_START
01:1:1
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:5:Object
10:4:1:StartFrame
10:4:2:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:6:50.000000:SparkRate
10:6:2.000000:Time
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:8:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:5:StartFrame
10:4:6:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:20:Receptor NodeShutdown1
$$CHILD_BLOCK_START
01:1:0
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:4:Object
10:4:1:StartFrame
10:4:2:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:6:50.000000:SparkRate
10:6:2.000000:Time
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:8:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:5:StartFrame
10:4:6:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:88:RestorePower3
$$CHILD_BLOCK_START
01:1:155
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:4.000000:Time
10:10:0:19:TimerID
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:7:Object
10:6:20.000000:SparkRate
10:6:5.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:6:Object
10:6:20.000000:SparkRate
10:6:5.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:5:Object
10:6:20.000000:SparkRate
10:6:5.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:4:Object
10:6:20.000000:SparkRate
10:6:5.000000:Time
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:5:Object1
10:1:0:141:Object2
10:6:99999.000000:Lifetime
10:6:3.000000:Thickness
10:4:2:NumTiles
10:14:4:Texture
10:6:0.500000:SlideTime
10:4:2:TimesDrawn
10:4:255:Red
10:4:255:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:6:Object1
10:1:0:140:Object2
10:6:99999.000000:Lifetime
10:6:3.000000:Thickness
10:4:2:NumTiles
10:14:4:Texture
10:6:0.500000:SlideTime
10:4:2:TimesDrawn
10:4:255:Red
10:4:255:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:4:Object1
10:1:0:142:Object2
10:6:99999.000000:Lifetime
10:6:3.000000:Thickness
10:4:2:NumTiles
10:14:4:Texture
10:6:0.500000:SlideTime
10:4:2:TimesDrawn
10:4:255:Red
10:4:255:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:7:Object1
10:1:0:139:Object2
10:6:99999.000000:Lifetime
10:6:3.000000:Thickness
10:4:2:NumTiles
10:14:4:Texture
10:6:0.500000:SlideTime
10:4:2:TimesDrawn
10:4:255:Red
10:4:255:Green
10:4:255:Blue
10:5:0:AutoTile
$$CHILD_BLOCK_END
08:aMiscShakeArea
$$CHILD_BLOCK_START
10:1:0:150:Object
10:6:80.000000:Amount
10:6:500.000000:Dist
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:87:RestorePower2
$$CHILD_BLOCK_START
01:1:156
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:139:Object
10:4:0:StartFrame
10:4:3:EndFrame
10:6:3.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:140:Object
10:4:0:StartFrame
10:4:3:EndFrame
10:6:3.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:141:Object
10:4:0:StartFrame
10:4:3:EndFrame
10:6:3.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:142:Object
10:4:0:StartFrame
10:4:3:EndFrame
10:6:3.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:139:Object
10:6:25.000000:SparkRate
10:6:5.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:140:Object
10:6:25.000000:SparkRate
10:6:5.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:141:Object
10:6:25.000000:SparkRate
10:6:5.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:142:Object
10:6:25.000000:SparkRate
10:6:5.000000:Time
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:85:Restore Power
$$CHILD_BLOCK_START
01:1:155
02:0
03:0
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:7:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:86:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:0
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:50.000000:Time
10:10:0:14:TimerID
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:60.000000:Time
10:10:0:16:TimerID
$$CHILD_BLOCK_END
08:aTimerShow
$$CHILD_BLOCK_START
10:10:0:16:TimerID
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:156:Object
10:6:1.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:155:Object
10:6:4.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aDoorSetPos
$$CHILD_BLOCK_START
10:0:0:0:Door
10:9:0.000000:Position
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:7:Object
10:4:2:StartFrame
10:4:3:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:6:Object
10:4:2:StartFrame
10:4:3:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:5:Object
10:4:2:StartFrame
10:4:3:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:4:Object
10:4:2:StartFrame
10:4:3:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:3:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:7:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:RechargeSucceed:Message
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:10:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:0:StartFrame
10:4:3:EndFrame
10:6:3.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:7:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:RechargeFail:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:86:Shutdown Power
$$CHILD_BLOCK_START
01:1:156
02:0
03:0
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:6:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:84:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:83:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:82:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:19:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aObjSetLightingColor
$$CHILD_BLOCK_START
10:1:0:157:Object
10:6:1.000000:Red
10:6:0.200000:Green
10:6:0.200000:Blue
$$CHILD_BLOCK_END
08:aObjSetLightingColor
$$CHILD_BLOCK_START
10:1:0:158:Object
10:6:1.000000:Red
10:6:0.200000:Green
10:6:0.200000:Blue
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:36:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:37:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:38:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:39:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:40:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:41:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:42:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:43:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:44:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:45:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:46:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:47:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:48:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aRoomSetLightingPulse
$$CHILD_BLOCK_START
10:2:49:Room
10:6:20.000000:PulseTime
10:6:0.000000:PulseOffset
$$CHILD_BLOCK_END
08:aMiscShakeArea
$$CHILD_BLOCK_START
10:1:0:150:Object
10:6:80.000000:Amount
10:6:200.000000:Dist
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:150:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:2.500000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:147:Object
10:4:0:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.500000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:-1.000000:SpewLife
10:6:2.500000:BlobSize
10:6:15.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:4:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:6:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aAISetState
$$CHILD_BLOCK_START
10:10:0:0:On/Off
10:1:0:159:Object
$$CHILD_BLOCK_END
08:aAISetState
$$CHILD_BLOCK_START
10:10:0:0:On/Off
10:1:0:160:Object
$$CHILD_BLOCK_END
08:aAISetState
$$CHILD_BLOCK_START
10:10:0:0:On/Off
10:1:0:161:Object
$$CHILD_BLOCK_END
08:aAISetState
$$CHILD_BLOCK_START
10:10:0:0:On/Off
10:1:0:162:Object
$$CHILD_BLOCK_END
08:aTurnOffSpew
$$CHILD_BLOCK_START
10:10:0:1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOffSpew
$$CHILD_BLOCK_START
10:10:0:2:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOffSpew
$$CHILD_BLOCK_START
10:10:0:3:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOffSpew
$$CHILD_BLOCK_START
10:10:0:4:SpewHandle
$$CHILD_BLOCK_END
08:aObjDelete
$$CHILD_BLOCK_START
10:1:0:149:Object
$$CHILD_BLOCK_END
08:aObjDelete
$$CHILD_BLOCK_START
10:1:0:148:Object
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:150:Object
10:6:30.000000:SparkRate
10:6:99999.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:147:Object
10:6:30.000000:SparkRate
10:6:99999.000000:Time
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:DeactivateSucceed:Message
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:4:Sound
10:1:0:158:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:4:Sound
10:1:0:157:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:10:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:0:StartFrame
10:4:3:EndFrame
10:6:3.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:6:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:DeactivateFail:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:25:EndMovie-1
$$CHILD_BLOCK_START
01:1:163
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:164:Object
10:6:1.200000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:165:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:3.000000:SpewLife
10:6:3.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:166:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.120000:BlobInterval
10:6:10.000000:SpewLife
10:6:4.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:167:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.120000:BlobInterval
10:6:10.000000:SpewLife
10:6:4.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:168:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:3.000000:SpewLife
10:6:3.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aCinematicIntro
$$CHILD_BLOCK_START
10:16:10:CameraPath
10:8:EmptyMessage:Text
10:1:0:39:TotallyNotUsedTarget
10:16:11:PlayerPath
10:6:8.000000:Seconds
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:27:EndMovie-1 Door Open
$$CHILD_BLOCK_START
01:1:164
02:9
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:166:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:10.000000:SpewLife
10:6:5.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:167:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.200000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:10.000000:SpewLife
10:6:5.000000:BlobSize
10:6:30.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aDoorSetPos
$$CHILD_BLOCK_START
10:0:0:1:Door
10:9:1.000000:Position
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:26:EndMovie-2
$$CHILD_BLOCK_START
01:2:0
02:28
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:0:Ghost/Unghost
10:1:0:15:Object
$$CHILD_BLOCK_END
08:aLightningTurnOn
$$CHILD_BLOCK_START
10:6:0.100000:Seconds
10:9:0.080000:Probability
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:169:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.400000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:10.000000:SpewLife
10:6:7.000000:BlobSize
10:6:50.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:170:Object
10:4:-1:GunNum
10:10:0:7:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:1.400000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:10.000000:SpewLife
10:6:7.000000:BlobSize
10:6:50.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:171:Object
10:6:30.000000:SparkRate
10:6:10.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:172:Object
10:6:30.000000:SparkRate
10:6:10.000000:Time
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:173:Object
10:6:30.000000:SparkRate
10:6:10.000000:Time
$$CHILD_BLOCK_END
08:aStartEndlevelSequencePath
$$CHILD_BLOCK_START
10:16:12:CameraPath
10:16:13:PlayerPath
10:6:8.000000:Time
10:8:EmptyMessage:Text
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:38:Exit Level
$$CHILD_BLOCK_START
01:0:2
02:1
03:0
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qObjIsPlayer:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:1:0
10:5:1:Bool
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:85:ScriptID
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aCancelTimer
$$CHILD_BLOCK_START
10:10:0:16:TimerID
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:5:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:6:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aSetObjectTimer
$$CHILD_BLOCK_START
10:1:0:163:Object
10:6:0.000000:Time
10:10:0:-1:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:34:End Level in 10 seconds!
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:14:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aShowColoredHUDMessage
$$CHILD_BLOCK_START
10:4:255:Red
10:4:0:Green
10:4:0:Blue
10:8:10Seconds:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:35:Failed
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:23:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aGoalFailed
$$CHILD_BLOCK_START
10:18:0:6:LevelGoal
10:10:0:1:Failed
$$CHILD_BLOCK_END
08:aFailLevel
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:39:End Level Failure
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:16:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:3.800000:Time
10:10:0:23:TimerID
$$CHILD_BLOCK_END
08:aFadeWhiteAndEndlevel
$$CHILD_BLOCK_START
10:6:4.000000:Time
10:8:EmptyMessage:Text
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:54:Exit Shaker
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:19:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMiscViewerShake
$$CHILD_BLOCK_START
06:qRandomValue:Amount
$$CHILD_BLOCK_START
10:6:40.000000:LowerLimit
10:6:70.000000:UpperLimit
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qRandomValue:Time
$$CHILD_BLOCK_START
10:6:1.500000:LowerLimit
10:6:3.500000:UpperLimit
$$CHILD_BLOCK_END
10:10:0:19:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:63:Music-Level Start (Intro)
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMusicSetRegionAll
$$CHILD_BLOCK_START
10:10:0:0:Region
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:71:Music-Level11
$$CHILD_BLOCK_START
01:0:3
02:1
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMusicSetRegion
$$CHILD_BLOCK_START
10:10:0:5:Region
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:70:Music-Level22
$$CHILD_BLOCK_START
01:0:4
02:1
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMusicSetRegion
$$CHILD_BLOCK_START
10:10:0:4:Region
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:69:Music-Level21
$$CHILD_BLOCK_START
01:0:5
02:1
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMusicSetRegion
$$CHILD_BLOCK_START
10:10:0:4:Region
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:68:Music-Level32
$$CHILD_BLOCK_START
01:0:6
02:1
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMusicSetRegion
$$CHILD_BLOCK_START
10:10:0:3:Region
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:67:Music-Level31
$$CHILD_BLOCK_START
01:0:7
02:1
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMusicSetRegion
$$CHILD_BLOCK_START
10:10:0:3:Region
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:66:Music-Temple21
$$CHILD_BLOCK_START
01:0:8
02:1
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMusicSetRegion
$$CHILD_BLOCK_START
10:10:0:2:Region
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:65:Music-Temple1
$$CHILD_BLOCK_START
01:0:9
02:1
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMusicSetRegion
$$CHILD_BLOCK_START
10:10:0:2:Region
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:64:Music-Outside1
$$CHILD_BLOCK_START
01:0:10
02:1
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMusicSetRegion
$$CHILD_BLOCK_START
10:10:0:1:Region
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:15:BrokenDoor
$$CHILD_BLOCK_START
01:1:174
02:0
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:1:0
$$CHILD_BLOCK_START
08:aEmitSparks
$$CHILD_BLOCK_START
06:qRandomValue:Number
$$CHILD_BLOCK_START
10:6:10.000000:LowerLimit
10:6:50.000000:UpperLimit
$$CHILD_BLOCK_END
10:1:2:-1:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$SCRIPT_BLOCK_END
*********************************************************/