aboutsummaryrefslogtreecommitdiff
path: root/engines/lab/resource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/lab/resource.cpp')
-rw-r--r--engines/lab/resource.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/engines/lab/resource.cpp b/engines/lab/resource.cpp
index 290216c5e8..0c60924cda 100644
--- a/engines/lab/resource.cpp
+++ b/engines/lab/resource.cpp
@@ -58,7 +58,7 @@ void Resource::readStaticText() {
TextFont *Resource::getFont(const char *fileName) {
Common::File *dataFile;
if (!(dataFile = openDataFile(fileName, MKTAG('V', 'G', 'A', 'F'))))
- return NULL;
+ error("getFont: couldn't open %s (%s)", translateFileName(fileName), fileName);
uint32 headerSize = 4L + 2L + 256 * 3 + 4L;
uint32 fileSize = dataFile->size();
@@ -80,6 +80,25 @@ TextFont *Resource::getFont(const char *fileName) {
return textfont;
}
+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);
+
+ g_lab->_music->updateMusic();
+
+ byte count = dataFile->size();
+ byte *buffer = new byte[count];
+ byte *text = buffer;
+ dataFile->read(buffer, count);
+
+ while (text && *text != '\0')
+ *text++ -= (byte)95;
+
+ return (char *)buffer;
+}
+
bool Resource::readRoomData(const char *fileName) {
Common::File *dataFile;
if (!(dataFile = openDataFile(fileName, MKTAG('D', 'O', 'R', '1'))))