[Scummvm-cvs-logs] CVS: scummvm akos.h,1.4,1.5 gameDetector.cpp,1.6,1.7 gameDetector.h,1.4,1.5 gui.cpp,1.26,1.27 object.cpp,1.54,1.55 scumm.h,1.114,1.115 scummvm.cpp,1.104,1.105 scummvm.dsp,1.31,1.32 sdl.cpp,1.81,1.82

Ludvig Strigeus strigeus at users.sourceforge.net
Fri Apr 12 03:35:03 CEST 2002


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

Modified Files:
	akos.h gameDetector.cpp gameDetector.h gui.cpp object.cpp 
	scumm.h scummvm.cpp scummvm.dsp sdl.cpp 
Log Message:
code cleanup - prepares for simon inclusion

Index: akos.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/akos.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** akos.h	31 Mar 2002 02:01:14 -0000	1.4
--- akos.h	12 Apr 2002 10:34:45 -0000	1.5
***************
*** 19,27 ****
   * $Header$
   *
!  */
! 
! #if !defined(__GNUC__)
! 	#pragma START_PACK_STRUCTS
! #endif	
  
  struct AkosHeader {
--- 19,32 ----
   * $Header$
   *
!  */
! 
! 
! 
! #if !defined(__GNUC__)
! 
! 	#pragma START_PACK_STRUCTS
! 
! #endif	
! 
  
  struct AkosHeader {

Index: gameDetector.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gameDetector.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** gameDetector.cpp	11 Apr 2002 17:19:14 -0000	1.6
--- gameDetector.cpp	12 Apr 2002 10:34:45 -0000	1.7
***************
*** 27,48 ****
  
  
! #define USAGE_STRING    "ScummVM - Scumm Interpreter\n" \
!                                                 "Syntax:\n" \
!                                                 "\tscummvm [-v] [-d] [-n] [-b<num>] [-t<num>] [-s<num>] [-p<path>] [-m<num>] [-f] game\n" \
!                                                 "Flags:\n" \
!                                                 "\tv       - show version info and exit\n" \
! 												"\tc<num>  - use cdrom <num> for cd audio\n" \
!                                                 "\td       - enable debug output\n" \
!                                                 "\tn       - no subtitles for speech\n" \
!                                                 "\tb<num>  - start in room <num>\n" \
!                                                 "\tt<num>  - set music tempo. Suggested: 1F0000\n" \
!                                                 "\ts<num>  - set scale factor to <num> (1, 2, or 3 - 2 by default)\n" \
!                                                 "\tp<path> - look for game in <path>\n" \
!                                                 "\tm<num>  - set music volume to <num> (0-100)\n" \
!                                                 "\te<num>  - set music engine. see readme.txt for details\n" \
!                                                 "\tr       - emulate roland mt32 instruments\n" \
!                                                 "\tf       - fullscreen mode\n" \
!                                                 "\tg       - graphics mode. 1 for 2xSai anti-aliasing\n" \
! 												"\ta       - load autosave game (for recovering from crashes)\n"
  
  void GameDetector::parseCommandLine(int argc, char **argv)
--- 27,51 ----
  
  
! 
! static const char USAGE_STRING[] = 
! 	"ScummVM - Scumm Interpreter\n"
! 	"Syntax:\n"
!   "\tscummvm [-v] [-d] [-n] [-b<num>] [-t<num>] [-s<num>] [-p<path>] [-m<num>] [-f] game\n"
! 	"Flags:\n"
! 	"\tv       - show version info and exit\n"
! 	"\tc<num>  - use cdrom <num> for cd audio\n"
! 	"\td       - enable debug output\n"
! 	"\tn       - no subtitles for speech\n"
! 	"\tb<num>  - start in room <num>\n"
! 	"\tt<num>  - set music tempo. Suggested: 1F0000\n"
! 	"\ts<num>  - set scale factor to <num> (1, 2, or 3 - 2 by default)\n"
! 	"\tp<path> - look for game in <path>\n"
! 	"\tm<num>  - set music volume to <num> (0-100)\n"
! 	"\te<num>  - set music engine. see readme.txt for details\n"
! 	"\tr       - emulate roland mt32 instruments\n"
! 	"\tf       - fullscreen mode\n"
! 	"\tg       - graphics mode. 1 for 2xSai anti-aliasing\n"
! 	"\ta       - load autosave game (for recovering from crashes)\n"
! ;
  
  void GameDetector::parseCommandLine(int argc, char **argv)
***************
*** 234,237 ****
--- 237,245 ----
  	 GF_NEW_OPCODES | GF_AFTER_V6 | GF_AFTER_V7},
  
+ 	/* Simon the Sorcerer 1 & 2 (not SCUMM games) */
+ 	{"simon1dos", "Simon the Sorcerer 1 for DOS", GID_SIMON_FIRST+1, 99, 99, 99, 0},
+ 	{"simon1win", "Simon the Sorcerer 1 for Windows", GID_SIMON_FIRST+2, 99, 99, 99, 0},
+ 	{"simon2win", "Simon the Sorcerer 2 for Windows", GID_SIMON_FIRST+3, 99, 99, 99, 0},
+ 	
  	/* Scumm Version 8 */
  //    {"curse",       "The Curse of Monkey Island",                   GID_CMI,      8, 1, 0,},

Index: gameDetector.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gameDetector.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** gameDetector.h	7 Apr 2002 07:31:47 -0000	1.4
--- gameDetector.h	12 Apr 2002 10:34:45 -0000	1.5
***************
*** 29,35 ****
--- 29,41 ----
  
  	bool _fullScreen;
+ 	bool _restore;
+ 	byte _gameId;
+ 	bool _simon;
+ 
  	uint16 _debugMode;
  	uint16 _noSubtitles;
  	uint16 _bootParam;
+ 	uint16 _soundCardType;
+ 
  	unsigned int _scale;
  	char *_gameDataPath;
***************
*** 39,50 ****
  	int _videoMode;
  	char *_exe_name;
- 	byte _gameId;
  	const char *_gameText;
  	uint32 _features;
! 	uint16 _soundCardType;
! 
  	int _scummVersion;
  	int _cdrom;
! 	bool _restore;
  
  };
