aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2008-06-10 21:14:38 +0000
committerFilippos Karapetis2008-06-10 21:14:38 +0000
commit7453cf8b0b297b8a8e5b0dec13405ccc924abf8b (patch)
tree3d86c495564dbfb96fd542c242f7bb55d01e7e3a
parentbdfdf0e7b355092aff80fe952ba4d1712a4293fe (diff)
downloadscummvm-rg350-7453cf8b0b297b8a8e5b0dec13405ccc924abf8b.tar.gz
scummvm-rg350-7453cf8b0b297b8a8e5b0dec13405ccc924abf8b.tar.bz2
scummvm-rg350-7453cf8b0b297b8a8e5b0dec13405ccc924abf8b.zip
Write signed values as signed (the actual contents of drascula.dat remain unchanged)
svn-id: r32652
-rw-r--r--tools/create_drascula/create_drascula.cpp80
-rw-r--r--tools/create_drascula/create_drascula.h1
2 files changed, 43 insertions, 38 deletions
diff --git a/tools/create_drascula/create_drascula.cpp b/tools/create_drascula/create_drascula.cpp
index cedce4070f..fd3e7872d7 100644
--- a/tools/create_drascula/create_drascula.cpp
+++ b/tools/create_drascula/create_drascula.cpp
@@ -49,6 +49,10 @@ static void writeUint16BE(FILE *fp, uint16 value) {
writeByte(fp, (uint8)(value & 0xFF));
}
+void writeSint16BE(FILE *fp, int16 value) {
+ writeUint16BE(fp, (uint16)value);
+}
+
int main(int argc, char *argv[]) {
FILE* outFile;
int i, lang;
@@ -69,103 +73,103 @@ int main(int argc, char *argv[]) {
writeUint16BE(outFile, ARRAYSIZE(charMap));
for (i = 0; i < ARRAYSIZE(charMap); i++) {
writeByte(outFile, charMap[i].inChar);
- writeUint16BE(outFile, charMap[i].mappedChar);
+ writeSint16BE(outFile, charMap[i].mappedChar);
writeByte(outFile, charMap[i].charType);
}
// Write item locations
writeUint16BE(outFile, ARRAYSIZE(itemLocations));
for (i = 0; i < ARRAYSIZE(itemLocations); i++) {
- writeUint16BE(outFile, itemLocations[i].x);
- writeUint16BE(outFile, itemLocations[i].y);
+ writeSint16BE(outFile, itemLocations[i].x);
+ writeSint16BE(outFile, itemLocations[i].y);
}
// Write x_pol and y_pol
writeUint16BE(outFile, ARRAYSIZE(x_pol));
for (i = 0; i < ARRAYSIZE(x_pol); i++) {
- writeUint16BE(outFile, x_pol[i]);
- writeUint16BE(outFile, y_pol[i]);
+ writeSint16BE(outFile, x_pol[i]);
+ writeSint16BE(outFile, y_pol[i]);
}
// Write verbBarX
writeUint16BE(outFile, ARRAYSIZE(verbBarX));
for (i = 0; i < ARRAYSIZE(verbBarX); i++) {
- writeUint16BE(outFile, verbBarX[i]);
+ writeSint16BE(outFile, verbBarX[i]);
}
// Write x1d_menu and y1d_menu
writeUint16BE(outFile, ARRAYSIZE(x1d_menu));
for (i = 0; i < ARRAYSIZE(x1d_menu); i++) {
- writeUint16BE(outFile, x1d_menu[i]);
- writeUint16BE(outFile, y1d_menu[i]);
+ writeSint16BE(outFile, x1d_menu[i]);
+ writeSint16BE(outFile, y1d_menu[i]);
}
// Write frameX
writeUint16BE(outFile, ARRAYSIZE(frameX));
for (i = 0; i < ARRAYSIZE(frameX); i++) {
- writeUint16BE(outFile, frameX[i]);
+ writeSint16BE(outFile, frameX[i]);
}
// Write candleX and candleY
writeUint16BE(outFile, ARRAYSIZE(candleX));
for (i = 0; i < ARRAYSIZE(candleX); i++) {
- writeUint16BE(outFile, candleX[i]);
- writeUint16BE(outFile, candleY[i]);
+ writeSint16BE(outFile, candleX[i]);
+ writeSint16BE(outFile, candleY[i]);
}
// Write pianistX
writeUint16BE(outFile, ARRAYSIZE(pianistX));
for (i = 0; i < ARRAYSIZE(pianistX); i++) {
- writeUint16BE(outFile, pianistX[i]);
+ writeSint16BE(outFile, pianistX[i]);
}
// Write drunkX
writeUint16BE(outFile, ARRAYSIZE(drunkX));
for (i = 0; i < ARRAYSIZE(drunkX); i++) {
- writeUint16BE(outFile, drunkX[i]);
+ writeSint16BE(outFile, drunkX[i]);
}
// Write preupdates
writeUint16BE(outFile, ARRAYSIZE(roomPreUpdates));
for (i = 0; i < ARRAYSIZE(roomPreUpdates); i++) {
- writeUint16BE(outFile, roomPreUpdates[i].roomNum);
- writeUint16BE(outFile, roomPreUpdates[i].flag);
- writeUint16BE(outFile, roomPreUpdates[i].flagValue);
- writeUint16BE(outFile, roomPreUpdates[i].sourceX);
- writeUint16BE(outFile, roomPreUpdates[i].sourceY);
- writeUint16BE(outFile, roomPreUpdates[i].destX);
- writeUint16BE(outFile, roomPreUpdates[i].destY);
- writeUint16BE(outFile, roomPreUpdates[i].width);
- writeUint16BE(outFile, roomPreUpdates[i].height);
- writeUint16BE(outFile, roomPreUpdates[i].type);
+ writeSint16BE(outFile, roomPreUpdates[i].roomNum);
+ writeSint16BE(outFile, roomPreUpdates[i].flag);
+ writeSint16BE(outFile, roomPreUpdates[i].flagValue);
+ writeSint16BE(outFile, roomPreUpdates[i].sourceX);
+ writeSint16BE(outFile, roomPreUpdates[i].sourceY);
+ writeSint16BE(outFile, roomPreUpdates[i].destX);
+ writeSint16BE(outFile, roomPreUpdates[i].destY);
+ writeSint16BE(outFile, roomPreUpdates[i].width);
+ writeSint16BE(outFile, roomPreUpdates[i].height);
+ writeSint16BE(outFile, roomPreUpdates[i].type);
}
// Write updates
writeUint16BE(outFile, ARRAYSIZE(roomUpdates));
for (i = 0; i < ARRAYSIZE(roomUpdates); i++) {
- writeUint16BE(outFile, roomUpdates[i].roomNum);
- writeUint16BE(outFile, roomUpdates[i].flag);
- writeUint16BE(outFile, roomUpdates[i].flagValue);
- writeUint16BE(outFile, roomUpdates[i].sourceX);
- writeUint16BE(outFile, roomUpdates[i].sourceY);
- writeUint16BE(outFile, roomUpdates[i].destX);
- writeUint16BE(outFile, roomUpdates[i].destY);
- writeUint16BE(outFile, roomUpdates[i].width);
- writeUint16BE(outFile, roomUpdates[i].height);
- writeUint16BE(outFile, roomUpdates[i].type);
+ writeSint16BE(outFile, roomUpdates[i].roomNum);
+ writeSint16BE(outFile, roomUpdates[i].flag);
+ writeSint16BE(outFile, roomUpdates[i].flagValue);
+ writeSint16BE(outFile, roomUpdates[i].sourceX);
+ writeSint16BE(outFile, roomUpdates[i].sourceY);
+ writeSint16BE(outFile, roomUpdates[i].destX);
+ writeSint16BE(outFile, roomUpdates[i].destY);
+ writeSint16BE(outFile, roomUpdates[i].width);
+ writeSint16BE(outFile, roomUpdates[i].height);
+ writeSint16BE(outFile, roomUpdates[i].type);
}
// Write room actions
writeUint16BE(outFile, ARRAYSIZE(roomActions));
for (i = 0; i < ARRAYSIZE(roomActions); i++) {
- writeUint16BE(outFile, roomActions[i].room);
- writeUint16BE(outFile, roomActions[i].chapter);
- writeUint16BE(outFile, roomActions[i].action);
- writeUint16BE(outFile, roomActions[i].objectID);
- writeUint16BE(outFile, roomActions[i].speechID);
+ writeSint16BE(outFile, roomActions[i].room);
+ writeSint16BE(outFile, roomActions[i].chapter);
+ writeSint16BE(outFile, roomActions[i].action);
+ writeSint16BE(outFile, roomActions[i].objectID);
+ writeSint16BE(outFile, roomActions[i].speechID);
}
// langs
diff --git a/tools/create_drascula/create_drascula.h b/tools/create_drascula/create_drascula.h
index 0c6a5774df..ed81651e86 100644
--- a/tools/create_drascula/create_drascula.h
+++ b/tools/create_drascula/create_drascula.h
@@ -49,6 +49,7 @@
typedef unsigned char uint8;
typedef unsigned short uint16;
+typedef signed short int16;
enum Verbs {
kVerbDefault = -1,