[Scummvm-cvs-logs] SF.net SVN: scummvm: [28084] tools/branches/gsoc2007-toolsgui
lightcast at users.sourceforge.net
lightcast at users.sourceforge.net
Sun Jul 15 05:25:23 CEST 2007
Revision: 28084
http://scummvm.svn.sourceforge.net/scummvm/?rev=28084&view=rev
Author: lightcast
Date: 2007-07-14 20:25:23 -0700 (Sat, 14 Jul 2007)
Log Message:
-----------
General code cleanup.
Modified Paths:
--------------
tools/branches/gsoc2007-toolsgui/extract_agos.c
tools/branches/gsoc2007-toolsgui/extract_kyra.cpp
tools/branches/gsoc2007-toolsgui/extract_loom_tg16.c
tools/branches/gsoc2007-toolsgui/extract_mm_apple.c
tools/branches/gsoc2007-toolsgui/extract_mm_c64.c
tools/branches/gsoc2007-toolsgui/extract_mm_nes.c
tools/branches/gsoc2007-toolsgui/extract_parallaction.cpp
tools/branches/gsoc2007-toolsgui/extract_scumm_mac.c
tools/branches/gsoc2007-toolsgui/extract_zak_c64.c
tools/branches/gsoc2007-toolsgui/kyra_pak.cpp
Modified: tools/branches/gsoc2007-toolsgui/extract_agos.c
===================================================================
--- tools/branches/gsoc2007-toolsgui/extract_agos.c 2007-07-15 03:23:18 UTC (rev 28083)
+++ tools/branches/gsoc2007-toolsgui/extract_agos.c 2007-07-15 03:25:23 UTC (rev 28084)
@@ -27,62 +27,114 @@
typedef unsigned int ULONG;
typedef unsigned char UBYTE;
-#define EndGetM32(a) ((((a)[0])<<24)|(((a)[1])<<16)|(((a)[2])<<8)|((a)[3]))
+size_t filelen;
+#define EndGetM32(a) ((((a)[0])<<24)|(((a)[1])<<16)|(((a)[2])<<8)|((a)[3]))
+
#define SD_GETBIT(var) do { \
- if (!bits--) { s -= 4; if (s < src) return 0; bb=EndGetM32(s); bits=31; } \
- (var) = bb & 1; bb >>= 1; \
+ if (!bits--) { s -= 4; if (s < src) return 0; bb=EndGetM32(s); bits=31; } \
+ (var) = bb & 1; bb >>= 1; \
} while (0)
#define SD_GETBITS(var, nbits) do { \
- bc=(nbits); (var)=0; while (bc--) {(var)<<=1; SD_GETBIT(bit); (var)|=bit; } \
+ bc=(nbits); (var)=0; while (bc--) {(var)<<=1; SD_GETBIT(bit); (var)|=bit; } \
} while (0)
#define SD_TYPE_LITERAL (0)
-#define SD_TYPE_MATCH (1)
+#define SD_TYPE_MATCH (1)
int simon_decr(UBYTE *src, UBYTE *dest, ULONG srclen) {
- UBYTE *s = &src[srclen - 4];
- ULONG destlen = EndGetM32(s), bb, x, y;
- UBYTE *d = &dest[destlen], bc, bit, bits, type;
+ UBYTE *s = &src[srclen - 4];
+ ULONG destlen = EndGetM32(s);
+ ULONG bb, x, y;
+ UBYTE *d = &dest[destlen];
+ UBYTE bc, bit, bits, type;
- /* initialise bit buffer */
- s -= 4; x = EndGetM32(s); bb = x;
- bits = 0; do { x >>= 1; bits++; } while (x); bits--;
+ /* initialise bit buffer */
+ s -= 4;
+ x = EndGetM32(s);
+ bb = x;
+ bits = 0;
- while (d > dest) {
- SD_GETBIT(x);
- if (x) {
- SD_GETBITS(x, 2);
- if (x == 0) { type = SD_TYPE_MATCH; x = 9; y = 2; }
- else if (x == 1) { type = SD_TYPE_MATCH; x = 10; y = 3; }
- else if (x == 2) { type = SD_TYPE_MATCH; x = 12; SD_GETBITS(y, 8); }
- else { type = SD_TYPE_LITERAL; x = 8; y = 8; }
- }
- else {
- SD_GETBIT(x);
- if (x) { type = SD_TYPE_MATCH; x = 8; y = 1; }
- else { type = SD_TYPE_LITERAL; x = 3; y = 0; }
- }
+ do {
+ x >>= 1;
+ bits++;
+ } while (x);
- if (type == SD_TYPE_LITERAL) {
- SD_GETBITS(x, x); y += x;
- if ((y + 1) > (d - dest)) return 0; /* overflow? */
- do { SD_GETBITS(x, 8); *--d = x; } while (y-- > 0);
- }
- else {
- if ((y + 1) > (d - dest)) return 0; /* overflow? */
- SD_GETBITS(x, x);
- if ((d + x) > (dest + destlen)) return 0; /* offset overflow? */
- do { d--; *d = d[x]; } while (y-- > 0);
- }
- }
- /* successful decrunch */
- return 1;
+ bits--;
+
+ while (d > dest) {
+ SD_GETBIT(x);
+
+ if (x) {
+ SD_GETBITS(x, 2);
+
+ if (x == 0) {
+ type = SD_TYPE_MATCH;
+ x = 9;
+ y = 2;
+ } else if (x == 1) {
+ type = SD_TYPE_MATCH;
+ x = 10;
+ y = 3;
+ } else if (x == 2) {
+ type = SD_TYPE_MATCH;
+ x = 12;
+ SD_GETBITS(y, 8);
+ } else {
+ type = SD_TYPE_LITERAL;
+ x = 8;
+ y = 8;
+ }
+ } else {
+ SD_GETBIT(x);
+
+ if (x) {
+ type = SD_TYPE_MATCH;
+ x = 8;
+ y = 1;
+ } else {
+ type = SD_TYPE_LITERAL;
+ x = 3;
+ y = 0;
+ }
+ }
+
+ if (type == SD_TYPE_LITERAL) {
+ SD_GETBITS(x, x); y += x;
+
+ if ((y + 1) > (d - dest)) {
+ return 0; /* overflow? */
+ }
+
+ do {
+ SD_GETBITS(x, 8);
+ *--d = x;
+ } while (y-- > 0);
+ } else {
+ if ((y + 1) > (d - dest)) {
+ return 0; /* overflow? */
+ }
+
+ SD_GETBITS(x, x);
+
+ if ((d + x) > (dest + destlen)) {
+ return 0; /* offset overflow? */
+ }
+
+ do {
+ d--;
+ *d = d[x];
+ } while (y-- > 0);
+ }
+ }
+
+ /* successful decrunch */
+ return 1;
}
ULONG simon_decr_length(UBYTE *src, ULONG srclen) {
- return EndGetM32(&src[srclen - 4]);
+ return EndGetM32(&src[srclen - 4]);
}
@@ -91,17 +143,24 @@
* - call free() on ptr to free memory
* - size of loaded file is available in global var 'filelen'
*/
-size_t filelen;
void *loadfile(char *name) {
- void *mem = NULL; FILE *fd;
- if ((fd = fopen(name, "rb"))) {
- if ((fseek(fd, 0, SEEK_END) == 0) && (filelen = ftell(fd))
- && (fseek(fd, 0, SEEK_SET) == 0) && (mem = malloc(filelen))) {
- if (fread(mem, 1, filelen, fd) < filelen) { free(mem); mem = NULL; }
- }
- fclose(fd);
- }
- return mem;
+ void *mem = NULL;
+ FILE *fd;
+
+ fd = fopen(name, "rb");
+ if (fd != NULL) {
+ if ((fseek(fd, 0, SEEK_END) == 0) && (filelen = ftell(fd))
+ && (fseek(fd, 0, SEEK_SET) == 0) && (mem = malloc(filelen))) {
+
+ if (fread(mem, 1, filelen, fd) < filelen) {
+ free(mem); mem = NULL;
+ }
+ }
+
+ fclose(fd);
+ }
+
+ return mem;
}
/* - savefile(filename, mem, length) saves [length] bytes from [mem] into
@@ -109,32 +168,52 @@
* - returns zero if failed, or non-zero if successful
*/
int savefile(char *name, void *mem, size_t length) {
- FILE *fd = fopen(name, "wb");
- int ok = fd && (fwrite(mem, 1, length, fd) == length);
- if (fd) fclose(fd);
- return ok;
+ int bytesWritten;
+
+ FILE *fd = fopen(name, "wb");
+ if (fd == NULL) {
+ return 0;
+ }
+
+ bytesWritten = fwrite(mem, 1, length, fd);
+ if (bytesWritten != length) {
+ return 0;
+ }
+
+ fclose(fd);
+
+ return 1;
}
char filename[256];
int main(int argc, char *argv[]) {
- for (argv++; *argv; argv++) {
- UBYTE *x = (UBYTE *) loadfile(*argv);
- if (x) {
- ULONG decrlen = simon_decr_length(x, (ULONG) filelen);
- UBYTE *out = (UBYTE *) malloc(decrlen);
- if (out) {
- if (simon_decr(x, out, filelen)) {
- strcpy(filename, *argv);
- strcat(filename, ".out");
- savefile(filename, out, decrlen);
- }
- else {
- printf("%s: decrunch error\n", filename);
- }
- free((void *) x);
- }
- }
- }
- return 0;
+ if (argc < 2) {
+ printf("\nUsage: %s <file 1> ... <file n>\n", argv[0]);
+ exit(2);
+ }
+
+ for (argv++; *argv; argv++) {
+ UBYTE *x = (UBYTE *) loadfile(*argv);
+
+ if (x) {
+ ULONG decrlen = simon_decr_length(x, (ULONG) filelen);
+ UBYTE *out = (UBYTE *) malloc(decrlen);
+
+ if (out) {
+ if (simon_decr(x, out, filelen)) {
+ strcpy(filename, *argv);
+ strcat(filename, ".out");
+ savefile(filename, out, decrlen);
+ }
+ else {
+ printf("%s: decrunch error\n", filename);
+ }
+
+ free((void *) x);
+ }
+ }
+ }
+
+ return 0;
}
Modified: tools/branches/gsoc2007-toolsgui/extract_kyra.cpp
===================================================================
--- tools/branches/gsoc2007-toolsgui/extract_kyra.cpp 2007-07-15 03:23:18 UTC (rev 28083)
+++ tools/branches/gsoc2007-toolsgui/extract_kyra.cpp 2007-07-15 03:25:23 UTC (rev 28084)
@@ -23,48 +23,49 @@
#include "kyra_pak.h"
+void showhelp(char* exename)
+{
+ printf("\nUsage: %s <file> [params]\n", exename);
+
+ printf("\nParams:\n");
+ printf("-o <filename> Extract only <filename>\n");
+ printf("-x Extract all files\n");
+ printf("-a Extract files from the Amiga .PAK files\n");
+
+ exit(2);
+}
+
int main(int argc, char **argv) {
if (argc < 2) {
- printf("Use:\n"
- "%s filename [OPTIONS]\n"
- "Here are the options, default is listing files to stdout\n"
- "-o xxx Extract only file 'xxx'\n"
- "-x Extract all files\n"
- "-a Use this if you want to extract files from the Amiga .PAK files\n",
- argv[0]);
- return -1;
+ showhelp(argv[0]);
}
-
- bool extractAll = false, extractOne = false;
- bool isAmiga = false;
- uint8 param = 0;
-
- // looking for the parameters
- for (int32 pos = 1; pos < argc; ++pos) {
- if (*argv[pos] == '-') {
- if (argv[pos][1] == 'o') {
- extractOne = true;
- param = pos + 1;
-
- if (param >= argc) {
- printf("you have to add a filename to option -o\n"
- "like: unpackkyra A_E.PAK -o ALGAE.CPS\n");
- return -1;
- }
-
- ++pos;
- } else if (argv[pos][1] == 'x') {
- extractAll = true;
- } else if (argv[pos][1] == 'a') {
- isAmiga = true;
+
+ bool extractAll = false, extractOne = false, isAmiga = false;
+ int param;
+
+ for (param = 1; param < argc; param++) {
+ if (strcmp(argv[param], "-o") == 0) {
+ extractOne = true;
+ param++;
+
+ if (param >= argc) {
+ printf("You supply a filename with -o\n");
+ printf("Example: %s A_E.PAK -o ALGAE.CPS\n", argv[0]);
+
+ exit(-1);
}
+ } else if (strcmp(argv[param], "-x") == 0) {
+ extractAll = true;
+ } else if (strcmp(argv[param], "-a") == 0) {
+ isAmiga = true;
+ } else {
+ showhelp(argv[0]);
}
}
PAKFile myfile;
if (!myfile.loadFile(argv[1], isAmiga)) {
- error("couldn't load file '%s'", argv[1]);
- return -1;
+ error("Couldn't load file '%s'", argv[1]);
}
if(extractAll) {
Modified: tools/branches/gsoc2007-toolsgui/extract_loom_tg16.c
===================================================================
--- tools/branches/gsoc2007-toolsgui/extract_loom_tg16.c 2007-07-15 03:23:18 UTC (rev 28083)
+++ tools/branches/gsoc2007-toolsgui/extract_loom_tg16.c 2007-07-15 03:25:23 UTC (rev 28084)
@@ -20,11 +20,8 @@
*
*/
-#include <stdio.h>
+#include "util.h"
#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include "util.h"
typedef int BOOL;
#define TRUE 1
@@ -32,11 +29,10 @@
/* if defined, generates a set of .LFL files */
/* if not defined, dumps all resources to separate files */
-#define MAKE_LFLS
+#define MAKE_LFLS
-
#ifdef _MSC_VER
- #define vsnprintf _vsnprintf
+ #define vsnprintf _vsnprintf
#endif
void notice(const char *s, ...) {
@@ -50,645 +46,654 @@
fprintf(stdout, "%s\n", buf);
}
-uint8 read_cbyte (FILE *input, short *ctr) {
+uint8 read_cbyte (FILE *input, short *ctr) {
(*ctr) += 1;
return readByte(input);
}
-uint16 read_cword (FILE *input, short *ctr) {
+uint16 read_cword (FILE *input, short *ctr) {
(*ctr) += 2;
return readUint16LE(input);
}
-void write_cbyte (FILE *output, uint8 val, short *ctr) {
+void write_cbyte (FILE *output, uint8 val, short *ctr) {
writeByte(output, val);
(*ctr) += 1;
}
-void write_cword (FILE *output, uint16 val, short *ctr) {
+void write_cword (FILE *output, uint16 val, short *ctr) {
writeUint16LE(output, val);
(*ctr) += 2;
}
-void write_clong (FILE *output, uint32 val, short *ctr) {
+void write_clong (FILE *output, uint32 val, short *ctr) {
writeUint32LE(output, val);
(*ctr) += 4;
}
-typedef enum _res_type { RES_GLOBDATA = 0, RES_ROOM = 1, RES_SCRIPT = 2, RES_COSTUME = 3, RES_CHARSET = 4, RES_SOUND = 5, RES_UNKNOWN = 6} res_type;
+typedef enum _res_type {
+ RES_GLOBDATA = 0,
+ RES_ROOM = 1,
+ RES_SCRIPT = 2,
+ RES_COSTUME = 3,
+ RES_CHARSET = 4,
+ RES_SOUND = 5,
+ RES_UNKNOWN = 6
+} res_type;
-typedef enum _iso { ISO_USA, NUM_ISOS } t_iso;
+typedef enum _iso {
+ ISO_USA,
+ NUM_ISOS
+} t_iso;
t_iso ISO = NUM_ISOS;
-typedef struct _resource {
+typedef struct _resource {
uint32 offset[NUM_ISOS];
uint16 length[NUM_ISOS];
res_type type;
} t_resource, *p_resource;
-#define NUM_ROOMS 100
+#define NUM_ROOMS 100
t_resource res_rooms[NUM_ROOMS] = {
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
- { {0x015000}, {0x3DC8}, RES_ROOM }, /* 1 */
- { {0x037800}, {0x7C1D}, RES_ROOM }, /* 2 */
- { {0x04C000}, {0x3BC4}, RES_ROOM }, /* 3 */
- { {0x051800}, {0x7DA7}, RES_ROOM }, /* 4 */
- { {0x05B800}, {0x827F}, RES_ROOM }, /* 5 */
- { {0x065000}, {0x6EDE}, RES_ROOM }, /* 6 */
- { {0x06D000}, {0x27E2}, RES_ROOM }, /* 7 */
- { {0x080000}, {0x954D}, RES_ROOM }, /* 8 */
- { {0x092800}, {0x67FB}, RES_ROOM }, /* 9 */
- { {0x0A6800}, {0x6103}, RES_ROOM }, /* 10 */
- { {0x0B4800}, {0x3E5C}, RES_ROOM }, /* 11 */
- { {0x0BE800}, {0x1B1A}, RES_ROOM }, /* 12 */
- { {0x0C4000}, {0x73FA}, RES_ROOM }, /* 13 */
- { {0x0D1800}, {0x4092}, RES_ROOM }, /* 14 */
- { {0x0D9800}, {0x594F}, RES_ROOM }, /* 15 */
- { {0x0E2000}, {0x8C04}, RES_ROOM }, /* 16 */
- { {0x0EB800}, {0x55CC}, RES_ROOM }, /* 17 */
- { {0x0F4000}, {0x547E}, RES_ROOM }, /* 18 */
- { {0x0FD800}, {0x679F}, RES_ROOM }, /* 19 */
- { {0x109000}, {0x4491}, RES_ROOM }, /* 20 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 21 */
- { {0x116800}, {0x5619}, RES_ROOM }, /* 22 */
- { {0x11E000}, {0x86A5}, RES_ROOM }, /* 23 */
- { {0x12D000}, {0xDDDB}, RES_ROOM }, /* 24 */
- { {0x13F800}, {0x4C5F}, RES_ROOM }, /* 25 */
- { {0x14B000}, {0x81D0}, RES_ROOM }, /* 26 */
- { {0x155800}, {0x455D}, RES_ROOM }, /* 27 */
- { {0x15B800}, {0xC836}, RES_ROOM }, /* 28 */
- { {0x16F000}, {0x2002}, RES_ROOM }, /* 29 */
- { {0x171800}, {0x7C16}, RES_ROOM }, /* 30 */
- { {0x17B000}, {0x3572}, RES_ROOM }, /* 31 */
- { {0x184000}, {0x2571}, RES_ROOM }, /* 32 */
- { {0x187800}, {0x62B2}, RES_ROOM }, /* 33 */
- { {0x197000}, {0xD702}, RES_ROOM }, /* 34 */
- { {0x1AC000}, {0x5E16}, RES_ROOM }, /* 35 */
- { {0x1BA000}, {0x7B89}, RES_ROOM }, /* 36 */
- { {0x1C7000}, {0x4CA8}, RES_ROOM }, /* 37 */
- { {0x1D2000}, {0x457D}, RES_ROOM }, /* 38 */
- { {0x1D8800}, {0x2998}, RES_ROOM }, /* 39 */
- { {0x1DB800}, {0x3FEC}, RES_ROOM }, /* 40 */
- { {0x1E1800}, {0x6BE2}, RES_ROOM }, /* 41 */
- { {0x1EF800}, {0x39D0}, RES_ROOM }, /* 42 */
- { {0x1F5000}, {0x6753}, RES_ROOM }, /* 43 */
- { {0x207000}, {0x3CC7}, RES_ROOM }, /* 44 */
- { {0x20F800}, {0x39EA}, RES_ROOM }, /* 45 */
- { {0x21C800}, {0x41C2}, RES_ROOM }, /* 46 */
- { {0x22F000}, {0x6025}, RES_ROOM }, /* 47 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 48 */
- { {0x23A800}, {0x5CD3}, RES_ROOM }, /* 49 */
- { {0x242800}, {0x47B2}, RES_ROOM }, /* 50 */
- { {0x247800}, {0x69A6}, RES_ROOM }, /* 51 */
- { {0x250800}, {0x3F20}, RES_ROOM }, /* 52 */
- { {0x256000}, {0x3D07}, RES_ROOM }, /* 53 */
- { {0x25D000}, {0x2713}, RES_ROOM }, /* 54 */
- { {0x260000}, {0x1533}, RES_ROOM }, /* 55 */
- { {0x261800}, {0x1E21}, RES_ROOM }, /* 56 */
- { {0x264000}, {0x2FF8}, RES_ROOM }, /* 57 */
- { {0x268800}, {0x2C6C}, RES_ROOM }, /* 58 */
- { {0x26B800}, {0x3AEC}, RES_ROOM }, /* 59 */
- { {0x26F800}, {0x2139}, RES_ROOM }, /* 60 */
- { {0x272800}, {0x0170}, RES_ROOM }, /* 61 */
- { {0x276000}, {0x542A}, RES_ROOM }, /* 62 */
- { {0x27C800}, {0x0FFB}, RES_ROOM }, /* 63 */
- { {0x27E800}, {0x58FA}, RES_ROOM }, /* 64 */
- { {0x284800}, {0x0656}, RES_ROOM }, /* 65 */
- { {0x285800}, {0x7DA6}, RES_ROOM }, /* 66 */
- { {0x291800}, {0x3091}, RES_ROOM }, /* 67 */
- { {0x295000}, {0x2565}, RES_ROOM }, /* 68 */
- { {0x298800}, {0x1F0C}, RES_ROOM }, /* 69 */
- { {0x2A1800}, {0x4A6D}, RES_ROOM }, /* 70 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 71 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 72 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 73 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 74 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 75 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 76 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 77 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 78 */
- { {0x2A8800}, {0x17BB}, RES_ROOM }, /* 79 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 80 */
- { {0x2AA000}, {0x0D01}, RES_ROOM }, /* 81 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 82 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 83 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 84 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 85 */
- { {0x2AE000}, {0x5591}, RES_ROOM }, /* 86 */
- { {0x2B4800}, {0x22E9}, RES_ROOM }, /* 87 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
- { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x015000}, {0x3DC8}, RES_ROOM }, /* 1 */
+ { {0x037800}, {0x7C1D}, RES_ROOM }, /* 2 */
+ { {0x04C000}, {0x3BC4}, RES_ROOM }, /* 3 */
+ { {0x051800}, {0x7DA7}, RES_ROOM }, /* 4 */
+ { {0x05B800}, {0x827F}, RES_ROOM }, /* 5 */
+ { {0x065000}, {0x6EDE}, RES_ROOM }, /* 6 */
+ { {0x06D000}, {0x27E2}, RES_ROOM }, /* 7 */
+ { {0x080000}, {0x954D}, RES_ROOM }, /* 8 */
+ { {0x092800}, {0x67FB}, RES_ROOM }, /* 9 */
+ { {0x0A6800}, {0x6103}, RES_ROOM }, /* 10 */
+ { {0x0B4800}, {0x3E5C}, RES_ROOM }, /* 11 */
+ { {0x0BE800}, {0x1B1A}, RES_ROOM }, /* 12 */
+ { {0x0C4000}, {0x73FA}, RES_ROOM }, /* 13 */
+ { {0x0D1800}, {0x4092}, RES_ROOM }, /* 14 */
+ { {0x0D9800}, {0x594F}, RES_ROOM }, /* 15 */
+ { {0x0E2000}, {0x8C04}, RES_ROOM }, /* 16 */
+ { {0x0EB800}, {0x55CC}, RES_ROOM }, /* 17 */
+ { {0x0F4000}, {0x547E}, RES_ROOM }, /* 18 */
+ { {0x0FD800}, {0x679F}, RES_ROOM }, /* 19 */
+ { {0x109000}, {0x4491}, RES_ROOM }, /* 20 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 21 */
+ { {0x116800}, {0x5619}, RES_ROOM }, /* 22 */
+ { {0x11E000}, {0x86A5}, RES_ROOM }, /* 23 */
+ { {0x12D000}, {0xDDDB}, RES_ROOM }, /* 24 */
+ { {0x13F800}, {0x4C5F}, RES_ROOM }, /* 25 */
+ { {0x14B000}, {0x81D0}, RES_ROOM }, /* 26 */
+ { {0x155800}, {0x455D}, RES_ROOM }, /* 27 */
+ { {0x15B800}, {0xC836}, RES_ROOM }, /* 28 */
+ { {0x16F000}, {0x2002}, RES_ROOM }, /* 29 */
+ { {0x171800}, {0x7C16}, RES_ROOM }, /* 30 */
+ { {0x17B000}, {0x3572}, RES_ROOM }, /* 31 */
+ { {0x184000}, {0x2571}, RES_ROOM }, /* 32 */
+ { {0x187800}, {0x62B2}, RES_ROOM }, /* 33 */
+ { {0x197000}, {0xD702}, RES_ROOM }, /* 34 */
+ { {0x1AC000}, {0x5E16}, RES_ROOM }, /* 35 */
+ { {0x1BA000}, {0x7B89}, RES_ROOM }, /* 36 */
+ { {0x1C7000}, {0x4CA8}, RES_ROOM }, /* 37 */
+ { {0x1D2000}, {0x457D}, RES_ROOM }, /* 38 */
+ { {0x1D8800}, {0x2998}, RES_ROOM }, /* 39 */
+ { {0x1DB800}, {0x3FEC}, RES_ROOM }, /* 40 */
+ { {0x1E1800}, {0x6BE2}, RES_ROOM }, /* 41 */
+ { {0x1EF800}, {0x39D0}, RES_ROOM }, /* 42 */
+ { {0x1F5000}, {0x6753}, RES_ROOM }, /* 43 */
+ { {0x207000}, {0x3CC7}, RES_ROOM }, /* 44 */
+ { {0x20F800}, {0x39EA}, RES_ROOM }, /* 45 */
+ { {0x21C800}, {0x41C2}, RES_ROOM }, /* 46 */
+ { {0x22F000}, {0x6025}, RES_ROOM }, /* 47 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 48 */
+ { {0x23A800}, {0x5CD3}, RES_ROOM }, /* 49 */
+ { {0x242800}, {0x47B2}, RES_ROOM }, /* 50 */
+ { {0x247800}, {0x69A6}, RES_ROOM }, /* 51 */
+ { {0x250800}, {0x3F20}, RES_ROOM }, /* 52 */
+ { {0x256000}, {0x3D07}, RES_ROOM }, /* 53 */
+ { {0x25D000}, {0x2713}, RES_ROOM }, /* 54 */
+ { {0x260000}, {0x1533}, RES_ROOM }, /* 55 */
+ { {0x261800}, {0x1E21}, RES_ROOM }, /* 56 */
+ { {0x264000}, {0x2FF8}, RES_ROOM }, /* 57 */
+ { {0x268800}, {0x2C6C}, RES_ROOM }, /* 58 */
+ { {0x26B800}, {0x3AEC}, RES_ROOM }, /* 59 */
+ { {0x26F800}, {0x2139}, RES_ROOM }, /* 60 */
+ { {0x272800}, {0x0170}, RES_ROOM }, /* 61 */
+ { {0x276000}, {0x542A}, RES_ROOM }, /* 62 */
+ { {0x27C800}, {0x0FFB}, RES_ROOM }, /* 63 */
+ { {0x27E800}, {0x58FA}, RES_ROOM }, /* 64 */
+ { {0x284800}, {0x0656}, RES_ROOM }, /* 65 */
+ { {0x285800}, {0x7DA6}, RES_ROOM }, /* 66 */
+ { {0x291800}, {0x3091}, RES_ROOM }, /* 67 */
+ { {0x295000}, {0x2565}, RES_ROOM }, /* 68 */
+ { {0x298800}, {0x1F0C}, RES_ROOM }, /* 69 */
+ { {0x2A1800}, {0x4A6D}, RES_ROOM }, /* 70 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 71 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 72 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 73 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 74 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 75 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 76 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 77 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 78 */
+ { {0x2A8800}, {0x17BB}, RES_ROOM }, /* 79 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 80 */
+ { {0x2AA000}, {0x0D01}, RES_ROOM }, /* 81 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 82 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 83 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 84 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 85 */
+ { {0x2AE000}, {0x5591}, RES_ROOM }, /* 86 */
+ { {0x2B4800}, {0x22E9}, RES_ROOM }, /* 87 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
+ { {0x000000}, {0x0000}, RES_ROOM }, /* 0 */
};
-#define NUM_SCRIPTS 200
+#define NUM_SCRIPTS 200
t_resource res_scripts[NUM_SCRIPTS] = {
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x019000}, {0x01F8}, RES_SCRIPT }, /* 1 */
- { {0x019800}, {0x0030}, RES_SCRIPT }, /* 2 */
- { {0x01A000}, {0x002F}, RES_SCRIPT }, /* 3 */
- { {0x2A6800}, {0x0091}, RES_SCRIPT }, /* 4 */
- { {0x01A800}, {0x023F}, RES_SCRIPT }, /* 5 */
- { {0x01B000}, {0x01C9}, RES_SCRIPT }, /* 6 */
- { {0x01B800}, {0x0058}, RES_SCRIPT }, /* 7 */
- { {0x01C000}, {0x0064}, RES_SCRIPT }, /* 8 */
- { {0x01C800}, {0x0080}, RES_SCRIPT }, /* 9 */
- { {0x01D000}, {0x005B}, RES_SCRIPT }, /* 10 */
- { {0x01D800}, {0x0072}, RES_SCRIPT }, /* 11 */
- { {0x01E000}, {0x0055}, RES_SCRIPT }, /* 12 */
- { {0x01E800}, {0x005D}, RES_SCRIPT }, /* 13 */
- { {0x01F000}, {0x003C}, RES_SCRIPT }, /* 14 */
- { {0x01F800}, {0x0025}, RES_SCRIPT }, /* 15 */
- { {0x020000}, {0x0014}, RES_SCRIPT }, /* 16 */
- { {0x020800}, {0x00E7}, RES_SCRIPT }, /* 17 */
- { {0x021000}, {0x0257}, RES_SCRIPT }, /* 18 */
- { {0x021800}, {0x0068}, RES_SCRIPT }, /* 19 */
- { {0x022000}, {0x007D}, RES_SCRIPT }, /* 20 */
- { {0x022800}, {0x003B}, RES_SCRIPT }, /* 21 */
- { {0x023000}, {0x017E}, RES_SCRIPT }, /* 22 */
- { {0x023800}, {0x00A8}, RES_SCRIPT }, /* 23 */
- { {0x024000}, {0x0026}, RES_SCRIPT }, /* 24 */
- { {0x024800}, {0x0028}, RES_SCRIPT }, /* 25 */
- { {0x025000}, {0x00F2}, RES_SCRIPT }, /* 26 */
- { {0x025800}, {0x00F8}, RES_SCRIPT }, /* 27 */
- { {0x026000}, {0x002F}, RES_SCRIPT }, /* 28 */
- { {0x026800}, {0x00E9}, RES_SCRIPT }, /* 29 */
- { {0x027000}, {0x001E}, RES_SCRIPT }, /* 30 */
- { {0x027800}, {0x0304}, RES_SCRIPT }, /* 31 */
- { {0x028000}, {0x001E}, RES_SCRIPT }, /* 32 */
- { {0x028800}, {0x000D}, RES_SCRIPT }, /* 33 */
- { {0x029000}, {0x0028}, RES_SCRIPT }, /* 34 */
- { {0x029800}, {0x008E}, RES_SCRIPT }, /* 35 */
- { {0x02A000}, {0x00E5}, RES_SCRIPT }, /* 36 */
- { {0x02A800}, {0x0015}, RES_SCRIPT }, /* 37 */
- { {0x02B000}, {0x0025}, RES_SCRIPT }, /* 38 */
- { {0x02B800}, {0x0060}, RES_SCRIPT }, /* 39 */
- { {0x02C000}, {0x0046}, RES_SCRIPT }, /* 40 */
- { {0x02C800}, {0x00A1}, RES_SCRIPT }, /* 41 */
- { {0x02D000}, {0x00A9}, RES_SCRIPT }, /* 42 */
- { {0x02D800}, {0x0039}, RES_SCRIPT }, /* 43 */
- { {0x03F800}, {0x0596}, RES_SCRIPT }, /* 44 */
- { {0x040000}, {0x00C7}, RES_SCRIPT }, /* 45 */
- { {0x089800}, {0x13AC}, RES_SCRIPT }, /* 46 */
- { {0x099000}, {0x0DCD}, RES_SCRIPT }, /* 47 */
- { {0x27D800}, {0x00CF}, RES_SCRIPT }, /* 48 */
- { {0x0B8800}, {0x02D3}, RES_SCRIPT }, /* 49 */
- { {0x0AD000}, {0x0064}, RES_SCRIPT }, /* 50 */
- { {0x0B9000}, {0x017F}, RES_SCRIPT }, /* 51 */
- { {0x0B9000}, {0x017F}, RES_SCRIPT }, /* 52 */
- { {0x0CB800}, {0x02B2}, RES_SCRIPT }, /* 53 */
- { {0x0DF800}, {0x00C7}, RES_SCRIPT }, /* 54 */
- { {0x0F9800}, {0x0052}, RES_SCRIPT }, /* 55 */
- { {0x0F9800}, {0x0052}, RES_SCRIPT }, /* 56 */
- { {0x10D800}, {0x0033}, RES_SCRIPT }, /* 57 */
- { {0x10E000}, {0x0032}, RES_SCRIPT }, /* 58 */
- { {0x0FA000}, {0x0034}, RES_SCRIPT }, /* 59 */
- { {0x10E800}, {0x0035}, RES_SCRIPT }, /* 60 */
- { {0x0FA800}, {0x0033}, RES_SCRIPT }, /* 61 */
- { {0x0FB000}, {0x003F}, RES_SCRIPT }, /* 62 */
- { {0x10F000}, {0x0029}, RES_SCRIPT }, /* 63 */
- { {0x0FB800}, {0x006B}, RES_SCRIPT }, /* 64 */
- { {0x104000}, {0x0314}, RES_SCRIPT }, /* 65 */
- { {0x0F1000}, {0x0143}, RES_SCRIPT }, /* 66 */
- { {0x11C000}, {0x010B}, RES_SCRIPT }, /* 67 */
- { {0x263800}, {0x07AD}, RES_SCRIPT }, /* 68 */
- { {0x144800}, {0x07A7}, RES_SCRIPT }, /* 69 */
- { {0x13B000}, {0x0179}, RES_SCRIPT }, /* 70 */
- { {0x0FC000}, {0x003F}, RES_SCRIPT }, /* 71 */
- { {0x168800}, {0x007B}, RES_SCRIPT }, /* 72 */
- { {0x13B800}, {0x004A}, RES_SCRIPT }, /* 73 */
- { {0x169000}, {0x00A5}, RES_SCRIPT }, /* 74 */
- { {0x169800}, {0x0435}, RES_SCRIPT }, /* 75 */
- { {0x16A000}, {0x008D}, RES_SCRIPT }, /* 76 */
- { {0x179800}, {0x004A}, RES_SCRIPT }, /* 77 */
- { {0x285000}, {0x00C4}, RES_SCRIPT }, /* 78 */
- { {0x186800}, {0x0091}, RES_SCRIPT }, /* 79 */
- { {0x187000}, {0x004D}, RES_SCRIPT }, /* 80 */
- { {0x17A000}, {0x0052}, RES_SCRIPT }, /* 81 */
- { {0x17E800}, {0x00AA}, RES_SCRIPT }, /* 82 */
- { {0x17F000}, {0x003E}, RES_SCRIPT }, /* 83 */
- { {0x17F800}, {0x0041}, RES_SCRIPT }, /* 84 */
- { {0x1A4800}, {0x05BF}, RES_SCRIPT }, /* 85 */
- { {0x1CC000}, {0x0572}, RES_SCRIPT }, /* 86 */
- { {0x1D6800}, {0x09DA}, RES_SCRIPT }, /* 87 */
- { {0x1A5000}, {0x051D}, RES_SCRIPT }, /* 88 */
- { {0x0B9800}, {0x0080}, RES_SCRIPT }, /* 89 */
- { {0x1FB800}, {0x0786}, RES_SCRIPT }, /* 90 */
- { {0x1FC000}, {0x0ECA}, RES_SCRIPT }, /* 91 */
- { {0x1FD000}, {0x0031}, RES_SCRIPT }, /* 92 */
- { {0x1FD800}, {0x061D}, RES_SCRIPT }, /* 93 */
- { {0x104800}, {0x0144}, RES_SCRIPT }, /* 94 */
- { {0x20B000}, {0x078B}, RES_SCRIPT }, /* 95 */
- { {0x213800}, {0x00F3}, RES_SCRIPT }, /* 96 */
- { {0x1A5800}, {0x004A}, RES_SCRIPT }, /* 97 */
- { {0x1A6000}, {0x064D}, RES_SCRIPT }, /* 98 */
- { {0x240800}, {0x0538}, RES_SCRIPT }, /* 99 */
- { {0x235800}, {0x0A78}, RES_SCRIPT }, /* 100 */
- { {0x09A000}, {0x08F2}, RES_SCRIPT }, /* 101 */
- { {0x24E800}, {0x00DF}, RES_SCRIPT }, /* 102 */
- { {0x24F000}, {0x0080}, RES_SCRIPT }, /* 103 */
- { {0x24F800}, {0x06E6}, RES_SCRIPT }, /* 104 */
- { {0x09B000}, {0x0225}, RES_SCRIPT }, /* 105 */
- { {0x28D800}, {0x051E}, RES_SCRIPT }, /* 106 */
- { {0x0AD800}, {0x00C9}, RES_SCRIPT }, /* 107 */
- { {0x11C800}, {0x04DF}, RES_SCRIPT }, /* 108 */
- { {0x16A800}, {0x03B4}, RES_SCRIPT }, /* 109 */
- { {0x241000}, {0x0062}, RES_SCRIPT }, /* 110 */
- { {0x2B3800}, {0x0100}, RES_SCRIPT }, /* 111 */
- { {0x1A6800}, {0x008E}, RES_SCRIPT }, /* 112 */
- { {0x040800}, {0x007B}, RES_SCRIPT }, /* 113 */
- { {0x041000}, {0x008B}, RES_SCRIPT }, /* 114 */
- { {0x28E000}, {0x002D}, RES_SCRIPT }, /* 115 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
- { {0x000000}, {0x0000}, RES_SCRIPT } /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x019000}, {0x01F8}, RES_SCRIPT }, /* 1 */
+ { {0x019800}, {0x0030}, RES_SCRIPT }, /* 2 */
+ { {0x01A000}, {0x002F}, RES_SCRIPT }, /* 3 */
+ { {0x2A6800}, {0x0091}, RES_SCRIPT }, /* 4 */
+ { {0x01A800}, {0x023F}, RES_SCRIPT }, /* 5 */
+ { {0x01B000}, {0x01C9}, RES_SCRIPT }, /* 6 */
+ { {0x01B800}, {0x0058}, RES_SCRIPT }, /* 7 */
+ { {0x01C000}, {0x0064}, RES_SCRIPT }, /* 8 */
+ { {0x01C800}, {0x0080}, RES_SCRIPT }, /* 9 */
+ { {0x01D000}, {0x005B}, RES_SCRIPT }, /* 10 */
+ { {0x01D800}, {0x0072}, RES_SCRIPT }, /* 11 */
+ { {0x01E000}, {0x0055}, RES_SCRIPT }, /* 12 */
+ { {0x01E800}, {0x005D}, RES_SCRIPT }, /* 13 */
+ { {0x01F000}, {0x003C}, RES_SCRIPT }, /* 14 */
+ { {0x01F800}, {0x0025}, RES_SCRIPT }, /* 15 */
+ { {0x020000}, {0x0014}, RES_SCRIPT }, /* 16 */
+ { {0x020800}, {0x00E7}, RES_SCRIPT }, /* 17 */
+ { {0x021000}, {0x0257}, RES_SCRIPT }, /* 18 */
+ { {0x021800}, {0x0068}, RES_SCRIPT }, /* 19 */
+ { {0x022000}, {0x007D}, RES_SCRIPT }, /* 20 */
+ { {0x022800}, {0x003B}, RES_SCRIPT }, /* 21 */
+ { {0x023000}, {0x017E}, RES_SCRIPT }, /* 22 */
+ { {0x023800}, {0x00A8}, RES_SCRIPT }, /* 23 */
+ { {0x024000}, {0x0026}, RES_SCRIPT }, /* 24 */
+ { {0x024800}, {0x0028}, RES_SCRIPT }, /* 25 */
+ { {0x025000}, {0x00F2}, RES_SCRIPT }, /* 26 */
+ { {0x025800}, {0x00F8}, RES_SCRIPT }, /* 27 */
+ { {0x026000}, {0x002F}, RES_SCRIPT }, /* 28 */
+ { {0x026800}, {0x00E9}, RES_SCRIPT }, /* 29 */
+ { {0x027000}, {0x001E}, RES_SCRIPT }, /* 30 */
+ { {0x027800}, {0x0304}, RES_SCRIPT }, /* 31 */
+ { {0x028000}, {0x001E}, RES_SCRIPT }, /* 32 */
+ { {0x028800}, {0x000D}, RES_SCRIPT }, /* 33 */
+ { {0x029000}, {0x0028}, RES_SCRIPT }, /* 34 */
+ { {0x029800}, {0x008E}, RES_SCRIPT }, /* 35 */
+ { {0x02A000}, {0x00E5}, RES_SCRIPT }, /* 36 */
+ { {0x02A800}, {0x0015}, RES_SCRIPT }, /* 37 */
+ { {0x02B000}, {0x0025}, RES_SCRIPT }, /* 38 */
+ { {0x02B800}, {0x0060}, RES_SCRIPT }, /* 39 */
+ { {0x02C000}, {0x0046}, RES_SCRIPT }, /* 40 */
+ { {0x02C800}, {0x00A1}, RES_SCRIPT }, /* 41 */
+ { {0x02D000}, {0x00A9}, RES_SCRIPT }, /* 42 */
+ { {0x02D800}, {0x0039}, RES_SCRIPT }, /* 43 */
+ { {0x03F800}, {0x0596}, RES_SCRIPT }, /* 44 */
+ { {0x040000}, {0x00C7}, RES_SCRIPT }, /* 45 */
+ { {0x089800}, {0x13AC}, RES_SCRIPT }, /* 46 */
+ { {0x099000}, {0x0DCD}, RES_SCRIPT }, /* 47 */
+ { {0x27D800}, {0x00CF}, RES_SCRIPT }, /* 48 */
+ { {0x0B8800}, {0x02D3}, RES_SCRIPT }, /* 49 */
+ { {0x0AD000}, {0x0064}, RES_SCRIPT }, /* 50 */
+ { {0x0B9000}, {0x017F}, RES_SCRIPT }, /* 51 */
+ { {0x0B9000}, {0x017F}, RES_SCRIPT }, /* 52 */
+ { {0x0CB800}, {0x02B2}, RES_SCRIPT }, /* 53 */
+ { {0x0DF800}, {0x00C7}, RES_SCRIPT }, /* 54 */
+ { {0x0F9800}, {0x0052}, RES_SCRIPT }, /* 55 */
+ { {0x0F9800}, {0x0052}, RES_SCRIPT }, /* 56 */
+ { {0x10D800}, {0x0033}, RES_SCRIPT }, /* 57 */
+ { {0x10E000}, {0x0032}, RES_SCRIPT }, /* 58 */
+ { {0x0FA000}, {0x0034}, RES_SCRIPT }, /* 59 */
+ { {0x10E800}, {0x0035}, RES_SCRIPT }, /* 60 */
+ { {0x0FA800}, {0x0033}, RES_SCRIPT }, /* 61 */
+ { {0x0FB000}, {0x003F}, RES_SCRIPT }, /* 62 */
+ { {0x10F000}, {0x0029}, RES_SCRIPT }, /* 63 */
+ { {0x0FB800}, {0x006B}, RES_SCRIPT }, /* 64 */
+ { {0x104000}, {0x0314}, RES_SCRIPT }, /* 65 */
+ { {0x0F1000}, {0x0143}, RES_SCRIPT }, /* 66 */
+ { {0x11C000}, {0x010B}, RES_SCRIPT }, /* 67 */
+ { {0x263800}, {0x07AD}, RES_SCRIPT }, /* 68 */
+ { {0x144800}, {0x07A7}, RES_SCRIPT }, /* 69 */
+ { {0x13B000}, {0x0179}, RES_SCRIPT }, /* 70 */
+ { {0x0FC000}, {0x003F}, RES_SCRIPT }, /* 71 */
+ { {0x168800}, {0x007B}, RES_SCRIPT }, /* 72 */
+ { {0x13B800}, {0x004A}, RES_SCRIPT }, /* 73 */
+ { {0x169000}, {0x00A5}, RES_SCRIPT }, /* 74 */
+ { {0x169800}, {0x0435}, RES_SCRIPT }, /* 75 */
+ { {0x16A000}, {0x008D}, RES_SCRIPT }, /* 76 */
+ { {0x179800}, {0x004A}, RES_SCRIPT }, /* 77 */
+ { {0x285000}, {0x00C4}, RES_SCRIPT }, /* 78 */
+ { {0x186800}, {0x0091}, RES_SCRIPT }, /* 79 */
+ { {0x187000}, {0x004D}, RES_SCRIPT }, /* 80 */
+ { {0x17A000}, {0x0052}, RES_SCRIPT }, /* 81 */
+ { {0x17E800}, {0x00AA}, RES_SCRIPT }, /* 82 */
+ { {0x17F000}, {0x003E}, RES_SCRIPT }, /* 83 */
+ { {0x17F800}, {0x0041}, RES_SCRIPT }, /* 84 */
+ { {0x1A4800}, {0x05BF}, RES_SCRIPT }, /* 85 */
+ { {0x1CC000}, {0x0572}, RES_SCRIPT }, /* 86 */
+ { {0x1D6800}, {0x09DA}, RES_SCRIPT }, /* 87 */
+ { {0x1A5000}, {0x051D}, RES_SCRIPT }, /* 88 */
+ { {0x0B9800}, {0x0080}, RES_SCRIPT }, /* 89 */
+ { {0x1FB800}, {0x0786}, RES_SCRIPT }, /* 90 */
+ { {0x1FC000}, {0x0ECA}, RES_SCRIPT }, /* 91 */
+ { {0x1FD000}, {0x0031}, RES_SCRIPT }, /* 92 */
+ { {0x1FD800}, {0x061D}, RES_SCRIPT }, /* 93 */
+ { {0x104800}, {0x0144}, RES_SCRIPT }, /* 94 */
+ { {0x20B000}, {0x078B}, RES_SCRIPT }, /* 95 */
+ { {0x213800}, {0x00F3}, RES_SCRIPT }, /* 96 */
+ { {0x1A5800}, {0x004A}, RES_SCRIPT }, /* 97 */
+ { {0x1A6000}, {0x064D}, RES_SCRIPT }, /* 98 */
+ { {0x240800}, {0x0538}, RES_SCRIPT }, /* 99 */
+ { {0x235800}, {0x0A78}, RES_SCRIPT }, /* 100 */
+ { {0x09A000}, {0x08F2}, RES_SCRIPT }, /* 101 */
+ { {0x24E800}, {0x00DF}, RES_SCRIPT }, /* 102 */
+ { {0x24F000}, {0x0080}, RES_SCRIPT }, /* 103 */
+ { {0x24F800}, {0x06E6}, RES_SCRIPT }, /* 104 */
+ { {0x09B000}, {0x0225}, RES_SCRIPT }, /* 105 */
+ { {0x28D800}, {0x051E}, RES_SCRIPT }, /* 106 */
+ { {0x0AD800}, {0x00C9}, RES_SCRIPT }, /* 107 */
+ { {0x11C800}, {0x04DF}, RES_SCRIPT }, /* 108 */
+ { {0x16A800}, {0x03B4}, RES_SCRIPT }, /* 109 */
+ { {0x241000}, {0x0062}, RES_SCRIPT }, /* 110 */
+ { {0x2B3800}, {0x0100}, RES_SCRIPT }, /* 111 */
+ { {0x1A6800}, {0x008E}, RES_SCRIPT }, /* 112 */
+ { {0x040800}, {0x007B}, RES_SCRIPT }, /* 113 */
+ { {0x041000}, {0x008B}, RES_SCRIPT }, /* 114 */
+ { {0x28E000}, {0x002D}, RES_SCRIPT }, /* 115 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SCRIPT } /* 0 */
};
-#define NUM_COSTUMES 200
+#define NUM_COSTUMES 200
t_resource res_costumes[NUM_COSTUMES] = {
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x02E000}, {0x53A5}, RES_COSTUME }, /* 1 */
- { {0x033800}, {0x2148}, RES_COSTUME }, /* 2 */
- { {0x036000}, {0x0B6E}, RES_COSTUME }, /* 3 */
- { {0x29A800}, {0x597A}, RES_COSTUME }, /* 4 */
- { {0x2A0800}, {0x01CC}, RES_COSTUME }, /* 5 */
- { {0x25C000}, {0x0812}, RES_COSTUME }, /* 6 */
- { {0x25A000}, {0x1875}, RES_COSTUME }, /* 7 */
- { {0x042000}, {0x011A}, RES_COSTUME }, /* 8 */
- { {0x050800}, {0x0332}, RES_COSTUME }, /* 9 */
- { {0x050000}, {0x06BD}, RES_COSTUME }, /* 10 */
- { {0x051000}, {0x0303}, RES_COSTUME }, /* 11 */
- { {0x064000}, {0x0D55}, RES_COSTUME }, /* 12 */
- { {0x059800}, {0x1090}, RES_COSTUME }, /* 13 */
- { {0x05B000}, {0x03A2}, RES_COSTUME }, /* 14 */
- { {0x0AE000}, {0x17DA}, RES_COSTUME }, /* 15 */
- { {0x0AF800}, {0x1750}, RES_COSTUME }, /* 16 */
- { {0x0C2800}, {0x1568}, RES_COSTUME }, /* 17 */
- { {0x0B1000}, {0x1783}, RES_COSTUME }, /* 18 */
- { {0x0C0800}, {0x1CA8}, RES_COSTUME }, /* 19 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 20 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 21 */
- { {0x0BA000}, {0x0DD6}, RES_COSTUME }, /* 22 */
- { {0x0BC000}, {0x083E}, RES_COSTUME }, /* 23 */
- { {0x06C000}, {0x051D}, RES_COSTUME }, /* 24 */
- { {0x06C800}, {0x0162}, RES_COSTUME }, /* 25 */
- { {0x27B800}, {0x0765}, RES_COSTUME }, /* 26 */
- { {0x08B000}, {0x0430}, RES_COSTUME }, /* 27 */
- { {0x08B800}, {0x041E}, RES_COSTUME }, /* 28 */
- { {0x08C000}, {0x0312}, RES_COSTUME }, /* 29 */
- { {0x07C800}, {0x0A08}, RES_COSTUME }, /* 30 */
- { {0x07D800}, {0x0A1D}, RES_COSTUME }, /* 31 */
- { {0x07E800}, {0x0F46}, RES_COSTUME }, /* 32 */
- { {0x07F800}, {0x00EA}, RES_COSTUME }, /* 33 */
- { {0x08C800}, {0x572B}, RES_COSTUME }, /* 34 */
- { {0x092000}, {0x0224}, RES_COSTUME }, /* 35 */
- { {0x290800}, {0x03FB}, RES_COSTUME }, /* 36 */
- { {0x09C000}, {0x076A}, RES_COSTUME }, /* 37 */
- { {0x09C800}, {0x0B11}, RES_COSTUME }, /* 38 */
- { {0x09D800}, {0x0DB1}, RES_COSTUME }, /* 39 */
- { {0x09E800}, {0x0549}, RES_COSTUME }, /* 40 */
- { {0x09F000}, {0x098F}, RES_COSTUME }, /* 41 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 42 */
- { {0x0A0000}, {0x0672}, RES_COSTUME }, /* 43 */
- { {0x0A0800}, {0x062F}, RES_COSTUME }, /* 44 */
- { {0x070000}, {0x2A71}, RES_COSTUME }, /* 45 */
- { {0x073000}, {0x25C7}, RES_COSTUME }, /* 46 */
- { {0x075800}, {0x48F5}, RES_COSTUME }, /* 47 */
- { {0x07A800}, {0x1D7C}, RES_COSTUME }, /* 48 */
- { {0x0A1000}, {0x0940}, RES_COSTUME }, /* 49 */
- { {0x0A2000}, {0x03AF}, RES_COSTUME }, /* 50 */
- { {0x09B800}, {0x019A}, RES_COSTUME }, /* 51 */
- { {0x2AC000}, {0x0FCD}, RES_COSTUME }, /* 52 */
- { {0x0A2800}, {0x114D}, RES_COSTUME }, /* 53 */
- { {0x0A4000}, {0x1F95}, RES_COSTUME }, /* 54 */
- { {0x0CC800}, {0x0530}, RES_COSTUME }, /* 55 */
- { {0x0CD000}, {0x027E}, RES_COSTUME }, /* 56 */
- { {0x0CD800}, {0x02EF}, RES_COSTUME }, /* 57 */
- { {0x0CE000}, {0x022E}, RES_COSTUME }, /* 58 */
- { {0x0CE800}, {0x2FBF}, RES_COSTUME }, /* 59 */
- { {0x0D6000}, {0x2419}, RES_COSTUME }, /* 60 */
- { {0x0D8800}, {0x0D67}, RES_COSTUME }, /* 61 */
- { {0x0E0000}, {0x106D}, RES_COSTUME }, /* 62 */
- { {0x0E1800}, {0x00F3}, RES_COSTUME }, /* 63 */
- { {0x127000}, {0x2196}, RES_COSTUME }, /* 64 */
- { {0x13C800}, {0x23FF}, RES_COSTUME }, /* 65 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 66 */
- { {0x13F000}, {0x0684}, RES_COSTUME }, /* 67 */
- { {0x145000}, {0x1DE1}, RES_COSTUME }, /* 68 */
- { {0x147000}, {0x010A}, RES_COSTUME }, /* 69 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 70 */
- { {0x0FC800}, {0x0E90}, RES_COSTUME }, /* 71 */
- { {0x10F800}, {0x0AC9}, RES_COSTUME }, /* 72 */
- { {0x0F1800}, {0x2667}, RES_COSTUME }, /* 73 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 74 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 75 */
- { {0x15A000}, {0x14C4}, RES_COSTUME }, /* 76 */
- { {0x16B000}, {0x25C9}, RES_COSTUME }, /* 77 */
- { {0x18E000}, {0x4D0D}, RES_COSTUME }, /* 78 */
- { {0x1EB000}, {0x4760}, RES_COSTUME }, /* 79 */
- { {0x0BB000}, {0x01C3}, RES_COSTUME }, /* 80 */
- { {0x0BB800}, {0x00A1}, RES_COSTUME }, /* 81 */
- { {0x0BE000}, {0x01C5}, RES_COSTUME }, /* 82 */
- { {0x148000}, {0x1CAA}, RES_COSTUME }, /* 83 */
- { {0x1E9800}, {0x1129}, RES_COSTUME }, /* 84 */
- { {0x11D000}, {0x09BB}, RES_COSTUME }, /* 85 */
- { {0x0EB000}, {0x01D3}, RES_COSTUME }, /* 86 */
- { {0x042800}, {0x2ECA}, RES_COSTUME }, /* 87 */
- { {0x110800}, {0x19DE}, RES_COSTUME }, /* 88 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 89 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 90 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 91 */
- { {0x129800}, {0x2B6F}, RES_COSTUME }, /* 92 */
- { {0x147800}, {0x00F9}, RES_COSTUME }, /* 93 */
- { {0x1A7000}, {0x0255}, RES_COSTUME }, /* 94 */
- { {0x126800}, {0x0327}, RES_COSTUME }, /* 95 */
- { {0x16D800}, {0x0C15}, RES_COSTUME }, /* 96 */
- { {0x1C4800}, {0x0489}, RES_COSTUME }, /* 97 */
- { {0x17A800}, {0x05A3}, RES_COSTUME }, /* 98 */
- { {0x180000}, {0x1DCC}, RES_COSTUME }, /* 99 */
- { {0x182800}, {0x0636}, RES_COSTUME }, /* 100 */
- { {0x183000}, {0x0719}, RES_COSTUME }, /* 101 */
- { {0x214000}, {0x5207}, RES_COSTUME }, /* 102 */
- { {0x1B2000}, {0x4713}, RES_COSTUME }, /* 103 */
- { {0x1C2000}, {0x2004}, RES_COSTUME }, /* 104 */
- { {0x1B6800}, {0x10A0}, RES_COSTUME }, /* 105 */
- { {0x1B8000}, {0x0A21}, RES_COSTUME }, /* 106 */
- { {0x1C6000}, {0x0D31}, RES_COSTUME }, /* 107 */
- { {0x1C5000}, {0x059D}, RES_COSTUME }, /* 108 */
- { {0x1C5800}, {0x0417}, RES_COSTUME }, /* 109 */
- { {0x1CC800}, {0x453E}, RES_COSTUME }, /* 110 */
- { {0x1E8800}, {0x0AEB}, RES_COSTUME }, /* 111 */
- { {0x1A8800}, {0x0E7B}, RES_COSTUME }, /* 112 */
- { {0x1FE000}, {0x2024}, RES_COSTUME }, /* 113 */
- { {0x1D1000}, {0x0393}, RES_COSTUME }, /* 114 */
- { {0x1D1800}, {0x03F2}, RES_COSTUME }, /* 115 */
- { {0x200800}, {0x0EEF}, RES_COSTUME }, /* 116 */
- { {0x297800}, {0x0885}, RES_COSTUME }, /* 117 */
- { {0x1A8000}, {0x0430}, RES_COSTUME }, /* 118 */
- { {0x1AA800}, {0x09C3}, RES_COSTUME }, /* 119 */
- { {0x193000}, {0x3D45}, RES_COSTUME }, /* 120 */
- { {0x1D7800}, {0x0940}, RES_COSTUME }, /* 121 */
- { {0x222000}, {0x08D6}, RES_COSTUME }, /* 122 */
- { {0x221000}, {0x0E93}, RES_COSTUME }, /* 123 */
- { {0x238000}, {0x219E}, RES_COSTUME }, /* 124 */
- { {0x28E800}, {0x19A3}, RES_COSTUME }, /* 125 */
- { {0x1F4000}, {0x09E4}, RES_COSTUME }, /* 126 */
- { {0x153800}, {0x0F9A}, RES_COSTUME }, /* 127 */
- { {0x241800}, {0x09D2}, RES_COSTUME }, /* 128 */
- { {0x112800}, {0x3220}, RES_COSTUME }, /* 129 */
- { {0x223000}, {0xBA55}, RES_COSTUME }, /* 130 */
- { {0x237000}, {0x07B4}, RES_COSTUME }, /* 131 */
- { {0x201800}, {0x12EF}, RES_COSTUME }, /* 132 */
- { {0x219800}, {0x1B71}, RES_COSTUME }, /* 133 */
- { {0x20B800}, {0x3BAA}, RES_COSTUME }, /* 134 */
- { {0x1B9000}, {0x050F}, RES_COSTUME }, /* 135 */
- { {0x2A7000}, {0x00BF}, RES_COSTUME }, /* 136 */
- { {0x14A000}, {0x03EE}, RES_COSTUME }, /* 137 */
- { {0x2AD000}, {0x0DC9}, RES_COSTUME }, /* 138 */
- { {0x047000}, {0x11A4}, RES_COSTUME }, /* 139 */
- { {0x045800}, {0x17BD}, RES_COSTUME }, /* 140 */
- { {0x041800}, {0x01CF}, RES_COSTUME }, /* 141 */
- { {0x13C000}, {0x028F}, RES_COSTUME }, /* 142 */
- { {0x06F800}, {0x01DD}, RES_COSTUME }, /* 143 */
- { {0x2AB000}, {0x08FD}, RES_COSTUME }, /* 144 */
- { {0x204000}, {0x269E}, RES_COSTUME }, /* 145 */
- { {0x1A7800}, {0x05D8}, RES_COSTUME }, /* 146 */
- { {0x254800}, {0x1291}, RES_COSTUME }, /* 147 */
- { {0x273000}, {0x2866}, RES_COSTUME }, /* 148 */
- { {0x236800}, {0x016A}, RES_COSTUME }, /* 149 */
- { {0x048800}, {0x2DFF}, RES_COSTUME }, /* 150 */
- { {0x182000}, {0x0687}, RES_COSTUME }, /* 151 */
- { {0x1A9800}, {0x0C18}, RES_COSTUME }, /* 152 */
- { {0x1DF800}, {0x10D1}, RES_COSTUME }, /* 153 */
- { {0x105000}, {0x095E}, RES_COSTUME }, /* 154 */
- { {0x106000}, {0x0155}, RES_COSTUME }, /* 155 */
- { {0x1F3800}, {0x01AE}, RES_COSTUME }, /* 156 */
- { {0x203000}, {0x086B}, RES_COSTUME }, /* 157 */
- { {0x21B800}, {0x0940}, RES_COSTUME }, /* 158 */
- { {0x106800}, {0x0752}, RES_COSTUME }, /* 159 */
- { {0x107000}, {0x0840}, RES_COSTUME }, /* 160 */
- { {0x237800}, {0x0696}, RES_COSTUME }, /* 161 */
- { {0x116000}, {0x03EB}, RES_COSTUME }, /* 162 */
- { {0x108000}, {0x0C15}, RES_COSTUME }, /* 163 */
- { {0x037000}, {0x00EE}, RES_COSTUME }, /* 164 */
- { {0x154800}, {0x09D0}, RES_COSTUME }, /* 165 */
- { {0x12C800}, {0x00F3}, RES_COSTUME }, /* 166 */
- { {0x0CC000}, {0x01C5}, RES_COSTUME }, /* 167 */
- { {0x0BD000}, {0x09C3}, RES_COSTUME }, /* 168 */
- { {0x0B2800}, {0x1040}, RES_COSTUME }, /* 169 */
- { {0x0B4000}, {0x0208}, RES_COSTUME }, /* 170 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
- { {0x000000}, {0x0000}, RES_COSTUME } /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x02E000}, {0x53A5}, RES_COSTUME }, /* 1 */
+ { {0x033800}, {0x2148}, RES_COSTUME }, /* 2 */
+ { {0x036000}, {0x0B6E}, RES_COSTUME }, /* 3 */
+ { {0x29A800}, {0x597A}, RES_COSTUME }, /* 4 */
+ { {0x2A0800}, {0x01CC}, RES_COSTUME }, /* 5 */
+ { {0x25C000}, {0x0812}, RES_COSTUME }, /* 6 */
+ { {0x25A000}, {0x1875}, RES_COSTUME }, /* 7 */
+ { {0x042000}, {0x011A}, RES_COSTUME }, /* 8 */
+ { {0x050800}, {0x0332}, RES_COSTUME }, /* 9 */
+ { {0x050000}, {0x06BD}, RES_COSTUME }, /* 10 */
+ { {0x051000}, {0x0303}, RES_COSTUME }, /* 11 */
+ { {0x064000}, {0x0D55}, RES_COSTUME }, /* 12 */
+ { {0x059800}, {0x1090}, RES_COSTUME }, /* 13 */
+ { {0x05B000}, {0x03A2}, RES_COSTUME }, /* 14 */
+ { {0x0AE000}, {0x17DA}, RES_COSTUME }, /* 15 */
+ { {0x0AF800}, {0x1750}, RES_COSTUME }, /* 16 */
+ { {0x0C2800}, {0x1568}, RES_COSTUME }, /* 17 */
+ { {0x0B1000}, {0x1783}, RES_COSTUME }, /* 18 */
+ { {0x0C0800}, {0x1CA8}, RES_COSTUME }, /* 19 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 20 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 21 */
+ { {0x0BA000}, {0x0DD6}, RES_COSTUME }, /* 22 */
+ { {0x0BC000}, {0x083E}, RES_COSTUME }, /* 23 */
+ { {0x06C000}, {0x051D}, RES_COSTUME }, /* 24 */
+ { {0x06C800}, {0x0162}, RES_COSTUME }, /* 25 */
+ { {0x27B800}, {0x0765}, RES_COSTUME }, /* 26 */
+ { {0x08B000}, {0x0430}, RES_COSTUME }, /* 27 */
+ { {0x08B800}, {0x041E}, RES_COSTUME }, /* 28 */
+ { {0x08C000}, {0x0312}, RES_COSTUME }, /* 29 */
+ { {0x07C800}, {0x0A08}, RES_COSTUME }, /* 30 */
+ { {0x07D800}, {0x0A1D}, RES_COSTUME }, /* 31 */
+ { {0x07E800}, {0x0F46}, RES_COSTUME }, /* 32 */
+ { {0x07F800}, {0x00EA}, RES_COSTUME }, /* 33 */
+ { {0x08C800}, {0x572B}, RES_COSTUME }, /* 34 */
+ { {0x092000}, {0x0224}, RES_COSTUME }, /* 35 */
+ { {0x290800}, {0x03FB}, RES_COSTUME }, /* 36 */
+ { {0x09C000}, {0x076A}, RES_COSTUME }, /* 37 */
+ { {0x09C800}, {0x0B11}, RES_COSTUME }, /* 38 */
+ { {0x09D800}, {0x0DB1}, RES_COSTUME }, /* 39 */
+ { {0x09E800}, {0x0549}, RES_COSTUME }, /* 40 */
+ { {0x09F000}, {0x098F}, RES_COSTUME }, /* 41 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 42 */
+ { {0x0A0000}, {0x0672}, RES_COSTUME }, /* 43 */
+ { {0x0A0800}, {0x062F}, RES_COSTUME }, /* 44 */
+ { {0x070000}, {0x2A71}, RES_COSTUME }, /* 45 */
+ { {0x073000}, {0x25C7}, RES_COSTUME }, /* 46 */
+ { {0x075800}, {0x48F5}, RES_COSTUME }, /* 47 */
+ { {0x07A800}, {0x1D7C}, RES_COSTUME }, /* 48 */
+ { {0x0A1000}, {0x0940}, RES_COSTUME }, /* 49 */
+ { {0x0A2000}, {0x03AF}, RES_COSTUME }, /* 50 */
+ { {0x09B800}, {0x019A}, RES_COSTUME }, /* 51 */
+ { {0x2AC000}, {0x0FCD}, RES_COSTUME }, /* 52 */
+ { {0x0A2800}, {0x114D}, RES_COSTUME }, /* 53 */
+ { {0x0A4000}, {0x1F95}, RES_COSTUME }, /* 54 */
+ { {0x0CC800}, {0x0530}, RES_COSTUME }, /* 55 */
+ { {0x0CD000}, {0x027E}, RES_COSTUME }, /* 56 */
+ { {0x0CD800}, {0x02EF}, RES_COSTUME }, /* 57 */
+ { {0x0CE000}, {0x022E}, RES_COSTUME }, /* 58 */
+ { {0x0CE800}, {0x2FBF}, RES_COSTUME }, /* 59 */
+ { {0x0D6000}, {0x2419}, RES_COSTUME }, /* 60 */
+ { {0x0D8800}, {0x0D67}, RES_COSTUME }, /* 61 */
+ { {0x0E0000}, {0x106D}, RES_COSTUME }, /* 62 */
+ { {0x0E1800}, {0x00F3}, RES_COSTUME }, /* 63 */
+ { {0x127000}, {0x2196}, RES_COSTUME }, /* 64 */
+ { {0x13C800}, {0x23FF}, RES_COSTUME }, /* 65 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 66 */
+ { {0x13F000}, {0x0684}, RES_COSTUME }, /* 67 */
+ { {0x145000}, {0x1DE1}, RES_COSTUME }, /* 68 */
+ { {0x147000}, {0x010A}, RES_COSTUME }, /* 69 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 70 */
+ { {0x0FC800}, {0x0E90}, RES_COSTUME }, /* 71 */
+ { {0x10F800}, {0x0AC9}, RES_COSTUME }, /* 72 */
+ { {0x0F1800}, {0x2667}, RES_COSTUME }, /* 73 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 74 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 75 */
+ { {0x15A000}, {0x14C4}, RES_COSTUME }, /* 76 */
+ { {0x16B000}, {0x25C9}, RES_COSTUME }, /* 77 */
+ { {0x18E000}, {0x4D0D}, RES_COSTUME }, /* 78 */
+ { {0x1EB000}, {0x4760}, RES_COSTUME }, /* 79 */
+ { {0x0BB000}, {0x01C3}, RES_COSTUME }, /* 80 */
+ { {0x0BB800}, {0x00A1}, RES_COSTUME }, /* 81 */
+ { {0x0BE000}, {0x01C5}, RES_COSTUME }, /* 82 */
+ { {0x148000}, {0x1CAA}, RES_COSTUME }, /* 83 */
+ { {0x1E9800}, {0x1129}, RES_COSTUME }, /* 84 */
+ { {0x11D000}, {0x09BB}, RES_COSTUME }, /* 85 */
+ { {0x0EB000}, {0x01D3}, RES_COSTUME }, /* 86 */
+ { {0x042800}, {0x2ECA}, RES_COSTUME }, /* 87 */
+ { {0x110800}, {0x19DE}, RES_COSTUME }, /* 88 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 89 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 90 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 91 */
+ { {0x129800}, {0x2B6F}, RES_COSTUME }, /* 92 */
+ { {0x147800}, {0x00F9}, RES_COSTUME }, /* 93 */
+ { {0x1A7000}, {0x0255}, RES_COSTUME }, /* 94 */
+ { {0x126800}, {0x0327}, RES_COSTUME }, /* 95 */
+ { {0x16D800}, {0x0C15}, RES_COSTUME }, /* 96 */
+ { {0x1C4800}, {0x0489}, RES_COSTUME }, /* 97 */
+ { {0x17A800}, {0x05A3}, RES_COSTUME }, /* 98 */
+ { {0x180000}, {0x1DCC}, RES_COSTUME }, /* 99 */
+ { {0x182800}, {0x0636}, RES_COSTUME }, /* 100 */
+ { {0x183000}, {0x0719}, RES_COSTUME }, /* 101 */
+ { {0x214000}, {0x5207}, RES_COSTUME }, /* 102 */
+ { {0x1B2000}, {0x4713}, RES_COSTUME }, /* 103 */
+ { {0x1C2000}, {0x2004}, RES_COSTUME }, /* 104 */
+ { {0x1B6800}, {0x10A0}, RES_COSTUME }, /* 105 */
+ { {0x1B8000}, {0x0A21}, RES_COSTUME }, /* 106 */
+ { {0x1C6000}, {0x0D31}, RES_COSTUME }, /* 107 */
+ { {0x1C5000}, {0x059D}, RES_COSTUME }, /* 108 */
+ { {0x1C5800}, {0x0417}, RES_COSTUME }, /* 109 */
+ { {0x1CC800}, {0x453E}, RES_COSTUME }, /* 110 */
+ { {0x1E8800}, {0x0AEB}, RES_COSTUME }, /* 111 */
+ { {0x1A8800}, {0x0E7B}, RES_COSTUME }, /* 112 */
+ { {0x1FE000}, {0x2024}, RES_COSTUME }, /* 113 */
+ { {0x1D1000}, {0x0393}, RES_COSTUME }, /* 114 */
+ { {0x1D1800}, {0x03F2}, RES_COSTUME }, /* 115 */
+ { {0x200800}, {0x0EEF}, RES_COSTUME }, /* 116 */
+ { {0x297800}, {0x0885}, RES_COSTUME }, /* 117 */
+ { {0x1A8000}, {0x0430}, RES_COSTUME }, /* 118 */
+ { {0x1AA800}, {0x09C3}, RES_COSTUME }, /* 119 */
+ { {0x193000}, {0x3D45}, RES_COSTUME }, /* 120 */
+ { {0x1D7800}, {0x0940}, RES_COSTUME }, /* 121 */
+ { {0x222000}, {0x08D6}, RES_COSTUME }, /* 122 */
+ { {0x221000}, {0x0E93}, RES_COSTUME }, /* 123 */
+ { {0x238000}, {0x219E}, RES_COSTUME }, /* 124 */
+ { {0x28E800}, {0x19A3}, RES_COSTUME }, /* 125 */
+ { {0x1F4000}, {0x09E4}, RES_COSTUME }, /* 126 */
+ { {0x153800}, {0x0F9A}, RES_COSTUME }, /* 127 */
+ { {0x241800}, {0x09D2}, RES_COSTUME }, /* 128 */
+ { {0x112800}, {0x3220}, RES_COSTUME }, /* 129 */
+ { {0x223000}, {0xBA55}, RES_COSTUME }, /* 130 */
+ { {0x237000}, {0x07B4}, RES_COSTUME }, /* 131 */
+ { {0x201800}, {0x12EF}, RES_COSTUME }, /* 132 */
+ { {0x219800}, {0x1B71}, RES_COSTUME }, /* 133 */
+ { {0x20B800}, {0x3BAA}, RES_COSTUME }, /* 134 */
+ { {0x1B9000}, {0x050F}, RES_COSTUME }, /* 135 */
+ { {0x2A7000}, {0x00BF}, RES_COSTUME }, /* 136 */
+ { {0x14A000}, {0x03EE}, RES_COSTUME }, /* 137 */
+ { {0x2AD000}, {0x0DC9}, RES_COSTUME }, /* 138 */
+ { {0x047000}, {0x11A4}, RES_COSTUME }, /* 139 */
+ { {0x045800}, {0x17BD}, RES_COSTUME }, /* 140 */
+ { {0x041800}, {0x01CF}, RES_COSTUME }, /* 141 */
+ { {0x13C000}, {0x028F}, RES_COSTUME }, /* 142 */
+ { {0x06F800}, {0x01DD}, RES_COSTUME }, /* 143 */
+ { {0x2AB000}, {0x08FD}, RES_COSTUME }, /* 144 */
+ { {0x204000}, {0x269E}, RES_COSTUME }, /* 145 */
+ { {0x1A7800}, {0x05D8}, RES_COSTUME }, /* 146 */
+ { {0x254800}, {0x1291}, RES_COSTUME }, /* 147 */
+ { {0x273000}, {0x2866}, RES_COSTUME }, /* 148 */
+ { {0x236800}, {0x016A}, RES_COSTUME }, /* 149 */
+ { {0x048800}, {0x2DFF}, RES_COSTUME }, /* 150 */
+ { {0x182000}, {0x0687}, RES_COSTUME }, /* 151 */
+ { {0x1A9800}, {0x0C18}, RES_COSTUME }, /* 152 */
+ { {0x1DF800}, {0x10D1}, RES_COSTUME }, /* 153 */
+ { {0x105000}, {0x095E}, RES_COSTUME }, /* 154 */
+ { {0x106000}, {0x0155}, RES_COSTUME }, /* 155 */
+ { {0x1F3800}, {0x01AE}, RES_COSTUME }, /* 156 */
+ { {0x203000}, {0x086B}, RES_COSTUME }, /* 157 */
+ { {0x21B800}, {0x0940}, RES_COSTUME }, /* 158 */
+ { {0x106800}, {0x0752}, RES_COSTUME }, /* 159 */
+ { {0x107000}, {0x0840}, RES_COSTUME }, /* 160 */
+ { {0x237800}, {0x0696}, RES_COSTUME }, /* 161 */
+ { {0x116000}, {0x03EB}, RES_COSTUME }, /* 162 */
+ { {0x108000}, {0x0C15}, RES_COSTUME }, /* 163 */
+ { {0x037000}, {0x00EE}, RES_COSTUME }, /* 164 */
+ { {0x154800}, {0x09D0}, RES_COSTUME }, /* 165 */
+ { {0x12C800}, {0x00F3}, RES_COSTUME }, /* 166 */
+ { {0x0CC000}, {0x01C5}, RES_COSTUME }, /* 167 */
+ { {0x0BD000}, {0x09C3}, RES_COSTUME }, /* 168 */
+ { {0x0B2800}, {0x1040}, RES_COSTUME }, /* 169 */
+ { {0x0B4000}, {0x0208}, RES_COSTUME }, /* 170 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME }, /* 0 */
+ { {0x000000}, {0x0000}, RES_COSTUME } /* 0 */
};
-#define NUM_SOUNDS 80
+#define NUM_SOUNDS 80
t_resource res_sounds[NUM_SOUNDS] = {
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
- { {0x000000}, {0x0000}, RES_SOUND } /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND }, /* 0 */
+ { {0x000000}, {0x0000}, RES_SOUND } /* 0 */
};
-t_resource res_globdata =
- { {0x012000}, {0x0FA7}, RES_GLOBDATA };
-t_resource res_charset =
- { {0x00659D}, {0x0484}, RES_CHARSET };
+t_resource res_globdata = { {0x012000}, {0x0FA7}, RES_GLOBDATA };
+t_resource res_charset = { {0x00659D}, {0x0484}, RES_CHARSET };
-#define NUM_UNKNOWNS 2
+#define NUM_UNKNOWNS 2
t_resource res_unknowns[NUM_UNKNOWNS] = {
- { {0x013000}, {0x1A7F}, RES_UNKNOWN }, /* Unknown resource type, looks like a small Room resource */
- { {0x2B4000}, {0x0155}, RES_COSTUME } /* Duplicate of Costume 155 */
+ { {0x013000}, {0x1A7F}, RES_UNKNOWN }, /* Unknown resource type, looks like a small Room resource */
+ { {0x2B4000}, {0x0155}, RES_COSTUME } /* Duplicate of Costume 155 */
};
static const uint16 roomHeader[88 * 4] = {
@@ -789,28 +794,33 @@
return res->length[ISO];
}
-void extract_resource (FILE *input, FILE *output, p_resource res) {
+void extract_resource (FILE *input, FILE *output, p_resource res) {
#ifdef MAKE_LFLS
uint16 j, off;
#endif
signed short i, rlen;
uint8 junk, rtype, rid;
- if (res == NULL)
+ if (res == NULL) {
error("extract_resource - no resource specified");
- if ((r_offset(res) == 0) && (r_length(res) == 0))
- return; /* if offset/length are both 0, skip it */
- fseek(input,r_offset(res),SEEK_SET);
+ }
+ if ((r_offset(res) == 0) && (r_length(res) == 0)) {
+ /* if offset/length are both 0, skip it */
+ return;
+ }
+
+ fseek(input, r_offset(res), SEEK_SET);
+
switch (res->type) {
case RES_CHARSET:
rlen = r_length(res);
- writeUint16LE(output,(uint16)(rlen+4));
- writeUint16LE(output,0);
+ writeUint16LE(output, (uint16)(rlen + 4));
+ writeUint16LE(output, 0);
/* Skip 4 bytes */
- read_cword(input,&i);
- read_cword(input,&i);
+ read_cword(input, &i);
+ read_cword(input, &i);
/* Write expected charset header */
writeByte(output, 0x63);
@@ -818,43 +828,58 @@
writeByte(output, 0x80);
writeByte(output, 0x08);
- for (i = 0; i < rlen - 4; i++)
- writeByte(output,readByte(input));
+ for (i = 0; i < rlen - 4; i++) {
+ writeByte(output, readByte(input));
+ }
+
break;
case RES_GLOBDATA:
- rlen = read_cword(input,&i);
- junk = read_cbyte(input,&i);
- rtype = read_cbyte(input,&i);
- rid = read_cbyte(input,&i);
- if (rlen != r_length(res))
- error("extract_resource(globdata) - length mismatch while extracting resource (was %04X, expected %04X)",rlen,r_length(res));
- if (rtype != 0x11)
+ rlen = read_cword(input, &i);
+ junk = read_cbyte(input, &i);
+ rtype = read_cbyte(input, &i);
+ rid = read_cbyte(input, &i);
+
+ if (rlen != r_length(res)) {
+ error("extract_resource(globdata) - length mismatch while extracting resource (was %04X, expected %04X)", rlen, r_length(res));
+ }
+
+ if (rtype != 0x11) {
error("extract_resource(globdata) - resource tag is incorrect!");
- writeUint32LE(output,(uint16)(rlen + 1));
- writeUint16LE(output,'O0'); /* 0O - Object Index */
- for (i = 5; i < rlen; i++)
- writeByte(output,readByte(input));
+ }
+
+ writeUint32LE(output, (uint16)(rlen + 1));
+ writeUint16LE(output, 'O0'); /* 0O - Object Index */
+
+ for (i = 5; i < rlen; i++) {
+ writeByte(output, readByte(input));
+ }
+
break;
#ifdef MAKE_LFLS
case RES_ROOM:
{
i = 0;
- rlen = read_cword(input,&i);
- junk = read_cbyte(input,&i);
- rtype = read_cbyte(input,&i);
- rid = read_cbyte(input,&i);
- if (rlen != r_length(res))
- error("extract_resource(room) - length mismatch while extracting resource (was %04X, expected %04X)",rlen,r_length(res));
- if (rtype != 0x01)
+ rlen = read_cword(input, &i);
+ junk = read_cbyte(input, &i);
+ rtype = read_cbyte(input, &i);
+ rid = read_cbyte(input, &i);
+
+ if (rlen != r_length(res)) {
+ error("extract_resource(room) - length mismatch while extracting resource (was %04X, expected %04X)", rlen, r_length(res));
+ }
+
+ if (rtype != 0x01) {
error("extract_resource(room) - resource tag is incorrect!");
+ }
+
off = ftell(output);
rlen = 0;
- write_clong(output,0,&rlen);
- write_cword(output,'OR',&rlen); /* RO - Room */
+ write_clong(output, 0, &rlen);
+ write_cword(output, 'OR', &rlen); /* RO - Room */
/* Hard code room header for now */
- write_clong(output, 0xC,&rlen);
- write_cword(output,'DH',&rlen);
+ write_clong(output, 0xC, &rlen);
+ write_cword(output, 'DH', &rlen);
write_cword(output, roomHeader[rid * 4 + 1], &rlen);
write_cword(output, roomHeader[rid * 4 + 2], &rlen);
write_cword(output, roomHeader[rid * 4 + 3], &rlen);
@@ -863,133 +888,189 @@
uint16 slen;
uint8 stype;
- slen = read_cword(input,&i);
- if (slen == 0xFFFF)
+ slen = read_cword(input, &i);
+
+ if (slen == 0xFFFF) {
break;
- stype = read_cbyte(input,&i);
+ }
+
+ stype = read_cbyte(input, &i);
slen -= 3;
+
switch (stype) {
/* HD, SL, NL, PA - are current unknowns */
case 0x06:
/* Resource type exists in all rooms */
- write_clong(output,slen+6,&rlen);
- write_cword(output,'6U',&rlen); /* Unknown */
- for (j = 0; j < slen; j++)
- write_cbyte(output,read_cbyte(input,&i),&rlen);
+ write_clong(output, slen + 6, &rlen);
+ write_cword(output, '6U', &rlen); /* Unknown */
+
+ for (j = 0; j < slen; j++) {
+ write_cbyte(output, read_cbyte(input, &i), &rlen);
+ }
+
break;
case 0x07:
/* Resource type exists in all rooms */
- write_clong(output,slen+6,&rlen);
- write_cword(output,'7U',&rlen); /* Unknown */
- for (j = 0; j < slen; j++)
- write_cbyte(output,read_cbyte(input,&i),&rlen);
+ write_clong(output, slen + 6, &rlen);
+ write_cword(output, '7U', &rlen); /* Unknown */
+
+ for (j = 0; j < slen; j++) {
+ write_cbyte(output, read_cbyte(input, &i), &rlen);
+ }
+
break;
case 0x0A:
/* Resource type doesn't exists in all rooms */
- write_clong(output,slen+6,&rlen);
- write_cword(output,'AU',&rlen); /* Unknown */
- for (j = 0; j < slen; j++)
- write_cbyte(output,read_cbyte(input,&i),&rlen);
- break;
+ write_clong(output, slen + 6, &rlen);
+ write_cword(output, 'AU', &rlen); /* Unknown */
+ for (j = 0; j < slen; j++) {
+ write_cbyte(output, read_cbyte(input, &i), &rlen);
+ }
-
+ break;
case 0x05:
/* Verb images for the diststaff */
- write_clong(output,slen+6,&rlen);
- write_cword(output,'IO',&rlen); /* OI - object image */
- for (j = 0; j < slen; j++)
- write_cbyte(output,read_cbyte(input,&i),&rlen);
+ write_clong(output, slen + 6, &rlen);
+ write_cword(output, 'IO', &rlen); /* OI - object image */
+
+ for (j = 0; j < slen; j++) {
+ write_cbyte(output, read_cbyte(input, &i), &rlen);
+ }
+
break;
case 0x08:
- write_clong(output,slen+6,&rlen);
- write_cword(output,'MB',&rlen); /* BM - bitmap */
- for (j = 0; j < slen; j++)
- write_cbyte(output,read_cbyte(input,&i),&rlen);
+ write_clong(output, slen + 6, &rlen);
+ write_cword(output, 'MB', &rlen); /* BM - bitmap */
+
+ for (j = 0; j < slen; j++) {
+ write_cbyte(output, read_cbyte(input, &i), &rlen);
+ }
+
break;
case 0x09:
- read_cword(input,&i); slen -= 2; /* skip first 2 bytes */
- write_clong(output,slen+6,&rlen);
- write_cword(output,'XB',&rlen); /* BX - boxes */
- for (j = 0; j < slen; j++)
- write_cbyte(output,read_cbyte(input,&i),&rlen);
+ read_cword(input, &i);
+ /* skip first 2 bytes */
+ slen -= 2;
+ write_clong(output, slen + 6, &rlen);
+ write_cword(output, 'XB', &rlen); /* BX - boxes */
+
+ for (j = 0; j < slen; j++) {
+ write_cbyte(output, read_cbyte(input, &i), &rlen);
+ }
+
break;
case 0x0B:
- write_clong(output,slen+6,&rlen);
- write_cword(output,'NE',&rlen); /* EN - entrance script */
- for (j = 0; j < slen; j++)
- write_cbyte(output,read_cbyte(input,&i),&rlen);
+ write_clong(output, slen + 6, &rlen);
+ write_cword(output, 'NE', &rlen); /* EN - entrance script */
+
+ for (j = 0; j < slen; j++) {
+ write_cbyte(output, read_cbyte(input, &i), &rlen);
+ }
+
break;
case 0x0C:
- write_clong(output,slen+6,&rlen);
- write_cword(output,'XE',&rlen); /* EX - exit script */
- for (j = 0; j < slen; j++)
- write_cbyte(output,read_cbyte(input,&i),&rlen);
+ write_clong(output, slen + 6, &rlen);
+ write_cword(output, 'XE', &rlen); /* EX - exit script */
+
+ for (j = 0; j < slen; j++) {
+ write_cbyte(output, read_cbyte(input, &i), &rlen);
+ }
break;
case 0x0D:
- write_clong(output,slen+6,&rlen);
- write_cword(output,'IO',&rlen); /* OI - object image */
- for (j = 0; j < slen; j++)
- write_cbyte(output,read_cbyte(input,&i),&rlen);
+ write_clong(output, slen + 6, &rlen);
+ write_cword(output, 'IO', &rlen); /* OI - object image */
+
+ for (j = 0; j < slen; j++) {
+ write_cbyte(output, read_cbyte(input, &i), &rlen);
+ }
+
break;
case 0x0E:
- write_clong(output,slen+6,&rlen);
- write_cword(output,'CO',&rlen); /* OC - object code */
- for (j = 0; j < slen; j++)
- write_cbyte(output,read_cbyte(input,&i),&rlen);
+ write_clong(output, slen + 6, &rlen);
+ write_cword(output, 'CO', &rlen); /* OC - object code */
+
+ for (j = 0; j < slen; j++) {
+ write_cbyte(output, read_cbyte(input, &i), &rlen);
+ }
+
break;
case 0x0F:
- write_clong(output,slen+6,&rlen);
- write_cword(output,'CL',&rlen); /* LC - local script count */
- for (j = 0; j < slen; j++)
- write_cbyte(output,read_cbyte(input,&i),&rlen);
+ write_clong(output, slen + 6, &rlen);
+ write_cword(output, 'CL', &rlen); /* LC - local script count */
+
+ for (j = 0; j < slen; j++) {
+ write_cbyte(output, read_cbyte(input, &i), &rlen);
+ }
+
break;
case 0x10:
- write_clong(output,slen+6,&rlen);
- write_cword(output,'SL',&rlen); /* LS - local script */
- for (j = 0; j < slen; j++)
- write_cbyte(output,read_cbyte(input,&i),&rlen);
+ write_clong(output, slen + 6, &rlen);
+ write_cword(output, 'SL', &rlen); /* LS - local script */
+
+ for (j = 0; j < slen; j++) {
+ write_cbyte(output, read_cbyte(input, &i), &rlen);
+ }
+
break;
default:
- fseek(input,slen,SEEK_CUR);
- error("extract_resource(room) - unknown resource tag encountered: len %04X type %02X",slen,stype);
+ fseek(input, slen, SEEK_CUR);
+ error("extract_resource(room) - unknown resource tag encountered: len %04X type %02X", slen, stype);
}
}
- fseek(output,off,SEEK_SET);
- writeUint32LE(output,rlen);
- fseek(output,0,SEEK_END);
+
+ fseek(output, off, SEEK_SET);
+ writeUint32LE(output, rlen);
+ fseek(output, 0, SEEK_END);
}
+
break;
case RES_SOUND:
error("extract_resource(sound) - sound resources are not supported!");
break;
case RES_COSTUME:
- rlen = read_cword(input,&i);
- junk = read_cbyte(input,&i);
- rtype = read_cbyte(input,&i);
- rid = read_cbyte(input,&i);
- if (rlen != r_length(res))
- error("extract_resource(costume) - length mismatch while extracting resource (was %04X, expected %04X)",rlen,r_length(res));
- if (rtype != 0x03)
+ rlen = read_cword(input, &i);
+ junk = read_cbyte(input, &i);
+ rtype = read_cbyte(input, &i);
+ rid = read_cbyte(input, &i);
+
+ if (rlen != r_length(res)) {
+ error("extract_resource(costume) - length mismatch while extracting resource (was %04X, expected %04X)", rlen, r_length(res));
+ }
+
+ if (rtype != 0x03) {
error("extract_resource(costume) - resource tag is incorrect!");
- writeUint32LE(output,(uint16)(rlen + 1));
- writeUint16LE(output,'OC'); /* CO - Costume */
- for (i = 5; i < rlen; i++)
- writeByte(output,readByte(input));
+ }
+
+ writeUint32LE(output, (uint16)(rlen + 1));
+ writeUint16LE(output, 'OC'); /* CO - Costume */
+
+ for (i = 5; i < rlen; i++) {
+ writeByte(output, readByte(input));
+ }
+
break;
case RES_SCRIPT:
- rlen = read_cword(input,&i);
- junk = read_cbyte(input,&i);
- rtype = read_cbyte(input,&i);
- rid = read_cbyte(input,&i);
- if (rlen != r_length(res))
- error("extract_resource(script) - length mismatch while extracting resource (was %04X, expected %04X)",rlen,r_length(res));
- if (rtype != 0x02)
+ rlen = read_cword(input, &i);
+ junk = read_cbyte(input, &i);
+ rtype = read_cbyte(input, &i);
+ rid = read_cbyte(input, &i);
+
+ if (rlen != r_length(res)) {
+ error("extract_resource(script) - length mismatch while extracting resource (was %04X, expected %04X)", rlen, r_length(res));
+ }
+
+ if (rtype != 0x02) {
error("extract_resource(script) - resource tag is incorrect!");
- writeUint32LE(output,(uint16)(rlen + 1));
- writeUint16LE(output,'CS'); /* SC - Script */
- for (i = 5; i < rlen; i++)
- writeByte(output,readByte(input));
+ }
+
+ writeUint32LE(output, (uint16)(rlen + 1));
+ writeUint16LE(output, 'CS'); /* SC - Script */
+
+ for (i = 5; i < rlen; i++) {
+ writeByte(output, readByte(input));
+ }
+
break;
case RES_UNKNOWN:
#else
@@ -998,21 +1079,27 @@
case RES_COSTUME:
case RES_SCRIPT:
case RES_UNKNOWN:
- rlen = read_cword(input,&i);
- if (rlen != r_length(res))
- error("extract_resource - length mismatch while extracting resource (was %04X, expected %04X)",rlen,r_length(res));
- writeUint16LE(output,rlen);
- for (i = 2; i < rlen; i++)
- writeByte(output,readByte(input));
+ rlen = read_cword(input, &i);
+
+ if (rlen != r_length(res)) {
+ error("extract_resource - length mismatch while extracting resource (was %04X, expected %04X)", rlen, r_length(res));
+ }
+
+ writeUint16LE(output, rlen);
+
+ for (i = 2; i < rlen; i++) {
+ writeByte(output, readByte(input));
+ }
+
break;
break;
#endif
default:
- warning("extract_resource - unknown resource type %d specified!",res->type);
+ warning("extract_resource - unknown resource type %d specified!", res->type);
}
}
-#ifdef MAKE_LFLS
+#ifdef MAKE_LFLS
/* based on structure of Loom EGA LFL files */
p_resource lfl_01[] = { &res_rooms[1], &res_scripts[1], &res_scripts[2], &res_scripts[3], &res_scripts[5], &res_scripts[6], &res_scripts[7], &res_scripts[8], &res_scripts[9], &res_scripts[10], &res_scripts[11], &res_scripts[12], &res_scripts[13], &res_scripts[14], &res_scripts[15], &res_scripts[16], &res_scripts[17], &res_scripts[18], &res_scripts[19], &res_scripts[20], &res_scripts[21], &res_scripts[22], &res_scripts[23], &res_scripts[24], &res_scripts[25], &res_scripts[26], &res_scripts[27], &res_scripts[28], &res_scripts[29], &res_scripts[30], &res_scripts[31], &res_scripts[32], &res_scripts[33], &res_scripts[34], &res_scripts[35], &res_scripts[36], &res_scripts[37], &res_scripts[38], &res_scripts[39], &res_scripts[40], &res_scripts[41], &res_scripts[42], &res_scripts[43], &res_sounds[1], &res_sounds[2], &res_sounds[3], &res_sounds[4], &res_sounds[5], &res_sounds[6], &res_sounds[7], &res_sounds[8], &res_costumes[1], &res_costumes[2], &res_costumes[3], &res_costumes[164], NULL };
p_resource lfl_02[] = { &res_rooms[2], &res_scripts[44], &res_scripts[45], &res_scripts[113], &res_scripts[114], &res_costumes[141], &res_costumes[8], &res_costumes[87], &res_costumes[140], &res_costumes[139], &res_costumes[150], NULL };
@@ -1093,12 +1180,12 @@
p_resource lfl_86[] = { &res_rooms[86], &res_scripts[111], &res_costumes[155], NULL };
p_resource lfl_87[] = { &res_rooms[87], NULL };
-typedef struct _lfl {
+typedef struct _lfl {
int num;
p_resource *entries;
} t_lfl, *p_lfl;
-t_lfl lfls[] = {
+t_lfl lfls[] = {
{ 1, lfl_01 },
{ 2, lfl_02 },
{ 3, lfl_03 },
@@ -1180,59 +1267,71 @@
{ -1, NULL }
};
-struct _index {
- uint16 num_rooms;
- uint8 room_lfl[NUM_ROOMS];
- uint32 room_addr[NUM_ROOMS];
+struct _index {
+ uint16 num_rooms;
+ uint8 room_lfl[NUM_ROOMS];
+ uint32 room_addr[NUM_ROOMS];
- uint16 num_costumes;
- uint8 costume_lfl[NUM_COSTUMES];
- uint32 costume_addr[NUM_COSTUMES];
+ uint16 num_costumes;
+ uint8 costume_lfl[NUM_COSTUMES];
+ uint32 costume_addr[NUM_COSTUMES];
- uint16 num_scripts;
- uint8 script_lfl[NUM_SCRIPTS];
- uint32 script_addr[NUM_SCRIPTS];
- uint16 num_sounds;
- uint8 sound_lfl[NUM_SOUNDS];
- uint32 sound_addr[NUM_SOUNDS];
+ uint16 num_scripts;
+ uint8 script_lfl[NUM_SCRIPTS];
+ uint32 script_addr[NUM_SCRIPTS];
+ uint16 num_sounds;
+ uint8 sound_lfl[NUM_SOUNDS];
+ uint32 sound_addr[NUM_SOUNDS];
} lfl_index;
-#else /* !MAKE_LFLS */
-void dump_resource (FILE *input, const char *fn_template, int num, p_resource res) {
+
+#else /* !MAKE_LFLS */
+void dump_resource (FILE *input, const char *fn_template, int num, p_resource res) {
char fname[256];
FILE *output;
- sprintf(fname,fn_template,num);
- if (!(output = fopen(fname,"wb")))
- error("Error: unable to create %s!",fname);
- extract_resource(input,output,res);
+ sprintf(fname, fn_template, num);
+
+ if (!(output = fopen(fname, "wb"))) {
+ error("Error: unable to create %s!", fname);
+ }
+
+ extract_resource(input, output, res);
fclose(output);
}
-#endif /* MAKE_LFLS */
+#endif /* MAKE_LFLS */
-uint32 CRCtable[256];
-void InitCRC (void) {
+uint32 CRCtable[256];
+void InitCRC (void) {
const uint32 poly = 0xEDB88320;
int i, j;
uint32 n;
+
for (i = 0; i < 256; i++) {
n = i;
- for (j = 0; j < 8; j++)
+
+ for (j = 0; j < 8; j++) {
n = (n & 1) ? ((n >> 1) ^ poly) : (n >> 1);
+ }
+
CRCtable[i] = n;
}
}
-uint32 ISO_CRC (FILE *file) {
+
+uint32 ISO_CRC (FILE *file) {
uint32 CRC = 0xFFFFFFFF;
uint32 i, len;
- fseek(file,0,SEEK_END);
+ fseek(file, 0, SEEK_END);
len = ftell(file);
- fseek(file,0,SEEK_SET);
- for (i = 0; i < len; i++)
+ fseek(file, 0, SEEK_SET);
+
+ for (i = 0; i < len; i++) {
CRC = (CRC >> 8) ^ CRCtable[(CRC ^ readByte(file)) & 0xFF];
+ }
+
return CRC ^ 0xFFFFFFFF;
}
int main (int argc, char **argv) {
-#ifdef MAKE_LFLS
+#ifdef MAKE_LFLS
FILE *input, *output;
char fname[256];
int i, j;
@@ -1243,16 +1342,18 @@
uint32 CRC;
if (argc < 2) {
- printf("Syntax: %s <code_##.ISO>\n",argv[0]);
+ printf("nUsage: %s <code_##.ISO>\n", argv[0]);
return 1;
}
- if (!(input = fopen(argv[1],"rb")))
- error("Error: unable to open file %s for input!",argv[1]);
+ if (!(input = fopen(argv[1], "rb"))) {
+ error("Error: unable to open file %s for input!", argv[1]);
+ }
+
InitCRC();
CRC = ISO_CRC(input);
- switch (CRC)
- {
+
+ switch (CRC) {
case 0x29EED3C5:
ISO = ISO_USA;
notice("ISO contents verified as Loom USA (track 2)");
@@ -1261,15 +1362,20 @@
error("ISO contents not recognized!");
break;
}
-#ifdef MAKE_LFLS
- memset(&lfl_index,0xFF,sizeof(lfl_index));
+#ifdef MAKE_LFLS
+ memset(&lfl_index, 0xFF, sizeof(lfl_index));
+
for (i = 0; lfls[i].num != -1; i++) {
p_lfl lfl = &lfls[i];
- sprintf(fname,"%02i.LFL",lfl->num);
- if (!(output = fopen(fname,"wb")))
- error("Error: unable to create %s!",fname);
- notice("Creating %s...",fname);
+ sprintf(fname, "%02i.LFL", lfl->num);
+
+ if (!(output = fopen(fname, "wb"))) {
+ error("Error: unable to create %s!", fname);
+ }
+
+ notice("Creating %s...", fname);
+
for (j = 0; lfl->entries[j] != NULL; j++) {
p_resource entry = lfl->entries[j];
switch (entry->type) {
@@ -1290,15 +1396,20 @@
lfl_index.sound_addr[entry - res_sounds] = (uint16)ftell(output);
break;
default:
- notice("Unknown resource type %d detected in LFL index!",entry->type);
+ notice("Unknown resource type %d detected in LFL index!", entry->type);
break;
}
- extract_resource(input,output,entry);
+
+ extract_resource(input, output, entry);
}
+
fclose(output);
}
- if (!(output = fopen("00.LFL","wb")))
+
+ if (!(output = fopen("00.LFL", "wb"))) {
error("Error: unable to create index file!");
+ }
+
notice("Creating 00.LFL...");
lfl_index.num_rooms = NUM_ROOMS;
@@ -1306,76 +1417,99 @@
lfl_index.num_scripts = NUM_SCRIPTS;
lfl_index.num_sounds = NUM_SOUNDS;
- writeUint32LE(output,8+5*lfl_index.num_rooms);
- writeUint16LE(output,'R0'); /* 0R - room index */
- writeUint16LE(output,lfl_index.num_rooms);
+ writeUint32LE(output, 8 + 5 * lfl_index.num_rooms);
+ writeUint16LE(output, 'R0'); /* 0R - room index */
+ writeUint16LE(output, lfl_index.num_rooms);
+
for (i = 0; i < lfl_index.num_rooms; i++) {
- writeByte(output,lfl_index.room_lfl[i]);
- writeUint32LE(output,lfl_index.room_addr[i]);
+ writeByte(output, lfl_index.room_lfl[i]);
+ writeUint32LE(output, lfl_index.room_addr[i]);
}
- writeUint32LE(output,8+5*lfl_index.num_scripts);
- writeUint16LE(output,'S0'); /* 0S - script index */
- writeUint16LE(output,lfl_index.num_scripts);
+ writeUint32LE(output, 8 + 5 * lfl_index.num_scripts);
+ writeUint16LE(output, 'S0'); /* 0S - script index */
+ writeUint16LE(output, lfl_index.num_scripts);
+
for (i = 0; i < lfl_index.num_scripts; i++) {
- writeByte(output,lfl_index.script_lfl[i]);
- writeUint32LE(output,lfl_index.script_addr[i]);
+ writeByte(output, lfl_index.script_lfl[i]);
+ writeUint32LE(output, lfl_index.script_addr[i]);
}
- writeUint32LE(output,8+5*lfl_index.num_costumes);
- writeUint16LE(output,'C0'); /* 0C - costume index */
- writeUint16LE(output,lfl_index.num_costumes);
+ writeUint32LE(output, 8 + 5 * lfl_index.num_costumes);
+ writeUint16LE(output, 'C0'); /* 0C - costume index */
+ writeUint16LE(output, lfl_index.num_costumes);
+
for (i = 0; i < lfl_index.num_costumes; i++) {
- writeByte(output,lfl_index.costume_lfl[i]);
- writeUint32LE(output,lfl_index.costume_addr[i]);
+ writeByte(output, lfl_index.costume_lfl[i]);
+ writeUint32LE(output, lfl_index.costume_addr[i]);
}
/*
- writeUint32LE(output,8+5*lfl_index.num_sounds);
- writeUint16LE(output,'N0'); 0N - sounds index
- writeUint16LE(output,lfl_index.num_sounds);
+ writeUint32LE(output, 8 + 5 * lfl_index.num_sounds);
+ writeUint16LE(output, 'N0'); 0N - sounds index
+ writeUint16LE(output, lfl_index.num_sounds);
+
for (i = 0; i < lfl_index.num_sounds; i++) {
- writeByte(output,lfl_index.sound_lfl[i]);
- writeUint32LE(output,lfl_index.sound_addr[i]);
+ writeByte(output, lfl_index.sound_lfl[i]);
+ writeUint32LE(output, lfl_index.sound_addr[i]);
}
*/
- extract_resource(input,output,&res_globdata);
-
+ extract_resource(input, output, &res_globdata);
+
fclose(output);
- if (!(output = fopen("97.LFL","wb")))
+ if (!(output = fopen("97.LFL", "wb"))) {
error("Error: unable to create charset file!");
+ }
+
notice("Creating 97.LFL...");
- extract_resource(input,output,&res_charset);
+ extract_resource(input, output, &res_charset);
fclose(output);
- if (!(output = fopen("98.LFL","wb")))
+ if (!(output = fopen("98.LFL", "wb"))) {
error("Error: unable to create charset file!");
+ }
+
notice("Creating 98.LFL...");
- extract_resource(input,output,&res_charset);
+ extract_resource(input, output, &res_charset);
fclose(output);
- if (!(output = fopen("99.LFL","wb")))
+ if (!(output = fopen("99.LFL", "wb"))) {
error("Error: unable to create charset file!");
+ }
+
notice("Creating 99.LFL...");
- extract_resource(input,output,&res_charset);
+ extract_resource(input, output, &res_charset);
fclose(output);
-#else /* !MAKE_LFLS */
- dump_resource(input,"globdata.dmp",0,&res_globdata);
- dump_resource(input,"charset.dmp",0,&res_charset);
- for (i = 0; i < NUM_UNKNOWNS; i++)
- dump_resource(input,"unk-%d.dmp",i,&res_unknowns[i]);
- for (i = 0; i < NUM_ROOMS; i++)
- dump_resource(input,"room-%d.dmp",i,&res_rooms[i]);
- for (i = 0; i < NUM_COSTUMES; i++)
- dump_resource(input,"costume-%d.dmp",i,&res_costumes[i]);
- for (i = 0; i < NUM_SCRIPTS; i++)
- dump_resource(input,"script-%d.dmp",i,&res_scripts[i]);
- for (i = 0; i < NUM_SOUNDS; i++)
- dump_resource(input,"sound-%d.dmp",i,&res_sounds[i]);
-#endif /* MAKE_LFLS */
+#else /* !MAKE_LFLS */
+ dump_resource(input, "globdata.dmp", 0, &res_globdata);
+ dump_resource(input, "charset.dmp", 0, &res_charset);
+
+ for (i = 0; i < NUM_UNKNOWNS; i++) {
+ dump_resource(input, "unk-%d.dmp", i, &res_unknowns[i]);
+ }
+
+ for (i = 0; i < NUM_ROOMS; i++) {
+ dump_resource(input, "room-%d.dmp", i, &res_rooms[i]);
+ }
+
+ for (i = 0; i < NUM_COSTUMES; i++) {
+ dump_resource(input, "costume-%d.dmp", i, &res_costumes[i]);
+ }
+
+ for (i = 0; i < NUM_SCRIPTS; i++) {
+ dump_resource(input, "script-%d.dmp", i, &res_scripts[i]);
+ }
+
+ for (i = 0; i < NUM_SOUNDS; i++) {
+ dump_resource(input, "sound-%d.dmp", i, &res_sounds[i]);
+ }
+
+#endif /* MAKE_LFLS */
+
notice("All done!");
+
return 0;
}
Modified: tools/branches/gsoc2007-toolsgui/extract_mm_apple.c
===================================================================
--- tools/branches/gsoc2007-toolsgui/extract_mm_apple.c 2007-07-15 03:23:18 UTC (rev 28083)
+++ tools/branches/gsoc2007-toolsgui/extract_mm_apple.c 2007-07-15 03:25:23 UTC (rev 28084)
@@ -28,15 +28,17 @@
#define FALSE 0
#ifdef _MSC_VER
- #define vsnprintf _vsnprintf
+ #define vsnprintf _vsnprintf
#endif
void writeByteAlt(FILE *fp, uint8 b) {
writeByte(fp, (uint8)(b ^ 0xFF));
}
+
void writeUint16LEAlt(FILE *fp, uint16 value) {
writeUint16LE(fp, (uint16)(value ^ 0xFFFF));
}
+
#define writeByte writeByteAlt
#define writeUint16LE writeUint16LEAlt
@@ -60,41 +62,54 @@
unsigned short signature;
if (argc < 3) {
- printf("Syntax: %s <disk1.dsk> <disk2.dsk>\n",argv[0]);
- return 1;
+ printf("Usage: %s <disk1.dsk> <disk2.dsk>\n", argv[0]);
+ exit(2);
}
- if (!(input1 = fopen(argv[1],"rb")))
- error("Error: unable to open file %s for input!",argv[1]);
- if (!(input2 = fopen(argv[2],"rb")))
- error("Error: unable to open file %s for input!",argv[2]);
+ if (!(input1 = fopen(argv[1], "rb"))) {
+ error("Error: unable to open file %s for input!", argv[1]);
+ }
+
+ if (!(input2 = fopen(argv[2], "rb"))) {
+ error("Error: unable to open file %s for input!", argv[2]);
+ }
+
fseek(input1, 142080, SEEK_SET);
fseek(input2, 143104, SEEK_SET);
/* check signature */
signature = readUint16LE(input1);
- if (signature != 0x0A31)
+
+ if (signature != 0x0A31) {
error("Signature not found in disk 1!");
+ }
+
signature = readUint16LE(input2);
- if (signature != 0x0032)
+
+ if (signature != 0x0032) {
error("Signature not found in disk 2!");
+ }
- if (!(output = fopen("00.LFL","wb")))
+ if (!(output = fopen("00.LFL", "wb"))) {
error("Unable to create index file!");
+ }
+
notice("Creating 00.LFL...");
/* write signature */
writeUint16LE(output, signature);
/* copy object flags */
- for (i = 0; i < 256; i++)
+ for (i = 0; i < 256; i++) {
writeByte(output, readByte(input1));
+ }
/* copy room offsets */
for (i = 0; i < 55; i++) {
room_disks[i] = readByte(input1);
writeByte(output, room_disks[i]);
}
+
for (i = 0; i < 55; i++) {
room_sectors[i] = readByte(input1);
writeByte(output, room_sectors[i]);
@@ -103,22 +118,31 @@
}
/* copy costume offsets */
- for (i = 0; i < 25; i++)
+ for (i = 0; i < 25; i++) {
writeByte(output, readByte(input1));
- for (i = 0; i < 25; i++)
+ }
+
+ for (i = 0; i < 25; i++) {
writeUint16LE(output, readUint16LE(input1));
+ }
/* copy script offsets */
- for (i = 0; i < 160; i++)
+ for (i = 0; i < 160; i++) {
writeByte(output, readByte(input1));
- for (i = 0; i < 160; i++)
+ }
+
+ for (i = 0; i < 160; i++) {
writeUint16LE(output, readUint16LE(input1));
+ }
/* copy sound offsets */
- for (i = 0; i < 70; i++)
+ for (i = 0; i < 70; i++) {
writeByte(output, readByte(input1));
- for (i = 0; i < 70; i++)
+ }
+
+ for (i = 0; i < 70; i++) {
writeUint16LE(output, readUint16LE(input1));
+ }
/* NOTE: Extra 92 bytes of unknown data */
@@ -131,6 +155,7 @@
384, 400, 416, 432, 448, 464,
480, 496, 512, 528, 544, 560
};
+
const int ResourcesPerFile[55] = {
0, 11, 1, 3, 9, 12, 1, 13, 10, 6,
4, 1, 7, 1, 1, 2, 7, 8, 19, 9,
@@ -139,28 +164,40 @@
3, 7, 3, 3, 13, 5, 4, 3, 1, 1,
3, 10, 1, 0, 0
};
+
FILE *input;
- if (room_disks[i] == '1')
+
+ if (room_disks[i] == '1') {
input = input1;
- else if (room_disks[i] == '2')
+ } else if (room_disks[i] == '2') {
input = input2;
- else continue;
+ } else {
+ continue;
+ }
- sprintf(fname,"%02i.LFL", i);
+ sprintf(fname, "%02i.LFL", i);
output = fopen(fname, "wb");
- if (output == NULL)
- error("Unable to create %s!",fname);
- notice("Creating %s...",fname);
+
+ if (output == NULL) {
+ error("Unable to create %s!", fname);
+ }
+
+ notice("Creating %s...", fname);
fseek(input, (SectorOffset[room_tracks[i]] + room_sectors[i]) * 256, SEEK_SET);
+
for (j = 0; j < ResourcesPerFile[i]; j++) {
unsigned short len = readUint16LE(input);
writeUint16LE(output, len);
- for (len -= 2; len > 0; len--)
+
+ for (len -= 2; len > 0; len--) {
writeByte(output, readByte(input));
+ }
}
+
rewind(input);
}
notice("All done!");
+
return 0;
}
Modified: tools/branches/gsoc2007-toolsgui/extract_mm_c64.c
===================================================================
--- tools/branches/gsoc2007-toolsgui/extract_mm_c64.c 2007-07-15 03:23:18 UTC (rev 28083)
+++ tools/branches/gsoc2007-toolsgui/extract_mm_c64.c 2007-07-15 03:25:23 UTC (rev 28084)
@@ -28,15 +28,17 @@
#define FALSE 0
#ifdef _MSC_VER
- #define vsnprintf _vsnprintf
+ #define vsnprintf _vsnprintf
#endif
void writeByteAlt(FILE *fp, uint8 b) {
writeByte(fp, (uint8)(b ^ 0xFF));
}
+
void writeUint16LEAlt(FILE *fp, uint16 value) {
writeUint16LE(fp, (uint16)(value ^ 0xFFFF));
}
+
#define writeByte writeByteAlt
#define writeUint16LE writeUint16LEAlt
@@ -60,39 +62,51 @@
unsigned short signature;
if (argc < 3) {
- printf("Syntax: %s <disk1.d64> <disk2.d64>\n",argv[0]);
+ printf("Syntax: %s <disk1.d64> <disk2.d64>\n", argv[0]);
return 1;
}
- if (!(input1 = fopen(argv[1],"rb")))
- error("Error: unable to open file %s for input!",argv[1]);
- if (!(input2 = fopen(argv[2],"rb")))
- error("Error: unable to open file %s for input!",argv[2]);
+ if (!(input1 = fopen(argv[1], "rb"))) {
+ error("Error: unable to open file %s for input!", argv[1]);
+ }
+ if (!(input2 = fopen(argv[2], "rb"))) {
+ error("Error: unable to open file %s for input!", argv[2]);
+ }
+
/* check signature */
signature = readUint16LE(input1);
- if (signature != 0x0A31)
+
+ if (signature != 0x0A31) {
error("Signature not found in disk 1!");
+ }
+
signature = readUint16LE(input2);
- if (signature != 0x0132)
+
+ if (signature != 0x0132) {
error("Signature not found in disk 2!");
+ }
- if (!(output = fopen("00.LFL","wb")))
+ if (!(output = fopen("00.LFL", "wb"))) {
error("Unable to create index file!");
+ }
+
notice("Creating 00.LFL...");
/* write signature */
writeUint16LE(output, signature);
/* copy object flags */
- for (i = 0; i < 256; i++)
+ for (i = 0; i < 256; i++) {
writeByte(output, readByte(input1));
+ }
/* copy room offsets */
for (i = 0; i < 55; i++) {
room_disks[i] = readByte(input1);
writeByte(output, room_disks[i]);
}
+
for (i = 0; i < 55; i++) {
room_sectors[i] = readByte(input1);
writeByte(output, room_sectors[i]);
@@ -101,22 +115,31 @@
}
/* copy costume offsets */
- for (i = 0; i < 25; i++)
+ for (i = 0; i < 25; i++) {
writeByte(output, readByte(input1));
- for (i = 0; i < 25; i++)
+ }
+
+ for (i = 0; i < 25; i++) {
writeUint16LE(output, readUint16LE(input1));
+ }
/* copy script offsets */
- for (i = 0; i < 160; i++)
+ for (i = 0; i < 160; i++) {
writeByte(output, readByte(input1));
- for (i = 0; i < 160; i++)
+ }
+
+ for (i = 0; i < 160; i++) {
writeUint16LE(output, readUint16LE(input1));
+ }
/* copy sound offsets */
- for (i = 0; i < 70; i++)
+ for (i = 0; i < 70; i++) {
writeByte(output, readByte(input1));
- for (i = 0; i < 70; i++)
+ }
+
+ for (i = 0; i < 70; i++) {
writeUint16LE(output, readUint16LE(input1));
+ }
fclose(output);
@@ -128,6 +151,7 @@
490, 508, 526, 544, 562, 580,
598, 615, 632, 649, 666
};
+
const int ResourcesPerFile[55] = {
0, 11, 1, 3, 9, 12, 1, 13, 10, 6,
4, 1, 7, 1, 1, 2, 7, 8, 19, 9,
@@ -136,28 +160,40 @@
3, 7, 3, 3, 13, 5, 4, 3, 1, 1,
3, 10, 1, 0, 0
};
+
FILE *input;
- if (room_disks[i] == '1')
+
+ if (room_disks[i] == '1') {
input = input1;
- else if (room_disks[i] == '2')
+ } else if (room_disks[i] == '2') {
input = input2;
- else continue;
+ } else {
+ continue;
+ }
- sprintf(fname,"%02i.LFL", i);
+ sprintf(fname, "%02i.LFL", i);
output = fopen(fname, "wb");
- if (output == NULL)
- error("Unable to create %s!",fname);
- notice("Creating %s...",fname);
+
+ if (output == NULL) {
+ error("Unable to create %s!", fname);
+ }
+
+ notice("Creating %s...", fname);
fseek(input, (SectorOffset[room_tracks[i]] + room_sectors[i]) * 256, SEEK_SET);
+
for (j = 0; j < ResourcesPerFile[i]; j++) {
unsigned short len = readUint16LE(input);
writeUint16LE(output, len);
- for (len -= 2; len > 0; len--)
+
+ for (len -= 2; len > 0; len--) {
writeByte(output, readByte(input));
+ }
}
+
rewind(input);
}
notice("All done!");
+
return 0;
}
Modified: tools/branches/gsoc2007-toolsgui/extract_mm_nes.c
===================================================================
--- tools/branches/gsoc2007-toolsgui/extract_mm_nes.c 2007-07-15 03:23:18 UTC (rev 28083)
+++ tools/branches/gsoc2007-toolsgui/extract_mm_nes.c 2007-07-15 03:25:23 UTC (rev 28084)
@@ -29,21 +29,21 @@
/* if defined, generates a set of .LFL files */
/* if not defined, dumps all resources to separate files */
-#define MAKE_LFLS
+#define MAKE_LFLS
#ifdef _MSC_VER
- #define vsnprintf _vsnprintf
+ #define vsnprintf _vsnprintf
#endif
#ifdef MAKE_LFLS
-void writeByteAlt(FILE *fp, uint8 b)
-{
+void writeByteAlt(FILE *fp, uint8 b) {
writeByte(fp, (uint8)(b ^ 0xFF));
}
-void writeUint16LEAlt(FILE *fp, uint16 value)
-{
+
+void writeUint16LEAlt(FILE *fp, uint16 value) {
writeUint16LE(fp, (uint16)(value ^ 0xFFFF));
}
+
#define writeByte writeByteAlt
#define writeUint16LE writeUint16LEAlt
#endif
@@ -77,7 +77,7 @@
NES_PREPLIST
} res_type;
-typedef enum _romset {
+typedef enum _romset {
ROMSET_USA,
ROMSET_EUROPE,
ROMSET_SWEDEN,
@@ -88,8 +88,7 @@
t_romset ROMset = NUM_ROMSETS;
-typedef struct _resource
-{
+typedef struct _resource {
uint32 offset;
uint16 length;
res_type type;
@@ -105,6 +104,7 @@
{ 0x10001, 0x02D6, NES_ROOMGFX }, { 0x102D7, 0x06A3, NES_ROOMGFX }, { 0x1097A, 0x099F, NES_ROOMGFX }, { 0x11319, 0x0361, NES_ROOMGFX }, { 0x1167A, 0x0489, NES_ROOMGFX },
{ 0x11B03, 0x0437, NES_ROOMGFX }, { 0x11F3A, 0x084D, NES_ROOMGFX }, { 0x0BE28, 0x0199, NES_ROOMGFX }, { 0x12787, 0x09A7, NES_ROOMGFX }, { 0x1312E, 0x037A, NES_ROOMGFX }
};
+
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list