aboutsummaryrefslogtreecommitdiff
path: root/devtools
diff options
context:
space:
mode:
authorMatthew Hoops2012-03-20 14:18:57 -0400
committerMatthew Hoops2012-03-20 14:49:16 -0400
commit71756bdf4eae5ba9cc3f329b85e894f04640aaef (patch)
tree40d464262da107ab5eed82f198685209161ebac1 /devtools
parent03eba05b09e5c9e5a351f8111185934b92a3fed3 (diff)
parent3c3576a224b92c703b4e8ea20008ac8a069980dd (diff)
downloadscummvm-rg350-71756bdf4eae5ba9cc3f329b85e894f04640aaef.tar.gz
scummvm-rg350-71756bdf4eae5ba9cc3f329b85e894f04640aaef.tar.bz2
scummvm-rg350-71756bdf4eae5ba9cc3f329b85e894f04640aaef.zip
Merge remote branch 'upstream/master' into pegasus
Diffstat (limited to 'devtools')
-rw-r--r--devtools/convbdf.c928
-rw-r--r--devtools/convbdf.cpp510
-rw-r--r--devtools/create_kyradat/create_kyradat.cpp1569
-rw-r--r--devtools/create_kyradat/create_kyradat.h569
-rw-r--r--devtools/create_kyradat/extract.cpp182
-rw-r--r--devtools/create_kyradat/extract.h18
-rw-r--r--devtools/create_kyradat/games.cpp1131
-rw-r--r--devtools/create_kyradat/module.mk3
-rw-r--r--devtools/create_kyradat/tables.cpp2750
-rw-r--r--devtools/create_kyradat/util.cpp13
-rw-r--r--devtools/create_kyradat/util.h1
-rw-r--r--devtools/create_lure/create_lure_dat.h1
-rw-r--r--devtools/create_project/create_project.cpp52
-rw-r--r--[-rwxr-xr-x]devtools/create_project/xcode.cpp0
-rw-r--r--devtools/create_translations/cp_parser.cpp106
-rw-r--r--devtools/create_translations/cp_parser.h54
-rw-r--r--devtools/create_translations/create_translations.cpp105
-rw-r--r--devtools/create_translations/create_translations.h1
-rw-r--r--devtools/create_translations/module.mk1
-rw-r--r--devtools/create_translations/po_parser.cpp47
-rwxr-xr-xdevtools/credits.pl20
-rw-r--r--devtools/module.mk4
-rw-r--r--devtools/scumm-md5.txt34
-rw-r--r--devtools/skycpt/AsciiCptCompile.cpp2
-rw-r--r--devtools/skycpt/TextFile.cpp4
-rw-r--r--devtools/skycpt/cptcompiler.cpp34
-rw-r--r--devtools/tasmrecover/dreamweb/backdrop.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/debug.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/dreamweb.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/keypad.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/look.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/monitor.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/newplace.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/object.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/print.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/saveload.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/sblaster.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/sprite.asm4
-rw-r--r--devtools/tasmrecover/dreamweb/talk.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/titles.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/use.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/vars.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/vgafades.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/vgagrafx.asm2
-rwxr-xr-xdevtools/tasmrecover/tasm-recover584
-rw-r--r--devtools/tasmrecover/tasm/cpp.py4
-rw-r--r--devtools/tasmrecover/tasm/parser.py8
-rwxr-xr-xdevtools/update-version.pl6
48 files changed, 6973 insertions, 1806 deletions
diff --git a/devtools/convbdf.c b/devtools/convbdf.c
deleted file mode 100644
index e465b77a9c..0000000000
--- a/devtools/convbdf.c
+++ /dev/null
@@ -1,928 +0,0 @@
-/*
- * Convert BDF files to C++ source.
- *
- * Copyright (c) 2002 by Greg Haerr <greg@censoft.com>
- *
- * Originally writen for the Microwindows Project <http://microwindows.org>
- *
- * Greg then modified it for Rockbox <http://rockbox.haxx.se/>
- *
- * Max Horn took that version and changed it to work for ScummVM.
- * Changes include: warning fixes, removed .FNT output, output C++ source,
- * tweak code generator so that the generated code fits into ScummVM code base.
- *
- * What fun it is converting font data...
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-int READ_UINT16(void *addr) {
- unsigned char *buf = (unsigned char *)addr;
- return (buf[0] << 8) | buf[1];
-}
-
-void WRITE_UINT16(void *addr, int value) {
- unsigned char *buf = (unsigned char *)addr;
- buf[0] = (value >> 8) & 0xFF;
- buf[1] = value & 0xFF;
-}
-
-/* BEGIN font.h*/
-/* bitmap_t helper macros*/
-#define BITMAP_WORDS(x) (((x)+15)/16) /* image size in words*/
-#define BITMAP_BYTES(x) (BITMAP_WORDS(x)*sizeof(bitmap_t))
-#define BITMAP_BITSPERIMAGE (sizeof(bitmap_t) * 8)
-#define BITMAP_BITVALUE(n) ((bitmap_t) (((bitmap_t) 1) << (n)))
-#define BITMAP_FIRSTBIT (BITMAP_BITVALUE(BITMAP_BITSPERIMAGE - 1))
-#define BITMAP_TESTBIT(m) ((m) & BITMAP_FIRSTBIT)
-#define BITMAP_SHIFTBIT(m) ((bitmap_t) ((m) << 1))
-
-typedef unsigned short bitmap_t; /* bitmap image unit size*/
-
-typedef struct {
- signed char w;
- signed char h;
- signed char x;
- signed char y;
-} BBX;
-
-/* builtin C-based proportional/fixed font structure */
-/* based on The Microwindows Project http://microwindows.org */
-struct font {
- char * name; /* font name*/
- int maxwidth; /* max width in pixels*/
- int height; /* height in pixels*/
- int fbbw, fbbh, fbbx, fbby; /* max bounding box */
- int ascent; /* ascent (baseline) height*/
- int firstchar; /* first character in bitmap*/
- int size; /* font size in glyphs*/
- bitmap_t* bits; /* 16-bit right-padded bitmap data*/
- unsigned long* offset; /* offsets into bitmap data*/
- unsigned char* width; /* character widths or NULL if fixed*/
- BBX* bbx; /* character bounding box or NULL if fixed*/
- int defaultchar; /* default char (not glyph index)*/
- long bits_size; /* # words of bitmap_t bits*/
-
- /* unused by runtime system, read in by convbdf*/
- char * facename; /* facename of font*/
- char * copyright; /* copyright info for loadable fonts*/
- int pixel_size;
- int descent;
-};
-/* END font.h*/
-
-#define isprefix(buf,str) (!strncmp(buf, str, strlen(str)))
-#define strequal(s1,s2) (!strcmp(s1, s2))
-
-#define EXTRA 300 /* # bytes extra allocation for buggy .bdf files*/
-
-int gen_map = 1;
-int start_char = 0;
-int limit_char = 65535;
-int oflag = 0;
-char outfile[256];
-
-void usage(void);
-void getopts(int *pac, char ***pav);
-int convbdf(char *path);
-
-void free_font(struct font* pf);
-struct font* bdf_read_font(char *path);
-int bdf_read_header(FILE *fp, struct font* pf);
-int bdf_read_bitmaps(FILE *fp, struct font* pf);
-char * bdf_getline(FILE *fp, char *buf, int len);
-bitmap_t bdf_hexval(unsigned char *buf);
-
-int gen_c_source(struct font* pf, char *path);
-
-void error(const char *s, ...) {
- char buf[1024];
- va_list va;
-
- va_start(va, s);
- vsnprintf(buf, 1024, s, va);
- va_end(va);
-
- fprintf(stderr, "ERROR: %s!\n", buf);
-
- exit(1);
-}
-
-void warning(const char *s, ...) {
- char buf[1024];
- va_list va;
-
- va_start(va, s);
- vsnprintf(buf, 1024, s, va);
- va_end(va);
-
- fprintf(stderr, "WARNING: %s!\n", buf);
-}
-
-void
-usage(void) {
- char help[] = {
- "Usage: convbdf [options] [input-files]\n"
- " convbdf [options] [-o output-file] [single-input-file]\n"
- "Options:\n"
- " -s N Start output at character encodings >= N\n"
- " -l N Limit output to character encodings <= N\n"
- " -n Don't generate bitmaps as comments in .c file\n"
- };
-
- fprintf(stderr, "%s", help);
-}
-
-/* parse command line options*/
-void getopts(int *pac, char ***pav) {
- const char *p;
- char **av;
- int ac;
-
- ac = *pac;
- av = *pav;
- while (ac > 0 && av[0][0] == '-') {
- p = &av[0][1];
- while (*p) {
- switch (*p++) {
- case ' ': /* multiple -args on av[]*/
- while (*p && *p == ' ')
- p++;
- if (*p++ != '-') /* next option must have dash*/
- p = "";
- break; /* proceed to next option*/
- case 'n': /* don't gen bitmap comments*/
- gen_map = 0;
- break;
- case 'o': /* set output file*/
- oflag = 1;
- if (*p) {
- strcpy(outfile, p);
- while (*p && *p != ' ')
- p++;
- }
- else {
- av++; ac--;
- if (ac > 0)
- strcpy(outfile, av[0]);
- }
- break;
- case 'l': /* set encoding limit*/
- if (*p) {
- limit_char = atoi(p);
- while (*p && *p != ' ')
- p++;
- }
- else {
- av++; ac--;
- if (ac > 0)
- limit_char = atoi(av[0]);
- }
- break;
- case 's': /* set encoding start*/
- if (*p) {
- start_char = atoi(p);
- while (*p && *p != ' ')
- p++;
- }
- else {
- av++; ac--;
- if (ac > 0)
- start_char = atoi(av[0]);
- }
- break;
- default:
- fprintf(stderr, "Unknown option ignored: %c\r\n", *(p-1));
- }
- }
- ++av; --ac;
- }
- *pac = ac;
- *pav = av;
-}
-
-/* remove directory prefix and file suffix from full path*/
-char *basename(char *path) {
- char *p, *b;
- static char base[256];
-
- /* remove prepended path and extension*/
- b = path;
- for (p = path; *p; ++p) {
- if (*p == '/')
- b = p + 1;
- }
- strcpy(base, b);
- for (p = base; *p; ++p) {
- if (*p == '.') {
- *p = 0;
- break;
- }
- }
- return base;
-}
-
-int convbdf(char *path) {
- struct font* pf;
- int ret = 0;
-
- pf = bdf_read_font(path);
- if (!pf)
- exit(1);
-
- if (!oflag) {
- strcpy(outfile, basename(path));
- strcat(outfile, ".cpp");
- }
- ret |= gen_c_source(pf, outfile);
-
- free_font(pf);
- return ret;
-}
-
-int main(int ac, char *av[]) {
- int ret = 0;
-
- ++av; --ac; /* skip av[0]*/
- getopts(&ac, &av); /* read command line options*/
-
- if (ac < 1) {
- usage();
- exit(1);
- }
- if (oflag && ac > 1) {
- usage();
- exit(1);
- }
-
- while (ac > 0) {
- ret |= convbdf(av[0]);
- ++av; --ac;
- }
-
- exit(ret);
-}
-
-/* free font structure*/
-void free_font(struct font* pf) {
- if (!pf)
- return;
- free(pf->name);
- free(pf->facename);
- free(pf->bits);
- free(pf->offset);
- free(pf->width);
- free(pf);
-}
-
-/* build incore structure from .bdf file*/
-struct font* bdf_read_font(char *path) {
- FILE *fp;
- struct font* pf;
-
- fp = fopen(path, "rb");
- if (!fp) {
- fprintf(stderr, "Error opening file: %s\n", path);
- return NULL;
- }
-
- pf = (struct font*)calloc(1, sizeof(struct font));
- if (!pf)
- goto errout;
-
- pf->name = strdup(basename(path));
-
- if (!bdf_read_header(fp, pf)) {
- fprintf(stderr, "Error reading font header\n");
- goto errout;
- }
-
- if (!bdf_read_bitmaps(fp, pf)) {
- fprintf(stderr, "Error reading font bitmaps\n");
- goto errout;
- }
-
- fclose(fp);
- return pf;
-
- errout:
- fclose(fp);
- free_font(pf);
- return NULL;
-}
-
-/* read bdf font header information, return 0 on error*/
-int bdf_read_header(FILE *fp, struct font* pf) {
- int encoding;
- int nchars, maxwidth;
- int firstchar = 65535;
- int lastchar = -1;
- char buf[256];
- char facename[256];
- char copyright[256];
-
- /* set certain values to errors for later error checking*/
- pf->defaultchar = -1;
- pf->ascent = -1;
- pf->descent = -1;
-
- for (;;) {
- if (!bdf_getline(fp, buf, sizeof(buf))) {
- fprintf(stderr, "Error: EOF on file\n");
- return 0;
- }
- if (isprefix(buf, "FONT ")) { /* not required*/
- if (sscanf(buf, "FONT %[^\n]", facename) != 1) {
- fprintf(stderr, "Error: bad 'FONT'\n");
- return 0;
- }
- pf->facename = strdup(facename);
- continue;
- }
- if (isprefix(buf, "COPYRIGHT ")) { /* not required*/
- if (sscanf(buf, "COPYRIGHT \"%[^\"]", copyright) != 1) {
- fprintf(stderr, "Error: bad 'COPYRIGHT'\n");
- return 0;
- }
- pf->copyright = strdup(copyright);
- continue;
- }
- if (isprefix(buf, "DEFAULT_CHAR ")) { /* not required*/
- if (sscanf(buf, "DEFAULT_CHAR %d", &pf->defaultchar) != 1) {
- fprintf(stderr, "Error: bad 'DEFAULT_CHAR'\n");
- return 0;
- }
- }
- if (isprefix(buf, "FONT_DESCENT ")) {
- if (sscanf(buf, "FONT_DESCENT %d", &pf->descent) != 1) {
- fprintf(stderr, "Error: bad 'FONT_DESCENT'\n");
- return 0;
- }
- continue;
- }
- if (isprefix(buf, "FONT_ASCENT ")) {
- if (sscanf(buf, "FONT_ASCENT %d", &pf->ascent) != 1) {
- fprintf(stderr, "Error: bad 'FONT_ASCENT'\n");
- return 0;
- }
- continue;
- }
- if (isprefix(buf, "FONTBOUNDINGBOX ")) {
- if (sscanf(buf, "FONTBOUNDINGBOX %d %d %d %d",
- &pf->fbbw, &pf->fbbh, &pf->fbbx, &pf->fbby) != 4) {
- fprintf(stderr, "Error: bad 'FONTBOUNDINGBOX'\n");
- return 0;
- }
- continue;
- }
- if (isprefix(buf, "CHARS ")) {
- if (sscanf(buf, "CHARS %d", &nchars) != 1) {
- fprintf(stderr, "Error: bad 'CHARS'\n");
- return 0;
- }
- continue;
- }
-
- /*
- * Reading ENCODING is necessary to get firstchar/lastchar
- * which is needed to pre-calculate our offset and widths
- * array sizes.
- */
- if (isprefix(buf, "ENCODING ")) {
- if (sscanf(buf, "ENCODING %d", &encoding) != 1) {
- fprintf(stderr, "Error: bad 'ENCODING'\n");
- return 0;
- }
- if (encoding >= 0 &&
- encoding <= limit_char &&
- encoding >= start_char) {
-
- if (firstchar > encoding)
- firstchar = encoding;
- if (lastchar < encoding)
- lastchar = encoding;
- }
- continue;
- }
- if (strequal(buf, "ENDFONT"))
- break;
- }
-
- /* calc font height*/
- if (pf->ascent < 0 || pf->descent < 0 || firstchar < 0) {
- fprintf(stderr, "Error: Invalid BDF file, requires FONT_ASCENT/FONT_DESCENT/ENCODING\n");
- return 0;
- }
- pf->height = pf->ascent + pf->descent;
-
- /* calc default char*/
- if (pf->defaultchar < 0 ||
- pf->defaultchar < firstchar ||
- pf->defaultchar > limit_char )
- pf->defaultchar = firstchar;
-
- /* calc font size (offset/width entries)*/
- pf->firstchar = firstchar;
- pf->size = lastchar - firstchar + 1;
-
- /* use the font boundingbox to get initial maxwidth*/
- /*maxwidth = pf->fbbw - pf->fbbx;*/
- maxwidth = pf->fbbw;
-
- /* initially use font maxwidth * height for bits allocation*/
- pf->bits_size = nchars * BITMAP_WORDS(maxwidth) * pf->height;
-
- /* allocate bits, offset, and width arrays*/
- pf->bits = (bitmap_t *)malloc(pf->bits_size * sizeof(bitmap_t) + EXTRA);
- pf->offset = (unsigned long *)malloc(pf->size * sizeof(unsigned long));
- pf->width = (unsigned char *)malloc(pf->size * sizeof(unsigned char));
- pf->bbx = (BBX *)malloc(pf->size * sizeof(BBX));
-
- if (!pf->bits || !pf->offset || !pf->width) {
- fprintf(stderr, "Error: no memory for font load\n");
- return 0;
- }
-
- return 1;
-}
-
-/* read bdf font bitmaps, return 0 on error*/
-int bdf_read_bitmaps(FILE *fp, struct font* pf) {
- long ofs = 0;
- int maxwidth = 0;
- int i, k, encoding, width;
- int bbw, bbh, bbx, bby;
- int proportional = 0;
- int need_bbx = 0;
- int encodetable = 0;
- long l;
- char buf[256];
-
- /* reset file pointer*/
- fseek(fp, 0L, SEEK_SET);
-
- /* initially mark offsets as not used*/
- for (i = 0; i < pf->size; ++i)
- pf->offset[i] = -1;
-
- for (;;) {
- if (!bdf_getline(fp, buf, sizeof(buf))) {
- fprintf(stderr, "Error: EOF on file\n");
- return 0;
- }
- if (isprefix(buf, "STARTCHAR")) {
- encoding = width = bbw = bbh = bbx = bby = -1;
- continue;
- }
- if (isprefix(buf, "ENCODING ")) {
- if (sscanf(buf, "ENCODING %d", &encoding) != 1) {
- fprintf(stderr, "Error: bad 'ENCODING'\n");
- return 0;
- }
- if (encoding < start_char || encoding > limit_char)
- encoding = -1;
- continue;
- }
- if (isprefix(buf, "DWIDTH ")) {
- if (sscanf(buf, "DWIDTH %d", &width) != 1) {
- fprintf(stderr, "Error: bad 'DWIDTH'\n");
- return 0;
- }
- /* use font boundingbox width if DWIDTH <= 0*/
- if (width <= 0)
- width = pf->fbbw - pf->fbbx;
- continue;
- }
- if (isprefix(buf, "BBX ")) {
- if (sscanf(buf, "BBX %d %d %d %d", &bbw, &bbh, &bbx, &bby) != 4) {
- fprintf(stderr, "Error: bad 'BBX'\n");
- return 0;
- }
- continue;
- }
- if (strequal(buf, "BITMAP")) {
- bitmap_t *ch_bitmap = pf->bits + ofs;
- int ch_words;
-
- if (encoding < 0)
- continue;
-
- /* set bits offset in encode map*/
- if (pf->offset[encoding-pf->firstchar] != (unsigned long)-1) {
- fprintf(stderr, "Error: duplicate encoding for character %d (0x%02x), ignoring duplicate\n",
- encoding, encoding);
- continue;
- }
- pf->offset[encoding-pf->firstchar] = ofs;
- pf->width[encoding-pf->firstchar] = width;
-
- pf->bbx[encoding-pf->firstchar].w = bbw;
- pf->bbx[encoding-pf->firstchar].h = bbh;
- pf->bbx[encoding-pf->firstchar].x = bbx;
- pf->bbx[encoding-pf->firstchar].y = bby;
-
- if (width > maxwidth)
- maxwidth = width;
-
- /* clear bitmap*/
- memset(ch_bitmap, 0, BITMAP_BYTES(bbw) * bbh);
-
- ch_words = BITMAP_WORDS(bbw);
-
- /* read bitmaps*/
- for (i = 0; i < bbh; ++i) {
- if (!bdf_getline(fp, buf, sizeof(buf))) {
- fprintf(stderr, "Error: EOF reading BITMAP data\n");
- return 0;
- }
- if (isprefix(buf, "ENDCHAR"))
- break;
-
- for (k = 0; k < ch_words; ++k) {
- bitmap_t value;
-
- value = bdf_hexval((unsigned char *)buf);
-
- if (bbw > 8) {
- WRITE_UINT16(ch_bitmap, value);
- } else {
- WRITE_UINT16(ch_bitmap, value << 8);
- }
- ch_bitmap++;
- }
- }
-
- // If the default glyph is completely empty, the next
- // glyph will not be dumped. Work around this by
- // never generating completely empty glyphs.
-
- if (bbh == 0 && bbw == 0) {
- pf->bbx[encoding-pf->firstchar].w = 1;
- pf->bbx[encoding-pf->firstchar].h = 1;
- *ch_bitmap++ = 0;
- ofs++;
- } else {
- ofs += ch_words * bbh;
- }
- continue;
- }
- if (strequal(buf, "ENDFONT"))
- break;
- }
-
- /* set max width*/
- pf->maxwidth = maxwidth;
-
- /* change unused offset/width values to default char values*/
- for (i = 0; i < pf->size; ++i) {
- int defchar = pf->defaultchar - pf->firstchar;
-
- if (pf->offset[i] == (unsigned long)-1) {
- pf->offset[i] = pf->offset[defchar];
- pf->width[i] = pf->width[defchar];
- pf->bbx[i].w = pf->bbx[defchar].w;
- pf->bbx[i].h = pf->bbx[defchar].h;
- pf->bbx[i].x = pf->bbx[defchar].x;
- pf->bbx[i].y = pf->bbx[defchar].y;
- }
- }
-
- /* determine whether font doesn't require encode table*/
- l = 0;
- for (i = 0; i < pf->size; ++i) {
- if (pf->offset[i] != (unsigned long)l) {
- encodetable = 1;
- break;
- }
- l += BITMAP_WORDS(pf->bbx[i].w) * pf->bbx[i].h;
- }
- if (!encodetable) {
- free(pf->offset);
- pf->offset = NULL;
- }
-
- /* determine whether font is fixed-width*/
- for (i = 0; i < pf->size; ++i) {
- if (pf->width[i] != maxwidth) {
- proportional = 1;
- break;
- }
- }
- if (!proportional) {
- free(pf->width);
- pf->width = NULL;
- }
-
- /* determine if the font needs a bbx table */
- for (i = 0; i < pf->size; ++i) {
- if (pf->bbx[i].w != pf->fbbw || pf->bbx[i].h != pf->fbbh || pf->bbx[i].x != pf->fbbx || pf->bbx[i].y != pf->fbby) {
- need_bbx = 1;
- break;
- }
- }
- if (!need_bbx) {
- free(pf->bbx);
- pf->bbx = NULL;
- }
-
- /* reallocate bits array to actual bits used*/
- if (ofs < pf->bits_size) {
- pf->bits = (bitmap_t *)realloc(pf->bits, ofs * sizeof(bitmap_t));
- pf->bits_size = ofs;
- }
- else {
- if (ofs > pf->bits_size) {
- fprintf(stderr, "Warning: DWIDTH spec > max FONTBOUNDINGBOX\n");
- if (ofs > pf->bits_size+EXTRA) {
- fprintf(stderr, "Error: Not enough bits initially allocated\n");
- return 0;
- }
- pf->bits_size = ofs;
- }
- }
-
- return 1;
-}
-
-/* read the next non-comment line, returns buf or NULL if EOF*/
-char *bdf_getline(FILE *fp, char *buf, int len) {
- int c;
- char *b;
-
- for (;;) {
- b = buf;
- while ((c = getc(fp)) != EOF) {
- if (c == '\r')
- continue;
- if (c == '\n')
- break;
- if (b - buf >= (len - 1))
- break;
- *b++ = c;
- }
- *b = '\0';
- if (c == EOF && b == buf)
- return NULL;
- if (b != buf && !isprefix(buf, "COMMENT"))
- break;
- }
- return buf;
-}
-
-/* return hex value of buffer */
-bitmap_t bdf_hexval(unsigned char *buf) {
- bitmap_t val = 0;
- unsigned char *ptr;
-
- for (ptr = buf; *ptr; ptr++) {
- int c = *ptr;
-
- if (c >= '0' && c <= '9')
- c -= '0';
- else if (c >= 'A' && c <= 'F')
- c = c - 'A' + 10;
- else if (c >= 'a' && c <= 'f')
- c = c - 'a' + 10;
- else
- c = 0;
- val = (val << 4) | c;
- }
- return val;
-}
-
-/* generate C source from in-core font*/
-int gen_c_source(struct font* pf, char *path) {
- FILE *ofp;
- int h, i;
- int did_defaultchar = 0;
- int did_syncmsg = 0;
- time_t t = time(0);
- bitmap_t *ofs = pf->bits;
- char buf[256];
- char obuf[256];
- char bbuf[256];
- char hdr1[] = {
- "/* Generated by convbdf on %s. */\n"
- "#include \"graphics/fonts/bdf.h\"\n"
- "\n"
- "/* Font information:\n"
- " name: %s\n"
- " facename: %s\n"
- " w x h: %dx%d\n"
- " bbx: %d %d %d %d\n"
- " size: %d\n"
- " ascent: %d\n"
- " descent: %d\n"
- " first char: %d (0x%02x)\n"
- " last char: %d (0x%02x)\n"
- " default char: %d (0x%02x)\n"
- " proportional: %s\n"
- " %s\n"
- "*/\n"
- "\n"
- "namespace Graphics {\n"
- "\n"
- "/* Font character bitmap data. */\n"
- "static const bitmap_t _font_bits[] = {\n"
- };
-
- ofp = fopen(path, "w");
- if (!ofp) {
- fprintf(stderr, "Can't create %s\n", path);
- return 1;
- }
-
- strcpy(buf, ctime(&t));
- buf[strlen(buf) - 1] = 0;
-
- fprintf(ofp, hdr1, buf,
- pf->name,
- pf->facename? pf->facename: "",
- pf->maxwidth, pf->height,
- pf->fbbw, pf->fbbh, pf->fbbx, pf->fbby,
- pf->size,
- pf->ascent, pf->descent,
- pf->firstchar, pf->firstchar,
- pf->firstchar+pf->size-1, pf->firstchar+pf->size-1,
- pf->defaultchar, pf->defaultchar,
- pf->width? "yes": "no",
- pf->copyright? pf->copyright: "");
-
- /* generate bitmaps*/
- for (i = 0; i < pf->size; ++i) {
- int x;
- int bitcount = 0;
- int width = pf->bbx ? pf->bbx[i].w : pf->fbbw;
- int height = pf->bbx ? pf->bbx[i].h : pf->fbbh;
- int xoff = pf->bbx ? pf->bbx[i].x : pf->fbbx;
- int yoff = pf->bbx ? pf->bbx[i].y : pf->fbby;
- bitmap_t *bits = pf->bits + (pf->offset? pf->offset[i]: (height * i));
- bitmap_t bitvalue = 0;
-
- /*
- * Generate bitmap bits only if not this index isn't
- * the default character in encode map, or the default
- * character hasn't been generated yet.
- */
- if (pf->offset &&
- (pf->offset[i] == pf->offset[pf->defaultchar-pf->firstchar])) {
- if (did_defaultchar)
- continue;
- did_defaultchar = 1;
- }
-
- fprintf(ofp, "\n/* Character %d (0x%02x):\n width %d\n bbx ( %d, %d, %d, %d )\n",
- i+pf->firstchar, i+pf->firstchar,
- pf->width ? pf->width[i+pf->firstchar] : pf->maxwidth,
- width, height, xoff, yoff);
-
- if (gen_map) {
- fprintf(ofp, "\n +");
- for (x=0; x<width; ++x) fprintf(ofp, "-");
- fprintf(ofp, "+\n");
-
- x = 0;
- h = height;
- while (h > 0) {
- if (x == 0) fprintf(ofp, " |");
-
- if (bitcount <= 0) {
- bitcount = BITMAP_BITSPERIMAGE;
- bitvalue = READ_UINT16(bits);
- bits++;
- }
-
- fprintf(ofp, BITMAP_TESTBIT(bitvalue)? "*": " ");
-
- bitvalue = BITMAP_SHIFTBIT(bitvalue);
- --bitcount;
- if (++x == width) {
- fprintf(ofp, "|\n");
- --h;
- x = 0;
- bitcount = 0;
- }
- }
- fprintf(ofp, " +");
- for (x = 0; x < width; ++x)
- fprintf(ofp, "-");
- fprintf(ofp, "+\n*/\n");
- } else
- fprintf(ofp, "\n*/\n");
-
- bits = pf->bits + (pf->offset? pf->offset[i]: (height * i));
- for (x = BITMAP_WORDS(width) * height; x > 0; --x) {
- fprintf(ofp, "0x%04x,\n", READ_UINT16(bits));
- if (!did_syncmsg && *bits++ != *ofs++) {
- fprintf(stderr, "Warning: found encoding values in non-sorted order (not an error).\n");
- did_syncmsg = 1;
- }
- }
- }
- fprintf(ofp, "};\n\n");
-
- if (pf->offset) {
- /* output offset table*/
- fprintf(ofp, "/* Character->glyph mapping. */\n"
- "static const unsigned long _sysfont_offset[] = {\n");
-
- for (i = 0; i < pf->size; ++i)
- fprintf(ofp, " %ld,\t/* (0x%02x) */\n",
- pf->offset[i], i+pf->firstchar);
- fprintf(ofp, "};\n\n");
- }
-
- /* output width table for proportional fonts*/
- if (pf->width) {
- fprintf(ofp, "/* Character width data. */\n"
- "static const unsigned char _sysfont_width[] = {\n");
-
- for (i = 0; i < pf->size; ++i)
- fprintf(ofp, " %d,\t/* (0x%02x) */\n",
- pf->width[i], i+pf->firstchar);
- fprintf(ofp, "};\n\n");
- }
-
- /* output bbox table */
- if (pf->bbx) {
- fprintf(ofp, "/* Bounding box data. */\n"
- "static const BBX _sysfont_bbx[] = {\n");
-
- for (i = 0; i < pf->size; ++i)
- fprintf(ofp, "\t{ %d, %d, %d, %d },\t/* (0x%02x) */\n",
- pf->bbx[i].w, pf->bbx[i].h, pf->bbx[i].x, pf->bbx[i].y, i+pf->firstchar);
- fprintf(ofp, "};\n\n");
- }
-
- /* output struct font struct*/
- if (pf->offset)
- sprintf(obuf, "_sysfont_offset,");
- else
- sprintf(obuf, "0, /* no encode table*/");
-
- if (pf->width)
- sprintf(buf, "_sysfont_width,");
- else
- sprintf(buf, "0, /* fixed width*/");
-
- if (pf->bbx)
- sprintf(bbuf, "_sysfont_bbx,");
- else
- sprintf(bbuf, "0, /* fixed bbox*/");
-
- fprintf(ofp,
- "/* Exported structure definition. */\n"
- "static const BdfFontDesc desc = {\n"
- "\t" "\"%s\",\n"
- "\t" "%d,\n"
- "\t" "%d,\n"
- "\t" "%d, %d, %d, %d,\n"
- "\t" "%d,\n"
- "\t" "%d,\n"
- "\t" "%d,\n"
- "\t" "_font_bits,\n"
- "\t" "%s\n"
- "\t" "%s\n"
- "\t" "%s\n"
- "\t" "%d,\n"
- "\t" "sizeof(_font_bits)/sizeof(bitmap_t)\n"
- "};\n",
- pf->name,
- pf->maxwidth, pf->height,
- pf->fbbw, pf->fbbh, pf->fbbx, pf->fbby,
- pf->ascent,
- pf->firstchar,
- pf->size,
- obuf,
- buf,
- bbuf,
- pf->defaultchar);
-
- fprintf(ofp, "\n" "#if !(defined(__GP32__))\n");
- fprintf(ofp, "extern const BdfFont g_sysfont(desc);\n");
- fprintf(ofp, "#else\n");
- fprintf(ofp, "DEFINE_FONT(g_sysfont)\n");
- fprintf(ofp, "#endif\n");
- fprintf(ofp, "\n} // End of namespace Graphics\n");
- fclose(ofp);
-
- return 0;
-}
diff --git a/devtools/convbdf.cpp b/devtools/convbdf.cpp
new file mode 100644
index 0000000000..c8b1fb7d6d
--- /dev/null
+++ b/devtools/convbdf.cpp
@@ -0,0 +1,510 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <fstream>
+#include <string>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <time.h>
+
+struct BdfBoundingBox {
+ int width, height;
+ int xOffset, yOffset;
+};
+
+struct BdfFont {
+ int maxAdvance;
+ int height;
+ BdfBoundingBox defaultBox;
+ int ascent;
+
+ int firstCharacter;
+ int defaultCharacter;
+ int numCharacters;
+
+ unsigned char **bitmaps;
+ unsigned char *advances;
+ BdfBoundingBox *boxes;
+
+ BdfFont() : bitmaps(0), advances(0), boxes(0) {
+ }
+
+ ~BdfFont() {
+ if (bitmaps) {
+ for (int i = 0; i < numCharacters; ++i)
+ delete[] bitmaps[i];
+ }
+ delete[] bitmaps;
+ delete[] advances;
+ delete[] boxes;
+ }
+};
+
+void error(const char *s, ...) {
+ char buf[1024];
+ va_list va;
+
+ va_start(va, s);
+ vsnprintf(buf, 1024, s, va);
+ va_end(va);
+
+ fprintf(stderr, "ERROR: %s!\n", buf);
+ exit(1);
+}
+
+void warning(const char *s, ...) {
+ char buf[1024];
+ va_list va;
+
+ va_start(va, s);
+ vsnprintf(buf, 1024, s, va);
+ va_end(va);
+
+ fprintf(stderr, "WARNING: %s!\n", buf);
+}
+
+bool hasPrefix(const std::string &str, const std::string &prefix) {
+ return str.compare(0, prefix.size(), prefix) == 0;
+}
+
+inline void hexToInt(unsigned char &h) {
+ if (h >= '0' && h <= '9')
+ h -= '0';
+ else if (h >= 'A' && h <= 'F')
+ h -= 'A' - 10;
+ else if (h >= 'a' && h <= 'f')
+ h -= 'a' - 10;
+ else
+ h = 0;
+}
+
+int main(int argc, char *argv[]) {
+ if (argc != 3) {
+ printf("Usage: convbdf [input] [fontname]\n");
+ return 1;
+ }
+
+ std::ifstream in(argv[1]);
+ std::string line;
+
+ std::getline(in, line);
+ if (in.fail() || in.eof())
+ error("Premature end of file");
+
+ int verMajor, verMinor;
+ if (sscanf(line.c_str(), "STARTFONT %d.%d", &verMajor, &verMinor) != 2)
+ error("File '%s' is no BDF file", argv[1]);
+
+ if (verMajor != 2 || (verMinor != 1 && verMinor != 2))
+ error("File '%s' does not use a supported BDF version (%d.%d)", argv[1], verMajor, verMinor);
+
+ std::string fontName;
+ std::string copyright;
+ BdfFont font;
+ memset(&font, 0, sizeof(font));
+ font.ascent = -1;
+ font.defaultCharacter = -1;
+
+ int charsProcessed = 0, charsAvailable = 0, descent = -1;
+
+ while (true) {
+ std::getline(in, line);
+ if (in.fail() || in.eof())
+ error("Premature end of file");
+
+ if (hasPrefix(line, "SIZE ")) {
+ // Ignore
+ } else if (hasPrefix(line, "FONT ")) {
+ fontName = line.substr(5);
+ } else if (hasPrefix(line, "COPYRIGHT ")) {
+ copyright = line.substr(10);
+ } else if (hasPrefix(line, "COMMENT ")) {
+ // Ignore
+ } else if (hasPrefix(line, "FONTBOUNDINGBOX ")) {
+ if (sscanf(line.c_str(), "FONTBOUNDINGBOX %d %d %d %d",
+ &font.defaultBox.width, &font.defaultBox.height,
+ &font.defaultBox.xOffset, &font.defaultBox.yOffset) != 4)
+ error("Invalid FONTBOUNDINGBOX");
+ } else if (hasPrefix(line, "CHARS ")) {
+ if (sscanf(line.c_str(), "CHARS %d", &charsAvailable) != 1)
+ error("Invalid CHARS");
+
+ font.numCharacters = 256;
+ font.bitmaps = new unsigned char *[font.numCharacters];
+ memset(font.bitmaps, 0, sizeof(unsigned char *) * font.numCharacters);
+ font.advances = new unsigned char[font.numCharacters];
+ font.boxes = new BdfBoundingBox[font.numCharacters];
+ } else if (hasPrefix(line, "FONT_ASCENT ")) {
+ if (sscanf(line.c_str(), "FONT_ASCENT %d", &font.ascent) != 1)
+ error("Invalid FONT_ASCENT");
+ } else if (hasPrefix(line, "FONT_DESCENT ")) {
+ if (sscanf(line.c_str(), "FONT_DESCENT %d", &descent) != 1)
+ error("Invalid FONT_ASCENT");
+ } else if (hasPrefix(line, "DEFAULT_CHAR ")) {
+ if (sscanf(line.c_str(), "DEFAULT_CHAR %d", &font.defaultCharacter) != 1)
+ error("Invalid DEFAULT_CHAR");
+ } else if (hasPrefix(line, "STARTCHAR ")) {
+ ++charsProcessed;
+ if (charsProcessed > charsAvailable)
+ error("Too many characters defined (only %d specified, but %d existing already)",
+ charsAvailable, charsProcessed);
+
+ bool hasWidth = false, hasBitmap = false;
+
+ int encoding = -1;
+ int xAdvance;
+ unsigned char *bitmap = 0;
+ BdfBoundingBox bbox = font.defaultBox;
+
+ while (true) {
+ std::getline(in, line);
+ if (in.fail() || in.eof())
+ error("Premature end of file");
+
+ if (hasPrefix(line, "ENCODING ")) {
+ if (sscanf(line.c_str(), "ENCODING %d", &encoding) != 1)
+ error("Invalid ENCODING");
+ } else if (hasPrefix(line, "DWIDTH ")) {
+ int yAdvance;
+ if (sscanf(line.c_str(), "DWIDTH %d %d", &xAdvance, &yAdvance) != 2)
+ error("Invalid DWIDTH");
+ if (yAdvance != 0)
+ error("Character %d uses a DWIDTH y advance of %d", encoding, yAdvance);
+ if (xAdvance < 0)
+ error("Character %d has a negative x advance", encoding);
+
+ if (xAdvance > font.maxAdvance)
+ font.maxAdvance = xAdvance;
+
+ hasWidth = true;
+ } else if (hasPrefix(line, "BBX" )) {
+ if (sscanf(line.c_str(), "BBX %d %d %d %d",
+ &bbox.width, &bbox.height,
+ &bbox.xOffset, &bbox.yOffset) != 4)
+ error("Invalid BBX");
+ } else if (line == "BITMAP") {
+ hasBitmap = true;
+
+ const size_t bytesPerRow = ((bbox.width + 7) / 8);
+
+ // Since we do not load all characters, we only create a
+ // buffer for the ones we actually load.
+ if (encoding < font.numCharacters)
+ bitmap = new unsigned char[bbox.height * bytesPerRow];
+
+ for (int i = 0; i < bbox.height; ++i) {
+ std::getline(in, line);
+ if (in.fail() || in.eof())
+ error("Premature end of file");
+ if (line.size() != bytesPerRow * 2)
+ error("Glyph bitmap line too short");
+
+ if (!bitmap)
+ continue;
+
+ for (size_t j = 0; j < bytesPerRow; ++j) {
+ unsigned char nibble1 = line[j * 2 + 0];
+ hexToInt(nibble1);
+ unsigned char nibble2 = line[j * 2 + 1];
+ hexToInt(nibble2);
+ bitmap[i * bytesPerRow + j] = (nibble1 << 4) | nibble2;
+ }
+ }
+ } else if (line == "ENDCHAR") {
+ if (encoding == -1 || !hasWidth || !hasBitmap)
+ error("Character not completly defined");
+
+ if (encoding < font.numCharacters) {
+ font.advances[encoding] = xAdvance;
+ font.boxes[encoding] = bbox;
+ font.bitmaps[encoding] = bitmap;
+ }
+ break;
+ }
+ }
+ } else if (line == "ENDFONT") {
+ break;
+ } else {
+ // Silently ignore other declarations
+ //warning("Unsupported declaration: \"%s\"", line.c_str());
+ }
+ }
+
+ if (font.ascent < 0)
+ error("No ascent specified");
+ if (descent < 0)
+ error("No descent specified");
+
+ font.height = font.ascent + descent;
+
+ int firstCharacter = font.numCharacters;
+ int lastCharacter = -1;
+ bool hasFixedBBox = true;
+ bool hasFixedAdvance = true;
+
+ for (int i = 0; i < font.numCharacters; ++i) {
+ if (!font.bitmaps[i])
+ continue;
+
+ if (i < firstCharacter)
+ firstCharacter = i;
+
+ if (i > lastCharacter)
+ lastCharacter = i;
+
+ if (font.advances[i] != font.maxAdvance)
+ hasFixedAdvance = false;
+
+ const BdfBoundingBox &bbox = font.boxes[i];
+ if (bbox.width != font.defaultBox.width
+ || bbox.height != font.defaultBox.height
+ || bbox.xOffset != font.defaultBox.xOffset
+ || bbox.yOffset != font.defaultBox.yOffset)
+ hasFixedBBox = false;
+ }
+
+ if (lastCharacter == -1)
+ error("No glyphs found");
+
+ // Free the advance table, in case all glyphs use the same advance
+ if (hasFixedAdvance) {
+ delete[] font.advances;
+ font.advances = 0;
+ }
+
+ // Free the box table, in case all glyphs use the same box
+ if (hasFixedBBox) {
+ delete[] font.boxes;
+ font.boxes = 0;
+ }
+
+ // Adapt for the fact that we never use encoding 0.
+ if (font.defaultCharacter < firstCharacter
+ || font.defaultCharacter > lastCharacter)
+ font.defaultCharacter = -1;
+
+ font.firstCharacter = firstCharacter;
+
+ charsAvailable = lastCharacter - firstCharacter + 1;
+ // Try to compact the tables
+ if (charsAvailable < font.numCharacters) {
+ unsigned char **bitmaps = new unsigned char *[charsAvailable];
+ BdfBoundingBox *boxes = 0;
+ if (!hasFixedBBox)
+ boxes = new BdfBoundingBox[charsAvailable];
+ unsigned char *advances = 0;
+ if (!hasFixedAdvance)
+ advances = new unsigned char[charsAvailable];
+
+ for (int i = 0; i < charsAvailable; ++i) {
+ const int encoding = i + firstCharacter;
+ if (font.bitmaps[encoding]) {
+ bitmaps[i] = font.bitmaps[encoding];
+
+ if (!hasFixedBBox)
+ boxes[i] = font.boxes[encoding];
+ if (!hasFixedAdvance)
+ advances[i] = font.advances[encoding];
+ } else {
+ bitmaps[i] = 0;
+ }
+ }
+
+ delete[] font.bitmaps;
+ font.bitmaps = bitmaps;
+ delete[] font.advances;
+ font.advances = advances;
+ delete[] font.boxes;
+ font.boxes = boxes;
+
+ font.numCharacters = charsAvailable;
+ }
+
+ char dateBuffer[256];
+ time_t curTime = time(0);
+ snprintf(dateBuffer, sizeof(dateBuffer), "%s", ctime(&curTime));
+
+ // Finally output the cpp source file to stdout
+ printf("// Generated by convbdf on %s"
+ "#include \"graphics/fonts/bdf.h\"\n"
+ "\n"
+ "// Font information:\n"
+ "// Name: %s\n"
+ "// Size: %dx%d\n"
+ "// Box: %d %d %d %d\n"
+ "// Ascent: %d\n"
+ "// First character: %d\n"
+ "// Default character: %d\n"
+ "// Characters: %d\n"
+ "// Copyright: %s\n"
+ "\n",
+ dateBuffer, fontName.c_str(), font.maxAdvance, font.height,
+ font.defaultBox.width, font.defaultBox.height, font.defaultBox.xOffset,
+ font.defaultBox.yOffset, font.ascent, font.firstCharacter,
+ font.defaultCharacter, font.numCharacters, copyright.c_str());
+
+ printf("namespace Graphics {\n"
+ "\n");
+
+ for (int i = 0; i < font.numCharacters; ++i) {
+ if (!font.bitmaps[i])
+ continue;
+
+ BdfBoundingBox box = hasFixedBBox ? font.defaultBox : font.boxes[i];
+ printf("// Character %d (0x%02X)\n"
+ "// Box: %d %d %d %d\n"
+ "// Advance: %d\n"
+ "//\n", i + font.firstCharacter, i + font.firstCharacter,
+ box.width, box.height, box.xOffset, box.yOffset,
+ hasFixedAdvance ? font.maxAdvance : font.advances[i]);
+
+ printf("// +");
+ for (int x = 0; x < box.width; ++x)
+ printf("-");
+ printf("+\n");
+
+ const unsigned char *bitmap = font.bitmaps[i];
+
+ for (int y = 0; y < box.height; ++y) {
+ printf("// |");
+ unsigned char data;
+ for (int x = 0; x < box.width; ++x) {
+ if (!(x % 8))
+ data = *bitmap++;
+
+ printf("%c", (data & 0x80) ? '*' : ' ');
+ data <<= 1;
+ }
+ printf("|\n");
+ }
+
+ printf("// +");
+ for (int x = 0; x < box.width; ++x)
+ printf("-");
+ printf("+\n");
+
+ const int bytesPerRow = (box.width + 7) / 8;
+ bitmap = font.bitmaps[i];
+ printf("static const byte glyph%d[] = {\n", i);
+ for (int y = 0; y < box.height; ++y) {
+ printf("\t");
+
+ for (int x = 0; x < bytesPerRow; ++x) {
+ if (x)
+ printf(", ");
+ printf("0x%02X", *bitmap++);
+ }
+
+ if (y != box.height - 1)
+ printf(",");
+ printf("\n");
+ }
+ printf("};\n"
+ "\n");
+ }
+
+ printf("// Bitmap pointer table\n"
+ "const byte *const bitmapTable[] = {\n");
+ for (int i = 0; i < font.numCharacters; ++i) {
+ if (font.bitmaps[i])
+ printf("\tglyph%d", i);
+ else
+ printf("\t0");
+
+ if (i != font.numCharacters - 1)
+ printf(",");
+ printf("\n");
+ }
+ printf("};\n"
+ "\n");
+
+ if (!hasFixedAdvance) {
+ printf("// Advance table\n"
+ "static const byte advances[] = {\n");
+ for (int i = 0; i < font.numCharacters; ++i) {
+ if (font.bitmaps[i])
+ printf("\t%d", font.advances[i]);
+ else
+ printf("\t0");
+
+ if (i != font.numCharacters - 1)
+ printf(",");
+ printf("\n");
+ }
+ printf("};\n"
+ "\n");
+ }
+
+ if (!hasFixedBBox) {
+ printf("// Bounding box table\n"
+ "static const BdfBoundingBox boxes[] = {\n");
+ for (int i = 0; i < font.numCharacters; ++i) {
+ if (font.bitmaps[i]) {
+ const BdfBoundingBox &box = font.boxes[i];
+ printf("\t{ %d, %d, %d, %d }", box.width, box.height, box.xOffset, box.yOffset);
+ } else {
+ printf("\t{ 0, 0, 0, 0 }");
+ }
+
+ if (i != font.numCharacters - 1)
+ printf(",");
+ printf("\n");
+ }
+ printf("};\n"
+ "\n");
+ }
+
+ printf("// Font structure\n"
+ "static const BdfFontData desc = {\n"
+ "\t%d, // Max advance\n"
+ "\t%d, // Height\n"
+ "\t{ %d, %d, %d, %d }, // Bounding box\n"
+ "\t%d, // Ascent\n"
+ "\n"
+ "\t%d, // First character\n"
+ "\t%d, // Default character\n"
+ "\t%d, // Characters\n"
+ "\n"
+ "\tbitmapTable, // Bitmaps\n",
+ font.maxAdvance, font.height, font.defaultBox.width,
+ font.defaultBox.height, font.defaultBox.xOffset, font.defaultBox.yOffset,
+ font.ascent, font.firstCharacter, font.defaultCharacter, font.numCharacters);
+
+ if (hasFixedAdvance)
+ printf("\t0, // Advances\n");
+ else
+ printf("\tadvances, // Advances\n");
+
+ if (hasFixedBBox)
+ printf("\t0 // Boxes\n");
+ else
+ printf("\tboxes // Boxes\n");
+
+ printf("};\n"
+ "\n"
+ "DEFINE_FONT(%s)\n"
+ "\n"
+ "} // End of namespace Graphics\n",
+ argv[2]);
+}
diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp
index 627b517c62..a87bde3e26 100644
--- a/devtools/create_kyradat/create_kyradat.cpp
+++ b/devtools/create_kyradat/create_kyradat.cpp
@@ -38,6 +38,8 @@
#include "extract.h"
#include "md5.h"
+#include "common/language.h"
+#include "common/platform.h"
#include <string>
#include <map>
@@ -45,7 +47,7 @@
#include <map>
enum {
- kKyraDatVersion = 78
+ kKyraDatVersion = 82
};
const ExtractFilename extractFilenames[] = {
@@ -215,92 +217,482 @@ const ExtractFilename extractFilenames[] = {
{ k3ItemMagicTable, k3TypeRaw16to8, false },
{ k3ItemStringMap, kTypeRawData, false },
+ // EYE OF THE BEHOLDER COMMON
+ { kEoBBaseChargenStrings1, kTypeStringList, true },
+ { kEoBBaseChargenStrings2, kTypeStringList, true },
+ { kEoBBaseChargenStartLevels, kTypeRawData, false },
+ { kEoBBaseChargenStatStrings, kTypeStringList, true},
+ { kEoBBaseChargenRaceSexStrings, kTypeStringList, true },
+ { kEoBBaseChargenClassStrings, kTypeStringList, true },
+ { kEoBBaseChargenAlignmentStrings, kTypeStringList, true },
+ { kEoBBaseChargenEnterGameStrings, kTypeStringList, true },
+ { kEoBBaseChargenClassMinStats, k3TypeRaw16to8, false },
+ { kEoBBaseChargenRaceMinStats, k3TypeRaw16to8, false },
+ { kEoBBaseChargenRaceMaxStats, kLoLTypeRaw16, false },
+
+ { kEoBBaseSaveThrowTable1, kTypeRawData, false },
+ { kEoBBaseSaveThrowTable2, kTypeRawData, false },
+ { kEoBBaseSaveThrowTable3, kTypeRawData, false },
+ { kEoBBaseSaveThrowTable4, kTypeRawData, false },
+ { kEoBBaseSaveThrwLvlIndex, kTypeRawData, false },
+ { kEoBBaseSaveThrwModDiv, kTypeRawData, false },
+ { kEoBBaseSaveThrwModExt, kTypeRawData, false },
+
+ { kEoBBasePryDoorStrings, kTypeStringList, true },
+ { kEoBBaseWarningStrings, kTypeStringList, true },
+
+ { kEoBBaseItemSuffixStringsRings, kTypeStringList, true },
+ { kEoBBaseItemSuffixStringsPotions, kTypeStringList, true },
+ { kEoBBaseItemSuffixStringsWands, kTypeStringList, true },
+
+ { kEoBBaseRipItemStrings, kTypeStringList, true },
+ { kEoBBaseCursedString, kTypeStringList, true },
+ { kEoBBaseEnchantedString, kTypeStringList, false },
+ { kEoBBaseMagicObjectStrings, kTypeStringList, true },
+ { kEoBBaseMagicObject5String, kTypeStringList, true },
+ { kEoBBasePatternSuffix, kTypeStringList, true },
+ { kEoBBasePatternGrFix1, kTypeStringList, true },
+ { kEoBBasePatternGrFix2, kTypeStringList, true },
+ { kEoBBaseValidateArmorString, kTypeStringList, true },
+ { kEoBBaseValidateCursedString, kTypeStringList, true },
+ { kEoBBaseValidateNoDropString, kTypeStringList, true },
+ { kEoBBasePotionStrings, kTypeStringList, true },
+ { kEoBBaseWandString, kTypeStringList, true },
+ { kEoBBaseItemMisuseStrings, kTypeStringList, true },
+
+ { kEoBBaseTakenStrings, kTypeStringList, true },
+ { kEoBBasePotionEffectStrings, kTypeStringList, true },
+
+ { kEoBBaseYesNoStrings, kTypeStringList, true },
+ { kRpgCommonMoreStrings, kTypeStringList, true },
+ { kEoBBaseNpcMaxStrings, kTypeStringList, true },
+ { kEoBBaseOkStrings, kTypeStringList, true },
+ { kEoBBaseNpcJoinStrings, kTypeStringList, true },
+ { kEoBBaseCancelStrings, kTypeStringList, true },
+ { kEoBBaseAbortStrings, kTypeStringList, true },
+
+ { kEoBBaseMenuStringsMain, kTypeStringList, true },
+ { kEoBBaseMenuStringsSaveLoad, kTypeStringList, true },
+ { kEoBBaseMenuStringsOnOff, kTypeStringList, true },
+ { kEoBBaseMenuStringsSpells, kTypeStringList, true },
+ { kEoBBaseMenuStringsRest, kTypeStringList, true },
+ { kEoBBaseMenuStringsDrop, kTypeStringList, true },
+ { kEoBBaseMenuStringsExit, kTypeStringList, true },
+ { kEoBBaseMenuStringsStarve, kTypeStringList, true },
+ { kEoBBaseMenuStringsScribe, kTypeStringList, true },
+ { kEoBBaseMenuStringsDrop2, kTypeStringList, true },
+ { kEoBBaseMenuStringsHead, kTypeStringList, true },
+ { kEoBBaseMenuStringsPoison, kTypeStringList, true },
+ { kEoBBaseMenuStringsMgc, kTypeStringList, true },
+ { kEoBBaseMenuStringsPrefs, kTypeStringList, true },
+ { kEoBBaseMenuStringsRest2, kTypeStringList, true },
+ { kEoBBaseMenuStringsRest3, kTypeStringList, true },
+ { kEoBBaseMenuStringsRest4, kTypeStringList, true },
+ { kEoBBaseMenuStringsDefeat, kTypeStringList, true },
+ { kEoBBaseMenuStringsTransfer, kTypeStringList, true },
+ { kEoBBaseMenuStringsSpec, kTypeStringList, true },
+ { kEoBBaseMenuStringsSpellNo, kTypeStringList, false },
+ { kEoBBaseMenuYesNoStrings, kTypeStringList, true },
+
+ { kEoBBaseSpellLevelsMage, kTypeRawData, false },
+ { kEoBBaseSpellLevelsCleric, kTypeRawData, false },
+ { kEoBBaseNumSpellsCleric, kTypeRawData, false },
+ { kEoBBaseNumSpellsWisAdj, kTypeRawData, false },
+ { kEoBBaseNumSpellsPal, kTypeRawData, false },
+ { kEoBBaseNumSpellsMage, kTypeRawData, false },
+
+ { kEoBBaseCharGuiStringsHp, kTypeStringList, true },
+ { kEoBBaseCharGuiStringsWp1, kTypeStringList, true },
+ { kEoBBaseCharGuiStringsWp2, kTypeStringList, true },
+ { kEoBBaseCharGuiStringsWr, kTypeStringList, true },
+ { kEoBBaseCharGuiStringsSt1, kTypeStringList, true },
+ { kEoBBaseCharGuiStringsSt2, kTypeStringList, true },
+ { kEoBBaseCharGuiStringsIn, kTypeStringList, true },
+
+ { kEoBBaseCharStatusStrings7, kTypeStringList, true },
+ { kEoBBaseCharStatusStrings81, kTypeStringList, true },
+ { kEoBBaseCharStatusStrings82, kTypeStringList, true },
+ { kEoBBaseCharStatusStrings9, kTypeStringList, true },
+ { kEoBBaseCharStatusStrings12, kTypeStringList, true },
+ { kEoBBaseCharStatusStrings131, kTypeStringList, true },
+ { kEoBBaseCharStatusStrings132, kTypeStringList, true },
+
+ { kEoBBaseLevelGainStrings, kTypeStringList, true },
+ { kEoBBaseExperienceTable0, kLoLTypeRaw32, false },
+ { kEoBBaseExperienceTable1, kLoLTypeRaw32, false },
+ { kEoBBaseExperienceTable2, kLoLTypeRaw32, false },
+ { kEoBBaseExperienceTable3, kLoLTypeRaw32, false },
+ { kEoBBaseExperienceTable4, kLoLTypeRaw32, false },
+
+ { kEoBBaseWllFlagPreset, kTypeRawData, false },
+ { kEoBBaseDscShapeCoords, kLoLTypeRaw16, false },
+ { kEoBBaseDscDoorScaleOffs, kTypeRawData, false },
+ { kEoBBaseDscDoorScaleMult1, kTypeRawData, false },
+ { kEoBBaseDscDoorScaleMult2, kTypeRawData, false },
+ { kEoBBaseDscDoorScaleMult3, kTypeRawData, false },
+ { kEoBBaseDscDoorScaleMult4, kTypeRawData, false },
+ { kEoBBaseDscDoorScaleMult5, kTypeRawData, false },
+ { kEoBBaseDscDoorScaleMult6, kTypeRawData, false },
+ { kEoBBaseDscDoorType5Offs, kTypeRawData, false },
+ { kEoBBaseDscDoorXE, kTypeRawData, false },
+ { kEoBBaseDscDoorY1, kTypeRawData, false },
+ { kEoBBaseDscDoorY3, kTypeRawData, false },
+ { kEoBBaseDscDoorY4, kTypeRawData, false },
+ { kEoBBaseDscDoorY5, kTypeRawData, false },
+ { kEoBBaseDscDoorY6, kTypeRawData, false },
+ { kEoBBaseDscDoorY7, kTypeRawData, false },
+ { kEoBBaseDscDoorCoordsExt, kLoLTypeRaw16, false },
+
+ { kEoBBaseDscItemPosIndex, kTypeRawData, false },
+ { kEoBBaseDscItemShpX, kLoLTypeRaw16, false },
+ { kEoBBaseDscItemPosUnk, kTypeRawData, false },
+ { kEoBBaseDscItemTileIndex, kTypeRawData, false },
+ { kEoBBaseDscItemShapeMap, kTypeRawData, false },
+ { kEoBBaseDscTelptrShpCoords, kTypeRawData, false },
+
+ { kEoBBasePortalSeqData, kTypeRawData, false },
+ { kEoBBaseManDef, kTypeRawData, true },
+ { kEoBBaseManWord, kTypeStringList, true },
+ { kEoBBaseManPrompt, kTypeStringList, true },
+
+ { kEoBBaseDscMonsterFrmOffsTbl1, kTypeRawData, false },
+ { kEoBBaseDscMonsterFrmOffsTbl2, kTypeRawData, false },
+
+ { kEoBBaseInvSlotX, kLoLTypeRaw16, false },
+ { kEoBBaseInvSlotY, kTypeRawData, false },
+ { kEoBBaseSlotValidationFlags, kLoLTypeRaw16, false },
+
+ { kEoBBaseProjectileWeaponTypes, kTypeRawData, false },
+ { kEoBBaseWandTypes, kTypeRawData, false },
+
+ { kEoBBaseDrawObjPosIndex, kTypeRawData, false },
+ { kEoBBaseFlightObjFlipIndex, kTypeRawData, false },
+ { kEoBBaseFlightObjShpMap, kTypeRawData, false },
+ { kEoBBaseFlightObjSclIndex, kTypeRawData, false },
+
+ { kEoBBaseBookNumbers, kTypeStringList, true },
+ { kEoBBaseMageSpellsList, kTypeStringList, true },
+ { kEoBBaseClericSpellsList, kTypeStringList, true },
+ { kEoBBaseSpellNames, kTypeStringList, true },
+
+ { kEoBBaseMagicStrings1, kTypeStringList, true },
+ { kEoBBaseMagicStrings2, kTypeStringList, true },
+ { kEoBBaseMagicStrings3, kTypeStringList, true },
+ { kEoBBaseMagicStrings4, kTypeStringList, true },
+ { kEoBBaseMagicStrings6, kTypeStringList, true },
+ { kEoBBaseMagicStrings7, kTypeStringList, true },
+ { kEoBBaseMagicStrings8, kTypeStringList, true },
+
+ { kEoBBaseExpObjectTlMode, kTypeRawData, false },
+ { kEoBBaseExpObjectTblIndex, kTypeRawData, false },
+ { kEoBBaseExpObjectShpStart, kTypeRawData, false },
+ { kEoBBaseExpObjectTbl1, kTypeRawData, false },
+ { kEoBBaseExpObjectTbl2, kTypeRawData, false },
+ { kEoBBaseExpObjectTbl3, kTypeRawData, false },
+ { kEoBBaseExpObjectY, k3TypeRaw16to8, false },
+
+ { kEoBBaseSparkDefSteps, kTypeRawData, false },
+ { kEoBBaseSparkDefSubSteps, kTypeRawData, false },
+ { kEoBBaseSparkDefShift, kTypeRawData, false },
+ { kEoBBaseSparkDefAdd, kTypeRawData, false },
+ { kEoBBaseSparkDefX, k3TypeRaw16to8, false },
+ { kEoBBaseSparkDefY, kTypeRawData, false },
+ { kEoBBaseSparkOfFlags1, kLoLTypeRaw32, false },
+ { kEoBBaseSparkOfFlags2, kLoLTypeRaw32, false },
+ { kEoBBaseSparkOfShift, kTypeRawData, false },
+ { kEoBBaseSparkOfX, kTypeRawData, false },
+ { kEoBBaseSparkOfY, kTypeRawData, false },
+ { kEoBBaseSpellProperties, kTypeRawData, false },
+ { kEoBBaseMagicFlightProps, kTypeRawData, false },
+ { kEoBBaseTurnUndeadEffect, kTypeRawData, false },
+ { kEoBBaseBurningHandsDest, kTypeRawData, false },
+ { kEoBBaseConeOfColdDest1, kTypeRawData, false },
+ { kEoBBaseConeOfColdDest2, kTypeRawData, false },
+ { kEoBBaseConeOfColdDest3, kTypeRawData, false },
+ { kEoBBaseConeOfColdDest4, kTypeRawData, false },
+ { kEoBBaseConeOfColdGfxTbl, k3TypeRaw16to8, false },
+
+ // EYE OF THE BEHOLDER I
+ { kEoB1MainMenuStrings, kTypeStringList, true },
+ { kEoB1BonusStrings, kTypeStringList, true },
+
+ { kEoB1IntroFilesOpening, kTypeStringList, false },
+ { kEoB1IntroFilesTower, kTypeStringList, false },
+ { kEoB1IntroFilesOrb, kTypeStringList, false },
+ { kEoB1IntroFilesWdEntry, kTypeStringList, false },
+ { kEoB1IntroFilesKing, kTypeStringList, false },
+ { kEoB1IntroFilesHands, kTypeStringList, false },
+ { kEoB1IntroFilesWdExit, kTypeStringList, false },
+ { kEoB1IntroFilesTunnel, kTypeStringList, false },
+ { kEoB1IntroOpeningFrmDelay, k3TypeRaw16to8, false },
+ { kEoB1IntroWdEncodeX, kTypeRawData, false },
+ { kEoB1IntroWdEncodeY, kTypeRawData, false },
+ { kEoB1IntroWdEncodeWH, kTypeRawData, false },
+ { kEoB1IntroWdDsX, kLoLTypeRaw16, false },
+ { kEoB1IntroWdDsY, kTypeRawData, false },
+ { kEoB1IntroTvlX1, kTypeRawData, false },
+ { kEoB1IntroTvlY1, kTypeRawData, false },
+ { kEoB1IntroTvlX2, kTypeRawData, false },
+ { kEoB1IntroTvlY2, kTypeRawData, false },
+ { kEoB1IntroTvlW, kTypeRawData, false },
+ { kEoB1IntroTvlH, kTypeRawData, false },
+
+ { kEoB1DoorShapeDefs, kTypeRawData, false },
+ { kEoB1DoorSwitchShapeDefs, kTypeRawData, false },
+ { kEoB1DoorSwitchCoords, kTypeRawData, false },
+ { kEoB1MonsterProperties, kTypeRawData, false },
+ { kEoB1EnemyMageSpellList, kTypeRawData, false },
+ { kEoB1EnemyMageSfx, kTypeRawData, false },
+ { kEoB1BeholderSpellList, kTypeRawData, false },
+ { kEoB1BeholderSfx, kTypeRawData, false },
+ { kEoB1TurnUndeadString, kTypeStringList, true },
+
+ { kEoB1CgaMappingDefault, kTypeRawData, false },
+ { kEoB1CgaMappingAlt, kTypeRawData, false },
+ { kEoB1CgaMappingInv, kTypeRawData, false },
+ { kEoB1CgaMappingItemsL, kTypeRawData, false },
+ { kEoB1CgaMappingItemsS, kTypeRawData, false },
+ { kEoB1CgaMappingThrown, kTypeRawData, false },
+ { kEoB1CgaMappingIcons, kTypeRawData, false },
+ { kEoB1CgaMappingDeco, kTypeRawData, false },
+ { kEoB1CgaLevelMappingIndex, kTypeRawData, false },
+ { kEoB1CgaMappingLevel0, kTypeRawData, false },
+ { kEoB1CgaMappingLevel1, kTypeRawData, false },
+ { kEoB1CgaMappingLevel2, kTypeRawData, false },
+ { kEoB1CgaMappingLevel3, kTypeRawData, false },
+ { kEoB1CgaMappingLevel4, kTypeRawData, false },
+
+ { kEoB1NpcShpData, kTypeRawData, false },
+ { kEoB1NpcSubShpIndex1, kTypeRawData, false },
+ { kEoB1NpcSubShpIndex2, kTypeRawData, false },
+ { kEoB1NpcSubShpY, kTypeRawData, false },
+ { kEoB1Npc0Strings, kTypeStringList, true },
+ { kEoB1Npc11Strings, kTypeStringList, true },
+ { kEoB1Npc12Strings, kTypeStringList, true },
+ { kEoB1Npc21Strings, kTypeStringList, true },
+ { kEoB1Npc22Strings, kTypeStringList, true },
+ { kEoB1Npc31Strings, kTypeStringList, true },
+ { kEoB1Npc32Strings, kTypeStringList, true },
+ { kEoB1Npc4Strings, kTypeStringList, true },
+ { kEoB1Npc5Strings, kTypeStringList, true },
+ { kEoB1Npc6Strings, kTypeStringList, true },
+ { kEoB1Npc7Strings, kTypeStringList, true },
+
+ // EYE OF THE BEHOLDER II
+ { kEoB2MainMenuStrings, kTypeStringList, true },
+
+ { kEoB2TransferPortraitFrames, kLoLTypeRaw16, false },
+ { kEoB2TransferConvertTable, kTypeRawData, false },
+ { kEoB2TransferItemTable, kTypeRawData, false },
+ { kEoB2TransferExpTable, kLoLTypeRaw32, false },
+ { kEoB2TransferStrings1, kTypeStringList, true },
+ { kEoB2TransferStrings2, kTypeStringList, true },
+ { kEoB2TransferLabels, kTypeStringList, true },
+
+ { kEoB2IntroStrings, k2TypeSfxList, true },
+ { kEoB2IntroCPSFiles, kTypeStringList, true },
+ { kEob2IntroAnimData00, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData01, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData02, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData03, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData04, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData05, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData06, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData07, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData08, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData09, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData10, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData11, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData12, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData13, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData14, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData15, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData16, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData17, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData18, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData19, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData20, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData21, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData22, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData23, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData24, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData25, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData26, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData27, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData28, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData29, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData30, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData31, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData32, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData33, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData34, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData35, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData36, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData37, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData38, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData39, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData40, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData41, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData42, kEoB2TypeSeqData, false },
+ { kEob2IntroAnimData43, kEoB2TypeSeqData, false },
+ { kEoB2IntroShapes00, kEoB2TypeShapeData, false },
+ { kEoB2IntroShapes01, kEoB2TypeShapeData, false },
+ { kEoB2IntroShapes04, kEoB2TypeShapeData, false },
+ { kEoB2IntroShapes07, kEoB2TypeShapeData, false },
+
+ { kEoB2FinaleStrings, k2TypeSfxList, true },
+ { kEoB2CreditsData, kTypeRawData, true },
+ { kEoB2FinaleCPSFiles, kTypeStringList, true },
+ { kEob2FinaleAnimData00, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData01, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData02, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData03, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData04, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData05, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData06, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData07, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData08, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData09, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData10, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData11, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData12, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData13, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData14, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData15, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData16, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData17, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData18, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData19, kEoB2TypeSeqData, false },
+ { kEob2FinaleAnimData20, kEoB2TypeSeqData, false },
+ { kEoB2FinaleShapes00, kEoB2TypeShapeData, false },
+ { kEoB2FinaleShapes03, kEoB2TypeShapeData, false },
+ { kEoB2FinaleShapes07, kEoB2TypeShapeData, false },
+ { kEoB2FinaleShapes09, kEoB2TypeShapeData, false },
+ { kEoB2FinaleShapes10, kEoB2TypeShapeData, false },
+ { kEoB2NpcShapeData, kTypeRawData, false },
+ { kEoBBaseClassModifierFlags, kTypeRawData, false },
+ { kEoBBaseMonsterStepTable01, kTypeRawData, false },
+ { kEoBBaseMonsterStepTable02, kTypeRawData, false },
+ { kEoBBaseMonsterStepTable1, kTypeRawData, false },
+ { kEoBBaseMonsterStepTable2, k3TypeRaw16to8, false },
+ { kEoBBaseMonsterStepTable3, k3TypeRaw16to8, false },
+ { kEoBBaseMonsterCloseAttPosTable1, kTypeRawData, false },
+ { kEoBBaseMonsterCloseAttPosTable21, kTypeRawData, false },
+ { kEoBBaseMonsterCloseAttPosTable22, kTypeRawData, false },
+ { kEoBBaseMonsterCloseAttUnkTable, kTypeRawData, false },
+ { kEoBBaseMonsterCloseAttChkTable1, kTypeRawData, false },
+ { kEoBBaseMonsterCloseAttChkTable2, kTypeRawData, false },
+ { kEoBBaseMonsterCloseAttDstTable1, kTypeRawData, false },
+ { kEoBBaseMonsterCloseAttDstTable2, kTypeRawData, false },
+ { kEoBBaseMonsterProximityTable, kTypeRawData, false },
+ { kEoBBaseFindBlockMonstersTable, kTypeRawData, false },
+ { kEoBBaseMonsterDirChangeTable, kTypeRawData, false },
+ { kEoBBaseMonsterDistAttStrings, kTypeStringList, true },
+ { kEoBBaseEncodeMonsterDefs, kLoLTypeRaw16, false },
+ { kEoBBaseNpcPresets, kEoBTypeNpcData, false },
+ { kEoB2Npc1Strings, kTypeStringList, true },
+ { kEoB2Npc2Strings, kTypeStringList, true },
+ { kEoB2MonsterDustStrings, kTypeStringList, true },
+ { kEoB2DreamSteps, kTypeRawData, false },
+ { kEoB2KheldranStrings, kTypeStringList, true },
+ { kEoB2HornStrings, kTypeStringList, true },
+ { kEoB2HornSounds, kTypeRawData, false },
+ { kEoB2WallOfForceDsX, kLoLTypeRaw16, false },
+ { kEoB2WallOfForceDsY, kTypeRawData, false },
+ { kEoB2WallOfForceNumW, kTypeRawData, false },
+ { kEoB2WallOfForceNumH, kTypeRawData, false },
+ { kEoB2WallOfForceShpId, kTypeRawData, false },
+
// LANDS OF LORE
// Ingame
- { kLolIngamePakFiles, kTypeStringList, false },
-
- { kLolCharacterDefs, kLolTypeCharData, true },
- { kLolIngameSfxFiles, k2TypeSfxList, false },
- { kLolIngameSfxIndex, kTypeRawData, false },
- { kLolMusicTrackMap, kTypeRawData, false },
- { kLolIngameGMSfxIndex, kTypeRawData, false },
- { kLolIngameMT32SfxIndex, kTypeRawData, false },
- { kLolIngamePcSpkSfxIndex, kTypeRawData, false },
- { kLolSpellProperties, kLolTypeSpellData, false },
- { kLolGameShapeMap, kTypeRawData, false },
- { kLolSceneItemOffs, kTypeRawData, false },
- { kLolCharInvIndex, k3TypeRaw16to8, false },
- { kLolCharInvDefs, kTypeRawData, false },
- { kLolCharDefsMan, kLolTypeRaw16, false },
- { kLolCharDefsWoman, kLolTypeRaw16, false },
- { kLolCharDefsKieran, kLolTypeRaw16, false },
- { kLolCharDefsAkshel, kLolTypeRaw16, false },
- { kLolExpRequirements, kLolTypeRaw32, false },
- { kLolMonsterModifiers, kLolTypeRaw16, false },
- { kLolMonsterShiftOffsets, kTypeRawData, false },
- { kLolMonsterDirFlags, kTypeRawData, false },
- { kLolMonsterScaleY, kTypeRawData, false },
- { kLolMonsterScaleX, kTypeRawData, false },
- { kLolMonsterScaleWH, kLolTypeRaw16, false },
- { kLolFlyingObjectShp, kLolTypeFlightShpData, false },
- { kLolInventoryDesc, kLolTypeRaw16, false },
- { kLolLevelShpList, kTypeStringList, false },
- { kLolLevelDatList, kTypeStringList, false },
- { kLolCompassDefs, kLolTypeCompassData, false },
- { kLolItemPrices, kLolTypeRaw16, false },
- { kLolStashSetup, kTypeRawData, false },
-
- { kLolDscUnk1, kTypeRawData, false },
- { kLolDscShapeIndex, kTypeRawData, false },
- { kLolDscOvlMap, kTypeRawData, false },
- { kLolDscScaleWidthData, kLolTypeRaw16, false },
- { kLolDscScaleHeightData, kLolTypeRaw16, false },
- { kLolDscX, kLolTypeRaw16, false },
- { kLolDscY, kTypeRawData, false },
- { kLolDscTileIndex, kTypeRawData, false },
- { kLolDscUnk2, kTypeRawData, false },
- { kLolDscDoorShapeIndex, kTypeRawData, false },
- { kLolDscDimData1, kTypeRawData, false },
- { kLolDscDimData2, kTypeRawData, false },
- { kLolDscBlockMap, kTypeRawData, false },
- { kLolDscDimMap, kTypeRawData, false },
- { kLolDscDoorScale, kLolTypeRaw16, false },
- { kLolDscOvlIndex, k3TypeRaw16to8, false },
- { kLolDscBlockIndex, kTypeRawData, false },
- { kLolDscDoor4, kLolTypeRaw16, false },
- { kLolDscDoor1, kTypeRawData, false },
- { kLolDscDoorX, kLolTypeRaw16, false },
- { kLolDscDoorY, kLolTypeRaw16, false },
-
- { kLolScrollXTop, k3TypeRaw16to8, false },
- { kLolScrollYTop, k3TypeRaw16to8, false },
- { kLolScrollXBottom, k3TypeRaw16to8, false },
- { kLolScrollYBottom, k3TypeRaw16to8, false },
-
- { kLolButtonDefs, kLolTypeButtonDef, false },
- { kLolButtonList1, kLolTypeRaw16, false },
- { kLolButtonList2, kLolTypeRaw16, false },
- { kLolButtonList3, kLolTypeRaw16, false },
- { kLolButtonList4, kLolTypeRaw16, false },
- { kLolButtonList5, kLolTypeRaw16, false },
- { kLolButtonList6, kLolTypeRaw16, false },
- { kLolButtonList7, kLolTypeRaw16, false },
- { kLolButtonList8, kLolTypeRaw16, false },
-
- { kLolLegendData, kTypeRawData, false },
- { kLolMapCursorOvl, kTypeRawData, false },
- { kLolMapStringId, kLolTypeRaw16, false },
-
- { kLolSpellbookAnim, k3TypeRaw16to8, false },
- { kLolSpellbookCoords, k3TypeRaw16to8, false },
- { kLolHealShapeFrames, kTypeRawData, false },
- { kLolLightningDefs, kTypeRawData, false },
- { kLolFireballCoords, kLolTypeRaw16, false },
-
- { kLolCredits, kTypeRawData, false },
-
- { kLolHistory, kTypeRawData, false },
+ { kLoLIngamePakFiles, kTypeStringList, false },
+
+ { kLoLCharacterDefs, kLoLTypeCharData, true },
+ { kLoLIngameSfxFiles, k2TypeSfxList, false },
+ { kLoLIngameSfxIndex, kTypeRawData, false },
+ { kLoLMusicTrackMap, kTypeRawData, false },
+ { kLoLIngameGMSfxIndex, kTypeRawData, false },
+ { kLoLIngameMT32SfxIndex, kTypeRawData, false },
+ { kLoLIngamePcSpkSfxIndex, kTypeRawData, false },
+ { kLoLSpellProperties, kLoLTypeSpellData, false },
+ { kLoLGameShapeMap, kTypeRawData, false },
+ { kLoLSceneItemOffs, kTypeRawData, false },
+ { kLoLCharInvIndex, k3TypeRaw16to8, false },
+ { kLoLCharInvDefs, kTypeRawData, false },
+ { kLoLCharDefsMan, kLoLTypeRaw16, false },
+ { kLoLCharDefsWoman, kLoLTypeRaw16, false },
+ { kLoLCharDefsKieran, kLoLTypeRaw16, false },
+ { kLoLCharDefsAkshel, kLoLTypeRaw16, false },
+ { kLoLExpRequirements, kLoLTypeRaw32, false },
+ { kLoLMonsterModifiers, kLoLTypeRaw16, false },
+ { kLoLMonsterShiftOffsets, kTypeRawData, false },
+ { kLoLMonsterDirFlags, kTypeRawData, false },
+ { kLoLMonsterScaleY, kTypeRawData, false },
+ { kLoLMonsterScaleX, kTypeRawData, false },
+ { kLoLMonsterScaleWH, kLoLTypeRaw16, false },
+ { kLoLFlyingObjectShp, kLoLTypeFlightShpData, false },
+ { kLoLInventoryDesc, kLoLTypeRaw16, false },
+ { kLoLLevelShpList, kTypeStringList, false },
+ { kLoLLevelDatList, kTypeStringList, false },
+ { kLoLCompassDefs, kLoLTypeCompassData, false },
+ { kLoLItemPrices, kLoLTypeRaw16, false },
+ { kLoLStashSetup, kTypeRawData, false },
+
+ { kLoLDscWalls, kTypeRawData, false },
+ { kRpgCommonDscShapeIndex, kTypeRawData, false },
+ { kLoLDscOvlMap, kTypeRawData, false },
+ { kLoLDscScaleWidthData, kLoLTypeRaw16, false },
+ { kLoLDscScaleHeightData, kLoLTypeRaw16, false },
+ { kRpgCommonDscX, kLoLTypeRaw16, false },
+ { kLoLDscY, kTypeRawData, false },
+ { kRpgCommonDscTileIndex, kTypeRawData, false },
+ { kRpgCommonDscUnk2, kTypeRawData, false },
+ { kRpgCommonDscDoorShapeIndex, kTypeRawData, false },
+ { kRpgCommonDscDimData1, kTypeRawData, false },
+ { kRpgCommonDscDimData2, kTypeRawData, false },
+ { kRpgCommonDscBlockMap, kTypeRawData, false },
+ { kRpgCommonDscDimMap, kTypeRawData, false },
+ { kLoLDscDoorScale, kLoLTypeRaw16, false },
+ { kLoLDscOvlIndex, k3TypeRaw16to8, false },
+ { kRpgCommonDscBlockIndex, kTypeRawData, false },
+ { kLoLDscDoor4, kLoLTypeRaw16, false },
+ { kRpgCommonDscDoorY2, kTypeRawData, false },
+ { kRpgCommonDscDoorFrameY1, kTypeRawData, false },
+ { kRpgCommonDscDoorFrameY2, kTypeRawData, false },
+ { kRpgCommonDscDoorFrameIndex1, kTypeRawData, false },
+ { kRpgCommonDscDoorFrameIndex2, kTypeRawData, false },
+ { kLoLDscDoorX, kLoLTypeRaw16, false },
+ { kLoLDscDoorY, kLoLTypeRaw16, false },
+
+ { kLoLScrollXTop, k3TypeRaw16to8, false },
+ { kLoLScrollYTop, k3TypeRaw16to8, false },
+ { kLoLScrollXBottom, k3TypeRaw16to8, false },
+ { kLoLScrollYBottom, k3TypeRaw16to8, false },
+
+ { kLoLButtonDefs, kLoLTypeButtonDef, false },
+ { kLoLButtonList1, kLoLTypeRaw16, false },
+ { kLoLButtonList2, kLoLTypeRaw16, false },
+ { kLoLButtonList3, kLoLTypeRaw16, false },
+ { kLoLButtonList4, kLoLTypeRaw16, false },
+ { kLoLButtonList5, kLoLTypeRaw16, false },
+ { kLoLButtonList6, kLoLTypeRaw16, false },
+ { kLoLButtonList7, kLoLTypeRaw16, false },
+ { kLoLButtonList8, kLoLTypeRaw16, false },
+
+ { kLoLLegendData, kTypeRawData, false },
+ { kLoLMapCursorOvl, kTypeRawData, false },
+ { kLoLMapStringId, kLoLTypeRaw16, false },
+
+ { kLoLSpellbookAnim, k3TypeRaw16to8, false },
+ { kLoLSpellbookCoords, k3TypeRaw16to8, false },
+ { kLoLHealShapeFrames, kTypeRawData, false },
+ { kLoLLightningDefs, kTypeRawData, false },
+ { kLoLFireballCoords, kLoLTypeRaw16, false },
+
+ { kLoLCredits, kTypeRawData, false },
+
+ { kLoLHistory, kTypeRawData, false },
{ -1, 0, 0 }
};
@@ -326,7 +718,9 @@ const TypeTable gameTable[] = {
{ kKyra1, 0 },
{ kKyra2, 1 },
{ kKyra3, 2 },
- { kLol, 3 },
+ { kEoB1, 3 },
+ { kEoB2, 4 },
+ { kLoL, 5 },
{ -1, -1 }
};
@@ -980,154 +1374,863 @@ const char *getIdString(const int id) {
return "k3ItemMagicTable";
case k3ItemStringMap:
return "k3ItemStringMap";
- case kLolIngamePakFiles:
- return "kLolIngamePakFiles";
- case kLolCharacterDefs:
- return "kLolCharacterDefs";
- case kLolIngameSfxFiles:
- return "kLolIngameSfxFiles";
- case kLolIngameSfxIndex:
- return "kLolIngameSfxIndex";
- case kLolMusicTrackMap:
- return "kLolMusicTrackMap";
- case kLolIngameGMSfxIndex:
- return "kLolIngameGMSfxIndex";
- case kLolIngameMT32SfxIndex:
- return "kLolIngameMT32SfxIndex";
- case kLolIngamePcSpkSfxIndex:
- return "kLolIngamePcSpkSfxIndex";
- case kLolSpellProperties:
- return "kLolSpellProperties";
- case kLolGameShapeMap:
- return "kLolGameShapeMap";
- case kLolSceneItemOffs:
- return "kLolSceneItemOffs";
- case kLolCharInvIndex:
- return "kLolCharInvIndex";
- case kLolCharInvDefs:
- return "kLolCharInvDefs";
- case kLolCharDefsMan:
- return "kLolCharDefsMan";
- case kLolCharDefsWoman:
- return "kLolCharDefsWoman";
- case kLolCharDefsKieran:
- return "kLolCharDefsKieran";
- case kLolCharDefsAkshel:
- return "kLolCharDefsAkshel";
- case kLolExpRequirements:
- return "kLolExpRequirements";
- case kLolMonsterModifiers:
- return "kLolMonsterModifiers";
- case kLolMonsterShiftOffsets:
- return "kLolMonsterShiftOffsets";
- case kLolMonsterDirFlags:
- return "kLolMonsterDirFlags";
- case kLolMonsterScaleY:
- return "kLolMonsterScaleY";
- case kLolMonsterScaleX:
- return "kLolMonsterScaleX";
- case kLolMonsterScaleWH:
- return "kLolMonsterScaleWH";
- case kLolFlyingObjectShp:
- return "kLolFlyingObjectShp";
- case kLolInventoryDesc:
- return "kLolInventoryDesc";
- case kLolLevelShpList:
- return "kLolLevelShpList";
- case kLolLevelDatList:
- return "kLolLevelDatList";
- case kLolCompassDefs:
- return "kLolCompassDefs";
- case kLolItemPrices:
- return "kLolItemPrices";
- case kLolStashSetup:
- return "kLolStashSetup";
- case kLolDscUnk1:
- return "kLolDscUnk1";
- case kLolDscShapeIndex:
- return "kLolDscShapeIndex";
- case kLolDscOvlMap:
- return "kLolDscOvlMap";
- case kLolDscScaleWidthData:
- return "kLolDscScaleWidthData";
- case kLolDscScaleHeightData:
- return "kLolDscScaleHeightData";
- case kLolDscX:
- return "kLolDscX";
- case kLolDscY:
- return "kLolDscY";
- case kLolDscTileIndex:
- return "kLolDscTileIndex";
- case kLolDscUnk2:
- return "kLolDscUnk2";
- case kLolDscDoorShapeIndex:
- return "kLolDscDoorShapeIndex";
- case kLolDscDimData1:
- return "kLolDscDimData1";
- case kLolDscDimData2:
- return "kLolDscDimData2";
- case kLolDscBlockMap:
- return "kLolDscBlockMap";
- case kLolDscDimMap:
- return "kLolDscDimMap";
- case kLolDscOvlIndex:
- return "kLolDscOvlIndex";
- case kLolDscBlockIndex:
- return "kLolDscBlockIndex";
- case kLolDscDoor1:
- return "kLolDscDoor1";
- case kLolDscDoorScale:
- return "kLolDscDoorScale";
- case kLolDscDoor4:
- return "kLolDscDoor4";
- case kLolDscDoorX:
- return "kLolDscDoorX";
- case kLolDscDoorY:
- return "kLolDscDoorY";
- case kLolScrollXTop:
- return "kLolScrollXTop";
- case kLolScrollYTop:
- return "kLolScrollYTop";
- case kLolScrollXBottom:
- return "kLolScrollXBottom";
- case kLolScrollYBottom:
- return "kLolScrollYBottom";
- case kLolButtonDefs:
- return "kLolButtonDefs";
- case kLolButtonList1:
- return "kLolButtonList1";
- case kLolButtonList2:
- return "kLolButtonList2";
- case kLolButtonList3:
- return "kLolButtonList3";
- case kLolButtonList4:
- return "kLolButtonList4";
- case kLolButtonList5:
- return "kLolButtonList5";
- case kLolButtonList6:
- return "kLolButtonList6";
- case kLolButtonList7:
- return "kLolButtonList7";
- case kLolButtonList8:
- return "kLolButtonList8";
- case kLolLegendData:
- return "kLolLegendData";
- case kLolMapCursorOvl:
- return "kLolMapCursorOvl";
- case kLolMapStringId:
- return "kLolMapStringId";
- case kLolSpellbookAnim:
- return "kLolSpellbookAnim";
- case kLolSpellbookCoords:
- return "kLolSpellbookCoords";
- case kLolHealShapeFrames:
- return "kLolHealShapeFrames";
- case kLolLightningDefs:
- return "kLolLightningDefs";
- case kLolFireballCoords:
- return "kLolFireballCoords";
- case kLolHistory:
- return "kLolHistory";
+ case kEoBBaseChargenStrings1:
+ return "kEoBBaseChargenStrings1";
+ case kEoBBaseChargenStrings2:
+ return "kEoBBaseChargenStrings2";
+ case kEoBBaseChargenStartLevels:
+ return "kEoBBaseChargenStartLevels";
+ case kEoBBaseChargenStatStrings:
+ return "kEoBBaseChargenStatStrings";
+ case kEoBBaseChargenRaceSexStrings:
+ return "kEoBBaseChargenRaceSexStrings";
+ case kEoBBaseChargenClassStrings:
+ return "kEoBBaseChargenClassStrings";
+ case kEoBBaseChargenAlignmentStrings:
+ return "kEoBBaseChargenAlignmentStrings";
+ case kEoBBaseChargenEnterGameStrings:
+ return "kEoBBaseChargenEnterGameStrings";
+ case kEoBBaseChargenClassMinStats:
+ return "kEoBBaseChargenClassMinStats";
+ case kEoBBaseChargenRaceMinStats:
+ return "kEoBBaseChargenRaceMinStats";
+ case kEoBBaseChargenRaceMaxStats:
+ return "kEoBBaseChargenRaceMaxStats";
+ case kEoBBaseSaveThrowTable1:
+ return "kEoBBaseSaveThrowTable1";
+ case kEoBBaseSaveThrowTable2:
+ return "kEoBBaseSaveThrowTable2";
+ case kEoBBaseSaveThrowTable3:
+ return "kEoBBaseSaveThrowTable3";
+ case kEoBBaseSaveThrowTable4:
+ return "kEoBBaseSaveThrowTable4";
+ case kEoBBaseSaveThrwLvlIndex:
+ return "kEoBBaseSaveThrwLvlIndex";
+ case kEoBBaseSaveThrwModDiv:
+ return "kEoBBaseSaveThrwModDiv";
+ case kEoBBaseSaveThrwModExt:
+ return "kEoBBaseSaveThrwModExt";
+ case kEoBBasePryDoorStrings:
+ return "kEoBBasePryDoorStrings";
+ case kEoBBaseWarningStrings:
+ return "kEoBBaseWarningStrings";
+ case kEoBBaseItemSuffixStringsRings:
+ return "kEoBBaseItemSuffixStringsRings";
+ case kEoBBaseItemSuffixStringsPotions:
+ return "kEoBBaseItemSuffixStringsPotions";
+ case kEoBBaseItemSuffixStringsWands:
+ return "kEoBBaseItemSuffixStringsWands";
+ case kEoBBaseRipItemStrings:
+ return "kEoBBaseRipItemStrings";
+ case kEoBBaseCursedString:
+ return "kEoBBaseCursedString";
+ case kEoBBaseEnchantedString:
+ return "kEoBBaseEnchantedString";
+ case kEoBBaseMagicObjectStrings:
+ return "kEoBBaseMagicObjectStrings";
+ case kEoBBaseMagicObject5String:
+ return "kEoBBaseMagicObject5String";
+ case kEoBBasePatternSuffix:
+ return "kEoBBasePatternSuffix";
+ case kEoBBasePatternGrFix1:
+ return "kEoBBasePatternGrFix1";
+ case kEoBBasePatternGrFix2:
+ return "kEoBBasePatternGrFix2";
+ case kEoBBaseValidateArmorString:
+ return "kEoBBaseValidateArmorString";
+ case kEoBBaseValidateCursedString:
+ return "kEoBBaseValidateCursedString";
+ case kEoBBaseValidateNoDropString:
+ return "kEoBBaseValidateNoDropString";
+ case kEoBBasePotionStrings:
+ return "kEoBBasePotionStrings";
+ case kEoBBaseWandString:
+ return "kEoBBaseWandString";
+ case kEoBBaseItemMisuseStrings:
+ return "kEoBBaseItemMisuseStrings";
+ case kEoBBaseTakenStrings:
+ return "kEoBBaseTakenStrings";
+ case kEoBBasePotionEffectStrings:
+ return "kEoBBasePotionEffectStrings";
+ case kEoBBaseYesNoStrings:
+ return "kEoBBaseYesNoStrings";
+ case kRpgCommonMoreStrings:
+ return "kRpgCommonMoreStrings";
+ case kEoBBaseNpcMaxStrings:
+ return "kEoBBaseNpcMaxStrings";
+ case kEoBBaseOkStrings:
+ return "kEoBBaseOkStrings";
+ case kEoBBaseNpcJoinStrings:
+ return "kEoBBaseNpcJoinStrings";
+ case kEoBBaseCancelStrings:
+ return "kEoBBaseCancelStrings";
+ case kEoBBaseAbortStrings:
+ return "kEoBBaseAbortStrings";
+ case kEoBBaseMenuStringsMain:
+ return "kEoBBaseMenuStringsMain";
+ case kEoBBaseMenuStringsSaveLoad:
+ return "kEoBBaseMenuStringsSaveLoad";
+ case kEoBBaseMenuStringsOnOff:
+ return "kEoBBaseMenuStringsOnOff";
+ case kEoBBaseMenuStringsSpells:
+ return "kEoBBaseMenuStringsSpells";
+ case kEoBBaseMenuStringsRest:
+ return "kEoBBaseMenuStringsRest";
+ case kEoBBaseMenuStringsDrop:
+ return "kEoBBaseMenuStringsDrop";
+ case kEoBBaseMenuStringsExit:
+ return "kEoBBaseMenuStringsExit";
+ case kEoBBaseMenuStringsStarve:
+ return "kEoBBaseMenuStringsStarve";
+ case kEoBBaseMenuStringsScribe:
+ return "kEoBBaseMenuStringsScribe";
+ case kEoBBaseMenuStringsDrop2:
+ return "kEoBBaseMenuStringsDrop2";
+ case kEoBBaseMenuStringsHead:
+ return "kEoBBaseMenuStringsHead";
+ case kEoBBaseMenuStringsPoison:
+ return "kEoBBaseMenuStringsPoison";
+ case kEoBBaseMenuStringsMgc:
+ return "kEoBBaseMenuStringsMgc";
+ case kEoBBaseMenuStringsPrefs:
+ return "kEoBBaseMenuStringsPrefs";
+ case kEoBBaseMenuStringsRest2:
+ return "kEoBBaseMenuStringsRest2";
+ case kEoBBaseMenuStringsRest3:
+ return "kEoBBaseMenuStringsRest3";
+ case kEoBBaseMenuStringsRest4:
+ return "kEoBBaseMenuStringsRest4";
+ case kEoBBaseMenuStringsDefeat:
+ return "kEoBBaseMenuStringsDefeat";
+ case kEoBBaseMenuStringsTransfer:
+ return "kEoBBaseMenuStringsTransfer";
+ case kEoBBaseMenuStringsSpec:
+ return "kEoBBaseMenuStringsSpec";
+ case kEoBBaseMenuStringsSpellNo:
+ return "kEoBBaseMenuStringsSpellNo";
+ case kEoBBaseMenuYesNoStrings:
+ return "kEoBBaseMenuYesNoStrings";
+ case kEoBBaseSpellLevelsMage:
+ return "kEoBBaseSpellLevelsMage";
+ case kEoBBaseSpellLevelsCleric:
+ return "kEoBBaseSpellLevelsCleric";
+ case kEoBBaseNumSpellsCleric:
+ return "kEoBBaseNumSpellsCleric";
+ case kEoBBaseNumSpellsWisAdj:
+ return "kEoBBaseNumSpellsWisAdj";
+ case kEoBBaseNumSpellsPal:
+ return "kEoBBaseNumSpellsPal";
+ case kEoBBaseNumSpellsMage:
+ return "kEoBBaseNumSpellsMage";
+ case kEoBBaseCharGuiStringsHp:
+ return "kEoBBaseCharGuiStringsHp";
+ case kEoBBaseCharGuiStringsWp1:
+ return "kEoBBaseCharGuiStringsWp1";
+ case kEoBBaseCharGuiStringsWp2:
+ return "kEoBBaseCharGuiStringsWp2";
+ case kEoBBaseCharGuiStringsWr:
+ return "kEoBBaseCharGuiStringsWr";
+ case kEoBBaseCharGuiStringsSt1:
+ return "kEoBBaseCharGuiStringsSt1";
+ case kEoBBaseCharGuiStringsSt2:
+ return "kEoBBaseCharGuiStringsSt2";
+ case kEoBBaseCharGuiStringsIn:
+ return "kEoBBaseCharGuiStringsIn";
+ case kEoBBaseCharStatusStrings7:
+ return "kEoBBaseCharStatusStrings7";
+ case kEoBBaseCharStatusStrings81:
+ return "kEoBBaseCharStatusStrings81";
+ case kEoBBaseCharStatusStrings82:
+ return "kEoBBaseCharStatusStrings82";
+ case kEoBBaseCharStatusStrings9:
+ return "kEoBBaseCharStatusStrings9";
+ case kEoBBaseCharStatusStrings12:
+ return "kEoBBaseCharStatusStrings12";
+ case kEoBBaseCharStatusStrings131:
+ return "kEoBBaseCharStatusStrings131";
+ case kEoBBaseCharStatusStrings132:
+ return "kEoBBaseCharStatusStrings132";
+ case kEoBBaseLevelGainStrings:
+ return "kEoBBaseLevelGainStrings";
+ case kEoBBaseExperienceTable0:
+ return "kEoBBaseExperienceTable0";
+ case kEoBBaseExperienceTable1:
+ return "kEoBBaseExperienceTable1";
+ case kEoBBaseExperienceTable2:
+ return "kEoBBaseExperienceTable2";
+ case kEoBBaseExperienceTable3:
+ return "kEoBBaseExperienceTable3";
+ case kEoBBaseExperienceTable4:
+ return "kEoBBaseExperienceTable4";
+ case kEoBBaseWllFlagPreset:
+ return "kEoBBaseWllFlagPreset";
+ case kEoBBaseDscShapeCoords:
+ return "kEoBBaseDscShapeCoords";
+ case kEoBBaseDscDoorScaleOffs:
+ return "kEoBBaseDscDoorScaleOffs";
+ case kEoBBaseDscDoorScaleMult1:
+ return "kEoBBaseDscDoorScaleMult1";
+ case kEoBBaseDscDoorScaleMult2:
+ return "kEoBBaseDscDoorScaleMult2";
+ case kEoBBaseDscDoorScaleMult3:
+ return "kEoBBaseDscDoorScaleMult3";
+ case kEoBBaseDscDoorScaleMult4:
+ return "kEoBBaseDscDoorScaleMult4";
+ case kEoBBaseDscDoorScaleMult5:
+ return "kEoBBaseDscDoorScaleMult5";
+ case kEoBBaseDscDoorScaleMult6:
+ return "kEoBBaseDscDoorScaleMult6";
+ case kEoBBaseDscDoorType5Offs:
+ return "kEoBBaseDscDoorType5Offs";
+ case kEoBBaseDscDoorXE:
+ return "kEoBBaseDscDoorXE";
+ case kEoBBaseDscDoorY1:
+ return "kEoBBaseDscDoorY1";
+ case kEoBBaseDscDoorY3:
+ return "kEoBBaseDscDoorY3";
+ case kEoBBaseDscDoorY4:
+ return "kEoBBaseDscDoorY4";
+ case kEoBBaseDscDoorY5:
+ return "kEoBBaseDscDoorY5";
+ case kEoBBaseDscDoorY6:
+ return "kEoBBaseDscDoorY6";
+ case kEoBBaseDscDoorY7:
+ return "kEoBBaseDscDoorY7";
+ case kEoBBaseDscDoorCoordsExt:
+ return "kEoBBaseDscDoorCoordsExt";
+ case kEoBBaseDscItemPosIndex:
+ return "kEoBBaseDscItemPosIndex";
+ case kEoBBaseDscItemShpX:
+ return "kEoBBaseDscItemShpX";
+ case kEoBBaseDscItemPosUnk:
+ return "kEoBBaseDscItemPosUnk";
+ case kEoBBaseDscItemTileIndex:
+ return "kEoBBaseDscItemTileIndex";
+ case kEoBBaseDscItemShapeMap:
+ return "kEoBBaseDscItemShapeMap";
+ case kEoBBaseDscMonsterFrmOffsTbl1:
+ return "kEoBBaseDscMonsterFrmOffsTbl1";
+ case kEoBBaseDscMonsterFrmOffsTbl2:
+ return "kEoBBaseDscMonsterFrmOffsTbl2";
+ case kEoBBaseInvSlotX:
+ return "kEoBBaseInvSlotX";
+ case kEoBBaseInvSlotY:
+ return "kEoBBaseInvSlotY";
+ case kEoBBaseSlotValidationFlags:
+ return "kEoBBaseSlotValidationFlags";
+ case kEoBBaseProjectileWeaponTypes:
+ return "kEoBBaseProjectileWeaponTypes";
+ case kEoBBaseWandTypes:
+ return "kEoBBaseWandTypes";
+ case kEoBBaseDrawObjPosIndex:
+ return "kEoBBaseDrawObjPosIndex";
+ case kEoBBaseFlightObjFlipIndex:
+ return "kEoBBaseFlightObjFlipIndex";
+ case kEoBBaseFlightObjShpMap:
+ return "kEoBBaseFlightObjShpMap";
+ case kEoBBaseFlightObjSclIndex:
+ return "kEoBBaseFlightObjSclIndex";
+ case kEoBBaseDscTelptrShpCoords:
+ return "kEoBBaseDscTelptrShpCoords";
+ case kEoBBasePortalSeqData:
+ return "kEoBBasePortalSeqData";
+ case kEoBBaseManDef:
+ return "kEoBBaseManDef";
+ case kEoBBaseManWord:
+ return "kEoBBaseManWord";
+ case kEoBBaseManPrompt:
+ return "kEoBBaseManPrompt";
+ case kEoBBaseBookNumbers:
+ return "kEoBBaseBookNumbers";
+ case kEoBBaseMageSpellsList:
+ return "kEoBBaseMageSpellsList";
+ case kEoBBaseClericSpellsList:
+ return "kEoBBaseClericSpellsList";
+ case kEoBBaseSpellNames:
+ return "kEoBBaseSpellNames";
+
+ case kEoBBaseMagicStrings1:
+ return "kEoBBaseMagicStrings1";
+ case kEoBBaseMagicStrings2:
+ return "kEoBBaseMagicStrings2";
+ case kEoBBaseMagicStrings3:
+ return "kEoBBaseMagicStrings3";
+ case kEoBBaseMagicStrings4:
+ return "kEoBBaseMagicStrings4";
+ case kEoBBaseMagicStrings6:
+ return "kEoBBaseMagicStrings6";
+ case kEoBBaseMagicStrings7:
+ return "kEoBBaseMagicStrings7";
+ case kEoBBaseMagicStrings8:
+ return "kEoBBaseMagicStrings8";
+ case kEoBBaseExpObjectTlMode:
+ return "kEoBBaseExpObjectTlMode";
+ case kEoBBaseExpObjectTblIndex:
+ return "kEoBBaseExpObjectTblIndex";
+ case kEoBBaseExpObjectShpStart:
+ return "kEoBBaseExpObjectShpStart";
+ case kEoBBaseExpObjectTbl1:
+ return "kEoBBaseExpObjectTbl1";
+ case kEoBBaseExpObjectTbl2:
+ return "kEoBBaseExpObjectTbl2";
+ case kEoBBaseExpObjectTbl3:
+ return "kEoBBaseExpObjectTbl3";
+ case kEoBBaseExpObjectY:
+ return "kEoBBaseExpObjectY";
+ case kEoBBaseSparkDefSteps:
+ return "kEoBBaseSparkDefSteps";
+ case kEoBBaseSparkDefSubSteps:
+ return "kEoBBaseSparkDefSubSteps";
+ case kEoBBaseSparkDefShift:
+ return "kEoBBaseSparkDefShift";
+ case kEoBBaseSparkDefAdd:
+ return "kEoBBaseSparkDefAdd";
+ case kEoBBaseSparkDefX:
+ return "kEoBBaseSparkDefX";
+ case kEoBBaseSparkDefY:
+ return "kEoBBaseSparkDefY";
+ case kEoBBaseSparkOfFlags1:
+ return "kEoBBaseSparkOfFlags1";
+ case kEoBBaseSparkOfFlags2:
+ return "kEoBBaseSparkOfFlags2";
+ case kEoBBaseSparkOfShift:
+ return "kEoBBaseSparkOfShift";
+ case kEoBBaseSparkOfX:
+ return "kEoBBaseSparkOfX";
+ case kEoBBaseSparkOfY:
+ return "kEoBBaseSparkOfY";
+ case kEoBBaseSpellProperties:
+ return "kEoBBaseSpellProperties";
+ case kEoBBaseMagicFlightProps:
+ return "kEoBBaseMagicFlightProps";
+ case kEoBBaseTurnUndeadEffect:
+ return "kEoBBaseTurnUndeadEffect";
+ case kEoBBaseBurningHandsDest:
+ return "kEoBBaseBurningHandsDest";
+ case kEoBBaseConeOfColdDest1:
+ return "kEoBBaseConeOfColdDest1";
+ case kEoBBaseConeOfColdDest2:
+ return "kEoBBaseConeOfColdDest2";
+ case kEoBBaseConeOfColdDest3:
+ return "kEoBBaseConeOfColdDest3";
+ case kEoBBaseConeOfColdDest4:
+ return "kEoBBaseConeOfColdDest4";
+ case kEoBBaseConeOfColdGfxTbl:
+ return "kEoBBaseConeOfColdGfxTbl";
+ case kEoB1MainMenuStrings:
+ return "kEoB1MainMenuStrings";
+ case kEoB1BonusStrings:
+ return "kEoB1BonusStrings";
+ case kEoB1IntroFilesOpening:
+ return "kEoB1IntroFilesOpening";
+ case kEoB1IntroFilesTower:
+ return "kEoB1IntroFilesTower";
+ case kEoB1IntroFilesOrb:
+ return "kEoB1IntroFilesOrb";
+ case kEoB1IntroFilesWdEntry:
+ return "kEoB1IntroFilesWdEntry";
+ case kEoB1IntroFilesKing:
+ return "kEoB1IntroFilesKing";
+ case kEoB1IntroFilesHands:
+ return "kEoB1IntroFilesHands";
+ case kEoB1IntroFilesWdExit:
+ return "kEoB1IntroFilesWdExit";
+ case kEoB1IntroFilesTunnel:
+ return "kEoB1IntroFilesTunnel";
+ case kEoB1IntroOpeningFrmDelay:
+ return "kEoB1IntroOpeningFrmDelay";
+ case kEoB1IntroWdEncodeX:
+ return "kEoB1IntroWdEncodeX";
+ case kEoB1IntroWdEncodeY:
+ return "kEoB1IntroWdEncodeY";
+ case kEoB1IntroWdEncodeWH:
+ return "kEoB1IntroWdEncodeWH";
+ case kEoB1IntroWdDsX:
+ return "kEoB1IntroWdDsX";
+ case kEoB1IntroWdDsY:
+ return "kEoB1IntroWdDsY";
+ case kEoB1IntroTvlX1:
+ return "kEoB1IntroTvlX1";
+ case kEoB1IntroTvlY1:
+ return "kEoB1IntroTvlY1";
+ case kEoB1IntroTvlX2:
+ return "kEoB1IntroTvlX2";
+ case kEoB1IntroTvlY2:
+ return "kEoB1IntroTvlY2";
+ case kEoB1IntroTvlW:
+ return "kEoB1IntroTvlW";
+ case kEoB1IntroTvlH:
+ return "kEoB1IntroTvlH";
+ case kEoB1DoorShapeDefs:
+ return "kEoB1DoorShapeDefs";
+ case kEoB1DoorSwitchCoords:
+ return "kEoB1DoorSwitchCoords";
+ case kEoB1MonsterProperties:
+ return "kEoB1MonsterProperties";
+ case kEoB1EnemyMageSpellList:
+ return "kEoB1EnemyMageSpellList";
+ case kEoB1EnemyMageSfx:
+ return "kEoB1EnemyMageSfx";
+ case kEoB1BeholderSpellList:
+ return "kEoB1BeholderSpellList";
+ case kEoB1BeholderSfx:
+ return "kEoB1BeholderSfx";
+ case kEoB1TurnUndeadString:
+ return "kEoB1TurnUndeadString";
+ case kEoB1CgaMappingDefault:
+ return "kEoB1CgaMappingDefault";
+ case kEoB1CgaMappingAlt:
+ return "kEoB1CgaMappingAlt";
+ case kEoB1CgaMappingInv:
+ return "kEoB1CgaMappingInv";
+ case kEoB1CgaMappingItemsL:
+ return "kEoB1CgaMappingItemsL";
+ case kEoB1CgaMappingItemsS:
+ return "kEoB1CgaMappingItemsS";
+ case kEoB1CgaMappingThrown:
+ return "kEoB1CgaMappingThrown";
+ case kEoB1CgaMappingIcons:
+ return "kEoB1CgaMappingIcons";
+ case kEoB1CgaMappingDeco:
+ return "kEoB1CgaMappingDeco";
+ case kEoB1CgaLevelMappingIndex:
+ return "kEoB1CgaLevelMappingIndex";
+ case kEoB1CgaMappingLevel0:
+ return "kEoB1CgaMappingLevel0";
+ case kEoB1CgaMappingLevel1:
+ return "kEoB1CgaMappingLevel1";
+ case kEoB1CgaMappingLevel2:
+ return "kEoB1CgaMappingLevel2";
+ case kEoB1CgaMappingLevel3:
+ return "kEoB1CgaMappingLevel3";
+ case kEoB1CgaMappingLevel4:
+ return "kEoB1CgaMappingLevel4";
+ case kEoB1NpcShpData:
+ return "kEoB1NpcShpData";
+ case kEoB1NpcSubShpIndex1:
+ return "kEoB1NpcSubShpIndex1";
+ case kEoB1NpcSubShpIndex2:
+ return "kEoB1NpcSubShpIndex2";
+ case kEoB1NpcSubShpY:
+ return "kEoB1NpcSubShpY";
+ case kEoB1Npc0Strings:
+ return "kEoB1Npc0Strings";
+ case kEoB1Npc11Strings:
+ return "kEoB1Npc11Strings";
+ case kEoB1Npc12Strings:
+ return "kEoB1Npc12Strings";
+ case kEoB1Npc21Strings:
+ return "kEoB1Npc21Strings";
+ case kEoB1Npc22Strings:
+ return "kEoB1Npc22Strings";
+ case kEoB1Npc31Strings:
+ return "kEoB1Npc31Strings";
+ case kEoB1Npc32Strings:
+ return "kEoB1Npc32Strings";
+ case kEoB1Npc4Strings:
+ return "kEoB1Npc4Strings";
+ case kEoB1Npc5Strings:
+ return "kEoB1Npc5Strings";
+ case kEoB1Npc6Strings:
+ return "kEoB1Npc6Strings";
+ case kEoB1Npc7Strings:
+ return "kEoB1Npc7Strings";
+ case kEoB2MainMenuStrings:
+ return "kEoB2MainMenuStrings";
+ case kEoB2TransferPortraitFrames:
+ return "kEoB2TransferPortraitFrames";
+ case kEoB2TransferConvertTable:
+ return "kEoB2TransferConvertTable";
+ case kEoB2TransferItemTable:
+ return "kEoB2TransferItemTable";
+ case kEoB2TransferExpTable:
+ return "kEoB2TransferExpTable";
+ case kEoB2TransferStrings1:
+ return "kEoB2TransferStrings1";
+ case kEoB2TransferStrings2:
+ return "kEoB2TransferStrings2";
+ case kEoB2TransferLabels:
+ return "kEoB2TransferLabels";
+ case kEoB2IntroStrings:
+ return "kEoB2IntroStrings";
+ case kEoB2IntroCPSFiles:
+ return "kEoB2IntroCPSFiles";
+ case kEob2IntroAnimData00:
+ return "kEob2IntroAnimData00";
+ case kEob2IntroAnimData01:
+ return "kEob2IntroAnimData01";
+ case kEob2IntroAnimData02:
+ return "kEob2IntroAnimData02";
+ case kEob2IntroAnimData03:
+ return "kEob2IntroAnimData03";
+ case kEob2IntroAnimData04:
+ return "kEob2IntroAnimData04";
+ case kEob2IntroAnimData05:
+ return "kEob2IntroAnimData05";
+ case kEob2IntroAnimData06:
+ return "kEob2IntroAnimData06";
+ case kEob2IntroAnimData07:
+ return "kEob2IntroAnimData07";
+ case kEob2IntroAnimData08:
+ return "kEob2IntroAnimData08";
+ case kEob2IntroAnimData09:
+ return "kEob2IntroAnimData09";
+ case kEob2IntroAnimData10:
+ return "kEob2IntroAnimData10";
+ case kEob2IntroAnimData11:
+ return "kEob2IntroAnimData11";
+ case kEob2IntroAnimData12:
+ return "kEob2IntroAnimData12";
+ case kEob2IntroAnimData13:
+ return "kEob2IntroAnimData13";
+ case kEob2IntroAnimData14:
+ return "kEob2IntroAnimData14";
+ case kEob2IntroAnimData15:
+ return "kEob2IntroAnimData15";
+ case kEob2IntroAnimData16:
+ return "kEob2IntroAnimData16";
+ case kEob2IntroAnimData17:
+ return "kEob2IntroAnimData17";
+ case kEob2IntroAnimData18:
+ return "kEob2IntroAnimData18";
+ case kEob2IntroAnimData19:
+ return "kEob2IntroAnimData19";
+ case kEob2IntroAnimData20:
+ return "kEob2IntroAnimData20";
+ case kEob2IntroAnimData21:
+ return "kEob2IntroAnimData21";
+ case kEob2IntroAnimData22:
+ return "kEob2IntroAnimData22";
+ case kEob2IntroAnimData23:
+ return "kEob2IntroAnimData23";
+ case kEob2IntroAnimData24:
+ return "kEob2IntroAnimData24";
+ case kEob2IntroAnimData25:
+ return "kEob2IntroAnimData25";
+ case kEob2IntroAnimData26:
+ return "kEob2IntroAnimData26";
+ case kEob2IntroAnimData27:
+ return "kEob2IntroAnimData27";
+ case kEob2IntroAnimData28:
+ return "kEob2IntroAnimData28";
+ case kEob2IntroAnimData29:
+ return "kEob2IntroAnimData29";
+ case kEob2IntroAnimData30:
+ return "kEob2IntroAnimData30";
+ case kEob2IntroAnimData31:
+ return "kEob2IntroAnimData31";
+ case kEob2IntroAnimData32:
+ return "kEob2IntroAnimData32";
+ case kEob2IntroAnimData33:
+ return "kEob2IntroAnimData33";
+ case kEob2IntroAnimData34:
+ return "kEob2IntroAnimData34";
+ case kEob2IntroAnimData35:
+ return "kEob2IntroAnimData35";
+ case kEob2IntroAnimData36:
+ return "kEob2IntroAnimData36";
+ case kEob2IntroAnimData37:
+ return "kEob2IntroAnimData37";
+ case kEob2IntroAnimData38:
+ return "kEob2IntroAnimData38";
+ case kEob2IntroAnimData39:
+ return "kEob2IntroAnimData39";
+ case kEob2IntroAnimData40:
+ return "kEob2IntroAnimData40";
+ case kEob2IntroAnimData41:
+ return "kEob2IntroAnimData41";
+ case kEob2IntroAnimData42:
+ return "kEob2IntroAnimData42";
+ case kEob2IntroAnimData43:
+ return "kEob2IntroAnimData43";
+ case kEoB2IntroShapes00:
+ return "kEoB2IntroShapes00";
+ case kEoB2IntroShapes01:
+ return "kEoB2IntroShapes01";
+ case kEoB2IntroShapes04:
+ return "kEoB2IntroShapes04";
+ case kEoB2IntroShapes07:
+ return "kEoB2IntroShapes07";
+ case kEoB2FinaleStrings:
+ return "kEoB2FinaleStrings";
+ case kEoB2CreditsData:
+ return "kEoB2CreditsData";
+ case kEoB2FinaleCPSFiles:
+ return "kEoB2FinaleCPSFiles";
+ case kEob2FinaleAnimData00:
+ return "kEob2FinaleAnimData00";
+ case kEob2FinaleAnimData01:
+ return "kEob2FinaleAnimData01";
+ case kEob2FinaleAnimData02:
+ return "kEob2FinaleAnimData02";
+ case kEob2FinaleAnimData03:
+ return "kEob2FinaleAnimData03";
+ case kEob2FinaleAnimData04:
+ return "kEob2FinaleAnimData04";
+ case kEob2FinaleAnimData05:
+ return "kEob2FinaleAnimData05";
+ case kEob2FinaleAnimData06:
+ return "kEob2FinaleAnimData06";
+ case kEob2FinaleAnimData07:
+ return "kEob2FinaleAnimData07";
+ case kEob2FinaleAnimData08:
+ return "kEob2FinaleAnimData08";
+ case kEob2FinaleAnimData09:
+ return "kEob2FinaleAnimData09";
+ case kEob2FinaleAnimData10:
+ return "kEob2FinaleAnimData10";
+ case kEob2FinaleAnimData11:
+ return "kEob2FinaleAnimData11";
+ case kEob2FinaleAnimData12:
+ return "kEob2FinaleAnimData12";
+ case kEob2FinaleAnimData13:
+ return "kEob2FinaleAnimData13";
+ case kEob2FinaleAnimData14:
+ return "kEob2FinaleAnimData14";
+ case kEob2FinaleAnimData15:
+ return "kEob2FinaleAnimData15";
+ case kEob2FinaleAnimData16:
+ return "kEob2FinaleAnimData16";
+ case kEob2FinaleAnimData17:
+ return "kEob2FinaleAnimData17";
+ case kEob2FinaleAnimData18:
+ return "kEob2FinaleAnimData18";
+ case kEob2FinaleAnimData19:
+ return "kEob2FinaleAnimData19";
+ case kEob2FinaleAnimData20:
+ return "kEob2FinaleAnimData20";
+ case kEoB2FinaleShapes00:
+ return "kEoB2FinaleShapes00";
+ case kEoB2FinaleShapes03:
+ return "kEoB2FinaleShapes03";
+ case kEoB2FinaleShapes07:
+ return "kEoB2FinaleShapes07";
+ case kEoB2FinaleShapes09:
+ return "kEoB2FinaleShapes09";
+ case kEoB2FinaleShapes10:
+ return "kEoB2FinaleShapes10";
+ case kEoB2NpcShapeData:
+ return "kEoB2NpcShapeData";
+ case kEoBBaseClassModifierFlags:
+ return "kEoBBaseClassModifierFlags";
+ case kEoBBaseMonsterStepTable01:
+ return "kEoBBaseMonsterStepTable01";
+ case kEoBBaseMonsterStepTable02:
+ return "kEoBBaseMonsterStepTable02";
+ case kEoBBaseMonsterStepTable1:
+ return "kEoBBaseMonsterStepTable1";
+ case kEoBBaseMonsterStepTable2:
+ return "kEoBBaseMonsterStepTable2";
+ case kEoBBaseMonsterStepTable3:
+ return "kEoBBaseMonsterStepTable3";
+ case kEoBBaseMonsterCloseAttPosTable1:
+ return "kEoBBaseMonsterCloseAttPosTable1";
+ case kEoBBaseMonsterCloseAttPosTable21:
+ return "kEoBBaseMonsterCloseAttPosTable21";
+ case kEoBBaseMonsterCloseAttPosTable22:
+ return "kEoBBaseMonsterCloseAttPosTable22";
+ case kEoBBaseMonsterCloseAttUnkTable:
+ return "kEoBBaseMonsterCloseAttUnkTable";
+ case kEoBBaseMonsterCloseAttChkTable1:
+ return "kEoBBaseMonsterCloseAttChkTable1";
+ case kEoBBaseMonsterCloseAttChkTable2:
+ return "kEoBBaseMonsterCloseAttChkTable2";
+ case kEoBBaseMonsterCloseAttDstTable1:
+ return "kEoBBaseMonsterCloseAttDstTable1";
+ case kEoBBaseMonsterCloseAttDstTable2:
+ return "kEoBBaseMonsterCloseAttDstTable2";
+ case kEoBBaseMonsterProximityTable:
+ return "kEoBBaseMonsterProximityTable";
+ case kEoBBaseFindBlockMonstersTable:
+ return "kEoBBaseFindBlockMonstersTable";
+ case kEoBBaseMonsterDirChangeTable:
+ return "kEoBBaseMonsterDirChangeTable";
+ case kEoBBaseMonsterDistAttStrings:
+ return "kEoBBaseMonsterDistAttStrings";
+ case kEoBBaseEncodeMonsterDefs:
+ return "kEoBBaseEncodeMonsterDefs";
+ case kEoBBaseNpcPresets:
+ return "kEoBBaseNpcPresets";
+ case kEoB2Npc1Strings:
+ return "kEoB2Npc1Strings";
+ case kEoB2Npc2Strings:
+ return "kEoB2Npc2Strings";
+ case kEoB2MonsterDustStrings:
+ return "kEoB2MonsterDustStrings";
+ case kEoB2DreamSteps:
+ return "kEoB2DreamSteps";
+ case kEoB2KheldranStrings:
+ return "kEoB2KheldranStrings";
+ case kEoB2HornStrings:
+ return "kEoB2HornStrings";
+ case kEoB2HornSounds:
+ return "kEoB2HornSounds";
+ case kEoB2WallOfForceDsX:
+ return "kEoB2WallOfForceDsX";
+ case kEoB2WallOfForceDsY:
+ return "kEoB2WallOfForceDsY";
+ case kEoB2WallOfForceNumW:
+ return "kEoB2WallOfForceNumW";
+ case kEoB2WallOfForceNumH:
+ return "kEoB2WallOfForceNumH";
+ case kEoB2WallOfForceShpId:
+ return "kEoB2WallOfForceShpId";
+ case kLoLIngamePakFiles:
+ return "kLoLIngamePakFiles";
+ case kLoLCharacterDefs:
+ return "kLoLCharacterDefs";
+ case kLoLIngameSfxFiles:
+ return "kLoLIngameSfxFiles";
+ case kLoLIngameSfxIndex:
+ return "kLoLIngameSfxIndex";
+ case kLoLMusicTrackMap:
+ return "kLoLMusicTrackMap";
+ case kLoLIngameGMSfxIndex:
+ return "kLoLIngameGMSfxIndex";
+ case kLoLIngameMT32SfxIndex:
+ return "kLoLIngameMT32SfxIndex";
+ case kLoLIngamePcSpkSfxIndex:
+ return "kLoLIngamePcSpkSfxIndex";
+ case kLoLSpellProperties:
+ return "kLoLSpellProperties";
+ case kLoLGameShapeMap:
+ return "kLoLGameShapeMap";
+ case kLoLSceneItemOffs:
+ return "kLoLSceneItemOffs";
+ case kLoLCharInvIndex:
+ return "kLoLCharInvIndex";
+ case kLoLCharInvDefs:
+ return "kLoLCharInvDefs";
+ case kLoLCharDefsMan:
+ return "kLoLCharDefsMan";
+ case kLoLCharDefsWoman:
+ return "kLoLCharDefsWoman";
+ case kLoLCharDefsKieran:
+ return "kLoLCharDefsKieran";
+ case kLoLCharDefsAkshel:
+ return "kLoLCharDefsAkshel";
+ case kLoLExpRequirements:
+ return "kLoLExpRequirements";
+ case kLoLMonsterModifiers:
+ return "kLoLMonsterModifiers";
+ case kLoLMonsterShiftOffsets:
+ return "kLoLMonsterShiftOffsets";
+ case kLoLMonsterDirFlags:
+ return "kLoLMonsterDirFlags";
+ case kLoLMonsterScaleY:
+ return "kLoLMonsterScaleY";
+ case kLoLMonsterScaleX:
+ return "kLoLMonsterScaleX";
+ case kLoLMonsterScaleWH:
+ return "kLoLMonsterScaleWH";
+ case kLoLFlyingObjectShp:
+ return "kLoLFlyingObjectShp";
+ case kLoLInventoryDesc:
+ return "kLoLInventoryDesc";
+ case kLoLLevelShpList:
+ return "kLoLLevelShpList";
+ case kLoLLevelDatList:
+ return "kLoLLevelDatList";
+ case kLoLCompassDefs:
+ return "kLoLCompassDefs";
+ case kLoLItemPrices:
+ return "kLoLItemPrices";
+ case kLoLStashSetup:
+ return "kLoLStashSetup";
+ case kLoLDscWalls:
+ return "kLoLDscWalls";
+ case kRpgCommonDscShapeIndex:
+ return "kRpgCommonDscShapeIndex";
+ case kLoLDscOvlMap:
+ return "kLoLDscOvlMap";
+ case kLoLDscScaleWidthData:
+ return "kLoLDscScaleWidthData";
+ case kLoLDscScaleHeightData:
+ return "kLoLDscScaleHeightData";
+ case kRpgCommonDscX:
+ return "kRpgCommonDscX";
+ case kLoLDscY:
+ return "kLoLDscY";
+ case kRpgCommonDscTileIndex:
+ return "kRpgCommonDscTileIndex";
+ case kRpgCommonDscUnk2:
+ return "kRpgCommonDscUnk2";
+ case kRpgCommonDscDoorShapeIndex:
+ return "kRpgCommonDscDoorShapeIndex";
+ case kRpgCommonDscDimData1:
+ return "kRpgCommonDscDimData1";
+ case kRpgCommonDscDimData2:
+ return "kRpgCommonDscDimData2";
+ case kRpgCommonDscBlockMap:
+ return "kRpgCommonDscBlockMap";
+ case kRpgCommonDscDimMap:
+ return "kRpgCommonDscDimMap";
+ case kLoLDscOvlIndex:
+ return "kLoLDscOvlIndex";
+ case kRpgCommonDscBlockIndex:
+ return "kRpgCommonDscBlockIndex";
+ case kRpgCommonDscDoorY2:
+ return "kRpgCommonDscDoorY2";
+ case kRpgCommonDscDoorFrameY1:
+ return "kRpgCommonDscDoorFrameY1";
+ case kRpgCommonDscDoorFrameY2:
+ return "kRpgCommonDscDoorFrameY2";
+ case kRpgCommonDscDoorFrameIndex1:
+ return "kRpgCommonDscDoorFrameIndex1";
+ case kRpgCommonDscDoorFrameIndex2:
+ return "kRpgCommonDscDoorFrameIndex2";
+ case kLoLDscDoorScale:
+ return "kLoLDscDoorScale";
+ case kLoLDscDoor4:
+ return "kLoLDscDoor4";
+ case kLoLDscDoorX:
+ return "kLoLDscDoorX";
+ case kLoLDscDoorY:
+ return "kLoLDscDoorY";
+ case kLoLScrollXTop:
+ return "kLoLScrollXTop";
+ case kLoLScrollYTop:
+ return "kLoLScrollYTop";
+ case kLoLScrollXBottom:
+ return "kLoLScrollXBottom";
+ case kLoLScrollYBottom:
+ return "kLoLScrollYBottom";
+ case kLoLButtonDefs:
+ return "kLoLButtonDefs";
+ case kLoLButtonList1:
+ return "kLoLButtonList1";
+ case kLoLButtonList2:
+ return "kLoLButtonList2";
+ case kLoLButtonList3:
+ return "kLoLButtonList3";
+ case kLoLButtonList4:
+ return "kLoLButtonList4";
+ case kLoLButtonList5:
+ return "kLoLButtonList5";
+ case kLoLButtonList6:
+ return "kLoLButtonList6";
+ case kLoLButtonList7:
+ return "kLoLButtonList7";
+ case kLoLButtonList8:
+ return "kLoLButtonList8";
+ case kLoLLegendData:
+ return "kLoLLegendData";
+ case kLoLMapCursorOvl:
+ return "kLoLMapCursorOvl";
+ case kLoLMapStringId:
+ return "kLoLMapStringId";
+ case kLoLSpellbookAnim:
+ return "kLoLSpellbookAnim";
+ case kLoLSpellbookCoords:
+ return "kLoLSpellbookCoords";
+ case kLoLHealShapeFrames:
+ return "kLoLHealShapeFrames";
+ case kLoLLightningDefs:
+ return "kLoLLightningDefs";
+ case kLoLFireballCoords:
+ return "kLoLFireballCoords";
+ case kLoLHistory:
+ return "kLoLHistory";
default:
return "Unknown";
}
diff --git a/devtools/create_kyradat/create_kyradat.h b/devtools/create_kyradat/create_kyradat.h
index cabf65706f..c2a69cfd79 100644
--- a/devtools/create_kyradat/create_kyradat.h
+++ b/devtools/create_kyradat/create_kyradat.h
@@ -179,89 +179,488 @@ enum kExtractID {
k3ItemMagicTable,
k3ItemStringMap,
- kLolIngamePakFiles,
- kLolCharacterDefs,
- kLolIngameSfxFiles,
- kLolIngameSfxIndex,
- kLolMusicTrackMap,
- kLolIngameGMSfxIndex,
- kLolIngameMT32SfxIndex,
- kLolIngamePcSpkSfxIndex,
- kLolSpellProperties,
- kLolGameShapeMap,
- kLolSceneItemOffs,
- kLolCharInvIndex,
- kLolCharInvDefs,
- kLolCharDefsMan,
- kLolCharDefsWoman,
- kLolCharDefsKieran,
- kLolCharDefsAkshel,
- kLolExpRequirements,
- kLolMonsterModifiers,
- kLolMonsterShiftOffsets,
- kLolMonsterDirFlags,
- kLolMonsterScaleY,
- kLolMonsterScaleX,
- kLolMonsterScaleWH,
- kLolFlyingObjectShp,
- kLolInventoryDesc,
-
- kLolLevelShpList,
- kLolLevelDatList,
- kLolCompassDefs,
- kLolItemPrices,
- kLolStashSetup,
-
- kLolDscUnk1,
- kLolDscShapeIndex,
- kLolDscOvlMap,
- kLolDscScaleWidthData,
- kLolDscScaleHeightData,
- kLolDscX,
- kLolDscY,
- kLolDscTileIndex,
- kLolDscUnk2,
- kLolDscDoorShapeIndex,
- kLolDscDimData1,
- kLolDscDimData2,
- kLolDscBlockMap,
- kLolDscDimMap,
- kLolDscDoor1,
- kLolDscDoorScale,
- kLolDscDoor4,
- kLolDscDoorX,
- kLolDscDoorY,
- kLolDscOvlIndex,
- kLolDscBlockIndex,
-
- kLolScrollXTop,
- kLolScrollYTop,
- kLolScrollXBottom,
- kLolScrollYBottom,
-
- kLolButtonDefs,
- kLolButtonList1,
- kLolButtonList2,
- kLolButtonList3,
- kLolButtonList4,
- kLolButtonList5,
- kLolButtonList6,
- kLolButtonList7,
- kLolButtonList8,
-
- kLolLegendData,
- kLolMapCursorOvl,
- kLolMapStringId,
-
- kLolSpellbookAnim,
- kLolSpellbookCoords,
- kLolHealShapeFrames,
- kLolLightningDefs,
- kLolFireballCoords,
-
- kLolCredits,
-
- kLolHistory,
+ kRpgCommonMoreStrings,
+ kRpgCommonDscShapeIndex,
+ kRpgCommonDscX,
+ kRpgCommonDscTileIndex,
+ kRpgCommonDscUnk2,
+ kRpgCommonDscDoorShapeIndex,
+ kRpgCommonDscDimData1,
+ kRpgCommonDscDimData2,
+ kRpgCommonDscBlockMap,
+ kRpgCommonDscDimMap,
+ kRpgCommonDscDoorY2,
+ kRpgCommonDscDoorFrameY1,
+ kRpgCommonDscDoorFrameY2,
+ kRpgCommonDscDoorFrameIndex1,
+ kRpgCommonDscDoorFrameIndex2,
+ kRpgCommonDscBlockIndex,
+
+ kEoBBaseChargenStrings1,
+ kEoBBaseChargenStrings2,
+ kEoBBaseChargenStartLevels,
+ kEoBBaseChargenStatStrings,
+ kEoBBaseChargenRaceSexStrings,
+ kEoBBaseChargenClassStrings,
+ kEoBBaseChargenAlignmentStrings,
+ kEoBBaseChargenEnterGameStrings,
+ kEoBBaseChargenClassMinStats,
+ kEoBBaseChargenRaceMinStats,
+ kEoBBaseChargenRaceMaxStats,
+
+ kEoBBaseSaveThrowTable1,
+ kEoBBaseSaveThrowTable2,
+ kEoBBaseSaveThrowTable3,
+ kEoBBaseSaveThrowTable4,
+ kEoBBaseSaveThrwLvlIndex,
+ kEoBBaseSaveThrwModDiv,
+ kEoBBaseSaveThrwModExt,
+
+ kEoBBasePryDoorStrings,
+ kEoBBaseWarningStrings,
+
+ kEoBBaseItemSuffixStringsRings,
+ kEoBBaseItemSuffixStringsPotions,
+ kEoBBaseItemSuffixStringsWands,
+
+ kEoBBaseRipItemStrings,
+ kEoBBaseCursedString,
+ kEoBBaseEnchantedString,
+ kEoBBaseMagicObjectStrings,
+ kEoBBaseMagicObject5String,
+ kEoBBasePatternSuffix,
+ kEoBBasePatternGrFix1,
+ kEoBBasePatternGrFix2,
+ kEoBBaseValidateArmorString,
+ kEoBBaseValidateCursedString,
+ kEoBBaseValidateNoDropString,
+ kEoBBasePotionStrings,
+ kEoBBaseWandString,
+ kEoBBaseItemMisuseStrings,
+
+ kEoBBaseTakenStrings,
+ kEoBBasePotionEffectStrings,
+
+ kEoBBaseYesNoStrings,
+ kEoBBaseNpcMaxStrings,
+ kEoBBaseOkStrings,
+ kEoBBaseNpcJoinStrings,
+ kEoBBaseCancelStrings,
+ kEoBBaseAbortStrings,
+
+ kEoBBaseMenuStringsMain,
+ kEoBBaseMenuStringsSaveLoad,
+ kEoBBaseMenuStringsOnOff,
+ kEoBBaseMenuStringsSpells,
+ kEoBBaseMenuStringsRest,
+ kEoBBaseMenuStringsDrop,
+ kEoBBaseMenuStringsExit,
+ kEoBBaseMenuStringsStarve,
+ kEoBBaseMenuStringsScribe,
+ kEoBBaseMenuStringsDrop2,
+ kEoBBaseMenuStringsHead,
+ kEoBBaseMenuStringsPoison,
+ kEoBBaseMenuStringsMgc,
+ kEoBBaseMenuStringsPrefs,
+ kEoBBaseMenuStringsRest2,
+ kEoBBaseMenuStringsRest3,
+ kEoBBaseMenuStringsRest4,
+ kEoBBaseMenuStringsDefeat,
+ kEoBBaseMenuStringsTransfer,
+ kEoBBaseMenuStringsSpec,
+ kEoBBaseMenuStringsSpellNo,
+ kEoBBaseMenuYesNoStrings,
+
+ kEoBBaseSpellLevelsMage,
+ kEoBBaseSpellLevelsCleric,
+ kEoBBaseNumSpellsCleric,
+ kEoBBaseNumSpellsWisAdj,
+ kEoBBaseNumSpellsPal,
+ kEoBBaseNumSpellsMage,
+
+ kEoBBaseCharGuiStringsHp,
+ kEoBBaseCharGuiStringsWp1,
+ kEoBBaseCharGuiStringsWp2,
+ kEoBBaseCharGuiStringsWr,
+ kEoBBaseCharGuiStringsSt1,
+ kEoBBaseCharGuiStringsSt2,
+ kEoBBaseCharGuiStringsIn,
+
+ kEoBBaseCharStatusStrings7,
+ kEoBBaseCharStatusStrings81,
+ kEoBBaseCharStatusStrings82,
+ kEoBBaseCharStatusStrings9,
+ kEoBBaseCharStatusStrings12,
+ kEoBBaseCharStatusStrings131,
+ kEoBBaseCharStatusStrings132,
+
+ kEoBBaseLevelGainStrings,
+ kEoBBaseExperienceTable0,
+ kEoBBaseExperienceTable1,
+ kEoBBaseExperienceTable2,
+ kEoBBaseExperienceTable3,
+ kEoBBaseExperienceTable4,
+
+ kEoBBaseClassModifierFlags,
+
+ kEoBBaseMonsterStepTable01,
+ kEoBBaseMonsterStepTable02,
+ kEoBBaseMonsterStepTable1,
+ kEoBBaseMonsterStepTable2,
+ kEoBBaseMonsterStepTable3,
+ kEoBBaseMonsterCloseAttPosTable1,
+ kEoBBaseMonsterCloseAttPosTable21,
+ kEoBBaseMonsterCloseAttPosTable22,
+ kEoBBaseMonsterCloseAttUnkTable,
+ kEoBBaseMonsterCloseAttChkTable1,
+ kEoBBaseMonsterCloseAttChkTable2,
+ kEoBBaseMonsterCloseAttDstTable1,
+ kEoBBaseMonsterCloseAttDstTable2,
+
+ kEoBBaseMonsterProximityTable,
+ kEoBBaseFindBlockMonstersTable,
+ kEoBBaseMonsterDirChangeTable,
+ kEoBBaseMonsterDistAttStrings,
+
+ kEoBBaseEncodeMonsterDefs,
+ kEoBBaseNpcPresets,
+
+ kEoBBaseWllFlagPreset,
+ kEoBBaseDscShapeCoords,
+
+ kEoBBaseDscDoorScaleOffs,
+ kEoBBaseDscDoorScaleMult1,
+ kEoBBaseDscDoorScaleMult2,
+ kEoBBaseDscDoorScaleMult3,
+ kEoBBaseDscDoorScaleMult4,
+ kEoBBaseDscDoorScaleMult5,
+ kEoBBaseDscDoorScaleMult6,
+ kEoBBaseDscDoorType5Offs,
+ kEoBBaseDscDoorXE,
+ kEoBBaseDscDoorY1,
+ kEoBBaseDscDoorY3,
+ kEoBBaseDscDoorY4,
+ kEoBBaseDscDoorY5,
+ kEoBBaseDscDoorY6,
+ kEoBBaseDscDoorY7,
+ kEoBBaseDscDoorCoordsExt,
+
+ kEoBBaseDscItemPosIndex,
+ kEoBBaseDscItemShpX,
+ kEoBBaseDscItemPosUnk,
+ kEoBBaseDscItemTileIndex,
+ kEoBBaseDscItemShapeMap,
+
+ kEoBBaseDscMonsterFrmOffsTbl1,
+ kEoBBaseDscMonsterFrmOffsTbl2,
+
+ kEoBBaseInvSlotX,
+ kEoBBaseInvSlotY,
+ kEoBBaseSlotValidationFlags,
+
+ kEoBBaseProjectileWeaponTypes,
+ kEoBBaseWandTypes,
+
+ kEoBBaseDrawObjPosIndex,
+ kEoBBaseFlightObjFlipIndex,
+ kEoBBaseFlightObjShpMap,
+ kEoBBaseFlightObjSclIndex,
+
+ kEoBBaseDscTelptrShpCoords,
+
+ kEoBBasePortalSeqData,
+ kEoBBaseManDef,
+ kEoBBaseManWord,
+ kEoBBaseManPrompt,
+
+ kEoBBaseBookNumbers,
+ kEoBBaseMageSpellsList,
+ kEoBBaseClericSpellsList,
+ kEoBBaseSpellNames,
+ kEoBBaseMagicStrings1,
+ kEoBBaseMagicStrings2,
+ kEoBBaseMagicStrings3,
+ kEoBBaseMagicStrings4,
+ kEoBBaseMagicStrings6,
+ kEoBBaseMagicStrings7,
+ kEoBBaseMagicStrings8,
+
+ kEoBBaseExpObjectTlMode,
+ kEoBBaseExpObjectTblIndex,
+ kEoBBaseExpObjectShpStart,
+ kEoBBaseExpObjectTbl1,
+ kEoBBaseExpObjectTbl2,
+ kEoBBaseExpObjectTbl3,
+ kEoBBaseExpObjectY,
+
+ kEoBBaseSparkDefSteps,
+ kEoBBaseSparkDefSubSteps,
+ kEoBBaseSparkDefShift,
+ kEoBBaseSparkDefAdd,
+ kEoBBaseSparkDefX,
+ kEoBBaseSparkDefY,
+ kEoBBaseSparkOfFlags1,
+ kEoBBaseSparkOfFlags2,
+ kEoBBaseSparkOfShift,
+ kEoBBaseSparkOfX,
+ kEoBBaseSparkOfY,
+
+ kEoBBaseSpellProperties,
+ kEoBBaseMagicFlightProps,
+ kEoBBaseTurnUndeadEffect,
+ kEoBBaseBurningHandsDest,
+ kEoBBaseConeOfColdDest1,
+ kEoBBaseConeOfColdDest2,
+ kEoBBaseConeOfColdDest3,
+ kEoBBaseConeOfColdDest4,
+ kEoBBaseConeOfColdGfxTbl,
+
+ kEoB1MainMenuStrings,
+ kEoB1BonusStrings,
+
+ kEoB1IntroFilesOpening,
+ kEoB1IntroFilesTower,
+ kEoB1IntroFilesOrb,
+ kEoB1IntroFilesWdEntry,
+ kEoB1IntroFilesKing,
+ kEoB1IntroFilesHands,
+ kEoB1IntroFilesWdExit,
+ kEoB1IntroFilesTunnel,
+ kEoB1IntroOpeningFrmDelay,
+ kEoB1IntroWdEncodeX,
+ kEoB1IntroWdEncodeY,
+ kEoB1IntroWdEncodeWH,
+ kEoB1IntroWdDsX,
+ kEoB1IntroWdDsY,
+ kEoB1IntroTvlX1,
+ kEoB1IntroTvlY1,
+ kEoB1IntroTvlX2,
+ kEoB1IntroTvlY2,
+ kEoB1IntroTvlW,
+ kEoB1IntroTvlH,
+
+ kEoB1DoorShapeDefs,
+ kEoB1DoorSwitchShapeDefs,
+ kEoB1DoorSwitchCoords,
+ kEoB1MonsterProperties,
+
+ kEoB1EnemyMageSpellList,
+ kEoB1EnemyMageSfx,
+ kEoB1BeholderSpellList,
+ kEoB1BeholderSfx,
+ kEoB1TurnUndeadString,
+
+ kEoB1CgaMappingDefault,
+ kEoB1CgaMappingAlt,
+ kEoB1CgaMappingInv,
+ kEoB1CgaMappingItemsL,
+ kEoB1CgaMappingItemsS,
+ kEoB1CgaMappingThrown,
+ kEoB1CgaMappingIcons,
+ kEoB1CgaMappingDeco,
+ kEoB1CgaLevelMappingIndex,
+ kEoB1CgaMappingLevel0,
+ kEoB1CgaMappingLevel1,
+ kEoB1CgaMappingLevel2,
+ kEoB1CgaMappingLevel3,
+ kEoB1CgaMappingLevel4,
+
+ kEoB1NpcShpData,
+ kEoB1NpcSubShpIndex1,
+ kEoB1NpcSubShpIndex2,
+ kEoB1NpcSubShpY,
+ kEoB1Npc0Strings,
+ kEoB1Npc11Strings,
+ kEoB1Npc12Strings,
+ kEoB1Npc21Strings,
+ kEoB1Npc22Strings,
+ kEoB1Npc31Strings,
+ kEoB1Npc32Strings,
+ kEoB1Npc4Strings,
+ kEoB1Npc5Strings,
+ kEoB1Npc6Strings,
+ kEoB1Npc7Strings,
+
+ kEoB2MainMenuStrings,
+
+ kEoB2TransferPortraitFrames,
+ kEoB2TransferConvertTable,
+ kEoB2TransferItemTable,
+ kEoB2TransferExpTable,
+ kEoB2TransferStrings1,
+ kEoB2TransferStrings2,
+ kEoB2TransferLabels,
+
+ kEoB2IntroStrings,
+ kEoB2IntroCPSFiles,
+ kEob2IntroAnimData00,
+ kEob2IntroAnimData01,
+ kEob2IntroAnimData02,
+ kEob2IntroAnimData03,
+ kEob2IntroAnimData04,
+ kEob2IntroAnimData05,
+ kEob2IntroAnimData06,
+ kEob2IntroAnimData07,
+ kEob2IntroAnimData08,
+ kEob2IntroAnimData09,
+ kEob2IntroAnimData10,
+ kEob2IntroAnimData11,
+ kEob2IntroAnimData12,
+ kEob2IntroAnimData13,
+ kEob2IntroAnimData14,
+ kEob2IntroAnimData15,
+ kEob2IntroAnimData16,
+ kEob2IntroAnimData17,
+ kEob2IntroAnimData18,
+ kEob2IntroAnimData19,
+ kEob2IntroAnimData20,
+ kEob2IntroAnimData21,
+ kEob2IntroAnimData22,
+ kEob2IntroAnimData23,
+ kEob2IntroAnimData24,
+ kEob2IntroAnimData25,
+ kEob2IntroAnimData26,
+ kEob2IntroAnimData27,
+ kEob2IntroAnimData28,
+ kEob2IntroAnimData29,
+ kEob2IntroAnimData30,
+ kEob2IntroAnimData31,
+ kEob2IntroAnimData32,
+ kEob2IntroAnimData33,
+ kEob2IntroAnimData34,
+ kEob2IntroAnimData35,
+ kEob2IntroAnimData36,
+ kEob2IntroAnimData37,
+ kEob2IntroAnimData38,
+ kEob2IntroAnimData39,
+ kEob2IntroAnimData40,
+ kEob2IntroAnimData41,
+ kEob2IntroAnimData42,
+ kEob2IntroAnimData43,
+ kEoB2IntroShapes00,
+ kEoB2IntroShapes01,
+ kEoB2IntroShapes04,
+ kEoB2IntroShapes07,
+
+ kEoB2FinaleStrings,
+ kEoB2CreditsData,
+ kEoB2FinaleCPSFiles,
+ kEob2FinaleAnimData00,
+ kEob2FinaleAnimData01,
+ kEob2FinaleAnimData02,
+ kEob2FinaleAnimData03,
+ kEob2FinaleAnimData04,
+ kEob2FinaleAnimData05,
+ kEob2FinaleAnimData06,
+ kEob2FinaleAnimData07,
+ kEob2FinaleAnimData08,
+ kEob2FinaleAnimData09,
+ kEob2FinaleAnimData10,
+ kEob2FinaleAnimData11,
+ kEob2FinaleAnimData12,
+ kEob2FinaleAnimData13,
+ kEob2FinaleAnimData14,
+ kEob2FinaleAnimData15,
+ kEob2FinaleAnimData16,
+ kEob2FinaleAnimData17,
+ kEob2FinaleAnimData18,
+ kEob2FinaleAnimData19,
+ kEob2FinaleAnimData20,
+ kEoB2FinaleShapes00,
+ kEoB2FinaleShapes03,
+ kEoB2FinaleShapes07,
+ kEoB2FinaleShapes09,
+ kEoB2FinaleShapes10,
+
+ kEoB2NpcShapeData,
+ kEoB2Npc1Strings,
+ kEoB2Npc2Strings,
+ kEoB2MonsterDustStrings,
+
+ kEoB2DreamSteps,
+ kEoB2KheldranStrings,
+ kEoB2HornStrings,
+ kEoB2HornSounds,
+
+ kEoB2WallOfForceDsX,
+ kEoB2WallOfForceDsY,
+ kEoB2WallOfForceNumW,
+ kEoB2WallOfForceNumH,
+ kEoB2WallOfForceShpId,
+
+ kLoLIngamePakFiles,
+ kLoLCharacterDefs,
+ kLoLIngameSfxFiles,
+ kLoLIngameSfxIndex,
+ kLoLMusicTrackMap,
+ kLoLIngameGMSfxIndex,
+ kLoLIngameMT32SfxIndex,
+ kLoLIngamePcSpkSfxIndex,
+ kLoLSpellProperties,
+ kLoLGameShapeMap,
+ kLoLSceneItemOffs,
+ kLoLCharInvIndex,
+ kLoLCharInvDefs,
+ kLoLCharDefsMan,
+ kLoLCharDefsWoman,
+ kLoLCharDefsKieran,
+ kLoLCharDefsAkshel,
+ kLoLExpRequirements,
+ kLoLMonsterModifiers,
+ kLoLMonsterShiftOffsets,
+ kLoLMonsterDirFlags,
+ kLoLMonsterScaleY,
+ kLoLMonsterScaleX,
+ kLoLMonsterScaleWH,
+ kLoLFlyingObjectShp,
+ kLoLInventoryDesc,
+
+ kLoLLevelShpList,
+ kLoLLevelDatList,
+ kLoLCompassDefs,
+ kLoLItemPrices,
+ kLoLStashSetup,
+
+ kLoLDscWalls,
+ kLoLDscOvlMap,
+ kLoLDscScaleWidthData,
+ kLoLDscScaleHeightData,
+ kLoLDscY,
+
+ kLoLDscDoorScale,
+ kLoLDscDoor4,
+ kLoLDscDoorX,
+ kLoLDscDoorY,
+ kLoLDscOvlIndex,
+
+ kLoLScrollXTop,
+ kLoLScrollYTop,
+ kLoLScrollXBottom,
+ kLoLScrollYBottom,
+
+ kLoLButtonDefs,
+ kLoLButtonList1,
+ kLoLButtonList2,
+ kLoLButtonList3,
+ kLoLButtonList4,
+ kLoLButtonList5,
+ kLoLButtonList6,
+ kLoLButtonList7,
+ kLoLButtonList8,
+
+ kLoLLegendData,
+ kLoLMapCursorOvl,
+ kLoLMapStringId,
+
+ kLoLSpellbookAnim,
+ kLoLSpellbookCoords,
+ kLoLHealShapeFrames,
+ kLoLLightningDefs,
+ kLoLFireballCoords,
+
+ kLoLCredits,
+
+ kLoLHistory,
kMaxResIDs
};
@@ -284,7 +683,9 @@ enum kGame {
kKyra1 = 0,
kKyra2,
kKyra3,
- kLol
+ kLoL,
+ kEoB1,
+ kEoB2
};
struct Game {
diff --git a/devtools/create_kyradat/extract.cpp b/devtools/create_kyradat/extract.cpp
index 371f2f4e2b..86244fce42 100644
--- a/devtools/create_kyradat/extract.cpp
+++ b/devtools/create_kyradat/extract.cpp
@@ -24,6 +24,8 @@
#define FORBIDDEN_SYMBOL_ALLOW_ALL
#include "extract.h"
+#include "common/language.h"
+#include "common/platform.h"
#include <algorithm>
@@ -50,8 +52,11 @@ bool extractRaw16to8(PAKFile &out, const ExtractInformation *info, const byte *d
bool extractMrShapeAnimData(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id);
bool extractRaw16(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id);
bool extractRaw32(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id);
-bool extractLolButtonDefs(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id);
+bool extractLoLButtonDefs(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id);
+bool extractEoB2SeqData(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id);
+bool extractEoB2ShapeData(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id);
+bool extractEoBNpcData(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id);
// Extraction type table
const ExtractType extractTypeTable[] = {
@@ -73,13 +78,17 @@ const ExtractType extractTypeTable[] = {
{ k3TypeRaw16to8, extractRaw16to8 },
{ k3TypeShpData, extractMrShapeAnimData },
- { kLolTypeCharData, extractRaw },
- { kLolTypeSpellData, extractRaw },
- { kLolTypeCompassData, extractRaw16to8 },
- { kLolTypeFlightShpData, extractRaw16to8 },
- { kLolTypeRaw16, extractRaw16 },
- { kLolTypeRaw32, extractRaw32 },
- { kLolTypeButtonDef, extractLolButtonDefs },
+ { kLoLTypeCharData, extractRaw },
+ { kLoLTypeSpellData, extractRaw },
+ { kLoLTypeCompassData, extractRaw16to8 },
+ { kLoLTypeFlightShpData, extractRaw16to8 },
+ { kLoLTypeRaw16, extractRaw16 },
+ { kLoLTypeRaw32, extractRaw32 },
+ { kLoLTypeButtonDef, extractLoLButtonDefs },
+
+ { kEoB2TypeSeqData, extractEoB2SeqData },
+ { kEoB2TypeShapeData, extractEoB2ShapeData },
+ { kEoBTypeNpcData, extractEoBNpcData },
{ -1, 0 }
};
@@ -104,13 +113,16 @@ const TypeTable typeTable[] = {
{ k2TypeSfxList, 0 },
{ k3TypeRaw16to8, 1 },
{ k3TypeShpData, 7 },
- { kLolTypeRaw16, 13 },
- { kLolTypeRaw32, 14 },
- { kLolTypeButtonDef, 12 },
- { kLolTypeCharData, 8 },
- { kLolTypeSpellData, 9 },
- { kLolTypeCompassData, 10 },
- { kLolTypeFlightShpData, 11 },
+ { kLoLTypeRaw16, 13 },
+ { kLoLTypeRaw32, 14 },
+ { kLoLTypeButtonDef, 12 },
+ { kLoLTypeCharData, 8 },
+ { kLoLTypeSpellData, 9 },
+ { kLoLTypeCompassData, 10 },
+ { kLoLTypeFlightShpData, 11 },
+ { kEoB2TypeSeqData, 15 },
+ { kEoB2TypeShapeData, 16 },
+ { kEoBTypeNpcData, 17},
{ -1, 1 }
};
@@ -151,7 +163,7 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
static const uint8 rusFanSkip_k1GUIStrings[] = { 1, 3, 6, 8, 11, 13, 18 };
uint32 rusFanSkipIdLen = 0;
const uint8 *rusFanSkipId = 0;
- int rusFanEmptyId = 10000;
+ uint rusFanEmptyId = 10000;
uint32 skipCount = 0;
int patch = 0;
@@ -168,7 +180,7 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
if (id == k2IngamePakFiles)
patch = 4;
- if (info->lang == Common::RU_RUS) {
+ if (info->lang == Common::RU_RUS && info->special == kNoSpecial) {
patch = 5;
if (id == k2SeqplayStrings) {
rusFanSkipId = rusFanSkip_k2SeqplayStrings;
@@ -194,7 +206,7 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
}
// HACK
- if (id == k2SeqplayIntroTracks && info->game == kLol)
+ if (id == k2SeqplayIntroTracks && info->game == kLoL)
return extractStringsWoSuffix(out, info, data, size, filename, id);
}
@@ -304,7 +316,7 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
input += 0x11; output += 0x0F;
}
- strcpy((char*) output, (const char*) input);
+ strcpy((char *) output, (const char*) input);
uint32 stringsize = strlen((const char*)output) + 1;
input += stringsize; output += stringsize;
// skip empty entries
@@ -360,7 +372,7 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
} else if (patch == 5) {
const byte *c = data + size;
do {
- strcpy((char*) output, (const char*) input);
+ strcpy((char *) output, (const char*) input);
uint32 stringsize = strlen((const char*)output) + 1;
input += stringsize; output += stringsize;
@@ -384,7 +396,7 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
}
}
}
-
+
} while (input < c);
} else {
uint32 copySize = size;
@@ -393,7 +405,7 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
output += 44;
data += 44;
for (int t = 1; t != 10; t++) {
- sprintf((char*) output, "COST%d_SH.PAK", t);
+ sprintf((char *) output, "COST%d_SH.PAK", t);
output += 13;
}
data += 126;
@@ -566,7 +578,7 @@ bool extractHofSeqData(PAKFile &out, const ExtractInformation *info, const byte
byte *buffer = new byte[bufferSize];
assert(buffer);
memset(buffer, 0, bufferSize );
- uint16 *header = (uint16*) buffer;
+ uint16 *header = (uint16 *) buffer;
byte *output = buffer + headerSize;
uint16 *hdout = header;
@@ -741,7 +753,7 @@ bool extractHofSeqData(PAKFile &out, const ExtractInformation *info, const byte
byte *finBuffer = new byte[finBufferSize];
assert(finBuffer);
uint16 diff = headerSize - finHeaderSize;
- uint16 *finHeader = (uint16*) finBuffer;
+ uint16 *finHeader = (uint16 *) finBuffer;
for (int i = 1; i < finHeaderSize; i++)
WRITE_BE_UINT16(&finHeader[i], (READ_BE_UINT16(&header[i]) - diff));
@@ -750,7 +762,7 @@ bool extractHofSeqData(PAKFile &out, const ExtractInformation *info, const byte
memcpy (finBuffer + finHeaderSize, buffer + headerSize, finBufferSize - finHeaderSize);
delete[] buffer;
- finHeader = (uint16*) (finBuffer + ((numSequences + 2) * sizeof(uint16)));
+ finHeader = (uint16 *) (finBuffer + ((numSequences + 2) * sizeof(uint16)));
for (int i = 0; i < numNestedSequences; i++) {
uint8 * offs = finBuffer + READ_BE_UINT16(finHeader++) + 26;
uint16 ctrl = READ_BE_UINT16(offs);
@@ -1006,7 +1018,7 @@ bool extractRaw32(PAKFile &out, const ExtractInformation *info, const byte *data
return out.addFile(filename, buffer, size);
}
-bool extractLolButtonDefs(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id) {
+bool extractLoLButtonDefs(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id) {
int num = size / 22;
uint8 *buffer = new uint8[size];
uint32 outsize = num * 18;
@@ -1037,6 +1049,124 @@ bool extractLolButtonDefs(PAKFile &out, const ExtractInformation *info, const by
return out.addFile(filename, buffer, outsize);
}
+bool extractEoB2SeqData(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id) {
+ int num = size / 11;
+ uint8 *buffer = new uint8[size];
+ const uint8 *src = data;
+ uint8 *dst = buffer;
+
+ for (int i = 0; i < num; i++) {
+ memcpy(dst, src, 2);
+ src += 2; dst += 2;
+ WRITE_BE_UINT16(dst, READ_LE_UINT16(src));
+ src += 2; dst += 2;
+ memcpy(dst, src, 7);
+ src += 7; dst += 7;
+ }
+
+ return out.addFile(filename, buffer, size);
+}
+
+bool extractEoB2ShapeData(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id) {
+ int num = size / 6;
+ uint8 *buffer = new uint8[size];
+ const uint8 *src = data;
+ uint8 *dst = buffer;
+
+ for (int i = 0; i < num; i++) {
+ WRITE_BE_UINT16(dst, READ_LE_UINT16(src));
+ src += 2; dst += 2;
+ memcpy(dst, src, 4);
+ src += 4; dst += 4;
+ }
+
+ return out.addFile(filename, buffer, size);
+}
+
+bool extractEoBNpcData(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id) {
+ // We use one extraction routine for both EOB 1 and EOB 2 (in spite of the data format differences)
+ // since it is easy enough to generate a common output usable by both engines
+
+ uint8 *buffer = 0;
+ uint32 outsize = 0;
+
+ if (info->game == kEoB1) {
+ uint16 num = size / 243;
+ outsize = num * 111 + 2;
+ buffer = new uint8[outsize];
+ const uint8 *src = data;
+ uint8 *dst = buffer;
+
+ WRITE_BE_UINT16(dst, num);
+ dst += 2;
+
+ for (int i = 0; i < num; i++) {
+ memcpy(dst, src, 27);
+ src += 27; dst += 27;
+ WRITE_BE_UINT16(dst, *src++);
+ dst += 2;
+ WRITE_BE_UINT16(dst, *src++);
+ dst += 2;
+ memcpy(dst, src, 10);
+ src += 10; dst += 10;
+ WRITE_BE_UINT32(dst, READ_LE_UINT32(src));
+ src += 4; dst += 4;
+ WRITE_BE_UINT32(dst, READ_LE_UINT32(src));
+ src += 4; dst += 4;
+ WRITE_BE_UINT32(dst, READ_LE_UINT32(src));
+ src += 4; dst += 4;
+ // skipping lots of zero space
+ src += 64;
+ WRITE_BE_UINT32(dst, READ_LE_UINT32(src));
+ src += 4; dst += 4;
+ for (int ii = 0; ii < 27; ii++) {
+ WRITE_BE_UINT16(dst, READ_LE_UINT16(src));
+ src += 2; dst += 2;
+ }
+ // skipping more zero space
+ src += 70;
+ }
+ } else {
+ uint16 num = size / 345;
+ outsize = num * 111 + 2;
+ buffer = new uint8[outsize];
+ const uint8 *src = data;
+ uint8 *dst = buffer;
+
+ WRITE_BE_UINT16(dst, num);
+ dst += 2;
+
+ for (int i = 0; i < num; i++) {
+ memcpy(dst, src, 27);
+ src += 27; dst += 27;
+ WRITE_BE_UINT16(dst, READ_LE_UINT16(src));
+ src += 2; dst += 2;
+ WRITE_BE_UINT16(dst, READ_LE_UINT16(src));
+ src += 2; dst += 2;
+ memcpy(dst, src, 10);
+ src += 10; dst += 10;
+ WRITE_BE_UINT32(dst, READ_LE_UINT32(src));
+ src += 4; dst += 4;
+ WRITE_BE_UINT32(dst, READ_LE_UINT32(src));
+ src += 4; dst += 4;
+ WRITE_BE_UINT32(dst, READ_LE_UINT32(src));
+ src += 4; dst += 4;
+ // skipping lots of zero space
+ src += 164;
+ WRITE_BE_UINT32(dst, READ_LE_UINT32(src));
+ src += 4; dst += 4;
+ for (int ii = 0; ii < 27; ii++) {
+ WRITE_BE_UINT16(dst, READ_LE_UINT16(src));
+ src += 2; dst += 2;
+ }
+ // skipping more zero space
+ src += 70;
+ }
+ }
+
+ return out.addFile(filename, buffer, outsize);
+}
+
bool extractMrShapeAnimData(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id) {
int outsize = 1;
uint8 *buffer = new uint8[size + 1];
diff --git a/devtools/create_kyradat/extract.h b/devtools/create_kyradat/extract.h
index a44927427f..4af9a146f4 100644
--- a/devtools/create_kyradat/extract.h
+++ b/devtools/create_kyradat/extract.h
@@ -47,13 +47,17 @@ enum kExtractType {
k3TypeRaw16to8,
k3TypeShpData,
- kLolTypeRaw16,
- kLolTypeRaw32,
- kLolTypeButtonDef,
- kLolTypeCharData,
- kLolTypeSpellData,
- kLolTypeCompassData,
- kLolTypeFlightShpData
+ kLoLTypeRaw16,
+ kLoLTypeRaw32,
+ kLoLTypeButtonDef,
+ kLoLTypeCharData,
+ kLoLTypeSpellData,
+ kLoLTypeCompassData,
+ kLoLTypeFlightShpData,
+
+ kEoB2TypeSeqData,
+ kEoB2TypeShapeData,
+ kEoBTypeNpcData
};
struct ExtractInformation {
diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp
index 86f3535f10..a2759b1e53 100644
--- a/devtools/create_kyradat/games.cpp
+++ b/devtools/create_kyradat/games.cpp
@@ -24,6 +24,8 @@
#define FORBIDDEN_SYMBOL_ALLOW_ALL
#include "create_kyradat.h"
+#include "common/language.h"
+#include "common/platform.h"
// Game tables
@@ -77,6 +79,7 @@ const Game kyra2Games[] = {
// talkie games
{ kKyra2, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "85bbc1cc6c4cef6ad31fc6ee79518efb", "e20d0d2e500f01e399ec588247a7e213" } },
{ kKyra2, { IT_ITA, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "130795aa8f2333250c895dae9028b9bb", "e20d0d2e500f01e399ec588247a7e213" } }, // Italian Fan Translation
+ { kKyra2, { RU_RUS, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "c3afd22959f515355b2a33cde950f418", "e20d0d2e500f01e399ec588247a7e213" } }, // Russian Fan Translation
// FM-TOWNS games
{ kKyra2, { EN_ANY, JA_JPN, -1 }, kPlatformFMTowns, kNoSpecial, { "74f50d79c919cc8e7196c24942ce43d7", "a9a7fd4f05d00090e9e8bda073e6d431" } },
@@ -96,22 +99,34 @@ const Game kyra3Games[] = {
GAME_DUMMY_ENTRY
};
+const Game eob1Games[] = {
+ { kEoB1, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "1bde1dd37b40ab6de8ad11be33a44c5a", "d760a605d1a1302d06975a1f209fdd72" } },
+ { kEoB1, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "0fa3c6e00a81171b9f2adb3fdeb8eea3", "756f300c62aabf1dbd3c26b3b04f8c00" } },
+ GAME_DUMMY_ENTRY
+};
+
+const Game eob2Games[] = {
+ { kEoB2, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "e006d031c2d854f748947f777e0c59b0", 0 } },
+ { kEoB2, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "6c6c4168deb2a4cb3dee3f1be2d39746", 0 } },
+ GAME_DUMMY_ENTRY
+};
+
const Game lolGames[] = {
// DOS demo
- { kLol, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "30bb5af87d38adb47d3e6ce06b1cb042", 0 } },
+ { kLoL, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "30bb5af87d38adb47d3e6ce06b1cb042", 0 } },
// DOS floppy (no language specifc strings except character presets)
- { kLol, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "0cc764a204f7ba8cefe1a5f14c479619", 0 } },
- { kLol, { RU_RUS, -1, -1 }, kPlatformPC, kNoSpecial, { "80a9f9bf243bc6ed36d98584fc6988c4", 0 } },
- { kLol, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "6b843869772c1b779e1386be868c15dd", 0 } },
+ { kLoL, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "0cc764a204f7ba8cefe1a5f14c479619", 0 } },
+ { kLoL, { RU_RUS, -1, -1 }, kPlatformPC, kNoSpecial, { "80a9f9bf243bc6ed36d98584fc6988c4", 0 } },
+ { kLoL, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "6b843869772c1b779e1386be868c15dd", 0 } },
// PC98 (no language specifc strings)
- { kLol, { JA_JPN, -1, -1 }, kPlatformPC98, kNoSpecial, { "6d5bd4a2f5ce433365734ca6b7a8d984", "1b0a457c48ae6908da301b656fe0aab4" } },
+ { kLoL, { JA_JPN, -1, -1 }, kPlatformPC98, kNoSpecial, { "6d5bd4a2f5ce433365734ca6b7a8d984", "1b0a457c48ae6908da301b656fe0aab4" } },
// DOS CD (multi language version, with no language specific strings)
- { kLol, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "263998ec600afca1cc7b935c473df670" } },
- { kLol, { IT_ITA, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "f2af366e00f79dbf832fa19701d71ed9" } }, // Italian fan translation
- { kLol, { EN_ANY, FR_FRA, RU_RUS }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "5b33478718968676343803911dd5e3e4" } }, // Russian fan translation
+ { kLoL, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "263998ec600afca1cc7b935c473df670" } },
+ { kLoL, { IT_ITA, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "f2af366e00f79dbf832fa19701d71ed9" } }, // Italian fan translation
+ { kLoL, { EN_ANY, FR_FRA, RU_RUS }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "5b33478718968676343803911dd5e3e4" } }, // Russian fan translation
GAME_DUMMY_ENTRY
};
@@ -122,6 +137,8 @@ const Game * const gameDescs[] = {
kyra2Games,
kyra3Games,
lolGames,
+ eob1Games,
+ eob2Games,
0
};
@@ -505,7 +522,6 @@ const int kyra1TownsNeed[] = {
k1ConfigStrings,
k1TownsMusicFadeTable,
- k1TownsMusicFadeTable,
k1TownsSFXwdTable,
k1TownsSFXbtTable,
k1TownsCDATable,
@@ -764,250 +780,256 @@ const int kyra3Need[] = {
};
const int lolFloppyNeed[] = {
- kLolIngamePakFiles,
-
- kLolCharacterDefs,
- kLolIngameSfxFiles,
- kLolIngameSfxIndex,
- kLolMusicTrackMap,
- kLolIngameGMSfxIndex,
- kLolIngameMT32SfxIndex,
- kLolIngamePcSpkSfxIndex,
- kLolSpellProperties,
- kLolGameShapeMap,
- kLolSceneItemOffs,
- kLolCharInvIndex,
- kLolCharInvDefs,
- kLolCharDefsMan,
- kLolCharDefsWoman,
- kLolCharDefsKieran,
- kLolCharDefsAkshel,
- kLolExpRequirements,
- kLolMonsterModifiers,
- kLolMonsterShiftOffsets,
- kLolMonsterDirFlags,
- kLolMonsterScaleY,
- kLolMonsterScaleX,
- kLolMonsterScaleWH,
- kLolFlyingObjectShp,
- kLolInventoryDesc,
-
- kLolLevelShpList,
- kLolLevelDatList,
- kLolCompassDefs,
- kLolStashSetup,
- kLolDscUnk1,
- kLolDscShapeIndex,
- kLolDscOvlMap,
- kLolDscScaleWidthData,
- kLolDscScaleHeightData,
- kLolDscX,
- kLolDscY,
- kLolDscTileIndex,
- kLolDscUnk2,
- kLolDscDoorShapeIndex,
- kLolDscDimData1,
- kLolDscDimData2,
- kLolDscBlockMap,
- kLolDscDimMap,
- kLolDscOvlIndex,
- kLolDscBlockIndex,
- kLolDscDoor1,
- kLolDscDoorScale,
- kLolDscDoor4,
- kLolDscDoorX,
- kLolDscDoorY,
-
- kLolScrollXTop,
- kLolScrollYTop,
- kLolScrollXBottom,
- kLolScrollYBottom,
-
- kLolButtonDefs,
- kLolButtonList1,
- kLolButtonList1,
- kLolButtonList2,
- kLolButtonList3,
- kLolButtonList4,
- kLolButtonList5,
- kLolButtonList6,
- kLolButtonList7,
- kLolButtonList8,
-
- kLolLegendData,
- kLolMapCursorOvl,
- kLolMapStringId,
-
- kLolSpellbookAnim,
- kLolSpellbookCoords,
- kLolHealShapeFrames,
- kLolLightningDefs,
- kLolFireballCoords,
+ kLoLIngamePakFiles,
+
+ kLoLCharacterDefs,
+ kLoLIngameSfxFiles,
+ kLoLIngameSfxIndex,
+ kLoLMusicTrackMap,
+ kLoLIngameGMSfxIndex,
+ kLoLIngameMT32SfxIndex,
+ kLoLIngamePcSpkSfxIndex,
+ kLoLSpellProperties,
+ kLoLGameShapeMap,
+ kLoLSceneItemOffs,
+ kLoLCharInvIndex,
+ kLoLCharInvDefs,
+ kLoLCharDefsMan,
+ kLoLCharDefsWoman,
+ kLoLCharDefsKieran,
+ kLoLCharDefsAkshel,
+ kLoLExpRequirements,
+ kLoLMonsterModifiers,
+ kLoLMonsterShiftOffsets,
+ kLoLMonsterDirFlags,
+ kLoLMonsterScaleY,
+ kLoLMonsterScaleX,
+ kLoLMonsterScaleWH,
+ kLoLFlyingObjectShp,
+ kLoLInventoryDesc,
+
+ kLoLLevelShpList,
+ kLoLLevelDatList,
+ kLoLCompassDefs,
+ kLoLStashSetup,
+ kLoLDscWalls,
+ kRpgCommonDscShapeIndex,
+ kLoLDscOvlMap,
+ kLoLDscScaleWidthData,
+ kLoLDscScaleHeightData,
+ kRpgCommonDscX,
+ kLoLDscY,
+ kRpgCommonDscTileIndex,
+ kRpgCommonDscUnk2,
+ kRpgCommonDscDoorShapeIndex,
+ kRpgCommonDscDimData1,
+ kRpgCommonDscDimData2,
+ kRpgCommonDscBlockMap,
+ kRpgCommonDscDimMap,
+ kLoLDscOvlIndex,
+ kRpgCommonDscBlockIndex,
+ kRpgCommonDscDoorY2,
+ kRpgCommonDscDoorFrameY1,
+ kRpgCommonDscDoorFrameY2,
+ kLoLDscDoorScale,
+ kLoLDscDoor4,
+ kLoLDscDoorX,
+ kLoLDscDoorY,
+
+ kLoLScrollXTop,
+ kLoLScrollYTop,
+ kLoLScrollXBottom,
+ kLoLScrollYBottom,
+
+ kLoLButtonDefs,
+ kLoLButtonList1,
+ kLoLButtonList1,
+ kLoLButtonList2,
+ kLoLButtonList3,
+ kLoLButtonList4,
+ kLoLButtonList5,
+ kLoLButtonList6,
+ kLoLButtonList7,
+ kLoLButtonList8,
+
+ kLoLLegendData,
+ kLoLMapCursorOvl,
+ kLoLMapStringId,
+
+ kLoLSpellbookAnim,
+ kLoLSpellbookCoords,
+ kLoLHealShapeFrames,
+ kLoLLightningDefs,
+ kLoLFireballCoords,
-1
};
const int lolPC98Need[] = {
- kLolIngamePakFiles,
-
- kLolCharacterDefs,
- kLolIngameSfxFiles,
- kLolIngameSfxIndex,
- kLolSpellProperties,
- kLolGameShapeMap,
- kLolSceneItemOffs,
- kLolCharInvIndex,
- kLolCharInvDefs,
- kLolCharDefsMan,
- kLolCharDefsWoman,
- kLolCharDefsKieran,
- kLolCharDefsAkshel,
- kLolExpRequirements,
- kLolMonsterModifiers,
- kLolMonsterShiftOffsets,
- kLolMonsterDirFlags,
- kLolMonsterScaleY,
- kLolMonsterScaleX,
- kLolMonsterScaleWH,
- kLolFlyingObjectShp,
- kLolInventoryDesc,
-
- kLolLevelShpList,
- kLolLevelDatList,
- kLolCompassDefs,
- kLolStashSetup,
- kLolDscUnk1,
- kLolDscShapeIndex,
- kLolDscOvlMap,
- kLolDscScaleWidthData,
- kLolDscScaleHeightData,
- kLolDscX,
- kLolDscY,
- kLolDscTileIndex,
- kLolDscUnk2,
- kLolDscDoorShapeIndex,
- kLolDscDimData1,
- kLolDscDimData2,
- kLolDscBlockMap,
- kLolDscDimMap,
- kLolDscOvlIndex,
- kLolDscBlockIndex,
- kLolDscDoor1,
- kLolDscDoorScale,
- kLolDscDoor4,
- kLolDscDoorX,
- kLolDscDoorY,
-
- kLolScrollXTop,
- kLolScrollYTop,
- kLolScrollXBottom,
- kLolScrollYBottom,
-
- kLolButtonDefs,
- kLolButtonList1,
- kLolButtonList1,
- kLolButtonList2,
- kLolButtonList3,
- kLolButtonList4,
- kLolButtonList5,
- kLolButtonList6,
- kLolButtonList7,
- kLolButtonList8,
-
- kLolLegendData,
- kLolMapStringId,
-
- kLolSpellbookAnim,
- kLolSpellbookCoords,
- kLolHealShapeFrames,
- kLolLightningDefs,
- kLolFireballCoords,
-
- kLolCredits,
+ kLoLIngamePakFiles,
+
+ kLoLCharacterDefs,
+ kLoLIngameSfxFiles,
+ kLoLIngameSfxIndex,
+ kLoLSpellProperties,
+ kLoLGameShapeMap,
+ kLoLSceneItemOffs,
+ kLoLCharInvIndex,
+ kLoLCharInvDefs,
+ kLoLCharDefsMan,
+ kLoLCharDefsWoman,
+ kLoLCharDefsKieran,
+ kLoLCharDefsAkshel,
+ kLoLExpRequirements,
+ kLoLMonsterModifiers,
+ kLoLMonsterShiftOffsets,
+ kLoLMonsterDirFlags,
+ kLoLMonsterScaleY,
+ kLoLMonsterScaleX,
+ kLoLMonsterScaleWH,
+ kLoLFlyingObjectShp,
+ kLoLInventoryDesc,
+
+ kLoLLevelShpList,
+ kLoLLevelDatList,
+ kLoLCompassDefs,
+ kLoLStashSetup,
+ kLoLDscWalls,
+ kRpgCommonDscShapeIndex,
+ kLoLDscOvlMap,
+ kLoLDscScaleWidthData,
+ kLoLDscScaleHeightData,
+ kRpgCommonDscX,
+ kLoLDscY,
+ kRpgCommonDscTileIndex,
+ kRpgCommonDscUnk2,
+ kRpgCommonDscDoorShapeIndex,
+ kRpgCommonDscDimData1,
+ kRpgCommonDscDimData2,
+ kRpgCommonDscBlockMap,
+ kRpgCommonDscDimMap,
+ kLoLDscOvlIndex,
+ kRpgCommonDscBlockIndex,
+ kRpgCommonDscDoorY2,
+ kRpgCommonDscDoorFrameY1,
+ kRpgCommonDscDoorFrameY2,
+ kLoLDscDoorScale,
+ kLoLDscDoor4,
+ kLoLDscDoorX,
+ kLoLDscDoorY,
+
+ kLoLScrollXTop,
+ kLoLScrollYTop,
+ kLoLScrollXBottom,
+ kLoLScrollYBottom,
+
+ kLoLButtonDefs,
+ kLoLButtonList1,
+ kLoLButtonList1,
+ kLoLButtonList2,
+ kLoLButtonList3,
+ kLoLButtonList4,
+ kLoLButtonList5,
+ kLoLButtonList6,
+ kLoLButtonList7,
+ kLoLButtonList8,
+
+ kLoLLegendData,
+ kLoLMapStringId,
+
+ kLoLSpellbookAnim,
+ kLoLSpellbookCoords,
+ kLoLHealShapeFrames,
+ kLoLLightningDefs,
+ kLoLFireballCoords,
+
+ kLoLCredits,
-1
};
const int lolCDNeed[] = {
- kLolHistory,
- kLolCharacterDefs,
- kLolIngameSfxFiles,
- kLolIngameSfxIndex,
- kLolMusicTrackMap,
- kLolIngameGMSfxIndex,
- kLolIngameMT32SfxIndex,
- kLolIngamePcSpkSfxIndex,
- kLolSpellProperties,
- kLolGameShapeMap,
- kLolSceneItemOffs,
- kLolCharInvIndex,
- kLolCharInvDefs,
- kLolCharDefsMan,
- kLolCharDefsWoman,
- kLolCharDefsKieran,
- kLolCharDefsAkshel,
- kLolExpRequirements,
- kLolMonsterModifiers,
- kLolMonsterShiftOffsets,
- kLolMonsterDirFlags,
- kLolMonsterScaleY,
- kLolMonsterScaleX,
- kLolMonsterScaleWH,
- kLolFlyingObjectShp,
- kLolInventoryDesc,
-
- kLolLevelShpList,
- kLolLevelDatList,
- kLolCompassDefs,
- kLolItemPrices,
- kLolStashSetup,
- kLolDscUnk1,
- kLolDscShapeIndex,
- kLolDscOvlMap,
- kLolDscScaleWidthData,
- kLolDscScaleHeightData,
- kLolDscX,
- kLolDscY,
- kLolDscTileIndex,
- kLolDscUnk2,
- kLolDscDoorShapeIndex,
- kLolDscDimData1,
- kLolDscDimData2,
- kLolDscBlockMap,
- kLolDscDimMap,
- kLolDscOvlIndex,
- kLolDscBlockIndex,
- kLolDscDoor1,
- kLolDscDoorScale,
- kLolDscDoor4,
- kLolDscDoorX,
- kLolDscDoorY,
-
- kLolScrollXTop,
- kLolScrollYTop,
- kLolScrollXBottom,
- kLolScrollYBottom,
-
- kLolButtonDefs,
- kLolButtonList1,
- kLolButtonList1,
- kLolButtonList2,
- kLolButtonList3,
- kLolButtonList4,
- kLolButtonList5,
- kLolButtonList6,
- kLolButtonList7,
- kLolButtonList8,
-
- kLolLegendData,
- kLolMapCursorOvl,
- kLolMapStringId,
-
- kLolSpellbookAnim,
- kLolSpellbookCoords,
- kLolHealShapeFrames,
- kLolLightningDefs,
- kLolFireballCoords,
+ kLoLHistory,
+ kLoLCharacterDefs,
+ kLoLIngameSfxFiles,
+ kLoLIngameSfxIndex,
+ kLoLMusicTrackMap,
+ kLoLIngameGMSfxIndex,
+ kLoLIngameMT32SfxIndex,
+ kLoLIngamePcSpkSfxIndex,
+ kLoLSpellProperties,
+ kLoLGameShapeMap,
+ kLoLSceneItemOffs,
+ kLoLCharInvIndex,
+ kLoLCharInvDefs,
+ kLoLCharDefsMan,
+ kLoLCharDefsWoman,
+ kLoLCharDefsKieran,
+ kLoLCharDefsAkshel,
+ kLoLExpRequirements,
+ kLoLMonsterModifiers,
+ kLoLMonsterShiftOffsets,
+ kLoLMonsterDirFlags,
+ kLoLMonsterScaleY,
+ kLoLMonsterScaleX,
+ kLoLMonsterScaleWH,
+ kLoLFlyingObjectShp,
+ kLoLInventoryDesc,
+
+ kLoLLevelShpList,
+ kLoLLevelDatList,
+ kLoLCompassDefs,
+ kLoLItemPrices,
+ kLoLStashSetup,
+ kLoLDscWalls,
+ kRpgCommonDscShapeIndex,
+ kLoLDscOvlMap,
+ kLoLDscScaleWidthData,
+ kLoLDscScaleHeightData,
+ kRpgCommonDscX,
+ kLoLDscY,
+ kRpgCommonDscTileIndex,
+ kRpgCommonDscUnk2,
+ kRpgCommonDscDoorShapeIndex,
+ kRpgCommonDscDimData1,
+ kRpgCommonDscDimData2,
+ kRpgCommonDscBlockMap,
+ kRpgCommonDscDimMap,
+ kLoLDscOvlIndex,
+ kRpgCommonDscBlockIndex,
+ kRpgCommonDscDoorY2,
+ kRpgCommonDscDoorFrameY1,
+ kRpgCommonDscDoorFrameY2,
+ kLoLDscDoorScale,
+ kLoLDscDoor4,
+ kLoLDscDoorX,
+ kLoLDscDoorY,
+
+ kLoLScrollXTop,
+ kLoLScrollYTop,
+ kLoLScrollXBottom,
+ kLoLScrollYBottom,
+
+ kLoLButtonDefs,
+ kLoLButtonList1,
+ kLoLButtonList1,
+ kLoLButtonList2,
+ kLoLButtonList3,
+ kLoLButtonList4,
+ kLoLButtonList5,
+ kLoLButtonList6,
+ kLoLButtonList7,
+ kLoLButtonList8,
+
+ kLoLLegendData,
+ kLoLMapCursorOvl,
+ kLoLMapStringId,
+
+ kLoLSpellbookAnim,
+ kLoLSpellbookCoords,
+ kLoLHealShapeFrames,
+ kLoLLightningDefs,
+ kLoLFireballCoords,
-1
};
@@ -1020,6 +1042,617 @@ const int lolDemoNeed[] = {
-1
};
+const int eob1FloppyNeed[] = {
+ kEoBBaseChargenStrings1,
+ kEoBBaseChargenStrings2,
+ kEoBBaseChargenStartLevels,
+ kEoBBaseChargenStatStrings,
+ kEoBBaseChargenRaceSexStrings,
+ kEoBBaseChargenClassStrings,
+ kEoBBaseChargenAlignmentStrings,
+ kEoBBaseChargenEnterGameStrings,
+ kEoBBaseChargenClassMinStats,
+ kEoBBaseChargenRaceMinStats,
+ kEoBBaseChargenRaceMaxStats,
+
+ kEoBBaseSaveThrowTable1,
+ kEoBBaseSaveThrowTable2,
+ kEoBBaseSaveThrowTable3,
+ kEoBBaseSaveThrowTable4,
+ kEoBBaseSaveThrwLvlIndex,
+ kEoBBaseSaveThrwModDiv,
+ kEoBBaseSaveThrwModExt,
+
+ kEoB1MainMenuStrings,
+ kEoB1BonusStrings,
+
+ kEoB1IntroFilesOpening,
+ kEoB1IntroFilesTower,
+ kEoB1IntroFilesOrb,
+ kEoB1IntroFilesWdEntry,
+ kEoB1IntroFilesKing,
+ kEoB1IntroFilesHands,
+ kEoB1IntroFilesWdExit,
+ kEoB1IntroFilesTunnel,
+ kEoB1IntroOpeningFrmDelay,
+ kEoB1IntroWdEncodeX,
+ kEoB1IntroWdEncodeY,
+ kEoB1IntroWdEncodeWH,
+ kEoB1IntroWdDsX,
+ kEoB1IntroWdDsY,
+ kEoB1IntroTvlX1,
+ kEoB1IntroTvlY1,
+ kEoB1IntroTvlX2,
+ kEoB1IntroTvlY2,
+ kEoB1IntroTvlW,
+ kEoB1IntroTvlH,
+
+ kEoB1DoorShapeDefs,
+ kEoB1DoorSwitchShapeDefs,
+ kEoB1DoorSwitchCoords,
+ kEoB1MonsterProperties,
+ kEoB1EnemyMageSpellList,
+ kEoB1EnemyMageSfx,
+ kEoB1BeholderSpellList,
+ kEoB1BeholderSfx,
+ kEoB1TurnUndeadString,
+
+ kEoB1CgaMappingDefault,
+ kEoB1CgaMappingAlt,
+ kEoB1CgaMappingInv,
+ kEoB1CgaMappingItemsL,
+ kEoB1CgaMappingItemsS,
+ kEoB1CgaMappingThrown,
+ kEoB1CgaMappingIcons,
+ kEoB1CgaMappingDeco,
+ kEoB1CgaLevelMappingIndex,
+ kEoB1CgaMappingLevel0,
+ kEoB1CgaMappingLevel1,
+ kEoB1CgaMappingLevel2,
+ kEoB1CgaMappingLevel3,
+ kEoB1CgaMappingLevel4,
+
+ kEoB1NpcShpData,
+ kEoB1NpcSubShpIndex1,
+ kEoB1NpcSubShpIndex2,
+ kEoB1NpcSubShpY,
+ kEoB1Npc0Strings,
+ kEoB1Npc11Strings,
+ kEoB1Npc12Strings,
+ kEoB1Npc21Strings,
+ kEoB1Npc22Strings,
+ kEoB1Npc31Strings,
+ kEoB1Npc32Strings,
+ kEoB1Npc4Strings,
+ kEoB1Npc5Strings,
+ kEoB1Npc6Strings,
+ kEoB1Npc7Strings,
+
+ kEoBBasePryDoorStrings,
+ kEoBBaseWarningStrings,
+
+ kEoBBaseItemSuffixStringsRings,
+ kEoBBaseItemSuffixStringsPotions,
+ kEoBBaseItemSuffixStringsWands,
+
+ kEoBBaseRipItemStrings,
+ kEoBBaseCursedString,
+ kEoBBaseEnchantedString,
+ kEoBBaseMagicObjectStrings,
+ kEoBBaseMagicObject5String,
+ kEoBBasePatternSuffix,
+ kEoBBasePatternGrFix1,
+ kEoBBasePatternGrFix2,
+ kEoBBaseValidateArmorString,
+ kEoBBaseValidateNoDropString,
+ kEoBBasePotionStrings,
+ kEoBBaseWandString,
+ kEoBBaseItemMisuseStrings,
+
+ kEoBBaseTakenStrings,
+ kEoBBasePotionEffectStrings,
+
+ kEoBBaseYesNoStrings,
+ kRpgCommonMoreStrings,
+ kEoBBaseNpcMaxStrings,
+ kEoBBaseNpcJoinStrings,
+ kEoBBaseCancelStrings,
+
+ kEoBBaseMenuStringsMain,
+ kEoBBaseMenuStringsSaveLoad,
+ kEoBBaseMenuStringsOnOff,
+ kEoBBaseMenuStringsSpells,
+ kEoBBaseMenuStringsRest,
+ kEoBBaseMenuStringsDrop,
+ kEoBBaseMenuStringsExit,
+ kEoBBaseMenuStringsStarve,
+ kEoBBaseMenuStringsScribe,
+ kEoBBaseMenuStringsDrop2,
+ kEoBBaseMenuStringsHead,
+ kEoBBaseMenuStringsPoison,
+ kEoBBaseMenuStringsMgc,
+ kEoBBaseMenuStringsPrefs,
+ kEoBBaseMenuStringsRest2,
+ kEoBBaseMenuStringsRest4,
+ kEoBBaseMenuStringsDefeat,
+ kEoBBaseMenuYesNoStrings,
+
+ kEoBBaseSpellLevelsMage,
+ kEoBBaseSpellLevelsCleric,
+ kEoBBaseNumSpellsCleric,
+ kEoBBaseNumSpellsWisAdj,
+ kEoBBaseNumSpellsPal,
+ kEoBBaseNumSpellsMage,
+
+ kEoBBaseCharGuiStringsHp,
+ kEoBBaseCharGuiStringsWp1,
+ kEoBBaseCharGuiStringsWr,
+ kEoBBaseCharGuiStringsSt1,
+ kEoBBaseCharGuiStringsIn,
+
+ kEoBBaseCharStatusStrings7,
+ kEoBBaseCharStatusStrings81,
+ kEoBBaseCharStatusStrings9,
+ kEoBBaseCharStatusStrings131,
+
+ kEoBBaseLevelGainStrings,
+ kEoBBaseExperienceTable0,
+ kEoBBaseExperienceTable1,
+ kEoBBaseExperienceTable2,
+ kEoBBaseExperienceTable3,
+ kEoBBaseExperienceTable4,
+
+ kEoBBaseBookNumbers,
+ kEoBBaseMageSpellsList,
+ kEoBBaseClericSpellsList,
+ kEoBBaseSpellNames,
+ kEoBBaseMagicStrings1,
+ kEoBBaseMagicStrings2,
+ kEoBBaseMagicStrings3,
+ kEoBBaseMagicStrings4,
+ kEoBBaseMagicStrings6,
+ kEoBBaseMagicStrings7,
+ kEoBBaseMagicStrings8,
+
+ kEoBBaseExpObjectTblIndex,
+ kEoBBaseExpObjectShpStart,
+ kEoBBaseExpObjectTbl1,
+ kEoBBaseExpObjectTbl2,
+ kEoBBaseExpObjectTbl3,
+ kEoBBaseExpObjectY,
+
+ kEoBBaseSparkDefSteps,
+ kEoBBaseSparkDefSubSteps,
+ kEoBBaseSparkDefShift,
+ kEoBBaseSparkDefAdd,
+ kEoBBaseSparkDefX,
+ kEoBBaseSparkDefY,
+ kEoBBaseSparkOfFlags1,
+ kEoBBaseSparkOfFlags2,
+ kEoBBaseSparkOfShift,
+ kEoBBaseSparkOfX,
+ kEoBBaseSparkOfY,
+
+ kEoBBaseSpellProperties,
+ kEoBBaseMagicFlightProps,
+ kEoBBaseTurnUndeadEffect,
+ kEoBBaseBurningHandsDest,
+ kEoBBaseConeOfColdDest1,
+ kEoBBaseConeOfColdDest2,
+ kEoBBaseConeOfColdDest3,
+ kEoBBaseConeOfColdDest4,
+ kEoBBaseConeOfColdGfxTbl,
+
+ kRpgCommonDscDoorShapeIndex,
+ kEoBBaseWllFlagPreset,
+ kEoBBaseDscShapeCoords,
+ kEoBBaseDscDoorScaleOffs,
+ kEoBBaseDscDoorScaleMult1,
+ kEoBBaseDscDoorScaleMult2,
+ kEoBBaseDscDoorScaleMult3,
+ kEoBBaseDscDoorScaleMult4,
+ kEoBBaseDscDoorScaleMult5,
+ kEoBBaseDscDoorScaleMult6,
+ kEoBBaseDscDoorXE,
+ kEoBBaseDscDoorY1,
+ kEoBBaseDscDoorY3,
+ kEoBBaseDscDoorY4,
+ kEoBBaseDscDoorY5,
+ kEoBBaseDscDoorY6,
+ kEoBBaseDscDoorY7,
+ kEoBBaseDscDoorCoordsExt,
+ kRpgCommonDscDoorFrameY1,
+ kRpgCommonDscDoorFrameY2,
+ kRpgCommonDscDoorFrameIndex1,
+ kRpgCommonDscDoorFrameIndex2,
+
+ kEoBBaseDscItemPosIndex,
+ kEoBBaseDscItemShpX,
+ kEoBBaseDscItemPosUnk,
+ kEoBBaseDscItemTileIndex,
+ kEoBBaseDscItemShapeMap,
+ kEoBBaseDscTelptrShpCoords,
+
+ kEoBBasePortalSeqData,
+ kEoBBaseManDef,
+ kEoBBaseManWord,
+ kEoBBaseManPrompt,
+
+ kEoBBaseDscMonsterFrmOffsTbl1,
+ kEoBBaseDscMonsterFrmOffsTbl2,
+
+ kEoBBaseInvSlotX,
+ kEoBBaseInvSlotY,
+ kEoBBaseSlotValidationFlags,
+
+ kEoBBaseProjectileWeaponTypes,
+ kEoBBaseWandTypes,
+
+ kEoBBaseDrawObjPosIndex,
+ kEoBBaseFlightObjFlipIndex,
+ kEoBBaseFlightObjShpMap,
+ kEoBBaseFlightObjSclIndex,
+
+ kRpgCommonDscShapeIndex,
+ kRpgCommonDscX,
+ kRpgCommonDscTileIndex,
+ kRpgCommonDscUnk2,
+ kRpgCommonDscDimData1,
+ kRpgCommonDscDimData2,
+ kRpgCommonDscBlockMap,
+ kRpgCommonDscDimMap,
+ kRpgCommonDscBlockIndex,
+
+ kEoBBaseClassModifierFlags,
+
+ kEoBBaseMonsterStepTable01,
+ //kEoBBaseMonsterStepTable1,
+ kEoBBaseMonsterStepTable2,
+ kEoBBaseMonsterStepTable3,
+ kEoBBaseMonsterCloseAttPosTable1,
+ kEoBBaseMonsterCloseAttPosTable21,
+ //kEoBBaseMonsterCloseAttUnkTable,
+ kEoBBaseMonsterCloseAttChkTable1,
+ kEoBBaseMonsterCloseAttChkTable2,
+ kEoBBaseMonsterCloseAttDstTable1,
+ kEoBBaseMonsterCloseAttDstTable2,
+
+ kEoBBaseMonsterProximityTable,
+ kEoBBaseFindBlockMonstersTable,
+ kEoBBaseMonsterDirChangeTable,
+ kEoBBaseMonsterDistAttStrings,
+ kEoBBaseEncodeMonsterDefs,
+ kEoBBaseNpcPresets,
+ //kEoB1Npc1Strings,
+ //kEoB1Npc2Strings,
+ -1
+};
+
+const int eob2FloppyNeed[] = {
+ kEoBBaseChargenStrings1,
+ kEoBBaseChargenStrings2,
+ kEoBBaseChargenStartLevels,
+ kEoBBaseChargenStatStrings,
+ kEoBBaseChargenRaceSexStrings,
+ kEoBBaseChargenClassStrings,
+ kEoBBaseChargenAlignmentStrings,
+ kEoBBaseChargenEnterGameStrings,
+ kEoBBaseChargenClassMinStats,
+ kEoBBaseChargenRaceMinStats,
+ kEoBBaseChargenRaceMaxStats,
+
+ kEoBBaseSaveThrowTable1,
+ kEoBBaseSaveThrowTable2,
+ kEoBBaseSaveThrowTable3,
+ kEoBBaseSaveThrowTable4,
+ kEoBBaseSaveThrwLvlIndex,
+ kEoBBaseSaveThrwModDiv,
+ kEoBBaseSaveThrwModExt,
+
+ kEoBBasePryDoorStrings,
+ kEoBBaseWarningStrings,
+
+ kEoBBaseItemSuffixStringsRings,
+ kEoBBaseItemSuffixStringsPotions,
+ kEoBBaseItemSuffixStringsWands,
+
+ kEoBBaseRipItemStrings,
+ kEoBBaseCursedString,
+ kEoBBaseEnchantedString,
+ kEoBBaseMagicObjectStrings,
+ kEoBBaseMagicObject5String,
+ kEoBBasePatternSuffix,
+ kEoBBasePatternGrFix1,
+ kEoBBasePatternGrFix2,
+ kEoBBaseValidateArmorString,
+ kEoBBaseValidateCursedString,
+ kEoBBaseValidateNoDropString,
+ kEoBBasePotionStrings,
+ kEoBBaseWandString,
+ kEoBBaseItemMisuseStrings,
+
+ kEoBBaseTakenStrings,
+ kEoBBasePotionEffectStrings,
+
+ kEoBBaseYesNoStrings,
+ kRpgCommonMoreStrings,
+ kEoBBaseNpcMaxStrings,
+ kEoBBaseOkStrings,
+ kEoBBaseNpcJoinStrings,
+ kEoBBaseCancelStrings,
+ kEoBBaseAbortStrings,
+
+ kEoBBaseMenuStringsMain,
+ kEoBBaseMenuStringsSaveLoad,
+ kEoBBaseMenuStringsOnOff,
+ kEoBBaseMenuStringsSpells,
+ kEoBBaseMenuStringsRest,
+ kEoBBaseMenuStringsDrop,
+ kEoBBaseMenuStringsExit,
+ kEoBBaseMenuStringsStarve,
+ kEoBBaseMenuStringsScribe,
+ kEoBBaseMenuStringsDrop2,
+ kEoBBaseMenuStringsHead,
+ kEoBBaseMenuStringsPoison,
+ kEoBBaseMenuStringsMgc,
+ kEoBBaseMenuStringsPrefs,
+ kEoBBaseMenuStringsRest2,
+ kEoBBaseMenuStringsRest3,
+ kEoBBaseMenuStringsRest4,
+ kEoBBaseMenuStringsDefeat,
+ kEoBBaseMenuStringsTransfer,
+ kEoBBaseMenuStringsSpec,
+ kEoBBaseMenuStringsSpellNo,
+ kEoBBaseMenuYesNoStrings,
+
+ kEoBBaseSpellLevelsMage,
+ kEoBBaseSpellLevelsCleric,
+ kEoBBaseNumSpellsCleric,
+ kEoBBaseNumSpellsWisAdj,
+ kEoBBaseNumSpellsPal,
+ kEoBBaseNumSpellsMage,
+
+ kEoBBaseCharGuiStringsHp,
+ kEoBBaseCharGuiStringsWp2,
+ kEoBBaseCharGuiStringsWr,
+ kEoBBaseCharGuiStringsSt2,
+ kEoBBaseCharGuiStringsIn,
+
+ kEoBBaseCharStatusStrings7,
+ kEoBBaseCharStatusStrings82,
+ kEoBBaseCharStatusStrings9,
+ kEoBBaseCharStatusStrings12,
+ kEoBBaseCharStatusStrings132,
+
+ kEoBBaseLevelGainStrings,
+ kEoBBaseExperienceTable0,
+ kEoBBaseExperienceTable1,
+ kEoBBaseExperienceTable2,
+ kEoBBaseExperienceTable3,
+ kEoBBaseExperienceTable4,
+
+ kEoBBaseBookNumbers,
+ kEoBBaseMageSpellsList,
+ kEoBBaseClericSpellsList,
+ kEoBBaseSpellNames,
+ kEoBBaseMagicStrings1,
+ kEoBBaseMagicStrings2,
+ kEoBBaseMagicStrings3,
+ kEoBBaseMagicStrings4,
+ kEoBBaseMagicStrings6,
+ kEoBBaseMagicStrings7,
+ kEoBBaseMagicStrings8,
+
+ kEoBBaseExpObjectTlMode,
+ kEoBBaseExpObjectTblIndex,
+ kEoBBaseExpObjectShpStart,
+ kEoBBaseExpObjectTbl1,
+ kEoBBaseExpObjectTbl2,
+ kEoBBaseExpObjectTbl3,
+ kEoBBaseExpObjectY,
+
+ kEoBBaseSparkDefSteps,
+ kEoBBaseSparkDefSubSteps,
+ kEoBBaseSparkDefShift,
+ kEoBBaseSparkDefAdd,
+ kEoBBaseSparkDefX,
+ kEoBBaseSparkDefY,
+ kEoBBaseSparkOfFlags1,
+ kEoBBaseSparkOfFlags2,
+ kEoBBaseSparkOfShift,
+ kEoBBaseSparkOfX,
+ kEoBBaseSparkOfY,
+
+ kEoBBaseSpellProperties,
+ kEoBBaseMagicFlightProps,
+ kEoBBaseTurnUndeadEffect,
+ kEoBBaseBurningHandsDest,
+ kEoBBaseConeOfColdDest1,
+ kEoBBaseConeOfColdDest2,
+ kEoBBaseConeOfColdDest3,
+ kEoBBaseConeOfColdDest4,
+ kEoBBaseConeOfColdGfxTbl,
+
+ kRpgCommonDscDoorShapeIndex,
+ kEoBBaseWllFlagPreset,
+ kEoBBaseDscShapeCoords,
+
+ kEoBBaseDscDoorScaleOffs,
+ kEoBBaseDscDoorScaleMult1,
+ kEoBBaseDscDoorScaleMult2,
+ kEoBBaseDscDoorScaleMult3,
+ kEoBBaseDscDoorType5Offs,
+ kEoBBaseDscDoorY1,
+ kRpgCommonDscDoorY2,
+ kRpgCommonDscDoorFrameY1,
+ kRpgCommonDscDoorFrameY2,
+
+ kEoBBaseDscItemPosIndex,
+ kEoBBaseDscItemShpX,
+ kEoBBaseDscItemPosUnk,
+ kEoBBaseDscItemTileIndex,
+ kEoBBaseDscItemShapeMap,
+ kEoBBaseDscTelptrShpCoords,
+
+ kEoBBasePortalSeqData,
+ kEoBBaseManDef,
+ kEoBBaseManWord,
+ kEoBBaseManPrompt,
+
+ kEoBBaseDscMonsterFrmOffsTbl1,
+ kEoBBaseDscMonsterFrmOffsTbl2,
+
+ kEoBBaseInvSlotX,
+ kEoBBaseInvSlotY,
+ kEoBBaseSlotValidationFlags,
+
+ kEoBBaseProjectileWeaponTypes,
+ kEoBBaseWandTypes,
+
+ kEoBBaseDrawObjPosIndex,
+ kEoBBaseFlightObjFlipIndex,
+ kEoBBaseFlightObjShpMap,
+ kEoBBaseFlightObjSclIndex,
+
+ kEoB2MainMenuStrings,
+
+ kEoB2TransferPortraitFrames,
+ kEoB2TransferConvertTable,
+ kEoB2TransferItemTable,
+ kEoB2TransferExpTable,
+ kEoB2TransferStrings1,
+ kEoB2TransferStrings2,
+ kEoB2TransferLabels,
+
+ kEoB2IntroStrings,
+ kEoB2IntroCPSFiles,
+ kEob2IntroAnimData00,
+ kEob2IntroAnimData01,
+ kEob2IntroAnimData02,
+ kEob2IntroAnimData03,
+ kEob2IntroAnimData04,
+ kEob2IntroAnimData05,
+ kEob2IntroAnimData06,
+ kEob2IntroAnimData07,
+ kEob2IntroAnimData08,
+ kEob2IntroAnimData09,
+ kEob2IntroAnimData10,
+ kEob2IntroAnimData11,
+ kEob2IntroAnimData12,
+ kEob2IntroAnimData13,
+ kEob2IntroAnimData14,
+ kEob2IntroAnimData15,
+ kEob2IntroAnimData16,
+ kEob2IntroAnimData17,
+ kEob2IntroAnimData18,
+ kEob2IntroAnimData19,
+ kEob2IntroAnimData20,
+ kEob2IntroAnimData21,
+ kEob2IntroAnimData22,
+ kEob2IntroAnimData23,
+ kEob2IntroAnimData24,
+ kEob2IntroAnimData25,
+ kEob2IntroAnimData26,
+ kEob2IntroAnimData27,
+ kEob2IntroAnimData28,
+ kEob2IntroAnimData29,
+ kEob2IntroAnimData30,
+ kEob2IntroAnimData31,
+ kEob2IntroAnimData32,
+ kEob2IntroAnimData33,
+ kEob2IntroAnimData34,
+ kEob2IntroAnimData35,
+ kEob2IntroAnimData36,
+ kEob2IntroAnimData37,
+ kEob2IntroAnimData38,
+ kEob2IntroAnimData39,
+ kEob2IntroAnimData40,
+ kEob2IntroAnimData41,
+ kEob2IntroAnimData42,
+ kEob2IntroAnimData43,
+
+ kEoB2IntroShapes00,
+ kEoB2IntroShapes01,
+ kEoB2IntroShapes04,
+ kEoB2IntroShapes07,
+
+ kEoB2FinaleStrings,
+ kEoB2CreditsData,
+ kEoB2FinaleCPSFiles,
+ kEob2FinaleAnimData00,
+ kEob2FinaleAnimData01,
+ kEob2FinaleAnimData02,
+ kEob2FinaleAnimData03,
+ kEob2FinaleAnimData04,
+ kEob2FinaleAnimData05,
+ kEob2FinaleAnimData06,
+ kEob2FinaleAnimData07,
+ kEob2FinaleAnimData08,
+ kEob2FinaleAnimData09,
+ kEob2FinaleAnimData10,
+ kEob2FinaleAnimData11,
+ kEob2FinaleAnimData12,
+ kEob2FinaleAnimData13,
+ kEob2FinaleAnimData14,
+ kEob2FinaleAnimData15,
+ kEob2FinaleAnimData16,
+ kEob2FinaleAnimData17,
+ kEob2FinaleAnimData18,
+ kEob2FinaleAnimData19,
+ kEob2FinaleAnimData20,
+ kEoB2FinaleShapes00,
+ kEoB2FinaleShapes03,
+ kEoB2FinaleShapes07,
+ kEoB2FinaleShapes09,
+ kEoB2FinaleShapes10,
+
+ kEoB2NpcShapeData,
+ kEoBBaseClassModifierFlags,
+
+ kEoBBaseMonsterStepTable02,
+ kEoBBaseMonsterStepTable1,
+ kEoBBaseMonsterStepTable2,
+ kEoBBaseMonsterStepTable3,
+ kEoBBaseMonsterCloseAttPosTable1,
+ kEoBBaseMonsterCloseAttPosTable22,
+ kEoBBaseMonsterCloseAttUnkTable,
+ kEoBBaseMonsterCloseAttChkTable1,
+ kEoBBaseMonsterCloseAttChkTable2,
+ kEoBBaseMonsterCloseAttDstTable1,
+ kEoBBaseMonsterCloseAttDstTable2,
+
+ kEoBBaseMonsterProximityTable,
+ kEoBBaseFindBlockMonstersTable,
+ kEoBBaseMonsterDirChangeTable,
+ kEoBBaseMonsterDistAttStrings,
+ kEoBBaseEncodeMonsterDefs,
+ kEoBBaseNpcPresets,
+ kEoB2Npc1Strings,
+ kEoB2Npc2Strings,
+ kEoB2MonsterDustStrings,
+ kEoB2DreamSteps,
+ kEoB2KheldranStrings,
+ kEoB2HornStrings,
+ kEoB2HornSounds,
+ kEoB2WallOfForceDsX,
+ kEoB2WallOfForceDsY,
+ kEoB2WallOfForceNumW,
+ kEoB2WallOfForceNumH,
+ kEoB2WallOfForceShpId,
+
+ kRpgCommonDscShapeIndex,
+ kRpgCommonDscX,
+ kRpgCommonDscTileIndex,
+ kRpgCommonDscUnk2,
+ kRpgCommonDscDimData1,
+ kRpgCommonDscDimData2,
+ kRpgCommonDscBlockMap,
+ kRpgCommonDscDimMap,
+ kRpgCommonDscBlockIndex,
+
+ -1
+};
+
struct GameNeed {
int game;
int platform;
@@ -1055,14 +1688,18 @@ const GameNeed gameNeedTable[] = {
{ kKyra2, kPlatformPC, kDemoVersion, kyra2DemoNeed },
- { kLol, kPlatformPC, kDemoVersion, lolDemoNeed },
+ { kLoL, kPlatformPC, kDemoVersion, lolDemoNeed },
{ kKyra3, kPlatformPC, kTalkieVersion, kyra3Need },
- { kLol, kPlatformPC, kNoSpecial, lolFloppyNeed },
- { kLol, kPlatformPC98, kNoSpecial, lolPC98Need },
+ { kLoL, kPlatformPC, kNoSpecial, lolFloppyNeed },
+ { kLoL, kPlatformPC98, kNoSpecial, lolPC98Need },
+
+ { kLoL, kPlatformPC, kTalkieVersion, lolCDNeed },
+
+ { kEoB1, kPlatformPC, kNoSpecial, eob1FloppyNeed },
- { kLol, kPlatformPC, kTalkieVersion, lolCDNeed },
+ { kEoB2, kPlatformPC, kNoSpecial, eob2FloppyNeed },
{ -1, -1, -1, 0 }
};
diff --git a/devtools/create_kyradat/module.mk b/devtools/create_kyradat/module.mk
index 4241f82e34..fb458b43ff 100644
--- a/devtools/create_kyradat/module.mk
+++ b/devtools/create_kyradat/module.mk
@@ -14,8 +14,5 @@ MODULE_OBJS := \
# Set the name of the executable
TOOL_EXECUTABLE := create_kyradat
-# Link against common code (for scumm_stricmp)
-TOOL_DEPS := common/libcommon.a
-
# Include common rules
include $(srcdir)/rules.mk
diff --git a/devtools/create_kyradat/tables.cpp b/devtools/create_kyradat/tables.cpp
index 8042dcac71..1b9f90f18f 100644
--- a/devtools/create_kyradat/tables.cpp
+++ b/devtools/create_kyradat/tables.cpp
@@ -25,6 +25,8 @@
#include "tables.h"
#include "create_kyradat.h"
+#include "common/language.h"
+#include "common/platform.h"
#define EXTRACT_END_ENTRY { UNK_LANG, kPlatformUnknown, { 0, 0, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } }
@@ -137,7 +139,7 @@ const ExtractEntrySearchData k1OutroReunionSeqProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x00000547, 0x0000781C, { { 0xCF, 0xD6, 0x1D, 0x3D, 0x14, 0x40, 0x88, 0x35, 0x36, 0x4F, 0x0B, 0x1F, 0x9A, 0x1C, 0x3D, 0xAC } } } }, // floppy
{ UNK_LANG, kPlatformPC, { 0x00000547, 0x000077E0, { { 0x80, 0xC4, 0xFC, 0xD5, 0xEB, 0xAA, 0xA5, 0x87, 0x58, 0x5E, 0xAA, 0xE7, 0x01, 0x8F, 0x59, 0x3F } } } }, // floppy
{ UNK_LANG, kPlatformPC, { 0x000005E5, 0x00008918, { { 0x6A, 0x33, 0x8C, 0xB0, 0x16, 0x57, 0x2D, 0xEB, 0xB2, 0xE1, 0x64, 0x80, 0x98, 0x99, 0x98, 0x19 } } } }, // CD
-
+
{ UNK_LANG, kPlatformAmiga, { 0x0000054A, 0x0000785F, { { 0x55, 0xEA, 0xB8, 0x7F, 0x3A, 0x86, 0xCD, 0xA6, 0xBC, 0xA7, 0x9A, 0x39, 0xED, 0xF5, 0x30, 0x0A } } } },
{ UNK_LANG, kPlatformUnknown, { 0x00000547, 0x00007876, { { 0x7A, 0xC7, 0x80, 0x34, 0x7A, 0x1B, 0xAB, 0xF8, 0xA7, 0x2F, 0x63, 0x3C, 0xDA, 0x89, 0x3F, 0x82 } } } }, // some floppy DOS + FM-TOWNS
@@ -342,9 +344,9 @@ const ExtractEntrySearchData k1PlacedStringsProvider[] = {
{ IT_ITA, kPlatformPC, { 0x0000000D, 0x0000040D, { { 0x9C, 0x71, 0x53, 0x35, 0xC3, 0xE8, 0x46, 0xB9, 0xD2, 0xFA, 0x1C, 0x8C, 0xC3, 0xFF, 0xBC, 0x1F } } } }, // floppy
{ IT_ITA, kPlatformPC, { 0x00000011, 0x000003B8, { { 0xC8, 0xA6, 0xE4, 0x8A, 0xF7, 0x4C, 0x3F, 0xA6, 0x24, 0x7F, 0xEF, 0xE4, 0x63, 0x8B, 0x72, 0xF3 } } } }, // (fan) CD
-
+
{ ES_ESP, kPlatformPC, { 0x0000000D, 0x00000439, { { 0x57, 0xAE, 0x1C, 0xC1, 0xF5, 0xE8, 0x5B, 0x9E, 0x90, 0x02, 0xB9, 0x8D, 0x86, 0x38, 0xFB, 0xA8 } } } },
-
+
{ RU_RUS, kPlatformPC, { 0x00000009, 0x00000203, { { 0x7D, 0xAE, 0x67, 0x94, 0x8E, 0x73, 0x35, 0xC1, 0x11, 0xB4, 0x55, 0x6E, 0x92, 0x25, 0x39, 0xE4 } } } },
EXTRACT_END_ENTRY
@@ -563,7 +565,7 @@ const ExtractEntrySearchData k1ThePoisonStringsProvider[] = {
{ ES_ESP, kPlatformPC, { 0x00000059, 0x00001DF7, { { 0x16, 0x7B, 0x5F, 0x91, 0x06, 0x5B, 0xFC, 0x9C, 0x88, 0x61, 0xCC, 0x1B, 0x52, 0x4F, 0x91, 0xC5 } } } },
{ RU_RUS, kPlatformPC, { 0x00000052, 0x0000136F, { { 0xEF, 0xD2, 0xA0, 0x5F, 0xD5, 0xE6, 0x77, 0x96, 0xFA, 0xC5, 0x60, 0x7C, 0xB7, 0xA8, 0x7C, 0x7A } } } },
-
+
{ EN_ANY, kPlatformAmiga, { 0x00000058, 0x00001C24, { { 0xBA, 0x1F, 0xBD, 0x5C, 0x85, 0x3D, 0x3C, 0x92, 0xD1, 0x13, 0xF3, 0x40, 0x2E, 0xBB, 0x1C, 0xE2 } } } },
{ DE_DEU, kPlatformAmiga, { 0x00000073, 0x00002690, { { 0x44, 0xAE, 0xC9, 0xFD, 0x9F, 0x8E, 0x1B, 0xDD, 0x3F, 0xE4, 0x4D, 0x4B, 0x5A, 0x13, 0xE5, 0x99 } } } },
@@ -1113,6 +1115,7 @@ const ExtractEntrySearchData k2SeqplayStringsProvider[] = {
{ IT_ITA, kPlatformPC, { 0x00000916, 0x0003188F, { { 0xDC, 0x46, 0x06, 0xE1, 0xB0, 0x66, 0xBC, 0x18, 0x2E, 0x6E, 0x9E, 0xC9, 0xA4, 0x14, 0x8D, 0x08 } } } }, // floppy
{ IT_ITA, kPlatformPC, { 0x000008C8, 0x00030947, { { 0x7F, 0x75, 0x5F, 0x99, 0x94, 0xFE, 0xA1, 0xE6, 0xEF, 0xB8, 0x93, 0x71, 0x83, 0x1B, 0xAC, 0x4A } } } }, // (fan) CD
+ { RU_RUS, kPlatformPC, { 0x00000916, 0x00032C49, { { 0xEA, 0x5C, 0xE5, 0x06, 0x05, 0x5F, 0x36, 0xE8, 0x31, 0x3E, 0xBF, 0x74, 0x73, 0xFB, 0xAB, 0xFF } } } }, // (fan) CD - intro and outro strings haven't been translated in this fan translation
{ RU_RUS, kPlatformPC, { 0x000008C8, 0x00028639, { { 0xF9, 0x1D, 0x6A, 0x85, 0x23, 0x5E, 0x2A, 0x64, 0xBC, 0x45, 0xB2, 0x48, 0x13, 0x49, 0xD4, 0xF7 } } } }, // (fan) floppy
{ EN_ANY, kPlatformFMTowns, { 0x00000990, 0x00030C61, { { 0x60, 0x51, 0x11, 0x83, 0x3F, 0x06, 0xC3, 0xA3, 0xE0, 0xC0, 0x2F, 0x41, 0x29, 0xDE, 0x65, 0xB1 } } } },
@@ -1142,6 +1145,7 @@ const ExtractEntrySearchData k2SeqplayTlkFilesProvider[] = {
{ FR_FRA, kPlatformPC, { 0x0000009D, 0x00002878, { { 0x28, 0x5D, 0x7F, 0x5B, 0x57, 0xC2, 0xFF, 0x73, 0xC1, 0x8E, 0xD6, 0xE0, 0x4D, 0x03, 0x99, 0x2C } } } },
{ DE_DEU, kPlatformPC, { 0x0000009D, 0x00002885, { { 0x87, 0x24, 0xB6, 0xE9, 0xD6, 0xAA, 0x68, 0x2D, 0x6B, 0x05, 0xDF, 0xE1, 0x2B, 0xA4, 0x79, 0xE5 } } } },
{ IT_ITA, kPlatformPC, { 0x0000009D, 0x0000286B, { { 0x58, 0x30, 0x72, 0x62, 0xC8, 0x77, 0x2A, 0x06, 0xD6, 0x24, 0x1A, 0x7A, 0xAF, 0x79, 0xFF, 0xAE } } } },
+ { RU_RUS, kPlatformPC, { 0x0000009D, 0x0000286B, { { 0x58, 0x30, 0x72, 0x62, 0xC8, 0x77, 0x2A, 0x06, 0xD6, 0x24, 0x1A, 0x7A, 0xAF, 0x79, 0xFF, 0xAE } } } },
EXTRACT_END_ENTRY
};
@@ -1222,7 +1226,7 @@ const ExtractEntrySearchData k2IngamePakFilesProvider[] = {
const ExtractEntrySearchData k2IngameSfxFilesProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x000006F1, 0x0001545E, { { 0xD3, 0x8A, 0xA1, 0xD4, 0x83, 0x77, 0x96, 0x6D, 0x87, 0xB1, 0x71, 0x8F, 0x38, 0x6A, 0x34, 0xDC } } } },
{ UNK_LANG, kPlatformFMTowns, { 0x00000967, 0x0002101A, { { 0x09, 0xC7, 0xB7, 0x2A, 0x76, 0xF1, 0x4B, 0x87, 0xC5, 0x83, 0xFF, 0xF3, 0xDB, 0x3C, 0x66, 0x60 } } } },
- { UNK_LANG, kPlatformPC98, { 0x000006F1, 0x0001545E, { { 0xD3, 0x8A, 0xA1, 0xD4, 0x83, 0x77, 0x96, 0x6D, 0x87, 0xB1, 0x71, 0x8F, 0x38, 0x6A, 0x34, 0xDC } } } },
+ { UNK_LANG, kPlatformPC98, { 0x000006F1, 0x0001545E, { { 0xD3, 0x8A, 0xA1, 0xD4, 0x83, 0x77, 0x96, 0x6D, 0x87, 0xB1, 0x71, 0x8F, 0x38, 0x6A, 0x34, 0xDC } } } },
EXTRACT_END_ENTRY
};
@@ -1331,14 +1335,2017 @@ const ExtractEntrySearchData k3ItemStringMapProvider[] = {
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolIngamePakFilesProvider[] = {
+const ExtractEntrySearchData kEoBBaseChargenStrings1Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x000000CA, 0x00003BC8, { { 0x27, 0xEA, 0xE3, 0x0D, 0x55, 0xB3, 0x69, 0x3E, 0xC2, 0x66, 0x58, 0x64, 0xAA, 0xC2, 0x80, 0x58 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x000000C3, 0x000038F6, { { 0x20, 0x68, 0xAB, 0xD4, 0xBF, 0x49, 0x04, 0xC0, 0x91, 0xB4, 0x71, 0xB0, 0xB6, 0xC9, 0x11, 0xF0 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x000000C7, 0x00003ADB, { { 0x0D, 0x03, 0x7A, 0xE6, 0x7D, 0x41, 0x89, 0x49, 0x0C, 0xB6, 0xD0, 0x4F, 0xEA, 0x1E, 0x54, 0xFF } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseChargenStrings2Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000004B, 0x000011AE, { { 0x28, 0x98, 0x4C, 0xA3, 0x98, 0xB0, 0xA2, 0x17, 0x9C, 0x80, 0x4F, 0x3F, 0x58, 0x3B, 0x2C, 0xFB } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000004E, 0x0000129D, { { 0xED, 0xF3, 0x36, 0x16, 0xE2, 0x1B, 0x32, 0x95, 0xFE, 0xE8, 0x3E, 0x7D, 0xE6, 0x32, 0x34, 0xD4 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000004A, 0x00001267, { { 0xD6, 0xE2, 0x27, 0x6A, 0x6F, 0x7E, 0xB4, 0xCE, 0xA8, 0xE9, 0x79, 0x31, 0x5C, 0x13, 0xA1, 0x8F } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseChargenStartLevelsProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000003C, 0x00000054, { { 0xAB, 0x68, 0x74, 0x3E, 0x0D, 0x45, 0xA3, 0x50, 0xA7, 0x72, 0x6A, 0xDF, 0x9C, 0x23, 0x98, 0x74 } } } }, // EOB 1
+ { UNK_LANG, kPlatformUnknown, { 0x0000003C, 0x000000B1, { { 0xFD, 0x3F, 0x6B, 0xB5, 0xE4, 0xEE, 0x32, 0x3B, 0xBD, 0x72, 0x37, 0x88, 0x52, 0x84, 0xBD, 0xC6 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseChargenStatStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000055, 0x000015D6, { { 0xB8, 0x29, 0x4B, 0xA4, 0x4F, 0x45, 0x16, 0x1A, 0x07, 0x28, 0x14, 0x86, 0x1B, 0xDF, 0xAC, 0xDF } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000056, 0x000015F9, { { 0xBB, 0x5A, 0x7D, 0xCF, 0xC3, 0x90, 0x9A, 0xB3, 0x73, 0xB2, 0x4D, 0x46, 0xB8, 0x89, 0x7D, 0xAE } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000053, 0x0000159A, { { 0x1D, 0xA6, 0x84, 0xDB, 0xC5, 0x81, 0xC7, 0xF0, 0x1C, 0xA4, 0xE3, 0x10, 0x4F, 0x8A, 0xF3, 0xCE } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseChargenRaceSexStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000098, 0x00002572, { { 0x8D, 0xF9, 0xDE, 0x92, 0xFC, 0xA8, 0xFC, 0xE9, 0x0A, 0x98, 0x6D, 0xA4, 0x6F, 0x21, 0xCD, 0xF4 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x000000AA, 0x00002A1E, { { 0x8E, 0xAF, 0x4B, 0x20, 0xEA, 0xFE, 0x71, 0x8E, 0x8B, 0x4B, 0x46, 0x62, 0x91, 0x48, 0x08, 0xAF } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000098, 0x00002502, { { 0xA4, 0x8B, 0x20, 0xF5, 0x97, 0xFE, 0x34, 0x6D, 0x9F, 0xF0, 0xA8, 0xE9, 0xE8, 0xFA, 0x23, 0x9B } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseChargenClassStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x000000D5, 0x000035A7, { { 0xAF, 0x89, 0x9A, 0x11, 0x9A, 0x8D, 0x39, 0x6F, 0x26, 0x41, 0x4E, 0x20, 0xAD, 0x91, 0xC5, 0xDA } } } },
+ { DE_DEU, kPlatformUnknown, { 0x000000FA, 0x00003FD8, { { 0xBD, 0x78, 0xF7, 0xEC, 0x9D, 0x9A, 0x3A, 0x22, 0xAB, 0xD9, 0x10, 0xAD, 0x8E, 0x1D, 0x4D, 0xDE } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x000000E4, 0x00003BE5, { { 0xDE, 0x1B, 0x25, 0x4F, 0xE6, 0xD0, 0xB5, 0x95, 0xD0, 0xA6, 0x69, 0xE6, 0x53, 0xB8, 0x20, 0x1E } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseChargenAlignmentStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000078, 0x00001F44, { { 0xBB, 0x52, 0x3C, 0xA6, 0x79, 0x87, 0xDC, 0xB8, 0x21, 0x7A, 0xA0, 0x17, 0x45, 0xEA, 0xF2, 0x50 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000008A, 0x00002423, { { 0xA3, 0x36, 0x0D, 0x64, 0x33, 0xFD, 0x54, 0xA5, 0xA9, 0xD7, 0xFA, 0x34, 0x39, 0xAD, 0x6A, 0x98 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000007F, 0x000021F8, { { 0xBD, 0xB2, 0x06, 0xF9, 0xC9, 0x36, 0x5D, 0x91, 0x43, 0x08, 0x3A, 0x2C, 0x5F, 0x1C, 0xF3, 0x9C } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseChargenEnterGameStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000020, 0x00000A0E, { { 0x98, 0x7F, 0x2C, 0x2E, 0xBB, 0x5E, 0xAA, 0xD0, 0x72, 0xF5, 0xBC, 0x4A, 0x34, 0x5B, 0xB4, 0xF5 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000021, 0x00000AB6, { { 0x02, 0x7F, 0x19, 0x5A, 0xA9, 0xB7, 0x8C, 0xE2, 0xF7, 0x35, 0xB0, 0xD8, 0xA8, 0x0C, 0x24, 0x44 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000001E, 0x00000925, { { 0xDA, 0x83, 0x00, 0xD2, 0x94, 0xF0, 0xD8, 0xFC, 0x3D, 0xA8, 0xD2, 0x4E, 0xF2, 0xD7, 0x2B, 0x7E } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseChargenClassMinStatsProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x000000B4, 0x00000165, { { 0x83, 0x5E, 0x91, 0x10, 0x4D, 0x75, 0x6B, 0xF9, 0x45, 0x1B, 0x65, 0x13, 0x37, 0x3E, 0xC0, 0xAE } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseChargenRaceMinStatsProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000048, 0x000000B2, { { 0x08, 0xF0, 0x8F, 0x22, 0x9D, 0xD8, 0xBE, 0x52, 0x70, 0x7C, 0xCA, 0x8D, 0xB2, 0xF5, 0xC6, 0xB8 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseChargenRaceMaxStatsProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000048, 0x00000479, { { 0xBD, 0xA0, 0x8C, 0xC2, 0x05, 0xCA, 0x0D, 0x4B, 0x82, 0x9B, 0x3D, 0xB5, 0x4B, 0xDB, 0xD2, 0xC1 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSaveThrowTable1Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000032, 0x00000214, { { 0x3D, 0x89, 0x30, 0x0A, 0x5C, 0x4A, 0x0F, 0xC3, 0xC7, 0x6B, 0x72, 0x7C, 0x12, 0x51, 0x8D, 0x8E } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSaveThrowTable2Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000019, 0x000000E7, { { 0xF4, 0x0D, 0xDF, 0xA3, 0x23, 0x71, 0x76, 0x2A, 0xC5, 0x6F, 0xF1, 0x59, 0x5F, 0x45, 0x73, 0x05 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSaveThrowTable3Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000023, 0x00000155, { { 0x42, 0x98, 0x84, 0x00, 0x70, 0x8A, 0x7B, 0x26, 0xC0, 0x96, 0xA3, 0x28, 0x41, 0x36, 0x4B, 0x21 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSaveThrowTable4Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000001E, 0x0000013B, { { 0xAB, 0x84, 0x2B, 0x0A, 0xC2, 0x46, 0xFF, 0x83, 0x03, 0xF8, 0x3F, 0x32, 0x53, 0xA2, 0x95, 0x65 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSaveThrwLvlIndexProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000006, 0x00000070, { { 0x57, 0x48, 0x5F, 0x75, 0x79, 0xD4, 0xAA, 0x7D, 0xB7, 0xEB, 0x19, 0x9F, 0xCF, 0x99, 0x29, 0x29 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSaveThrwModDivProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000006, 0x00000012, { { 0x50, 0x29, 0x51, 0x65, 0x0B, 0xF1, 0xCC, 0xDA, 0x2C, 0xA4, 0x7E, 0xEE, 0x20, 0xB0, 0x29, 0xB1 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSaveThrwModExtProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000006, 0x00000030, { { 0x07, 0x7D, 0x61, 0x1C, 0x95, 0xEC, 0x9A, 0xCE, 0xA1, 0x29, 0x83, 0x2F, 0xCA, 0x95, 0x95, 0xF5 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBasePryDoorStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x000000E8, 0x00004D9F, { { 0xDE, 0x01, 0x69, 0x00, 0x0B, 0x32, 0xFA, 0x20, 0xB8, 0x11, 0xD6, 0xD9, 0xE2, 0xEA, 0xF5, 0xE8 } } } }, // EOB 1
+ { EN_ANY, kPlatformUnknown, { 0x000000D2, 0x000043D2, { { 0x82, 0x3C, 0xF4, 0x4A, 0x87, 0x84, 0xFE, 0xF9, 0xBA, 0xC6, 0x67, 0x3A, 0x0D, 0x0F, 0x76, 0x78 } } } }, // EOB 2
+ { DE_DEU, kPlatformUnknown, { 0x00000128, 0x0000657C, { { 0xA3, 0xC8, 0x48, 0xA7, 0x1F, 0x75, 0xDF, 0xB0, 0x37, 0xDA, 0x75, 0x2E, 0x9F, 0x4E, 0x45, 0xB0 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x000000D9, 0x00004769, { { 0x24, 0x59, 0x00, 0x8F, 0x9A, 0x3E, 0x95, 0xAB, 0x14, 0x9A, 0x3B, 0x19, 0x34, 0xDB, 0x9B, 0x18 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseWarningStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000052, 0x00001A7B, { { 0x81, 0x7A, 0xDF, 0xD2, 0x4F, 0xA7, 0x92, 0xA7, 0x44, 0xE5, 0x22, 0x73, 0xF6, 0xB3, 0x29, 0x5C } } } }, // EOB 1
+ { EN_ANY, kPlatformUnknown, { 0x00000085, 0x00002B5C, { { 0xF1, 0xCE, 0x7C, 0x53, 0xEF, 0x5B, 0x59, 0x71, 0xA9, 0xEB, 0x00, 0xBA, 0xB7, 0x59, 0xC5, 0x2E } } } }, // EOB 2
+ { DE_DEU, kPlatformUnknown, { 0x0000005F, 0x00001FD2, { { 0xBA, 0x85, 0x97, 0x63, 0x84, 0x80, 0x79, 0x44, 0x50, 0x99, 0x1A, 0x01, 0x37, 0x37, 0x0E, 0xD1 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000096, 0x000032BF, { { 0x07, 0x95, 0x91, 0x1A, 0x1B, 0xC8, 0xA3, 0xEE, 0x76, 0x0A, 0x48, 0x11, 0x37, 0x6F, 0xBA, 0x05 } } } }, // EOB 1
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseItemSuffixStringsRingsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000002B, 0x00000F7B, { { 0x8A, 0x27, 0x87, 0x81, 0x5F, 0x74, 0x27, 0xA9, 0x5E, 0x1B, 0xEE, 0xC0, 0xF7, 0x22, 0x8F, 0x57 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000022, 0x00000C02, { { 0x7D, 0x5F, 0x40, 0xEA, 0xAD, 0xDD, 0x1B, 0xA0, 0xA6, 0xE0, 0x57, 0x7D, 0x0D, 0x60, 0xF4, 0x2C } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000002E, 0x00000FF2, { { 0xE1, 0x50, 0xB7, 0xE2, 0xEF, 0xAD, 0x5B, 0x6D, 0x27, 0x35, 0x9C, 0xE7, 0x2D, 0xB2, 0x2E, 0xD0 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseItemSuffixStringsPotionsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000054, 0x00001DDB, { { 0xB6, 0x78, 0xD9, 0x09, 0x1D, 0x09, 0x63, 0xF8, 0x96, 0x74, 0xF0, 0x75, 0x23, 0xF5, 0xD4, 0xC4 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000064, 0x000024ED, { { 0x10, 0x5A, 0xB8, 0xCA, 0x0F, 0x0D, 0x44, 0x19, 0x9D, 0x3D, 0x76, 0x54, 0xA1, 0x69, 0x97, 0x8B } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000006F, 0x00002792, { { 0x1A, 0x71, 0x2B, 0xCC, 0xCA, 0xDA, 0xF6, 0xED, 0x5E, 0xF0, 0x24, 0x20, 0xD7, 0x2D, 0x18, 0x49 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseItemSuffixStringsWandsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000003C, 0x000014EB, { { 0xB5, 0x38, 0x35, 0x57, 0xF2, 0xF8, 0x0E, 0xBA, 0x75, 0x03, 0x1C, 0xCD, 0x46, 0x7D, 0x03, 0x83 } } } }, // EOB 1
+ { EN_ANY, kPlatformUnknown, { 0x0000004A, 0x000019B2, { { 0x44, 0x10, 0xE4, 0xAF, 0xAB, 0x19, 0x25, 0x87, 0x2B, 0x15, 0x1C, 0x4C, 0x03, 0x50, 0x41, 0xC4 } } } }, // EOB 2
+ { DE_DEU, kPlatformUnknown, { 0x00000040, 0x000016B5, { { 0xEC, 0xF4, 0x71, 0xC1, 0x69, 0x5C, 0xF9, 0xC1, 0xED, 0xC1, 0xED, 0x0C, 0x25, 0x3E, 0x13, 0xB1 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000069, 0x0000252B, { { 0x12, 0x06, 0xEA, 0x2F, 0xAF, 0x47, 0x55, 0x52, 0xB6, 0xD9, 0x11, 0xA4, 0x4F, 0x30, 0xCE, 0x9D } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseRipItemStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000025, 0x00000AEA, { { 0x7A, 0x2D, 0x03, 0xA5, 0x94, 0xD1, 0xA2, 0x2C, 0x41, 0x1F, 0xEB, 0x5C, 0xFB, 0xB2, 0xC6, 0x9E } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000024, 0x00000B1B, { { 0xD0, 0x26, 0x19, 0x0B, 0xA5, 0x8A, 0x38, 0x73, 0x14, 0x25, 0x40, 0x5D, 0x24, 0xB8, 0x4E, 0xC5 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000002E, 0x00000D38, { { 0xCE, 0xC5, 0x00, 0x63, 0xBB, 0xF0, 0xC4, 0x0D, 0x50, 0x2B, 0x82, 0x1C, 0xC0, 0xCD, 0xF1, 0xAF } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCursedStringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000000D, 0x000003C7, { { 0x7F, 0x6B, 0x6A, 0xFE, 0x63, 0xF4, 0x17, 0xAF, 0xFD, 0x00, 0x31, 0x4A, 0x20, 0x9E, 0x8C, 0xEB } } } }, // EOB 1
+ { EN_ANY, kPlatformUnknown, { 0x0000000D, 0x000003C7, { { 0x59, 0xD8, 0x84, 0x25, 0xE0, 0x06, 0x51, 0xA4, 0x70, 0xC5, 0x78, 0x22, 0xF0, 0x2D, 0xA0, 0x43 } } } }, // EOB 2
+ { DE_DEU, kPlatformUnknown, { 0x00000010, 0x00000514, { { 0x97, 0x41, 0xA6, 0xAE, 0xF8, 0xA8, 0x3E, 0x85, 0xA8, 0x16, 0x01, 0x15, 0x0E, 0x46, 0x13, 0x45 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000013, 0x000005A5, { { 0xEC, 0xD3, 0xA5, 0xD2, 0xAD, 0x7C, 0x5E, 0x0F, 0x42, 0xBC, 0x6E, 0xDE, 0x7E, 0x36, 0x0B, 0x43 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseEnchantedStringProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000007, 0x0000016C, { { 0x98, 0x62, 0xD3, 0xA3, 0x11, 0xAE, 0x0A, 0xBA, 0x8F, 0xE8, 0x30, 0x0B, 0xDC, 0x12, 0x90, 0x3B } } } }, // EOB 1
+ { UNK_LANG, kPlatformUnknown, { 0x00000007, 0x0000016C, { { 0x01, 0x91, 0xBD, 0x89, 0xAE, 0x0E, 0x71, 0xEE, 0xBE, 0x31, 0xD9, 0x55, 0x21, 0x61, 0x19, 0xAE } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMagicObjectStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000002B, 0x00000E7D, { { 0x7E, 0x8F, 0x17, 0xEB, 0xE5, 0x5D, 0xEB, 0x9A, 0x84, 0xFF, 0x86, 0x6A, 0x01, 0x3E, 0x04, 0x84 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000003A, 0x000014E4, { { 0x3D, 0x34, 0x3C, 0xCA, 0xDC, 0xD1, 0xCF, 0x15, 0x69, 0x57, 0xC3, 0xB1, 0x58, 0xDF, 0xE9, 0x9D } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000002A, 0x00000EE4, { { 0x9C, 0x38, 0x4B, 0x9B, 0x67, 0x30, 0x4E, 0x88, 0xA9, 0xA2, 0xF8, 0x78, 0x8E, 0xC7, 0xC3, 0x86 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMagicObject5StringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000006, 0x000001FE, { { 0x74, 0x8D, 0xB9, 0x76, 0xD2, 0x2F, 0x60, 0xD2, 0x36, 0x45, 0x98, 0x4C, 0x0A, 0xE5, 0xE5, 0x0D } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000006, 0x00000204, { { 0xE4, 0xC1, 0xAD, 0x71, 0x87, 0x80, 0x9D, 0x97, 0x91, 0x80, 0x3F, 0x71, 0xD3, 0x62, 0x06, 0xD5 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000007, 0x0000027A, { { 0x44, 0x47, 0x79, 0x46, 0x9B, 0xE5, 0xBD, 0x3C, 0xE8, 0x8D, 0xC6, 0xC5, 0x4E, 0x88, 0x13, 0xC0 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBasePatternSuffixProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000009, 0x00000245, { { 0x67, 0x3F, 0x33, 0xA5, 0x3B, 0x5D, 0x2C, 0x9E, 0x15, 0x82, 0x04, 0xE2, 0xD7, 0x34, 0x42, 0x24 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000006, 0x0000015D, { { 0x33, 0xD6, 0x91, 0x2D, 0xED, 0xE1, 0x43, 0x42, 0x23, 0xB9, 0xE9, 0x3D, 0x48, 0x82, 0x92, 0x1E } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000008, 0x00000219, { { 0xCD, 0xDC, 0x7F, 0x8B, 0xBE, 0xD6, 0x05, 0x37, 0xDA, 0xDC, 0x11, 0xC3, 0x1E, 0x7A, 0xE7, 0x13 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBasePatternGrFix1Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000009, 0x00000245, { { 0x67, 0x3F, 0x33, 0xA5, 0x3B, 0x5D, 0x2C, 0x9E, 0x15, 0x82, 0x04, 0xE2, 0xD7, 0x34, 0x42, 0x24 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000006, 0x0000015D, { { 0x33, 0xD6, 0x91, 0x2D, 0xED, 0xE1, 0x43, 0x42, 0x23, 0xB9, 0xE9, 0x3D, 0x48, 0x82, 0x92, 0x1E } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000007, 0x0000018A, { { 0x02, 0x5C, 0x86, 0xD9, 0x62, 0x0C, 0x71, 0xB3, 0x77, 0x9C, 0x7B, 0xBC, 0x4D, 0x5B, 0xDB, 0xE7 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBasePatternGrFix2Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000009, 0x00000245, { { 0x67, 0x3F, 0x33, 0xA5, 0x3B, 0x5D, 0x2C, 0x9E, 0x15, 0x82, 0x04, 0xE2, 0xD7, 0x34, 0x42, 0x24 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000006, 0x0000015D, { { 0x33, 0xD6, 0x91, 0x2D, 0xED, 0xE1, 0x43, 0x42, 0x23, 0xB9, 0xE9, 0x3D, 0x48, 0x82, 0x92, 0x1E } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000006, 0x00000150, { { 0x48, 0xBE, 0xED, 0xD3, 0xA5, 0x2E, 0xCD, 0xE0, 0x34, 0xBA, 0xA6, 0x8D, 0x7D, 0x00, 0xA2, 0xFF } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseValidateArmorStringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000023, 0x00000B78, { { 0xC2, 0x33, 0x6B, 0xB9, 0xE1, 0x5E, 0x88, 0x5E, 0x22, 0xF2, 0x97, 0x83, 0xF8, 0xC8, 0x8C, 0xAB } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000026, 0x00000D19, { { 0xAD, 0x19, 0xE2, 0xDE, 0x04, 0xF9, 0x8F, 0x92, 0xAC, 0x1A, 0x05, 0xEA, 0x7B, 0xB5, 0x9F, 0x09 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000029, 0x00000E7A, { { 0xEC, 0xA8, 0x2E, 0x8D, 0xB1, 0xC8, 0x0F, 0xCD, 0x24, 0xBD, 0x4B, 0x39, 0x16, 0xC9, 0x53, 0x08 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseValidateCursedStringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000002E, 0x00000F35, { { 0xE7, 0x0E, 0xA1, 0xCE, 0xCC, 0x13, 0xBC, 0x4B, 0x2B, 0x19, 0xEB, 0xA4, 0x05, 0xCF, 0xCF, 0x65 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000037, 0x000012D8, { { 0x3C, 0x7F, 0x16, 0xCE, 0x40, 0x58, 0xF1, 0x3A, 0xAB, 0x4C, 0x37, 0x82, 0x32, 0x88, 0xA4, 0x2D } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseValidateNoDropStringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000001F, 0x00000A8F, { { 0x61, 0x99, 0x3E, 0x36, 0x49, 0x19, 0xB4, 0xE4, 0xBC, 0xFA, 0xB5, 0x71, 0x0E, 0xD6, 0x15, 0x3C } } } }, // EOB 1
+ { EN_ANY, kPlatformUnknown, { 0x00000020, 0x00000AB6, { { 0xAA, 0x0E, 0x64, 0xD1, 0xA2, 0xA6, 0x62, 0x76, 0x51, 0xDF, 0x9E, 0x76, 0x85, 0x42, 0xE1, 0x4A } } } }, // EOB 2
+ { DE_DEU, kPlatformUnknown, { 0x00000024, 0x00000C31, { { 0x10, 0xD9, 0x55, 0x69, 0xFE, 0x0A, 0x8C, 0xE5, 0xF7, 0x05, 0x5F, 0x09, 0x3B, 0xC9, 0x93, 0x38 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000027, 0x00000D9F, { { 0xA5, 0xF0, 0x8E, 0x78, 0x0A, 0x37, 0x31, 0xDC, 0xE0, 0xDF, 0xE5, 0xCB, 0x86, 0xDC, 0x21, 0x73 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBasePotionStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000017, 0x0000070E, { { 0xD9, 0xCB, 0x26, 0xB6, 0x6F, 0x17, 0x12, 0xB7, 0xB0, 0x95, 0x1B, 0x2A, 0xD8, 0x83, 0x0D, 0x2B } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000001E, 0x000009BD, { { 0xCA, 0xD0, 0x29, 0xB0, 0x7A, 0x2B, 0x0B, 0x69, 0xCA, 0xA4, 0xCA, 0x97, 0xCF, 0x8B, 0x03, 0xAD } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000001D, 0x00000964, { { 0x5D, 0xE2, 0xA5, 0x0D, 0x72, 0xE9, 0x8F, 0xC9, 0xFA, 0xF3, 0x41, 0x5A, 0x3F, 0x33, 0xAA, 0x15 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseWandStringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000035, 0x000011EC, { { 0x7C, 0x3D, 0xF1, 0x28, 0x0C, 0x23, 0xD3, 0x18, 0xEE, 0xAD, 0xA7, 0xF4, 0x58, 0xD7, 0x1C, 0x8E } } } }, // EOB 1
+ { EN_ANY, kPlatformUnknown, { 0x00000029, 0x00000E47, { { 0xED, 0x2E, 0xD4, 0x4D, 0xDB, 0x90, 0x3F, 0xD0, 0xFB, 0x95, 0xB8, 0xF2, 0xCF, 0x06, 0x08, 0xAF } } } }, // EOB 2
+ { DE_DEU, kPlatformUnknown, { 0x00000046, 0x0000186E, { { 0x54, 0x8F, 0x53, 0x34, 0xE8, 0x81, 0x76, 0x71, 0x53, 0x3F, 0x99, 0xE7, 0xCF, 0xB7, 0xC9, 0xD9 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000002F, 0x00001070, { { 0x86, 0x18, 0x00, 0x54, 0x05, 0x3D, 0xC2, 0x26, 0xA7, 0xD9, 0x68, 0xE6, 0xC2, 0x0D, 0x26, 0x99 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseItemMisuseStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000066, 0x000022F6, { { 0xE8, 0xB9, 0x07, 0x61, 0x29, 0x90, 0xB0, 0x22, 0x30, 0xC5, 0x0F, 0xAD, 0xCA, 0x6C, 0x83, 0xC6 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000068, 0x00002472, { { 0xCA, 0xD7, 0xFD, 0x5B, 0x65, 0x72, 0xC7, 0x15, 0xB3, 0xFE, 0xFC, 0xEF, 0x53, 0xFB, 0x57, 0x6C } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000007E, 0x00002C87, { { 0x5E, 0x11, 0xC9, 0x93, 0xF4, 0xAB, 0x1A, 0x9D, 0xA7, 0x62, 0x71, 0x94, 0x37, 0xCA, 0xE2, 0x25 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseTakenStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000009, 0x0000026E, { { 0x3B, 0x73, 0x70, 0x2E, 0x22, 0x90, 0x0D, 0xC1, 0xDE, 0x32, 0x11, 0xCC, 0x97, 0xBA, 0xA3, 0x58 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000000F, 0x000004ED, { { 0x8D, 0x12, 0x1E, 0x91, 0xD3, 0xF4, 0x34, 0x15, 0xC7, 0x4F, 0xE7, 0x23, 0x5B, 0xE8, 0x66, 0xB7 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBasePotionEffectStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000065, 0x0000248F, { { 0x4F, 0x60, 0x7F, 0xA7, 0x6F, 0x81, 0xD4, 0xAA, 0x68, 0xD5, 0xAA, 0xBE, 0xBC, 0xD4, 0x92, 0x3A } } } }, // EOB 1
+ { EN_ANY, kPlatformUnknown, { 0x0000005D, 0x0000219D, { { 0x87, 0x60, 0x9F, 0xF3, 0x1B, 0x30, 0x4B, 0x2B, 0xE4, 0x94, 0xEF, 0x22, 0xEA, 0x36, 0xE4, 0x7F } } } }, // EOB 2
+ { DE_DEU, kPlatformUnknown, { 0x0000006E, 0x00002840, { { 0x04, 0xF8, 0x53, 0x38, 0x09, 0xD8, 0x58, 0xFC, 0x5F, 0xE9, 0x69, 0xFB, 0x9C, 0x0D, 0x92, 0x2E } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000059, 0x000020D2, { { 0xB6, 0xA1, 0x57, 0xD6, 0x46, 0xE3, 0xCF, 0x04, 0x5A, 0xC8, 0xBB, 0x59, 0x8D, 0xE3, 0x6F, 0xBF } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseYesNoStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000007, 0x0000022E, { { 0xF1, 0x30, 0x61, 0xA7, 0x20, 0x71, 0x3B, 0x75, 0xBE, 0xA7, 0xD6, 0x78, 0x34, 0xF7, 0x19, 0x06 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000008, 0x00000275, { { 0xAF, 0x3E, 0xC5, 0x5A, 0x60, 0x34, 0x9B, 0x39, 0x37, 0x9E, 0xE2, 0x17, 0x23, 0x8E, 0x23, 0x23 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kRpgCommonMoreStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000005, 0x00000133, { { 0xA6, 0x1A, 0x3A, 0xB8, 0xCC, 0x92, 0xB8, 0xBE, 0x28, 0xD6, 0x64, 0x8F, 0x0A, 0x2A, 0x39, 0xCD } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000005, 0x0000012C, { { 0x82, 0x30, 0x00, 0xD6, 0xFA, 0x53, 0x17, 0x69, 0x64, 0xCA, 0xFE, 0x0F, 0x92, 0xEF, 0x87, 0x7A } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseNpcMaxStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000052, 0x00001D23, { { 0x95, 0xB0, 0xBF, 0xF9, 0xE6, 0x8C, 0xCF, 0x9B, 0x36, 0xE3, 0x81, 0x22, 0x1E, 0x68, 0x9E, 0xBE } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000064, 0x00002341, { { 0xC0, 0xA6, 0xCD, 0x5E, 0x8E, 0xFA, 0x89, 0xE4, 0x98, 0xE5, 0x3D, 0x13, 0x6B, 0xE7, 0x8F, 0x6E } } } }, // EoB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000003E, 0x00001613, { { 0x4E, 0x31, 0x7F, 0xC4, 0xC7, 0x9C, 0xB5, 0x7D, 0x36, 0x85, 0xD8, 0x81, 0xE2, 0x06, 0xF9, 0xAE } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseOkStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000003, 0x0000009A, { { 0x88, 0xD2, 0x76, 0x1C, 0x80, 0x02, 0xC5, 0x5B, 0x35, 0x57, 0x0E, 0xEB, 0xCA, 0xD6, 0xC9, 0x2E } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000003, 0x0000009A, { { 0x88, 0xD2, 0x76, 0x1C, 0x80, 0x02, 0xC5, 0x5B, 0x35, 0x57, 0x0E, 0xEB, 0xCA, 0xD6, 0xC9, 0x2E } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseNpcJoinStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000015, 0x000006C7, { { 0x5A, 0xBF, 0xA2, 0x3E, 0x36, 0xC4, 0x23, 0xC8, 0xA8, 0x86, 0x06, 0x80, 0xAF, 0xB1, 0xDD, 0xAB } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000020, 0x00000A93, { { 0x4A, 0xFD, 0x70, 0xB7, 0x7A, 0x0B, 0x7C, 0x32, 0x07, 0x5A, 0x4A, 0xC7, 0x84, 0x9D, 0x2D, 0xF3 } } } }, // EoB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000018, 0x00000848, { { 0xC9, 0xEE, 0x71, 0x04, 0xA2, 0xA5, 0x52, 0x87, 0x7C, 0x6D, 0x3C, 0x15, 0x7D, 0x41, 0xE0, 0xE7 } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCancelStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000007, 0x000001A6, { { 0x21, 0xED, 0xF9, 0x71, 0xEF, 0x74, 0xD7, 0x9E, 0xF3, 0x02, 0xE5, 0x03, 0x06, 0xDE, 0xD5, 0x09 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000000A, 0x0000027A, { { 0xBD, 0x88, 0xB2, 0xA0, 0xAF, 0x8D, 0xFE, 0x5B, 0xAC, 0xDF, 0xB5, 0x9F, 0xA0, 0x23, 0x6E, 0xAE } } } }, // EoB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000006, 0x00000145, { { 0x22, 0x45, 0x35, 0xC6, 0x28, 0x00, 0x22, 0xAA, 0xD1, 0x15, 0x48, 0xE6, 0xE5, 0x62, 0x73, 0x37 } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseAbortStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000006, 0x00000178, { { 0xDD, 0xEC, 0x68, 0x6D, 0x2E, 0x10, 0x34, 0x94, 0x46, 0x25, 0xF9, 0xAB, 0x29, 0x27, 0x32, 0xA8 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000006, 0x00000145, { { 0x22, 0x45, 0x35, 0xC6, 0x28, 0x00, 0x22, 0xAA, 0xD1, 0x15, 0x48, 0xE6, 0xE5, 0x62, 0x73, 0x37 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsMainProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000067, 0x0000245E, { { 0xD9, 0xE0, 0x74, 0x9D, 0x43, 0x96, 0xDC, 0x3B, 0xDF, 0x90, 0x03, 0xDE, 0x91, 0xE6, 0xA0, 0x1E } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000068, 0x000025D9, { { 0x17, 0xEB, 0xAB, 0x4F, 0x95, 0xD1, 0x7F, 0xEB, 0xF4, 0x92, 0x42, 0xD1, 0xD2, 0xA8, 0xC4, 0xA8 } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000069, 0x0000265B, { { 0x4C, 0xA9, 0x38, 0x28, 0xE1, 0xD0, 0xE3, 0x35, 0xBB, 0xDC, 0xFB, 0x6B, 0xAB, 0xB1, 0x62, 0x88 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsSaveLoadProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000077, 0x00002513, { { 0x70, 0xD9, 0x48, 0xC2, 0x3A, 0x38, 0x1D, 0xD0, 0x8B, 0x90, 0x08, 0x8D, 0x80, 0xF5, 0x24, 0x59 } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000086, 0x00002D2F, { { 0x2B, 0x48, 0x5C, 0x78, 0xF9, 0xB9, 0xD6, 0xA8, 0x1D, 0xF4, 0x97, 0xAC, 0xF1, 0x09, 0x26, 0xA7 } } } }, // EOB1
+ { EN_ANY, kPlatformUnknown, { 0x000000A9, 0x00003850, { { 0xC3, 0x09, 0x7B, 0x18, 0xD6, 0x08, 0x0E, 0x2A, 0xB6, 0x66, 0x43, 0x14, 0xD7, 0x59, 0x34, 0xF7 } } } }, // EOB2
+ { DE_DEU, kPlatformUnknown, { 0x000000A2, 0x00003942, { { 0x6E, 0x10, 0x87, 0x4B, 0x80, 0xE8, 0x89, 0xC4, 0x31, 0xDC, 0xAC, 0xA9, 0xA3, 0x8D, 0x79, 0x41 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsOnOffProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000007, 0x00000178, { { 0x4D, 0xA7, 0x13, 0x00, 0x05, 0xF2, 0x44, 0xCB, 0xF7, 0x12, 0x72, 0x54, 0xDE, 0x35, 0x04, 0xEC } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000007, 0x00000178, { { 0xC7, 0x6F, 0x60, 0x72, 0x47, 0x89, 0x47, 0xF0, 0x29, 0x57, 0x45, 0x41, 0xD5, 0x80, 0x40, 0x7B } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsSpellsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x000001EF, 0x0000A0D0, { { 0xBA, 0x80, 0x5C, 0xAB, 0x93, 0x19, 0x53, 0x45, 0x17, 0xBC, 0x86, 0x5B, 0x1B, 0x01, 0x3E, 0x98 } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x000001EA, 0x00009DE0, { { 0x00, 0xB0, 0x1F, 0xE7, 0x16, 0x48, 0x51, 0x25, 0xE5, 0xD8, 0xA1, 0x31, 0x13, 0x81, 0x8D, 0xB6 } } } }, // EOB1
+ { EN_ANY, kPlatformUnknown, { 0x000001FB, 0x0000A658, { { 0xAD, 0x6A, 0xFE, 0x13, 0xE5, 0xEA, 0x6A, 0xD1, 0xC9, 0x80, 0x1C, 0xEE, 0xD7, 0x2A, 0xF8, 0xB2 } } } }, // EOB2
+ { DE_DEU, kPlatformUnknown, { 0x00000222, 0x0000B1C9, { { 0x24, 0xC8, 0x9B, 0x51, 0xEE, 0x45, 0x14, 0xFC, 0x1B, 0xE4, 0x37, 0x8B, 0xEC, 0x94, 0xD9, 0x0B } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsRestProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x000000B3, 0x00003CED, { { 0x82, 0xF9, 0xA1, 0x74, 0xE6, 0x95, 0xA4, 0xFC, 0xE6, 0x5E, 0xB4, 0x43, 0x7D, 0x10, 0xFD, 0x12 } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x000000B3, 0x00003BE4, { { 0x7F, 0xE8, 0xFE, 0xA4, 0xD9, 0x5C, 0x49, 0x66, 0x38, 0x8F, 0x84, 0xB8, 0xF5, 0x03, 0xCD, 0x70 } } } }, // EOB
+ { DE_DEU, kPlatformUnknown, { 0x000000C0, 0x000040A6, { { 0x05, 0x97, 0x45, 0x72, 0xE2, 0x33, 0xBE, 0xDE, 0x56, 0x26, 0x26, 0x15, 0x3A, 0x56, 0x93, 0xFD } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsDropProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000002E, 0x00000FCA, { { 0x88, 0xCB, 0xD2, 0xB3, 0xDA, 0x36, 0x97, 0x3D, 0xB8, 0x75, 0xFF, 0x36, 0xE1, 0x4E, 0xF4, 0x6D } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000039, 0x0000131E, { { 0x74, 0x0B, 0xE9, 0x04, 0x76, 0x26, 0xD2, 0xE8, 0x03, 0x48, 0x38, 0x18, 0xAC, 0x19, 0xBD, 0x7E } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000033, 0x0000119C, { { 0x8F, 0x2B, 0xC3, 0x01, 0xB2, 0xDE, 0x1F, 0xC6, 0x82, 0xC3, 0x58, 0x7C, 0x50, 0x23, 0x37, 0x65 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsExitProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000002B, 0x00000E3D, { { 0x1C, 0xD6, 0x39, 0xA9, 0xC7, 0x3D, 0x32, 0x4A, 0xF2, 0xAE, 0xEC, 0x08, 0x6F, 0xC7, 0xA6, 0x7B } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x0000002D, 0x00000E68, { { 0x4B, 0x2F, 0x65, 0x39, 0x69, 0xE7, 0x3D, 0x7B, 0x10, 0x15, 0x6F, 0x1F, 0xD8, 0x8E, 0xEA, 0x55 } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000026, 0x00000CBD, { { 0x0C, 0x5D, 0xE4, 0xD2, 0x6F, 0xA3, 0x91, 0xDA, 0x5F, 0xE2, 0x57, 0x77, 0x74, 0x22, 0xE7, 0x85 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsStarveProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000003D, 0x0000150C, { { 0x40, 0xEB, 0x79, 0xC3, 0x99, 0x4C, 0xEA, 0xCD, 0x8A, 0xB4, 0x54, 0xB8, 0xAA, 0xEC, 0xAD, 0x4F } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000037, 0x00001296, { { 0x51, 0x3C, 0x90, 0x91, 0x4E, 0x1C, 0x73, 0x2F, 0x0C, 0x7A, 0x6D, 0x03, 0x1E, 0x54, 0x65, 0xF1 } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000030, 0x00001057, { { 0xF3, 0x5E, 0xFC, 0xC3, 0x9D, 0xB5, 0xFE, 0x4E, 0x66, 0x9D, 0x6A, 0xC6, 0x61, 0xC8, 0x0A, 0x17 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsScribeProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000103, 0x000055E1, { { 0x1B, 0x56, 0xD2, 0x78, 0x3F, 0x67, 0x7A, 0x5B, 0xB6, 0x2B, 0x70, 0x3D, 0x6A, 0xBB, 0x08, 0x0A } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x0000010C, 0x00005B1C, { { 0xD7, 0xBF, 0x37, 0x21, 0xA2, 0x63, 0x8C, 0x6A, 0x02, 0x92, 0x13, 0x32, 0xD6, 0xA6, 0x1C, 0xDC } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000100, 0x0000560F, { { 0x69, 0x15, 0x2C, 0x2D, 0xE7, 0x40, 0x4A, 0xE0, 0x86, 0x0D, 0xC8, 0x66, 0x87, 0x1C, 0x27, 0x0B } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsDrop2Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000084, 0x00002ACE, { { 0xAB, 0x78, 0x42, 0x29, 0xFB, 0xC5, 0x34, 0x96, 0x9D, 0x8A, 0x21, 0x46, 0xE7, 0x6B, 0x06, 0xBA } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x0000008C, 0x00002D02, { { 0x11, 0x3F, 0x0C, 0xB2, 0xBF, 0xA7, 0x39, 0x23, 0xDC, 0x00, 0xB4, 0xEA, 0x5E, 0xFE, 0x40, 0xB7 } } } }, // EOB1
+ { EN_ANY, kPlatformUnknown, { 0x0000008E, 0x00002FFB, { { 0xCE, 0x7A, 0xCC, 0xA4, 0x02, 0x54, 0x1A, 0x78, 0xF1, 0xFC, 0xE6, 0x6C, 0x76, 0xCD, 0xFD, 0x9E } } } }, // EOB2
+ { DE_DEU, kPlatformUnknown, { 0x00000090, 0x000031CE, { { 0x01, 0x72, 0x59, 0xBE, 0x62, 0x72, 0xD4, 0x99, 0x76, 0xC9, 0x92, 0x0E, 0xE9, 0x1A, 0xCD, 0x65 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsHeadProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000021, 0x00000B27, { { 0x04, 0x06, 0x01, 0xF8, 0x50, 0x54, 0x11, 0x61, 0xFF, 0xB4, 0xE1, 0x97, 0xFA, 0x08, 0xAA, 0x1B } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000024, 0x00000CF5, { { 0x96, 0xD6, 0xB5, 0xB0, 0x2E, 0x71, 0xA4, 0x0A, 0x34, 0x41, 0x94, 0x02, 0x2F, 0xB0, 0x4C, 0x36 } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000025, 0x00000D92, { { 0xE4, 0x73, 0x2D, 0x29, 0xAD, 0x30, 0xE5, 0x8D, 0xAE, 0xC6, 0xD7, 0xF5, 0x35, 0xD8, 0xA4, 0x98 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsPoisonProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000002E, 0x00001077, { { 0x14, 0x7E, 0xFC, 0xE0, 0x88, 0xFE, 0x86, 0xA8, 0x96, 0x94, 0xB1, 0x71, 0x90, 0x47, 0x2D, 0x78 } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000036, 0x000013A2, { { 0x18, 0xD9, 0x1D, 0xE5, 0x3D, 0xFD, 0x52, 0xB6, 0x18, 0x17, 0x61, 0xE8, 0xA5, 0x32, 0x9F, 0xA8 } } } }, // EOB1
+ { EN_ANY, kPlatformUnknown, { 0x0000002D, 0x00001006, { { 0xD6, 0x0B, 0x11, 0x79, 0xAD, 0x61, 0x5B, 0x3A, 0x72, 0x7D, 0x53, 0x6F, 0xA9, 0x08, 0x73, 0xDC } } } }, // EOB2
+ { DE_DEU, kPlatformUnknown, { 0x00000035, 0x000013BE, { { 0x73, 0x38, 0x76, 0x2C, 0x42, 0x87, 0x43, 0x7E, 0x8E, 0x4C, 0x41, 0x57, 0x3F, 0x04, 0xBA, 0x11 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsMgcProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000020, 0x00000857, { { 0xD1, 0x9E, 0xBF, 0xF7, 0xCF, 0xF7, 0xD0, 0x94, 0x14, 0x56, 0xD2, 0x4F, 0x59, 0x91, 0x57, 0x52 } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000020, 0x0000086C, { { 0x12, 0x36, 0x84, 0x2F, 0x00, 0xAD, 0x12, 0x42, 0x3A, 0xA2, 0xC5, 0xC9, 0x59, 0x90, 0x64, 0x5F } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000021, 0x0000090B, { { 0x26, 0xA7, 0x58, 0x7C, 0x0C, 0x9E, 0x67, 0xB9, 0x05, 0xE6, 0x91, 0x59, 0xE3, 0xDF, 0x9C, 0x52 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsPrefsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000041, 0x00001392, { { 0xB1, 0x7E, 0xE3, 0x73, 0xB2, 0xA2, 0x63, 0x39, 0x20, 0xE8, 0xF3, 0x38, 0x45, 0xB6, 0xAC, 0xC8 } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000045, 0x000015F6, { { 0x53, 0xBA, 0x7E, 0x6D, 0x24, 0x88, 0x2C, 0x19, 0x10, 0x71, 0x6F, 0xAB, 0x85, 0x8E, 0x97, 0xF6 } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x0000003D, 0x00001246, { { 0x03, 0xFB, 0x7C, 0x80, 0x33, 0x45, 0x6C, 0x27, 0x89, 0x7B, 0x7C, 0xAC, 0x7A, 0xE1, 0xDE, 0x49 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsRest2Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000004D, 0x00001744, { { 0x63, 0xA5, 0x6F, 0x09, 0x6F, 0x5E, 0x4B, 0x89, 0xFF, 0x33, 0x63, 0xCB, 0xAA, 0x04, 0x59, 0x63 } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x0000004D, 0x00001769, { { 0x2C, 0xA9, 0x7D, 0x4C, 0xC5, 0x13, 0xE2, 0xEB, 0x89, 0x6C, 0xAE, 0x25, 0xC3, 0x3E, 0x56, 0x7E } } } }, // EOB1
+ { EN_ANY, kPlatformUnknown, { 0x00000052, 0x000017F6, { { 0x7C, 0x49, 0xFC, 0x89, 0x90, 0x5D, 0xFF, 0x86, 0x86, 0xE9, 0xB2, 0x29, 0x60, 0xB2, 0x22, 0x7F } } } }, // EOB2
+ { DE_DEU, kPlatformUnknown, { 0x0000004C, 0x000014FF, { { 0x0C, 0x94, 0x6D, 0x5A, 0x42, 0x68, 0xE0, 0xDC, 0xCD, 0xB9, 0x1A, 0x4A, 0xC1, 0xCC, 0xE6, 0x91 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsRest3Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000002B, 0x00000DF4, { { 0x42, 0x90, 0x49, 0xA7, 0x2E, 0x61, 0x77, 0x7F, 0x9F, 0x53, 0xAD, 0x3C, 0x87, 0xE2, 0x0E, 0x36 } } } }, // EOB2
+ { DE_DEU, kPlatformUnknown, { 0x00000027, 0x00000D45, { { 0x8D, 0xAB, 0xBF, 0x57, 0xF3, 0x2C, 0x3F, 0x93, 0xBF, 0x33, 0x58, 0x2D, 0x97, 0x78, 0x71, 0x7F } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsRest4Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000029, 0x00000DEC, { { 0x1C, 0x86, 0x3D, 0x40, 0x2C, 0x5E, 0xCA, 0xA0, 0xA1, 0xB8, 0x23, 0x42, 0x9C, 0x6B, 0xFA, 0xBB } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x00000034, 0x00001238, { { 0xE9, 0x95, 0x27, 0x79, 0x1C, 0x0D, 0xF5, 0x94, 0x92, 0xFC, 0xCA, 0x22, 0x17, 0xA8, 0x36, 0x96 } } } }, // EOB1
+ { EN_ANY, kPlatformUnknown, { 0x0000002A, 0x00000DEB, { { 0x0E, 0xD3, 0xC5, 0xA9, 0x8B, 0x06, 0x57, 0xB0, 0x20, 0x1A, 0xEE, 0x42, 0x49, 0x2E, 0xA1, 0x50 } } } }, // EOB2
+ { DE_DEU, kPlatformUnknown, { 0x00000033, 0x00001189, { { 0x56, 0x1B, 0x6B, 0x00, 0x47, 0xFD, 0x56, 0xD3, 0x12, 0x03, 0x79, 0x7D, 0xFF, 0x83, 0xCF, 0xAA } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsDefeatProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000006D, 0x00002643, { { 0x94, 0xBA, 0xAC, 0xA4, 0x87, 0x6A, 0xEA, 0x7D, 0x98, 0x6E, 0x09, 0x82, 0xE0, 0x16, 0x65, 0x4F } } } }, // EOB1
+ { DE_DEU, kPlatformUnknown, { 0x0000006A, 0x00002456, { { 0xE0, 0x9A, 0x10, 0xE2, 0x73, 0x42, 0xF6, 0x79, 0xCB, 0x65, 0xA2, 0x50, 0xF0, 0x2B, 0xFD, 0x9B } } } }, // EOB1
+ { EN_ANY, kPlatformUnknown, { 0x00000056, 0x00001E4F, { { 0x97, 0x07, 0x5F, 0xA2, 0x0D, 0x58, 0xD2, 0xDF, 0xD6, 0x04, 0xA2, 0x16, 0x0B, 0x1F, 0x7E, 0x23 } } } }, // EOB2
+ { DE_DEU, kPlatformUnknown, { 0x00000042, 0x000016B1, { { 0xCA, 0x57, 0xDC, 0x2B, 0xC6, 0xC7, 0x78, 0x1E, 0x84, 0x0A, 0x10, 0x88, 0xCA, 0xCD, 0xFF, 0x89 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsTransferProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000114, 0x00005E09, { { 0xBF, 0xCE, 0x7F, 0xE4, 0x17, 0x15, 0xC6, 0x10, 0xDF, 0x16, 0xF9, 0x3C, 0xDA, 0x29, 0xA0, 0xA6 } } } }, // EOB2
+ { DE_DEU, kPlatformUnknown, { 0x000000D1, 0x00004811, { { 0x2E, 0x00, 0xD1, 0xA6, 0x9F, 0x53, 0xC5, 0x4B, 0x25, 0x4A, 0xAC, 0x9E, 0x11, 0x6C, 0x58, 0x5E } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsSpecProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000006F, 0x00002785, { { 0xAE, 0xC7, 0x88, 0x89, 0x39, 0xB8, 0xF7, 0xB4, 0xD5, 0x82, 0xBC, 0x46, 0xA1, 0xCB, 0x04, 0x1F } } } }, // EOB2
+ { DE_DEU, kPlatformUnknown, { 0x00000075, 0x00002871, { { 0xB4, 0x38, 0x0F, 0x94, 0x8B, 0xB1, 0x8D, 0xA3, 0xF8, 0xDA, 0x37, 0x75, 0x6F, 0x39, 0x3E, 0xB5 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuStringsSpellNoProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000006, 0x000000A5, { { 0x0D, 0x4A, 0x8B, 0x40, 0x70, 0x79, 0xCD, 0xB3, 0x0F, 0x5A, 0x5A, 0x3F, 0x6E, 0xE8, 0xF9, 0x74 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMenuYesNoStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000007, 0x000001EE, { { 0x8C, 0xF1, 0x35, 0x1F, 0xD6, 0x1F, 0xA4, 0xA1, 0xD6, 0xD6, 0x0A, 0x27, 0xB9, 0xFC, 0x9E, 0x62 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000008, 0x00000235, { { 0xC7, 0x06, 0xCF, 0xA8, 0xC0, 0xDE, 0xD4, 0x8C, 0x7F, 0xA2, 0x3A, 0xD3, 0x48, 0x51, 0x36, 0x89 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSpellLevelsMageProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000001A, 0x00000042, { { 0x4F, 0xA3, 0x70, 0x0F, 0x6D, 0xB4, 0xC2, 0xAF, 0x12, 0xB4, 0x2E, 0x26, 0xEF, 0x0B, 0x37, 0x92 } } } }, // EOB1
+ { UNK_LANG, kPlatformUnknown, { 0x00000023, 0x00000074, { { 0xBE, 0x10, 0xFA, 0xD9, 0xB3, 0xB0, 0x4E, 0x73, 0xC9, 0xA1, 0xE2, 0xCE, 0xE8, 0xEC, 0x85, 0x0F } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSpellLevelsClericProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000019, 0x00000045, { { 0x9E, 0xDA, 0xF2, 0x94, 0x3E, 0x0B, 0xA0, 0x23, 0x08, 0x41, 0xD5, 0x3C, 0x61, 0x77, 0xFD, 0x78 } } } }, // EOB1
+ { UNK_LANG, kPlatformUnknown, { 0x0000001D, 0x00000066, { { 0xDB, 0x7F, 0x93, 0xE2, 0x2E, 0xCF, 0x69, 0xCC, 0x2A, 0xEF, 0x7C, 0x1E, 0x92, 0x6B, 0x51, 0x4E } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseNumSpellsClericProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000032, 0x0000004C, { { 0x87, 0xDD, 0xD0, 0xF8, 0x52, 0x84, 0x26, 0xC4, 0x9C, 0x5D, 0x0E, 0x46, 0x1A, 0xE8, 0x19, 0xD6 } } } }, // EOB1
+ { UNK_LANG, kPlatformUnknown, { 0x00000088, 0x00000114, { { 0xA0, 0xB7, 0x2F, 0xED, 0x50, 0xE7, 0xC6, 0x11, 0xC9, 0x25, 0xB2, 0xB9, 0x81, 0xFB, 0xD8, 0x59 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseNumSpellsWisAdjProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000028, 0x0000001D, { { 0xA5, 0xCA, 0x1D, 0x96, 0xAE, 0x89, 0xBC, 0x7A, 0x32, 0x50, 0xCE, 0x44, 0x5D, 0x93, 0x25, 0x4B } } } }, // EOB1
+ { UNK_LANG, kPlatformUnknown, { 0x00000040, 0x0000001D, { { 0x07, 0x31, 0x0D, 0x12, 0x55, 0x11, 0x11, 0xB6, 0x68, 0xC7, 0xEE, 0xDE, 0xC6, 0xED, 0x82, 0x5A } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseNumSpellsPalProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000003C, 0x00000012, { { 0x96, 0x7E, 0x17, 0x9E, 0xFD, 0x39, 0xC9, 0x3A, 0xB7, 0x3E, 0x8D, 0xA8, 0xED, 0xA3, 0x07, 0xEB } } } }, // EOB1
+ { UNK_LANG, kPlatformUnknown, { 0x00000088, 0x0000002F, { { 0x19, 0x1A, 0x9B, 0x42, 0xA0, 0x67, 0x10, 0x1A, 0xAC, 0x00, 0x0F, 0xF7, 0xBE, 0x04, 0x61, 0x36 } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseNumSpellsMageProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000037, 0x0000005E, { { 0x61, 0x30, 0x1A, 0x74, 0x9B, 0x4C, 0x8C, 0x83, 0xD5, 0xE6, 0x39, 0x6E, 0xCA, 0x18, 0x16, 0x63 } } } }, // EOB1
+ { UNK_LANG, kPlatformUnknown, { 0x00000114, 0x00000102, { { 0x33, 0xEE, 0x32, 0x9C, 0xB2, 0xB3, 0x60, 0x66, 0x91, 0xE0, 0x90, 0x0E, 0x8F, 0xE1, 0xA5, 0x4A } } } }, // EOB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharGuiStringsHpProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000000F, 0x00000352, { { 0x9C, 0x13, 0x3D, 0x2A, 0x68, 0x11, 0x81, 0xA4, 0x77, 0x54, 0x47, 0x43, 0xA1, 0xDA, 0x55, 0x50 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000000E, 0x000002AC, { { 0xBB, 0xD5, 0x36, 0xB2, 0x8A, 0x60, 0x78, 0x04, 0x46, 0x2D, 0x35, 0x59, 0x3E, 0x42, 0xB9, 0x83 } } } }, // EoB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000000E, 0x000002B8, { { 0x77, 0x76, 0xA0, 0x38, 0xE9, 0xB6, 0x0C, 0x43, 0xFE, 0x5A, 0x51, 0xC7, 0x1B, 0x59, 0xD3, 0x63 } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharGuiStringsWp1Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000000A, 0x00000253, { { 0x1D, 0xF4, 0xB9, 0x56, 0xE6, 0x16, 0x7D, 0x08, 0xA4, 0x00, 0x1E, 0x1A, 0x60, 0x49, 0xE9, 0x29 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000000A, 0x00000236, { { 0x17, 0xEC, 0x54, 0xA0, 0x43, 0xFB, 0x52, 0x66, 0xC5, 0x44, 0x1B, 0xDF, 0x95, 0x47, 0x62, 0xB3 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharGuiStringsWp2Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000000F, 0x00000371, { { 0x42, 0xF4, 0x52, 0x60, 0x20, 0xFC, 0x34, 0x94, 0x49, 0x1E, 0x67, 0x54, 0xB5, 0x6A, 0x97, 0x2A } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000010, 0x000003D6, { { 0x10, 0xD1, 0x77, 0x6C, 0xCD, 0x00, 0x94, 0xC7, 0xD0, 0x53, 0x47, 0x9F, 0x70, 0x77, 0x50, 0xD1 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharGuiStringsWrProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000014, 0x00000477, { { 0xAA, 0x26, 0xD5, 0xFD, 0xE6, 0x16, 0x53, 0x19, 0x39, 0x46, 0xEB, 0xCD, 0x88, 0xEC, 0x5E, 0xCB } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000015, 0x000004A4, { { 0x53, 0x54, 0x37, 0x35, 0x27, 0x1F, 0xB9, 0x09, 0x9C, 0xE9, 0x5E, 0x11, 0xBD, 0x8F, 0x15, 0xAE } } } }, // EoB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000011, 0x00000402, { { 0xE0, 0x92, 0xF4, 0x49, 0xB7, 0x74, 0xBB, 0xEB, 0x90, 0x0D, 0x75, 0x65, 0xBB, 0xF6, 0xB6, 0xE9 } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharGuiStringsSt1Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000003B, 0x0000104B, { { 0xC0, 0xD9, 0x0F, 0x7B, 0x6D, 0x17, 0x02, 0xBD, 0x7B, 0xB1, 0x76, 0x72, 0xA1, 0xEE, 0x5E, 0xAD } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000039, 0x00000F69, { { 0x09, 0x42, 0x35, 0x47, 0x48, 0x50, 0x05, 0x09, 0x3B, 0x81, 0x14, 0x01, 0xF9, 0xB5, 0x04, 0xB2 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharGuiStringsSt2Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000045, 0x000012E7, { { 0x49, 0x48, 0x30, 0x73, 0xDA, 0x42, 0xDB, 0xB9, 0xF4, 0x07, 0x00, 0x26, 0x96, 0x1F, 0x02, 0x4E } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000042, 0x0000114D, { { 0x88, 0x6E, 0x45, 0xF9, 0xAE, 0xEF, 0xE8, 0x54, 0x9C, 0xEF, 0xD2, 0x73, 0x78, 0x41, 0xD9, 0xAF } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharGuiStringsInProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000023, 0x000008CB, { { 0xF0, 0xE9, 0xF1, 0x05, 0x47, 0x3A, 0x5D, 0xCA, 0x9F, 0x75, 0x9D, 0x51, 0x9E, 0xEC, 0x9B, 0x67 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000020, 0x00000810, { { 0xF5, 0x39, 0x1E, 0x0E, 0x65, 0xEF, 0x09, 0xF2, 0x8D, 0x90, 0xC4, 0xF6, 0x8A, 0xED, 0xAD, 0xDF } } } }, // EoB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000023, 0x00000940, { { 0xAB, 0xF6, 0xE4, 0xD4, 0x07, 0x07, 0xDA, 0x92, 0x71, 0xE2, 0x73, 0x1F, 0x06, 0xE3, 0x12, 0xEB } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharStatusStrings7Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000022, 0x00000B95, { { 0xCB, 0xB7, 0x16, 0x77, 0x9C, 0xEB, 0x70, 0x83, 0xB2, 0xBE, 0xF7, 0x67, 0xB1, 0xE9, 0xD0, 0x5E } } } }, // EOB 1 + 2
+ { DE_DEU, kPlatformUnknown, { 0x0000002B, 0x00000EE3, { { 0xC8, 0x81, 0x23, 0xC3, 0x03, 0xBD, 0x4C, 0xF5, 0x41, 0x47, 0xFA, 0x32, 0xA0, 0x98, 0x0A, 0x8E } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000023, 0x00000C68, { { 0xF5, 0x55, 0x09, 0xD8, 0x73, 0xF8, 0xF0, 0xE3, 0x14, 0xCD, 0x78, 0x84, 0x58, 0xB0, 0x64, 0x5B } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharStatusStrings81Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000021, 0x00000B03, { { 0x44, 0xFC, 0xC2, 0x23, 0x4B, 0x78, 0xA8, 0xF8, 0xA5, 0x46, 0x5B, 0x89, 0x1F, 0x9D, 0x4E, 0xFA } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000020, 0x00000A52, { { 0x81, 0xDA, 0x22, 0x8A, 0xD3, 0x7D, 0xE7, 0xF5, 0x39, 0x6A, 0x62, 0x41, 0xE5, 0x8D, 0x45, 0x20 } } } }, // EOB 1
+};
+
+const ExtractEntrySearchData kEoBBaseCharStatusStrings82Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000023, 0x00000B0F, { { 0xBD, 0xED, 0xFE, 0xFD, 0x40, 0x95, 0x42, 0x21, 0x1F, 0x55, 0x67, 0x65, 0xA8, 0xC3, 0x99, 0xA1 } } } }, // EOB 2
+ { DE_DEU, kPlatformUnknown, { 0x0000001A, 0x00000789, { { 0x8C, 0xF3, 0xB8, 0x3C, 0x6E, 0x85, 0xED, 0xD6, 0x2B, 0xD7, 0xAE, 0x8A, 0xFC, 0x25, 0x5E, 0x8F } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharStatusStrings9Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000001C, 0x00000952, { { 0x2F, 0x41, 0x17, 0x95, 0xF8, 0xC8, 0x4E, 0x88, 0xC6, 0x83, 0x38, 0x9B, 0xAB, 0x23, 0x48, 0xB9 } } } }, // EOB 1 + 2
+ { DE_DEU, kPlatformUnknown, { 0x0000001D, 0x0000099F, { { 0x5E, 0xB4, 0xBE, 0xA9, 0x0C, 0xB2, 0xF2, 0x4E, 0x63, 0xF8, 0x7B, 0x98, 0x67, 0x2D, 0xC9, 0xBF } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x0000001E, 0x00000A52, { { 0xD4, 0x65, 0x3F, 0x35, 0xDD, 0x8A, 0x33, 0x44, 0x2F, 0x8C, 0xAC, 0x2F, 0xEC, 0x96, 0x5B, 0x02 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharStatusStrings12Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000010, 0x00000503, { { 0x81, 0x22, 0xE9, 0x0F, 0xA5, 0xEA, 0xFE, 0xB5, 0xB6, 0x43, 0x36, 0x22, 0x87, 0x24, 0x2C, 0x40 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000014, 0x00000683, { { 0x5A, 0xF8, 0xAA, 0x16, 0x97, 0xBE, 0xD5, 0x22, 0xCE, 0x3F, 0xBC, 0x00, 0x44, 0xC1, 0x27, 0xD3 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharStatusStrings131Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000000B, 0x0000027A, { { 0x70, 0x1A, 0x83, 0x35, 0x0A, 0x51, 0xEA, 0x27, 0x6E, 0xCD, 0xEB, 0xAD, 0x20, 0x74, 0x28, 0x7D } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000000C, 0x000002EE, { { 0xFE, 0xF9, 0x45, 0xE7, 0x89, 0x7B, 0xA4, 0x82, 0x90, 0x63, 0x91, 0x5B, 0x9E, 0x83, 0x80, 0x10 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseCharStatusStrings132Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000000D, 0x00000286, { { 0x00, 0x1E, 0x11, 0xCC, 0x57, 0xFA, 0xEF, 0x2A, 0x0A, 0xFF, 0xFF, 0xE9, 0x3E, 0xA3, 0x62, 0x21 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000000A, 0x0000018A, { { 0x10, 0x54, 0x6F, 0xC3, 0x08, 0xC4, 0xD2, 0xBB, 0x34, 0x0A, 0x04, 0x65, 0x49, 0xFC, 0x5E, 0x15 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseLevelGainStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000002A, 0x00000CC9, { { 0xF2, 0x1F, 0xDF, 0xE0, 0xA5, 0x86, 0x46, 0xF4, 0xFC, 0x71, 0xB0, 0x22, 0x32, 0x46, 0x71, 0xB6 } } } }, // EOB 1
+ { DE_DEU, kPlatformUnknown, { 0x00000029, 0x00000D38, { { 0x18, 0xA3, 0xFD, 0xCC, 0xF2, 0x68, 0x18, 0x9E, 0x80, 0x5A, 0xC0, 0x22, 0xFD, 0x15, 0x83, 0x84 } } } }, // EOB 1
+ { EN_ANY, kPlatformUnknown, { 0x0000001C, 0x0000078C, { { 0x15, 0x70, 0x37, 0xE4, 0x0B, 0x50, 0x32, 0xCA, 0xAE, 0xF6, 0x81, 0xD0, 0x98, 0x9B, 0x36, 0x8A } } } }, // EOB 2
+ { DE_DEU, kPlatformUnknown, { 0x0000001F, 0x000008E3, { { 0x07, 0x2C, 0x51, 0x5E, 0x47, 0xAA, 0xCC, 0x27, 0x77, 0xD8, 0x17, 0x59, 0x6B, 0xBE, 0xF5, 0x87 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseExperienceTable0Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000030, 0x00000C9E, { { 0xDB, 0x47, 0xD9, 0x0D, 0x6E, 0x68, 0x04, 0xE4, 0x17, 0xCB, 0x60, 0x89, 0x35, 0x3E, 0xA9, 0xEE } } } }, // EoB 1
+ { UNK_LANG, kPlatformUnknown, { 0x00000038, 0x00000E24, { { 0xBC, 0xF3, 0x96, 0x8A, 0xD5, 0x0C, 0xAA, 0x94, 0xBB, 0xB5, 0x08, 0x73, 0xF8, 0x5C, 0xF0, 0xA9 } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseExperienceTable1Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000030, 0x00000C80, { { 0x35, 0x45, 0x0D, 0x4F, 0xE0, 0x84, 0xA2, 0x1B, 0xB0, 0x0D, 0x60, 0x4D, 0x1D, 0xD5, 0x6C, 0x72 } } } }, // EoB 1
+ { UNK_LANG, kPlatformUnknown, { 0x00000038, 0x00000E6F, { { 0xBD, 0x3F, 0x42, 0x54, 0x75, 0x41, 0xAA, 0x58, 0x0D, 0xD8, 0xC0, 0x07, 0x63, 0x35, 0x83, 0x6B } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseExperienceTable2Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000002C, 0x00000E10, { { 0xA5, 0x4D, 0xCB, 0xF3, 0x5F, 0x89, 0x71, 0x24, 0x6F, 0x70, 0xCA, 0x51, 0xAA, 0x1C, 0x0A, 0x97 } } } }, // EoB 1
+ { UNK_LANG, kPlatformUnknown, { 0x00000038, 0x00001149, { { 0xF9, 0xF1, 0x7E, 0x6B, 0xB2, 0xFE, 0x04, 0xC4, 0x29, 0x3D, 0xE3, 0x42, 0x5D, 0x92, 0x77, 0x53 } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseExperienceTable3Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000030, 0x00000ADC, { { 0x42, 0x2E, 0x2E, 0xF5, 0xF8, 0x65, 0x69, 0x28, 0x50, 0x67, 0x43, 0xDF, 0x91, 0x67, 0x9B, 0x09 } } } }, // EoB 1
+ { UNK_LANG, kPlatformUnknown, { 0x00000038, 0x00000C94, { { 0x67, 0x09, 0x98, 0x19, 0x1F, 0x6B, 0x4D, 0xEB, 0x1D, 0x4D, 0x55, 0xA8, 0xFF, 0xD1, 0xAB, 0xE1 } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseExperienceTable4Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000030, 0x00000DA7, { { 0x45, 0x58, 0x34, 0xC9, 0x09, 0x61, 0xD7, 0xE1, 0xF8, 0x68, 0x80, 0xBC, 0xEF, 0x7A, 0x24, 0x03 } } } }, // EoB 1
+ { UNK_LANG, kPlatformUnknown, { 0x00000038, 0x00000FE1, { { 0x26, 0x7F, 0x83, 0x53, 0x4A, 0xC6, 0xA2, 0x7B, 0xD2, 0xFB, 0x73, 0xB2, 0x08, 0x0A, 0xF7, 0xFD } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseWllFlagPresetProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000019, 0x00000BD9, { { 0xBE, 0x5A, 0xA6, 0xC8, 0xE4, 0x04, 0x4C, 0x32, 0x35, 0x61, 0x48, 0x73, 0x29, 0xA9, 0x99, 0x54 } } } }, // EoB 1
+ { UNK_LANG, kPlatformUnknown, { 0x00000019, 0x00000BC9, { { 0x56, 0xC0, 0x66, 0x4D, 0xE1, 0x3A, 0x27, 0x89, 0x9D, 0x73, 0x63, 0x93, 0x08, 0x2B, 0x13, 0xBC } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscShapeCoordsProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000168, 0x0000F206, { { 0xB8, 0xDF, 0x10, 0xBB, 0x06, 0xA1, 0x46, 0xC6, 0xD2, 0xE3, 0xD7, 0x64, 0x4A, 0xC6, 0x40, 0xC0 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorScaleOffsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x0000010F, { { 0x7B, 0x7D, 0x03, 0xDE, 0x33, 0x95, 0xB8, 0xFD, 0xAD, 0x72, 0x44, 0x7D, 0x47, 0xFE, 0x04, 0x3D } } } }, // EoB1
+ { UNK_LANG, kPlatformPC, { 0x00000035, 0x00000139, { { 0x74, 0x63, 0x18, 0xE7, 0xAB, 0xA4, 0x22, 0xCF, 0x32, 0x19, 0x28, 0x9E, 0x7F, 0x97, 0xA7, 0x37 } } } }, // EoB2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorScaleMult1Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x00000026, { { 0x5D, 0x17, 0xFB, 0x6A, 0x7F, 0x51, 0x55, 0xFB, 0x55, 0xB9, 0x50, 0xB0, 0x7F, 0xE4, 0xDF, 0x67 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorScaleMult2Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x00000006, { { 0x98, 0xD8, 0xF8, 0x0C, 0x98, 0xC4, 0xF1, 0x87, 0x59, 0x32, 0x78, 0x31, 0xFA, 0x98, 0x8A, 0x43 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorScaleMult3Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x00000013, { { 0xEE, 0xB6, 0xA5, 0x6E, 0x0C, 0x8E, 0xAB, 0x38, 0xD9, 0x23, 0xC6, 0x21, 0xB3, 0x7E, 0x97, 0x78 } } } }, // EOB 1
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x00000019, { { 0x86, 0xD8, 0x04, 0xD2, 0x66, 0x6F, 0x43, 0x24, 0x2E, 0x93, 0xB9, 0xAE, 0xEB, 0x44, 0xCA, 0x48 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorScaleMult4Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x00000006, { { 0x98, 0xD8, 0xF8, 0x0C, 0x98, 0xC4, 0xF1, 0x87, 0x59, 0x32, 0x78, 0x31, 0xFA, 0x98, 0x8A, 0x43 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorScaleMult5Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x00000020, { { 0x37, 0xA1, 0x0D, 0x64, 0xD6, 0x1E, 0xBA, 0xA3, 0xD9, 0x0A, 0x6C, 0xAB, 0x6B, 0xA3, 0x59, 0x24 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorScaleMult6Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x00000006, { { 0x98, 0xD8, 0xF8, 0x0C, 0x98, 0xC4, 0xF1, 0x87, 0x59, 0x32, 0x78, 0x31, 0xFA, 0x98, 0x8A, 0x43 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorType5OffsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000006, 0x00000012, { { 0x73, 0xBB, 0x61, 0xD6, 0xA7, 0x75, 0xC8, 0x7B, 0xD6, 0xA4, 0x53, 0x1B, 0x54, 0xE9, 0x30, 0x3F } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorXEProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x0000010F, { { 0x7B, 0x7D, 0x03, 0xDE, 0x33, 0x95, 0xB8, 0xFD, 0xAD, 0x72, 0x44, 0x7D, 0x47, 0xFE, 0x04, 0x3D } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorY1Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x000000D7, { { 0x25, 0xAE, 0xF4, 0x99, 0xE8, 0x97, 0x47, 0xAE, 0x75, 0xF3, 0xA9, 0x70, 0x4C, 0x70, 0xF3, 0x11 } } } }, // EOB 1
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x000000D8, { { 0xB4, 0xAA, 0x0D, 0x91, 0x58, 0x22, 0x16, 0xCF, 0xC5, 0x9D, 0x8D, 0xA1, 0xB4, 0x40, 0x83, 0x0E } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorY3Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x00000058, { { 0xF0, 0x3C, 0x3B, 0x97, 0x10, 0x95, 0x89, 0x18, 0x3B, 0xA9, 0xE8, 0x77, 0x9B, 0x10, 0xDC, 0xF1 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorY4Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x00000076, { { 0x84, 0xB6, 0x8F, 0x7E, 0x9A, 0x17, 0xAC, 0x59, 0xB1, 0x4C, 0xDE, 0x11, 0xA6, 0x95, 0xE3, 0x76 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorY5Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x000000D9, { { 0x5D, 0x27, 0x1D, 0xD6, 0x5F, 0x98, 0xF9, 0x7D, 0x65, 0x7B, 0xE0, 0x67, 0x34, 0xA0, 0xE8, 0x30 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorY6Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x000000D9, { { 0x4D, 0x15, 0x4A, 0xF1, 0x17, 0x09, 0xC1, 0xA6, 0x08, 0x4A, 0xCD, 0xB2, 0x68, 0xC2, 0x59, 0x52 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorY7Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x000000DA, { { 0xA9, 0x24, 0x71, 0x8A, 0x18, 0x24, 0x6D, 0x0A, 0x65, 0x12, 0xBB, 0x1F, 0xE7, 0x95, 0xC5, 0xA4 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscDoorCoordsExtProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000048, 0x00000C8E, { { 0x2E, 0x0E, 0xB2, 0xAC, 0xE7, 0x0F, 0xDF, 0x38, 0xDF, 0x92, 0xB7, 0xB5, 0xA2, 0xFD, 0x40, 0x2D } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscItemPosIndexProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000010, 0x00000018, { { 0x74, 0x90, 0x47, 0xE6, 0xFB, 0xC0, 0x34, 0xDF, 0x92, 0x5B, 0xA1, 0xCB, 0x06, 0x33, 0xCA, 0x6B } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscItemShpXProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000024, 0x00000F2C, { { 0x9E, 0x22, 0x3F, 0x8F, 0x31, 0x83, 0xF7, 0x7C, 0x59, 0x60, 0x7C, 0x0A, 0xEB, 0xD2, 0x18, 0x85 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscItemPosUnkProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000012, 0x00000433, { { 0xA4, 0x7B, 0x08, 0x07, 0x81, 0xEA, 0x4F, 0x99, 0x77, 0x74, 0x93, 0x65, 0xBF, 0x0C, 0x3B, 0x94 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscItemTileIndexProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000012, 0x00000D23, { { 0x0E, 0x17, 0xE1, 0x1F, 0x34, 0x7D, 0x30, 0xF6, 0xAE, 0x0B, 0xAC, 0x9D, 0x21, 0xB6, 0x97, 0xCC } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscItemShapeMapProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000005A, 0x00000B23, { { 0x41, 0x4A, 0x95, 0x7F, 0x82, 0x85, 0x28, 0x55, 0xD4, 0xD5, 0xD6, 0xD8, 0xA9, 0xAE, 0xF4, 0xC0 } } } }, // EoB 1
+ { UNK_LANG, kPlatformPC, { 0x00000071, 0x00000860, { { 0xEA, 0x5D, 0x33, 0xB6, 0x38, 0x30, 0x65, 0x29, 0x7F, 0x08, 0x89, 0x04, 0xC5, 0x97, 0x76, 0xCB } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscTelptrShpCoordsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000009C, 0x00000EBE, { { 0x2D, 0x1D, 0x74, 0x39, 0x29, 0xC3, 0x6F, 0x53, 0xD9, 0xA5, 0x4B, 0x9F, 0xD6, 0xDD, 0x73, 0xE9 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBasePortalSeqDataProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000007E, 0x000002D0, { { 0x18, 0x7E, 0x65, 0x17, 0x4C, 0xD2, 0xB5, 0x2E, 0x81, 0xF8, 0x1C, 0xAC, 0x37, 0x21, 0x62, 0x2A } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseManDefProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000078, 0x000002CD, { { 0x33, 0x9B, 0x0C, 0x6A, 0x2E, 0x4F, 0xE9, 0x02, 0x7B, 0xEE, 0xF1, 0x04, 0xA3, 0xBA, 0xD4, 0xF3 } } } }, // EoB 1
+ { DE_DEU, kPlatformPC, { 0x00000078, 0x000002C4, { { 0x92, 0x20, 0x58, 0x5F, 0x44, 0x09, 0x0B, 0xF0, 0xDA, 0x09, 0xE2, 0x44, 0x0B, 0xB7, 0x95, 0x96 } } } }, // EoB 1
+ { EN_ANY, kPlatformPC, { 0x000000C8, 0x00000834, { { 0x18, 0xEA, 0x33, 0xB7, 0x4B, 0x72, 0x23, 0x8D, 0x0E, 0x9F, 0x4E, 0xF5, 0x09, 0xA3, 0x9C, 0xEA } } } }, // EoB 2
+ { DE_DEU, kPlatformPC, { 0x000000C8, 0x00000622, { { 0xFE, 0x1D, 0x94, 0x3A, 0x0B, 0x17, 0x89, 0xEF, 0x60, 0x18, 0xB2, 0x43, 0x7A, 0x02, 0xDB, 0x61 } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseManWordProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x000000E0, 0x00005134, { { 0x68, 0x9C, 0x19, 0x2B, 0x5F, 0x38, 0x36, 0x41, 0xA7, 0x7E, 0xB7, 0x51, 0x41, 0x60, 0x1D, 0x67 } } } }, // EoB 1
+ { DE_DEU, kPlatformPC, { 0x000000EA, 0x00005458, { { 0xEC, 0x14, 0x11, 0xE9, 0x19, 0xFD, 0xF8, 0xFC, 0xA8, 0x46, 0x3D, 0xCD, 0x56, 0x08, 0xC3, 0x4A } } } }, // EoB 1
+ { EN_ANY, kPlatformPC, { 0x0000017E, 0x00008B64, { { 0x66, 0x38, 0x09, 0x5B, 0x2E, 0x50, 0x54, 0x43, 0x1C, 0xEC, 0x56, 0x3B, 0x72, 0x39, 0xF9, 0xC3 } } } }, // EoB 2
+ { DE_DEU, kPlatformPC, { 0x0000015B, 0x00007C37, { { 0x44, 0xA3, 0x32, 0x88, 0x9F, 0x63, 0x28, 0xA0, 0xBD, 0x00, 0xF1, 0x08, 0xCA, 0xE5, 0xFE, 0x5F } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseManPromptProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000041, 0x000013AC, { { 0x40, 0x2B, 0xB5, 0x99, 0xEF, 0x8F, 0x3C, 0x9F, 0xB1, 0x5A, 0xBE, 0xE4, 0x80, 0x8E, 0xBB, 0x96 } } } }, // EoB 1
+ { DE_DEU, kPlatformPC, { 0x00000048, 0x000015A5, { { 0x0B, 0xB4, 0x9E, 0xAD, 0xB3, 0x56, 0x75, 0xC1, 0xAE, 0x29, 0xF7, 0xB5, 0x82, 0x14, 0xD1, 0x27 } } } }, // EoB 1
+ { EN_ANY, kPlatformPC, { 0x00000041, 0x000013AC, { { 0x40, 0x2B, 0xB5, 0x99, 0xEF, 0x8F, 0x3C, 0x9F, 0xB1, 0x5A, 0xBE, 0xE4, 0x80, 0x8E, 0xBB, 0x96 } } } }, // EoB 2
+ { DE_DEU, kPlatformPC, { 0x0000005C, 0x00001D08, { { 0x10, 0xCE, 0x2D, 0xED, 0xA9, 0xA0, 0x7C, 0xA1, 0x91, 0x3F, 0xD8, 0x43, 0x03, 0x53, 0x97, 0xCA } } } }, // EoB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscMonsterFrmOffsTbl1Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x00001000, { { 0x98, 0x27, 0x57, 0x25, 0x3B, 0x04, 0x7D, 0x14, 0x3A, 0xD4, 0xA2, 0x5D, 0xBA, 0x04, 0x45, 0xAC } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDscMonsterFrmOffsTbl2Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x00000828, { { 0x7E, 0x8A, 0x0C, 0xEB, 0x5C, 0xBC, 0x6C, 0xBD, 0xD2, 0x48, 0x08, 0xCC, 0xF7, 0x7B, 0x81, 0x03 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseInvSlotXProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000036, 0x000010BF, { { 0x50, 0x6E, 0x67, 0x2B, 0x7D, 0x6C, 0xF2, 0x21, 0x73, 0xA2, 0xD5, 0xBB, 0xCE, 0x3B, 0x71, 0xAA } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseInvSlotYProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000001B, 0x00000A5B, { { 0x47, 0x55, 0x7D, 0x84, 0x45, 0x91, 0xC4, 0x44, 0x10, 0xD5, 0x39, 0xC4, 0xC8, 0x4F, 0x01, 0xA4 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSlotValidationFlagsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000036, 0x00001F6B, { { 0x87, 0x4F, 0x9A, 0x97, 0x20, 0x20, 0xB2, 0xA6, 0xF7, 0xC2, 0x5F, 0xAA, 0x17, 0xEA, 0xB4, 0x50 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseProjectileWeaponTypesProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000008, 0x0000061C, { { 0x05, 0x55, 0xA6, 0xD1, 0x3C, 0x12, 0x84, 0xDA, 0xA9, 0x33, 0xCF, 0x07, 0x05, 0x2A, 0xB2, 0x29 } } } }, // EOB 1
+ { UNK_LANG, kPlatformPC, { 0x0000000F, 0x00000829, { { 0x9F, 0x6A, 0x13, 0x8A, 0xA7, 0x40, 0xE8, 0x40, 0x2E, 0x87, 0x49, 0x6B, 0x67, 0xED, 0xE8, 0xCE } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseWandTypesProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000007, 0x00000162, { { 0xDB, 0x5D, 0x34, 0x70, 0x41, 0xAB, 0x8F, 0x75, 0xC8, 0x61, 0x8E, 0x44, 0x82, 0xCF, 0x28, 0x03 } } } }, // EOB 1
+ { UNK_LANG, kPlatformPC, { 0x00000008, 0x00000175, { { 0x01, 0xC2, 0xF0, 0xC6, 0x1C, 0xD0, 0x14, 0xD9, 0xB8, 0xF5, 0x9C, 0xFC, 0x22, 0xE4, 0xA0, 0xA7 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseDrawObjPosIndexProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000014, 0x00000028, { { 0x44, 0x46, 0x8C, 0x94, 0x76, 0x24, 0x08, 0xC7, 0x1F, 0x1B, 0x10, 0xD7, 0xDF, 0x18, 0x6C, 0x0D } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseFlightObjFlipIndexProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000010, 0x00000008, { { 0xEB, 0xF0, 0x27, 0x7E, 0xA8, 0x09, 0x3A, 0x95, 0x3B, 0x71, 0x2A, 0x43, 0x2E, 0xCF, 0x22, 0x0B } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseFlightObjShpMapProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000058, 0x000051BD, { { 0xC3, 0xD2, 0xD1, 0xE5, 0x78, 0xEE, 0xA7, 0xAA, 0x71, 0xD1, 0xDD, 0xDF, 0x40, 0xBB, 0xAF, 0x66 } } } }, // EOB 1
+ { UNK_LANG, kPlatformPC, { 0x0000002D, 0x000025E6, { { 0x64, 0x26, 0x3D, 0xDC, 0x6C, 0x1A, 0xFC, 0x36, 0x9E, 0x5A, 0xBF, 0x64, 0xAD, 0xF4, 0xA3, 0x5D } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseFlightObjSclIndexProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000048, 0x00002A0E, { { 0xAC, 0xBB, 0x7D, 0x73, 0x98, 0xF4, 0x1E, 0x4A, 0x77, 0xF0, 0x98, 0x75, 0x11, 0xBF, 0xF7, 0xD5 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseBookNumbersProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000020, 0x00000AC8, { { 0x35, 0x05, 0x37, 0x4C, 0x05, 0x74, 0x04, 0x08, 0xAD, 0xA3, 0x64, 0xBF, 0xC0, 0x67, 0xF2, 0xF7 } } } },
+ { DE_DEU, kPlatformPC, { 0x00000028, 0x00000E5D, { { 0x80, 0x98, 0x05, 0x54, 0x84, 0x90, 0xD3, 0xB3, 0x9B, 0xFB, 0x8F, 0xB9, 0xA0, 0x43, 0xAA, 0xFD } } } },
+ { EN_ANY, kPlatformPC, { 0x00000020, 0x00000AC8, { { 0x35, 0x05, 0x37, 0x4C, 0x05, 0x74, 0x04, 0x08, 0xAD, 0xA3, 0x64, 0xBF, 0xC0, 0x67, 0xF2, 0xF7 } } } },
+ { DE_DEU, kPlatformPC, { 0x00000022, 0x00000BCA, { { 0x93, 0x0E, 0xE0, 0x6D, 0xDD, 0x40, 0xBC, 0x89, 0x67, 0xBD, 0x8A, 0xCB, 0xD2, 0xCF, 0x78, 0x8D } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMageSpellsListProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000122, 0x00006304, { { 0xD7, 0x14, 0x28, 0x83, 0x04, 0xC3, 0x42, 0x5A, 0x15, 0x49, 0x91, 0x12, 0x1D, 0x49, 0x17, 0x5B } } } },
+ { DE_DEU, kPlatformPC, { 0x0000013A, 0x00007155, { { 0x94, 0x45, 0xB9, 0x15, 0x57, 0x6E, 0xC6, 0x70, 0x66, 0x5F, 0xA7, 0x90, 0xA0, 0xC7, 0xC9, 0xE9 } } } },
+ { EN_ANY, kPlatformPC, { 0x00000195, 0x00008AC0, { { 0x55, 0xB8, 0x75, 0x35, 0x09, 0x23, 0x83, 0x11, 0x22, 0xF8, 0x23, 0x1E, 0x8F, 0x08, 0x57, 0x66 } } } },
+ { DE_DEU, kPlatformPC, { 0x0000019A, 0x0000929F, { { 0xB3, 0xA0, 0x2D, 0x3B, 0xF3, 0x72, 0x9B, 0x75, 0xA3, 0xC4, 0xD8, 0x72, 0x4B, 0xDE, 0x69, 0x82 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseClericSpellsListProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x0000013B, 0x00006BE6, { { 0x34, 0x63, 0x0B, 0xBA, 0xED, 0xC2, 0x9B, 0x31, 0xC3, 0x65, 0x51, 0xFF, 0xEF, 0xD8, 0x25, 0x92 } } } },
+ { DE_DEU, kPlatformPC, { 0x0000016D, 0x00007E74, { { 0x6E, 0xDE, 0x28, 0xE6, 0x13, 0x3D, 0xA6, 0x42, 0x80, 0xAB, 0xE7, 0xED, 0xAD, 0xC8, 0x62, 0x48 } } } },
+ { EN_ANY, kPlatformPC, { 0x00000164, 0x000079B3, { { 0x93, 0x16, 0x25, 0xFB, 0x76, 0xFF, 0xBC, 0x70, 0x9A, 0xB7, 0x93, 0xFC, 0x2E, 0xC3, 0x61, 0x7F } } } },
+ { DE_DEU, kPlatformPC, { 0x0000018B, 0x00008BB1, { { 0x8C, 0x21, 0xED, 0xE0, 0x1F, 0xF1, 0xDB, 0x72, 0xC4, 0x46, 0x36, 0x50, 0x16, 0xD5, 0xA8, 0x68 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSpellNamesProvider[] = {
+ { EN_ANY, kPlatformPC, { 0x0000029A, 0x0000F1C8, { { 0xCA, 0xE1, 0x30, 0xDC, 0xAB, 0xD1, 0x87, 0xE8, 0x51, 0xA2, 0xA2, 0x1C, 0x23, 0x4A, 0x34, 0x58 } } } },
+ { DE_DEU, kPlatformPC, { 0x000002D3, 0x0001080D, { { 0x5F, 0xDB, 0x9E, 0x48, 0x30, 0x03, 0xE1, 0x8E, 0xC7, 0xDC, 0x98, 0x10, 0xCE, 0xA1, 0x28, 0x31 } } } },
+ { EN_ANY, kPlatformPC, { 0x00000366, 0x00013B1A, { { 0x15, 0xCB, 0x0E, 0xA9, 0x4E, 0x78, 0x30, 0x99, 0xA1, 0xCF, 0xF7, 0x05, 0xAB, 0x00, 0x66, 0x82 } } } },
+ { DE_DEU, kPlatformPC, { 0x000003BA, 0x0001626B, { { 0x0E, 0x4F, 0xF6, 0xFB, 0x78, 0x5E, 0x03, 0xE7, 0x82, 0xC4, 0xE2, 0x7B, 0xD9, 0xB2, 0xD7, 0xB2 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMagicStrings1Provider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000084, 0x000029B0, { { 0xC6, 0x90, 0x19, 0x61, 0xA1, 0x66, 0xF6, 0x03, 0x7A, 0x1F, 0x10, 0x00, 0xCA, 0x8F, 0x69, 0x3B } } } },
+ { DE_DEU, kPlatformPC, { 0x0000009D, 0x000033E4, { { 0x4B, 0xCF, 0x40, 0xCE, 0x0F, 0x86, 0x98, 0x36, 0x03, 0x59, 0xFE, 0x32, 0xFA, 0x4C, 0x14, 0x75 } } } },
+ { EN_ANY, kPlatformPC, { 0x00000085, 0x000029BD, { { 0xAB, 0x22, 0x4A, 0x70, 0xBB, 0x29, 0xB8, 0xBD, 0xAF, 0xC5, 0x0D, 0x1F, 0x23, 0x38, 0xBD, 0x06 } } } },
+ { DE_DEU, kPlatformPC, { 0x0000008C, 0x00002D68, { { 0x4B, 0x0A, 0x09, 0x22, 0xF7, 0x77, 0x82, 0x4B, 0xFE, 0x0B, 0xF1, 0x8F, 0x1C, 0xEA, 0x1A, 0x0C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMagicStrings2Provider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000051, 0x00001AD6, { { 0x28, 0x18, 0x2B, 0xF0, 0x0E, 0xC6, 0xEB, 0x01, 0xB0, 0x9A, 0x0A, 0x65, 0x05, 0xCB, 0x8F, 0x41 } } } },
+ { DE_DEU, kPlatformPC, { 0x0000004F, 0x00001A82, { { 0x77, 0x85, 0x17, 0x25, 0x07, 0x72, 0x4A, 0x7F, 0x4F, 0x39, 0x6C, 0xDD, 0xB6, 0x70, 0x11, 0x02 } } } },
+ { EN_ANY, kPlatformPC, { 0x00000090, 0x00002E35, { { 0x39, 0xD7, 0xA3, 0x21, 0xF0, 0xB7, 0x93, 0x9D, 0xDD, 0xEE, 0x33, 0xC2, 0x05, 0xE6, 0xE3, 0x63 } } } },
+ { DE_DEU, kPlatformPC, { 0x000000A1, 0x0000365C, { { 0x9A, 0x2D, 0xDB, 0x38, 0xB3, 0xF4, 0x0E, 0xF4, 0x36, 0x87, 0x60, 0xAE, 0xF8, 0x7E, 0xCA, 0x8A } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMagicStrings3Provider[] = {
+ { EN_ANY, kPlatformPC, { 0x0000008D, 0x00002DC8, { { 0x35, 0x5E, 0xDD, 0x32, 0x2D, 0x55, 0x1E, 0xBC, 0x93, 0x49, 0x55, 0x48, 0x8F, 0xCD, 0x87, 0xEB } } } },
+ { DE_DEU, kPlatformPC, { 0x000000A8, 0x0000381C, { { 0x12, 0x95, 0x55, 0x57, 0x2B, 0xA0, 0x1A, 0x75, 0xD3, 0x43, 0xFF, 0x3E, 0x00, 0xB6, 0xEC, 0x35 } } } },
+ { EN_ANY, kPlatformPC, { 0x00000088, 0x00002CD4, { { 0xD8, 0xBA, 0x5D, 0x14, 0x92, 0x84, 0x5A, 0x07, 0xC6, 0x76, 0xDF, 0x11, 0x1D, 0x84, 0x7A, 0x98 } } } },
+ { DE_DEU, kPlatformPC, { 0x00000081, 0x00002B14, { { 0xC8, 0xB7, 0x77, 0xBC, 0x3A, 0xB6, 0xDC, 0xB7, 0x00, 0xF3, 0x06, 0xEB, 0x77, 0x10, 0x7C, 0x7E } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMagicStrings4Provider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000017, 0x0000071C, { { 0x96, 0x50, 0xA8, 0x08, 0x1B, 0x2D, 0x0C, 0xF6, 0x90, 0x6A, 0xE7, 0x9F, 0x65, 0xCC, 0x71, 0xA0 } } } },
+ { DE_DEU, kPlatformPC, { 0x0000001B, 0x00000840, { { 0xA2, 0xCF, 0x81, 0x3E, 0x87, 0xA8, 0x10, 0x1B, 0x44, 0x8D, 0x5B, 0x8B, 0xAE, 0x23, 0x30, 0xD3 } } } },
+ { EN_ANY, kPlatformPC, { 0x0000000C, 0x000003A5, { { 0x72, 0x64, 0xBD, 0x1C, 0xED, 0x05, 0x28, 0xFC, 0x94, 0x4B, 0x8F, 0x3C, 0x38, 0x08, 0x77, 0xED } } } },
+ { DE_DEU, kPlatformPC, { 0x00000010, 0x0000054E, { { 0xD9, 0x97, 0xA8, 0x24, 0x27, 0x7B, 0x01, 0x3F, 0x03, 0xBA, 0x2A, 0x43, 0x81, 0x8F, 0x97, 0x03 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMagicStrings6Provider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000029, 0x00000DA4, { { 0x5C, 0x6F, 0xA1, 0xC2, 0x56, 0xDE, 0xFE, 0xD5, 0x01, 0xFB, 0x65, 0x00, 0x24, 0xD1, 0x49, 0x7B } } } },
+ { DE_DEU, kPlatformPC, { 0x00000032, 0x00001211, { { 0x13, 0xBC, 0xF1, 0x03, 0x49, 0xDB, 0x16, 0xA5, 0xC3, 0x7C, 0xBF, 0x14, 0x8F, 0x40, 0x07, 0x8E } } } },
+ { EN_ANY, kPlatformPC, { 0x00000030, 0x00000FF5, { { 0xE4, 0x2B, 0xB9, 0xF0, 0x26, 0x3D, 0x30, 0xCD, 0xEF, 0xCD, 0xF5, 0xC0, 0x4E, 0xA4, 0xC4, 0x92 } } } },
+ { DE_DEU, kPlatformPC, { 0x00000029, 0x00000E6D, { { 0xE1, 0xBD, 0x4B, 0x42, 0x17, 0xA2, 0xB6, 0x6C, 0xF2, 0x7F, 0xEB, 0x41, 0x2C, 0x82, 0x8C, 0x76 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMagicStrings7Provider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000014, 0x00000406, { { 0xBD, 0xE1, 0x0A, 0x75, 0xD1, 0x18, 0xF7, 0x08, 0x2D, 0x2B, 0x65, 0x36, 0xA7, 0x59, 0x2E, 0x13 } } } },
+ { DE_DEU, kPlatformPC, { 0x0000000F, 0x000001E5, { { 0x1F, 0xC9, 0x46, 0x8B, 0x41, 0xAD, 0xAD, 0x2B, 0x5A, 0xA9, 0xAB, 0x94, 0x9A, 0x1E, 0x36, 0xAC } } } },
+ { EN_ANY, kPlatformPC, { 0x00000065, 0x000021AF, { { 0x76, 0x35, 0xAE, 0x1D, 0xC2, 0x54, 0x36, 0x11, 0x4D, 0x3E, 0x96, 0x11, 0xB2, 0xDC, 0x15, 0x20 } } } },
+ { DE_DEU, kPlatformPC, { 0x0000006F, 0x000026BA, { { 0xC9, 0x46, 0xD7, 0xF3, 0xF2, 0x5F, 0xF4, 0xB1, 0x22, 0xC8, 0x30, 0x16, 0x8E, 0x75, 0x4D, 0xA8 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMagicStrings8Provider[] = {
+ { EN_ANY, kPlatformPC, { 0x00000056, 0x00001C95, { { 0x7E, 0x43, 0x73, 0xEC, 0x94, 0x0D, 0xF8, 0x1B, 0xF3, 0x1A, 0x62, 0x19, 0x96, 0x6A, 0x2C, 0xB5 } } } },
+ { DE_DEU, kPlatformPC, { 0x00000061, 0x0000213B, { { 0xE2, 0x3B, 0xA7, 0xB7, 0xE6, 0xA5, 0x0D, 0x0F, 0xE0, 0x94, 0x9B, 0xAE, 0xE1, 0x11, 0x97, 0x93 } } } },
+ { EN_ANY, kPlatformPC, { 0x00000085, 0x00002C0E, { { 0x6A, 0xEC, 0xF2, 0x5F, 0xA6, 0x3F, 0xB1, 0x1A, 0x74, 0x49, 0x5A, 0x47, 0xB0, 0x7A, 0xE6, 0x99 } } } },
+ { DE_DEU, kPlatformPC, { 0x00000096, 0x0000342E, { { 0x83, 0x48, 0x3B, 0xED, 0x73, 0x02, 0x03, 0xCA, 0xA9, 0x4D, 0x40, 0x0F, 0xDE, 0x17, 0x7D, 0x40 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseExpObjectTlModeProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000012, 0x0000000C, { { 0x98, 0x29, 0x54, 0xCD, 0xED, 0xAC, 0x7B, 0x61, 0x8D, 0x4F, 0x19, 0xE8, 0xA6, 0xB1, 0x51, 0x80 } } } },
+ EXTRACT_END_ENTRY
+};
+const ExtractEntrySearchData kEoBBaseExpObjectTblIndexProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000009, 0x00000005, { { 0xFE, 0xEA, 0xC4, 0x54, 0x62, 0x7E, 0x43, 0x6E, 0x89, 0x48, 0x03, 0xE7, 0x47, 0xBF, 0x7D, 0x9D } } } }, // EOB 1
+ { UNK_LANG, kPlatformPC, { 0x0000000E, 0x00000004, { { 0x63, 0x27, 0x19, 0x17, 0xBD, 0xC3, 0x8A, 0xA7, 0x1E, 0xF7, 0xD1, 0x78, 0x39, 0x3B, 0xD4, 0x4F } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+const ExtractEntrySearchData kEoBBaseExpObjectShpStartProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x00000034, { { 0x27, 0xC5, 0x09, 0x97, 0x8E, 0xD4, 0xF1, 0x8D, 0x77, 0xEB, 0x1D, 0x34, 0x55, 0xB2, 0x48, 0x38 } } } },
+ EXTRACT_END_ENTRY
+};
+const ExtractEntrySearchData kEoBBaseExpObjectTbl1Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000000D, 0x0000005D, { { 0x49, 0xC4, 0x47, 0x55, 0xDC, 0x25, 0x08, 0x03, 0x3D, 0x23, 0xAD, 0x09, 0x5F, 0x9C, 0x34, 0x06 } } } },
+ EXTRACT_END_ENTRY
+};
+const ExtractEntrySearchData kEoBBaseExpObjectTbl2Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000000A, 0x0000005C, { { 0xAB, 0x6A, 0x97, 0x35, 0xCC, 0x13, 0xC4, 0x17, 0x0B, 0xF2, 0xD3, 0xFD, 0xA2, 0x1C, 0x6C, 0xA8 } } } },
+ EXTRACT_END_ENTRY
+};
+const ExtractEntrySearchData kEoBBaseExpObjectTbl3Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000000B, 0x00000032, { { 0x59, 0x23, 0xB9, 0xBE, 0x0E, 0xFA, 0xEB, 0xDD, 0x82, 0x68, 0x5B, 0xB0, 0xBE, 0x9B, 0x1D, 0x8E } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseExpObjectYProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000008, 0x0000016C, { { 0xCF, 0x5B, 0x04, 0xAB, 0x1A, 0xAF, 0xDD, 0x56, 0xAC, 0xF6, 0x23, 0x86, 0x33, 0x06, 0x5A, 0xC6 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSparkDefStepsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000008, 0x000002FD, { { 0xB5, 0x6F, 0x31, 0x5F, 0xC6, 0x47, 0xE9, 0x23, 0x0E, 0x73, 0xBF, 0x77, 0xC7, 0xEE, 0xDB, 0x27 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSparkDefSubStepsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x000000FF, { { 0x18, 0x27, 0x73, 0x45, 0x26, 0x58, 0x81, 0x82, 0x70, 0x86, 0x7A, 0x0D, 0xDE, 0xC1, 0x08, 0x52 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSparkDefShiftProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x0000000C, { { 0xCC, 0xDC, 0x78, 0xF9, 0xFE, 0x88, 0xF3, 0x87, 0xFD, 0x08, 0xE8, 0x8A, 0x38, 0xD5, 0x4C, 0x53 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSparkDefAddProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000008, 0x0000007F, { { 0x7F, 0x86, 0x2E, 0x14, 0xDB, 0x36, 0xED, 0x99, 0xD9, 0xCE, 0xAF, 0x11, 0xC2, 0x89, 0x21, 0x6B } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSparkDefXProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000000C, 0x000000A5, { { 0x77, 0xD7, 0xE0, 0x2D, 0xD4, 0x25, 0x94, 0x6E, 0x59, 0x3B, 0xAF, 0x9B, 0x16, 0x4F, 0x6D, 0x4C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSparkDefYProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000006, 0x00000138, { { 0xB9, 0xA2, 0x72, 0x01, 0x2A, 0xD7, 0x61, 0xAB, 0x02, 0x57, 0x87, 0xC8, 0x86, 0x83, 0xDF, 0xB3 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSparkOfFlags1Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000002C, 0x00000BF4, { { 0x94, 0x8C, 0x1B, 0x77, 0xBF, 0x3A, 0x51, 0x17, 0x89, 0x16, 0xD0, 0x74, 0x95, 0xBD, 0x85, 0x98 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSparkOfFlags2Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000040, 0x000003FC, { { 0x40, 0x13, 0x5A, 0x9D, 0xBD, 0x29, 0x2E, 0x9C, 0xC1, 0xE7, 0xD4, 0xC9, 0x26, 0xFA, 0xF2, 0x70 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSparkOfShiftProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000010, 0x000000F0, { { 0xC5, 0xC8, 0x91, 0x7E, 0x78, 0x2F, 0xF1, 0xE5, 0xE0, 0x06, 0xB2, 0x39, 0xDC, 0x0D, 0x7A, 0x5F } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSparkOfXProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000010, 0x00000528, { { 0x58, 0xE6, 0x24, 0x6A, 0xD3, 0xA4, 0xEF, 0x58, 0x4A, 0x9C, 0x32, 0x31, 0x4C, 0x61, 0xBC, 0x1C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSparkOfYProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000010, 0x000002D4, { { 0x74, 0x31, 0xFE, 0x7C, 0x38, 0x16, 0x0C, 0x05, 0x64, 0xAB, 0x8A, 0x69, 0xEA, 0x66, 0x29, 0x2F } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseSpellPropertiesProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x000003EF, 0x0000BE7A, { { 0x10, 0xEA, 0x14, 0x26, 0xE2, 0xFC, 0xA1, 0xCB, 0xD9, 0x80, 0xFE, 0x9F, 0x69, 0x58, 0x4A, 0xCA } } } },
+ { UNK_LANG, kPlatformPC, { 0x000003EF, 0x00008FCE, { { 0xC9, 0x36, 0xDD, 0x7B, 0x05, 0x6E, 0x92, 0xBA, 0x2B, 0x39, 0x87, 0xA7, 0x3A, 0x7E, 0xB0, 0xAD } } } },
+ { UNK_LANG, kPlatformPC, { 0x000006D6, 0x0000CA78, { { 0xEB, 0x3B, 0x9F, 0xFD, 0x4E, 0x3F, 0x5C, 0xDE, 0xC6, 0xBA, 0xFE, 0x83, 0xB4, 0x10, 0x6D, 0x95 } } } },
+ { UNK_LANG, kPlatformPC, { 0x000006D6, 0x0000EC32, { { 0x52, 0xAE, 0x4D, 0xC2, 0x24, 0xC8, 0xD3, 0xBE, 0x09, 0x45, 0x98, 0x38, 0x17, 0x7D, 0xFF, 0xE4 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMagicFlightPropsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000060, 0x0000166F, { { 0x38, 0x30, 0xCA, 0x07, 0x64, 0xBA, 0xC4, 0xA4, 0x4F, 0x75, 0xB4, 0x84, 0x3A, 0x92, 0xFD, 0xE3 } } } },
+ { UNK_LANG, kPlatformPC, { 0x00000038, 0x00000DDC, { { 0x23, 0x32, 0x8D, 0x34, 0x4F, 0x72, 0x37, 0xE1, 0x0C, 0x1B, 0x47, 0x17, 0x5D, 0xDF, 0xDB, 0xF5 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseTurnUndeadEffectProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000008C, 0x00002E8B, { { 0x96, 0x15, 0x61, 0x12, 0x43, 0xCF, 0x3A, 0x84, 0x1A, 0x89, 0xB5, 0x32, 0x0D, 0xB3, 0x20, 0x67 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseBurningHandsDestProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000008, 0x0000000C, { { 0x61, 0xD7, 0xAB, 0xE1, 0x56, 0x54, 0x51, 0x5B, 0xD9, 0x59, 0x2D, 0x3D, 0xAE, 0xA4, 0x49, 0x31 } } } }, // EOB1
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x0000003E, { { 0xA5, 0x8C, 0xCA, 0x13, 0xED, 0x0F, 0xB7, 0xA2, 0xD7, 0x9C, 0xCD, 0x11, 0x65, 0x11, 0x4B, 0xD8 } } } }, // EOB2
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseConeOfColdDest1Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000007, 0x00000500, { { 0x48, 0xF1, 0xFE, 0x48, 0xEC, 0x64, 0x17, 0x51, 0x5C, 0x9A, 0x91, 0x35, 0x95, 0xC3, 0x73, 0x8E } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseConeOfColdDest2Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000007, 0x00000210, { { 0xBA, 0x62, 0xA0, 0x4F, 0x50, 0x0C, 0x02, 0xC3, 0xAD, 0x7C, 0x39, 0x63, 0x5F, 0x41, 0xB4, 0xFB } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseConeOfColdDest3Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000007, 0x00000200, { { 0xA0, 0x1F, 0xAC, 0x3A, 0x2D, 0x25, 0x1F, 0x5C, 0xD2, 0x04, 0xAC, 0xAB, 0x97, 0x8B, 0x61, 0xD7 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseConeOfColdDest4Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000007, 0x000004F0, { { 0xB3, 0x9A, 0x2B, 0x3A, 0x51, 0x24, 0x95, 0xBE, 0xDE, 0x0F, 0xD5, 0xE9, 0xE9, 0x21, 0x96, 0x04 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseConeOfColdGfxTblProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000010, 0x0000003E, { { 0x0A, 0xBA, 0xFD, 0x3F, 0xD8, 0x49, 0x3F, 0xD2, 0x26, 0x1B, 0x19, 0x53, 0x4F, 0x84, 0xB9, 0x4F } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1MainMenuStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000037, 0x00000D79, { { 0x1D, 0x72, 0x7F, 0x8F, 0xEB, 0x4A, 0xBF, 0x82, 0xB7, 0xB5, 0x9D, 0xB0, 0x7B, 0xDA, 0xEC, 0xEE } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000034, 0x00000C6F, { { 0xF2, 0x5F, 0xBE, 0xFB, 0x27, 0x1C, 0x91, 0x33, 0x25, 0x09, 0xC1, 0xA0, 0x27, 0x89, 0xD7, 0xD5 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1BonusStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000093, 0x000031B6, { { 0xC1, 0x54, 0x1D, 0x02, 0x4A, 0x35, 0x7F, 0x5D, 0x84, 0x2D, 0x2C, 0x9C, 0x06, 0x97, 0x29, 0x8D } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000093, 0x000031CD, { { 0x3E, 0x0F, 0x52, 0x02, 0xC7, 0x9E, 0x83, 0xB3, 0xB1, 0xAB, 0x03, 0x3A, 0x18, 0xE2, 0x87, 0x2E } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroFilesOpeningProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000003F, 0x00001044, { { 0xF5, 0x8C, 0xC8, 0x39, 0x38, 0xBB, 0x0B, 0xCA, 0x34, 0x38, 0x1D, 0x11, 0x46, 0x91, 0xEF, 0x7E } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroFilesTowerProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000001A, 0x000006E6, { { 0xBD, 0x06, 0x3B, 0x7D, 0x24, 0x79, 0xD6, 0xC2, 0xFA, 0xDA, 0x31, 0x15, 0x3E, 0xE2, 0x75, 0xF8 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroFilesOrbProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000015, 0x00000565, { { 0xA7, 0x91, 0x97, 0x5B, 0x29, 0xE8, 0x27, 0x90, 0xB3, 0x8F, 0xD5, 0x13, 0x77, 0x4A, 0x93, 0x37 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroFilesWdEntryProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000002C, 0x00000B42, { { 0x5C, 0xDF, 0xB1, 0x2A, 0x83, 0x03, 0x73, 0x47, 0x1E, 0x29, 0x7C, 0x16, 0x2E, 0x5D, 0x0F, 0xA4 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroFilesKingProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000016, 0x000005AE, { { 0xB5, 0xB5, 0x80, 0xD3, 0xC0, 0xF4, 0x9F, 0xE1, 0x12, 0x3C, 0xCB, 0xD6, 0xF2, 0x7F, 0x15, 0x5B } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroFilesHandsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000000A, 0x0000027C, { { 0x90, 0xC7, 0x36, 0xE6, 0x7D, 0x6D, 0xCB, 0x77, 0xA0, 0x03, 0x45, 0x48, 0x46, 0xF3, 0x80, 0xC8 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroFilesWdExitProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000033, 0x00000D2A, { { 0xA8, 0xF0, 0x36, 0x0E, 0x37, 0xC6, 0xCC, 0xDB, 0x9B, 0xB8, 0x52, 0x64, 0x02, 0x1E, 0x9D, 0x1C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroFilesTunnelProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000001A, 0x000006E2, { { 0xA1, 0xDD, 0x20, 0x50, 0x7A, 0xB6, 0x89, 0x67, 0x13, 0xAA, 0x47, 0x6B, 0xC0, 0xA0, 0x8A, 0xFD } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroOpeningFrmDelayProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000000A, 0x000001E0, { { 0xDA, 0xE3, 0x06, 0xA2, 0x41, 0xF6, 0x5A, 0x6A, 0xBD, 0x0B, 0xA6, 0x09, 0x69, 0x03, 0x1D, 0x2C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroWdEncodeXProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000001F, 0x000001BB, { { 0x00, 0x50, 0x8E, 0xF5, 0x51, 0xA6, 0xF5, 0x57, 0x0D, 0x55, 0x6C, 0x14, 0x62, 0xCD, 0xD0, 0x7E } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroWdEncodeYProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000001F, 0x0000000B, { { 0x39, 0x38, 0x02, 0xCE, 0x9D, 0x89, 0x1E, 0xBF, 0x32, 0x86, 0xA0, 0x79, 0xA4, 0xBE, 0xC5, 0x81 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroWdEncodeWHProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000001F, 0x00000027, { { 0xA8, 0x6C, 0x13, 0x2B, 0x4C, 0x26, 0x38, 0x3D, 0xDA, 0xC2, 0x90, 0xB3, 0x97, 0xA9, 0x45, 0x84 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroWdDsXProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000003E, 0x0000104A, { { 0xAC, 0x1F, 0xA6, 0x20, 0xD0, 0x02, 0xF0, 0x9D, 0x75, 0x93, 0x6C, 0x12, 0x0A, 0x76, 0x1B, 0x3F } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroWdDsYProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000001F, 0x00000655, { { 0xF3, 0xF7, 0x65, 0xEC, 0xEA, 0x5C, 0x08, 0xCF, 0xAD, 0x48, 0x35, 0xA2, 0x5B, 0x82, 0xB0, 0xC5 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroTvlX1Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000006, 0x00000027, { { 0x7F, 0x14, 0x7D, 0x8C, 0x20, 0x49, 0xDB, 0xC3, 0x31, 0x1A, 0xC3, 0x95, 0xA4, 0x8C, 0x96, 0xDC } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroTvlY1Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000006, 0x000000EC, { { 0x29, 0xB4, 0x8D, 0xE1, 0xDF, 0x36, 0x39, 0x27, 0xC8, 0xF6, 0x32, 0x1A, 0x3B, 0x74, 0xA1, 0x4F } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroTvlX2Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000006, 0x00000051, { { 0x51, 0x33, 0x0A, 0x55, 0x76, 0xA2, 0x91, 0xDA, 0x59, 0xD6, 0x09, 0xD9, 0x3D, 0xD4, 0xB8, 0xFE } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroTvlY2Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000006, 0x0000016A, { { 0xD5, 0xA3, 0xF6, 0x12, 0x90, 0x87, 0xF2, 0xC7, 0x6A, 0x22, 0x77, 0xB5, 0x48, 0xB2, 0xCB, 0xCA } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroTvlWProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000006, 0x0000004E, { { 0xCF, 0xC7, 0xA8, 0x59, 0x6A, 0x5B, 0x35, 0x7F, 0xC9, 0xEC, 0x59, 0x7E, 0x88, 0x31, 0x32, 0xA6 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1IntroTvlHProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000006, 0x0000013D, { { 0x26, 0x7B, 0x3D, 0x5F, 0x64, 0x97, 0xF9, 0x1B, 0xB6, 0x65, 0x99, 0x95, 0x0A, 0x98, 0x38, 0x92 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1DoorShapeDefsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000060, 0x00000F8A, { { 0x95, 0x53, 0x1B, 0x07, 0x64, 0x81, 0x0E, 0x04, 0xC0, 0xDA, 0xB5, 0x74, 0x57, 0x04, 0x10, 0xE2 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1DoorSwitchShapeDefsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000060, 0x0000119E, { { 0xA4, 0xE6, 0x96, 0x36, 0x59, 0x05, 0xB8, 0x57, 0xF4, 0x6D, 0x79, 0x1D, 0x29, 0x52, 0xA0, 0xEE } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1DoorSwitchCoordsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000030, 0x000007F7, { { 0x85, 0x20, 0x98, 0x20, 0xE1, 0xD6, 0xA5, 0xBD, 0x9E, 0x59, 0x63, 0x6A, 0xEF, 0xEF, 0x80, 0x19 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1MonsterPropertiesProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000252, 0x000038E5, { { 0x5E, 0xD7, 0xEF, 0x3B, 0xD5, 0xDA, 0x2A, 0x09, 0x78, 0xF6, 0xD8, 0x57, 0x68, 0xB4, 0x90, 0xCA } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1EnemyMageSpellListProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000000A, 0x0000000F, { { 0x01, 0x1B, 0x9C, 0x51, 0xC9, 0xA2, 0x10, 0xBB, 0xA7, 0x82, 0xD4, 0x91, 0x7E, 0x84, 0x54, 0x93 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1EnemyMageSfxProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000000A, 0x0000029B, { { 0xA2, 0x9F, 0x2E, 0xDE, 0x15, 0x23, 0x78, 0xDD, 0x26, 0x98, 0x6E, 0xA3, 0x77, 0xEA, 0xB5, 0x80 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1BeholderSpellListProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x00000079, { { 0x8E, 0x13, 0x54, 0x9D, 0x54, 0xF6, 0xC9, 0x6E, 0x10, 0xF1, 0xC0, 0xE9, 0x66, 0xDD, 0x95, 0xED } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1BeholderSfxProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x000000F5, { { 0xA9, 0x90, 0x41, 0x0D, 0xB5, 0xE0, 0x28, 0xFD, 0x0A, 0xC3, 0xF9, 0xEC, 0xC8, 0x47, 0xC1, 0x57 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1TurnUndeadStringProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000027, 0x00000BF2, { { 0x43, 0x0A, 0x1E, 0xEE, 0x84, 0xD6, 0xD6, 0x87, 0x20, 0x9F, 0x15, 0x22, 0x9B, 0x65, 0x24, 0xDB } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000030, 0x00000F48, { { 0xDA, 0x59, 0xEC, 0xC1, 0x9B, 0xCF, 0x90, 0x4A, 0x93, 0x3E, 0xE5, 0x26, 0x20, 0x8B, 0x74, 0x92 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingDefaultProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x0000002C, { { 0x7E, 0x1C, 0x75, 0xC3, 0x8E, 0xF7, 0x56, 0x62, 0x9B, 0xB6, 0xF4, 0x3A, 0x21, 0x03, 0xFA, 0xF5 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingAltProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x00000030, { { 0x2A, 0x8C, 0xF6, 0xD7, 0x87, 0xFA, 0x7B, 0x22, 0x28, 0x2A, 0x50, 0xE2, 0x26, 0x7B, 0xC7, 0x44 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingInvProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x0000002E, { { 0x3A, 0x06, 0xBF, 0x0C, 0xD4, 0xD0, 0x15, 0x1F, 0xB5, 0xC5, 0x49, 0xFD, 0x21, 0xE1, 0xE1, 0x66 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingItemsLProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x0000002A, { { 0xE0, 0x85, 0xA1, 0x3A, 0x3D, 0xC9, 0xF8, 0x56, 0x17, 0x0A, 0xD8, 0x44, 0x56, 0xDF, 0x3C, 0x57 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingItemsSProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x00000036, { { 0x2E, 0x6F, 0xD4, 0x2E, 0xB2, 0x84, 0xB2, 0xC3, 0x36, 0x88, 0x80, 0xC1, 0x67, 0x5A, 0xEB, 0x60 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingThrownProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x00000030, { { 0x0C, 0x3D, 0x1E, 0xAB, 0x0B, 0x25, 0x9F, 0x78, 0xE6, 0xB1, 0x52, 0x79, 0x0F, 0x96, 0x33, 0x97 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingIconsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x00000039, { { 0x99, 0x50, 0x1A, 0xE1, 0xF3, 0x52, 0xC3, 0x5A, 0x4E, 0xBD, 0x03, 0x74, 0x2C, 0x39, 0xCA, 0x71 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingDecoProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x00000035, { { 0xA5, 0x17, 0xED, 0xEE, 0x02, 0x87, 0x8C, 0x9D, 0xAC, 0x96, 0xC6, 0x07, 0xB0, 0x8E, 0x5D, 0xE3 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaLevelMappingIndexProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000000C, 0x00000013, { { 0x48, 0x5D, 0xDF, 0x8F, 0xFD, 0x5D, 0xA0, 0xB0, 0x00, 0xD8, 0xB3, 0x09, 0x90, 0x5D, 0x13, 0x3F } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingLevel0Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x00000035, { { 0xC2, 0x4D, 0x2F, 0x0A, 0xB0, 0x3E, 0x46, 0x80, 0xD1, 0xEE, 0x32, 0x5F, 0xBA, 0x5C, 0xCC, 0x7A } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingLevel1Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x00000030, { { 0x94, 0x8E, 0xAE, 0x12, 0xB5, 0x68, 0xCD, 0x43, 0x95, 0xD2, 0x01, 0x21, 0x0C, 0xA1, 0x34, 0xF5 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingLevel2Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x00000030, { { 0x20, 0x6F, 0x9F, 0x57, 0x0C, 0xFD, 0xDA, 0x5C, 0xA0, 0x1D, 0x28, 0xB4, 0x88, 0x24, 0x68, 0x68 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingLevel3Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x00000030, { { 0x44, 0x95, 0x9A, 0x69, 0x70, 0xB2, 0x63, 0xB6, 0xFB, 0xD0, 0xFF, 0xD9, 0xF0, 0xCD, 0xD4, 0x75 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1CgaMappingLevel4Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000020, 0x00000031, { { 0xEA, 0xC4, 0x01, 0xC0, 0x21, 0xFE, 0x66, 0xDD, 0xD4, 0x83, 0xC1, 0x2C, 0x09, 0xD3, 0xD0, 0x97 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1NpcShpDataProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x0000004C, 0x00000A42, { { 0x70, 0x21, 0x85, 0x8C, 0xD4, 0x04, 0xAA, 0x20, 0x1D, 0x0E, 0x9D, 0xB7, 0x74, 0x58, 0xCC, 0x0C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1NpcSubShpIndex1Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000006, 0x00000035, { { 0x9A, 0x83, 0xF9, 0xA4, 0x27, 0xBA, 0xFC, 0xD2, 0xDE, 0x03, 0x65, 0xF2, 0xFA, 0x37, 0xDA, 0xF1 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1NpcSubShpIndex2Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000006, 0x00000051, { { 0x7E, 0xAC, 0x0E, 0x54, 0x59, 0x5D, 0xF6, 0x53, 0x03, 0x22, 0x1D, 0xC7, 0xFC, 0x16, 0xC8, 0x88 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1NpcSubShpYProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000006, 0x00000143, { { 0xC1, 0xED, 0x93, 0x5E, 0x84, 0xCE, 0x48, 0xCF, 0x4C, 0xF3, 0x9C, 0x93, 0xBF, 0xFE, 0xB8, 0x6F } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1Npc0StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000044, 0x000016E2, { { 0x7C, 0x28, 0x72, 0xC9, 0x57, 0xF5, 0xAB, 0x02, 0xD1, 0x42, 0xE8, 0xA3, 0xF9, 0x33, 0x70, 0xEE } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000050, 0x00001B13, { { 0x69, 0x05, 0xEB, 0xB6, 0x86, 0x81, 0xAC, 0x09, 0x53, 0x35, 0x4D, 0x55, 0xF3, 0x13, 0x6F, 0xC0 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1Npc11StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000001B, 0x00000928, { { 0x86, 0x08, 0x95, 0x6B, 0xBF, 0x12, 0x2D, 0xF9, 0x62, 0x25, 0xD9, 0xAE, 0x25, 0x10, 0xDF, 0xDC } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000001A, 0x000008DB, { { 0xBD, 0xBB, 0x48, 0x8E, 0x04, 0x7D, 0xE4, 0x78, 0xBB, 0x59, 0x6E, 0x86, 0xE1, 0x06, 0x27, 0x50 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1Npc12StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000016, 0x0000079C, { { 0x22, 0x57, 0x3A, 0x9C, 0x7C, 0xDB, 0x55, 0xD0, 0x9C, 0x84, 0x28, 0xA6, 0x9D, 0x40, 0x38, 0x6E } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000014, 0x000006ED, { { 0x88, 0x1C, 0x09, 0x61, 0x5D, 0x9D, 0xDE, 0x8A, 0x54, 0x1C, 0x40, 0xCF, 0x28, 0x2B, 0x52, 0x9D } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1Npc21StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000014, 0x000006FD, { { 0x55, 0x77, 0x2F, 0xB0, 0xB3, 0x2D, 0x81, 0x29, 0xDE, 0x71, 0x83, 0x41, 0x06, 0x5B, 0x72, 0x21 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000015, 0x00000748, { { 0x3E, 0x15, 0x27, 0xFD, 0x76, 0xFB, 0x14, 0x8C, 0xF6, 0x14, 0x3E, 0x20, 0x0A, 0x04, 0xF5, 0x32 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1Npc22StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000000F, 0x000004D4, { { 0xE5, 0x97, 0x06, 0x45, 0x6A, 0xAC, 0x96, 0x6D, 0x0A, 0xC9, 0xDF, 0x8F, 0x96, 0x2D, 0x01, 0x5D } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000000D, 0x00000439, { { 0x87, 0xCB, 0x17, 0xD2, 0xC8, 0x7F, 0x34, 0xDA, 0x82, 0x30, 0xB2, 0x68, 0xB0, 0x10, 0xD9, 0x52 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1Npc31StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000011, 0x00000597, { { 0x5C, 0xEB, 0x0A, 0xE6, 0xB1, 0x37, 0x0E, 0x8F, 0x14, 0xB4, 0x68, 0x86, 0xE5, 0xD2, 0xDE, 0xC7 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000012, 0x00000603, { { 0x8E, 0x68, 0x55, 0xCD, 0x29, 0x1E, 0x3C, 0x06, 0x7B, 0x97, 0xE1, 0x07, 0x49, 0x09, 0xF0, 0x57 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1Npc32StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000020, 0x00000AE4, { { 0xED, 0x09, 0x04, 0xEC, 0xE3, 0x43, 0xDA, 0xEE, 0x5D, 0x78, 0x32, 0x63, 0x68, 0xFC, 0x4F, 0x9E } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000020, 0x00000B13, { { 0x87, 0x40, 0x88, 0xA5, 0xE2, 0x6F, 0x83, 0xBC, 0x99, 0x2B, 0xD3, 0xF5, 0x8D, 0x6B, 0x6E, 0x7D } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1Npc4StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000000D, 0x0000043C, { { 0x2C, 0xE7, 0xE5, 0xAA, 0xF3, 0x50, 0xA8, 0x6D, 0xC2, 0xC6, 0x88, 0xFE, 0x12, 0x96, 0xFE, 0x54 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000014, 0x00000720, { { 0xF8, 0x58, 0x9A, 0xDB, 0xE5, 0x3F, 0x67, 0x53, 0x1F, 0x27, 0x2E, 0x8D, 0x6E, 0xAD, 0x45, 0xF5 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1Npc5StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000021, 0x00000ABC, { { 0xF1, 0xB5, 0x9E, 0x51, 0x9E, 0xF8, 0x84, 0x95, 0x55, 0x55, 0xE7, 0xDF, 0x36, 0xE1, 0x78, 0x9A } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000001D, 0x00000A8C, { { 0x4A, 0xAE, 0x5B, 0x3B, 0xAD, 0x18, 0x91, 0x3F, 0xC9, 0x5A, 0x82, 0x5D, 0xA7, 0x06, 0x1A, 0xAE } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1Npc6StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000011, 0x00000612, { { 0x1B, 0xE2, 0x23, 0xD9, 0x00, 0x5C, 0xB9, 0x54, 0xCE, 0xA7, 0x6A, 0x51, 0xF6, 0xBB, 0x8A, 0xC9 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000012, 0x00000647, { { 0x6C, 0x3F, 0xE2, 0xD0, 0xB0, 0x75, 0x2D, 0x73, 0xEE, 0x6F, 0x17, 0x74, 0xAA, 0x7D, 0xA2, 0x21 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB1Npc7StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000018, 0x00000777, { { 0x60, 0xB4, 0x17, 0x72, 0x89, 0x87, 0x47, 0xE3, 0xD9, 0xC3, 0x59, 0x16, 0xFD, 0x03, 0x31, 0xD4 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000016, 0x000007B6, { { 0xAE, 0xB6, 0x3C, 0x14, 0x2B, 0x34, 0xB8, 0x7C, 0xCF, 0x87, 0xDA, 0x70, 0xBF, 0x0D, 0xAB, 0xE2 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2MainMenuStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000005F, 0x000017BE, { { 0x77, 0x8A, 0x50, 0x9F, 0x42, 0xD8, 0x00, 0x05, 0x60, 0x2A, 0x80, 0x25, 0x00, 0xDC, 0x7C, 0x92 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000005E, 0x000017F3, { { 0xD0, 0x93, 0x2E, 0x5F, 0x9D, 0xDB, 0xC4, 0xFB, 0x9E, 0x9F, 0x14, 0xD6, 0xB4, 0xBE, 0x3D, 0x0C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2TransferPortraitFramesProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000040, 0x00000B25, { { 0x13, 0x25, 0x69, 0xC6, 0xE4, 0x9D, 0x35, 0x11, 0xAB, 0xE2, 0xC1, 0xEF, 0x21, 0x8B, 0xB8, 0x28 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2TransferConvertTableProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000031, 0x000004BC, { { 0x96, 0x53, 0xA2, 0xF1, 0x26, 0xFE, 0x1B, 0x5E, 0xDF, 0x62, 0x2C, 0x8C, 0xBD, 0x62, 0x5A, 0xF9 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2TransferItemTableProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000003C, 0x00000025, { { 0xD0, 0xA4, 0xB3, 0x7D, 0x74, 0x4D, 0x16, 0x43, 0x56, 0x07, 0x84, 0xAA, 0x96, 0xBD, 0x82, 0x25 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2TransferExpTableProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000018, 0x0000076B, { { 0x91, 0x65, 0x5B, 0x8D, 0xE8, 0x5B, 0x28, 0x32, 0x4D, 0x7A, 0x57, 0x8E, 0x18, 0x5B, 0x1A, 0xE9 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2TransferStrings1Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000010, 0x000003D3, { { 0x31, 0xE4, 0x65, 0x69, 0x0A, 0xA1, 0x1D, 0xD1, 0xFE, 0xF8, 0x5C, 0x29, 0xB1, 0x46, 0xBD, 0xBE } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000010, 0x000003E2, { { 0xF0, 0x10, 0xF8, 0x9F, 0x05, 0x1E, 0x31, 0x33, 0x4E, 0xC8, 0x49, 0xBC, 0x9E, 0xAD, 0xD4, 0x99 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2TransferStrings2Provider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000006A, 0x00002681, { { 0x12, 0x4D, 0x29, 0x9D, 0xD3, 0xFC, 0x39, 0x22, 0x73, 0x1E, 0x5C, 0xAF, 0x1F, 0xD1, 0xAA, 0x87 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000057, 0x00001F8E, { { 0x85, 0xD8, 0x39, 0x1E, 0x6D, 0x97, 0xBD, 0x0E, 0xDD, 0xCF, 0x19, 0x47, 0x31, 0xDC, 0x7C, 0x1A } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2TransferLabelsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000000A, 0x00000240, { { 0x2A, 0x8B, 0x54, 0x99, 0x94, 0x35, 0x2B, 0xAB, 0x7F, 0x7F, 0x98, 0xA3, 0xFD, 0x57, 0x20, 0xDE } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000009, 0x000001DF, { { 0x47, 0x6B, 0xBA, 0xCD, 0x99, 0x74, 0xCA, 0x3C, 0xAA, 0xC6, 0xB4, 0x50, 0x38, 0x90, 0x25, 0xB8 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2IntroStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000321, 0x0000DBC3, { { 0x11, 0x9B, 0x54, 0xB3, 0x34, 0xF0, 0xB5, 0xE1, 0xFA, 0x6A, 0x31, 0x02, 0x59, 0x29, 0xCA, 0x94 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000038E, 0x0001119C, { { 0x92, 0x63, 0x18, 0xDD, 0x9F, 0x62, 0xF5, 0xBC, 0x3D, 0x93, 0xDC, 0x6E, 0xE5, 0xBE, 0x8C, 0x0B } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2IntroCPSFilesProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x000000A2, 0x0000296A, { { 0xE9, 0x28, 0x4A, 0x6E, 0xAA, 0x44, 0xF4, 0xD7, 0xD1, 0x29, 0xBF, 0x90, 0x6B, 0x82, 0xD1, 0x77 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x000000A2, 0x0000296B, { { 0x03, 0xA2, 0x0A, 0xAB, 0x76, 0x78, 0x04, 0x88, 0x6A, 0xE0, 0x36, 0x8B, 0x3A, 0x87, 0x44, 0xC8 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData00Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000037, 0x000003E1, { { 0x38, 0xC2, 0x0F, 0xE1, 0x43, 0x6A, 0xE8, 0x7C, 0x82, 0x65, 0x9B, 0x4A, 0x9F, 0x83, 0xCD, 0xC8 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData01Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000037, 0x000003A3, { { 0x84, 0x44, 0xF4, 0x46, 0x4E, 0x2B, 0xD7, 0xC6, 0xAD, 0x14, 0xF1, 0x9E, 0x8A, 0xBE, 0x7B, 0x42 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData02Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000037, 0x00000446, { { 0x0C, 0xCA, 0x41, 0x0C, 0x89, 0x59, 0xD5, 0x28, 0x9A, 0xDC, 0x51, 0x1C, 0x0B, 0x8C, 0xD2, 0xDB } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData03Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000002C, 0x0000010E, { { 0xAB, 0x48, 0x64, 0x02, 0xB3, 0xF3, 0x6C, 0x82, 0x9D, 0x37, 0x5F, 0x52, 0x0F, 0x5B, 0xDF, 0x96 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData04Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000021, 0x00000149, { { 0x3B, 0xAC, 0x14, 0x51, 0xDF, 0x5D, 0x22, 0x15, 0x46, 0x4E, 0xCD, 0xF3, 0xD4, 0x61, 0x29, 0x4A } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData05Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000002C, 0x0000010E, { { 0x28, 0x29, 0x5F, 0x31, 0x23, 0x53, 0xBA, 0xD7, 0x24, 0xB9, 0x21, 0x70, 0x84, 0x8A, 0x1C, 0x2E } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData06Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x000000B0, 0x00001365, { { 0x91, 0x28, 0x2F, 0x10, 0x45, 0x4D, 0xCF, 0x3E, 0x70, 0x1E, 0xD4, 0xBA, 0x0E, 0x70, 0xDE, 0xD0 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData07Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000037, 0x000003C4, { { 0x8C, 0x72, 0xDE, 0x4F, 0x92, 0x52, 0x0A, 0xED, 0xF4, 0x79, 0xD6, 0x3D, 0x8F, 0x59, 0x9D, 0x69 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData08Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000042, 0x00000442, { { 0xD2, 0x91, 0x51, 0xEB, 0x91, 0x13, 0x43, 0xCE, 0x7E, 0x60, 0xB8, 0xFF, 0xA7, 0xE2, 0x4C, 0x11 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData09Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000002C, 0x000004BC, { { 0xD6, 0xC7, 0x44, 0x2E, 0xE7, 0x2A, 0x44, 0x09, 0x39, 0xC3, 0xD3, 0xA8, 0x02, 0xC8, 0xA0, 0x19 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData10Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000006E, 0x00000C12, { { 0x91, 0xDB, 0x41, 0x7A, 0x4F, 0x7C, 0x7B, 0x83, 0x32, 0x13, 0x68, 0xF6, 0x58, 0x79, 0xDA, 0x99 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData11Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x000000B0, 0x0000073C, { { 0x17, 0x1F, 0x4D, 0x05, 0x3F, 0x14, 0x2E, 0x77, 0xD3, 0xDB, 0x78, 0x67, 0xBB, 0x18, 0xDC, 0x85 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData12Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000021, 0x00000228, { { 0xC9, 0x50, 0x68, 0x51, 0xD0, 0xC1, 0x5D, 0xD4, 0xFF, 0x08, 0x28, 0xDE, 0xC4, 0x41, 0x8C, 0xDB } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData13Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000002C, 0x00000340, { { 0x03, 0xCA, 0x5D, 0xD1, 0x15, 0xFA, 0x60, 0xD7, 0x70, 0x64, 0x3D, 0x44, 0x08, 0xB8, 0xDB, 0xAD } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData14Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000042, 0x000007C0, { { 0x82, 0xA9, 0x0B, 0x90, 0x9D, 0x65, 0x1E, 0xC7, 0x03, 0x5E, 0xB7, 0xDF, 0x6E, 0x1F, 0xED, 0xD6 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData15Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000002C, 0x00000504, { { 0xA7, 0x91, 0x4F, 0xAD, 0xB1, 0x77, 0x80, 0x3A, 0xC7, 0xDE, 0x35, 0x7A, 0x96, 0x16, 0xD2, 0x13 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData16Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000079, 0x00000B3D, { { 0xCC, 0x63, 0x5A, 0x11, 0xEE, 0x8A, 0xAE, 0x3A, 0x14, 0xC3, 0xBC, 0xDA, 0xAF, 0x1D, 0xD4, 0x2C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData17Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000084, 0x00000911, { { 0x09, 0x1C, 0x4B, 0xD9, 0x0B, 0x2A, 0xD6, 0xC1, 0xE3, 0x8D, 0xFE, 0x43, 0x8F, 0x2E, 0x21, 0x51 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData18Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000058, 0x000008FA, { { 0xFE, 0x58, 0xD9, 0x67, 0x78, 0x97, 0xE2, 0xCD, 0x82, 0xB8, 0xC9, 0xC0, 0x1F, 0xCA, 0x7C, 0xF5 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData19Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000009A, 0x00000D6B, { { 0xA1, 0xDD, 0x7B, 0x8B, 0x25, 0xA5, 0x96, 0x5A, 0x33, 0x5E, 0x80, 0x5F, 0xA5, 0xBB, 0xAC, 0x11 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData20Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000009A, 0x00000D6C, { { 0x19, 0xF9, 0x93, 0x1D, 0x01, 0xEE, 0x7C, 0x8B, 0x6C, 0x3E, 0x35, 0x2C, 0x5C, 0x88, 0xCD, 0xB6 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData21Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000009A, 0x00000D83, { { 0xCB, 0x4F, 0x21, 0x29, 0x63, 0x5B, 0x8C, 0xF2, 0xBA, 0x03, 0x49, 0xD1, 0xAF, 0x22, 0xB0, 0xD5 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData22Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000016, 0x00000200, { { 0x66, 0xEE, 0x45, 0xB1, 0x87, 0x66, 0xC4, 0x55, 0xCE, 0x60, 0x0C, 0x5B, 0xBB, 0x3C, 0x7D, 0x33 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData23Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000016, 0x0000020D, { { 0xC4, 0x49, 0xE2, 0x5B, 0x2E, 0x17, 0x68, 0xC4, 0xBA, 0x20, 0xEC, 0xB1, 0xEB, 0x1A, 0xFB, 0xE0 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData24Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000016, 0x00000214, { { 0xF1, 0x46, 0x82, 0xEF, 0x6D, 0xCA, 0x68, 0xA2, 0xF3, 0x55, 0x63, 0xD2, 0x13, 0x25, 0x19, 0xF7 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData25Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000016, 0x00000256, { { 0x8F, 0xB9, 0xCD, 0xB8, 0x58, 0xCB, 0x90, 0x03, 0xFC, 0xB6, 0x95, 0x6F, 0x52, 0xF8, 0x7D, 0x19 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData26Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000016, 0x00000263, { { 0x7A, 0x37, 0x07, 0xC4, 0x67, 0x72, 0x1F, 0xCB, 0xAC, 0x98, 0x46, 0x9A, 0xF3, 0x5F, 0xBA, 0x78 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData27Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000016, 0x0000026A, { { 0x80, 0x11, 0xEE, 0x44, 0xDA, 0xE1, 0x26, 0x1F, 0x14, 0x7E, 0x93, 0x99, 0x44, 0x44, 0x9F, 0x85 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData28Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000016, 0x000001F6, { { 0x45, 0xA1, 0xA5, 0xEC, 0x85, 0x06, 0xE2, 0x91, 0x28, 0xE0, 0xBB, 0x53, 0x74, 0x44, 0xD9, 0xA6 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData29Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000016, 0x000001F9, { { 0x3F, 0x03, 0x2F, 0x8B, 0xFB, 0x6A, 0x97, 0x05, 0xED, 0xBB, 0xD6, 0xA0, 0xF5, 0x7A, 0x6D, 0x08 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData30Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000016, 0x00000204, { { 0xA1, 0x37, 0x57, 0xC3, 0x72, 0x08, 0x98, 0xA6, 0xF4, 0x5E, 0x58, 0x9E, 0xF3, 0x11, 0x88, 0x1E } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData31Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000016, 0x00000212, { { 0x19, 0xCC, 0x6F, 0xA8, 0x29, 0xB5, 0x3B, 0x15, 0x2F, 0x2C, 0x43, 0xED, 0x7A, 0xF5, 0xC5, 0x69 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData32Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000037, 0x000006C9, { { 0xBF, 0x65, 0xBA, 0x3F, 0x44, 0xEE, 0xB0, 0x5C, 0x8B, 0xBD, 0x15, 0xAB, 0x03, 0xD1, 0x55, 0x21 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData33Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000009A, 0x00001585, { { 0xB5, 0x44, 0x06, 0xC9, 0xE8, 0x27, 0x75, 0x6E, 0x63, 0x77, 0xE9, 0xA9, 0x68, 0x73, 0xF5, 0x78 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData34Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000058, 0x00000B43, { { 0x52, 0xB4, 0x1E, 0x14, 0x88, 0xBD, 0x8A, 0xD7, 0x38, 0xDF, 0x25, 0xB0, 0xAF, 0xAE, 0x76, 0xE1 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData35Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000037, 0x000005A4, { { 0xFB, 0x82, 0xE7, 0xB2, 0x54, 0xDB, 0xB5, 0xE1, 0xCE, 0xFB, 0xD1, 0x23, 0x39, 0x8F, 0xA1, 0x0D } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData36Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000042, 0x00000572, { { 0x2C, 0x16, 0xD9, 0xBE, 0xDB, 0xBA, 0x04, 0xCA, 0x97, 0xB5, 0x88, 0x43, 0xA8, 0x62, 0xE2, 0x04 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData37Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000016, 0x0000024E, { { 0xFF, 0x28, 0xD8, 0x62, 0xC6, 0xAD, 0x48, 0xC7, 0x31, 0x84, 0x6C, 0xBA, 0x9F, 0x4D, 0x15, 0xDA } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData38Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x000001D9, 0x00001FB1, { { 0x16, 0xB0, 0xDF, 0x86, 0x8C, 0xB3, 0x52, 0xEF, 0x21, 0x04, 0x22, 0x6D, 0xC0, 0x03, 0xB8, 0xC6 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData39Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000004D, 0x00000582, { { 0x11, 0x6C, 0xBB, 0xF6, 0x1B, 0x3C, 0xAE, 0xAA, 0x40, 0x27, 0x3F, 0x86, 0x33, 0x92, 0xCB, 0xA9 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData40Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000160, 0x000010A2, { { 0xD9, 0x9D, 0xF1, 0x7D, 0xE1, 0x7C, 0x61, 0xC0, 0xD4, 0xD3, 0x05, 0x0C, 0x79, 0xDD, 0xDB, 0xD1 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData41Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000037, 0x00000355, { { 0x92, 0x85, 0xBE, 0x5A, 0x38, 0x08, 0xF3, 0xDF, 0xC6, 0x56, 0x74, 0xC3, 0x0B, 0x3F, 0x72, 0x4D } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData42Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000021, 0x0000010B, { { 0x68, 0xF8, 0x1D, 0x74, 0x6D, 0x32, 0x1E, 0x3A, 0x1C, 0xD1, 0x1D, 0x4B, 0x89, 0x3D, 0x5F, 0x2B } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2IntroAnimData43Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000037, 0x00000116, { { 0xD5, 0x46, 0xCB, 0x3F, 0x27, 0xBD, 0x2B, 0xD6, 0x35, 0x69, 0x9E, 0x0A, 0x28, 0xDA, 0xC9, 0x84 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2IntroShapes00Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000005A, 0x00000A86, { { 0xF9, 0xD5, 0xD2, 0x93, 0xBC, 0xC4, 0x86, 0x3F, 0x83, 0x0D, 0xDB, 0x38, 0x60, 0x6E, 0xA7, 0xDA } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2IntroShapes01Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000000C, 0x0000009B, { { 0xAA, 0xDD, 0x25, 0x21, 0x57, 0x6A, 0xB7, 0xEB, 0xDA, 0xFD, 0x72, 0x3B, 0xCA, 0x68, 0xDB, 0x34 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2IntroShapes04Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000003C, 0x00000417, { { 0x13, 0x95, 0x81, 0x46, 0x84, 0x36, 0xF2, 0xFC, 0xDE, 0x15, 0x85, 0x81, 0xB3, 0x9A, 0x9D, 0x20 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2IntroShapes07Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000006C, 0x000021F1, { { 0x6F, 0x7C, 0x28, 0xBB, 0xC3, 0x52, 0xE4, 0x13, 0xB4, 0xE9, 0xA4, 0x47, 0x9A, 0xBE, 0x19, 0xDA } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2FinaleStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000031C, 0x0000E287, { { 0x1E, 0x73, 0x93, 0x79, 0xB7, 0xF8, 0x17, 0xEE, 0xE4, 0xFC, 0xF0, 0x34, 0x9D, 0x06, 0x4F, 0x55 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000039F, 0x00011660, { { 0xBC, 0x1D, 0x95, 0x20, 0x32, 0xF5, 0x83, 0xCF, 0xF7, 0x11, 0xE4, 0x1D, 0x89, 0x47, 0xF0, 0x65 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2CreditsDataProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000090C, 0x00023464, { { 0x55, 0x31, 0x9D, 0x60, 0x2C, 0xA1, 0x0B, 0xF9, 0xED, 0x46, 0xDF, 0x44, 0x1A, 0x9F, 0xB1, 0xB0 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000B11, 0x0002BBD7, { { 0x46, 0x24, 0x78, 0xE9, 0xCE, 0x75, 0x45, 0x7B, 0x3B, 0xAA, 0x15, 0xD8, 0x5B, 0xCB, 0x06, 0x3A } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2FinaleCPSFilesProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000009C, 0x00002853, { { 0x1F, 0xB9, 0x3D, 0x48, 0x47, 0x31, 0x0D, 0xA8, 0x92, 0x52, 0xD1, 0x54, 0x48, 0x42, 0x47, 0xBD } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000009C, 0x00002878, { { 0x48, 0x3B, 0x7A, 0xC2, 0x9C, 0xEC, 0x10, 0x07, 0xD1, 0xB6, 0x9E, 0x89, 0xE9, 0xE1, 0xBF, 0xBF } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData00Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000079, 0x00000B66, { { 0x9B, 0x8C, 0x17, 0xFA, 0xD2, 0x4F, 0x4B, 0x0E, 0x3A, 0x43, 0xB1, 0x86, 0x0C, 0xDC, 0x73, 0xAB } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData01Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000063, 0x00000A03, { { 0xBB, 0x31, 0xEA, 0x35, 0xFB, 0x99, 0x4C, 0x3E, 0x72, 0xBD, 0x36, 0x6B, 0x5C, 0x03, 0x19, 0x7F } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData02Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000002C, 0x000007C2, { { 0xF6, 0x83, 0x37, 0x58, 0x3C, 0x59, 0x84, 0x8F, 0x97, 0x80, 0xE2, 0xD8, 0xFD, 0x77, 0xA9, 0x54 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData03Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000042, 0x0000092B, { { 0x47, 0xE4, 0x34, 0xE8, 0x72, 0xCC, 0xA4, 0x4A, 0xA4, 0x8F, 0xBA, 0xBC, 0x0C, 0x04, 0x18, 0xAF } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData04Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000058, 0x0000080B, { { 0x16, 0xDB, 0x77, 0x4C, 0x8E, 0xFD, 0x44, 0xF6, 0x5E, 0x28, 0x0B, 0x74, 0x93, 0x45, 0x8F, 0xD9 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData05Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000004D, 0x00000C72, { { 0x6C, 0x57, 0x56, 0x7E, 0x87, 0x10, 0x9C, 0xE7, 0x69, 0xAC, 0x3B, 0x3F, 0xF6, 0x43, 0x5C, 0xD4 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData06Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000016, 0x00000264, { { 0x48, 0x49, 0x5D, 0x78, 0xE2, 0xF1, 0x0D, 0x87, 0xEE, 0xEE, 0xD1, 0xA1, 0xC6, 0x64, 0xCA, 0x13 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData07Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000042, 0x00000ABE, { { 0xFE, 0xA9, 0x5D, 0x87, 0xAF, 0x55, 0x04, 0x92, 0x41, 0xD3, 0xAD, 0x1D, 0xFF, 0x03, 0x81, 0x3C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData08Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000021, 0x000004D8, { { 0x4E, 0xA7, 0xCC, 0x0B, 0x1B, 0x48, 0x22, 0x09, 0x33, 0xF7, 0x23, 0xF1, 0xF5, 0x9F, 0xA5, 0x7B } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData09Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000058, 0x000004BE, { { 0xF6, 0xEA, 0xA0, 0x7F, 0x54, 0x61, 0x79, 0x4C, 0x71, 0xD7, 0x9B, 0xA6, 0xC3, 0x45, 0xEE, 0x3E } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData10Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000009A, 0x00000FC4, { { 0xA9, 0xFB, 0x31, 0x55, 0xB8, 0x28, 0x63, 0xC3, 0x4B, 0x9E, 0x7D, 0x41, 0xC7, 0x1F, 0x2F, 0xBD } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData11Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x000000C6, 0x0000166B, { { 0xCC, 0x16, 0x50, 0xFF, 0xFF, 0xD5, 0xAE, 0x03, 0x40, 0xA3, 0x9A, 0x1F, 0xF8, 0x8E, 0x23, 0x7A } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData12Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x000000FD, 0x00001A69, { { 0x6A, 0x80, 0x89, 0x7E, 0xFC, 0xE4, 0x01, 0xF5, 0xA2, 0x11, 0xE7, 0x26, 0x20, 0x96, 0x62, 0x7B } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData13Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x000000FD, 0x00001886, { { 0xF9, 0x5B, 0x62, 0xDD, 0xAB, 0x14, 0x35, 0x77, 0x53, 0x05, 0xDB, 0xC5, 0xFD, 0x4D, 0x4F, 0x12 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData14Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000108, 0x00001895, { { 0x22, 0xA1, 0x88, 0x69, 0xF9, 0x1C, 0xA2, 0x64, 0x44, 0xCD, 0x00, 0xFA, 0xB1, 0x94, 0xEB, 0x3A } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData15Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x000000D1, 0x000016E5, { { 0xD8, 0xE9, 0xA5, 0xEE, 0x54, 0x1B, 0x3E, 0x32, 0xDA, 0x78, 0x90, 0xC2, 0x54, 0xFC, 0xD5, 0x39 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData16Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000008F, 0x00000C69, { { 0xBC, 0x41, 0xE5, 0xAF, 0x89, 0xE2, 0x54, 0x12, 0x9E, 0xB0, 0x5F, 0x28, 0xFF, 0x92, 0x9D, 0x89 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData17Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x000000DC, 0x0000170D, { { 0x7A, 0x7B, 0x74, 0xCB, 0x68, 0xC2, 0xFF, 0xC7, 0xBE, 0x47, 0xE9, 0x43, 0xF7, 0x15, 0x8D, 0x59 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData18Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000134, 0x00002651, { { 0x71, 0x26, 0x47, 0x0D, 0x7C, 0x96, 0x45, 0x0B, 0x82, 0xD0, 0x37, 0xB9, 0xD4, 0xD0, 0x84, 0xFC } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData19Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000004D, 0x000009C3, { { 0xDA, 0x96, 0xDF, 0x16, 0xEB, 0x5D, 0x49, 0xA4, 0x3F, 0xD3, 0x31, 0xBE, 0x49, 0x72, 0xF2, 0x71 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEob2FinaleAnimData20Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000021, 0x000003D8, { { 0xD9, 0xC8, 0x58, 0x4B, 0x7D, 0x79, 0x86, 0xCB, 0xEB, 0x77, 0xC2, 0xD4, 0xB7, 0xB4, 0xE9, 0x6A } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2FinaleShapes00Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000018, 0x0000071C, { { 0xE8, 0x67, 0xCB, 0x76, 0x6D, 0x49, 0xC2, 0x05, 0x0D, 0xAD, 0xB6, 0x83, 0x35, 0xB3, 0xBE, 0xE5 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2FinaleShapes03Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000012, 0x00000571, { { 0x91, 0xEC, 0xAC, 0x12, 0x08, 0x33, 0xDA, 0x7C, 0xBD, 0x51, 0x64, 0xE3, 0xAE, 0x43, 0x75, 0x14 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2FinaleShapes07Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000018, 0x00000166, { { 0xED, 0x6E, 0x0C, 0x85, 0x13, 0x6F, 0xAC, 0xEB, 0xCA, 0x74, 0x2E, 0x2D, 0x0E, 0xCE, 0x17, 0xD6 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2FinaleShapes09Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000036, 0x00000898, { { 0xEB, 0xB0, 0xD9, 0xC4, 0xB6, 0xBC, 0xE3, 0xAF, 0xB2, 0x5D, 0xE3, 0xCE, 0xF7, 0x26, 0x07, 0xE5 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2FinaleShapes10Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000018, 0x0000017F, { { 0x0F, 0x37, 0x94, 0xA6, 0xCE, 0x23, 0xE3, 0x2E, 0x5E, 0x2B, 0x78, 0x5B, 0x66, 0xC8, 0xE5, 0x96 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2NpcShapeDataProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000018, 0x0000045D, { { 0x69, 0xE0, 0x5E, 0x86, 0xEB, 0x7D, 0x25, 0x95, 0xC2, 0xA0, 0xE9, 0xD5, 0x3A, 0x4A, 0x65, 0xBC } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseClassModifierFlagsProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000000F, 0x00000059, { { 0x17, 0x2B, 0x23, 0x14, 0x0F, 0x9D, 0x94, 0xD3, 0xBF, 0x94, 0x83, 0x0B, 0x79, 0xDB, 0xC0, 0xA9 } } } }, // EOB 1
+ { UNK_LANG, kPlatformUnknown, { 0x0000000F, 0x00000083, { { 0x54, 0x68, 0xF4, 0x07, 0x3E, 0x2A, 0xD4, 0x06, 0xF3, 0x10, 0x88, 0x6C, 0xE3, 0x34, 0x08, 0x30 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterStepTable01Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000004, 0x00000200, { { 0x26, 0x86, 0x10, 0x04, 0xC1, 0x48, 0xDD, 0xC0, 0x9F, 0x92, 0xD6, 0x20, 0x38, 0x36, 0xE2, 0xDD } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterStepTable02Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000008, 0x00000400, { { 0x6E, 0x53, 0x3C, 0x7A, 0x11, 0x46, 0x8B, 0xDC, 0x73, 0x24, 0xF8, 0x13, 0xCB, 0x6C, 0x9B, 0xE6 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterStepTable1Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000010, 0x00000400, { { 0x8B, 0x4C, 0x6B, 0x86, 0x93, 0xDA, 0x82, 0x1B, 0x04, 0x23, 0x92, 0x5B, 0x79, 0xB9, 0xFB, 0x06 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterStepTable2Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000010, 0x00000601, { { 0xE4, 0x36, 0x12, 0x93, 0x44, 0xDE, 0x6E, 0xA0, 0x4B, 0x98, 0x4B, 0x47, 0x87, 0xE3, 0x40, 0xD4 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterStepTable3Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000010, 0x000007F8, { { 0x00, 0x0C, 0xB0, 0xDA, 0xE1, 0xC8, 0x45, 0x11, 0x57, 0xE4, 0x72, 0xD2, 0x32, 0xC6, 0x16, 0x2B } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterCloseAttPosTable1Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000004, 0x00000006, { { 0x4F, 0x9D, 0x50, 0xDA, 0xA1, 0x75, 0xB0, 0xD5, 0x90, 0xCA, 0xFF, 0x3E, 0xB5, 0xE8, 0x0D, 0xAA } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterCloseAttPosTable21Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000008, 0x0000000C, { { 0x6A, 0xED, 0x15, 0xCE, 0x69, 0x54, 0x7D, 0x7B, 0x6D, 0xCE, 0xC7, 0x2A, 0x01, 0xD7, 0xDC, 0xB0 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterCloseAttPosTable22Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000010, 0x00000018, { { 0x6D, 0xB9, 0x69, 0x4A, 0xE3, 0x72, 0x03, 0x5B, 0x5A, 0xBB, 0x15, 0x4A, 0xDA, 0xFB, 0x99, 0x87 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterCloseAttUnkTableProvider[] = {////
+ { UNK_LANG, kPlatformUnknown, { 0x0000000C, 0x000007FE, { { 0xF0, 0xCB, 0x3A, 0x53, 0xDD, 0x59, 0x04, 0x87, 0x6F, 0x1B, 0x5A, 0x13, 0xBA, 0x78, 0x62, 0xEC } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterCloseAttChkTable1Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000010, 0x00000008, { { 0x93, 0x27, 0x19, 0xA7, 0xA7, 0x49, 0x0E, 0xC9, 0xED, 0x5C, 0x8F, 0x9F, 0xC2, 0x34, 0x62, 0x07 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterCloseAttChkTable2Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000010, 0x00000008, { { 0xEB, 0xF0, 0x27, 0x7E, 0xA8, 0x09, 0x3A, 0x95, 0x3B, 0x71, 0x2A, 0x43, 0x2E, 0xCF, 0x22, 0x0B } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterCloseAttDstTable1Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000010, 0x00000018, { { 0x1E, 0xC9, 0x6C, 0x5D, 0xDF, 0xD4, 0xC0, 0x87, 0xAD, 0xEE, 0x86, 0x29, 0xD5, 0x3E, 0x8D, 0xB4 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterCloseAttDstTable2Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000030, 0x00000078, { { 0x4C, 0xA8, 0x2A, 0x53, 0xB3, 0xAA, 0x52, 0x96, 0x1D, 0xE8, 0x37, 0xDB, 0x4A, 0x77, 0xD8, 0x5B } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterProximityTableProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000020, 0x00000030, { { 0x25, 0xFC, 0xA3, 0xEB, 0x44, 0x93, 0x9B, 0x33, 0xB5, 0x86, 0xC4, 0xCB, 0x17, 0xEF, 0x2D, 0x47 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseFindBlockMonstersTableProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000040, 0x00000088, { { 0x6F, 0xEE, 0x8B, 0x4C, 0x21, 0xF0, 0xC6, 0x4F, 0x1D, 0x05, 0x95, 0x41, 0xD7, 0xD6, 0x52, 0x66 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterDirChangeTableProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000030, 0x0000180C, { { 0xCD, 0xBB, 0xFD, 0xAB, 0xFB, 0x1D, 0x5C, 0x0F, 0xA2, 0xAC, 0x32, 0xA9, 0xA1, 0x93, 0x2D, 0x1C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseMonsterDistAttStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000076, 0x00002965, { { 0x1A, 0x22, 0x50, 0x04, 0x27, 0x05, 0xE9, 0x61, 0xF9, 0x0A, 0xF0, 0x50, 0x01, 0x0E, 0x65, 0xB4 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000008C, 0x00003274, { { 0xE7, 0x24, 0x17, 0x13, 0x4F, 0xB3, 0xF9, 0xB7, 0x90, 0xFA, 0x3D, 0xFF, 0xA7, 0xFB, 0x3F, 0x1F } } } },
+ { EN_ANY, kPlatformUnknown, { 0x00000054, 0x00001D03, { { 0xEB, 0x07, 0xD4, 0x22, 0xFD, 0xA0, 0x77, 0x80, 0x22, 0x04, 0x2E, 0x27, 0x7F, 0x64, 0x99, 0x4E } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000062, 0x000023E0, { { 0xB8, 0x03, 0x5C, 0x31, 0xCC, 0x18, 0xCD, 0x8D, 0x60, 0xD1, 0xFB, 0x5B, 0x66, 0xC2, 0x9A, 0x4C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseEncodeMonsterDefsProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000150, 0x00001ACB, { { 0x73, 0x67, 0x5B, 0x64, 0x22, 0xDB, 0x08, 0x3A, 0xCD, 0xEB, 0x30, 0x28, 0xBD, 0xAD, 0xF8, 0x9B } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoBBaseNpcPresetsProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000088B, 0x000038D0, { { 0x2E, 0xAE, 0xF0, 0x2A, 0x71, 0x6F, 0x7C, 0x5C, 0xF5, 0xAF, 0xB8, 0xBB, 0x47, 0xE5, 0xB6, 0xC3 } } } }, // EOB 1
+ { UNK_LANG, kPlatformUnknown, { 0x00000816, 0x00002C8E, { { 0xAB, 0xEE, 0x18, 0x0E, 0x59, 0xF6, 0xE0, 0x26, 0x93, 0xAB, 0x3B, 0x23, 0x29, 0x7A, 0x2C, 0x97 } } } }, // EOB 2
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2Npc1StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000000B, 0x000003B9, { { 0xB1, 0x67, 0x80, 0x21, 0x92, 0xDD, 0xFA, 0x4C, 0x4D, 0x64, 0x7C, 0x05, 0x08, 0xDC, 0x55, 0xFD } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000000D, 0x0000049E, { { 0x2D, 0x78, 0xF6, 0x20, 0x30, 0xEC, 0x62, 0x6E, 0x58, 0xF7, 0xC7, 0x6D, 0xD7, 0xBD, 0x70, 0x76 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2Npc2StringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x00000012, 0x0000064C, { { 0xB0, 0x66, 0x0D, 0xDE, 0x16, 0xEB, 0x5E, 0x51, 0xAF, 0x4D, 0x19, 0xD1, 0x1E, 0x0B, 0xCB, 0xD6 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000018, 0x000008FF, { { 0x59, 0x29, 0x01, 0x6F, 0xF0, 0x49, 0xC8, 0x57, 0x3E, 0x70, 0x01, 0x7E, 0x5E, 0xF2, 0xEB, 0x35 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2MonsterDustStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000001F, 0x00000AD7, { { 0x2B, 0x66, 0x27, 0xFD, 0xC6, 0x17, 0x0B, 0x6B, 0xFC, 0x7D, 0x7F, 0xD2, 0xC4, 0x12, 0x8F, 0x33 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x0000001F, 0x00000A91, { { 0x1D, 0x7D, 0xEE, 0xB8, 0x9B, 0x37, 0x2E, 0x64, 0x13, 0xB6, 0x39, 0xED, 0x88, 0xB6, 0x8B, 0xD7 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2DreamStepsProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000000E, 0x00000114, { { 0x27, 0x32, 0xCB, 0x89, 0x27, 0xC5, 0xDD, 0x91, 0xBE, 0x97, 0x62, 0xF5, 0x76, 0xF7, 0xCD, 0x25 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2KheldranStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000001A, 0x00000887, { { 0xA6, 0xB4, 0x45, 0x1B, 0x33, 0x54, 0x36, 0xAD, 0x1D, 0xB1, 0xDA, 0xC3, 0x12, 0x85, 0x3C, 0x58 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x00000012, 0x00000511, { { 0xEE, 0x21, 0xA8, 0x6E, 0xF7, 0xEC, 0x9A, 0x8D, 0xBA, 0x8D, 0xE3, 0x4A, 0x17, 0x15, 0xCA, 0x8C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2HornStringsProvider[] = {
+ { EN_ANY, kPlatformUnknown, { 0x0000009A, 0x00003541, { { 0xA5, 0x4D, 0x88, 0xAC, 0x1C, 0xCD, 0x57, 0xD4, 0x1E, 0x9F, 0xAE, 0x13, 0x46, 0xAD, 0xA0, 0x22 } } } },
+ { DE_DEU, kPlatformUnknown, { 0x000000AB, 0x00003B6C, { { 0x36, 0x34, 0xB3, 0xB1, 0x55, 0x66, 0x7A, 0x90, 0x97, 0x01, 0xDC, 0x4A, 0xAF, 0x17, 0x6B, 0x5A } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2HornSoundsProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000004, 0x00000106, { { 0x3E, 0x7B, 0x96, 0xFD, 0xCA, 0x4E, 0xA7, 0xA6, 0xB8, 0x82, 0x67, 0xCF, 0x93, 0x86, 0xE4, 0x45 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2WallOfForceDsXProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000024, 0x00000D67, { { 0x51, 0xCF, 0xAB, 0x1E, 0xB4, 0xE0, 0xE3, 0x44, 0x29, 0xD1, 0xDC, 0x82, 0xCD, 0x08, 0x50, 0xF5 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2WallOfForceDsYProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000003, 0x00000048, { { 0x45, 0xFC, 0xEA, 0x8C, 0x34, 0xD7, 0xBE, 0x74, 0x05, 0x03, 0xE6, 0x94, 0x34, 0xB5, 0x45, 0x4D } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2WallOfForceNumWProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000003, 0x00000006, { { 0x52, 0x89, 0xDF, 0x73, 0x7D, 0xF5, 0x73, 0x26, 0xFC, 0xDD, 0x22, 0x59, 0x7A, 0xFB, 0x1F, 0xAC } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2WallOfForceNumHProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000003, 0x00000011, { { 0x33, 0x86, 0x06, 0xBE, 0x8D, 0xC8, 0x37, 0x2D, 0x0F, 0x61, 0x97, 0xA4, 0x26, 0xA9, 0xBC, 0x60 } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kEoB2WallOfForceShpIdProvider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000003, 0x00000006, { { 0x77, 0xAE, 0x9B, 0x52, 0x9E, 0xF7, 0xEB, 0x48, 0xA8, 0x5E, 0xED, 0xC2, 0x08, 0x53, 0xCE, 0x3C } } } },
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kLoLIngamePakFilesProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x00000088, 0x0000224F, { { 0xDA, 0x24, 0x18, 0xA3, 0xEF, 0x16, 0x70, 0x8F, 0xA8, 0xC2, 0x2E, 0xC2, 0xED, 0x39, 0x03, 0xD1 } } } },
{ UNK_LANG, kPlatformPC98, { 0x00000084, 0x00002125, { { 0x7A, 0x89, 0xE2, 0x36, 0xEC, 0x6F, 0x52, 0x2B, 0xEF, 0xBA, 0x3D, 0x28, 0x54, 0xDA, 0xFB, 0x72 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolCharacterDefsProvider[] = {
+const ExtractEntrySearchData kLoLCharacterDefsProvider[] = {
{ RU_RUS, kPlatformPC, { 0x00000492, 0x000052BA, { { 0x52, 0x29, 0x0D, 0x49, 0xFD, 0x17, 0xD7, 0x70, 0x6D, 0xCA, 0xEB, 0xB6, 0x7E, 0xFA, 0xBE, 0x08 } } } }, // floppy
{ EN_ANY, kPlatformPC, { 0x00000492, 0x000046B0, { { 0x7A, 0x94, 0x8B, 0xC6, 0xF7, 0xF1, 0x2F, 0xF3, 0xBC, 0x1B, 0x0B, 0x4E, 0x00, 0xC9, 0x44, 0x58 } } } }, // floppy
{ DE_DEU, kPlatformPC, { 0x00000492, 0x000047FD, { { 0x8C, 0x0B, 0x8B, 0xCE, 0xE0, 0xB0, 0x8F, 0xA9, 0x06, 0xC3, 0x98, 0xE6, 0x2E, 0x09, 0xB6, 0x93 } } } }, // floppy
@@ -1352,7 +3359,7 @@ const ExtractEntrySearchData kLolCharacterDefsProvider[] = {
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolIngameSfxFilesProvider[] = {
+const ExtractEntrySearchData kLoLIngameSfxFilesProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x000008F2, 0x0001E5B6, { { 0x63, 0x5E, 0x37, 0xAA, 0x27, 0x80, 0x4C, 0x85, 0xB1, 0x9D, 0x7B, 0x1D, 0x64, 0xA3, 0xEB, 0x97 } } } }, // floppy
{ UNK_LANG, kPlatformPC, { 0x000008F2, 0x0001E5B7, { { 0x9E, 0xC8, 0xE8, 0x19, 0x2F, 0x58, 0x0B, 0xC7, 0x2D, 0x41, 0x72, 0xE7, 0xF4, 0x80, 0x03, 0xCB } } } }, // CD
{ UNK_LANG, kPlatformPC98, { 0x000008EF, 0x0001E585, { { 0x85, 0x81, 0x5C, 0xA4, 0x34, 0x44, 0xF4, 0x58, 0xF9, 0x82, 0xEE, 0x0F, 0x6A, 0x0D, 0xA2, 0x7F } } } },
@@ -1360,329 +3367,359 @@ const ExtractEntrySearchData kLolIngameSfxFilesProvider[] = {
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolIngameSfxIndexProvider[] = {
+const ExtractEntrySearchData kLoLIngameSfxIndexProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x000003E8, 0x0000E8D2, { { 0x19, 0x39, 0x17, 0xED, 0xAE, 0xDC, 0x7A, 0xAC, 0x45, 0x5F, 0x2D, 0xCD, 0x65, 0x8D, 0xAD, 0xAE } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolMusicTrackMapProvider[] = {
+const ExtractEntrySearchData kLoLMusicTrackMapProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x000000F0, 0x0000210D, { { 0x55, 0x25, 0x3E, 0x35, 0xD2, 0xD8, 0x13, 0xE3, 0x1D, 0xB1, 0xB3, 0x00, 0x2E, 0x17, 0x91, 0x2F } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolIngameGMSfxIndexProvider[] = {
+const ExtractEntrySearchData kLoLIngameGMSfxIndexProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x000000FA, 0x00006281, { { 0x25, 0x89, 0xB0, 0x3B, 0x12, 0x09, 0x02, 0xF6, 0xFE, 0x76, 0xD5, 0xC9, 0x5B, 0x88, 0xAC, 0xAA } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolIngameMT32SfxIndexProvider[] = {
+const ExtractEntrySearchData kLoLIngameMT32SfxIndexProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x000000FA, 0x00006579, { { 0x16, 0x40, 0x1C, 0x09, 0x69, 0xA9, 0x0D, 0x6D, 0x4B, 0x0C, 0x99, 0xF0, 0x40, 0x5D, 0xBB, 0x6E } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolIngamePcSpkSfxIndexProvider[] = {
+const ExtractEntrySearchData kLoLIngamePcSpkSfxIndexProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x000000FA, 0x00005EFC, { { 0xA3, 0x5C, 0x69, 0xED, 0x13, 0xEC, 0x08, 0x0E, 0xFA, 0x72, 0x83, 0x0D, 0xD7, 0x8D, 0x9C, 0x70 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolSpellPropertiesProvider[] = {
+const ExtractEntrySearchData kLoLSpellPropertiesProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000118, 0x00000B06, { { 0x27, 0x69, 0x53, 0x01, 0xA0, 0xE3, 0x76, 0xAA, 0x33, 0xA4, 0x52, 0x11, 0x52, 0xB1, 0x0E, 0xDA } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolGameShapeMapProvider[] = {
+const ExtractEntrySearchData kLoLGameShapeMapProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000114, 0x000038D3, { { 0xB2, 0x8A, 0x5D, 0x9A, 0x51, 0x63, 0x4D, 0x65, 0xE4, 0xF5, 0xBA, 0x88, 0x70, 0x6C, 0xA6, 0xF8 } } } }, // floppy + PC98
{ UNK_LANG, kPlatformPC, { 0x00000114, 0x00003B97, { { 0x29, 0xE5, 0x0F, 0x51, 0xF0, 0x10, 0x35, 0x3E, 0x70, 0x3A, 0xAA, 0xFE, 0xD7, 0xD5, 0xAA, 0x9F } } } }, // CD
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolSceneItemOffsProvider[] = {
+const ExtractEntrySearchData kLoLSceneItemOffsProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000008, 0x00000300, { { 0x69, 0x80, 0x5A, 0x3E, 0x63, 0xC1, 0x04, 0x60, 0x09, 0x2F, 0x49, 0xD7, 0x26, 0x32, 0xAA, 0xE2 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolCharInvIndexProvider[] = {
+const ExtractEntrySearchData kLoLCharInvIndexProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000000A, 0x00000006, { { 0x19, 0x79, 0x4E, 0xFC, 0x05, 0x14, 0x89, 0x23, 0xEB, 0xCA, 0x94, 0x50, 0xE8, 0xD3, 0x81, 0x24 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolCharInvDefsProvider[] = {
+const ExtractEntrySearchData kLoLCharInvDefsProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000058, 0x00001D7A, { { 0x25, 0xE4, 0xEB, 0x6D, 0xBE, 0xEA, 0xBD, 0x9A, 0x9F, 0xA5, 0x9E, 0xEB, 0x3D, 0x03, 0x1D, 0x72 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolCharDefsManProvider[] = {
+const ExtractEntrySearchData kLoLCharDefsManProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000012, 0x0000003D, { { 0xEB, 0x82, 0x32, 0x9D, 0x76, 0xC8, 0x3D, 0x5E, 0x8C, 0x26, 0x53, 0xDF, 0xC1, 0xFD, 0x0F, 0xC5 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolCharDefsWomanProvider[] = {
+const ExtractEntrySearchData kLoLCharDefsWomanProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000012, 0x0000003D, { { 0xEB, 0x82, 0x32, 0x9D, 0x76, 0xC8, 0x3D, 0x5E, 0x8C, 0x26, 0x53, 0xDF, 0xC1, 0xFD, 0x0F, 0xC5 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolCharDefsKieranProvider[] = {
+const ExtractEntrySearchData kLoLCharDefsKieranProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000012, 0x000002E3, { { 0xBF, 0xB1, 0x0F, 0x40, 0xBF, 0xA1, 0xD0, 0x2B, 0xC9, 0x80, 0x35, 0x40, 0xA9, 0xA3, 0x01, 0xC8 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolCharDefsAkshelProvider[] = {
+const ExtractEntrySearchData kLoLCharDefsAkshelProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000012, 0x000002FB, { { 0x47, 0x3C, 0x07, 0x15, 0x20, 0xE6, 0x90, 0x59, 0x55, 0xF2, 0xA7, 0xC3, 0x27, 0x22, 0xAB, 0xDC } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolExpRequirementsProvider[] = {
+const ExtractEntrySearchData kLoLExpRequirementsProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000002C, 0x00000C0A, { { 0x3F, 0x36, 0xFA, 0xE3, 0xB0, 0x76, 0x5E, 0xFF, 0xE9, 0xBA, 0xDF, 0xD0, 0x9D, 0xFF, 0xDD, 0x27 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolMonsterModifiersProvider[] = {
+const ExtractEntrySearchData kLoLMonsterModifiersProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000018, 0x000002C6, { { 0x38, 0x9A, 0x8B, 0x50, 0xD2, 0x9B, 0x95, 0x38, 0x91, 0x02, 0xA9, 0xBE, 0x78, 0xE5, 0x89, 0x65 } } } }, // floppy + PC98
{ UNK_LANG, kPlatformPC, { 0x00000018, 0x000002EE, { { 0x4E, 0x37, 0x56, 0xE3, 0x42, 0xB3, 0x15, 0x2C, 0x7E, 0x9B, 0x7E, 0x50, 0x32, 0x91, 0x55, 0xBE } } } }, // CD
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolMonsterShiftOffsetsProvider[] = {
+const ExtractEntrySearchData kLoLMonsterShiftOffsetsProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000020, 0x00000803, { { 0x30, 0x55, 0x74, 0x0D, 0xC7, 0x3B, 0xD9, 0x5C, 0x26, 0xF0, 0x4E, 0x8F, 0xE4, 0x4D, 0xCB, 0x2A } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolMonsterDirFlagsProvider[] = {
+const ExtractEntrySearchData kLoLMonsterDirFlagsProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000010, 0x00000080, { { 0xE5, 0xA1, 0xE3, 0xCE, 0xA0, 0x5F, 0x15, 0xE9, 0x5B, 0x28, 0x90, 0xC0, 0xDF, 0x21, 0xEC, 0x24 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolMonsterScaleYProvider[] = {
+const ExtractEntrySearchData kLoLMonsterScaleYProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000001E, 0x00000982, { { 0xE2, 0x71, 0x5F, 0x57, 0x4A, 0x8F, 0x50, 0xDB, 0x3E, 0xDA, 0xAB, 0x10, 0xEB, 0xDB, 0x0D, 0x14 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolMonsterScaleXProvider[] = {
+const ExtractEntrySearchData kLoLMonsterScaleXProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x00000020, 0x00000918, { { 0xF6, 0x14, 0xE6, 0x48, 0x4E, 0x5B, 0x43, 0xCC, 0xCE, 0x4E, 0x98, 0x71, 0x5A, 0xC2, 0x00, 0x1E } } } },
{ UNK_LANG, kPlatformPC98, { 0x0000001D, 0x000008D2, { { 0x1C, 0x25, 0x38, 0xE2, 0xBB, 0xB2, 0xDB, 0x93, 0x1B, 0x25, 0xB6, 0x89, 0xA9, 0x9B, 0x0A, 0xFE } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolMonsterScaleWHProvider[] = {
+const ExtractEntrySearchData kLoLMonsterScaleWHProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000082, 0x00001D2A, { { 0x85, 0x7E, 0x18, 0xDD, 0x74, 0x1C, 0x62, 0x6F, 0xF4, 0xE5, 0xAF, 0x65, 0xEC, 0x6A, 0x90, 0xAD } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolFlyingObjectShpProvider[] = {
+const ExtractEntrySearchData kLoLFlyingObjectShpProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000082, 0x00000252, { { 0xDE, 0x9D, 0x89, 0xAF, 0x0F, 0x50, 0x14, 0x60, 0x68, 0xAF, 0x19, 0xD8, 0x54, 0x8A, 0x36, 0x27 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolInventoryDescProvider[] = {
+const ExtractEntrySearchData kLoLInventoryDescProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000016, 0x0000082D, { { 0x86, 0xB4, 0xB9, 0x50, 0xB6, 0xDA, 0x29, 0xB2, 0xC0, 0x0D, 0x34, 0x3F, 0x8D, 0x88, 0xAA, 0xE4 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolLevelShpListProvider[] = {
+const ExtractEntrySearchData kLoLLevelShpListProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000007F, 0x00002090, { { 0x17, 0x31, 0x8A, 0xB5, 0x9B, 0x3A, 0xDA, 0x16, 0x9E, 0xE3, 0xD1, 0x5F, 0xB4, 0x7B, 0xB2, 0x25 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolLevelDatListProvider[] = {
+const ExtractEntrySearchData kLoLLevelDatListProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000007F, 0x00001FB8, { { 0xF6, 0xE9, 0x98, 0x79, 0x51, 0xCA, 0xA0, 0x35, 0xE4, 0xD0, 0xA1, 0xCD, 0x23, 0x89, 0x7D, 0x11 } } } }, // floppy + PC98
{ UNK_LANG, kPlatformPC, { 0x000000FF, 0x000047EC, { { 0x0D, 0xA5, 0xFD, 0x8A, 0x33, 0xDB, 0x93, 0x43, 0xE2, 0x57, 0x35, 0xEC, 0xA6, 0xCF, 0x7A, 0xA1 } } } }, // CD
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolCompassDefsProvider[] = {
+const ExtractEntrySearchData kLoLCompassDefsProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000100, 0x000030EF, { { 0x6F, 0xF0, 0x46, 0x6E, 0xB3, 0x72, 0xCF, 0xC7, 0xE3, 0xAF, 0xBE, 0x63, 0xA1, 0x1C, 0x33, 0x20 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolItemPricesProvider[] = {
+const ExtractEntrySearchData kLoLItemPricesProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x0000005C, 0x00001251, { { 0x18, 0x62, 0x5E, 0xE2, 0xE4, 0x2A, 0xB0, 0xA0, 0x8B, 0x8D, 0x9D, 0x07, 0x5F, 0x83, 0x53, 0xF7 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolStashSetupProvider[] = {
+const ExtractEntrySearchData kLoLStashSetupProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000000C, 0x0000001E, { { 0x1C, 0x93, 0x66, 0x56, 0xDB, 0xD7, 0xA4, 0xB3, 0xE7, 0x2F, 0xEA, 0x88, 0xE2, 0xC8, 0x79, 0xD0 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscUnk1Provider[] = {
+const ExtractEntrySearchData kLoLDscWallsProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000024, 0x00000A2A, { { 0xAC, 0x4E, 0x73, 0x2C, 0xB0, 0xEE, 0x24, 0x0E, 0x66, 0x8D, 0x48, 0xE5, 0xCA, 0x6B, 0x7F, 0x7F } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscShapeIndexProvider[] = {
+const ExtractEntrySearchData kRpgCommonDscShapeIndexProvider[] = {
+ // LOL:
{ UNK_LANG, kPlatformUnknown, { 0x00000024, 0x00000728, { { 0x14, 0xBA, 0x6D, 0x5C, 0x7D, 0x20, 0x0D, 0x35, 0xA7, 0xB0, 0x8D, 0x2F, 0x1D, 0x2A, 0x49, 0xA4 } } } },
+ // EOB:
+ { UNK_LANG, kPlatformUnknown, { 0x00000024, 0x00000632, { { 0xBE, 0x3E, 0x84, 0x71, 0x89, 0x04, 0xC9, 0x1D, 0xCF, 0xE4, 0x3B, 0xD8, 0x2A, 0xF4, 0x0F, 0x54 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscOvlMapProvider[] = {
+const ExtractEntrySearchData kLoLDscOvlMapProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000000A, 0x0000001F, { { 0x9C, 0xF2, 0xCC, 0x48, 0x42, 0xC6, 0x76, 0x83, 0xD3, 0x1A, 0x43, 0x42, 0x7F, 0xEF, 0x19, 0x0F } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscScaleWidthDataProvider[] = {
+const ExtractEntrySearchData kLoLDscScaleWidthDataProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000048, 0x00000ABE, { { 0x28, 0x9A, 0xAA, 0x16, 0xC4, 0xFD, 0x52, 0xA9, 0x76, 0x98, 0x72, 0x0C, 0x2D, 0xE4, 0xB0, 0x57 } } } },
-
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscScaleHeightDataProvider[] = {
+const ExtractEntrySearchData kLoLDscScaleHeightDataProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000048, 0x000009E8, { { 0x25, 0x35, 0x07, 0xBC, 0xF9, 0x82, 0x8B, 0x5B, 0x67, 0x7C, 0x38, 0xD1, 0xF8, 0x35, 0x81, 0xC7 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscXProvider[] = {
+const ExtractEntrySearchData kRpgCommonDscXProvider[] = {
+ // LOL
{ UNK_LANG, kPlatformUnknown, { 0x00000048, 0x00001468, { { 0x55, 0xC5, 0x30, 0x76, 0x0A, 0xDC, 0xEC, 0xAB, 0x68, 0x9B, 0x61, 0xF0, 0x58, 0x78, 0x56, 0xA6 } } } },
+ // EOB
+ { UNK_LANG, kPlatformUnknown, { 0x00000024, 0x00000BFA, { { 0x5F, 0x86, 0x9B, 0xDA, 0x5D, 0x6E, 0xC0, 0xB9, 0x29, 0x82, 0xA5, 0xD7, 0xC9, 0x34, 0x90, 0x63 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscYProvider[] = {
+const ExtractEntrySearchData kLoLDscYProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000024, 0x00000282, { { 0x09, 0x98, 0x3A, 0x33, 0x15, 0xA1, 0x4A, 0xFF, 0x76, 0x19, 0x2B, 0xB1, 0x74, 0x89, 0xF4, 0x37 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscTileIndexProvider[] = {
+const ExtractEntrySearchData kRpgCommonDscTileIndexProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000012, 0x00000099, { { 0x18, 0xD9, 0x39, 0x27, 0x5B, 0x34, 0xAE, 0x7C, 0xA9, 0xA9, 0xDB, 0x42, 0x49, 0x61, 0x6B, 0x37 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscUnk2Provider[] = {
+const ExtractEntrySearchData kRpgCommonDscUnk2Provider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000017, 0x000000D2, { { 0xDE, 0xDA, 0x75, 0x15, 0x2B, 0xDC, 0x90, 0x3F, 0xC9, 0x92, 0x04, 0x01, 0x23, 0x7A, 0xDA, 0x2E } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscDoorShapeIndexProvider[] = {
- { UNK_LANG, kPlatformUnknown, { 0x00000017, 0x0000000A, { { 0x2E, 0xC4, 0xA1, 0x47, 0x7C, 0xAE, 0xAD, 0xD8, 0x8A, 0x72, 0x95, 0x2F, 0x18, 0xC5, 0x08, 0x19 } } } },
-
+const ExtractEntrySearchData kRpgCommonDscDoorShapeIndexProvider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000017, 0x0000000A, { { 0x2E, 0xC4, 0xA1, 0x47, 0x7C, 0xAE, 0xAD, 0xD8, 0x8A, 0x72, 0x95, 0x2F, 0x18, 0xC5, 0x08, 0x19 } } } }, // LOL
+ { UNK_LANG, kPlatformUnknown, { 0x00000020, 0x00000021, { { 0xE3, 0x00, 0x85, 0x1C, 0x13, 0xCE, 0x5D, 0xA7, 0xA2, 0x93, 0x9B, 0x56, 0x1A, 0x0C, 0x43, 0x3E } } } }, // EOB 1
+ { UNK_LANG, kPlatformUnknown, { 0x00000035, 0x0000000B, { { 0xC2, 0xBC, 0xCA, 0x95, 0x69, 0xE8, 0x3F, 0x1F, 0xC2, 0x1C, 0x37, 0x90, 0x63, 0x8F, 0xE6, 0x1D } } } }, // EOB 2
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscDimData1Provider[] = {
+const ExtractEntrySearchData kRpgCommonDscDimData1Provider[] = {
+ // LOL
{ UNK_LANG, kPlatformUnknown, { 0x00000144, 0x0001007D, { { 0x18, 0x3D, 0xA5, 0xF7, 0x1A, 0x5A, 0x90, 0xA7, 0x4E, 0x66, 0x1A, 0x4E, 0x0C, 0x69, 0x58, 0x31 } } } },
-
+ // EOB
+ { UNK_LANG, kPlatformUnknown, { 0x00000144, 0x00010115, { { 0x89, 0x37, 0x1C, 0x85, 0x53, 0xEE, 0xC0, 0xEC, 0x17, 0x26, 0x0B, 0xE5, 0xCC, 0x9C, 0x30, 0x58 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscDimData2Provider[] = {
- { UNK_LANG, kPlatformUnknown, { 0x00000289, 0x00001BC2, { { 0x7F, 0x9D, 0xD3, 0x5A, 0x57, 0x73, 0xEA, 0x37, 0x44, 0x5E, 0x1A, 0x88, 0xFB, 0xE8, 0xE8, 0x8F } } } },
+const ExtractEntrySearchData kRpgCommonDscDimData2Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000288, 0x00001BC2, { { 0x30, 0xD1, 0xD1, 0x35, 0x74, 0x2C, 0x86, 0x81, 0x23, 0xE2, 0x05, 0xCE, 0x75, 0x60, 0x3C, 0x55 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscBlockMapProvider[] = {
+const ExtractEntrySearchData kRpgCommonDscBlockMapProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000000C, 0x00000012, { { 0x01, 0xEE, 0x32, 0xA6, 0x71, 0x15, 0x8D, 0xFB, 0x33, 0xF2, 0xD6, 0x8A, 0x30, 0x00, 0x10, 0x4B } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscDimMapProvider[] = {
+const ExtractEntrySearchData kRpgCommonDscDimMapProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000012, 0x00000014, { { 0x4D, 0x53, 0x2E, 0xF2, 0xA3, 0xF9, 0xE2, 0xEC, 0x44, 0xBE, 0x5F, 0x04, 0x91, 0xF8, 0xE1, 0x04 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscOvlIndexProvider[] = {
+const ExtractEntrySearchData kLoLDscOvlIndexProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000028, 0x00000048, { { 0x3E, 0x8E, 0x62, 0xAF, 0xD1, 0x28, 0x39, 0x73, 0x0D, 0xD8, 0x4A, 0xA7, 0xF4, 0xD7, 0x32, 0x25 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscBlockIndexProvider[] = {
+const ExtractEntrySearchData kRpgCommonDscBlockIndexProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000048, 0x00002200, { { 0xF4, 0x8B, 0x32, 0xC3, 0xD3, 0xFB, 0x46, 0xF2, 0xB8, 0x3A, 0x58, 0x39, 0x94, 0x57, 0x97, 0x4B } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscDoor1Provider[] = {
- { UNK_LANG, kPlatformUnknown, { 0x00000080, 0x00000348, { { 0xC6, 0x58, 0x8B, 0xFE, 0x18, 0x72, 0x47, 0xF1, 0xB6, 0x3A, 0x0F, 0xFB, 0x3D, 0x99, 0x74, 0xD0 } } } },
+const ExtractEntrySearchData kRpgCommonDscDoorY2Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000080, 0x00000348, { { 0xC6, 0x58, 0x8B, 0xFE, 0x18, 0x72, 0x47, 0xF1, 0xB6, 0x3A, 0x0F, 0xFB, 0x3D, 0x99, 0x74, 0xD0 } } } }, // LOL
+ { UNK_LANG, kPlatformUnknown, { 0x00000004, 0x00000046, { { 0x35, 0x36, 0xBC, 0xD8, 0x63, 0x25, 0x31, 0xA9, 0x61, 0x8E, 0xF6, 0x54, 0x4A, 0x79, 0x17, 0xF8 } } } }, // EOB
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kRpgCommonDscDoorFrameY1Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000020, 0x0000053B, { { 0xF0, 0x9E, 0xC5, 0xB1, 0xEA, 0x5A, 0x58, 0xBD, 0xAC, 0x7B, 0xB2, 0xD4, 0xFE, 0x3F, 0x4F, 0x51 } } } }, // EOB I
+ { UNK_LANG, kPlatformUnknown, { 0x00000004, 0x00000046, { { 0xD4, 0xA4, 0xEC, 0xA2, 0x99, 0xB6, 0x5E, 0x12, 0x98, 0xFF, 0xF2, 0x55, 0xC8, 0xBD, 0xC5, 0x8F } } } }, // EOB II
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kRpgCommonDscDoorFrameY2Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x00000020, 0x0000053B, { { 0xF0, 0x9E, 0xC5, 0xB1, 0xEA, 0x5A, 0x58, 0xBD, 0xAC, 0x7B, 0xB2, 0xD4, 0xFE, 0x3F, 0x4F, 0x51 } } } }, // EOB I
+ { UNK_LANG, kPlatformUnknown, { 0x00000004, 0x00000150, { { 0x49, 0x7E, 0xF4, 0xDF, 0x8D, 0x04, 0x0A, 0xCE, 0x49, 0xBB, 0xA2, 0x1D, 0x8D, 0xC2, 0x14, 0x9E } } } }, // EOB II
+ EXTRACT_END_ENTRY
+};
+
+const ExtractEntrySearchData kRpgCommonDscDoorFrameIndex1Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000000C, 0x00000058, { { 0xC9, 0xAF, 0x1F, 0x68, 0xF1, 0xDE, 0x96, 0x9B, 0x3B, 0xCB, 0x56, 0xEC, 0x2E, 0x62, 0x9A, 0x0A } } } },
+ EXTRACT_END_ENTRY
+};
+const ExtractEntrySearchData kRpgCommonDscDoorFrameIndex2Provider[] = {
+ { UNK_LANG, kPlatformUnknown, { 0x0000000C, 0x000000E8, { { 0x8C, 0x10, 0x56, 0xEA, 0x4D, 0x1A, 0x9C, 0xB2, 0x55, 0x54, 0xA5, 0x61, 0x1D, 0x19, 0x4E, 0x50 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscDoorScaleProvider[] = {
+const ExtractEntrySearchData kLoLDscDoorScaleProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000010, 0x0000024C, { { 0x8D, 0x83, 0x26, 0xEE, 0xDC, 0xF7, 0x13, 0xC0, 0xAA, 0x88, 0xC2, 0xAA, 0x66, 0xA7, 0x59, 0x41 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscDoor4Provider[] = {
+const ExtractEntrySearchData kLoLDscDoor4Provider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000008, 0x00000103, { { 0x29, 0xC0, 0x4B, 0x7F, 0x36, 0x23, 0xBB, 0x38, 0x4C, 0x83, 0xC6, 0x9D, 0xB4, 0x8F, 0x29, 0x2E } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscDoorXProvider[] = {
+const ExtractEntrySearchData kLoLDscDoorXProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000480, 0x0001654D, { { 0x2A, 0x1F, 0xBF, 0xE3, 0xC4, 0xEF, 0x7E, 0xD1, 0x61, 0x51, 0xFE, 0x88, 0x8D, 0x1F, 0x59, 0x70 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolDscDoorYProvider[] = {
+const ExtractEntrySearchData kLoLDscDoorYProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000480, 0x00026666, { { 0x06, 0xBF, 0xA4, 0xD4, 0x6E, 0x29, 0x42, 0xA2, 0xA0, 0x8E, 0x3C, 0x14, 0xF3, 0xD6, 0x3F, 0x87 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolScrollXTopProvider[] = {
+const ExtractEntrySearchData kLoLScrollXTopProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000000A, 0x0000004B, { { 0x18, 0x1E, 0x6E, 0xE9, 0x34, 0xF0, 0x02, 0xC6, 0x57, 0x34, 0xDF, 0x55, 0xD9, 0x39, 0xE8, 0x98 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolScrollYTopProvider[] = {
+const ExtractEntrySearchData kLoLScrollYTopProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000000A, 0x00000022, { { 0xF3, 0x20, 0x5A, 0xC1, 0xBB, 0x0C, 0x79, 0x52, 0x23, 0xC1, 0x36, 0x81, 0x70, 0x2F, 0x92, 0xFC } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolScrollXBottomProvider[] = {
+const ExtractEntrySearchData kLoLScrollXBottomProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000000A, 0x0000004B, { { 0x18, 0x1E, 0x6E, 0xE9, 0x34, 0xF0, 0x02, 0xC6, 0x57, 0x34, 0xDF, 0x55, 0xD9, 0x39, 0xE8, 0x98 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolScrollYBottomProvider[] = {
+const ExtractEntrySearchData kLoLScrollYBottomProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000000A, 0x0000003C, { { 0x5B, 0x4F, 0xB7, 0xB5, 0x55, 0xA2, 0x9A, 0x21, 0xEF, 0xB4, 0x98, 0x47, 0x05, 0x57, 0x49, 0x55 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolButtonDefsProvider[] = {
+const ExtractEntrySearchData kLoLButtonDefsProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x0000082A, 0x0000CAAE, { { 0xC1, 0x83, 0x0D, 0xA0, 0x66, 0x16, 0x3D, 0x31, 0xCE, 0x30, 0x9F, 0x4E, 0x00, 0x65, 0x5A, 0xC8 } } } }, // floppy
{ UNK_LANG, kPlatformPC, { 0x0000082A, 0x0000C34E, { { 0x7F, 0x9A, 0x0F, 0x28, 0x1A, 0x8F, 0x03, 0x46, 0x48, 0xEB, 0xC9, 0xB9, 0x23, 0x29, 0x5E, 0x50 } } } }, // floppy
{ UNK_LANG, kPlatformPC, { 0x0000082A, 0x0000C47B, { { 0xDF, 0x1A, 0x18, 0x1F, 0x58, 0x05, 0x1F, 0x56, 0xD8, 0x6D, 0xBB, 0x93, 0xEC, 0x35, 0x9D, 0xA5 } } } }, // CD
@@ -1691,110 +3728,110 @@ const ExtractEntrySearchData kLolButtonDefsProvider[] = {
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolButtonList1Provider[] = {
+const ExtractEntrySearchData kLoLButtonList1Provider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000050, 0x00000A37, { { 0x0F, 0x73, 0xEC, 0xDD, 0xAB, 0xFF, 0x49, 0x46, 0x5E, 0x8F, 0x0D, 0xC3, 0xE7, 0x1B, 0x89, 0x51 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolButtonList2Provider[] = {
+const ExtractEntrySearchData kLoLButtonList2Provider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000001E, 0x00000522, { { 0xEA, 0x41, 0x46, 0xE2, 0xFE, 0xAA, 0x7D, 0x5E, 0x89, 0x7F, 0xBF, 0x9B, 0x30, 0x60, 0x74, 0xF3 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolButtonList3Provider[] = {
+const ExtractEntrySearchData kLoLButtonList3Provider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000004, 0x0000023E, { { 0x70, 0xAA, 0xCA, 0xAC, 0x5C, 0x21, 0xCF, 0xA5, 0xBF, 0x7F, 0x5F, 0xBC, 0xF1, 0x24, 0x8A, 0xAF } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolButtonList4Provider[] = {
+const ExtractEntrySearchData kLoLButtonList4Provider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000001E, 0x0000054D, { { 0x19, 0x2A, 0xBE, 0x7F, 0x94, 0x10, 0xA0, 0x60, 0x2A, 0x33, 0xD6, 0x11, 0x85, 0xF0, 0xA4, 0xA9 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolButtonList5Provider[] = {
+const ExtractEntrySearchData kLoLButtonList5Provider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000020, 0x0000045D, { { 0xE3, 0x7C, 0xC2, 0x36, 0x21, 0x46, 0xDB, 0xF3, 0xDD, 0x38, 0x4B, 0x40, 0xE0, 0x35, 0x09, 0xC3 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolButtonList6Provider[] = {
+const ExtractEntrySearchData kLoLButtonList6Provider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000001C, 0x000004C4, { { 0x21, 0x7C, 0x29, 0x3F, 0x95, 0x6F, 0x91, 0x8C, 0xB2, 0x30, 0x09, 0xA6, 0x7B, 0x48, 0x44, 0x8F } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolButtonList7Provider[] = {
+const ExtractEntrySearchData kLoLButtonList7Provider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000006, 0x0000021D, { { 0xDC, 0xCE, 0x1B, 0xEB, 0x11, 0x6D, 0xDE, 0x37, 0x17, 0xC8, 0x06, 0x51, 0xC3, 0x0C, 0xCB, 0xA6 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolButtonList8Provider[] = {
+const ExtractEntrySearchData kLoLButtonList8Provider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000004, 0x00000253, { { 0x0C, 0x7B, 0x10, 0x99, 0x93, 0xD0, 0x33, 0xCA, 0xAB, 0x8D, 0x7E, 0x24, 0xE5, 0x7E, 0x6C, 0x91 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolLegendDataProvider[] = {
+const ExtractEntrySearchData kLoLLegendDataProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000030, 0x00000858, { { 0x63, 0x5E, 0x60, 0xC7, 0x62, 0x2C, 0x5D, 0x8F, 0x74, 0x71, 0x98, 0xB7, 0x09, 0xD2, 0x51, 0xC7 } } } },
{ UNK_LANG, kPlatformUnknown, { 0x0000003C, 0x00000A52, { { 0x81, 0xC5, 0xA4, 0xE7, 0x60, 0xDA, 0xD6, 0x5E, 0x19, 0xAB, 0xF3, 0xC7, 0xDD, 0xDB, 0x92, 0x5E } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolMapCursorOvlProvider[] = {
+const ExtractEntrySearchData kLoLMapCursorOvlProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x00000019, 0x000009CD, { { 0xF6, 0xD2, 0xFA, 0x36, 0x62, 0x95, 0x1D, 0x99, 0x7F, 0x11, 0x5F, 0xA8, 0x4D, 0x47, 0x72, 0x40 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolMapStringIdProvider[] = {
+const ExtractEntrySearchData kLoLMapStringIdProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000003C, 0x00000CFB, { { 0xE3, 0xC3, 0x41, 0x06, 0xD1, 0x71, 0x77, 0x78, 0xAD, 0x39, 0xAE, 0x2C, 0x16, 0x21, 0x45, 0xB7 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolSpellbookAnimProvider[] = {
+const ExtractEntrySearchData kLoLSpellbookAnimProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000038, 0x000003A1, { { 0x50, 0xA0, 0xF6, 0xA7, 0x53, 0x96, 0x86, 0x49, 0xB0, 0x8D, 0xA8, 0xB2, 0x2D, 0x9A, 0xE2, 0x1F } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolSpellbookCoordsProvider[] = {
+const ExtractEntrySearchData kLoLSpellbookCoordsProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000018, 0x0000018F, { { 0xA5, 0xF6, 0x8A, 0x58, 0x9A, 0xC7, 0x3C, 0x3A, 0xB5, 0x87, 0x89, 0x87, 0x73, 0x51, 0x9B, 0x1B } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolHealShapeFramesProvider[] = {
+const ExtractEntrySearchData kLoLHealShapeFramesProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000050, 0x000000F4, { { 0xC9, 0x6E, 0x39, 0xE1, 0xD7, 0xAD, 0x10, 0x4F, 0xE2, 0xFE, 0xDC, 0xAD, 0x00, 0x9D, 0x41, 0xEF } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolLightningDefsProvider[] = {
+const ExtractEntrySearchData kLoLLightningDefsProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000014, 0x00000385, { { 0x68, 0x39, 0x65, 0xCB, 0xA9, 0x80, 0x90, 0xFB, 0xDD, 0x77, 0x0C, 0x76, 0x5A, 0xB5, 0x05, 0x03 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolFireballCoordsProvider[] = {
+const ExtractEntrySearchData kLoLFireballCoordsProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000200, 0x0000FD81, { { 0xB3, 0xE0, 0x6F, 0x89, 0xCD, 0xE5, 0xA9, 0x6A, 0x4B, 0x61, 0x7A, 0x3F, 0x47, 0x26, 0x73, 0x58 } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolCreditsProvider[] = {
+const ExtractEntrySearchData kLoLCreditsProvider[] = {
{ JA_JPN , kPlatformPC98, { 0x000005E7, 0x0001A1B0, { { 0x2A, 0xD0, 0x38, 0x84, 0x0C, 0x38, 0xCB, 0x52, 0x5D, 0x82, 0xBE, 0x03, 0x76, 0xFA, 0x0A, 0x4A } } } },
EXTRACT_END_ENTRY
};
-const ExtractEntrySearchData kLolHistoryProvider[] = {
+const ExtractEntrySearchData kLoLHistoryProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x000001D1, 0x00007F9B, { { 0x25, 0x10, 0x86, 0x40, 0xAC, 0x53, 0xFE, 0x11, 0x4D, 0xE2, 0xD9, 0x35, 0xD6, 0x89, 0xBB, 0x09 } } } },
EXTRACT_END_ENTRY
@@ -1934,81 +3971,472 @@ const ExtractEntry extractProviders[] = {
{ k3ItemAnimData, k3ItemAnimDataProvider },
{ k3ItemMagicTable, k3ItemMagicTableProvider },
{ k3ItemStringMap, k3ItemStringMapProvider },
- { kLolIngamePakFiles, kLolIngamePakFilesProvider },
- { kLolCharacterDefs, kLolCharacterDefsProvider },
- { kLolIngameSfxFiles, kLolIngameSfxFilesProvider },
- { kLolIngameSfxIndex, kLolIngameSfxIndexProvider },
- { kLolMusicTrackMap, kLolMusicTrackMapProvider },
- { kLolIngameGMSfxIndex, kLolIngameGMSfxIndexProvider },
- { kLolIngameMT32SfxIndex, kLolIngameMT32SfxIndexProvider },
- { kLolIngamePcSpkSfxIndex, kLolIngamePcSpkSfxIndexProvider },
- { kLolSpellProperties, kLolSpellPropertiesProvider },
- { kLolGameShapeMap, kLolGameShapeMapProvider },
- { kLolSceneItemOffs, kLolSceneItemOffsProvider },
- { kLolCharInvIndex, kLolCharInvIndexProvider },
- { kLolCharInvDefs, kLolCharInvDefsProvider },
- { kLolCharDefsMan, kLolCharDefsManProvider },
- { kLolCharDefsWoman, kLolCharDefsWomanProvider },
- { kLolCharDefsKieran, kLolCharDefsKieranProvider },
- { kLolCharDefsAkshel, kLolCharDefsAkshelProvider },
- { kLolExpRequirements, kLolExpRequirementsProvider },
- { kLolMonsterModifiers, kLolMonsterModifiersProvider },
- { kLolMonsterShiftOffsets, kLolMonsterShiftOffsetsProvider },
- { kLolMonsterDirFlags, kLolMonsterDirFlagsProvider },
- { kLolMonsterScaleY, kLolMonsterScaleYProvider },
- { kLolMonsterScaleX, kLolMonsterScaleXProvider },
- { kLolMonsterScaleWH, kLolMonsterScaleWHProvider },
- { kLolFlyingObjectShp, kLolFlyingObjectShpProvider },
- { kLolInventoryDesc, kLolInventoryDescProvider },
- { kLolLevelShpList, kLolLevelShpListProvider },
- { kLolLevelDatList, kLolLevelDatListProvider },
- { kLolCompassDefs, kLolCompassDefsProvider },
- { kLolItemPrices, kLolItemPricesProvider },
- { kLolStashSetup, kLolStashSetupProvider },
- { kLolDscUnk1, kLolDscUnk1Provider },
- { kLolDscShapeIndex, kLolDscShapeIndexProvider },
- { kLolDscOvlMap, kLolDscOvlMapProvider },
- { kLolDscScaleWidthData, kLolDscScaleWidthDataProvider },
- { kLolDscScaleHeightData, kLolDscScaleHeightDataProvider },
- { kLolDscX, kLolDscXProvider },
- { kLolDscY, kLolDscYProvider },
- { kLolDscTileIndex, kLolDscTileIndexProvider },
- { kLolDscUnk2, kLolDscUnk2Provider },
- { kLolDscDoorShapeIndex, kLolDscDoorShapeIndexProvider },
- { kLolDscDimData1, kLolDscDimData1Provider },
- { kLolDscDimData2, kLolDscDimData2Provider },
- { kLolDscBlockMap, kLolDscBlockMapProvider },
- { kLolDscDimMap, kLolDscDimMapProvider },
- { kLolDscOvlIndex, kLolDscOvlIndexProvider },
- { kLolDscBlockIndex, kLolDscBlockIndexProvider },
- { kLolDscDoor1, kLolDscDoor1Provider },
- { kLolDscDoorScale, kLolDscDoorScaleProvider },
- { kLolDscDoor4, kLolDscDoor4Provider },
- { kLolDscDoorX, kLolDscDoorXProvider },
- { kLolDscDoorY, kLolDscDoorYProvider },
- { kLolScrollXTop, kLolScrollXTopProvider },
- { kLolScrollYTop, kLolScrollYTopProvider },
- { kLolScrollXBottom, kLolScrollXBottomProvider },
- { kLolScrollYBottom, kLolScrollYBottomProvider },
- { kLolButtonDefs, kLolButtonDefsProvider },
- { kLolButtonList1, kLolButtonList1Provider },
- { kLolButtonList2, kLolButtonList2Provider },
- { kLolButtonList3, kLolButtonList3Provider },
- { kLolButtonList4, kLolButtonList4Provider },
- { kLolButtonList5, kLolButtonList5Provider },
- { kLolButtonList6, kLolButtonList6Provider },
- { kLolButtonList7, kLolButtonList7Provider },
- { kLolButtonList8, kLolButtonList8Provider },
- { kLolLegendData, kLolLegendDataProvider },
- { kLolMapCursorOvl, kLolMapCursorOvlProvider },
- { kLolMapStringId, kLolMapStringIdProvider },
- { kLolSpellbookAnim, kLolSpellbookAnimProvider },
- { kLolSpellbookCoords, kLolSpellbookCoordsProvider },
- { kLolHealShapeFrames, kLolHealShapeFramesProvider },
- { kLolLightningDefs, kLolLightningDefsProvider },
- { kLolFireballCoords, kLolFireballCoordsProvider },
- { kLolCredits, kLolCreditsProvider },
- { kLolHistory, kLolHistoryProvider },
+
+ { kEoBBaseChargenStrings1, kEoBBaseChargenStrings1Provider },
+ { kEoBBaseChargenStrings2, kEoBBaseChargenStrings2Provider },
+ { kEoBBaseChargenStartLevels, kEoBBaseChargenStartLevelsProvider },
+ { kEoBBaseChargenStatStrings, kEoBBaseChargenStatStringsProvider },
+ { kEoBBaseChargenRaceSexStrings, kEoBBaseChargenRaceSexStringsProvider },
+ { kEoBBaseChargenClassStrings, kEoBBaseChargenClassStringsProvider },
+ { kEoBBaseChargenAlignmentStrings, kEoBBaseChargenAlignmentStringsProvider },
+ { kEoBBaseChargenEnterGameStrings, kEoBBaseChargenEnterGameStringsProvider },
+ { kEoBBaseChargenClassMinStats, kEoBBaseChargenClassMinStatsProvider },
+ { kEoBBaseChargenRaceMinStats, kEoBBaseChargenRaceMinStatsProvider },
+ { kEoBBaseChargenRaceMaxStats, kEoBBaseChargenRaceMaxStatsProvider },
+
+ { kEoBBaseSaveThrowTable1, kEoBBaseSaveThrowTable1Provider },
+ { kEoBBaseSaveThrowTable2, kEoBBaseSaveThrowTable2Provider },
+ { kEoBBaseSaveThrowTable3, kEoBBaseSaveThrowTable3Provider },
+ { kEoBBaseSaveThrowTable4, kEoBBaseSaveThrowTable4Provider },
+ { kEoBBaseSaveThrwLvlIndex, kEoBBaseSaveThrwLvlIndexProvider },
+ { kEoBBaseSaveThrwModDiv, kEoBBaseSaveThrwModDivProvider },
+ { kEoBBaseSaveThrwModExt, kEoBBaseSaveThrwModExtProvider },
+
+ { kEoBBasePryDoorStrings, kEoBBasePryDoorStringsProvider },
+ { kEoBBaseWarningStrings, kEoBBaseWarningStringsProvider },
+
+ { kEoBBaseItemSuffixStringsRings, kEoBBaseItemSuffixStringsRingsProvider },
+ { kEoBBaseItemSuffixStringsPotions, kEoBBaseItemSuffixStringsPotionsProvider },
+ { kEoBBaseItemSuffixStringsWands, kEoBBaseItemSuffixStringsWandsProvider },
+
+ { kEoBBaseRipItemStrings, kEoBBaseRipItemStringsProvider },
+ { kEoBBaseCursedString, kEoBBaseCursedStringProvider },
+ { kEoBBaseEnchantedString, kEoBBaseEnchantedStringProvider },
+ { kEoBBaseMagicObjectStrings, kEoBBaseMagicObjectStringsProvider },
+ { kEoBBaseMagicObject5String, kEoBBaseMagicObject5StringProvider },
+ { kEoBBasePatternSuffix, kEoBBasePatternSuffixProvider },
+ { kEoBBasePatternGrFix1, kEoBBasePatternGrFix1Provider },
+ { kEoBBasePatternGrFix2, kEoBBasePatternGrFix2Provider },
+ { kEoBBaseValidateArmorString, kEoBBaseValidateArmorStringProvider },
+ { kEoBBaseValidateCursedString, kEoBBaseValidateCursedStringProvider },
+ { kEoBBaseValidateNoDropString, kEoBBaseValidateNoDropStringProvider },
+ { kEoBBasePotionStrings, kEoBBasePotionStringsProvider },
+ { kEoBBaseWandString, kEoBBaseWandStringProvider },
+ { kEoBBaseItemMisuseStrings, kEoBBaseItemMisuseStringsProvider },
+
+ { kEoBBaseTakenStrings, kEoBBaseTakenStringsProvider },
+ { kEoBBasePotionEffectStrings, kEoBBasePotionEffectStringsProvider },
+
+ { kEoBBaseYesNoStrings, kEoBBaseYesNoStringsProvider },
+ { kRpgCommonMoreStrings, kRpgCommonMoreStringsProvider },
+ { kEoBBaseNpcMaxStrings, kEoBBaseNpcMaxStringsProvider },
+ { kEoBBaseOkStrings, kEoBBaseOkStringsProvider },
+ { kEoBBaseNpcJoinStrings, kEoBBaseNpcJoinStringsProvider },
+ { kEoBBaseCancelStrings, kEoBBaseCancelStringsProvider },
+ { kEoBBaseAbortStrings, kEoBBaseAbortStringsProvider },
+
+ { kEoBBaseMenuStringsMain, kEoBBaseMenuStringsMainProvider },
+ { kEoBBaseMenuStringsSaveLoad, kEoBBaseMenuStringsSaveLoadProvider },
+ { kEoBBaseMenuStringsOnOff, kEoBBaseMenuStringsOnOffProvider },
+ { kEoBBaseMenuStringsSpells, kEoBBaseMenuStringsSpellsProvider },
+ { kEoBBaseMenuStringsRest, kEoBBaseMenuStringsRestProvider },
+ { kEoBBaseMenuStringsDrop, kEoBBaseMenuStringsDropProvider },
+ { kEoBBaseMenuStringsExit, kEoBBaseMenuStringsExitProvider },
+ { kEoBBaseMenuStringsStarve, kEoBBaseMenuStringsStarveProvider },
+ { kEoBBaseMenuStringsScribe, kEoBBaseMenuStringsScribeProvider },
+ { kEoBBaseMenuStringsDrop2, kEoBBaseMenuStringsDrop2Provider },
+ { kEoBBaseMenuStringsHead, kEoBBaseMenuStringsHeadProvider },
+ { kEoBBaseMenuStringsPoison, kEoBBaseMenuStringsPoisonProvider },
+ { kEoBBaseMenuStringsMgc, kEoBBaseMenuStringsMgcProvider },
+ { kEoBBaseMenuStringsPrefs, kEoBBaseMenuStringsPrefsProvider },
+ { kEoBBaseMenuStringsRest2, kEoBBaseMenuStringsRest2Provider },
+ { kEoBBaseMenuStringsRest3, kEoBBaseMenuStringsRest3Provider },
+ { kEoBBaseMenuStringsRest4, kEoBBaseMenuStringsRest4Provider },
+ { kEoBBaseMenuStringsDefeat, kEoBBaseMenuStringsDefeatProvider },
+ { kEoBBaseMenuStringsTransfer, kEoBBaseMenuStringsTransferProvider },
+ { kEoBBaseMenuStringsSpec, kEoBBaseMenuStringsSpecProvider },
+ { kEoBBaseMenuStringsSpellNo, kEoBBaseMenuStringsSpellNoProvider },
+ { kEoBBaseMenuYesNoStrings, kEoBBaseMenuYesNoStringsProvider },
+
+ { kEoBBaseSpellLevelsMage, kEoBBaseSpellLevelsMageProvider },
+ { kEoBBaseSpellLevelsCleric, kEoBBaseSpellLevelsClericProvider },
+ { kEoBBaseNumSpellsCleric, kEoBBaseNumSpellsClericProvider },
+ { kEoBBaseNumSpellsWisAdj, kEoBBaseNumSpellsWisAdjProvider },
+ { kEoBBaseNumSpellsPal, kEoBBaseNumSpellsPalProvider },
+ { kEoBBaseNumSpellsMage, kEoBBaseNumSpellsMageProvider },
+
+ { kEoBBaseCharGuiStringsHp, kEoBBaseCharGuiStringsHpProvider },
+ { kEoBBaseCharGuiStringsWp1, kEoBBaseCharGuiStringsWp1Provider },
+ { kEoBBaseCharGuiStringsWp2, kEoBBaseCharGuiStringsWp2Provider },
+ { kEoBBaseCharGuiStringsWr, kEoBBaseCharGuiStringsWrProvider },
+ { kEoBBaseCharGuiStringsSt1, kEoBBaseCharGuiStringsSt1Provider },
+ { kEoBBaseCharGuiStringsSt2, kEoBBaseCharGuiStringsSt2Provider },
+ { kEoBBaseCharGuiStringsIn, kEoBBaseCharGuiStringsInProvider },
+
+ { kEoBBaseCharStatusStrings7, kEoBBaseCharStatusStrings7Provider },
+ { kEoBBaseCharStatusStrings81, kEoBBaseCharStatusStrings81Provider },
+ { kEoBBaseCharStatusStrings82, kEoBBaseCharStatusStrings82Provider },
+ { kEoBBaseCharStatusStrings9, kEoBBaseCharStatusStrings9Provider },
+ { kEoBBaseCharStatusStrings12, kEoBBaseCharStatusStrings12Provider },
+ { kEoBBaseCharStatusStrings131, kEoBBaseCharStatusStrings131Provider },
+ { kEoBBaseCharStatusStrings132, kEoBBaseCharStatusStrings132Provider },
+
+ { kEoBBaseLevelGainStrings, kEoBBaseLevelGainStringsProvider },
+ { kEoBBaseExperienceTable0, kEoBBaseExperienceTable0Provider },
+ { kEoBBaseExperienceTable1, kEoBBaseExperienceTable1Provider },
+ { kEoBBaseExperienceTable2, kEoBBaseExperienceTable2Provider },
+ { kEoBBaseExperienceTable3, kEoBBaseExperienceTable3Provider },
+ { kEoBBaseExperienceTable4, kEoBBaseExperienceTable4Provider },
+
+ { kEoBBaseWllFlagPreset, kEoBBaseWllFlagPresetProvider },
+ { kEoBBaseDscShapeCoords, kEoBBaseDscShapeCoordsProvider },
+ { kEoBBaseDscDoorScaleOffs, kEoBBaseDscDoorScaleOffsProvider },
+ { kEoBBaseDscDoorScaleMult1, kEoBBaseDscDoorScaleMult1Provider },
+ { kEoBBaseDscDoorScaleMult2, kEoBBaseDscDoorScaleMult2Provider },
+ { kEoBBaseDscDoorScaleMult3, kEoBBaseDscDoorScaleMult3Provider },
+ { kEoBBaseDscDoorScaleMult4, kEoBBaseDscDoorScaleMult4Provider },
+ { kEoBBaseDscDoorScaleMult5, kEoBBaseDscDoorScaleMult5Provider },
+ { kEoBBaseDscDoorScaleMult6, kEoBBaseDscDoorScaleMult6Provider },
+ { kEoBBaseDscDoorType5Offs, kEoBBaseDscDoorType5OffsProvider },
+ { kEoBBaseDscDoorXE, kEoBBaseDscDoorXEProvider },
+ { kEoBBaseDscDoorY1, kEoBBaseDscDoorY1Provider },
+ { kEoBBaseDscDoorY3, kEoBBaseDscDoorY3Provider },
+ { kEoBBaseDscDoorY4, kEoBBaseDscDoorY4Provider },
+ { kEoBBaseDscDoorY5, kEoBBaseDscDoorY5Provider },
+ { kEoBBaseDscDoorY6, kEoBBaseDscDoorY6Provider },
+ { kEoBBaseDscDoorY7, kEoBBaseDscDoorY7Provider },
+ { kEoBBaseDscDoorCoordsExt, kEoBBaseDscDoorCoordsExtProvider },
+ { kEoBBaseDscItemPosIndex, kEoBBaseDscItemPosIndexProvider },
+ { kEoBBaseDscItemShpX, kEoBBaseDscItemShpXProvider },
+ { kEoBBaseDscItemPosUnk, kEoBBaseDscItemPosUnkProvider },
+ { kEoBBaseDscItemTileIndex, kEoBBaseDscItemTileIndexProvider },
+ { kEoBBaseDscItemShapeMap, kEoBBaseDscItemShapeMapProvider },
+ { kEoBBaseDscTelptrShpCoords, kEoBBaseDscTelptrShpCoordsProvider },
+
+ { kEoBBasePortalSeqData, kEoBBasePortalSeqDataProvider },
+ { kEoBBaseManDef, kEoBBaseManDefProvider },
+ { kEoBBaseManWord, kEoBBaseManWordProvider },
+ { kEoBBaseManPrompt, kEoBBaseManPromptProvider },
+
+ { kEoBBaseDscMonsterFrmOffsTbl1, kEoBBaseDscMonsterFrmOffsTbl1Provider },
+ { kEoBBaseDscMonsterFrmOffsTbl2, kEoBBaseDscMonsterFrmOffsTbl2Provider },
+
+ { kEoBBaseInvSlotX, kEoBBaseInvSlotXProvider },
+ { kEoBBaseInvSlotY, kEoBBaseInvSlotYProvider },
+ { kEoBBaseSlotValidationFlags, kEoBBaseSlotValidationFlagsProvider },
+
+ { kEoBBaseProjectileWeaponTypes, kEoBBaseProjectileWeaponTypesProvider },
+ { kEoBBaseWandTypes, kEoBBaseWandTypesProvider },
+
+ { kEoBBaseDrawObjPosIndex, kEoBBaseDrawObjPosIndexProvider },
+ { kEoBBaseFlightObjFlipIndex, kEoBBaseFlightObjFlipIndexProvider },
+ { kEoBBaseFlightObjShpMap, kEoBBaseFlightObjShpMapProvider },
+ { kEoBBaseFlightObjSclIndex, kEoBBaseFlightObjSclIndexProvider },
+
+ { kEoBBaseBookNumbers, kEoBBaseBookNumbersProvider },
+ { kEoBBaseMageSpellsList, kEoBBaseMageSpellsListProvider },
+ { kEoBBaseClericSpellsList, kEoBBaseClericSpellsListProvider },
+ { kEoBBaseSpellNames, kEoBBaseSpellNamesProvider },
+ { kEoBBaseMagicStrings1, kEoBBaseMagicStrings1Provider },
+ { kEoBBaseMagicStrings2, kEoBBaseMagicStrings2Provider },
+ { kEoBBaseMagicStrings3, kEoBBaseMagicStrings3Provider },
+ { kEoBBaseMagicStrings4, kEoBBaseMagicStrings4Provider },
+ { kEoBBaseMagicStrings6, kEoBBaseMagicStrings6Provider },
+ { kEoBBaseMagicStrings7, kEoBBaseMagicStrings7Provider },
+ { kEoBBaseMagicStrings8, kEoBBaseMagicStrings8Provider },
+
+ { kEoBBaseExpObjectTlMode, kEoBBaseExpObjectTlModeProvider },
+ { kEoBBaseExpObjectTblIndex, kEoBBaseExpObjectTblIndexProvider },
+ { kEoBBaseExpObjectShpStart, kEoBBaseExpObjectShpStartProvider },
+ { kEoBBaseExpObjectTbl1, kEoBBaseExpObjectTbl1Provider },
+ { kEoBBaseExpObjectTbl2, kEoBBaseExpObjectTbl2Provider },
+ { kEoBBaseExpObjectTbl3, kEoBBaseExpObjectTbl3Provider },
+ { kEoBBaseExpObjectY, kEoBBaseExpObjectYProvider },
+
+ { kEoBBaseSparkDefSteps, kEoBBaseSparkDefStepsProvider },
+ { kEoBBaseSparkDefSubSteps, kEoBBaseSparkDefSubStepsProvider },
+ { kEoBBaseSparkDefShift, kEoBBaseSparkDefShiftProvider },
+ { kEoBBaseSparkDefAdd, kEoBBaseSparkDefAddProvider },
+ { kEoBBaseSparkDefX, kEoBBaseSparkDefXProvider },
+ { kEoBBaseSparkDefY, kEoBBaseSparkDefYProvider },
+ { kEoBBaseSparkOfFlags1, kEoBBaseSparkOfFlags1Provider },
+ { kEoBBaseSparkOfFlags2, kEoBBaseSparkOfFlags2Provider },
+ { kEoBBaseSparkOfShift, kEoBBaseSparkOfShiftProvider },
+ { kEoBBaseSparkOfX, kEoBBaseSparkOfXProvider },
+ { kEoBBaseSparkOfY, kEoBBaseSparkOfYProvider },
+
+ { kEoBBaseSpellProperties, kEoBBaseSpellPropertiesProvider },
+ { kEoBBaseMagicFlightProps, kEoBBaseMagicFlightPropsProvider },
+ { kEoBBaseTurnUndeadEffect, kEoBBaseTurnUndeadEffectProvider },
+ { kEoBBaseBurningHandsDest, kEoBBaseBurningHandsDestProvider },
+ { kEoBBaseConeOfColdDest1, kEoBBaseConeOfColdDest1Provider },
+ { kEoBBaseConeOfColdDest2, kEoBBaseConeOfColdDest2Provider },
+ { kEoBBaseConeOfColdDest3, kEoBBaseConeOfColdDest3Provider },
+ { kEoBBaseConeOfColdDest4, kEoBBaseConeOfColdDest4Provider },
+ { kEoBBaseConeOfColdGfxTbl, kEoBBaseConeOfColdGfxTblProvider },
+
+ { kEoB1MainMenuStrings, kEoB1MainMenuStringsProvider },
+ { kEoB1BonusStrings, kEoB1BonusStringsProvider },
+
+ { kEoB1IntroFilesOpening, kEoB1IntroFilesOpeningProvider },
+ { kEoB1IntroFilesTower, kEoB1IntroFilesTowerProvider },
+ { kEoB1IntroFilesOrb, kEoB1IntroFilesOrbProvider },
+ { kEoB1IntroFilesWdEntry, kEoB1IntroFilesWdEntryProvider },
+ { kEoB1IntroFilesKing, kEoB1IntroFilesKingProvider },
+ { kEoB1IntroFilesHands, kEoB1IntroFilesHandsProvider },
+ { kEoB1IntroFilesWdExit, kEoB1IntroFilesWdExitProvider },
+ { kEoB1IntroFilesTunnel, kEoB1IntroFilesTunnelProvider },
+ { kEoB1IntroOpeningFrmDelay, kEoB1IntroOpeningFrmDelayProvider },
+ { kEoB1IntroWdEncodeX, kEoB1IntroWdEncodeXProvider },
+ { kEoB1IntroWdEncodeY, kEoB1IntroWdEncodeYProvider },
+ { kEoB1IntroWdEncodeWH, kEoB1IntroWdEncodeWHProvider },
+ { kEoB1IntroWdDsX, kEoB1IntroWdDsXProvider },
+ { kEoB1IntroWdDsY, kEoB1IntroWdDsYProvider },
+ { kEoB1IntroTvlX1, kEoB1IntroTvlX1Provider },
+ { kEoB1IntroTvlY1, kEoB1IntroTvlY1Provider },
+ { kEoB1IntroTvlX2, kEoB1IntroTvlX2Provider },
+ { kEoB1IntroTvlY2, kEoB1IntroTvlY2Provider },
+ { kEoB1IntroTvlW, kEoB1IntroTvlWProvider },
+ { kEoB1IntroTvlH, kEoB1IntroTvlHProvider },
+
+ { kEoB1DoorShapeDefs, kEoB1DoorShapeDefsProvider },
+ { kEoB1DoorSwitchShapeDefs, kEoB1DoorSwitchShapeDefsProvider },
+ { kEoB1DoorSwitchCoords, kEoB1DoorSwitchCoordsProvider },
+ { kEoB1MonsterProperties, kEoB1MonsterPropertiesProvider },
+
+ { kEoB1EnemyMageSpellList, kEoB1EnemyMageSpellListProvider },
+ { kEoB1EnemyMageSfx, kEoB1EnemyMageSfxProvider },
+ { kEoB1BeholderSpellList, kEoB1BeholderSpellListProvider },
+ { kEoB1BeholderSfx, kEoB1BeholderSfxProvider },
+ { kEoB1TurnUndeadString, kEoB1TurnUndeadStringProvider },
+
+ { kEoB1CgaMappingDefault, kEoB1CgaMappingDefaultProvider },
+ { kEoB1CgaMappingAlt, kEoB1CgaMappingAltProvider },
+ { kEoB1CgaMappingInv, kEoB1CgaMappingInvProvider },
+ { kEoB1CgaMappingItemsL, kEoB1CgaMappingItemsLProvider },
+ { kEoB1CgaMappingItemsS, kEoB1CgaMappingItemsSProvider },
+ { kEoB1CgaMappingThrown, kEoB1CgaMappingThrownProvider },
+ { kEoB1CgaMappingIcons, kEoB1CgaMappingIconsProvider },
+ { kEoB1CgaMappingDeco, kEoB1CgaMappingDecoProvider },
+ { kEoB1CgaLevelMappingIndex, kEoB1CgaLevelMappingIndexProvider },
+ { kEoB1CgaMappingLevel0, kEoB1CgaMappingLevel0Provider },
+ { kEoB1CgaMappingLevel1, kEoB1CgaMappingLevel1Provider },
+ { kEoB1CgaMappingLevel2, kEoB1CgaMappingLevel2Provider },
+ { kEoB1CgaMappingLevel3, kEoB1CgaMappingLevel3Provider },
+ { kEoB1CgaMappingLevel4, kEoB1CgaMappingLevel4Provider },
+
+ { kEoB1NpcShpData, kEoB1NpcShpDataProvider },
+ { kEoB1NpcSubShpIndex1, kEoB1NpcSubShpIndex1Provider },
+ { kEoB1NpcSubShpIndex2, kEoB1NpcSubShpIndex2Provider },
+ { kEoB1NpcSubShpY, kEoB1NpcSubShpYProvider },
+ { kEoB1Npc0Strings, kEoB1Npc0StringsProvider },
+ { kEoB1Npc11Strings, kEoB1Npc11StringsProvider },
+ { kEoB1Npc12Strings, kEoB1Npc12StringsProvider },
+ { kEoB1Npc21Strings, kEoB1Npc21StringsProvider },
+ { kEoB1Npc22Strings, kEoB1Npc22StringsProvider },
+ { kEoB1Npc31Strings, kEoB1Npc31StringsProvider },
+ { kEoB1Npc32Strings, kEoB1Npc32StringsProvider },
+ { kEoB1Npc4Strings, kEoB1Npc4StringsProvider },
+ { kEoB1Npc5Strings, kEoB1Npc5StringsProvider },
+ { kEoB1Npc6Strings, kEoB1Npc6StringsProvider },
+ { kEoB1Npc7Strings, kEoB1Npc7StringsProvider },
+
+ { kEoB2MainMenuStrings, kEoB2MainMenuStringsProvider },
+
+ { kEoB2TransferPortraitFrames, kEoB2TransferPortraitFramesProvider },
+ { kEoB2TransferConvertTable, kEoB2TransferConvertTableProvider },
+ { kEoB2TransferItemTable, kEoB2TransferItemTableProvider },
+ { kEoB2TransferExpTable, kEoB2TransferExpTableProvider },
+ { kEoB2TransferStrings1, kEoB2TransferStrings1Provider },
+ { kEoB2TransferStrings2, kEoB2TransferStrings2Provider },
+ { kEoB2TransferLabels, kEoB2TransferLabelsProvider },
+
+ { kEoB2IntroStrings, kEoB2IntroStringsProvider },
+ { kEoB2IntroCPSFiles, kEoB2IntroCPSFilesProvider },
+ { kEob2IntroAnimData00, kEob2IntroAnimData00Provider },
+ { kEob2IntroAnimData01, kEob2IntroAnimData01Provider },
+ { kEob2IntroAnimData02, kEob2IntroAnimData02Provider },
+ { kEob2IntroAnimData03, kEob2IntroAnimData03Provider },
+ { kEob2IntroAnimData04, kEob2IntroAnimData04Provider },
+ { kEob2IntroAnimData05, kEob2IntroAnimData05Provider },
+ { kEob2IntroAnimData06, kEob2IntroAnimData06Provider },
+ { kEob2IntroAnimData07, kEob2IntroAnimData07Provider },
+ { kEob2IntroAnimData08, kEob2IntroAnimData08Provider },
+ { kEob2IntroAnimData09, kEob2IntroAnimData09Provider },
+ { kEob2IntroAnimData10, kEob2IntroAnimData10Provider },
+ { kEob2IntroAnimData11, kEob2IntroAnimData11Provider },
+ { kEob2IntroAnimData12, kEob2IntroAnimData12Provider },
+ { kEob2IntroAnimData13, kEob2IntroAnimData13Provider },
+ { kEob2IntroAnimData14, kEob2IntroAnimData14Provider },
+ { kEob2IntroAnimData15, kEob2IntroAnimData15Provider },
+ { kEob2IntroAnimData16, kEob2IntroAnimData16Provider },
+ { kEob2IntroAnimData17, kEob2IntroAnimData17Provider },
+ { kEob2IntroAnimData18, kEob2IntroAnimData18Provider },
+ { kEob2IntroAnimData19, kEob2IntroAnimData19Provider },
+ { kEob2IntroAnimData20, kEob2IntroAnimData20Provider },
+ { kEob2IntroAnimData21, kEob2IntroAnimData21Provider },
+ { kEob2IntroAnimData22, kEob2IntroAnimData22Provider },
+ { kEob2IntroAnimData23, kEob2IntroAnimData23Provider },
+ { kEob2IntroAnimData24, kEob2IntroAnimData24Provider },
+ { kEob2IntroAnimData25, kEob2IntroAnimData25Provider },
+ { kEob2IntroAnimData26, kEob2IntroAnimData26Provider },
+ { kEob2IntroAnimData27, kEob2IntroAnimData27Provider },
+ { kEob2IntroAnimData28, kEob2IntroAnimData28Provider },
+ { kEob2IntroAnimData29, kEob2IntroAnimData29Provider },
+ { kEob2IntroAnimData30, kEob2IntroAnimData30Provider },
+ { kEob2IntroAnimData31, kEob2IntroAnimData31Provider },
+ { kEob2IntroAnimData32, kEob2IntroAnimData32Provider },
+ { kEob2IntroAnimData33, kEob2IntroAnimData33Provider },
+ { kEob2IntroAnimData34, kEob2IntroAnimData34Provider },
+ { kEob2IntroAnimData35, kEob2IntroAnimData35Provider },
+ { kEob2IntroAnimData36, kEob2IntroAnimData36Provider },
+ { kEob2IntroAnimData37, kEob2IntroAnimData37Provider },
+ { kEob2IntroAnimData38, kEob2IntroAnimData38Provider },
+ { kEob2IntroAnimData39, kEob2IntroAnimData39Provider },
+ { kEob2IntroAnimData40, kEob2IntroAnimData40Provider },
+ { kEob2IntroAnimData41, kEob2IntroAnimData41Provider },
+ { kEob2IntroAnimData42, kEob2IntroAnimData42Provider },
+ { kEob2IntroAnimData43, kEob2IntroAnimData43Provider },
+ { kEoB2IntroShapes00, kEoB2IntroShapes00Provider },
+ { kEoB2IntroShapes01, kEoB2IntroShapes01Provider },
+ { kEoB2IntroShapes04, kEoB2IntroShapes04Provider },
+ { kEoB2IntroShapes07, kEoB2IntroShapes07Provider },
+
+ { kEoB2FinaleStrings, kEoB2FinaleStringsProvider },
+ { kEoB2CreditsData, kEoB2CreditsDataProvider },
+ { kEoB2FinaleCPSFiles, kEoB2FinaleCPSFilesProvider },
+ { kEob2FinaleAnimData00, kEob2FinaleAnimData00Provider },
+ { kEob2FinaleAnimData01, kEob2FinaleAnimData01Provider },
+ { kEob2FinaleAnimData02, kEob2FinaleAnimData02Provider },
+ { kEob2FinaleAnimData03, kEob2FinaleAnimData03Provider },
+ { kEob2FinaleAnimData04, kEob2FinaleAnimData04Provider },
+ { kEob2FinaleAnimData05, kEob2FinaleAnimData05Provider },
+ { kEob2FinaleAnimData06, kEob2FinaleAnimData06Provider },
+ { kEob2FinaleAnimData07, kEob2FinaleAnimData07Provider },
+ { kEob2FinaleAnimData08, kEob2FinaleAnimData08Provider },
+ { kEob2FinaleAnimData09, kEob2FinaleAnimData09Provider },
+ { kEob2FinaleAnimData10, kEob2FinaleAnimData10Provider },
+ { kEob2FinaleAnimData11, kEob2FinaleAnimData11Provider },
+ { kEob2FinaleAnimData12, kEob2FinaleAnimData12Provider },
+ { kEob2FinaleAnimData13, kEob2FinaleAnimData13Provider },
+ { kEob2FinaleAnimData14, kEob2FinaleAnimData14Provider },
+ { kEob2FinaleAnimData15, kEob2FinaleAnimData15Provider },
+ { kEob2FinaleAnimData16, kEob2FinaleAnimData16Provider },
+ { kEob2FinaleAnimData17, kEob2FinaleAnimData17Provider },
+ { kEob2FinaleAnimData18, kEob2FinaleAnimData18Provider },
+ { kEob2FinaleAnimData19, kEob2FinaleAnimData19Provider },
+ { kEob2FinaleAnimData20, kEob2FinaleAnimData20Provider },
+ { kEoB2FinaleShapes00, kEoB2FinaleShapes00Provider },
+ { kEoB2FinaleShapes03, kEoB2FinaleShapes03Provider },
+ { kEoB2FinaleShapes07, kEoB2FinaleShapes07Provider },
+ { kEoB2FinaleShapes09, kEoB2FinaleShapes09Provider },
+ { kEoB2FinaleShapes10, kEoB2FinaleShapes10Provider },
+
+ { kEoB2NpcShapeData, kEoB2NpcShapeDataProvider },
+ { kEoBBaseClassModifierFlags, kEoBBaseClassModifierFlagsProvider },
+
+ { kEoBBaseMonsterStepTable01, kEoBBaseMonsterStepTable01Provider },
+ { kEoBBaseMonsterStepTable02, kEoBBaseMonsterStepTable02Provider },
+ { kEoBBaseMonsterStepTable1, kEoBBaseMonsterStepTable1Provider },
+ { kEoBBaseMonsterStepTable2, kEoBBaseMonsterStepTable2Provider },
+ { kEoBBaseMonsterStepTable3, kEoBBaseMonsterStepTable3Provider },
+ { kEoBBaseMonsterCloseAttPosTable1, kEoBBaseMonsterCloseAttPosTable1Provider },
+ { kEoBBaseMonsterCloseAttPosTable21, kEoBBaseMonsterCloseAttPosTable21Provider },
+ { kEoBBaseMonsterCloseAttPosTable22, kEoBBaseMonsterCloseAttPosTable22Provider },
+ { kEoBBaseMonsterCloseAttUnkTable, kEoBBaseMonsterCloseAttUnkTableProvider },
+ { kEoBBaseMonsterCloseAttChkTable1, kEoBBaseMonsterCloseAttChkTable1Provider },
+ { kEoBBaseMonsterCloseAttChkTable2, kEoBBaseMonsterCloseAttChkTable2Provider },
+ { kEoBBaseMonsterCloseAttDstTable1, kEoBBaseMonsterCloseAttDstTable1Provider },
+ { kEoBBaseMonsterCloseAttDstTable2, kEoBBaseMonsterCloseAttDstTable2Provider },
+
+ { kEoBBaseMonsterProximityTable, kEoBBaseMonsterProximityTableProvider },
+ { kEoBBaseFindBlockMonstersTable, kEoBBaseFindBlockMonstersTableProvider },
+ { kEoBBaseMonsterDirChangeTable, kEoBBaseMonsterDirChangeTableProvider },
+ { kEoBBaseMonsterDistAttStrings, kEoBBaseMonsterDistAttStringsProvider },
+ { kEoBBaseEncodeMonsterDefs, kEoBBaseEncodeMonsterDefsProvider },
+ { kEoBBaseNpcPresets, kEoBBaseNpcPresetsProvider },
+ { kEoB2Npc1Strings, kEoB2Npc1StringsProvider },
+ { kEoB2Npc2Strings, kEoB2Npc2StringsProvider },
+ { kEoB2MonsterDustStrings, kEoB2MonsterDustStringsProvider },
+ { kEoB2DreamSteps, kEoB2DreamStepsProvider },
+ { kEoB2KheldranStrings, kEoB2KheldranStringsProvider },
+ { kEoB2HornStrings, kEoB2HornStringsProvider },
+ { kEoB2HornSounds, kEoB2HornSoundsProvider },
+ { kEoB2WallOfForceDsX, kEoB2WallOfForceDsXProvider },
+ { kEoB2WallOfForceDsY, kEoB2WallOfForceDsYProvider },
+ { kEoB2WallOfForceNumW, kEoB2WallOfForceNumWProvider },
+ { kEoB2WallOfForceNumH, kEoB2WallOfForceNumHProvider },
+ { kEoB2WallOfForceShpId, kEoB2WallOfForceShpIdProvider },
+
+ { kLoLIngamePakFiles, kLoLIngamePakFilesProvider },
+ { kLoLCharacterDefs, kLoLCharacterDefsProvider },
+ { kLoLIngameSfxFiles, kLoLIngameSfxFilesProvider },
+ { kLoLIngameSfxIndex, kLoLIngameSfxIndexProvider },
+ { kLoLMusicTrackMap, kLoLMusicTrackMapProvider },
+ { kLoLIngameGMSfxIndex, kLoLIngameGMSfxIndexProvider },
+ { kLoLIngameMT32SfxIndex, kLoLIngameMT32SfxIndexProvider },
+ { kLoLIngamePcSpkSfxIndex, kLoLIngamePcSpkSfxIndexProvider },
+ { kLoLSpellProperties, kLoLSpellPropertiesProvider },
+ { kLoLGameShapeMap, kLoLGameShapeMapProvider },
+ { kLoLSceneItemOffs, kLoLSceneItemOffsProvider },
+ { kLoLCharInvIndex, kLoLCharInvIndexProvider },
+ { kLoLCharInvDefs, kLoLCharInvDefsProvider },
+ { kLoLCharDefsMan, kLoLCharDefsManProvider },
+ { kLoLCharDefsWoman, kLoLCharDefsWomanProvider },
+ { kLoLCharDefsKieran, kLoLCharDefsKieranProvider },
+ { kLoLCharDefsAkshel, kLoLCharDefsAkshelProvider },
+ { kLoLExpRequirements, kLoLExpRequirementsProvider },
+ { kLoLMonsterModifiers, kLoLMonsterModifiersProvider },
+ { kLoLMonsterShiftOffsets, kLoLMonsterShiftOffsetsProvider },
+ { kLoLMonsterDirFlags, kLoLMonsterDirFlagsProvider },
+ { kLoLMonsterScaleY, kLoLMonsterScaleYProvider },
+ { kLoLMonsterScaleX, kLoLMonsterScaleXProvider },
+ { kLoLMonsterScaleWH, kLoLMonsterScaleWHProvider },
+ { kLoLFlyingObjectShp, kLoLFlyingObjectShpProvider },
+ { kLoLInventoryDesc, kLoLInventoryDescProvider },
+ { kLoLLevelShpList, kLoLLevelShpListProvider },
+ { kLoLLevelDatList, kLoLLevelDatListProvider },
+ { kLoLCompassDefs, kLoLCompassDefsProvider },
+ { kLoLItemPrices, kLoLItemPricesProvider },
+ { kLoLStashSetup, kLoLStashSetupProvider },
+ { kLoLDscWalls, kLoLDscWallsProvider },
+ { kRpgCommonDscShapeIndex, kRpgCommonDscShapeIndexProvider },
+ { kLoLDscOvlMap, kLoLDscOvlMapProvider },
+ { kLoLDscScaleWidthData, kLoLDscScaleWidthDataProvider },
+ { kLoLDscScaleHeightData, kLoLDscScaleHeightDataProvider },
+ { kRpgCommonDscX, kRpgCommonDscXProvider },
+ { kLoLDscY, kLoLDscYProvider },
+ { kRpgCommonDscTileIndex, kRpgCommonDscTileIndexProvider },
+ { kRpgCommonDscUnk2, kRpgCommonDscUnk2Provider },
+ { kRpgCommonDscDoorShapeIndex, kRpgCommonDscDoorShapeIndexProvider },
+ { kRpgCommonDscDimData1, kRpgCommonDscDimData1Provider },
+ { kRpgCommonDscDimData2, kRpgCommonDscDimData2Provider },
+ { kRpgCommonDscBlockMap, kRpgCommonDscBlockMapProvider },
+ { kRpgCommonDscDimMap, kRpgCommonDscDimMapProvider },
+ { kLoLDscOvlIndex, kLoLDscOvlIndexProvider },
+ { kRpgCommonDscBlockIndex, kRpgCommonDscBlockIndexProvider },
+ { kRpgCommonDscDoorY2, kRpgCommonDscDoorY2Provider },
+ { kRpgCommonDscDoorFrameY1, kRpgCommonDscDoorFrameY1Provider },
+ { kRpgCommonDscDoorFrameY2, kRpgCommonDscDoorFrameY2Provider },
+ { kRpgCommonDscDoorFrameIndex1, kRpgCommonDscDoorFrameIndex1Provider },
+ { kRpgCommonDscDoorFrameIndex2, kRpgCommonDscDoorFrameIndex2Provider },
+ { kLoLDscDoorScale, kLoLDscDoorScaleProvider },
+ { kLoLDscDoor4, kLoLDscDoor4Provider },
+ { kLoLDscDoorX, kLoLDscDoorXProvider },
+ { kLoLDscDoorY, kLoLDscDoorYProvider },
+ { kLoLScrollXTop, kLoLScrollXTopProvider },
+ { kLoLScrollYTop, kLoLScrollYTopProvider },
+ { kLoLScrollXBottom, kLoLScrollXBottomProvider },
+ { kLoLScrollYBottom, kLoLScrollYBottomProvider },
+ { kLoLButtonDefs, kLoLButtonDefsProvider },
+ { kLoLButtonList1, kLoLButtonList1Provider },
+ { kLoLButtonList2, kLoLButtonList2Provider },
+ { kLoLButtonList3, kLoLButtonList3Provider },
+ { kLoLButtonList4, kLoLButtonList4Provider },
+ { kLoLButtonList5, kLoLButtonList5Provider },
+ { kLoLButtonList6, kLoLButtonList6Provider },
+ { kLoLButtonList7, kLoLButtonList7Provider },
+ { kLoLButtonList8, kLoLButtonList8Provider },
+ { kLoLLegendData, kLoLLegendDataProvider },
+ { kLoLMapCursorOvl, kLoLMapCursorOvlProvider },
+ { kLoLMapStringId, kLoLMapStringIdProvider },
+ { kLoLSpellbookAnim, kLoLSpellbookAnimProvider },
+ { kLoLSpellbookCoords, kLoLSpellbookCoordsProvider },
+ { kLoLHealShapeFrames, kLoLHealShapeFramesProvider },
+ { kLoLLightningDefs, kLoLLightningDefsProvider },
+ { kLoLFireballCoords, kLoLFireballCoordsProvider },
+ { kLoLCredits, kLoLCreditsProvider },
+ { kLoLHistory, kLoLHistoryProvider },
{ -1, NULL }
};
diff --git a/devtools/create_kyradat/util.cpp b/devtools/create_kyradat/util.cpp
index 2420f44168..5ce8237b85 100644
--- a/devtools/create_kyradat/util.cpp
+++ b/devtools/create_kyradat/util.cpp
@@ -54,6 +54,19 @@ void warning(const char *s, ...) {
fprintf(stderr, "WARNING: %s!\n", buf);
}
+int scumm_stricmp(const char *s1, const char *s2) {
+ byte l1, l2;
+ do {
+ // Don't use ++ inside tolower, in case the macro uses its
+ // arguments more than once.
+ l1 = (byte)*s1++;
+ l1 = tolower(l1);
+ l2 = (byte)*s2++;
+ l2 = tolower(l2);
+ } while (l1 == l2 && l1 != 0);
+ return l1 - l2;
+}
+
void debug(int level, const char *s, ...) {
char buf[1024];
va_list va;
diff --git a/devtools/create_kyradat/util.h b/devtools/create_kyradat/util.h
index 0d8e15cc37..a2783cca71 100644
--- a/devtools/create_kyradat/util.h
+++ b/devtools/create_kyradat/util.h
@@ -50,6 +50,7 @@ uint32 fileSize(FILE *fp);
void NORETURN_PRE error(const char *s, ...) NORETURN_POST;
void warning(const char *s, ...);
void debug(int level, const char *s, ...);
+int scumm_stricmp(const char *s1, const char *s2);
using namespace Common;
diff --git a/devtools/create_lure/create_lure_dat.h b/devtools/create_lure/create_lure_dat.h
index 9259a8dcc8..ad49878d43 100644
--- a/devtools/create_lure/create_lure_dat.h
+++ b/devtools/create_lure/create_lure_dat.h
@@ -24,6 +24,7 @@
#define CREATE_LURE_DAT_H
#include "common/endian.h"
+#include "common/language.h"
#include "common/util.h"
#define VERSION_MAJOR 1
diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp
index 527136c7d4..15830bd467 100644
--- a/devtools/create_project/create_project.cpp
+++ b/devtools/create_project/create_project.cpp
@@ -539,6 +539,8 @@ int main(int argc, char *argv[]) {
projectWarnings["lure"].push_back("4355");
projectWarnings["kyra"].push_back("4355");
+ projectWarnings["kyra"].push_back("4510");
+ projectWarnings["kyra"].push_back("4610");
projectWarnings["m4"].push_back("4355");
@@ -853,6 +855,7 @@ const Feature s_features[] = {
{ "taskbar", "USE_TASKBAR", "", true, "Taskbar integration support" },
{ "translation", "USE_TRANSLATION", "", true, "Translation support" },
{ "vkeybd", "ENABLE_VKEYBD", "", false, "Virtual keyboard support"},
+ { "keymapper","ENABLE_KEYMAPPER", "", false, "Keymapper support"},
{ "langdetect", "USE_DETECTLANG", "", true, "System language detection support" } // This feature actually depends on "translation", there
// is just no current way of properly detecting this...
};
@@ -1342,6 +1345,8 @@ void ProjectProvider::createModuleList(const std::string &moduleDir, const Strin
std::stack<bool> shouldInclude;
shouldInclude.push(true);
+ StringList filesInVariableList;
+
bool hadModule = false;
std::string line;
for (;;) {
@@ -1395,6 +1400,30 @@ void ProjectProvider::createModuleList(const std::string &moduleDir, const Strin
std::getline(moduleMk, line);
tokens = tokenize(line);
i = tokens.begin();
+ } else if (*i == "$(KYRARPG_COMMON_OBJ)") {
+ // HACK to fix EOB/LOL compilation in the kyra engine:
+ // replace the variable name with the stored files.
+ // This assumes that the file list has already been defined.
+ if (filesInVariableList.size() == 0)
+ error("$(KYRARPG_COMMON_OBJ) found, but the variable hasn't been set before it");
+ // Construct file list and replace the variable
+ for (StringList::iterator j = filesInVariableList.begin(); j != filesInVariableList.end(); ++j) {
+ const std::string filename = *j;
+
+ if (shouldInclude.top()) {
+ // In case we should include a file, we need to make
+ // sure it is not in the exclude list already. If it
+ // is we just drop it from the exclude list.
+ excludeList.remove(filename);
+
+ includeList.push_back(filename);
+ } else if (std::find(includeList.begin(), includeList.end(), filename) == includeList.end()) {
+ // We only add the file to the exclude list in case it
+ // has not yet been added to the include list.
+ excludeList.push_back(filename);
+ }
+ }
+ ++i;
} else {
const std::string filename = moduleDir + "/" + unifyPath(*i);
@@ -1413,6 +1442,29 @@ void ProjectProvider::createModuleList(const std::string &moduleDir, const Strin
++i;
}
}
+ } else if (*i == "KYRARPG_COMMON_OBJ") {
+ // HACK to fix EOB/LOL compilation in the kyra engine: add the
+ // files defined in the KYRARPG_COMMON_OBJ variable in a list
+ if (tokens.size() < 3)
+ error("Malformed KYRARPG_COMMON_OBJ definition in " + moduleMkFile);
+ ++i;
+
+ if (*i != ":=" && *i != "+=" && *i != "=")
+ error("Malformed KYRARPG_COMMON_OBJ definition in " + moduleMkFile);
+
+ ++i;
+
+ while (i != tokens.end()) {
+ if (*i == "\\") {
+ std::getline(moduleMk, line);
+ tokens = tokenize(line);
+ i = tokens.begin();
+ } else {
+ const std::string filename = moduleDir + "/" + unifyPath(*i);
+ filesInVariableList.push_back(filename);
+ ++i;
+ }
+ }
} else if (*i == "ifdef") {
if (tokens.size() < 2)
error("Malformed ifdef in " + moduleMkFile);
diff --git a/devtools/create_project/xcode.cpp b/devtools/create_project/xcode.cpp
index eb51ab3da1..eb51ab3da1 100755..100644
--- a/devtools/create_project/xcode.cpp
+++ b/devtools/create_project/xcode.cpp
diff --git a/devtools/create_translations/cp_parser.cpp b/devtools/create_translations/cp_parser.cpp
new file mode 100644
index 0000000000..f5e4c9d6bb
--- /dev/null
+++ b/devtools/create_translations/cp_parser.cpp
@@ -0,0 +1,106 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * This is a utility for create the translations.dat file from all the po files.
+ * The generated files is used by ScummVM to propose translation of its GUI.
+ */
+
+#include "cp_parser.h"
+
+#include <fstream>
+#include <stdio.h>
+
+Codepage::Codepage(const std::string &name, const uint32 *mapping) : _name(name) {
+ if (!mapping) {
+ // Default to a ISO-8859-1 mapping
+ for (unsigned int i = 0; i < 256; ++i)
+ _mapping[i] = i;
+ } else {
+ for (unsigned int i = 0; i < 256; ++i)
+ _mapping[i] = *mapping++;
+ }
+}
+
+Codepage *parseCodepageMapping(const std::string &filename) {
+ size_t start = filename.find_last_of("/\\");
+ if (start == std::string::npos)
+ start = 0;
+ else
+ ++start;
+ // Strip off the filename extension
+ const size_t pos = filename.find_last_of('.');
+ const std::string charset(filename.substr(start, pos != std::string::npos ? (pos - start) : std::string::npos));
+
+ std::ifstream in(filename.c_str());
+ if (!in) {
+ fprintf(stderr, "ERROR: Could not open file \"%s\"!", filename.c_str());
+ return 0;
+ }
+
+ uint32 mapping[256];
+
+ int processedMappings = 0;
+ std::string line;
+ while (processedMappings < 256) {
+ std::getline(in, line);
+ if (in.eof())
+ break;
+ if (in.fail()) {
+ fprintf(stderr, "ERROR: Reading from file \"%s\" failed!", filename.c_str());
+ return 0;
+ }
+
+ // In case the line starts with a "#" it is a comment. We also ignore
+ // empty lines.
+ if (line.empty() || line[0] == '#')
+ continue;
+
+ // Read the unicode number, we thereby ignore everything else on the line
+ int unicode, required;
+ const int parsed = sscanf(line.c_str(), "%d %d", &unicode, &required);
+ if (parsed < 1 || parsed > 2) {
+ fprintf(stderr, "ERROR: Line \"%s\" is malformed!", filename.c_str());
+ return 0;
+ }
+ // In case no required integer was given, we assume the character is
+ // required
+ if (parsed == 1)
+ required = 1;
+
+ // -1 means default mapping
+ if (unicode == -1)
+ unicode = processedMappings;
+
+ uint32 unicodeValue = unicode;
+ if (required)
+ unicodeValue |= 0x80000000;
+
+ mapping[processedMappings++] = (uint32)unicodeValue;
+ }
+
+ // Check whether all character encodings are mapped, if not error out
+ if (processedMappings != 256) {
+ fprintf(stderr, "ERROR: File \"%s\" does not contain mappings for exactly 256 characters!", filename.c_str());
+ return 0;
+ }
+
+ // Return the codepage
+ return new Codepage(charset, mapping);
+}
diff --git a/devtools/create_translations/cp_parser.h b/devtools/create_translations/cp_parser.h
new file mode 100644
index 0000000000..b748430ca0
--- /dev/null
+++ b/devtools/create_translations/cp_parser.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * This is a utility for create the translations.dat file from all the po files.
+ * The generated files is used by ScummVM to propose translation of its GUI.
+ */
+
+#ifndef CP_PARSER_H
+#define CP_PARSER_H
+
+#include "create_translations.h"
+
+#include <string>
+
+/**
+ * Codepage description.
+ *
+ * This includes a name, and the codepage -> unicode mapping.
+ */
+class Codepage {
+public:
+ Codepage(const std::string &name, const uint32 *mapping);
+
+ const std::string &getName() const { return _name; }
+
+ uint32 getMapping(unsigned char src) const { return _mapping[src]; }
+private:
+ std::string _name;
+ uint32 _mapping[256];
+};
+
+/**
+ * Parse the codepage file and create a codepage.
+ */
+Codepage *parseCodepageMapping(const std::string &filename);
+
+#endif
diff --git a/devtools/create_translations/create_translations.cpp b/devtools/create_translations/create_translations.cpp
index 9fcf3b4a31..a153632c47 100644
--- a/devtools/create_translations/create_translations.cpp
+++ b/devtools/create_translations/create_translations.cpp
@@ -25,6 +25,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <ctype.h>
+#include <vector>
// HACK to allow building with the SDL backend on MinGW
// see bug #1800764 "TOOLS: MinGW tools building broken"
@@ -34,8 +36,23 @@
#include "create_translations.h"
#include "po_parser.h"
+#include "cp_parser.h"
-#define TRANSLATIONS_DAT_VER 2 // 1 byte
+#define TRANSLATIONS_DAT_VER 3 // 1 byte
+
+// Portable implementation of stricmp / strcasecmp / strcmpi.
+int scumm_stricmp(const char *s1, const char *s2) {
+ uint8 l1, l2;
+ do {
+ // Don't use ++ inside tolower, in case the macro uses its
+ // arguments more than once.
+ l1 = (uint8)*s1++;
+ l1 = tolower(l1);
+ l2 = (uint8)*s2++;
+ l2 = tolower(l2);
+ } while (l1 == l2 && l1 != 0);
+ return l1 - l2;
+}
// Padding buffer (filled with 0) used if we want to aligned writes
// static uint8 padBuf[DATAALIGNMENT];
@@ -52,6 +69,13 @@ void writeUint16BE(FILE *fp, uint16 value) {
writeByte(fp, (uint8)(value & 0xFF));
}
+void writeUint32BE(FILE *fp, uint32 value) {
+ writeByte(fp, (uint8)(value >> 24));
+ writeByte(fp, (uint8)(value >> 16));
+ writeByte(fp, (uint8)(value >> 8));
+ writeByte(fp, (uint8)(value & 0xFF));
+}
+
int stringSize(const char *string) {
// Each string is preceded by its size coded on 2 bytes
if (string == NULL)
@@ -82,14 +106,51 @@ void writeString(FILE *fp, const char *string) {
// Main
int main(int argc, char *argv[]) {
- // Build the translation list
+ std::vector<Codepage *> codepages;
+ // Add default codepages, we won't store them in the output later on
+ codepages.push_back(new Codepage("ascii", 0));
+ codepages.push_back(new Codepage("iso-8859-1", 0));
+
+ // Build the translation and codepage list
PoMessageList messageIds;
- PoMessageEntryList **translations = new PoMessageEntryList*[argc - 1];
+ std::vector<PoMessageEntryList *> translations;
int numLangs = 0;
for (int i = 1; i < argc; ++i) {
- translations[numLangs] = parsePoFile(argv[i], messageIds);
- if (translations[numLangs] != NULL)
- ++numLangs;
+ // Check file extension
+ int len = strlen(argv[i]);
+ if (scumm_stricmp(argv[i] + len - 2, "po") == 0) {
+ PoMessageEntryList *po = parsePoFile(argv[i], messageIds);
+ if (po != NULL) {
+ translations.push_back(po);
+ ++numLangs;
+ }
+ } else if (scumm_stricmp(argv[i] + len - 2, "cp") == 0) {
+ // Else try to parse an codepage
+ Codepage *co = parseCodepageMapping(argv[i]);
+ if (co)
+ codepages.push_back(co);
+ }
+ }
+
+ // Parse all charset mappings
+ for (int i = 0; i < numLangs; ++i) {
+ bool found = false;
+ for (size_t j = 0; j < codepages.size(); ++j) {
+ if (scumm_stricmp(codepages[j]->getName().c_str(), translations[i]->charset()) == 0) {
+ found = true;
+ break;
+ }
+ }
+
+ // In case the codepage was not found error out
+ if (!found) {
+ fprintf(stderr, "ERROR: No codepage mapping for codepage \"%s\" present!\n", translations[i]->charset());
+ for (size_t j = 0; j < translations.size(); ++j)
+ delete translations[j];
+ for (size_t j = 0; j < codepages.size(); ++j)
+ delete codepages[j];
+ return -1;
+ }
}
FILE *outFile;
@@ -110,6 +171,8 @@ int main(int argc, char *argv[]) {
// Write number of translations
writeUint16BE(outFile, numLangs);
+ // Write number of codepages, we don't save ascii and iso-8859-1
+ writeUint16BE(outFile, codepages.size() - 2);
// Write the length of each data block here.
// We could write it at the start of each block but that would mean that
@@ -119,9 +182,14 @@ int main(int argc, char *argv[]) {
// file and can then skip to the block we want.
// Blocks are:
// 1. List of languages with the language name
- // 2. Original messages (i.e. english)
- // 3. First translation
- // 4. Second translation
+ // 2. List of codepages
+ // 3. Original messages (i.e. english)
+ // 4. First translation
+ // 5. Second translation
+ // ...
+ // n. First codepage (These don't have any data size, since they are all
+ // 256 * 4 bytes long)
+ // n+1. Second codepage
// ...
// Write length for translation description
@@ -132,6 +200,12 @@ int main(int argc, char *argv[]) {
}
writeUint16BE(outFile, len);
+ // Write length for the codepage names
+ len = 0;
+ for (size_t j = 2; j < codepages.size(); ++j)
+ len += stringSize(codepages[j]->getName().c_str());
+ writeUint16BE(outFile, len);
+
// Write size for the original language (english) block
// It starts with the number of strings coded on 2 bytes followed by each
// string (two bytes for the number of chars and the string itself).
@@ -159,6 +233,11 @@ int main(int argc, char *argv[]) {
writeString(outFile, translations[lang]->languageName());
}
+ // Write list of codepages
+ for (size_t j = 2; j < codepages.size(); ++j) {
+ writeString(outFile, codepages[j]->getName().c_str());
+ }
+
// Write original messages
writeUint16BE(outFile, messageIds.size());
for (i = 0; i < messageIds.size(); ++i) {
@@ -176,12 +255,18 @@ int main(int argc, char *argv[]) {
}
}
+ // Write codepages
+ for (size_t j = 2; j < codepages.size(); ++j) {
+ const Codepage *cp = codepages[j];
+ for (i = 0; i < 256; ++i)
+ writeUint32BE(outFile, cp->getMapping(i));
+ }
+
fclose(outFile);
// Clean the memory
for (i = 0; i < numLangs; ++i)
delete translations[i];
- delete[] translations;
return 0;
}
diff --git a/devtools/create_translations/create_translations.h b/devtools/create_translations/create_translations.h
index 0ece8102f0..9ccbd39b2b 100644
--- a/devtools/create_translations/create_translations.h
+++ b/devtools/create_translations/create_translations.h
@@ -25,6 +25,7 @@
typedef unsigned char uint8;
typedef unsigned short uint16;
+typedef unsigned int uint32;
typedef signed short int16;
#endif /* CREATE_TRANSLATIONS_H */
diff --git a/devtools/create_translations/module.mk b/devtools/create_translations/module.mk
index 430cf91976..9a2b302aef 100644
--- a/devtools/create_translations/module.mk
+++ b/devtools/create_translations/module.mk
@@ -1,6 +1,7 @@
MODULE := devtools/create_translations
MODULE_OBJS := \
+ cp_parser.o \
po_parser.o \
create_translations.o
diff --git a/devtools/create_translations/po_parser.cpp b/devtools/create_translations/po_parser.cpp
index bc49da40d4..e8d7d7a644 100644
--- a/devtools/create_translations/po_parser.cpp
+++ b/devtools/create_translations/po_parser.cpp
@@ -337,47 +337,34 @@ PoMessageEntryList *parsePoFile(const char *file, PoMessageList& messages) {
return list;
}
-char *stripLine(char *line) {
+char *stripLine(char *const line) {
// This function modifies line in place and return it.
// Keep only the text between the first two unprotected quotes.
// It also look for literal special characters (e.g. preceded by '\n', '\\', '\"', '\'', '\t')
// and replace them by the special character so that strcmp() can match them at run time.
// Look for the first quote
- int start = 0;
- int len = strlen(line);
- while (start < len && line[start++] != '"') {}
+ char const *src = line;
+ while (*src != '\0' && *src++ != '"') {}
// shift characters until we reach the end of the string or an unprotected quote
- int i = 0, j = 0;
- while (start + i + j < len && line[start + i + j] != '"') {
- if (line[start + i + j] == '\\') {
- switch (line[start + i + j + 1]) {
- case 'n':
- line[i++] = '\n';
- break;
- case 't':
- line[i++] = '\t';
- break;
- case '\"':
- line[i++] = '\"';
- break;
- case '\'':
- line[i++] = '\'';
- break;
- case '\\':
- line[i++] = '\\';
- break;
+ char *dst = line;
+ while (*src != '\0' && *src != '"') {
+ char c = *src++;
+ if (c == '\\') {
+ switch (c = *src++) {
+ case 'n': c = '\n'; break;
+ case 't': c = '\t'; break;
+ case '\"': c = '\"'; break;
+ case '\'': c = '\''; break;
+ case '\\': c = '\\'; break;
default:
// Just skip
- fprintf(stdout, "Unsupported special character \"%c%c\" in string. Please contact ScummVM developers.\n", line[start + i + j], line[start + i + j + 1]);
- ++j;
+ fprintf(stderr, "Unsupported special character \"\\%c\" in string. Please contact ScummVM developers.\n", c);
+ continue;
}
- ++j;
- } else {
- line[i] = line[start + i + j];
- ++i;
}
+ *dst++ = c;
}
- line[i] = '\0';
+ *dst = '\0';
return line;
}
diff --git a/devtools/credits.pl b/devtools/credits.pl
index 2833236e75..b3a506125f 100755
--- a/devtools/credits.pl
+++ b/devtools/credits.pl
@@ -484,7 +484,7 @@ begin_credits("Credits");
add_person("Max Horn", "Fingolfin", "(retired)");
add_person("Travis Howell", "Kirben", "");
add_person("Pawe&#322; Ko&#322;odziejski", "aquadran", "Codecs, iMUSE, Smush, etc.");
- add_person("Gregory Montoir", "cyx", "");
+ add_person("Gregory Montoir", "cyx", "(retired)");
add_person("Eugene Sandulenko", "sev", "FT INSANE, MM NES, MM C64, game detection, Herc/CGA");
add_person("Ludvig Strigeus", "ludde", "(retired)");
end_section();
@@ -492,7 +492,7 @@ begin_credits("Credits");
begin_section("HE");
add_person("Jonathan Gray", "khalek", "(retired)");
add_person("Travis Howell", "Kirben", "");
- add_person("Gregory Montoir", "cyx", "");
+ add_person("Gregory Montoir", "cyx", "(retired)");
add_person("Eugene Sandulenko", "sev", "");
end_section();
@@ -523,7 +523,7 @@ begin_credits("Credits");
begin_section("Cine");
add_person("Vincent Hamm", "yaz0r", "(retired)");
add_person("Pawe&#322; Ko&#322;odziejski", "aquadran", "");
- add_person("Gregory Montoir", "cyx", "");
+ add_person("Gregory Montoir", "cyx", "(retired)");
add_person("Kari Salminen", "Buddha^", "");
add_person("Eugene Sandulenko", "sev", "");
end_section();
@@ -576,7 +576,7 @@ begin_credits("Credits");
add_person("Torbj&ouml;rn Andersson", "eriktorbjorn", "VQA Player");
add_person("Oystein Eftevaag", "vinterstum", "");
add_person("Florian Kagerer", "athrxx", "");
- add_person("Gregory Montoir", "cyx", "");
+ add_person("Gregory Montoir", "cyx", "(retired)");
add_person("Johannes Schickel", "LordHoto", "");
end_section();
@@ -610,12 +610,13 @@ begin_credits("Credits");
begin_section("Queen");
add_person("David Eriksson", "twogood", "(retired)");
- add_person("Gregory Montoir", "cyx", "");
+ add_person("Gregory Montoir", "cyx", "(retired)");
add_person("Joost Peters", "joostp", "");
end_section();
begin_section("SAGA");
add_person("Torbj&ouml;rn Andersson", "eriktorbjorn", "");
+ add_person("Daniel Balsom", "DanielFox", "Original engine reimplementation author (retired)");
add_person("Filippos Karapetis", "[md5]", "");
add_person("Andrew Kurushin", "ajax16384", "");
add_person("Eugene Sandulenko", "sev", "");
@@ -679,7 +680,7 @@ begin_credits("Credits");
end_section();
begin_section("Touch&eacute;");
- add_person("Gregory Montoir", "cyx", "");
+ add_person("Gregory Montoir", "cyx", "(retired)");
end_section();
begin_section("TsAGE");
@@ -688,7 +689,7 @@ begin_credits("Credits");
end_section();
begin_section("Tucker");
- add_person("Gregory Montoir", "cyx", "");
+ add_person("Gregory Montoir", "cyx", "(retired)");
end_section();
end_section();
@@ -914,6 +915,9 @@ begin_credits("Credits");
begin_persons();
add_person("Thierry Crozat", "criezy", "Translation Lead");
end_persons();
+ begin_section("Basque");
+ add_person("Mikel Iturbe Urretxa", "", "");
+ end_section();
begin_section("Catalan");
add_person("Jordi Vilalta Prat", "jvprat", "");
end_section();
@@ -1000,6 +1004,7 @@ begin_credits("Credits");
add_person("Edward Rudd", "urkle", "Fixes for playing MP3 versions of MI1/Loom audio");
add_person("Daniel Schepler", "dschepler", "Final MI1 CD music support, initial Ogg Vorbis support");
add_person("Andr&eacute; Souza", "luke_br", "SDL-based OpenGL renderer");
+ add_person("Tom Frost", "TomFrost", "WebOS port contributions");
end_persons();
end_section();
@@ -1058,6 +1063,7 @@ begin_credits("Credits");
begin_section("Special thanks to");
begin_persons();
+ add_person("Daniel Balsom", "DanielFox", "For the original Reinherit (SAGA) code");
add_person("Sander Buskens", "", "For his work on the initial reversing of Monkey2");
add_person("", "Canadacow", "For the original MT-32 emulator");
add_person("Kevin Carnes", "", "For Scumm16, the basis of ScummVM's older gfx codecs");
diff --git a/devtools/module.mk b/devtools/module.mk
index 1ff5ba6da9..95eca50d18 100644
--- a/devtools/module.mk
+++ b/devtools/module.mk
@@ -32,9 +32,9 @@ clean-devtools:
# Build rules for the devtools
#
-devtools/convbdf$(EXEEXT): $(srcdir)/devtools/convbdf.c
+devtools/convbdf$(EXEEXT): $(srcdir)/devtools/convbdf.cpp
$(QUIET)$(MKDIR) devtools/$(DEPDIR)
- $(QUIET_LINK)$(LD) $(CFLAGS) -Wall -o $@ $<
+ $(QUIET_LINK)$(LD) $(CXXFLAGS) -Wall -o $@ $<
devtools/md5table$(EXEEXT): $(srcdir)/devtools/md5table.c
$(QUIET)$(MKDIR) devtools/$(DEPDIR)
diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt
index 1682879385..8caf47722a 100644
--- a/devtools/scumm-md5.txt
+++ b/devtools/scumm-md5.txt
@@ -148,9 +148,8 @@ indy3 Indiana Jones and the Last Crusade
loom Loom
4dc780f1bc587a193ce8a97652791438 -1 en Amiga EGA EGA - Antti Leimi, Andrea Petrucci
- 39cb9dec16fa16f38d79acd80effb059 -1 fr Amiga EGA EGA same as IT?!? Gerald Vincent
+ 39cb9dec16fa16f38d79acd80effb059 -1 All Amiga EGA EGA IT and FR Gerald Vincent (IT), Andrea Petrucci (FR)
2fe369ad70f52a8cf7ad6077ee64f81a -1 de Amiga EGA EGA - Norbert Lange
- 39cb9dec16fa16f38d79acd80effb059 -1 it Amiga EGA EGA same as FR?!? Andrea Petrucci
48b9f04b348bc5013327753f0d12a144 -1 es Amiga EGA EGA - VooD
a0a7dea72003933b8b3f8b99b9f7ddeb -1 en Atari No AdLib EGA -
0e9b01430e31d9fcd94071d433bbc6bf -1 fr Atari No AdLib EGA -
@@ -235,11 +234,15 @@ monkey The Secret of Monkey Island
pass Passport to Adventure
e6cd81b25ab1453a8a6d3482118c391e 7857 en DOS - - v1.0 9/14/90 Fingolfin
-zak Misc FM-TOWNS demos
+indyloom Indiana Jones and the Last Crusade & Loom non-interactive demo
2d388339d6050d8ccaa757b64633954e 7520 en FM-TOWNS FM-TOWNS Demo indy/loom (non-interactive) khalek
- 77f5c9cc0986eb729c1a6b4c8823bbae 7520 en FM-TOWNS FM-TOWNS Demo zak/loom (non-interactive) khalek, Fingolfin
+
+indyzak Indiana Jones and the Last Crusade & Zak McKracken non-interactive demo
3938ee1aa4433fca9d9308c9891172b1 7520 en FM-TOWNS FM-TOWNS Demo indy/zak (non-interactive) khalek
+zakloom Zak McKracken & Loom non-interactive demo
+ 77f5c9cc0986eb729c1a6b4c8823bbae 7520 en FM-TOWNS FM-TOWNS Demo zak/loom (non-interactive) khalek, Fingolfin
+
monkey2 Monkey Island 2: LeChuck's Revenge
132bff65e6367c09cc69318ce1b59333 11155 en Amiga - - v1.0 4/8/92 Fingolfin
c30ef068add4277104243c31ce46c12b -1 fr Amiga - - - Andreas Bylund
@@ -513,7 +516,7 @@ freddi2 Freddi Fish 2: The Case of the Haunted Schoolhouse
8ee63cafb1fe9d62aa0d5a23117e70e7 -1 us All HE 100 Updated - Kirben
e41de1c2a15abbcdbf9977e2d7e8a340 -1 ru Windows HE 100 Updated - sev
- c20848f53c2d48bfacdc840993843765 -1 nl Windows HE 80 Demo - DarthBo
+ c20848f53c2d48bfacdc840993843765 -1 nl All HE 80 Demo - DarthBo
fc8d197a22146e74766e9cb0cfcaf1da 27298 en All HE 80 Demo - khalek, sev
d37c55388294b66e53e7ced3af88fa68 -1 en All HE 100 Updated Demo - khalek
@@ -526,10 +529,11 @@ freddi3 Freddi Fish 3: The Case of the Stolen Conch Shell
78c07ca088526d8d4446a4c2cb501203 -1 fr All HE 99 - - alamaz, gist974
83cedbe26aa8b58988e984e3d34cac8e -1 de All HE 99 - - Joachim Eberhard
75bff95816b84672b877d22a911ab811 -1 ru Windows HE 99 Updated - sev
+ 0ddf1174d0d097956ba10dd452ea65e6 -1 he Windows HE 99 - - Matan Bareket
cb1559e8405d17a5a278a6b5ad9338d1 22718 en All - Demo - khalek, sev
bbadf7309c4a2c2763e4bbba3c3be634 -1 fr All - Demo - Kirben
- 754feb59d3bf86b8a00840df74fd7b26 -1 nl Windows - Demo - adutchguy
+ 754feb59d3bf86b8a00840df74fd7b26 -1 nl All - Demo - adutchguy
ed2b074bc3166087a747acb2a3c6abb0 -1 de All HE 98.5 Demo - Joachim Eberhard
d73c851b942af44deb9b6d5f416a0972 -1 he Windows HE 99 Demo - Ori Avtalion
@@ -550,7 +554,7 @@ freddi4 Freddi Fish 4: The Case of the Hogfish Rustlers of Briny Gulch
ebd324dcf06a4c49e1ba5c231eee1060 -1 us All HE 99 Demo - sev
688328c5bdc4c8ec4145688dfa077bf2 -1 de All HE 99 Demo - Joachim Eberhard
03d3b18ee3fd68114e2a687c871e38d5 -1 us Windows HE 99 Mini Game - eriktorbjorn
- 16effd200aa6b8abe9c569c3e578814d -1 nl Windows HE 99 Demo - joostp
+ 16effd200aa6b8abe9c569c3e578814d -1 nl All HE 99 Demo - joostp
499c958affc394f2a3868f1eb568c3ee -1 nl Windows HE 99 Demo - adutchguy
5fdb2ac2483908b065c6e77988338a54 -1 nl Windows HE 99 Demo - Ben
e03ed1474ec14de78359970e0457a820 -1 gb Windows HE 99 Demo - eriktorbjorn
@@ -581,6 +585,7 @@ water Freddi Fish and Luther's Water Worries
FreddisFunShop Freddi Fish's One-Stop Fun Shop
16542a7342a918bfe4ba512007d36c47 -1 us All HE 99L - - Kirben
+ 4d3fbc888de4e6565013f61dc83da6b6 36245 nl All HE 99 - - Ben Castricum
catalog Humongous Interactive Catalog
11e6e244078ff09b0f3832e35420e0a7 -1 en Windows - Demo - khalek, sev
@@ -632,19 +637,20 @@ pajama Pajama Sam 1: No Need to Hide When It's Dark Outside
f237bf8a5ef9af78b2a6a4f3901da341 18354 en All - Demo - khalek, sev
7f945525abcd48015adf1632637a44a1 -1 fr All - Demo - Kirben
- 0305e850382b812fec6e5998ef88a966 -1 nl Windows - Demo - adutchguy
+ 0305e850382b812fec6e5998ef88a966 -1 nl All - Demo - adutchguy
87df3e0074624040407764b7c5e710b9 18354 nl Windows - Demo - George Kormendi
d7ab7cd6105546016e6a0d46fb36b964 -1 en All HE 100 Demo - khalek
pajama2 Pajama Sam 2: Thunder and Lightning Aren't so Frightening
d4e79c3d8645b8266cd78c325bc35154 60557 us All - - - Kirben
6a60d395b78b205c93a956100b1bf5ae -1 de All HE 98.5 - - EdDammer
- 513f91a9dbe8d5490b39e56a3ac5bbdf -1 nl Mac HE 98.5 - - daniel9
+ 513f91a9dbe8d5490b39e56a3ac5bbdf -1 nl All HE 98.5 - - daniel9
55f4e9402bec2bded383843123f37c5c -1 de Windows HE 98.5 - - WindlePoons
e5563c8358443c4352fcddf7402a5e0a -1 fr Windows HE 98.5 - - gist974
c6907d44f1166941d982864cd42cdc89 -1 de All HE 99 - - nachbarnebenan
f8be685007a8b425ba2a455da732f59f -1 fr Mac HE 99 - - alamaz
32709cbeeb3044b34129950860a83f14 -1 ru Windows HE 99 - - sev
+ 1af4eb581a33d808707d66d50e084dca -1 he Windows HE 99 - - Matan Bareket
36a6750e03fb505fc19fc2bf3e4dbe91 58749 en All - Demo - sev
30ba1e825d4ad2b448143ae8df18482a -1 nl All HE 98.5 Demo - Kirben
@@ -729,6 +735,7 @@ puttcircus Putt-Putt Joins the Circus
db74136c20557eca6ed3411bff39f7a1 -1 gb Windows - - - Reckless
d0ad929def3e9cfe39dea55bd12098d4 -1 fr Windows - - - gist974
febf4a983ea5faea1c9dd6c710ebb09c -1 de Windows - - - andy482
+ c8253da0f4626d2236b5291b99e33408 -1 he Windows HE 99 - - Matan Bareket
a7cacad9c40c4dc9e1812abf6c8af9d5 -1 en All - Demo - Kirben, sev
1387d16aa620dc1c2d1fd87f8a9e7a09 -1 fr Windows - Demo - Mevi
@@ -784,7 +791,7 @@ PuttTime Putt-Putt Travels Through Time
4e5867848ee61bc30d157e2c94eee9b4 18394 us All HE 90 Demo - khalek, sev
59d5cfcc5e672a6e07baae01328b918b -1 fr All HE 90 Demo - Kirben
fbb697d89d2beca87360a145f467bdae -1 de All HE 90 Demo - Joachim Eberhard
- 6b19d0e25cbf720d05822379b8b90ed9 -1 nl Windows HE 90 Demo - adutchguy
+ 6b19d0e25cbf720d05822379b8b90ed9 -1 nl All HE 90 Demo - adutchguy
0a6d7b81b850ed4a77811c60c9b5c555 -1 us Windows HE 99 Mini Game - eriktorbjorn
0ab19be9e2a3f6938226638b2a3744fe -1 us All HE 100 Demo - khalek
@@ -793,12 +800,14 @@ balloon Putt-Putt and Pep's Balloon-O-Rama
bab0fb81dcb12b8930c5d850b8f2a7de 12800 de Windows HE 80 - - George Kormendi
145bd3373574feb668cc2eea2ec6cf86 -1 ru Windows HE 80 - - sev
27b2ef1653089fe5b897d9cc89ce784f -1 ru Windows HE 80 - - George Kormendi
- 2232b0b9411575b1f9961713ebc9de61 -1 es Windows HE 80 - - exiltd
+ 2232b0b9411575b1f9961713ebc9de61 -1 All Windows HE 80 - ES and NL exiltd (ES), Ben Castricum (NL)
+ a56a05c6b865b9956639f8c51269e5ab -1 nl Mac HE 80 - - Ben Castricum
d7b247c26bf1f01f8f7daf142be84de3 -1 en Windows HE 99 Updated - iziku
8e3241ddd6c8dadf64305e8740d45e13 -1 en All HE 100 Updated - Kirben
dog Putt-Putt and Pep's Dog on a Stick
bd5fd7835335dfce03064d5f77b7f0ae 19681 nl Windows - - - George Kormendi
+ 1b720def35ecfa07032ddf1efb34c368 19681 nl All - - - Ben Castricum
eae95b2b3546d8ba86ae1d397c383253 -1 en All - - - Kirben
839a658f7d22de00787ebc945348cdb6 19681 de Windows - - - George Kormendi
d4b8ee426b1afd3e53bc0cf020418cf6 -1 en Windows HE 99 - - sev
@@ -835,7 +844,8 @@ spyfox SPY Fox 1: Dry Cereal
fbdd947d21e8f5bac6d6f7a316af1c5a 15693 en All - Demo - sev
ba888e6831517597859e91aa173f945c -1 fr All - Demo - Kirben
73b8197e236da4bf49adc99fe8f5fa1b -1 de All - Demo - Joachim Eberhard
- 4edbf9d03550f7ba01e7f34d69b678dd -1 nl Windows HE 98.5 Demo - Kirben
+ 4edbf9d03550f7ba01e7f34d69b678dd -1 nl All HE 98.5 Demo - Kirben
+ f2ec78e50bdc63b70044e9758be10914 -1 nl Mac HE 98.5 Demo - Ben Castricum
9d4ab3e0e1d1ebc6ba8a6a4c470ed184 -1 en All HE 100 Demo - khalek
spyfox2 SPY Fox 2: Some Assembly Required
diff --git a/devtools/skycpt/AsciiCptCompile.cpp b/devtools/skycpt/AsciiCptCompile.cpp
index 154c13b8cd..f339f6816c 100644
--- a/devtools/skycpt/AsciiCptCompile.cpp
+++ b/devtools/skycpt/AsciiCptCompile.cpp
@@ -49,7 +49,7 @@ void doCompile(FILE *inf, FILE *debOutf, FILE *resOutf, TextFile *cptDef, FILE *
int main(int argc, char* argv[])
{
uint8 testBuf[4] = { 0x11, 0x22, 0x33, 0x44 };
- if (*(uint32*)testBuf != 0x44332211) {
+ if (*(uint32 *)testBuf != 0x44332211) {
printf("Sorry, this program only works on little endian systems.\nGoodbye.\n");
return 0;
}
diff --git a/devtools/skycpt/TextFile.cpp b/devtools/skycpt/TextFile.cpp
index e9887dc87b..038b1b9329 100644
--- a/devtools/skycpt/TextFile.cpp
+++ b/devtools/skycpt/TextFile.cpp
@@ -60,7 +60,7 @@ char *TextFile::giveLine(uint32 num) {
}
void TextFile::read(FILE *inf) {
- char *line = (char*)malloc(4096);
+ char *line = (char *)malloc(4096);
_lines = (char**)malloc(4096 * sizeof(char *));
_numLines = 0;
uint32 linesMax = 4096;
@@ -78,7 +78,7 @@ void TextFile::read(FILE *inf) {
start++;
}
uint32 length = crop(start);
- _lines[_numLines] = (char*)malloc(length + 1);
+ _lines[_numLines] = (char *)malloc(length + 1);
memcpy(_lines[_numLines], start, length + 1);
_numLines++;
}
diff --git a/devtools/skycpt/cptcompiler.cpp b/devtools/skycpt/cptcompiler.cpp
index f6ee926075..2c7d33c73b 100644
--- a/devtools/skycpt/cptcompiler.cpp
+++ b/devtools/skycpt/cptcompiler.cpp
@@ -50,7 +50,7 @@ void processMainLists(FILE *inf, CptObj *destArr, uint16 *idList) {
char line[1024];
dofgets(line, 1024, inf);
assert(lineMatchSection(line, "MAINLISTS"));
- uint16 *resBuf = (uint16*)malloc(MAX_OBJ_SIZE);
+ uint16 *resBuf = (uint16 *)malloc(MAX_OBJ_SIZE);
uint32 idNum = 0;
do {
dofgets(line, 1024, inf);
@@ -60,7 +60,7 @@ void processMainLists(FILE *inf, CptObj *destArr, uint16 *idList) {
CptObj *dest = destArr + id;
assertEmpty(dest);
dest->type = MAINLIST;
- dest->dbgName = (char*)malloc(strlen(cptName) + 1);
+ dest->dbgName = (char *)malloc(strlen(cptName) + 1);
strcpy(dest->dbgName, cptName);
memset(resBuf, 0, MAX_OBJ_SIZE);
uint32 resPos = 0;
@@ -82,7 +82,7 @@ void processMainLists(FILE *inf, CptObj *destArr, uint16 *idList) {
} while (1);
assert(resPos < (MAX_OBJ_SIZE / 2));
dest->len = resPos;
- dest->data = (uint16*)malloc(resPos * 2);
+ dest->data = (uint16 *)malloc(resPos * 2);
memcpy(dest->data, resBuf, resPos * 2);
} else
break;
@@ -95,7 +95,7 @@ void processCpts(FILE *inf, CptObj *destArr) {
char line[1024];
dofgets(line, 1024, inf);
assert(lineMatchSection(line, "COMPACTS"));
- uint16 *resBuf = (uint16*)malloc(MAX_OBJ_SIZE);
+ uint16 *resBuf = (uint16 *)malloc(MAX_OBJ_SIZE);
do {
dofgets(line, 1024, inf);
if (!isEndOfSection(line)) {
@@ -103,7 +103,7 @@ void processCpts(FILE *inf, CptObj *destArr) {
uint16 id = getInfo(line, "COMPACT", cptName);
CptObj *dest = destArr + id;
assertEmpty(dest);
- dest->dbgName = (char*)malloc(strlen(cptName) + 1);
+ dest->dbgName = (char *)malloc(strlen(cptName) + 1);
dest->type = COMPACT;
strcpy(dest->dbgName, cptName);
memset(resBuf, 0, MAX_OBJ_SIZE);
@@ -134,7 +134,7 @@ void processCpts(FILE *inf, CptObj *destArr) {
} while (1);
assert(resPos < (MAX_OBJ_SIZE / 2));
dest->len = resPos;
- dest->data = (uint16*)malloc(resPos * 2);
+ dest->data = (uint16 *)malloc(resPos * 2);
memcpy(dest->data, resBuf, resPos * 2);
} else
break;
@@ -147,7 +147,7 @@ void processTurntabs(FILE *inf, CptObj *destArr) {
char line[1024];
dofgets(line, 1024, inf);
assert(lineMatchSection(line, "TURNTABS"));
- uint16 *resBuf = (uint16*)malloc(MAX_OBJ_SIZE);
+ uint16 *resBuf = (uint16 *)malloc(MAX_OBJ_SIZE);
do {
dofgets(line, 1024, inf);
if (!isEndOfSection(line)) {
@@ -155,7 +155,7 @@ void processTurntabs(FILE *inf, CptObj *destArr) {
uint16 id = getInfo(line, "TURNTAB", cptName);
CptObj *dest = destArr + id;
assertEmpty(dest);
- dest->dbgName = (char*)malloc(strlen(cptName) + 1);
+ dest->dbgName = (char *)malloc(strlen(cptName) + 1);
dest->type = TURNTAB;
strcpy(dest->dbgName, cptName);
memset(resBuf, 0, MAX_OBJ_SIZE);
@@ -176,7 +176,7 @@ void processTurntabs(FILE *inf, CptObj *destArr) {
} while (1);
assert(resPos < (MAX_OBJ_SIZE / 2));
dest->len = resPos;
- dest->data = (uint16*)malloc(resPos * 2);
+ dest->data = (uint16 *)malloc(resPos * 2);
memcpy(dest->data, resBuf, resPos * 2);
} else
break;
@@ -189,7 +189,7 @@ void processBins(FILE *inf, CptObj *destArr, const char *typeName, const char *o
char line[1024];
dofgets(line, 1024, inf);
assert(lineMatchSection(line, typeName));
- uint16 *resBuf = (uint16*)malloc(MAX_OBJ_SIZE);
+ uint16 *resBuf = (uint16 *)malloc(MAX_OBJ_SIZE);
do {
dofgets(line, 1024, inf);
if (!isEndOfSection(line)) {
@@ -197,7 +197,7 @@ void processBins(FILE *inf, CptObj *destArr, const char *typeName, const char *o
uint16 id = getInfo(line, objName, cptName);
CptObj *dest = destArr + id;
assertEmpty(dest);
- dest->dbgName = (char*)malloc(strlen(cptName) + 1);
+ dest->dbgName = (char *)malloc(strlen(cptName) + 1);
dest->type = cTypeId;
strcpy(dest->dbgName, cptName);
memset(resBuf, 0, MAX_OBJ_SIZE);
@@ -218,7 +218,7 @@ void processBins(FILE *inf, CptObj *destArr, const char *typeName, const char *o
} while (1);
assert(resPos < (MAX_OBJ_SIZE / 2));
dest->len = resPos;
- dest->data = (uint16*)malloc(resPos * 2);
+ dest->data = (uint16 *)malloc(resPos * 2);
memcpy(dest->data, resBuf, resPos * 2);
} else
break;
@@ -242,7 +242,7 @@ void processSymlinks(FILE *inf, CptObj *destArr, uint16 *baseLists) {
uint16 fromId = getInfo(line, "SYMLINK", cptName);
CptObj *from = destArr + fromId;
assertEmpty(from);
- dlinkNames[dlinkCount] = (char*)malloc(strlen(cptName) + 1);
+ dlinkNames[dlinkCount] = (char *)malloc(strlen(cptName) + 1);
strcpy(dlinkNames[dlinkCount], cptName);
dofgets(line, 1024, inf);
@@ -272,7 +272,7 @@ void doCompile(FILE *inf, FILE *debOutf, FILE *resOutf, TextFile *cptDef, FILE *
CptObj *resCpts;
uint16 baseLists[NUM_DATA_LISTS];
memset(baseLists, 0, NUM_DATA_LISTS * 2);
- resCpts = (CptObj*)malloc(MAX_CPTS * sizeof(CptObj));
+ resCpts = (CptObj *)malloc(MAX_CPTS * sizeof(CptObj));
memset(resCpts, 0, MAX_CPTS * sizeof(CptObj));
printf(" MainLists...\n");
processMainLists(inf, resCpts, baseLists);
@@ -323,7 +323,7 @@ void doCompile(FILE *inf, FILE *debOutf, FILE *resOutf, TextFile *cptDef, FILE *
fwrite(&binSize, 1, 4, debOutf);
fwrite(&binSize, 1, 4, resOutf);
- char *asciiBuf = (char*)malloc(ASCII_SIZE);
+ char *asciiBuf = (char *)malloc(ASCII_SIZE);
char *asciiPos = asciiBuf;
// now process all the compacts
@@ -491,7 +491,7 @@ void doCompile(FILE *inf, FILE *debOutf, FILE *resOutf, TextFile *cptDef, FILE *
assert((ftell(res288) / 2) < 65536);
uint16 resSize = (uint16)(ftell(res288) / 2);
fseek(res288, 0, SEEK_SET);
- uint16 *buf288 = (uint16*)malloc(resSize * 2);
+ uint16 *buf288 = (uint16 *)malloc(resSize * 2);
fread(buf288, 2, resSize, res288);
fclose(res288);
fwrite(&resSize, 1, 2, debOutf);
@@ -514,7 +514,7 @@ void doCompile(FILE *inf, FILE *debOutf, FILE *resOutf, TextFile *cptDef, FILE *
fseek(resDiff, 0, SEEK_END);
assert(ftell(resDiff) == (resSize * 2));
fseek(resDiff, 0, SEEK_SET);
- uint16 *bufDif = (uint16*)malloc(resSize *2);
+ uint16 *bufDif = (uint16 *)malloc(resSize *2);
fread(bufDif, 2, resSize, resDiff);
fclose(resDiff);
for (uint16 eCnt = 0; eCnt < resSize; eCnt++)
diff --git a/devtools/tasmrecover/dreamweb/backdrop.asm b/devtools/tasmrecover/dreamweb/backdrop.asm
index ec0e4959b3..f588e7d02b 100644
--- a/devtools/tasmrecover/dreamweb/backdrop.asm
+++ b/devtools/tasmrecover/dreamweb/backdrop.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
;----------------------------------------------Code to draw floor and panel----
diff --git a/devtools/tasmrecover/dreamweb/debug.asm b/devtools/tasmrecover/dreamweb/debug.asm
index 951da4fa3f..f4321de7bf 100644
--- a/devtools/tasmrecover/dreamweb/debug.asm
+++ b/devtools/tasmrecover/dreamweb/debug.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
diff --git a/devtools/tasmrecover/dreamweb/dreamweb.asm b/devtools/tasmrecover/dreamweb/dreamweb.asm
index fa3a4f7957..28165a51ab 100644
--- a/devtools/tasmrecover/dreamweb/dreamweb.asm
+++ b/devtools/tasmrecover/dreamweb/dreamweb.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
diff --git a/devtools/tasmrecover/dreamweb/keypad.asm b/devtools/tasmrecover/dreamweb/keypad.asm
index 6eee2fa11c..29542937c1 100644
--- a/devtools/tasmrecover/dreamweb/keypad.asm
+++ b/devtools/tasmrecover/dreamweb/keypad.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
Entercode proc near
diff --git a/devtools/tasmrecover/dreamweb/look.asm b/devtools/tasmrecover/dreamweb/look.asm
index a5a8b8055e..81fa663e19 100644
--- a/devtools/tasmrecover/dreamweb/look.asm
+++ b/devtools/tasmrecover/dreamweb/look.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
;---------------------------------------------------------------Look-routine----
diff --git a/devtools/tasmrecover/dreamweb/monitor.asm b/devtools/tasmrecover/dreamweb/monitor.asm
index 5354e9f7d5..25075e7eb7 100644
--- a/devtools/tasmrecover/dreamweb/monitor.asm
+++ b/devtools/tasmrecover/dreamweb/monitor.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
Usemon proc near
diff --git a/devtools/tasmrecover/dreamweb/newplace.asm b/devtools/tasmrecover/dreamweb/newplace.asm
index b06a351f5f..d2f54509dd 100644
--- a/devtools/tasmrecover/dreamweb/newplace.asm
+++ b/devtools/tasmrecover/dreamweb/newplace.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
;----------------------------------------------------Choosing a new location----
diff --git a/devtools/tasmrecover/dreamweb/object.asm b/devtools/tasmrecover/dreamweb/object.asm
index 6a5f7c30a8..f7068d2cb0 100644
--- a/devtools/tasmrecover/dreamweb/object.asm
+++ b/devtools/tasmrecover/dreamweb/object.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
;---------------------------------------------------------Inventory printer----
diff --git a/devtools/tasmrecover/dreamweb/print.asm b/devtools/tasmrecover/dreamweb/print.asm
index 7cbb45c08b..22ca61b8b1 100644
--- a/devtools/tasmrecover/dreamweb/print.asm
+++ b/devtools/tasmrecover/dreamweb/print.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
Printchar proc near
diff --git a/devtools/tasmrecover/dreamweb/saveload.asm b/devtools/tasmrecover/dreamweb/saveload.asm
index f3c92d36f6..a49b527d01 100644
--- a/devtools/tasmrecover/dreamweb/saveload.asm
+++ b/devtools/tasmrecover/dreamweb/saveload.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
diff --git a/devtools/tasmrecover/dreamweb/sblaster.asm b/devtools/tasmrecover/dreamweb/sblaster.asm
index 7a271e9c90..5eef2dbfd8 100644
--- a/devtools/tasmrecover/dreamweb/sblaster.asm
+++ b/devtools/tasmrecover/dreamweb/sblaster.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
; Creative Reality Sound Blaster Drivers . (C) 1994 Creative Reality
diff --git a/devtools/tasmrecover/dreamweb/sprite.asm b/devtools/tasmrecover/dreamweb/sprite.asm
index 06b06c76e3..c6a75063a0 100644
--- a/devtools/tasmrecover/dreamweb/sprite.asm
+++ b/devtools/tasmrecover/dreamweb/sprite.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
;------------------------------------------------------------People Routines----
@@ -244,7 +244,7 @@ Reelroutines db 1,44,0 ;Room number and x,y
db 255
-Lenofreelrouts equ $-reelroutines
+Lenofreelrouts equ 457 ; $-reelroutines
Reelcalls dw gamer,sparkydrip,eden,edeninbath,sparky,smokebloke
diff --git a/devtools/tasmrecover/dreamweb/talk.asm b/devtools/tasmrecover/dreamweb/talk.asm
index 4d6b381881..91cbb96c6e 100644
--- a/devtools/tasmrecover/dreamweb/talk.asm
+++ b/devtools/tasmrecover/dreamweb/talk.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
Talk proc near
diff --git a/devtools/tasmrecover/dreamweb/titles.asm b/devtools/tasmrecover/dreamweb/titles.asm
index 52f58867ed..f2e96f9c78 100644
--- a/devtools/tasmrecover/dreamweb/titles.asm
+++ b/devtools/tasmrecover/dreamweb/titles.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
diff --git a/devtools/tasmrecover/dreamweb/use.asm b/devtools/tasmrecover/dreamweb/use.asm
index 78917d50f4..f8c64f6f45 100644
--- a/devtools/tasmrecover/dreamweb/use.asm
+++ b/devtools/tasmrecover/dreamweb/use.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
diff --git a/devtools/tasmrecover/dreamweb/vars.asm b/devtools/tasmrecover/dreamweb/vars.asm
index 6d34074528..99592233d3 100644
--- a/devtools/tasmrecover/dreamweb/vars.asm
+++ b/devtools/tasmrecover/dreamweb/vars.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
;---------------------------------------------------Equates and definitions----
diff --git a/devtools/tasmrecover/dreamweb/vgafades.asm b/devtools/tasmrecover/dreamweb/vgafades.asm
index a1043d9cf5..a39ae5d297 100644
--- a/devtools/tasmrecover/dreamweb/vgafades.asm
+++ b/devtools/tasmrecover/dreamweb/vgafades.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
Fadedos proc near
diff --git a/devtools/tasmrecover/dreamweb/vgagrafx.asm b/devtools/tasmrecover/dreamweb/vgagrafx.asm
index 4ba1b16ba1..368ad3c501 100644
--- a/devtools/tasmrecover/dreamweb/vgagrafx.asm
+++ b/devtools/tasmrecover/dreamweb/vgagrafx.asm
@@ -1,4 +1,4 @@
-;Copyright (c) 1990-2011 by Neil Dodwell
+;Copyright (c) 1990-2012 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
Screenwidth equ 320 ;physical width of screen
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 7c89ab44f5..e46b2efaa8 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -41,17 +41,37 @@ p = parser(skip_binary_data = [
'recname',
'fileheader',
'filedata',
+ 'foreignrelease',
'extradata',
'keybuffer',
'spritename1',
+ 'subtitles',
'icongraphics0',
'icongraphics1',
'savenames',
'volumetabname',
+ 'commandline',
+ 'openchangesize',
+ 'roompics',
+ 'roomscango',
+ 'oplist',
+ 'presslist',
+ 'inputline',
+ 'flashmousetab',
+ 'id',
+ 'place',
+ 'blinktab',
+ 'quitrequested',
# keypad.asm
'keypadlist',
'symbollist',
'diarylist',
+ # monitor.asm
+ 'comlist',
+ 'keys',
+ 'rootdir',
+ 'operand1',
+ 'currentfile',
# newplace.asm
'destlist',
# object.asm
@@ -72,6 +92,7 @@ p = parser(skip_binary_data = [
'gameerror8',
'error2patch',
'error6patch',
+ 'error8patch',
'gameinfo',
'endgametext1',
'savefiles',
@@ -82,7 +103,10 @@ p = parser(skip_binary_data = [
'dmaaddresses',
'speechfilename',
'speechfile',
+ 'speechlength',
+ 'soundbufferwrite',
# sprite.asm
+ 'reelroutines',
'reelcalls',
'facelist',
'rainlocations',
@@ -104,14 +128,21 @@ p = parser(skip_binary_data = [
'title6graphics',
# use.asm
'uselist',
+ 'money1poke',
+ 'money2poke',
# vars.asm
'currentset',
+ 'currentsample',
+ 'ch0playing',
+ 'ch0repeat',
+ 'ch1playing',
'icons1',
'icons2',
'tempcharset',
'currentframe',
'takeoff',
'reelpointer',
+ 'roomssample',
'needsoundbuff',
'oldint8seg',
'oldint8add',
@@ -148,6 +179,415 @@ p = parser(skip_binary_data = [
'ch1blocksplayed',
'soundemmpage',
'speechemmpage',
+ 'speechloaded',
+ 'lineroutine',
+ 'increment1',
+ 'increment2',
+ 'keypadax',
+ 'keypadcx',
+ 'soundbuffer',
+ 'cursloc',
+ 'liftsoundcount',
+ 'playblock',
+ 'gotfrom',
+ 'flagx',
+ 'flagy',
+ 'lastflagex',
+ 'keynum',
+ 'newlogonum',
+ 'currentex',
+ 'currentfree',
+ 'frsegment',
+ 'dataad',
+ 'framesad',
+ 'objectx',
+ 'objecty',
+ 'savesize',
+ 'savesource',
+ 'savex',
+ 'savey',
+ 'persondata',
+ 'talknum',
+ 'saidno',
+ 'prioritydep',
+ 'currentkey2',
+ 'mustload',
+ 'answered',
+ 'slotdata',
+ 'thisslot',
+ 'slotflags',
+ 'numberinroom',
+ 'currentcel',
+ 'oldselection',
+ 'stopwalking',
+ 'mouseon',
+ 'played',
+ 'timer1',
+ 'timer2',
+ 'timer3',
+ 'volume',
+ 'volumeto',
+ 'volumedirection',
+ 'volumecount',
+ 'wholetimer',
+ 'wongame',
+ 'timer1to',
+ 'timer2to',
+ 'timer3to',
+ 'oldsubject',
+ 'buffers',
+ 'itemtotran',
+ 'symboltolight',
+ 'symbol1',
+ 'symbol2',
+ 'symbol3',
+ 'symbolnum',
+ 'monsource',
+ 'netseg',
+ 'netpoint',
+ 'cursorstate',
+ 'ch0blockstocopy',
+ 'ch1blockstocopy',
+ 'sounddata',
+ 'sounddata2',
+ 'mapstore',
+ 'mapdata',
+ 'backdrops',
+ 'textfile1',
+ 'textfile2',
+ 'textfile3',
+ 'puzzletext',
+ 'commandtext',
+ 'traveltext',
+ 'tempgraphics',
+ 'tempgraphics2',
+ 'tempgraphics3',
+ 'tempsprites',
+ 'charset1',
+ 'extras',
+ 'freeframes',
+ 'setframes',
+ 'reel1',
+ 'reel2',
+ 'reel3',
+ 'setdesc',
+ 'blockdesc',
+ 'roomdesc',
+ 'freedesc',
+ 'people',
+ 'reels',
+ 'setdat',
+ 'freedat',
+ 'speechcount',
+ 'charshift',
+ 'kerning',
+ 'brightness',
+ 'roomloaded',
+ 'didzoom',
+ 'linespacing',
+ 'textaddressx',
+ 'textaddressy',
+ 'textlen',
+ 'lastxpos',
+ 'icontop',
+ 'iconleft',
+ 'itemframe',
+ 'roomad',
+ 'withobject',
+ 'withtype',
+ 'lookcounter',
+ 'command',
+ 'commandtype',
+ 'oldcommandtype',
+ 'objecttype',
+ 'getback',
+ 'invopen',
+ 'mainmode',
+ 'pickup',
+ 'lastinvpos',
+ 'examagain',
+ 'newtextline',
+ 'openedob',
+ 'openedtype',
+ 'oldmapadx',
+ 'oldmapady',
+ 'mapadx',
+ 'mapady',
+ 'mapoffsetx',
+ 'mapoffsety',
+ 'mapxstart',
+ 'mapystart',
+ 'mapxsize',
+ 'mapysize',
+ 'havedoneobs',
+ 'manisoffscreen',
+ 'rainspace',
+ 'facing',
+ 'leavedirection',
+ 'turntoface',
+ 'turndirection',
+ 'maintimer',
+ 'introcount',
+ 'arrowad',
+ 'currentkey',
+ 'oldkey',
+ 'useddirection',
+ 'timercount',
+ 'oldtimercount',
+ 'mapx',
+ 'mapy',
+ 'newscreen',
+ 'ryanx',
+ 'ryany',
+ 'lastflag',
+ 'offsetx',
+ 'offsety',
+ 'currentob',
+ 'destpos',
+ 'reallocation',
+ 'roomnum',
+ 'nowinnewroom',
+ 'resetmanxy',
+ 'newlocation',
+ 'autolocation',
+ 'doorcheck1',
+ 'doorcheck2',
+ 'doorcheck3',
+ 'doorcheck4',
+ 'mousex',
+ 'mousey',
+ 'mousebutton',
+ 'mousebutton1',
+ 'mousebutton2',
+ 'mousebutton3',
+ 'mousebutton4',
+ 'oldbutton',
+ 'oldx',
+ 'oldy',
+ 'lastbutton',
+ 'oldpointerx',
+ 'oldpointery',
+ 'delherex',
+ 'delherey',
+ 'pointerxs',
+ 'pointerys',
+ 'delxs',
+ 'delys',
+ 'pointerframe',
+ 'pointerpower',
+ 'auxpointerframe',
+ 'pointermode',
+ 'pointerspeed',
+ 'pointercount',
+ 'inmaparea',
+ 'talkmode',
+ 'talkpos',
+ 'character',
+ 'watchdump',
+ 'logonum',
+ 'oldlogonum',
+ 'pressed',
+ 'presspointer',
+ 'graphicpress',
+ 'presscount',
+ 'lightcount',
+ 'folderpage',
+ 'diarypage',
+ 'menucount',
+ 'symboltopx',
+ 'symboltopnum',
+ 'symboltopdir',
+ 'symbolbotx',
+ 'symbolbotnum',
+ 'symbolbotdir',
+ 'dumpx',
+ 'dumpy',
+ 'walkandexam',
+ 'walkexamtype',
+ 'walkexamnum',
+ 'curslocx',
+ 'curslocy',
+ 'curpos',
+ 'monadx',
+ 'monady',
+ 'numtodo',
+ 'timecount',
+ 'counttotimed',
+ 'timedseg',
+ 'timedoffset',
+ 'timedy',
+ 'timedx',
+ 'needtodumptimed',
+ 'loadingorsave',
+ 'currentslot',
+ 'cursorpos',
+ 'colourpos',
+ 'fadedirection',
+ 'numtofade',
+ 'fadecount',
+ 'addtogreen',
+ 'addtored',
+ 'addtoblue',
+ 'lastsoundreel',
+ 'volume',
+ 'volumeto',
+ 'volumedirection',
+ 'volumecount',
+ 'lasthardkey',
+ 'bufferin',
+ 'bufferout',
+ 'workspace',
+ 'mainsprites',
+ 'backdrop',
+ 'recordspace',
+ 'blinkframe',
+ 'blinkcount',
+ 'reasseschanges',
+ 'pointerspath',
+ 'manspath',
+ 'pointerfirstpath',
+ 'finaldest',
+ 'destination',
+ 'linestartx',
+ 'linestarty',
+ 'lineendx',
+ 'lineendy',
+ 'linepointer',
+ 'linedirection',
+ 'linelength',
+ # vars.asm - saved vars
+ 'startvars',
+ 'progresspoints',
+ 'watchon',
+ 'shadeson',
+ 'secondcount',
+ 'minutecount',
+ 'hourcount',
+ 'zoomon',
+ 'location',
+ 'expos',
+ 'exframepos',
+ 'extextpos',
+ 'card1money',
+ 'listpos',
+ 'ryanpage',
+ 'watchingtime',
+ 'reeltowatch',
+ 'endwatchreel',
+ 'speedcount',
+ 'watchspeed',
+ 'reeltohold',
+ 'endofholdreel',
+ 'watchmode',
+ 'destafterhold',
+ 'newsitem',
+ 'liftflag',
+ 'liftpath',
+ 'lockstatus',
+ 'doorpath',
+ 'counttoopen',
+ 'counttoclose',
+ 'rockstardead',
+ 'generaldead',
+ 'sartaindead',
+ 'aidedead',
+ 'beenmugged',
+ 'gunpassflag',
+ 'canmovealtar',
+ 'talkedtoattendant',
+ 'talkedtosparky',
+ 'talkedtoboss',
+ 'talkedtorecep',
+ 'cardpassflag',
+ 'madmanflag',
+ 'keeperflag',
+ 'lasttrigger',
+ 'mandead',
+ 'seed',
+ 'seed',
+ 'seed',
+ 'needtotravel',
+ 'throughdoor',
+ 'newobs',
+ 'ryanon',
+ 'combatcount',
+ 'lastweapon',
+ 'dreamnumber',
+ 'roomafterdream',
+ 'shakecounter',
+ # vars.asm - constants
+ 'openinvlist',
+ 'ryaninvlist',
+ 'pointerback',
+ 'mapflags',
+ 'startpal',
+ 'endpal',
+ 'maingamepal',
+ 'spritetable',
+ 'setlist',
+ 'freelist',
+ 'exlist',
+ 'peoplelist',
+ 'zoomspace',
+ 'printedlist',
+ 'listofchanges',
+ 'undertimedtext',
+ 'rainlist',
+ 'initialreelrouts',
+ 'initialvars',
+ 'lengthofbuffer',
+ 'lenofreelrouts',
+ 'reellist',
+ 'intext',
+ 'lengthofmap',
+ 'blocktext',
+ 'blocks',
+ 'frframes',
+ 'frames',
+ 'persontxtdat',
+ 'persontext',
+ 'tablesize',
+ 'undertextsizex', # defined in dreambase.h
+ 'undertextsizey', # defined in dreambase.h
+ 'lengthofvars', # defined in dreambase.h
+ 'lenofmapstore', # defined in dreambase.h
+ 'keypadx',
+ 'keypady',
+ 'settext',
+ 'freetext',
+ 'setdatlen',
+ 'textstart',
+ 'maplen',
+ 'maplength',
+ 'undertimedysize',
+ 'blocktextdat',
+ 'personframes',
+ 'map',
+ 'settextdat',
+ 'textunder',
+ 'pathdata',
+ 'framedata',
+ 'flags',
+ 'intextdat',
+ 'freetextdat',
+ 'frframedata',
+ 'zoomx',
+ 'zoomy',
+ 'menux',
+ 'menuy',
+ 'headerlen',
+ 'freedatlen',
+ 'diaryx',
+ 'diaryy',
+ 'inventx',
+ 'inventy',
+ 'screenwidth',
+ 'mapwidth',
+ 'opsx',
+ 'opsy',
+ 'symbolx',
+ 'symboly',
+ 'numchanges',
# vgagrafx.asm
'cityname',
'extragraphics1',
@@ -187,7 +627,7 @@ p = parser(skip_binary_data = [
'diarytext',
'title7graphics',
'handle',
- # 'basicsample', # This can't be removed due to tasm-recover limitations
+ 'basicsample',
'endtextname',
'gungraphic',
'monkface',
@@ -204,10 +644,15 @@ generator = cpp(context, "DreamGen", blacklist = [
'actualload',
'actualsave',
'addalong',
+ 'additionaltext',
'addlength',
'addtopeoplelist',
'addtopresslist',
+ 'adjustdown',
+ 'adjustleft',
'adjustlen',
+ 'adjustright',
+ 'adjustup',
'advisor',
'afterintroroom',
'afternewroom',
@@ -226,6 +671,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'autolook',
'autosetwalk',
'backobject',
+ 'bartender',
'barwoman',
'biblequote',
'blank',
@@ -234,6 +680,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'bossman',
'bothchannels',
'bresenhams',
+ 'businessman',
'buttoneight',
'buttonenter',
'buttonfive',
@@ -265,6 +712,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'checkcoords',
'checkdest',
'checkforemm',
+ 'checkforexit',
'checkforshake',
'checkifex',
'checkiffree',
@@ -272,11 +720,15 @@ generator = cpp(context, "DreamGen", blacklist = [
'checkifperson',
'checkifset',
'checkinput',
+ 'checkinside',
+ 'checkobjectsize',
'checkone',
'checksoundint',
'checkspeed',
'chewy',
'clearbeforeload',
+ 'clearbuffers',
+ 'clearchanges',
'clearendpal',
'clearpalette',
'clearreels',
@@ -306,15 +758,21 @@ generator = cpp(context, "DreamGen", blacklist = [
'decide',
'delchar',
'delcurs',
+ 'deleteexframe',
+ 'deleteextext',
+ 'deleteexobject',
'deletetaken',
'deleverything',
'delpointer',
'delsprite',
'deltextline',
'delthisone',
+ 'describeob',
'destselect',
'diarykeyp',
'diarykeyn',
+ 'dircom',
+ 'dirfile',
'disablepath',
'disablesoundint',
'discops',
@@ -329,15 +787,20 @@ generator = cpp(context, "DreamGen", blacklist = [
'dontloadseg',
'doorway',
'dosaveload',
+ 'dosometalk',
'dosreturn',
'doshake',
'drawflags',
'drawfloor',
+ 'drawitall',
+ 'dreamweb',
'drinker',
'droperror',
+ 'dropobject',
'drunk',
'dumpblink',
'dumpcurrent',
+ 'dumpdiarykeys',
'dumpeverything',
'dumpkeypad',
'dumpmap',
@@ -352,11 +815,15 @@ generator = cpp(context, "DreamGen", blacklist = [
'eden',
'edeninbath',
'edenscdplayer',
+ 'emergencypurge',
'enablesoundint',
'endgame',
+ 'endgameseq',
'endpaltostart',
'entercode',
'entersymbol',
+ 'entryanims',
+ 'entrytexts',
'eraseoldobs',
'error',
'errormessage1',
@@ -366,29 +833,43 @@ generator = cpp(context, "DreamGen", blacklist = [
'examinventory',
'examineob',
'examineobtext',
+ 'execcommand',
'facerightway',
'fadecalculation',
'fadedos',
+ 'fadedownmon',
'fadefromwhite',
'fadescreenup',
'fadescreenups',
'fadescreenuphalf',
'fadescreendown',
'fadescreendowns',
+ 'fadescreendownhalf',
'fadetowhite',
+ 'fadeupmon',
'fadeupmonfirst',
'fadeupyellows',
'femalefan',
+ 'fillopen',
'fillryan',
'fillspace',
'finalframe',
+ 'findallopen',
'findallryan',
+ 'findexobject',
+ 'findfirstpath',
+ 'findinvpos',
'findlen',
'findnextcolon',
'findobname',
+ 'findopenpos',
'findormake',
+ 'findpathofpoint',
+ 'findpuztext',
'findroominloc',
+ 'findsetobject',
'findsource',
+ 'findtext1',
'findxyfrompath',
'finishedwalking',
'folderexit',
@@ -401,21 +882,30 @@ generator = cpp(context, "DreamGen", blacklist = [
'gamer',
'gates',
'generalerror',
+ 'getanyad',
'getanyaddir',
'getback1',
'getbackfromob',
'getbackfromops',
'getbacktoops',
'getblockofpixel',
+ 'getdestinfo',
'getdimension',
+ 'geteitherad',
+ 'getexad',
'getexpos',
'getflagunderp',
+ 'getfreead',
+ 'getkeyandlogo',
'getlocation',
'getmapad',
'getnamepos',
'getnextword',
'getnumber',
+ 'getobtextstart',
+ 'getopenedsize',
'getpersframe',
+ 'getpersontext',
'getreelframeax',
'getreelstart',
'getridofall',
@@ -429,8 +919,10 @@ generator = cpp(context, "DreamGen", blacklist = [
'getridoftemptext',
'getroomdata',
'getroomspaths',
+ 'getsetad',
'gettime',
'gettingshot',
+ 'getundercentre',
'getundermenu',
'getundertimed',
'getunderzoom',
@@ -445,14 +937,20 @@ generator = cpp(context, "DreamGen", blacklist = [
'hangonp',
'hangonpq',
'hangonw',
+ 'heavy',
+ 'helicopter',
'hotelbell',
'hotelcontrol',
+ 'identifyob',
+ 'incryanpage',
'initialinv',
+ 'initialmoncols',
'initman',
'initrain',
'input',
'interupttest',
'interviewer',
+ 'intoinv',
'intro',
'intro1text',
'intro2text',
@@ -467,6 +965,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'isitdescribed',
'isitright',
'isitworn',
+ 'isryanholding',
'issetobonmap',
'keeper',
'kernchars',
@@ -499,11 +998,15 @@ generator = cpp(context, "DreamGen", blacklist = [
'loadtempcharset',
'loadtemptext',
'loadtraveltext',
+ 'locationpic',
'lockeddoorway',
'locklightoff',
'locklighton',
'lockmon',
'look',
+ 'lookatcard',
+ 'lookatplace',
+ 'lookininterface',
'loopchannel0',
'louis',
'louischair',
@@ -515,6 +1018,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'mainman',
'mainscreen',
'makebackob',
+ 'makecaps',
'makeheader',
'makemainscreen',
'makename',
@@ -529,6 +1033,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'middlepanel',
'mode640x480',
'modifychar',
+ 'moneypoke',
'monitorlogo',
'monkandryan',
'monks2text',
@@ -538,6 +1043,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'moretalk',
'mousecall',
'movemap',
+ 'mugger',
'multidump',
'multiget',
'multiput',
@@ -545,9 +1051,11 @@ generator = cpp(context, "DreamGen", blacklist = [
'neterror',
'newgame',
'newplace',
+ 'nextcolon',
'nextdest',
'nextfolder',
'nextsymbol',
+ 'nothelderror',
'obicons',
'obname',
'obpicture',
@@ -564,6 +1072,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'openhoteldoor2',
'openinv',
'openlouis',
+ 'openob',
'openpoolboss',
'openryan',
'opensarters',
@@ -572,12 +1081,16 @@ generator = cpp(context, "DreamGen", blacklist = [
'openyourneighbour',
'othersmoker',
'out22c',
+ 'outofinv',
+ 'outofopen',
'paltoendpal',
'paltostartpal',
'panelicons1',
'paneltomap',
'parseblaster',
+ 'parser',
'personnametext',
+ 'pickupconts',
'pickupob',
'pitinterupt',
'pixelcheckset',
@@ -587,6 +1100,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'playchannel1',
'playguitar',
'plotreel',
+ 'poolguard',
'powerlightoff',
'powerlighton',
'priest',
@@ -598,11 +1112,16 @@ generator = cpp(context, "DreamGen", blacklist = [
'printdirect',
'printlogo',
'printmessage',
+ 'printmessage2',
'printoutermon',
'printslow',
'printsprites',
'printundermon',
+ 'processtrigger',
+ 'purgealocation',
+ 'purgeanitem',
'putbackobstuff',
+ 'putundercentre',
'putundermenu',
'putundertimed',
'putunderzoom',
@@ -615,6 +1134,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'randomnum1',
'randomnum2',
'randomnumber',
+ 'read',
'readabyte',
'readcitypic',
'readdesticon',
@@ -629,21 +1149,30 @@ generator = cpp(context, "DreamGen", blacklist = [
'readoneblock',
'readsetdata',
'realcredits',
+ 'receptionist',
'reconstruct',
'redes',
'redrawmainscrn',
'reelsonscreen',
+ 'reexfrominv',
'reexfromopen',
+ 'reminders',
'removeemm',
+ 'removefreeobject',
'removesetobject',
+ 'removeobfrominv',
'resetkeyboard',
+ 'resetlocation',
'restoreall',
'restoreems',
'restorereels',
'rockstar',
+ 'rollem',
'rollendcredits',
'rollendcredits2',
'roomname',
+ 'runendseq',
+ 'runtap',
'runintroseq',
'saveems',
'savefileread',
@@ -655,9 +1184,15 @@ generator = cpp(context, "DreamGen", blacklist = [
'scanfornames',
'screenupdate',
'scrollmonitor',
+ 'searchforfiles',
+ 'searchforsame',
+ 'searchforstring',
'security',
'seecommandtail',
'selectlocation',
+ 'selectob',
+ 'selectopenob',
+ 'selectslot',
'selectslot2',
'set16colpalette',
'setallchanges',
@@ -667,12 +1202,14 @@ generator = cpp(context, "DreamGen", blacklist = [
'setlocation',
'setmode',
'setmouse',
+ 'setpickup',
'setsoundoff',
'settopleft',
'settopright',
'setupemm',
'setuppit',
'setuptimedtemp',
+ 'setuptimeduse',
'setwalk',
'showallex',
'showallfree',
@@ -684,6 +1221,8 @@ generator = cpp(context, "DreamGen", blacklist = [
'showcurrentfile',
'showdecisions',
'showdiary',
+ 'showdiarykeys',
+ 'showdiarypage',
'showdiscops',
'showexit',
'showfirstuse',
@@ -694,6 +1233,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'showgun',
'showicon',
'showkeypad',
+ 'showkeys',
'showleftpage',
'showloadops',
'showmainops',
@@ -714,10 +1254,12 @@ generator = cpp(context, "DreamGen", blacklist = [
'showryanpage',
'showsaveops',
'showseconduse',
+ 'showslots',
'showsymbol',
'showtime',
'showwatch',
'showword',
+ 'signon',
'singlekey',
'sitdowninbar',
'slabdoora',
@@ -741,10 +1283,13 @@ generator = cpp(context, "DreamGen", blacklist = [
'startdmablock',
'startloading',
'startpaltoend',
+ 'starttalk',
'startup',
'startup1',
'steady',
'storeit',
+ 'swapwithinv',
+ 'swapwithopen',
'switchryanoff',
'switchryanon',
'talk',
@@ -753,9 +1298,13 @@ generator = cpp(context, "DreamGen", blacklist = [
'textformonk',
'titles',
'train',
+ 'transfercontoex',
'transferinv',
+ 'transfermap',
'transfertext',
+ 'transfertoex',
'trapdoor',
+ 'triggermessage',
'trysoundalloc',
'turnanypathoff',
'turnanypathon',
@@ -765,16 +1314,22 @@ generator = cpp(context, "DreamGen", blacklist = [
'twodigitnum',
'undertextline',
'updatepeople',
+ 'updatesymboltop',
+ 'updatesymbolbot',
+ 'usealtar',
+ 'useaxe',
'usebalcony',
'usebuttona',
'usecardreader1',
'usecardreader2',
'usecardreader3',
'usecart',
+ 'usecashcard',
'usecharset1',
'usechurchgate',
'usechurchhole',
'useclearbox',
+ 'usecontrol',
'usecooker',
'usecoveredbox',
'usediary',
@@ -786,7 +1341,10 @@ generator = cpp(context, "DreamGen", blacklist = [
'useelevator5',
'useelvdoor',
'usefullcart',
+ 'usegun',
+ 'usehandle',
'usehole',
+ 'usekey',
'useladder',
'useladderb',
'uselighter',
@@ -794,12 +1352,17 @@ generator = cpp(context, "DreamGen", blacklist = [
'usemenu',
'usemon',
'useobject',
+ 'useopenbox',
+ 'useopened',
+ 'usepipe',
'useplate',
'useplinth',
'usepoolreader',
'userailing',
'useroutine',
'useshield',
+ 'useslab',
+ 'usestereo',
'usetempcharset',
'usetext',
'usetimedtext',
@@ -823,6 +1386,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'wheelsound',
'widedoor',
'width160',
+ 'withwhat',
'workoutframes',
'worktoscreen',
'worktoscreenm',
@@ -832,7 +1396,6 @@ generator = cpp(context, "DreamGen", blacklist = [
'zoomonoff',
], skip_output = [
# These functions are processed but not output
- 'dreamweb',
], skip_dispatch_call = True, skip_addr_constants = True,
header_omit_blacklisted = True,
function_name_remapping = {
@@ -1244,7 +1807,6 @@ generator = cpp(context, "DreamGen", blacklist = [
'nextdest' : 'nextDest',
'nextfolder' : 'nextFolder',
'nextsymbol' : 'nextSymbol',
- 'nothelderror' : 'notHeldError',
'obicons' : 'obIcons',
'obname' : 'obName',
'obpicture' : 'obPicture',
@@ -1301,7 +1863,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'printdirect' : 'printDirect',
'printlogo' : 'printLogo',
'printmessage' : 'printMessage',
- 'printmessage2' : 'printmessage2',
+ 'printmessage2' : 'printMessage2',
'printoutermon' : 'printOuterMon',
'printslow' : 'printSlow',
'printsprites' : 'printSprites',
@@ -1450,12 +2012,12 @@ generator = cpp(context, "DreamGen", blacklist = [
'signon' : 'signOn',
'singlekey' : 'singleKey',
'sitdowninbar' : 'sitDownInBar',
- 'slabdoora' : 'sLabDoorA',
- 'slabdoorb' : 'sLabDoorB',
- 'slabdoorc' : 'sLabDoorC',
- 'slabdoord' : 'sLabDoorD',
- 'slabdoore' : 'sLabDoorE',
- 'slabdoorf' : 'sLabDoorF',
+ 'slabdoora' : 'slabDoorA',
+ 'slabdoorb' : 'slabDoorB',
+ 'slabdoorc' : 'slabDoorC',
+ 'slabdoord' : 'slabDoorD',
+ 'slabdoore' : 'slabDoorE',
+ 'slabdoorf' : 'slabDoorF',
'smallcandle' : 'smallCandle',
'smokebloke' : 'smokeBloke',
'soldier1' : 'soldier1',
@@ -1547,7 +2109,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'userailing' : 'useRailing',
'useroutine' : 'useRoutine',
'useshield' : 'useShield',
- 'useslab' : 'useSLab',
+ 'useslab' : 'useSlab',
'usestereo' : 'useStereo',
'usetempcharset' : 'useTempCharset',
'usetext' : 'useText',
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 686aea9ee9..e1f8228ab7 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -653,10 +653,6 @@ public:
self.hd.write(
""" void __dispatch_call(uint16 addr);
""")
- self.hd.write(
-"""#include "stubs.h" // Allow hand-reversed functions to have a signature different than void f()
-
-""")
for p in set(self.methods):
diff --git a/devtools/tasmrecover/tasm/parser.py b/devtools/tasmrecover/tasm/parser.py
index 6fd3567b01..0782fff22f 100644
--- a/devtools/tasmrecover/tasm/parser.py
+++ b/devtools/tasmrecover/tasm/parser.py
@@ -253,8 +253,12 @@ class parser:
if len(cmd) >= 3:
cmd1 = cmd[1]
if cmd1 == 'equ':
- v = cmd[2]
- self.set_global(cmd0, op.const(self.fix_dollar(v)))
+ if not (cmd0.lower() in self.skip_binary_data):
+ v = cmd[2]
+ self.set_global(cmd0, op.const(self.fix_dollar(v)))
+ else:
+ print "skipping binary data for %s" % (cmd0.lower(),)
+ skipping_binary_data = True
elif cmd1 == 'db' or cmd1 == 'dw' or cmd1 == 'dd':
if not (cmd0.lower() in self.skip_binary_data):
binary_width = {'b': 1, 'w': 2, 'd': 4}[cmd1[1]]
diff --git a/devtools/update-version.pl b/devtools/update-version.pl
index 169fba7788..b313846ab3 100755
--- a/devtools/update-version.pl
+++ b/devtools/update-version.pl
@@ -43,6 +43,12 @@ my @subs_files = qw(
dists/wii/meta.xml
dists/android/AndroidManifest.xml
dists/android/plugin-manifest.xml
+ dists/openpandora/PXML.xml
+ dists/openpandora/README-OPENPANDORA
+ dists/openpandora/README-PND.txt
+ dists/openpandora/index.html
+ dists/gph/README-GPH
+ dists/gph/scummvm.ini
backends/platform/psp/README.PSP
);