diff options
Diffstat (limited to 'engines/avalanche/gyro2.cpp')
| -rw-r--r-- | engines/avalanche/gyro2.cpp | 105 | 
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();  } | 
