aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authoruruk2013-07-05 01:18:02 +0200
committeruruk2013-07-05 01:18:02 +0200
commit430dcc037fa879f01e57526a814975914d252e8e (patch)
tree77971df6293dc3df2417ca463301ec28581521d7 /engines
parent7078b4de148dd895f50b1db66cb647ef43a51b85 (diff)
downloadscummvm-rg350-430dcc037fa879f01e57526a814975914d252e8e.tar.gz
scummvm-rg350-430dcc037fa879f01e57526a814975914d252e8e.tar.bz2
scummvm-rg350-430dcc037fa879f01e57526a814975914d252e8e.zip
AVALANCHE: Lucerna: Repair load_also().
Diffstat (limited to 'engines')
-rw-r--r--engines/avalanche/avalot.cpp2
-rw-r--r--engines/avalanche/lucerna2.cpp24
2 files changed, 12 insertions, 14 deletions
diff --git a/engines/avalanche/avalot.cpp b/engines/avalanche/avalot.cpp
index e5b000f919..67b543b111 100644
--- a/engines/avalanche/avalot.cpp
+++ b/engines/avalanche/avalot.cpp
@@ -146,7 +146,7 @@ void Avalot::setParent(AvalancheEngine *vm) {
void Avalot::run(Common::String arg) {
setup();
- _vm->_lucerna.load_also("1");
+ _vm->_lucerna.load_also("9");
do {
diff --git a/engines/avalanche/lucerna2.cpp b/engines/avalanche/lucerna2.cpp
index dbbcde1a62..68912c208f 100644
--- a/engines/avalanche/lucerna2.cpp
+++ b/engines/avalanche/lucerna2.cpp
@@ -111,6 +111,7 @@ void Lucerna::unscramble() {
scram1(_vm->_gyro.flags);
/* for fz:=1 to length(_vm->_gyro.also[fv,ff]^) do
_vm->_gyro.also[fv,ff]^[fz]:=chr(ord(_vm->_gyro.also[fv,ff]^[fz]) xor 177);*/
+ warning("STUB: Lucerna::unscramble()");
}
void Lucerna::load_also(char *n) {
@@ -142,53 +143,50 @@ void Lucerna::load_also(char *n) {
}
memset(_vm->_gyro.lines, 0xFF, sizeof(_vm->_gyro.lines));
-
- //fv = getpixel(0, 0);
- warning("STUB: Lucerna::load_also()");
-
+
fv = f.readByte();
for (byte i = 0; i < fv; i++) {
- _vm->_gyro.lines[i].col = f.readByte();
_vm->_gyro.lines[i].x1 = f.readSint16LE();
- _vm->_gyro.lines[i].x2 = f.readSint16LE();
_vm->_gyro.lines[i].y1 = f.readSint16LE();
+ _vm->_gyro.lines[i].x2 = f.readSint16LE();
_vm->_gyro.lines[i].y2 = f.readSint16LE();
+ _vm->_gyro.lines[i].col = f.readByte();
}
memset(_vm->_gyro.peds, 177, sizeof(_vm->_gyro.peds));
fv = f.readByte();
for (byte i = 0; i < fv; i++) {
- _vm->_gyro.peds[i].dir = f.readByte();
_vm->_gyro.peds[i].x = f.readSint16LE();
_vm->_gyro.peds[i].y = f.readSint16LE();
+ _vm->_gyro.peds[i].dir = f.readByte();
}
_vm->_gyro.numfields = f.readByte();
for (byte i = 0; i < _vm->_gyro.numfields; i++) {
_vm->_gyro.fields[i].x1 = f.readSint16LE();
- _vm->_gyro.fields[i].x2 = f.readSint16LE();
_vm->_gyro.fields[i].y1 = f.readSint16LE();
+ _vm->_gyro.fields[i].x2 = f.readSint16LE();
_vm->_gyro.fields[i].y2 = f.readSint16LE();
}
for (byte i = 0; i < 15; i++) {
- _vm->_gyro.magics[i].data = f.readUint16LE();
_vm->_gyro.magics[i].op = f.readByte();
+ _vm->_gyro.magics[i].data = f.readUint16LE();
}
for (byte i = 0; i < 7; i++) {
- _vm->_gyro.portals[i].data = f.readUint16LE();
_vm->_gyro.portals[i].op = f.readByte();
+ _vm->_gyro.portals[i].data = f.readUint16LE();
}
+ _vm->_gyro.flags.clear();
for (byte i = 0; i < 26; i++)
_vm->_gyro.flags += f.readByte();
- int16 listen_length;
- listen_length = f.readByte();
+ int16 listen_length = f.readByte();
_vm->_gyro.listen.clear();
for (byte i = 0; i < listen_length; i++)
- _vm->_gyro.listen.setChar(f.readByte(), i);
+ _vm->_gyro.listen += f.readByte();
draw_also_lines();