aboutsummaryrefslogtreecommitdiff
path: root/devtools/create_supernova2/file.cpp
diff options
context:
space:
mode:
authorJaromir Wysoglad2019-05-27 18:49:01 +0200
committerThierry Crozat2019-07-28 15:09:14 +0100
commit0ed3dbf21f5dc2eb6bb90324d77937e68189a43a (patch)
tree1a251dd153bff0e28ee970e5cf52f829b7dc9b44 /devtools/create_supernova2/file.cpp
parent9bf7dc817fb76e59b97c673f7f4cd555ffcdd42c (diff)
downloadscummvm-rg350-0ed3dbf21f5dc2eb6bb90324d77937e68189a43a.tar.gz
scummvm-rg350-0ed3dbf21f5dc2eb6bb90324d77937e68189a43a.tar.bz2
scummvm-rg350-0ed3dbf21f5dc2eb6bb90324d77937e68189a43a.zip
SUPERNOVA2: add tool to generate engine data file
Most of the tool is copied from create supernova Add correct gametext.h and strings_en.po for supernova2 Doesn't handle images yet
Diffstat (limited to 'devtools/create_supernova2/file.cpp')
-rw-r--r--devtools/create_supernova2/file.cpp72
1 files changed, 72 insertions, 0 deletions
diff --git a/devtools/create_supernova2/file.cpp b/devtools/create_supernova2/file.cpp
new file mode 100644
index 0000000000..5fb842aff6
--- /dev/null
+++ b/devtools/create_supernova2/file.cpp
@@ -0,0 +1,72 @@
+#include "file.h"
+
+bool File::open(const char *filename, AccessMode mode) {
+ f = fopen(filename, (mode == kFileReadMode) ? "rb" : "wb");
+ return (f != NULL);
+}
+
+void File::close() {
+ fclose(f);
+ f = NULL;
+}
+
+int File::seek(int32 offset, int whence) {
+ return fseek(f, offset, whence);
+}
+
+long File::read(void *buffer, int len) {
+ return fread(buffer, 1, len, f);
+}
+void File::write(const void *buffer, int len) {
+ fwrite(buffer, 1, len, f);
+}
+
+byte File::readByte() {
+ byte v;
+ read(&v, sizeof(byte));
+ return v;
+}
+
+uint16 File::readWord() {
+ uint16 v;
+ read(&v, sizeof(uint16));
+ return FROM_LE_16(v);
+}
+
+uint32 File::readLong() {
+ uint32 v;
+ read(&v, sizeof(uint32));
+ return FROM_LE_32(v);
+}
+
+void File::readString(char* string, int bufferLength) {
+ int i = 0;
+ while (i < bufferLength - 1 && fread(string + i, 1, 1, f) == 1) {
+ if (string[i] == '\n' || string[i] == 0)
+ break;
+ ++ i;
+ }
+ string[i] = 0;
+}
+
+void File::writeByte(byte v) {
+ write(&v, sizeof(byte));
+}
+
+void File::writeWord(uint16 v) {
+ uint16 vTemp = TO_LE_16(v);
+ write(&vTemp, sizeof(uint16));
+}
+
+void File::writeLong(uint32 v) {
+ uint32 vTemp = TO_LE_32(v);
+ write(&vTemp, sizeof(uint32));
+}
+
+void File::writeString(const char *s) {
+ write(s, strlen(s) + 1);
+}
+
+uint32 File::pos() {
+ return ftell(f);
+}