[Scummvm-cvs-logs] CVS: scummvm/sky control.cpp,1.9,1.10 control.h,1.6,1.7 logic.cpp,1.108,1.109

Robert G?ffringmann lavosspawn at users.sourceforge.net
Tue Jul 1 16:32:07 CEST 2003


Update of /cvsroot/scummvm/scummvm/sky
In directory sc8-pr-cvs1:/tmp/cvs-serv4305/sky

Modified Files:
	control.cpp control.h logic.cpp 
Log Message:
removed useless AR saving leftovers and implemented fnRestoreGame()

Index: control.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/control.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- control.cpp	1 Jul 2003 22:51:49 -0000	1.9
+++ control.cpp	1 Jul 2003 23:31:29 -0000	1.10
@@ -292,6 +292,33 @@
 	_bodge->drawToScreen(WITH_MASK);
 }
 
+void SkyControl::doLoadSavePanel(void) {
+	if (SkyState::isDemo() && (!SkyState::isCDVersion()))
+		return; // I don't think this can even happen
+	initPanel();
+	_skyScreen->clearScreen();
+	if (SkyState::_systemVars.gameVersion < 368)
+		_skyScreen->setPalette(60509);
+	else 
+		_skyScreen->setPalette(60510);
+
+	_savedMouse = _skyMouse->giveCurrentMouseType();
+	_skyMouse->spriteMouse(MOUSE_NORMAL,0,0);
+	_lastButton = -1;
+	_curButtonText = 0;
+	_textSprite = NULL;
+
+	saveRestorePanel(false);
+
+	memset(_screenBuf, 0, GAME_SCREEN_WIDTH * FULL_SCREEN_HEIGHT);
+	_system->copy_rect(_screenBuf, GAME_SCREEN_WIDTH, 0, 0, GAME_SCREEN_WIDTH, FULL_SCREEN_HEIGHT);
+	_system->update_screen();
+	_skyScreen->forceRefresh();
+	_skyScreen->setPalette((uint8*)SkyState::fetchCompact(SkyState::_systemVars.currentPalette));
+	removePanel();
+	_skyMouse->spriteMouse(_savedMouse, 0, 0);
+}
+
 void SkyControl::doControlPanel(void) {
 
 	if (SkyState::isDemo() && (!SkyState::isCDVersion())) {
@@ -335,7 +362,9 @@
 					buttonControl(NULL);
 					_text->drawToScreen(WITH_MASK); // flush text restore buffer
 					drawMainPanel();
-					if (clickRes == QUIT_PANEL) quitPanel = true;
+					if ((clickRes == QUIT_PANEL) || (clickRes == GAME_SAVED) ||
+						(clickRes == GAME_RESTORED))
+						quitPanel = true;
 				}
 				_mouseClicked = false;
 			}
@@ -1126,7 +1155,7 @@
 
 	LODSD(srcPos, size);
 	LODSD(srcPos, saveRev);
