ACCESS: Move _saveRiver from engine to River class

This commit is contained in:
Paul Gilbert 2014-11-28 22:12:45 -05:00
parent 2151919434
commit b478b05df2
4 changed files with 10 additions and 8 deletions

View file

@ -43,7 +43,6 @@ AccessEngine(syst, gameDesc),
_skipStart = false; _skipStart = false;
_charSegSwitch = false; _charSegSwitch = false;
_saveRiver = false;
_oldTitleChapter = _chapter = 0; _oldTitleChapter = _chapter = 0;
_updateChapter = -1; _updateChapter = -1;
_rawInactiveX = 0; _rawInactiveX = 0;

View file

@ -86,7 +86,6 @@ public:
InactivePlayer _inactive; InactivePlayer _inactive;
bool _charSegSwitch; bool _charSegSwitch;
bool _skipStart; bool _skipStart;
bool _saveRiver;
// Fields that are mapped to flags // Fields that are mapped to flags
int &_guardLocation; int &_guardLocation;

View file

@ -1013,6 +1013,7 @@ River::River(AmazonEngine *vm): PannedScene(vm) {
_rKeyFlag = 0; _rKeyFlag = 0;
_mapOffset = 0; _mapOffset = 0;
_screenVirtX = 0; _screenVirtX = 0;
_saveRiver = false;
} }
void River::setRiverPan() { void River::setRiverPan() {
@ -1058,7 +1059,7 @@ void River::initRiver() {
_vm->_destIn = &_vm->_buffer2; _vm->_destIn = &_vm->_buffer2;
_vm->_room->roomMenu(); _vm->_room->roomMenu();
if (_vm->_saveRiver) { if (_saveRiver) {
// Restoring a savegame, so set properties from saved fields // Restoring a savegame, so set properties from saved fields
_vm->_screen->_scrollRow = _rScrollRow; _vm->_screen->_scrollRow = _rScrollRow;
_vm->_screen->_scrollCol = _rScrollCol; _vm->_screen->_scrollCol = _rScrollCol;
@ -1076,7 +1077,7 @@ void River::initRiver() {
_vm->copyBF2Vid(); _vm->copyBF2Vid();
_vm->_screen->forceFadeIn(); _vm->_screen->forceFadeIn();
if (_vm->_saveRiver) { if (_saveRiver) {
// Restore draw rects from savegame // Restore draw rects from savegame
_vm->_oldRects.resize(_rOldRectCount); _vm->_oldRects.resize(_rOldRectCount);
_vm->_newRects.resize(_rNewRectCount); _vm->_newRects.resize(_rNewRectCount);
@ -1096,7 +1097,7 @@ void River::initRiver() {
_canoeFrame = 0; _canoeFrame = 0;
_mapPtr = (const byte *)MAPTBL[_vm->_riverFlag] + 1; _mapPtr = (const byte *)MAPTBL[_vm->_riverFlag] + 1;
if (_vm->_saveRiver) { if (_saveRiver) {
_mapPtr--; _mapPtr--;
_mapPtr += _mapOffset; _mapPtr += _mapOffset;
} else { } else {
@ -1123,7 +1124,7 @@ void River::initRiver() {
++_vm->_timers[12]._flag; ++_vm->_timers[12]._flag;
_vm->_maxHits = 2 - _vm->_riverFlag; _vm->_maxHits = 2 - _vm->_riverFlag;
_vm->_saveRiver = false; _saveRiver = false;
} }
void River::resetPositions() { void River::resetPositions() {
@ -1234,7 +1235,7 @@ void River::moveCanoe() {
_vm->_scripts->printString(BAR_MESSAGE); _vm->_scripts->printString(BAR_MESSAGE);
} else { } else {
// Clicked on the Disc icon // Clicked on the Disc icon
_vm->_saveRiver = true; _saveRiver = true;
_rScrollRow = screen._scrollRow; _rScrollRow = screen._scrollRow;
_rScrollCol = screen._scrollCol; _rScrollCol = screen._scrollCol;
_rScrollX = screen._scrollX; _rScrollX = screen._scrollX;
@ -1245,7 +1246,7 @@ void River::moveCanoe() {
_vm->_room->handleCommand(9); _vm->_room->handleCommand(9);
if (_vm->_room->_function != FN_CLEAR1) { if (_vm->_room->_function != FN_CLEAR1) {
_vm->_saveRiver = false; _saveRiver = false;
_vm->_room->buildScreen(); _vm->_room->buildScreen();
_vm->copyBF2Vid(); _vm->copyBF2Vid();
} }
@ -1561,6 +1562,8 @@ void River::synchronize(Common::Serializer &s) {
s.syncAsUint16LE(_screenVirtX); s.syncAsUint16LE(_screenVirtX);
warning("TODO: s.syncAsSint16LE(_topList);"); warning("TODO: s.syncAsSint16LE(_topList);");
warning("TODO: s.syncAsSint16LE(_botList);"); warning("TODO: s.syncAsSint16LE(_botList);");
_saveRiver = s.isLoading();
} }
} }

View file

@ -151,6 +151,7 @@ private:
RiverStruct *_topList; RiverStruct *_topList;
RiverStruct *_botList; RiverStruct *_botList;
int _canoeDir; int _canoeDir;
bool _saveRiver;
// Saved fields // Saved fields
int _canoeLane; int _canoeLane;