[Scummvm-cvs-logs] SF.net SVN: scummvm:[42716] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Fri Jul 24 23:36:59 CEST 2009


Revision: 42716
          http://scummvm.svn.sourceforge.net/scummvm/?rev=42716&view=rev
Author:   drmccoy
Date:     2009-07-24 21:36:59 +0000 (Fri, 24 Jul 2009)

Log Message:
-----------
Merging Map_v4 into Map_v2

Modified Paths:
--------------
    scummvm/trunk/engines/gob/gob.cpp
    scummvm/trunk/engines/gob/map.h
    scummvm/trunk/engines/gob/map_v2.cpp
    scummvm/trunk/engines/gob/module.mk

Removed Paths:
-------------
    scummvm/trunk/engines/gob/map_v4.cpp

Modified: scummvm/trunk/engines/gob/gob.cpp
===================================================================
--- scummvm/trunk/engines/gob/gob.cpp	2009-07-24 21:36:42 UTC (rev 42715)
+++ scummvm/trunk/engines/gob/gob.cpp	2009-07-24 21:36:59 UTC (rev 42716)
@@ -422,7 +422,7 @@
 		_inter = new Inter_v4(this);
 		_mult = new Mult_v2(this);
 		_draw = new Draw_v2(this);
-		_map = new Map_v4(this);
+		_map = new Map_v2(this);
 		_goblin = new Goblin_v4(this);
 		_scenery = new Scenery_v2(this);
 		_saveLoad = new SaveLoad_v4(this, _targetName.c_str());
@@ -434,7 +434,7 @@
 		_inter = new Inter_v5(this);
 		_mult = new Mult_v2(this);
 		_draw = new Draw_v2(this);
-		_map = new Map_v4(this);
+		_map = new Map_v2(this);
 		_goblin = new Goblin_v4(this);
 		_scenery = new Scenery_v2(this);
 		_saveLoad = new SaveLoad(this);
@@ -447,7 +447,7 @@
 		_inter = new Inter_v6(this);
 		_mult = new Mult_v2(this);
 		_draw = new Draw_v2(this);
-		_map = new Map_v4(this);
+		_map = new Map_v2(this);
 		_goblin = new Goblin_v4(this);
 		_scenery = new Scenery_v2(this);
 		_saveLoad = new SaveLoad_v6(this, _targetName.c_str());

Modified: scummvm/trunk/engines/gob/map.h
===================================================================
--- scummvm/trunk/engines/gob/map.h	2009-07-24 21:36:42 UTC (rev 42715)
+++ scummvm/trunk/engines/gob/map.h	2009-07-24 21:36:59 UTC (rev 42716)
@@ -204,14 +204,6 @@
 	void loadGoblinStates(Common::SeekableReadStream &data, int index);
 };
 
-class Map_v4 : public Map_v2 {
-public:
-	virtual void loadMapObjects(const char *avjFile);
-
-	Map_v4(GobEngine *vm);
-	virtual ~Map_v4();
-};
-
 } // End of namespace Gob
 
 #endif // GOB_MAP_H

Modified: scummvm/trunk/engines/gob/map_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/map_v2.cpp	2009-07-24 21:36:42 UTC (rev 42715)
+++ scummvm/trunk/engines/gob/map_v2.cpp	2009-07-24 21:36:59 UTC (rev 42716)
@@ -60,7 +60,10 @@
 
 	id = _vm->_game->_script->readInt16();
 
