diff options
| author | Johannes Schickel | 2011-11-20 04:34:22 +0100 | 
|---|---|---|
| committer | Johannes Schickel | 2011-11-20 04:34:22 +0100 | 
| commit | 8f58ddefc629a270b4661b5263c07f59ca0560d6 (patch) | |
| tree | 8c573abda5b9857b6065541f5b7852b2e1728967 | |
| parent | ef8b106055c638377806e32e24922380118d03c7 (diff) | |
| download | scummvm-rg350-8f58ddefc629a270b4661b5263c07f59ca0560d6.tar.gz scummvm-rg350-8f58ddefc629a270b4661b5263c07f59ca0560d6.tar.bz2 scummvm-rg350-8f58ddefc629a270b4661b5263c07f59ca0560d6.zip | |
ALL: Remove more m4/mads leftovers.
Some project files (iPhone) and backend files (Symbian) still reference m4.dat,
but I know not enough on how to remove that without breaking something.
| -rw-r--r-- | Makefile.common | 3 | ||||
| -rwxr-xr-x | backends/platform/maemo/debian/rules | 2 | ||||
| -rw-r--r-- | devtools/create_mads/main.cpp | 127 | ||||
| -rw-r--r-- | devtools/create_mads/module.mk | 12 | ||||
| -rw-r--r-- | devtools/create_mads/parser.cpp | 937 | ||||
| -rw-r--r-- | devtools/create_mads/parser.h | 28 | ||||
| -rw-r--r-- | devtools/create_mads/scripts/rex_nebular.txt | 2241 | ||||
| -rw-r--r-- | devtools/create_project/create_project.cpp | 1 | ||||
| -rwxr-xr-x | devtools/create_project/xcode.cpp | 2 | ||||
| -rw-r--r-- | dists/irix/scummvm.idb | 1 | ||||
| -rw-r--r-- | dists/scummvm.rc.in | 3 | ||||
| -rw-r--r-- | dists/win32/ScummVM.iss | 1 | ||||
| -rw-r--r-- | dists/win32/scummvm.nsi | 2 | ||||
| -rw-r--r-- | dists/win32/scummvm.nsi.in | 2 | 
14 files changed, 1 insertions, 3361 deletions
| diff --git a/Makefile.common b/Makefile.common index 7c81a0d80c..1ec3f66246 100644 --- a/Makefile.common +++ b/Makefile.common @@ -252,9 +252,6 @@ endif  ifdef ENABLE_LURE  DIST_FILES_ENGINEDATA+=lure.dat  endif -ifdef ENABLE_M4 -DIST_FILES_ENGINEDATA+=m4.dat -endif  ifdef ENABLE_QUEEN  DIST_FILES_ENGINEDATA+=queen.tbl  endif diff --git a/backends/platform/maemo/debian/rules b/backends/platform/maemo/debian/rules index 7613df25b4..64add08de8 100755 --- a/backends/platform/maemo/debian/rules +++ b/backends/platform/maemo/debian/rules @@ -47,7 +47,7 @@ install: build  	install -m0644 gui/themes/scummclassic.zip  gui/themes/scummmodern.zip debian/scummvm/opt/scummvm/share  	install -m0644 backends/vkeybd/packs/vkeybd_default.zip debian/scummvm/opt/scummvm/share  # for optified version we can also add engine datafiles -	install -m0644 dists/engine-data/drascula.dat dists/engine-data/hugo.dat dists/engine-data/kyra.dat dists/engine-data/lure.dat dists/engine-data/m4.dat dists/engine-data/mads.dat dists/engine-data/queen.tbl dists/engine-data/sky.cpt dists/engine-data/teenagent.dat dists/engine-data/toon.dat debian/scummvm/opt/scummvm/share +	install -m0644 dists/engine-data/drascula.dat dists/engine-data/hugo.dat dists/engine-data/kyra.dat dists/engine-data/lure.dat dists/engine-data/queen.tbl dists/engine-data/sky.cpt dists/engine-data/teenagent.dat dists/engine-data/toon.dat debian/scummvm/opt/scummvm/share  	install -m0644 -d debian/scummvm/usr/share/doc/scummvm  	install -m0644 NEWS README COPYRIGHT debian/scummvm/usr/share/doc/scummvm diff --git a/devtools/create_mads/main.cpp b/devtools/create_mads/main.cpp deleted file mode 100644 index b4de34d832..0000000000 --- a/devtools/create_mads/main.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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 2 - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - */ - -// HACK to allow building with the SDL backend on MinGW -// see bug #1800764 "TOOLS: MinGW tools building broken" -#ifdef main -#undef main -#endif // main - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include "parser.h" - -#define BUFFER_SIZE 8192 - -void link(const char *destFilename, char **srcFilenames, int srcCount) { -	if (srcCount <= 0) -		return; - -	FILE *destFile = fopen(destFilename, "wb"); -	if (!destFile) -		return; -	unsigned int v = 0; -	const char *headerStr = "MADS"; -	int fileOffset = 4 * (srcCount + 2); - -	// Write header bit -	fwrite(headerStr, 1, 4, destFile); -	for (int i = 0; i <= srcCount; ++i) -		fwrite(&v, 1, 4, destFile); - -	// Set up buffer for copying -	void *tempBuffer = malloc(BUFFER_SIZE); - -	// Loop through copying each source file and setting it's file offset in the header -	for (int i = 0; i < srcCount; ++i) { -		// Add any extra padding to ensure that each file starts on a paragraph boundary -		if ((fileOffset % 16) != 0) { -			v = 0; -			while ((fileOffset % 16) != 0) { -				fwrite(&v, 1, 1, destFile); -				++fileOffset; -			} -		} - -		FILE *srcFile = fopen(srcFilenames[i], "rb"); -		if (!srcFile) { -			printf("Could not locate file '%s'\n", srcFilenames[i]); -			break; -		} - -		// Set the starting position of the file -		fseek(destFile, 4 + (i * 4), SEEK_SET); -		fwrite(&fileOffset, 1, 4, destFile); - -		// Move back to the end of the destination and copy the source file contents over -		fseek(destFile, 0, SEEK_END); -		while (!feof(srcFile)) { -			int bytesRead = fread(tempBuffer, 1, BUFFER_SIZE, srcFile); -			fwrite(tempBuffer, 1, bytesRead, destFile); -			fileOffset += bytesRead; -		} - -		fclose(srcFile); -	} - -	fclose(destFile); -	free(tempBuffer); -	printf("Done.\n"); -} - -int main(int argc, char *argv[]) { -	if (argc == 1) { -		printf("%s - ScummVM MADS Game script compiler v 1.0\n\n", argv[0]); -		printf("Parameters: %s src_filename.txt [dest_filename.bin] - Compiles a script text file to an output binary\t", argv[0]); -		printf("\t%s /link mads.dat filename1.bin [filename2.bin ..] - Joins one or more compiled Bin files to make\n", argv[0]); -		printf("an output suitable for running in ScummVM.\n\n"); -	} else if (!strcmp(argv[1], "/link")) { -		// Link intermediate files into a final mads.dat file -		if (argc < 4) -			printf("Insufficient parameters\n"); -		else -			link(argv[2], &argv[3], argc - 3); - -	} else { -		// Compile a file -		char buffer[256]; -		const char *destFilename = buffer; -		if (argc >= 3) -			destFilename = argv[2]; -		else { -			// Use the source filename, but change the extension to '.bin' -			strcpy(buffer, argv[1]); -			char *p = buffer + strlen(buffer) - 1; -			while ((p >= buffer) && (*p != '.')) --p; -			if (p > buffer) -				// Change the extension -				strcpy(p, ".bin"); -		} - -		// Compile the specified source file -		bool result = Compile(argv[1], destFilename); -		return result ? 0 : 1; -	} - -	return 0; -} diff --git a/devtools/create_mads/module.mk b/devtools/create_mads/module.mk deleted file mode 100644 index 20d8deb8af..0000000000 --- a/devtools/create_mads/module.mk +++ /dev/null @@ -1,12 +0,0 @@ - -MODULE := devtools/create_mads - -MODULE_OBJS := \ -	main.o \ -	parser.o - -# Set the name of the executable -TOOL_EXECUTABLE := create_mads - -# Include common rules -include $(srcdir)/rules.mk diff --git a/devtools/create_mads/parser.cpp b/devtools/create_mads/parser.cpp deleted file mode 100644 index 5df505e0df..0000000000 --- a/devtools/create_mads/parser.cpp +++ /dev/null @@ -1,937 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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 2 - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <ctype.h> - -#define MAX_SOURCE_LINE_LENGTH	256 -#define MAX_TOKEN_STRING_LENGTH MAX_SOURCE_LINE_LENGTH -#define MAX_DIGIT_COUNT			20 -#define MAX_SYMBOLS				1024 -#define MAX_SUBROUTINES			1024 -#define MAX_SUBROUTINE_SIZE		4096 -#define MAX_SUBROUTINE_JUMPS	256 - -#define	OPSIZE8		0x40	///< when this bit is set - the operand size is 8 bits -#define	OPSIZE16	0x80	///< when this bit is set - the operand size is 16 bits -#define	OPSIZE32	0x00	///< when no bits are set - the operand size is 32 bits - -#define VERSION					1 - -enum CharCode { -	LETTER, DIGIT, SPECIAL, EOF_CODE, EOL_CODE -}; - -enum TokenCode { -	NO_TOKEN, WORD, NUMBER, IDENTIFIER, END_OF_FILE, END_OF_LINE, -	RW_DEFINE, RW_COLON, RW_SUB, RW_END, RW_OPCODE, -	ERROR -}; - -enum LiteralType { -	INTEGER_LIT -}; - -struct Literal { -	LiteralType type; -	union { -		int integer; -	} value; -}; - -struct SymbolEntry { -	char symbol[MAX_TOKEN_STRING_LENGTH]; -	char value[MAX_TOKEN_STRING_LENGTH]; -}; - -struct SubEntry { -	char name[MAX_TOKEN_STRING_LENGTH]; -	int fileOffset; -}; - -struct JumpSource { -	char name[MAX_TOKEN_STRING_LENGTH]; -	int line_number; -	int offset; -}; - -struct JumpDest { -	char name[MAX_TOKEN_STRING_LENGTH]; -	int offset; -}; - -enum Opcodes { -	OP_HALT	= 0, OP_IMM	= 1, OP_ZERO =  2, OP_ONE = 3, OP_MINUSONE = 4, OP_STR = 5, OP_DLOAD = 6, -	OP_DSTORE = 7, OP_PAL = 8, OP_LOAD = 9, OP_GLOAD = 10, OP_STORE = 11, OP_GSTORE = 12, -	OP_CALL = 13, OP_LIBCALL = 14, OP_RET = 15, OP_ALLOC = 16, OP_JUMP = 17, OP_JMPFALSE = 18, -	OP_JMPTRUE = 19, OP_EQUAL = 20, OP_LESS = 21, OP_LEQUAL = 22, OP_NEQUAL = 23, OP_GEQUAL = 24, -	OP_GREAT = 25, OP_PLUS = 26, OP_MINUS = 27, OP_LOR = 28, OP_MULT = 29, OP_DIV = 30, -	OP_MOD = 31, OP_AND = 32, OP_OR = 33, OP_EOR = 34, OP_LAND = 35, OP_NOT = 36, OP_COMP = 37, -	OP_NEG = 38, OP_DUP = 39, -	TOTAL_OPCODES = 40 -}; - -typedef unsigned char byte; - -const unsigned char EOF_CHAR = (unsigned char)255; -const unsigned char EOL_CHAR = (unsigned char)254; - -/*----------------------------------------------------------------------*/ -/*  Reserved words tables												*/ -/*----------------------------------------------------------------------*/ - -enum OpcodeParamType {OP_NO_PARAM, OP_IMM_PARAM, OP_TRANSFER_PARAM}; - -struct OpcodeEntry { -	const char *str; -	OpcodeParamType paramType; -}; - -OpcodeEntry OpcodeList[OP_DUP + 1] = { -	{"HALT", OP_NO_PARAM}, {"IMM", OP_IMM_PARAM}, {"ZERO", OP_NO_PARAM}, {"ONE", OP_NO_PARAM}, -	{"MINUSONE", OP_NO_PARAM}, {"STR", OP_IMM_PARAM}, {"DLOAD", OP_IMM_PARAM}, {"DSTORE", OP_IMM_PARAM}, -	{"PAL", OP_IMM_PARAM}, {"LOAD", OP_IMM_PARAM}, {"GLOAD", OP_IMM_PARAM}, {"STORE", OP_IMM_PARAM}, -	{"GSTORE", OP_IMM_PARAM}, {"CALL", OP_IMM_PARAM}, {"LIBCALL", OP_IMM_PARAM}, {"RET", OP_NO_PARAM}, -	{"ALLOC", OP_IMM_PARAM}, {"JUMP", OP_TRANSFER_PARAM}, {"JMPFALSE", OP_TRANSFER_PARAM}, -	{"JMPTRUE", OP_TRANSFER_PARAM}, {"EQUAL", OP_NO_PARAM}, {"LESS", OP_NO_PARAM}, -	{"LEQUAL", OP_NO_PARAM}, {"NEQUAL", OP_NO_PARAM}, {"GEQUAL", OP_NO_PARAM}, -	{"GREAT", OP_NO_PARAM}, {"PLUS", OP_NO_PARAM}, {"MINUS", OP_NO_PARAM}, -	{"LOR", OP_NO_PARAM}, {"MULT", OP_NO_PARAM}, {"DIV", OP_IMM_PARAM}, {"MOD", OP_NO_PARAM}, -	{"AND", OP_NO_PARAM}, {"OR", OP_NO_PARAM}, {"EOR", OP_NO_PARAM}, {"LAND", OP_NO_PARAM}, -	{"NOT", OP_NO_PARAM}, {"COMP", OP_NO_PARAM}, {"NEG", OP_NO_PARAM}, {"DUP", OP_NO_PARAM} -}; - - -const char *symbol_strings[] = {"#DEFINE", ":", "SUB", "END"}; - -/*----------------------------------------------------------------------*/ -/*  Globals																*/ -/*----------------------------------------------------------------------*/ - -unsigned char	ch;					// Current input character -TokenCode		token;				// code of current token -Opcodes			opcode;				// Current instruction opcode -OpcodeParamType	paramType;			// Parameter type opcode expects -Literal			literal;			// Value of literal -int				buffer_offset;		// Char offset into source buffer -int				level = 0;			// current nesting level -int				line_number = 0;	// current line number - -char source_buffer[MAX_SOURCE_LINE_LENGTH];		// Source file buffer -char token_string[MAX_TOKEN_STRING_LENGTH];		// Token string -const char *bufferp = source_buffer;					// Source buffer ptr -char *tokenp = token_string;					// Token string ptr - -int		digit_count;				// Total no. of digits in number -bool	count_error;				// Too many digits in number? - -FILE *source_file; -FILE *dest_file; -CharCode char_table[256]; - -SymbolEntry		symbolTable[MAX_SYMBOLS]; -int symbolCount = 0; - -int			game_number = 0; -int			language = 0; - -int			indexSize = 0; -int			fileOffset = 0; -SubEntry	subroutinesTable[MAX_SUBROUTINES]; -int			subroutinesCount = 0; - -byte		subroutineData[MAX_SUBROUTINE_SIZE]; -int			subroutineSize = 0; - -JumpSource	jumpSources[MAX_SUBROUTINE_JUMPS]; -int			jumpSourceCount = 0; -JumpDest	jumpDests[MAX_SUBROUTINE_JUMPS]; -int			jumpDestCount = 0; - -#define char_code(ch)	char_table[ch] - -void get_char(); -void get_token(); - -/*----------------------------------------------------------------------*/ -/*  Miscellaneous support functions										*/ -/*----------------------------------------------------------------------*/ - -void strToUpper(char *string) { -	while (*string) { -		*string = toupper(*string); -		++string; -	} -} - -void strToLower(char *string) { -	while (*string) { -		*string = tolower(*string); -		++string; -	} -} - -int strToInt(const char *s) { -	unsigned int tmp; - -	if (!*s) -		// No string at all -		return 0; -	else if (toupper(s[strlen(s) - 1]) == 'H') -		// Hexadecimal string with trailing 'h' -		sscanf(s, "%xh", &tmp); -	else if (*s == '$') -		// Hexadecimal string starting with '$' -		sscanf(s + 1, "%x", &tmp); -	else -		// Standard decimal string -		return atoi(s); - -	return (int)tmp; -} - -/*----------------------------------------------------------------------*/ -/*  Initialisation / De-initialisation code								*/ -/*----------------------------------------------------------------------*/ - -/** - * Open the input file for parsing - */ -void open_source_file(const char *name) { -	if ((source_file = fopen(name, "r")) == NULL) { -		printf("*** Error:  Failed to open source file.\n"); -		exit(0); -	} - -	// Fetch the first character -	bufferp = ""; -	get_char(); -} - -/** - * Close the source file - */ -void close_source_file() { -	fclose(source_file); -} - -/** - * Initializes the scanner - */ -void init_scanner(const char *name) { -	// Initialize character table -	for (int i = 0;   i < 256;  ++i) char_table[i] = SPECIAL; -	for (int i = '0'; i <= '9'; ++i) char_table[i] = DIGIT; -	for (int i = 'A'; i <= 'Z'; ++i) char_table[i] = LETTER; -	for (int i = 'a'; i <= 'z'; ++i) char_table[i] = LETTER; -	char_table[EOF_CHAR] = EOF_CODE; -	char_table[EOL_CHAR] = EOL_CODE; -	char_table[(int)'$'] = DIGIT;	// Needed for hexadecimal number handling - -	open_source_file(name); -} - -/** - * Shuts down the scanner - */ -void quit_scanner() { -	close_source_file(); -} - -/*----------------------------------------------------------------------*/ -/*  Output routines														*/ -/*----------------------------------------------------------------------*/ - - -/** - * Initializes the output - */ -void init_output(const char *destFilename) { -	dest_file = fopen(destFilename, "wb"); -	if (dest_file == NULL) { -		printf("Could not open file for writing\n"); -		exit(0); -	} -} - -/** - * Closes the output file - */ -void close_output() { -	fclose(dest_file); -} - -/** - * Writes a single byte to the output - */ -void write_byte(byte v) { -	fwrite(&v, 1, 1, dest_file); -	++fileOffset; -} - -/** - * Writes a word to the output - */ -void write_word(int v) { -	write_byte(v & 0xff); -	write_byte((v >> 8) & 0xff); -} - -/** - * Writes a 32-bit value to the output - */ -void write_long(int v) { -	write_byte(v & 0xff); -	write_byte((v >> 8) & 0xff); -	write_byte((v >> 16) & 0xff); -	write_byte((v >> 24) & 0xff); -} - -/** - * Writes a sequence of bytes to the output - */ -void write_bytes(byte *v, int len) { -	fwrite(v, 1, len, dest_file); -	fileOffset += len; -} - -/** - * Writes a repeat sequence of a value to the output - */ -void write_byte_seq(byte v, int len) { -	byte *tempData = (byte *)malloc(len); -	memset(tempData, v, len); -	write_bytes(tempData, len); -	free(tempData); -} - -/** - * Writes out the header and allocates space for the symbol table - */ -void write_header() { -	// Write out three bytes - game Id, language Id, and version number -	if (game_number == 0) { -		game_number = 1; -		printf("No game specified, defaulting to Rex Nebular\n"); -	} -	write_byte(game_number); - -	if (language == 0) { -		language = 1; -		printf("No language specified, defaulting to English\n"); -	} -	write_byte(language); - -	write_byte(VERSION); - -	// Write out space to later come back and store the list of subroutine names and offsets -	if (indexSize == 0) { -		indexSize = 4096; -		printf("No index size specified, defaulting to %d bytes\n", indexSize); -	} -	write_byte_seq(0, indexSize - 3); - -	fileOffset = indexSize; -} - -/** - * Goes back and writes out the subroutine list - */ -void write_index() { -	fseek(dest_file, 3, SEEK_SET); - -	int bytesRemaining = indexSize - 3; -	for (int i = 0; i < subroutinesCount; ++i) { -		int entrySize = strlen(subroutinesTable[i].name) + 5; - -		// Ensure there is enough remaining space -		if ((bytesRemaining - entrySize) < 0) { -			printf("Index has exceeded allowable size.\n"); -			token = ERROR; -		} - -		// Write out the name and the file offset -		write_bytes((byte *)&subroutinesTable[i].name, strlen(subroutinesTable[i].name) + 1); -		write_long(subroutinesTable[i].fileOffset); -	} -} - -/*----------------------------------------------------------------------*/ -/*  Processing routines													*/ -/*----------------------------------------------------------------------*/ - -int symbolFind() { -	for (int i = 0; i < symbolCount; ++i) { -		if (!strcmp(symbolTable[i].symbol, token_string)) -			return i; -	} -	return -1; -} - -int subIndexOf() { -	for (int i = 0; i < subroutinesCount; ++i) { -		if (!strcmp(subroutinesTable[i].name, token_string)) -			return i; -	} -	return -1; -} - -int jumpIndexOf(const char *name) { -	for (int i = 0; i < jumpDestCount; ++i) { -		if (!strcmp(jumpDests[i].name, name)) -			return i; -	} -	return -1; -} - -void handle_define() { -	// Read the variable name -	get_token(); -	if (token != IDENTIFIER) { -		token = ERROR; -		return; -	} - -	// Make sure it doesn't already exist -	if (symbolFind() != -1) { -		printf("Duplicate symbol encountered.\n"); -		token = ERROR; -		return; -	} - -	// Store the new symbol name -	strcpy(symbolTable[symbolCount].symbol, token_string); - -	// Get the value -	get_token(); -	if (token == END_OF_LINE) { -		printf("Unexpected end of line.\n"); -		token = ERROR; -	} -	if ((token != NUMBER) && (token != IDENTIFIER)) { -		printf("Invalid define value.\n"); -		token = ERROR; -	} -	if (token == ERROR) -		return; - -	// Handle special symbols -	if (!strcmp(symbolTable[symbolCount].symbol, "GAME_ID")) { -		// Specify game number -		if (!strcmp(token_string, "REX")) -			game_number = 1; -		else -			token = ERROR; -	} else if (!strcmp(symbolTable[symbolCount].symbol, "LANGUAGE")) { -		// Specify the language -		if (!strcmp(token_string, "ENGLISH")) -			language = 1; -		else -			token = ERROR; -	} else if (!strcmp(symbolTable[symbolCount].symbol, "INDEX_BLOCK_SIZE")) { -		// Specifying the size of the index -		indexSize = strToInt(token_string); -	} else { -		// Standard symbol - save it's value -		strcpy(symbolTable[symbolCount].value, token_string); -		++symbolCount; -	} - -	if (token == ERROR) -		return; - -	// Ensure the next symbol is the end of line -	get_token(); -	if (token != END_OF_LINE) { -		printf("Extraneous information on line.\n"); -		token = ERROR; -	} -} - -/** - * Handles getting a parameter for an opcode - */ -void get_parameter() { -	int nvalue; - -	if (token == NUMBER) { -		literal.value.integer	= strToInt(token_string); -		return; -	} - -	if (token != IDENTIFIER) -		return; - -	nvalue = symbolFind(); -	if (nvalue != -1) { -		// Found symbol, so get it's numeric value and return -		token = NUMBER; -		literal.value.integer	= strToInt(symbolTable[nvalue].value); -		return; -	} - -	// Check if the parameter is the name of an already processed subroutine -	strToLower(token_string); -	nvalue = subIndexOf(); -	if (nvalue == -1) { -		token = ERROR; -		return; -	} - -	// Store the index (not the offset) of the subroutine to call -	token = NUMBER; -	literal.value.integer = nvalue; -} - -#define INC_SUB_PTR if (++subroutineSize == MAX_SUBROUTINE_SIZE) { \ -		printf("Maximum allowable subroutine size exceeded\n"); \ -		token = ERROR; \ -		return; \ -	} - -#define WRITE_SUB_BYTE(v) subroutineData[subroutineSize] = (byte)(v) - -/** - * Handles a single instruction within the sub-routine - */ -void handle_instruction() { -	// Write out the opcode -	WRITE_SUB_BYTE(opcode); -	INC_SUB_PTR; - -	get_token(); - -	if (OpcodeList[opcode].paramType == OP_IMM_PARAM) { -		get_parameter(); - -		if (token != NUMBER) { -			printf("Incorrect opcode parameter encountered\n"); -			token = ERROR; -			return; -		} - -		// Apply the correct opcode size to the previously stored opcode and save the byte(s) -		if (literal.value.integer <= 0xff) { -			subroutineData[subroutineSize - 1] |= OPSIZE8; -			WRITE_SUB_BYTE(literal.value.integer); -			INC_SUB_PTR; -		} else if (literal.value.integer <= 0xffff) { -			subroutineData[subroutineSize - 1] |= OPSIZE16; -			WRITE_SUB_BYTE(literal.value.integer); -			INC_SUB_PTR; -			WRITE_SUB_BYTE(literal.value.integer >> 8); -			INC_SUB_PTR; - -		} else { -			subroutineData[subroutineSize - 1] |= OPSIZE32; -			int v = literal.value.integer; -			for (int i = 0; i < 4; ++i, v >>= 8) { -				WRITE_SUB_BYTE(v); -				INC_SUB_PTR; -			} -		} - -		get_token(); -	} else if (OpcodeList[opcode].paramType == OP_TRANSFER_PARAM) { - -		if (token != IDENTIFIER) { -			printf("Incorrect opcode parameter encountered\n"); -			token = ERROR; -			return; -		} - -		// Check to see if it's a backward jump to an existing label -		int idx = jumpIndexOf(token_string); -		if (idx != -1) { -			// It's a backwards jump whose destination is already known -			if (jumpDests[idx].offset < 256) { -				// 8-bit destination -				subroutineData[subroutineSize - 1] |= OPSIZE8; -				subroutineData[subroutineSize] = jumpDests[idx].offset; -				INC_SUB_PTR; -			} else { -				// 16-bit destination -				subroutineData[subroutineSize - 1] |= OPSIZE16; -				INC_SUB_PTR; -				subroutineData[subroutineSize] = jumpDests[idx].offset & 0xff; -				INC_SUB_PTR; -				subroutineData[subroutineSize] = (jumpDests[idx].offset >> 8) & 0xff; -			} -		} else { -			// Unknown destination, so save it for later resolving -			strcpy(jumpSources[jumpSourceCount].name, token_string); -			jumpSources[jumpSourceCount].line_number = line_number; -			jumpSources[jumpSourceCount].offset = subroutineSize; -			if (++jumpSourceCount == MAX_SUBROUTINE_JUMPS) { -				printf("Maximum allowable jumps size exceeded\n"); -				token = ERROR; -				return; -			} - -			// Store a 16-bit placeholder -			subroutineData[subroutineSize - 1] |= OPSIZE16; -			WRITE_SUB_BYTE(0); -			INC_SUB_PTR; -			WRITE_SUB_BYTE(0); -			INC_SUB_PTR; -		} - -		get_token(); -	} - -	if (token != END_OF_LINE) -		token = ERROR; -} - -/** - * Called at the end of the sub-routine, fixes the destination of any forward jump references - */ -void fix_subroutine_jumps() { -	for (int i = 0; i < jumpSourceCount; ++i) { -		// Scan through the list of transfer destinations within the script -		int idx = jumpIndexOf(jumpSources[i].name); -		if (idx == -1) { -			token = ERROR; -			line_number = jumpSources[i].line_number; -			return; -		} - -		// Replace the placeholder bytes with the new destination -		subroutineData[jumpSources[i].offset] = jumpDests[idx].offset & 0xff; -		subroutineData[jumpSources[i].offset + 1] = (jumpDests[idx].offset >> 8) & 0xff; -	} -} - -/** - * Handles parsing a sub-routine - */ -void handle_sub() { -	// Get the subroutine name -	get_token(); -	if (token != IDENTIFIER) { -		printf("Missing subroutine name.\n"); -		token = ERROR; -		return; -	} - -	strToLower(token_string); -	if (subIndexOf() != -1) { -		printf("Duplicate sub-routine encountered\n"); -		token = ERROR; -		return; -	} - -	// If this is the first subroutine, start writing out the data -	if (subroutinesCount == 0) -		write_header(); - -	// Save the sub-routine details -	strcpy(subroutinesTable[subroutinesCount].name, token_string); -	subroutinesTable[subroutinesCount].fileOffset = fileOffset; -	if (++subroutinesCount == MAX_SUBROUTINES) { -		printf("Exceeded maximum allowed subroutine count\n"); -		token = ERROR; -		return; -	} - -	// Ensure the line end -	get_token(); -	if (token != END_OF_LINE) { -		token = ERROR; -		return; -	} - -	// Initial processing arrays -	memset(subroutineData, 0, MAX_SUBROUTINE_SIZE); -	subroutineSize = 0; -	jumpSourceCount = 0; -	jumpDestCount = 0; - -	// Loop through the lines of the sub-routine -	while (token != ERROR) { -		get_token(); - -		if (token == END_OF_LINE) continue; -		if (token == RW_OPCODE) { -			// Handle instructions -			handle_instruction(); - -		} else if (token == IDENTIFIER) { -			// Save identifier, it's hopefully a jump symbol -			strcpy(jumpDests[jumpDestCount].name, token_string); -			get_token(); -			if (token != RW_COLON) -				token = ERROR; -			else { -				// Save the jump point -				jumpDests[jumpDestCount].offset = subroutineSize; - -				if (++jumpDestCount == MAX_SUBROUTINE_JUMPS) { -					printf("Subroutine exceeded maximum allowable jump points\n"); -					token = ERROR; -					return; -				} - -				// Ensure it's the last value on the line -				get_token(); -				if (token != END_OF_LINE) -					token = ERROR; -			} -		} else if (token == RW_END) { -			// End of subroutine reached -			get_token(); -			if (token != ERROR) -				fix_subroutine_jumps(); -			write_bytes(&subroutineData[0], subroutineSize); -			break; - -		} else { -			token = ERROR; -			printf("Unexpected error\n"); -		} -	} -} - -/*----------------------------------------------------------------------*/ -/*  Character routines													*/ -/*----------------------------------------------------------------------*/ - -/** - * Read the next line from the source file. - */ -bool get_source_line() { -	if ((fgets(source_buffer, MAX_SOURCE_LINE_LENGTH, source_file)) != NULL) { -		return true; -	} - -	return false; -} - -/** - * Set ch to the next character from the source buffer - */ -void get_char() { -	// If at the end of current source line, read another line. -	// If at end of file, set ch to the EOF character and return -	if (*bufferp == '\0') { -		if (!get_source_line()) { -			ch = EOF_CHAR; -			return; -		} -		bufferp = source_buffer; -		buffer_offset = 0; -		++line_number; -		ch = EOL_CHAR; -		return; -	} - -	ch = *bufferp++;		// Next character in the buffer - -	if ((ch == '\n') || (ch == '\t')) ch = ' '; -} - -/** - * Skip past any blanks in the current location in the source buffer. - * Set ch to the next nonblank character - */ -void skip_blanks() { -	while (ch == ' ') get_char(); -} - -/*----------------------------------------------------------------------*/ -/*  Token routines														*/ -/*----------------------------------------------------------------------*/ - -bool is_reserved_word() { -	for (int i = 0; i < 4; ++i) { -		if (!strcmp(symbol_strings[i], token_string)) { -			token = (TokenCode)(RW_DEFINE + i); -			return true; -		} -	} -	return false; -} - -bool is_opcode() { -	for (int i = 0; i < TOTAL_OPCODES; ++i) { -		if (!strcmp(OpcodeList[i].str, token_string)) { -			token = RW_OPCODE; -			opcode = (Opcodes)i; -			paramType = OpcodeList[i].paramType; -			return true; -		} -	} -	return false; -} - -/** - * Extract a word token and set token to IDENTIFIER - */ -void get_word() { -	// Extract the word -	while ((char_code(ch) == LETTER) || (char_code(ch) == DIGIT) || (ch == '_')) { -		*tokenp++ = ch; -		get_char(); -	} - -	*tokenp = '\0'; - -	strToUpper(token_string); -	token	= WORD; -	if (!is_reserved_word() && !is_opcode()) token = IDENTIFIER; -} - -/** - * Extract a number token and set literal to it's value. Set token to NUMBER - */ -void get_number() { -	digit_count	= 0;		// Total no. of digits in number */ -	count_error	= false;	// Too many digits in number? - -	do { -		*tokenp++ = ch; - -		if (++digit_count > MAX_DIGIT_COUNT) { -			count_error = true; -			break; -		} - -		get_char(); -	} while ((char_code(ch) == DIGIT) || (toupper(ch) == 'X') || ((toupper(ch) >= 'A') && (toupper(ch) <= 'F'))); - -	if (count_error) { -		token = ERROR; -		return; -	} - -	literal.type			= INTEGER_LIT; -	literal.value.integer	= strToInt(token_string); -	*tokenp = '\0'; -	token	= NUMBER; -} - -/** - * Extract a special token - */ -void get_special() { -	*tokenp++ = ch; -	if (ch == ':') { -		token = RW_COLON; -		get_char(); -		return; -	} else if (ch == '/') { -		*tokenp++ = ch; -		get_char(); -		if (ch == '/') { -			// Comment, so read until end of line -			while ((ch != EOL_CHAR) && (ch != EOF_CHAR)) -				get_char(); -			token = END_OF_LINE; -			return; -		} -	} - -	// Extract the rest of the word -	get_char(); -	while ((char_code(ch) == LETTER) || (char_code(ch) == DIGIT)) { -		*tokenp++ = ch; -		get_char(); -	} -	*tokenp = '\0'; - -	strToUpper(token_string); -	if (token_string[0] == '@') -		token = IDENTIFIER; -	else if (!is_reserved_word()) -		token = ERROR; -} - -/** - * Extract the next token from the source buffer - */ -void get_token() { -	skip_blanks(); -	tokenp = token_string; - -	switch (char_code(ch)) { -	case LETTER:	get_word();			break; -	case DIGIT:		get_number();		break; -	case EOL_CODE:	{ token = END_OF_LINE; get_char(); break; } -	case EOF_CODE:	token = END_OF_FILE; break; -	default:		get_special();		break; -	} -} - -/** - * Handles processing a line outside of subroutines - */ -void process_line() { -	if ((token == ERROR) || (token == END_OF_FILE)) return; - -	switch (token) { -	case RW_DEFINE: -		handle_define(); -		break; -	case RW_SUB: -		handle_sub(); -		break; -	case END_OF_LINE: -		break; -	default: -		token = ERROR; -		break; -	} - -	if (token == END_OF_LINE) { -		get_token(); -	} -} - -/*----------------------------------------------------------------------*/ -/*  Interface methods													*/ -/*----------------------------------------------------------------------*/ - -/** - * Main compiler method - */ -bool Compile(const char *srcFilename, const char *destFilename) { -	init_scanner(srcFilename); -	init_output(destFilename); - -	get_token(); -	while ((token != END_OF_FILE) && (token != ERROR)) -		process_line(); - -	if (token != ERROR) { -		write_index(); -	} - -	quit_scanner(); - -	if (token == ERROR) -		printf("Error encountered on line %d\n", line_number); -	else -		printf("Compilation complete\n"); -	return token != ERROR; -} diff --git a/devtools/create_mads/parser.h b/devtools/create_mads/parser.h deleted file mode 100644 index a7141c497a..0000000000 --- a/devtools/create_mads/parser.h +++ /dev/null @@ -1,28 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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 2 - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - */ - -#ifndef CREATE_MADS_PARSER -#define CREATE_MADS_PARSER - -bool Compile(const char *srcFilename, const char *destFilename); - -#endif diff --git a/devtools/create_mads/scripts/rex_nebular.txt b/devtools/create_mads/scripts/rex_nebular.txt deleted file mode 100644 index f33a574813..0000000000 --- a/devtools/create_mads/scripts/rex_nebular.txt +++ /dev/null @@ -1,2241 +0,0 @@ -// MADS Script Engine auto-generated script file - -// Special #defines -#define INDEX_BLOCK_SIZE 8192 -#define GAME_ID REX -#define LANGUAGE ENGLISH - -// List of data variables -#define Scene_abortTimersMode2 1 -#define Scene_abortTimers 2 -#define Player_stepEnabled 3 -#define Scene_nextScene 4 -#define Scene_priorSceneId 5 -#define Player_playerPos_x 6 -#define Player_playerPos_y 7 -#define Player_direction 8 -#define Player_visible 9 -#define Scene_activeAnimation 10 -#define Animation_currentFrame 11 - -// Library function list -#define dialog_show 1 -#define SequenceList_remove 2 -#define start_reversible_sprite_sequence 3 -#define SequenceList_setAnimRange 4 -#define SequenceList_addSubEntry 5 -#define start_cycled_sprite_sequence 6 -#define quotes_get_pointer 7 -#define KernelMessageList_add 8 -#define SequenceList_unk3 9 -#define start_sound 10 -#define SceneLogic_formAnimName 11 -#define SpriteList_addSprites 12 -#define hotspot_activate 13 -#define DynamicHotspots_add 14 -#define SequenceList_setDepth 15 -#define quotes_load 16 -#define form_resource_name 17 -#define MadsScene_loadAnimation 18 -#define Action_isAction 19 -#define start_sprite_sequence3 20 -#define DynamicHotspots_remove 21 -#define object_is_present 22 -#define inventory_add 23 -#define dialog_picture_show 24 -#define object_is_in_inventory 25 - -// Script functions start here - -sub scene101_sub1 -	ONE -	DSTORE     Scene_abortTimersMode2 // 2ecf2h -	ZERO -	DSTORE     Player_stepEnabled // 2ecf8h -	DLOAD      Scene_abortTimers  // 2ecfeh -	STORE      0 -	JUMP       @2edc0             // 2ed01h -@2ed04: -	DLOAD      $546E              // 2ed04h -	STORE      0 -	LOAD       0 -	LIBCALL    SequenceList_remove -	ZERO -	ZERO -	IMM        6                  // 2ed10h -	DLOAD      $5450              // 2ed12h -	STORE      0 -	IMM        3 -	ZERO -	LOAD       0 -	LIBCALL    start_reversible_sprite_sequence -	STORE      0                  // 2ed1ah -	LOAD       0                  // 2ed1fh -	DSTORE     $546E -	IMM        21 -	IMM        17 -	LOAD       0 -	LIBCALL    SequenceList_setAnimRange -	IMM        72                 // 2ed2dh -	DLOAD      $546E              // 2ed2fh -	STORE      0 -	ZERO -	ZERO -	LOAD       0 -	LIBCALL    SequenceList_addSubEntry -	STORE      0                  // 2ed36h -	IMM        17                 // 2ed3bh -	LIBCALL    start_sound -	ZERO -	ZERO -	IMM        2                  // 2ed49h -	DLOAD      $544A              // 2ed4bh -	STORE      0 -	IMM        3 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2ed53h -	LOAD       0                  // 2ed58h -	DSTORE     $5468 -	RET -@2ed5c: -	ZERO -	ZERO -	ZERO -	DLOAD      $5450              // 2ed62h -	STORE      0 -	IMM        6 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2ed6ah -	LOAD       0                  // 2ed6fh -	DSTORE     $546E -	IMM        17                 // 2ed75h -	IMM        17 -	IMM        17 -	LOAD       0 -	LIBCALL    SequenceList_setAnimRange -	IMM        57 -	LIBCALL    quotes_get_pointer -	ZERO -	IMM        60                 // 2ed90h -	ZERO -	ZERO -	IMM        $1110 -	IMM        61 -	IMM        143 -	LIBCALL    KernelMessageList_add -	STORE      0                  // 2ed9fh -	IMM        120 -	LIBCALL    SequenceList_unk3 -	STORE      0                  // 2edaah -	RET -@2edb0: -	IMM        $2785 -	ZERO -	LIBCALL    dialog_show -	MINUSONE -	DSTORE     Player_stepEnabled // 2edb9h -	RET -@2edc0: -	LOAD       0                  // 2edc0h -	DUP -	STORE      4 -	IMM        73 -	DUP -	STORE      5 -	EQUAL -	JMPTRUE    @2edb0             // 2edc3h -	LOAD       4                  // 2edc5h -	LOAD       5 -	GREAT -	JMPTRUE    @2edd2 -	LOAD       0                  // 2edc7h -	ZERO -	NEQUAL -	JMPTRUE    @2edce             // 2edc9h -	JUMP       @2ed04             // 2edcbh -@2edce: -	LOAD       0                  // 2edceh -	IMM        72 -	MINUS -	STORE      0 -	LOAD       0                  // 2edd0h -	STORE      4 -	LOAD       4 -	ZERO -	EQUAL -	JMPTRUE    @2ed5c -@2edd2: -	RET -end - - -sub low_rooms_entry_sound -	DLOAD      $5A00              // 2b48ch -	ZERO -	NEQUAL -	JMPTRUE    @2b49e             // 2b491h -	IMM        2                  // 2b493h -@2b495: -	LIBCALL    start_sound -	RET -@2b49e: -	DLOAD      Scene_nextScene    // 2b49eh -	STORE      0 -	JUMP       @2b4d8             // 2b4a1h -@2b4a4: -	IMM        11                 // 2b4a4h -	JUMP       @2b495             // 2b4a6h -@2b4a8: -	IMM        12                 // 2b4a8h -	JUMP       @2b495             // 2b4aah -@2b4ac: -	IMM        3                  // 2b4ach -	LIBCALL    start_sound -	IMM        25                 // 2b4b6h -	JUMP       @2b495             // 2b4b8h -@2b4ba: -	DLOAD      Scene_priorSceneId // 2b4bah -	IMM        104 -	LESS -	JMPTRUE    @2b4c8             // 2b4bfh -	DLOAD      Scene_priorSceneId // 2b4c1h -	IMM        108 -	LEQUAL -	JMPTRUE    @2b500             // 2b4c6h -@2b4c8: -	IMM        10                 // 2b4c8h -	JUMP       @2b495             // 2b4cah -@2b4cc: -	IMM        13                 // 2b4cch -	JUMP       @2b495             // 2b4ceh -@2b4d0: -	IMM        3                  // 2b4d0h -	JUMP       @2b495             // 2b4d2h -@2b4d4: -	IMM        15                 // 2b4d4h -	JUMP       @2b495             // 2b4d6h -@2b4d8: -	LOAD       0                  // 2b4d8h -	IMM        101 -	MINUS -	STORE      0 -	LOAD       0                  // 2b4dbh -	IMM        11 -	GREAT -	JMPTRUE    @2b500             // 2b4deh -	LOAD       0                  // 2b4e0h -	IMM        2 -	MULT -	LOAD       0                  // 2b4e2h -	LOAD       1 -	STORE      0 -//--- Begin Jump Table --- -	LOAD       1 -	ZERO -	EQUAL -	JMPTRUE    @2b4a4 -	LOAD       1 -	ONE -	EQUAL -	JMPTRUE    @2b4a8 -	LOAD       1 -	IMM        2 -	EQUAL -	JMPTRUE    @2b4ac -	LOAD       1 -	IMM        3 -	EQUAL -	JMPTRUE    @2b4ba -	LOAD       1 -	IMM        4 -	EQUAL -	JMPTRUE    @2b4ba -	LOAD       1 -	IMM        5 -	EQUAL -	JMPTRUE    @2b4ba -	LOAD       1 -	IMM        6 -	EQUAL -	JMPTRUE    @2b4ba -	LOAD       1 -	IMM        7 -	EQUAL -	JMPTRUE    @2b4ba -	LOAD       1 -	IMM        8 -	EQUAL -	JMPTRUE    @2b4cc -	LOAD       1 -	IMM        9 -	EQUAL -	JMPTRUE    @2b4c8 -	LOAD       1 -	IMM        10 -	EQUAL -	JMPTRUE    @2b4d0 -	LOAD       1 -	IMM        11 -	EQUAL -	JMPTRUE    @2b4d4 -//---  End  Jump Table --- -@2b500: -	RET -end - - -sub scene101_enter -	ONE -	IMM        120 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2c985h -	LOAD       0                  // 2c98ah -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2c98eh -	LOAD       0                  // 2c993h -	DSTORE     $543C -	IMM        2 -	IMM        120 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2c99bh -	LOAD       0                  // 2c9a0h -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2c9a4h -	LOAD       0                  // 2c9a9h -	DSTORE     $543E -	IMM        3 -	IMM        120 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2c9b1h -	LOAD       0                  // 2c9b6h -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2c9bah -	LOAD       0                  // 2c9bfh -	DSTORE     $5440 -	IMM        4 -	IMM        120 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2c9c7h -	LOAD       0                  // 2c9cch -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2c9d0h -	LOAD       0                  // 2c9d5h -	DSTORE     $5442 -	IMM        5 -	IMM        120 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2c9ddh -	LOAD       0                  // 2c9e2h -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2c9e6h -	LOAD       0                  // 2c9ebh -	DSTORE     $5444 -	IMM        6 -	IMM        120 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2c9f3h -	LOAD       0                  // 2c9f8h -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2c9fch -	LOAD       0                  // 2ca01h -	DSTORE     $5446 -	IMM        7 -	IMM        120 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2ca09h -	LOAD       0                  // 2ca0eh -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2ca12h -	LOAD       0                  // 2ca17h -	DSTORE     $5448 -	MINUSONE -	IMM        109 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2ca1fh -	LOAD       0                  // 2ca24h -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2ca28h -	LOAD       0                  // 2ca2dh -	DSTORE     $544A -	ONE -	IMM        98 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2ca35h -	LOAD       0                  // 2ca3ah -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2ca3eh -	LOAD       0                  // 2ca43h -	DSTORE     $544C -	IMM        2 -	IMM        98 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2ca4bh -	LOAD       0                  // 2ca50h -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2ca54h -	LOAD       0                  // 2ca59h -	DSTORE     $544E -	ZERO -	IMM        97 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2ca60h -	LOAD       0                  // 2ca65h -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2ca69h -	LOAD       0                  // 2ca6eh -	DSTORE     $5450 -	ONE -	IMM        97 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2ca76h -	LOAD       0                  // 2ca7bh -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2ca7fh -	LOAD       0                  // 2ca84h -	DSTORE     $5452 -	IMM        8 -	IMM        120 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2ca8ch -	LOAD       0                  // 2ca91h -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2ca95h -	LOAD       0                  // 2ca9ah -	DSTORE     $5454 -	ZERO -	IMM        120 -	LIBCALL    SceneLogic_formAnimName -	STORE      0                  // 2caa1h -	LOAD       0                  // 2caa6h -	STORE      1 -	ZERO -	LOAD       1 -	LIBCALL    SpriteList_addSprites -	STORE      0                  // 2caaah -	LOAD       0                  // 2caafh -	DSTORE     $5456 -	IMM        25                 // 2cab2h -	ZERO -	ZERO -	DLOAD      $543C              // 2cab8h -	STORE      0 -	IMM        5 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2cac0h -	LOAD       0                  // 2cac5h -	DSTORE     $545A -	ZERO -	ONE -	ZERO -	DLOAD      $543E              // 2caceh -	STORE      0 -	IMM        4 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2cad6h -	LOAD       0                  // 2cadbh -	DSTORE     $545C -	ZERO -	IMM        2                  // 2cae0h -	ZERO -	DLOAD      $5440              // 2cae4h -	STORE      0 -	IMM        6 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2caech -	LOAD       0                  // 2caf1h -	DSTORE     $545E -	IMM        70                 // 2caf4h -	IMM        7 -	IMM        2 -	LOAD       0 -	LIBCALL    SequenceList_addSubEntry -	STORE      0                  // 2cafch -	IMM        60                 // 2cb01h -	ZERO -	ZERO -	DLOAD      $5442              // 2cb07h -	STORE      0 -	IMM        10 -	ZERO -	LOAD       0 -	LIBCALL    start_reversible_sprite_sequence -	STORE      0                  // 2cb0fh -	LOAD       0                  // 2cb14h -	DSTORE     $5460 -	ZERO -	ONE -	ZERO -	DLOAD      $5444              // 2cb1dh -	STORE      0 -	IMM        5 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2cb25h -	LOAD       0                  // 2cb2ah -	DSTORE     $5462 -	ZERO -	IMM        2                  // 2cb2fh -	ZERO -	DLOAD      $5446              // 2cb33h -	STORE      0 -	IMM        10 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2cb3bh -	LOAD       0                  // 2cb40h -	DSTORE     $5464 -	ZERO -	ZERO -	ZERO -	DLOAD      $5448              // 2cb49h -	STORE      0 -	IMM        6 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2cb51h -	LOAD       0                  // 2cb56h -	DSTORE     $5466 -	IMM        4                  // 2cb59h -	IMM        10                 // 2cb5bh -	ZERO -	DLOAD      $544C              // 2cb5fh -	STORE      0 -	IMM        6 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2cb67h -	LOAD       0                  // 2cb6ch -	DSTORE     $546A -	IMM        47                 // 2cb6fh -	IMM        32                 // 2cb71h -	ZERO -	DLOAD      $544E              // 2cb75h -	STORE      0 -	IMM        6 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2cb7dh -	LOAD       0                  // 2cb82h -	DSTORE     $546C -	ZERO -	IMM        311 -	LIBCALL    hotspot_activate -	ZERO -	DSTORE     $547E              // 2cb8eh -	DLOAD      Scene_priorSceneId // 2cb94h -	MINUSONE -	EQUAL -	JMPTRUE    @2cba1             // 2cb99h -	ZERO -	GSTORE     10                 // 2cb9bh -@2cba1: -	DLOAD      Scene_priorSceneId // 2cba1h -	IMM        $FFFE -	EQUAL -	JMPTRUE    @2cbb4             // 2cba6h -	IMM        100                // 2cba8h -	DSTORE     Player_playerPos_x -	IMM        152                // 2cbaeh -	DSTORE     Player_playerPos_y -@2cbb4: -	DLOAD      Scene_priorSceneId // 2cbb4h -	IMM        112 -	EQUAL -	JMPTRUE    @2cbc9             // 2cbb9h -	DLOAD      Scene_priorSceneId // 2cbbbh -	IMM        $FFFE -	NEQUAL -	JMPTRUE    @2cc36             // 2cbc0h -	DLOAD      $5476              // 2cbc2h -	ZERO -	EQUAL -	JMPTRUE    @2cc36             // 2cbc7h -@2cbc9: -	IMM        161                // 2cbcfh -	DSTORE     Player_playerPos_x -	IMM        123                // 2cbd5h -	DSTORE     Player_playerPos_y -	IMM        9                  // 2cbdbh -	DSTORE     Player_direction -	ZERO -	ZERO -	ZERO -	DLOAD      $5450              // 2cbe7h -	STORE      0 -	ZERO -	DSTORE     Player_visible     // 2cbech -	IMM        3 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2cbf3h -	LOAD       0                  // 2cbf8h -	DSTORE     $546E -	IMM        17                 // 2cbfeh -	IMM        17 -	IMM        17 -	LOAD       0 -	LIBCALL    SequenceList_setAnimRange -	ZERO -	IMM        71 -	LIBCALL    hotspot_activate -	IMM        159                // 2cc0eh -	IMM        84                 // 2cc11h -	IMM        33                 // 2cc13h -	IMM        36                 // 2cc15h -	MINUSONE -	IMM        319 -	IMM        71 -	LIBCALL    DynamicHotspots_add -	STORE      0                  // 2cc20h -	LOAD       0                  // 2cc25h -	DSTORE     $5478 -	DLOAD      Scene_priorSceneId // 2cc28h -	IMM        112 -	NEQUAL -	JMPTRUE    @2cc54             // 2cc2dh -	CALL       scene101_sub1 -	JUMP       @2cc54             // 2cc34h -@2cc36: -	ZERO -	ZERO -	ZERO -	DLOAD      $5452              // 2cc3ch -	STORE      0 -	IMM        6 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2cc44h -	LOAD       0                  // 2cc49h -	DSTORE     $5470 -	IMM        4 -	LOAD       0 -	LIBCALL    SequenceList_setDepth -@2cc54: -	ZERO -	IMM        56                 // 2cc56h -	IMM        55                 // 2cc58h -	IMM        54                 // 2cc5ah -	IMM        57                 // 2cc5ch -	IMM        50                 // 2cc5eh -	IMM        49                 // 2cc60h -	LIBCALL    quotes_load -	STORE      0                  // 2cc62h -	LOAD       0                  // 2cc6ah -	DSTORE     $5674 -	GLOAD      10                 // 2cc71h -	ZERO -	EQUAL -	JMPTRUE    @2ccb8             // 2cc76h -	ZERO -	ZERO -	IMM        2                  // 2cc7ch -	MINUSONE -	IMM        83 -	IMM        101 -	LIBCALL    form_resource_name -	STORE      0                  // 2cc86h -	LOAD       0                  // 2cc8bh -	STORE      1 -	LOAD       1 -	IMM        71 -	LIBCALL    MadsScene_loadAnimation -	IMM        68                 // 2cc95h -	DSTORE     Player_playerPos_x -	IMM        140                // 2cc9bh -	DSTORE     Player_playerPos_y -	IMM        4                  // 2cca1h -	DSTORE     Player_direction -	ZERO -	DSTORE     Player_visible     // 2cca9h -	ZERO -	DSTORE     Player_stepEnabled // 2ccach -	ZERO -	DSTORE     $5482              // 2ccafh -	IMM        30                 // 2ccb2h -	DSTORE     $5484 -@2ccb8: -	ZERO -	DSTORE     $5486              // 2ccb8h -	CALL       low_rooms_entry_sound -	RET -end - - -sub scene101_step -	DLOAD      $56E4              // 2eb30h -	STORE      0 -	DLOAD      $5486              // 2eb33h -	LOAD       0 -	EQUAL -	JMPTRUE    @2eb4e             // 2eb37h -	LOAD       0                  // 2eb39h -	DSTORE     $5486 -	LOAD       0                  // 2eb3ch -	ZERO -	EQUAL -	JMPTRUE    @2eb44             // 2eb3eh -	IMM        39                 // 2eb40h -	JUMP       @2eb46             // 2eb42h -@2eb44: -	IMM        11                 // 2eb44h -@2eb46: -	LIBCALL    start_sound -@2eb4e: -	DLOAD      Scene_abortTimers  // 2eb4eh -	STORE      0 -	JUMP       @2eb92             // 2eb51h -@2eb54: -	IMM        9                  // 2eb54h -	LIBCALL    start_sound -	JUMP       @2eba0             // 2eb5eh -@2eb60: -	ZERO -	GSTORE     10                 // 2eb60h -	MINUSONE -	DSTORE     Player_visible     // 2eb69h -	MINUSONE -	DSTORE     Player_stepEnabled // 2eb6ch -	DLOAD      $56E8              // 2eb6fh -	STORE      0 -	DLOAD      $542A              // 2eb73h -	STORE      2 -	ZERO -	STORE      1                  // 2eb77h -	LOAD       2                  // 2eb7bh -	LOAD       0 -	MINUS -	STORE      2 -	LOAD       2                  // 2eb7fh -	DSTORE     $57D0 -	JUMP       @2eba0             // 2eb87h -@2eb8a: -	CALL       scene101_sub1 -	JUMP       @2eba0             // 2eb8fh -@2eb92: -	LOAD       0                  // 2eb92h -	IMM        70 -	MINUS -	STORE      0 -	LOAD       0                  // 2eb95h -	STORE      4 -	LOAD       4 -	ZERO -	EQUAL -	JMPTRUE    @2eb54 -	LOAD       0                  // 2eb97h -	ONE -	MINUS -	STORE      0 -	LOAD       0                  // 2eb98h -	STORE      4 -	LOAD       4 -	ZERO -	EQUAL -	JMPTRUE    @2eb60 -	LOAD       0                  // 2eb9ah -	ONE -	MINUS -	STORE      0 -	LOAD       0                  // 2eb9bh -	STORE      4 -	LOAD       4 -	ZERO -	EQUAL -	JMPTRUE    @2eb8a -	LOAD       0                  // 2eb9dh -	ONE -	MINUS -	STORE      0 -	LOAD       0                  // 2eb9eh -	STORE      4 -	LOAD       4 -	ZERO -	EQUAL -	JMPTRUE    @2eb8a -@2eba0: -	ZERO -	STORE      0                  // 2eba0h -	LOAD       0                  // 2eba3h -	DLOAD      Scene_activeAnimation -	OR -	ZERO -	NEQUAL -	JMPTRUE    @2ebac             // 2eba7h -	JUMP       @2ecf1             // 2eba9h -@2ebac: -	DLOAD      Animation_currentFrame // 2ebach -	IMM        6 -	LESS -	JMPTRUE    @2ebed             // 2ebb1h -	DLOAD      $5482              // 2ebb3h -	ZERO -	NEQUAL -	JMPTRUE    @2ebed             // 2ebb8h -	DLOAD      $5482              // 2ebbah -	ONE -	PLUS -	DSTORE     $5482 -	IMM        49 -	LIBCALL    quotes_get_pointer -	ZERO -	IMM        240                // 2ebd2h -	ZERO -	ZERO -	DLOAD      $5484              // 2ebd9h -	STORE      3 -	IMM        $1110 -	LOAD       3 -	IMM        63 -	LIBCALL    KernelMessageList_add -	STORE      0                  // 2ebe3h -	DLOAD      $5484              // 2ebe8h -	IMM        14 -	PLUS -	DSTORE     $5484 -@2ebed: -	DLOAD      Animation_currentFrame // 2ebedh -	IMM        7 -	LESS -	JMPTRUE    @2ec2e             // 2ebf2h -	DLOAD      $5482              // 2ebf4h -	ONE -	NEQUAL -	JMPTRUE    @2ec2e             // 2ebf9h -	DLOAD      $5482              // 2ebfbh -	ONE -	PLUS -	DSTORE     $5482 -	IMM        54 -	LIBCALL    quotes_get_pointer -	ZERO -	IMM        240                // 2ec13h -	ZERO -	ZERO -	DLOAD      $5484              // 2ec1ah -	STORE      3 -	IMM        $1110 -	LOAD       3 -	IMM        63 -	LIBCALL    KernelMessageList_add -	STORE      0                  // 2ec24h -	DLOAD      $5484              // 2ec29h -	IMM        14 -	PLUS -	DSTORE     $5484 -@2ec2e: -	DLOAD      Animation_currentFrame // 2ec2eh -	IMM        10 -	LESS -	JMPTRUE    @2ec6f             // 2ec33h -	DLOAD      $5482              // 2ec35h -	IMM        2 -	NEQUAL -	JMPTRUE    @2ec6f             // 2ec3ah -	DLOAD      $5482              // 2ec3ch -	ONE -	PLUS -	DSTORE     $5482 -	IMM        55 -	LIBCALL    quotes_get_pointer -	ZERO -	IMM        240                // 2ec54h -	ZERO -	ZERO -	DLOAD      $5484              // 2ec5bh -	STORE      3 -	IMM        $1110 -	LOAD       3 -	IMM        63 -	LIBCALL    KernelMessageList_add -	STORE      0                  // 2ec65h -	DLOAD      $5484              // 2ec6ah -	IMM        14 -	PLUS -	DSTORE     $5484 -@2ec6f: -	DLOAD      Animation_currentFrame // 2ec6fh -	IMM        17 -	LESS -	JMPTRUE    @2ecb0             // 2ec74h -	DLOAD      $5482              // 2ec76h -	IMM        3 -	NEQUAL -	JMPTRUE    @2ecb0             // 2ec7bh -	DLOAD      $5482              // 2ec7dh -	ONE -	PLUS -	DSTORE     $5482 -	IMM        56 -	LIBCALL    quotes_get_pointer -	ZERO -	IMM        240                // 2ec95h -	ZERO -	ZERO -	DLOAD      $5484              // 2ec9ch -	STORE      3 -	IMM        $1110 -	LOAD       3 -	IMM        63 -	LIBCALL    KernelMessageList_add -	STORE      0                  // 2eca6h -	DLOAD      $5484              // 2ecabh -	IMM        14 -	PLUS -	DSTORE     $5484 -@2ecb0: -	DLOAD      Animation_currentFrame // 2ecb0h -	IMM        20 -	LESS -	JMPTRUE    @2ecf1             // 2ecb5h -	DLOAD      $5482              // 2ecb7h -	IMM        4 -	NEQUAL -	JMPTRUE    @2ecf1             // 2ecbch -	DLOAD      $5482              // 2ecbeh -	ONE -	PLUS -	DSTORE     $5482 -	IMM        50 -	LIBCALL    quotes_get_pointer -	ZERO -	IMM        240                // 2ecd6h -	ZERO -	ZERO -	DLOAD      $5484              // 2ecddh -	STORE      3 -	IMM        $1110 -	LOAD       3 -	IMM        63 -	LIBCALL    KernelMessageList_add -	STORE      0                  // 2ece7h -	DLOAD      $5484              // 2ecech -	IMM        14 -	PLUS -	DSTORE     $5484 -@2ecf1: -	RET -end - - -sub scene101_preaction -	ZERO -	IMM        384                // 2edd6h -	IMM        3                  // 2edd9h -	LIBCALL    Action_isAction -	STORE      0                  // 2eddbh -	LOAD       0                  // 2ede3h -	ZERO -	EQUAL -	JMPTRUE    @2eded             // 2ede5h -	MINUSONE -	DSTORE     $56F2              // 2ede7h -@2eded: -	DLOAD      $5476              // 2ededh -	ZERO -	NEQUAL -	JMPTRUE    @2edf7             // 2edf2h -	JUMP       @2eea9             // 2edf4h -@2edf7: -	ZERO -	IMM        3                  // 2edf9h -	LIBCALL    Action_isAction -	STORE      0                  // 2edfbh -	LOAD       0                  // 2ee03h -	ZERO -	NEQUAL -	JMPTRUE    @2ee44             // 2ee05h -	LOAD       0                  // 2ee07h -	IMM        71                 // 2ee08h -	LIBCALL    Action_isAction -	STORE      0                  // 2ee0ah -	LOAD       0                  // 2ee12h -	ZERO -	NEQUAL -	JMPTRUE    @2ee44             // 2ee14h -	LOAD       0                  // 2ee16h -	IMM        8                  // 2ee17h -	LIBCALL    Action_isAction -	STORE      0                  // 2ee19h -	LOAD       0                  // 2ee21h -	ZERO -	NEQUAL -	JMPTRUE    @2ee44             // 2ee23h -	LOAD       0                  // 2ee25h -	IMM        259                // 2ee26h -	LIBCALL    Action_isAction -	STORE      0                  // 2ee29h -	LOAD       0                  // 2ee31h -	ZERO -	NEQUAL -	JMPTRUE    @2ee44             // 2ee33h -	LOAD       0                  // 2ee35h -	IMM        125                // 2ee36h -	LIBCALL    Action_isAction -	STORE      0                  // 2ee38h -	LOAD       0                  // 2ee40h -	ZERO -	EQUAL -	JMPTRUE    @2ee4a             // 2ee42h -@2ee44: -	ZERO -	DSTORE     $56F2              // 2ee44h -@2ee4a: -	DLOAD      $56F2              // 2ee4ah -	ZERO -	EQUAL -	JMPTRUE    @2eea9             // 2ee4fh -	DLOAD      Scene_abortTimers  // 2ee51h -	STORE      0 -	LOAD       0                  // 2ee54h -	ZERO -	EQUAL -	JMPTRUE    @2ee60             // 2ee56h -	LOAD       0                  // 2ee58h -	ONE -	MINUS -	STORE      0 -	LOAD       0                  // 2ee59h -	STORE      4 -	LOAD       4 -	ZERO -	NEQUAL -	JMPTRUE    @2ee5e -	JUMP       @2eee0             // 2ee5bh -@2ee5e: -	JUMP       @2eea9             // 2ee5eh -@2ee60: -	ZERO -	DSTORE     $56F4              // 2ee62h -	ZERO -	DSTORE     Player_stepEnabled // 2ee65h -	DLOAD      $546E              // 2ee68h -	STORE      0 -	LOAD       0 -	LIBCALL    SequenceList_remove -	ZERO -	ZERO -	ONE -	DLOAD      $5450              // 2ee76h -	STORE      0 -	IMM        3 -	ZERO -	LOAD       0 -	LIBCALL    start_sprite_sequence3 -	STORE      0                  // 2ee7eh -	LOAD       0                  // 2ee83h -	DSTORE     $546E -	ONE -	ZERO -	ZERO -	LOAD       0 -	LIBCALL    SequenceList_addSubEntry -	STORE      0                  // 2ee8ch -	DLOAD      $546E              // 2ee91h -	STORE      0 -	IMM        17 -	ONE -	LOAD       0 -	LIBCALL    SequenceList_setAnimRange -	IMM        16                 // 2ee9fh -	LIBCALL    start_sound -@2eea9: -	DLOAD      $547E              // 2eea9h -	ZERO -	NEQUAL -	JMPTRUE    @2eeb3             // 2eeaeh -	JUMP       @2ef9f             // 2eeb0h -@2eeb3: -	ZERO -	IMM        309                // 2eeb5h -	LIBCALL    Action_isAction -	STORE      0                  // 2eeb8h -	LOAD       0                  // 2eec0h -	ZERO -	EQUAL -	JMPTRUE    @2eec7             // 2eec2h -	JUMP       @2ef9f             // 2eec4h -@2eec7: -	LOAD       0                  // 2eec7h -	IMM        311                // 2eec8h -	LIBCALL    Action_isAction -	STORE      0                  // 2eecbh -	LOAD       0                  // 2eed3h -	ZERO -	EQUAL -	JMPTRUE    @2eeda             // 2eed5h -	JUMP       @2ef9f             // 2eed7h -@2eeda: -	DLOAD      Scene_abortTimers  // 2eedah -	STORE      0 -	JUMP       @2ef98             // 2eeddh -@2eee0: -	MINUSONE -	DSTORE     Player_visible     // 2eee9h -	MINUSONE -	DSTORE     Player_stepEnabled // 2eeedh -	MINUSONE -	DSTORE     $56F4              // 2eef1h -	MINUSONE -	IMM        71 -	LIBCALL    hotspot_activate -	DLOAD      $5478              // 2eefdh -	STORE      0 -	LOAD       0 -	LIBCALL    DynamicHotspots_remove -	ZERO -	ZERO -	ZERO -	DLOAD      $5452              // 2ef0bh -	STORE      0 -	IMM        6 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2ef13h -	LOAD       0                  // 2ef18h -	DSTORE     $5470 -	IMM        4 -	LOAD       0 -	LIBCALL    SequenceList_setDepth -	JUMP       @2eea9             // 2ef23h -@2ef26: -	DLOAD      $56F2              // 2ef26h -	ZERO -	EQUAL -	JMPTRUE    @2ef9f             // 2ef2bh -	DLOAD      $5472              // 2ef2dh -	STORE      0 -	LOAD       0 -	LIBCALL    SequenceList_remove -	IMM        24 -	LIBCALL    object_is_present -	STORE      0                  // 2ef38h -	ONE -	STORE      4                  // 2ef3dh -	LOAD       0 -	ONE -	EQUAL -	JMPFALSE   @2ef42 -	ZERO -	STORE      4 -@2ef42: -	LOAD       4 -	STORE      0 -	LOAD       0                  // 2ef45h -	IMM        13 -	PLUS -	STORE      0 -	LOAD       0                  // 2ef48h -	DSTORE     $5480 -	ZERO -	ZERO -	ONE -	LOAD       0                  // 2ef51h -	STORE      1 -	LOAD       1                  // 2ef53h -	IMM        2 -	MULT -	IMM        6 -	ZERO -	ONE -	LIBCALL    start_sprite_sequence3 -	STORE      0                  // 2ef5eh -	LOAD       0                  // 2ef63h -	DSTORE     $5472 -	ONE -	ZERO -	ZERO -	LOAD       0 -	LIBCALL    SequenceList_addSubEntry -	STORE      0                  // 2ef6ch -	ZERO -	DSTORE     Player_stepEnabled // 2ef71h -	IMM        20                 // 2ef77h -	LIBCALL    start_sound -	RET -@2ef82: -	MINUSONE -	DSTORE     Player_stepEnabled // 2ef82h -	ZERO -	DSTORE     $547E              // 2ef8ah -	ZERO -	IMM        311 -	LIBCALL    hotspot_activate -	RET -@2ef98: -	LOAD       0                  // 2ef98h -	ZERO -	EQUAL -	JMPTRUE    @2ef26             // 2ef9ah -	LOAD       0                  // 2ef9ch -	ONE -	MINUS -	STORE      0 -	LOAD       0                  // 2ef9dh -	STORE      4 -	LOAD       4 -	ZERO -	EQUAL -	JMPTRUE    @2ef82 -@2ef9f: -	RET -end - - -sub scene101_actions -	DLOAD      $577A              // 2efa0h -	ZERO -	EQUAL -	JMPTRUE    @2efae             // 2efa5h -	DLOAD      0                  // 2efaah -	STORE      0 -	JUMP       @2f28f -@2efae: -	ZERO -	IMM        204                // 2efb0h -	IMM        13                 // 2efb3h -	LIBCALL    Action_isAction -	STORE      0                  // 2efb5h -	LOAD       0                  // 2efbdh -	ZERO -	EQUAL -	JMPTRUE    @2efca             // 2efbfh -	IMM        102                // 2efc1h -	DSTORE     Scene_nextScene -	JUMP       @2f6b4             // 2efc7h -@2efca: -	ZERO -	IMM        71                 // 2efcch -	IMM        319                // 2efceh -	LIBCALL    Action_isAction -	STORE      0                  // 2efd1h -	LOAD       0                  // 2efd9h -	ZERO -	NEQUAL -	JMPTRUE    @2eff9             // 2efdbh -	LOAD       0                  // 2efddh -	IMM        384                // 2efdeh -	IMM        3                  // 2efe1h -	LIBCALL    Action_isAction -	STORE      0                  // 2efe3h -	LOAD       0                  // 2efebh -	ZERO -	NEQUAL -	JMPTRUE    @2eff2             // 2efedh -	JUMP       @2f072             // 2efefh -@2eff2: -	DLOAD      $5476              // 2eff2h -	ZERO -	NEQUAL -	JMPTRUE    @2f072             // 2eff7h -@2eff9: -	DLOAD      $5476              // 2eff9h -	ZERO -	EQUAL -	JMPTRUE    @2f003             // 2effeh -	JUMP       @2f120             // 2f000h -@2f003: -	DLOAD      Scene_abortTimers  // 2f003h -	STORE      0 -	LOAD       0                  // 2f006h -	ZERO -	EQUAL -	JMPTRUE    @2f016             // 2f008h -	LOAD       0                  // 2f00ah -	ONE -	MINUS -	STORE      0 -	LOAD       0                  // 2f00bh -	STORE      4 -	LOAD       4 -	ZERO -	EQUAL -	JMPTRUE    @2f068 -	LOAD       0                  // 2f00dh -	ONE -	MINUS -	STORE      0 -	LOAD       0                  // 2f00eh -	STORE      4 -	LOAD       4 -	ZERO -	NEQUAL -	JMPTRUE    @2f013 -	JUMP       @2f0b4             // 2f010h -@2f013: -	JUMP       @2f072             // 2f013h -@2f016: -	DLOAD      $5470              // 2f016h -	STORE      0 -	LOAD       0 -	LIBCALL    SequenceList_remove -	ZERO -	ZERO -	ONE -	DLOAD      $5450              // 2f024h -	STORE      0 -	IMM        3 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2f02ch -	LOAD       0                  // 2f031h -	DSTORE     $546E -	IMM        17 -	ONE -	LOAD       0 -	LIBCALL    SequenceList_setAnimRange -	ONE -	DLOAD      $546E              // 2f041h -	STORE      0 -	IMM        10 -	IMM        2 -	LOAD       0 -	LIBCALL    SequenceList_addSubEntry -	STORE      0                  // 2f04ah -	IMM        2                  // 2f04fh -	DLOAD      $546E              // 2f051h -	STORE      0 -	ZERO -	ZERO -	LOAD       0 -	LIBCALL    SequenceList_addSubEntry -	STORE      0                  // 2f058h -	ZERO -	DSTORE     Player_stepEnabled // 2f05fh -	ZERO -	DSTORE     Player_visible     // 2f062h -	DLOAD      0                  // 2f065h -	STORE      0 -	JUMP       @2f6b4 -@2f068: -	IMM        16                 // 2f068h -	LIBCALL    start_sound -@2f072: -	ZERO -	IMM        309                // 2f074h -	IMM        13                 // 2f077h -	LIBCALL    Action_isAction -	STORE      0                  // 2f079h -	LOAD       0                  // 2f081h -	ZERO -	NEQUAL -	JMPTRUE    @2f09a             // 2f083h -	LOAD       0                  // 2f085h -	IMM        309                // 2f086h -	IMM        6                  // 2f089h -	LIBCALL    Action_isAction -	STORE      0                  // 2f08bh -	LOAD       0                  // 2f093h -	ZERO -	NEQUAL -	JMPTRUE    @2f09a             // 2f095h -	JUMP       @2f1cc             // 2f097h -@2f09a: -	DLOAD      $547E              // 2f09ah -	ZERO -	EQUAL -	JMPTRUE    @2f0a4             // 2f09fh -	JUMP       @2f1cc             // 2f0a1h -@2f0a4: -	DLOAD      Scene_abortTimers  // 2f0a4h -	STORE      0 -	LOAD       0                  // 2f0a7h -	ZERO -	EQUAL -	JMPTRUE    @2f126             // 2f0a9h -	LOAD       0                  // 2f0abh -	ONE -	MINUS -	STORE      0 -	LOAD       0                  // 2f0ach -	STORE      4 -	LOAD       4 -	ZERO -	NEQUAL -	JMPTRUE    @2f0b1 -	JUMP       @2f176             // 2f0aeh -@2f0b1: -	JUMP       @2f6b4             // 2f0b1h -@2f0b4: -	ZERO -	ZERO -	ZERO -	DLOAD      $5450              // 2f0bah -	STORE      0 -	IMM        3 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2f0c2h -	LOAD       0                  // 2f0c7h -	DSTORE     $546E -	IMM        17                 // 2f0cdh -	IMM        17 -	IMM        17 -	LOAD       0 -	LIBCALL    SequenceList_setAnimRange -	MINUSONE -	DSTORE     Player_stepEnabled // 2f0d7h -	ZERO -	IMM        71 -	LIBCALL    hotspot_activate -	IMM        159                // 2f0e6h -	IMM        84                 // 2f0e9h -	IMM        33                 // 2f0ebh -	IMM        36                 // 2f0edh -	MINUSONE -	IMM        319 -	IMM        71 -	LIBCALL    DynamicHotspots_add -	STORE      0                  // 2f0f8h -	LOAD       0                  // 2f0fdh -	DSTORE     $5478 -	ZERO -	IMM        384                // 2f102h -	IMM        3                  // 2f105h -	LIBCALL    Action_isAction -	STORE      0                  // 2f107h -	LOAD       0                  // 2f10fh -	ZERO -	NEQUAL -	JMPTRUE    @2f116             // 2f111h -	JUMP       @2f6b4             // 2f113h -@2f116: -	ZERO -	DSTORE     Scene_abortTimers  // 2f116h -	JUMP       @2f072             // 2f11ch -@2f120: -	DLOAD      0                  // 2f123h -	STORE      0 -	JUMP       @2f28f -@2f126: -	IMM        24 -	LIBCALL    object_is_present -	STORE      0                  // 2f129h -	ONE -	STORE      4                  // 2f12eh -	LOAD       0 -	ONE -	EQUAL -	JMPFALSE   @2f133 -	ZERO -	STORE      4 -@2f133: -	LOAD       4 -	STORE      0 -	LOAD       0                  // 2f136h -	IMM        13 -	PLUS -	STORE      0 -	LOAD       0                  // 2f139h -	DSTORE     $5480 -	ZERO -	ZERO -	ONE -	LOAD       0                  // 2f142h -	STORE      1 -	LOAD       1                  // 2f144h -	IMM        2 -	MULT -	IMM        6 -	ZERO -	ONE -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2f14fh -	LOAD       0                  // 2f154h -	DSTORE     $5472 -	ONE -	ZERO -	ZERO -	LOAD       0 -	LIBCALL    SequenceList_addSubEntry -	STORE      0                  // 2f15dh -	ZERO -	DSTORE     Player_stepEnabled // 2f162h -	IMM        20                 // 2f168h -@2f16a: -	LIBCALL    start_sound -	JUMP       @2f6b4             // 2f172h -@2f176: -	DLOAD      $5472              // 2f176h -	STORE      0 -	LOAD       0 -	LIBCALL    SequenceList_remove -	ZERO -	ZERO -	ZERO -	DLOAD      $5480              // 2f184h -	STORE      1 -	LOAD       1                  // 2f188h -	IMM        2 -	MULT -	IMM        6 -	ZERO -	ONE -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2f193h -	LOAD       0                  // 2f198h -	DSTORE     $5472 -	IMM        $FFFE              // 2f19eh -	IMM        $FFFE -	IMM        $FFFE -	LOAD       0 -	LIBCALL    SequenceList_setAnimRange -	MINUSONE -	DSTORE     Player_stepEnabled // 2f1a8h -	MINUSONE -	DSTORE     $547E              // 2f1abh -	IMM        24 -	LIBCALL    object_is_present -	STORE      0                  // 2f1b1h -	LOAD       0                  // 2f1b6h -	ZERO -	NEQUAL -	JMPTRUE    @2f1bd             // 2f1b8h -	JUMP       @2f6b4             // 2f1bah -@2f1bd: -	MINUSONE -	IMM        311 -	LIBCALL    hotspot_activate -	JUMP       @2f6b4             // 2f1c8h -@2f1cc: -	ZERO -	IMM        311                // 2f1ceh -	IMM        4                  // 2f1d1h -	LIBCALL    Action_isAction -	STORE      0                  // 2f1d3h -	LOAD       0                  // 2f1dbh -	ZERO -	NEQUAL -	JMPTRUE    @2f1f1             // 2f1ddh -	LOAD       0                  // 2f1dfh -	IMM        311                // 2f1e0h -	IMM        10                 // 2f1e3h -	LIBCALL    Action_isAction -	STORE      0                  // 2f1e5h -	LOAD       0                  // 2f1edh -	ZERO -	EQUAL -	JMPTRUE    @2f248             // 2f1efh -@2f1f1: -	IMM        24 -	LIBCALL    object_is_present -	STORE      0                  // 2f1f4h -	LOAD       0                  // 2f1f9h -	ZERO -	EQUAL -	JMPTRUE    @2f248             // 2f1fbh -	IMM        24 -	LIBCALL    inventory_add -	DLOAD      $5472              // 2f205h -	STORE      0 -	LOAD       0 -	LIBCALL    SequenceList_remove -	ZERO -	ZERO -	ZERO -	DLOAD      $5456              // 2f213h -	STORE      0 -	IMM        6 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2f21bh -	LOAD       0                  // 2f220h -	DSTORE     $5472 -	IMM        $FFFE              // 2f226h -	IMM        $FFFE -	IMM        $FFFE -	LOAD       0 -	LIBCALL    SequenceList_setAnimRange -	ZERO -	IMM        311 -	LIBCALL    hotspot_activate -	ZERO -	IMM        $2788              // 2f238h -	LIBCALL    dialog_picture_show -	IMM        22                 // 2f243h -	JUMP       @2f16a             // 2f245h -@2f248: -	ZERO -	IMM        309                // 2f24ah -	IMM        3                  // 2f24dh -	LIBCALL    Action_isAction -	STORE      0                  // 2f24fh -	LOAD       0                  // 2f257h -	ZERO -	NEQUAL -	JMPTRUE    @2f279             // 2f259h -	LOAD       0                  // 2f25bh -	IMM        311                // 2f25ch -	IMM        3                  // 2f25fh -	LIBCALL    Action_isAction -	STORE      0                  // 2f261h -	LOAD       0                  // 2f269h -	ZERO -	EQUAL -	JMPTRUE    @2f2a6             // 2f26bh -	LIBCALL    object_is_in_inventory -	STORE      0                  // 2f270h -	LOAD       0                  // 2f275h -	ZERO -	NEQUAL -	JMPTRUE    @2f2a6             // 2f277h -@2f279: -	DLOAD      $547E              // 2f279h -	ZERO -	EQUAL -	JMPTRUE    @2f2a0             // 2f27eh -	IMM        24 -	LIBCALL    object_is_present -	STORE      0                  // 2f283h -	LOAD       0                  // 2f288h -	ZERO -	EQUAL -	JMPTRUE    @2f29a             // 2f28ah -@2f28f: -@2f291: -	IMM        $2790 -	ZERO -	LIBCALL    dialog_show -	JUMP       @2f6b4             // 2f296h -@2f29a: -@2f29d: -	DLOAD      0                  // 2f29eh -	STORE      0 -	JUMP       @2f291 -@2f2a0: -	DLOAD      0                  // 2f2a3h -	STORE      0 -	JUMP       @2f29d -@2f2a6: -	ZERO -	IMM        309                // 2f2a8h -	IMM        6                  // 2f2abh -	LIBCALL    Action_isAction -	STORE      0                  // 2f2adh -	LOAD       0                  // 2f2b5h -	ZERO -	EQUAL -	JMPTRUE    @2f2c6             // 2f2b7h -	DLOAD      $547E              // 2f2b9h -	ZERO -	EQUAL -	JMPTRUE    @2f2c6             // 2f2beh -	DLOAD      0                  // 2f2c3h -	STORE      0 -	JUMP       @2f28f -@2f2c6: -	ZERO -	IMM        384                // 2f2c8h -	IMM        3                  // 2f2cbh -	LIBCALL    Action_isAction -	STORE      0                  // 2f2cdh -	LOAD       0                  // 2f2d5h -	ZERO -	NEQUAL -	JMPTRUE    @2f2dc             // 2f2d7h -	JUMP       @2f3d8             // 2f2d9h -@2f2dc: -	DLOAD      $5476              // 2f2dch -	ZERO -	NEQUAL -	JMPTRUE    @2f2e6             // 2f2e1h -	JUMP       @2f3d8             // 2f2e3h -@2f2e6: -	GLOAD      14                 // 2f2e6h -	ZERO -	EQUAL -	JMPTRUE    @2f2f4             // 2f2ebh -	CALL       scene101_sub1 -	JUMP       @2f6b4             // 2f2f1h -@2f2f4: -	DLOAD      Scene_abortTimers  // 2f2f4h -	STORE      0 -	LOAD       0                  // 2f2f7h -	ZERO -	EQUAL -	JMPTRUE    @2f30a             // 2f2f9h -	LOAD       0                  // 2f2fbh -	ONE -	MINUS -	STORE      0 -	LOAD       0                  // 2f2fch -	STORE      4 -	LOAD       4 -	ZERO -	EQUAL -	JMPTRUE    @2f34c -	LOAD       0                  // 2f2feh -	ONE -	MINUS -	STORE      0 -	LOAD       0                  // 2f2ffh -	STORE      4 -	LOAD       4 -	ZERO -	EQUAL -	JMPTRUE    @2f37e -	LOAD       0                  // 2f301h -	ONE -	MINUS -	STORE      0 -	LOAD       0                  // 2f302h -	STORE      4 -	LOAD       4 -	ZERO -	NEQUAL -	JMPTRUE    @2f307 -	JUMP       @2f3c2             // 2f304h -@2f307: -	JUMP       @2f6b4             // 2f307h -@2f30a: -	ZERO -	DSTORE     Player_stepEnabled // 2f30ah -	DLOAD      $546E              // 2f310h -	STORE      0 -	LOAD       0 -	LIBCALL    SequenceList_remove -	ZERO -	ZERO -	ONE -	DLOAD      $5450              // 2f31eh -	STORE      0 -	IMM        3 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2f326h -	LOAD       0                  // 2f32bh -	DSTORE     $546E -	IMM        21 -	IMM        17 -	LOAD       0 -	LIBCALL    SequenceList_setAnimRange -	ONE -	DLOAD      $546E              // 2f33bh -	STORE      0 -	ZERO -	ZERO -	LOAD       0 -	LIBCALL    SequenceList_addSubEntry -	STORE      0                  // 2f342h -	IMM        17                 // 2f347h -	JUMP       @2f16a             // 2f349h -@2f34c: -	ZERO -	ZERO -	ONE -	DLOAD      $5450              // 2f352h -	STORE      0 -	IMM        3 -	ZERO -	LOAD       0 -	LIBCALL    start_sprite_sequence3 -	STORE      0                  // 2f35ah -	LOAD       0                  // 2f35fh -	DSTORE     $546E -	IMM        2                  // 2f362h -	ZERO -	ZERO -	LOAD       0 -	LIBCALL    SequenceList_addSubEntry -	STORE      0                  // 2f368h -	DLOAD      $546E              // 2f36dh -	STORE      0 -	IMM        21 -	IMM        17 -	LOAD       0 -	LIBCALL    SequenceList_setAnimRange -	JUMP       @2f6b4             // 2f37bh -@2f37e: -	ZERO -	ZERO -	ZERO -	DLOAD      $5450              // 2f384h -	STORE      0 -	IMM        3 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2f38ch -	LOAD       0                  // 2f391h -	DSTORE     $546E -	IMM        17                 // 2f397h -	IMM        17 -	IMM        17 -	LOAD       0 -	LIBCALL    SequenceList_setAnimRange -	ZERO -	ZERO -	ONE -	DLOAD      $544A              // 2f3a4h -	STORE      0 -	IMM        3 -	ZERO -	LOAD       0 -	LIBCALL    start_cycled_sprite_sequence -	STORE      0                  // 2f3ach -	LOAD       0                  // 2f3b1h -	DSTORE     $5468 -	IMM        3                  // 2f3b4h -	ZERO -	ZERO -	LOAD       0 -	LIBCALL    SequenceList_addSubEntry -	STORE      0                  // 2f3bah -	JUMP       @2f6b4             // 2f3bfh -@2f3c2: -	MINUSONE -	DSTORE     Player_stepEnabled // 2f3c5h -	MINUSONE -	GSTORE     14                 // 2f3c8h -	IMM        112                // 2f3ceh -	DSTORE     Scene_nextScene -	DLOAD      0                  // 2f3d4h -	STORE      0 -	JUMP       @2f6b4 -@2f3d8: -	ZERO -	IMM        71                 // 2f3dah -	IMM        3                  // 2f3dch -	LIBCALL    Action_isAction -	STORE      0                  // 2f3deh -	LOAD       0                  // 2f3e6h -	ZERO -	EQUAL -	JMPTRUE    @2f3f0             // 2f3e8h -	DLOAD      0                  // 2f3edh -	STORE      0 -	JUMP       @2f28f -@2f3f0: -	ZERO -	IMM        3                  // 2f3f2h -	LIBCALL    Action_isAction -	STORE      0                  // 2f3f4h -	LOAD       0                  // 2f3fch -	ZERO -	NEQUAL -	JMPTRUE    @2f410             // 2f3feh -	LOAD       0                  // 2f400h -	IMM        259                // 2f401h -	LIBCALL    Action_isAction -	STORE      0                  // 2f404h -	LOAD       0                  // 2f40ch -	ZERO -	EQUAL -	JMPTRUE    @2f438             // 2f40eh -@2f410: -	ZERO -	IMM        142                // 2f412h -	LIBCALL    Action_isAction -	STORE      0                  // 2f415h -	LOAD       0                  // 2f41dh -	ZERO -	NEQUAL -	JMPTRUE    @2f431             // 2f41fh -	LOAD       0                  // 2f421h -	IMM        249                // 2f422h -	LIBCALL    Action_isAction -	STORE      0                  // 2f425h -	LOAD       0                  // 2f42dh -	ZERO -	EQUAL -	JMPTRUE    @2f438             // 2f42fh -@2f431: -	DLOAD      0                  // 2f434h -	STORE      0 -	JUMP       @2f28f -@2f438: -	ZERO -	IMM        168                // 2f43ah -	IMM        3                  // 2f43dh -	LIBCALL    Action_isAction -	STORE      0                  // 2f43fh -	LOAD       0                  // 2f447h -	ZERO -	NEQUAL -	JMPTRUE    @2f481             // 2f449h -	LOAD       0                  // 2f44bh -	IMM        248                // 2f44ch -	IMM        3                  // 2f44fh -	LIBCALL    Action_isAction -	STORE      0                  // 2f451h -	LOAD       0                  // 2f459h -	ZERO -	NEQUAL -	JMPTRUE    @2f481             // 2f45bh -	LOAD       0                  // 2f45dh -	IMM        168                // 2f45eh -	IMM        125                // 2f461h -	LIBCALL    Action_isAction -	STORE      0                  // 2f463h -	LOAD       0                  // 2f46bh -	ZERO -	NEQUAL -	JMPTRUE    @2f481             // 2f46dh -	LOAD       0                  // 2f46fh -	IMM        248                // 2f470h -	IMM        125                // 2f473h -	LIBCALL    Action_isAction -	STORE      0                  // 2f475h -	LOAD       0                  // 2f47dh -	ZERO -	EQUAL -	JMPTRUE    @2f488             // 2f47fh -@2f481: -	DLOAD      0                  // 2f484h -	STORE      0 -	JUMP       @2f28f -@2f488: -	ZERO -	IMM        145                // 2f48ah -	IMM        3                  // 2f48dh -	LIBCALL    Action_isAction -	STORE      0                  // 2f48fh -	LOAD       0                  // 2f497h -	ZERO -	EQUAL -	JMPTRUE    @2f4a2             // 2f499h -	DLOAD      0                  // 2f49eh -	STORE      0 -	JUMP       @2f28f -@2f4a2: -	ZERO -	IMM        225                // 2f4a4h -	IMM        3                  // 2f4a7h -	LIBCALL    Action_isAction -	STORE      0                  // 2f4a9h -	LOAD       0                  // 2f4b1h -	ZERO -	NEQUAL -	JMPTRUE    @2f4c8             // 2f4b3h -	LOAD       0                  // 2f4b5h -	IMM        225                // 2f4b6h -	IMM        210                // 2f4b9h -	LIBCALL    Action_isAction -	STORE      0                  // 2f4bch -	LOAD       0                  // 2f4c4h -	ZERO -	EQUAL -	JMPTRUE    @2f4ce             // 2f4c6h -@2f4c8: -	DLOAD      0                  // 2f4cbh -	STORE      0 -	JUMP       @2f28f -@2f4ce: -	ZERO -	IMM        96                 // 2f4d0h -	IMM        3                  // 2f4d2h -	LIBCALL    Action_isAction -	STORE      0                  // 2f4d4h -	LOAD       0                  // 2f4dch -	ZERO -	EQUAL -	JMPTRUE    @2f4e6             // 2f4deh -	DLOAD      0                  // 2f4e3h -	STORE      0 -	JUMP       @2f28f -@2f4e6: -	ZERO -	IMM        273                // 2f4e8h -	IMM        3                  // 2f4ebh -	LIBCALL    Action_isAction -	STORE      0                  // 2f4edh -	LOAD       0                  // 2f4f5h -	ZERO -	EQUAL -	JMPTRUE    @2f500             // 2f4f7h -	DLOAD      0                  // 2f4fch -	STORE      0 -	JUMP       @2f28f -@2f500: -	ZERO -	IMM        123                // 2f502h -	IMM        3                  // 2f504h -	LIBCALL    Action_isAction -	STORE      0                  // 2f506h -	LOAD       0                  // 2f50eh -	ZERO -	NEQUAL -	JMPTRUE    @2f52f             // 2f510h -	LOAD       0                  // 2f512h -	IMM        123                // 2f513h -	IMM        6                  // 2f515h -	LIBCALL    Action_isAction -	STORE      0                  // 2f517h -	LOAD       0                  // 2f51fh -	ZERO -	EQUAL -	JMPTRUE    @2f536             // 2f521h -	LIBCALL    object_is_in_inventory -	STORE      0                  // 2f526h -	LOAD       0                  // 2f52bh -	ZERO -	NEQUAL -	JMPTRUE    @2f536             // 2f52dh -@2f52f: -	DLOAD      0                  // 2f532h -	STORE      0 -	JUMP       @2f28f -@2f536: -	ZERO -	IMM        123                // 2f538h -	IMM        6                  // 2f53ah -	LIBCALL    Action_isAction -	STORE      0                  // 2f53ch -	LOAD       0                  // 2f544h -	ZERO -	EQUAL -	JMPTRUE    @2f54e             // 2f546h -	DLOAD      0                  // 2f54bh -	STORE      0 -	JUMP       @2f28f -@2f54e: -	ZERO -	IMM        358                // 2f550h -	IMM        3                  // 2f553h -	LIBCALL    Action_isAction -	STORE      0                  // 2f555h -	LOAD       0                  // 2f55dh -	ZERO -	EQUAL -	JMPTRUE    @2f568             // 2f55fh -	DLOAD      0                  // 2f564h -	STORE      0 -	JUMP       @2f28f -@2f568: -	ZERO -	IMM        202                // 2f56ah -	IMM        3                  // 2f56dh -	LIBCALL    Action_isAction -	STORE      0                  // 2f56fh -	LOAD       0                  // 2f577h -	ZERO -	EQUAL -	JMPTRUE    @2f582             // 2f579h -	DLOAD      0                  // 2f57eh -	STORE      0 -	JUMP       @2f28f -@2f582: -	ZERO -	IMM        99                 // 2f584h -	IMM        3                  // 2f586h -	LIBCALL    Action_isAction -	STORE      0                  // 2f588h -	LOAD       0                  // 2f590h -	ZERO -	EQUAL -	JMPTRUE    @2f59a             // 2f592h -	DLOAD      0                  // 2f597h -	STORE      0 -	JUMP       @2f28f -@2f59a: -	ZERO -	IMM        235                // 2f59ch -	IMM        3                  // 2f59fh -	LIBCALL    Action_isAction -	STORE      0                  // 2f5a1h -	LOAD       0                  // 2f5a9h -	ZERO -	EQUAL -	JMPTRUE    @2f5b4             // 2f5abh -	DLOAD      0                  // 2f5b0h -	STORE      0 -	JUMP       @2f28f -@2f5b4: -	ZERO -	IMM        120                // 2f5b6h -	IMM        3                  // 2f5b8h -	LIBCALL    Action_isAction -	STORE      0                  // 2f5bah -	LOAD       0                  // 2f5c2h -	ZERO -	EQUAL -	JMPTRUE    @2f5cc             // 2f5c4h -	DLOAD      0                  // 2f5c9h -	STORE      0 -	JUMP       @2f28f -@2f5cc: -	ZERO -	IMM        400                // 2f5ceh -	IMM        3                  // 2f5d1h -	LIBCALL    Action_isAction -	STORE      0                  // 2f5d3h -	LOAD       0                  // 2f5dbh -	ZERO -	EQUAL -	JMPTRUE    @2f5e6             // 2f5ddh -	DLOAD      0                  // 2f5e2h -	STORE      0 -	JUMP       @2f28f -@2f5e6: -	ZERO -	IMM        312                // 2f5e8h -	IMM        3                  // 2f5ebh -	LIBCALL    Action_isAction -	STORE      0                  // 2f5edh -	LOAD       0                  // 2f5f5h -	ZERO -	EQUAL -	JMPTRUE    @2f600             // 2f5f7h -	DLOAD      0                  // 2f5fch -	STORE      0 -	JUMP       @2f28f -@2f600: -	ZERO -	IMM        273                // 2f602h -	IMM        4                  // 2f605h -	LIBCALL    Action_isAction -	STORE      0                  // 2f607h -	LOAD       0                  // 2f60fh -	ZERO -	EQUAL -	JMPTRUE    @2f61a             // 2f611h -	DLOAD      0                  // 2f616h -	STORE      0 -	JUMP       @2f28f -@2f61a: -	ZERO -	IMM        145                // 2f61ch -	IMM        4                  // 2f61fh -	LIBCALL    Action_isAction -	STORE      0                  // 2f621h -	LOAD       0                  // 2f629h -	ZERO -	EQUAL -	JMPTRUE    @2f634             // 2f62bh -	DLOAD      0                  // 2f630h -	STORE      0 -	JUMP       @2f28f -@2f634: -	ZERO -	IMM        99                 // 2f636h -	IMM        6                  // 2f638h -	LIBCALL    Action_isAction -	STORE      0                  // 2f63ah -	LOAD       0                  // 2f642h -	ZERO -	EQUAL -	JMPTRUE    @2f64c             // 2f644h -	DLOAD      0                  // 2f649h -	STORE      0 -	JUMP       @2f28f -@2f64c: -	ZERO -	IMM        96                 // 2f64eh -	IMM        6                  // 2f650h -	LIBCALL    Action_isAction -	STORE      0                  // 2f652h -	LOAD       0                  // 2f65ah -	ZERO -	EQUAL -	JMPTRUE    @2f664             // 2f65ch -	DLOAD      0                  // 2f661h -	STORE      0 -	JUMP       @2f28f -@2f664: -	ZERO -	IMM        96                 // 2f666h -	IMM        11                 // 2f668h -	LIBCALL    Action_isAction -	STORE      0                  // 2f66ah -	LOAD       0                  // 2f672h -	ZERO -	EQUAL -	JMPTRUE    @2f67c             // 2f674h -	DLOAD      0                  // 2f679h -	STORE      0 -	JUMP       @2f28f -@2f67c: -	ZERO -	IMM        3                  // 2f67eh -	LIBCALL    Action_isAction -	STORE      0                  // 2f680h -	LOAD       0                  // 2f688h -	ZERO -	NEQUAL -	JMPTRUE    @2f69c             // 2f68ah -	LOAD       0                  // 2f68ch -	IMM        274                // 2f68dh -	LIBCALL    Action_isAction -	STORE      0                  // 2f690h -	LOAD       0                  // 2f698h -	ZERO -	EQUAL -	JMPTRUE    @2f6ba             // 2f69ah -@2f69c: -	ZERO -	IMM        382                // 2f69eh -	LIBCALL    Action_isAction -	STORE      0                  // 2f6a1h -	LOAD       0                  // 2f6a9h -	ZERO -	EQUAL -	JMPTRUE    @2f6ba             // 2f6abh -	DLOAD      0                  // 2f6b0h -	STORE      0 -	JUMP       @2f28f -@2f6b4: -	ZERO -	DSTORE     $5768              // 2f6b4h -@2f6ba: -	RET -end diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index df06542e72..0a80bedee1 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -829,7 +829,6 @@ const Tool s_tools[] = {  	{ "create_hugo",         true},  	{ "create_kyradat",      true},  	{ "create_lure",         true}, -	{ "create_mads",         true},  	{ "create_teenagent",    true},  	{ "create_toon",         true},  	{ "create_translations", true}, diff --git a/devtools/create_project/xcode.cpp b/devtools/create_project/xcode.cpp index 77ac88f85d..eb51ab3da1 100755 --- a/devtools/create_project/xcode.cpp +++ b/devtools/create_project/xcode.cpp @@ -448,7 +448,6 @@ void XCodeProvider::setupResourcesBuildPhase() {  	properties["sky.cpt"]          = FileProperty("file", "", "sky.cpt", "\"<group>\"");  	properties["drascula.dat"]     = FileProperty("file", "", "drascula.dat", "\"<group>\"");  	properties["hugo.dat"]         = FileProperty("file", "", "hugo.dat", "\"<group>\""); -	properties["m4.dat"]           = FileProperty("file", "", "m4.dat", "\"<group>\"");  	properties["teenagent.dat"]    = FileProperty("file", "", "teenagent.dat", "\"<group>\"");  	properties["toon.dat"]         = FileProperty("file", "", "toon.dat", "\"<group>\""); @@ -481,7 +480,6 @@ void XCodeProvider::setupResourcesBuildPhase() {  		files_list.push_back("icon4.png");  		files_list.push_back("drascula.dat");  		files_list.push_back("hugo.dat"); -		files_list.push_back("m4.dat");  		files_list.push_back("teenagent.dat");  		files_list.push_back("toon.dat"); diff --git a/dists/irix/scummvm.idb b/dists/irix/scummvm.idb index 73876e6bd1..6a613bbbd5 100644 --- a/dists/irix/scummvm.idb +++ b/dists/irix/scummvm.idb @@ -8,7 +8,6 @@ f 0644 root sys usr/ScummVM/share/pixmaps/scummvm.xpm scummvm.xpm scummvm.sw.eoe  f 0644 root sys usr/ScummVM/share/scummvm/drascula.dat drascula.dat scummvm.sw.eoe  f 0644 root sys usr/ScummVM/share/scummvm/kyra.dat kyra.dat scummvm.sw.eoe  f 0644 root sys usr/ScummVM/share/scummvm/lure.dat lure.dat scummvm.sw.eoe -f 0644 root sys usr/ScummVM/share/scummvm/m4.dat m4.dat scummvm.sw.eoe  f 0644 root sys usr/ScummVM/share/scummvm/pred.dic pred.dic scummvm.sw.eoe  f 0644 root sys usr/ScummVM/share/scummvm/queen.tbl queen.tbl scummvm.sw.eoe  f 0644 root sys usr/ScummVM/share/scummvm/scummmodern.zip scummmodern.zip scummvm.sw.eoe diff --git a/dists/scummvm.rc.in b/dists/scummvm.rc.in index b91e7ebb0c..6ca807c413 100644 --- a/dists/scummvm.rc.in +++ b/dists/scummvm.rc.in @@ -31,9 +31,6 @@ kyra.dat               FILE    "dists/engine-data/kyra.dat"  #if ENABLE_LURE      == STATIC_PLUGIN  lure.dat               FILE    "dists/engine-data/lure.dat"  #endif -#if ENABLE_M4        == STATIC_PLUGIN -m4.dat                 FILE    "dists/engine-data/m4.dat" -#endif  #if ENABLE_QUEEN     == STATIC_PLUGIN  queen.tbl              FILE    "dists/engine-data/queen.tbl"  #endif diff --git a/dists/win32/ScummVM.iss b/dists/win32/ScummVM.iss index 072f53bf8f..c2132e1217 100644 --- a/dists/win32/ScummVM.iss +++ b/dists/win32/ScummVM.iss @@ -95,7 +95,6 @@ Source: drascula.dat; DestDir: {app}; Flags: ignoreversion  Source: hugo.dat; DestDir: {app}; Flags: ignoreversion  Source: kyra.dat; DestDir: {app}; Flags: ignoreversion  Source: lure.dat; DestDir: {app}; Flags: ignoreversion -Source: m4.dat; DestDir: {app}; Flags: ignoreversion  Source: pred.dic; DestDir: {app}; Flags: ignoreversion  Source: queen.tbl; DestDir: {app}; Flags: ignoreversion  Source: sky.cpt; DestDir: {app}; Flags: ignoreversion diff --git a/dists/win32/scummvm.nsi b/dists/win32/scummvm.nsi index 23a3abcfd4..d3689f46fc 100644 --- a/dists/win32/scummvm.nsi +++ b/dists/win32/scummvm.nsi @@ -265,7 +265,6 @@ Section "ScummVM" SecMain  	File "${engine_data}\hugo.dat"  	File "${engine_data}\kyra.dat"  	File "${engine_data}\lure.dat" -	File "${engine_data}\m4.dat"  	File "${engine_data}\queen.tbl"  	File "${engine_data}\sky.cpt"  	File "${engine_data}\teenagent.dat" @@ -352,7 +351,6 @@ Section -un.Main SecUninstall  	Delete /REBOOTOK $INSTDIR\hugo.dat  	Delete /REBOOTOK $INSTDIR\kyra.dat  	Delete /REBOOTOK $INSTDIR\lure.dat -	Delete /REBOOTOK $INSTDIR\m4.dat  	Delete /REBOOTOK $INSTDIR\queen.tbl  	Delete /REBOOTOK $INSTDIR\sky.cpt  	Delete /REBOOTOK $INSTDIR\teenagent.dat diff --git a/dists/win32/scummvm.nsi.in b/dists/win32/scummvm.nsi.in index cba1e81e33..dd63a21242 100644 --- a/dists/win32/scummvm.nsi.in +++ b/dists/win32/scummvm.nsi.in @@ -265,7 +265,6 @@ Section "ScummVM" SecMain  	File "${engine_data}\hugo.dat"  	File "${engine_data}\kyra.dat"  	File "${engine_data}\lure.dat" -	File "${engine_data}\m4.dat"  	File "${engine_data}\queen.tbl"  	File "${engine_data}\sky.cpt"  	File "${engine_data}\teenagent.dat" @@ -352,7 +351,6 @@ Section -un.Main SecUninstall  	Delete /REBOOTOK $INSTDIR\hugo.dat  	Delete /REBOOTOK $INSTDIR\kyra.dat  	Delete /REBOOTOK $INSTDIR\lure.dat -	Delete /REBOOTOK $INSTDIR\m4.dat  	Delete /REBOOTOK $INSTDIR\queen.tbl  	Delete /REBOOTOK $INSTDIR\sky.cpt  	Delete /REBOOTOK $INSTDIR\teenagent.dat | 
