[Scummvm-cvs-logs] SF.net SVN: scummvm:[51235] scummvm/trunk/engines/m4

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Sat Jul 24 07:56:06 CEST 2010


Revision: 51235
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51235&view=rev
Author:   dreammaster
Date:     2010-07-24 05:56:06 +0000 (Sat, 24 Jul 2010)

Log Message:
-----------
M4: Implemented lots of support code for pre-action handling

Modified Paths:
--------------
    scummvm/trunk/engines/m4/console.cpp
    scummvm/trunk/engines/m4/hotspot.h
    scummvm/trunk/engines/m4/m4_scene.cpp
    scummvm/trunk/engines/m4/mads_logic.cpp
    scummvm/trunk/engines/m4/mads_logic.h
    scummvm/trunk/engines/m4/mads_menus.cpp
    scummvm/trunk/engines/m4/mads_menus.h
    scummvm/trunk/engines/m4/mads_scene.cpp
    scummvm/trunk/engines/m4/mads_scene.h
    scummvm/trunk/engines/m4/mads_views.cpp
    scummvm/trunk/engines/m4/mads_views.h
    scummvm/trunk/engines/m4/scene.cpp
    scummvm/trunk/engines/m4/scene.h

Modified: scummvm/trunk/engines/m4/console.cpp
===================================================================
--- scummvm/trunk/engines/m4/console.cpp	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/console.cpp	2010-07-24 05:56:06 UTC (rev 51235)
@@ -103,8 +103,8 @@
 	if (_vm->isM4()) {
 		DebugPrintf("Scene parallax\n");
 		_m4Vm->scene()->getSceneResources().parallax->dump();
-		DebugPrintf("Scene props\n");
-		_vm->_scene->getSceneResources().props->dump();
+		DebugPrintf("Scene dynamic hotspots\n");
+		_vm->_scene->getSceneResources().dynamicHotspots->dump();
 	}
 	return true;
 }
@@ -400,9 +400,9 @@
 	DebugPrintf("Scene resources:\n");
 	DebugPrintf("artBase: %s\n", _m4Vm->scene()->getSceneResources().artBase);
 	DebugPrintf("pictureBase: %s\n", _m4Vm->scene()->getSceneResources().pictureBase);
-	DebugPrintf("hotspotCount: %i\n", _m4Vm->scene()->getSceneResources().hotspotCount);
+	DebugPrintf("hotspotCount: %i\n", _m4Vm->scene()->getSceneResources().hotspots->size());
 	DebugPrintf("parallaxCount: %i\n", _m4Vm->scene()->getSceneResources().parallaxCount);
-	DebugPrintf("propsCount: %i\n", _m4Vm->scene()->getSceneResources().propsCount);
+	DebugPrintf("dynHotspotCount: %i\n", _m4Vm->scene()->getSceneResources().dynamicHotspots->size());
 	DebugPrintf("frontY: %i\n", _m4Vm->scene()->getSceneResources().frontY);
 	DebugPrintf("backY: %i\n", _m4Vm->scene()->getSceneResources().backY);
 	DebugPrintf("frontScale: %i\n", _m4Vm->scene()->getSceneResources().frontScale);

Modified: scummvm/trunk/engines/m4/hotspot.h
===================================================================
--- scummvm/trunk/engines/m4/hotspot.h	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/hotspot.h	2010-07-24 05:56:06 UTC (rev 51235)
@@ -104,6 +104,7 @@
 	int add(HotSpot *hotspot, bool head = false);
 	HotSpot *get(int index) { return _hotspots[index]; }
 	HotSpot &operator[](int idx) { return *get(idx); }
+	int size() const { return _hotspots.size(); }
 	void remove(HotSpot *hotspot);
 	void unlinkItem(HotSpot *hotspot);
 	void clear();

Modified: scummvm/trunk/engines/m4/m4_scene.cpp
===================================================================
--- scummvm/trunk/engines/m4/m4_scene.cpp	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/m4_scene.cpp	2010-07-24 05:56:06 UTC (rev 51235)
@@ -45,7 +45,7 @@
 
 	_sceneResources.hotspots = new HotSpotList();
 	_sceneResources.parallax = new HotSpotList();
