LAB: Refactor the remaining functions in labfile.cpp
This commit is contained in:
parent
eb0a52e7fb
commit
9ba30835a2
7 changed files with 41 additions and 108 deletions
|
@ -43,21 +43,16 @@ Resource::Resource(LabEngine *vm) : _vm(vm) {
|
|||
}
|
||||
|
||||
void Resource::readStaticText() {
|
||||
Common::File labTextFile;
|
||||
labTextFile.open(translateFileName("Lab:Rooms/LabText"));
|
||||
if (!labTextFile.isOpen())
|
||||
error("Unable to open file %s (Lab:Rooms/LabText)", translateFileName("Lab:Rooms/LabText"));
|
||||
Common::File *labTextFile = openDataFile("Lab:Rooms/LabText");
|
||||
|
||||
for (int i = 0; i < 48; i++)
|
||||
_staticText[i] = labTextFile.readLine();
|
||||
_staticText[i] = labTextFile->readLine();
|
||||
|
||||
labTextFile.close();
|
||||
delete labTextFile;
|
||||
}
|
||||
|
||||
TextFont *Resource::getFont(const char *fileName) {
|
||||
Common::File *dataFile;
|
||||
if (!(dataFile = openDataFile(fileName, MKTAG('V', 'G', 'A', 'F'))))
|
||||
error("getFont: couldn't open %s (%s)", translateFileName(fileName), fileName);
|
||||
Common::File *dataFile = openDataFile(fileName, MKTAG('V', 'G', 'A', 'F'));
|
||||
|
||||
uint32 headerSize = 4L + 2L + 256 * 3 + 4L;
|
||||
uint32 fileSize = dataFile->size();
|
||||
|
@ -79,10 +74,7 @@ TextFont *Resource::getFont(const char *fileName) {
|
|||
}
|
||||
|
||||
char *Resource::getText(const char *fileName) {
|
||||
Common::File *dataFile = new Common::File();
|
||||
dataFile->open(translateFileName(fileName));
|
||||
if (!dataFile->isOpen())
|
||||
error("getText: couldn't open %s (%s)", translateFileName(fileName), fileName);
|
||||
Common::File *dataFile = openDataFile(fileName);
|
||||
|
||||
g_lab->_music->updateMusic();
|
||||
|
||||
|
@ -94,6 +86,7 @@ char *Resource::getText(const char *fileName) {
|
|||
while (text && *text != '\0')
|
||||
*text++ -= (byte)95;
|
||||
|
||||
delete dataFile;
|
||||
return (char *)buffer;
|
||||
}
|
||||
|
||||
|
@ -166,6 +159,34 @@ bool Resource::readViews(uint16 roomNum) {
|
|||
return true;
|
||||
}
|
||||
|
||||
Common::String Resource::translateFileName(Common::String filename) {
|
||||
filename.toUppercase();
|
||||
Common::String fileNameStrFinal;
|
||||
|
||||
if (filename.hasPrefix("P:")) {
|
||||
if (g_lab->_isHiRes)
|
||||
fileNameStrFinal = "GAME/SPICT/";
|
||||
else
|
||||
fileNameStrFinal = "GAME/PICT/";
|
||||
}
|
||||
else if (filename.hasPrefix("LAB:"))
|
||||
fileNameStrFinal = "GAME/";
|
||||
else if (filename.hasPrefix("MUSIC:"))
|
||||
fileNameStrFinal = "GAME/MUSIC/";
|
||||
|
||||
if (filename.contains(':')) {
|
||||
while (filename[0] != ':') {
|
||||
filename.deleteChar(0);
|
||||
}
|
||||
|
||||
filename.deleteChar(0);
|
||||
}
|
||||
|
||||
fileNameStrFinal += filename;
|
||||
|
||||
return fileNameStrFinal;
|
||||
}
|
||||
|
||||
Common::File *Resource::openDataFile(const char *fileName, uint32 fileHeader) {
|
||||
Common::File *dataFile = new Common::File();
|
||||
dataFile->open(translateFileName(fileName));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue