aboutsummaryrefslogtreecommitdiff
path: root/engines/access
diff options
context:
space:
mode:
authorStrangerke2014-08-21 00:32:11 +0200
committerStrangerke2014-08-21 00:32:11 +0200
commitc7d4958984f199e4f3a6677056c9904d7f235fbe (patch)
tree4c0e3653c1ef18e0270cf83eb3125f410eef3160 /engines/access
parent70b8efacfbe4c314e73dcb946f16db4c49eab85b (diff)
downloadscummvm-rg350-c7d4958984f199e4f3a6677056c9904d7f235fbe.tar.gz
scummvm-rg350-c7d4958984f199e4f3a6677056c9904d7f235fbe.tar.bz2
scummvm-rg350-c7d4958984f199e4f3a6677056c9904d7f235fbe.zip
ACCESS: Implement partially doEstablish
Diffstat (limited to 'engines/access')
-rw-r--r--engines/access/access.cpp39
-rw-r--r--engines/access/access.h13
2 files changed, 43 insertions, 9 deletions
diff --git a/engines/access/access.cpp b/engines/access/access.cpp
index 6fcd64ecca..32835a01c8 100644
--- a/engines/access/access.cpp
+++ b/engines/access/access.cpp
@@ -217,18 +217,23 @@ void AccessEngine::freeInactiveData() {
_inactive = nullptr;
}
-void AccessEngine::establish(int v1, int v2) {
+void AccessEngine::establish(int v1, int sub) {
_establishMode = 0;
_establishGroup = 0;
- doEstablish(v1, v2);
+ doEstablish(v1, sub);
}
-void AccessEngine::establishCenter(int v1, int v2) {
+void AccessEngine::establishCenter(int v1, int sub) {
_establishMode = 1;
- doEstablish(v1, v2);
+ doEstablish(v1, sub);
}
-void AccessEngine::doEstablish(int v1, int v2) {
+byte *AccessEngine::loadEstablish(int sub) {
+ warning("TODO: loadEstablish");
+ return nullptr;
+}
+
+void AccessEngine::doEstablish(int v1, int sub) {
_screen->forceFadeOut();
_screen->clearScreen();
_screen->setPanel(3);
@@ -241,7 +246,29 @@ void AccessEngine::doEstablish(int v1, int v2) {
_room->setIconPalette();
_screen->forceFadeIn();
- warning("TODO: doEstablish");
+ _fonts._charSet._lo = 1;
+ _fonts._charSet._hi = 10;
+ _fonts._charFor._lo = 29;
+ _fonts._charFor._hi = 32;
+
+ _bubbleBox->_maxChars = 37;
+ _fonts._printOrg = _fonts._printStart = Common::Point(48, 35);
+ _eseg = loadEstablish(sub);
+ _et = sub;
+ warning("CHECKME: Use of di");
+ _printEnd = 155;
+ if (_txtPages == 0)
+ warning("TODO: printText();");
+ else
+ warning("TODO: speakText();");
+
+ _screen->forceFadeOut();
+ _screen->clearScreen();
+
+ free(_eseg);
+ if (_establishMode == 0) {
+ warning("TODO: init4Quads();");
+ }
}
void AccessEngine::plotList() {
diff --git a/engines/access/access.h b/engines/access/access.h
index 8cb1e72cfc..5423354800 100644
--- a/engines/access/access.h
+++ b/engines/access/access.h
@@ -87,7 +87,7 @@ private:
void dummyLoop();
- void doEstablish(int v1, int v2);
+ void doEstablish(int v1, int sub);
protected:
const AccessGameDescription *_gameDescription;
Common::RandomSource _randomSource;
@@ -156,6 +156,11 @@ public:
int _scaleI;
bool _scaleFlag;
+ byte *_eseg;
+ int _et;
+ int _printEnd;
+ int _txtPages;
+
// Fields that are included in savegames
int _conversation;
int _currentMan;
@@ -211,9 +216,11 @@ public:
*/
void freeInactiveData();
- void establish(int v1, int v2);
+ byte *AccessEngine::loadEstablish(int sub);
+
+ void establish(int v1, int sub);
- void establishCenter(int v1, int v2);
+ void establishCenter(int v1, int sub);
void plotList();
void plotList1();