From 79e323d6dd7a6270331068a9871b18902321ba0b Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sat, 22 Sep 2007 07:32:28 +0000 Subject: Added create_kyradat to our regular build system, too; fixed some warnings (and added a FIXME about ambiguious code) svn-id: r29012 --- tools/create_kyradat/create_kyradat.cpp | 16 +++++++++++----- tools/create_kyradat/module.mk | 16 ++++++++++++++++ 2 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 tools/create_kyradat/module.mk (limited to 'tools/create_kyradat') diff --git a/tools/create_kyradat/create_kyradat.cpp b/tools/create_kyradat/create_kyradat.cpp index 665db7d454..a6df6ae321 100644 --- a/tools/create_kyradat/create_kyradat.cpp +++ b/tools/create_kyradat/create_kyradat.cpp @@ -58,7 +58,7 @@ const ExtractType extractTypeTable[] = { { kTypeRoomList, extractRooms, createFilename }, { kTypeShapeList, extractShapes, createFilename }, { kTypeRawData, extractRaw, createFilename }, - { -1, 0 } + { -1, 0, 0} }; const ExtractFilename extractFilenames[] = { @@ -336,10 +336,16 @@ bool extractStrings(PAKFile &out, const Game *g, const byte *data, const uint32 // We simply skip every other string if (i == size) continue; - uint32 size = strlen((const char*) data + i); - i += size; targetsize = --targetsize - size; + uint32 len = strlen((const char*) data + i); + i += len; +#if 1 + // FIXME: Not sure whether this correct; the original code was ambiguious, see below + targetsize = targetsize - 1 - len; +#else + targetsize = --targetsize - len; // FIXME: This operation is undefined +#endif while (!data[++i]) { - if (i == size) + if (i == len) break; targetsize--; } @@ -404,7 +410,7 @@ bool extractStrings(PAKFile &out, const Game *g, const byte *data, const uint32 } else if (g->special == kAmigaVersion) { // we need to strip some aligment zeros out here int dstPos = 0; - for (int i = 0; i < size; ++i) { + for (uint32 i = 0; i < size; ++i) { if (!data[i] && ((i+1) & 0x1)) continue; *output++ = data[i]; diff --git a/tools/create_kyradat/module.mk b/tools/create_kyradat/module.mk new file mode 100644 index 0000000000..c8df680c40 --- /dev/null +++ b/tools/create_kyradat/module.mk @@ -0,0 +1,16 @@ +MODULE := tools/create_kyradat + +MODULE_DIRS += \ + tools/create_kyradat/ + +TOOLS += \ + $(MODULE)/create_kyradat$(EXEEXT) + +MODULE_OBJS := \ + $(MODULE)/create_kyradat.o \ + $(MODULE)/pak.o \ + $(MODULE)/md5.o \ + $(MODULE)/util.o + +$(MODULE)/create_kyradat$(EXEEXT): $(MODULE_OBJS) + $(CXX) $(LDFLAGS) $+ -o $@ -- cgit v1.2.3