-	_sceneResources.props = new HotSpotList();
+	_sceneResources.dynamicHotspots = new HotSpotList();
 	_interfaceSurface = new M4InterfaceView(vm);
 }
 
@@ -74,9 +74,9 @@
 	if (sceneS != NULL) {
 		sceneS->read(_sceneResources.artBase, MAX_CHK_FILENAME_SIZE);
 		sceneS->read(_sceneResources.pictureBase, MAX_CHK_FILENAME_SIZE);
-		_sceneResources.hotspotCount = sceneS->readUint32LE();
+		int hotspotCount = sceneS->readUint32LE();
 		_sceneResources.parallaxCount = sceneS->readUint32LE();
-		_sceneResources.propsCount = sceneS->readUint32LE();
+		int dynHotspotCount = sceneS->readUint32LE();
 		_sceneResources.frontY = sceneS->readUint32LE();
 		_sceneResources.backY = sceneS->readUint32LE();
 		_sceneResources.frontScale = sceneS->readUint32LE();
@@ -99,11 +99,11 @@
 		// Clear current hotspot lists
 		_sceneResources.hotspots->clear();
 		_sceneResources.parallax->clear();
-		_sceneResources.props->clear();
+		_sceneResources.dynamicHotspots->clear();
 
-		_sceneResources.hotspots->loadHotSpots(sceneS, _sceneResources.hotspotCount);
+		_sceneResources.hotspots->loadHotSpots(sceneS, hotspotCount);
 		_sceneResources.parallax->loadHotSpots(sceneS, _sceneResources.parallaxCount);
-		_sceneResources.props->loadHotSpots(sceneS, _sceneResources.propsCount);
+		_sceneResources.dynamicHotspots->loadHotSpots(sceneS, dynHotspotCount);
 
 		// Note that toss() deletes the MemoryReadStream
 		_vm->res()->toss(filename);

Modified: scummvm/trunk/engines/m4/mads_logic.cpp
===================================================================
--- scummvm/trunk/engines/m4/mads_logic.cpp	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/mads_logic.cpp	2010-07-24 05:56:06 UTC (rev 51235)
@@ -418,8 +418,12 @@
 	lowRoomsEntrySound();
 }
 
+void MadsSceneLogic::doPreactions() {
+	warning("Still to do preactions logic");
+}
+
 void MadsSceneLogic::doAction() {
-
+	warning("Still to do actions logic");
 }
 
 void MadsSceneLogic::sceneStep() {

Modified: scummvm/trunk/engines/m4/mads_logic.h
===================================================================
--- scummvm/trunk/engines/m4/mads_logic.h	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/mads_logic.h	2010-07-24 05:56:06 UTC (rev 51235)
@@ -59,6 +59,7 @@
 
 	void setupScene();
 	void enterScene();
+	void doPreactions();
 	void doAction();
 	void sceneStep();
 };

