aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/create_kyradat/create_kyradat.cpp16
-rw-r--r--tools/create_kyradat/module.mk16
-rw-r--r--tools/create_lure/module.mk14
-rw-r--r--tools/module.mk9
4 files changed, 43 insertions, 12 deletions
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 $@
diff --git a/tools/create_lure/module.mk b/tools/create_lure/module.mk
new file mode 100644
index 0000000000..7fa5bafa7f
--- /dev/null
+++ b/tools/create_lure/module.mk
@@ -0,0 +1,14 @@
+MODULE := tools/create_lure
+
+MODULE_DIRS += \
+ tools/create_lure/
+
+TOOLS += \
+ $(MODULE)/create_lure$(EXEEXT)
+
+MODULE_OBJS := \
+ $(MODULE)/create_lure_dat.o \
+ $(MODULE)/process_actions.o
+
+$(MODULE)/create_lure$(EXEEXT): $(MODULE_OBJS)
+ $(CXX) $(LDFLAGS) $+ -o $@
diff --git a/tools/module.mk b/tools/module.mk
index a82ae70cdc..06ee6a573a 100644
--- a/tools/module.mk
+++ b/tools/module.mk
@@ -10,9 +10,9 @@ MODULE_DIRS += \
TOOLS := \
tools/convbdf$(EXEEXT) \
- tools/md5table$(EXEEXT) \
- tools/create_lure/create_lure$(EXEEXT)
+ tools/md5table$(EXEEXT)
+include $(srcdir)/tools/*/module.mk
# Make sure the 'all' / 'clean' targets build/clean the tools, too
all: tools
@@ -36,10 +36,6 @@ tools/md5table$(EXEEXT): $(srcdir)/tools/md5table.c
$(MKDIR) tools/$(DEPDIR)
$(CC) $(CFLAGS) -Wall -o $@ $<
-tools/create_lure/create_lure$(EXEEXT): tools/create_lure/create_lure_dat.o tools/create_lure/process_actions.o
- $(MKDIR) tools/create_lure/$(DEPDIR)
- $(CXX) $(LDFLAGS) $+ -o $@
-
#
# Rules to explicitly rebuild the credits / MD5 tables.
# The rules for the files in the "web" resp. "docs" modules
@@ -79,5 +75,4 @@ md5scumm: tools/md5table$(EXEEXT)
# $(srcdir)/tools/credits.pl --cpp > $@
-
.PHONY: clean-tools tools credits md5scumm md5simon