[Scummvm-cvs-logs] CVS: scummvm/saga actor.cpp,1.127,1.128 interface.cpp,1.88,1.89 scene.h,1.51,1.52 script.cpp,1.65,1.66 sfuncs.cpp,1.111,1.112

Andrew Kurushin h00ligan at users.sourceforge.net
Sun May 15 10:46:48 CEST 2005


Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29281

Modified Files:
	actor.cpp interface.cpp scene.h script.cpp sfuncs.cpp 
Log Message:
fixed give verb
fixed occasional verbs redraw


Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.cpp,v
retrieving revision 1.127
retrieving revision 1.128
diff -u -d -r1.127 -r1.128
--- actor.cpp	11 May 2005 06:57:44 -0000	1.127
+++ actor.cpp	15 May 2005 17:45:59 -0000	1.128
@@ -1136,7 +1136,7 @@
 	// FIXME: HACK. This should be turned into cycle event.
 	_lastTickMsec += msec;
 
-	if (_lastTickMsec > 1000 / 15) { // fixme
+	if (_lastTickMsec > 1000 / 15) { // fixme  choose 50 for speed up
 		_lastTickMsec = 0;
 		//process actions
 		handleActions(msec, false);
@@ -1238,7 +1238,7 @@
 bool Actor::getSpriteParams(CommonObjectData *commonObjectData, int &frameNumber, SpriteList *&spriteList) {
 	if (_vm->_scene->currentSceneResourceId() == RID_ITE_OVERMAP_SCENE) {
 		if (!(commonObjectData->flags & kProtagonist)){
-			warning("not protagonist");
+//			warning("not protagonist");
 			return false;
 		}
 		frameNumber = 8;			

Index: interface.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/interface.cpp,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -d -r1.88 -r1.89
--- interface.cpp	12 May 2005 15:11:32 -0000	1.88
+++ interface.cpp	15 May 2005 17:45:59 -0000	1.89
@@ -569,21 +569,19 @@
 
 	panelButton = _mainPanel.hitTest(mousePoint, kPanelAllButtons);
 	
-	if (panelButton != NULL) {
-		if (panelButton->type == kPanelButtonArrow) {
-			if (panelButton->state == 1) {
-				//TODO: insert timeout catchup
-				inventoryChangePos(panelButton->id);
-			}
-			draw();
-		}
+	bool changed = false;
 
-		if (panelButton->type == kPanelButtonInventory) {
-			_vm->_script->whichObject(mousePoint);
-		}		
+	if ((panelButton != NULL) && (panelButton->type == kPanelButtonArrow)) {
+		if (panelButton->state == 1) {
+			//TODO: insert timeout catchup
+			inventoryChangePos(panelButton->id);
+		}
+		changed = true;
+	} else {
+		_vm->_script->whichObject(mousePoint);						
 	}
 
-	bool changed = (panelButton != _mainPanel.currentButton);
+	changed = changed || (panelButton != _mainPanel.currentButton);
 	_mainPanel.currentButton = panelButton;
 	if (changed) {
 		draw();

Index: scene.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.h,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- scene.h	8 May 2005 14:04:06 -0000	1.51
+++ scene.h	15 May 2005 17:45:59 -0000	1.52
@@ -262,7 +262,7 @@
 
 	int getSceneResourceId(int sceneNumber) {
 		if ((sceneNumber < 0) || (sceneNumber >= _sceneMax)) {
-			error("getSceneResourceId: wrong sceneNumber");
+ 			error("getSceneResourceId: wrong sceneNumber");
 		}
 		return _sceneLUT[sceneNumber];
 	}

Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/script.cpp,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -d -r1.65 -r1.66
--- script.cpp	22 Apr 2005 14:11:02 -0000	1.65
+++ script.cpp	15 May 2005 17:45:59 -0000	1.66
@@ -685,8 +685,7 @@
 	_leftButtonVerb = _currentVerb;
 	newRightButtonVerb = kVerbNone;
 
-	if (_vm->_actor->_protagonist->currentAction == kActionWalkDir) {
-	} else {
+	if (_vm->_actor->_protagonist->currentAction != kActionWalkDir) {
 		if (_vm->getSceneHeight() >= mousePoint.y) {
 			newObjectId = _vm->_actor->hitTest(mousePoint, true);
 
@@ -755,7 +754,7 @@
 						newRightButtonVerb = kVerbNone;
 					}
 
-					if ((_currentVerb == kVerbTalkTo) || ((_currentVerb == kVerbGive) && !_firstObjectSet)) {
+					if ((_currentVerb == kVerbTalkTo) || ((_currentVerb == kVerbGive) && _firstObjectSet)) {
 						objectId = ID_NOTHING;
 						newObjectId = ID_NOTHING;
 					}
@@ -766,7 +765,7 @@
 				}
 			}
 		} else {
-			if ((_currentVerb == kVerbTalkTo) || ((_currentVerb == kVerbGive) && !_firstObjectSet)) {
+			if ((_currentVerb == kVerbTalkTo) || ((_currentVerb == kVerbGive) && _firstObjectSet)) {
 				// no way
 			} else {
 				panelButton = _vm->_interface->inventoryHitTest(mousePoint);

Index: sfuncs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/sfuncs.cpp,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -d -r1.111 -r1.112
--- sfuncs.cpp	12 May 2005 09:12:15 -0000	1.111
+++ sfuncs.cpp	15 May 2005 17:45:59 -0000	1.112
@@ -195,10 +195,15 @@
 // Check if an object is carried.
 void Script::sfIsCarried(SCRIPTFUNC_PARAMS) {
 	uint16 objectId = thread->pop();
-	ObjectData *obj;
-	obj = _vm->_actor->getObj(objectId);
-
-	thread->_returnValue = (obj->sceneNumber == ITE_SCENE_INV) ? 1 : 0;
+	CommonObjectData *object;
+	if (_vm->_actor->validObjId(objectId)) {
+		object = _vm->_actor->getObj(objectId);
+		thread->_returnValue = (object->sceneNumber == ITE_SCENE_INV) ? 1 : 0;
+	} else {
+		thread->_returnValue = 0;
+	}
+	
+	
 }
 
 // Script function #4 (0x04) nonblocking





More information about the Scummvm-git-logs mailing list