aboutsummaryrefslogtreecommitdiff
path: root/engines/avalanche
diff options
context:
space:
mode:
authoruruk2013-07-24 18:25:07 +0200
committeruruk2013-07-24 18:25:07 +0200
commit10ec7e0e0f2d4cc246db0c3792c5af05e413976b (patch)
tree13516a3765905781cd17a1bb5c4c747436b9370a /engines/avalanche
parentf035622b14966e3af0a1fe53b63619ee29591e3a (diff)
downloadscummvm-rg350-10ec7e0e0f2d4cc246db0c3792c5af05e413976b.tar.gz
scummvm-rg350-10ec7e0e0f2d4cc246db0c3792c5af05e413976b.tar.bz2
scummvm-rg350-10ec7e0e0f2d4cc246db0c3792c5af05e413976b.zip
AVALANCHE: Change _gyro into pointer, update everything accordingly.
Diffstat (limited to 'engines/avalanche')
-rw-r--r--engines/avalanche/acci2.cpp454
-rw-r--r--engines/avalanche/avalanche.cpp3
-rw-r--r--engines/avalanche/avalanche.h2
-rw-r--r--engines/avalanche/avalot.cpp86
-rw-r--r--engines/avalanche/basher2.cpp16
-rw-r--r--engines/avalanche/celer2.cpp88
-rw-r--r--engines/avalanche/dropdown2.cpp148
-rw-r--r--engines/avalanche/enid2.cpp34
-rw-r--r--engines/avalanche/gyro2.cpp10
-rw-r--r--engines/avalanche/gyro2.h4
-rw-r--r--engines/avalanche/logger2.cpp42
-rw-r--r--engines/avalanche/lucerna2.cpp390
-rw-r--r--engines/avalanche/pingo2.cpp2
-rw-r--r--engines/avalanche/scrolls2.cpp76
-rw-r--r--engines/avalanche/sequence2.cpp10
-rw-r--r--engines/avalanche/timeout2.cpp128
-rw-r--r--engines/avalanche/trip6.cpp536
-rw-r--r--engines/avalanche/visa2.cpp18
18 files changed, 1022 insertions, 1025 deletions
diff --git a/engines/avalanche/acci2.cpp b/engines/avalanche/acci2.cpp
index d16c8c6746..5e2fb23f1d 100644
--- a/engines/avalanche/acci2.cpp
+++ b/engines/avalanche/acci2.cpp
@@ -158,7 +158,7 @@ const Acci::vocab Acci::words[nowords] = {
{178, "WITCH"},
/* Pronouns, 200-224 */
- {200, "_vm->_gyro.him"}, {200, "MAN"}, {200, "GUY"},
+ {200, "_vm->_gyro->him"}, {200, "MAN"}, {200, "GUY"},
{200, "DUDE"}, {200, "CHAP"}, {200, "FELLOW"},
{201, "HER"}, {201, "GIRL"}, {201, "WOMAN"},
{202, "IT"}, {202, "THING"},
@@ -221,7 +221,7 @@ void Acci::setParent(AvalancheEngine *vm) {
}
void Acci::init() {
- _vm->_gyro.weirdword = false;
+ _vm->_gyro->weirdword = false;
}
void Acci::checkword(Common::String &x) { /* Checks uint16 "fv". */
@@ -257,7 +257,7 @@ begin
off;
assign(f,'avvydump.avd');
rewrite(f,1);
- blockwrite(f,_vm->_gyro.dna,177); { just anything }
+ blockwrite(f,_vm->_gyro->dna,177); { just anything }
for bit:=0 to 3 do
begin
port[$3c4]:=2; port[$3ce]:=4; port[$3C5]:=1 shl bit; port[$3CF]:=bit;
@@ -272,7 +272,7 @@ Common::String Acci::rank() {
Common::String rank_result = "";
for (fv = 1; fv <= 8; fv++) {
- if ((_vm->_gyro.dna.score >= ranks[fv].score) && (_vm->_gyro.dna.score < ranks[fv + 1].score)) {
+ if ((_vm->_gyro->dna.score >= ranks[fv].score) && (_vm->_gyro->dna.score < ranks[fv + 1].score)) {
rank_result = ranks[fv].title;
return rank_result;
}
@@ -430,30 +430,30 @@ void Acci::others() {
void Acci::lookaround() {
/* This is called when you say "look." */
- _vm->_scrolls.display(*_vm->_gyro.also[0][1]);
- switch (_vm->_gyro.dna.room) {
+ _vm->_scrolls.display(*_vm->_gyro->also[0][1]);
+ switch (_vm->_gyro->dna.room) {
case r__spludwicks:
- if (_vm->_gyro.dna.avaricius_talk > 0)
+ if (_vm->_gyro->dna.avaricius_talk > 0)
_vm->_visa.dixi('q', 23);
else
others();
break;
case r__robins:
- if (_vm->_gyro.dna.tied_up)
+ if (_vm->_gyro->dna.tied_up)
_vm->_visa.dixi('q', 38);
- if (_vm->_gyro.dna.mushroom_growing)
+ if (_vm->_gyro->dna.mushroom_growing)
_vm->_visa.dixi('q', 55);
break;
case r__insidecardiffcastle:
- if (!_vm->_gyro.dna.taken_pen)
+ if (!_vm->_gyro->dna.taken_pen)
_vm->_visa.dixi('q', 49);
break;
case r__lustiesroom:
- if (_vm->_gyro.dna.lustie_is_asleep)
+ if (_vm->_gyro->dna.lustie_is_asleep)
_vm->_visa.dixi('q', 65);
break;
case r__catacombs:
- switch (_vm->_gyro.dna.cat_y * 256 + _vm->_gyro.dna.cat_x) {
+ switch (_vm->_gyro->dna.cat_y * 256 + _vm->_gyro->dna.cat_x) {
case 258 :
_vm->_visa.dixi('q', 80);
break; /* Inside art gallery */
@@ -473,7 +473,7 @@ void Acci::lookaround() {
void Acci::opendoor() { /* so whaddya THINK this does?! */
byte fv;
- switch (_vm->_gyro.dna.room) { /* Special cases. */
+ switch (_vm->_gyro->dna.room) { /* Special cases. */
case r__yours:
if (_vm->_trip.infield(2)) {
/* Opening the box. */
@@ -491,30 +491,30 @@ void Acci::opendoor() { /* so whaddya THINK this does?! */
}
- if ((!_vm->_gyro.dna.user_moves_avvy) && (_vm->_gyro.dna.room != r__lusties))
+ if ((!_vm->_gyro->dna.user_moves_avvy) && (_vm->_gyro->dna.room != r__lusties))
return; /* No doors can open if you can't move Avvy. */
for (fv = 9; fv <= 15; fv++) {
if (_vm->_trip.infield(fv)) {
{
- _vm->_gyro.portals[fv];
- switch (_vm->_gyro.portals[fv].op) {
- case _vm->_gyro.exclaim:
+ _vm->_gyro->portals[fv];
+ switch (_vm->_gyro->portals[fv].op) {
+ case _vm->_gyro->exclaim:
_vm->_trip.tr[1].bounce();
- _vm->_visa.dixi('x', _vm->_gyro.portals[fv].data);
+ _vm->_visa.dixi('x', _vm->_gyro->portals[fv].data);
break;
- case _vm->_gyro.transport:
- _vm->_trip.fliproom((_vm->_gyro.portals[fv].data) >> 8 /*High byte*/, (_vm->_gyro.portals[fv].data) & 0x0F /*Low byte*/);
+ case _vm->_gyro->transport:
+ _vm->_trip.fliproom((_vm->_gyro->portals[fv].data) >> 8 /*High byte*/, (_vm->_gyro->portals[fv].data) & 0x0F /*Low byte*/);
break;
- case _vm->_gyro.unfinished:
+ case _vm->_gyro->unfinished:
_vm->_trip.tr[1].bounce();
_vm->_scrolls.display("Sorry. This place is not available yet!");
break;
- case _vm->_gyro.special:
- _vm->_trip.call_special(_vm->_gyro.portals[fv].data);
+ case _vm->_gyro->special:
+ _vm->_trip.call_special(_vm->_gyro->portals[fv].data);
break;
- case _vm->_gyro.mopendoor:
- _vm->_trip.open_the_door((_vm->_gyro.portals[fv].data) >> 8, (_vm->_gyro.portals[fv].data) & 0x0F, fv);
+ case _vm->_gyro->mopendoor:
+ _vm->_trip.open_the_door((_vm->_gyro->portals[fv].data) >> 8, (_vm->_gyro->portals[fv].data) & 0x0F, fv);
break;
}
}
@@ -522,7 +522,7 @@ void Acci::opendoor() { /* so whaddya THINK this does?! */
}
}
- if (_vm->_gyro.dna.room == r__map)
+ if (_vm->_gyro->dna.room == r__map)
_vm->_scrolls.display(Common::String("Avvy, you can complete the whole game without ever going "
"to anywhere other than Argent, Birmingham, Cardiff, "
"Nottingham and Norwich."));
@@ -552,16 +552,16 @@ void Acci::putproc() { /* Called when you call vb_put. */
putting it. */
/* Convenience thing. */
switch (thing2) {
- case _vm->_gyro.wine:
- if (thing == _vm->_gyro.onion) {
- if (_vm->_gyro.dna.rotten_onion)
+ case _vm->_gyro->wine:
+ if (thing == _vm->_gyro->onion) {
+ if (_vm->_gyro->dna.rotten_onion)
_vm->_scrolls.display(Common::String("That's a bit like shutting the stable door after the "
"horse has bolted!"));
else { /* Put onion into wine? */
- if (_vm->_gyro.dna.winestate != 3)
+ if (_vm->_gyro->dna.winestate != 3)
_vm->_scrolls.display("\6Oignon au vin\22 is a bit too strong for your tastes!");
else { /* Put onion into vinegar! Yes! */
- _vm->_gyro.dna.onion_in_vinegar = true;
+ _vm->_gyro->dna.onion_in_vinegar = true;
_vm->_lucerna.points(7);
_vm->_visa.dixi('u', 9);
}
@@ -571,32 +571,32 @@ void Acci::putproc() { /* Called when you call vb_put. */
break;
case 54:
- if (_vm->_gyro.dna.room == 1) { /* Put something into the box. */
- if (_vm->_gyro.dna.box_contents != nowt)
+ if (_vm->_gyro->dna.room == 1) { /* Put something into the box. */
+ if (_vm->_gyro->dna.box_contents != nowt)
_vm->_scrolls.display(Common::String("There's something in the box already, Avvy. Try taking"
" that out first."));
else {
switch (thing) {
- case _vm->_gyro.money:
+ case _vm->_gyro->money:
_vm->_scrolls.display("You'd better keep some ready cash on you!");
break;
- case _vm->_gyro.bell:
+ case _vm->_gyro->bell:
_vm->_scrolls.display("That's a silly place to keep a bell.");
break;
- case _vm->_gyro.bodkin:
+ case _vm->_gyro->bodkin:
_vm->_scrolls.display("But you might need it!");
break;
- case _vm->_gyro.onion:
+ case _vm->_gyro->onion:
_vm->_scrolls.display("Just give it to Spludwick, Avvy!");
break;
default:
/* Put the object into the box... */
- if (_vm->_gyro.dna.wearing == thing)
- _vm->_scrolls.display(Common::String("You'd better take ") + _vm->_gyro.get_better(thing) + " off first!");
+ if (_vm->_gyro->dna.wearing == thing)
+ _vm->_scrolls.display(Common::String("You'd better take ") + _vm->_gyro->get_better(thing) + " off first!");
else {
_vm->_celer.show_one(5); /* Open box. */
- _vm->_gyro.dna.box_contents = thing;
- _vm->_gyro.dna.obj[thing] = false;
+ _vm->_gyro->dna.box_contents = thing;
+ _vm->_gyro->dna.obj[thing] = false;
_vm->_lucerna.objectlist();
_vm->_scrolls.display("OK, it's in the box.");
_vm->_celer.show_one(6); /* Shut box. */
@@ -617,7 +617,7 @@ void Acci::putproc() { /* Called when you call vb_put. */
void Acci::not_in_order() {
_vm->_scrolls.display(Common::String("Sorry, I need the ingredients in the right order for this potion.") +
" What I need next is " +
- _vm->_gyro.get_better(_vm->_gyro.spludwick_order[_vm->_gyro.dna.given2spludwick]) + ".\232\2");
+ _vm->_gyro->get_better(_vm->_gyro->spludwick_order[_vm->_gyro->dna.given2spludwick]) + ".\232\2");
}
void Acci::go_to_cauldron() {
@@ -629,39 +629,39 @@ void Acci::go_to_cauldron() {
bool Acci::give2spludwick() {
bool give2spludwick_result = false;
- if (_vm->_gyro.spludwick_order[_vm->_gyro.dna.given2spludwick] != thing) {
+ if (_vm->_gyro->spludwick_order[_vm->_gyro->dna.given2spludwick] != thing) {
not_in_order();
return give2spludwick_result;
}
switch (thing) {
- case _vm->_gyro.onion:
- _vm->_gyro.dna.obj[_vm->_gyro.onion] = false;
- if (_vm->_gyro.dna.rotten_onion)
+ case _vm->_gyro->onion:
+ _vm->_gyro->dna.obj[_vm->_gyro->onion] = false;
+ if (_vm->_gyro->dna.rotten_onion)
_vm->_visa.dixi('q', 22);
else {
- _vm->_gyro.dna.given2spludwick += 1;
+ _vm->_gyro->dna.given2spludwick += 1;
_vm->_visa.dixi('q', 20);
go_to_cauldron();
_vm->_lucerna.points(3);
}
_vm->_lucerna.objectlist();
break;
- case _vm->_gyro.ink:
- _vm->_gyro.dna.obj[_vm->_gyro.ink] = false;
+ case _vm->_gyro->ink:
+ _vm->_gyro->dna.obj[_vm->_gyro->ink] = false;
_vm->_lucerna.objectlist();
- _vm->_gyro.dna.given2spludwick += 1;
+ _vm->_gyro->dna.given2spludwick += 1;
_vm->_visa.dixi('q', 24);
go_to_cauldron();
_vm->_lucerna.points(3);
break;
- case _vm->_gyro.mushroom:
- _vm->_gyro.dna.obj[_vm->_gyro.mushroom] = false;
+ case _vm->_gyro->mushroom:
+ _vm->_gyro->dna.obj[_vm->_gyro->mushroom] = false;
_vm->_visa.dixi('q', 25);
_vm->_lucerna.points(5);
- _vm->_gyro.dna.given2spludwick += 1;
+ _vm->_gyro->dna.given2spludwick += 1;
go_to_cauldron();
- _vm->_gyro.dna.obj[_vm->_gyro.potion] = true;
+ _vm->_gyro->dna.obj[_vm->_gyro->potion] = true;
_vm->_lucerna.objectlist();
break;
default:
@@ -672,32 +672,32 @@ bool Acci::give2spludwick() {
}
void Acci::have_a_drink() {
- _vm->_gyro.dna.alcohol += 1;
- if (_vm->_gyro.dna.alcohol == 5) {
- _vm->_gyro.dna.obj[_vm->_gyro.key] = true; /* Get the key. */
- _vm->_gyro.dna.teetotal = true;
- _vm->_gyro.dna.avvy_is_awake = false;
- _vm->_gyro.dna.avvy_in_bed = true;
+ _vm->_gyro->dna.alcohol += 1;
+ if (_vm->_gyro->dna.alcohol == 5) {
+ _vm->_gyro->dna.obj[_vm->_gyro->key] = true; /* Get the key. */
+ _vm->_gyro->dna.teetotal = true;
+ _vm->_gyro->dna.avvy_is_awake = false;
+ _vm->_gyro->dna.avvy_in_bed = true;
_vm->_lucerna.objectlist();
_vm->_lucerna.dusk();
- _vm->_gyro.hang_around_for_a_while();
+ _vm->_gyro->hang_around_for_a_while();
_vm->_trip.fliproom(1, 1);
- _vm->_gyro.background(14);
+ _vm->_gyro->background(14);
_vm->_trip.new_game_for_trippancy(); /* Not really */
}
}
void Acci::cardiff_climbing() {
- if (_vm->_gyro.dna.standing_on_dais) {
+ if (_vm->_gyro->dna.standing_on_dais) {
/* Clamber up. */
_vm->_scrolls.display("You climb down, back onto the floor.");
- _vm->_gyro.dna.standing_on_dais = false;
+ _vm->_gyro->dna.standing_on_dais = false;
_vm->_trip.apped(1, 3);
} else {
/* Clamber down. */
if (_vm->_trip.infield(1)) {
_vm->_scrolls.display("You clamber up onto the dais.");
- _vm->_gyro.dna.standing_on_dais = true;
+ _vm->_gyro->dna.standing_on_dais = true;
_vm->_trip.apped(1, 2);
} else
_vm->_scrolls.display("Get a bit closer, Avvy.");
@@ -711,21 +711,21 @@ void Acci::already() {
}
void Acci::stand_up() {
- switch (_vm->_gyro.dna.room) {
+ switch (_vm->_gyro->dna.room) {
case r__yours: /* Avvy isn't asleep. */
- if (_vm->_gyro.dna.avvy_in_bed) { /* But he's in bed. */
- if (_vm->_gyro.dna.teetotal) {
+ if (_vm->_gyro->dna.avvy_in_bed) { /* But he's in bed. */
+ if (_vm->_gyro->dna.teetotal) {
_vm->_visa.dixi('d', 12);
- _vm->_gyro.background(0);
+ _vm->_gyro->background(0);
_vm->_visa.dixi('d', 14);
}
_vm->_trip.tr[1].visible = true;
- _vm->_gyro.dna.user_moves_avvy = true;
+ _vm->_gyro->dna.user_moves_avvy = true;
_vm->_trip.apped(1, 2);
- _vm->_gyro.dna.rw = _vm->_gyro.left;
+ _vm->_gyro->dna.rw = _vm->_gyro->left;
_vm->_celer.show_one(4); /* Picture of empty pillow. */
_vm->_lucerna.points(1);
- _vm->_gyro.dna.avvy_in_bed = false;
+ _vm->_gyro->dna.avvy_in_bed = false;
_vm->_timeout.lose_timer(_vm->_timeout.reason_arkata_shouts);
} else
already();
@@ -736,12 +736,12 @@ void Acci::stand_up() {
break;
case r__nottspub:
- if (_vm->_gyro.dna.sitting_in_pub) {
+ if (_vm->_gyro->dna.sitting_in_pub) {
_vm->_celer.show_one(4); /* Not sitting down. */
_vm->_trip.tr[1].visible = true; /* But standing up. */
_vm->_trip.apped(1, 4); /* And walking away. */
- _vm->_gyro.dna.sitting_in_pub = false; /* Really not sitting down. */
- _vm->_gyro.dna.user_moves_avvy = true; /* And ambulant. */
+ _vm->_gyro->dna.sitting_in_pub = false; /* Really not sitting down. */
+ _vm->_gyro->dna.user_moves_avvy = true; /* And ambulant. */
} else
already();
break;
@@ -752,44 +752,44 @@ void Acci::stand_up() {
void Acci::getproc(char thing) {
- switch (_vm->_gyro.dna.room) {
+ switch (_vm->_gyro->dna.room) {
case r__yours:
if (_vm->_trip.infield(2)) {
- if (_vm->_gyro.dna.box_contents == thing) {
+ if (_vm->_gyro->dna.box_contents == thing) {
_vm->_celer.show_one(5);
_vm->_scrolls.display("OK, I've got it.");
- _vm->_gyro.dna.obj[thing] = true;
+ _vm->_gyro->dna.obj[thing] = true;
_vm->_lucerna.objectlist();
- _vm->_gyro.dna.box_contents = nowt;
+ _vm->_gyro->dna.box_contents = nowt;
_vm->_celer.show_one(6);
} else
- _vm->_scrolls.display(Common::String("I can't see ") + _vm->_gyro.get_better(thing) + " in the box.");
+ _vm->_scrolls.display(Common::String("I can't see ") + _vm->_gyro->get_better(thing) + " in the box.");
} else
_vm->_visa.dixi('q', 57);
break;
case r__insidecardiffcastle:
switch (thing) {
- case _vm->_gyro.pen:
+ case _vm->_gyro->pen:
if (_vm->_trip.infield(2)) {
/* Standing on the dais. */
- if (_vm->_gyro.dna.taken_pen)
+ if (_vm->_gyro->dna.taken_pen)
_vm->_scrolls.display("It's not there, Avvy.");
else {
/* OK: we're taking the pen, and it's there. */
_vm->_celer.show_one(4); /* No pen there now. */
_vm->_trip.call_special(3); /* Zap! */
- _vm->_gyro.dna.taken_pen = true;
- _vm->_gyro.dna.obj[_vm->_gyro.pen] = true;
+ _vm->_gyro->dna.taken_pen = true;
+ _vm->_gyro->dna.obj[_vm->_gyro->pen] = true;
_vm->_lucerna.objectlist();
_vm->_scrolls.display("Taken.");
}
- } else if (_vm->_gyro.dna.standing_on_dais)
+ } else if (_vm->_gyro->dna.standing_on_dais)
_vm->_visa.dixi('q', 53);
else
_vm->_visa.dixi('q', 51);
break;
- case _vm->_gyro.bolt:
+ case _vm->_gyro->bolt:
_vm->_visa.dixi('q', 52);
break;
default:
@@ -797,12 +797,12 @@ void Acci::getproc(char thing) {
}
break;
case r__robins:
- if ((thing == _vm->_gyro.mushroom) & (_vm->_trip.infield(1)) & (_vm->_gyro.dna.mushroom_growing)) {
+ if ((thing == _vm->_gyro->mushroom) & (_vm->_trip.infield(1)) & (_vm->_gyro->dna.mushroom_growing)) {
_vm->_celer.show_one(3);
_vm->_scrolls.display("Got it!");
- _vm->_gyro.dna.mushroom_growing = false;
- _vm->_gyro.dna.taken_mushroom = true;
- _vm->_gyro.dna.obj[_vm->_gyro.mushroom] = true;
+ _vm->_gyro->dna.mushroom_growing = false;
+ _vm->_gyro->dna.taken_mushroom = true;
+ _vm->_gyro->dna.obj[_vm->_gyro->mushroom] = true;
_vm->_lucerna.objectlist();
_vm->_lucerna.points(3);
} else
@@ -814,11 +814,11 @@ void Acci::getproc(char thing) {
}
void Acci::give_geida_the_lute() {
- if (_vm->_gyro.dna.room != r__lustiesroom) {
+ if (_vm->_gyro->dna.room != r__lustiesroom) {
_vm->_scrolls.display("Not yet. Try later!\232\2");
return;
}
- _vm->_gyro.dna.obj[_vm->_gyro.lute] = false;
+ _vm->_gyro->dna.obj[_vm->_gyro->lute] = false;
_vm->_lucerna.objectlist();
_vm->_visa.dixi('q', 64); /* She plays it. */
@@ -851,14 +851,14 @@ void Acci::person_speaks() {
if ((person == pardon) || (person == '\0')) {
- if ((_vm->_gyro.him == pardon) || (_vm->_gyro.whereis[_vm->_gyro.him] != _vm->_gyro.dna.room))
- person = _vm->_gyro.her;
+ if ((_vm->_gyro->him == pardon) || (_vm->_gyro->whereis[_vm->_gyro->him] != _vm->_gyro->dna.room))
+ person = _vm->_gyro->her;
else
- person = _vm->_gyro.him;
+ person = _vm->_gyro->him;
}
- if (_vm->_gyro.whereis[person] != _vm->_gyro.dna.room) {
- _vm->_scrolls.display("\231\4"); /* Avvy _vm->_gyro.himself! */
+ if (_vm->_gyro->whereis[person] != _vm->_gyro->dna.room) {
+ _vm->_scrolls.display("\231\4"); /* Avvy _vm->_gyro->himself! */
return;
}
@@ -873,8 +873,8 @@ void Acci::person_speaks() {
if (!found) {
for (fv = 10; fv <= 25; fv++) {
- _vm->_gyro.quasipeds[fv];
- if ((_vm->_gyro.quasipeds[fv].who == person) && (_vm->_gyro.quasipeds[fv].room == _vm->_gyro.dna.room)) {
+ _vm->_gyro->quasipeds[fv];
+ if ((_vm->_gyro->quasipeds[fv].who == person) && (_vm->_gyro->quasipeds[fv].room == _vm->_gyro->dna.room)) {
_vm->_scrolls.display(Common::String('\23') + char(fv + 55) + '\4');
}
}
@@ -884,7 +884,7 @@ void Acci::person_speaks() {
void Acci::heythanks() {
person_speaks();
_vm->_scrolls.display("Hey, thanks!\2(But now, you've lost it!)");
- _vm->_gyro.dna.obj[thing] = false;
+ _vm->_gyro->dna.obj[thing] = false;
}
void Acci::do_that() {
@@ -898,13 +898,13 @@ void Acci::do_that() {
thats = "";
return;
}
- if (_vm->_gyro.weirdword)
+ if (_vm->_gyro->weirdword)
return;
if (thing < '\310')
thing -= 49; /* "Slip" */
/*
- if ((!_vm->_gyro.alive) &
+ if ((!_vm->_gyro->alive) &
!(set::of(vb_load, vb_save, vb_quit, vb_info, vb_help, vb_larrypass,
vb_phaon, vb_boss, vb_cheat, vb_restart, vb_dir, vb_score,
vb_highscores, vb_smartalec, eos).has(verb))) {
@@ -913,7 +913,7 @@ void Acci::do_that() {
return;
}
- if ((~ _vm->_gyro.dna.avvy_is_awake) &
+ if ((~ _vm->_gyro->dna.avvy_is_awake) &
!(set::of(vb_load, vb_save, vb_quit, vb_info, vb_help, vb_larrypass,
vb_phaon, vb_boss, vb_cheat, vb_restart, vb_dir, vb_die, vb_score,
vb_highscores, vb_smartalec, vb_expletive, vb_wake, eos).has(verb))) {
@@ -937,7 +937,7 @@ void Acci::do_that() {
case vb_get:
if (thing != pardon) {
/* Legitimate try to pick something up. */
- if (_vm->_gyro.dna.carrying >= maxobjs)
+ if (_vm->_gyro->dna.carrying >= maxobjs)
_vm->_scrolls.display("You can't carry any more!");
else
getproc(thing);
@@ -954,13 +954,13 @@ void Acci::do_that() {
_vm->_scrolls.display(Common::String("Two years ago you dropped a florin in the street. Three days ") +
"later it was gone! So now you never leave ANYTHING lying around. OK?");
break;
- /* begin _vm->_gyro.dna.obj[thing]:=false; _vm->_lucerna.objectlist(); end;*/
+ /* begin _vm->_gyro->dna.obj[thing]:=false; _vm->_lucerna.objectlist(); end;*/
case vb_inv:
inv();
break;
case vb_talk:
if (person == pardon) {
- if (_vm->_gyro.subjnumber == 99) /* They typed "say passuint16". */
+ if (_vm->_gyro->subjnumber == 99) /* They typed "say passuint16". */
_vm->_scrolls.display("Yes, but what \6is\22 the passuint16?");
/*
else if (set::of(range(1, 49), 253, 249, eos).has(subjnumber)) {
@@ -970,7 +970,7 @@ void Acci::do_that() {
do_that();
return;
} else {
- person = _vm->_gyro.subjnumber;
+ person = _vm->_gyro->subjnumber;
subjnumber = 0;
if (set::of(pardon, '\0', eos).has(person))
_vm->_scrolls.display("Talk to whom?");
@@ -990,56 +990,56 @@ void Acci::do_that() {
_vm->_scrolls.display("Give to whom?");
else if (personshere()) {
switch (thing) {
- case _vm->_gyro.money :
+ case _vm->_gyro->money :
_vm->_scrolls.display("You can't bring yourself to give away your moneybag.");
break;
- case _vm->_gyro.bodkin:
- case _vm->_gyro.bell:
- case _vm->_gyro.clothes:
- case _vm->_gyro.habit :
+ case _vm->_gyro->bodkin:
+ case _vm->_gyro->bell:
+ case _vm->_gyro->clothes:
+ case _vm->_gyro->habit :
_vm->_scrolls.display("Don't give it away, it might be useful!");
break;
default:
switch (person) {
- case _vm->_gyro.pcrapulus:
+ case _vm->_gyro->pcrapulus:
switch (thing) {
- case _vm->_gyro.wine:
+ case _vm->_gyro->wine:
_vm->_scrolls.display("Crapulus grabs the wine and gulps it down.");
- _vm->_gyro.dna.obj[_vm->_gyro.wine] = false;
+ _vm->_gyro->dna.obj[_vm->_gyro->wine] = false;
break;
default:
heythanks();
}
break;
- case _vm->_gyro.pcwytalot:
+ case _vm->_gyro->pcwytalot:
/*if (set::of(crossbow, bolt, eos).has(thing))
_vm->_scrolls.display(Common::String("You might be able to influence ") +
"Cwytalot more if you used it!");
else */heythanks();
break;
- case _vm->_gyro.pspludwick:
+ case _vm->_gyro->pspludwick:
if (give2spludwick())
heythanks();
break;
- case _vm->_gyro.pibythneth:
- if (thing == _vm->_gyro.badge) {
+ case _vm->_gyro->pibythneth:
+ if (thing == _vm->_gyro->badge) {
_vm->_visa.dixi('q', 32); /* Thanks! Wow! */
_vm->_lucerna.points(3);
- _vm->_gyro.dna.obj[_vm->_gyro.badge] = false;
- _vm->_gyro.dna.obj[_vm->_gyro.habit] = true;
- _vm->_gyro.dna.givenbadgetoiby = true;
+ _vm->_gyro->dna.obj[_vm->_gyro->badge] = false;
+ _vm->_gyro->dna.obj[_vm->_gyro->habit] = true;
+ _vm->_gyro->dna.givenbadgetoiby = true;
_vm->_celer.show_one(8);
_vm->_celer.show_one(9);
} else
heythanks();
break;
- case _vm->_gyro.payles:
- if (_vm->_gyro.dna.ayles_is_awake) {
- if (thing == _vm->_gyro.pen) {
- _vm->_gyro.dna.obj[_vm->_gyro.pen] = false;
+ case _vm->_gyro->payles:
+ if (_vm->_gyro->dna.ayles_is_awake) {
+ if (thing == _vm->_gyro->pen) {
+ _vm->_gyro->dna.obj[_vm->_gyro->pen] = false;
_vm->_visa.dixi('q', 54);
- _vm->_gyro.dna.obj[_vm->_gyro.ink] = true;
- _vm->_gyro.dna.given_pen_to_ayles = true;
+ _vm->_gyro->dna.obj[_vm->_gyro->ink] = true;
+ _vm->_gyro->dna.given_pen_to_ayles = true;
_vm->_lucerna.objectlist();
_vm->_lucerna.points(2);
} else
@@ -1047,26 +1047,26 @@ void Acci::do_that() {
} else
_vm->_scrolls.display("But he's asleep!");
break;
- case _vm->_gyro.pgeida:
+ case _vm->_gyro->pgeida:
switch (thing) {
- case _vm->_gyro.potion:
- _vm->_gyro.dna.obj[_vm->_gyro.potion] = false;
+ case _vm->_gyro->potion:
+ _vm->_gyro->dna.obj[_vm->_gyro->potion] = false;
_vm->_visa.dixi('u', 16); /* She drinks it. */
_vm->_lucerna.points(2);
- _vm->_gyro.dna.geida_given_potion = true;
+ _vm->_gyro->dna.geida_given_potion = true;
_vm->_lucerna.objectlist();
break;
- case _vm->_gyro.lute:
+ case _vm->_gyro->lute:
give_geida_the_lute();
break;
default:
heythanks();
}
break;
- case _vm->_gyro.parkata:
+ case _vm->_gyro->parkata:
switch (thing) {
- case _vm->_gyro.potion:
- if (_vm->_gyro.dna.geida_given_potion)
+ case _vm->_gyro->potion:
+ if (_vm->_gyro->dna.geida_given_potion)
winsequence();
else
_vm->_visa.dixi('q', 77);
@@ -1093,7 +1093,7 @@ void Acci::do_that() {
_vm->_enid.edna_load(realwords[2]);
break;
case vb_save:
- if (_vm->_gyro.alive)
+ if (_vm->_gyro->alive)
_vm->_enid.edna_save(realwords[2]);
else
_vm->_scrolls.display("It's a bit late now to save your game!");
@@ -1108,7 +1108,7 @@ void Acci::do_that() {
_vm->_scrolls.display("Vandalism is prohibited within this game!");
break;
case vb_quit: /* quit */
- //if (_vm->_gyro.demo) {
+ //if (_vm->_gyro->demo) {
// _vm->_visa.dixi('q', 31);
// close(demofile);
// exit(0); /* Change this later!!! */
@@ -1116,7 +1116,7 @@ void Acci::do_that() {
if (!polite)
_vm->_scrolls.display("How about a `please\", Avvy?");
else if (_vm->_scrolls.ask("\23C\26Do you really want to quit?"))
- _vm->_gyro.lmo = true;
+ _vm->_gyro->lmo = true;
break;
case vb_go:
_vm->_scrolls.display("Just use the arrow keys to walk there.");
@@ -1132,16 +1132,16 @@ void Acci::do_that() {
_vm->_scrolls.display(Common::String("\r\r\r\r\r\r\r") + "LORD AVALOT D'ARGENT" + "\3\r" +
"The medi‘val descendant of" + '\15' +
"Denarius Avaricius Sextus" +
- '\15' + '\15' + "version " + _vm->_gyro.vernum + '\15' + '\15' + "Copyright ï "
- + _vm->_gyro.copyright + ", Mark, Mike and Thomas Thurman." + '\23' + 'Y' + '\26');
+ '\15' + '\15' + "version " + _vm->_gyro->vernum + '\15' + '\15' + "Copyright ï "
+ + _vm->_gyro->copyright + ", Mark, Mike and Thomas Thurman." + '\23' + 'Y' + '\26');
_vm->_scrolls.aboutscroll = false;
break;
case vb_undress:
- if (_vm->_gyro.dna.wearing == nowt)
+ if (_vm->_gyro->dna.wearing == nowt)
_vm->_scrolls.display("You're already stark naked!");
- else if (_vm->_gyro.dna.avvys_in_the_cupboard) {
- _vm->_scrolls.display(Common::String("You take off ") + _vm->_gyro.get_better(_vm->_gyro.dna.wearing) + '.');
- _vm->_gyro.dna.wearing = nowt;
+ else if (_vm->_gyro->dna.avvys_in_the_cupboard) {
+ _vm->_scrolls.display(Common::String("You take off ") + _vm->_gyro->get_better(_vm->_gyro->dna.wearing) + '.');
+ _vm->_gyro->dna.wearing = nowt;
_vm->_lucerna.objectlist();
} else
_vm->_scrolls.display("Hadn't you better find somewhere more private, Avvy?");
@@ -1150,23 +1150,23 @@ void Acci::do_that() {
if (holding()) {
/* wear something */
switch (thing) {
- case _vm->_gyro.chastity:
+ case _vm->_gyro->chastity:
_vm->_scrolls.display("Hey, what kind of a weirdo are you\??!");
break;
- case _vm->_gyro.clothes:
- case _vm->_gyro.habit: /* Change this! */
- if (_vm->_gyro.dna.wearing != nowt) {
- if (_vm->_gyro.dna.wearing == thing)
+ case _vm->_gyro->clothes:
+ case _vm->_gyro->habit: /* Change this! */
+ if (_vm->_gyro->dna.wearing != nowt) {
+ if (_vm->_gyro->dna.wearing == thing)
_vm->_scrolls.display("You're already wearing that.");
else
_vm->_scrolls.display(Common::String("You'll be rather warm wearing two ") +
"sets of clothes!");
return;
} else
- _vm->_gyro.dna.wearing = thing;
+ _vm->_gyro->dna.wearing = thing;
_vm->_lucerna.objectlist();
- if (thing == _vm->_gyro.habit)
+ if (thing == _vm->_gyro->habit)
fv = 3;
else
fv = 0;
@@ -1187,7 +1187,7 @@ void Acci::do_that() {
break;
case vb_play:
if (thing == pardon) {
- switch (_vm->_gyro.dna.room) { /* They just typed "play"... */
+ switch (_vm->_gyro->dna.room) { /* They just typed "play"... */
case r__argentpub:
// play_nim();
// I just don't plan to implement Nim yet.
@@ -1198,22 +1198,22 @@ void Acci::do_that() {
}
} else if (holding()) {
switch (thing) {
- case _vm->_gyro.lute :
+ case _vm->_gyro->lute :
_vm->_visa.dixi('U', 7);
- if (_vm->_gyro.whereis[_vm->_gyro.pcwytalot] == _vm->_gyro.dna.room)
+ if (_vm->_gyro->whereis[_vm->_gyro->pcwytalot] == _vm->_gyro->dna.room)
_vm->_visa.dixi('U', 10);
- if (_vm->_gyro.whereis[_vm->_gyro.pdulustie] == _vm->_gyro.dna.room)
+ if (_vm->_gyro->whereis[_vm->_gyro->pdulustie] == _vm->_gyro->dna.room)
_vm->_visa.dixi('U', 15);
break;
case 52:
- if (_vm->_gyro.dna.room == r__musicroom)
+ if (_vm->_gyro->dna.room == r__musicroom)
play_harp();
else
_vm->_scrolls.display(what);
break;
case 55:
- if (_vm->_gyro.dna.room == r__argentpub)
+ if (_vm->_gyro->dna.room == r__argentpub)
; /*play_nim(); - Don't implement yet.*/
else
_vm->_scrolls.display(what);
@@ -1225,9 +1225,9 @@ void Acci::do_that() {
break;
case vb_ring:
if (holding()) {
- if (thing == _vm->_gyro.bell) {
+ if (thing == _vm->_gyro->bell) {
_vm->_scrolls.display("Ding, dong, ding, dong, ding, dong, ding, dong...");
- if ((_vm->_gyro.dna.ringing_bells) & (_vm->_gyro.flagset('B')))
+ if ((_vm->_gyro->dna.ringing_bells) & (_vm->_gyro->flagset('B')))
_vm->_scrolls.display("(Are you trying to join in, Avvy\?\?!)");
} else
_vm->_scrolls.display(what);
@@ -1248,7 +1248,7 @@ void Acci::do_that() {
// I don't want to implement bosskey yet.
break;
case vb_pee:
- if (_vm->_gyro.flagset('P')) {
+ if (_vm->_gyro->flagset('P')) {
_vm->_scrolls.display("Hmm, I don't think anyone will notice...");
_vm->_timeout.set_up_timer(4, _vm->_timeout.procurinate, _vm->_timeout.reason_gototoilet);
} else
@@ -1256,16 +1256,16 @@ void Acci::do_that() {
break;
case vb_cheat:
_vm->_scrolls.display(Common::String('\6') + "Cheat mode now enabled.");
- _vm->_gyro.cheat = true;
+ _vm->_gyro->cheat = true;
break;
case vb_magic:
- if (_vm->_gyro.dna.avaricius_talk > 0)
+ if (_vm->_gyro->dna.avaricius_talk > 0)
_vm->_visa.dixi('q', 19);
else {
- if ((_vm->_gyro.dna.room == 12) & (_vm->_trip.infield(2))) {
+ if ((_vm->_gyro->dna.room == 12) & (_vm->_trip.infield(2))) {
/* Avaricius appears! */
_vm->_visa.dixi('q', 17);
- if (_vm->_gyro.whereis['\227'] == 12)
+ if (_vm->_gyro->whereis['\227'] == 12)
_vm->_visa.dixi('q', 18);
else {
_vm->_trip.tr[2].init(1, false, &_vm->_trip); /* Avaricius */
@@ -1273,7 +1273,7 @@ void Acci::do_that() {
_vm->_trip.tr[2].walkto(5);
_vm->_trip.tr[2].call_eachstep = true;
_vm->_trip.tr[2].eachstep = _vm->_trip.procback_and_forth;
- _vm->_gyro.dna.avaricius_talk = 14;
+ _vm->_gyro->dna.avaricius_talk = 14;
_vm->_timeout.set_up_timer(177, _vm->_timeout.procavaricius_talks, _vm->_timeout.reason_avariciustalks);
}
} else
@@ -1284,7 +1284,7 @@ void Acci::do_that() {
_vm->_scrolls.display("Listen, smart alec, that was just rhetoric.");
break;
case vb_expletive:
- switch (_vm->_gyro.dna.swore) {
+ switch (_vm->_gyro->dna.swore) {
case 0:
_vm->_scrolls.display(Common::String("Avvy! Do you mind? There might be kids playing!\r\r") +
"(I shouldn't say it again, if I were you!)");
@@ -1299,20 +1299,20 @@ void Acci::do_that() {
"and fries you.\r\r(`Such is the anger of the gods, Avvy!\")");
_vm->_lucerna.gameover();
}
- _vm->_gyro.dna.swore++;
+ _vm->_gyro->dna.swore++;
break;
case vb_listen:
- if ((_vm->_gyro.dna.ringing_bells) & (_vm->_gyro.flagset('B')))
+ if ((_vm->_gyro->dna.ringing_bells) & (_vm->_gyro->flagset('B')))
_vm->_scrolls.display(Common::String("All other noise is drowned out by the ringing of ") +
"the bells.");
- else if (_vm->_gyro.listen == "")
+ else if (_vm->_gyro->listen == "")
_vm->_scrolls.display("You can't hear anything much at the moment, Avvy.");
else
- _vm->_scrolls.display(_vm->_gyro.listen);
+ _vm->_scrolls.display(_vm->_gyro->listen);
break;
case vb_buy:
/* What are they trying to buy? */
- switch (_vm->_gyro.dna.room) {
+ switch (_vm->_gyro->dna.room) {
case r__argentpub:
if (_vm->_trip.infield(6)) {
/* We're in a pub, and near the bar. */
@@ -1321,49 +1321,49 @@ void Acci::do_that() {
case '\65':
case '\66':
case '\72': /* Beer, whisky, cider or mead */
- if (_vm->_gyro.dna.malagauche == 177) { /* Already getting us one. */
+ if (_vm->_gyro->dna.malagauche == 177) { /* Already getting us one. */
_vm->_visa.dixi('D', 15);
return;
}
- if (_vm->_gyro.dna.teetotal) {
+ if (_vm->_gyro->dna.teetotal) {
_vm->_visa.dixi('D', 6);
return;
}
- if (_vm->_gyro.dna.alcohol == 0)
+ if (_vm->_gyro->dna.alcohol == 0)
_vm->_lucerna.points(3);
_vm->_celer.show_one(12);
_vm->_scrolls.display(booze[thing] + ", please.\231\2");
- _vm->_gyro.dna.drinking = thing;
+ _vm->_gyro->dna.drinking = thing;
_vm->_celer.show_one(10);
- _vm->_gyro.dna.malagauche = 177;
+ _vm->_gyro->dna.malagauche = 177;
_vm->_timeout.set_up_timer(27, _vm->_timeout.procbuydrinks, _vm->_timeout.reason_drinks);
break;
case '\64':
examine();
break; /* We have a right one here- buy Pepsi??! */
- case _vm->_gyro.wine:
- if (_vm->_gyro.dna.obj[_vm->_gyro.wine]) /* We've already got the wine! */
+ case _vm->_gyro->wine:
+ if (_vm->_gyro->dna.obj[_vm->_gyro->wine]) /* We've already got the wine! */
_vm->_visa.dixi('D', 2); /* 1 bottle's shufishent! */
else {
- if (_vm->_gyro.dna.malagauche == 177) { /* Already getting us one. */
+ if (_vm->_gyro->dna.malagauche == 177) { /* Already getting us one. */
_vm->_visa.dixi('D', 15);
return;
}
- if (_vm->_gyro.dna.carrying >= maxobjs) {
+ if (_vm->_gyro->dna.carrying >= maxobjs) {
_vm->_scrolls.display("Your hands are full.");
return;
}
_vm->_celer.show_one(12);
_vm->_scrolls.display("Wine, please.\231\2");
- if (_vm->_gyro.dna.alcohol == 0)
+ if (_vm->_gyro->dna.alcohol == 0)
_vm->_lucerna.points(3);
_vm->_celer.show_one(10);
- _vm->_gyro.dna.malagauche = 177;
+ _vm->_gyro->dna.malagauche = 177;
_vm->_timeout.set_up_timer(27, _vm->_timeout.procbuywine, _vm->_timeout.reason_drinks);
}
@@ -1375,24 +1375,24 @@ void Acci::do_that() {
case r__outsideducks:
if (_vm->_trip.infield(6)) {
- if (thing == _vm->_gyro.onion) {
- if (_vm->_gyro.dna.obj[_vm->_gyro.onion])
+ if (thing == _vm->_gyro->onion) {
+ if (_vm->_gyro->dna.obj[_vm->_gyro->onion])
_vm->_visa.dixi('D', 10); /* not planning to juggle with the things! */
- else if (_vm->_gyro.dna.carrying >= maxobjs)
+ else if (_vm->_gyro->dna.carrying >= maxobjs)
_vm->_scrolls.display("Before you ask, you remember that your hands are full.");
else {
- if (_vm->_gyro.dna.bought_onion)
+ if (_vm->_gyro->dna.bought_onion)
_vm->_visa.dixi('D', 11);
else {
_vm->_visa.dixi('D', 9);
_vm->_lucerna.points(3);
}
- _vm->_gyro.pennycheck(3); /* It costs thruppence. */
- _vm->_gyro.dna.obj[_vm->_gyro.onion] = true;
+ _vm->_gyro->pennycheck(3); /* It costs thruppence. */
+ _vm->_gyro->dna.obj[_vm->_gyro->onion] = true;
_vm->_lucerna.objectlist();
- _vm->_gyro.dna.bought_onion = true;
- _vm->_gyro.dna.rotten_onion = false; /* It's OK when it leaves the stall! */
- _vm->_gyro.dna.onion_in_vinegar = false;
+ _vm->_gyro->dna.bought_onion = true;
+ _vm->_gyro->dna.rotten_onion = false; /* It's OK when it leaves the stall! */
+ _vm->_gyro->dna.onion_in_vinegar = false;
}
} else
_vm->_visa.dixi('D', 0);
@@ -1408,10 +1408,10 @@ void Acci::do_that() {
}
break;
case vb_attack:
- if ((_vm->_gyro.dna.room == r__brummieroad) &&
- ((person == '\235') || (thing == _vm->_gyro.crossbow) || (thing == _vm->_gyro.bolt))
- && (_vm->_gyro.whereis['\235'] == _vm->_gyro.dna.room)) {
- switch (_vm->_gyro.dna.obj[_vm->_gyro.bolt] + _vm->_gyro.dna.obj[_vm->_gyro.crossbow] * 2) {
+ if ((_vm->_gyro->dna.room == r__brummieroad) &&
+ ((person == '\235') || (thing == _vm->_gyro->crossbow) || (thing == _vm->_gyro->bolt))
+ && (_vm->_gyro->whereis['\235'] == _vm->_gyro->dna.room)) {
+ switch (_vm->_gyro->dna.obj[_vm->_gyro->bolt] + _vm->_gyro->dna.obj[_vm->_gyro->crossbow] * 2) {
/* 0 = neither, 1 = only bolt, 2 = only crossbow,
3 = both. */
case 0:
@@ -1419,7 +1419,7 @@ void Acci::do_that() {
_vm->_scrolls.display("(At the very least, don't use your bare hands!)");
break;
case 1:
- _vm->_scrolls.display(Common::String("Attack _vm->_gyro.him with only a crossbow bolt? Are you ") +
+ _vm->_scrolls.display(Common::String("Attack _vm->_gyro->him with only a crossbow bolt? Are you ") +
"planning on playing darts?!");
break;
case 2:
@@ -1428,16 +1428,16 @@ void Acci::do_that() {
break;
case 3:
_vm->_visa.dixi('Q', 11);
- _vm->_gyro.dna.cwytalot_gone = true;
- _vm->_gyro.dna.obj[_vm->_gyro.bolt] = false;
- _vm->_gyro.dna.obj[_vm->_gyro.crossbow] = false;
+ _vm->_gyro->dna.cwytalot_gone = true;
+ _vm->_gyro->dna.obj[_vm->_gyro->bolt] = false;
+ _vm->_gyro->dna.obj[_vm->_gyro->crossbow] = false;
_vm->_lucerna.objectlist();
- _vm->_gyro.magics[12].op = _vm->_gyro.nix;
+ _vm->_gyro->magics[12].op = _vm->_gyro->nix;
_vm->_lucerna.points(7);
_vm->_trip.tr[2].walkto(2);
_vm->_trip.tr[2].vanishifstill = true;
_vm->_trip.tr[2].call_eachstep = false;
- _vm->_gyro.whereis['\235'] = 177;
+ _vm->_gyro->whereis['\235'] = 177;
break;
default:
_vm->_visa.dixi('Q', 10); /* Please try not to be so violent! */
@@ -1446,27 +1446,27 @@ void Acci::do_that() {
_vm->_visa.dixi('Q', 10);
break;
case vb_password:
- if (_vm->_gyro.dna.room != r__bridge)
+ if (_vm->_gyro->dna.room != r__bridge)
_vm->_visa.dixi('Q', 12);
else {
ok = true;
for (ff = 1; ff <= thats.size(); ff++) {
- for (fv = 1; fv <= words[_vm->_gyro.dna.pass_num + first_password].w.size(); fv++) {
+ for (fv = 1; fv <= words[_vm->_gyro->dna.pass_num + first_password].w.size(); fv++) {
Common::String temp = realwords[ff];
temp.toUppercase();
- if (words[_vm->_gyro.dna.pass_num + first_password].w[fv] != temp[fv])
+ if (words[_vm->_gyro->dna.pass_num + first_password].w[fv] != temp[fv])
ok = false;
}
}
if (ok) {
- if (_vm->_gyro.dna.drawbridge_open != 0)
+ if (_vm->_gyro->dna.drawbridge_open != 0)
_vm->_scrolls.display("Contrary to your expectations, the drawbridge fails to close again.");
else {
_vm->_lucerna.points(4);
_vm->_scrolls.display("The drawbridge opens!");
_vm->_timeout.set_up_timer(7, _vm->_timeout.procopen_drawbridge, _vm->_timeout.reason_drawbridgefalls);
- _vm->_gyro.dna.drawbridge_open = 1;
+ _vm->_gyro->dna.drawbridge_open = 1;
}
} else
_vm->_visa.dixi('Q', 12);
@@ -1479,7 +1479,7 @@ void Acci::do_that() {
_vm->_lucerna.gameover();
break;
case vb_score:
- _vm->_scrolls.display(Common::String("Your score is ") + _vm->_gyro.strf(_vm->_gyro.dna.score) + ",\3\rout of a " +
+ _vm->_scrolls.display(Common::String("Your score is ") + _vm->_gyro->strf(_vm->_gyro->dna.score) + ",\3\rout of a " +
"possible 128.\r\rThis gives you a rank of " + rank() +
".\r\r" + totaltime());
break;
@@ -1495,13 +1495,13 @@ void Acci::do_that() {
_vm->_scrolls.display("Kiss whom?");
else if (personshere()) {
switch (person) {
- case _vm->_gyro.parkata:
+ case _vm->_gyro->parkata:
_vm->_visa.dixi('U', 12);
break;
- case _vm->_gyro.pgeida:
+ case _vm->_gyro->pgeida:
_vm->_visa.dixi('U', 13);
break;
- case _vm->_gyro.pwisewoman:
+ case _vm->_gyro->pwisewoman:
_vm->_visa.dixi('U', 14);
break;
default:
@@ -1513,7 +1513,7 @@ void Acci::do_that() {
break;
case vb_climb:
- if (_vm->_gyro.dna.room == r__insidecardiffcastle)
+ if (_vm->_gyro->dna.room == r__insidecardiffcastle)
cardiff_climbing();
else /* In the wrong room! */
_vm->_scrolls.display("Not with your head for heights, Avvy!");
@@ -1521,7 +1521,7 @@ void Acci::do_that() {
case vb_jump:
_vm->_timeout.set_up_timer(1, _vm->_timeout.procjump, _vm->_timeout.reason_jumping);
- _vm->_gyro.dna.user_moves_avvy = false;
+ _vm->_gyro->dna.user_moves_avvy = false;
break;
case vb_highscores:
@@ -1533,23 +1533,23 @@ void Acci::do_that() {
if (personshere())
switch (person) {
case pardon:
- case _vm->_gyro.pavalot:
+ case _vm->_gyro->pavalot:
case '\0':
- if (!_vm->_gyro.dna.avvy_is_awake) {
- _vm->_gyro.dna.avvy_is_awake = true;
+ if (!_vm->_gyro->dna.avvy_is_awake) {
+ _vm->_gyro->dna.avvy_is_awake = true;
_vm->_lucerna.points(1);
- _vm->_gyro.dna.avvy_in_bed = true;
+ _vm->_gyro->dna.avvy_in_bed = true;
_vm->_celer.show_one(3); /* Picture of Avvy, awake in bed. */
- if (_vm->_gyro.dna.teetotal)
+ if (_vm->_gyro->dna.teetotal)
_vm->_visa.dixi('d', 13);
} else
_vm->_scrolls.display("You're already awake, Avvy!");
break;
- case _vm->_gyro.payles:
- if (!_vm->_gyro.dna.ayles_is_awake)
- _vm->_scrolls.display("You can't seem to wake _vm->_gyro.him by yourself.");
+ case _vm->_gyro->payles:
+ if (!_vm->_gyro->dna.ayles_is_awake)
+ _vm->_scrolls.display("You can't seem to wake _vm->_gyro->him by yourself.");
break;
- case _vm->_gyro.pjacques:
+ case _vm->_gyro->pjacques:
_vm->_scrolls.display(Common::String("Brother Jacques, Brother Jacques, are you asleep?\231\2") +
"Hmmm... that doesn't seem to do any good...");
break;
@@ -1559,17 +1559,17 @@ void Acci::do_that() {
break;
case vb_sit:
- if (_vm->_gyro.dna.room == r__nottspub) {
- if (_vm->_gyro.dna.sitting_in_pub)
+ if (_vm->_gyro->dna.room == r__nottspub) {
+ if (_vm->_gyro->dna.sitting_in_pub)
_vm->_scrolls.display("You're already sitting!");
else {
- _vm->_trip.tr[1].walkto(4); /* Move Avvy to the place, and sit _vm->_gyro.him down. */
+ _vm->_trip.tr[1].walkto(4); /* Move Avvy to the place, and sit _vm->_gyro->him down. */
_vm->_timeout.set_up_timer(1, _vm->_timeout.procavvy_sit_down, _vm->_timeout.reason_sitting_down);
}
} else {
/* Default doodah. */
_vm->_lucerna.dusk();
- _vm->_gyro.hang_around_for_a_while();
+ _vm->_gyro->hang_around_for_a_while();
_vm->_lucerna.dawn();
_vm->_scrolls.display("A few hours later...\20nothing much has happened...");
}
@@ -1578,7 +1578,7 @@ void Acci::do_that() {
case vb_restart:
if (_vm->_scrolls.ask("Restart game and lose changes?")) {
_vm->_lucerna.dusk();
- _vm->_gyro.newgame();
+ _vm->_gyro->newgame();
_vm->_lucerna.dawn();
}
break;
diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp
index 55bbf33498..d5187f1fa8 100644
--- a/engines/avalanche/avalanche.cpp
+++ b/engines/avalanche/avalanche.cpp
@@ -59,13 +59,14 @@ AvalancheEngine::~AvalancheEngine() {
delete _graphics;
delete _avalot;
+ delete _gyro;
}
Common::ErrorCode AvalancheEngine::initialize() {
_graphics = new Graphics(this);
_avalot = new Avalot(this);
- _gyro.setParent(this);
+ _gyro = new Gyro(this);
_enhanced.setParent(this);
_logger.setParent(this);
_pingo.setParent(this);
diff --git a/engines/avalanche/avalanche.h b/engines/avalanche/avalanche.h
index 99540b4a18..49c02ff141 100644
--- a/engines/avalanche/avalanche.h
+++ b/engines/avalanche/avalanche.h
@@ -68,7 +68,7 @@ public:
Graphics *_graphics;
Avalot *_avalot;
- Gyro _gyro;
+ Gyro *_gyro;
Enhanced _enhanced;
Logger _logger;
Pingo _pingo;
diff --git a/engines/avalanche/avalot.cpp b/engines/avalanche/avalot.cpp
index 61d5ad34e4..6ce6348e58 100644
--- a/engines/avalanche/avalot.cpp
+++ b/engines/avalanche/avalot.cpp
@@ -66,41 +66,41 @@ void Avalot::setup() {
int16 gd, gm;
checkbreak = false;
- _vm->_gyro.visible = _vm->_gyro.m_no;
- _vm->_gyro.to_do = 0;
- _vm->_gyro.lmo = false;
+ _vm->_gyro->visible = _vm->_gyro->m_no;
+ _vm->_gyro->to_do = 0;
+ _vm->_gyro->lmo = false;
_vm->_scrolls.resetscroll();
- _vm->_gyro.setup_vmc();
- _vm->_gyro.on_virtual();
+ _vm->_gyro->setup_vmc();
+ _vm->_gyro->on_virtual();
gd = 3;
gm = 0;
//initgraph(gd: gm: "");
- _vm->_gyro.holdthedawn = true;
+ _vm->_gyro->holdthedawn = true;
_vm->_lucerna.dusk();
- _vm->_gyro.cmp = 177;
+ _vm->_gyro->cmp = 177;
_vm->_lucerna.mouse_init(); /*on;*/
- _vm->_gyro.dropsok = true;
- _vm->_gyro.ctrl = ckey;
- _vm->_gyro.oldjw = 177;
- _vm->_gyro.mousetext = "";
- _vm->_gyro.c = 999;
+ _vm->_gyro->dropsok = true;
+ _vm->_gyro->ctrl = ckey;
+ _vm->_gyro->oldjw = 177;
+ _vm->_gyro->mousetext = "";
+ _vm->_gyro->c = 999;
//settextjustify(0: 0);
- _vm->_gyro.ddmnow = false;
+ _vm->_gyro->ddmnow = false;
_vm->_lucerna.load_digits();
- _vm->_gyro.cheat = false;
- _vm->_gyro.cp = 0;
- _vm->_gyro.curpos = 1;
- _vm->_gyro.quote = true;
- _vm->_gyro.ledstatus = 177;
- _vm->_gyro.defaultled = 2;
+ _vm->_gyro->cheat = false;
+ _vm->_gyro->cp = 0;
+ _vm->_gyro->curpos = 1;
+ _vm->_gyro->quote = true;
+ _vm->_gyro->ledstatus = 177;
+ _vm->_gyro->defaultled = 2;
/* TSkellern:=0; { Replace with a more local variable sometime }*/
- _vm->_gyro.dna.rw = _vm->_gyro.stopped;
- _vm->_gyro.enid_filename = ""; /* undefined. */
+ _vm->_gyro->dna.rw = _vm->_gyro->stopped;
+ _vm->_gyro->enid_filename = ""; /* undefined. */
_vm->_lucerna.toolbar();
_vm->_scrolls.state(2);
_vm->_graphics->refreshScreen(); //_vm->_pingo.copy03(); Replace it with refreshScreen() since they 'almost' have the same functionality.
for (byte i = 0; i < 3; i++)
- _vm->_gyro.lastscore[i] = -1; /* impossible digits */
+ _vm->_gyro->lastscore[i] = -1; /* impossible digits */
/* for gd:=0 to 1 do
begin
@@ -109,45 +109,45 @@ void Avalot::setup() {
_vm->_trip.loadtrip();
- _vm->_gyro.reloaded = false; // TODO: Remove it later: when SAVE/LOAD system is implemented. Until then: we always start a new game.
+ _vm->_gyro->reloaded = false; // TODO: Remove it later: when SAVE/LOAD system is implemented. Until then: we always start a new game.
- if ((_vm->_gyro.filetoload.empty()) && (! _vm->_gyro.reloaded))
- _vm->_gyro.newgame(); /* no game was requested- load the default */
+ if ((_vm->_gyro->filetoload.empty()) && (! _vm->_gyro->reloaded))
+ _vm->_gyro->newgame(); /* no game was requested- load the default */
else {
- if (! _vm->_gyro.reloaded)
+ if (! _vm->_gyro->reloaded)
_vm->_enid.avvy_background();
_vm->_dropdown.standard_bar();
_vm->_lucerna.sprite_run();
- if (_vm->_gyro.reloaded)
+ if (_vm->_gyro->reloaded)
_vm->_enid.edna_reload();
else {
/* Filename given on the command line (or loadfirst) */
- _vm->_enid.edna_load(_vm->_gyro.filetoload);
+ _vm->_enid.edna_load(_vm->_gyro->filetoload);
if (_vm->_enid.there_was_a_problem()) {
_vm->_scrolls.display("So let's start from the beginning instead...");
- _vm->_gyro.holdthedawn = true;
+ _vm->_gyro->holdthedawn = true;
_vm->_lucerna.dusk();
- _vm->_gyro.newgame();
+ _vm->_gyro->newgame();
}
}
}
- if (! _vm->_gyro.reloaded) {
- _vm->_gyro.soundfx = ! _vm->_gyro.soundfx;
+ if (! _vm->_gyro->reloaded) {
+ _vm->_gyro->soundfx = ! _vm->_gyro->soundfx;
_vm->_lucerna.fxtoggle();
- _vm->_lucerna.thinkabout(_vm->_gyro.money, _vm->_gyro.a_thing);
+ _vm->_lucerna.thinkabout(_vm->_gyro->money, _vm->_gyro->a_thing);
}
_vm->_trip.get_back_loretta();
//gm = getpixel(0: 0);
//setcolor(7);
- _vm->_gyro.holdthedawn = false;
+ _vm->_gyro->holdthedawn = false;
_vm->_lucerna.dawn();
- _vm->_gyro.cursoron = false;
+ _vm->_gyro->cursoron = false;
_vm->_basher.cursor_on();
_vm->_trip.newspeed();
- if (! _vm->_gyro.reloaded)
+ if (! _vm->_gyro->reloaded)
_vm->_visa.dixi('q', 83); /* Info on the game: etc. */
}
@@ -184,18 +184,18 @@ void Avalot::run(Common::String arg) {
_vm->_basher.keyboard_link();
_vm->_dropdown.menu_link();
_vm->_trip.readstick();
- _vm->_gyro.force_numlock();
+ _vm->_gyro->force_numlock();
_vm->_trip.get_back_loretta();
_vm->_trip.trippancy_link();
_vm->_celer.pics_link();
_vm->_lucerna.checkclick();
- if (_vm->_gyro.visible == _vm->_gyro.m_virtual)
- _vm->_gyro.plot_vmc(_vm->_gyro.mx, _vm->_gyro.my, _vm->_gyro.cp);
+ if (_vm->_gyro->visible == _vm->_gyro->m_virtual)
+ _vm->_gyro->plot_vmc(_vm->_gyro->mx, _vm->_gyro->my, _vm->_gyro->cp);
_vm->_lucerna.flip_page(); /* <<<! */
- _vm->_gyro.slowdown();
- if (_vm->_gyro.visible == _vm->_gyro.m_virtual)
- _vm->_gyro.wipe_vmc(_vm->_gyro.cp);
+ _vm->_gyro->slowdown();
+ if (_vm->_gyro->visible == _vm->_gyro->m_virtual)
+ _vm->_gyro->wipe_vmc(_vm->_gyro->cp);
_vm->_timeout.one_tick();
@@ -207,7 +207,7 @@ void Avalot::run(Common::String arg) {
_vm->_graphics->refreshScreen(); // TODO: Maybe it'll have a better place later. Move it there when it's needed.
- } while (! _vm->_gyro.lmo);
+ } while (! _vm->_gyro->lmo);
//restorecrtmode();
//if (logging)
diff --git a/engines/avalanche/basher2.cpp b/engines/avalanche/basher2.cpp
index 176cbfcc31..3f2b01bdb6 100644
--- a/engines/avalanche/basher2.cpp
+++ b/engines/avalanche/basher2.cpp
@@ -56,13 +56,13 @@ void Basher::setParent(AvalancheEngine *vm) {
void Basher::init() {
/* new(previous);*/
- if (!_vm->_gyro.last.empty())
- _vm->_gyro.last.clear();
+ if (!_vm->_gyro->last.empty())
+ _vm->_gyro->last.clear();
normal_edit();
- if (_vm->_gyro.demo) {
- if (!_vm->_gyro.demofile.open("demo.avd")) {
+ if (_vm->_gyro->demo) {
+ if (!_vm->_gyro->demofile.open("demo.avd")) {
warning("AVALANCHE: Basher: File not found: demo.avd");
throw "AVALANCHE: Basher: File not found: demo.avd"; // TODO: Some proper exception handling will be needed here.
}
@@ -71,7 +71,7 @@ void Basher::init() {
// Not sure that the following part will be used ever...
#ifdef RECORD
count = 0;
- if (!_vm->_gyro.demofile_save.open("demo.avd")) {
+ if (!_vm->_gyro->demofile_save.open("demo.avd")) {
warning("AVALANCHE: Basher: File not found: demo.avd");
throw "AVALANCHE: Basher: File not found: demo.avd"; // TODO: Some proper exception handling will be needed here.
}
@@ -183,10 +183,10 @@ void Basher::filename_edit() {
void Basher::normal_edit() {
entering_filename = false;
- /*if (!_vm->_gyro.current.empty())
- _vm->_gyro.current.clear();*/
+ /*if (!_vm->_gyro->current.empty())
+ _vm->_gyro->current.clear();*/
left_margin = 1;
- _vm->_gyro.curpos = 1;
+ _vm->_gyro->curpos = 1;
}
} // End of namespace Avalanche.
diff --git a/engines/avalanche/celer2.cpp b/engines/avalanche/celer2.cpp
index cc44021531..e73f51c835 100644
--- a/engines/avalanche/celer2.cpp
+++ b/engines/avalanche/celer2.cpp
@@ -53,36 +53,36 @@ void Celer::setParent(AvalancheEngine *vm) {
void Celer::pics_link() {
byte xx;
- if (_vm->_gyro.ddmnow)
+ if (_vm->_gyro->ddmnow)
return; /* No animation when the menus are up. */
- switch (_vm->_gyro.dna.room) {
+ switch (_vm->_gyro->dna.room) {
case r__outsideargentpub:
- if ((_vm->_gyro.roomtime % int32(12)) == 0)
- show_one(int32(1) + (_vm->_gyro.roomtime / int32(12)) % int32(4));
+ if ((_vm->_gyro->roomtime % int32(12)) == 0)
+ show_one(int32(1) + (_vm->_gyro->roomtime / int32(12)) % int32(4));
break;
case r__brummieroad:
- if ((_vm->_gyro.roomtime % int32(2)) == 0)
- show_one(int32(1) + (_vm->_gyro.roomtime / int32(2)) % int32(4));
+ if ((_vm->_gyro->roomtime % int32(2)) == 0)
+ show_one(int32(1) + (_vm->_gyro->roomtime / int32(2)) % int32(4));
break;
case r__bridge:
- if ((_vm->_gyro.roomtime % int32(2)) == 0)
- show_one(int32(4) + (_vm->_gyro.roomtime / int32(2)) % int32(4));
+ if ((_vm->_gyro->roomtime % int32(2)) == 0)
+ show_one(int32(4) + (_vm->_gyro->roomtime / int32(2)) % int32(4));
break;
case r__yours:
- if ((!_vm->_gyro.dna.avvy_is_awake) && ((_vm->_gyro.roomtime % int32(4)) == 0))
- show_one(int32(1) + (_vm->_gyro.roomtime / int32(12)) % int32(2));
+ if ((!_vm->_gyro->dna.avvy_is_awake) && ((_vm->_gyro->roomtime % int32(4)) == 0))
+ show_one(int32(1) + (_vm->_gyro->roomtime / int32(12)) % int32(2));
break;
case r__argentpub:
- if (((_vm->_gyro.roomtime % int32(7)) == 1) && (_vm->_gyro.dna.malagauche != 177)) {
+ if (((_vm->_gyro->roomtime % int32(7)) == 1) && (_vm->_gyro->dna.malagauche != 177)) {
/* Malagauche cycle */
- _vm->_gyro.dna.malagauche += 1;
- switch (_vm->_gyro.dna.malagauche) {
+ _vm->_gyro->dna.malagauche += 1;
+ switch (_vm->_gyro->dna.malagauche) {
case 1:
case 11:
case 21:
@@ -98,12 +98,12 @@ void Celer::pics_link() {
show_one(13);
break; /* Winks. */
case 33:
- _vm->_gyro.dna.malagauche = 0;
+ _vm->_gyro->dna.malagauche = 0;
break;
}
}
- switch (_vm->_gyro.roomtime % 200) {
+ switch (_vm->_gyro->roomtime % 200) {
case 179:
case 197:
show_one(5);
@@ -116,11 +116,11 @@ void Celer::pics_link() {
show_one(7);
break;
case 199:
- _vm->_gyro.dna.dogfoodpos = 177;
+ _vm->_gyro->dna.dogfoodpos = 177;
break; /* Impossible value for this. */
}
- if ((_vm->_gyro.roomtime % 200 >= 0) && (_vm->_gyro.roomtime % 200 <= 178)) { /* Normally. */
+ if ((_vm->_gyro->roomtime % 200 >= 0) && (_vm->_gyro->roomtime % 200 <= 178)) { /* Normally. */
if (((_vm->_lucerna.bearing(2) >= 1) && (_vm->_lucerna.bearing(2) <= 90)) || ((_vm->_lucerna.bearing(2) >= 358) && (_vm->_lucerna.bearing(2) <= 360)))
xx = 3;
else if ((_vm->_lucerna.bearing(2) >= 293) && (_vm->_lucerna.bearing(2) <= 357))
@@ -128,16 +128,16 @@ void Celer::pics_link() {
else if ((_vm->_lucerna.bearing(2) >= 271) && (_vm->_lucerna.bearing(2) <= 292))
xx = 4;
- if (xx != _vm->_gyro.dna.dogfoodpos) { /* Only if it's changed.*/
+ if (xx != _vm->_gyro->dna.dogfoodpos) { /* Only if it's changed.*/
show_one(xx);
- _vm->_gyro.dna.dogfoodpos = xx;
+ _vm->_gyro->dna.dogfoodpos = xx;
}
}
break;
case r__westhall:
- if ((_vm->_gyro.roomtime % int32(3)) == 0) {
- switch ((_vm->_gyro.roomtime / int32(3)) % int32(6)) {
+ if ((_vm->_gyro->roomtime % int32(3)) == 0) {
+ switch ((_vm->_gyro->roomtime / int32(3)) % int32(6)) {
case 4:
show_one(1);
break;
@@ -155,8 +155,8 @@ void Celer::pics_link() {
break;
case r__lustiesroom:
- if (!(_vm->_gyro.dna.lustie_is_asleep)) {
- if ((_vm->_gyro.roomtime % int32(45)) > 42)
+ if (!(_vm->_gyro->dna.lustie_is_asleep)) {
+ if ((_vm->_gyro->roomtime % int32(45)) > 42)
xx = 4; /* du Lustie blinks */
/* Bearing of Avvy from du Lustie. */
@@ -167,16 +167,16 @@ void Celer::pics_link() {
else if ((_vm->_lucerna.bearing(2) >= 181) && (_vm->_lucerna.bearing(2) <= 314))
xx = 3; /* Right. */
- if (xx != _vm->_gyro.dna.dogfoodpos) { /* Only if it's changed.*/
+ if (xx != _vm->_gyro->dna.dogfoodpos) { /* Only if it's changed.*/
show_one(xx);
- _vm->_gyro.dna.dogfoodpos = xx; /* We use DogfoodPos here too- why not? */
+ _vm->_gyro->dna.dogfoodpos = xx; /* We use DogfoodPos here too- why not? */
}
}
break;
case r__aylesoffice:
- if ((!_vm->_gyro.dna.ayles_is_awake) && (_vm->_gyro.roomtime % int32(14) == 0)) {
- switch ((_vm->_gyro.roomtime / int32(14)) % int32(2)) {
+ if ((!_vm->_gyro->dna.ayles_is_awake) && (_vm->_gyro->roomtime % int32(14) == 0)) {
+ switch ((_vm->_gyro->roomtime / int32(14)) % int32(2)) {
case 0:
show_one(1);
break; /* Frame 2: EGA. */
@@ -188,8 +188,8 @@ void Celer::pics_link() {
break;
case r__robins:
- if (_vm->_gyro.dna.tied_up) {
- switch (_vm->_gyro.roomtime % int32(54)) {
+ if (_vm->_gyro->dna.tied_up) {
+ switch (_vm->_gyro->roomtime % int32(54)) {
case 20:
show_one(4);
break; /* Frame 4: Avalot blinks. */
@@ -209,15 +209,15 @@ void Celer::pics_link() {
else if ((_vm->_lucerna.bearing(5) >= 181) && (_vm->_lucerna.bearing(5) <= 314))
xx = 8; /* Right. */
- if ((_vm->_gyro.roomtime % int32(60)) > 57)
+ if ((_vm->_gyro->roomtime % int32(60)) > 57)
xx--; /* Blinks */
- if (xx != _vm->_gyro.dna.dogfoodpos) { /* Only if it's changed.*/
+ if (xx != _vm->_gyro->dna.dogfoodpos) { /* Only if it's changed.*/
show_one(xx);
- _vm->_gyro.dna.dogfoodpos = xx; /* We use DogfoodPos here too- why not? */
+ _vm->_gyro->dna.dogfoodpos = xx; /* We use DogfoodPos here too- why not? */
}
- switch (_vm->_gyro.roomtime % 50) {
+ switch (_vm->_gyro->roomtime % 50) {
case 45 :
show_one(9);
break; /* Spurge blinks */
@@ -228,8 +228,8 @@ void Celer::pics_link() {
break;
case r__ducks:
- if ((_vm->_gyro.roomtime % 3) == 0) /* The fire flickers */
- show_one(1 + (_vm->_gyro.roomtime / 3) % 3);
+ if ((_vm->_gyro->roomtime % 3) == 0) /* The fire flickers */
+ show_one(1 + (_vm->_gyro->roomtime / 3) % 3);
{/* _vm->_lucerna.bearing of Avvy from Duck. */
if (((_vm->_lucerna.bearing(2) >= 0) && (_vm->_lucerna.bearing(2) <= 45)) || ((_vm->_lucerna.bearing(2) >= 315) && (_vm->_lucerna.bearing(2) <= 360)))
@@ -239,26 +239,26 @@ void Celer::pics_link() {
else if ((_vm->_lucerna.bearing(2) >= 181) && (_vm->_lucerna.bearing(2) <= 314))
xx = 8; /* Right. */
- if ((_vm->_gyro.roomtime % int32(45)) > 42)
+ if ((_vm->_gyro->roomtime % int32(45)) > 42)
xx += 1; /* Duck blinks */
- if (xx != _vm->_gyro.dna.dogfoodpos) { /* Only if it's changed.*/
+ if (xx != _vm->_gyro->dna.dogfoodpos) { /* Only if it's changed.*/
show_one(xx);
- _vm->_gyro.dna.dogfoodpos = xx; /* We use DogfoodPos here too- why not? */
+ _vm->_gyro->dna.dogfoodpos = xx; /* We use DogfoodPos here too- why not? */
}
break;
}
}
- if ((_vm->_gyro.dna.ringing_bells) && (_vm->_gyro.flagset('B'))) {
+ if ((_vm->_gyro->dna.ringing_bells) && (_vm->_gyro->flagset('B'))) {
/* They're ringing the bells. */
- switch (_vm->_gyro.roomtime % int32(4)) {
+ switch (_vm->_gyro->roomtime % int32(4)) {
case 1:
- if (_vm->_gyro.dna.nextbell < 5)
- _vm->_gyro.dna.nextbell = 12;
- _vm->_gyro.dna.nextbell -= 1;
- _vm->_gyro.note(_vm->_gyro.notes[_vm->_gyro.dna.nextbell]);
+ if (_vm->_gyro->dna.nextbell < 5)
+ _vm->_gyro->dna.nextbell = 12;
+ _vm->_gyro->dna.nextbell -= 1;
+ _vm->_gyro->note(_vm->_gyro->notes[_vm->_gyro->dna.nextbell]);
break;
case 2:
//nosound;
diff --git a/engines/avalanche/dropdown2.cpp b/engines/avalanche/dropdown2.cpp
index 219df15fc2..985eb7f088 100644
--- a/engines/avalanche/dropdown2.cpp
+++ b/engines/avalanche/dropdown2.cpp
@@ -58,14 +58,14 @@ headtype *headtype::init(char trig, char alttrig, Common::String name, byte p, f
}
void headtype::display() {
- _dr->_vm->_gyro.off(); /*MT*/
+ _dr->_vm->_gyro->off(); /*MT*/
_dr->chalk(xpos, 1, trigger, title, true);
- _dr->_vm->_gyro.on(); /*MT*/
+ _dr->_vm->_gyro->on(); /*MT*/
}
void headtype::highlight() {
- _dr->_vm->_gyro.off();
- _dr->_vm->_gyro.off_virtual();
+ _dr->_vm->_gyro->off();
+ _dr->_vm->_gyro->off_virtual();
//nosound();
//setactivepage(cp);
@@ -75,10 +75,10 @@ void headtype::highlight() {
{
_dr->ddm_o.left = xpos;
_dr->ddm_o.menunow = true;
- _dr->_vm->_gyro.ddmnow = true;
+ _dr->_vm->_gyro->ddmnow = true;
_dr->ddm_o.menunum = position;
}
- _dr->_vm->_gyro.cmp = 177; /* Force redraw of cursor. */
+ _dr->_vm->_gyro->cmp = 177; /* Force redraw of cursor. */
}
bool headtype::extdparse(char c) {
@@ -95,7 +95,7 @@ bool headtype::extdparse(char c) {
onemenu *onemenu::init(Dropdown *dr) {
_dr = dr;
menunow = false;
- _dr->_vm->_gyro.ddmnow = false;
+ _dr->_vm->_gyro->ddmnow = false;
menunum = 1;
return this;
}
@@ -140,10 +140,10 @@ void onemenu::movehighlight(int8 add) {
void onemenu::lightup() { /* This makes the menu highlight follow the mouse.*/
warning("STUB: Dropdown::onemenu::lightup()");
- /*if ((_dr->_vm->_gyro.mx < flx1 * 8) || (_dr->_vm->_gyro.mx > flx2 * 8) ||
- (_dr->_vm->_gyro.my <= 12) || (_dr->_vm->_gyro.my > fly - 3))
+ /*if ((_dr->_vm->_gyro->mx < flx1 * 8) || (_dr->_vm->_gyro->mx > flx2 * 8) ||
+ (_dr->_vm->_gyro->my <= 12) || (_dr->_vm->_gyro->my > fly - 3))
return;
- highlightnum = (_dr->_vm->_gyro.my - 13) / 10;
+ highlightnum = (_dr->_vm->_gyro->my - 13) / 10;
if (highlightnum == oldy) return;
movehighlight(0);*/
@@ -172,7 +172,7 @@ void onemenu::keystroke(char c) {
}
}
if (! found)
- _dr->_vm->_gyro.blip();
+ _dr->_vm->_gyro->blip();
}
@@ -199,8 +199,8 @@ void menuset::update() {
bar(0, 0, 640, 9);*/
_dr->_vm->_graphics->drawBar(0, 0, 640, 10, _dr->menu_b);
- savecp = _dr->_vm->_gyro.cp;
- _dr->_vm->_gyro.cp = 3;
+ savecp = _dr->_vm->_gyro->cp;
+ _dr->_vm->_gyro->cp = 3;
for (fv = 1; fv <= howmany; fv ++)
ddms[fv].display();
@@ -208,7 +208,7 @@ void menuset::update() {
for (page_ = 0; page_ <= 1; page_ ++)
_dr->_vm->_trip.getset[page_].remember(menuspace);
- _dr->_vm->_gyro.cp = savecp;
+ _dr->_vm->_gyro->cp = savecp;
}
void menuset::extd(char c) {
@@ -251,30 +251,30 @@ void Dropdown::setParent(AvalancheEngine *vm) {
}
void Dropdown::find_what_you_can_do_with_it() {
- switch (_vm->_gyro.thinks) {
- case _vm->_gyro.wine:
- case _vm->_gyro.potion:
- case _vm->_gyro.ink:
- _vm->_gyro.verbstr = Common::String(_vm->_acci.vb_exam) + _vm->_acci.vb_drink;
+ switch (_vm->_gyro->thinks) {
+ case _vm->_gyro->wine:
+ case _vm->_gyro->potion:
+ case _vm->_gyro->ink:
+ _vm->_gyro->verbstr = Common::String(_vm->_acci.vb_exam) + _vm->_acci.vb_drink;
break;
- case _vm->_gyro.bell:
- _vm->_gyro.verbstr = Common::String(_vm->_acci.vb_exam) + _vm->_acci.vb_ring;
+ case _vm->_gyro->bell:
+ _vm->_gyro->verbstr = Common::String(_vm->_acci.vb_exam) + _vm->_acci.vb_ring;
break;
- case _vm->_gyro.chastity:
- _vm->_gyro.verbstr = Common::String(_vm->_acci.vb_exam) + _vm->_acci.vb_wear;
+ case _vm->_gyro->chastity:
+ _vm->_gyro->verbstr = Common::String(_vm->_acci.vb_exam) + _vm->_acci.vb_wear;
break;
- case _vm->_gyro.lute:
- _vm->_gyro.verbstr = Common::String(_vm->_acci.vb_exam) + _vm->_acci.vb_play;
+ case _vm->_gyro->lute:
+ _vm->_gyro->verbstr = Common::String(_vm->_acci.vb_exam) + _vm->_acci.vb_play;
break;
- case _vm->_gyro.mushroom:
- case _vm->_gyro.onion:
- _vm->_gyro.verbstr = Common::String(_vm->_acci.vb_exam) + _vm->_acci.vb_eat;
+ case _vm->_gyro->mushroom:
+ case _vm->_gyro->onion:
+ _vm->_gyro->verbstr = Common::String(_vm->_acci.vb_exam) + _vm->_acci.vb_eat;
break;
- case _vm->_gyro.clothes:
- _vm->_gyro.verbstr = Common::String(_vm->_acci.vb_exam) + _vm->_acci.vb_wear;
+ case _vm->_gyro->clothes:
+ _vm->_gyro->verbstr = Common::String(_vm->_acci.vb_exam) + _vm->_acci.vb_wear;
break;
default:
- _vm->_gyro.verbstr = _vm->_acci.vb_exam; /* anything else */
+ _vm->_gyro->verbstr = _vm->_acci.vb_exam; /* anything else */
}
}
@@ -287,7 +287,7 @@ void Dropdown::chalk(int16 x, int16 y, char t, Common::String z, bool valid) {
for (byte fv = 0; fv < z.size(); fv++)
for (byte ff = 0; ff < 8; ff++) {
- byte pixel = ~(_vm->_gyro.little[z[fv]][ff] & ander); // Note that it's the bitwise NOT operator!
+ byte pixel = ~(_vm->_gyro->little[z[fv]][ff] & ander); // Note that it's the bitwise NOT operator!
for (byte bit = 0; bit < 8; bit++) {
byte pixelBit = (pixel >> bit) & 1;
*_vm->_graphics->getPixel(x * 8 + fv * 8 + 7 - bit, y + ff) = pixelBit + (pixelBit << 1) + (pixelBit << 2);
@@ -398,9 +398,9 @@ void Dropdown::ddm__file() {
ddm_o.start_afresh();
ddm_o.opt("New game", 'N', "f4", true);
ddm_o.opt("Load...", 'L', "^f3", true);
- ddm_o.opt("Save", 'S', "^f2", _vm->_gyro.alive);
- ddm_o.opt("Save As...", 'v', "", _vm->_gyro.alive);
- ddm_o.opt("DOS Shell", 'D', _vm->_gyro.atkey + '1', true);
+ ddm_o.opt("Save", 'S', "^f2", _vm->_gyro->alive);
+ ddm_o.opt("Save As...", 'v', "", _vm->_gyro->alive);
+ ddm_o.opt("DOS Shell", 'D', _vm->_gyro->atkey + '1', true);
ddm_o.opt("Quit", 'Q', "alt-X", true);
ddm_o.display();
}
@@ -408,7 +408,7 @@ void Dropdown::ddm__file() {
void Dropdown::ddm__action() {
Common::String n;
- n = Common::String(_vm->_gyro.f5_does().c_str() + 2, 253);
+ n = Common::String(_vm->_gyro->f5_does().c_str() + 2, 253);
{
ddm_o.start_afresh();
@@ -417,13 +417,13 @@ void Dropdown::ddm__action() {
else
ddm_o.opt(Common::String(n.c_str() + 2, 253), n[1], "f5", true);
ddm_o.opt("Pause game", 'P', "f6", true);
- if (_vm->_gyro.dna.room == 99)
+ if (_vm->_gyro->dna.room == 99)
ddm_o.opt("Journey thither", 'J', "f7", _vm->_trip.neardoor());
else
ddm_o.opt("Open the door", 'O', "f7", _vm->_trip.neardoor());
ddm_o.opt("Look around", 'L', "f8", true);
ddm_o.opt("Inventory", 'I', "Tab", true);
- if (_vm->_trip.tr[1].xs == _vm->_gyro.walk)
+ if (_vm->_trip.tr[1].xs == _vm->_gyro->walk)
ddm_o.opt("Run fast", 'R', "^R", true);
else
ddm_o.opt("Walk slowly", 'W', "^W", true);
@@ -436,13 +436,13 @@ void Dropdown::ddm__people() {
char fv;
people = "";
- here = _vm->_gyro.dna.room;
+ here = _vm->_gyro->dna.room;
{
ddm_o.start_afresh();
for (fv = '\226'; fv <= '\262'; fv ++)
- if (_vm->_gyro.whereis[fv] == here) {
- ddm_o.opt(_vm->_gyro.getname(fv), _vm->_gyro.getnamechar(fv), "", true);
+ if (_vm->_gyro->whereis[fv] == here) {
+ ddm_o.opt(_vm->_gyro->getname(fv), _vm->_gyro->getnamechar(fv), "", true);
people = people + fv;
}
ddm_o.display();
@@ -454,8 +454,8 @@ void Dropdown::ddm__objects() {
{
ddm_o.start_afresh();
for (fv = '\1'; fv <= numobjs; fv ++)
- if (_vm->_gyro.dna.obj[fv])
- ddm_o.opt(_vm->_gyro.get_thing(fv), _vm->_gyro.get_thingchar(fv), "", true);
+ if (_vm->_gyro->dna.obj[fv])
+ ddm_o.opt(_vm->_gyro->get_thing(fv), _vm->_gyro->get_thingchar(fv), "", true);
ddm_o.display();
}
}
@@ -553,7 +553,7 @@ void Dropdown::do__action() {
case 0: {
_vm->_acci.person = _vm->_acci.pardon;
_vm->_acci.thing = _vm->_acci.pardon;
- n = _vm->_gyro.f5_does();
+ n = _vm->_gyro->f5_does();
_vm->_lucerna.callverb(n[1]);
}
break;
@@ -570,8 +570,8 @@ void Dropdown::do__action() {
_vm->_lucerna.callverb(_vm->_acci.vb_inv);
break;
case 5: {
- if (_vm->_trip.tr[1].xs == _vm->_gyro.walk) _vm->_trip.tr[1].xs = _vm->_gyro.run;
- else _vm->_trip.tr[1].xs = _vm->_gyro.walk;
+ if (_vm->_trip.tr[1].xs == _vm->_gyro->walk) _vm->_trip.tr[1].xs = _vm->_gyro->run;
+ else _vm->_trip.tr[1].xs = _vm->_gyro->walk;
_vm->_trip.newspeed();
}
break;
@@ -579,28 +579,28 @@ void Dropdown::do__action() {
}
void Dropdown::do__objects() {
- _vm->_lucerna.thinkabout(_vm->_gyro.objlist[ddm_o.choicenum + 1], _vm->_gyro.a_thing);
+ _vm->_lucerna.thinkabout(_vm->_gyro->objlist[ddm_o.choicenum + 1], _vm->_gyro->a_thing);
}
void Dropdown::do__people() {
- _vm->_lucerna.thinkabout(people[ddm_o.choicenum + 1], _vm->_gyro.a_person);
- _vm->_gyro.last_person = people[ddm_o.choicenum + 1];
+ _vm->_lucerna.thinkabout(people[ddm_o.choicenum + 1], _vm->_gyro->a_person);
+ _vm->_gyro->last_person = people[ddm_o.choicenum + 1];
}
void Dropdown::do__with() {
- _vm->_acci.thing = _vm->_gyro.thinks;
+ _vm->_acci.thing = _vm->_gyro->thinks;
- if (_vm->_gyro.thinkthing) {
+ if (_vm->_gyro->thinkthing) {
_vm->_acci.thing += 49;
- if (_vm->_gyro.verbstr[ddm_o.choicenum + 1] == _vm->_acci.vb_give)
- _vm->_acci.person = _vm->_gyro.last_person;
+ if (_vm->_gyro->verbstr[ddm_o.choicenum + 1] == _vm->_acci.vb_give)
+ _vm->_acci.person = _vm->_gyro->last_person;
else
_vm->_acci.person = '\376';
} else {
- switch (_vm->_gyro.verbstr[ddm_o.choicenum + 1]) {
+ switch (_vm->_gyro->verbstr[ddm_o.choicenum + 1]) {
case '\144': {
_vm->_acci.thing = '\144';
_vm->_lucerna.callverb(_vm->_acci.vb_buy);
@@ -643,7 +643,7 @@ void Dropdown::do__with() {
}
}
}
- _vm->_lucerna.callverb(_vm->_gyro.verbstr[ddm_o.choicenum + 1]);
+ _vm->_lucerna.callverb(_vm->_gyro->verbstr[ddm_o.choicenum + 1]);
}
/*$F- That's all. Now for the ...bar funcs. */
@@ -680,26 +680,26 @@ begin;
end;*/
void Dropdown::checkclick() { /* only for when the menu's displayed */
- if (_vm->_gyro.mpress > 0) {
- if (_vm->_gyro.mpy > 10) {
+ if (_vm->_gyro->mpress > 0) {
+ if (_vm->_gyro->mpy > 10) {
if (!((ddm_o.firstlix) &&
- ((_vm->_gyro.mpx >= ddm_o.flx1 * 8) && (_vm->_gyro.mpx <= ddm_o.flx2 * 8) &&
- (_vm->_gyro.mpy >= 12) && (_vm->_gyro.mpy <= ddm_o.fly)))) {
+ ((_vm->_gyro->mpx >= ddm_o.flx1 * 8) && (_vm->_gyro->mpx <= ddm_o.flx2 * 8) &&
+ (_vm->_gyro->mpy >= 12) && (_vm->_gyro->mpy <= ddm_o.fly)))) {
/* Clicked OUTSIDE the menu. */
if (ddm_o.menunow)
ddm_o.wipe();
} /* No "else"- clicking on menu has no effect (only releasing) */
} else {
/* Clicked on menu bar */
- ddm_m.getmenu(_vm->_gyro.mpx);
+ ddm_m.getmenu(_vm->_gyro->mpx);
}
} else {
; /* NOT clicked button... */
- if (_vm->_gyro.mrelease > 0) {
+ if (_vm->_gyro->mrelease > 0) {
if ((ddm_o.firstlix) &&
- ((_vm->_gyro.mrx >= ddm_o.flx1 * 8) && (_vm->_gyro.mrx <= ddm_o.flx2 * 8) &&
- (_vm->_gyro.mry >= 12) && (_vm->_gyro.mry <= ddm_o.fly)))
- ddm_o.select((_vm->_gyro.mry - 13) / 10);
+ ((_vm->_gyro->mrx >= ddm_o.flx1 * 8) && (_vm->_gyro->mrx <= ddm_o.flx2 * 8) &&
+ (_vm->_gyro->mry >= 12) && (_vm->_gyro->mry <= ddm_o.fly)))
+ ddm_o.select((_vm->_gyro->mry - 13) / 10);
}
}
}
@@ -707,22 +707,22 @@ void Dropdown::checkclick() { /* only for when the menu's displayed */
void Dropdown::menu_link() {
if (! ddm_o.menunow) return;
- _vm->_gyro.check(); /* find mouse coords & click information */
+ _vm->_gyro->check(); /* find mouse coords & click information */
checkclick(); /* work out click codes */
/* Change arrow... */
- if ((_vm->_gyro.my >= 0) && (_vm->_gyro.my <= 10))
- _vm->_gyro.newpointer(1); /* up-arrow */
- else if ((_vm->_gyro.my >= 11) && (_vm->_gyro.my <= 169)) {
- if ((_vm->_gyro.mx >= ddm_o.flx1 * 8) && (_vm->_gyro.mx <= ddm_o.flx2 * 8)
- && (_vm->_gyro.my > 10) && (_vm->_gyro.my <= ddm_o.fly))
- _vm->_gyro.newpointer(3); /* right-arrow */
+ if ((_vm->_gyro->my >= 0) && (_vm->_gyro->my <= 10))
+ _vm->_gyro->newpointer(1); /* up-arrow */
+ else if ((_vm->_gyro->my >= 11) && (_vm->_gyro->my <= 169)) {
+ if ((_vm->_gyro->mx >= ddm_o.flx1 * 8) && (_vm->_gyro->mx <= ddm_o.flx2 * 8)
+ && (_vm->_gyro->my > 10) && (_vm->_gyro->my <= ddm_o.fly))
+ _vm->_gyro->newpointer(3); /* right-arrow */
else
- _vm->_gyro.newpointer(4); /* fletch */
- } else if ((_vm->_gyro.my >= 169) && (_vm->_gyro.my <= 200))
- _vm->_gyro.newpointer(2); /* screwdriver */
+ _vm->_gyro->newpointer(4); /* fletch */
+ } else if ((_vm->_gyro->my >= 169) && (_vm->_gyro->my <= 200))
+ _vm->_gyro->newpointer(2); /* screwdriver */
if (! ddm_o.menunow)
return;
diff --git a/engines/avalanche/enid2.cpp b/engines/avalanche/enid2.cpp
index 107330a678..7284b888b4 100644
--- a/engines/avalanche/enid2.cpp
+++ b/engines/avalanche/enid2.cpp
@@ -94,7 +94,7 @@ Common::String Enid::expanddate(byte d, byte m, uint16 y) {
break;
}
- day = _vm->_gyro.strf(d);
+ day = _vm->_gyro->strf(d);
if (((d >= 0) && (d <= 9)) || ((d >= 21) && (d <= 31))) {
switch (d % 10) {
@@ -112,7 +112,7 @@ Common::String Enid::expanddate(byte d, byte m, uint16 y) {
}
}
- expanddate_result = day + ' ' + month + ' ' + _vm->_gyro.strf(y);
+ expanddate_result = day + ' ' + month + ' ' + _vm->_gyro->strf(y);
return expanddate_result;
}
@@ -148,8 +148,8 @@ void Enid::edna_save(Common::String name) {
}
void Enid::loaderror(Common::String x, char icon) {
- if (_vm->_gyro.holdthedawn) {
- _vm->_gyro.holdthedawn = false;
+ if (_vm->_gyro->holdthedawn) {
+ _vm->_gyro->holdthedawn = false;
_vm->_lucerna.dawn();
}
_vm->_scrolls.display(Common::String('\7') + '\6' + '\23' + icon + '\26' + "Loading error: " + "\r\r\22" + x);
@@ -250,17 +250,17 @@ void Enid::avvy_background() { /* Not really a filing procedure,
}
void Enid::to_sundry(sundry &sund) {
- sund.qenid_filename = _vm->_gyro.enid_filename;
- sund.qsoundfx = _vm->_gyro.soundfx;
- sund.qthinks = _vm->_gyro.thinks;
- sund.qthinkthing = _vm->_gyro.thinkthing;
+ sund.qenid_filename = _vm->_gyro->enid_filename;
+ sund.qsoundfx = _vm->_gyro->soundfx;
+ sund.qthinks = _vm->_gyro->thinks;
+ sund.qthinkthing = _vm->_gyro->thinkthing;
}
void Enid::from_sundry(sundry sund) {
- _vm->_gyro.enid_filename = sund.qenid_filename;
- _vm->_gyro.soundfx = sund.qsoundfx;
- _vm->_gyro.thinks = sund.qthinks;
- _vm->_gyro.thinkthing = sund.qthinkthing;
+ _vm->_gyro->enid_filename = sund.qenid_filename;
+ _vm->_gyro->soundfx = sund.qsoundfx;
+ _vm->_gyro->thinks = sund.qthinks;
+ _vm->_gyro->thinkthing = sund.qthinkthing;
}
void Enid::restore_dna() {
@@ -274,19 +274,19 @@ void Enid::edna_reload() {
restore_dna();
- _vm->_gyro.seescroll = true; /* This prevents display of the new sprites before the
+ _vm->_gyro->seescroll = true; /* This prevents display of the new sprites before the
new picture is loaded. */
_vm->_lucerna.major_redraw();
- _vm->_gyro.whereis[_vm->_gyro.pavalot] = _vm->_gyro.dna.room;
+ _vm->_gyro->whereis[_vm->_gyro->pavalot] = _vm->_gyro->dna.room;
- _vm->_gyro.alive = true;
+ _vm->_gyro->alive = true;
_vm->_lucerna.objectlist();
- if (_vm->_gyro.holdthedawn) {
- _vm->_gyro.holdthedawn = false;
+ if (_vm->_gyro->holdthedawn) {
+ _vm->_gyro->holdthedawn = false;
_vm->_lucerna.dawn();
}
}
diff --git a/engines/avalanche/gyro2.cpp b/engines/avalanche/gyro2.cpp
index aba169c6b8..dd1157b628 100644
--- a/engines/avalanche/gyro2.cpp
+++ b/engines/avalanche/gyro2.cpp
@@ -246,7 +246,9 @@ const char Gyro::betterchar[] = "WMBParCLguKeSnIohn";
-Gyro::Gyro() : interrogation(0), oncandopageswap(true) {
+Gyro::Gyro(AvalancheEngine *vm) : interrogation(0), oncandopageswap(true) {
+ _vm = vm;
+
/* Needed becouse of Lucerna::load_also() */
for (int fv = 0; fv < 31; fv++)
for (int ff = 0; ff < 2; ff++)
@@ -265,10 +267,6 @@ Gyro::~Gyro() {
}
-void Gyro::setParent(AvalancheEngine *vm) {
- _vm = vm;
-}
-
void Gyro::newpointer(byte m) {
if (m == cmp) return;
cmp = m;
@@ -359,7 +357,7 @@ void Gyro::newgame() { /* This sets up the DNA for a completely new game. */
alive = true;
score = 0; /*for gd:=0 to 5 do which[gd]:=1;*/
- memset(&_vm->_gyro.dna, 0, sizeof(dnatype));
+ memset(&_vm->_gyro->dna, 0, sizeof(dnatype));
_vm->_scrolls.natural();
_vm->_basher.normal_edit();
_vm->_lucerna.mousepage(0);
diff --git a/engines/avalanche/gyro2.h b/engines/avalanche/gyro2.h
index 29de10ca90..58b5844906 100644
--- a/engines/avalanche/gyro2.h
+++ b/engines/avalanche/gyro2.h
@@ -610,12 +610,10 @@ public:
bool use_joy_a;
- Gyro();
+ Gyro(AvalancheEngine *vm);
~Gyro();
- void setParent(AvalancheEngine *vm);
-
void newpointer(byte m);
void wait(); /* makes hourglass */
diff --git a/engines/avalanche/logger2.cpp b/engines/avalanche/logger2.cpp
index eeedb2301e..20ca558e41 100644
--- a/engines/avalanche/logger2.cpp
+++ b/engines/avalanche/logger2.cpp
@@ -82,7 +82,7 @@ void Logger::setParent(AvalancheEngine *vm) {
void Logger::centre(byte size, byte x) { /* Prints req'd number of spaces. */
byte fv;
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
warning("STUB: Logger::centre()");
@@ -109,13 +109,13 @@ void Logger::log_setup(Common::String name, bool printing) { /* Sets up. */
void Logger::log_divider() { /* Prints the divider sign. */
byte fv;
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
warning("STUB: Logger::log_divider()");
/*
- if (_vm->_gyro.log_epson) {
+ if (_vm->_gyro->log_epson) {
output << logfile << Common::String(' ') + double_width;
for (fv = 1; fv <= divide_indent; fv++)
output << logfile << ' ';
@@ -129,19 +129,19 @@ void Logger::log_divider() { /* Prints the divider sign. */
}
void Logger::log_command(Common::String x) { /* Prints a command */
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
warning("STUB: Logger::log_command()");
- /*if (_vm->_gyro.log_epson)
+ /*if (_vm->_gyro->log_epson)
output << logfile << double_width + '>' + double_off + ' ' + italic + x + italic_off << NL;
else
output << logfile << Common::String("> ") + x << NL;*/
}
void Logger::log_addstuff(Common::String x) {
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
scroll_line += x;
@@ -149,7 +149,7 @@ void Logger::log_addstuff(Common::String x) {
void Logger::log_scrollchar(Common::String x) { /* print one character */
Common::String z;
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
switch (x[1]) {
@@ -170,34 +170,34 @@ void Logger::log_scrollchar(Common::String x) { /* print one character */
}
void Logger::log_italic() {
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
warning("STUB: Logger::log_italic()");
- /*if (_vm->_gyro.log_epson)
+ /*if (_vm->_gyro->log_epson)
log_addstuff(italic);
else
log_addstuff("*");*/
}
void Logger::log_roman() {
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
warning("STUB: Logger::log_roman()");
- /* if (_vm->_gyro.log_epson)
+ /* if (_vm->_gyro->log_epson)
log_addstuff(italic_off);
else
log_addstuff("*");*/
}
void Logger::log_epsonroman() { /* This only sends the Roman code if you're on Epson.*/
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
- if (_vm->_gyro.log_epson)
+ if (_vm->_gyro->log_epson)
log_addstuff(italic_off);
}
@@ -208,7 +208,7 @@ void Logger::log_scrollline() { /* Set up a line for the scroll driver */
void Logger::log_scrollendline(bool centred) {
byte x, fv;
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
x = 17;
if (centred)
@@ -223,7 +223,7 @@ void Logger::log_scrollendline(bool centred) {
void Logger::log_bubbleline(byte linenum, byte whom, Common::String x) {
byte fv;
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
warning("STUB: Logger::log_bubbleline()");
@@ -242,30 +242,30 @@ void Logger::log_bubbleline(byte linenum, byte whom, Common::String x) {
void Logger::log_newline() {
warning("STUB: Logger::log_newline()");
- //if (_vm->_gyro.logging)
+ //if (_vm->_gyro->logging)
// output << logfile << NL;
}
void Logger::log_newroom(Common::String where) {
byte fv;
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
warning("STUB: Logger::log_newroom()");
/*for (fv = 1; fv <= 20; fv++)
output << logfile << ' ';
- if (_vm->_gyro.log_epson)
+ if (_vm->_gyro->log_epson)
output << logfile << emph_on;
output << logfile << Common::String('(') + where + ')';
- if (_vm->_gyro.log_epson)
+ if (_vm->_gyro->log_epson)
output << logfile << emph_off;
output << logfile << NL;*/
}
void Logger::log_aside(Common::String what) {
/* This writes "asides" to the printer. For example, moves in Nim. */
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
warning("STUB: Logger::log_aside()");
@@ -276,7 +276,7 @@ void Logger::log_aside(Common::String what) {
void Logger::log_score(uint16 credit, uint16 now) {
byte fv;
- if (!_vm->_gyro.logging)
+ if (!_vm->_gyro->logging)
return;
warning("STUB: Logger::log_score()");
diff --git a/engines/avalanche/lucerna2.cpp b/engines/avalanche/lucerna2.cpp
index aefa6bff97..f2690085e0 100644
--- a/engines/avalanche/lucerna2.cpp
+++ b/engines/avalanche/lucerna2.cpp
@@ -61,10 +61,10 @@ void Lucerna::setParent(AvalancheEngine *vm) {
}
void Lucerna::init() {
- _vm->_gyro.oh = 17717;
- _vm->_gyro.om = 17717;
- if (_vm->_enhanced.atbios) _vm->_gyro.atkey = "f1";
- else _vm->_gyro.atkey = "alt-";
+ _vm->_gyro->oh = 17717;
+ _vm->_gyro->om = 17717;
+ if (_vm->_enhanced.atbios) _vm->_gyro->atkey = "f1";
+ else _vm->_gyro->atkey = "alt-";
}
void Lucerna::callverb(char n) {
@@ -74,7 +74,7 @@ void Lucerna::callverb(char n) {
"assigned to it. You may press alt-A to see what the " +
"current setting of this key is.");
} else {
- _vm->_gyro.weirdword = false;
+ _vm->_gyro->weirdword = false;
_vm->_acci.polite = true;
_vm->_acci.verb = n;
_vm->_acci.do_that();
@@ -108,10 +108,10 @@ void Lucerna::scram1(Common::String &x) {
void Lucerna::unscramble() {
for (byte fv = 0; fv < 31; fv ++)
for (byte ff = 0; ff < 2; ff ++)
- if (_vm->_gyro.also[fv][ff] != 0)
- scram1(*_vm->_gyro.also[fv][ff]);
- scram1(_vm->_gyro.listen);
- scram1(_vm->_gyro.flags);
+ if (_vm->_gyro->also[fv][ff] != 0)
+ scram1(*_vm->_gyro->also[fv][ff]);
+ scram1(_vm->_gyro->listen);
+ scram1(_vm->_gyro->flags);
/* for fz:=1 to length(also[fv,ff]^) do
also[fv,ff]^[fz]:=chr(ord(also[fv,ff]^[fz]) xor 177);*/
}
@@ -121,9 +121,9 @@ void Lucerna::load_also(Common::String n) {
for (fv = 0; fv < 31; fv++)
for (ff = 0; ff < 2; ff++)
- if (_vm->_gyro.also[fv][ff] != 0) {
- delete _vm->_gyro.also[fv][ff];
- _vm->_gyro.also[fv][ff] = 0;
+ if (_vm->_gyro->also[fv][ff] != 0) {
+ delete _vm->_gyro->also[fv][ff];
+ _vm->_gyro->also[fv][ff] = 0;
}
Common::String filename;
@@ -138,58 +138,58 @@ void Lucerna::load_also(Common::String n) {
byte minnames = f.readByte();
for (fv = 0; fv <= minnames; fv++) {
for (ff = 0; ff < 2; ff++) {
- _vm->_gyro.also[fv][ff] = new Common::String;
- *_vm->_gyro.also[fv][ff] = nextstring();
+ _vm->_gyro->also[fv][ff] = new Common::String;
+ *_vm->_gyro->also[fv][ff] = nextstring();
}
- *_vm->_gyro.also[fv][0] = Common::String(157) + *_vm->_gyro.also[fv][0] + 157;
+ *_vm->_gyro->also[fv][0] = Common::String(157) + *_vm->_gyro->also[fv][0] + 157;
}
- memset(_vm->_gyro.lines, 0xFF, sizeof(_vm->_gyro.lines));
+ memset(_vm->_gyro->lines, 0xFF, sizeof(_vm->_gyro->lines));
//fv = getpixel(0, 0);
fv = f.readByte();
for (byte i = 0; i < fv; i++) {
- _vm->_gyro.lines[i].x1 = f.readSint16LE();
- _vm->_gyro.lines[i].y1 = f.readSint16LE();
- _vm->_gyro.lines[i].x2 = f.readSint16LE();
- _vm->_gyro.lines[i].y2 = f.readSint16LE();
- _vm->_gyro.lines[i].col = f.readByte();
+ _vm->_gyro->lines[i].x1 = f.readSint16LE();
+ _vm->_gyro->lines[i].y1 = f.readSint16LE();
+ _vm->_gyro->lines[i].x2 = f.readSint16LE();
+ _vm->_gyro->lines[i].y2 = f.readSint16LE();
+ _vm->_gyro->lines[i].col = f.readByte();
}
- memset(_vm->_gyro.peds, 177, sizeof(_vm->_gyro.peds));
+ memset(_vm->_gyro->peds, 177, sizeof(_vm->_gyro->peds));
fv = f.readByte();
for (byte i = 0; i < fv; i++) {
- _vm->_gyro.peds[i].x = f.readSint16LE();
- _vm->_gyro.peds[i].y = f.readSint16LE();
- _vm->_gyro.peds[i].dir = f.readByte();
+ _vm->_gyro->peds[i].x = f.readSint16LE();
+ _vm->_gyro->peds[i].y = f.readSint16LE();
+ _vm->_gyro->peds[i].dir = f.readByte();
}
- _vm->_gyro.numfields = f.readByte();
- for (byte i = 0; i < _vm->_gyro.numfields; i++) {
- _vm->_gyro.fields[i].x1 = f.readSint16LE();
- _vm->_gyro.fields[i].y1 = f.readSint16LE();
- _vm->_gyro.fields[i].x2 = f.readSint16LE();
- _vm->_gyro.fields[i].y2 = f.readSint16LE();
+ _vm->_gyro->numfields = f.readByte();
+ for (byte i = 0; i < _vm->_gyro->numfields; i++) {
+ _vm->_gyro->fields[i].x1 = f.readSint16LE();
+ _vm->_gyro->fields[i].y1 = f.readSint16LE();
+ _vm->_gyro->fields[i].x2 = f.readSint16LE();
+ _vm->_gyro->fields[i].y2 = f.readSint16LE();
}
for (byte i = 0; i < 15; i++) {
- _vm->_gyro.magics[i].op = f.readByte();
- _vm->_gyro.magics[i].data = f.readUint16LE();
+ _vm->_gyro->magics[i].op = f.readByte();
+ _vm->_gyro->magics[i].data = f.readUint16LE();
}
for (byte i = 0; i < 7; i++) {
- _vm->_gyro.portals[i].op = f.readByte();
- _vm->_gyro.portals[i].data = f.readUint16LE();
+ _vm->_gyro->portals[i].op = f.readByte();
+ _vm->_gyro->portals[i].data = f.readUint16LE();
}
- _vm->_gyro.flags.clear();
+ _vm->_gyro->flags.clear();
for (byte i = 0; i < 26; i++)
- _vm->_gyro.flags += f.readByte();
+ _vm->_gyro->flags += f.readByte();
int16 listen_length = f.readByte();
- _vm->_gyro.listen.clear();
+ _vm->_gyro->listen.clear();
for (byte i = 0; i < listen_length; i++)
- _vm->_gyro.listen += f.readByte();
+ _vm->_gyro->listen += f.readByte();
draw_also_lines();
@@ -199,7 +199,7 @@ void Lucerna::load_also(Common::String n) {
f.close();
unscramble();
for (fv = 0; fv <= minnames; fv++)
- *_vm->_gyro.also[fv][0] = Common::String(',') + *_vm->_gyro.also[fv][0] + ',';
+ *_vm->_gyro->also[fv][0] = Common::String(',') + *_vm->_gyro->also[fv][0] + ',';
}
void Lucerna::load(byte n) { /* Load2, actually */
@@ -209,17 +209,17 @@ void Lucerna::load(byte n) { /* Load2, actually */
Common::String xx;
bool was_virtual;
- was_virtual = _vm->_gyro.visible == _vm->_gyro.m_virtual;
+ was_virtual = _vm->_gyro->visible == _vm->_gyro->m_virtual;
if (was_virtual)
- _vm->_gyro.off_virtual();
+ _vm->_gyro->off_virtual();
else
- _vm->_gyro.off();
+ _vm->_gyro->off();
- _vm->_gyro.clear_vmc();
+ _vm->_gyro->clear_vmc();
_vm->_graphics->flesh_colours();
- xx = _vm->_gyro.strf(n);
+ xx = _vm->_gyro->strf(n);
Common::String filename;
filename = filename.format("place%s.avd", xx.c_str());
if (!f.open(filename)) {
@@ -229,7 +229,7 @@ void Lucerna::load(byte n) { /* Load2, actually */
f.seek(146);
for (byte i = 0; i < 30; i++)
- _vm->_gyro.roomname += f.readByte();
+ _vm->_gyro->roomname += f.readByte();
/* Compression method byte follows this... */
f.seek(177);
@@ -278,12 +278,12 @@ void Lucerna::load(byte n) { /* Load2, actually */
bit = *_vm->_graphics->getPixel(0,0);
- _vm->_logger.log_newroom(_vm->_gyro.roomname);
+ _vm->_logger.log_newroom(_vm->_gyro->roomname);
if (was_virtual)
- _vm->_gyro.on_virtual();
+ _vm->_gyro->on_virtual();
else
- _vm->_gyro.on();
+ _vm->_gyro->on();
}
@@ -297,28 +297,28 @@ void Lucerna::zoomout(int16 x, int16 y) {
void Lucerna::find_people(byte room) {
for (byte fv = 151; fv <= 178; fv++)
- if (_vm->_gyro.whereis[fv] == room) {
+ if (_vm->_gyro->whereis[fv] == room) {
if (fv < 175)
- _vm->_gyro.him = fv;
+ _vm->_gyro->him = fv;
else
- _vm->_gyro.her = fv;
+ _vm->_gyro->her = fv;
}
}
void Lucerna::exitroom(byte x) {
//nosound();
_vm->_celer.forget_chunks();
- _vm->_gyro.seescroll = true; /* This stops the trippancy system working over the length of this procedure. */
+ _vm->_gyro->seescroll = true; /* This stops the trippancy system working over the length of this procedure. */
switch (x) {
case r__spludwicks:
_vm->_timeout.lose_timer(_vm->_timeout.reason_avariciustalks);
- _vm->_gyro.dna.avaricius_talk = 0;
+ _vm->_gyro->dna.avaricius_talk = 0;
/* He doesn't HAVE to be talking for this to work. It just deletes it IF it exists. */
break;
case r__bridge:
- if (_vm->_gyro.dna.drawbridge_open > 0) {
- _vm->_gyro.dna.drawbridge_open = 4; /* Fully open. */
+ if (_vm->_gyro->dna.drawbridge_open > 0) {
+ _vm->_gyro->dna.drawbridge_open = 4; /* Fully open. */
_vm->_timeout.lose_timer(_vm->_timeout.reason_drawbridgefalls);
}
break;
@@ -330,39 +330,39 @@ void Lucerna::exitroom(byte x) {
break;
}
- _vm->_gyro.interrogation = 0; /* Leaving the room cancels all the questions automatically. */
+ _vm->_gyro->interrogation = 0; /* Leaving the room cancels all the questions automatically. */
- _vm->_gyro.seescroll = false; /* Now it can work again! */
+ _vm->_gyro->seescroll = false; /* Now it can work again! */
- _vm->_gyro.dna.last_room = _vm->_gyro.dna.room;
- if (_vm->_gyro.dna.room != r__map)
- _vm->_gyro.dna.last_room_not_map = _vm->_gyro.dna.room;
+ _vm->_gyro->dna.last_room = _vm->_gyro->dna.room;
+ if (_vm->_gyro->dna.room != r__map)
+ _vm->_gyro->dna.last_room_not_map = _vm->_gyro->dna.room;
}
void Lucerna::new_town() { /* You've just entered a town from the map. */
_vm->_dropdown.standard_bar();
- switch (_vm->_gyro.dna.room) {
+ switch (_vm->_gyro->dna.room) {
case r__outsidenottspub: /* Entry into Nottingham. */
- if ((_vm->_gyro.dna.rooms[r__robins] > 0) && (_vm->_gyro.dna.been_tied_up) && (! _vm->_gyro.dna.taken_mushroom))
- _vm->_gyro.dna.mushroom_growing = true;
+ if ((_vm->_gyro->dna.rooms[r__robins] > 0) && (_vm->_gyro->dna.been_tied_up) && (! _vm->_gyro->dna.taken_mushroom))
+ _vm->_gyro->dna.mushroom_growing = true;
break;
case r__wisewomans: { /* Entry into Argent. */
- if (_vm->_gyro.dna.talked_to_crapulus && (! _vm->_gyro.dna.lustie_is_asleep)) {
- _vm->_gyro.dna.spludwicks_here = !((_vm->_gyro.dna.rooms[r__wisewomans] % 3) == 1);
- _vm->_gyro.dna.crapulus_will_tell = ! _vm->_gyro.dna.spludwicks_here;
+ if (_vm->_gyro->dna.talked_to_crapulus && (! _vm->_gyro->dna.lustie_is_asleep)) {
+ _vm->_gyro->dna.spludwicks_here = !((_vm->_gyro->dna.rooms[r__wisewomans] % 3) == 1);
+ _vm->_gyro->dna.crapulus_will_tell = ! _vm->_gyro->dna.spludwicks_here;
} else {
- _vm->_gyro.dna.spludwicks_here = true;
- _vm->_gyro.dna.crapulus_will_tell = false;
+ _vm->_gyro->dna.spludwicks_here = true;
+ _vm->_gyro->dna.crapulus_will_tell = false;
}
- if (_vm->_gyro.dna.box_contents == _vm->_gyro.wine) _vm->_gyro.dna.winestate = 3; /* Vinegar */
+ if (_vm->_gyro->dna.box_contents == _vm->_gyro->wine) _vm->_gyro->dna.winestate = 3; /* Vinegar */
}
break;
}
- if (_vm->_gyro.dna.room != r__outsideducks) {
- if ((_vm->_gyro.dna.obj[_vm->_gyro.onion]) && !(_vm->_gyro.dna.onion_in_vinegar))
- _vm->_gyro.dna.rotten_onion = true; /* You're holding the onion */
+ if (_vm->_gyro->dna.room != r__outsideducks) {
+ if ((_vm->_gyro->dna.obj[_vm->_gyro->onion]) && !(_vm->_gyro->dna.onion_in_vinegar))
+ _vm->_gyro->dna.rotten_onion = true; /* You're holding the onion */
}
}
@@ -378,33 +378,33 @@ void Lucerna::put_geida_at(byte whichped, byte &ped) {
}
void Lucerna::enterroom(byte x, byte ped) {
- _vm->_gyro.seescroll = true; /* This stops the trippancy system working over the length of this procedure. */
+ _vm->_gyro->seescroll = true; /* This stops the trippancy system working over the length of this procedure. */
find_people(x);
- _vm->_gyro.dna.room = x;
+ _vm->_gyro->dna.room = x;
if (ped != 0)
- _vm->_gyro.dna.rooms[x]++;
+ _vm->_gyro->dna.rooms[x]++;
load(x);
- if ((_vm->_gyro.dna.rooms[x] == 0) && (! _vm->_gyro.flagset('S')))
+ if ((_vm->_gyro->dna.rooms[x] == 0) && (! _vm->_gyro->flagset('S')))
points(1);
- _vm->_gyro.whereis[_vm->_gyro.pavalot] = _vm->_gyro.dna.room;
+ _vm->_gyro->whereis[_vm->_gyro->pavalot] = _vm->_gyro->dna.room;
- if (_vm->_gyro.dna.geida_follows)
- _vm->_gyro.whereis[_vm->_gyro.pgeida] = x;
+ if (_vm->_gyro->dna.geida_follows)
+ _vm->_gyro->whereis[_vm->_gyro->pgeida] = x;
- _vm->_gyro.roomtime = 0;
+ _vm->_gyro->roomtime = 0;
- if ((_vm->_gyro.dna.last_room == r__map) && (_vm->_gyro.dna.last_room_not_map != _vm->_gyro.dna.room))
+ if ((_vm->_gyro->dna.last_room == r__map) && (_vm->_gyro->dna.last_room_not_map != _vm->_gyro->dna.room))
new_town();
switch (x) {
case r__yours:
- if (_vm->_gyro.dna.avvy_in_bed) {
+ if (_vm->_gyro->dna.avvy_in_bed) {
_vm->_celer.show_one(3);
_vm->_timeout.set_up_timer(100, _vm->_timeout.procarkata_shouts, _vm->_timeout.reason_arkata_shouts);
}
@@ -412,12 +412,12 @@ void Lucerna::enterroom(byte x, byte ped) {
case r__outsideyours:
if (ped > 0) {
- if (! _vm->_gyro.dna.talked_to_crapulus) {
+ if (! _vm->_gyro->dna.talked_to_crapulus) {
- _vm->_gyro.whereis[_vm->_gyro.pcrapulus] = r__outsideyours;
+ _vm->_gyro->whereis[_vm->_gyro->pcrapulus] = r__outsideyours;
_vm->_trip.tr[2].init(8, false, &_vm->_trip); /* load Crapulus */
- if (_vm->_gyro.dna.rooms[r__outsideyours] == 1) {
+ if (_vm->_gyro->dna.rooms[r__outsideyours] == 1) {
_vm->_trip.apped(2, 4); /* Start on the right-hand side of the screen. */
_vm->_trip.tr[2].walkto(5); /* Walks up to greet you. */
} else {
@@ -428,14 +428,14 @@ void Lucerna::enterroom(byte x, byte ped) {
_vm->_trip.tr[2].call_eachstep = true;
_vm->_trip.tr[2].eachstep = _vm->_trip.procface_avvy; /* He always faces Avvy. */
- } else _vm->_gyro.whereis[_vm->_gyro.pcrapulus] = r__nowhere;
+ } else _vm->_gyro->whereis[_vm->_gyro->pcrapulus] = r__nowhere;
- if (_vm->_gyro.dna.crapulus_will_tell) {
+ if (_vm->_gyro->dna.crapulus_will_tell) {
_vm->_trip.tr[2].init(8, false, &_vm->_trip);
_vm->_trip.apped(2, 2);
_vm->_trip.tr[2].walkto(4);
_vm->_timeout.set_up_timer(20, _vm->_timeout.proccrapulus_splud_out, _vm->_timeout.reason_crapulus_says_spludwick_out);
- _vm->_gyro.dna.crapulus_will_tell = false;
+ _vm->_gyro->dna.crapulus_will_tell = false;
}
}
break;
@@ -443,40 +443,40 @@ void Lucerna::enterroom(byte x, byte ped) {
/* Need to find out which room is this!
case r__outsidespludwicks:
- if ((_vm->_gyro.dna.rooms[r__outsidespludwicks] == 1) && (ped == 1)) {
+ if ((_vm->_gyro->dna.rooms[r__outsidespludwicks] == 1) && (ped == 1)) {
_vm->_timeout.set_up_timer(20, _vm->_timeout.procbang, _vm->_timeout.reason_explosion);
- _vm->_gyro.dna.spludwicks_here = true;
+ _vm->_gyro->dna.spludwicks_here = true;
}
break;*/
case r__spludwicks:
- if (_vm->_gyro.dna.spludwicks_here) {
+ if (_vm->_gyro->dna.spludwicks_here) {
if (ped > 0) {
_vm->_trip.tr[2].init(2, false, &_vm->_trip); /* load Spludwick */
_vm->_trip.apped(2, 2);
- _vm->_gyro.whereis['\227'] = r__spludwicks;
+ _vm->_gyro->whereis['\227'] = r__spludwicks;
}
- _vm->_gyro.dna.dogfoodpos = 0; /* _vm->_gyro.also Spludwick pos. */
+ _vm->_gyro->dna.dogfoodpos = 0; /* _vm->_gyro->also Spludwick pos. */
_vm->_trip.tr[2].call_eachstep = true;
_vm->_trip.tr[2].eachstep = _vm->_trip.procgeida_procs;
- } else _vm->_gyro.whereis['\227'] = r__nowhere;
+ } else _vm->_gyro->whereis['\227'] = r__nowhere;
break;
case r__brummieroad: {
- if (_vm->_gyro.dna.geida_follows) put_geida_at(5, ped);
- if (_vm->_gyro.dna.cwytalot_gone) {
- _vm->_gyro.magics[lightred].op = _vm->_gyro.nix;
- _vm->_gyro.whereis[_vm->_gyro.pcwytalot] = r__nowhere;
+ if (_vm->_gyro->dna.geida_follows) put_geida_at(5, ped);
+ if (_vm->_gyro->dna.cwytalot_gone) {
+ _vm->_gyro->magics[lightred].op = _vm->_gyro->nix;
+ _vm->_gyro->whereis[_vm->_gyro->pcwytalot] = r__nowhere;
} else {
if (ped > 0) {
_vm->_trip.tr[2].init(4, false, &_vm->_trip); /* 4=Cwytalot*/
_vm->_trip.tr[2].call_eachstep = true;
_vm->_trip.tr[2].eachstep = _vm->_trip.procfollow_avvy_y;
- _vm->_gyro.whereis[_vm->_gyro.pcwytalot] = r__brummieroad;
+ _vm->_gyro->whereis[_vm->_gyro->pcwytalot] = r__brummieroad;
- if (_vm->_gyro.dna.rooms[r__brummieroad] == 1) { /* First time here... */
+ if (_vm->_gyro->dna.rooms[r__brummieroad] == 1) { /* First time here... */
_vm->_trip.apped(2, 2); /* He appears on the right of the screen... */
_vm->_trip.tr[2].walkto(4); /* ...and he walks up... */
} else {
@@ -490,32 +490,32 @@ void Lucerna::enterroom(byte x, byte ped) {
break;
case r__argentroad: {
- dnatype &with = _vm->_gyro.dna;
+ dnatype &with = _vm->_gyro->dna;
if ((with.cwytalot_gone) && (! with.cwytalot_in_herts) && (ped == 2) &&
- (_vm->_gyro.dna.rooms[r__argentroad] > 3)) {
+ (_vm->_gyro->dna.rooms[r__argentroad] > 3)) {
_vm->_trip.tr[2].init(4, false, &_vm->_trip); /* 4=Cwytalot again*/
_vm->_trip.apped(2, 1);
_vm->_trip.tr[2].walkto(2);
_vm->_trip.tr[2].vanishifstill = true;
with.cwytalot_in_herts = true;
- /*_vm->_gyro.whereis[#157]:=r__Nowhere;*/ /* can we fit this in? */
+ /*_vm->_gyro->whereis[#157]:=r__Nowhere;*/ /* can we fit this in? */
_vm->_timeout.set_up_timer(20, _vm->_timeout.proc_cwytalot_in_herts, _vm->_timeout.reason_cwytalot_in_herts);
}
}
break;
case r__bridge: {
- if (_vm->_gyro.dna.drawbridge_open == 4) { /*open*/
+ if (_vm->_gyro->dna.drawbridge_open == 4) { /*open*/
_vm->_celer.show_one(3); /* Position of drawbridge */
- _vm->_gyro.magics[green].op = _vm->_gyro.nix; /* You may enter the drawbridge. */
+ _vm->_gyro->magics[green].op = _vm->_gyro->nix; /* You may enter the drawbridge. */
}
- if (_vm->_gyro.dna.geida_follows) put_geida_at(ped + 3, ped); /* load Geida */
+ if (_vm->_gyro->dna.geida_follows) put_geida_at(ped + 3, ped); /* load Geida */
}
break;
case r__robins: {
if (ped > 0) {
- if (! _vm->_gyro.dna.been_tied_up) {
+ if (! _vm->_gyro->dna.been_tied_up) {
/* A welcome party... or maybe not... */
_vm->_trip.tr[2].init(6, false, &_vm->_trip);
_vm->_trip.apped(2, 2);
@@ -524,22 +524,22 @@ void Lucerna::enterroom(byte x, byte ped) {
}
}
- if (_vm->_gyro.dna.been_tied_up) {
- _vm->_gyro.whereis[_vm->_gyro.probinhood] = 0;
- _vm->_gyro.whereis[_vm->_gyro.pfriartuck] = 0;
+ if (_vm->_gyro->dna.been_tied_up) {
+ _vm->_gyro->whereis[_vm->_gyro->probinhood] = 0;
+ _vm->_gyro->whereis[_vm->_gyro->pfriartuck] = 0;
}
- if (_vm->_gyro.dna.tied_up)
+ if (_vm->_gyro->dna.tied_up)
_vm->_celer.show_one(2);
- if (! _vm->_gyro.dna.mushroom_growing)
+ if (! _vm->_gyro->dna.mushroom_growing)
_vm->_celer.show_one(3);
}
break;
case r__outsidecardiffcastle: {
if (ped > 0)
- switch (_vm->_gyro.dna.cardiff_things) {
+ switch (_vm->_gyro->dna.cardiff_things) {
case 0 : { /* You've answered NONE of his questions. */
_vm->_trip.tr[2].init(9, false, &_vm->_trip);
_vm->_trip.apped(2, 2);
@@ -548,7 +548,7 @@ void Lucerna::enterroom(byte x, byte ped) {
}
break;
case 5 :
- _vm->_gyro.magics[2].op = _vm->_gyro.nix;
+ _vm->_gyro->magics[2].op = _vm->_gyro->nix;
break; /* You've answered ALL his questions. => nothing happens. */
default: { /* You've answered SOME of his questions. */
_vm->_trip.tr[2].init(9, false, &_vm->_trip);
@@ -557,9 +557,9 @@ void Lucerna::enterroom(byte x, byte ped) {
_vm->_timeout.set_up_timer(3, _vm->_timeout.proccardiff_return, _vm->_timeout.reason_cardiffsurvey);
}
}
- if (_vm->_gyro.dna.cardiff_things < 5)
- _vm->_gyro.interrogation = _vm->_gyro.dna.cardiff_things;
- else _vm->_gyro.interrogation = 0;
+ if (_vm->_gyro->dna.cardiff_things < 5)
+ _vm->_gyro->interrogation = _vm->_gyro->dna.cardiff_things;
+ else _vm->_gyro->interrogation = 0;
}
break;
@@ -574,9 +574,9 @@ void Lucerna::enterroom(byte x, byte ped) {
break;
case r__argentpub: {
- if (_vm->_gyro.dna.wonnim) _vm->_celer.show_one(1); /* No lute by the settle. */
- _vm->_gyro.dna.malagauche = 0; /* Ready to boot Malagauche */
- if (_vm->_gyro.dna.givenbadgetoiby) {
+ if (_vm->_gyro->dna.wonnim) _vm->_celer.show_one(1); /* No lute by the settle. */
+ _vm->_gyro->dna.malagauche = 0; /* Ready to boot Malagauche */
+ if (_vm->_gyro->dna.givenbadgetoiby) {
_vm->_celer.show_one(8);
_vm->_celer.show_one(9);
}
@@ -584,27 +584,27 @@ void Lucerna::enterroom(byte x, byte ped) {
break;
case r__lustiesroom: {
- _vm->_gyro.dna.dogfoodpos = 1; /* Actually, du Lustie pos. */
+ _vm->_gyro->dna.dogfoodpos = 1; /* Actually, du Lustie pos. */
if (_vm->_trip.tr[1].whichsprite == 0) /* Avvy in his normal clothes */
_vm->_timeout.set_up_timer(3, _vm->_timeout.proccallsguards, _vm->_timeout.reason_du_lustie_talks);
- else if (! _vm->_gyro.dna.entered_lusties_room_as_monk) /*already*/
+ else if (! _vm->_gyro->dna.entered_lusties_room_as_monk) /*already*/
/* Presumably, Avvy dressed as a monk. */
_vm->_timeout.set_up_timer(3, _vm->_timeout.procgreetsmonk, _vm->_timeout.reason_du_lustie_talks);
- if (_vm->_gyro.dna.geida_follows) {
+ if (_vm->_gyro->dna.geida_follows) {
put_geida_at(5, ped);
- if (_vm->_gyro.dna.lustie_is_asleep) _vm->_celer.show_one(5);
+ if (_vm->_gyro->dna.lustie_is_asleep) _vm->_celer.show_one(5);
}
}
break;
case r__musicroom: {
- if (_vm->_gyro.dna.jacques_awake > 0) {
- _vm->_gyro.dna.jacques_awake = 5;
+ if (_vm->_gyro->dna.jacques_awake > 0) {
+ _vm->_gyro->dna.jacques_awake = 5;
_vm->_celer.show_one(2);
_vm->_celer.show_one(4);
- _vm->_gyro.magics[brown].op = _vm->_gyro.nix;
- _vm->_gyro.whereis[_vm->_gyro.pjacques] = 0;
+ _vm->_gyro->magics[brown].op = _vm->_gyro->nix;
+ _vm->_gyro->whereis[_vm->_gyro->pjacques] = 0;
}
if (ped != 0) {
_vm->_celer.show_one(6);
@@ -636,7 +636,7 @@ void Lucerna::enterroom(byte x, byte ped) {
case r__wisewomans: {
_vm->_trip.tr[2].init(11, false, &_vm->_trip);
- if ((_vm->_gyro.dna.rooms[r__wisewomans] == 1) && (ped > 0)) {
+ if ((_vm->_gyro->dna.rooms[r__wisewomans] == 1) && (ped > 0)) {
_vm->_trip.apped(2, 2); /* Start on the right-hand side of the screen. */
_vm->_trip.tr[2].walkto(4); /* Walks up to greet you. */
} else {
@@ -653,18 +653,18 @@ void Lucerna::enterroom(byte x, byte ped) {
if (ped > 0) {
_vm->_trip.tr[2].init(10, false, &_vm->_trip); /* Define the dart. */
_vm->_sequence.first_show(1);
- if (_vm->_gyro.dna.arrow_in_the_door)
+ if (_vm->_gyro->dna.arrow_in_the_door)
_vm->_sequence.then_show(3);
else
_vm->_sequence.then_show(2);
- if (_vm->_gyro.dna.taken_pen)
+ if (_vm->_gyro->dna.taken_pen)
_vm->_celer.show_one(4);
_vm->_sequence.start_to_close();
} else {
_vm->_celer.show_one(1);
- if (_vm->_gyro.dna.arrow_in_the_door) _vm->_celer.show_one(3);
+ if (_vm->_gyro->dna.arrow_in_the_door) _vm->_celer.show_one(3);
else _vm->_celer.show_one(2);
}
break;
@@ -689,7 +689,7 @@ void Lucerna::enterroom(byte x, byte ped) {
break;
case r__aylesoffice:
- if (_vm->_gyro.dna.ayles_is_awake)
+ if (_vm->_gyro->dna.ayles_is_awake)
_vm->_celer.show_one(2);
break; /* Ayles awake. */
@@ -699,16 +699,16 @@ void Lucerna::enterroom(byte x, byte ped) {
case r__easthall:
case r__westhall:
- if (_vm->_gyro.dna.geida_follows) put_geida_at(ped + 2, ped);
+ if (_vm->_gyro->dna.geida_follows) put_geida_at(ped + 2, ped);
break;
case r__lusties:
- if (_vm->_gyro.dna.geida_follows) put_geida_at(ped + 6, ped);
+ if (_vm->_gyro->dna.geida_follows) put_geida_at(ped + 6, ped);
break;
case r__nottspub: {
- if (_vm->_gyro.dna.sitting_in_pub) _vm->_celer.show_one(3);
- _vm->_gyro.dna.dogfoodpos = 1; /* Actually, du Lustie pos. */
+ if (_vm->_gyro->dna.sitting_in_pub) _vm->_celer.show_one(3);
+ _vm->_gyro->dna.dogfoodpos = 1; /* Actually, du Lustie pos. */
}
break;
@@ -723,12 +723,12 @@ void Lucerna::enterroom(byte x, byte ped) {
}
break;
case r__ducks:
- _vm->_gyro.dna.dogfoodpos = 1;
+ _vm->_gyro->dna.dogfoodpos = 1;
break; /* Actually, Duck pos. */
}
- _vm->_gyro.seescroll = false; /* Now it can work again! */
+ _vm->_gyro->seescroll = false; /* Now it can work again! */
}
@@ -736,10 +736,10 @@ void Lucerna::thinkabout(byte z, bool th) { /* Hey!!! Get it and put it!!! *
const int16 picsize = 966;
const bytefield thinkspace = {25, 170, 32, 200};
- _vm->_gyro.thinks = z;
+ _vm->_gyro->thinks = z;
z--;
- _vm->_gyro.wait();
+ _vm->_gyro->wait();
if (th) {
if (!f.open("thinks.avd")) {
@@ -772,7 +772,7 @@ void Lucerna::thinkabout(byte z, bool th) { /* Hey!!! Get it and put it!!! *
f.close();
- _vm->_gyro.off();
+ _vm->_gyro->off();
/*setactivepage(3);
putimage(x, y, p, 0);
@@ -781,8 +781,8 @@ void Lucerna::thinkabout(byte z, bool th) { /* Hey!!! Get it and put it!!! *
for (byte fv = 0; fv <= 1; fv ++)
_vm->_trip.getset[fv].remember(thinkspace);
- _vm->_gyro.on();
- _vm->_gyro.thinkthing = th;
+ _vm->_gyro->on();
+ _vm->_gyro->thinkthing = th;
}
void Lucerna::load_digits() { /* Load the scoring digits & rwlites */
@@ -795,13 +795,13 @@ void Lucerna::load_digits() { /* Load the scoring digits & rwlites */
}
for (byte fv = 0; fv < 10; fv ++) {
- _vm->_gyro.digit[fv] = new byte[digitsize];
- f.read(_vm->_gyro.digit[fv], digitsize);
+ _vm->_gyro->digit[fv] = new byte[digitsize];
+ f.read(_vm->_gyro->digit[fv], digitsize);
}
for (byte ff = 0; ff < 9; ff ++) {
- _vm->_gyro.rwlite[ff] = new byte[rwlitesize];
- f.read(_vm->_gyro.rwlite[ff], rwlitesize);
+ _vm->_gyro->rwlite[ff] = new byte[rwlitesize];
+ f.read(_vm->_gyro->rwlite[ff], rwlitesize);
}
f.close();
@@ -831,7 +831,7 @@ void Lucerna::toolbar() {
/* on;*/
- _vm->_gyro.oldrw = 177;
+ _vm->_gyro->oldrw = 177;
showrw();
}
@@ -839,10 +839,10 @@ void Lucerna::showscore() {
const bytefield scorespace = {33, 177, 39, 200};
- if (_vm->_gyro.demo)
+ if (_vm->_gyro->demo)
return;
- uint16 score = _vm->_gyro.dna.score;
+ uint16 score = _vm->_gyro->dna.score;
int8 numbers[3] = {0, 0, 0};
for (byte i = 0; i < 2; i++) {
byte divisor = 1;
@@ -853,27 +853,27 @@ void Lucerna::showscore() {
}
numbers[2] = score;
- _vm->_gyro.off();
+ _vm->_gyro->off();
//setactivepage(3);
for (byte fv = 0; fv < 3; fv ++)
- if (_vm->_gyro.lastscore[fv] != numbers[fv])
- _vm->_graphics->drawPicture(_vm->_gyro.digit[numbers[fv]], 250 + (fv + 1) * 15, 177);
+ if (_vm->_gyro->lastscore[fv] != numbers[fv])
+ _vm->_graphics->drawPicture(_vm->_gyro->digit[numbers[fv]], 250 + (fv + 1) * 15, 177);
for (byte fv = 0; fv < 2; fv ++)
_vm->_trip.getset[fv].remember(scorespace);
//setactivepage(1 - cp);
- _vm->_gyro.on();
+ _vm->_gyro->on();
for (byte i = 0; i < 3; i++)
- _vm->_gyro.lastscore[i] = numbers[i];
+ _vm->_gyro->lastscore[i] = numbers[i];
}
void Lucerna::points(byte num) { /* Add on no. of points */
for (byte q = 1; q <= num; q ++) {
- _vm->_gyro.dna.score++;
+ _vm->_gyro->dna.score++;
/*if (soundfx)
for (byte fv = 1; fv <= 97; fv ++)
sound(177 + dna.score * 3);
@@ -881,13 +881,13 @@ void Lucerna::points(byte num) { /* Add on no. of points */
}
warning("STUB: Lucerna::points()");
- _vm->_logger.log_score(num, _vm->_gyro.dna.score);
+ _vm->_logger.log_score(num, _vm->_gyro->dna.score);
showscore();
}
void Lucerna::topcheck() {
/* Menuset */
- _vm->_dropdown.ddm_m.getmenu(_vm->_gyro.mpx);
+ _vm->_dropdown.ddm_m.getmenu(_vm->_gyro->mpx);
/* Do this one */
}
@@ -899,10 +899,10 @@ void Lucerna::inkey() {
char r;
- if (_vm->_gyro.demo)
+ if (_vm->_gyro->demo)
return; /* Demo handles this itself. */
- if (_vm->_gyro.mousetext == "") {
+ if (_vm->_gyro->mousetext == "") {
/* read keyboard */
_vm->_enhanced.readkeye();
if ((_vm->_enhanced.inchar == ' ') && ((_vm->_enhanced.shiftstate & 8) > 0)) {
@@ -910,10 +910,10 @@ void Lucerna::inkey() {
_vm->_enhanced.extd = '#'; /* alt-spacebar = alt-H */
}
} else {
- if (_vm->_gyro.mousetext[0] == '`')
- _vm->_gyro.mousetext.setChar(13,0); /* Backquote = return in a macro */
- _vm->_enhanced.inchar = _vm->_gyro.mousetext[0];
- _vm->_gyro.mousetext = Common::String(_vm->_gyro.mousetext.c_str() + 2, 253);
+ if (_vm->_gyro->mousetext[0] == '`')
+ _vm->_gyro->mousetext.setChar(13,0); /* Backquote = return in a macro */
+ _vm->_enhanced.inchar = _vm->_gyro->mousetext[0];
+ _vm->_gyro->mousetext = Common::String(_vm->_gyro->mousetext.c_str() + 2, 253);
}
}
@@ -926,34 +926,34 @@ void Lucerna::fxtoggle() {
}
void Lucerna::objectlist() {
- _vm->_gyro.dna.carrying = 0;
- if (_vm->_gyro.thinkthing && ! _vm->_gyro.dna.obj[_vm->_gyro.thinks])
- thinkabout(_vm->_gyro.money, _vm->_gyro.a_thing); /* you always have money */
+ _vm->_gyro->dna.carrying = 0;
+ if (_vm->_gyro->thinkthing && ! _vm->_gyro->dna.obj[_vm->_gyro->thinks])
+ thinkabout(_vm->_gyro->money, _vm->_gyro->a_thing); /* you always have money */
for (byte fv = 0; fv < numobjs; fv ++)
- if (_vm->_gyro.dna.obj[fv]) {
- _vm->_gyro.dna.carrying ++;
- _vm->_gyro.objlist[_vm->_gyro.dna.carrying] = fv + 1;
+ if (_vm->_gyro->dna.obj[fv]) {
+ _vm->_gyro->dna.carrying ++;
+ _vm->_gyro->objlist[_vm->_gyro->dna.carrying] = fv + 1;
}
}
void Lucerna::verte() {
byte what;
- if (! _vm->_gyro.dna.user_moves_avvy)
+ if (! _vm->_gyro->dna.user_moves_avvy)
return;
/* _vm->_trip.tr[0] : that's the only one we're interested in here */
- if (_vm->_gyro.mx < _vm->_trip.tr[0].x)
+ if (_vm->_gyro->mx < _vm->_trip.tr[0].x)
what = 1;
- else if (_vm->_gyro.mx > (unsigned char)(_vm->_trip.tr[0].x + _vm->_trip.tr[0]._info.xl))
+ else if (_vm->_gyro->mx > (unsigned char)(_vm->_trip.tr[0].x + _vm->_trip.tr[0]._info.xl))
what = 2;
else
what = 0; /* On top */
- if (_vm->_gyro.my < _vm->_trip.tr[0].y)
+ if (_vm->_gyro->my < _vm->_trip.tr[0].y)
what += 3;
- else if (_vm->_gyro.my > (unsigned char)(_vm->_trip.tr[0].y + _vm->_trip.tr[0]._info.yl))
+ else if (_vm->_gyro->my > (unsigned char)(_vm->_trip.tr[0].y + _vm->_trip.tr[0]._info.yl))
what += 6;
switch (what) {
@@ -994,7 +994,7 @@ void Lucerna::checkclick() {
}
void Lucerna::mouse_init() {
- _vm->_gyro.wait();
+ _vm->_gyro->wait();
}
void Lucerna::mousepage(uint16 page_) {
@@ -1042,19 +1042,19 @@ void Lucerna::dawn() {
void Lucerna::showrw() { // It's data is loaded in load_digits().
- if (_vm->_gyro.oldrw == _vm->_gyro.dna.rw)
+ if (_vm->_gyro->oldrw == _vm->_gyro->dna.rw)
return;
- _vm->_gyro.oldrw = _vm->_gyro.dna.rw;
- _vm->_gyro.off();
+ _vm->_gyro->oldrw = _vm->_gyro->dna.rw;
+ _vm->_gyro->off();
/* for (byte page_ = 0; page_ <= 1; page_ ++) {
setactivepage(page_);
putimage(0, 161, rwlite[with.rw], 0);
}*/
- _vm->_graphics->drawPicture(_vm->_gyro.rwlite[_vm->_gyro.dna.rw], 0, 161);
+ _vm->_graphics->drawPicture(_vm->_gyro->rwlite[_vm->_gyro->dna.rw], 0, 161);
- _vm->_gyro.on();
+ _vm->_gyro->on();
//setactivepage(1 - cp);
warning("STUB: Lucerna::showrw()");
@@ -1207,21 +1207,21 @@ void Lucerna::flip_page() {
void Lucerna::delavvy() {
byte page_;
- _vm->_gyro.off();
+ _vm->_gyro->off();
triptype &with = _vm->_trip.tr[0];
for (page_ = 0; page_ <= 1; page_ ++)
mblit(with.x / 8, with.y, (with.x + with._info.xl) / 8 + 1, with.y + with._info.yl, 3, page_);
blitfix();
- _vm->_gyro.on();
+ _vm->_gyro->on();
}
void Lucerna::gameover() {
byte fv;
int16 sx, sy;
- _vm->_gyro.dna.user_moves_avvy = false;
+ _vm->_gyro->dna.user_moves_avvy = false;
sx = _vm->_trip.tr[1].x;
sy = _vm->_trip.tr[1].y;
@@ -1233,7 +1233,7 @@ void Lucerna::gameover() {
_vm->_timeout.set_up_timer(3, _vm->_timeout.procavalot_falls, _vm->_timeout.reason_falling_over);
/* _vm->_scrolls.display(^m^m^m^m^m^m^i^i^i^i^i^i^s'Z'^v);*/
- _vm->_gyro.alive = false;
+ _vm->_gyro->alive = false;
}
/* OK. There are two kinds of redraw: Major and Minor. Minor is what happens
@@ -1243,15 +1243,15 @@ void Lucerna::minor_redraw() {
byte fv;
dusk();
- enterroom(_vm->_gyro.dna.room, 0); /* Ped unknown or non-existant. */
+ enterroom(_vm->_gyro->dna.room, 0); /* Ped unknown or non-existant. */
for (fv = 0; fv <= 1; fv ++) {
- _vm->_gyro.cp = 1 - _vm->_gyro.cp;
+ _vm->_gyro->cp = 1 - _vm->_gyro->cp;
_vm->_trip.getback();
}
for (byte i = 0; i < 3; i++)
- _vm->_gyro.lastscore[i] = -1; /* impossible digits */
+ _vm->_gyro->lastscore[i] = -1; /* impossible digits */
showscore();
dawn();
@@ -1267,7 +1267,7 @@ uint16 Lucerna::bearing(byte whichped) {
uint16 bearing_result;
{
- pedtype &with = _vm->_gyro.peds[whichped];
+ pedtype &with = _vm->_gyro->peds[whichped];
if (_vm->_trip.tr[1].x == with.x)
bearing_result = 0; /* This would cause a division by zero if we let it through. */
else {
@@ -1290,7 +1290,7 @@ void Lucerna::sprite_run() {
make the sprites the same on both pages. */
byte fv;
- _vm->_gyro.doing_sprite_run = true;
+ _vm->_gyro->doing_sprite_run = true;
for (fv = 0; fv <= 1; fv ++) {
_vm->_trip.get_back_loretta();
@@ -1299,13 +1299,13 @@ void Lucerna::sprite_run() {
flip_page();
}
- _vm->_gyro.doing_sprite_run = false;
+ _vm->_gyro->doing_sprite_run = false;
}
void Lucerna::fix_flashers() {
- _vm->_gyro.ledstatus = 177;
- _vm->_gyro.oldrw = 177;
+ _vm->_gyro->ledstatus = 177;
+ _vm->_gyro->oldrw = 177;
_vm->_scrolls.state(2);
showrw();
}
diff --git a/engines/avalanche/pingo2.cpp b/engines/avalanche/pingo2.cpp
index 7a468d4e41..1f7c35eea6 100644
--- a/engines/avalanche/pingo2.cpp
+++ b/engines/avalanche/pingo2.cpp
@@ -136,7 +136,7 @@ void Pingo::winning_pic() {
_vm->_lucerna.dawn();
/*do {
- _vm->_gyro.check();
+ _vm->_gyro->check();
} while (!(keypressed() || (mrelease > 0)));
while (keypressed()) r = readkey();
major_redraw();*/
diff --git a/engines/avalanche/scrolls2.cpp b/engines/avalanche/scrolls2.cpp
index 35ae4fc401..b0563c68a1 100644
--- a/engines/avalanche/scrolls2.cpp
+++ b/engines/avalanche/scrolls2.cpp
@@ -59,7 +59,7 @@ void Scrolls::init() {
void Scrolls::state(byte x) { /* Sets "Ready" light to whatever */
byte page_;
- if (_vm->_gyro.ledstatus == x)
+ if (_vm->_gyro->ledstatus == x)
return; /* Already like that! */
byte color;
@@ -90,12 +90,12 @@ void Scrolls::state(byte x) { /* Sets "Ready" light to whatever */
//}
warning("STUB: Scrolls::state()");
- _vm->_gyro.super_off();
+ _vm->_gyro->super_off();
_vm->_graphics->drawBar(419, 195, 438, 197, color);
- _vm->_gyro.super_on();
- _vm->_gyro.ledstatus = x;
+ _vm->_gyro->super_on();
+ _vm->_gyro->ledstatus = x;
}
void Scrolls::easteregg() {
@@ -130,7 +130,7 @@ bool Scrolls::they_match(tunetype &played) {
mistakes = 0;
for (fv = 1; fv <= sizeof(played); fv ++)
- if (played[fv] != _vm->_gyro.tune[fv]) {
+ if (played[fv] != _vm->_gyro->tune[fv]) {
mistakes += 1;
}
@@ -144,32 +144,32 @@ void Scrolls::music_scroll() {
/* ThatsAll, so put us back to */ /*$F-*/
void Scrolls::resetscrolldriver() { /* phew */
- _vm->_gyro.scrollbells = 0;
+ _vm->_gyro->scrollbells = 0;
cfont = roman;
_vm->_logger.log_epsonroman();
use_icon = 0;
- _vm->_gyro.interrogation = 0; /* always reset after a scroll comes up. */
+ _vm->_gyro->interrogation = 0; /* always reset after a scroll comes up. */
}
void Scrolls::dingdongbell() { /* Pussy's in the well. Who put her in? Little... */
byte fv;
- for (fv = 1; fv <= _vm->_gyro.scrollbells; fv ++) _vm->_lucerna.errorled(); /* ring the bell "x" times */
+ for (fv = 1; fv <= _vm->_gyro->scrollbells; fv ++) _vm->_lucerna.errorled(); /* ring the bell "x" times */
}
void Scrolls::dodgem() { /* This moves the mouse pointer off the scroll so that you can read it. */
- _vm->_gyro.xycheck(); /* Mx & my now contain xy pos of mouse */
- dodgex = _vm->_gyro.mx;
- dodgey = _vm->_gyro.my; /* Store 'em */
- _vm->_gyro.hopto(dodgex, _vm->_gyro.underscroll); /* Move the pointer off the scroll. */
+ _vm->_gyro->xycheck(); /* Mx & my now contain xy pos of mouse */
+ dodgex = _vm->_gyro->mx;
+ dodgey = _vm->_gyro->my; /* Store 'em */
+ _vm->_gyro->hopto(dodgex, _vm->_gyro->underscroll); /* Move the pointer off the scroll. */
}
void Scrolls::undodgem() { /* This is the opposite of Dodgem. It moves the
mouse pointer back, IF you haven't moved it in the meantime. */
- _vm->_gyro.xycheck();
- if ((_vm->_gyro.mx == dodgex) && (_vm->_gyro.my == _vm->_gyro.underscroll))
+ _vm->_gyro->xycheck();
+ if ((_vm->_gyro->mx == dodgex) && (_vm->_gyro->my == _vm->_gyro->underscroll))
/* No change, so restore the pointer's original position. */
- _vm->_gyro.hopto(dodgex, dodgey);
+ _vm->_gyro->hopto(dodgex, dodgey);
}
void Scrolls::geticon(int16 x, int16 y, byte which) {
@@ -200,7 +200,7 @@ void Scrolls::block_drop(Common::String fn, int16 xl, int16 yl, int16 y) {
int16 fv;
uint16 st;
- st = (y - 1) * 80 + (40 - xl / 2) + ((1 - _vm->_gyro.cp) * _vm->_gyro.pagetop);
+ st = (y - 1) * 80 + (40 - xl / 2) + ((1 - _vm->_gyro->cp) * _vm->_gyro->pagetop);
Common::String filename;
filename = filename.format("%s.avd", fn.c_str());
@@ -237,35 +237,35 @@ bool Scrolls::ask(Common::String question) {
}
void Scrolls::resetscroll() {
- _vm->_gyro.scrolln = 1;
+ _vm->_gyro->scrolln = 1;
for (int j = 0; j < 15; j ++)
- for (int i = 0; i < _vm->_gyro.scroll[j].size(); i++)
- _vm->_gyro.scroll[j].setChar(0, i);
+ for (int i = 0; i < _vm->_gyro->scroll[j].size(); i++)
+ _vm->_gyro->scroll[j].setChar(0, i);
}
void Scrolls::natural() { /* Natural state of bubbles */
- _vm->_gyro.talkx = 320;
- _vm->_gyro.talky = 200;
- _vm->_gyro.talkb = 8;
- _vm->_gyro.talkf = 15;
+ _vm->_gyro->talkx = 320;
+ _vm->_gyro->talky = 200;
+ _vm->_gyro->talkb = 8;
+ _vm->_gyro->talkf = 15;
}
Common::String Scrolls::lsd() {
Common::String x;
Common::String lsd_result;
- if (_vm->_gyro.dna.pence < 12) {
+ if (_vm->_gyro->dna.pence < 12) {
/* just pence */
- x = _vm->_gyro.strf(_vm->_gyro.dna.pence) + 'd';
- } else if (_vm->_gyro.dna.pence < 240) {
+ x = _vm->_gyro->strf(_vm->_gyro->dna.pence) + 'd';
+ } else if (_vm->_gyro->dna.pence < 240) {
/* shillings & pence */
- x = _vm->_gyro.strf(_vm->_gyro.dna.pence / int32(12)) + '/';
- if ((_vm->_gyro.dna.pence % int32(12)) == 0) x = x + '-';
- else x = x + _vm->_gyro.strf(_vm->_gyro.dna.pence % int32(12));
+ x = _vm->_gyro->strf(_vm->_gyro->dna.pence / int32(12)) + '/';
+ if ((_vm->_gyro->dna.pence % int32(12)) == 0) x = x + '-';
+ else x = x + _vm->_gyro->strf(_vm->_gyro->dna.pence % int32(12));
} else /* L, s & d */
- x = Common::String('œ') + _vm->_gyro.strf(_vm->_gyro.dna.pence / int32(240)) + '.' + _vm->_gyro.strf((_vm->_gyro.dna.pence / int32(12)) % int32(20))
- + '.' + _vm->_gyro.strf(_vm->_gyro.dna.pence % int32(12));
- if (_vm->_gyro.dna.pence > 12) x = x + " (that's " + _vm->_gyro.strf(_vm->_gyro.dna.pence) + "d)";
+ x = Common::String('œ') + _vm->_gyro->strf(_vm->_gyro->dna.pence / int32(240)) + '.' + _vm->_gyro->strf((_vm->_gyro->dna.pence / int32(12)) % int32(20))
+ + '.' + _vm->_gyro->strf(_vm->_gyro->dna.pence % int32(12));
+ if (_vm->_gyro->dna.pence > 12) x = x + " (that's " + _vm->_gyro->strf(_vm->_gyro->dna.pence) + "d)";
lsd_result = x;
return lsd_result;
}
@@ -286,8 +286,8 @@ void Scrolls::calldrivers() {
}
void Scrolls::display(Common::String z) {
- _vm->_gyro.bufsize = z.size();
- memcpy(_vm->_gyro.buffer, z.c_str() + 1, _vm->_gyro.bufsize);
+ _vm->_gyro->bufsize = z.size();
+ memcpy(_vm->_gyro->buffer, z.c_str() + 1, _vm->_gyro->bufsize);
calldrivers();
}
@@ -315,7 +315,7 @@ void Scrolls::loadfont() {
return;
}
for (int16 i = 0; i < 256; i++)
- f.read(_vm->_gyro.little[i],16);
+ f.read(_vm->_gyro->little[i],16);
f.close();
}
@@ -331,15 +331,15 @@ void Scrolls::musical_scroll() {
_vm->_lucerna.sprite_run();
- was_virtual = _vm->_gyro.visible == _vm->_gyro.m_virtual;
+ was_virtual = _vm->_gyro->visible == _vm->_gyro->m_virtual;
if (was_virtual)
- _vm->_gyro.off_virtual();
+ _vm->_gyro->off_virtual();
drawscroll(&Avalanche::Scrolls::music_scroll);
if (was_virtual)
- _vm->_gyro.on_virtual();
+ _vm->_gyro->on_virtual();
resetscroll();
}
diff --git a/engines/avalanche/sequence2.cpp b/engines/avalanche/sequence2.cpp
index f3ba72ad62..61198d297a 100644
--- a/engines/avalanche/sequence2.cpp
+++ b/engines/avalanche/sequence2.cpp
@@ -66,8 +66,8 @@ void Sequence::then_show(byte what) {
void Sequence::then_flip(byte where, byte ped) {
then_show(now_flip);
- _vm->_gyro.dna.flip_to_where = where;
- _vm->_gyro.dna.flip_to_ped = ped;
+ _vm->_gyro->dna.flip_to_where = where;
+ _vm->_gyro->dna.flip_to_ped = ped;
}
void Sequence::start_to_close() {
@@ -76,7 +76,7 @@ void Sequence::start_to_close() {
}
void Sequence::start_to_open() {
- _vm->_gyro.dna.user_moves_avvy = false; /* They can't move. */
+ _vm->_gyro->dna.user_moves_avvy = false; /* They can't move. */
_vm->_trip.stopwalking(); /* And they're not moving now. */
start_to_close(); /* Apart from that, it's the same thing. */
}
@@ -94,8 +94,8 @@ void Sequence::call_sequencer() {
return;
break; /* No more routines. */
case 177:
- _vm->_gyro.dna.user_moves_avvy = true;
- _vm->_trip.fliproom(_vm->_gyro.dna.flip_to_where, _vm->_gyro.dna.flip_to_ped); /* 177 = Flip room. */
+ _vm->_gyro->dna.user_moves_avvy = true;
+ _vm->_trip.fliproom(_vm->_gyro->dna.flip_to_where, _vm->_gyro->dna.flip_to_ped); /* 177 = Flip room. */
if (seq[0] == 177)
shove_left();
break;
diff --git a/engines/avalanche/timeout2.cpp b/engines/avalanche/timeout2.cpp
index 623bb75e30..b10c1c18d6 100644
--- a/engines/avalanche/timeout2.cpp
+++ b/engines/avalanche/timeout2.cpp
@@ -73,7 +73,7 @@ void Timeout::set_up_timer(int32 howlong, byte whither, byte why) {
}
void Timeout::one_tick() {
- if (_vm->_gyro.ddmnow)
+ if (_vm->_gyro->ddmnow)
return;
for (fv = 1; fv <= 7; fv++) {
@@ -210,8 +210,8 @@ void Timeout::one_tick() {
}
}
}
- _vm->_gyro.roomtime += 1; /* Cycles since you've been in this room. */
- _vm->_gyro.dna.total_time += 1; /* Total amount of time for this game. */
+ _vm->_gyro->roomtime += 1; /* Cycles since you've been in this room. */
+ _vm->_gyro->dna.total_time += 1; /* Total amount of time for this game. */
}
void Timeout::lose_timer(byte which) {
@@ -240,11 +240,11 @@ end;*/
/* Timeout procedures: */
void Timeout::open_drawbridge() {
- _vm->_gyro.dna.drawbridge_open++;
- _vm->_celer.show_one(_vm->_gyro.dna.drawbridge_open - 1);
+ _vm->_gyro->dna.drawbridge_open++;
+ _vm->_celer.show_one(_vm->_gyro->dna.drawbridge_open - 1);
- if (_vm->_gyro.dna.drawbridge_open == 4)
- _vm->_gyro.magics[2].op = _vm->_gyro.nix; /* You may enter the drawbridge. */
+ if (_vm->_gyro->dna.drawbridge_open == 4)
+ _vm->_gyro->magics[2].op = _vm->_gyro->nix; /* You may enter the drawbridge. */
else
set_up_timer(7, procopen_drawbridge, reason_drawbridgefalls);
}
@@ -252,10 +252,10 @@ void Timeout::open_drawbridge() {
/* --- */
void Timeout::avaricius_talks() {
- _vm->_visa.dixi('q', _vm->_gyro.dna.avaricius_talk);
- _vm->_gyro.dna.avaricius_talk++;
+ _vm->_visa.dixi('q', _vm->_gyro->dna.avaricius_talk);
+ _vm->_gyro->dna.avaricius_talk++;
- if (_vm->_gyro.dna.avaricius_talk < 17)
+ if (_vm->_gyro->dna.avaricius_talk < 17)
set_up_timer(177, procavaricius_talks, reason_avariciustalks);
else
_vm->_lucerna.points(3);
@@ -282,25 +282,25 @@ void Timeout::bang2() {
}
void Timeout::stairs() {
- _vm->_gyro.blip();
+ _vm->_gyro->blip();
_vm->_trip.tr[0].walkto(4);
_vm->_celer.show_one(2);
- _vm->_gyro.dna.brummie_stairs = 2;
- _vm->_gyro.magics[11].op = _vm->_gyro.special;
- _vm->_gyro.magics[11].data = 2; /* Reached the bottom of the stairs. */
- _vm->_gyro.magics[4].op = _vm->_gyro.nix; /* Stop them hitting the sides (or the game will hang.) */
+ _vm->_gyro->dna.brummie_stairs = 2;
+ _vm->_gyro->magics[11].op = _vm->_gyro->special;
+ _vm->_gyro->magics[11].data = 2; /* Reached the bottom of the stairs. */
+ _vm->_gyro->magics[4].op = _vm->_gyro->nix; /* Stop them hitting the sides (or the game will hang.) */
}
void Timeout::cardiff_survey() {
- switch (_vm->_gyro.dna.cardiff_things) {
+ switch (_vm->_gyro->dna.cardiff_things) {
case 0:
- _vm->_gyro.dna.cardiff_things += 1;
+ _vm->_gyro->dna.cardiff_things += 1;
_vm->_visa.dixi('q', 27);
break;
}
- _vm->_visa.dixi('z', _vm->_gyro.dna.cardiff_things);
+ _vm->_visa.dixi('z', _vm->_gyro->dna.cardiff_things);
- _vm->_gyro.interrogation = _vm->_gyro.dna.cardiff_things;
+ _vm->_gyro->interrogation = _vm->_gyro->dna.cardiff_things;
set_up_timer(182, proccardiffsurvey, reason_cardiffsurvey);
}
@@ -315,8 +315,8 @@ void Timeout::cwytalot_in_herts() {
void Timeout::get_tied_up() {
_vm->_visa.dixi('q', 34); /* ...Trouble! */
- _vm->_gyro.dna.user_moves_avvy = false;
- _vm->_gyro.dna.been_tied_up = true;
+ _vm->_gyro->dna.user_moves_avvy = false;
+ _vm->_gyro->dna.been_tied_up = true;
_vm->_trip.stopwalking();
_vm->_trip.tr[2].stopwalk();
_vm->_trip.tr[2].stophoming();
@@ -328,14 +328,14 @@ void Timeout::get_tied_up() {
void Timeout::get_tied_up2() {
_vm->_trip.tr[1].walkto(4);
_vm->_trip.tr[2].walkto(5);
- _vm->_gyro.magics[4].op = _vm->_gyro.nix; /* No effect when you touch the boundaries. */
- _vm->_gyro.dna.friar_will_tie_you_up = true;
+ _vm->_gyro->magics[4].op = _vm->_gyro->nix; /* No effect when you touch the boundaries. */
+ _vm->_gyro->dna.friar_will_tie_you_up = true;
}
void Timeout::hang_around() {
_vm->_trip.tr[2].check_me = false;
_vm->_trip.tr[1].init(7, true, &_vm->_trip); /* Robin Hood */
- _vm->_gyro.whereis[_vm->_gyro.probinhood] = r__robins;
+ _vm->_gyro->whereis[_vm->_gyro->probinhood] = r__robins;
_vm->_trip.apped(1, 2);
_vm->_visa.dixi('q', 39);
_vm->_trip.tr[1].walkto(7);
@@ -346,7 +346,7 @@ void Timeout::hang_around2() {
_vm->_visa.dixi('q', 40);
_vm->_trip.tr[2].vanishifstill = false;
_vm->_trip.tr[2].walkto(4);
- _vm->_gyro.whereis[_vm->_gyro.pfriartuck] = r__robins;
+ _vm->_gyro->whereis[_vm->_gyro->pfriartuck] = r__robins;
_vm->_visa.dixi('q', 41);
_vm->_trip.tr[1].done();
_vm->_trip.tr[2].done(); /* Get rid of Robin Hood and Friar Tuck. */
@@ -354,7 +354,7 @@ void Timeout::hang_around2() {
set_up_timer(1, procafter_the_shootemup, reason_hanging_around);
/* Immediately call the following proc (when you have a chance). */
- _vm->_gyro.dna.tied_up = false;
+ _vm->_gyro->dna.tied_up = false;
_vm->_enid.back_to_bootstrap(1); /* Call the shoot-'em-up. */
}
@@ -364,9 +364,9 @@ void Timeout::after_the_shootemup() {
}
void Timeout::jacques_wakes_up() {
- _vm->_gyro.dna.jacques_awake += 1;
+ _vm->_gyro->dna.jacques_awake += 1;
- switch (_vm->_gyro.dna.jacques_awake) { /* Additional pictures. */
+ switch (_vm->_gyro->dna.jacques_awake) { /* Additional pictures. */
case 1 :
_vm->_celer.show_one(1); /* Eyes open. */
_vm->_visa.dixi('Q', 45);
@@ -374,23 +374,23 @@ void Timeout::jacques_wakes_up() {
case 2 : /* Going through the door. */
_vm->_celer.show_one(2); /* Not on the floor. */
_vm->_celer.show_one(3); /* But going through the door. */
- _vm->_gyro.magics[6].op = _vm->_gyro.nix; /* You can't wake him up now. */
+ _vm->_gyro->magics[6].op = _vm->_gyro->nix; /* You can't wake him up now. */
break;
case 3 : /* Gone through the door. */
_vm->_celer.show_one(2); /* Not on the floor, either. */
_vm->_celer.show_one(4); /* He's gone... so the door's open. */
- _vm->_gyro.whereis[_vm->_gyro.pjacques] = 0; /* Gone! */
+ _vm->_gyro->whereis[_vm->_gyro->pjacques] = 0; /* Gone! */
break;
}
- if (_vm->_gyro.dna.jacques_awake == 5) {
- _vm->_gyro.dna.ringing_bells = true;
- _vm->_gyro.dna.ayles_is_awake = true;
+ if (_vm->_gyro->dna.jacques_awake == 5) {
+ _vm->_gyro->dna.ringing_bells = true;
+ _vm->_gyro->dna.ayles_is_awake = true;
_vm->_lucerna.points(2);
}
- switch (_vm->_gyro.dna.jacques_awake) {
+ switch (_vm->_gyro->dna.jacques_awake) {
case 1:
case 2:
case 3:
@@ -431,7 +431,7 @@ void Timeout::naughty_duke3() {
}
void Timeout::jump() {
- dnatype &with = _vm->_gyro.dna;
+ dnatype &with = _vm->_gyro->dna;
with.jumpstatus += 1;
@@ -457,24 +457,24 @@ void Timeout::jump() {
if (with.jumpstatus == 20) {
/* End of jump. */
- _vm->_gyro.dna.user_moves_avvy = true;
- _vm->_gyro.dna.jumpstatus = 0;
+ _vm->_gyro->dna.user_moves_avvy = true;
+ _vm->_gyro->dna.jumpstatus = 0;
} else {
/* Still jumping. */
set_up_timer(1, procjump, reason_jumping);
}
if ((with.jumpstatus == 10) /* You're at the highest point of your jump. */
- && (_vm->_gyro.dna.room == r__insidecardiffcastle)
- && (_vm->_gyro.dna.arrow_in_the_door == true)
+ && (_vm->_gyro->dna.room == r__insidecardiffcastle)
+ && (_vm->_gyro->dna.arrow_in_the_door == true)
&& (_vm->_trip.infield(3))) { /* beside the wall*/
/* Grab the arrow! */
- if (_vm->_gyro.dna.carrying >= maxobjs)
+ if (_vm->_gyro->dna.carrying >= maxobjs)
_vm->_scrolls.display("You fail to grab it, because your hands are full.");
else {
_vm->_celer.show_one(2);
- _vm->_gyro.dna.arrow_in_the_door = false; /* You've got it. */
- _vm->_gyro.dna.obj[_vm->_gyro.bolt] = true;
+ _vm->_gyro->dna.arrow_in_the_door = false; /* You've got it. */
+ _vm->_gyro->dna.obj[_vm->_gyro->bolt] = true;
_vm->_lucerna.objectlist();
_vm->_visa.dixi('q', 50);
_vm->_lucerna.points(3);
@@ -484,32 +484,32 @@ void Timeout::jump() {
void Timeout::crapulus_says_splud_out() {
_vm->_visa.dixi('q', 56);
- _vm->_gyro.dna.crapulus_will_tell = false;
+ _vm->_gyro->dna.crapulus_will_tell = false;
}
void Timeout::buydrinks() {
_vm->_celer.show_one(11); /* Malagauche gets up again. */
- _vm->_gyro.dna.malagauche = 0;
+ _vm->_gyro->dna.malagauche = 0;
- _vm->_visa.dixi('D', _vm->_gyro.dna.drinking); /* _vm->_scrolls.display message about it. */
+ _vm->_visa.dixi('D', _vm->_gyro->dna.drinking); /* _vm->_scrolls.display message about it. */
_vm->_pingo.wobble(); /* Do the special effects. */
_vm->_visa.dixi('D', 1); /* That'll be thruppence. */
- if (_vm->_gyro.pennycheck(3)) /* Pay 3d. */
+ if (_vm->_gyro->pennycheck(3)) /* Pay 3d. */
_vm->_visa.dixi('D', 3); /* Tell 'em you paid up. */
_vm->_acci.have_a_drink();
}
void Timeout::buywine() {
_vm->_celer.show_one(11); /* Malagauche gets up again. */
- _vm->_gyro.dna.malagauche = 0;
+ _vm->_gyro->dna.malagauche = 0;
_vm->_visa.dixi('D', 50); /* You buy the wine. */
_vm->_visa.dixi('D', 1); /* It'll be thruppence. */
- if (_vm->_gyro.pennycheck(3)) {
+ if (_vm->_gyro->pennycheck(3)) {
_vm->_visa.dixi('D', 4); /* You paid up. */
- _vm->_gyro.dna.obj[_vm->_gyro.wine] = true;
+ _vm->_gyro->dna.obj[_vm->_gyro->wine] = true;
_vm->_lucerna.objectlist();
- _vm->_gyro.dna.winestate = 1; /* OK Wine */
+ _vm->_gyro->dna.winestate = 1; /* OK Wine */
}
}
@@ -520,23 +520,23 @@ void Timeout::callsguards() {
void Timeout::greetsmonk() {
_vm->_visa.dixi('Q', 59);
- _vm->_gyro.dna.entered_lusties_room_as_monk = true;
+ _vm->_gyro->dna.entered_lusties_room_as_monk = true;
}
void Timeout::fall_down_oubliette() {
- _vm->_gyro.magics[9].op = _vm->_gyro.nix;
+ _vm->_gyro->magics[9].op = _vm->_gyro->nix;
_vm->_trip.tr[1].iy += 1; /* increments dx/dy! */
_vm->_trip.tr[1].y += _vm->_trip.tr[1].iy; /* Dowwwn we go... */
set_up_timer(3, procfall_down_oubliette, reason_falling_down_oubliette);
}
void Timeout::meet_avaroid() {
- if (_vm->_gyro.dna.met_avaroid) {
+ if (_vm->_gyro->dna.met_avaroid) {
_vm->_scrolls.display("You can't expect to be \6that\22 lucky twice in a row!");
_vm->_lucerna.gameover();
} else {
_vm->_visa.dixi('Q', 60);
- _vm->_gyro.dna.met_avaroid = true;
+ _vm->_gyro->dna.met_avaroid = true;
set_up_timer(1, procrise_up_oubliette, reason_rising_up_oubliette);
triptype &with = _vm->_trip.tr[1];
@@ -545,7 +545,7 @@ void Timeout::meet_avaroid() {
with.ix = -3;
with.iy = -5;
- _vm->_gyro.background(2);
+ _vm->_gyro->background(2);
}
}
@@ -558,7 +558,7 @@ void Timeout::rise_up_oubliette() {
if (with.iy > 0)
set_up_timer(3, procrise_up_oubliette, reason_rising_up_oubliette);
else
- _vm->_gyro.dna.user_moves_avvy = true;
+ _vm->_gyro->dna.user_moves_avvy = true;
}
void Timeout::robin_hood_and_geida() {
@@ -568,7 +568,7 @@ void Timeout::robin_hood_and_geida() {
_vm->_trip.tr[2].stopwalk();
_vm->_trip.tr[2].face = _vm->_trip.left;
set_up_timer(20, procrobin_hood_and_geida_talk, reason_robin_hood_and_geida);
- _vm->_gyro.dna.geida_follows = false;
+ _vm->_gyro->dna.geida_follows = false;
}
void Timeout::robin_hood_and_geida_talk() {
@@ -586,7 +586,7 @@ void Timeout::avalot_returns() {
_vm->_trip.tr[1].init(0, true, &_vm->_trip);
_vm->_trip.apped(1, 1);
_vm->_visa.dixi('q', 67);
- _vm->_gyro.dna.user_moves_avvy = true;
+ _vm->_gyro->dna.user_moves_avvy = true;
}
void Timeout::avvy_sit_down() {
@@ -596,8 +596,8 @@ void Timeout::avvy_sit_down() {
set_up_timer(1, procavvy_sit_down, reason_sitting_down);
else {
_vm->_celer.show_one(3);
- _vm->_gyro.dna.sitting_in_pub = true;
- _vm->_gyro.dna.user_moves_avvy = false;
+ _vm->_gyro->dna.sitting_in_pub = true;
+ _vm->_gyro->dna.user_moves_avvy = false;
_vm->_trip.tr[1].visible = false;
}
}
@@ -607,7 +607,7 @@ void Timeout::ghost_room_phew() {
}
void Timeout::arkata_shouts() {
- if (_vm->_gyro.dna.teetotal)
+ if (_vm->_gyro->dna.teetotal)
return;
_vm->_visa.dixi('q', 76);
@@ -620,10 +620,10 @@ void Timeout::winning() {
do {
_vm->_lucerna.checkclick();
- } while (!(_vm->_gyro.mrelease == 0));
+ } while (!(_vm->_gyro->mrelease == 0));
_vm->_lucerna.callverb(_vm->_acci.vb_score);
_vm->_scrolls.display(" T H E E N D ");
- _vm->_gyro.lmo = true;
+ _vm->_gyro->lmo = true;
}
void Timeout::avalot_falls() {
@@ -648,7 +648,7 @@ void Timeout::spludwick_leaves_cauldron() {
void Timeout::give_lute_to_geida() { /* Moved here from Acci. */
_vm->_visa.dixi('Q', 86);
_vm->_lucerna.points(4);
- _vm->_gyro.dna.lustie_is_asleep = true;
+ _vm->_gyro->dna.lustie_is_asleep = true;
_vm->_sequence.first_show(5);
_vm->_sequence.then_show(6); /* He falls asleep... */
_vm->_sequence.start_to_close(); /* Not really closing, but we're using the same procedure. */
diff --git a/engines/avalanche/trip6.cpp b/engines/avalanche/trip6.cpp
index f9e8faa1e2..00fac658ab 100644
--- a/engines/avalanche/trip6.cpp
+++ b/engines/avalanche/trip6.cpp
@@ -166,8 +166,8 @@ void triptype::turn(byte whichway) {
void triptype::appear(int16 wx, int16 wy, byte wf) {
x = (wx / 8) * 8;
y = wy;
- ox[_tr->_vm->_gyro.cp] = wx;
- oy[_tr->_vm->_gyro.cp] = wy;
+ ox[_tr->_vm->_gyro->cp] = wx;
+ oy[_tr->_vm->_gyro->cp] = wy;
turn(wf);
visible = true;
ix = 0;
@@ -199,12 +199,12 @@ void triptype::walk() {
r.x2 = ((x + _info.xl) / 8) + 1;
r.y2 = y + _info.yl + 2;
}
- _tr->getset[1 - _tr->_vm->_gyro.cp].remember(r);
+ _tr->getset[1 - _tr->_vm->_gyro->cp].remember(r);
}
- if (!_tr->_vm->_gyro.doing_sprite_run) {
- ox[_tr->_vm->_gyro.cp] = x;
- oy[_tr->_vm->_gyro.cp] = y;
+ if (!_tr->_vm->_gyro->doing_sprite_run) {
+ ox[_tr->_vm->_gyro->cp] = x;
+ oy[_tr->_vm->_gyro->cp] = y;
if (homing) homestep();
x = x + ix;
y = y + iy;
@@ -216,38 +216,38 @@ void triptype::walk() {
return;
}
- tc = _tr->checkfeet(x, x + _info.xl, oy[_tr->_vm->_gyro.cp], y, _info.yl);
+ tc = _tr->checkfeet(x, x + _info.xl, oy[_tr->_vm->_gyro->cp], y, _info.yl);
- if ((tc != 0) & (!_tr->_vm->_gyro.doing_sprite_run)) {
- switch (_tr->_vm->_gyro.magics[tc].op) {
- case _tr->_vm->_gyro.exclaim: {
+ if ((tc != 0) & (!_tr->_vm->_gyro->doing_sprite_run)) {
+ switch (_tr->_vm->_gyro->magics[tc].op) {
+ case _tr->_vm->_gyro->exclaim: {
bounce();
_tr->mustexclaim = true;
- _tr->saywhat = _tr->_vm->_gyro.magics[tc].data;
+ _tr->saywhat = _tr->_vm->_gyro->magics[tc].data;
}
break;
- case _tr->_vm->_gyro.bounces:
+ case _tr->_vm->_gyro->bounces:
bounce();
break;
- case _tr->_vm->_gyro.transport:
- _tr->fliproom(_tr->_vm->_gyro.magics[tc].data >> 8, _tr->_vm->_gyro.magics[tc].data & 0xff);
+ case _tr->_vm->_gyro->transport:
+ _tr->fliproom(_tr->_vm->_gyro->magics[tc].data >> 8, _tr->_vm->_gyro->magics[tc].data & 0xff);
break;
- case _tr->_vm->_gyro.unfinished: {
+ case _tr->_vm->_gyro->unfinished: {
bounce();
_tr->_vm->_scrolls.display("\7Sorry.\3\rThis place is not available yet!");
}
break;
- case _tr->_vm->_gyro.special:
- _tr->call_special(_tr->_vm->_gyro.magics[tc].data);
+ case _tr->_vm->_gyro->special:
+ _tr->call_special(_tr->_vm->_gyro->magics[tc].data);
break;
- case _tr->_vm->_gyro.mopendoor:
- _tr->open_the_door(_tr->_vm->_gyro.magics[tc].data >> 8, _tr->_vm->_gyro.magics[tc].data & 0xff, tc);
+ case _tr->_vm->_gyro->mopendoor:
+ _tr->open_the_door(_tr->_vm->_gyro->magics[tc].data >> 8, _tr->_vm->_gyro->magics[tc].data & 0xff, tc);
break;
}
}
}
- if (!_tr->_vm->_gyro.doing_sprite_run) {
+ if (!_tr->_vm->_gyro->doing_sprite_run) {
count += 1;
if (((ix != 0) || (iy != 0)) && (count > 1)) {
step += 1;
@@ -258,15 +258,15 @@ void triptype::walk() {
}
void triptype::bounce() {
- x = ox[_tr->_vm->_gyro.cp];
- y = oy[_tr->_vm->_gyro.cp];
+ x = ox[_tr->_vm->_gyro->cp];
+ y = oy[_tr->_vm->_gyro->cp];
if (check_me)
_tr->stopwalking();
else
stopwalk();
- _tr->_vm->_gyro.oncandopageswap = false;
+ _tr->_vm->_gyro->oncandopageswap = false;
_tr->_vm->_lucerna.showrw();
- _tr->_vm->_gyro.oncandopageswap = true;
+ _tr->_vm->_gyro->oncandopageswap = true;
}
int8 triptype::sgn(int16 x) {
@@ -281,9 +281,9 @@ int8 triptype::sgn(int16 x) {
}
void triptype::walkto(byte pednum) {
- speed(sgn(_tr->_vm->_gyro.peds[pednum].x - x) * 4, sgn(_tr->_vm->_gyro.peds[pednum].y - y));
- hx = _tr->_vm->_gyro.peds[pednum].x - _info.xl / 2;
- hy = _tr->_vm->_gyro.peds[pednum].y - _info.yl;
+ speed(sgn(_tr->_vm->_gyro->peds[pednum].x - x) * 4, sgn(_tr->_vm->_gyro->peds[pednum].y - y));
+ hx = _tr->_vm->_gyro->peds[pednum].x - _info.xl / 2;
+ hy = _tr->_vm->_gyro->peds[pednum].y - _info.yl;
homing = true;
}
@@ -347,10 +347,10 @@ void triptype::stopwalk() {
}
void triptype::chatter() {
- _tr->_vm->_gyro.talkx = x + _info.xl / 2;
- _tr->_vm->_gyro.talky = y;
- _tr->_vm->_gyro.talkf = a.fgc;
- _tr->_vm->_gyro.talkb = a.bgc;
+ _tr->_vm->_gyro->talkx = x + _info.xl / 2;
+ _tr->_vm->_gyro->talky = y;
+ _tr->_vm->_gyro->talkf = a.fgc;
+ _tr->_vm->_gyro->talkb = a.bgc;
}
void triptype::set_up_saver(trip_saver_type &v) {
@@ -535,8 +535,8 @@ void Trip::catamove(byte ped) {
- xy_uint16 = _vm->_gyro.dna.cat_x + _vm->_gyro.dna.cat_y * 256;
- _vm->_gyro.dna.geida_spin = 0;
+ xy_uint16 = _vm->_gyro->dna.cat_x + _vm->_gyro->dna.cat_y * 256;
+ _vm->_gyro->dna.geida_spin = 0;
switch (xy_uint16) {
case 1801: /* Exit catacombs */
@@ -553,78 +553,78 @@ void Trip::catamove(byte ped) {
case 2307:
fliproom(r__lusties, 5);
_vm->_scrolls.display("Oh no... here we go again...");
- _vm->_gyro.dna.user_moves_avvy = false;
+ _vm->_gyro->dna.user_moves_avvy = false;
tr[1].iy = 1;
tr[1].ix = 0;
return;
}
- if (!_vm->_gyro.dna.enter_catacombs_from_lusties_room)
+ if (!_vm->_gyro->dna.enter_catacombs_from_lusties_room)
_vm->_lucerna.load(29);
- here = _vm->_gyro.catamap[_vm->_gyro.dna.cat_y][_vm->_gyro.dna.cat_x];
+ here = _vm->_gyro->catamap[_vm->_gyro->dna.cat_y][_vm->_gyro->dna.cat_x];
switch (here & 0xf) { /* West. */
case 0: /* no connection (wall) */
- _vm->_gyro.magics[2].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[3].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[13].op = _vm->_gyro.nix; /* Door. */
+ _vm->_gyro->magics[2].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[3].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[13].op = _vm->_gyro->nix; /* Door. */
_vm->_celer.show_one(28);
break;
case 0x1: /* no connection (wall + shield), */
- _vm->_gyro.magics[2].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[3].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[13].op = _vm->_gyro.nix; /* Door. */
+ _vm->_gyro->magics[2].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[3].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[13].op = _vm->_gyro->nix; /* Door. */
_vm->_celer.show_one(28); /* Wall, plus... */
_vm->_celer.show_one(29); /* ...shield. */
break;
case 0x2: /* wall with door */
- _vm->_gyro.magics[2].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[3].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[13].op = _vm->_gyro.special; /* Door. */
+ _vm->_gyro->magics[2].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[3].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[13].op = _vm->_gyro->special; /* Door. */
_vm->_celer.show_one(28); /* Wall, plus... */
_vm->_celer.show_one(30); /* ...door. */
break;
case 0x3: /* wall with door and shield */
- _vm->_gyro.magics[2].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[3].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[13].op = _vm->_gyro.special; /* Door. */
+ _vm->_gyro->magics[2].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[3].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[13].op = _vm->_gyro->special; /* Door. */
_vm->_celer.show_one(28); /* Wall, plus... */
_vm->_celer.show_one(30); /* ...door, and... */
_vm->_celer.show_one(29); /* ...shield. */
break;
case 0x4: /* no connection (wall + window), */
- _vm->_gyro.magics[2].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[3].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[13].op = _vm->_gyro.nix; /* Door. */
+ _vm->_gyro->magics[2].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[3].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[13].op = _vm->_gyro->nix; /* Door. */
_vm->_celer.show_one(28); /* Wall, plus... */
_vm->_celer.show_one(5); /* ...window. */
break;
case 0x5: /* wall with door and window */
- _vm->_gyro.magics[2].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[3].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[13].op = _vm->_gyro.special; /* Door. */
+ _vm->_gyro->magics[2].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[3].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[13].op = _vm->_gyro->special; /* Door. */
_vm->_celer.show_one(28); /* Wall, plus... */
_vm->_celer.show_one(30); /* ...door, and... */
_vm->_celer.show_one(5); /* ...window. */
break;
case 0x6: /* no connection (wall + torches), */
- _vm->_gyro.magics[2].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[3].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[13].op = _vm->_gyro.nix; /* No door. */
+ _vm->_gyro->magics[2].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[3].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[13].op = _vm->_gyro->nix; /* No door. */
_vm->_celer.show_one(28); /* Wall, plus... */
_vm->_celer.show_one(7); /* ...torches. */
break;
case 0x7: /* wall with door and torches */
- _vm->_gyro.magics[2].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[3].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[13].op = _vm->_gyro.special; /* Door. */
+ _vm->_gyro->magics[2].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[3].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[13].op = _vm->_gyro->special; /* Door. */
_vm->_celer.show_one(28); /* Wall, plus... */
_vm->_celer.show_one(30); /* ...door, and... */
_vm->_celer.show_one(7); /* ...torches. */
break;
case 0xf: /* straight-through corridor. */
- _vm->_gyro.magics[2].op = _vm->_gyro.nix; /* Sloping wall. */
- _vm->_gyro.magics[3].op = _vm->_gyro.special; /* Straight wall. */
+ _vm->_gyro->magics[2].op = _vm->_gyro->nix; /* Sloping wall. */
+ _vm->_gyro->magics[3].op = _vm->_gyro->special; /* Straight wall. */
break;
}
@@ -632,52 +632,52 @@ void Trip::catamove(byte ped) {
switch ((here & 0xf0) >> 4) { /* East */
case 0: /* no connection (wall) */
- _vm->_gyro.magics[5].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[6].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[15].op = _vm->_gyro.nix; /* Door. */
+ _vm->_gyro->magics[5].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[6].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[15].op = _vm->_gyro->nix; /* Door. */
_vm->_celer.show_one(19);
break;
case 0x1: /* no connection (wall + window), */
- _vm->_gyro.magics[5].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[6].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[15].op = _vm->_gyro.nix; /* Door. */
+ _vm->_gyro->magics[5].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[6].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[15].op = _vm->_gyro->nix; /* Door. */
_vm->_celer.show_one(19); /* Wall, plus... */
_vm->_celer.show_one(20); /* ...window. */
break;
case 0x2: /* wall with door */
- _vm->_gyro.magics[5].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[6].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[15].op = _vm->_gyro.special; /* Door. */
+ _vm->_gyro->magics[5].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[6].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[15].op = _vm->_gyro->special; /* Door. */
_vm->_celer.show_one(19); /* Wall, plus... */
_vm->_celer.show_one(21); /* ...door. */
break;
case 0x3: /* wall with door and window */
- _vm->_gyro.magics[5].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[6].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[15].op = _vm->_gyro.special; /* Door. */
+ _vm->_gyro->magics[5].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[6].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[15].op = _vm->_gyro->special; /* Door. */
_vm->_celer.show_one(19); /* Wall, plus... */
_vm->_celer.show_one(20); /* ...door, and... */
_vm->_celer.show_one(21); /* ...window. */
break;
case 0x6: /* no connection (wall + torches), */
- _vm->_gyro.magics[5].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[6].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[15].op = _vm->_gyro.nix; /* No door. */
+ _vm->_gyro->magics[5].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[6].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[15].op = _vm->_gyro->nix; /* No door. */
_vm->_celer.show_one(19); /* Wall, plus... */
_vm->_celer.show_one(18); /* ...torches. */
break;
case 0x7: /* wall with door and torches */
- _vm->_gyro.magics[5].op = _vm->_gyro.bounces; /* Sloping wall. */
- _vm->_gyro.magics[6].op = _vm->_gyro.nix; /* Straight wall. */
- _vm->_gyro.portals[15].op = _vm->_gyro.special; /* Door. */
+ _vm->_gyro->magics[5].op = _vm->_gyro->bounces; /* Sloping wall. */
+ _vm->_gyro->magics[6].op = _vm->_gyro->nix; /* Straight wall. */
+ _vm->_gyro->portals[15].op = _vm->_gyro->special; /* Door. */
_vm->_celer.show_one(19); /* Wall, plus... */
_vm->_celer.show_one(21); /* ...door, and... */
_vm->_celer.show_one(18); /* ...torches. */
break;
case 0xf: /* straight-through corridor. */
- _vm->_gyro.magics[5].op = _vm->_gyro.nix; /* Sloping wall. */
- _vm->_gyro.magics[6].op = _vm->_gyro.special; /* Straight wall. */
- _vm->_gyro.portals[15].op = _vm->_gyro.nix; /* Door. */
+ _vm->_gyro->magics[5].op = _vm->_gyro->nix; /* Sloping wall. */
+ _vm->_gyro->magics[6].op = _vm->_gyro->special; /* Straight wall. */
+ _vm->_gyro->portals[15].op = _vm->_gyro->nix; /* Door. */
break;
}
@@ -685,75 +685,75 @@ void Trip::catamove(byte ped) {
switch ((here & 0xf00) >> 8) { /* South */
case 0: /* No connection. */
- _vm->_gyro.magics[7].op = _vm->_gyro.bounces;
- _vm->_gyro.magics[12].op = _vm->_gyro.bounces;
- _vm->_gyro.magics[13].op = _vm->_gyro.bounces;
+ _vm->_gyro->magics[7].op = _vm->_gyro->bounces;
+ _vm->_gyro->magics[12].op = _vm->_gyro->bounces;
+ _vm->_gyro->magics[13].op = _vm->_gyro->bounces;
break;
case 0x1:
_vm->_celer.show_one(22);
- if ((xy_uint16 == 2051) & (_vm->_gyro.dna.geida_follows))
- _vm->_gyro.magics[13].op = _vm->_gyro.exclaim;
+ if ((xy_uint16 == 2051) & (_vm->_gyro->dna.geida_follows))
+ _vm->_gyro->magics[13].op = _vm->_gyro->exclaim;
else
- _vm->_gyro.magics[13].op = _vm->_gyro.special; /* Right exit south. */
+ _vm->_gyro->magics[13].op = _vm->_gyro->special; /* Right exit south. */
- _vm->_gyro.magics[7].op = _vm->_gyro.bounces;
- _vm->_gyro.magics[12].op = _vm->_gyro.bounces;
+ _vm->_gyro->magics[7].op = _vm->_gyro->bounces;
+ _vm->_gyro->magics[12].op = _vm->_gyro->bounces;
break;
case 0x2:
_vm->_celer.show_one(23);
- _vm->_gyro.magics[7].op = _vm->_gyro.special; /* Middle exit south. */
- _vm->_gyro.magics[12].op = _vm->_gyro.bounces;
- _vm->_gyro.magics[13].op = _vm->_gyro.bounces;
+ _vm->_gyro->magics[7].op = _vm->_gyro->special; /* Middle exit south. */
+ _vm->_gyro->magics[12].op = _vm->_gyro->bounces;
+ _vm->_gyro->magics[13].op = _vm->_gyro->bounces;
break;
case 0x3:
_vm->_celer.show_one(24);
- _vm->_gyro.magics[12].op = _vm->_gyro.special; /* Left exit south. */
- _vm->_gyro.magics[7].op = _vm->_gyro.bounces;
- _vm->_gyro.magics[13].op = _vm->_gyro.bounces;
+ _vm->_gyro->magics[12].op = _vm->_gyro->special; /* Left exit south. */
+ _vm->_gyro->magics[7].op = _vm->_gyro->bounces;
+ _vm->_gyro->magics[13].op = _vm->_gyro->bounces;
break;
}
switch ((here & 0xf000) >> 12) { /* North */
case 0: /* No connection */
- _vm->_gyro.magics[1].op = _vm->_gyro.bounces;
- _vm->_gyro.portals[12].op = _vm->_gyro.nix; /* Door. */
+ _vm->_gyro->magics[1].op = _vm->_gyro->bounces;
+ _vm->_gyro->portals[12].op = _vm->_gyro->nix; /* Door. */
break;
// LEFT handles:
/*
case 0x1:
_vm->_celer.show_one(4);
- _vm->_gyro.magics[1].op = _vm->_gyro.bounces; // { Left exit north. } { Change magic number! }
- _vm->_gyro.portals[12].op = _vm->_gyro.special; // { Door. }
+ _vm->_gyro->magics[1].op = _vm->_gyro->bounces; // { Left exit north. } { Change magic number! }
+ _vm->_gyro->portals[12].op = _vm->_gyro->special; // { Door. }
break;
*/
case 0x2:
_vm->_celer.show_one(4);
- _vm->_gyro.magics[1].op = _vm->_gyro.bounces; // Middle exit north.
- _vm->_gyro.portals[12].op = _vm->_gyro.special; // Door.
+ _vm->_gyro->magics[1].op = _vm->_gyro->bounces; // Middle exit north.
+ _vm->_gyro->portals[12].op = _vm->_gyro->special; // Door.
break;
/* case 0x3:
_vm->_celer.show_one(4);
- _vm->_gyro.magics[1].op = _vm->_gyro.bounces; // { Right exit north. } { Change magic number! }
- _vm->_gyro.portals[12].op = _vm->_gyro.special; // { Door. }
+ _vm->_gyro->magics[1].op = _vm->_gyro->bounces; // { Right exit north. } { Change magic number! }
+ _vm->_gyro->portals[12].op = _vm->_gyro->special; // { Door. }
break;
// RIGHT handles:
case 0x4:
_vm->_celer.show_one(3);
- _vm->_gyro.magics[1].op = _vm->_gyro.bounces; // { Left exit north. } { Change magic number! }
- _vm->_gyro.portals[12].op = _vm->_gyro.special; // { Door. }
+ _vm->_gyro->magics[1].op = _vm->_gyro->bounces; // { Left exit north. } { Change magic number! }
+ _vm->_gyro->portals[12].op = _vm->_gyro->special; // { Door. }
break;
*/
case 0x5:
_vm->_celer.show_one(3);
- _vm->_gyro.magics[1].op = _vm->_gyro.bounces; /* Middle exit north. */
- _vm->_gyro.portals[12].op = _vm->_gyro.special; /* Door. */
+ _vm->_gyro->magics[1].op = _vm->_gyro->bounces; /* Middle exit north. */
+ _vm->_gyro->portals[12].op = _vm->_gyro->special; /* Door. */
break;
/*
case 0x6:
_vm->_celer.show_one(3);
- _vm->_gyro.magics[1].op = _vm->_gyro.bounces; // { Right exit north. }
- _vm->_gyro.portals[12].op = _vm->_gyro.special; // { Door. }
+ _vm->_gyro->magics[1].op = _vm->_gyro->bounces; // { Right exit north. }
+ _vm->_gyro->portals[12].op = _vm->_gyro->special; // { Door. }
break;
*/
// ARCHWAYS:
@@ -767,26 +767,26 @@ void Trip::catamove(byte ped) {
if (((here & 0xf000) >> 12) == 0x9)
_vm->_celer.show_one(32);
- _vm->_gyro.magics[1].op = _vm->_gyro.special; /* Middle arch north. */
- _vm->_gyro.portals[12].op = _vm->_gyro.nix; /* Door. */
+ _vm->_gyro->magics[1].op = _vm->_gyro->special; /* Middle arch north. */
+ _vm->_gyro->portals[12].op = _vm->_gyro->nix; /* Door. */
}
break;
/* DECORATIONS: */
case 0xd: /* No connection + WINDOW */
- _vm->_gyro.magics[1].op = _vm->_gyro.bounces;
- _vm->_gyro.portals[12].op = _vm->_gyro.nix; /* Door. */
+ _vm->_gyro->magics[1].op = _vm->_gyro->bounces;
+ _vm->_gyro->portals[12].op = _vm->_gyro->nix; /* Door. */
_vm->_celer.show_one(14);
break;
case 0xe: /* No connection + TORCH */
- _vm->_gyro.magics[1].op = _vm->_gyro.bounces;
- _vm->_gyro.portals[12].op = _vm->_gyro.nix; /* Door. */
+ _vm->_gyro->magics[1].op = _vm->_gyro->bounces;
+ _vm->_gyro->portals[12].op = _vm->_gyro->nix; /* Door. */
_vm->_celer.show_one(8);
break;
/* Recessed door: */
case 0xf:
- _vm->_gyro.magics[1].op = _vm->_gyro.nix; /* Door to Geida's room. */
+ _vm->_gyro->magics[1].op = _vm->_gyro->nix; /* Door to Geida's room. */
_vm->_celer.show_one(1);
- _vm->_gyro.portals[12].op = _vm->_gyro.special; /* Door. */
+ _vm->_gyro->portals[12].op = _vm->_gyro->special; /* Door. */
break;
}
@@ -822,7 +822,7 @@ void Trip::catamove(byte ped) {
break; /* [1,1] : the other two. */
}
- if ((_vm->_gyro.dna.geida_follows) & (ped > 0)) {
+ if ((_vm->_gyro->dna.geida_follows) & (ped > 0)) {
triptype &with = tr[2];
if (!with.quick) /* If we don't already have her... */
@@ -835,36 +835,36 @@ void Trip::catamove(byte ped) {
-/* This proc gets called whenever you touch a line defined as _vm->_gyro.special. */
+/* This proc gets called whenever you touch a line defined as _vm->_gyro->special. */
void Trip::dawndelay() {
_vm->_timeout.set_up_timer(2, _vm->_timeout.procdawn_delay, _vm->_timeout.reason_dawndelay);
}
void Trip::call_special(uint16 which) {
switch (which) {
- case 1: /* _vm->_gyro.special 1: Room 22: top of stairs. */
+ case 1: /* _vm->_gyro->special 1: Room 22: top of stairs. */
_vm->_celer.show_one(1);
- _vm->_gyro.dna.brummie_stairs = 1;
- _vm->_gyro.magics[10].op = _vm->_gyro.nix;
+ _vm->_gyro->dna.brummie_stairs = 1;
+ _vm->_gyro->magics[10].op = _vm->_gyro->nix;
_vm->_timeout.set_up_timer(10, _vm->_timeout.procstairs, _vm->_timeout.reason_brummiestairs);
stopwalking();
- _vm->_gyro.dna.user_moves_avvy = false;
- break;
- case 2: /* _vm->_gyro.special 2: Room 22: bottom of stairs. */
- _vm->_gyro.dna.brummie_stairs = 3;
- _vm->_gyro.magics[11].op = _vm->_gyro.nix;
- _vm->_gyro.magics[12].op = _vm->_gyro.exclaim;
- _vm->_gyro.magics[12].data = 5;
- _vm->_gyro.magics[4].op = _vm->_gyro.bounces; /* Now works as planned! */
+ _vm->_gyro->dna.user_moves_avvy = false;
+ break;
+ case 2: /* _vm->_gyro->special 2: Room 22: bottom of stairs. */
+ _vm->_gyro->dna.brummie_stairs = 3;
+ _vm->_gyro->magics[11].op = _vm->_gyro->nix;
+ _vm->_gyro->magics[12].op = _vm->_gyro->exclaim;
+ _vm->_gyro->magics[12].data = 5;
+ _vm->_gyro->magics[4].op = _vm->_gyro->bounces; /* Now works as planned! */
stopwalking();
_vm->_visa.dixi('q', 26);
- _vm->_gyro.dna.user_moves_avvy = true;
+ _vm->_gyro->dna.user_moves_avvy = true;
break;
- case 3: /* _vm->_gyro.special 3: Room 71: triggers dart. */
+ case 3: /* _vm->_gyro->special 3: Room 71: triggers dart. */
tr[1].bounce(); /* Must include that. */
- if (!_vm->_gyro.dna.arrow_triggered) {
- _vm->_gyro.dna.arrow_triggered = true;
+ if (!_vm->_gyro->dna.arrow_triggered) {
+ _vm->_gyro->dna.arrow_triggered = true;
apped(2, 4); /* The dart starts at ped 4, and... */
tr[2].walkto(5); /* flies to ped 5. */
tr[2].face = 0; /* Only face. */
@@ -883,33 +883,33 @@ void Trip::call_special(uint16 which) {
_vm->_enid.back_to_bootstrap(3);
break;
case 5:
- if (_vm->_gyro.dna.friar_will_tie_you_up) {
- /* _vm->_gyro.special 5: Room 42: touched tree, and get tied up. */
- _vm->_gyro.magics[4].op = _vm->_gyro.bounces; /* Boundary effect is now working again. */
+ if (_vm->_gyro->dna.friar_will_tie_you_up) {
+ /* _vm->_gyro->special 5: Room 42: touched tree, and get tied up. */
+ _vm->_gyro->magics[4].op = _vm->_gyro->bounces; /* Boundary effect is now working again. */
_vm->_visa.dixi('q', 35);
tr[1].done();
/*tr[1].vanishifstill:=true;*/
_vm->_celer.show_one(2);
_vm->_visa.dixi('q', 36);
- _vm->_gyro.dna.tied_up = true;
- _vm->_gyro.dna.friar_will_tie_you_up = false;
+ _vm->_gyro->dna.tied_up = true;
+ _vm->_gyro->dna.friar_will_tie_you_up = false;
tr[2].walkto(3);
tr[2].vanishifstill = true;
tr[2].check_me = true; /* One of them must have Check_Me switched on. */
- _vm->_gyro.whereis[_vm->_gyro.pfriartuck] = 177; /* Not here, then. */
+ _vm->_gyro->whereis[_vm->_gyro->pfriartuck] = 177; /* Not here, then. */
_vm->_timeout.set_up_timer(364, _vm->_timeout.prochang_around, _vm->_timeout.reason_hanging_around);
}
break;
- case 6: /* _vm->_gyro.special 6: fall down oubliette. */
- _vm->_gyro.dna.user_moves_avvy = false;
+ case 6: /* _vm->_gyro->special 6: fall down oubliette. */
+ _vm->_gyro->dna.user_moves_avvy = false;
tr[1].ix = 3;
tr[1].iy = 0;
tr[1].face = right;
_vm->_timeout.set_up_timer(1, _vm->_timeout.procfall_down_oubliette, _vm->_timeout.reason_falling_down_oubliette);
break;
- case 7: /* _vm->_gyro.special 7: stop falling down oubliette. */
+ case 7: /* _vm->_gyro->special 7: stop falling down oubliette. */
tr[1].visible = false;
- _vm->_gyro.magics[10].op = _vm->_gyro.nix;
+ _vm->_gyro->magics[10].op = _vm->_gyro->nix;
stopwalking();
_vm->_timeout.lose_timer(_vm->_timeout.reason_falling_down_oubliette);
_vm->_lucerna.mblit(12, 80, 38, 160, 3, 0);
@@ -917,8 +917,8 @@ void Trip::call_special(uint16 which) {
_vm->_scrolls.display("Oh dear, you seem to be down the bottom of an oubliette.");
_vm->_timeout.set_up_timer(200, _vm->_timeout.procmeet_avaroid, _vm->_timeout.reason_meeting_avaroid);
break;
- case 8: /* _vm->_gyro.special 8: leave du Lustie's room. */
- if ((_vm->_gyro.dna.geida_follows) && (!_vm->_gyro.dna.lustie_is_asleep)) {
+ case 8: /* _vm->_gyro->special 8: leave du Lustie's room. */
+ if ((_vm->_gyro->dna.geida_follows) && (!_vm->_gyro->dna.lustie_is_asleep)) {
_vm->_visa.dixi('q', 63);
tr[2].turn(down);
tr[2].stopwalk();
@@ -926,19 +926,19 @@ void Trip::call_special(uint16 which) {
_vm->_lucerna.gameover();
}
break;
- case 9: /* _vm->_gyro.special 9: lose Geida to Robin Hood... */
- if (!_vm->_gyro.dna.geida_follows)
+ case 9: /* _vm->_gyro->special 9: lose Geida to Robin Hood... */
+ if (!_vm->_gyro->dna.geida_follows)
return; /* DOESN'T COUNT: no Geida. */
tr[2].call_eachstep = false; /* She no longer follows Avvy around. */
tr[2].walkto(4); /* She walks to somewhere... */
tr[1].done(); /* Lose Avvy. */
- _vm->_gyro.dna.user_moves_avvy = false;
+ _vm->_gyro->dna.user_moves_avvy = false;
_vm->_timeout.set_up_timer(40, _vm->_timeout.procrobin_hood_and_geida, _vm->_timeout.reason_robin_hood_and_geida);
break;
- case 10: /* _vm->_gyro.special 10: transfer north in catacombs. */
- if ((_vm->_gyro.dna.cat_x == 4) && (_vm->_gyro.dna.cat_y == 1)) {
+ case 10: /* _vm->_gyro->special 10: transfer north in catacombs. */
+ if ((_vm->_gyro->dna.cat_x == 4) && (_vm->_gyro->dna.cat_y == 1)) {
/* Into Geida's room. */
- if (_vm->_gyro.dna.obj[_vm->_gyro.key])
+ if (_vm->_gyro->dna.obj[_vm->_gyro->key])
_vm->_visa.dixi('q', 62);
else {
_vm->_visa.dixi('q', 61);
@@ -946,12 +946,12 @@ void Trip::call_special(uint16 which) {
}
}
_vm->_lucerna.dusk();
- _vm->_gyro.dna.cat_y -= 1;
+ _vm->_gyro->dna.cat_y -= 1;
catamove(4);
- if (_vm->_gyro.dna.room != r__catacombs)
+ if (_vm->_gyro->dna.room != r__catacombs)
return;
_vm->_lucerna.delavvy();
- switch ((_vm->_gyro.catamap[_vm->_gyro.dna.cat_y][_vm->_gyro.dna.cat_x] & 0xf00) >> 8) {
+ switch ((_vm->_gyro->catamap[_vm->_gyro->dna.cat_y][_vm->_gyro->dna.cat_x] & 0xf00) >> 8) {
case 0x1:
apped(1, 12);
break;
@@ -964,33 +964,33 @@ void Trip::call_special(uint16 which) {
getback();
dawndelay();
break;
- case 11: /* _vm->_gyro.special 11: transfer east in catacombs. */
+ case 11: /* _vm->_gyro->special 11: transfer east in catacombs. */
_vm->_lucerna.dusk();
- _vm->_gyro.dna.cat_x += 1;
+ _vm->_gyro->dna.cat_x += 1;
catamove(1);
- if (_vm->_gyro.dna.room != r__catacombs)
+ if (_vm->_gyro->dna.room != r__catacombs)
return;
_vm->_lucerna.delavvy();
apped(1, 1);
getback();
dawndelay();
break;
- case 12: /* _vm->_gyro.special 12: transfer south in catacombs. */
+ case 12: /* _vm->_gyro->special 12: transfer south in catacombs. */
_vm->_lucerna.dusk();
- _vm->_gyro.dna.cat_y += 1;
+ _vm->_gyro->dna.cat_y += 1;
catamove(2);
- if (_vm->_gyro.dna.room != r__catacombs)
+ if (_vm->_gyro->dna.room != r__catacombs)
return;
_vm->_lucerna.delavvy();
apped(1, 2);
getback();
dawndelay();
break;
- case 13: /* _vm->_gyro.special 13: transfer west in catacombs. */
+ case 13: /* _vm->_gyro->special 13: transfer west in catacombs. */
_vm->_lucerna.dusk();
- _vm->_gyro.dna.cat_x -= 1;
+ _vm->_gyro->dna.cat_x -= 1;
catamove(3);
- if (_vm->_gyro.dna.room != r__catacombs)
+ if (_vm->_gyro->dna.room != r__catacombs)
return;
_vm->_lucerna.delavvy();
apped(1, 3);
@@ -1006,7 +1006,7 @@ void Trip::open_the_door(byte whither, byte ped, byte magicnum) {
/* This slides the door open. (The data really ought to be saved in
the Also file, and will be next time. However, for now, they're
here.) */
- switch (_vm->_gyro.dna.room) {
+ switch (_vm->_gyro->dna.room) {
case r__outsideyours:
case r__outsidenottspub:
case r__outsideducks:
@@ -1032,7 +1032,7 @@ void Trip::open_the_door(byte whither, byte ped, byte magicnum) {
case r__lusties:
switch (magicnum) {
case 14:
- if (_vm->_gyro.dna.avvys_in_the_cupboard) {
+ if (_vm->_gyro->dna.avvys_in_the_cupboard) {
hide_in_the_cupboard();
_vm->_sequence.first_show(8);
_vm->_sequence.then_show(7);
@@ -1094,8 +1094,8 @@ void Trip::rwsp(byte t, byte r) {
}
void Trip::apped(byte trn, byte np) {
- tr[trn].appear(tr[trn].x - tr[trn]._info.xl / 2, tr[trn].y - tr[trn]._info.yl, _vm->_gyro.peds[np].dir);
- rwsp(trn, _vm->_gyro.peds[np].dir);
+ tr[trn].appear(tr[trn].x - tr[trn]._info.xl / 2, tr[trn].y - tr[trn]._info.yl, _vm->_gyro->peds[np].dir);
+ rwsp(trn, _vm->_gyro->peds[np].dir);
}
@@ -1104,12 +1104,12 @@ void Trip::apped(byte trn, byte np) {
begin { By De Morgan's law: }
overlap:=(x2>=x3) and (x4>=x1) and (y2>=y3) and (y4>=y1);
end;*/
-/* x1,x2 - as _vm->_gyro.bytefield, but *8. y1,y2 - as _vm->_gyro.bytefield.
+/* x1,x2 - as _vm->_gyro->bytefield, but *8. y1,y2 - as _vm->_gyro->bytefield.
x3,y3 = mx,my. x4,y4 = mx+16,my+16. */
bool Trip::overlaps_with_mouse() {
bool overlaps_with_mouse_result;
overlaps_with_mouse_result =
- (r.x2 * 8 >= _vm->_gyro.mx) && (_vm->_gyro.mx + 16 >= r.x1 * 8) && (r.y2 >= _vm->_gyro.my) && (_vm->_gyro.my + 16 >= r.y1);
+ (r.x2 * 8 >= _vm->_gyro->mx) && (_vm->_gyro->mx + 16 >= r.x1 * 8) && (r.y2 >= _vm->_gyro->my) && (_vm->_gyro->my + 16 >= r.y1);
return overlaps_with_mouse_result;
}
@@ -1121,8 +1121,8 @@ void Trip::getback() {
endangered = false;
/* Super_Off;*/
- while (getset[1 - _vm->_gyro.cp].numleft > 0) {
- getset[1 - _vm->_gyro.cp].recall(r);
+ while (getset[1 - _vm->_gyro->cp].numleft > 0) {
+ getset[1 - _vm->_gyro->cp].recall(r);
/*
if overlaps_with_mouse and not endangered then
@@ -1133,7 +1133,7 @@ void Trip::getback() {
end;
*/
- _vm->_lucerna.mblit(r.x1, r.y1, r.x2, r.y2, 3, 1 - _vm->_gyro.cp);
+ _vm->_lucerna.mblit(r.x1, r.y1, r.x2, r.y2, 3, 1 - _vm->_gyro->cp);
}
_vm->_lucerna.blitfix();
@@ -1213,13 +1213,13 @@ void Trip::arrow_procs(byte tripnum) {
_vm->_lucerna.gameover();
- _vm->_gyro.dna.user_moves_avvy = false; /* Stop the user from moving him. */
+ _vm->_gyro->dna.user_moves_avvy = false; /* Stop the user from moving him. */
_vm->_timeout.set_up_timer(55, _vm->_timeout.procnaughty_duke, _vm->_timeout.reason_naughty_duke);
}
} else { /* Arrow has hit the wall! */
tr[tripnum].done(); /* Deallocate the arrow. */
_vm->_celer.show_one(3); /* Show pic of arrow stuck into the door. */
- _vm->_gyro.dna.arrow_in_the_door = true; /* So that we can pick it up. */
+ _vm->_gyro->dna.arrow_in_the_door = true; /* So that we can pick it up. */
}
}
@@ -1230,7 +1230,7 @@ begin
with tr[tripnum] do
if not homing then { We only need to do anything if Spludwick *stops*
walking. }
- with _vm->_gyro.dna do
+ with _vm->_gyro->dna do
begin
inc(DogfoodPos);
if DogfoodPos=8 then DogfoodPos:=1;
@@ -1279,21 +1279,21 @@ void Trip::spin(byte whichway, byte &tripnum) {
if (tr[tripnum].whichsprite == 2)
return; /* Not for Spludwick */
- _vm->_gyro.dna.geida_spin += 1;
- _vm->_gyro.dna.geida_time = 20;
- if (_vm->_gyro.dna.geida_spin == 5) {
+ _vm->_gyro->dna.geida_spin += 1;
+ _vm->_gyro->dna.geida_time = 20;
+ if (_vm->_gyro->dna.geida_spin == 5) {
_vm->_scrolls.display("Steady on, Avvy, you'll make the poor girl dizzy!");
- _vm->_gyro.dna.geida_spin = 0;
- _vm->_gyro.dna.geida_time = 0; /* knock out records */
+ _vm->_gyro->dna.geida_spin = 0;
+ _vm->_gyro->dna.geida_time = 0; /* knock out records */
}
}
}
void Trip::geida_procs(byte tripnum) {
- if (_vm->_gyro.dna.geida_time > 0) {
- _vm->_gyro.dna.geida_time -= 1;
- if (_vm->_gyro.dna.geida_time == 0)
- _vm->_gyro.dna.geida_spin = 0;
+ if (_vm->_gyro->dna.geida_time > 0) {
+ _vm->_gyro->dna.geida_time -= 1;
+ if (_vm->_gyro->dna.geida_time == 0)
+ _vm->_gyro->dna.geida_spin = 0;
}
if (tr[tripnum].y < (tr[1].y - 2)) {
@@ -1363,7 +1363,7 @@ void Trip::call_andexors() {
void Trip::trippancy_link() {
byte fv;
- if (_vm->_gyro.ddmnow | _vm->_gyro.ontoolbar | _vm->_gyro.seescroll)
+ if (_vm->_gyro->ddmnow | _vm->_gyro->ontoolbar | _vm->_gyro->seescroll)
return;
for (fv = 1; fv <= numtr; fv++) {
if (tr[fv].quick)
@@ -1418,71 +1418,71 @@ void Trip::get_back_loretta() {
void Trip::stopwalking() {
tr[1].stopwalk();
- _vm->_gyro.dna.rw = stopped;
- if (_vm->_gyro.alive)
+ _vm->_gyro->dna.rw = stopped;
+ if (_vm->_gyro->alive)
tr[1].step = 1;
}
void Trip::tripkey(char dir) {
- if ((_vm->_gyro.ctrl == cjoy) | (!_vm->_gyro.dna.user_moves_avvy))
+ if ((_vm->_gyro->ctrl == cjoy) | (!_vm->_gyro->dna.user_moves_avvy))
return;
triptype &with = tr[1];
switch (dir) {
case 'H':
- if (_vm->_gyro.dna.rw != up) {
- _vm->_gyro.dna.rw = up;
- rwsp(1, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != up) {
+ _vm->_gyro->dna.rw = up;
+ rwsp(1, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case 'P':
- if (_vm->_gyro.dna.rw != down) {
- _vm->_gyro.dna.rw = down;
- rwsp(1, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != down) {
+ _vm->_gyro->dna.rw = down;
+ rwsp(1, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case 'K':
- if (_vm->_gyro.dna.rw != left) {
- _vm->_gyro.dna.rw = left;
- rwsp(1, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != left) {
+ _vm->_gyro->dna.rw = left;
+ rwsp(1, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case 'M':
- if (_vm->_gyro.dna.rw != right) {
- _vm->_gyro.dna.rw = right;
- rwsp(1, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != right) {
+ _vm->_gyro->dna.rw = right;
+ rwsp(1, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case 'I':
- if (_vm->_gyro.dna.rw != ur) {
- _vm->_gyro.dna.rw = ur;
- rwsp(1, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != ur) {
+ _vm->_gyro->dna.rw = ur;
+ rwsp(1, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case 'Q':
- if (_vm->_gyro.dna.rw != dr) {
- _vm->_gyro.dna.rw = dr;
- rwsp(1, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != dr) {
+ _vm->_gyro->dna.rw = dr;
+ rwsp(1, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case 'O':
- if (_vm->_gyro.dna.rw != dl) {
- _vm->_gyro.dna.rw = dl;
- rwsp(1, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != dl) {
+ _vm->_gyro->dna.rw = dl;
+ rwsp(1, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case 'G':
- if (_vm->_gyro.dna.rw != ul) {
- _vm->_gyro.dna.rw = ul;
- rwsp(1, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != ul) {
+ _vm->_gyro->dna.rw = ul;
+ rwsp(1, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
@@ -1504,15 +1504,15 @@ void Trip::getsetclear() {
void Trip::hide_in_the_cupboard() {
const char nowt = 250; /* As in Acci. */
- if (_vm->_gyro.dna.avvys_in_the_cupboard) {
- if (_vm->_gyro.dna.wearing == nowt)
+ if (_vm->_gyro->dna.avvys_in_the_cupboard) {
+ if (_vm->_gyro->dna.wearing == nowt)
_vm->_scrolls.display("\6AVVY!\22 Get dressed first!");
else {
tr[1].visible = true;
- _vm->_gyro.dna.user_moves_avvy = true;
+ _vm->_gyro->dna.user_moves_avvy = true;
apped(1, 3); /* Walk out of the cupboard. */
_vm->_scrolls.display("You leave the cupboard. Nice to be out of there!");
- _vm->_gyro.dna.avvys_in_the_cupboard = false;
+ _vm->_gyro->dna.avvys_in_the_cupboard = false;
_vm->_sequence.first_show(8);
_vm->_sequence.then_show(7);
_vm->_sequence.start_to_close();
@@ -1520,11 +1520,11 @@ void Trip::hide_in_the_cupboard() {
} else {
/* Not hiding in the cupboard */
tr[1].visible = false;
- _vm->_gyro.dna.user_moves_avvy = false;
+ _vm->_gyro->dna.user_moves_avvy = false;
_vm->_scrolls.display(Common::String("You walk into the room...\20It seems to be an empty, ") +
"but dusty, cupboard. Hmmmm... you leave the door slightly open to " +
"avoid suffocation.");
- _vm->_gyro.dna.avvys_in_the_cupboard = true;
+ _vm->_gyro->dna.avvys_in_the_cupboard = true;
_vm->_celer.show_one(8);
}
}
@@ -1535,36 +1535,36 @@ void Trip::tidy_up(int16 a, int16 b, int16 c, int16 d) {
void Trip::tidy_after_mouse() {
tidy_up(beforex, beforey, beforex + 15, beforey + 15);
- _vm->_gyro.xycheck();
- tidy_up(_vm->_gyro.mx, _vm->_gyro.my, _vm->_gyro.mx + 15, _vm->_gyro.my + 15);
+ _vm->_gyro->xycheck();
+ tidy_up(_vm->_gyro->mx, _vm->_gyro->my, _vm->_gyro->mx + 15, _vm->_gyro->my + 15);
}
void Trip::fliproom(byte room, byte ped) {
byte fv;
- if (!_vm->_gyro.alive) {
+ if (!_vm->_gyro->alive) {
/* You can't leave the room if you're dead. */
tr[1].ix = 0;
tr[1].iy = 0; /* Stop him from moving. */
return;
}
- if ((ped == 177) && (_vm->_gyro.dna.room == r__lusties)) {
+ if ((ped == 177) && (_vm->_gyro->dna.room == r__lusties)) {
hide_in_the_cupboard();
return;
}
- if ((_vm->_gyro.dna.jumpstatus > 0) && (_vm->_gyro.dna.room == r__insidecardiffcastle)) {
+ if ((_vm->_gyro->dna.jumpstatus > 0) && (_vm->_gyro->dna.room == r__insidecardiffcastle)) {
/* You can't *jump* out of Cardiff Castle! */
tr[1].ix = 0;
return;
}
- _vm->_gyro.xycheck();
- beforex = _vm->_gyro.mx;
- beforey = _vm->_gyro.my;
+ _vm->_gyro->xycheck();
+ beforex = _vm->_gyro->mx;
+ beforey = _vm->_gyro->my;
- _vm->_lucerna.exitroom(_vm->_gyro.dna.room);
+ _vm->_lucerna.exitroom(_vm->_gyro->dna.room);
_vm->_lucerna.dusk();
getsetclear();
@@ -1574,18 +1574,18 @@ void Trip::fliproom(byte room, byte ped) {
tr[fv].done();
} /* Deallocate sprite */
- if (_vm->_gyro.dna.room == r__lustiesroom)
- _vm->_gyro.dna.enter_catacombs_from_lusties_room = true;
+ if (_vm->_gyro->dna.room == r__lustiesroom)
+ _vm->_gyro->dna.enter_catacombs_from_lusties_room = true;
_vm->_lucerna.enterroom(room, ped);
apped(1, ped);
- _vm->_gyro.dna.enter_catacombs_from_lusties_room = false;
- _vm->_gyro.oldrw = _vm->_gyro.dna.rw;
- _vm->_gyro.dna.rw = tr[1].face;
+ _vm->_gyro->dna.enter_catacombs_from_lusties_room = false;
+ _vm->_gyro->oldrw = _vm->_gyro->dna.rw;
+ _vm->_gyro->dna.rw = tr[1].face;
_vm->_lucerna.showrw();
for (fv = 0; fv <= 1; fv++) {
- _vm->_gyro.cp = 1 - _vm->_gyro.cp;
+ _vm->_gyro->cp = 1 - _vm->_gyro->cp;
getback();
}
_vm->_lucerna.dawn();
@@ -1598,8 +1598,8 @@ bool Trip::infield(byte which) {
/* returns True if you're within field "which" */
int16 yy = tr[1].y + tr[1]._info.yl;
- return (tr[1].x >= _vm->_gyro.fields[which].x1) && (tr[1].x <= _vm->_gyro.fields[which].x2)
- && (yy >= _vm->_gyro.fields[which].y1) && (yy <= _vm->_gyro.fields[which].y2);
+ return (tr[1].x >= _vm->_gyro->fields[which].x1) && (tr[1].x <= _vm->_gyro->fields[which].x2)
+ && (yy >= _vm->_gyro->fields[which].y1) && (yy <= _vm->_gyro->fields[which].y2);
}
@@ -1609,7 +1609,7 @@ bool Trip::neardoor() { /* returns True if you're near a door! */
bool nd;
bool neardoor_result;
- if (_vm->_gyro.numfields < 9) {
+ if (_vm->_gyro->numfields < 9) {
/* there ARE no doors here! */
neardoor_result = false;
return neardoor_result;
@@ -1619,11 +1619,11 @@ bool Trip::neardoor() { /* returns True if you're near a door! */
uy = tr[1].y + tr[1]._info.yl;
nd = false;
- for (fv = 9; fv <= _vm->_gyro.numfields; fv++) {
- _vm->_gyro.fields[fv];
+ for (fv = 9; fv <= _vm->_gyro->numfields; fv++) {
+ _vm->_gyro->fields[fv];
- if ((ux >= _vm->_gyro.fields[fv].x1) && (ux <= _vm->_gyro.fields[fv].x2)
- && (uy >= _vm->_gyro.fields[fv].y1) && (uy <= _vm->_gyro.fields[fv].y2))
+ if ((ux >= _vm->_gyro->fields[fv].x1) && (ux <= _vm->_gyro->fields[fv].x2)
+ && (uy >= _vm->_gyro->fields[fv].y1) && (uy <= _vm->_gyro->fields[fv].y2))
nd = true;
}
return nd;
@@ -1636,65 +1636,65 @@ void Trip::new_game_for_trippancy() { /* Called by gyro.newgame */
void Trip::handleMoveKey(const Common::Event &event) {
- //if ((_vm->_gyro.ctrl == cjoy) | (!_vm->_gyro.dna.user_moves_avvy))
+ //if ((_vm->_gyro->ctrl == cjoy) | (!_vm->_gyro->dna.user_moves_avvy))
// return;
//
// We don't mess around with the joystick.
switch (event.kbd.keycode) {
case Common::KEYCODE_UP:
- if (_vm->_gyro.dna.rw != up) {
- _vm->_gyro.dna.rw = up;
- rwsp(0, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != up) {
+ _vm->_gyro->dna.rw = up;
+ rwsp(0, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case Common::KEYCODE_DOWN:
- if (_vm->_gyro.dna.rw != down) {
- _vm->_gyro.dna.rw = down;
- rwsp(0, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != down) {
+ _vm->_gyro->dna.rw = down;
+ rwsp(0, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case Common::KEYCODE_LEFT:
- if (_vm->_gyro.dna.rw != left) {
- _vm->_gyro.dna.rw = left;
- rwsp(0, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != left) {
+ _vm->_gyro->dna.rw = left;
+ rwsp(0, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case Common::KEYCODE_RIGHT:
- if (_vm->_gyro.dna.rw != right) {
- _vm->_gyro.dna.rw = right;
- rwsp(0, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != right) {
+ _vm->_gyro->dna.rw = right;
+ rwsp(0, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case Common::KEYCODE_PAGEUP:
- if (_vm->_gyro.dna.rw != ur) {
- _vm->_gyro.dna.rw = ur;
- rwsp(0, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != ur) {
+ _vm->_gyro->dna.rw = ur;
+ rwsp(0, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case Common::KEYCODE_PAGEDOWN:
- if (_vm->_gyro.dna.rw != dr) {
- _vm->_gyro.dna.rw = dr;
- rwsp(0, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != dr) {
+ _vm->_gyro->dna.rw = dr;
+ rwsp(0, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case Common::KEYCODE_END:
- if (_vm->_gyro.dna.rw != dl) {
- _vm->_gyro.dna.rw = dl;
- rwsp(0, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != dl) {
+ _vm->_gyro->dna.rw = dl;
+ rwsp(0, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
case Common::KEYCODE_HOME:
- if (_vm->_gyro.dna.rw != ul) {
- _vm->_gyro.dna.rw = ul;
- rwsp(0, _vm->_gyro.dna.rw);
+ if (_vm->_gyro->dna.rw != ul) {
+ _vm->_gyro->dna.rw = ul;
+ rwsp(0, _vm->_gyro->dna.rw);
} else
stopwalking();
break;
diff --git a/engines/avalanche/visa2.cpp b/engines/avalanche/visa2.cpp
index ea5144f2a9..935959533f 100644
--- a/engines/avalanche/visa2.cpp
+++ b/engines/avalanche/visa2.cpp
@@ -49,13 +49,13 @@ namespace Avalanche {
bool Visa::report_dixi_errors = true;
void Visa::unskrimble() {
- for (uint16 fv = 0; fv < _vm->_gyro.bufsize; fv++)
- _vm->_gyro.buffer[fv] = (char)((!(_vm->_gyro.buffer[fv]) - fv) % 256);
+ for (uint16 fv = 0; fv < _vm->_gyro->bufsize; fv++)
+ _vm->_gyro->buffer[fv] = (char)((!(_vm->_gyro->buffer[fv]) - fv) % 256);
}
void Visa::do_the_bubble() {
- _vm->_gyro.bufsize++;
- _vm->_gyro.buffer[_vm->_gyro.bufsize] = 2;
+ _vm->_gyro->bufsize++;
+ _vm->_gyro->buffer[_vm->_gyro->bufsize] = 2;
}
void Visa::dixi(char block, byte point) {
@@ -85,7 +85,7 @@ namespace Avalanche {
if (error) {
if (report_dixi_errors) {
Common::String todisplay;
- todisplay.format("%cError accessing scroll %c%s", 7, block, _vm->_gyro.strf(point).c_str());
+ todisplay.format("%cError accessing scroll %c%s", 7, block, _vm->_gyro->strf(point).c_str());
_vm->_scrolls.display(todisplay);
}
return;
@@ -96,8 +96,8 @@ namespace Avalanche {
return;
}
sezfile.seek(sez_offset);
- _vm->_gyro.bufsize = sezfile.readUint16LE();
- sezfile.read(_vm->_gyro.buffer, _vm->_gyro.bufsize);
+ _vm->_gyro->bufsize = sezfile.readUint16LE();
+ sezfile.read(_vm->_gyro->buffer, _vm->_gyro->bufsize);
sezfile.close();
unskrimble();
@@ -145,8 +145,8 @@ namespace Avalanche {
return;
}
sezfile.seek(sez_offset);
- _vm->_gyro.bufsize = sezfile.readUint16LE();
- sezfile.read(_vm->_gyro.buffer, _vm->_gyro.bufsize);
+ _vm->_gyro->bufsize = sezfile.readUint16LE();
+ sezfile.read(_vm->_gyro->buffer, _vm->_gyro->bufsize);
sezfile.close();
unskrimble();