Descent3/scripts/Merc4.cpp
2024-04-16 12:56:40 -06:00

9433 lines
380 KiB
C++

/////////////////////////////////////////////////////////////////////
// D.A.L.L.A.S. Generated Level Script - DLL Source File
//
// Filename: Merc4.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"
#ifdef _MSC_VER // Visual C++ Build
#define STDCALL __stdcall
#define STDCALLPTR *STDCALL
#else // Non-Visual C++ Build
#define STDCALL __attribute__((stdcall))
#define STDCALLPTR STDCALL *
#endif
#ifdef __cplusplus
extern "C" {
#endif
char STDCALL InitializeDLL(tOSIRISModuleInit *func_list);
void STDCALL ShutdownDLL(void);
int STDCALL GetGOScriptID(char *name, ubyte is_door);
void STDCALLPTR CreateInstance(int id);
void STDCALL DestroyInstance(int id, void *ptr);
short STDCALL CallInstanceEvent(int id, void *ptr, int event, tOSIRISEventInfo *data);
int STDCALL GetTriggerScriptID(int trigger_room, int trigger_face);
int STDCALL GetCOScriptList(int **list, int **id_list);
int STDCALL SaveRestoreState(void *file_ptr, ubyte saving_state);
#ifdef __cplusplus
}
#endif
// =================
// Script ID Numbers
// =================
#define ID_LEVEL_0000 0x000
#define ID_CUSTOM_OBJECT_0811 0x001
#define ID_CUSTOM_OBJECT_0804 0x002
#define ID_CUSTOM_OBJECT_0803 0x003
#define ID_CUSTOM_OBJECT_3198 0x004
#define ID_CUSTOM_OBJECT_099A 0x005
#define ID_CUSTOM_OBJECT_099E 0x006
#define ID_CUSTOM_OBJECT_09A0 0x007
#define ID_CUSTOM_OBJECT_080A 0x008
#define ID_CUSTOM_OBJECT_09AC 0x009
#define ID_CUSTOM_OBJECT_1138 0x00a
#define ID_CUSTOM_OBJECT_11B2 0x00b
#define ID_CUSTOM_OBJECT_31B7 0x00c
#define ID_CUSTOM_OBJECT_11D1 0x00d
#define ID_CUSTOM_OBJECT_09D2 0x00e
#define ID_TRIGGER_0003 0x00f
#define ID_TRIGGER_0010 0x010
#define ID_TRIGGER_0011 0x011
#define ID_TRIGGER_0013 0x012
#define ID_TRIGGER_0014 0x013
#define ID_TRIGGER_0012 0x014
#define ID_TRIGGER_0015 0x015
#define ID_TRIGGER_0016 0x016
#define ID_TRIGGER_0004 0x017
#define ID_TRIGGER_0005 0x018
#define ID_TRIGGER_0006 0x019
#define ID_TRIGGER_0007 0x01a
#define ID_TRIGGER_0002 0x01b
#define ID_TRIGGER_0000 0x01c
#define ID_TRIGGER_0001 0x01d
#define ID_TRIGGER_000D 0x01e
#define ID_TRIGGER_000E 0x01f
#define ID_TRIGGER_0008 0x020
#define ID_TRIGGER_000F 0x021
#define ID_TRIGGER_0009 0x022
#define ID_TRIGGER_000A 0x023
#define ID_TRIGGER_000B 0x024
#define ID_TRIGGER_000C 0x025
// ========================
// Script Class Definitions
// ========================
class BaseScript {
public:
BaseScript();
~BaseScript();
virtual short CallEvent(int event, tOSIRISEventInfo *data);
};
class LevelScript_0000 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_0811 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_0804 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_0803 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_3198 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_099A : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_099E : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_09A0 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_080A : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_09AC : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_1138 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_11B2 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_31B7 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_11D1 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class CustomObjectScript_09D2 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0003 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0010 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0011 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0013 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0014 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0012 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0015 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0016 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0004 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0005 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0006 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0007 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0002 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0000 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0001 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000D : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000E : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0008 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000F : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0009 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000A : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000B : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000C : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
// ======================
// Global Action Counters
// ======================
#define MAX_ACTION_CTR_VALUE 100000
int ScriptActionCtr_000 = 0;
int ScriptActionCtr_001 = 0;
int ScriptActionCtr_002 = 0;
int ScriptActionCtr_037 = 0;
int ScriptActionCtr_004 = 0;
int ScriptActionCtr_003 = 0;
int ScriptActionCtr_011 = 0;
int ScriptActionCtr_005 = 0;
int ScriptActionCtr_012 = 0;
int ScriptActionCtr_006 = 0;
int ScriptActionCtr_009 = 0;
int ScriptActionCtr_007 = 0;
int ScriptActionCtr_008 = 0;
int ScriptActionCtr_044 = 0;
int ScriptActionCtr_063 = 0;
int ScriptActionCtr_010 = 0;
int ScriptActionCtr_060 = 0;
int ScriptActionCtr_013 = 0;
int ScriptActionCtr_014 = 0;
int ScriptActionCtr_015 = 0;
int ScriptActionCtr_016 = 0;
int ScriptActionCtr_017 = 0;
int ScriptActionCtr_065 = 0;
int ScriptActionCtr_066 = 0;
int ScriptActionCtr_067 = 0;
int ScriptActionCtr_068 = 0;
int ScriptActionCtr_069 = 0;
int ScriptActionCtr_070 = 0;
int ScriptActionCtr_018 = 0;
int ScriptActionCtr_026 = 0;
int ScriptActionCtr_019 = 0;
int ScriptActionCtr_020 = 0;
int ScriptActionCtr_021 = 0;
int ScriptActionCtr_022 = 0;
int ScriptActionCtr_023 = 0;
int ScriptActionCtr_045 = 0;
int ScriptActionCtr_046 = 0;
int ScriptActionCtr_047 = 0;
int ScriptActionCtr_048 = 0;
int ScriptActionCtr_049 = 0;
int ScriptActionCtr_024 = 0;
int ScriptActionCtr_025 = 0;
int ScriptActionCtr_036 = 0;
int ScriptActionCtr_050 = 0;
int ScriptActionCtr_027 = 0;
int ScriptActionCtr_033 = 0;
int ScriptActionCtr_035 = 0;
int ScriptActionCtr_034 = 0;
int ScriptActionCtr_032 = 0;
int ScriptActionCtr_028 = 0;
int ScriptActionCtr_029 = 0;
int ScriptActionCtr_030 = 0;
int ScriptActionCtr_031 = 0;
int ScriptActionCtr_058 = 0;
int ScriptActionCtr_059 = 0;
int ScriptActionCtr_038 = 0;
int ScriptActionCtr_041 = 0;
int ScriptActionCtr_039 = 0;
int ScriptActionCtr_042 = 0;
int ScriptActionCtr_043 = 0;
int ScriptActionCtr_040 = 0;
int ScriptActionCtr_056 = 0;
int ScriptActionCtr_064 = 0;
int ScriptActionCtr_055 = 0;
int ScriptActionCtr_054 = 0;
int ScriptActionCtr_052 = 0;
int ScriptActionCtr_057 = 0;
int ScriptActionCtr_053 = 0;
int ScriptActionCtr_051 = 0;
int ScriptActionCtr_061 = 0;
int ScriptActionCtr_062 = 0;
// ========================================
// Function to Clear Global Action Counters
// ========================================
void ClearGlobalActionCtrs(void) {
ScriptActionCtr_000 = 0;
ScriptActionCtr_001 = 0;
ScriptActionCtr_002 = 0;
ScriptActionCtr_037 = 0;
ScriptActionCtr_004 = 0;
ScriptActionCtr_003 = 0;
ScriptActionCtr_011 = 0;
ScriptActionCtr_005 = 0;
ScriptActionCtr_012 = 0;
ScriptActionCtr_006 = 0;
ScriptActionCtr_009 = 0;
ScriptActionCtr_007 = 0;
ScriptActionCtr_008 = 0;
ScriptActionCtr_044 = 0;
ScriptActionCtr_063 = 0;
ScriptActionCtr_010 = 0;
ScriptActionCtr_060 = 0;
ScriptActionCtr_013 = 0;
ScriptActionCtr_014 = 0;
ScriptActionCtr_015 = 0;
ScriptActionCtr_016 = 0;
ScriptActionCtr_017 = 0;
ScriptActionCtr_065 = 0;
ScriptActionCtr_066 = 0;
ScriptActionCtr_067 = 0;
ScriptActionCtr_068 = 0;
ScriptActionCtr_069 = 0;
ScriptActionCtr_070 = 0;
ScriptActionCtr_018 = 0;
ScriptActionCtr_026 = 0;
ScriptActionCtr_019 = 0;
ScriptActionCtr_020 = 0;
ScriptActionCtr_021 = 0;
ScriptActionCtr_022 = 0;
ScriptActionCtr_023 = 0;
ScriptActionCtr_045 = 0;
ScriptActionCtr_046 = 0;
ScriptActionCtr_047 = 0;
ScriptActionCtr_048 = 0;
ScriptActionCtr_049 = 0;
ScriptActionCtr_024 = 0;
ScriptActionCtr_025 = 0;
ScriptActionCtr_036 = 0;
ScriptActionCtr_050 = 0;
ScriptActionCtr_027 = 0;
ScriptActionCtr_033 = 0;
ScriptActionCtr_035 = 0;
ScriptActionCtr_034 = 0;
ScriptActionCtr_032 = 0;
ScriptActionCtr_028 = 0;
ScriptActionCtr_029 = 0;
ScriptActionCtr_030 = 0;
ScriptActionCtr_031 = 0;
ScriptActionCtr_058 = 0;
ScriptActionCtr_059 = 0;
ScriptActionCtr_038 = 0;
ScriptActionCtr_041 = 0;
ScriptActionCtr_039 = 0;
ScriptActionCtr_042 = 0;
ScriptActionCtr_043 = 0;
ScriptActionCtr_040 = 0;
ScriptActionCtr_056 = 0;
ScriptActionCtr_064 = 0;
ScriptActionCtr_055 = 0;
ScriptActionCtr_054 = 0;
ScriptActionCtr_052 = 0;
ScriptActionCtr_057 = 0;
ScriptActionCtr_053 = 0;
ScriptActionCtr_051 = 0;
ScriptActionCtr_061 = 0;
ScriptActionCtr_062 = 0;
}
// ========================================
// Function to Save Global Action Counters
// ========================================
void SaveGlobalActionCtrs(void *file_ptr) {
File_WriteInt(ScriptActionCtr_000, file_ptr);
File_WriteInt(ScriptActionCtr_001, file_ptr);
File_WriteInt(ScriptActionCtr_002, file_ptr);
File_WriteInt(ScriptActionCtr_037, file_ptr);
File_WriteInt(ScriptActionCtr_004, file_ptr);
File_WriteInt(ScriptActionCtr_003, file_ptr);
File_WriteInt(ScriptActionCtr_011, file_ptr);
File_WriteInt(ScriptActionCtr_005, file_ptr);
File_WriteInt(ScriptActionCtr_012, file_ptr);
File_WriteInt(ScriptActionCtr_006, file_ptr);
File_WriteInt(ScriptActionCtr_009, file_ptr);
File_WriteInt(ScriptActionCtr_007, file_ptr);
File_WriteInt(ScriptActionCtr_008, file_ptr);
File_WriteInt(ScriptActionCtr_044, file_ptr);
File_WriteInt(ScriptActionCtr_063, file_ptr);
File_WriteInt(ScriptActionCtr_010, file_ptr);
File_WriteInt(ScriptActionCtr_060, file_ptr);
File_WriteInt(ScriptActionCtr_013, file_ptr);
File_WriteInt(ScriptActionCtr_014, file_ptr);
File_WriteInt(ScriptActionCtr_015, file_ptr);
File_WriteInt(ScriptActionCtr_016, file_ptr);
File_WriteInt(ScriptActionCtr_017, file_ptr);
File_WriteInt(ScriptActionCtr_065, file_ptr);
File_WriteInt(ScriptActionCtr_066, file_ptr);
File_WriteInt(ScriptActionCtr_067, file_ptr);
File_WriteInt(ScriptActionCtr_068, file_ptr);
File_WriteInt(ScriptActionCtr_069, file_ptr);
File_WriteInt(ScriptActionCtr_070, file_ptr);
File_WriteInt(ScriptActionCtr_018, file_ptr);
File_WriteInt(ScriptActionCtr_026, file_ptr);
File_WriteInt(ScriptActionCtr_019, file_ptr);
File_WriteInt(ScriptActionCtr_020, file_ptr);
File_WriteInt(ScriptActionCtr_021, file_ptr);
File_WriteInt(ScriptActionCtr_022, file_ptr);
File_WriteInt(ScriptActionCtr_023, file_ptr);
File_WriteInt(ScriptActionCtr_045, file_ptr);
File_WriteInt(ScriptActionCtr_046, file_ptr);
File_WriteInt(ScriptActionCtr_047, file_ptr);
File_WriteInt(ScriptActionCtr_048, file_ptr);
File_WriteInt(ScriptActionCtr_049, file_ptr);
File_WriteInt(ScriptActionCtr_024, file_ptr);
File_WriteInt(ScriptActionCtr_025, file_ptr);
File_WriteInt(ScriptActionCtr_036, file_ptr);
File_WriteInt(ScriptActionCtr_050, file_ptr);
File_WriteInt(ScriptActionCtr_027, file_ptr);
File_WriteInt(ScriptActionCtr_033, file_ptr);
File_WriteInt(ScriptActionCtr_035, file_ptr);
File_WriteInt(ScriptActionCtr_034, file_ptr);
File_WriteInt(ScriptActionCtr_032, file_ptr);
File_WriteInt(ScriptActionCtr_028, file_ptr);
File_WriteInt(ScriptActionCtr_029, file_ptr);
File_WriteInt(ScriptActionCtr_030, file_ptr);
File_WriteInt(ScriptActionCtr_031, file_ptr);
File_WriteInt(ScriptActionCtr_058, file_ptr);
File_WriteInt(ScriptActionCtr_059, file_ptr);
File_WriteInt(ScriptActionCtr_038, file_ptr);
File_WriteInt(ScriptActionCtr_041, file_ptr);
File_WriteInt(ScriptActionCtr_039, file_ptr);
File_WriteInt(ScriptActionCtr_042, file_ptr);
File_WriteInt(ScriptActionCtr_043, file_ptr);
File_WriteInt(ScriptActionCtr_040, file_ptr);
File_WriteInt(ScriptActionCtr_056, file_ptr);
File_WriteInt(ScriptActionCtr_064, file_ptr);
File_WriteInt(ScriptActionCtr_055, file_ptr);
File_WriteInt(ScriptActionCtr_054, file_ptr);
File_WriteInt(ScriptActionCtr_052, file_ptr);
File_WriteInt(ScriptActionCtr_057, file_ptr);
File_WriteInt(ScriptActionCtr_053, file_ptr);
File_WriteInt(ScriptActionCtr_051, file_ptr);
File_WriteInt(ScriptActionCtr_061, file_ptr);
File_WriteInt(ScriptActionCtr_062, file_ptr);
}
// ===========================================
// Function to Restore Global Action Counters
// ===========================================
void RestoreGlobalActionCtrs(void *file_ptr) {
ScriptActionCtr_000 = File_ReadInt(file_ptr);
ScriptActionCtr_001 = File_ReadInt(file_ptr);
ScriptActionCtr_002 = File_ReadInt(file_ptr);
ScriptActionCtr_037 = File_ReadInt(file_ptr);
ScriptActionCtr_004 = File_ReadInt(file_ptr);
ScriptActionCtr_003 = File_ReadInt(file_ptr);
ScriptActionCtr_011 = File_ReadInt(file_ptr);
ScriptActionCtr_005 = File_ReadInt(file_ptr);
ScriptActionCtr_012 = File_ReadInt(file_ptr);
ScriptActionCtr_006 = File_ReadInt(file_ptr);
ScriptActionCtr_009 = File_ReadInt(file_ptr);
ScriptActionCtr_007 = File_ReadInt(file_ptr);
ScriptActionCtr_008 = File_ReadInt(file_ptr);
ScriptActionCtr_044 = File_ReadInt(file_ptr);
ScriptActionCtr_063 = File_ReadInt(file_ptr);
ScriptActionCtr_010 = File_ReadInt(file_ptr);
ScriptActionCtr_060 = File_ReadInt(file_ptr);
ScriptActionCtr_013 = File_ReadInt(file_ptr);
ScriptActionCtr_014 = File_ReadInt(file_ptr);
ScriptActionCtr_015 = File_ReadInt(file_ptr);
ScriptActionCtr_016 = File_ReadInt(file_ptr);
ScriptActionCtr_017 = File_ReadInt(file_ptr);
ScriptActionCtr_065 = File_ReadInt(file_ptr);
ScriptActionCtr_066 = File_ReadInt(file_ptr);
ScriptActionCtr_067 = File_ReadInt(file_ptr);
ScriptActionCtr_068 = File_ReadInt(file_ptr);
ScriptActionCtr_069 = File_ReadInt(file_ptr);
ScriptActionCtr_070 = File_ReadInt(file_ptr);
ScriptActionCtr_018 = File_ReadInt(file_ptr);
ScriptActionCtr_026 = File_ReadInt(file_ptr);
ScriptActionCtr_019 = File_ReadInt(file_ptr);
ScriptActionCtr_020 = File_ReadInt(file_ptr);
ScriptActionCtr_021 = File_ReadInt(file_ptr);
ScriptActionCtr_022 = File_ReadInt(file_ptr);
ScriptActionCtr_023 = File_ReadInt(file_ptr);
ScriptActionCtr_045 = File_ReadInt(file_ptr);
ScriptActionCtr_046 = File_ReadInt(file_ptr);
ScriptActionCtr_047 = File_ReadInt(file_ptr);
ScriptActionCtr_048 = File_ReadInt(file_ptr);
ScriptActionCtr_049 = File_ReadInt(file_ptr);
ScriptActionCtr_024 = File_ReadInt(file_ptr);
ScriptActionCtr_025 = File_ReadInt(file_ptr);
ScriptActionCtr_036 = File_ReadInt(file_ptr);
ScriptActionCtr_050 = File_ReadInt(file_ptr);
ScriptActionCtr_027 = File_ReadInt(file_ptr);
ScriptActionCtr_033 = File_ReadInt(file_ptr);
ScriptActionCtr_035 = File_ReadInt(file_ptr);
ScriptActionCtr_034 = File_ReadInt(file_ptr);
ScriptActionCtr_032 = File_ReadInt(file_ptr);
ScriptActionCtr_028 = File_ReadInt(file_ptr);
ScriptActionCtr_029 = File_ReadInt(file_ptr);
ScriptActionCtr_030 = File_ReadInt(file_ptr);
ScriptActionCtr_031 = File_ReadInt(file_ptr);
ScriptActionCtr_058 = File_ReadInt(file_ptr);
ScriptActionCtr_059 = File_ReadInt(file_ptr);
ScriptActionCtr_038 = File_ReadInt(file_ptr);
ScriptActionCtr_041 = File_ReadInt(file_ptr);
ScriptActionCtr_039 = File_ReadInt(file_ptr);
ScriptActionCtr_042 = File_ReadInt(file_ptr);
ScriptActionCtr_043 = File_ReadInt(file_ptr);
ScriptActionCtr_040 = File_ReadInt(file_ptr);
ScriptActionCtr_056 = File_ReadInt(file_ptr);
ScriptActionCtr_064 = File_ReadInt(file_ptr);
ScriptActionCtr_055 = File_ReadInt(file_ptr);
ScriptActionCtr_054 = File_ReadInt(file_ptr);
ScriptActionCtr_052 = File_ReadInt(file_ptr);
ScriptActionCtr_057 = File_ReadInt(file_ptr);
ScriptActionCtr_053 = File_ReadInt(file_ptr);
ScriptActionCtr_051 = File_ReadInt(file_ptr);
ScriptActionCtr_061 = File_ReadInt(file_ptr);
ScriptActionCtr_062 = File_ReadInt(file_ptr);
}
// ===============================================================
// Start of Custom Script Block - DO NOT EDIT ANYTHING BEFORE THIS
// ===============================================================
/**{CUSTOM_SCRIPT_BLOCK_START}** DO NOT EDIT! **/
#include "AIGame3_External.h"
/*
$$ENUM Region
0:Intro
1:OuterShell
2:Hive
3:Boss
$$END
*/
/*
$$ACTION
Custom
Play imediate object [o:Object] animation from frame [i:StartFrame] to [i:EndFrame=1], cycle time = [f:CycleTime=1.0],
looping = [b:Looping=FALSE] aObjPlayImmAnim Play object animation Plays an animation for an object
Parameters:
Object: the object to animate
StartFrame: the frame number of the start of the animation
EndFrame: the frame number of the end of the animation
CycleTime: how long the entire animation takes
Looping: if true, animation repeats. If false, animation plays once
$$END
*/
void aObjPlayImmAnim(int objref, int startframe, int endframe, float cycletime, bool looping) {
int flags = 0;
if (!qObjExists(objref))
return;
if (looping)
flags |= AIAF_LOOPING;
Obj_SetCustomAnim(objref, (float)startframe, (float)endframe, cycletime, flags | AIAF_IMMEDIATE, -1, -1);
}
/*
$$ACTION
Custom
For [o:Alien Boss], set [o:Nest], [r:Left Hide Room], [r:Right Hide Room]
aABSetScenarioIDs
Sets Alien Boss' Scenario IDs
Parameters:
Alien Boss: the alien boss
Nest: the nest object
Left Hide Room: room to hide from thruster on left
Right Hide Room: room to hide from thruster on the right
$$END
*/
void aABSetScenarioIDs(int obj_handle, int nest_handle, int left_hide_room, int right_hide_room) {
ab_scenario_ids ids;
if (!qObjExists(obj_handle))
return;
ids.nest_handle = nest_handle;
ids.left_hide_room = left_hide_room;
ids.right_hide_room = right_hide_room;
SendCommand(obj_handle, obj_handle, AB_COM_SET_SCENARIO_IDS, &ids);
}
/*
$$QUERY
Custom
b:[o:Alien Boss] is healing
qIsAlienBossHealing
Alien Boss is healing
Checks to see if Alien Boss is healing at the nest
Parameters:
Alien Boss: the alien boss
$$END
*/
bool qIsAlienBossHealing(int obj_handle) {
bool boss_healing;
if (!qObjExists(obj_handle))
return false;
SendCommand(obj_handle, obj_handle, AB_COM_IS_NESTING, &boss_healing);
return boss_healing;
}
/*
$$QUERY
Custom
b:[o:Alien Boss] is healing (tells it thruster fired)
qAlienBossHealing
Alien Boss is healing
Checks to see if Alien Boss is healing at the nest when thruster is fired.
Parameters:
Alien Boss: the alien boss
$$END
*/
bool qAlienBossHealing(int obj_handle) {
bool boss_healing;
if (!qObjExists(obj_handle))
return false;
SendCommand(obj_handle, obj_handle, AB_COM_THRUSTER_IS_FIRING, &boss_healing);
return boss_healing;
}
/*
$$ACTION
Custom
Tell [o:Alien Boss] that thruster misfired
aABThrusterMisfired
Tells Alien Boss that thruster misfired
Parameters:
Alien Boss: the alien boss
$$END
*/
void aABThrusterMisfired(int obj_handle) {
if (!qObjExists(obj_handle))
return;
SendCommand(obj_handle, obj_handle, AB_COM_THRUSTER_MISFIRED, NULL);
}
/*
$$ACTION
Custom
Tell [o:Alien Boss] that thruster was ignited
aABThrusterIgnited
Tells Alien Boss that thruster was ignited
Parameters:
Alien Boss: the alien boss
$$END
*/
void aABThrusterIgnited(int obj_handle) {
if (!qObjExists(obj_handle))
return;
SendCommand(obj_handle, obj_handle, AB_COM_THRUSTER_IGNITED, NULL);
}
/*
$$ACTION
Custom
Tell [o:Alien Boss] that it's showtime for [f:Time] seconds
aABItsShowtime
Tells Alien Boss that it is showtime
Parameters:
Alien Boss: the alien boss
Time: seconds to do "intro" wandering
$$END
*/
void aABItsShowtime(int obj_handle, float time) {
if (!qObjExists(obj_handle))
return;
SendCommand(obj_handle, obj_handle, AB_COM_ITS_SHOWTIME, &time);
}
/*
$$ACTION
Custom
Tell [o:Alien Boss] to start waiting effect
aABStartWaitEffect
Tells Alien Boss to start waiting effect
Parameters:
Alien Boss: the alien boss
$$END
*/
void aABStartWaitEffect(int obj_handle) {
if (!qObjExists(obj_handle))
return;
SendCommand(obj_handle, obj_handle, AB_COM_START_WAITING_EFFECT, NULL);
}
/*
$$ACTION
Custom
Tell [o:Alien Organism] to hunt to [o:Destination Object]
aAlienOrganismHunt
Tell Alien Organism to hunt to Destination Object
Causes an alien organism (and possibly its squad) to go hunting toward a particular object.
Parameters:
Alien Organism: the alien that should go hunting
Destination Object: the object to hunt towards
$$END
*/
void aAlienOrganismHunt(int alien_handle, int dest_handle) {
if (!qObjExists(alien_handle))
return;
if (!qObjExists(dest_handle))
return;
SendCommand(alien_handle, alien_handle, ALIEN_COM_HUNT_TO_OBJ, &dest_handle);
}
/*
$$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);
}
bool names_looked_up = false;
unsigned short guidebot_id;
#define MAX_SCAN_OBJECTS 20
/*
$$ACTION
Custom
Kill robots and players near [o:Object]
aKillBotsNearObj
Kill robots and players near object
Kills robots and players near an object
Parameters:
Object: the object to search from
$$END
*/
void aKillBotsNearObj(int objhandle) {
int room;
vector pos;
float radius;
int type;
int scan_objs[MAX_SCAN_OBJECTS];
int n_scan;
int n, i;
unsigned short id;
if (!qObjExists(objhandle))
return;
// Look up names if we haven't already
if (!names_looked_up) {
guidebot_id = Obj_FindID("GuideBot");
names_looked_up = true;
}
// Make sure this object still exists
Obj_Value(objhandle, VF_GET, OBJV_I_TYPE, &type);
if (type == OBJ_NONE)
return;
// Get the size and position of the object
Obj_Value(objhandle, VF_GET, OBJV_F_SIZE, &radius);
Obj_Value(objhandle, VF_GET, OBJV_V_POS, &pos);
Obj_Value(objhandle, VF_GET, OBJV_I_ROOMNUM, &room);
// Scan for any nearby objects
// NOTE: check the func below to see what other params do!!!
n_scan = AI_GetNearbyObjs(&pos, room, radius, scan_objs, MAX_SCAN_OBJECTS, false, true, false, true);
// Go through the objects that have been found and kill any robots or players
for (i = 0; i < n_scan; i++) {
Obj_Value(scan_objs[i], VF_GET, OBJV_I_TYPE, &type);
if (type == OBJ_ROBOT || type == OBJ_PLAYER) {
// Make sure it's not the guidebot
if (type == OBJ_ROBOT) {
Obj_Value(scan_objs[i], VF_GET, OBJV_US_ID, &id);
if (id == ROBOT_GUIDEBOT || id == ROBOT_GUIDEBOTRED)
continue;
}
// Just do damage to players, but destroy robots on contact
if (type == OBJ_PLAYER) {
aObjApplyDamage(scan_objs[i], 5.0f);
} else {
aObjDestroy(scan_objs[i]);
}
}
}
}
int teleport_effect_id = -1;
/*
$$ACTION
Custom
Clear teleporter area at [o:Destination] for [o:Teleportee]
aClearTeleporterArea
Clears teleporter destination area of robots
Kills robots and players near teleport destination
Parameters:
Destination: the destination object
Teleportee: the object being teleported
$$END
*/
void aClearTeleporterArea(int desthandle, int objhandle) {
int room;
vector pos;
matrix orient;
int type;
int n, i;
if (!qObjExists(objhandle))
return;
if (!qObjExists(desthandle))
return;
// Make sure this object still exists
Obj_Value(desthandle, VF_GET, OBJV_I_TYPE, &type);
if (type == OBJ_NONE)
return;
Obj_Value(objhandle, VF_GET, OBJV_I_TYPE, &type);
if (type == OBJ_NONE)
return;
// Get the position of the dest object
Obj_Value(desthandle, VF_GET, OBJV_V_POS, &pos);
Obj_Value(desthandle, VF_GET, OBJV_M_ORIENT, &orient);
Obj_Value(desthandle, VF_GET, OBJV_I_ROOMNUM, &room);
// Create the teleport-in effect just below the destination
pos.y -= 1.0f;
// Look up the weapon effect
if (teleport_effect_id < 0)
teleport_effect_id = Wpn_FindID("TeleportEffect");
Obj_Create(OBJ_WEAPON, teleport_effect_id, room, &pos, &orient, desthandle);
}
/**{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
typedef struct {
char *name; // the name of the message
char *message; // the actual message text
} tScriptMessage;
// 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(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
char *GetMessage(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 3
char *Door_names[NUM_DOOR_NAMES] = {"AirlockInnerDoor", "AirlockOuterDoor", "DoorWon'tOpenFar"};
int Door_handles[NUM_DOOR_NAMES];
#define NUM_OBJECT_NAMES 79
char *Object_names[NUM_OBJECT_NAMES] = {"TeleporterA1",
"TeleporterA2",
"TeleporterB1",
"TeleporterC1",
"TeleporterC2",
"EscapeTrigger",
"Maw1",
"Maw2",
"Maw3",
"Maw4",
"Maw5",
"WallShuttle",
"DataArm1",
"DataArm2",
"BossMinion1",
"BossMinion2",
"Greenbot1",
"Greenbot2",
"SharkAmbush1",
"Greenbot3",
"Greenbot4",
"Greenbot5",
"Greenbot6",
"Greenbot7",
"Greenbot8",
"Greenbot9",
"Greenbot10",
"Greenbot11",
"Greenbot12",
"Greenbot13",
"Greenbot14",
"Greenbot15",
"Greenbot16",
"Greenbot17",
"Greenbot18",
"Greenbot19",
"BossDeathCamTarget",
"AlienBoss",
"AlienBossNest",
"AirlockDoorSwitch",
"AirlockOuterDoor",
"AirlockOuterCam1",
"AirlockOuterCam2",
"AirlockInnerDoor",
"AirlockInnerCam1",
"AirlockInnerCam2",
"AirlockSound",
"TeleporterA1Dest",
"TeleporterA1Cam2",
"TeleporterA2Cam2",
"TeleporterA2Dest",
"TeleporterC1Dest",
"TeleporterC2Dest",
"TeleporterA1Cam",
"TeleporterA2Cam",
"DoorWon'tOpenFar",
"BadDoorCam1",
"BadDoorCam2",
"CruiserFuse",
"FusePosition",
"FuseBeamB",
"FuseBeamA",
"ThrusterSwitch",
"ThrusterCam",
"Cocoon1Ambusher1",
"Ambush1HuntDest",
"Cocoon1Ambusher2",
"Cocoon1Ambusher3",
"Cocoon2Ambusher1",
"AlienAmbush1",
"AlienAmbush2A",
"AlienAmbush2B",
"AlienBossPosition",
"RoomASteamer1",
"RoomASteamer2",
"RoomBSteamer",
"RoomCSteamer",
"RoomDSteamer",
"RoomESteamer"};
int Object_handles[NUM_OBJECT_NAMES];
#define NUM_ROOM_NAMES 31
char *Room_names[NUM_ROOM_NAMES] = {
"AirlockRoom", "AirlockIDRoom", "AirlockODRoom", "BossRoomA", "BossRoomB", "BossRoomC",
"BossRoomD", "BossRoomE", "ThrusterSwitchRoom", "BossLeftHideRoom", "BossRightHideRoom", "TeleporterA2",
"TeleporterA1", "Maw1EntryRoom", "Maw1Room", "Maw2EntryRoom", "Maw2Room", "Maw3EntryRoom",
"Maw3Room", "Maw4EntryRoom", "Maw4Room", "Maw5EntryRoom", "Maw5Room", "ForcefieldRoom",
"CocoonAmb1Cell1", "Coc1AmbCell2", "CocAmb2Cell1", "SharkAmbush1", "AlienAmbush2", "CaveinRoom",
"CaveinRoom2"};
int Room_indexes[NUM_ROOM_NAMES];
#define NUM_TRIGGER_NAMES 23
char *Trigger_names[NUM_TRIGGER_NAMES] = {
"AirlockTrigger", "LeftOuterShell", "EnteredHiveArea1", "EnteredHive2",
"EnteredHive3", "LeftHiveArea1", "LeftHive2", "LeftHive3",
"ForcefieldRoomTrigg", "LowerQuadTrigger", "NestTrigger1", "NestTrigger2",
"ThrusterTrigger", "Ambush1", "Ambush2", "SharkAmbush1",
"AlienAmbush2", "BossIntroTrigger", "LeftBossArea", "BossIntroTrigger2",
"BossIntroTrigger3", "BossIntroTrigger4", "BossIntroTrigger5"};
int Trigger_indexes[NUM_TRIGGER_NAMES];
int Trigger_faces[NUM_TRIGGER_NAMES];
int Trigger_rooms[NUM_TRIGGER_NAMES];
#define NUM_SOUND_NAMES 16
char *Sound_names[NUM_SOUND_NAMES] = {"AmbSwitch41", "EnvSteamEmitG", "DoorIsLocked", "EnvSlowCreakD",
"EnvSlowCreakE", "Merc4Vortex", "Wall fade ???", "AmbMatCenProduce",
"EnvElectricE", "Powerup pickup", "EnvElectricA", "AmbSwitch31",
"Merc4Thruster", "Merc4BossDeath", "Merc4Rumble", "AmbSwitch11"};
int Sound_indexes[NUM_SOUND_NAMES];
#define NUM_TEXTURE_NAMES 4
char *Texture_names[NUM_TEXTURE_NAMES] = {"CC_JetEngine", "Alien_Forcefield02", "FunkyEffect3", "CC_JetEngineLit"};
int Texture_indexes[NUM_TEXTURE_NAMES];
#define NUM_PATH_NAMES 7
char *Path_names[NUM_PATH_NAMES] = {"IntroCamPath", "IntroPlayerPath", "BossDeathCam", "BossDeathPath",
"Escape2CamPath", "EscapePath2", "BossIntroCam2"};
int Path_indexes[NUM_PATH_NAMES];
#define NUM_MATCEN_NAMES 0
char **Matcen_names = NULL;
int *Matcen_indexes = NULL;
#define NUM_GOAL_NAMES 13
char *Goal_names[NUM_GOAL_NAMES] = {"Engage Airlock Power",
"Enter Outer Shell through Airlock",
"Teleport into Planetoid's Core",
"Disable Alien Forcefield Generators",
"Enter Sealed Quadrant of Alien Hive",
"Activate Main Thruster",
"Acquire Spare Fuse",
"Restore Power to Derelict Ship",
"Force Alien Queen to Nest",
"Manually Ignite Thruster Burn",
"Destroy Alien Planetoid",
"Escape",
"Investigate and Destroy Alien Planetoid"};
int Goal_indexes[NUM_GOAL_NAMES];
#define NUM_MESSAGE_NAMES 30
char *Message_names[NUM_MESSAGE_NAMES] = {"IntroText",
"AirlockPowerOn",
"AirlockDecompStarted",
"AirlockActive",
"AirlockPowerNotOn",
"AirlockCompStarted",
"AirlockMalfunction",
"BadDoorBumped",
"FFMessage",
"UseThruster",
"CruiserFuseAcquired",
"CruiserFusePlaced",
"CruiserFuseNoUse",
"QueenLeft",
"NoBurnIgnited",
"NoPowerAvail",
"IgniterFailed1",
"IgniterFailed2",
"BurnIgnited",
"ThrusterBurnFailed",
"RechargeThruster1",
"RechargeThruster2",
"Empty",
"GetOuttaHere",
"FuseRoom",
"BossIntro",
"DA1Game",
"DA1Hud",
"DA2Game",
"DA2Hud"};
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 + 1];
char english_filename[_MAX_PATH + 1];
int lang_type;
if (func_list->script_identifier != NULL) {
_splitpath(func_list->script_identifier, NULL, NULL, filename, NULL);
sprintf(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, "Merc4.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(char *name, ubyte isdoor) { return -1; }
// ================
// CreateInstance()
// ================
void STDCALLPTR CreateInstance(int id) {
switch (id) {
case ID_LEVEL_0000:
return new LevelScript_0000;
break;
case ID_CUSTOM_OBJECT_0811:
return new CustomObjectScript_0811;
break;
case ID_CUSTOM_OBJECT_0804:
return new CustomObjectScript_0804;
break;
case ID_CUSTOM_OBJECT_0803:
return new CustomObjectScript_0803;
break;
case ID_CUSTOM_OBJECT_3198:
return new CustomObjectScript_3198;
break;
case ID_CUSTOM_OBJECT_099A:
return new CustomObjectScript_099A;
break;
case ID_CUSTOM_OBJECT_099E:
return new CustomObjectScript_099E;
break;
case ID_CUSTOM_OBJECT_09A0:
return new CustomObjectScript_09A0;
break;
case ID_CUSTOM_OBJECT_080A:
return new CustomObjectScript_080A;
break;
case ID_CUSTOM_OBJECT_09AC:
return new CustomObjectScript_09AC;
break;
case ID_CUSTOM_OBJECT_1138:
return new CustomObjectScript_1138;
break;
case ID_CUSTOM_OBJECT_11B2:
return new CustomObjectScript_11B2;
break;
case ID_CUSTOM_OBJECT_31B7:
return new CustomObjectScript_31B7;
break;
case ID_CUSTOM_OBJECT_11D1:
return new CustomObjectScript_11D1;
break;
case ID_CUSTOM_OBJECT_09D2:
return new CustomObjectScript_09D2;
break;
case ID_TRIGGER_0003:
return new TriggerScript_0003;
break;
case ID_TRIGGER_0010:
return new TriggerScript_0010;
break;
case ID_TRIGGER_0011:
return new TriggerScript_0011;
break;
case ID_TRIGGER_0013:
return new TriggerScript_0013;
break;
case ID_TRIGGER_0014:
return new TriggerScript_0014;
break;
case ID_TRIGGER_0012:
return new TriggerScript_0012;
break;
case ID_TRIGGER_0015:
return new TriggerScript_0015;
break;
case ID_TRIGGER_0016:
return new TriggerScript_0016;
break;
case ID_TRIGGER_0004:
return new TriggerScript_0004;
break;
case ID_TRIGGER_0005:
return new TriggerScript_0005;
break;
case ID_TRIGGER_0006:
return new TriggerScript_0006;
break;
case ID_TRIGGER_0007:
return new TriggerScript_0007;
break;
case ID_TRIGGER_0002:
return new TriggerScript_0002;
break;
case ID_TRIGGER_0000:
return new TriggerScript_0000;
break;
case ID_TRIGGER_0001:
return new TriggerScript_0001;
break;
case ID_TRIGGER_000D:
return new TriggerScript_000D;
break;
case ID_TRIGGER_000E:
return new TriggerScript_000E;
break;
case ID_TRIGGER_0008:
return new TriggerScript_0008;
break;
case ID_TRIGGER_000F:
return new TriggerScript_000F;
break;
case ID_TRIGGER_0009:
return new TriggerScript_0009;
break;
case ID_TRIGGER_000A:
return new TriggerScript_000A;
break;
case ID_TRIGGER_000B:
return new TriggerScript_000B;
break;
case ID_TRIGGER_000C:
return new TriggerScript_000C;
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);
case ID_CUSTOM_OBJECT_0811:
delete ((CustomObjectScript_0811 *)ptr);
break;
case ID_CUSTOM_OBJECT_0804:
delete ((CustomObjectScript_0804 *)ptr);
break;
case ID_CUSTOM_OBJECT_0803:
delete ((CustomObjectScript_0803 *)ptr);
break;
case ID_CUSTOM_OBJECT_3198:
delete ((CustomObjectScript_3198 *)ptr);
break;
case ID_CUSTOM_OBJECT_099A:
delete ((CustomObjectScript_099A *)ptr);
break;
case ID_CUSTOM_OBJECT_099E:
delete ((CustomObjectScript_099E *)ptr);
break;
case ID_CUSTOM_OBJECT_09A0:
delete ((CustomObjectScript_09A0 *)ptr);
break;
case ID_CUSTOM_OBJECT_080A:
delete ((CustomObjectScript_080A *)ptr);
break;
case ID_CUSTOM_OBJECT_09AC:
delete ((CustomObjectScript_09AC *)ptr);
break;
case ID_CUSTOM_OBJECT_1138:
delete ((CustomObjectScript_1138 *)ptr);
break;
case ID_CUSTOM_OBJECT_11B2:
delete ((CustomObjectScript_11B2 *)ptr);
break;
case ID_CUSTOM_OBJECT_31B7:
delete ((CustomObjectScript_31B7 *)ptr);
break;
case ID_CUSTOM_OBJECT_11D1:
delete ((CustomObjectScript_11D1 *)ptr);
break;
case ID_CUSTOM_OBJECT_09D2:
delete ((CustomObjectScript_09D2 *)ptr);
break;
case ID_TRIGGER_0003:
delete ((TriggerScript_0003 *)ptr);
break;
case ID_TRIGGER_0010:
delete ((TriggerScript_0010 *)ptr);
break;
case ID_TRIGGER_0011:
delete ((TriggerScript_0011 *)ptr);
break;
case ID_TRIGGER_0013:
delete ((TriggerScript_0013 *)ptr);
break;
case ID_TRIGGER_0014:
delete ((TriggerScript_0014 *)ptr);
break;
case ID_TRIGGER_0012:
delete ((TriggerScript_0012 *)ptr);
break;
case ID_TRIGGER_0015:
delete ((TriggerScript_0015 *)ptr);
break;
case ID_TRIGGER_0016:
delete ((TriggerScript_0016 *)ptr);
break;
case ID_TRIGGER_0004:
delete ((TriggerScript_0004 *)ptr);
break;
case ID_TRIGGER_0005:
delete ((TriggerScript_0005 *)ptr);
break;
case ID_TRIGGER_0006:
delete ((TriggerScript_0006 *)ptr);
break;
case ID_TRIGGER_0007:
delete ((TriggerScript_0007 *)ptr);
break;
case ID_TRIGGER_0002:
delete ((TriggerScript_0002 *)ptr);
break;
case ID_TRIGGER_0000:
delete ((TriggerScript_0000 *)ptr);
break;
case ID_TRIGGER_0001:
delete ((TriggerScript_0001 *)ptr);
break;
case ID_TRIGGER_000D:
delete ((TriggerScript_000D *)ptr);
break;
case ID_TRIGGER_000E:
delete ((TriggerScript_000E *)ptr);
break;
case ID_TRIGGER_0008:
delete ((TriggerScript_0008 *)ptr);
break;
case ID_TRIGGER_000F:
delete ((TriggerScript_000F *)ptr);
break;
case ID_TRIGGER_0009:
delete ((TriggerScript_0009 *)ptr);
break;
case ID_TRIGGER_000A:
delete ((TriggerScript_000A *)ptr);
break;
case ID_TRIGGER_000B:
delete ((TriggerScript_000B *)ptr);
break;
case ID_TRIGGER_000C:
delete ((TriggerScript_000C *)ptr);
break;
default:
mprintf(0, "SCRIPT: Illegal ID (%d)\n", id);
break;
}
}
// ===================
// CallInstanceEvent()
// ===================
short STDCALL CallInstanceEvent(int id, void *ptr, int event, tOSIRISEventInfo *data) {
switch (id) {
case ID_LEVEL_0000:
case ID_CUSTOM_OBJECT_0811:
case ID_CUSTOM_OBJECT_0804:
case ID_CUSTOM_OBJECT_0803:
case ID_CUSTOM_OBJECT_3198:
case ID_CUSTOM_OBJECT_099A:
case ID_CUSTOM_OBJECT_099E:
case ID_CUSTOM_OBJECT_09A0:
case ID_CUSTOM_OBJECT_080A:
case ID_CUSTOM_OBJECT_09AC:
case ID_CUSTOM_OBJECT_1138:
case ID_CUSTOM_OBJECT_11B2:
case ID_CUSTOM_OBJECT_31B7:
case ID_CUSTOM_OBJECT_11D1:
case ID_CUSTOM_OBJECT_09D2:
case ID_TRIGGER_0003:
case ID_TRIGGER_0010:
case ID_TRIGGER_0011:
case ID_TRIGGER_0013:
case ID_TRIGGER_0014:
case ID_TRIGGER_0012:
case ID_TRIGGER_0015:
case ID_TRIGGER_0016:
case ID_TRIGGER_0004:
case ID_TRIGGER_0005:
case ID_TRIGGER_0006:
case ID_TRIGGER_0007:
case ID_TRIGGER_0002:
case ID_TRIGGER_0000:
case ID_TRIGGER_0001:
case ID_TRIGGER_000D:
case ID_TRIGGER_000E:
case ID_TRIGGER_0008:
case ID_TRIGGER_000F:
case ID_TRIGGER_0009:
case ID_TRIGGER_000A:
case ID_TRIGGER_000B:
case ID_TRIGGER_000C:
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, ubyte 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_0003;
if (trigger_room == Trigger_rooms[1] && trigger_face == Trigger_faces[1])
return ID_TRIGGER_0010;
if (trigger_room == Trigger_rooms[2] && trigger_face == Trigger_faces[2])
return ID_TRIGGER_0011;
if (trigger_room == Trigger_rooms[3] && trigger_face == Trigger_faces[3])
return ID_TRIGGER_0013;
if (trigger_room == Trigger_rooms[4] && trigger_face == Trigger_faces[4])
return ID_TRIGGER_0014;
if (trigger_room == Trigger_rooms[5] && trigger_face == Trigger_faces[5])
return ID_TRIGGER_0012;
if (trigger_room == Trigger_rooms[6] && trigger_face == Trigger_faces[6])
return ID_TRIGGER_0015;
if (trigger_room == Trigger_rooms[7] && trigger_face == Trigger_faces[7])
return ID_TRIGGER_0016;
if (trigger_room == Trigger_rooms[8] && trigger_face == Trigger_faces[8])
return ID_TRIGGER_0004;
if (trigger_room == Trigger_rooms[9] && trigger_face == Trigger_faces[9])
return ID_TRIGGER_0005;
if (trigger_room == Trigger_rooms[10] && trigger_face == Trigger_faces[10])
return ID_TRIGGER_0006;
if (trigger_room == Trigger_rooms[11] && trigger_face == Trigger_faces[11])
return ID_TRIGGER_0007;
if (trigger_room == Trigger_rooms[12] && trigger_face == Trigger_faces[12])
return ID_TRIGGER_0002;
if (trigger_room == Trigger_rooms[13] && trigger_face == Trigger_faces[13])
return ID_TRIGGER_0000;
if (trigger_room == Trigger_rooms[14] && trigger_face == Trigger_faces[14])
return ID_TRIGGER_0001;
if (trigger_room == Trigger_rooms[15] && trigger_face == Trigger_faces[15])
return ID_TRIGGER_000D;
if (trigger_room == Trigger_rooms[16] && trigger_face == Trigger_faces[16])
return ID_TRIGGER_000E;
if (trigger_room == Trigger_rooms[17] && trigger_face == Trigger_faces[17])
return ID_TRIGGER_0008;
if (trigger_room == Trigger_rooms[18] && trigger_face == Trigger_faces[18])
return ID_TRIGGER_000F;
if (trigger_room == Trigger_rooms[19] && trigger_face == Trigger_faces[19])
return ID_TRIGGER_0009;
if (trigger_room == Trigger_rooms[20] && trigger_face == Trigger_faces[20])
return ID_TRIGGER_000A;
if (trigger_room == Trigger_rooms[21] && trigger_face == Trigger_faces[21])
return ID_TRIGGER_000B;
if (trigger_room == Trigger_rooms[22] && trigger_face == Trigger_faces[22])
return ID_TRIGGER_000C;
return -1;
}
// =================
// GetCOScriptList()
// =================
int STDCALL GetCOScriptList(int **list, int **id_list) {
static int cust_handle_list[14];
static int cust_id_list[14] = {
ID_CUSTOM_OBJECT_0811, ID_CUSTOM_OBJECT_0804, ID_CUSTOM_OBJECT_0803, ID_CUSTOM_OBJECT_3198, ID_CUSTOM_OBJECT_099A,
ID_CUSTOM_OBJECT_099E, ID_CUSTOM_OBJECT_09A0, ID_CUSTOM_OBJECT_080A, ID_CUSTOM_OBJECT_09AC, ID_CUSTOM_OBJECT_1138,
ID_CUSTOM_OBJECT_11B2, ID_CUSTOM_OBJECT_31B7, ID_CUSTOM_OBJECT_11D1, ID_CUSTOM_OBJECT_09D2};
// Fill in the custom handle list
cust_handle_list[0] = Object_handles[39];
cust_handle_list[1] = Object_handles[40];
cust_handle_list[2] = Object_handles[43];
cust_handle_list[3] = Object_handles[0];
cust_handle_list[4] = Object_handles[1];
cust_handle_list[5] = Object_handles[3];
cust_handle_list[6] = Object_handles[4];
cust_handle_list[7] = Object_handles[55];
cust_handle_list[8] = Object_handles[58];
cust_handle_list[9] = Object_handles[62];
cust_handle_list[10] = Object_handles[37];
cust_handle_list[11] = Object_handles[5];
cust_handle_list[12] = Object_handles[12];
cust_handle_list[13] = Object_handles[13];
*list = cust_handle_list;
*id_list = cust_id_list;
return 14;
}
//=======================
// Script Implementation
//=======================
BaseScript::BaseScript() {}
BaseScript::~BaseScript() {}
short BaseScript::CallEvent(int event, tOSIRISEventInfo *data) {
mprintf(0, "BaseScript::CallEvent()\n");
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short 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 018: Check if any Maws have been broken
if (qUserFlag(18) == false) {
if ((qUserFlag(3) == false) && (qPortalIsOn(1, Room_indexes[13]) == false)) {
aSoundPlayObject(Sound_indexes[5], Object_handles[6], 1.000000f);
aRoomSetWind(Room_indexes[13], 0.469000f, 0.000000f, 0.883000f, qUserVarValue(2));
aRoomChangeWind(Room_indexes[13], 0.469000f, 0.000000f, 0.883000f, 0.500000f, qUserVarValue(1));
aRoomChangeFog(Room_indexes[14], 0.000000f, 0.000000f, 0.000000f, 40.000000f, qUserVarValue(1));
aSetLevelTimer(qUserVarValue(1), 10);
aUserFlagSet(3, 1);
}
if ((qUserFlag(4) == false) && (qPortalIsOn(0, Room_indexes[15]) == false)) {
aSoundPlayObject(Sound_indexes[5], Object_handles[7], 1.000000f);
aRoomSetWind(Room_indexes[15], 0.707000f, 0.000000f, 0.707000f, qUserVarValue(2));
aRoomChangeWind(Room_indexes[15], 0.707000f, 0.000000f, 0.707000f, 0.500000f, qUserVarValue(1));
aRoomChangeFog(Room_indexes[16], 0.000000f, 0.000000f, 0.000000f, 40.000000f, qUserVarValue(1));
aSetLevelTimer(qUserVarValue(1), 11);
aUserFlagSet(4, 1);
}
if ((qUserFlag(5) == false) && (qPortalIsOn(0, Room_indexes[17]) == false)) {
aSoundPlayObject(Sound_indexes[5], Object_handles[8], 1.000000f);
aRoomSetWind(Room_indexes[17], -0.866000f, 0.000000f, 0.500000f, qUserVarValue(2));
aRoomChangeWind(Room_indexes[17], -0.870000f, 0.000000f, 0.500000f, 0.500000f, qUserVarValue(1));
aRoomChangeFog(Room_indexes[18], 0.000000f, 0.000000f, 0.000000f, 40.000000f, qUserVarValue(1));
aSetLevelTimer(qUserVarValue(1), 12);
aUserFlagSet(5, 1);
}
if ((qUserFlag(6) == false) && (qPortalIsOn(0, Room_indexes[19]) == false)) {
aSoundPlayObject(Sound_indexes[5], Object_handles[9], 1.000000f);
aRoomSetWind(Room_indexes[19], -0.743000f, 0.000000f, 0.669000f, qUserVarValue(2));
aRoomChangeWind(Room_indexes[19], -0.740000f, 0.000000f, 0.670000f, 0.500000f, qUserVarValue(1));
aRoomChangeFog(Room_indexes[20], 0.000000f, 0.000000f, 0.000000f, 40.000000f, qUserVarValue(1));
aSetLevelTimer(qUserVarValue(1), 13);
aUserFlagSet(6, 1);
}
if ((qUserFlag(7) == false) && (qPortalIsOn(0, Room_indexes[21]) == false)) {
aSoundPlayObject(Sound_indexes[5], Object_handles[10], 1.000000f);
aRoomSetWind(Room_indexes[21], 0.574000f, 0.000000f, -0.819000f, qUserVarValue(2));
aRoomChangeWind(Room_indexes[21], 0.574000f, 0.000000f, -0.819000f, 0.500000f, qUserVarValue(1));
aRoomChangeFog(Room_indexes[22], 0.000000f, 0.000000f, 0.000000f, 40.000000f, qUserVarValue(1));
aSetLevelTimer(qUserVarValue(1), 14);
aUserFlagSet(7, 1);
}
if ((qUserFlag(9) == true) && (qUserFlag(10) == true) && (qUserFlag(11) == true) && (qUserFlag(12) == true) &&
(qUserFlag(13) == true)) {
aPortalRenderSet(0, 1, Room_indexes[23], 1);
aPortalRenderSet(0, 2, Room_indexes[23], 1);
aPortalRenderSet(0, 3, Room_indexes[23], 1);
aPortalRenderSet(0, 4, Room_indexes[23], 1);
aPortalRenderSet(0, 5, Room_indexes[23], 1);
aUserFlagSet(18, 1);
aGoalCompleted(Goal_indexes[3], 1);
}
// Increment the script action counter
if (ScriptActionCtr_018 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_018++;
}
} break;
case EVT_LEVELSTART: {
tOSIRISEVTLEVELSTART *event_data = &data->evt_levelstart;
ClearGlobalActionCtrs();
dfInit();
// Script 000: Level Start - Init Flags and Variables
if (1) {
aUserFlagSet(0, 0);
aUserFlagSet(1, 0);
aUserFlagSet(2, 0);
aUserFlagSet(3, 0);
aUserFlagSet(4, 0);
aUserFlagSet(5, 0);
aUserFlagSet(6, 0);
aUserFlagSet(7, 0);
aUserFlagSet(9, 0);
aUserFlagSet(10, 0);
aUserFlagSet(11, 0);
aUserFlagSet(12, 0);
aUserFlagSet(13, 0);
aUserFlagSet(8, 0);
aUserFlagSet(14, 0);
aUserFlagSet(15, 0);
aUserFlagSet(16, 0);
aUserFlagSet(17, 0);
aUserFlagSet(18, 0);
aUserFlagSet(19, 0);
aUserVarSet(0, 0.000000f);
aUserVarSet(1, 10.000000f);
aUserVarSet(2, 8.000000f);
// Increment the script action counter
if (ScriptActionCtr_000 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_000++;
}
// Script 001: Level Start - Misc
if (1) {
aRoomSetWind(Room_indexes[0], 0.985000f, 0.000000f, -0.174000f, 0.000000f);
aRoomSetWind(Room_indexes[1], 0.985000f, 0.000000f, -0.174000f, 0.000000f);
aRoomSetWind(Room_indexes[2], 0.985000f, 0.000000f, -0.174000f, 0.000000f);
aObjHide(Object_handles[0]);
aObjHide(Object_handles[1]);
aObjHide(Object_handles[2]);
aObjHide(Object_handles[3]);
aObjHide(Object_handles[4]);
aObjHide(Object_handles[5]);
aObjGhostSet(1, Object_handles[6]);
aObjGhostSet(1, Object_handles[7]);
aObjGhostSet(1, Object_handles[8]);
aObjGhostSet(1, Object_handles[9]);
aObjGhostSet(1, Object_handles[10]);
aObjMakeInvuln(Object_handles[11], 1000000);
aObjMakeInvuln(Object_handles[12], 1000000);
aObjMakeInvuln(Object_handles[13], 1000000);
aSetLevelTimer(0.400000f, 9);
aSetLevelTimer(2.000000f, 21);
aRoomSetFog(Room_indexes[3], 0.500000f, 0.500000f, 0.500000f, 20000.000000f);
aRoomSetFog(Room_indexes[4], 0.500000f, 0.500000f, 0.500000f, 20000.000000f);
aRoomSetFog(Room_indexes[5], 0.500000f, 0.500000f, 0.500000f, 20000.000000f);
aRoomSetFog(Room_indexes[6], 0.500000f, 0.500000f, 0.500000f, 20000.000000f);
aRoomSetFog(Room_indexes[7], 0.500000f, 0.500000f, 0.500000f, 20000.000000f);
aRoomSetFog(Room_indexes[8], 0.500000f, 0.500000f, 0.500000f, 20000.000000f);
aSetLevelTimer(1.000000f, 27);
aAISetState(0, Object_handles[14]);
aAISetState(0, Object_handles[15]);
aObjGhostSet(1, Object_handles[14]);
aObjGhostSet(1, Object_handles[15]);
aRoomSetFaceTexture(Room_indexes[3], 472, Texture_indexes[0]);
aEnableVirusInfection(1, Object_handles[16]);
aEnableVirusInfection(1, Object_handles[17]);
aEnableVirusInfection(1, Object_handles[18]);
aEnableVirusInfection(1, Object_handles[19]);
aEnableVirusInfection(1, Object_handles[20]);
aEnableVirusInfection(1, Object_handles[21]);
aEnableVirusInfection(1, Object_handles[22]);
aEnableVirusInfection(1, Object_handles[23]);
aEnableVirusInfection(1, Object_handles[24]);
aEnableVirusInfection(1, Object_handles[25]);
aEnableVirusInfection(1, Object_handles[26]);
aEnableVirusInfection(1, Object_handles[27]);
aEnableVirusInfection(1, Object_handles[28]);
aEnableVirusInfection(1, Object_handles[29]);
aEnableVirusInfection(1, Object_handles[30]);
aEnableVirusInfection(1, Object_handles[31]);
aEnableVirusInfection(1, Object_handles[32]);
aEnableVirusInfection(1, Object_handles[33]);
aEnableVirusInfection(1, Object_handles[34]);
aEnableVirusInfection(1, Object_handles[35]);
// Increment the script action counter
if (ScriptActionCtr_001 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_001++;
}
// Script 002: Level Start - Into Movie
if (1) {
aMusicSetRegionAll(0);
aCinematicIntro(Path_indexes[0], Message_strings[0], Object_handles[36], Path_indexes[1], 12.000000f);
// Increment the script action counter
if (ScriptActionCtr_002 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_002++;
}
} break;
case EVT_TIMER: {
tOSIRISEVTTIMER *event_data = &data->evt_timer;
// Script 037: Initialize Boss Scenario
if (event_data->id == 21) {
aABSetScenarioIDs(Object_handles[37], Object_handles[38], Room_indexes[9], Room_indexes[10]);
// Increment the script action counter
if (ScriptActionCtr_037 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_037++;
}
// Script 005: Do Airlock Decompression Check
if (event_data->id == 0) {
aUserVarInc(0);
if (((qDoorGetPos(Door_handles[1]) == 0.000000f) && (qDoorGetPos(Door_handles[0]) == 0.000000f)) ||
(qUserVarValue(0) == 12.000000f)) {
aTurnOnSpew(Object_handles[44], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.200000f, 3.000000f,
2.000000f, 8.000000f, 1, -1);
aTurnOnSpew(Object_handles[45], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.200000f, 3.000000f,
2.000000f, 8.000000f, 1, -1);
aSoundPlayObject(Sound_indexes[1], Object_handles[44], 1.000000f);
aSoundPlayObject(Sound_indexes[1], Object_handles[45], 1.000000f);
aDoorActivate(Door_handles[0]);
if (qUserVarValue(0) == 12.000000f) {
aShowHUDMessage(Message_strings[6]);
}
aSetLevelTimer(2.000000f, 1);
} else {
if (qUserVarValue(0) == 3.000000f) {
aSoundPlayObject(Sound_indexes[3], Object_handles[44], 1.000000f);
}
aSetLevelTimer(2.000000f, 0);
}
// Increment the script action counter
if (ScriptActionCtr_005 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_005++;
}
// Script 012: Do Airlock Compression Check
if (event_data->id == 4) {
aUserVarInc(0);
if (((qDoorGetPos(Door_handles[1]) == 0.000000f) && (qDoorGetPos(Door_handles[0]) == 0.000000f)) ||
(qUserVarValue(0) == 12.000000f)) {
aTurnOnSpew(Object_handles[41], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.200000f, 3.000000f,
2.000000f, 8.000000f, 1, -1);
aTurnOnSpew(Object_handles[42], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.200000f, 3.000000f,
2.000000f, 8.000000f, 1, -1);
aSoundPlayObject(Sound_indexes[1], Object_handles[41], 1.000000f);
aSoundPlayObject(Sound_indexes[1], Object_handles[42], 1.000000f);
aDoorActivate(Door_handles[1]);
if (qUserVarValue(0) == 12.000000f) {
aShowHUDMessage(Message_strings[6]);
}
aSetLevelTimer(2.000000f, 5);
} else {
if (qUserVarValue(0) == 3.000000f) {
aSoundPlayObject(Sound_indexes[4], Object_handles[41], 1.000000f);
}
aSetLevelTimer(2.000000f, 4);
}
// Increment the script action counter
if (ScriptActionCtr_012 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_012++;
}
// Script 006: Open Inner Airlock Door
if (event_data->id == 1) {
if (qDoorGetPos(Door_handles[1]) != 0.000000f) {
aSoundPlayObject(Sound_indexes[5], Object_handles[46], 1.000000f);
aRoomChangeWind(Room_indexes[0], -0.985000f, 0.000000f, 0.174000f, 10.000000f, 1.000000f);
aRoomChangeWind(Room_indexes[1], -0.985000f, 0.000000f, 0.174000f, 10.000000f, 1.000000f);
aRoomChangeWind(Room_indexes[2], -0.985000f, 0.000000f, 0.174000f, 10.000000f, 1.000000f);
aSetLevelTimer(1.000000f, 3);
}
aSetLevelTimer(15.000000f, 2);
// Increment the script action counter
if (ScriptActionCtr_006 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_006++;
}
// Script 009: Open Outer Airlock Door
if (event_data->id == 5) {
if (qDoorGetPos(Door_handles[0]) != 0.000000f) {
aRoomChangeWind(Room_indexes[0], 0.985000f, 0.000000f, -0.174000f, 10.000000f, 1.000000f);
aRoomChangeWind(Room_indexes[1], 0.985000f, 0.000000f, -0.174000f, 10.000000f, 1.000000f);
aRoomChangeWind(Room_indexes[2], 0.985000f, 0.000000f, -0.174000f, 10.000000f, 1.000000f);
aSetLevelTimer(1.000000f, 3);
}
aSetLevelTimer(15.000000f, 6);
// Increment the script action counter
if (ScriptActionCtr_009 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_009++;
}
// Script 007: Complete Airlock Decompression
if ((event_data->id == 2) || (event_data->id == 6)) {
aUserFlagSet(1, 0);
// Increment the script action counter
if (ScriptActionCtr_007 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_007++;
}
// Script 008: Stop Airlock Wind
if (event_data->id == 3) {
aRoomChangeWind(Room_indexes[0], 0.985000f, 0.000000f, -0.174000f, 0.000000f, 2.000000f);
aRoomChangeWind(Room_indexes[1], 0.985000f, 0.000000f, -0.174000f, 0.000000f, 2.000000f);
aRoomChangeWind(Room_indexes[2], 0.985000f, 0.000000f, -0.174000f, 0.000000f, 2.000000f);
// Increment the script action counter
if (ScriptActionCtr_008 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_008++;
}
// Script 015: Make Teleporter A Spark
if (event_data->id == 7) {
aEmitSparks(qRandomValue(10.000000f, 25.000000f), Object_handles[53]);
aEmitSparks(qRandomValue(10.000000f, 25.000000f), Object_handles[54]);
aSetLevelTimer(qRandomValue(0.250000f, 1.500000f), 7);
// Increment the script action counter
if (ScriptActionCtr_015 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_015++;
}
// Script 017: Make Bad Door Stutter
if (event_data->id == 8) {
if (ScriptActionCtr_017 == 0) {
aEmitSparks(35.000000f, Object_handles[57]);
aDoorSetPos(Door_handles[2], 0.550000f);
aSetLevelTimer(0.500000f, 8);
}
if (ScriptActionCtr_017 == 1) {
aEmitSparks(40.000000f, Object_handles[56]);
aDoorSetPos(Door_handles[2], 0.650000f);
aSoundPlayObject(Sound_indexes[8], Object_handles[55], 1.000000f);
aShowHUDMessage(Message_strings[7]);
}
// Increment the script action counter
if (ScriptActionCtr_017 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_017++;
}
// Script 026: Do Maw Robot/Player Check
if (event_data->id == 9) {
if ((qUserFlag(3) == true) && (qUserFlag(9) == false)) {
aKillBotsNearObj(Object_handles[6]);
}
if ((qUserFlag(4) == true) && (qUserFlag(10) == false)) {
aKillBotsNearObj(Object_handles[7]);
}
if ((qUserFlag(5) == true) && (qUserFlag(11) == false)) {
aKillBotsNearObj(Object_handles[8]);
}
if ((qUserFlag(6) == true) && (qUserFlag(12) == false)) {
aKillBotsNearObj(Object_handles[9]);
}
if ((qUserFlag(7) == true) && (qUserFlag(13) == false)) {
aKillBotsNearObj(Object_handles[10]);
}
aSetLevelTimer(0.250000f, 9);
// Increment the script action counter
if (ScriptActionCtr_026 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_026++;
}
// Script 019: Maw 1 is Dead
if (event_data->id == 10) {
aUserFlagSet(9, 1);
aGoalItemCompleted(Goal_indexes[3], 1, 1);
aRoomSetFaceTexture(Room_indexes[23], 273, Texture_indexes[1]);
// Increment the script action counter
if (ScriptActionCtr_019 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_019++;
}
// Script 020: Maw 2 is Dead
if (event_data->id == 11) {
aUserFlagSet(10, 1);
aGoalItemCompleted(Goal_indexes[3], 2, 1);
aRoomSetFaceTexture(Room_indexes[23], 271, Texture_indexes[1]);
// Increment the script action counter
if (ScriptActionCtr_020 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_020++;
}
// Script 021: Maw 3 is Dead
if (event_data->id == 12) {
aUserFlagSet(11, 1);
aGoalItemCompleted(Goal_indexes[3], 3, 1);
aRoomSetFaceTexture(Room_indexes[23], 269, Texture_indexes[1]);
// Increment the script action counter
if (ScriptActionCtr_021 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_021++;
}
// Script 022: Maw 4 is Dead
if (event_data->id == 13) {
aUserFlagSet(12, 1);
aGoalItemCompleted(Goal_indexes[3], 4, 1);
aRoomSetFaceTexture(Room_indexes[23], 270, Texture_indexes[1]);
// Increment the script action counter
if (ScriptActionCtr_022 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_022++;
}
// Script 023: Maw 5 is Dead
if (event_data->id == 14) {
aUserFlagSet(13, 1);
aGoalItemCompleted(Goal_indexes[3], 5, 1);
aRoomSetFaceTexture(Room_indexes[23], 268, Texture_indexes[1]);
// Increment the script action counter
if (ScriptActionCtr_023 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_023++;
}
// Script 049: Do Nest Trigger
if ((ScriptActionCtr_049 < 1) && (event_data->id == 26)) {
aShowHUDMessage(Message_strings[9]);
aGoalEnableDisable(1, Goal_indexes[5]);
// Increment the script action counter
if (ScriptActionCtr_049 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_049++;
}
// Script 036: Power Restored
if (event_data->id == 20) {
aUserFlagSet(14, 1);
aGoalCompleted(Goal_indexes[7], 1);
aGoalEnableDisable(1, Goal_indexes[5]);
aSoundPlayObject(Sound_indexes[0], Object_handles[59], 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_036 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_036++;
}
// Script 050: Do Boss At Nest Check
if (event_data->id == 27) {
if (qUserFlag(19) == true) {
if (qIsAlienBossHealing(Object_handles[37]) == true) {
if (qGoalCompleted(Goal_indexes[8]) == false) {
aGoalCompleted(Goal_indexes[8], 1);
}
} else {
if (qGoalCompleted(Goal_indexes[8]) == true) {
aGoalCompleted(Goal_indexes[8], 0);
aShowHUDMessage(Message_strings[13]);
}
}
}
aSetLevelTimer(0.500000f, 27);
// Increment the script action counter
if (ScriptActionCtr_050 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_050++;
}
// Script 033: Igniter Failed Sequence
if (event_data->id == 19) {
if (ScriptActionCtr_033 == 0) {
aTurnOnSpew(Object_handles[63], -1, 8, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.300000f, -1.000000f,
12.000000f, 60.000000f, 0, 0);
aShowHUDMessage(Message_strings[16]);
aRoomChangeFog(Room_indexes[3], 0.500000f, 0.500000f, 0.500000f, 5000.000000f, 20.000000f);
aSetLevelTimer(6.000000f, 19);
}
if (ScriptActionCtr_033 == 1) {
aShowHUDMessage(Message_strings[17]);
aGoalEnableDisable(1, Goal_indexes[9]);
aSetLevelTimer(2.000000f, 18);
}
// Increment the script action counter
if (ScriptActionCtr_033 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_033++;
}
// Script 034: Recharge Thruster Sequence
if (event_data->id == 17) {
if (qUserVarValue(3) == 0.000000f) {
aShowHUDMessage(Message_strings[19]);
aSetLevelTimer(6.000000f, 17);
aGoalEnableDisable(1, Goal_indexes[8]);
aUserFlagSet(19, 1);
}
if (qUserVarValue(3) == 1.000000f) {
aShowHUDMessage(Message_strings[20]);
aSetLevelTimer(10.000000f, 17);
}
if (qUserVarValue(3) == 2.000000f) {
aShowHUDMessage(Message_strings[21]);
aSetLevelTimer(1.000000f, 18);
}
aUserVarInc(3);
// Increment the script action counter
if (ScriptActionCtr_034 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_034++;
}
// Script 032: Reset the Thruster Switch
if (event_data->id == 18) {
aObjPlayAnim(Object_handles[62], 1, 2, 2.000000f, 0);
aSoundPlayObject(Sound_indexes[11], Object_handles[62], 1.000000f);
aUserFlagSet(17, 0);
aGoalCompleted(Goal_indexes[5], 0);
// Increment the script action counter
if (ScriptActionCtr_032 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_032++;
}
// Script 029: Do Cocoon 1's Ambushes
if (event_data->id == 15) {
if (ScriptActionCtr_029 == 0) {
aPortalBreakGlass(0, Room_indexes[24]);
aSetLevelTimer(2.000000f, 15);
aAlienOrganismHunt(Object_handles[64], Object_handles[65]);
}
if (ScriptActionCtr_029 == 1) {
aPortalBreakGlass(0, Room_indexes[25]);
aAlienOrganismHunt(Object_handles[66], Object_handles[65]);
aAlienOrganismHunt(Object_handles[67], Object_handles[65]);
}
// Increment the script action counter
if (ScriptActionCtr_029 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_029++;
}
// Script 031: Do Cocoon 2's Ambushes
if (event_data->id == 16) {
if (ScriptActionCtr_031 == 0) {
aPortalBreakGlass(0, Room_indexes[26]);
aAlienOrganismHunt(Object_handles[68], Object_handles[65]);
}
// Increment the script action counter
if (ScriptActionCtr_031 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_031++;
}
// Script 038: Boss Death Sequence
if (event_data->id == 22) {
if (ScriptActionCtr_038 == 0) {
aCinematicSimple(Path_indexes[2], Message_strings[22], Object_handles[36], 15.000000f, 1);
aStoreObjectInPositionClipboard(Object_handles[72]);
aMoveObjectToPositionClipboard(Object_handles[37]);
aObjPlayImmAnim(Object_handles[37], 1, 10, 2.000000f, 0);
aSetLevelTimer(2.000000f, 22);
}
if (ScriptActionCtr_038 == 1) {
aObjPlayAnim(Object_handles[37], 10, 25, 1.000000f, 0);
aMiscShakeArea(Object_handles[36], 20.000000f, 200.000000f);
aTurnOnSpew(Object_handles[63], -1, 1, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 5.000000f,
23.000000f, 170.000000f, 0, -1);
aSoundPlayObject(Sound_indexes[12], Object_handles[63], 1.000000f);
aSetLevelTimer(1.000000f, 22);
}
if (ScriptActionCtr_038 == 2) {
aObjPlayAnim(Object_handles[37], 25, 36, 0.600000f, 1);
aSetObjectOnFire(Object_handles[37], 8.000000f, 0.000000f);
aObjSpark(Object_handles[37], 40.000000f, 10.000000f);
aEmitSparks(30.000000f, Object_handles[37]);
aAISetMaxSpeed(Object_handles[37], 6.000000f);
aObjSetMovementType(Object_handles[37], 1);
aAIGoalFollowPathSimple(Object_handles[37], Path_indexes[3], 131076, -1, 3);
aSoundPlayObject(Sound_indexes[13], Object_handles[37], 1.000000f);
aSetLevelTimer(3.000000f, 22);
}
if (ScriptActionCtr_038 == 3) {
aEmitSparks(20.000000f, Object_handles[37]);
aObjPlayAnim(Object_handles[37], 25, 36, 0.500000f, 1);
aSetLevelTimer(2.000000f, 22);
aSoundPlayObject(Sound_indexes[13], Object_handles[37], 1.000000f);
}
if (ScriptActionCtr_038 == 4) {
aEmitSparks(40.000000f, Object_handles[37]);
aSetLevelTimer(1.500000f, 22);
}
if (ScriptActionCtr_038 == 5) {
aEmitSparks(50.000000f, Object_handles[37]);
aObjPlayAnim(Object_handles[37], 25, 36, 0.400000f, 1);
aSetLevelTimer(1.500000f, 22);
aSoundPlayObject(Sound_indexes[13], Object_handles[37], 1.000000f);
}
if (ScriptActionCtr_038 == 6) {
aMiscShakeArea(Object_handles[36], 40.000000f, 200.000000f);
aObjKill(Object_handles[37], 0, 2, 131296, 0.000000f, 0.000000f);
aObjSpark(Object_handles[11], 50.000000f, 3.000000f);
aSetLevelTimer(0.200000f, 22);
}
if (ScriptActionCtr_038 == 7) {
aObjMakeVulnerable(Object_handles[11]);
aObjKill(Object_handles[11], 0, 2, 131296, 0.000000f, 0.000000f);
aPortalRenderSet(0, 3, Room_indexes[3], 1);
aPortalRenderSet(0, 4, Room_indexes[3], 1);
aPortalRenderSet(0, 5, Room_indexes[3], 1);
aPortalRenderSet(0, 6, Room_indexes[3], 1);
aPortalRenderSet(0, 7, Room_indexes[3], 1);
aPortalRenderSet(0, 8, Room_indexes[3], 1);
}
// Increment the script action counter
if (ScriptActionCtr_038 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_038++;
}
// Script 039: Escape Sequence
if (event_data->id == 23) {
if (ScriptActionCtr_039 == 0) {
aPortalBreakGlass(1, Room_indexes[8]);
aRoomChangeFog(Room_indexes[8], 0.000000f, 1.000000f, 0.000000f, 800.000000f, 5.000000f);
aRoomSetDamage(Room_indexes[3], 1.000000f, 1);
aRoomSetDamage(Room_indexes[4], 1.000000f, 1);
aRoomSetDamage(Room_indexes[5], 1.000000f, 1);
aRoomSetDamage(Room_indexes[6], 1.000000f, 1);
aRoomSetDamage(Room_indexes[7], 1.000000f, 1);
aSetLevelTimer(3.000000f, 23);
aGoalCompleted(Goal_indexes[10], 1);
aGoalEnableDisable(1, Goal_indexes[11]);
}
if (ScriptActionCtr_039 == 1) {
aShowHUDMessage(Message_strings[23]);
aRoomSetDamage(Room_indexes[8], 1.000000f, 1);
}
// Increment the script action counter
if (ScriptActionCtr_039 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_039++;
}
// Script 042: Do Level Shakes
if (event_data->id == 25) {
aMiscShakeArea(Object_handles[36], qRandomValue(50.000000f, 90.000000f), 5000.000000f);
aSoundPlay2D(Sound_indexes[14], 1.000000f);
aSetLevelTimer(qRandomValue(2.000000f, 4.000000f), 25);
// Increment the script action counter
if (ScriptActionCtr_042 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_042++;
}
// Script 040: End Level Escape Movie
if ((ScriptActionCtr_040 < 1) && (event_data->id == 24)) {
aGoalCompleted(Goal_indexes[12], 1);
aStartEndlevelSequencePath(Path_indexes[4], Path_indexes[5], 3.500000f, Message_strings[22]);
// Increment the script action counter
if (ScriptActionCtr_040 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_040++;
}
// Script 053: Boss Intro Cinematic
if ((ScriptActionCtr_053 < 1) && (event_data->id == 28)) {
aCinematicSimple(Path_indexes[6], Message_strings[25], Object_handles[37], 13.000000f, 1);
aSetLevelTimer(9.000000f, 29);
// Increment the script action counter
if (ScriptActionCtr_053 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_053++;
}
// Script 051: Start Boss Wandering
if ((ScriptActionCtr_051 < 1) && (event_data->id == 29)) {
aABItsShowtime(Object_handles[37], 4.000000f);
// Increment the script action counter
if (ScriptActionCtr_051 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_051++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_0811::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 004: Airlock Power Switch Hit
if ((ScriptActionCtr_004 < 1) && (qObjIsPlayerOrPlayerWeapon(event_data->it_handle) == true)) {
aObjPlayAnim(data->me_handle, 0, 3, 4.000000f, 0);
aSoundPlayObject(Sound_indexes[0], data->me_handle, 1.000000f);
aUserFlagSet(0, 1);
aShowHUDMessage(Message_strings[1]);
aGoalCompleted(Goal_indexes[0], 1);
// Increment the script action counter
if (ScriptActionCtr_004 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_004++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_0804::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 003: Airlock Outer Door Hit
if (1) {
if (qObjIsPlayerOrPlayerWeapon(event_data->it_handle) == true) {
if (qUserFlag(0) == true) {
if (qUserFlag(1) == false) {
aUserFlagSet(1, 1);
aDoorActivate(data->me_handle);
aTurnOnSpew(Object_handles[41], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.200000f, 3.000000f,
2.000000f, 8.000000f, 1, -1);
aTurnOnSpew(Object_handles[42], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.200000f, 3.000000f,
2.000000f, 8.000000f, 1, -1);
aSoundPlayObject(Sound_indexes[1], Object_handles[41], 1.000000f);
aSoundPlayObject(Sound_indexes[1], Object_handles[42], 1.000000f);
if (qDoorGetPos(Door_handles[0]) == 0.000000f) {
aShowHUDMessage(Message_strings[2]);
aUserVarSet(0, 0.000000f);
aSetLevelTimer(2.000000f, 0);
} else {
aSetLevelTimer(2.000000f, 5);
}
} else {
aShowHUDMessage(Message_strings[3]);
aSoundPlayObject(Sound_indexes[2], data->me_handle, 1.000000f);
}
} else {
aShowHUDMessage(Message_strings[4]);
aSoundPlayObject(Sound_indexes[2], data->me_handle, 1.000000f);
aGoalEnableDisable(1, Goal_indexes[0]);
}
}
// Increment the script action counter
if (ScriptActionCtr_003 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_003++;
return CONTINUE_DEFAULT;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_0803::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 011: Airlock Inner Door Hit
if (1) {
if (qObjIsPlayerOrPlayerWeapon(event_data->it_handle) == true) {
if (qUserFlag(0) == true) {
if (qUserFlag(1) == false) {
aUserFlagSet(1, 1);
aDoorActivate(data->me_handle);
aTurnOnSpew(Object_handles[44], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.200000f, 3.000000f,
2.000000f, 8.000000f, 1, -1);
aTurnOnSpew(Object_handles[45], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.200000f, 3.000000f,
2.000000f, 8.000000f, 1, -1);
aSoundPlayObject(Sound_indexes[1], Object_handles[44], 1.000000f);
aSoundPlayObject(Sound_indexes[1], Object_handles[45], 1.000000f);
if (qDoorGetPos(Door_handles[1]) == 0.000000f) {
aShowHUDMessage(Message_strings[5]);
aUserVarSet(0, 0.000000f);
aSetLevelTimer(2.000000f, 4);
} else {
aSetLevelTimer(2.000000f, 1);
}
} else {
aShowHUDMessage(Message_strings[3]);
aSoundPlayObject(Sound_indexes[2], data->me_handle, 1.000000f);
}
} else {
aShowHUDMessage(Message_strings[4]);
aSoundPlayObject(Sound_indexes[2], data->me_handle, 1.000000f);
}
}
// Increment the script action counter
if (ScriptActionCtr_011 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_011++;
return CONTINUE_DEFAULT;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_3198::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 010: Teleporter A1 Hit
if ((ScriptActionCtr_010 < 1) &&
((qObjIsPlayer(event_data->it_handle) == true) && ((ScriptActionCtr_060 > 0) == false))) {
aStoreObjectInPositionClipboard(Object_handles[47]);
aMoveObjectToPositionClipboard(event_data->it_handle);
aClearTeleporterArea(Object_handles[47], event_data->it_handle);
aSoundPlayObject(Sound_indexes[6], event_data->it_handle, 1.000000f);
aSoundPlayObject(Sound_indexes[7], event_data->it_handle, 1.000000f);
aPortalRenderSet(0, 0, Room_indexes[11], 1);
aPortalRenderSet(0, 1, Room_indexes[11], 1);
aPortalRenderSet(0, 2, Room_indexes[11], 1);
aPortalRenderSet(0, 3, Room_indexes[11], 1);
aPortalRenderSet(0, 4, Room_indexes[11], 1);
aPortalRenderSet(0, 5, Room_indexes[11], 1);
aPortalRenderSet(0, 6, Room_indexes[11], 1);
aPortalRenderSet(0, 7, Room_indexes[11], 1);
aPortalRenderSet(0, 8, Room_indexes[11], 1);
aPortalRenderSet(0, 9, Room_indexes[11], 1);
aPortalRenderSet(0, 10, Room_indexes[11], 1);
aPortalRenderSet(0, 11, Room_indexes[11], 1);
aPortalRenderSet(0, 0, Room_indexes[12], 1);
aPortalRenderSet(0, 1, Room_indexes[12], 1);
aPortalRenderSet(0, 2, Room_indexes[12], 1);
aPortalRenderSet(0, 3, Room_indexes[12], 1);
aPortalRenderSet(0, 4, Room_indexes[12], 1);
aPortalRenderSet(0, 5, Room_indexes[12], 1);
aPortalRenderSet(0, 6, Room_indexes[12], 1);
aPortalRenderSet(0, 7, Room_indexes[12], 1);
aPortalRenderSet(0, 8, Room_indexes[12], 1);
aPortalRenderSet(0, 9, Room_indexes[12], 1);
aPortalRenderSet(0, 10, Room_indexes[12], 1);
aPortalRenderSet(0, 11, Room_indexes[12], 1);
aSetLevelTimer(1.000000f, 7);
aTurnOnSpew(Object_handles[48], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.200000f, -1.000000f,
2.000000f, 8.000000f, 1, -1);
aTurnOnSpew(Object_handles[49], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.200000f, -1.000000f,
2.000000f, 8.000000f, 1, -1);
aGoalCompleted(Goal_indexes[2], 1);
// Increment the script action counter
if (ScriptActionCtr_010 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_010++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_099A::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 060: Teleporter A2 Hit
if ((ScriptActionCtr_060 < 1) &&
((qObjIsPlayer(event_data->it_handle) == true) && ((ScriptActionCtr_010 > 0) == false))) {
aStoreObjectInPositionClipboard(Object_handles[50]);
aMoveObjectToPositionClipboard(event_data->it_handle);
aClearTeleporterArea(Object_handles[50], event_data->it_handle);
aSoundPlayObject(Sound_indexes[6], event_data->it_handle, 1.000000f);
aSoundPlayObject(Sound_indexes[7], event_data->it_handle, 1.000000f);
aPortalRenderSet(0, 0, Room_indexes[11], 1);
aPortalRenderSet(0, 1, Room_indexes[11], 1);
aPortalRenderSet(0, 2, Room_indexes[11], 1);
aPortalRenderSet(0, 3, Room_indexes[11], 1);
aPortalRenderSet(0, 4, Room_indexes[11], 1);
aPortalRenderSet(0, 5, Room_indexes[11], 1);
aPortalRenderSet(0, 6, Room_indexes[11], 1);
aPortalRenderSet(0, 7, Room_indexes[11], 1);
aPortalRenderSet(0, 8, Room_indexes[11], 1);
aPortalRenderSet(0, 9, Room_indexes[11], 1);
aPortalRenderSet(0, 10, Room_indexes[11], 1);
aPortalRenderSet(0, 11, Room_indexes[11], 1);
aPortalRenderSet(0, 0, Room_indexes[12], 1);
aPortalRenderSet(0, 1, Room_indexes[12], 1);
aPortalRenderSet(0, 2, Room_indexes[12], 1);
aPortalRenderSet(0, 3, Room_indexes[12], 1);
aPortalRenderSet(0, 4, Room_indexes[12], 1);
aPortalRenderSet(0, 5, Room_indexes[12], 1);
aPortalRenderSet(0, 6, Room_indexes[12], 1);
aPortalRenderSet(0, 7, Room_indexes[12], 1);
aPortalRenderSet(0, 8, Room_indexes[12], 1);
aPortalRenderSet(0, 9, Room_indexes[12], 1);
aPortalRenderSet(0, 10, Room_indexes[12], 1);
aPortalRenderSet(0, 11, Room_indexes[12], 1);
aSetLevelTimer(1.000000f, 7);
aTurnOnSpew(Object_handles[48], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.200000f, -1.000000f,
2.000000f, 8.000000f, 1, -1);
aTurnOnSpew(Object_handles[49], -1, 7, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.200000f, -1.000000f,
2.000000f, 8.000000f, 1, -1);
aGoalCompleted(Goal_indexes[2], 1);
// Increment the script action counter
if (ScriptActionCtr_060 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_060++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_099E::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 013: Teleporter C1 Hit
if (qObjIsPlayer(event_data->it_handle) == true) {
aStoreObjectInPositionClipboard(Object_handles[51]);
aMoveObjectToPositionClipboard(event_data->it_handle);
aClearTeleporterArea(Object_handles[51], event_data->it_handle);
aSoundPlayObject(Sound_indexes[6], event_data->it_handle, 1.000000f);
aGoalCompleted(Goal_indexes[2], 1);
// Increment the script action counter
if (ScriptActionCtr_013 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_013++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_09A0::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 014: Teleporter C2 Hit
if (qObjIsPlayer(event_data->it_handle) == true) {
aStoreObjectInPositionClipboard(Object_handles[52]);
aMoveObjectToPositionClipboard(event_data->it_handle);
aClearTeleporterArea(Object_handles[52], event_data->it_handle);
aSoundPlayObject(Sound_indexes[6], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_014 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_014++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_080A::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 016: Bad Door Hit
if (1) {
if ((qUserFlag(2) == false) && (qObjIsPlayerOrPlayerWeapon(event_data->it_handle) == true)) {
aEmitSparks(20.000000f, Object_handles[56]);
aDoorSetPos(Door_handles[2], 0.600000f);
aSetLevelTimer(1.500000f, 8);
aUserFlagSet(2, 1);
}
// Increment the script action counter
if (ScriptActionCtr_016 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_016++;
return CONTINUE_DEFAULT;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_09AC::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 024: Player Picks Up Cruiser Fuse
if ((qObjIsPlayer(event_data->it_handle) == true) && (qUserFlag(8) == false)) {
aSoundPlayObject(Sound_indexes[9], event_data->it_handle, 1.000000f);
aShowHUDMessageObj(Message_strings[10], event_data->it_handle);
aAddObjectToInventory(data->me_handle, event_data->it_handle, 0);
aGoalCompleted(Goal_indexes[6], 1);
// Increment the script action counter
if (ScriptActionCtr_024 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_024++;
}
} break;
case EVT_USE: {
tOSIRISEVTUSE *event_data = &data->evt_use;
// Script 025: Used Cruiser Fuse
if ((qObjIsPlayer(event_data->it_handle) == true) && (qUserFlag(8) == false)) {
if (qObjGetDistance(event_data->it_handle, Object_handles[59]) < 40.000000f) {
aStoreObjectInPositionClipboard(Object_handles[59]);
aMoveObjectToPositionClipboard(data->me_handle);
aObjGhostSet(1, data->me_handle);
aSoundPlayObject(Sound_indexes[10], Object_handles[59], 1.000000f);
aShowHUDMessage(Message_strings[11]);
aUserFlagSet(8, 1);
aLightningCreate(Object_handles[60], Object_handles[61], 10000.000000f, 2.000000f, 3, Texture_indexes[2],
0.600000f, 1, 255, 255, 255, 0);
aSetLevelTimer(2.000000f, 20);
} else {
aObjGhostSet(0, data->me_handle);
aAddObjectToInventory(data->me_handle, event_data->it_handle, 0);
aShowHUDMessageObj(Message_strings[12], event_data->it_handle);
}
// Increment the script action counter
if (ScriptActionCtr_025 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_025++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_1138::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 027: Thruster Switch Hit
if ((qObjIsPlayerOrPlayerWeapon(event_data->it_handle) == true) && (qUserFlag(17) == false)) {
if (qUserFlag(14) == true) {
if ((qObjAnimFrame(data->me_handle) == 0.000000f) || (qObjAnimFrame(data->me_handle) == 2.000000f)) {
if (qUserFlag(15) == true) {
if (qUserFlag(16) == true) {
aMiscShakeArea(Object_handles[63], 40.000000f, 5000.000000f);
aObjPlayAnim(data->me_handle, 0, 1, 2.000000f, 0);
aSoundPlayObject(Sound_indexes[11], data->me_handle, 1.000000f);
aGoalCompleted(Goal_indexes[5], 1);
if (qAlienBossHealing(Object_handles[37]) == true) {
aUserFlagSet(19, 0);
if (qGoalCompleted(Goal_indexes[8]) == false) {
aGoalCompleted(Goal_indexes[8], 1);
}
aUserFlagSet(17, 1);
aSetLevelTimer(2.000000f, 22);
} else {
aObjPlayAnim(data->me_handle, 0, 1, 2.000000f, 0);
aSoundPlayObject(Sound_indexes[11], data->me_handle, 1.000000f);
aTurnOnSpew(Object_handles[63], -1, 1, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 3.000000f,
23.000000f, 145.000000f, 0, -1);
aSoundPlayObject(Sound_indexes[12], Object_handles[63], 1.000000f);
aUserVarSet(3, 0.000000f);
aUserFlagSet(17, 1);
aSetLevelTimer(5.000000f, 17);
}
} else {
aShowHUDMessage(Message_strings[14]);
}
} else {
aMiscShakeArea(Object_handles[63], 20.000000f, 5000.000000f);
aObjPlayAnim(data->me_handle, 0, 1, 2.000000f, 0);
aSoundPlayObject(Sound_indexes[11], data->me_handle, 1.000000f);
aUserFlagSet(15, 1);
aABThrusterMisfired(Object_handles[37]);
aUserFlagSet(17, 1);
aTurnOnSpew(Object_handles[63], -1, 8, 0.000000f, 0.000000f, 65536, 0, 1.200000f, 0.100000f, 3.000000f,
16.000000f, 130.000000f, 0, -1);
aRoomChangeFog(Room_indexes[3], 0.500000f, 0.500000f, 0.500000f, 400.000000f, 2.500000f);
aSetLevelTimer(3.000000f, 19);
}
}
} else {
aShowHUDMessage(Message_strings[15]);
aGoalEnableDisable(1, Goal_indexes[6]);
aGoalEnableDisable(1, Goal_indexes[7]);
}
// Increment the script action counter
if (ScriptActionCtr_027 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_027++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_11B2::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_DESTROY: {
tOSIRISEVTDESTROY *event_data = &data->evt_destroy;
// If destroy event is due to level ending, don't run scripts
if (!event_data->is_dying)
break;
// Script 041: Alien Boss Died
if (1) {
aRoomSetFog(Room_indexes[29], 0.500000f, 0.500000f, 0.500000f, 100.000000f);
aRoomSetFog(Room_indexes[30], 0.500000f, 0.500000f, 0.500000f, 300.000000f);
aPortalRenderSet(1, 0, Room_indexes[29], 0);
aRoomChangeFog(Room_indexes[3], 0.000000f, 1.000000f, 0.000000f, 1000.000000f, 8.000000f);
aRoomChangeFog(Room_indexes[4], 0.000000f, 1.000000f, 0.000000f, 1000.000000f, 8.000000f);
aRoomChangeFog(Room_indexes[5], 0.000000f, 1.000000f, 0.000000f, 1000.000000f, 8.000000f);
aRoomChangeFog(Room_indexes[6], 0.000000f, 1.000000f, 0.000000f, 1000.000000f, 8.000000f);
aRoomChangeFog(Room_indexes[7], 0.000000f, 1.000000f, 0.000000f, 1000.000000f, 8.000000f);
aTurnOnSpew(Object_handles[73], -1, 7, 0.000000f, 0.000000f, 65536, 0, 3.000000f, 0.400000f, -1.000000f,
6.000000f, 10.000000f, 1, -1);
aTurnOnSpew(Object_handles[74], -1, 7, 0.000000f, 0.000000f, 65536, 0, 4.000000f, 0.400000f, -1.000000f,
6.000000f, 10.000000f, 1, -1);
aTurnOnSpew(Object_handles[75], -1, 7, 0.000000f, 0.000000f, 65536, 0, 6.000000f, 0.400000f, -1.000000f,
6.000000f, 10.000000f, 1, -1);
aTurnOnSpew(Object_handles[76], -1, 7, 0.000000f, 0.000000f, 65536, 0, 5.000000f, 0.400000f, -1.000000f,
6.000000f, 10.000000f, 1, -1);
aTurnOnSpew(Object_handles[77], -1, 7, 0.000000f, 0.000000f, 65536, 0, 5.000000f, 0.400000f, -1.000000f,
6.000000f, 10.000000f, 1, -1);
aTurnOnSpew(Object_handles[78], -1, 7, 0.000000f, 0.000000f, 65536, 0, 6.000000f, 0.400000f, -1.000000f,
6.000000f, 10.000000f, 1, -1);
aSetLevelTimer(6.000000f, 23);
aSetLevelTimer(6.000000f, 25);
// Increment the script action counter
if (ScriptActionCtr_041 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_041++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_31B7::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 043: Escape Trigger Hit
if ((ScriptActionCtr_043 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aGoalCompleted(Goal_indexes[11], 1);
aSetLevelTimer(0.100000f, 24);
// Increment the script action counter
if (ScriptActionCtr_043 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_043++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_11D1::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 061: Data Arm #1 Bumped
if ((ScriptActionCtr_061 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aObjPlayAnim(data->me_handle, 0, 10, 3.000000f, 0);
aSoundPlayObject(Sound_indexes[15], data->me_handle, 1.000000f);
aAddGameMessage(Message_strings[26], Message_strings[27]);
// Increment the script action counter
if (ScriptActionCtr_061 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_061++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short CustomObjectScript_09D2::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 062: Data Arm #2 Bumped
if ((ScriptActionCtr_062 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aObjPlayAnim(data->me_handle, 0, 10, 3.000000f, 0);
aSoundPlayObject(Sound_indexes[15], data->me_handle, 1.000000f);
aAddGameMessage(Message_strings[28], Message_strings[29]);
// Increment the script action counter
if (ScriptActionCtr_062 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_062++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0003::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 044: Player passed through Airlock
if (qObjIsPlayer(event_data->it_handle) == true) {
aGoalCompleted(Goal_indexes[1], 1);
aMusicSetRegion(1, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_044 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_044++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0010::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 063: Player Left Outer Shell
if (qObjIsPlayer(event_data->it_handle) == true) {
aMusicSetRegion(0, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_063 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_063++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0011::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 065: Entered Hive Area 1 Trigger Hit
if ((ScriptActionCtr_065 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
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;
}
short TriggerScript_0013::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 066: Entered Hive Area 2 Trigger Hit
if ((ScriptActionCtr_066 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
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;
}
short TriggerScript_0014::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 067: Entered Hive Area 3 Trigger Hit
if ((ScriptActionCtr_067 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aMusicSetRegion(2, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_067 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_067++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0012::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 068: Left Hive Area 1 Trigger Hit
if ((ScriptActionCtr_068 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aMusicSetRegion(1, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_068 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_068++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0015::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 069: Left Hive Area 2 Trigger Hit
if ((ScriptActionCtr_069 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aMusicSetRegion(1, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_069 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_069++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0016::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 070: Left Hive Area 3 Trigger Hit
if ((ScriptActionCtr_070 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aMusicSetRegion(1, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_070 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_070++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0004::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 045: Player Flew into Forcefield Room
if (qObjIsPlayer(event_data->it_handle) == true) {
if ((qGoalCompleted(Goal_indexes[3]) == false) && (qGoalEnabled(Goal_indexes[3]) == false)) {
aGoalEnableDisable(1, Goal_indexes[3]);
aShowHUDMessage(Message_strings[8]);
}
// Increment the script action counter
if (ScriptActionCtr_045 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_045++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0005::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 046: Player Entered Lower Hive Quadrant
if (qObjIsPlayer(event_data->it_handle) == true) {
aGoalCompleted(Goal_indexes[4], 1);
// Increment the script action counter
if (ScriptActionCtr_046 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_046++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0006::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 047: Nest Trigger 1 Hit
if ((ScriptActionCtr_047 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aSetLevelTimer(1.000000f, 26);
// Increment the script action counter
if (ScriptActionCtr_047 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_047++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0007::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 048: Nest Trigger 2 Hit
if ((ScriptActionCtr_048 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aSetLevelTimer(1.000000f, 26);
// Increment the script action counter
if (ScriptActionCtr_048 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_048++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0002::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 035: Ignite Burn Manually
if ((qObjIsPlayerWeapon(event_data->it_handle) == true) && ((qUserFlag(15) == true) && (qUserFlag(16) == false))) {
aUserFlagSet(16, 1);
aTurnOnSpew(Object_handles[63], -1, 1, 0.000000f, 0.000000f, 65536, 0, 0.700000f, 0.100000f, 0.500000f,
22.000000f, 120.000000f, 0, -1);
aTurnOnSpew(Object_handles[63], -1, 1, 0.000000f, 0.000000f, 65536, 0, 1.000000f, 0.150000f, 1.000000f,
16.000000f, 70.000000f, 0, -1);
aTurnOffSpew(0);
aShowHUDMessage(Message_strings[18]);
aGoalCompleted(Goal_indexes[9], 1);
aABThrusterIgnited(Object_handles[37]);
aRoomSetFaceTexture(Room_indexes[3], 472, Texture_indexes[3]);
// Increment the script action counter
if (ScriptActionCtr_035 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_035++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0000::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 028: Cocoon Ambush 1
if ((ScriptActionCtr_028 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aSetLevelTimer(0.500000f, 15);
// Increment the script action counter
if (ScriptActionCtr_028 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_028++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0001::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 030: Cocoon Ambush 2
if ((ScriptActionCtr_030 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aSetLevelTimer(2.000000f, 16);
// Increment the script action counter
if (ScriptActionCtr_030 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_030++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_000D::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 058: Shark Ambush 1
if ((ScriptActionCtr_058 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aPortalBreakGlass(0, Room_indexes[27]);
aAlienOrganismHunt(Object_handles[69], event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_058 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_058++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_000E::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 059: Alien Ambush 2
if ((ScriptActionCtr_059 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aPortalBreakGlass(0, Room_indexes[28]);
aAlienOrganismHunt(Object_handles[70], event_data->it_handle);
aAlienOrganismHunt(Object_handles[71], event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_059 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_059++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0008::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 056: Boss Intro Trigger #1 Hit
if ((ScriptActionCtr_056 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aShowHUDMessage(Message_strings[24]);
aABStartWaitEffect(Object_handles[37]);
aMusicSetRegion(3, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_056 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_056++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_000F::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 064: Left Boss Area Trigger Hit
if ((ScriptActionCtr_064 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aMusicSetRegion(2, event_data->it_handle);
// Increment the script action counter
if (ScriptActionCtr_064 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_064++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0009::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 055: Boss Intro Trigger #2 Hit
if ((ScriptActionCtr_055 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aSetLevelTimer(1.000000f, 28);
// Increment the script action counter
if (ScriptActionCtr_055 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_055++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_000A::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 054: Boss Intro Trigger #3 Hit
if ((ScriptActionCtr_054 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aSetLevelTimer(1.000000f, 28);
// Increment the script action counter
if (ScriptActionCtr_054 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_054++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_000B::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 052: Boss Intro Trigger #4 Hit
if ((ScriptActionCtr_052 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aSetLevelTimer(1.000000f, 28);
// Increment the script action counter
if (ScriptActionCtr_052 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_052++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_000C::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 057: Boss Intro Trigger #5 Hit
if ((ScriptActionCtr_057 < 1) && (qObjIsPlayer(event_data->it_handle) == true)) {
aSetLevelTimer(1.000000f, 28);
// Increment the script action counter
if (ScriptActionCtr_057 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_057++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
/*********************************************************
Script Save Block: DO NOT TOUCH ANYTHING IN THIS BLOCK!!!
**********************************************************
$$SCRIPT_BLOCK_START
VERSION 3
NEXT_ID 72
// UserType value blocks
$$UTYPE_VALS_START UserVar
0:NumAirlockChecks
1:MawDecayTime
2:MawWindSpeed
3:ThrusterRechargeLevel
$$UTYPE_VALS_END
$$UTYPE_VALS_START UserFlag
0:AirlockPowerOn
1:AirlockActive
2:BadDoorRuined
3:Maw1Active
4:Maw2Active
5:Maw3Active
6:Maw4Active
7:Maw5Active
8:FuseSet
9:Maw1Dead
10:Maw2Dead
11:Maw3Dead
12:Maw4Dead
13:Maw5Dead
14:PowerRestored
15:BurnStarted
16:BurnIgnited
17:ThrusterSwitchActive
18:ForcefieldsDown
19:DoNestingBossCheck
$$UTYPE_VALS_END
$$UTYPE_VALS_START SpewHandle
0:IgniterFailedSpew
$$UTYPE_VALS_END
$$UTYPE_VALS_START TimerID
0:AirlockDecomCheck
1:OpenInnerAirlockDoor
2:CompleteAirlockDecompression
3:StopAirlockWind
4:AirlockCompCheck
5:OpenOuterAirlockDoor
6:CompleteAirlockCompression
7:NextSparkTime
8:BadDoorProcedure
9:MawRobotCheck
10:Maw1Dead
11:Maw2Dead
12:Maw3Dead
13:Maw4Dead
14:Maw5Dead
15:Cocoon1Ambush
16:Cocoon2Ambush
17:RechargeThrusterSequence
18:ResetThrusterSwitch
19:IgniterFailedSequence
20:PowerRestored
21:InitializeBossScenario
22:EndLevelSequence
23:EscapeSequence
24:EndLevelMovie
25:LevelShakes
26:NestTriggerHit
27:DoBossAtNestCheck
28:BossIntro
29:StartBoss
$$UTYPE_VALS_END
$$UTYPE_VALS_START SavedObjectSlot
$$UTYPE_VALS_END
$$UTYPE_VALS_START GoalID
$$UTYPE_VALS_END
// Name Lists
$$DOOR_LIST_START
AirlockInnerDoor
AirlockOuterDoor
DoorWon'tOpenFar
$$DOOR_LIST_END
$$OBJECT_LIST_START
TeleporterA1
TeleporterA2
TeleporterB1
TeleporterC1
TeleporterC2
EscapeTrigger
Maw1
Maw2
Maw3
Maw4
Maw5
WallShuttle
DataArm1
DataArm2
BossMinion1
BossMinion2
Greenbot1
Greenbot2
SharkAmbush1
Greenbot3
Greenbot4
Greenbot5
Greenbot6
Greenbot7
Greenbot8
Greenbot9
Greenbot10
Greenbot11
Greenbot12
Greenbot13
Greenbot14
Greenbot15
Greenbot16
Greenbot17
Greenbot18
Greenbot19
BossDeathCamTarget
AlienBoss
AlienBossNest
AirlockDoorSwitch
AirlockOuterDoor
AirlockOuterCam1
AirlockOuterCam2
AirlockInnerDoor
AirlockInnerCam1
AirlockInnerCam2
AirlockSound
TeleporterA1Dest
TeleporterA1Cam2
TeleporterA2Cam2
TeleporterA2Dest
TeleporterC1Dest
TeleporterC2Dest
TeleporterA1Cam
TeleporterA2Cam
DoorWon'tOpenFar
BadDoorCam1
BadDoorCam2
CruiserFuse
FusePosition
FuseBeamB
FuseBeamA
ThrusterSwitch
ThrusterCam
Cocoon1Ambusher1
Ambush1HuntDest
Cocoon1Ambusher2
Cocoon1Ambusher3
Cocoon2Ambusher1
AlienAmbush1
AlienAmbush2A
AlienAmbush2B
AlienBossPosition
RoomASteamer1
RoomASteamer2
RoomBSteamer
RoomCSteamer
RoomDSteamer
RoomESteamer
$$OBJECT_LIST_END
$$ROOM_LIST_START
AirlockRoom
AirlockIDRoom
AirlockODRoom
BossRoomA
BossRoomB
BossRoomC
BossRoomD
BossRoomE
ThrusterSwitchRoom
BossLeftHideRoom
BossRightHideRoom
TeleporterA2
TeleporterA1
Maw1EntryRoom
Maw1Room
Maw2EntryRoom
Maw2Room
Maw3EntryRoom
Maw3Room
Maw4EntryRoom
Maw4Room
Maw5EntryRoom
Maw5Room
ForcefieldRoom
CocoonAmb1Cell1
Coc1AmbCell2
CocAmb2Cell1
SharkAmbush1
AlienAmbush2
CaveinRoom
CaveinRoom2
$$ROOM_LIST_END
$$TRIGGER_LIST_START
AirlockTrigger
LeftOuterShell
EnteredHiveArea1
EnteredHive2
EnteredHive3
LeftHiveArea1
LeftHive2
LeftHive3
ForcefieldRoomTrigg
LowerQuadTrigger
NestTrigger1
NestTrigger2
ThrusterTrigger
Ambush1
Ambush2
SharkAmbush1
AlienAmbush2
BossIntroTrigger
LeftBossArea
BossIntroTrigger2
BossIntroTrigger3
BossIntroTrigger4
BossIntroTrigger5
$$TRIGGER_LIST_END
$$SOUND_LIST_START
AmbSwitch41
EnvSteamEmitG
DoorIsLocked
EnvSlowCreakD
EnvSlowCreakE
Merc4Vortex
Wall fade ???
AmbMatCenProduce
EnvElectricE
Powerup pickup
EnvElectricA
AmbSwitch31
Merc4Thruster
Merc4BossDeath
Merc4Rumble
AmbSwitch11
$$SOUND_LIST_END
$$TEXTURE_LIST_START
CC_JetEngine
Alien_Forcefield02
FunkyEffect3
CC_JetEngineLit
$$TEXTURE_LIST_END
$$SPECNAME_LIST_START
$$SPECNAME_LIST_END
$$PATH_LIST_START
IntroCamPath
IntroPlayerPath
BossDeathCam
BossDeathPath
Escape2CamPath
EscapePath2
BossIntroCam2
$$PATH_LIST_END
$$MATCEN_LIST_START
$$MATCEN_LIST_END
$$GOAL_LIST_START
Engage Airlock Power
Enter Outer Shell through Airlock
Teleport into Planetoid's Core
Disable Alien Forcefield Generators
Enter Sealed Quadrant of Alien Hive
Activate Main Thruster
Acquire Spare Fuse
Restore Power to Derelict Ship
Force Alien Queen to Nest
Manually Ignite Thruster Burn
Destroy Alien Planetoid
Escape
Investigate and Destroy Alien Planetoid
$$GOAL_LIST_END
$$STRM_AUDIO_LIST_START
$$STRM_AUDIO_LIST_END
// Script Tree Dump
00:0:Level Start - Init Flags and Variables
$$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
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:2:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:3:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:4:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:5: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: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:9:UserFlag
10:5:0:True/False
$$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:12: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:8: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
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:16:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:17:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:18:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:19:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aUserVarSet
$$CHILD_BLOCK_START
10:10:0:0:UserVar
10:6:0.000000:value
$$CHILD_BLOCK_END
08:aUserVarSet
$$CHILD_BLOCK_START
10:10:0:1:UserVar
10:6:10.000000:value
$$CHILD_BLOCK_END
08:aUserVarSet
$$CHILD_BLOCK_START
10:10:0:2:UserVar
10:6:8.000000:value
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:1:Level Start - 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:aRoomSetWind
$$CHILD_BLOCK_START
10:2:0:Room
10:6:0.985000:X
10:6:0.000000:Y
10:6:-0.174000:Z
10:6:0.000000:Speed
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:1:Room
10:6:0.985000:X
10:6:0.000000:Y
10:6:-0.174000:Z
10:6:0.000000:Speed
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:2:Room
10:6:0.985000:X
10:6:0.000000:Y
10:6:-0.174000:Z
10:6:0.000000:Speed
$$CHILD_BLOCK_END
08:aObjHide
$$CHILD_BLOCK_START
10:1:0:0:Object
$$CHILD_BLOCK_END
08:aObjHide
$$CHILD_BLOCK_START
10:1:0:1:Object
$$CHILD_BLOCK_END
08:aObjHide
$$CHILD_BLOCK_START
10:1:0:2:Object
$$CHILD_BLOCK_END
08:aObjHide
$$CHILD_BLOCK_START
10:1:0:3:Object
$$CHILD_BLOCK_END
08:aObjHide
$$CHILD_BLOCK_START
10:1:0:4:Object
$$CHILD_BLOCK_END
08:aObjHide
$$CHILD_BLOCK_START
10:1:0:5:Object
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:6:Object
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:7:Object
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:8:Object
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:9:Object
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:10:Object
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:11:Object
10:4:1000000:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:12:Object
10:4:1000000:Time
$$CHILD_BLOCK_END
08:aObjMakeInvuln
$$CHILD_BLOCK_START
10:1:0:13:Object
10:4:1000000:Time
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:0.400000:Time
10:10:0:9:TimerID
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:21:TimerID
$$CHILD_BLOCK_END
08:aRoomSetFog
$$CHILD_BLOCK_START
10:2:3:Room
10:6:0.500000:Red
10:6:0.500000:Green
10:6:0.500000:Blue
10:6:20000.000000:Depth
$$CHILD_BLOCK_END
08:aRoomSetFog
$$CHILD_BLOCK_START
10:2:4:Room
10:6:0.500000:Red
10:6:0.500000:Green
10:6:0.500000:Blue
10:6:20000.000000:Depth
$$CHILD_BLOCK_END
08:aRoomSetFog
$$CHILD_BLOCK_START
10:2:5:Room
10:6:0.500000:Red
10:6:0.500000:Green
10:6:0.500000:Blue
10:6:20000.000000:Depth
$$CHILD_BLOCK_END
08:aRoomSetFog
$$CHILD_BLOCK_START
10:2:6:Room
10:6:0.500000:Red
10:6:0.500000:Green
10:6:0.500000:Blue
10:6:20000.000000:Depth
$$CHILD_BLOCK_END
08:aRoomSetFog
$$CHILD_BLOCK_START
10:2:7:Room
10:6:0.500000:Red
10:6:0.500000:Green
10:6:0.500000:Blue
10:6:20000.000000:Depth
$$CHILD_BLOCK_END
08:aRoomSetFog
$$CHILD_BLOCK_START
10:2:8:Room
10:6:0.500000:Red
10:6:0.500000:Green
10:6:0.500000:Blue
10:6:20000.000000:Depth
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:27:TimerID
$$CHILD_BLOCK_END
08:aAISetState
$$CHILD_BLOCK_START
10:10:0:0:On/Off
10:1:0:14:Object
$$CHILD_BLOCK_END
08:aAISetState
$$CHILD_BLOCK_START
10:10:0:0:On/Off
10:1:0:15:Object
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:14:Object
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:0:15:Object
$$CHILD_BLOCK_END
08:aRoomSetFaceTexture
$$CHILD_BLOCK_START
10:2:3:Room
10:4:472:FaceNum
10:14:0:Texture
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:16:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:17:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:18:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:19:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:20:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:21:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:22:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:23:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:24:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:25:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:26:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:27:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:28:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:29:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:30:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:31:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:32:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:33:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:34:Object
$$CHILD_BLOCK_END
08:aEnableVirusInfection
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:1:0:35:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:2:Level Start - Into Movie
$$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
08:aCinematicIntro
$$CHILD_BLOCK_START
10:16:0:CameraPath
10:8:IntroText:Text
10:1:0:36:TotallyNotUsedTarget
10:16:1:PlayerPath
10:6:12.000000:Seconds
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:37:Initialize Boss Scenario
$$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:0
$$CHILD_BLOCK_START
08:aABSetScenarioIDs
$$CHILD_BLOCK_START
10:1:0:37:Alien Boss
10:1:0:38:Nest
10:2:9:Left Hide Room
10:2:10:Right Hide Room
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:4:Airlock Power Switch Hit
$$CHILD_BLOCK_START
01:1:39
02:0
03:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerOrPlayerWeapon: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:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:0:StartFrame
10:4:3:EndFrame
10:6:4.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:0:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:AirlockPowerOn:Message
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:0:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:3:Airlock Outer Door Hit
$$CHILD_BLOCK_START
01:1:40
02:0
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:1:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerOrPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
03:1
$$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:1:0:0
$$CHILD_BLOCK_START
03:1
$$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
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:1:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aDoorActivate
$$CHILD_BLOCK_START
10:0:2:-1:Door
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:41: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.200000:BlobInterval
10:6:3.000000:SpewLife
10:6:2.000000:BlobSize
10:6:8.000000:BlobSpeed
10:5:1: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.500000:BlobLifetime
10:6:0.200000:BlobInterval
10:6:3.000000:SpewLife
10:6:2.000000:BlobSize
10:6:8.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:0:41:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:0:42:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qDoorGetPos:Percentage
$$CHILD_BLOCK_START
10:0:0:0:Door
$$CHILD_BLOCK_END
07:1:0
10:9:0.000000:Percentage
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:AirlockDecompStarted:Message
$$CHILD_BLOCK_END
08:aUserVarSet
$$CHILD_BLOCK_START
10:10:0:0:UserVar
10:6:0.000000:value
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:0:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:5:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:AirlockActive:Message
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:2:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:AirlockPowerNotOn:Message
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:2:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aGoalEnableDisable
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:18:0:0:LevelGoal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:11:Airlock Inner Door Hit
$$CHILD_BLOCK_START
01:1:43
02:0
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:1:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerOrPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
03:1
$$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:1:0:0
$$CHILD_BLOCK_START
03:1
$$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
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:1:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aDoorActivate
$$CHILD_BLOCK_START
10:0:2:-1:Door
$$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.500000:BlobLifetime
10:6:0.200000:BlobInterval
10:6:3.000000:SpewLife
10:6:2.000000:BlobSize
10:6:8.000000:BlobSpeed
10:5:1: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.500000:BlobLifetime
10:6:0.200000:BlobInterval
10:6:3.000000:SpewLife
10:6:2.000000:BlobSize
10:6:8.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:0:44:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:0:45:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qDoorGetPos:Percentage
$$CHILD_BLOCK_START
10:0:0:1:Door
$$CHILD_BLOCK_END
07:1:0
10:9:0.000000:Percentage
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:AirlockCompStarted:Message
$$CHILD_BLOCK_END
08:aUserVarSet
$$CHILD_BLOCK_START
10:10:0:0:UserVar
10:6:0.000000:value
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:4:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:1:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:AirlockActive:Message
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:2:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:AirlockPowerNotOn:Message
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:2:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:5:Do Airlock Decompression Check
$$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:0:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aUserVarInc
$$CHILD_BLOCK_START
10:10:0:0:UserVar
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qDoorGetPos:Percentage
$$CHILD_BLOCK_START
10:0:0:1:Door
$$CHILD_BLOCK_END
07:1:0
10:9:0.000000:Percentage
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qDoorGetPos:Percentage
$$CHILD_BLOCK_START
10:0:0:0:Door
$$CHILD_BLOCK_END
07:1:0
10:9:0.000000:Percentage
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qUserVarValue:Float
$$CHILD_BLOCK_START
10:10:0:0:UserVar
$$CHILD_BLOCK_END
07:1:0
10:6:12.000000:Literal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
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.500000:BlobLifetime
10:6:0.200000:BlobInterval
10:6:3.000000:SpewLife
10:6:2.000000:BlobSize
10:6:8.000000:BlobSpeed
10:5:1: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.500000:BlobLifetime
10:6:0.200000:BlobInterval
10:6:3.000000:SpewLife
10:6:2.000000:BlobSize
10:6:8.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:0:44:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:0:45:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aDoorActivate
$$CHILD_BLOCK_START
10:0:0:0:Door
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qUserVarValue:Float
$$CHILD_BLOCK_START
10:10:0:0:UserVar
$$CHILD_BLOCK_END
07:1:0
10:6:12.000000:Literal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:AirlockMalfunction:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:1:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qUserVarValue:Float
$$CHILD_BLOCK_START
10:10:0:0:UserVar
$$CHILD_BLOCK_END
07:1:0
10:6:3.000000:Literal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:3:Sound
10:1:0:44:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:0:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:12:Do Airlock Compression Check
$$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:aUserVarInc
$$CHILD_BLOCK_START
10:10:0:0:UserVar
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qDoorGetPos:Percentage
$$CHILD_BLOCK_START
10:0:0:1:Door
$$CHILD_BLOCK_END
07:1:0
10:9:0.000000:Percentage
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qDoorGetPos:Percentage
$$CHILD_BLOCK_START
10:0:0:0:Door
$$CHILD_BLOCK_END
07:1:0
10:9:0.000000:Percentage
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
06:qUserVarValue:Float
$$CHILD_BLOCK_START
10:10:0:0:UserVar
$$CHILD_BLOCK_END
07:1:0
10:6:12.000000:Literal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:41: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.200000:BlobInterval
10:6:3.000000:SpewLife
10:6:2.000000:BlobSize
10:6:8.000000:BlobSpeed
10:5:1: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.500000:BlobLifetime
10:6:0.200000:BlobInterval
10:6:3.000000:SpewLife
10:6:2.000000:BlobSize
10:6:8.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:0:41:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:0:42:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aDoorActivate
$$CHILD_BLOCK_START
10:0:0:1:Door
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qUserVarValue:Float
$$CHILD_BLOCK_START
10:10:0:0:UserVar
$$CHILD_BLOCK_END
07:1:0
10:6:12.000000:Literal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:AirlockMalfunction:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:5:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qUserVarValue:Float
$$CHILD_BLOCK_START
10:10:0:0:UserVar
$$CHILD_BLOCK_END
07:1:0
10:6:3.000000:Literal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:4:Sound
10:1:0:41:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:4:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:6:Open Inner Airlock 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:1:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qDoorGetPos:Percentage
$$CHILD_BLOCK_START
10:0:0:1:Door
$$CHILD_BLOCK_END
07:1:1
10:9:0.000000:Percentage
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:5:Sound
10:1:0:46:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:0:Room
10:6:-0.985000:X
10:6:0.000000:Y
10:6:0.174000:Z
10:6:10.000000:Speed
10:6:1.000000:Time
$$CHILD_BLOCK_END
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:1:Room
10:6:-0.985000:X
10:6:0.000000:Y
10:6:0.174000:Z
10:6:10.000000:Speed
10:6:1.000000:Time
$$CHILD_BLOCK_END
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:2:Room
10:6:-0.985000:X
10:6:0.000000:Y
10:6:0.174000:Z
10:6:10.000000:Speed
10:6:1.000000:Time
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:3:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:15.000000:Time
10:10:0:2:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:9:Open Outer Airlock 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:5:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qDoorGetPos:Percentage
$$CHILD_BLOCK_START
10:0:0:0:Door
$$CHILD_BLOCK_END
07:1:1
10:9:0.000000:Percentage
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:0:Room
10:6:0.985000:X
10:6:0.000000:Y
10:6:-0.174000:Z
10:6:10.000000:Speed
10:6:1.000000:Time
$$CHILD_BLOCK_END
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:1:Room
10:6:0.985000:X
10:6:0.000000:Y
10:6:-0.174000:Z
10:6:10.000000:Speed
10:6:1.000000:Time
$$CHILD_BLOCK_END
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:2:Room
10:6:0.985000:X
10:6:0.000000:Y
10:6:-0.174000:Z
10:6:10.000000:Speed
10:6:1.000000:Time
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:3:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:15.000000:Time
10:10:0:6:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:7:Complete Airlock Decompression
$$CHILD_BLOCK_START
01:2:0
02:9
03:0
$$CHILD_BLOCK_START
09:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:2:TimerID
$$CHILD_BLOCK_END
05:2
$$CHILD_BLOCK_START
10:10:2:0:TimerID
07:1:0
10:10:0:6:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
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:8:Stop Airlock Wind
$$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:3:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:0:Room
10:6:0.985000:X
10:6:0.000000:Y
10:6:-0.174000:Z
10:6:0.000000:Speed
10:6:2.000000:Time
$$CHILD_BLOCK_END
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:1:Room
10:6:0.985000:X
10:6:0.000000:Y
10:6:-0.174000:Z
10:6:0.000000:Speed
10:6:2.000000:Time
$$CHILD_BLOCK_END
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:2:Room
10:6:0.985000:X
10:6:0.000000:Y
10:6:-0.174000:Z
10:6:0.000000:Speed
10:6:2.000000:Time
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:44:Player passed through Airlock
$$CHILD_BLOCK_START
01:0:0
02:1
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:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:1:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
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:63:Player Left Outer Shell
$$CHILD_BLOCK_START
01:0:1
02:1
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:aMusicSetRegion
$$CHILD_BLOCK_START
10:10:0:0:Region
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:10:Teleporter A1 Hit
$$CHILD_BLOCK_START
01:1:0
02:0
03:0
$$CHILD_BLOCK_START
09: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
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:60:ScriptID
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aStoreObjectInPositionClipboard
$$CHILD_BLOCK_START
10:1:0:47:Object
$$CHILD_BLOCK_END
08:aMoveObjectToPositionClipboard
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
08:aClearTeleporterArea
$$CHILD_BLOCK_START
10:1:0:47:Destination
10:1:1:-1:Teleportee
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:6:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:7:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:0:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:1:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:2:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:3:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:4:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:5:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:6:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:7:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:8:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:9:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:10:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:11:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:0:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:1:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:2:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:3:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:4:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:5:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:6:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:7:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:8:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:9:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:10:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:11:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:7:TimerID
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:48: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.200000:BlobInterval
10:6:-1.000000:SpewLife
10:6:2.000000:BlobSize
10:6:8.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:49: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.200000:BlobInterval
10:6:-1.000000:SpewLife
10:6:2.000000:BlobSize
10:6:8.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:2:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:60:Teleporter A2 Hit
$$CHILD_BLOCK_START
01:1:1
02:0
03:0
$$CHILD_BLOCK_START
09: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
05:1
$$CHILD_BLOCK_START
06:qScriptExecuted_DALLAS:Bool
$$CHILD_BLOCK_START
10:11:10:ScriptID
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aStoreObjectInPositionClipboard
$$CHILD_BLOCK_START
10:1:0:50:Object
$$CHILD_BLOCK_END
08:aMoveObjectToPositionClipboard
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
08:aClearTeleporterArea
$$CHILD_BLOCK_START
10:1:0:50:Destination
10:1:1:-1:Teleportee
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:6:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:7:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:0:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:1:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:2:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:3:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:4:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:5:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:6:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:7:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:8:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:9:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:10:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:11:PortalNum
10:2:11:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:0:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:1:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:2:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:3:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:4:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:5:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:6:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:7:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:8:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:9:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:10:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:11:PortalNum
10:2:12:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:7:TimerID
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:48: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.200000:BlobInterval
10:6:-1.000000:SpewLife
10:6:2.000000:BlobSize
10:6:8.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:49: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.200000:BlobInterval
10:6:-1.000000:SpewLife
10:6:2.000000:BlobSize
10:6:8.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:2:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:13:Teleporter C1 Hit
$$CHILD_BLOCK_START
01:1:3
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:aStoreObjectInPositionClipboard
$$CHILD_BLOCK_START
10:1:0:51:Object
$$CHILD_BLOCK_END
08:aMoveObjectToPositionClipboard
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
08:aClearTeleporterArea
$$CHILD_BLOCK_START
10:1:0:51:Destination
10:1:1:-1:Teleportee
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:6:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:2:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:14:Teleporter C2 Hit
$$CHILD_BLOCK_START
01:1:4
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:aStoreObjectInPositionClipboard
$$CHILD_BLOCK_START
10:1:0:52:Object
$$CHILD_BLOCK_END
08:aMoveObjectToPositionClipboard
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
08:aClearTeleporterArea
$$CHILD_BLOCK_START
10:1:0:52:Destination
10:1:1:-1:Teleportee
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:6:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:15:Make Teleporter A Spark
$$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:aEmitSparks
$$CHILD_BLOCK_START
06:qRandomValue:Number
$$CHILD_BLOCK_START
10:6:10.000000:LowerLimit
10:6:25.000000:UpperLimit
$$CHILD_BLOCK_END
10:1:0:53:Object
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
06:qRandomValue:Number
$$CHILD_BLOCK_START
10:6:10.000000:LowerLimit
10:6:25.000000:UpperLimit
$$CHILD_BLOCK_END
10:1:0:54:Object
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qRandomValue:Time
$$CHILD_BLOCK_START
10:6:0.250000:LowerLimit
10:6:1.500000:UpperLimit
$$CHILD_BLOCK_END
10:10:0:7:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:16:Bad Door Hit
$$CHILD_BLOCK_START
01:1:55
02:0
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:1: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:2:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerOrPlayerWeapon:Bool
$$CHILD_BLOCK_START
10:1:1:-1:Object
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:20.000000:Number
10:1:0:56:Object
$$CHILD_BLOCK_END
08:aDoorSetPos
$$CHILD_BLOCK_START
10:0:0:2:Door
10:9:0.600000:Position
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.500000:Time
10:10:0:8:TimerID
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:2:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:17:Make Bad Door Stutter
$$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
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:17:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:0:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:35.000000:Number
10:1:0:57:Object
$$CHILD_BLOCK_END
08:aDoorSetPos
$$CHILD_BLOCK_START
10:0:0:2:Door
10:9:0.550000:Position
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:0.500000:Time
10:10:0:8:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:17:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:1:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:40.000000:Number
10:1:0:56:Object
$$CHILD_BLOCK_END
08:aDoorSetPos
$$CHILD_BLOCK_START
10:0:0:2:Door
10:9:0.650000:Position
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:8:Sound
10:1:0:55:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:BadDoorBumped:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:65:Entered Hive Area 1 Trigger Hit
$$CHILD_BLOCK_START
01:0:2
02:1
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:1
$$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:66:Entered Hive Area 2 Trigger Hit
$$CHILD_BLOCK_START
01:0:3
02:1
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:1
$$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:67:Entered Hive Area 3 Trigger Hit
$$CHILD_BLOCK_START
01:0:4
02:1
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:1
$$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:68:Left Hive Area 1 Trigger Hit
$$CHILD_BLOCK_START
01:0:5
02:1
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:1
$$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:69:Left Hive Area 2 Trigger Hit
$$CHILD_BLOCK_START
01:0:6
02:1
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:1
$$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:70:Left Hive Area 3 Trigger Hit
$$CHILD_BLOCK_START
01:0:7
02:1
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:1
$$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:18:Check if any Maws have been broken
$$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:18:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$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:3:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qPortalIsOn:Bool
$$CHILD_BLOCK_START
10:4:1:PortalNum
10:2:13:Room
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:5:Sound
10:1:0:6:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:13:Room
10:6:0.469000:X
10:6:0.000000:Y
10:6:0.883000:Z
06:qUserVarValue:Speed
$$CHILD_BLOCK_START
10:10:0:2:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:13:Room
10:6:0.469000:X
10:6:0.000000:Y
10:6:0.883000:Z
10:6:0.500000:Speed
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:14:Room
10:6:0.000000:Red
10:6:0.000000:Green
10:6:0.000000:Blue
10:6:40.000000:Depth
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
10:10:0:10:TimerID
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:3:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:4:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qPortalIsOn:Bool
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:15:Room
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:5:Sound
10:1:0:7:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:15:Room
10:6:0.707000:X
10:6:0.000000:Y
10:6:0.707000:Z
06:qUserVarValue:Speed
$$CHILD_BLOCK_START
10:10:0:2:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:15:Room
10:6:0.707000:X
10:6:0.000000:Y
10:6:0.707000:Z
10:6:0.500000:Speed
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:16:Room
10:6:0.000000:Red
10:6:0.000000:Green
10:6:0.000000:Blue
10:6:40.000000:Depth
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
10:10:0:11:TimerID
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:4:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:5:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qPortalIsOn:Bool
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:17:Room
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:5:Sound
10:1:0:8:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:17:Room
10:6:-0.866000:X
10:6:0.000000:Y
10:6:0.500000:Z
06:qUserVarValue:Speed
$$CHILD_BLOCK_START
10:10:0:2:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:17:Room
10:6:-0.870000:X
10:6:0.000000:Y
10:6:0.500000:Z
10:6:0.500000:Speed
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:18:Room
10:6:0.000000:Red
10:6:0.000000:Green
10:6:0.000000:Blue
10:6:40.000000:Depth
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
10:10:0:12:TimerID
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:5:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$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
05:1
$$CHILD_BLOCK_START
06:qPortalIsOn:Bool
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:19:Room
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:5:Sound
10:1:0:9:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:19:Room
10:6:-0.743000:X
10:6:0.000000:Y
10:6:0.669000:Z
06:qUserVarValue:Speed
$$CHILD_BLOCK_START
10:10:0:2:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:19:Room
10:6:-0.740000:X
10:6:0.000000:Y
10:6:0.670000:Z
10:6:0.500000:Speed
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:20:Room
10:6:0.000000:Red
10:6:0.000000:Green
10:6:0.000000:Blue
10:6:40.000000:Depth
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
10:10:0:13:TimerID
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:6:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$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
05:1
$$CHILD_BLOCK_START
06:qPortalIsOn:Bool
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:21:Room
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:5:Sound
10:1:0:10:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:21:Room
10:6:0.574000:X
10:6:0.000000:Y
10:6:-0.819000:Z
06:qUserVarValue:Speed
$$CHILD_BLOCK_START
10:10:0:2:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aRoomChangeWind
$$CHILD_BLOCK_START
10:2:21:Room
10:6:0.574000:X
10:6:0.000000:Y
10:6:-0.819000:Z
10:6:0.500000:Speed
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:22:Room
10:6:0.000000:Red
10:6:0.000000:Green
10:6:0.000000:Blue
10:6:40.000000:Depth
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
06:qUserVarValue:Time
$$CHILD_BLOCK_START
10:10:0:1:UserVar
$$CHILD_BLOCK_END
10:10:0:14:TimerID
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:7:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:9:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:10:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:11:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:12:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:13:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:1:PortalNum
10:2:23:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:2:PortalNum
10:2:23:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:3:PortalNum
10:2:23:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:4:PortalNum
10:2:23:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:5:PortalNum
10:2:23:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:18:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:3:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:26:Do Maw Robot/Player Check
$$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:9:TimerID
$$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:3:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:9:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aKillBotsNearObj
$$CHILD_BLOCK_START
10:1:0:6:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:4:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:10:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aKillBotsNearObj
$$CHILD_BLOCK_START
10:1:0:7:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:5:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:11:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aKillBotsNearObj
$$CHILD_BLOCK_START
10:1:0:8:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:6:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:12:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aKillBotsNearObj
$$CHILD_BLOCK_START
10:1:0:9:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:7:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:13:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aKillBotsNearObj
$$CHILD_BLOCK_START
10:1:0:10:Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:0.250000:Time
10:10:0:9:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:19:Maw 1 is Dead
$$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:10:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:9:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aGoalItemCompleted
$$CHILD_BLOCK_START
10:18:0:3:LevelGoal
10:4:1:ItemIndex
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aRoomSetFaceTexture
$$CHILD_BLOCK_START
10:2:23:Room
10:4:273:FaceNum
10:14:1:Texture
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:20:Maw 2 is Dead
$$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:11:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:10:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aGoalItemCompleted
$$CHILD_BLOCK_START
10:18:0:3:LevelGoal
10:4:2:ItemIndex
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aRoomSetFaceTexture
$$CHILD_BLOCK_START
10:2:23:Room
10:4:271:FaceNum
10:14:1:Texture
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:21:Maw 3 is Dead
$$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:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:11:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aGoalItemCompleted
$$CHILD_BLOCK_START
10:18:0:3:LevelGoal
10:4:3:ItemIndex
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aRoomSetFaceTexture
$$CHILD_BLOCK_START
10:2:23:Room
10:4:269:FaceNum
10:14:1:Texture
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:22:Maw 4 is Dead
$$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:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:12:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aGoalItemCompleted
$$CHILD_BLOCK_START
10:18:0:3:LevelGoal
10:4:4:ItemIndex
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aRoomSetFaceTexture
$$CHILD_BLOCK_START
10:2:23:Room
10:4:270:FaceNum
10:14:1:Texture
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:23:Maw 5 is Dead
$$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:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:13:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aGoalItemCompleted
$$CHILD_BLOCK_START
10:18:0:3:LevelGoal
10:4:5:ItemIndex
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aRoomSetFaceTexture
$$CHILD_BLOCK_START
10:2:23:Room
10:4:268:FaceNum
10:14:1:Texture
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:45:Player Flew into Forcefield Room
$$CHILD_BLOCK_START
01:0:8
02:1
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
03:1
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qGoalCompleted:Bool
$$CHILD_BLOCK_START
10:18:0:3:LevelGoal
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
05:1
$$CHILD_BLOCK_START
06:qGoalEnabled:Bool
$$CHILD_BLOCK_START
10:18:0:3:LevelGoal
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aGoalEnableDisable
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:18:0:3:LevelGoal
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:FFMessage:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:46:Player Entered Lower Hive Quadrant
$$CHILD_BLOCK_START
01:0:9
02:1
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:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:4:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:47:Nest Trigger 1 Hit
$$CHILD_BLOCK_START
01:0:10
02:1
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:1
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:26:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:48:Nest Trigger 2 Hit
$$CHILD_BLOCK_START
01:0:11
02:1
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:1
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:26:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:49:Do Nest Trigger
$$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:26:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:UseThruster:Message
$$CHILD_BLOCK_END
08:aGoalEnableDisable
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:18:0:5:LevelGoal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:24:Player Picks Up Cruiser Fuse
$$CHILD_BLOCK_START
01:1:58
02:0
03:0
$$CHILD_BLOCK_START
09: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
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:8:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:9:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:CruiserFuseAcquired:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aAddObjectToInventory
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:1:1:-1:PlayerObject
10:5:0:Spewable
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:6:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:25:Used Cruiser Fuse
$$CHILD_BLOCK_START
01:1:58
02:25
03:0
$$CHILD_BLOCK_START
09: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
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:8: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
05:2
$$CHILD_BLOCK_START
06:qObjGetDistance:Float
$$CHILD_BLOCK_START
10:1:1:-1:Object1
10:1:0:59:Object2
$$CHILD_BLOCK_END
07:1:3
10:6:40.000000:Literal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aStoreObjectInPositionClipboard
$$CHILD_BLOCK_START
10:1:0:59:Object
$$CHILD_BLOCK_END
08:aMoveObjectToPositionClipboard
$$CHILD_BLOCK_START
10:1:2:-1:Object
$$CHILD_BLOCK_END
08:aObjGhostSet
$$CHILD_BLOCK_START
10:10:0:1:Ghost/Unghost
10:1:2:-1:Object
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:10:Sound
10:1:0:59:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:CruiserFusePlaced:Message
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:8:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aLightningCreate
$$CHILD_BLOCK_START
10:1:0:60:Object1
10:1:0:61:Object2
10:6:10000.000000:Lifetime
10:6:2.000000:Thickness
10:4:3:NumTiles
10:14:2:Texture
10:6:0.600000:SlideTime
10:4:1: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:20:TimerID
$$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:aAddObjectToInventory
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:1:1:-1:PlayerObject
10:5:0:Spewable
$$CHILD_BLOCK_END
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:CruiserFuseNoUse:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:36:Power Restored
$$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:20:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:14:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:7:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aGoalEnableDisable
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:18:0:5:LevelGoal
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:0:59:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:50:Do Boss At Nest Check
$$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:27:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:19:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qIsAlienBossHealing:Bool
$$CHILD_BLOCK_START
10:1:0:37:Alien Boss
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qGoalCompleted:Bool
$$CHILD_BLOCK_START
10:18:0:8:LevelGoal
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:8:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qGoalCompleted:Bool
$$CHILD_BLOCK_START
10:18:0:8:LevelGoal
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:8:LevelGoal
10:10:0:0:Completed
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:QueenLeft:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:0.500000:Time
10:10:0:27:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:27:Thruster Switch Hit
$$CHILD_BLOCK_START
01:1:62
02:0
03:0
$$CHILD_BLOCK_START
09:0
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qObjIsPlayerOrPlayerWeapon: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:17: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
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
04:1:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
09:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qObjAnimFrame:Float
$$CHILD_BLOCK_START
10:1:2:-1:Object
$$CHILD_BLOCK_END
07:1:0
10:6:0.000000:Literal
$$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:2.000000:Literal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
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
04:1:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:16:UserFlag
$$CHILD_BLOCK_END
07:0:6
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aMiscShakeArea
$$CHILD_BLOCK_START
10:1:0:63:Object
10:6:40.000000:Amount
10:6:5000.000000:Dist
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:0:StartFrame
10:4:1:EndFrame
10:6:2.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:11:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:5:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qAlienBossHealing:Bool
$$CHILD_BLOCK_START
10:1:0:37:Alien Boss
$$CHILD_BLOCK_END
07:0:6
$$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:0:True/False
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:1
$$CHILD_BLOCK_START
06:qGoalCompleted:Bool
$$CHILD_BLOCK_START
10:18:0:8:LevelGoal
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:8:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:17:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:22:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:0:StartFrame
10:4:1:EndFrame
10:6:2.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:11:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:63:Object
10:4:-1:GunNum
10:10:0:1: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:23.000000:BlobSize
10:6:145.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:12:Sound
10:1:0:63:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aUserVarSet
$$CHILD_BLOCK_START
10:10:0:3:UserVar
10:6:0.000000:value
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:17:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:5.000000:Time
10:10:0:17:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:NoBurnIgnited:Message
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aMiscShakeArea
$$CHILD_BLOCK_START
10:1:0:63:Object
10:6:20.000000:Amount
10:6:5000.000000:Dist
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:0:StartFrame
10:4:1:EndFrame
10:6:2.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:11:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:15:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aABThrusterMisfired
$$CHILD_BLOCK_START
10:1:0:37:Alien Boss
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:17:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:63:Object
10:4:-1:GunNum
10:10:0:8: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:16.000000:BlobSize
10:6:130.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:3:Room
10:6:0.500000:Red
10:6:0.500000:Green
10:6:0.500000:Blue
10:6:400.000000:Depth
10:6:2.500000:Time
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:3.000000:Time
10:10:0:19:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:1
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:NoPowerAvail:Message
$$CHILD_BLOCK_END
08:aGoalEnableDisable
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:18:0:6:LevelGoal
$$CHILD_BLOCK_END
08:aGoalEnableDisable
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:18:0:7:LevelGoal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:33:Igniter Failed Sequence
$$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
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:33:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:0:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:63:Object
10:4:-1:GunNum
10:10:0:8: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.300000:BlobInterval
10:6:-1.000000:SpewLife
10:6:12.000000:BlobSize
10:6:60.000000:BlobSpeed
10:5:0:Randomize
10:10:0:0:SpewHandle
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:IgniterFailed1:Message
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:3:Room
10:6:0.500000:Red
10:6:0.500000:Green
10:6:0.500000:Blue
10:6:5000.000000:Depth
10:6:20.000000:Time
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:6.000000:Time
10:10:0:19:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:33:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:1:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:IgniterFailed2:Message
$$CHILD_BLOCK_END
08:aGoalEnableDisable
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:18:0:9:LevelGoal
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:18:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:35:Ignite Burn Manually
$$CHILD_BLOCK_START
01:0:12
02:1
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
09:0
$$CHILD_BLOCK_START
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
05:1
$$CHILD_BLOCK_START
06:qUserFlag:Bool
$$CHILD_BLOCK_START
10:10:0:16:UserFlag
$$CHILD_BLOCK_END
07:0:7
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:16:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:63:Object
10:4:-1:GunNum
10:10:0:1:SpewType
10:6:0.000000:Mass
10:6:0.000000:Drag
10:15:65536:PhysicsFlags
10:5:0:IsRealObject
10:6:0.700000:BlobLifetime
10:6:0.100000:BlobInterval
10:6:0.500000:SpewLife
10:6:22.000000:BlobSize
10:6:120.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:63:Object
10:4:-1:GunNum
10:10:0:1: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.150000:BlobInterval
10:6:1.000000:SpewLife
10:6:16.000000:BlobSize
10:6:70.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOffSpew
$$CHILD_BLOCK_START
10:10:0:0:SpewHandle
$$CHILD_BLOCK_END
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:BurnIgnited:Message
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:9:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aABThrusterIgnited
$$CHILD_BLOCK_START
10:1:0:37:Alien Boss
$$CHILD_BLOCK_END
08:aRoomSetFaceTexture
$$CHILD_BLOCK_START
10:2:3:Room
10:4:472:FaceNum
10:14:3:Texture
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:34:Recharge Thruster Sequence
$$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:17:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qUserVarValue:Float
$$CHILD_BLOCK_START
10:10:0:3:UserVar
$$CHILD_BLOCK_END
07:1:0
10:6:0.000000:Literal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:ThrusterBurnFailed:Message
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:6.000000:Time
10:10:0:17:TimerID
$$CHILD_BLOCK_END
08:aGoalEnableDisable
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:18:0:8:LevelGoal
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:19:UserFlag
10:5:1:True/False
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qUserVarValue:Float
$$CHILD_BLOCK_START
10:10:0:3:UserVar
$$CHILD_BLOCK_END
07:1:0
10:6:1.000000:Literal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:RechargeThruster1:Message
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:10.000000:Time
10:10:0:17:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qUserVarValue:Float
$$CHILD_BLOCK_START
10:10:0:3:UserVar
$$CHILD_BLOCK_END
07:1:0
10:6:2.000000:Literal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:RechargeThruster2:Message
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:18:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
08:aUserVarInc
$$CHILD_BLOCK_START
10:10:0:3:UserVar
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:32:Reset the Thruster Switch
$$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:18:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:62:Object
10:4:1:StartFrame
10:4:2:EndFrame
10:6:2.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:11:Sound
10:1:0:62:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aUserFlagSet
$$CHILD_BLOCK_START
10:10:0:17:UserFlag
10:5:0:True/False
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:5:LevelGoal
10:10:0:0:Completed
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:28:Cocoon Ambush 1
$$CHILD_BLOCK_START
01:0:13
02:1
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:1
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:0.500000:Time
10:10:0:15:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:29:Do Cocoon 1's Ambushes
$$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:15:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:29:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:0:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aPortalBreakGlass
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:24:Room
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:15:TimerID
$$CHILD_BLOCK_END
08:aAlienOrganismHunt
$$CHILD_BLOCK_START
10:1:0:64:Alien Organism
10:1:0:65:Destination Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:29:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:1:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aPortalBreakGlass
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:25:Room
$$CHILD_BLOCK_END
08:aAlienOrganismHunt
$$CHILD_BLOCK_START
10:1:0:66:Alien Organism
10:1:0:65:Destination Object
$$CHILD_BLOCK_END
08:aAlienOrganismHunt
$$CHILD_BLOCK_START
10:1:0:67:Alien Organism
10:1:0:65:Destination Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:30:Cocoon Ambush 2
$$CHILD_BLOCK_START
01:0:14
02:1
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:1
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:16:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:31:Do Cocoon 2's Ambushes
$$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:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:31:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:0:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aPortalBreakGlass
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:26:Room
$$CHILD_BLOCK_END
08:aAlienOrganismHunt
$$CHILD_BLOCK_START
10:1:0:68:Alien Organism
10:1:0:65:Destination Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:58:Shark Ambush 1
$$CHILD_BLOCK_START
01:0:15
02:1
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:1
$$CHILD_BLOCK_START
08:aPortalBreakGlass
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:27:Room
$$CHILD_BLOCK_END
08:aAlienOrganismHunt
$$CHILD_BLOCK_START
10:1:0:69:Alien Organism
10:1:1:-1:Destination Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:59:Alien Ambush 2
$$CHILD_BLOCK_START
01:0:16
02:1
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:1
$$CHILD_BLOCK_START
08:aPortalBreakGlass
$$CHILD_BLOCK_START
10:4:0:PortalNum
10:2:28:Room
$$CHILD_BLOCK_END
08:aAlienOrganismHunt
$$CHILD_BLOCK_START
10:1:0:70:Alien Organism
10:1:1:-1:Destination Object
$$CHILD_BLOCK_END
08:aAlienOrganismHunt
$$CHILD_BLOCK_START
10:1:0:71:Alien Organism
10:1:1:-1:Destination Object
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:38:Boss Death Sequence
$$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:22:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:38:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:0:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aCinematicSimple
$$CHILD_BLOCK_START
10:16:2:CameraPath
10:8:Empty:Text
10:1:0:36:Target
10:6:15.000000:Seconds
10:5:1:FadeIn
$$CHILD_BLOCK_END
08:aStoreObjectInPositionClipboard
$$CHILD_BLOCK_START
10:1:0:72:Object
$$CHILD_BLOCK_END
08:aMoveObjectToPositionClipboard
$$CHILD_BLOCK_START
10:1:0:37:Object
$$CHILD_BLOCK_END
08:aObjPlayImmAnim
$$CHILD_BLOCK_START
10:1:0:37:Object
10:4:1:StartFrame
10:4:10:EndFrame
10:6:2.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:22:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:38:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:1:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:37:Object
10:4:10:StartFrame
10:4:25:EndFrame
10:6:1.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aMiscShakeArea
$$CHILD_BLOCK_START
10:1:0:36:Object
10:6:20.000000:Amount
10:6:200.000000:Dist
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:63:Object
10:4:-1:GunNum
10:10:0:1: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:5.000000:SpewLife
10:6:23.000000:BlobSize
10:6:170.000000:BlobSpeed
10:5:0:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:12:Sound
10:1:0:63:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:22:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:38:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:2:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:37:Object
10:4:25:StartFrame
10:4:36:EndFrame
10:6:0.600000:CycleTime
10:5:1:Looping
$$CHILD_BLOCK_END
08:aSetObjectOnFire
$$CHILD_BLOCK_START
10:1:0:37:Object
10:6:8.000000:Seconds
10:6:0.000000:Damage
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:37:Object
10:6:40.000000:SparkRate
10:6:10.000000:Time
$$CHILD_BLOCK_END
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:30.000000:Number
10:1:0:37:Object
$$CHILD_BLOCK_END
08:aAISetMaxSpeed
$$CHILD_BLOCK_START
10:1:0:37:Object
10:6:6.000000:MaxSpeed
$$CHILD_BLOCK_END
08:aObjSetMovementType
$$CHILD_BLOCK_START
10:1:0:37:Object
10:10:0:1:MovementType
$$CHILD_BLOCK_END
08:aAIGoalFollowPathSimple
$$CHILD_BLOCK_START
10:1:0:37:Object
10:16:3:Path
10:15:131076:AIGoalFlags
10:10:0:-1:GoalID
10:10:0:3:GoalPriority
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:13:Sound
10:1:0:37:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:3.000000:Time
10:10:0:22:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:38:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:3:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:20.000000:Number
10:1:0:37:Object
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:37:Object
10:4:25:StartFrame
10:4:36:EndFrame
10:6:0.500000:CycleTime
10:5:1:Looping
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:2.000000:Time
10:10:0:22:TimerID
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:13:Sound
10:1:0:37:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:38:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:4:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:40.000000:Number
10:1:0:37:Object
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.500000:Time
10:10:0:22:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:38:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:5:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aEmitSparks
$$CHILD_BLOCK_START
10:6:50.000000:Number
10:1:0:37:Object
$$CHILD_BLOCK_END
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:0:37:Object
10:4:25:StartFrame
10:4:36:EndFrame
10:6:0.400000:CycleTime
10:5:1:Looping
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.500000:Time
10:10:0:22:TimerID
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:13:Sound
10:1:0:37:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:38:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:6:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aMiscShakeArea
$$CHILD_BLOCK_START
10:1:0:36:Object
10:6:40.000000:Amount
10:6:200.000000:Dist
$$CHILD_BLOCK_END
08:aObjKill
$$CHILD_BLOCK_START
10:1:0:37:Object
10:10:0:0:DeathDelayType
10:10:0:2:DeathExplosionSize
10:15:131296:DeathFlags
10:6:0.000000:MinDelay
10:6:0.000000:MaxDelay
$$CHILD_BLOCK_END
08:aObjSpark
$$CHILD_BLOCK_START
10:1:0:11:Object
10:6:50.000000:SparkRate
10:6:3.000000:Time
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:0.200000:Time
10:10:0:22:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:38:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:7:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aObjMakeVulnerable
$$CHILD_BLOCK_START
10:1:0:11:Object
$$CHILD_BLOCK_END
08:aObjKill
$$CHILD_BLOCK_START
10:1:0:11:Object
10:10:0:0:DeathDelayType
10:10:0:2:DeathExplosionSize
10:15:131296:DeathFlags
10:6:0.000000:MinDelay
10:6:0.000000:MaxDelay
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:3:PortalNum
10:2:3:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:4:PortalNum
10:2:3:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:5:PortalNum
10:2:3:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:6:PortalNum
10:2:3:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:7:PortalNum
10:2:3:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:0:Enable/Disable
10:4:8:PortalNum
10:2:3:Room
10:5:1:DoublesidedFlag
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:41:Alien Boss Died
$$CHILD_BLOCK_START
01:1:37
02:4
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aRoomSetFog
$$CHILD_BLOCK_START
10:2:29:Room
10:6:0.500000:Red
10:6:0.500000:Green
10:6:0.500000:Blue
10:6:100.000000:Depth
$$CHILD_BLOCK_END
08:aRoomSetFog
$$CHILD_BLOCK_START
10:2:30:Room
10:6:0.500000:Red
10:6:0.500000:Green
10:6:0.500000:Blue
10:6:300.000000:Depth
$$CHILD_BLOCK_END
08:aPortalRenderSet
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:4:0:PortalNum
10:2:29:Room
10:5:0:DoublesidedFlag
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:3:Room
10:6:0.000000:Red
10:6:1.000000:Green
10:6:0.000000:Blue
10:6:1000.000000:Depth
10:6:8.000000:Time
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:4:Room
10:6:0.000000:Red
10:6:1.000000:Green
10:6:0.000000:Blue
10:6:1000.000000:Depth
10:6:8.000000:Time
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:5:Room
10:6:0.000000:Red
10:6:1.000000:Green
10:6:0.000000:Blue
10:6:1000.000000:Depth
10:6:8.000000:Time
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:6:Room
10:6:0.000000:Red
10:6:1.000000:Green
10:6:0.000000:Blue
10:6:1000.000000:Depth
10:6:8.000000:Time
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:7:Room
10:6:0.000000:Red
10:6:1.000000:Green
10:6:0.000000:Blue
10:6:1000.000000:Depth
10:6:8.000000:Time
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:73: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:3.000000:BlobLifetime
10:6:0.400000:BlobInterval
10:6:-1.000000:SpewLife
10:6:6.000000:BlobSize
10:6:10.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:74: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:4.000000:BlobLifetime
10:6:0.400000:BlobInterval
10:6:-1.000000:SpewLife
10:6:6.000000:BlobSize
10:6:10.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:75: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:6.000000:BlobLifetime
10:6:0.400000:BlobInterval
10:6:-1.000000:SpewLife
10:6:6.000000:BlobSize
10:6:10.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:76: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:5.000000:BlobLifetime
10:6:0.400000:BlobInterval
10:6:-1.000000:SpewLife
10:6:6.000000:BlobSize
10:6:10.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:77: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:5.000000:BlobLifetime
10:6:0.400000:BlobInterval
10:6:-1.000000:SpewLife
10:6:6.000000:BlobSize
10:6:10.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:78: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:6.000000:BlobLifetime
10:6:0.400000:BlobInterval
10:6:-1.000000:SpewLife
10:6:6.000000:BlobSize
10:6:10.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:6.000000:Time
10:10:0:23:TimerID
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:6.000000:Time
10:10:0:25:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:39:Escape Sequence
$$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:0
$$CHILD_BLOCK_START
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:39:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:0:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aPortalBreakGlass
$$CHILD_BLOCK_START
10:4:1:PortalNum
10:2:8:Room
$$CHILD_BLOCK_END
08:aRoomChangeFog
$$CHILD_BLOCK_START
10:2:8:Room
10:6:0.000000:Red
10:6:1.000000:Green
10:6:0.000000:Blue
10:6:800.000000:Depth
10:6:5.000000:Time
$$CHILD_BLOCK_END
08:aRoomSetDamage
$$CHILD_BLOCK_START
10:2:3:Room
10:6:1.000000:Damage
10:10:0:1:DamageSoundType
$$CHILD_BLOCK_END
08:aRoomSetDamage
$$CHILD_BLOCK_START
10:2:4:Room
10:6:1.000000:Damage
10:10:0:1:DamageSoundType
$$CHILD_BLOCK_END
08:aRoomSetDamage
$$CHILD_BLOCK_START
10:2:5:Room
10:6:1.000000:Damage
10:10:0:1:DamageSoundType
$$CHILD_BLOCK_END
08:aRoomSetDamage
$$CHILD_BLOCK_START
10:2:6:Room
10:6:1.000000:Damage
10:10:0:1:DamageSoundType
$$CHILD_BLOCK_END
08:aRoomSetDamage
$$CHILD_BLOCK_START
10:2:7:Room
10:6:1.000000:Damage
10:10:0:1:DamageSoundType
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:3.000000:Time
10:10:0:23:TimerID
$$CHILD_BLOCK_END
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:10:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aGoalEnableDisable
$$CHILD_BLOCK_START
10:10:0:1:Enable/Disable
10:18:0:11:LevelGoal
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
03:1
$$CHILD_BLOCK_START
05:2
$$CHILD_BLOCK_START
06:qTimesScriptExecuted_DALLAS:Integer
$$CHILD_BLOCK_START
10:11:39:ScriptID
$$CHILD_BLOCK_END
07:1:0
10:4:1:Integer
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:1:0:0
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:GetOuttaHere:Message
$$CHILD_BLOCK_END
08:aRoomSetDamage
$$CHILD_BLOCK_START
10:2:8:Room
10:6:1.000000:Damage
10:10:0:1:DamageSoundType
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:42:Do Level Shakes
$$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:25:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aMiscShakeArea
$$CHILD_BLOCK_START
10:1:0:36:Object
06:qRandomValue:Amount
$$CHILD_BLOCK_START
10:6:50.000000:LowerLimit
10:6:90.000000:UpperLimit
$$CHILD_BLOCK_END
10:6:5000.000000:Dist
$$CHILD_BLOCK_END
08:aSoundPlay2D
$$CHILD_BLOCK_START
10:12:14:Sound
10:9:1.000000:Volume
$$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:25:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:43:Escape Trigger Hit
$$CHILD_BLOCK_START
01:1:5
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:1
$$CHILD_BLOCK_START
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:11:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:0.100000:Time
10:10:0:24:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:40:End Level Escape Movie
$$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:24:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aGoalCompleted
$$CHILD_BLOCK_START
10:18:0:12:LevelGoal
10:10:0:1:Completed
$$CHILD_BLOCK_END
08:aStartEndlevelSequencePath
$$CHILD_BLOCK_START
10:16:4:CameraPath
10:16:5:PlayerPath
10:6:3.500000:Time
10:8:Empty:Text
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:56:Boss Intro Trigger #1 Hit
$$CHILD_BLOCK_START
01:0:17
02:1
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:1
$$CHILD_BLOCK_START
08:aShowHUDMessage
$$CHILD_BLOCK_START
10:8:FuseRoom:Message
$$CHILD_BLOCK_END
08:aABStartWaitEffect
$$CHILD_BLOCK_START
10:1:0:37:Alien Boss
$$CHILD_BLOCK_END
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:64:Left Boss Area Trigger Hit
$$CHILD_BLOCK_START
01:0:18
02:1
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:1
$$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:55:Boss Intro Trigger #2 Hit
$$CHILD_BLOCK_START
01:0:19
02:1
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:1
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:28:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:54:Boss Intro Trigger #3 Hit
$$CHILD_BLOCK_START
01:0:20
02:1
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:1
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:28:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:52:Boss Intro Trigger #4 Hit
$$CHILD_BLOCK_START
01:0:21
02:1
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:1
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:28:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:57:Boss Intro Trigger #5 Hit
$$CHILD_BLOCK_START
01:0:22
02:1
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:1
$$CHILD_BLOCK_START
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:1.000000:Time
10:10:0:28:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:53:Boss Intro Cinematic
$$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:28:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aCinematicSimple
$$CHILD_BLOCK_START
10:16:6:CameraPath
10:8:BossIntro:Text
10:1:0:37:Target
10:6:13.000000:Seconds
10:5:1:FadeIn
$$CHILD_BLOCK_END
08:aSetLevelTimer
$$CHILD_BLOCK_START
10:6:9.000000:Time
10:10:0:29:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:51:Start Boss Wandering
$$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:29:TimerID
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
04:0:0:1
$$CHILD_BLOCK_START
08:aABItsShowtime
$$CHILD_BLOCK_START
10:1:0:37:Alien Boss
10:6:4.000000:Time
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:61:Data Arm #1 Bumped
$$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:1
$$CHILD_BLOCK_START
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:0:StartFrame
10:4:10:EndFrame
10:6:3.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:15:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aAddGameMessage
$$CHILD_BLOCK_START
10:8:DA1Game:GameMessage
10:8:DA1Hud:HUDMessage
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:62:Data Arm #2 Bumped
$$CHILD_BLOCK_START
01:1:13
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:1
$$CHILD_BLOCK_START
08:aObjPlayAnim
$$CHILD_BLOCK_START
10:1:2:-1:Object
10:4:0:StartFrame
10:4:10:EndFrame
10:6:3.000000:CycleTime
10:5:0:Looping
$$CHILD_BLOCK_END
08:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:15:Sound
10:1:2:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
08:aAddGameMessage
$$CHILD_BLOCK_START
10:8:DA2Game:GameMessage
10:8:DA2Hud:HUDMessage
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$SCRIPT_BLOCK_END
*********************************************************/