Descent3/scripts/BatteriesIncluded.cpp
Azamat H. Hackimov 9abe6aca42 Replace some of sprintf() with snprintf()
Replaced some of sprintf() (deprecated on macOS) with more secure snprintf().
2024-05-01 06:27:50 -04:00

3343 lines
102 KiB
C++

/*
* Descent 3
* Copyright (C) 2024 Parallax Software
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/////////////////////////////////////////////////////////////////////
// D.A.L.L.A.S. Generated Level Script - DLL Source File
//
// Filename: BatteriesIncluded.cpp
// Version: 3
/////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "osiris_import.h"
#include "osiris_common.h"
#include "DallasFuncs.cpp"
#include "module.h"
#ifdef __cplusplus
extern "C" {
#endif
char STDCALL InitializeDLL(tOSIRISModuleInit *func_list);
void STDCALL ShutdownDLL(void);
int STDCALL GetGOScriptID(const 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_TRIGGER_0000 0x001
#define ID_TRIGGER_0003 0x002
#define ID_TRIGGER_0001 0x003
#define ID_TRIGGER_0002 0x004
#define ID_TRIGGER_0005 0x005
#define ID_TRIGGER_001C 0x006
#define ID_TRIGGER_001B 0x007
#define ID_TRIGGER_001A 0x008
#define ID_TRIGGER_0019 0x009
#define ID_TRIGGER_0018 0x00a
#define ID_TRIGGER_0017 0x00b
#define ID_TRIGGER_0016 0x00c
#define ID_TRIGGER_0015 0x00d
#define ID_TRIGGER_0014 0x00e
#define ID_TRIGGER_0013 0x00f
#define ID_TRIGGER_0012 0x010
#define ID_TRIGGER_0011 0x011
#define ID_TRIGGER_0010 0x012
#define ID_TRIGGER_000E 0x013
#define ID_TRIGGER_000D 0x014
#define ID_TRIGGER_000C 0x015
#define ID_TRIGGER_0025 0x016
#define ID_TRIGGER_0024 0x017
#define ID_TRIGGER_0023 0x018
#define ID_TRIGGER_000B 0x019
#define ID_TRIGGER_000A 0x01a
#define ID_TRIGGER_0009 0x01b
#define ID_TRIGGER_0008 0x01c
#define ID_TRIGGER_0007 0x01d
#define ID_TRIGGER_0006 0x01e
#define ID_TRIGGER_0021 0x01f
#define ID_TRIGGER_0020 0x020
#define ID_TRIGGER_001E 0x021
#define ID_TRIGGER_001D 0x022
#define ID_TRIGGER_0022 0x023
#define ID_TRIGGER_001F 0x024
#define ID_TRIGGER_0004 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 TriggerScript_0000 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0003 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0001 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0002 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0005 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_001C : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_001B : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_001A : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0019 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0018 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0017 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0016 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0015 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0014 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0013 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0012 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0011 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0010 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000E : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000D : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000C : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0025 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0024 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0023 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000B : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_000A : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0009 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0008 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0007 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0006 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0021 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0020 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_001E : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_001D : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0022 : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_001F : public BaseScript {
public:
short CallEvent(int event, tOSIRISEventInfo *data);
};
class TriggerScript_0004 : 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_003 = 0;
int ScriptActionCtr_004 = 0;
int ScriptActionCtr_006 = 0;
int ScriptActionCtr_005 = 0;
int ScriptActionCtr_007 = 0;
int ScriptActionCtr_029 = 0;
int ScriptActionCtr_028 = 0;
int ScriptActionCtr_027 = 0;
int ScriptActionCtr_026 = 0;
int ScriptActionCtr_025 = 0;
int ScriptActionCtr_024 = 0;
int ScriptActionCtr_023 = 0;
int ScriptActionCtr_022 = 0;
int ScriptActionCtr_021 = 0;
int ScriptActionCtr_020 = 0;
int ScriptActionCtr_019 = 0;
int ScriptActionCtr_018 = 0;
int ScriptActionCtr_017 = 0;
int ScriptActionCtr_016 = 0;
int ScriptActionCtr_015 = 0;
int ScriptActionCtr_014 = 0;
int ScriptActionCtr_039 = 0;
int ScriptActionCtr_038 = 0;
int ScriptActionCtr_037 = 0;
int ScriptActionCtr_013 = 0;
int ScriptActionCtr_012 = 0;
int ScriptActionCtr_011 = 0;
int ScriptActionCtr_010 = 0;
int ScriptActionCtr_009 = 0;
int ScriptActionCtr_008 = 0;
int ScriptActionCtr_035 = 0;
int ScriptActionCtr_034 = 0;
int ScriptActionCtr_033 = 0;
int ScriptActionCtr_032 = 0;
int ScriptActionCtr_031 = 0;
int ScriptActionCtr_030 = 0;
int ScriptActionCtr_002 = 0;
int ScriptActionCtr_036 = 0;
// ========================================
// Function to Clear Global Action Counters
// ========================================
void ClearGlobalActionCtrs(void) {
ScriptActionCtr_000 = 0;
ScriptActionCtr_001 = 0;
ScriptActionCtr_003 = 0;
ScriptActionCtr_004 = 0;
ScriptActionCtr_006 = 0;
ScriptActionCtr_005 = 0;
ScriptActionCtr_007 = 0;
ScriptActionCtr_029 = 0;
ScriptActionCtr_028 = 0;
ScriptActionCtr_027 = 0;
ScriptActionCtr_026 = 0;
ScriptActionCtr_025 = 0;
ScriptActionCtr_024 = 0;
ScriptActionCtr_023 = 0;
ScriptActionCtr_022 = 0;
ScriptActionCtr_021 = 0;
ScriptActionCtr_020 = 0;
ScriptActionCtr_019 = 0;
ScriptActionCtr_018 = 0;
ScriptActionCtr_017 = 0;
ScriptActionCtr_016 = 0;
ScriptActionCtr_015 = 0;
ScriptActionCtr_014 = 0;
ScriptActionCtr_039 = 0;
ScriptActionCtr_038 = 0;
ScriptActionCtr_037 = 0;
ScriptActionCtr_013 = 0;
ScriptActionCtr_012 = 0;
ScriptActionCtr_011 = 0;
ScriptActionCtr_010 = 0;
ScriptActionCtr_009 = 0;
ScriptActionCtr_008 = 0;
ScriptActionCtr_035 = 0;
ScriptActionCtr_034 = 0;
ScriptActionCtr_033 = 0;
ScriptActionCtr_032 = 0;
ScriptActionCtr_031 = 0;
ScriptActionCtr_030 = 0;
ScriptActionCtr_002 = 0;
ScriptActionCtr_036 = 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_003, file_ptr);
File_WriteInt(ScriptActionCtr_004, file_ptr);
File_WriteInt(ScriptActionCtr_006, file_ptr);
File_WriteInt(ScriptActionCtr_005, file_ptr);
File_WriteInt(ScriptActionCtr_007, file_ptr);
File_WriteInt(ScriptActionCtr_029, file_ptr);
File_WriteInt(ScriptActionCtr_028, file_ptr);
File_WriteInt(ScriptActionCtr_027, file_ptr);
File_WriteInt(ScriptActionCtr_026, file_ptr);
File_WriteInt(ScriptActionCtr_025, file_ptr);
File_WriteInt(ScriptActionCtr_024, file_ptr);
File_WriteInt(ScriptActionCtr_023, file_ptr);
File_WriteInt(ScriptActionCtr_022, file_ptr);
File_WriteInt(ScriptActionCtr_021, file_ptr);
File_WriteInt(ScriptActionCtr_020, file_ptr);
File_WriteInt(ScriptActionCtr_019, file_ptr);
File_WriteInt(ScriptActionCtr_018, file_ptr);
File_WriteInt(ScriptActionCtr_017, file_ptr);
File_WriteInt(ScriptActionCtr_016, file_ptr);
File_WriteInt(ScriptActionCtr_015, file_ptr);
File_WriteInt(ScriptActionCtr_014, file_ptr);
File_WriteInt(ScriptActionCtr_039, file_ptr);
File_WriteInt(ScriptActionCtr_038, file_ptr);
File_WriteInt(ScriptActionCtr_037, file_ptr);
File_WriteInt(ScriptActionCtr_013, file_ptr);
File_WriteInt(ScriptActionCtr_012, file_ptr);
File_WriteInt(ScriptActionCtr_011, file_ptr);
File_WriteInt(ScriptActionCtr_010, file_ptr);
File_WriteInt(ScriptActionCtr_009, file_ptr);
File_WriteInt(ScriptActionCtr_008, file_ptr);
File_WriteInt(ScriptActionCtr_035, file_ptr);
File_WriteInt(ScriptActionCtr_034, file_ptr);
File_WriteInt(ScriptActionCtr_033, file_ptr);
File_WriteInt(ScriptActionCtr_032, file_ptr);
File_WriteInt(ScriptActionCtr_031, file_ptr);
File_WriteInt(ScriptActionCtr_030, file_ptr);
File_WriteInt(ScriptActionCtr_002, file_ptr);
File_WriteInt(ScriptActionCtr_036, 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_003 = File_ReadInt(file_ptr);
ScriptActionCtr_004 = File_ReadInt(file_ptr);
ScriptActionCtr_006 = File_ReadInt(file_ptr);
ScriptActionCtr_005 = File_ReadInt(file_ptr);
ScriptActionCtr_007 = File_ReadInt(file_ptr);
ScriptActionCtr_029 = File_ReadInt(file_ptr);
ScriptActionCtr_028 = File_ReadInt(file_ptr);
ScriptActionCtr_027 = File_ReadInt(file_ptr);
ScriptActionCtr_026 = File_ReadInt(file_ptr);
ScriptActionCtr_025 = File_ReadInt(file_ptr);
ScriptActionCtr_024 = File_ReadInt(file_ptr);
ScriptActionCtr_023 = File_ReadInt(file_ptr);
ScriptActionCtr_022 = File_ReadInt(file_ptr);
ScriptActionCtr_021 = File_ReadInt(file_ptr);
ScriptActionCtr_020 = File_ReadInt(file_ptr);
ScriptActionCtr_019 = File_ReadInt(file_ptr);
ScriptActionCtr_018 = File_ReadInt(file_ptr);
ScriptActionCtr_017 = File_ReadInt(file_ptr);
ScriptActionCtr_016 = File_ReadInt(file_ptr);
ScriptActionCtr_015 = File_ReadInt(file_ptr);
ScriptActionCtr_014 = File_ReadInt(file_ptr);
ScriptActionCtr_039 = File_ReadInt(file_ptr);
ScriptActionCtr_038 = File_ReadInt(file_ptr);
ScriptActionCtr_037 = File_ReadInt(file_ptr);
ScriptActionCtr_013 = File_ReadInt(file_ptr);
ScriptActionCtr_012 = File_ReadInt(file_ptr);
ScriptActionCtr_011 = File_ReadInt(file_ptr);
ScriptActionCtr_010 = File_ReadInt(file_ptr);
ScriptActionCtr_009 = File_ReadInt(file_ptr);
ScriptActionCtr_008 = File_ReadInt(file_ptr);
ScriptActionCtr_035 = File_ReadInt(file_ptr);
ScriptActionCtr_034 = File_ReadInt(file_ptr);
ScriptActionCtr_033 = File_ReadInt(file_ptr);
ScriptActionCtr_032 = File_ReadInt(file_ptr);
ScriptActionCtr_031 = File_ReadInt(file_ptr);
ScriptActionCtr_030 = File_ReadInt(file_ptr);
ScriptActionCtr_002 = File_ReadInt(file_ptr);
ScriptActionCtr_036 = File_ReadInt(file_ptr);
}
// ===============================================================
// Start of Custom Script Block - DO NOT EDIT ANYTHING BEFORE THIS
// ===============================================================
/**{CUSTOM_SCRIPT_BLOCK_START}** DO NOT EDIT! **/
// Enter your custom script code here
/**{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(const char *filename) {
void *infile;
char filebuffer[MAX_MSG_FILEBUF_LEN + 1];
char *line, *msg_start;
int line_num;
bool next_msgid_found;
// Try to open the file for loading
infile = File_Open(filename, "rt");
if (!infile)
return false;
line_num = 0;
next_msgid_found = true;
// Clear the message list
ClearMessageList();
// Read in and parse each line of the file
while (!File_eof(infile)) {
// Clear the buffer
strcpy(filebuffer, "");
// Read in a line from the file
File_ReadString(filebuffer, MAX_MSG_FILEBUF_LEN, infile);
line_num++;
// Remove whitespace padding at start and end of line
RemoveTrailingWhitespace(filebuffer);
line = SkipInitialWhitespace(filebuffer);
// If line is a comment, or empty, discard it
if (strlen(line) == 0 || strncmp(line, "//", 2) == 0)
continue;
if (!next_msgid_found) { // Parse out the last message ID number
// Grab the first keyword, make sure it's valid
line = strtok(line, WHITESPACE_CHARS);
if (line == NULL)
continue;
// Grab the second keyword, and assign it as the next message ID
line = strtok(NULL, WHITESPACE_CHARS);
if (line == NULL)
continue;
next_msgid_found = true;
} else { // Parse line as a message line
// Find the start of message, and mark it
msg_start = strchr(line, '=');
if (msg_start == NULL)
continue;
msg_start[0] = '\0';
msg_start++;
// Add the message to the list
AddMessageToList(line, msg_start);
}
}
File_Close(infile);
return true;
}
// Find a message
const char *GetMessage(const char *name) {
// Make sure given name is valid
if (name == NULL)
return INV_MSGNAME_STRING;
// Search message list for name
for (int j = 0; j < num_messages; j++)
if (strcmp(message_list[j]->name, name) == 0)
return (message_list[j]->message);
// Couldn't find it
return NO_MESSAGE_STRING;
}
//======================
// Name List Arrays
//======================
#define NUM_DOOR_NAMES 0
const char **Door_names = NULL;
int *Door_handles = NULL;
#define NUM_OBJECT_NAMES 1
const char *Object_names[NUM_OBJECT_NAMES] = {"BurningCoffee"};
int Object_handles[NUM_OBJECT_NAMES];
#define NUM_ROOM_NAMES 6
const char *Room_names[NUM_ROOM_NAMES] = {"MensIntake", "LessIntake", "LessConnect",
"SewerEnergy", "MainJunction", "LadiesIntake"};
int Room_indexes[NUM_ROOM_NAMES];
#define NUM_TRIGGER_NAMES 37
const char *Trigger_names[NUM_TRIGGER_NAMES] = {
"Chris'Office", "Kevin'sOffice", "JeffNate'sOffice2", "JeffNate'sOffice", "Matt'sOffice",
"Jay'sOffice4", "Jay'sOffice3", "Jay'sOffice2", "Jay'sOffice", "Jerry'sOffice2",
"Jerry'sOffice", "Long'sOffice", "Andy'sTestLab4", "Andy'sTestLab3", "Andy'sTestLab2",
"Andy'sTestLab", "Claflin'sOffice2", "Claflin'sOffice", "Mea'sOffice", "LukeJosh'sOffice3",
"LukeJosh'sOffice2", "InterplayLab3", "InterplayLab2", "InterplayLab", "LukeJosh'sOffice",
"Hayes'Office", "Sean'sOffice", "Doug'sOffice2", "Doug'sOffice", "Samir'sOffice",
"LadiesToilet4", "LadiesToilet3", "LadiesToilet2", "LadiesToilet", "MensToilet2",
"MensToilet", "Mark'sOffice"};
int Trigger_indexes[NUM_TRIGGER_NAMES];
int Trigger_faces[NUM_TRIGGER_NAMES];
int Trigger_rooms[NUM_TRIGGER_NAMES];
#define NUM_SOUND_NAMES 2
const char *Sound_names[NUM_SOUND_NAMES] = {"HudMessage", "WeaponHitWater"};
int Sound_indexes[NUM_SOUND_NAMES];
#define NUM_TEXTURE_NAMES 0
const char **Texture_names = NULL;
int *Texture_indexes = NULL;
#define NUM_PATH_NAMES 0
const char **Path_names = NULL;
int *Path_indexes = NULL;
#define NUM_MATCEN_NAMES 0
const char **Matcen_names = NULL;
int *Matcen_indexes = NULL;
#define NUM_GOAL_NAMES 0
const char **Goal_names = NULL;
int *Goal_indexes = NULL;
#define NUM_MESSAGE_NAMES 17
const char *Message_names[NUM_MESSAGE_NAMES] = {"Chris", "Kevin", "JeffNate", "Matt", "Jay", "Jerry",
"Long", "Andy", "Claflin", "Mea", "LukeJosh", "Interplay",
"Hayes", "Sean", "Doug", "Samir", "Mark"};
const char *Message_strings[NUM_MESSAGE_NAMES];
// ===============
// InitializeDLL()
// ===============
char STDCALL InitializeDLL(tOSIRISModuleInit *func_list) {
osicommon_Initialize((tOSIRISModuleInit *)func_list);
if (func_list->game_checksum != CHECKSUM) {
mprintf(0, "Game-Checksum FAIL!!! (%ul!=%ul)\n", func_list->game_checksum, CHECKSUM);
mprintf(0, "RECOMPILE YOUR SCRIPTS!!!\n");
return 0;
}
ClearGlobalActionCtrs();
dfInit();
InitMessageList();
// Build the filename of the message file
char filename[_MAX_PATH + 32];
char english_filename[(_MAX_PATH + 32) * 2];
int lang_type;
if (func_list->script_identifier != NULL) {
_splitpath(func_list->script_identifier, NULL, NULL, filename, NULL);
snprintf(english_filename, sizeof(english_filename), "%s.msg", filename);
lang_type = Game_GetLanguage();
if (lang_type == LANGUAGE_FRENCH)
strcat(filename, "_FRN");
else if (lang_type == LANGUAGE_GERMAN)
strcat(filename, "_GER");
else if (lang_type == LANGUAGE_ITALIAN)
strcat(filename, "_ITN");
else if (lang_type == LANGUAGE_SPANISH)
strcat(filename, "_SPN");
else if (lang_type == LANGUAGE_POLISH)
strcat(filename, "_POL");
strcat(filename, ".msg");
} else {
strcpy(filename, "BatteriesIncluded.msg");
lang_type = LANGUAGE_ENGLISH;
}
if (!ReadMessageFile(filename)) {
if (lang_type == LANGUAGE_ENGLISH) {
mprintf(0, "ERROR: Could not load message file - %s\n", filename);
} else if (!ReadMessageFile(english_filename)) {
mprintf(0, "ERROR: Could not load message file - %s\n", english_filename);
}
}
int j;
// Do Door Index lookups
for (j = 0; j < NUM_DOOR_NAMES; j++)
Door_handles[j] = Scrpt_FindDoorName(Door_names[j]);
// Do Object Index lookups
for (j = 0; j < NUM_OBJECT_NAMES; j++)
Object_handles[j] = Scrpt_FindObjectName(Object_names[j]);
// Do Room Index lookups
for (j = 0; j < NUM_ROOM_NAMES; j++)
Room_indexes[j] = Scrpt_FindRoomName(Room_names[j]);
// Do Trigger Index lookups
for (j = 0; j < NUM_TRIGGER_NAMES; j++) {
Trigger_indexes[j] = Scrpt_FindTriggerName(Trigger_names[j]);
Trigger_faces[j] = Scrpt_GetTriggerFace(Trigger_indexes[j]);
Trigger_rooms[j] = Scrpt_GetTriggerRoom(Trigger_indexes[j]);
}
// Do Sound Index lookups
for (j = 0; j < NUM_SOUND_NAMES; j++)
Sound_indexes[j] = Scrpt_FindSoundName(Sound_names[j]);
// Do Texture Index lookups
for (j = 0; j < NUM_TEXTURE_NAMES; j++)
Texture_indexes[j] = Scrpt_FindTextureName(Texture_names[j]);
// Do Path Index lookups
for (j = 0; j < NUM_PATH_NAMES; j++)
Path_indexes[j] = Scrpt_FindPathName(Path_names[j]);
// Do Matcen Index lookups
for (j = 0; j < NUM_MATCEN_NAMES; j++)
Matcen_indexes[j] = Scrpt_FindMatcenName(Matcen_names[j]);
// Do Goal Index lookups
for (j = 0; j < NUM_GOAL_NAMES; j++)
Goal_indexes[j] = Scrpt_FindLevelGoalName(Goal_names[j]);
// Do Message Name lookups
for (j = 0; j < NUM_MESSAGE_NAMES; j++)
Message_strings[j] = GetMessage(Message_names[j]);
return 1;
}
// =============
// ShutdownDLL()
// =============
void STDCALL ShutdownDLL(void) { ClearMessageList(); }
// ===============
// GetGOScriptID()
// ===============
int STDCALL GetGOScriptID(const char *name, ubyte isdoor) { return -1; }
// ================
// CreateInstance()
// ================
void STDCALLPTR CreateInstance(int id) {
switch (id) {
case ID_LEVEL_0000:
return new LevelScript_0000;
break;
case ID_TRIGGER_0000:
return new TriggerScript_0000;
break;
case ID_TRIGGER_0003:
return new TriggerScript_0003;
break;
case ID_TRIGGER_0001:
return new TriggerScript_0001;
break;
case ID_TRIGGER_0002:
return new TriggerScript_0002;
break;
case ID_TRIGGER_0005:
return new TriggerScript_0005;
break;
case ID_TRIGGER_001C:
return new TriggerScript_001C;
break;
case ID_TRIGGER_001B:
return new TriggerScript_001B;
break;
case ID_TRIGGER_001A:
return new TriggerScript_001A;
break;
case ID_TRIGGER_0019:
return new TriggerScript_0019;
break;
case ID_TRIGGER_0018:
return new TriggerScript_0018;
break;
case ID_TRIGGER_0017:
return new TriggerScript_0017;
break;
case ID_TRIGGER_0016:
return new TriggerScript_0016;
break;
case ID_TRIGGER_0015:
return new TriggerScript_0015;
break;
case ID_TRIGGER_0014:
return new TriggerScript_0014;
break;
case ID_TRIGGER_0013:
return new TriggerScript_0013;
break;
case ID_TRIGGER_0012:
return new TriggerScript_0012;
break;
case ID_TRIGGER_0011:
return new TriggerScript_0011;
break;
case ID_TRIGGER_0010:
return new TriggerScript_0010;
break;
case ID_TRIGGER_000E:
return new TriggerScript_000E;
break;
case ID_TRIGGER_000D:
return new TriggerScript_000D;
break;
case ID_TRIGGER_000C:
return new TriggerScript_000C;
break;
case ID_TRIGGER_0025:
return new TriggerScript_0025;
break;
case ID_TRIGGER_0024:
return new TriggerScript_0024;
break;
case ID_TRIGGER_0023:
return new TriggerScript_0023;
break;
case ID_TRIGGER_000B:
return new TriggerScript_000B;
break;
case ID_TRIGGER_000A:
return new TriggerScript_000A;
break;
case ID_TRIGGER_0009:
return new TriggerScript_0009;
break;
case ID_TRIGGER_0008:
return new TriggerScript_0008;
break;
case ID_TRIGGER_0007:
return new TriggerScript_0007;
break;
case ID_TRIGGER_0006:
return new TriggerScript_0006;
break;
case ID_TRIGGER_0021:
return new TriggerScript_0021;
break;
case ID_TRIGGER_0020:
return new TriggerScript_0020;
break;
case ID_TRIGGER_001E:
return new TriggerScript_001E;
break;
case ID_TRIGGER_001D:
return new TriggerScript_001D;
break;
case ID_TRIGGER_0022:
return new TriggerScript_0022;
break;
case ID_TRIGGER_001F:
return new TriggerScript_001F;
break;
case ID_TRIGGER_0004:
return new TriggerScript_0004;
break;
default:
mprintf(0, "SCRIPT: Illegal ID (%d)\n", id);
break;
}
return NULL;
}
// =================
// DestroyInstance()
// =================
void STDCALL DestroyInstance(int id, void *ptr) {
switch (id) {
case ID_LEVEL_0000:
delete ((LevelScript_0000 *)ptr);
break;
case ID_TRIGGER_0000:
delete ((TriggerScript_0000 *)ptr);
break;
case ID_TRIGGER_0003:
delete ((TriggerScript_0003 *)ptr);
break;
case ID_TRIGGER_0001:
delete ((TriggerScript_0001 *)ptr);
break;
case ID_TRIGGER_0002:
delete ((TriggerScript_0002 *)ptr);
break;
case ID_TRIGGER_0005:
delete ((TriggerScript_0005 *)ptr);
break;
case ID_TRIGGER_001C:
delete ((TriggerScript_001C *)ptr);
break;
case ID_TRIGGER_001B:
delete ((TriggerScript_001B *)ptr);
break;
case ID_TRIGGER_001A:
delete ((TriggerScript_001A *)ptr);
break;
case ID_TRIGGER_0019:
delete ((TriggerScript_0019 *)ptr);
break;
case ID_TRIGGER_0018:
delete ((TriggerScript_0018 *)ptr);
break;
case ID_TRIGGER_0017:
delete ((TriggerScript_0017 *)ptr);
break;
case ID_TRIGGER_0016:
delete ((TriggerScript_0016 *)ptr);
break;
case ID_TRIGGER_0015:
delete ((TriggerScript_0015 *)ptr);
break;
case ID_TRIGGER_0014:
delete ((TriggerScript_0014 *)ptr);
break;
case ID_TRIGGER_0013:
delete ((TriggerScript_0013 *)ptr);
break;
case ID_TRIGGER_0012:
delete ((TriggerScript_0012 *)ptr);
break;
case ID_TRIGGER_0011:
delete ((TriggerScript_0011 *)ptr);
break;
case ID_TRIGGER_0010:
delete ((TriggerScript_0010 *)ptr);
break;
case ID_TRIGGER_000E:
delete ((TriggerScript_000E *)ptr);
break;
case ID_TRIGGER_000D:
delete ((TriggerScript_000D *)ptr);
break;
case ID_TRIGGER_000C:
delete ((TriggerScript_000C *)ptr);
break;
case ID_TRIGGER_0025:
delete ((TriggerScript_0025 *)ptr);
break;
case ID_TRIGGER_0024:
delete ((TriggerScript_0024 *)ptr);
break;
case ID_TRIGGER_0023:
delete ((TriggerScript_0023 *)ptr);
break;
case ID_TRIGGER_000B:
delete ((TriggerScript_000B *)ptr);
break;
case ID_TRIGGER_000A:
delete ((TriggerScript_000A *)ptr);
break;
case ID_TRIGGER_0009:
delete ((TriggerScript_0009 *)ptr);
break;
case ID_TRIGGER_0008:
delete ((TriggerScript_0008 *)ptr);
break;
case ID_TRIGGER_0007:
delete ((TriggerScript_0007 *)ptr);
break;
case ID_TRIGGER_0006:
delete ((TriggerScript_0006 *)ptr);
break;
case ID_TRIGGER_0021:
delete ((TriggerScript_0021 *)ptr);
break;
case ID_TRIGGER_0020:
delete ((TriggerScript_0020 *)ptr);
break;
case ID_TRIGGER_001E:
delete ((TriggerScript_001E *)ptr);
break;
case ID_TRIGGER_001D:
delete ((TriggerScript_001D *)ptr);
break;
case ID_TRIGGER_0022:
delete ((TriggerScript_0022 *)ptr);
break;
case ID_TRIGGER_001F:
delete ((TriggerScript_001F *)ptr);
break;
case ID_TRIGGER_0004:
delete ((TriggerScript_0004 *)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_TRIGGER_0000:
case ID_TRIGGER_0003:
case ID_TRIGGER_0001:
case ID_TRIGGER_0002:
case ID_TRIGGER_0005:
case ID_TRIGGER_001C:
case ID_TRIGGER_001B:
case ID_TRIGGER_001A:
case ID_TRIGGER_0019:
case ID_TRIGGER_0018:
case ID_TRIGGER_0017:
case ID_TRIGGER_0016:
case ID_TRIGGER_0015:
case ID_TRIGGER_0014:
case ID_TRIGGER_0013:
case ID_TRIGGER_0012:
case ID_TRIGGER_0011:
case ID_TRIGGER_0010:
case ID_TRIGGER_000E:
case ID_TRIGGER_000D:
case ID_TRIGGER_000C:
case ID_TRIGGER_0025:
case ID_TRIGGER_0024:
case ID_TRIGGER_0023:
case ID_TRIGGER_000B:
case ID_TRIGGER_000A:
case ID_TRIGGER_0009:
case ID_TRIGGER_0008:
case ID_TRIGGER_0007:
case ID_TRIGGER_0006:
case ID_TRIGGER_0021:
case ID_TRIGGER_0020:
case ID_TRIGGER_001E:
case ID_TRIGGER_001D:
case ID_TRIGGER_0022:
case ID_TRIGGER_001F:
case ID_TRIGGER_0004:
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_0000;
if (trigger_room == Trigger_rooms[1] && trigger_face == Trigger_faces[1])
return ID_TRIGGER_0003;
if (trigger_room == Trigger_rooms[2] && trigger_face == Trigger_faces[2])
return ID_TRIGGER_0001;
if (trigger_room == Trigger_rooms[3] && trigger_face == Trigger_faces[3])
return ID_TRIGGER_0002;
if (trigger_room == Trigger_rooms[4] && trigger_face == Trigger_faces[4])
return ID_TRIGGER_0005;
if (trigger_room == Trigger_rooms[5] && trigger_face == Trigger_faces[5])
return ID_TRIGGER_001C;
if (trigger_room == Trigger_rooms[6] && trigger_face == Trigger_faces[6])
return ID_TRIGGER_001B;
if (trigger_room == Trigger_rooms[7] && trigger_face == Trigger_faces[7])
return ID_TRIGGER_001A;
if (trigger_room == Trigger_rooms[8] && trigger_face == Trigger_faces[8])
return ID_TRIGGER_0019;
if (trigger_room == Trigger_rooms[9] && trigger_face == Trigger_faces[9])
return ID_TRIGGER_0018;
if (trigger_room == Trigger_rooms[10] && trigger_face == Trigger_faces[10])
return ID_TRIGGER_0017;
if (trigger_room == Trigger_rooms[11] && trigger_face == Trigger_faces[11])
return ID_TRIGGER_0016;
if (trigger_room == Trigger_rooms[12] && trigger_face == Trigger_faces[12])
return ID_TRIGGER_0015;
if (trigger_room == Trigger_rooms[13] && trigger_face == Trigger_faces[13])
return ID_TRIGGER_0014;
if (trigger_room == Trigger_rooms[14] && trigger_face == Trigger_faces[14])
return ID_TRIGGER_0013;
if (trigger_room == Trigger_rooms[15] && trigger_face == Trigger_faces[15])
return ID_TRIGGER_0012;
if (trigger_room == Trigger_rooms[16] && trigger_face == Trigger_faces[16])
return ID_TRIGGER_0011;
if (trigger_room == Trigger_rooms[17] && trigger_face == Trigger_faces[17])
return ID_TRIGGER_0010;
if (trigger_room == Trigger_rooms[18] && trigger_face == Trigger_faces[18])
return ID_TRIGGER_000E;
if (trigger_room == Trigger_rooms[19] && trigger_face == Trigger_faces[19])
return ID_TRIGGER_000D;
if (trigger_room == Trigger_rooms[20] && trigger_face == Trigger_faces[20])
return ID_TRIGGER_000C;
if (trigger_room == Trigger_rooms[21] && trigger_face == Trigger_faces[21])
return ID_TRIGGER_0025;
if (trigger_room == Trigger_rooms[22] && trigger_face == Trigger_faces[22])
return ID_TRIGGER_0024;
if (trigger_room == Trigger_rooms[23] && trigger_face == Trigger_faces[23])
return ID_TRIGGER_0023;
if (trigger_room == Trigger_rooms[24] && trigger_face == Trigger_faces[24])
return ID_TRIGGER_000B;
if (trigger_room == Trigger_rooms[25] && trigger_face == Trigger_faces[25])
return ID_TRIGGER_000A;
if (trigger_room == Trigger_rooms[26] && trigger_face == Trigger_faces[26])
return ID_TRIGGER_0009;
if (trigger_room == Trigger_rooms[27] && trigger_face == Trigger_faces[27])
return ID_TRIGGER_0008;
if (trigger_room == Trigger_rooms[28] && trigger_face == Trigger_faces[28])
return ID_TRIGGER_0007;
if (trigger_room == Trigger_rooms[29] && trigger_face == Trigger_faces[29])
return ID_TRIGGER_0006;
if (trigger_room == Trigger_rooms[30] && trigger_face == Trigger_faces[30])
return ID_TRIGGER_0021;
if (trigger_room == Trigger_rooms[31] && trigger_face == Trigger_faces[31])
return ID_TRIGGER_0020;
if (trigger_room == Trigger_rooms[32] && trigger_face == Trigger_faces[32])
return ID_TRIGGER_001E;
if (trigger_room == Trigger_rooms[33] && trigger_face == Trigger_faces[33])
return ID_TRIGGER_001D;
if (trigger_room == Trigger_rooms[34] && trigger_face == Trigger_faces[34])
return ID_TRIGGER_0022;
if (trigger_room == Trigger_rooms[35] && trigger_face == Trigger_faces[35])
return ID_TRIGGER_001F;
if (trigger_room == Trigger_rooms[36] && trigger_face == Trigger_faces[36])
return ID_TRIGGER_0004;
return -1;
}
// =================
// GetCOScriptList()
// =================
int STDCALL GetCOScriptList(int **list, int **id_list) {
static int *cust_handle_list = NULL;
static int *cust_id_list = NULL;
*list = cust_handle_list;
*id_list = cust_id_list;
return 0;
}
//=======================
// 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_LEVELSTART: {
tOSIRISEVTLEVELSTART *event_data = &data->evt_levelstart;
ClearGlobalActionCtrs();
dfInit();
// Script 000: Toilet Water Bouyancy
if (1) {
aRoomSetWind(Room_indexes[0], 0.000000f, 1.000000f, 0.000000f, 1.000000f);
aRoomSetWind(Room_indexes[1], 0.000000f, 1.000000f, 0.000000f, 1.000000f);
aRoomSetWind(Room_indexes[2], 0.000000f, 1.000000f, 0.000000f, 1.000000f);
aRoomSetWind(Room_indexes[3], 0.000000f, 1.000000f, 0.000000f, 1.000000f);
aRoomSetWind(Room_indexes[4], 0.000000f, 1.000000f, 0.000000f, 1.000000f);
aRoomSetWind(Room_indexes[5], 0.000000f, 1.000000f, 0.000000f, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_000 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_000++;
}
// Script 001: Burning Coffee
if (1) {
aTurnOnSpew(Object_handles[0], -1, 8, 0.000000f, 0.000000f, 65536, 0, 1.500000f, 0.150000f, -1.000000f, 4.000000f,
20.000000f, 1, -1);
// Increment the script action counter
if (ScriptActionCtr_001 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_001++;
}
// Script 036: Weather
if (1) {
aLightningTurnOn(3.000000f, 0.500000f);
// Increment the script action counter
if (ScriptActionCtr_036 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_036++;
}
} 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 003: Chris'Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[0], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_003 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_003++;
}
} 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 004: Kevin's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[1], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_004 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_004++;
}
} 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 006: Jeff & Nate's Office 2
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[2], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_006 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_006++;
}
} 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 005: Jeff & Nate's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[2], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_005 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_005++;
}
} 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 007: Matt's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[3], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_007 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_007++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_001C::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 029: Jay's Office 4
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[4], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_029 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_029++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_001B::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 028: Jay's Office 3
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[4], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_028 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_028++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_001A::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 027: Jay's Office 2
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[4], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_027 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_027++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0019::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 026: Jay's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[4], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_026 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_026++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0018::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 025: Jerry's Office 2
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[5], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_025 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_025++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0017::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 024: Jerry's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[5], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_024 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_024++;
}
} 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 023: Long's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[6], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_023 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_023++;
}
} 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 022: Andy's Lab 4
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[7], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_022 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_022++;
}
} 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 021: Andy's Lab 3
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[7], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_021 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_021++;
}
} 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 020: Andy's Lab 2
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[7], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_020 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_020++;
}
} 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 019: Andy's Lab
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[7], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_019 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_019++;
}
} 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 018: Claflin's Office 2
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[8], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_018 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_018++;
}
} 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 017: Claflin's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[8], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_017 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_017++;
}
} 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 016: Mea's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[9], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_016 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_016++;
}
} 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 015: Luke & Josh's Office 3
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[10], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_015 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_015++;
}
} 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 014: Luke & Josh's Office 2
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[10], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], 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 TriggerScript_0025::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 039: Interplay Lab 3
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[11], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_039 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_039++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0024::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 038: Interplay Lab 2
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[11], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_038 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_038++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0023::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 037: Interplay Lab
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[11], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_037 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_037++;
}
} 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 013: Luke & Josh's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[10], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_013 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_013++;
}
} 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 012: Hayes' Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[12], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_012 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_012++;
}
} 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 011: Sean's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[13], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_011 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_011++;
}
} 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 010: Doug's Office 2
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[14], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_010 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_010++;
}
} 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 009: Doug's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[14], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_009 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_009++;
}
} 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 008: Samir's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[15], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_008 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_008++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0021::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 035: Ladies' Room Toilet 4
if (qObjIsPlayer(event_data->it_handle) == true) {
aSoundPlayObject(Sound_indexes[1], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_035 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_035++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0020::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 034: Ladies' Room Toilet 3
if (qObjIsPlayer(event_data->it_handle) == true) {
aSoundPlayObject(Sound_indexes[1], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_034 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_034++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_001E::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 033: Ladies' Room Toilet 2
if (qObjIsPlayer(event_data->it_handle) == true) {
aSoundPlayObject(Sound_indexes[1], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_033 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_033++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_001D::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 032: Ladies' Room Toilet
if (qObjIsPlayer(event_data->it_handle) == true) {
aSoundPlayObject(Sound_indexes[1], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_032 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_032++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_0022::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 031: Men's Room Toilet 2
if (qObjIsPlayer(event_data->it_handle) == true) {
aSoundPlayObject(Sound_indexes[1], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_031 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_031++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
short TriggerScript_001F::CallEvent(int event, tOSIRISEventInfo *data) {
switch (event) {
case EVT_COLLIDE: {
tOSIRISEVTCOLLIDE *event_data = &data->evt_collide;
// Script 030: Men's Room Toilet
if (qObjIsPlayer(event_data->it_handle) == true) {
aSoundPlayObject(Sound_indexes[1], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_030 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_030++;
}
} 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 002: Mark's Office
if (qObjIsPlayer(event_data->it_handle) == true) {
aShowHUDMessageObj(Message_strings[16], event_data->it_handle);
aSoundPlay2DObj(Sound_indexes[0], event_data->it_handle, 1.000000f);
// Increment the script action counter
if (ScriptActionCtr_002 < MAX_ACTION_CTR_VALUE)
ScriptActionCtr_002++;
}
} break;
}
return CONTINUE_CHAIN | CONTINUE_DEFAULT;
}
/*********************************************************
Script Save Block: DO NOT TOUCH ANYTHING IN THIS BLOCK!!!
**********************************************************
$$SCRIPT_BLOCK_START
VERSION 3
NEXT_ID 40
// UserType value blocks
$$UTYPE_VALS_START UserVar
$$UTYPE_VALS_END
$$UTYPE_VALS_START UserFlag
$$UTYPE_VALS_END
$$UTYPE_VALS_START SpewHandle
$$UTYPE_VALS_END
$$UTYPE_VALS_START TimerID
$$UTYPE_VALS_END
$$UTYPE_VALS_START SavedObjectSlot
$$UTYPE_VALS_END
$$UTYPE_VALS_START GoalID
$$UTYPE_VALS_END
// Name Lists
$$DOOR_LIST_START
$$DOOR_LIST_END
$$OBJECT_LIST_START
BurningCoffee
$$OBJECT_LIST_END
$$ROOM_LIST_START
MensIntake
LessIntake
LessConnect
SewerEnergy
MainJunction
LadiesIntake
$$ROOM_LIST_END
$$TRIGGER_LIST_START
Chris'Office
Kevin'sOffice
JeffNate'sOffice2
JeffNate'sOffice
Matt'sOffice
Jay'sOffice4
Jay'sOffice3
Jay'sOffice2
Jay'sOffice
Jerry'sOffice2
Jerry'sOffice
Long'sOffice
Andy'sTestLab4
Andy'sTestLab3
Andy'sTestLab2
Andy'sTestLab
Claflin'sOffice2
Claflin'sOffice
Mea'sOffice
LukeJosh'sOffice3
LukeJosh'sOffice2
InterplayLab3
InterplayLab2
InterplayLab
LukeJosh'sOffice
Hayes'Office
Sean'sOffice
Doug'sOffice2
Doug'sOffice
Samir'sOffice
LadiesToilet4
LadiesToilet3
LadiesToilet2
LadiesToilet
MensToilet2
MensToilet
Mark'sOffice
$$TRIGGER_LIST_END
$$SOUND_LIST_START
HudMessage
WeaponHitWater
$$SOUND_LIST_END
$$TEXTURE_LIST_START
$$TEXTURE_LIST_END
$$SPECNAME_LIST_START
$$SPECNAME_LIST_END
$$PATH_LIST_START
$$PATH_LIST_END
$$MATCEN_LIST_START
$$MATCEN_LIST_END
$$GOAL_LIST_START
$$GOAL_LIST_END
$$STRM_AUDIO_LIST_START
$$STRM_AUDIO_LIST_END
// Script Tree Dump
00:0:Toilet Water Bouyancy
$$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.000000:X
10:6:1.000000:Y
10:6:0.000000:Z
10:6:1.000000:Speed
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:1:Room
10:6:0.000000:X
10:6:1.000000:Y
10:6:0.000000:Z
10:6:1.000000:Speed
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:2:Room
10:6:0.000000:X
10:6:1.000000:Y
10:6:0.000000:Z
10:6:1.000000:Speed
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:3:Room
10:6:0.000000:X
10:6:1.000000:Y
10:6:0.000000:Z
10:6:1.000000:Speed
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:4:Room
10:6:0.000000:X
10:6:1.000000:Y
10:6:0.000000:Z
10:6:1.000000:Speed
$$CHILD_BLOCK_END
08:aRoomSetWind
$$CHILD_BLOCK_START
10:2:5:Room
10:6:0.000000:X
10:6:1.000000:Y
10:6:0.000000:Z
10:6:1.000000:Speed
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:1:Burning Coffee
$$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:aTurnOnSpew
$$CHILD_BLOCK_START
10:1:0:0: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.500000:BlobLifetime
10:6:0.150000:BlobInterval
10:6:-1.000000:SpewLife
10:6:4.000000:BlobSize
10:6:20.000000:BlobSpeed
10:5:1:Randomize
10:10:0:-1:SpewHandle
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:3:Chris'Office
$$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:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Chris:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:4:Kevin's Office
$$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:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Kevin:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:6:Jeff & Nate's Office 2
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:JeffNate:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:5:Jeff & Nate's Office
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:JeffNate:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:7:Matt's Office
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Matt:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:29:Jay's Office 4
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Jay:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:28:Jay's Office 3
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Jay:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:27:Jay's Office 2
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Jay:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:26:Jay's Office
$$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
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Jay:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:25:Jerry's Office 2
$$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:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Jerry:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:24:Jerry's Office
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Jerry:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:23:Long's Office
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Long:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:22:Andy's Lab 4
$$CHILD_BLOCK_START
01:0:12
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:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Andy:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:21:Andy's Lab 3
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Andy:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:20:Andy's Lab 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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Andy:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:19:Andy's Lab
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Andy:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:18:Claflin's Office 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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Claflin:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:17:Claflin's Office
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Claflin:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:16:Mea's Office
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Mea:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:15:Luke & Josh's Office 3
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:LukeJosh:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:14:Luke & Josh's Office 2
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:LukeJosh:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:39:Interplay Lab 3
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Interplay:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:38:Interplay Lab 2
$$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:0
$$CHILD_BLOCK_START
08:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Interplay:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:37:Interplay Lab
$$CHILD_BLOCK_START
01:0:23
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:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Interplay:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:13:Luke & Josh's Office
$$CHILD_BLOCK_START
01:0:24
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:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:LukeJosh:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:12:Hayes' Office
$$CHILD_BLOCK_START
01:0:25
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:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Hayes:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:11:Sean's Office
$$CHILD_BLOCK_START
01:0:26
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:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Sean:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:10:Doug's Office 2
$$CHILD_BLOCK_START
01:0:27
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:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Doug:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:9:Doug's Office
$$CHILD_BLOCK_START
01:0:28
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:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Doug:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:8:Samir's Office
$$CHILD_BLOCK_START
01:0:29
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:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Samir:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:35:Ladies' Room Toilet 4
$$CHILD_BLOCK_START
01:0:30
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:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:34:Ladies' Room Toilet 3
$$CHILD_BLOCK_START
01:0:31
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:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:33:Ladies' Room Toilet 2
$$CHILD_BLOCK_START
01:0:32
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:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:32:Ladies' Room Toilet
$$CHILD_BLOCK_START
01:0:33
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:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:31:Men's Room Toilet 2
$$CHILD_BLOCK_START
01:0:34
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:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:30:Men's Room Toilet
$$CHILD_BLOCK_START
01:0:35
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:aSoundPlayObject
$$CHILD_BLOCK_START
10:12:1:Sound
10:1:1:-1:Object
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:2:Mark's Office
$$CHILD_BLOCK_START
01:0:36
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:aShowHUDMessageObj
$$CHILD_BLOCK_START
10:8:Mark:Message
10:1:1:-1:PlayerObject
$$CHILD_BLOCK_END
08:aSoundPlay2DObj
$$CHILD_BLOCK_START
10:12:0:Sound
10:1:1:-1:PlayerObject
10:9:1.000000:Volume
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
00:36:Weather
$$CHILD_BLOCK_START
01:2:0
02:6
03:0
$$CHILD_BLOCK_START
05:0
$$CHILD_BLOCK_END
04:0:0:0
$$CHILD_BLOCK_START
08:aLightningTurnOn
$$CHILD_BLOCK_START
10:6:3.000000:Seconds
10:9:0.500000:Probability
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$CHILD_BLOCK_END
$$SCRIPT_BLOCK_END
*********************************************************/