--- 45,54 ----
  	int _videoMode;
  	char *_exe_name;
  	const char *_gameText;
  	uint32 _features;
! 	
  	int _scummVersion;
  	int _cdrom;
! 	
  
  };

Index: gui.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** gui.cpp	11 Apr 2002 17:19:14 -0000	1.26
--- gui.cpp	12 Apr 2002 10:34:45 -0000	1.27
***************
*** 808,841 ****
  }
  
- byte Gui::getDefaultColor(int color)
- {
- 	if ((_s->_features & GF_AFTER_V7) || (_s->_features & GF_SMALL_HEADER))
- 		return 0;
- 	if (_s->_features & GF_AFTER_V6) {
- 		if (color == 8)
- 			color = 1;
- 		return _s->readArray(110, 0, color);
- 	} else {
- 		return _s->getStringAddress(21)[color];
- 	}
- }
- 
  void Gui::init(Scumm *s)
  {
  	_s = s;
- 	if (_s->_gameId && !(_s->_features & GF_SMALL_HEADER)
- 			&& !(_s->_features & GF_AFTER_V7)) {
- 		_bgcolor = getDefaultColor(0);
- 		_color = getDefaultColor(1);
- 		_textcolor = getDefaultColor(2);
- 		_textcolorhi = getDefaultColor(6);
- 		_shadowcolor = getDefaultColor(8);
- 	} else {
- 		_bgcolor = 0;
- 		_color = 0;
- 		_textcolor = 8;							// 15 is nice
- 		_textcolorhi = 15;
- 		_shadowcolor = 0;
- 	}
  }
  
--- 808,820 ----
  }
  
  void Gui::init(Scumm *s)
  {
+ 	/* Default GUI colors */
+ 	_bgcolor = 0;
+ 	_color = 0;
+ 	_textcolor = 8;							// 15 is nice
+ 	_textcolorhi = 15;
+ 	_shadowcolor = 0;
  	_s = s;
  }
  

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/object.cpp,v
retrieving revision 1.54
retrieving revision 1.55
diff -C2 -d -r1.54 -r1.55
*** object.cpp	11 Apr 2002 17:19:14 -0000	1.54
--- object.cpp	12 Apr 2002 10:34:45 -0000	1.55
***************
*** 50,54 ****
  	}
  
- 
  	if (set)
  		_classData[obj] |= (1 << (cls - 1));
--- 50,53 ----

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm.h,v
retrieving revision 1.114
retrieving revision 1.115
diff -C2 -d -r1.114 -r1.115
*** scumm.h	11 Apr 2002 14:22:45 -0000	1.114
--- scumm.h	12 Apr 2002 10:34:45 -0000	1.115
***************
*** 36,40 ****
  void * operator new(size_t size);
  	
! 
  class Scumm;
  struct Actor;
--- 36,40 ----
  void * operator new(size_t size);
  	
