diff options
| author | Max Horn | 2009-09-17 13:20:58 +0000 | 
|---|---|---|
| committer | Max Horn | 2009-09-17 13:20:58 +0000 | 
| commit | d861f5c854fb47e7f0a15a70738ab24f04c8036c (patch) | |
| tree | ea4e153a31a0090b50c895de7ac7c1631ce70e06 /engines/sci/engine | |
| parent | cd394fce761ee9580e4df9ffc761826e688cda4f (diff) | |
| download | scummvm-rg350-d861f5c854fb47e7f0a15a70738ab24f04c8036c.tar.gz scummvm-rg350-d861f5c854fb47e7f0a15a70738ab24f04c8036c.tar.bz2 scummvm-rg350-d861f5c854fb47e7f0a15a70738ab24f04c8036c.zip  | |
SCI: cleanup
svn-id: r44150
Diffstat (limited to 'engines/sci/engine')
| -rw-r--r-- | engines/sci/engine/kernel.h | 12 | ||||
| -rw-r--r-- | engines/sci/engine/vm.cpp | 36 | 
2 files changed, 17 insertions, 31 deletions
diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h index 3ae8d97e50..f088492b0c 100644 --- a/engines/sci/engine/kernel.h +++ b/engines/sci/engine/kernel.h @@ -274,18 +274,6 @@ Common::Rect set_base(EngineState *s, reg_t object);   */  extern Common::Rect get_nsrect(EngineState *s, reg_t object, byte clip); -/** - * Removes all views in anticipation of a new window or text  - */ -void _k_dyn_view_list_prepare_change(EngineState *s); - -/** - * Redraws all views after a new window or text was added  - */ -void _k_dyn_view_list_accept_change(EngineState *s); - - -  /******************** Misc functions ********************/ diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp index bc0c441869..c507d4ec14 100644 --- a/engines/sci/engine/vm.cpp +++ b/engines/sci/engine/vm.cpp @@ -285,7 +285,7 @@ ExecStack *send_selector(EngineState *s, reg_t send_obj, reg_t work_obj, StackPt  			Breakpoint *bp;  			char method_name [256]; -			sprintf(method_name, "%s::%s", s->segMan->getObjectName(send_obj), ((SciEngine*)g_engine)->getKernel()->getSelectorName(selector).c_str()); +			sprintf(method_name, "%s::%s", s->segMan->getObjectName(send_obj), ((SciEngine *)g_engine)->getKernel()->getSelectorName(selector).c_str());  			bp = s->bp_list;  			while (bp) { @@ -909,36 +909,33 @@ void run_vm(EngineState *s, int restoring) {  			break;  		} -		case 0x21: // callk +		case 0x21: { // callk  			gc_countdown(s);  			scriptState.xs->sp -= (opparams[1] >> 1) + 1; -			{ -				bool oldScriptHeader = (s->segMan->sciVersion() == SCI_VERSION_0_EARLY); -				if (!oldScriptHeader) { -					scriptState.xs->sp -= scriptState.restAdjust; -					s->restAdjust = 0; // We just used up the scriptState.restAdjust, remember? -				} +			bool oldScriptHeader = (s->segMan->sciVersion() == SCI_VERSION_0_EARLY); +			if (!oldScriptHeader) { +				scriptState.xs->sp -= scriptState.restAdjust; +				s->restAdjust = 0; // We just used up the scriptState.restAdjust, remember?  			} -			if (opparams[0] >= (int)((SciEngine*)g_engine)->getKernel()->_kernelFuncs.size()) { +			Kernel *kernel = ((SciEngine *)g_engine)->getKernel(); + +			if (opparams[0] >= (int)kernel->_kernelFuncs.size()) {  				error("Invalid kernel function 0x%x requested", opparams[0]);  			} else { +				const KernelFuncWithSignature &kfun = kernel->_kernelFuncs[opparams[0]];  				int argc = ASSERT_ARITHMETIC(scriptState.xs->sp[0]); -				bool oldScriptHeader = (s->segMan->sciVersion() == SCI_VERSION_0_EARLY);  				if (!oldScriptHeader)  					argc += scriptState.restAdjust; -				if (((SciEngine*)g_engine)->getKernel()->_kernelFuncs[opparams[0]].signature -						&& !kernel_matches_signature(s->segMan, -						((SciEngine*)g_engine)->getKernel()->_kernelFuncs[opparams[0]].signature, argc, -						scriptState.xs->sp + 1)) { +				if (kfun.signature +						&& !kernel_matches_signature(s->segMan, kfun.signature, argc, scriptState.xs->sp + 1)) {  					error("[VM] Invalid arguments to kernel call %x", opparams[0]);  				} else { -					s->r_acc = ((SciEngine*)g_engine)->getKernel()->_kernelFuncs[opparams[0]].fun(s, opparams[0], -														argc, scriptState.xs->sp + 1); +					s->r_acc = kfun.fun(s, opparams[0], argc, scriptState.xs->sp + 1);  				}  				// Call kernel function @@ -952,6 +949,7 @@ void run_vm(EngineState *s, int restoring) {  					scriptState.restAdjust = s->restAdjust;  			}  			break; +		}  		case 0x22: // callb  			temp = ((opparams[1] >> 1) + scriptState.restAdjust + 1); @@ -1862,7 +1860,7 @@ static EngineState *_game_run(EngineState *&s, int restoring) {  			script_init_engine(s);  			game_init(s);  			sfx_reset_player(); -			_init_stack_base_with_selector(s, ((SciEngine*)g_engine)->getKernel()->_selectorMap.play); +			_init_stack_base_with_selector(s, ((SciEngine *)g_engine)->getKernel()->_selectorMap.play);  			send_selector(s, s->game_obj, s->game_obj, s->stack_base, 2, s->stack_base); @@ -1881,7 +1879,7 @@ static EngineState *_game_run(EngineState *&s, int restoring) {  					debugC(2, kDebugLevelVM, "Restarting with replay()\n");  					s->_executionStack.clear(); // Restart with replay -					_init_stack_base_with_selector(s, ((SciEngine*)g_engine)->getKernel()->_selectorMap.replay); +					_init_stack_base_with_selector(s, ((SciEngine *)g_engine)->getKernel()->_selectorMap.replay);  					send_selector(s, s->game_obj, s->game_obj, s->stack_base, 2, s->stack_base);  				} @@ -1900,7 +1898,7 @@ int game_run(EngineState **_s) {  	EngineState *s = *_s;  	debugC(2, kDebugLevelVM, "Calling %s::play()\n", s->_gameName.c_str()); -	_init_stack_base_with_selector(s, ((SciEngine*)g_engine)->getKernel()->_selectorMap.play); // Call the play selector +	_init_stack_base_with_selector(s, ((SciEngine *)g_engine)->getKernel()->_selectorMap.play); // Call the play selector  	// Now: Register the first element on the execution stack-  	if (!send_selector(s, s->game_obj, s->game_obj, s->stack_base, 2, s->stack_base)) {  | 
