[Scummvm-cvs-logs] SF.net SVN: scummvm:[42541] scummvm/branches/gsoc2009-draci/engines/draci

dkasak13 at users.sourceforge.net dkasak13 at users.sourceforge.net
Thu Jul 16 20:31:15 CEST 2009


Revision: 42541
          http://scummvm.svn.sourceforge.net/scummvm/?rev=42541&view=rev
Author:   dkasak13
Date:     2009-07-16 18:31:15 +0000 (Thu, 16 Jul 2009)

Log Message:
-----------
* Added WalkingMaps class
* Added DraciEngine::walkingMapsArchive
* Made Game::loadRoom() read in the current walking map

Modified Paths:
--------------
    scummvm/branches/gsoc2009-draci/engines/draci/draci.cpp
    scummvm/branches/gsoc2009-draci/engines/draci/draci.h
    scummvm/branches/gsoc2009-draci/engines/draci/game.cpp
    scummvm/branches/gsoc2009-draci/engines/draci/game.h

Modified: scummvm/branches/gsoc2009-draci/engines/draci/draci.cpp
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/draci.cpp	2009-07-16 17:51:12 UTC (rev 42540)
+++ scummvm/branches/gsoc2009-draci/engines/draci/draci.cpp	2009-07-16 18:31:15 UTC (rev 42541)
@@ -51,6 +51,7 @@
 const Common::String roomsPath("MIST.DFW");
 const Common::String animationsPath("ANIM.DFW");
 const Common::String iconsPath("HRA.DFW");
+const Common::String walkingMapsPath("MAPY.DFW");
 
 DraciEngine::DraciEngine(OSystem *syst, const ADGameDescription *gameDesc) 
  : Engine(syst) {
@@ -86,6 +87,7 @@
 	_overlaysArchive = new BArchive(overlaysPath);
 	_animationsArchive = new BArchive(animationsPath);
 	_iconsArchive = new BArchive(iconsPath);
+	_walkingMapsArchive = new BArchive(walkingMapsPath);
 
 	// Load the game's fonts
 	_smallFont = new Font(kFontSmall);
@@ -182,6 +184,7 @@
 	delete _overlaysArchive;
 	delete _animationsArchive;
 	delete _iconsArchive;
+	delete _walkingMapsArchive;
 	
 	// Remove all of our debug levels here
 	Common::clearAllDebugChannels();

Modified: scummvm/branches/gsoc2009-draci/engines/draci/draci.h
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/draci.h	2009-07-16 17:51:12 UTC (rev 42540)
+++ scummvm/branches/gsoc2009-draci/engines/draci/draci.h	2009-07-16 18:31:15 UTC (rev 42541)
@@ -67,6 +67,7 @@
 	BArchive *_roomsArchive;
 	BArchive *_overlaysArchive;
 	BArchive *_animationsArchive;
+	BArchive *_walkingMapsArchive;
 
 	Common::RandomSource _rnd;
 };

Modified: scummvm/branches/gsoc2009-draci/engines/draci/game.cpp
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/game.cpp	2009-07-16 17:51:12 UTC (rev 42540)
+++ scummvm/branches/gsoc2009-draci/engines/draci/game.cpp	2009-07-16 18:31:15 UTC (rev 42541)
@@ -157,7 +157,11 @@
 	roomReader.readUint32LE(); // Pointer to room title, not used
 
 	_currentRoom._music = roomReader.readByte();
-	_currentRoom._map = roomReader.readByte() - 1;
+
+	int mapIdx = roomReader.readByte() - 1;
+	f = _vm->_walkingMapsArchive->getFile(mapIdx);
+	_currentRoom._walkingMap.load(f->_data, f->_length);
+
 	_currentRoom._palette = roomReader.readByte() - 1;
 	_currentRoom._numMasks = roomReader.readSint16LE();
 	_currentRoom._init = roomReader.readSint16LE();
@@ -174,23 +178,23 @@
 	_currentRoom._escRoom = roomReader.readByte() - 1;
 	_currentRoom._numGates = roomReader.readByte();
 
