aboutsummaryrefslogtreecommitdiff
path: root/tools/qtable/qtable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/qtable/qtable.cpp')
-rw-r--r--tools/qtable/qtable.cpp188
1 files changed, 0 insertions, 188 deletions
diff --git a/tools/qtable/qtable.cpp b/tools/qtable/qtable.cpp
deleted file mode 100644
index a659698688..0000000000
--- a/tools/qtable/qtable.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-// HACK to allow building with the SDL backend on MinGW
-// see bug #1800764 "TOOLS: MinGW tools building broken"
-#ifdef main
-#undef main
-#endif // main
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-/*
- Table file format for scummvm/queen
- uint32 : 'QTBL'
- uint32 : version/tag
- repeat (number of resources tables) {
- uint16 : number of entries
- repeat (number of entries) {
- char[12] : name
- uint8 : queen.%d
- uint32 : offset in queen.%d
- uint32 : length in queen.%d
- }
- }
-*/
-
-#define MAX_VERSIONS 20
-#define ARRAYSIZE(x) (sizeof(x)/sizeof(x[0]))
-
-typedef unsigned char uint8;
-typedef unsigned short uint16;
-typedef unsigned int uint32;
-
-typedef struct DataFileEntry {
- uint8 bundle;
- uint32 offset;
- uint32 length;
- char name[13];
-} DataFileEntry;
-
-typedef struct DataFileEntriesTable {
- const DataFileEntry *fileEntries;
- uint16 fileEntriesCount;
-} DataFileEntriesTable;
-
-typedef struct TableFile {
- const char *outfile;
- DataFileEntriesTable dataFileEntriesTable[MAX_VERSIONS];
- uint16 dataFileEntriesTableCount;
-} TableFile;
-
-typedef struct GameVersion {
- const char *id;
- uint32 dataSize;
- DataFileEntry *dataFileEntries;
- uint16 dataFileEntriesCount;
- uint8 queenTblVersion;
- uint32 queenTblOffset;
-} GameVersion;
-
-#include "fat_eng_floppy.h"
-#include "fat_eng_cdrom.h"
-#include "fat_fre_floppy.h"
-#include "fat_fre_cdrom.h"
-#include "fat_ger_floppy.h"
-#include "fat_ger_cdrom.h"
-#include "fat_ita_floppy.h"
-#include "fat_ita_cdrom.h"
-#include "fat_spa_cdrom.h"
-#include "fat_heb_cdrom.h"
-#include "fat_pc_demo_pcgames.h"
-#include "fat_pc_demo.h"
-#include "fat_pc_interview.h"
-#include "fat_amiga_eng_floppy.h"
-#include "fat_amiga_demo.h"
-#include "fat_amiga_interview.h"
-
-
-#define FAT(x) x, (sizeof(x)/sizeof(x[0]))
-
-static GameVersion gameVersionsTable[] = {
- { "PEM10", 22677657, FAT(fatEngFl), 1, 0 },
- { "CEM10", 190787021, FAT(fatEngCd), 1, 0 },
- { "PFM10", 22157304, FAT(fatFreFl), 1, 0 },
- { "CFM10", 186689095, FAT(fatFreCd), 1, 0 },
- { "PGM10", 22240013, FAT(fatGerFl), 1, 0 },
- { "CGM10", 217648975, FAT(fatGerCd), 1, 0 },
- { "PIM10", 22461366, FAT(fatItaFl), 1, 0 },
- { "CIM10", 190795582, FAT(fatItaCd), 1, 0 },
- { "CSM10", 190730602, FAT(fatSpaCd), 1, 0 },
- { "CHM10", 190705558, FAT(fatHebCd), 1, 0 },
- { "PE100", 3724538, FAT(fatPCDemoPcGames), 1, 0 },
- { "PE100", 3732177, FAT(fatPCDemo), 1, 0 },
- { "PEint", 1915913, FAT(fatPCInterview), 1, 0 },
- { "aEM10", 351775, FAT(fatAmigaEngFl), 2, 0 },
- { "CE101", 563335, FAT(fatAmigaDemo), 2, 0 },
- { "PE100", 597032, FAT(fatAmigaInterview), 2, 0 }
-};
-
-static const uint32 QTBL_TAG = 0x5154424C;
-static const uint32 CURRENT_VERSION = 2;
-
-static void writeByte(FILE *fp, uint8 b) {
- fwrite(&b, 1, 1, fp);
-}
-
-static void writeUint16BE(FILE *fp, uint16 value) {
- writeByte(fp, (uint8)(value >> 8));
- writeByte(fp, (uint8)(value & 0xFF));
-}
-
-static void writeUint32BE(FILE *fp, uint32 value) {
- writeUint16BE(fp, (uint16)(value >> 16));
- writeUint16BE(fp, (uint16)(value & 0xFFFF));
-}
-
-static void writeEntry(FILE *fp, const DataFileEntry *dfe) {
- fwrite(dfe->name, 12, 1, fp);
- writeByte(fp, dfe->bundle);
- writeUint32BE(fp, dfe->offset);
- writeUint32BE(fp, dfe->length);
-}
-
-static void createTableFile(TableFile *tf) {
- FILE *out;
- uint16 i, j;
- uint32 offset; /* dump offset */
-
- /* setup file entries table */
- assert(ARRAYSIZE(gameVersionsTable) < MAX_VERSIONS);
- for (i = 0; i < ARRAYSIZE(gameVersionsTable); ++i) {
- const GameVersion *gv = &gameVersionsTable[i];
- tf->dataFileEntriesTable[i].fileEntries = gv->dataFileEntries;
- tf->dataFileEntriesTable[i].fileEntriesCount = gv->dataFileEntriesCount;
- }
- tf->dataFileEntriesTableCount = ARRAYSIZE(gameVersionsTable);
-
- /* write queen table file */
- out = fopen(tf->outfile, "wb");
- if (!out) {
- printf("ERROR: can't write output file.\n");
- return;
- }
- /* write header tag */
- writeUint32BE(out, QTBL_TAG);
- /* write version */
- writeUint32BE(out, CURRENT_VERSION);
- /* write tables */
- offset = 4 + 4;
- for (i = 0; i < tf->dataFileEntriesTableCount; ++i) {
- const DataFileEntriesTable *dfet = &tf->dataFileEntriesTable[i];
- /* write number of entries in table */
- writeUint16BE(out, dfet->fileEntriesCount);
- /* write table entries */
- for (j = 0; j < dfet->fileEntriesCount; ++j) {
- const DataFileEntry *dfe = &dfet->fileEntries[j];
- writeEntry(out, dfe);
- }
- assert(gameVersionsTable[i].queenTblVersion <= CURRENT_VERSION);
- gameVersionsTable[i].queenTblOffset = offset;
- /* update offset */
- offset += 2 + dfet->fileEntriesCount * (12 + 1 + 4 + 4);
- }
- fclose(out);
-}
-
-static void printGameVersionTable() {
- unsigned int i;
- printf("const RetailGameVersion Resource::_gameVersions[] = {\n");
- for (i = 0; i < ARRAYSIZE(gameVersionsTable); ++i) {
- const GameVersion *gv = &gameVersionsTable[i];
- printf("\t{ \"%s\", %d, 0x%08X, %9d },\n", gv->id, gv->queenTblVersion, gv->queenTblOffset, gv->dataSize);
- }
- printf("};\n");
-}
-
-int main(int argc, char *argv[]) {
- TableFile tf;
- if (argc < 2) {
- printf("syntax: %s tablefile\n", argv[0]);
- exit(0);
- }
- memset(&tf, 0, sizeof(tf));
- tf.outfile = argv[1];
- createTableFile(&tf);
- printGameVersionTable();
- return 0;
-}