aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/cge/cge.cpp1
-rw-r--r--engines/cge/cge.h5
-rw-r--r--engines/cge/cge_main.cpp4
-rw-r--r--engines/cge/events.h2
-rw-r--r--engines/cge/snail.cpp10
-rw-r--r--engines/cge/text.cpp25
-rw-r--r--engines/cge/text.h2
7 files changed, 24 insertions, 25 deletions
diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp
index f1b69a0ecd..b8ccbc8638 100644
--- a/engines/cge/cge.cpp
+++ b/engines/cge/cge.cpp
@@ -90,6 +90,7 @@ void CGEEngine::init() {
// Initialise engine objects
_font = new Font(this, "CGE");
_text = new Text(this, "CGE");
+ _talk = NULL;
_vga = new Vga();
_sys = new System(this);
_pocLight = new PocLight(this);
diff --git a/engines/cge/cge.h b/engines/cge/cge.h
index 1d7ad69009..5731f8f37e 100644
--- a/engines/cge/cge.h
+++ b/engines/cge/cge.h
@@ -52,6 +52,8 @@ class Snail;
class EventManager;
class ResourceManager;
class Walk;
+class Text;
+class Talk;
#define kSavegameVersion 2
#define kSavegameStrSize 11
@@ -189,6 +191,9 @@ public:
ResourceManager *_resman;
Sprite *_pocket[kPocketNX];
Walk *_hero;
+ Text *_text;
+ Talk *_talk;
+
Common::RandomSource _randomSource;
MusicPlayer *_midiPlayer;
diff --git a/engines/cge/cge_main.cpp b/engines/cge/cge_main.cpp
index 4666181906..9a33e35a08 100644
--- a/engines/cge/cge_main.cpp
+++ b/engines/cge/cge_main.cpp
@@ -745,7 +745,7 @@ void System::setPal() {
void System::funTouch() {
uint16 n = (_vm->_flag[0]) ? kHeroFun1 : kHeroFun0; // PAIN flag
- if (_talk == NULL || n > _funDel)
+ if (_vm->_talk == NULL || n > _funDel)
_funDel = n;
}
@@ -814,7 +814,7 @@ void System::touch(uint16 mask, int x, int y) {
_vm->setMapBrick(x1, z1);
}
} else {
- if (!_talk && _vm->_snail->idle() && _vm->_hero
+ if (!_vm->_talk && _vm->_snail->idle() && _vm->_hero
&& y >= kMapTop && y < kMapTop + kMapHig && !_vm->_game) {
_vm->_hero->findWay(_vm->XZ(x, y));
}
diff --git a/engines/cge/events.h b/engines/cge/events.h
index 26678a5ae2..a4cdfed793 100644
--- a/engines/cge/events.h
+++ b/engines/cge/events.h
@@ -102,8 +102,6 @@ public:
/*----------------- MOUSE interface -----------------*/
-extern Talk *_talk;
-
struct CGEEvent {
uint16 _mask;
uint16 _x;
diff --git a/engines/cge/snail.cpp b/engines/cge/snail.cpp
index 3c85f4abdb..d4993c9998 100644
--- a/engines/cge/snail.cpp
+++ b/engines/cge/snail.cpp
@@ -960,7 +960,7 @@ void Snail::runCom() {
_textDelay = false;
}
}
- if (_talk && snc->_com != kSnPause)
+ if (_vm->_talk && snc->_com != kSnPause)
break;
}
@@ -970,7 +970,7 @@ void Snail::runCom() {
break;
case kSnPause :
_timerExpiry = g_system->getMillis() + snc->_val * kSnailFrameDelay;
- if (_talk)
+ if (_vm->_talk)
_textDelay = true;
break;
case kSnWait:
@@ -994,13 +994,13 @@ void Snail::runCom() {
if (spr && _talkEnable) {
if (spr == _vm->_hero && spr->seqTest(-1))
spr->step(kSeqHTalk);
- _text->say(_text->getText(snc->_val), spr);
+ _vm->_text->say(_vm->_text->getText(snc->_val), spr);
_vm->_sys->_funDel = kHeroFun0;
}
break;
case kSnInf:
if (_talkEnable) {
- _vm->inf(_text->getText(snc->_val));
+ _vm->inf(_vm->_text->getText(snc->_val));
_vm->_sys->_funDel = kHeroFun0;
}
break;
@@ -1008,7 +1008,7 @@ void Snail::runCom() {
if (spr && _talkEnable) {
if (spr == _vm->_hero && spr->seqTest(-1))
spr->step(kSeqHTalk);
- _text->sayTime(spr);
+ _vm->_text->sayTime(spr);
}
break;
case kSnCave:
diff --git a/engines/cge/text.cpp b/engines/cge/text.cpp
index 2b14db9276..e5a1520bd2 100644
--- a/engines/cge/text.cpp
+++ b/engines/cge/text.cpp
@@ -35,9 +35,6 @@
namespace CGE {
-Text *_text;
-Talk *_talk = NULL;
-
Text::Text(CGEEngine *vm, const char *fname) : _vm(vm) {
_vm->mergeExt(_fileName, fname, kSayExt);
if (!_vm->_resman->exist(_fileName))
@@ -138,8 +135,8 @@ char *Text::getText(int ref) {
void Text::say(const char *text, Sprite *spr) {
_vm->killText();
- _talk = new Talk(_vm, text, kTBRound);
- if (!_talk)
+ _vm->_talk = new Talk(_vm, text, kTBRound);
+ if (!_vm->_talk)
return;
bool east = spr->_flags._east;
@@ -159,22 +156,22 @@ void Text::say(const char *text, Sprite *spr) {
if (spr->_ref == 1)
x += ((east) ? -10 : 10); // Hero
- _talk->_flags._kill = true;
- _talk->_flags._bDel = true;
- _talk->setName(_text->getText(kSayName));
- _talk->gotoxy(x - (_talk->_w - sw) / 2 - 3 + 6 * east, y - spike->_h - _talk->_h + 1);
- _talk->_z = 125;
- _talk->_ref = kSayRef;
+ _vm->_talk->_flags._kill = true;
+ _vm->_talk->_flags._bDel = true;
+ _vm->_talk->setName(_vm->_text->getText(kSayName));
+ _vm->_talk->gotoxy(x - (_vm->_talk->_w - sw) / 2 - 3 + 6 * east, y - spike->_h - _vm->_talk->_h + 1);
+ _vm->_talk->_z = 125;
+ _vm->_talk->_ref = kSayRef;
- spike->gotoxy(x, _talk->_y + _talk->_h - 1);
+ spike->gotoxy(x, _vm->_talk->_y + _vm->_talk->_h - 1);
spike->_z = 126;
spike->_flags._slav = true;
spike->_flags._kill = true;
- spike->setName(_text->getText(kSayName));
+ spike->setName(_vm->_text->getText(kSayName));
spike->step(east);
spike->_ref = kSayRef;
- _vm->_vga->_showQ->insert(_talk, _vm->_vga->_showQ->last());
+ _vm->_vga->_showQ->insert(_vm->_talk, _vm->_vga->_showQ->last());
_vm->_vga->_showQ->insert(spike, _vm->_vga->_showQ->last());
}
diff --git a/engines/cge/text.h b/engines/cge/text.h
index 5acdaaa519..13ce6bbfbb 100644
--- a/engines/cge/text.h
+++ b/engines/cge/text.h
@@ -61,8 +61,6 @@ private:
CGEEngine *_vm;
};
-extern Text *_text;
-
} // End of namespace CGE
#endif