aboutsummaryrefslogtreecommitdiff
path: root/saga/saga.cpp
diff options
context:
space:
mode:
authorAndrew Kurushin2005-01-11 21:10:36 +0000
committerAndrew Kurushin2005-01-11 21:10:36 +0000
commit244b227b19b6bec659e4c00e2d7aa9596978cbe5 (patch)
treef7a88160f68d6f4da5e5580ae13ce9bb382d7795 /saga/saga.cpp
parentf1026ce3eb0bf4ad4e68987e4952dff141ccf331 (diff)
downloadscummvm-rg350-244b227b19b6bec659e4c00e2d7aa9596978cbe5.tar.gz
scummvm-rg350-244b227b19b6bec659e4c00e2d7aa9596978cbe5.tar.bz2
scummvm-rg350-244b227b19b6bec659e4c00e2d7aa9596978cbe5.zip
- remove game.h & image.h
- all display information of current game goes to SagaEngine - remove GameFontIds - hide SagaEngine _gameId,_gameType & etc with methods getGameId(), getGameType() svn-id: r16545
Diffstat (limited to 'saga/saga.cpp')
-rw-r--r--saga/saga.cpp57
1 files changed, 31 insertions, 26 deletions
diff --git a/saga/saga.cpp b/saga/saga.cpp
index 89340353fc..58ebbd7862 100644
--- a/saga/saga.cpp
+++ b/saga/saga.cpp
@@ -42,7 +42,6 @@
#include "saga/console.h"
#include "saga/events.h"
#include "saga/font.h"
-#include "saga/game.h"
#include "saga/interface.h"
#include "saga/isomap.h"
#include "saga/script.h"
@@ -93,6 +92,8 @@ SagaEngine::SagaEngine(GameDetector *detector, OSystem *syst)
: Engine(syst) {
_console = NULL;
+ _gameFileContexts = NULL;
+ _quit = false;
// The Linux version of Inherit the Earth puts all data files in an
// 'itedata' sub-directory, except for voices.rsc
@@ -119,6 +120,32 @@ SagaEngine::SagaEngine(GameDetector *detector, OSystem *syst)
}
SagaEngine::~SagaEngine() {
+ int i;
+
+ delete _scene;
+ delete _actor;
+ delete _script;
+ delete _sprite;
+ delete _font;
+ delete _console;
+ delete _events;
+ delete _palanim;
+
+ delete _interface;
+ delete _render;
+ delete _isoMap;
+ delete _sndRes;
+ // Shutdown system modules */
+ delete _music;
+ delete _sound;
+ delete _anim;
+
+ if (_gameFileContexts != NULL) {
+ for (i = 0; i < _gameDescription->filesCount; i++) {
+ RSC_DestroyContext(_gameFileContexts[i]);
+ }
+ }
+ free(_gameFileContexts);
}
void SagaEngine::errorString(const char *buf1, char *buf2) {
@@ -224,7 +251,7 @@ int SagaEngine::go() {
_scene->startScene();
uint32 currentTicks;
- for (;;) {
+ while(!_quit) {
if (_console->isAttached())
_console->onFrame();
@@ -244,7 +271,7 @@ int SagaEngine::go() {
msec = MAX_TIME_DELTA;
}
- if (!_vm->_scene->isInDemo() && _gameType == GType_ITE)
+ if (!_vm->_scene->isInDemo() && getGameType() == GType_ITE)
if (_vm->_interface->getMode() == kPanelMain ||
_vm->_interface->getMode() == kPanelConverse ||
_vm->_interface->getMode() == kPanelNull)
@@ -258,29 +285,7 @@ int SagaEngine::go() {
_system->delayMillis(10);
}
- //return 0;
-}
-
-void SagaEngine::shutdown() {
- delete _scene;
- delete _actor;
- delete _script;
- delete _sprite;
- delete _font;
- delete _console;
- delete _events;
- delete _palanim;
-
- delete _interface;
- delete _render;
- delete _isoMap;
- delete _sndRes;
- // Shutdown system modules */
- delete _music;
- delete _sound;
- delete _anim;
-
- _system->quit();
+ return 0;
}
void SagaEngine::loadStrings(StringsTable &stringsTable, const byte *stringsPointer, size_t stringsLength) {