[Scummvm-cvs-logs] CVS: scummvm/saga events.cpp,1.52,1.53 gfx.cpp,1.48,1.49 gfx.h,1.27,1.28 interface.cpp,1.109,1.110 palanim.cpp,1.21,1.22 render.cpp,1.64,1.65 render.h,1.23,1.24 saveload.cpp,1.18,1.19 scene.cpp,1.113,1.114 scene.h,1.57,1.58

Eugene Sandulenko sev at users.sourceforge.net
Tue Jul 5 08:17:15 CEST 2005


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

Modified Files:
	events.cpp gfx.cpp gfx.h interface.cpp palanim.cpp render.cpp 
	render.h saveload.cpp scene.cpp scene.h 
Log Message:
- Stripped down unused SURFACE parameter in palette-related functions
- Fixed scenes glitch when loading saved game. This is done by closing
  load window right after game is loaded which differs from original but
  seems more logical to me
- Fixed wrong palette when Dragon maze was loaded from a savegame. We just
  didn't process Palette resource for it.


Index: events.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/events.cpp,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -d -r1.52 -r1.53
--- events.cpp	4 Jun 2005 15:02:17 -0000	1.52
+++ events.cpp	5 Jul 2005 15:15:33 -0000	1.53
@@ -126,7 +126,6 @@
 
 	BUFFER_INFO buf_info;
 	SCENE_BGINFO bg_info;
-	SURFACE *back_buf;
 
 	event_pc = ((double)event->duration - event->time) / event->duration;
 
@@ -149,13 +148,11 @@
 	case PAL_EVENT:
 		switch (event->op) {
 		case EVENT_BLACKTOPAL:
-			back_buf = _vm->_gfx->getBackBuffer();
-			_vm->_gfx->blackToPal(back_buf, (PALENTRY *)event->data, event_pc);
+			_vm->_gfx->blackToPal((PALENTRY *)event->data, event_pc);
 			break;
 
 		case EVENT_PALTOBLACK:
-			back_buf = _vm->_gfx->getBackBuffer();
-			_vm->_gfx->palToBlack(back_buf, (PALENTRY *)event->data, event_pc);
+			_vm->_gfx->palToBlack((PALENTRY *)event->data, event_pc);
 			break;
 		default:
 			break;
@@ -203,8 +200,6 @@
 	double event_pc = 0.0; // Event completion percentage
 	bool event_done = false;
 
-	SURFACE *back_buf;
-
 	event_pc = ((double)event->duration - event->time) / event->duration;
 
 	if (event_pc >= 1.0) {
@@ -226,13 +221,11 @@
 	case PAL_EVENT:
 		switch (event->op) {
 		case EVENT_BLACKTOPAL:
-			back_buf = _vm->_gfx->getBackBuffer();
-			_vm->_gfx->blackToPal(back_buf, (PALENTRY *)event->data, event_pc);
+			_vm->_gfx->blackToPal((PALENTRY *)event->data, event_pc);
 			break;
 
 		case EVENT_PALTOBLACK:
-			back_buf = _vm->_gfx->getBackBuffer();
-			_vm->_gfx->palToBlack(back_buf, (PALENTRY *)event->data, event_pc);
+			_vm->_gfx->palToBlack((PALENTRY *)event->data, event_pc);
 			break;
 		default:
 			break;
@@ -341,7 +334,7 @@
 				if (event->param == SET_PALETTE) {
 					PALENTRY *pal_p;
 					_vm->_scene->getBGPal(&pal_p);
-					_vm->_gfx->setPalette(back_buf, pal_p);
+					_vm->_gfx->setPalette(pal_p);
 				}
 			}
 		}

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/gfx.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- gfx.cpp	4 Jul 2005 07:47:04 -0000	1.48
+++ gfx.cpp	5 Jul 2005 15:15:33 -0000	1.49
@@ -455,7 +455,7 @@
 	return &_back_buf;
 }
 
