aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/dreamweb.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2011-12-28 15:07:17 +0200
committerFilippos Karapetis2011-12-28 15:07:17 +0200
commit279746fcf0a3aac428e75bf7ca7e043cb0572aa6 (patch)
tree34877440efbd53597e475a52eeff1597ea55774d /engines/dreamweb/dreamweb.cpp
parent57e940f67896e0f085de23088754fe1682cd49db (diff)
downloadscummvm-rg350-279746fcf0a3aac428e75bf7ca7e043cb0572aa6.tar.gz
scummvm-rg350-279746fcf0a3aac428e75bf7ca7e043cb0572aa6.tar.bz2
scummvm-rg350-279746fcf0a3aac428e75bf7ca7e043cb0572aa6.zip
DREAMWEB: Completely remove all of the runtime, and move everything into DreamWebEngine
Also, remove dead code (allocateMem/deallocateMem)
Diffstat (limited to 'engines/dreamweb/dreamweb.cpp')
-rw-r--r--engines/dreamweb/dreamweb.cpp374
1 files changed, 182 insertions, 192 deletions
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 8bc4975f69..be620bfe3a 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -34,12 +34,13 @@
#include "graphics/surface.h"
#include "dreamweb/dreamweb.h"
-#include "dreamweb/dreamgen.h"
namespace DreamWeb {
DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gameDesc) :
- Engine(syst), _gameDescription(gameDesc), _rnd("dreamweb"), _context(this), _base(_context) {
+ Engine(syst), _gameDescription(gameDesc), _rnd("dreamweb"),
+ _exText(kNumExObjects+2),
+ _setDesc(130), _blockDesc(98), _roomDesc(38), _freeDesc(82), _personText(1026) {
// Setup mixer
_mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, ConfMan.getInt("sfx_volume"));
@@ -59,6 +60,170 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
_channel1 = 0;
_language = gameDesc->desc.language;
+
+ _openChangeSize = kInventx+(4*kItempicsize);
+ _quitRequested = false;
+
+ _currentSample = 0xff;
+ _channel0Playing = 0;
+ _channel0Repeat = 0;
+ _channel1Playing = 0xff;
+
+ _volume = 0;
+ _volumeTo = 0;
+ _volumeDirection = 0;
+ _volumeCount = 0;
+
+ _speechLoaded = false;
+
+ _backdropBlocks = 0;
+ _reelList = 0;
+
+ _oldSubject._type = 0;
+ _oldSubject._index = 0;
+
+ // misc variables
+ _speechCount = 0;
+ _charShift = 0;
+ _kerning = 0;
+ _brightness = 0;
+ _roomLoaded = 0;
+ _didZoom = 0;
+ _lineSpacing = 10;
+ _textAddressX = 13;
+ _textAddressY = 182;
+ _textLen = 0;
+ _lastXPos = 0;
+ _itemFrame = 0;
+ _withObject = 0;
+ _withType = 0;
+ _lookCounter = 0;
+ _command = 0;
+ _commandType = 0;
+ _objectType = 0;
+ _getBack = 0;
+ _invOpen = 0;
+ _mainMode = 0;
+ _pickUp = 0;
+ _lastInvPos = 0;
+ _examAgain = 0;
+ _newTextLine = 0;
+ _openedOb = 0;
+ _openedType = 0;
+ _mapAdX = 0;
+ _mapAdY = 0;
+ _mapOffsetX = 104;
+ _mapOffsetY = 38;
+ _mapXStart = 0;
+ _mapYStart = 0;
+ _mapXSize = 0;
+ _mapYSize = 0;
+ _haveDoneObs = 0;
+ _manIsOffScreen = 0;
+ _facing = 0;
+ _leaveDirection = 0;
+ _turnToFace = 0;
+ _turnDirection = 0;
+ _mainTimer = 0;
+ _introCount = 0;
+ _currentKey = 0;
+ _timerCount = 0;
+ _mapX = 0;
+ _mapY = 0;
+ _ryanX = 0;
+ _ryanY = 0;
+ _lastFlag = 0;
+ _destPos = 0;
+ _realLocation = 0;
+ _roomNum = 0;
+ _nowInNewRoom = 0;
+ _resetManXY = 0;
+ _newLocation = 0xFF;
+ _autoLocation = 0xFF;
+ _mouseX = 0;
+ _mouseY = 0;
+ _mouseButton = 0;
+ _oldButton = 0;
+ _oldX = 0;
+ _oldY = 0;
+ _oldPointerX = 0;
+ _oldPointerY = 0;
+ _delHereX = 0;
+ _delHereY = 0;
+ _pointerXS = 32;
+ _pointerYS = 32;
+ _delXS = 0;
+ _delYS = 0;
+ _pointerFrame = 0;
+ _pointerPower = 0;
+ _pointerMode = 0;
+ _pointerSpeed = 0;
+ _pointerCount = 0;
+ _inMapArea = 0;
+ _talkMode = 0;
+ _talkPos = 0;
+ _character = 0;
+ _watchDump = 0;
+ _logoNum = 0;
+ _oldLogoNum = 0;
+ _pressed = 0;
+ _pressPointer = 0;
+ _graphicPress = 0;
+ _pressCount = 0;
+ _lightCount = 0;
+ _folderPage = 0;
+ _diaryPage = 0;
+ _menuCount = 0;
+ _symbolTopX = 0;
+ _symbolTopNum = 0;
+ _symbolTopDir = 0;
+ _symbolBotX = 0;
+ _symbolBotNum = 0;
+ _symbolBotDir = 0;
+ _dumpX = 0;
+ _dumpY = 0;
+ _walkAndExam = 0;
+ _walkExamType = 0;
+ _walkExamNum = 0;
+ _cursLocX = 0;
+ _cursLocY = 0;
+ _curPos = 0;
+ _monAdX = 0;
+ _monAdY = 0;
+ _timeCount = 0;
+ _countToTimed = 0;
+ _timedY = 0;
+ _timedX = 0;
+ _needToDumpTimed = 0;
+ _loadingOrSave = 0;
+ _currentSlot = 0;
+ _cursorPos = 0;
+ _colourPos = 0;
+ _fadeDirection = 0;
+ _numToFade = 0;
+ _fadeCount = 0;
+ _addToGreen = 0;
+ _addToRed = 0;
+ _addToBlue = 0;
+ _lastSoundReel = 0;
+ _lastHardKey = 0;
+ _bufferIn = 0;
+ _bufferOut = 0;
+ _blinkFrame = 23;
+ _blinkCount = 0;
+ _reAssesChanges = 0;
+ _pointersPath = 0;
+ _mansPath = 0;
+ _pointerFirstPath = 0;
+ _finalDest = 0;
+ _destination = 0;
+ _lineStartX = 0;
+ _lineStartY = 0;
+ _lineEndX = 0;
+ _lineEndY = 0;
+ _linePointer = 0;
+ _lineDirection = 0;
+ _lineLength = 0;
}
DreamWebEngine::~DreamWebEngine() {
@@ -88,14 +253,14 @@ void DreamWebEngine::waitForVSync() {
setVSyncInterrupt(false);
}
- _base.doShake();
- _base.doFade();
+ doShake();
+ doFade();
_system->updateScreen();
}
void DreamWebEngine::quit() {
- _base._quitRequested = true;
- _base._lastHardKey = 1;
+ _quitRequested = true;
+ _lastHardKey = 1;
}
void DreamWebEngine::processEvents() {
@@ -130,8 +295,8 @@ void DreamWebEngine::processEvents() {
break;
case Common::KEYCODE_c: //skip statue puzzle
- _base._symbolBotNum = 3;
- _base._symbolTopNum = 5;
+ _symbolBotNum = 3;
+ _symbolTopNum = 5;
break;
default:
@@ -161,7 +326,7 @@ void DreamWebEngine::processEvents() {
break;
}
- _base._lastHardKey = hardKey;
+ _lastHardKey = hardKey;
// The rest of the keys are converted to ASCII. This
// is fairly restrictive, and eventually we may want
@@ -204,8 +369,8 @@ Common::Error DreamWebEngine::run() {
ConfMan.registerDefault("dreamweb_originalsaveload", "false");
_timer->installTimerProc(vSyncInterrupt, 1000000 / 70, this, "dreamwebVSync");
- _context.dreamweb();
- _base._quitRequested = false;
+ dreamweb();
+ _quitRequested = false;
_timer->removeTimerProc(vSyncInterrupt);
@@ -267,14 +432,14 @@ Common::String DreamWebEngine::getSavegameFilename(int slot) const {
void DreamWebEngine::keyPressed(uint16 ascii) {
debug(2, "key pressed = %04x", ascii);
- uint16 in = (_base._bufferIn + 1) & 0x0f;
- uint16 out = _base._bufferOut;
+ uint16 in = (_bufferIn + 1) & 0x0f;
+ uint16 out = _bufferOut;
if (in == out) {
warning("keyboard buffer is full");
return;
}
- _base._bufferIn = in;
- DreamGen::g_keyBuffer[in] = ascii;
+ _bufferIn = in;
+ DreamWeb::g_keyBuffer[in] = ascii;
}
void DreamWebEngine::mouseCall(uint16 *x, uint16 *y, uint16 *state) {
@@ -322,7 +487,7 @@ void DreamWebEngine::blit(const uint8 *src, int pitch, int x, int y, int w, int
}
void DreamWebEngine::printUnderMonitor() {
- uint8 *dst = _base.workspace() + DreamGen::kScreenwidth * 43 + 76;
+ uint8 *dst = workspace() + DreamWeb::kScreenwidth * 43 + 76;
Graphics::Surface *s = _system->lockScreen();
if (!s)
@@ -337,7 +502,7 @@ void DreamWebEngine::printUnderMonitor() {
++dst; ++src;
}
}
- dst += DreamGen::kScreenwidth - 170;
+ dst += DreamWeb::kScreenwidth - 170;
}
_system->unlockScreen();
}
@@ -402,178 +567,3 @@ uint8 DreamWebEngine::modifyChar(uint8 c) const {
}
} // End of namespace DreamWeb
-
-
-namespace DreamGen {
-
-// FIXME/TODO: Move this to a better place.
-DreamBase::DreamBase(DreamWeb::DreamWebEngine *en) :
- engine(en), _exText(kNumExObjects+2),
- _setDesc(130), _blockDesc(98), _roomDesc(38), _freeDesc(82), _personText(1026) {
-
- _openChangeSize = kInventx+(4*kItempicsize);
- _quitRequested = false;
-
- _currentSample = 0xff;
- _channel0Playing = 0;
- _channel0Repeat = 0;
- _channel1Playing = 0xff;
-
- _volume = 0;
- _volumeTo = 0;
- _volumeDirection = 0;
- _volumeCount = 0;
-
- _speechLoaded = false;
-
- _backdropBlocks = 0;
- _reelList = 0;
-
- _oldSubject._type = 0;
- _oldSubject._index = 0;
-
- // misc variables
- _speechCount = 0;
- _charShift = 0;
- _kerning = 0;
- _brightness = 0;
- _roomLoaded = 0;
- _didZoom = 0;
- _lineSpacing = 10;
- _textAddressX = 13;
- _textAddressY = 182;
- _textLen = 0;
- _lastXPos = 0;
- _itemFrame = 0;
- _withObject = 0;
- _withType = 0;
- _lookCounter = 0;
- _command = 0;
- _commandType = 0;
- _objectType = 0;
- _getBack = 0;
- _invOpen = 0;
- _mainMode = 0;
- _pickUp = 0;
- _lastInvPos = 0;
- _examAgain = 0;
- _newTextLine = 0;
- _openedOb = 0;
- _openedType = 0;
- _mapAdX = 0;
- _mapAdY = 0;
- _mapOffsetX = 104;
- _mapOffsetY = 38;
- _mapXStart = 0;
- _mapYStart = 0;
- _mapXSize = 0;
- _mapYSize = 0;
- _haveDoneObs = 0;
- _manIsOffScreen = 0;
- _facing = 0;
- _leaveDirection = 0;
- _turnToFace = 0;
- _turnDirection = 0;
- _mainTimer = 0;
- _introCount = 0;
- _currentKey = 0;
- _timerCount = 0;
- _mapX = 0;
- _mapY = 0;
- _ryanX = 0;
- _ryanY = 0;
- _lastFlag = 0;
- _destPos = 0;
- _realLocation = 0;
- _roomNum = 0;
- _nowInNewRoom = 0;
- _resetManXY = 0;
- _newLocation = 0xFF;
- _autoLocation = 0xFF;
- _mouseX = 0;
- _mouseY = 0;
- _mouseButton = 0;
- _oldButton = 0;
- _oldX = 0;
- _oldY = 0;
- _oldPointerX = 0;
- _oldPointerY = 0;
- _delHereX = 0;
- _delHereY = 0;
- _pointerXS = 32;
- _pointerYS = 32;
- _delXS = 0;
- _delYS = 0;
- _pointerFrame = 0;
- _pointerPower = 0;
- _pointerMode = 0;
- _pointerSpeed = 0;
- _pointerCount = 0;
- _inMapArea = 0;
- _talkMode = 0;
- _talkPos = 0;
- _character = 0;
- _watchDump = 0;
- _logoNum = 0;
- _oldLogoNum = 0;
- _pressed = 0;
- _pressPointer = 0;
- _graphicPress = 0;
- _pressCount = 0;
- _lightCount = 0;
- _folderPage = 0;
- _diaryPage = 0;
- _menuCount = 0;
- _symbolTopX = 0;
- _symbolTopNum = 0;
- _symbolTopDir = 0;
- _symbolBotX = 0;
- _symbolBotNum = 0;
- _symbolBotDir = 0;
- _dumpX = 0;
- _dumpY = 0;
- _walkAndExam = 0;
- _walkExamType = 0;
- _walkExamNum = 0;
- _cursLocX = 0;
- _cursLocY = 0;
- _curPos = 0;
- _monAdX = 0;
- _monAdY = 0;
- _timeCount = 0;
- _countToTimed = 0;
- _timedY = 0;
- _timedX = 0;
- _needToDumpTimed = 0;
- _loadingOrSave = 0;
- _currentSlot = 0;
- _cursorPos = 0;
- _colourPos = 0;
- _fadeDirection = 0;
- _numToFade = 0;
- _fadeCount = 0;
- _addToGreen = 0;
- _addToRed = 0;
- _addToBlue = 0;
- _lastSoundReel = 0;
- _lastHardKey = 0;
- _bufferIn = 0;
- _bufferOut = 0;
- _blinkFrame = 23;
- _blinkCount = 0;
- _reAssesChanges = 0;
- _pointersPath = 0;
- _mansPath = 0;
- _pointerFirstPath = 0;
- _finalDest = 0;
- _destination = 0;
- _lineStartX = 0;
- _lineStartY = 0;
- _lineEndX = 0;
- _lineEndY = 0;
- _linePointer = 0;
- _lineDirection = 0;
- _lineLength = 0;
-}
-
-} // End of namespace DreamGen