[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