[Scummvm-cvs-logs] CVS: scummvm/saga actor.cpp,1.128,1.129 actor.h,1.70,1.71 input.cpp,1.40,1.41 render.cpp,1.56,1.57 saga.cpp,1.109,1.110 scene.cpp,1.102,1.103 scene.h,1.52,1.53 script.h,1.80,1.81 sfuncs.cpp,1.113,1.114

Andrew Kurushin h00ligan at users.sourceforge.net
Wed May 18 11:29:26 CEST 2005


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

Modified Files:
	actor.cpp actor.h input.cpp render.cpp saga.cpp scene.cpp 
	scene.h script.h sfuncs.cpp 
Log Message:
fixed loadsave item resource id
partialy fixed protect rat

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.cpp,v
retrieving revision 1.128
retrieving revision 1.129
diff -u -d -r1.128 -r1.129
--- actor.cpp	15 May 2005 17:45:59 -0000	1.128
+++ actor.cpp	18 May 2005 18:28:08 -0000	1.129
@@ -159,7 +159,8 @@
 	ActorData *actor;
 	ObjectData *obj;
 	debug(9, "Actor::Actor()");
-	
+	_handleActionDiv = 15;
+
 	_actors = NULL;
 	_actorsCount = 0;
 
@@ -1136,7 +1137,7 @@
 	// FIXME: HACK. This should be turned into cycle event.
 	_lastTickMsec += msec;
 
