[Scummvm-cvs-logs] CVS: scummvm/saga console.cpp,1.12,1.13 scene.cpp,1.33,1.34 script_mod.h,1.5,1.6 sthread.cpp,1.19,1.20 sthread.h,1.6,1.7 xref.txt,1.3,1.4

Eugene Sandulenko sev at users.sourceforge.net
Wed Aug 11 18:12:02 CEST 2004


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

Modified Files:
	console.cpp scene.cpp script_mod.h sthread.cpp sthread.h 
	xref.txt 
Log Message:
Launch scene start script.


Index: console.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/console.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- console.cpp	10 Aug 2004 19:00:30 -0000	1.12
+++ console.cpp	12 Aug 2004 01:11:10 -0000	1.13
@@ -245,6 +245,7 @@
 	va_start(argptr, fmt_str);
 	ret_val = vsprintf(vsstr_p, fmt_str, argptr);
 	_vm->_console->addLine(&_scrollback, _lineMax, vsstr_p);
+	debug(0, vsstr_p);
 	va_end(argptr);
 	_linePos = 0;
 

Index: scene.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.cpp,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- scene.cpp	11 Aug 2004 23:42:02 -0000	1.33
+++ scene.cpp	12 Aug 2004 01:11:10 -0000	1.34
@@ -949,7 +949,17 @@
 		_vm->_anim->play(0, 0);
 
 		if (_desc.startScriptNum > 0) {
+			R_SCRIPT_THREAD *_startScriptThread;
+
 			debug(0, "Starting start script #%d", _desc.startScriptNum);
+
+			_startScriptThread= STHREAD_Create();
+			if (_startScriptThread == NULL) {
+				_vm->_console->print("Thread creation failed.");
+				break;
+			}
+			STHREAD_Execute(_startScriptThread, _desc.startScriptNum);
+			STHREAD_completeThread();
 		}
 
 		debug(0, "Scene started");

Index: script_mod.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/script_mod.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- script_mod.h	1 Aug 2004 22:48:40 -0000	1.5
+++ script_mod.h	12 Aug 2004 01:11:10 -0000	1.6
@@ -49,6 +49,7 @@
 int STHREAD_HoldSem(R_SEMAPHORE *sem);
 int STHREAD_ReleaseSem(R_SEMAPHORE *sem);
 int STHREAD_DebugStep();
+void STHREAD_completeThread(void);
 
 } // End of namespace Saga
 

Index: sthread.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/sthread.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- sthread.cpp	10 Aug 2004 18:31:33 -0000	1.19
+++ sthread.cpp	12 Aug 2004 01:11:11 -0000	1.20
@@ -95,6 +95,11 @@
 	return R_SUCCESS;
 }
 
+void STHREAD_completeThread(void) {
+	for (int i = 0; i < 40 && (ys_dll_head(_vm->_script->threadList()) != NULL); i++)
+		STHREAD_ExecThreads(0);
+}
+
 int STHREAD_SetEntrypoint(R_SCRIPT_THREAD *thread, int ep_num) {
 	R_SCRIPT_BYTECODE *bytecode;
 	int max_entrypoint;
@@ -218,11 +223,13 @@
 		}
 
 		saved_offset = thread->i_offset;
-		debug(2, "Executing thread offset: %lu", thread->i_offset);
+
 		MemoryReadStream readS(GetReadPtr(thread), GetReadLen(thread));
 
 		in_char = readS.readByte();
 
+		debug(0, "Executing thread offset: %lu (%x)", thread->i_offset, in_char);
+
 		switch (in_char) {
 			// Align (ALGN)
 		case 0x01:

Index: sthread.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/sthread.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- sthread.h	2 Aug 2004 16:20:35 -0000	1.6
+++ sthread.h	12 Aug 2004 01:11:11 -0000	1.7
@@ -30,7 +30,7 @@
 
 namespace Saga {
 
-#define STHREAD_DEF_INSTR_COUNT 7
+#define STHREAD_DEF_INSTR_COUNT 8
 
 struct R_SEMAPHORE {
 	int hold_count;

Index: xref.txt
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/xref.txt,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- xref.txt	11 Aug 2004 18:02:03 -0000	1.3
+++ xref.txt	12 Aug 2004 01:11:11 -0000	1.4
@@ -46,3 +46,8 @@
  resInfo->entryScript      _desc.sceneScriptNum
  resInfo->preScript        _desc.startScriptNum
  resInfo->backgroundMusic  _desc.musicRN
+
+Interp.c
+========
+ dispatchThreads()         STHREAD_ExecThreads()
+ runThread()               STHREAD_completeThread()





More information about the Scummvm-git-logs mailing list