mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-16 06:39:17 +00:00
f9310e11d8
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.
73 lines
1.2 KiB
C++
73 lines
1.2 KiB
C++
#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);
|
|
}
|