-	if (_lastTickMsec > 1000 / 15) { // fixme  choose 50 for speed up
+	if (_lastTickMsec > 1000 / _handleActionDiv) {
 		_lastTickMsec = 0;
 		//process actions
 		handleActions(msec, false);

Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.h,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -d -r1.70 -r1.71
--- actor.h	10 May 2005 22:55:50 -0000	1.70
+++ actor.h	18 May 2005 18:28:09 -0000	1.71
@@ -206,16 +206,16 @@
 class CommonObjectData {
 public:
 //constant
-	bool disabled;				// disabled in init section 
+	bool disabled;					// disabled in init section 
 	int32 index;					// index in local array
-	uint16 id;					// object id
+	uint16 id;						// object id
 	int32 scriptEntrypointNumber;	// script entrypoint number
-	int32 spriteListResourceId;	// sprite list resource id
 
 //variables
 	uint16 flags;				// initial flags
 	int32 nameIndex;			// index in name string list
 	int32 sceneNumber;			// scene
+	int32 spriteListResourceId;	// sprite list resource id
 
 	Location location;			// logical coordinates
 	Point screenPosition;		// screen coordinates
@@ -226,6 +226,7 @@
 		out.writeUint16LE(flags);
 		out.writeSint32LE(nameIndex);
 		out.writeSint32LE(sceneNumber);
+		out.writeSint32LE(spriteListResourceId);
 		location.saveState(out);
 		out.writeSint16LE(screenPosition.x);
 		out.writeSint16LE(screenPosition.y);
@@ -236,6 +237,7 @@
 		flags = in.readUint16LE();
 		nameIndex = in.readSint32LE();
 		sceneNumber = in.readSint32LE();
+		spriteListResourceId = in.readSint32LE();
 		location.loadState(in);
 		screenPosition.x = in.readSint16LE();
 		screenPosition.y = in.readSint16LE();
@@ -559,7 +561,7 @@
 public:
 	ActorData *_centerActor;
 	ActorData *_protagonist;
-
+	int _handleActionDiv;
 protected:
 	SpeechData _activeSpeech;
 	int _protagState;

Index: input.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/input.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -d -r1.40 -r1.41
--- input.cpp	18 May 2005 16:18:00 -0000	1.40
+++ input.cpp	18 May 2005 18:28:09 -0000	1.41
@@ -71,6 +71,7 @@
 				break;
 			case 282: // F1
 				_render->toggleFlag(RF_SHOW_FPS);
+				_vm->_actor->_handleActionDiv = (_vm->_actor->_handleActionDiv == 15) ? 50 : 15;
 				break;
 			case 283: // F2
 				_render->toggleFlag(RF_PALETTE_TEST);

Index: render.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/render.cpp,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -d -r1.56 -r1.57
--- render.cpp	10 May 2005 23:17:16 -0000	1.56
+++ render.cpp	18 May 2005 18:28:09 -0000	1.57
@@ -84,6 +84,7 @@
 }
 
 Render::~Render(void) {
+	Common::g_timer->removeTimerProc(&fpsTimerCallback);
 	free(_bg_buf);
 	free(_tmp_buf);
 

Index: saga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saga.cpp,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -d -r1.109 -r1.110
--- saga.cpp	10 May 2005 23:48:38 -0000	1.109
+++ saga.cpp	18 May 2005 18:28:09 -0000	1.110
@@ -166,6 +166,9 @@
 
 SagaEngine::~SagaEngine() {
 	int i;
+	if (_scene->isSceneLoaded()) {
+		_scene->endScene();
+	}
 
 	delete _sndRes;
 	delete _events;

Index: scene.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.cpp,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -d -r1.102 -r1.103
--- scene.cpp	8 May 2005 14:04:06 -0000	1.102
+++ scene.cpp	18 May 2005 18:28:09 -0000	1.103
@@ -125,7 +125,6 @@
 
 Scene::~Scene() {
 	if (_initialized) {
-		endScene();
 		delete _actionMap;
 		free(_sceneLUT);
 	}

Index: scene.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.h,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -d -r1.52 -r1.53
--- scene.h	15 May 2005 17:45:59 -0000	1.52
+++ scene.h	18 May 2005 18:28:09 -0000	1.53
@@ -257,7 +257,8 @@
 	}
 	void changeScene(uint16 sceneNumber, int actorsEntrance, SceneTransitionType transitionType);
 
-	bool initialized() { return _initialized; }
+	bool initialized() const { return _initialized; }
+	bool isSceneLoaded() const { return _sceneLoaded; }
 
 
 	int getSceneResourceId(int sceneNumber) {
@@ -277,7 +278,7 @@
 	void loadSceneEntryList(const byte* resourcePointer, size_t resourceLength);
 	int processSceneResources();
 
- private:
+ 
 	SagaEngine *_vm;
 	bool _initialized;
 

Index: script.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/script.h,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -d -r1.80 -r1.81
--- script.h	24 Apr 2005 15:17:37 -0000	1.80
+++ script.h	18 May 2005 18:28:09 -0000	1.81
@@ -535,8 +535,8 @@
 	void sfPlaySound(SCRIPTFUNC_PARAMS);
 	void SF_playLoopedSound(SCRIPTFUNC_PARAMS);
 	void sfGetDeltaFrame(SCRIPTFUNC_PARAMS);
-	void SF_showProtect(SCRIPTFUNC_PARAMS);
-	void SF_protectResult(SCRIPTFUNC_PARAMS);
+	void sfShowProtect(SCRIPTFUNC_PARAMS);
+	void sfProtectResult(SCRIPTFUNC_PARAMS);
 	void sfRand(SCRIPTFUNC_PARAMS);
 	void SF_fadeMusic(SCRIPTFUNC_PARAMS);
 	void SF_playVoice(SCRIPTFUNC_PARAMS);

Index: sfuncs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/sfuncs.cpp,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -d -r1.113 -r1.114
--- sfuncs.cpp	18 May 2005 16:18:00 -0000	1.113
+++ sfuncs.cpp	18 May 2005 18:28:10 -0000	1.114
@@ -123,8 +123,8 @@
 		OPCODE(sfPlaySound),
 		OPCODE(SF_playLoopedSound),
 		OPCODE(sfGetDeltaFrame),
-		OPCODE(SF_showProtect),
-		OPCODE(SF_protectResult),
+		OPCODE(sfShowProtect),
+		OPCODE(sfProtectResult),
 		OPCODE(sfRand),
 		OPCODE(SF_fadeMusic),
 		OPCODE(SF_playVoice),
@@ -574,7 +574,7 @@
 	for (int i = 0; i < nArgs; i++)
 		thread->pop();
 
-	debug(0, "STUB: SF_getNumber(), %d args", nArgs);
+	error(0, "STUB: SF_getNumber(), %d args", nArgs);
 }
 
 // Script function #21 (0x15)
@@ -1049,7 +1049,6 @@
 // has not been interrupted.
 void Script::sfCheckUserInterrupt(SCRIPTFUNC_PARAMS) {
 	thread->_returnValue = (_skipSpeeches == true);
-
 }
 
 // Script function #45 (0x2D)
@@ -1123,7 +1122,7 @@
 	for (int i = 0; i < nArgs; i++)
 		thread->pop();
 
-	debug(0, "STUB: SF_simulSpeech2(), %d args", nArgs);
+	error(0, "STUB: SF_simulSpeech2(), %d args", nArgs);
 }
 
 static TEXTLIST_ENTRY *placardTextEntry;
@@ -1322,7 +1321,7 @@
 	param5 = thread->pop();
 	param6 = thread->pop();
 
-	debug(0, "STUB: SF_throwActor(%d, %d, %d, %d, %d, %d)", param1, param2, param3, param4, param5, param6);
+	error(0, "STUB: SF_throwActor(%d, %d, %d, %d, %d, %d)", param1, param2, param3, param4, param5, param6);
 }
 
 // Script function #53 (0x35)
@@ -1352,7 +1351,7 @@
 	int param1 = thread->pop();
 	int param2 = thread->pop();
 
-	debug(0, "STUB: SF_changeActorScene(%d, %d)", param1, param2);
+	error(0, "STUB: SF_changeActorScene(%d, %d)", param1, param2);
 }
 
 // Script function #56 (0x38)
@@ -1362,7 +1361,7 @@
 	int param3 = thread->pop();
 	int param4 = thread->pop();
 
-	debug(0, "STUB: SF_climb(%d, %d, %d, %d)", param1, param2, param3, param4);
+	error(0, "STUB: SF_climb(%d, %d, %d, %d)", param1, param2, param3, param4);
 }
 
 // Script function #57 (0x39)