! class GameDetector;
  class Scumm;
  struct Actor;
***************
*** 44,47 ****
--- 44,50 ----
  typedef void (Scumm::*OpcodeProc)();
  
+ /* Use this one from error() ONLY */
+ extern Scumm *g_scumm;
+ 
  /* System Wide Constants */
  enum {
***************
*** 503,507 ****
  	GID_LOOM = 10,
  	GID_FT = 11,
! 	GID_DIG = 12
  };
  
--- 506,514 ----
  	GID_LOOM = 10,
  	GID_FT = 11,
! 	GID_DIG = 12,
! 
! 	/* Simon the Sorcerer */
! 	GID_SIMON_FIRST = 13,
! 	GID_SIMON_LAST = GID_SIMON_FIRST+3,
  };
  
***************
*** 1057,1094 ****
  
  	/* Akos Class */
!         bool akos_drawCostume(AkosRenderer *ar);
!         void akos_setPalette(AkosRenderer *ar, byte *palette);
!         void akos_setCostume(AkosRenderer *ar, int costume);
!         void akos_setFacing(AkosRenderer *ar, Actor *a);
!         bool akos_drawCostumeChannel(AkosRenderer *ar, int chan);
!         void akos_codec1(AkosRenderer *ar);
!         void akos_codec5(AkosRenderer *ar);
!         void akos_codec16(AkosRenderer *ar);
!         void akos_codec1_ignorePakCols(AkosRenderer *ar, int num);
!         void akos_c1_spec2(AkosRenderer *ar);
!         void akos_c1_spec3(AkosRenderer *ar);
! 
!         void akos_c1_0_decode(AkosRenderer *ar);
!         void akos_c1_12_decode(AkosRenderer *ar);
!         void akos_c1_12y_decode(AkosRenderer *ar);
!         void akos_c1_3_decode(AkosRenderer *ar);
!         void akos_c1_4_decode(AkosRenderer *ar);
!         void akos_c1_4y_decode(AkosRenderer *ar);
!         void akos_c1_56_decode(AkosRenderer *ar);
!         void akos_c1_56y_decode(AkosRenderer *ar);
!         void akos_c1_7_decode(AkosRenderer *ar);
  
!         bool akos_increaseAnims(byte *akos, Actor *a);
!         bool akos_increaseAnim(Actor *a, int i, byte *aksq, uint16 *akfo, int numakfo);
  
!         int getAnimVar(Actor *a, byte var);
!         void setAnimVar(Actor *a, byte var, int value);
  
!         void akos_queCommand(byte cmd, Actor *a, int param_1, int param_2);
!         bool akos_compare(int a, int b, byte cmd);
!         void akos_decodeData(Actor *a, int frame, uint usemask);
!         int akos_frameToAnim(Actor *a, int frame);
!         bool akos_hasManyDirections(Actor *a);
!         int akos_findManyDirection(int16 ManyDirection, uint16 facing);
  
  
--- 1064,1091 ----
  
  	/* Akos Class */
! 	bool akos_drawCostume(AkosRenderer *ar);
! 	void akos_setPalette(AkosRenderer *ar, byte *palette);
! 	void akos_setCostume(AkosRenderer *ar, int costume);
! 	void akos_setFacing(AkosRenderer *ar, Actor *a);
! 	bool akos_drawCostumeChannel(AkosRenderer *ar, int chan);
! 	void akos_codec1(AkosRenderer *ar);
! 	void akos_codec5(AkosRenderer *ar);
! 	void akos_codec16(AkosRenderer *ar);
! 	void akos_codec1_ignorePakCols(AkosRenderer *ar, int num);
! 	void akos_c1_spec2(AkosRenderer *ar);
! 	void akos_c1_spec3(AkosRenderer *ar);
  
! 	bool akos_increaseAnims(byte *akos, Actor *a);
! 	bool akos_increaseAnim(Actor *a, int i, byte *aksq, uint16 *akfo, int numakfo);
  
! 	int getAnimVar(Actor *a, byte var);
! 	void setAnimVar(Actor *a, byte var, int value);
  
! 	void akos_queCommand(byte cmd, Actor *a, int param_1, int param_2);
! 	bool akos_compare(int a, int b, byte cmd);
! 	void akos_decodeData(Actor *a, int frame, uint usemask);
! 	int akos_frameToAnim(Actor *a, int frame);
! 	bool akos_hasManyDirections(Actor *a);
! 	int akos_findManyDirection(int16 ManyDirection, uint16 facing);
  
  
***************
*** 1677,1680 ****
--- 1674,1683 ----
  
  	void launch();
