[Scummvm-cvs-logs] CVS: scummvm gfx.cpp,1.54,1.55 insane.cpp,1.9,1.10 scumm.h,1.93,1.94 scummvm.cpp,1.90,1.91 sdl.cpp,1.47,1.48

Vincent Hamm yazoo at users.sourceforge.net
Wed Mar 20 16:41:02 CET 2002


Update of /cvsroot/scummvm/scummvm
In directory usw-pr-cvs1:/tmp/cvs-serv4710

Modified Files:
	gfx.cpp insane.cpp scumm.h scummvm.cpp sdl.cpp 
Log Message:
Completly change the way the Scumm object is handled. Now the main execution loop is done INSIDE the Scumm object. Low level system access (like delays, cd tracks,...) are called using the _system object. Changed the insane main loop to use _system calls

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gfx.cpp,v
retrieving revision 1.54
retrieving revision 1.55
diff -C2 -d -r1.54 -r1.55
*** gfx.cpp	20 Mar 2002 22:58:41 -0000	1.54
--- gfx.cpp	21 Mar 2002 00:40:18 -0000	1.55
***************
*** 88,92 ****
  //	createResource(rtBuffer, slot+1, size);
  
! 	vs->screenPtr = _videoBuffer+320*top;
  
  	if (twobufs) {
--- 88,92 ----
  //	createResource(rtBuffer, slot+1, size);
  
! 	vs->screenPtr = _videoBuffer+328*top;
  
  	if (twobufs) {

Index: insane.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/insane.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** insane.cpp	20 Mar 2002 23:04:35 -0000	1.9
--- insane.cpp	21 Mar 2002 00:40:18 -0000	1.10
***************
*** 110,114 ****
  
  void SmushPlayer::parseAHDR() {
! //	memcpy(_fluPalette, _block, 0x300);
  	_paletteChanged = true;
  
--- 110,114 ----
  
  void SmushPlayer::parseAHDR() {
! 	memcpy(_fluPalette, _block, 0x300);
  	_paletteChanged = true;
  
***************
*** 592,596 ****
  		return;
  
!     if (fileReadBE32() != 'ANIM')
  		error("file is not an anim");
  
--- 592,596 ----
  		return;
  
! 	if (fileReadBE32() != 'ANIM')
  		error("file is not an anim");
  
***************
*** 613,618 ****
  		updateScreen(sm);
  
! 		waitForTimer(sm,20);
! 
  		if(sm->_keyPressed == sm->_vars[sm->VAR_CUTSCENEEXIT_KEY])
  			return;
--- 613,618 ----
  		updateScreen(sm);
  
! 		sm->delta = sm->_system->waitTick(sm->delta);
! 		
  		if(sm->_keyPressed == sm->_vars[sm->VAR_CUTSCENEEXIT_KEY])
  			return;

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm.h,v
retrieving revision 1.93
retrieving revision 1.94
diff -C2 -d -r1.93 -r1.94
*** scumm.h	20 Mar 2002 22:58:41 -0000	1.93
--- scumm.h	21 Mar 2002 00:40:18 -0000	1.94
***************
*** 25,28 ****
--- 25,30 ----
  #endif
  
+ #include "system.h"
+ 
  #if defined(macintosh) && !defined(__APPLE__CW)
  	#define Point SCUMM_Point
***************
*** 924,932 ****
  	/* video buffer */
  
! 	byte _videoBuffer[320*200];
! 	byte _svideoBuffer[320*200+4*320];
  	
  	void scummInit();
! 	void scummMain(int argc, char **argv);
  	int scummLoop(int delta);
  	void initScummVars();
--- 926,943 ----
  	/* video buffer */
  
! 	byte _videoBuffer[328*200]; // main video buffer
! 
! 	/* system call object */
! 
! 	OSystem *_system;
! 
! 	/* Scumm main loop */
! 
! 	void mainRun();
! 	int delta; // global time
! 
  	
  	void scummInit();
! 	void scummMain(int argc, char **argv); // is it still used ?
  	int scummLoop(int delta);
  	void initScummVars();

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scummvm.cpp,v
retrieving revision 1.90
retrieving revision 1.91
diff -C2 -d -r1.90 -r1.91
*** scummvm.cpp	20 Mar 2002 17:51:06 -0000	1.90
--- scummvm.cpp	21 Mar 2002 00:40:18 -0000	1.91
***************
*** 1333,1334 ****
--- 1333,1344 ----
  }
  
+ void Scumm::mainRun() {
+ 	
+ 	delta=0;
+ 	
+ 	do
+ 	{
+ 		_system->waitTick(delta);
+ 		delta = scummLoop(delta);
+ 	}while(1);
+ }

Index: sdl.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sdl.cpp,v
retrieving revision 1.47
retrieving revision 1.48
diff -C2 -d -r1.47 -r1.48
*** sdl.cpp	20 Mar 2002 17:51:06 -0000	1.47
--- sdl.cpp	21 Mar 2002 00:40:18 -0000	1.48
***************
*** 36,39 ****
--- 36,40 ----
  ScummDebugger debugger;
  Gui gui;
+ OSystem _system;
  
  SoundEngine sound;
***************
*** 923,945 ****
  	gui.init(&scumm);
  	sound.initialize(&scumm, &snd_driv);
!     scumm.scummMain(argc, argv);
  	gui.init(&scumm);	/* Reinit GUI after loading a game */
  
! 	last_time = SDL_GetTicks();
! 	delta = 0;
! 	do {
! 		updateScreen(&scumm);
! 
! 		new_time = SDL_GetTicks();
! 		waitForTimer(&scumm, delta * 15 + last_time - new_time);
! 		last_time = SDL_GetTicks();
! 
! 		if (gui._active) {
! 			gui.loop();
! 			delta = 5;
! 		} else {
! 			delta = scumm.scummLoop(delta);
! 		}
! 	} while(1);
  
  	return 0;
--- 924,938 ----
  	gui.init(&scumm);
  	sound.initialize(&scumm, &snd_driv);
!     
! 	scumm.delta=0;
! 	scumm._system = &_system;
! 	
! 	scumm.scummMain(argc, argv); // Todo: need to change that as well
! 	
  	gui.init(&scumm);	/* Reinit GUI after loading a game */
  
! 	_system.last_time = SDL_GetTicks();
! 	
! 	scumm.mainRun();
  
  	return 0;
***************
*** 1958,1960 ****
--- 1951,1970 ----
  	dstPtr += dstPitch;
      }
+ }
+ 
+ 
+ /********* ScummVM call back functions **********/
+ 
+ int OSystem::waitTick(int delta)
+ {
+ 	updateScreen(&scumm);
+ 	new_time = SDL_GetTicks();
+ 	waitForTimer(&scumm, delta * 15 + last_time - new_time);
+ 	last_time = SDL_GetTicks();
+ 	if (gui._active) { 
+ 		gui.loop();
+ 		delta = 5;
+ 	}
+ 
+ 	return(delta);
  }





More information about the Scummvm-git-logs mailing list