-	debugC(4, kDraciLogicDebugLevel, "_music: %d", _currentRoom._music);
-	debugC(4, kDraciLogicDebugLevel, "_map: %d", _currentRoom._map);
-	debugC(4, kDraciLogicDebugLevel, "_palette: %d", _currentRoom._palette);
-	debugC(4, kDraciLogicDebugLevel, "_numMasks: %d", _currentRoom._numMasks);
-	debugC(4, kDraciLogicDebugLevel, "_init: %d", _currentRoom._init);
-	debugC(4, kDraciLogicDebugLevel, "_look: %d", _currentRoom._look);
-	debugC(4, kDraciLogicDebugLevel, "_use: %d", _currentRoom._use);
-	debugC(4, kDraciLogicDebugLevel, "_canUse: %d", _currentRoom._canUse);
-	debugC(4, kDraciLogicDebugLevel, "_imInit: %d", _currentRoom._imInit);
-	debugC(4, kDraciLogicDebugLevel, "_imLook: %d", _currentRoom._imLook);
-	debugC(4, kDraciLogicDebugLevel, "_imUse: %d", _currentRoom._imUse);
-	debugC(4, kDraciLogicDebugLevel, "_mouseOn: %d", _currentRoom._mouseOn);
-	debugC(4, kDraciLogicDebugLevel, "_heroOn: %d", _currentRoom._heroOn);
-	debugC(4, kDraciLogicDebugLevel, "_pers0: %f", _currentRoom._pers0);
-	debugC(4, kDraciLogicDebugLevel, "_persStep: %f", _currentRoom._persStep);
-	debugC(4, kDraciLogicDebugLevel, "_escRoom: %d", _currentRoom._escRoom);
-	debugC(4, kDraciLogicDebugLevel, "_numGates: %d", _currentRoom._numGates);
+	debugC(4, kDraciLogicDebugLevel, "Music: %d", _currentRoom._music);
+	debugC(4, kDraciLogicDebugLevel, "Map: %d", mapIdx);
+	debugC(4, kDraciLogicDebugLevel, "Palette: %d", _currentRoom._palette);
+	debugC(4, kDraciLogicDebugLevel, "Overlays: %d", _currentRoom._numMasks);
+	debugC(4, kDraciLogicDebugLevel, "Init: %d", _currentRoom._init);
+	debugC(4, kDraciLogicDebugLevel, "Look: %d", _currentRoom._look);
+	debugC(4, kDraciLogicDebugLevel, "Use: %d", _currentRoom._use);
+	debugC(4, kDraciLogicDebugLevel, "CanUse: %d", _currentRoom._canUse);
+	debugC(4, kDraciLogicDebugLevel, "ImInit: %d", _currentRoom._imInit);
+	debugC(4, kDraciLogicDebugLevel, "ImLook: %d", _currentRoom._imLook);
+	debugC(4, kDraciLogicDebugLevel, "ImUse: %d", _currentRoom._imUse);
+	debugC(4, kDraciLogicDebugLevel, "MouseOn: %d", _currentRoom._mouseOn);
+	debugC(4, kDraciLogicDebugLevel, "HeroOn: %d", _currentRoom._heroOn);
+	debugC(4, kDraciLogicDebugLevel, "Pers0: %f", _currentRoom._pers0);
+	debugC(4, kDraciLogicDebugLevel, "PersStep: %f", _currentRoom._persStep);
+	debugC(4, kDraciLogicDebugLevel, "EscRoom: %d", _currentRoom._escRoom);
+	debugC(4, kDraciLogicDebugLevel, "Gates: %d", _currentRoom._numGates);
 
 
 	// Set cursor state

Modified: scummvm/branches/gsoc2009-draci/engines/draci/game.h
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/game.h	2009-07-16 17:51:12 UTC (rev 42540)
+++ scummvm/branches/gsoc2009-draci/engines/draci/game.h	2009-07-16 18:31:15 UTC (rev 42541)
@@ -43,6 +43,39 @@
 	personSize = sizeof(uint16) * 2 + sizeof(byte)
 };
 
+class WalkingMap {
+
+public:	
+	WalkingMap() {
+		_realWidth = 0;
+		_realHeight = 0;
+		_mapWidth = 0;
+		_mapHeight = 0;
+		_byteWidth = 0;
+		_data = NULL;
+	}	
+
+	void load(byte *data, uint length) {
+		Common::MemoryReadStream mapReader(data, length);
+
+		_realWidth = mapReader.readUint16LE();
+		_realHeight = mapReader.readUint16LE();
+		_mapWidth = mapReader.readUint16LE();
+		_mapHeight = mapReader.readUint16LE();
+		_byteWidth = mapReader.readUint16LE();
+
+		// Set the data pointer to raw map data
+		_data = data + mapReader.pos();
+	}
+
+private:
+	int _realWidth, _realHeight;
+	int _deltaX, _deltaY;
+	int _mapWidth, _mapHeight;
+	int _byteWidth;
+	byte *_data;
+};
+
 struct GameObject {
 	
 	GameObject() : _title(NULL) {}
@@ -84,7 +117,7 @@
 struct Room {
 	byte _roomNum;	
 	byte _music;
-	byte _map;
+	WalkingMap _walkingMap;
 	byte _palette;
 	int _numMasks;
 	int _init, _look, _use, _canUse;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list