+ 
+ 	static Scumm *createFromDetector(GameDetector *detector);
+ 	void go();
+ 
+ 	void setupGUIColors();
+ 	byte getDefaultGUIColor(int color);
  };
  

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scummvm.cpp,v
retrieving revision 1.104
retrieving revision 1.105
diff -C2 -d -r1.104 -r1.105
*** scummvm.cpp	11 Apr 2002 17:19:15 -0000	1.104
--- scummvm.cpp	12 Apr 2002 10:34:46 -0000	1.105
***************
*** 25,30 ****
  #include "gui.h"
  #include "string.h"
  
- extern void launcherLoop();
  void Scumm::initRandSeeds()
  {
--- 25,30 ----
  #include "gui.h"
  #include "string.h"
+ #include "gameDetector.h"
  
  void Scumm::initRandSeeds()
  {
***************
*** 1011,1016 ****
  }
  
- extern Scumm *scumm;
- 
  void NORETURN CDECL error(const char *s, ...)
  {
--- 1011,1014 ----
***************
*** 1022,1031 ****
  	va_end(va);
  
! 	if (scumm->_currentScript != 0xFF) {
! 		ScriptSlot *ss = &scumm->vm.slot[scumm->_currentScript];
  		fprintf(stderr, "Error(%d:%d:0x%X): %s!\n",
! 						scumm->_roomResource,
  						ss->number,
! 						scumm->_scriptPointer - scumm->_scriptOrgPointer, buf);
  	} else {
  		fprintf(stderr, "Error: %s!\n", buf);
--- 1020,1029 ----
  	va_end(va);
  
! 	if (g_scumm->_currentScript != 0xFF) {
! 		ScriptSlot *ss = &g_scumm->vm.slot[g_scumm->_currentScript];
  		fprintf(stderr, "Error(%d:%d:0x%X): %s!\n",
! 						g_scumm->_roomResource,
  						ss->number,
! 						g_scumm->_scriptPointer - g_scumm->_scriptOrgPointer, buf);
  	} else {
  		fprintf(stderr, "Error: %s!\n", buf);
***************
*** 1146,1147 ****
--- 1144,1225 ----
  
  }
+ 
+ Scumm *Scumm::createFromDetector(GameDetector *detector)
+ {
+ 	Scumm *scumm;
+ 
+ 	if (detector->_features & GF_OLD256)
+ 		scumm = new Scumm_v3;
+ 	else if (detector->_features & GF_SMALL_HEADER)	// this force loomCD as v4
+ 		scumm = new Scumm_v4;
+ 	else if (detector->_features & GF_AFTER_V7)
+ 		scumm = new Scumm_v7;
+ 	else if (detector->_features & GF_AFTER_V6)	// this force SamnmaxCD as v6
+ 		scumm = new Scumm_v6;
+ 	else
+ 		scumm = new Scumm_v5;
+ 
+ 	scumm->_fullScreen = detector->_fullScreen;
+ 	scumm->_debugMode = detector->_debugMode;
+ 	scumm->_bootParam = detector->_bootParam;
+ 	scumm->_scale = detector->_scale;
+ 	scumm->_gameDataPath = detector->_gameDataPath;
+ 	scumm->_gameTempo = detector->_gameTempo;
+ 	scumm->_soundEngine = detector->_soundEngine;
+ 	scumm->_videoMode = detector->_videoMode;
+ 	scumm->_exe_name = detector->_exe_name;
+ 	scumm->_gameId = detector->_gameId;
+ 	scumm->_gameText = detector->_gameText;
+ 	scumm->_features = detector->_features;
+ 	scumm->_soundCardType = detector->_soundCardType;
+ 	scumm->_noSubtitles = detector->_noSubtitles;
+ 	scumm->_midi_driver = detector->_midi_driver;
+ 	scumm->_cdrom = detector->_cdrom;
+ 
+ 	scumm->delta = 6;
+ 	if (detector->_restore) {
+ 		scumm->_saveLoadSlot = 0;
+ 		scumm->_saveLoadFlag = 2;
+ 		scumm->_saveLoadCompatible = false;
+ 	}
+ 
+ 	scumm->delta = 0;
+ 
+ 	return scumm;
+ }
+ 
+ void Scumm::go() {
+ 	launch();
+ 	setupGUIColors();
+ 	mainRun();
+ }
+ 
+ 
+ byte Scumm::getDefaultGUIColor(int color)
+ {
+ 	/* FIXME: strange IF line? */
+ 	if ((_features & GF_AFTER_V7) || (_features & GF_SMALL_HEADER))
+ 		return 0;
+ 	if (_features & GF_AFTER_V6) {
+ 		if (color == 8)
+ 			color = 1;
+ 		return readArray(110, 0, color);
+ 	} else {
+ 		return getStringAddress(21)[color];
+ 	}
+ }
+ 
+ void Scumm::setupGUIColors() {
+ 	Gui *gui = (Gui*)_gui;
+ 
+ 	/* FIXME: strange IF line? */
+ 	if (_gameId && !(_features & GF_SMALL_HEADER)	&& !(_features & GF_AFTER_V7)) {
+ 		gui->_bgcolor = getDefaultGUIColor(0);
+ 		gui->_color = getDefaultGUIColor(1);
+ 		gui->_textcolor = getDefaultGUIColor(2);
+ 		gui->_textcolorhi = getDefaultGUIColor(6);
+ 		gui->_shadowcolor = getDefaultGUIColor(8);
+ 	}
+ }
+ 
+ 

Index: scummvm.dsp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scummvm.dsp,v
retrieving revision 1.31
retrieving revision 1.32
diff -C2 -d -r1.31 -r1.32
*** scummvm.dsp	7 Apr 2002 07:34:15 -0000	1.31
--- scummvm.dsp	12 Apr 2002 10:34:46 -0000	1.32
***************
*** 155,158 ****
--- 155,162 ----
  # Begin Source File
  
+ SOURCE=.\2xsai.cpp
+ # End Source File
+ # Begin Source File
+ 
  SOURCE=.\actor.cpp
  
***************
*** 440,443 ****
--- 444,459 ----
  # Begin Source File
  
+ SOURCE=.\akos.h
+ # End Source File
+ # Begin Source File
+ 
+ SOURCE=.\boxes.h
+ # End Source File
+ # Begin Source File
+ 
+ SOURCE=.\cdmusic.h
+ # End Source File
+ # Begin Source File
+ 
  SOURCE=.\sound\fmopl.h
  # End Source File
***************
*** 448,451 ****
--- 464,471 ----
  # Begin Source File
  
+ SOURCE=.\gfx.h
+ # End Source File
+ # Begin Source File
+ 
  SOURCE=.\sound\gmidi.h
  # End Source File
***************
*** 456,459 ****
--- 476,483 ----
  # Begin Source File
  
+ SOURCE=.\mp3_cd.h
+ # End Source File
+ # Begin Source File
+ 
  SOURCE=.\scumm.h
  # End Source File
***************
*** 464,467 ****
--- 488,495 ----
  # Begin Source File
  
+ SOURCE=.\smush.h
+ # End Source File
+ # Begin Source File
+ 
  SOURCE=.\sound.h
  # End Source File
***************
*** 470,477 ****
  SOURCE=.\StdAfx.h
  # End Source File
! # End Group
! # Begin Group "Resource Files"
  
! # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
  # End Group
  # Begin Source File
--- 498,505 ----
  SOURCE=.\StdAfx.h
  # End Source File
! # Begin Source File
  
! SOURCE=.\system.h
! # End Source File
  # End Group
  # Begin Source File

Index: sdl.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sdl.cpp,v
retrieving revision 1.81
retrieving revision 1.82
diff -C2 -d -r1.81 -r1.82
*** sdl.cpp	11 Apr 2002 20:10:47 -0000	1.81
--- sdl.cpp	12 Apr 2002 10:34:46 -0000	1.82
***************
*** 34,38 ****
  static unsigned int scale;
  
! Scumm *scumm;
  ScummDebugger debugger;
  Gui gui;
--- 34,41 ----
  static unsigned int scale;
  
! /* FIXME: Global variable names should be prepended with g_
!  * Only member variables should have a _ in front of the name. */
[...995 lines suppressed...]
  	do {
! 		updateScreen(scumm);
  		new_time = SDL_GetTicks();
! 		waitForTimer(scumm, delta * 15 + last_time - new_time);
  		last_time = SDL_GetTicks();
  		if (gui._active) {
! 			gui.loop(scumm);
  			delta = 5;
  		}
--- 1225,1234 ----
  {
  	do {
! 		updateScreen(g_scumm);
  		new_time = SDL_GetTicks();
! 		waitForTimer(g_scumm, delta * 15 + last_time - new_time);
  		last_time = SDL_GetTicks();
  		if (gui._active) {
! 			gui.loop(g_scumm);
  			delta = 5;
  		}





More information about the Scummvm-git-logs mailing list