Modified: scummvm/trunk/engines/m4/mads_menus.cpp
===================================================================
--- scummvm/trunk/engines/m4/mads_menus.cpp	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/mads_menus.cpp	2010-07-24 05:56:06 UTC (rev 51235)
@@ -809,7 +809,7 @@
 }
 
 void RexDialogView::initVars() {
-	_word_8502C = -1;
+	_v8502C = -1;
 	_selectedLine = -1;
 	_lineIndex = 0;
 	_enterFlag = false;

Modified: scummvm/trunk/engines/m4/mads_menus.h
===================================================================
--- scummvm/trunk/engines/m4/mads_menus.h	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/mads_menus.h	2010-07-24 05:56:06 UTC (rev 51235)
@@ -136,7 +136,7 @@
 	int _dialogSelectedLine;
 	Common::StringArray _saveList;
 
-	int _word_8502C;
+	int _v8502C;
 	int _selectedLine;
 	int _lineIndex;
 	bool _enterFlag;

Modified: scummvm/trunk/engines/m4/mads_scene.cpp
===================================================================
--- scummvm/trunk/engines/m4/mads_scene.cpp	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/mads_scene.cpp	2010-07-24 05:56:06 UTC (rev 51235)
@@ -195,24 +195,21 @@
 	int hotspotCount = hotspotStream->readUint16LE();
 	delete hotspotStream;
 
-	_sceneResources.hotspotCount = hotspotCount;
-
 	hotspotStream = hotSpotData.getItemStream(1);
 
 	// Clear current hotspot lists
 	_sceneResources.hotspots->clear();
+	_sceneResources.hotspots->loadHotSpots(hotspotStream, hotspotCount);
 
-	_sceneResources.hotspots->loadHotSpots(hotspotStream, _sceneResources.hotspotCount);
-
 	delete hotspotStream;
 }
 
 void MadsScene::leaveScene() {
 	_sceneResources.hotspots->clear();
-	_sceneResources.props->clear();
+	_sceneResources.dynamicHotspots->clear();
 
 	delete _sceneResources.hotspots;
-	delete _sceneResources.props;
+	delete _sceneResources.dynamicHotspots;
 	delete _walkSurface;
 
 	if (_activeAnimation) {
@@ -322,6 +319,21 @@
 //		_screenObjects.check(v, false);
 	}
 
+	// Handle starting off any selected action
+	bool lookFlag = false;
+	if ((_action._selectedAction != 0) && _madsVm->_player._stepEnabled &&
+			!_action._verbNounFlag && !_abortTimers && !_madsVm->_player._unk3) {
+		// Start the action
+		_action.startAction();
+
+		lookFlag = (_action._action.verbId == kVerbLookAt) || (_action._action.verbId == kVerbLook);
+	}
+	if (lookFlag || ((_abortTimers != 0) && (_abortTimersMode == ABORTMODE_2)))
+		doPreactions();
+
+	checkStartWalk();
+
+	// Update the player
 	_madsVm->_player.update();
 
 	// Handle refreshing the mouse position display
@@ -364,6 +376,25 @@
 		freeAnimation();
 }
 
+void MadsScene::checkStartWalk() {
+	if (_action._verbNounFlag && _action._walkFlag) {
+		_madsVm->_player.setDest(_destPos.x, _destPos.y, _destFacing);
+		_action._verbNounFlag = false;
+	}
+}
+
+void MadsScene::doPreactions() {
+	if ((_screenObjects._v832EC == 0) || (_screenObjects._v832EC == 2)) {
+		_abortTimersMode2 = ABORTMODE_2;
+		_action.checkAction();
+
+		_sceneLogic.doPreactions();
+
+		if (_abortTimersMode == ABORTMODE_2)
+			_abortTimers = 0;
+	}
+}
+
 /**
  * Does extra work at cleaning up the animation, and then deletes it
  */
@@ -999,7 +1030,7 @@
 					act._flags1 = obj->vocabList[1].flags1;
 					act._flags2 = obj->vocabList[1].flags2;
 
-					act._action.hotspotId = _selectedObject;
+					act._action.verbId = _selectedObject;
 					act._articleNumber = act._flags2;
 				}
 			}

Modified: scummvm/trunk/engines/m4/mads_scene.h
===================================================================
--- scummvm/trunk/engines/m4/mads_scene.h	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/mads_scene.h	2010-07-24 05:56:06 UTC (rev 51235)
@@ -98,9 +98,13 @@
 	void clearAction();
 	void appendActionVocab(int vocabId, bool capitalise);
 	void setAction();
+	void checkStartWalk();
+	void doPreactions();
 public:
 	char _aaName[100];
 	bool _showMousePos;
+	Common::Point _destPos;
+	int _destFacing;
 public:
 	MadsScene(MadsEngine *vm);
 	virtual ~MadsScene();

Modified: scummvm/trunk/engines/m4/mads_views.cpp
===================================================================
--- scummvm/trunk/engines/m4/mads_views.cpp	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/mads_views.cpp	2010-07-24 05:56:06 UTC (rev 51235)
@@ -49,20 +49,21 @@
 	_v83338 = 1;
 	_actionMode = ACTMODE_NONE;
 	_actionMode2 = ACTMODE2_0;
-	_word_86F42 = 0;
-	_word_86F4E = 0;
+	_v86F42 = 0;
+	_v86F4E = 0;
 	_articleNumber = 0;
 	_lookFlag = false;
-	_word_86F4A = 0;
+	_v86F4A = 0;
 	_statusText[0] = '\0';
 	_selectedRow = -1;
 	_hotspotId = -1;
