SUPERNOVA: Add tool skeleton to generate engine data file
The tool is only a skeleton at this point. Most of the logic is there but it is missing the data to write the German strings and it is missing the logic to write the translated strings. This means that currently the only data written are bitmap images.
This commit is contained in:
parent
65d30cf720
commit
f9310e11d8
6 changed files with 639 additions and 0 deletions
72
devtools/create_supernova/file.cpp
Normal file
72
devtools/create_supernova/file.cpp
Normal file
|
@ -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);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue