[Scummvm-cvs-logs] SF.net SVN: scummvm:[42669] tools/branches/gsoc2009-gui
remere at users.sourceforge.net
remere at users.sourceforge.net
Thu Jul 23 00:22:08 CEST 2009
Revision: 42669
http://scummvm.svn.sourceforge.net/scummvm/?rev=42669&view=rev
Author: remere
Date: 2009-07-22 22:22:08 +0000 (Wed, 22 Jul 2009)
Log Message:
-----------
*Fixed errors/warnings in some secondary tools caused when removing some old functions.
Modified Paths:
--------------
tools/branches/gsoc2009-gui/desword2.cpp
tools/branches/gsoc2009-gui/util.cpp
tools/branches/gsoc2009-gui/util.h
Modified: tools/branches/gsoc2009-gui/desword2.cpp
===================================================================
--- tools/branches/gsoc2009-gui/desword2.cpp 2009-07-22 20:37:48 UTC (rev 42668)
+++ tools/branches/gsoc2009-gui/desword2.cpp 2009-07-22 22:22:08 UTC (rev 42669)
@@ -269,8 +269,8 @@
}
}
-int main(int argc, char *argv[]) {
- FILE *in;
+int entry(int argc, char *argv[]) {
+ File in;
uint8 type;
char name[34];
int32 size;
@@ -284,11 +284,7 @@
return EXIT_FAILURE;
}
- in = fopen(argv[1], "rb");
- if (!in) {
- printf("Cannot open `%s' for reading\n", argv[1]);
- return EXIT_FAILURE;
- }
+ in.open(argv[1], "rb");
/* Standard header
*
@@ -299,14 +295,14 @@
* 34 bytes name of object
*/
- type = readByte(in);
+ type = in.readByte();
if (type != GAME_OBJECT && type != SCREEN_MANAGER) {
printf("This resource type does not include any scripts\n");
return EXIT_FAILURE;
}
- fseek(in, 9, SEEK_CUR);
- fread(name, 1, sizeof(name), in);
+ in.seek(9, SEEK_CUR);
+ in.read(name, 1, sizeof(name));
printf("\"%s\"\n", name);
@@ -319,7 +315,7 @@
* 12 bytes script_pc
*/
- fseek(in, 44, SEEK_CUR);
+ in.seek(44, SEEK_CUR);
/* Script data
*
@@ -329,15 +325,15 @@
* offsets for each script (4 bytes each)
*/
- size = (int32) readUint32LE(in);
- fseek(in, size, SEEK_CUR);
+ size = (int32) in.readUint32LE();
+ in.seek(size, SEEK_CUR);
- numScripts = (int32) readUint32LE(in);
+ numScripts = (int32) in.readUint32LE();
printf("numScripts = %d\n", numScripts);
for (i = 0; i < numScripts; i++)
- scriptOffsets[i] = (int32) readUint32LE(in);
+ scriptOffsets[i] = (int32) in.readUint32LE();
/* Checksum block
*
@@ -346,9 +342,9 @@
* 4 bytes checksum
*/
- fseek(in, 12, SEEK_CUR);
+ in.seek(12, SEEK_CUR);
- scriptBase = ftell(in);
+ scriptBase = in.pos();
for (i = 0; i < numScripts; i++) {
int done = 0;
@@ -356,7 +352,7 @@
printf("\nScript #%d\n\n", i + 1);
- fseek(in, scriptBase + scriptOffsets[i], SEEK_SET);
+ in.seek(scriptBase + scriptOffsets[i], SEEK_SET);
while (!done) {
uint32 curCommand;
@@ -366,7 +362,7 @@
printf("%04x: ", pc);
- curCommand = readByte(in);
+ curCommand = in.readByte();
pc++;
switch (curCommand) {
@@ -375,91 +371,91 @@
done = 1;
break;
case CP_PUSH_LOCAL_VAR32:
- parameter = (int16) readUint16LE(in);
+ parameter = (int16) in.readUint16LE();
pc += 2;
printf("PUSH local(%d)\n", parameter);
break;
case CP_PUSH_GLOBAL_VAR32:
- parameter = (int16) readUint16LE(in);
+ parameter = (int16) in.readUint16LE();
pc += 2;
printf("PUSH %s\n", globalVar(parameter));
break;
case CP_POP_LOCAL_VAR32:
- parameter = (int16) readUint16LE(in);
+ parameter = (int16) in.readUint16LE();
pc += 2;
printf("POP -> local(%d)\n", parameter);
break;
case CP_CALL_MCODE:
- parameter = (int16) readUint16LE(in);
- value = (int8) readByte(in);
+ parameter = (int16) in.readUint16LE();
+ value = (int8) in.readByte();
pc += 3;
printf("CALL %d, %s\n", value, opcodes[parameter]);
break;
case CP_PUSH_LOCAL_ADDR:
- parameter = (int16) readUint16LE(in);
+ parameter = (int16) in.readUint16LE();
pc += 2;
printf("PUSH &local(%d)\n", parameter);
break;
case CP_PUSH_INT32:
- parameter = (int32) readUint32LE(in);
+ parameter = (int32) in.readUint32LE();
pc += 4;
printf("PUSH %d\n", parameter);
break;
case CP_SKIPONFALSE:
- parameter = (int32) readUint32LE(in);
+ parameter = (int32) in.readUint32LE();
printf("IFNOT POP THEN JUMP %04x\n", pc + parameter);
pc += 4;
break;
case CP_SKIPALWAYS:
- parameter = (int32) readUint32LE(in);
+ parameter = (int32) in.readUint32LE();
printf("JUMP %04x\n", pc + parameter);
pc += 4;
break;
case CP_SWITCH:
- caseCount = (int32) readUint32LE(in);
+ caseCount = (int32) in.readUint32LE();
pc += 4;
printf("SWITCH POP\n");
for (j = 0; j < caseCount; j++) {
int32 to;
- value = (int32) readUint32LE(in);
- to = (int32) readUint32LE(in);
+ value = (int32) in.readUint32LE();
+ to = (int32) in.readUint32LE();
printf("----: %-7d -> JUMP %04x\n", value, pc + to);
pc += 8;
}
- printf("----: default -> JUMP %04x\n", pc + (int32) readUint32LE(in));
+ printf("----: default -> JUMP %04x\n", pc + (int32) in.readUint32LE());
pc += 4;
break;
case CP_ADDNPOP_LOCAL_VAR32:
- parameter = (int16) readUint16LE(in);
+ parameter = (int16) in.readUint16LE();
pc += 2;
printf("local(%d) += POP\n", parameter);
break;
case CP_SUBNPOP_LOCAL_VAR32:
- parameter = (int16) readUint16LE(in);
+ parameter = (int16) in.readUint16LE();
pc += 2;
printf("local(%d) -= POP\n", parameter);
break;
case CP_SKIPONTRUE:
- parameter = (int32) readUint32LE(in);
+ parameter = (int32) in.readUint32LE();
printf("IF POP THEN JUMP %04x\n", pc + parameter);
pc += 4;
break;
case CP_POP_GLOBAL_VAR32:
- parameter = (int16) readUint16LE(in);
+ parameter = (int16) in.readUint16LE();
pc += 2;
printf("%s = POP\n", globalVar(parameter));
break;
case CP_ADDNPOP_GLOBAL_VAR32:
- parameter = (int16) readUint16LE(in);
+ parameter = (int16) in.readUint16LE();
pc += 2;
printf("%s += POP\n", globalVar(parameter));
break;
case CP_SUBNPOP_GLOBAL_VAR32:
- parameter = (int16) readUint16LE(in);
+ parameter = (int16) in.readUint16LE();
pc += 2;
printf("%s -= POP\n", globalVar(parameter));
break;
@@ -503,12 +499,12 @@
printf("PUSH POP < POP\n");
break;
case CP_JUMP_ON_RETURNED:
- readByte(in);
+ in.readByte();
printf("JUMP_ON_RETURNED\n");
pc++;
break;
case CP_TEMP_TEXT_PROCESS:
- readUint32LE(in);
+ in.readUint32LE();
pc += 4;
printf("TEMP_TEXT_PROCESS\n");
break;
@@ -519,19 +515,19 @@
printf("RESTART_SCRIPT\n");
break;
case CP_PUSH_STRING:
- parameter = (int8) readByte(in);
+ parameter = (int8) in.readByte();
printf("PUSH \"");
for (j = 0; j < parameter; j++) {
- byte c = readByte(in);
+ byte c = in.readByte();
fputc(c, stdout);
pc++;
}
printf("\"\n");
- readByte(in);
+ in.readByte();
pc += 2;
break;
case CP_PUSH_DEREFERENCED_STRUCTURE:
- parameter = (int32) readUint32LE(in);
+ parameter = (int32) in.readUint32LE();
pc += 4;
printf("PUSH far(%d)\n", parameter);
break;
@@ -551,7 +547,17 @@
}
}
- fclose(in);
-
return EXIT_SUCCESS;
}
+
+int main(int argc, char *argv[]) {
+ // Catch exceptions
+ try {
+ return entry(argc, argv);
+ } catch(std::exception &e) {
+ printf("Fatal Error: %s\n", e.what());
+ }
+ return -1;
+}
+
+
Modified: tools/branches/gsoc2009-gui/util.cpp
===================================================================
--- tools/branches/gsoc2009-gui/util.cpp 2009-07-22 20:37:48 UTC (rev 42668)
+++ tools/branches/gsoc2009-gui/util.cpp 2009-07-22 22:22:08 UTC (rev 42669)
@@ -102,70 +102,6 @@
fprintf(stdout, "%s\n", buf);
}
-uint8 readByte(FILE *fp) {
- return (uint8)fgetc(fp);
-}
-
-uint16 readUint16BE(FILE *fp) {
- uint16 ret = 0;
- ret |= fgetc(fp) << 8;
- ret |= fgetc(fp);
- return ret;
-}
-
-uint16 readUint16LE(FILE *fp) {
- uint16 ret = 0;
- ret |= fgetc(fp);
- ret |= fgetc(fp) << 8;
- return ret;
-}
-
-uint32 readUint32BE(FILE *fp) {
- uint32 ret = 0;
- ret |= fgetc(fp) << 24;
- ret |= fgetc(fp) << 16;
- ret |= fgetc(fp) << 8;
- ret |= fgetc(fp);
- return ret;
-}
-
-uint32 readUint32LE(FILE *fp) {
- uint32 ret = 0;
- ret |= fgetc(fp);
- ret |= fgetc(fp) << 8;
- ret |= fgetc(fp) << 16;
- ret |= fgetc(fp) << 24;
- return ret;
-}
-
-void writeByte(FILE *fp, uint8 b) {
- fwrite(&b, 1, 1, fp);
-}
-
-void writeUint16BE(FILE *fp, uint16 value) {
- writeByte(fp, (uint8)(value >> 8));
- writeByte(fp, (uint8)(value));
-}
-
-void writeUint16LE(FILE *fp, uint16 value) {
- writeByte(fp, (uint8)(value));
- writeByte(fp, (uint8)(value >> 8));
-}
-
-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));
-}
-
-void writeUint32LE(FILE *fp, uint32 value) {
- writeByte(fp, (uint8)(value));
- writeByte(fp, (uint8)(value >> 8));
- writeByte(fp, (uint8)(value >> 16));
- writeByte(fp, (uint8)(value >> 24));
-}
-
uint32 fileSize(FILE *fp) {
uint32 sz;
uint32 pos = ftell(fp);
@@ -468,7 +404,7 @@
std::string s;
try {
char c;
- while (c = readByte()) {
+ while ((c = readByte())) {
s += c;
}
} catch (FileException &) {
Modified: tools/branches/gsoc2009-gui/util.h
===================================================================
--- tools/branches/gsoc2009-gui/util.h 2009-07-22 20:37:48 UTC (rev 42668)
+++ tools/branches/gsoc2009-gui/util.h 2009-07-22 22:22:08 UTC (rev 42669)
@@ -62,20 +62,6 @@
/*
- * Tools should not implement the actual main() themselves
- * when they are compiled as a part of the master tool. So
- * we make a macro to rename it automatically
- *
- * Perhaps EXPORT_MAIN is a bad name though.
- */
-
-#ifdef EXPORT_MAIN
- #define export_main(tool_name) main_ ## tool_name
-#else
- #define export_main(tool_name) main
-#endif
-
-/*
* Various utility macros
*/
@@ -207,6 +193,13 @@
#define NORETURN_POST
#endif
+
+/**
+ * Returns the size of the FILE
+ * Technically all code should use the File class instead, but until then we need this
+ */
+size_t fileSize(FILE *f);
+
/* Misc stuff */
void NORETURN_PRE error(const char *s, ...) NORETURN_POST;
void warning(const char *s, ...);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list