-	_word_86F3A = -1;
-	_word_86F4C = -1;
-	_action.hotspotId = -1;
+	_v86F3A = -1;
+	_v86F4C = -1;
+	_action.verbId = -1;
 	_action.objectNameId = -1;
 	_action.indirectObjectId = -1;
 	_textChanged = true;
+	_walkFlag = false;
 }
 
 void MadsAction::appendVocab(int vocabId, bool capitalise) {
@@ -76,7 +77,7 @@
 }
 
 void MadsAction::set() {
-	int hotspotCount = _madsVm->scene()->getSceneResources().hotspotCount;
+	int hotspotCount = _madsVm->scene()->getSceneResources().hotspots->size();
 	bool flag = false;
 	strcpy(_statusText, "");
 
@@ -148,7 +149,7 @@
 						verbId = (*_madsVm->scene()->getSceneResources().hotspots)[_hotspotId].getVerbID();
 					} else {
 						// Get the verb Id from the scene object
-						verbId = (*_madsVm->scene()->getSceneResources().props)[_hotspotId - hotspotCount].getVerbID();
+						verbId = (*_madsVm->scene()->getSceneResources().dynamicHotspots)[_hotspotId - hotspotCount].getVerbID();
 					}
 
 					if (verbId > 0) {
@@ -171,7 +172,7 @@
 					_action.objectNameId = (*_madsVm->scene()->getSceneResources().hotspots)[_hotspotId].getVocabID();
 				} else {
 					// Get name from temporary scene hotspot
-					_action.objectNameId = (*_madsVm->scene()->getSceneResources().props)[_hotspotId].getVocabID();
+					_action.objectNameId = (*_madsVm->scene()->getSceneResources().dynamicHotspots)[_hotspotId].getVocabID();
 				}
 				appendVocab(_action.objectNameId);
 			}