-int Gfx::setPalette(SURFACE *surface, PALENTRY *pal) {
+int Gfx::setPalette(PALENTRY *pal) {
 	int i;
 	byte *ppal;
 
@@ -484,7 +484,7 @@
 	return SUCCESS;
 }
 
-int Gfx::palToBlack(SURFACE *surface, PALENTRY *src_pal, double percent) {
+int Gfx::palToBlack(PALENTRY *src_pal, double percent) {
 	int i;
 	//int fade_max = 255;
 	int new_entry;
@@ -534,7 +534,7 @@
 	return SUCCESS;
 }
 
-int Gfx::blackToPal(SURFACE *surface, PALENTRY *src_pal, double percent) {
+int Gfx::blackToPal(PALENTRY *src_pal, double percent) {
 	int new_entry;
 	double fpercent;
 	int color_delta;

Index: gfx.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/gfx.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- gfx.h	4 Jul 2005 07:47:04 -0000	1.27
+++ gfx.h	5 Jul 2005 15:15:34 -0000	1.28
@@ -90,10 +90,10 @@
 
 	Gfx(OSystem *system, int width, int height, GameDetector &detector);
 	SURFACE *getBackBuffer();
-	int setPalette(SURFACE *surface, PALENTRY *pal);
+	int setPalette(PALENTRY *pal);
 	int getCurrentPal(PALENTRY *src_pal);
-	int palToBlack(SURFACE *surface, PALENTRY *src_pal, double percent);
-	int blackToPal(SURFACE *surface, PALENTRY *src_pal, double percent);
+	int palToBlack(PALENTRY *src_pal, double percent);
+	int blackToPal(PALENTRY *src_pal, double percent);
 	void updateCursor() { setCursor(); }
 	void showCursor(bool state);
 

Index: interface.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/interface.cpp,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -d -r1.109 -r1.110
--- interface.cpp	3 Jul 2005 20:02:56 -0000	1.109
+++ interface.cpp	5 Jul 2005 15:15:34 -0000	1.110
@@ -1162,8 +1162,8 @@
 			if (_vm->getSaveFilesCount() > 0) {
 				if (_vm->isSaveListFull() || (_optionSaveFileTitleNumber > 0)) {
 					fileName = _vm->calcSaveFileName(_vm->getSaveFile(_optionSaveFileTitleNumber)->slotNumber);
+					setMode(kPanelMain);
 					_vm->load(fileName);
-					setMode(kPanelLoad);
 				}
 			}
 			break;
@@ -2045,7 +2045,7 @@
 	_vm->_gfx->getCurrentPal(_mapSavedPal);
 
 	for (int i = 0; i < 6 ; i++) {
-		_vm->_gfx->palToBlack(backBuffer, _mapSavedPal, 0.2 * i);
+		_vm->_gfx->palToBlack(_mapSavedPal, 0.2 * i);
 		_vm->_render->drawScene();
 		_vm->_system->delayMillis(5);
 	}
@@ -2065,7 +2065,7 @@
 
 	// Evil Evil
 	for (int i = 0; i < 6 ; i++) {
-		_vm->_gfx->blackToPal(backBuffer, cPal, 0.2 * i);
+		_vm->_gfx->blackToPal(cPal, 0.2 * i);
 		_vm->_render->drawScene();
 		_vm->_system->delayMillis(5);
 	}
@@ -2079,15 +2079,12 @@
 }
 
 void Interface::mapPanelClean() {
-	SURFACE *backBuffer;
 	PALENTRY pal[PAL_ENTRIES];
 
-	backBuffer = _vm->_gfx->getBackBuffer();
-
 	_vm->_gfx->getCurrentPal(pal);
 
 	for (int i = 0; i < 6 ; i++) {
-		_vm->_gfx->palToBlack(backBuffer, pal, 0.2 * i);
+		_vm->_gfx->palToBlack(pal, 0.2 * i);
 		_vm->_render->drawScene();
 		_vm->_system->delayMillis(5);
 	}
@@ -2099,7 +2096,7 @@
 	_vm->_render->drawScene();
 
 	for (int i = 0; i < 6 ; i++) {
-		_vm->_gfx->blackToPal(backBuffer, _mapSavedPal, 0.2 * i);
+		_vm->_gfx->blackToPal(_mapSavedPal, 0.2 * i);
 		_vm->_render->drawScene();
 		_vm->_system->delayMillis(5);
 	}

Index: palanim.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/palanim.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- palanim.cpp	11 Jan 2005 21:10:20 -0000	1.21
+++ palanim.cpp	5 Jul 2005 15:15:34 -0000	1.22
@@ -136,8 +136,6 @@
 }
 
 int PalAnim::cycleStep(int vectortime) {
-	SURFACE *back_buf;
-
 	static PALENTRY pal[256];
 	uint16 pal_index;
 	uint16 col_index;
@@ -153,7 +151,6 @@
 	}
 
 	_vm->_gfx->getCurrentPal(pal);
-	back_buf = _vm->_gfx->getBackBuffer();
 
 	for (i = 0; i < _entryCount; i++) {
 		cycle = _entries[i].cycle;
@@ -173,7 +170,7 @@
 		}
 	}
 
-	_vm->_gfx->setPalette(back_buf, pal);
+	_vm->_gfx->setPalette(pal);
 
 	event.type = ONESHOT_EVENT;
 	event.code = PALANIM_EVENT;

Index: render.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/render.cpp,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -d -r1.64 -r1.65
--- render.cpp	3 Jul 2005 20:02:56 -0000	1.64
+++ render.cpp	5 Jul 2005 15:15:34 -0000	1.65
@@ -121,7 +121,8 @@
 				_vm->_actor->drawSpeech();
 			} else {
 				// Draw queued actors
-				_vm->_actor->drawActors();
+				if (!(_flags & RF_DISABLE_ACTORS))
+					_vm->_actor->drawActors();
 			}
 
 			if (getFlags() & RF_OBJECTMAP_TEST) {

Index: render.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/render.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- render.h	3 Jul 2005 20:02:56 -0000	1.23
+++ render.h	5 Jul 2005 15:15:34 -0000	1.24
@@ -40,7 +40,8 @@
 	RF_GAMEPAUSE = (1 << 5),
 	RF_PLACARD = (1 << 6),
 	RF_ACTOR_PATH_TEST = (1 << 7),
-	RF_MAP = (1 << 8)
+	RF_MAP = (1 << 8),
+	RF_DISABLE_ACTORS = (1 << 9)
 };
 
 struct BUFFER_INFO {

Index: saveload.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saveload.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- saveload.cpp	29 Jun 2005 20:00:44 -0000	1.18
+++ saveload.cpp	5 Jul 2005 15:15:34 -0000	1.19
@@ -229,8 +229,9 @@
 	_events->handleEvents(0); //dissolve back grounds
 
 	if (insetSceneNumber != sceneNumber) {
+		_render->setFlag(RF_DISABLE_ACTORS);
 		_render->drawScene();
-		_scene->clearSceneQueue();
+		_render->clearFlag(RF_DISABLE_ACTORS);
 		_scene->changeScene(insetSceneNumber, ACTOR_NO_ENTRANCE, kTransitionNoFade);
 	}
 }

Index: scene.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.cpp,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -d -r1.113 -r1.114
--- scene.cpp	4 Jul 2005 07:46:48 -0000	1.113
+++ scene.cpp	5 Jul 2005 15:15:34 -0000	1.114
@@ -730,7 +730,7 @@
 
 int Scene::processSceneResources() {
 	byte *resourceData;
-	size_t resourceDataLength;
+	uint16 resourceDataLength;
 	const byte *pal_p;
 	int i;
 
@@ -863,6 +863,22 @@
 		case SAGA_FACES:
 			_vm->_interface->loadScenePortraits(_resList[i].res_number);
 			break;
+		case SAGA_PALETTE:
+			{
+				PALENTRY pal[PAL_ENTRIES];
+				byte *palPtr = resourceData;
+
+				if (resourceDataLength < 3 * PAL_ENTRIES)
+					error("Too small scene palette: %d", resourceDataLength);
+
+				for (uint16 c = 0; c < PAL_ENTRIES; c++) {
+					pal[c].red = *palPtr++;
+					pal[c].green = *palPtr++;
+					pal[c].blue = *palPtr++;
+				}
+				_vm->_gfx->setPalette(pal);
+			}
+			break;
 		default:
 			warning("Scene::ProcessSceneResources(): Encountered unknown resource type: %d", _resList[i].res_type);
 			break;

Index: scene.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.h,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -d -r1.57 -r1.58
--- scene.h	20 Jun 2005 11:46:34 -0000	1.57
+++ scene.h	5 Jul 2005 15:15:35 -0000	1.58
@@ -82,7 +82,8 @@
 	SAGA_ANIM_7,
 	SAGA_ISO_MULTI = 22,
 	SAGA_PAL_ANIM = 23,
-	SAGA_FACES = 24
+	SAGA_FACES = 24,
+	SAGA_PALETTE = 25
 };
 
 #define SAGA_RESLIST_ENTRY_LEN 4





More information about the Scummvm-git-logs mailing list