aboutsummaryrefslogtreecommitdiff
path: root/engines/avalanche/gyro2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/avalanche/gyro2.cpp')
-rw-r--r--engines/avalanche/gyro2.cpp105
1 files changed, 41 insertions, 64 deletions
diff --git a/engines/avalanche/gyro2.cpp b/engines/avalanche/gyro2.cpp
index 1fd906d48d..879cc15714 100644
--- a/engines/avalanche/gyro2.cpp
+++ b/engines/avalanche/gyro2.cpp
@@ -37,20 +37,15 @@
#include "avalanche/acci2.h"
#include "avalanche/trip6.h"
-#include "common/textconsole.h"
#include "common/file.h"
-
#include "common/random.h"
-
-//#include "dropdown.h"
-//#include "basher.h"
+#include "common/textconsole.h"
namespace Avalanche {
const char *Gyro::kVersionNum = "1.30";
const char *Gyro::kCopyright = "1995";
-
const MouseHotspotType Gyro::kMouseHotSpots[9] = {
{8,0}, // 1 - up-arrow
{0,0}, // 2 - screwdriver
@@ -66,15 +61,15 @@ const MouseHotspotType Gyro::kMouseHotSpots[9] = {
// Art gallery at 2,1; notice about this at 2,2.
const int32 Gyro::kCatacombMap[8][8] = {
// Geida's room
- // 1 2 3 | 4 5 6 7 8
- {0x204, 0x200, 0xd0f0, 0xf0ff, 0xff, 0xd20f, 0xd200, 0x200},
- {0x50f1, 0x20ff, 0x2ff, 0xff, 0xe0ff, 0x20ff, 0x200f, 0x7210},
- {0xe3f0, 0xe10f, 0x72f0, 0xff, 0xe0ff, 0xff, 0xff, 0x800f},
- {0x2201, 0x2030, 0x800f, 0x220, 0x20f, 0x30, 0xff, 0x23f}, // >> Oubliette
- {0x5024, 0xf3, 0xff, 0x200f, 0x22f0, 0x20f, 0x200, 0x7260},
- {0xf0, 0x2ff, 0xe2ff, 0xff, 0x200f, 0x50f0, 0x72ff, 0x201f},
- {0xf6, 0x220f, 0x22f0, 0x30f, 0xf0, 0x20f, 0x8200, 0x2f0}, // <<< In here
- {0x34, 0x200f, 0x51f0, 0x201f, 0xf1, 0x50ff, 0x902f, 0x2062}
+ // 1 2 3 | 4 5 6 7 8
+ {0x204, 0x200, 0xd0f0, 0xf0ff, 0xff, 0xd20f, 0xd200, 0x200},
+ {0x50f1, 0x20ff, 0x2ff, 0xff, 0xe0ff, 0x20ff, 0x200f, 0x7210},
+ {0xe3f0, 0xe10f, 0x72f0, 0xff, 0xe0ff, 0xff, 0xff, 0x800f},
+ {0x2201, 0x2030, 0x800f, 0x220, 0x20f, 0x30, 0xff, 0x23f}, // >> Oubliette
+ {0x5024, 0xf3, 0xff, 0x200f, 0x22f0, 0x20f, 0x200, 0x7260},
+ {0xf0, 0x2ff, 0xe2ff, 0xff, 0x200f, 0x50f0, 0x72ff, 0x201f},
+ {0xf6, 0x220f, 0x22f0, 0x30f, 0xf0, 0x20f, 0x8200, 0x2f0}, // <<< In here
+ {0x34, 0x200f, 0x51f0, 0x201f, 0xf1, 0x50ff, 0x902f, 0x2062}
};
// vv Stairs trap.
@@ -119,22 +114,22 @@ const char Gyro::kSpludwicksOrder[3] = {kObjectOnion, kObjectInk, kObjectMushroo
// A quasiped defines how people who aren't sprites talk. For example, quasiped
// "A" is Dogfood. The rooms aren't stored because I'm leaving that to context.
const QuasipedType Gyro::kQuasipeds[16] = {
- {2, kColorLightgray, 19, kColorBrown, kPeopleDogfood}, // A: Dogfood (screen 19).
- {3, kColorGreen, 19, kColorWhite, kPeopleIbythneth}, // B: Ibythneth (screen 19).
- {3, kColorWhite, 1, kColorMagenta, kPeopleArkata}, // C: Arkata (screen 1).
- {3, kColorBlack, 23, kColorRed, 177}, // D: Hawk (screen 23).
- {3, kColorLightgreen, 50, kColorBrown, kPeopleTrader}, // E: Trader (screen 50).
- {6, kColorYellow, 42, kColorRed, kPeopleAvalot}, // F: Avvy, tied up (scr.42)
- {2, kColorBlue, 16, kColorWhite, kPeopleAyles}, // G: Ayles (screen 16).
- {2, kColorBrown, 7, kColorWhite, kPeopleJacques}, // H: Jacques (screen 7).
- {2, kColorLightgreen, 47, kColorGreen, kPeopleSpurge}, // I: Spurge (screen 47).
- {3, kColorYellow, 47, kColorRed, kPeopleAvalot}, // J: Avalot (screen 47).
- {2, kColorLightgray, 23, kColorBlack, kPeopleDuLustie}, // K: du Lustie (screen 23).
- {2, kColorYellow, 27, kColorRed, kPeopleAvalot}, // L: Avalot (screen 27).
- {3, kColorWhite, 27, kColorRed, 177}, // M: Avaroid (screen 27).
- {4, kColorLightgray, 19, kColorDarkgray, kPeopleMalagauche}, // N: Malagauche (screen 19).
- {5, kColorLightmagenta, 47, kColorRed, kPeoplePort}, // O: Port (screen 47).
- {2, kColorLightgreen, 51, kColorDarkgray, kPeopleDrDuck} // P: Duck (screen 51).
+ {2, kColorLightgray, 19, kColorBrown, kPeopleDogfood}, // A: Dogfood (screen 19).
+ {3, kColorGreen, 19, kColorWhite, kPeopleIbythneth}, // B: Ibythneth (screen 19).
+ {3, kColorWhite, 1, kColorMagenta, kPeopleArkata}, // C: Arkata (screen 1).
+ {3, kColorBlack, 23, kColorRed, 177}, // D: Hawk (screen 23).
+ {3, kColorLightgreen, 50, kColorBrown, kPeopleTrader}, // E: Trader (screen 50).
+ {6, kColorYellow, 42, kColorRed, kPeopleAvalot}, // F: Avvy, tied up (scr.42)
+ {2, kColorBlue, 16, kColorWhite, kPeopleAyles}, // G: Ayles (screen 16).
+ {2, kColorBrown, 7, kColorWhite, kPeopleJacques}, // H: Jacques (screen 7).
+ {2, kColorLightgreen, 47, kColorGreen, kPeopleSpurge}, // I: Spurge (screen 47).
+ {3, kColorYellow, 47, kColorRed, kPeopleAvalot}, // J: Avalot (screen 47).
+ {2, kColorLightgray, 23, kColorBlack, kPeopleDuLustie}, // K: du Lustie (screen 23).
+ {2, kColorYellow, 27, kColorRed, kPeopleAvalot}, // L: Avalot (screen 27).
+ {3, kColorWhite, 27, kColorRed, 177}, // M: Avaroid (screen 27).
+ {4, kColorLightgray, 19, kColorDarkgray, kPeopleMalagauche}, // N: Malagauche (screen 19).
+ {5, kColorLightmagenta, 47, kColorRed, kPeoplePort}, // O: Port (screen 47).
+ {2, kColorLightgreen, 51, kColorDarkgray, kPeopleDrDuck} // P: Duck (screen 51).
};
const char Gyro::kMusicKeys[] = "QWERTYUIOP[]";
@@ -143,9 +138,8 @@ const uint16 Gyro::kNotes[12] = {196, 220, 247, 262, 294, 330, 350, 392, 440, 49
const TuneType Gyro::kTune = {
kPitchHigher, kPitchHigher, kPitchLower, kPitchSame, kPitchHigher, kPitchHigher, kPitchLower, kPitchHigher, kPitchHigher, kPitchHigher,
- kPitchLower, kPitchHigher, kPitchHigher,
- kPitchSame, kPitchHigher, kPitchLower, kPitchLower, kPitchLower, kPitchLower, kPitchHigher, kPitchHigher, kPitchLower, kPitchLower, kPitchLower,
- kPitchLower, kPitchSame, kPitchLower, kPitchHigher, kPitchSame, kPitchLower, kPitchHigher
+ kPitchLower, kPitchHigher, kPitchHigher, kPitchSame, kPitchHigher, kPitchLower, kPitchLower, kPitchLower, kPitchLower, kPitchHigher,
+ kPitchHigher, kPitchLower, kPitchLower, kPitchLower, kPitchLower, kPitchSame, kPitchLower, kPitchHigher, kPitchSame, kPitchLower, kPitchHigher
};
byte Gyro::_whereIs[29] = {
@@ -175,9 +169,6 @@ byte Gyro::_whereIs[29] = {
r__wisewomans // The Wise Woman.
};
-// CHECKME: Useless?
-// const char Gyro::kItemsChar[] = "WMBParCLguKeSnIohn";
-
Gyro::Gyro(AvalancheEngine *vm) : _interrogation(0), _onCanDoPageSwap(true) {
_vm = vm;
@@ -186,6 +177,7 @@ Gyro::Gyro(AvalancheEngine *vm) : _interrogation(0), _onCanDoPageSwap(true) {
for (int ff = 0; ff < 2; ff++)
_also[fv][ff] = 0;
}
+
_dna._totalTime = 0;
}
@@ -197,9 +189,9 @@ Gyro::~Gyro() {
_digits[9].free();
}
-Common::String Gyro::intToStr(int32 x) {
- Common::String q = Common::String::format("%d", x);
- return q;
+Common::String Gyro::intToStr(int32 num) {
+ Common::String result = Common::String::format("%d", num);
+ return result;
}
void Gyro::newMouse(byte id) {
@@ -230,28 +222,28 @@ void Gyro::drawShadow(int16 x1, int16 y1, int16 x2, int16 y2, byte hc, byte sc)
warning("STUB: Gyro::shadow()");
}
-void Gyro::shadowBox(int16 x1, int16 y1, int16 x2, int16 y2, Common::String t) {
+void Gyro::drawShadowBox(int16 x1, int16 y1, int16 x2, int16 y2, Common::String t) {
warning("STUB: Gyro::shbox()");
}
void Gyro::newGame() {
- for (byte gm = 0; gm < kMaxSprites; gm++) {
- if (_vm->_trip->tr[gm].quick)
- _vm->_trip->tr[gm].done();
+ for (byte i = 0; i < kMaxSprites; i++) {
+ if (_vm->_trip->tr[i].quick)
+ _vm->_trip->tr[i].done();
}
// Deallocate sprite. Sorry, beta testers!
_vm->_trip->tr[0].init(0, true, _vm->_trip);
- _alive = true;
+ _alive = true;
_score = 0;
- //for gd:=0 to 5 do which[gd]:=1;
memset(&_vm->_gyro->_dna, 0, sizeof(DnaType));
+
_vm->_scrolls->natural();
_vm->_lucerna->mousepage(0);
+
_dna._spareEvening = "answer a questionnaire";
_dna._favouriteDrink = "beer";
-
_dna._money = 30; // 2/6
_dna._direction = kDirectionStopped;
_dna._wearing = kObjectClothes;
@@ -279,7 +271,7 @@ void Gyro::newGame() {
_dna._avvyInBed = true;
_enidFilename = "";
- for (byte gd = 0; gd <= 1; gd++) {
+ for (byte i = 0; i <= 1; i++) {
_cp = 1 - _cp;
_vm->_trip->getback();
}
@@ -287,7 +279,6 @@ void Gyro::newGame() {
_vm->_lucerna->enterroom(1, 1);
_vm->_trip->new_game_for_trippancy();
_vm->_lucerna->showscore();
-
_vm->_dropdown->setupMenu();
_vm->_lucerna->clock_lucerna();
_vm->_lucerna->sprite_run();
@@ -314,7 +305,7 @@ void Gyro::forceNumlock() {
warning("STUB: Gyro::force_numlock()");
}
-bool Gyro::updateMoney(uint16 howmuchby) {
+bool Gyro::decreaseMoney(uint16 howmuchby) {
_dna._money -= howmuchby;
if (_dna._money < 0) {
_vm->_visa->dixi('Q', 2); // "You are now denariusless!"
@@ -324,8 +315,6 @@ bool Gyro::updateMoney(uint16 howmuchby) {
return true;
}
-// There'll may be problems with calling these functions because of the conversion of the arrays!!!
-// Keep an eye open!
Common::String Gyro::getName(byte whose) {
static const Common::String kLads[17] = {
"Avalot", "Spludwick", "Crapulus", "Dr. Duck", "Malagauche", "Friar Tuck",
@@ -335,28 +324,22 @@ Common::String Gyro::getName(byte whose) {
static const Common::String kLasses[4] = {"Arkata", "Geida", "\0xB1", "the Wise Woman"};
- assert((whose > 150) && (whose < 179));
-
if (whose < 175)
return kLads[whose - 150];
else
return kLasses[whose - 175];
}
-// Keep an eye open! ^
byte Gyro::getNameChar(byte whose) {
static const char kLadChar[] = "ASCDMTRwLfgeIyPu";
static const char kLassChar[] = "kG\0xB1o";
- assert((whose > 150) && (whose < 179));
-
if (whose < 175)
return kLadChar[whose - 150];
else
return kLassChar[whose - 175];
}
-// Keep an eye open! ^^
Common::String Gyro::getThing(byte which) {
static const Common::String kThings[kObjectNum] = {
"Wine", "Money-bag", "Bodkin", "Potion", "Chastity belt",
@@ -389,7 +372,6 @@ Common::String Gyro::getThing(byte which) {
return get_thing_result;
}
-// Keep an eye open! ^^^
char Gyro::getThingChar(byte which) {
static const char kThingsChar[] = "WMBParCLguKeSnIohn"; // V=Vinegar
@@ -407,7 +389,6 @@ char Gyro::getThingChar(byte which) {
return get_thingchar_result;
}
-// Keep an eye open! ^^^^
Common::String Gyro::getItem(byte which) {
static const Common::String kItems[kObjectNum] = {
"some wine", "your money-bag", "your bodkin", "a potion", "a chastity belt",
@@ -522,13 +503,9 @@ void Gyro::loadMouse(byte which) {
}
mask.free();
-
f.close();
-
-
CursorMan.replaceCursor(cursor.pixels, 16, 32, kMouseHotSpots[which - 1]._horizontal, kMouseHotSpots[which - 1]._vertical * 2, 255, false);
-
cursor.free();
}