-	if (id == -1) {
+	if (((uint16) id) >= 65520) {
+		warning("Map_v2::loadMapObjects(): ID >= 65520");
+		return;
+	} else if (id == -1) {
 		_passMap = (int8 *) _vm->_inter->_variables->getAddressOff8(var);
 		return;
 	}
@@ -71,13 +74,18 @@
 
 	Common::SeekableReadStream &mapData = *resource->stream();
 
-	if (mapData.readByte() == 3) {
+	_widthByte = mapData.readByte();
+	if (_widthByte == 4) {
 		_screenWidth = 640;
-		_passWidth = 65;
+		_screenHeight = 400;
+	} else if (_widthByte == 3) {
+		_screenWidth = 640;
+		_screenHeight = 200;
 	} else {
 		_screenWidth = 320;
-		_passWidth = 40;
+		_screenHeight = 200;
 	}
+
 	_wayPointsCount = mapData.readByte();
 	_tilesWidth = mapData.readSint16LE();
 	_tilesHeight = mapData.readSint16LE();
@@ -85,6 +93,11 @@
 	_bigTiles = !(_tilesHeight & 0xFF00);
 	_tilesHeight &= 0xFF;
 
+	if (_widthByte == 4) {
+		_screenWidth = mapData.readSint16LE();
+		_screenHeight = mapData.readSint16LE();
+	}
+
 	_mapWidth = _screenWidth / _tilesWidth;
 	_mapHeight = _screenHeight / _tilesHeight;
 
@@ -104,6 +117,11 @@
 		_wayPoints[i].notWalkable = mapData.readSByte();
 	}
 
+	if (_widthByte == 4)
+		_mapWidth = VAR(17);
+
+	_passWidth = _mapWidth;
+
 	// In the original asm, this writes byte-wise into the variables-array
 	tmpPos = mapData.pos();
 	mapData.seek(passPos);

Deleted: scummvm/trunk/engines/gob/map_v4.cpp
===================================================================
--- scummvm/trunk/engines/gob/map_v4.cpp	2009-07-24 21:36:42 UTC (rev 42715)
+++ scummvm/trunk/engines/gob/map_v4.cpp	2009-07-24 21:36:59 UTC (rev 42716)
@@ -1,159 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-#include "common/stream.h"
-
-#include "gob/gob.h"
-#include "gob/map.h"
-#include "gob/global.h"
-#include "gob/goblin.h"
-#include "gob/inter.h"
-#include "gob/game.h"
-#include "gob/script.h"
-#include "gob/resources.h"
-#include "gob/mult.h"
-
-namespace Gob {
-
-Map_v4::Map_v4(GobEngine *vm) : Map_v2(vm) {
-}
-
-Map_v4::~Map_v4() {
-}
-
-void Map_v4::loadMapObjects(const char *avjFile) {
-	uint8 wayPointsCount;
-	int16 var;
-	int16 id;
-	int16 mapWidth, mapHeight;
-	int16 tmp;
-	byte *variables;
-	uint32 tmpPos;
-	uint32 passPos;
-
-	var = _vm->_game->_script->readVarIndex();
-	variables = _vm->_inter->_variables->getAddressOff8(var);
-
-	id = _vm->_game->_script->readInt16();
-
-	if (((uint16) id) >= 65520) {
-		warning("Woodruff Stub: loadMapObjects ID >= 65520");
-		return;
-	} else if (id == -1) {
-		_passMap = (int8 *) _vm->_inter->_variables->getAddressOff8(var);
-		return;
-	}
-
-	Resource *resource = _vm->_game->_resources->getResource(id);
-	if (!resource)
-		return;
-
-	Common::SeekableReadStream &mapData = *resource->stream();
-
-	_widthByte = mapData.readByte();
-	if (_widthByte == 4) {
-		_screenWidth = 640;
-		_screenHeight = 400;
-	} else if (_widthByte == 3) {
-		_screenWidth = 640;
-		_screenHeight = 200;
-	} else {
-		_screenWidth = 320;
-		_screenHeight = 200;
-	}
-
-	_wayPointsCount = mapData.readByte();
-	_tilesWidth = mapData.readSint16LE();
-	_tilesHeight = mapData.readSint16LE();
-
-	_bigTiles = !(_tilesHeight & 0xFF00);
-	_tilesHeight &= 0xFF;
-
-	if (_widthByte == 4) {
-		_screenWidth = mapData.readSint16LE();
-		_screenHeight = mapData.readSint16LE();
-	}
-
-	_mapWidth = _screenWidth / _tilesWidth;
-	_mapHeight = _screenHeight / _tilesHeight;
-
-	passPos = mapData.pos();
-	mapData.skip(_mapWidth * _mapHeight);
-
-	if (resource->getData()[0] == 1)
-		wayPointsCount = _wayPointsCount = 40;
-	else
-		wayPointsCount = _wayPointsCount == 0 ? 1 : _wayPointsCount;
-
-	delete[] _wayPoints;
-	_wayPoints = new Point[wayPointsCount];
-	for (int i = 0; i < _wayPointsCount; i++) {
-		_wayPoints[i].x = mapData.readSByte();
-		_wayPoints[i].y = mapData.readSByte();
-		_wayPoints[i].notWalkable = mapData.readSByte();
-	}
-
-	if (_widthByte == 4)
-		_mapWidth = VAR(17);
-
-	_passWidth = _mapWidth;
-
-	// In the original asm, this writes byte-wise into the variables-array
-	tmpPos = mapData.pos();
-	mapData.seek(passPos);
-	if ((variables != 0) &&
-	    (variables != _vm->_inter->_variables->getAddressOff8(0))) {
-
-		_passMap = (int8 *) variables;
-		mapHeight = _screenHeight / _tilesHeight;
-		mapWidth = _screenWidth / _tilesWidth;
-
-		for (int i = 0; i < mapHeight; i++) {
-			for (int j = 0; j < mapWidth; j++)
-				setPass(j, i, mapData.readSByte());
-			_vm->_inter->_variables->getAddressOff8(var + i * _passWidth);
-		}
-	}
-	mapData.seek(tmpPos);
-
-	tmp = mapData.readSint16LE();
-	mapData.skip(tmp * 14);
-	tmp = mapData.readSint16LE();
-	mapData.skip(tmp * 14 + 28);
-	tmp = mapData.readSint16LE();
-	mapData.skip(tmp * 14);
-
-	_vm->_goblin->_gobsCount = tmp;
-	for (int i = 0; i < _vm->_goblin->_gobsCount; i++)
-		loadGoblinStates(mapData, i);
-
-	_vm->_goblin->_soundSlotsCount = _vm->_game->_script->readInt16();
-	for (int i = 0; i < _vm->_goblin->_soundSlotsCount; i++)
-		_vm->_goblin->_soundSlots[i] = _vm->_inter->loadSound(1);
-
-	delete resource;
-}
-
-} // End of namespace Gob

Modified: scummvm/trunk/engines/gob/module.mk
===================================================================
--- scummvm/trunk/engines/gob/module.mk	2009-07-24 21:36:42 UTC (rev 42715)
+++ scummvm/trunk/engines/gob/module.mk	2009-07-24 21:36:59 UTC (rev 42716)
@@ -36,7 +36,6 @@
 	map.o \
 	map_v1.o \
 	map_v2.o \
-	map_v4.o \
 	mult.o \
 	mult_v1.o \
 	mult_v2.o \


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