aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/map_v1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/gob/map_v1.cpp')
-rw-r--r--engines/gob/map_v1.cpp32
1 files changed, 19 insertions, 13 deletions
diff --git a/engines/gob/map_v1.cpp b/engines/gob/map_v1.cpp
index d8898c83d3..372f501887 100644
--- a/engines/gob/map_v1.cpp
+++ b/engines/gob/map_v1.cpp
@@ -23,7 +23,7 @@
*
*/
-#include "common/stream.h"
+#include "common/memstream.h"
#include "gob/gob.h"
#include "gob/map.h"
@@ -44,7 +44,8 @@ void Map_v1::init() {
if (_passMap || _itemsMap)
return;
- _mapWidth = 26;
+ _passWidth = 26;
+ _mapWidth = 26;
_mapHeight = 28;
_passMap = new int8[_mapHeight * _mapWidth];
@@ -56,9 +57,9 @@ void Map_v1::init() {
memset(_itemsMap[i], 0, _mapWidth * sizeof(int16));
}
- _wayPointsCount = 40;
- _wayPoints = new Point[40];
- memset(_wayPoints, 0, sizeof(Point));
+ _wayPointCount = 40;
+ _wayPoints = new WayPoint[40];
+ memset(_wayPoints, 0, sizeof(WayPoint));
}
void Map_v1::loadMapObjects(const char *avjFile) {
@@ -74,13 +75,13 @@ void Map_v1::loadMapObjects(const char *avjFile) {
strcpy(avoName, _sourceFile);
strcat(avoName, ".avo");
- if (_vm->_dataIO->existData(avoName)) {
- _loadFromAvo = true;
- dataBuf = _vm->_dataIO->getData(avoName);
- } else {
+ int32 size;
+ dataBuf = _vm->_dataIO->getFile(avoName, size);
+ if (!dataBuf) {
+ dataBuf = _vm->_dataIO->getFile(avjFile, size);
_loadFromAvo = false;
- dataBuf = _vm->_dataIO->getData(avjFile);
- }
+ } else
+ _loadFromAvo = true;
Common::MemoryReadStream mapData(dataBuf, 4294967295U);
@@ -97,7 +98,12 @@ void Map_v1::loadMapObjects(const char *avjFile) {
_wayPoints[i].x = mapData.readUint16LE();
_wayPoints[i].y = mapData.readUint16LE();
}
- mapData.read(_itemPoses, szMap_ItemPos * 20);
+
+ for (int i = 0; i < 20; i++) {
+ _itemPoses[i].x = mapData.readByte();
+ _itemPoses[i].y = mapData.readByte();
+ _itemPoses[i].orient = mapData.readByte();
+ }
}
mapData.skip(32 + 76 + 4 + 20);
@@ -159,7 +165,7 @@ void Map_v1::loadSounds(Common::SeekableReadStream &data) {
_vm->_sound->sampleLoad(&_vm->_goblin->_soundData[14], SOUND_SND, "diamant1.snd");
for (int i = 0; i < count; i++) {
- if (!_vm->_dataIO->existData(sndNames[i]))
+ if (!_vm->_dataIO->hasFile(sndNames[i]))
continue;
_vm->_sound->sampleLoad(&_vm->_goblin->_soundData[i], SOUND_SND, sndNames[i]);