diff options
author | Jaromir Wysoglad | 2019-05-27 18:49:01 +0200 |
---|---|---|
committer | Thierry Crozat | 2019-07-28 15:09:14 +0100 |
commit | 0ed3dbf21f5dc2eb6bb90324d77937e68189a43a (patch) | |
tree | 1a251dd153bff0e28ee970e5cf52f829b7dc9b44 /devtools/create_supernova2/file.cpp | |
parent | 9bf7dc817fb76e59b97c673f7f4cd555ffcdd42c (diff) | |
download | scummvm-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.cpp | 72 |
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); +} |