@@ -1386,7 +1385,7 @@
 	int param1 = thread->pop();
 	int param2 = thread->pop();
 
-	debug(0, "STUB: SF_setActorZ(%d, %d)", param1, param2);
+	error(0, "STUB: SF_setActorZ(%d, %d)", param1, param2);
 }
 
 // Script function #59 (0x3B)
@@ -1394,21 +1393,21 @@
 	for (int i = 0; i < nArgs; i++)
 		thread->pop();
 
-	debug(0, "STUB: SF_text(), %d args", nArgs);
+	error(0, "STUB: SF_text(), %d args", nArgs);
 }
 
 // Script function #60 (0x3C)
 void Script::SF_getActorX(SCRIPTFUNC_PARAMS) {
 	int16 param = thread->pop();
 
-	debug(0, "STUB: SF_getActorX(%d)", param);
+	error(0, "STUB: SF_getActorX(%d)", param);
 }
 
 // Script function #61 (0x3D)
 void Script::SF_getActorY(SCRIPTFUNC_PARAMS) {
 	int16 param = thread->pop();
 
-	debug(0, "STUB: SF_getActorY(%d)", param);
+	error(0, "STUB: SF_getActorY(%d)", param);
 }
 
 // Script function #62 (0x3E)
@@ -1416,7 +1415,7 @@
 	for (int i = 0; i < nArgs; i++)
 		thread->pop();
 
-	debug(0, "STUB: SF_eraseDelta(), %d args", nArgs);
+	error(0, "STUB: SF_eraseDelta(), %d args", nArgs);
 }
 
 // Script function #63 (0x3F)
@@ -1591,19 +1590,20 @@
 }
 
 // Script function #73 (0x49)
-void Script::SF_showProtect(SCRIPTFUNC_PARAMS) {
-	for (int i = 0; i < nArgs; i++)
-		thread->pop();
+void Script::sfShowProtect(SCRIPTFUNC_PARAMS) {
+	thread->wait(kWaitTypeRequest);
 
-	debug(0, "STUB: SF_showProtect(), %d args", nArgs);
+	//TODO:protection dialog
+	thread->_flags &= ~kTFlagWaiting;
 }
 
 // Script function #74 (0x4A)
-void Script::SF_protectResult(SCRIPTFUNC_PARAMS) {
-	for (int i = 0; i < nArgs; i++)
-		thread->pop();
-
-	debug(0, "STUB: SF_protectResult(), %d args", nArgs);
+void Script::sfProtectResult(SCRIPTFUNC_PARAMS) {
+	int protectHash;
+	//cheating
+	protectHash = thread->pop();
+	thread->push(protectHash);
+	thread->_returnValue = protectHash;	
 }
 
 // Script function #75 (0x4b)





More information about the Scummvm-git-logs mailing list