@@ -179,13 +180,13 @@
 
 		if ((_hotspotId >= 0) && (_articleNumber > 0) && !flag) {
 			if (_articleNumber == -1) {
-				if (_word_86F3A >= 0) {
+				if (_v86F3A >= 0) {
 					int articleNum = 0;
 
-					if ((_word_86F42 == 2) || (_word_86F42 == 5)) {
+					if ((_v86F42 == 2) || (_v86F42 == 5)) {
 						int objectId = _madsVm->scene()->getInterface()->getInventoryObject(_hotspotId);
 						articleNum = _madsVm->globals()->getObject(objectId)->article;
-					} else if (_word_86F3A < hotspotCount) {
+					} else if (_v86F3A < hotspotCount) {
 						articleNum = (*_madsVm->scene()->getSceneResources().hotspots)[_hotspotId].getArticle();
 					} else {
 
@@ -205,7 +206,7 @@
 		}
 
 		// Append object description if necessary
-		if (_word_86F3A >= 0)
+		if (_v86F3A >= 0)
 			appendVocab(_action.indirectObjectId);
 
 		// Remove any trailing space character
@@ -252,6 +253,86 @@
 	_textChanged = false;
 }
 
+void MadsAction::startAction() {
+	_madsVm->_player.moveComplete();
+
+	_v84538 = -1;
+	_v8453A = 0;
+	_savedFields.selectedRow = _selectedRow;
+	_savedFields.articleNumber = _articleNumber;
+	_savedFields.actionMode = _actionMode;
+	_savedFields.actionMode2 = _actionMode2;
+	_savedFields.lookFlag = _lookFlag;
+	int savedHotspotId = _hotspotId;
+	int savedV86F3A = _v86F3A;
+	int savedV86F42 = _v86F42;
+
+	// Copy the action to be active
+	_activeAction = _action;
+	strcpy(_dialogTitle, _statusText);
+
+	if ((_savedFields.actionMode2 == ACTMODE2_4) && (savedV86F42 == 0))
+		_v8453A = true;
+
+	_verbNounFlag = false;
+	int hotspotId = -1;
+	HotSpotList &dynHotspots = *_madsVm->scene()->getSceneResources().dynamicHotspots;
+	HotSpotList &hotspots = *_madsVm->scene()->getSceneResources().hotspots;
+
+	if (!_savedFields.lookFlag && (_madsVm->scene()->_screenObjects._v832EC != 1)) {
+		if (_savedFields.actionMode2 == ACTMODE2_4)
+			hotspotId = savedHotspotId;
+		else if (savedV86F42 == 4)
+			hotspotId = savedV86F3A;
+
+		if (hotspotId >= hotspots.size()) {
+			HotSpot &hs = dynHotspots[hotspotId - hotspots.size()];
+			if ((hs.getFeetX() == -1) || (hs.getFeetX() == -3)) {
+				if (_v86F4A && ((hs.getFeetX() == -3) || (_savedFields.selectedRow < 0))) {
+					_verbNounFlag = true;
+					_madsVm->scene()->_destPos = _customDest;
+				}
+			} else if ((hs.getFeetX() >= 0) && ((_savedFields.actionMode == ACTMODE_NONE) || (hs.getCursor() < 2))) {
+				_verbNounFlag = true;
+				_madsVm->scene()->_destPos.x = hs.getFeetX();
+				_madsVm->scene()->_destPos.y = hs.getFeetY();
+			}
+			_madsVm->scene()->_destFacing = hs.getFacing();
+		}
+		hotspotId = -1;
+	}
+
+	if (hotspotId >= 0) {
+		HotSpot &hs = hotspots[hotspotId];
+		if ((hs.getFeetX() == -1) || (hs.getFeetX() == -3)) {
+			if (_v86F4A && ((hs.getFeetX() == -3) || (_savedFields.selectedRow < 0))) {
+				_verbNounFlag = true;
+				_madsVm->scene()->_destPos = _customDest;
+			}
+		} else if ((hs.getFeetX() >= 0) && ((_savedFields.actionMode == ACTMODE_NONE) || (hs.getCursor() < 2))) {
+			_verbNounFlag = true;
+			_madsVm->scene()->_destPos.x = hs.getFeetX();
+			_madsVm->scene()->_destPos.y = hs.getFeetY();
+		}
+		_madsVm->scene()->_destFacing = hs.getFacing();
+	}
+}
+
+void MadsAction::checkAction() {
+	if (isAction(kVerbLookAt) || isAction(kVerbThrow))
+		_verbNounFlag = 0;
+}
+
+bool MadsAction::isAction(int verbId, int objectNameId, int indirectObjectId) {
+	if (_activeAction.verbId != verbId)
+		return false;
+	if ((objectNameId != 0) && (_activeAction.objectNameId != objectNameId))
+		return false;
+	if ((indirectObjectId != 0) && (_activeAction.indirectObjectId != indirectObjectId))
+		return false;
+	return true;
+}
+
 //--------------------------------------------------------------------------
 
 bool MadsSpriteSlot::operator==(const SpriteSlotSubset &other) const {
@@ -407,8 +488,8 @@
 
 	// Get a list of sprite object depths for active objects
 	for (int i = 0; i < startIndex; ++i) {
-		if (_entries[i].spriteType >= 0) {
-			DepthEntry rec(_entries[i].depth, i);
+		if (_entries[i].spriteType >= SPRITE_ZERO) {
+			DepthEntry rec(16 - _entries[i].depth, i);
 			depthList.push_back(rec);
 		}
 	}

Modified: scummvm/trunk/engines/m4/mads_views.h
===================================================================
--- scummvm/trunk/engines/m4/mads_views.h	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/mads_views.h	2010-07-24 05:56:06 UTC (rev 51235)
@@ -37,22 +37,31 @@
 class MadsView;
 
 enum MadsActionMode {ACTMODE_NONE = 0, ACTMODE_VERB = 1, ACTMODE_OBJECT = 3, ACTMODE_TALK = 6};
-enum MAdsActionMode2 {ACTMODE2_0 = 0, ACTMODE2_2 = 2, ACTMODE2_5 = 5};
+enum MAdsActionMode2 {ACTMODE2_0 = 0, ACTMODE2_2 = 2, ACTMODE2_4 = 4, ACTMODE2_5 = 5};
 
 struct ActionDetails {
-	int hotspotId;
+	int verbId;
 	int objectNameId;
 	int indirectObjectId;
 };
 
+struct MadsActionSavedFields {
+	int articleNumber;
+	int actionMode;
+	int actionMode2;
+	bool lookFlag;
+	int selectedRow;
+};
+
 class MadsAction {
 private:
 	MadsView &_owner;
 	char _statusText[100];
+	char _dialogTitle[100];
 
 	void appendVocab(int vocabId, bool capitalise = false);
 public:
-	ActionDetails _action;
+	ActionDetails _action, _activeAction;
 	int _currentAction;
 	int8 _flags1, _flags2;
 	MadsActionMode _actionMode;
@@ -65,14 +74,19 @@
 	bool _verbNounFlag;
 	int _statusTextIndex;
 	int _hotspotId;
+	MadsActionSavedFields _savedFields;
+	bool _walkFlag;
+	Common::Point _customDest;
 
 	// Unknown fields
-	int16 _word_86F3A;
-	int16 _word_86F42;
-	int16 _word_86F4E;
-	int16 _word_86F4A;
-	int16 _word_86F4C;
+	int16 _v86F3A;
+	int16 _v86F42;
+	int16 _v86F4E;
+	bool _v86F4A;
+	int16 _v86F4C;
 	int _v83338;
+	int _v84538;
+	bool _v8453A;
 
 public:
 	MadsAction(MadsView &owner);
@@ -81,6 +95,9 @@
 	void set();
 	const char *statusText() const { return _statusText; }
 	void refresh();
+	void startAction();
+	void checkAction();
+	bool isAction(int verbId, int objectNameId = 0, int indirectObjectId = 0);
 };
 
 enum AbortTimerMode {ABORTMODE_0 = 0, ABORTMODE_1 = 1, ABORTMODE_2 = 2};

Modified: scummvm/trunk/engines/m4/scene.cpp
===================================================================
--- scummvm/trunk/engines/m4/scene.cpp	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/scene.cpp	2010-07-24 05:56:06 UTC (rev 51235)
@@ -44,7 +44,7 @@
 	_screenType = VIEWID_SCENE;
 
 	_sceneResources->hotspots = new HotSpotList();
-	_sceneResources->props = new HotSpotList();
+	_sceneResources->dynamicHotspots = new HotSpotList();
 	_backgroundSurface = new M4Surface();
 	_walkSurface = new M4Surface();
 	_palData = NULL;
@@ -123,14 +123,14 @@
 	HotSpot *currentHotSpot;
 
 	// hotspots (green)
-	for (i = 0; i < _sceneResources->hotspotCount; i++) {
+	for (i = 0; i < _sceneResources->hotspots->size(); i++) {
 		currentHotSpot = _sceneResources->hotspots->get(i);
 		_backgroundSurface->frameRect(currentHotSpot->getRect(), _vm->_palette->GREEN);
 	}
 
-	// props (red)
-	for (i = 0; i < _sceneResources->propsCount; i++) {
-		currentHotSpot = _sceneResources->props->get(i);
+	// Dynamic hotspots (red)
+	for (i = 0; i < _sceneResources->dynamicHotspots->size(); i++) {
+		currentHotSpot = _sceneResources->dynamicHotspots->get(i);
 		_backgroundSurface->frameRect(currentHotSpot->getRect(), _vm->_palette->RED);
 	}
 }

Modified: scummvm/trunk/engines/m4/scene.h
===================================================================
--- scummvm/trunk/engines/m4/scene.h	2010-07-24 05:54:51 UTC (rev 51234)
+++ scummvm/trunk/engines/m4/scene.h	2010-07-24 05:56:06 UTC (rev 51235)
@@ -53,17 +53,16 @@
 	kVerbPull	= 10,
 	kVerbClose	= 11,
 	kVerbThrow	= 12,
-	kVerbWalkTo	= 13
+	kVerbWalkTo	= 13,
+	kVerbLookAt = 209
 };
 
 class SceneResources {
 public:
 	char artBase[MAX_CHK_FILENAME_SIZE];
 	char pictureBase[MAX_CHK_FILENAME_SIZE];
-	int32 hotspotCount;
 	HotSpotList *hotspots;
-	int32 propsCount;
-	HotSpotList *props;
+	HotSpotList *dynamicHotspots;
 	int32 frontY, backY;
 	int32 frontScale, backScale;
 	int16 depthTable[16];


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