-	if (saveRev != SAVE_FILE_REVISION) {
+	if (saveRev > SAVE_FILE_REVISION) {
 		warning("Unknown save file revision (%d)",saveRev);
 		return RESTORE_FAILED;
 	}

Index: control.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/control.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- control.h	1 Jul 2003 22:21:20 -0000	1.6
+++ control.h	1 Jul 2003 23:31:29 -0000	1.7
@@ -147,35 +147,35 @@
 public:
 	SkyControl(SkyScreen *screen, SkyDisk *disk, SkyMouse *mouse, SkyText *text, SkyMusicBase *music, SkyLogic *logic, OSystem *system, const char *savePath);
 	void doControlPanel(void);
+	void doLoadSavePanel(void);
 	void showGameQuitMsg(bool useScreen = true);
     
 private:
 	void initPanel(void);
 	void removePanel(void);
-	void drawMainPanel(void);
-	void delay(unsigned int amount);
-	void buttonControl(SkyConResource *pButton);
 
-	void loadDescriptions(uint8 *destBuf);
-	void saveDescriptions(uint8 *srcBuf);
-	void setUpGameSprites(uint8 *nameBuf, dataFileHeader **nameSprites, uint16 firstNum, uint16 selectedGame, bool allowSave);
-	void showSprites(dataFileHeader **nameSprites);
-	bool checkKeyList(uint8 key);
-	void handleKeyPress(uint8 key, uint8 *textBuf);
+	void drawMainPanel(void);
 
-	void animClick(SkyConResource *pButton);
+	void delay(unsigned int amount);
+	
+    void animClick(SkyConResource *pButton);
 	bool getYesNo(void);
+	void buttonControl(SkyConResource *pButton);
+	uint16 handleClick(SkyConResource *pButton);
 	uint16 doMusicSlide(void);
 	uint16 doSpeedSlide(void);
-	uint16 handleClick(SkyConResource *pButton);
 	uint16 toggleFx(SkyConResource *pButton);
 	uint16 toggleText(SkyConResource *pButton);
 	uint16 shiftDown(uint8 speed);
 	uint16 shiftUp(uint8 speed);
-	const char *_savePath;
 
-	void appendMemList(uint16 *pMem);
-	void freeMemList(void);
+	uint16 saveRestorePanel(bool allowSave);
+	void loadDescriptions(uint8 *destBuf);
+	void saveDescriptions(uint8 *srcBuf);
+	void setUpGameSprites(uint8 *nameBuf, dataFileHeader **nameSprites, uint16 firstNum, uint16 selectedGame, bool allowSave);
+	void showSprites(dataFileHeader **nameSprites);
+	bool checkKeyList(uint8 key);
+	void handleKeyPress(uint8 key, uint8 *textBuf);
 
 	uint16 _selectedGame;
 	uint16 saveGameToFile(void);
@@ -190,10 +190,12 @@
 	void lodsStr(uint8 **srcPos, uint16 *src);
 	uint16 parseSaveData(uint8 *srcBuf);
 
-	static Compact *_saveLoadCpts[833]; // \  moved to sky/compacts/savedata.cpp
-	static uint8 *_saveLoadARs[18];     // /
+	static Compact *_saveLoadCpts[833]; // moved to sky/compacts/savedata.cpp
+	const char *_savePath;
 
-	uint16 saveRestorePanel(bool allowSave);
+	AllocedMem *_memListRoot;
+	void appendMemList(uint16 *pMem);
+	void freeMemList(void);
 
 	SkyScreen *_skyScreen;
 	SkyDisk *_skyDisk;
@@ -206,8 +208,6 @@
 	bool _mouseClicked;
 	byte _keyPressed;
 
-	SkyConResource *createResource(void *pSpData, uint32 pNSprites, uint32 pCurSprite, int16 pX, int16 pY, uint32 pText, uint8 pOnClick, uint8 panelType);
-
 	struct {
 		uint8 *controlPanel;
 		uint8 *button;
@@ -221,14 +221,14 @@
 		uint8 *musicBodge;
 	} _sprites;
 
-	AllocedMem *_memListRoot;
-
 	uint8 *_screenBuf;
 	int _lastButton;
 	uint32 _curButtonText;
 	uint16 _firstText;
 	uint16 _savedMouse;
     
+	SkyConResource *createResource(void *pSpData, uint32 pNSprites, uint32 pCurSprite, int16 pX, int16 pY, uint32 pText, uint8 pOnClick, uint8 panelType);
+
 	dataFileHeader *_textSprite;
 	SkyTextResource *_text;
 

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/logic.cpp,v
retrieving revision 1.108
retrieving revision 1.109
diff -u -d -r1.108 -r1.109
--- logic.cpp	1 Jul 2003 22:21:20 -0000	1.108
+++ logic.cpp	1 Jul 2003 23:31:29 -0000	1.109
@@ -2185,7 +2185,9 @@
 }
 
 bool SkyLogic::fnRestoreGame(uint32 a, uint32 b, uint32 c) {
-	error("Stub: fnRestoreGame");
+	
+	_skyControl->doLoadSavePanel();
+	return false;
 }
 
 bool SkyLogic::fnRestartGame(uint32 a, uint32 b, uint32 c) {





More information about the Scummvm-git-logs mailing list