diff options
| -rw-r--r-- | engines/avalanche/avalanche.cpp | 2 | ||||
| -rw-r--r-- | engines/avalanche/celer2.cpp | 2 | ||||
| -rw-r--r-- | engines/avalanche/dropdown2.cpp | 6 | ||||
| -rw-r--r-- | engines/avalanche/graphics.cpp | 85 | ||||
| -rw-r--r-- | engines/avalanche/graphics.h | 69 | ||||
| -rw-r--r-- | engines/avalanche/gyro2.h | 2 | ||||
| -rw-r--r-- | engines/avalanche/lucerna2.cpp | 6 | ||||
| -rw-r--r-- | engines/avalanche/parser.cpp | 6 | ||||
| -rw-r--r-- | engines/avalanche/scrolls2.cpp | 4 | ||||
| -rw-r--r-- | engines/avalanche/scrolls2.h | 2 | ||||
| -rw-r--r-- | engines/avalanche/trip6.cpp | 64 | 
11 files changed, 97 insertions, 151 deletions
| diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp index bd5ea8b4d0..9af099bd2b 100644 --- a/engines/avalanche/avalanche.cpp +++ b/engines/avalanche/avalanche.cpp @@ -313,7 +313,7 @@ void AvalancheEngine::synchronize(Common::Serializer &sz) {  		sz.syncAsByte(_trip->tr[i].visible);  		sz.syncAsByte(_trip->tr[i].homing);  		sz.syncAsByte(_trip->tr[i].count); -		sz.syncAsByte(_trip->tr[i]._info.xw); +		sz.syncAsByte(_trip->tr[i]._info._xWidth);  		sz.syncAsByte(_trip->tr[i].xs);  		sz.syncAsByte(_trip->tr[i].ys);  		sz.syncAsByte(_trip->tr[i].totalnum); diff --git a/engines/avalanche/celer2.cpp b/engines/avalanche/celer2.cpp index 5d7dacf4e7..05065d5c65 100644 --- a/engines/avalanche/celer2.cpp +++ b/engines/avalanche/celer2.cpp @@ -304,7 +304,7 @@ void Celer::loadBackgroundSprites(byte number) {  				for (uint16 y = 0; y < _sprites[i]._yl + 1; y++) {  					for (uint16 x = 0; x < _sprites[i]._xl * 8; x++) -						*(byte *)_sprites[i]._picture.getBasePtr(x, y) = *_vm->_graphics->getPixel(_sprites[i]._x * 8 + x, _sprites[i]._y + y); +						*(byte *)_sprites[i]._picture.getBasePtr(x, y) = *(byte *)_vm->_graphics->_surface.getBasePtr(_sprites[i]._x * 8 + x, _sprites[i]._y + y);  				}  			} else {  				_sprites[i]._size = sprite._size; diff --git a/engines/avalanche/dropdown2.cpp b/engines/avalanche/dropdown2.cpp index 282f2f888f..53357691b9 100644 --- a/engines/avalanche/dropdown2.cpp +++ b/engines/avalanche/dropdown2.cpp @@ -236,7 +236,7 @@ void MenuBar::draw() {  	//setactivepage(3); -	_dr->_vm->_graphics->drawBar(0, 0, 640, 10, _dr->kMenuBackgroundColor); +	_dr->_vm->_graphics->_surface.fillRect(Common::Rect(0, 0, 640, 10), _dr->kMenuBackgroundColor);  	byte savecp = _dr->_vm->_gyro->cp;  	_dr->_vm->_gyro->cp = 3; @@ -331,7 +331,7 @@ void Dropdown::drawMenuText(int16 x, int16 y, char trigger, Common::String text,  	else  		ander = 170; -	fontType font; +	FontType font;  	for (byte i = 0; i < text.size(); i++) {  		for (byte j = 0; j < 8; j++) {  			byte idx = text[i]; @@ -355,7 +355,7 @@ void Dropdown::drawMenuText(int16 x, int16 y, char trigger, Common::String text,  		for (byte bit = 0; bit < 8; bit++) {  			byte pixelBit = (pixel >> bit) & 1;  			if (pixelBit) -				*_vm->_graphics->getPixel(x * 8 + i * 8 + 7 - bit, y + 8) = fontColor; +				*(byte *)_vm->_graphics->_surface.getBasePtr(x * 8 + i * 8 + 7 - bit, y + 8) = fontColor;  		}  	} diff --git a/engines/avalanche/graphics.cpp b/engines/avalanche/graphics.cpp index 0546ca5967..f7067c6bc6 100644 --- a/engines/avalanche/graphics.cpp +++ b/engines/avalanche/graphics.cpp @@ -41,12 +41,18 @@ namespace Avalanche {  const byte Graphics::kEgaPaletteIndex[16] = {0, 1, 2, 3, 4, 5, 20, 7, 56, 57, 58, 59, 60, 61, 62, 63}; - -  Graphics::Graphics(AvalancheEngine *vm) {  	_vm = vm;  } +Graphics::~Graphics() { +	_surface.free(); +	_magics.free(); +	_background.free(); +	_screen.free(); +	_scrolls.free(); +} +  void Graphics::init() {  	initGraphics(kScreenWidth, kScreenHeight * 2, true); // Doubling the height. @@ -60,63 +66,17 @@ void Graphics::init() {  		g_system->getPaletteManager()->setPalette(_egaPalette[kEgaPaletteIndex[i]], i, 1);  	_surface.create(kScreenWidth, kScreenHeight, ::Graphics::PixelFormat::createFormatCLUT8()); -  	_magics.create(kScreenWidth, kScreenHeight, ::Graphics::PixelFormat::createFormatCLUT8()); -  	_screen.create(kScreenWidth, kScreenHeight * 2, ::Graphics::PixelFormat::createFormatCLUT8()); -  	_scrolls.create(kScreenWidth, kScreenHeight, ::Graphics::PixelFormat::createFormatCLUT8());  } -Graphics::~Graphics() { -	_surface.free(); -	_magics.free(); -	_background.free(); -	_screen.free(); -	_scrolls.free(); -} - - -void Graphics::flesh_colors() +void Graphics::fleshColors()  {  	g_system->getPaletteManager()->setPalette(_egaPalette[39], 13, 1);  	g_system->getPaletteManager()->setPalette(_egaPalette[28], 5, 1);  } - -byte *Graphics::getPixel(int16 x, int16 y) { -	return (byte *)_surface.getBasePtr(x, y); -} - -void Graphics::drawFrame(int16 x1, int16 y1, int16 x2, int16 y2, int16 color) { -	_surface.frameRect(Common::Rect(x1, y1, x2, y2), color); -} - -void Graphics::drawBar(int16 x1, int16 y1, int16 x2, int16 y2, int16 color) { -	_surface.fillRect(Common::Rect(x1, y1, x2, y2), color); -} - -void Graphics::drawSprite(const SpriteInfo &sprite, byte picnum, int16 x, int16 y) { -	// First we make the pixels of the spirte blank. -	for (byte j = 0; j < sprite.yl; j++) -		for (byte i = 0; i < sprite.xl; i++) -			if (((*sprite.sil[picnum])[j][i / 8] >> ((7 - i % 8)) & 1) == 0) -				*getPixel(x + i, y + j) = 0; -	 -	// Then we draw the picture to the blank places. -	uint16 maniPos = 0; // Because the original manitype starts at 5!!! See Graphics.h for definition. - -	for (byte j = 0; j < sprite.yl; j++) -		for (int8 plane = 3; plane >= 0; plane--) // The planes are in the opposite way. -			for (uint16 i = 0; i  < sprite.xl; i += 8) { -				byte pixel = (*sprite.mani[picnum])[maniPos++]; -				for (byte bit = 0; bit < 8; bit++) { -					byte pixelBit = (pixel >> bit) & 1; -					*getPixel(x + i + 7 - bit, y + j) += (pixelBit << plane); -				}  -			} -} -  Common::Point Graphics::drawArc(::Graphics::Surface &surface, int16 x, int16 y, int16 stAngle, int16 endAngle, uint16 radius, byte color) {  	Common::Point endPoint;  	const double pi = 3.14; @@ -247,9 +207,7 @@ void Graphics::drawTriangle(::Graphics::Surface &surface, Common::Point *p, byte  	_scrolls.drawLine(p[2].x, p[2].y, p[0].x, p[0].y, color);  } - - -void Graphics::drawText(::Graphics::Surface &surface, const Common::String &text, fontType font, byte fontHeight, int16 x, int16 y, byte color) { +void Graphics::drawText(::Graphics::Surface &surface, const Common::String &text, FontType font, byte fontHeight, int16 x, int16 y, byte color) {  	for (byte i = 0; i < text.size(); i++)  		for (byte j = 0; j < fontHeight; j++) {  			byte pixel = font[(byte)text[i]][j];	 @@ -261,8 +219,6 @@ void Graphics::drawText(::Graphics::Surface &surface, const Common::String &text  		}  } - -  ::Graphics::Surface Graphics::loadPictureGraphic(Common::File &file) {  	// This function mimics Pascal's getimage().  	// The height and the width are stored in 2-2 bytes. We have to add 1 to each because Pascal stores the value of them -1. @@ -309,6 +265,27 @@ void Graphics::drawText(::Graphics::Surface &surface, const Common::String &text  	return picture;  } +void Graphics::drawSprite(const SpriteInfo &sprite, byte picnum, int16 x, int16 y) { +	// First we make the pixels of the spirte blank. +	for (byte j = 0; j < sprite._yLength; j++) +		for (byte i = 0; i < sprite._xLength; i++) +			if (((*sprite._sil[picnum])[j][i / 8] >> ((7 - i % 8)) & 1) == 0) +				*(byte *)_surface.getBasePtr(x + i, y + j) = 0; + +	// Then we draw the picture to the blank places. +	uint16 maniPos = 0; // Because the original manitype starts at 5!!! See Graphics.h for definition. + +	for (byte j = 0; j < sprite._yLength; j++) +		for (int8 plane = 3; plane >= 0; plane--) // The planes are in the opposite way. +			for (uint16 i = 0; i  < sprite._xLength; i += 8) { +				byte pixel = (*sprite._mani[picnum])[maniPos++]; +				for (byte bit = 0; bit < 8; bit++) { +					byte pixelBit = (pixel >> bit) & 1; +					*(byte *)_surface.getBasePtr(x + i + 7 - bit, y + j) += (pixelBit << plane); +				}  +			} +} +  void Graphics::drawPicture(::Graphics::Surface &target, ::Graphics::Surface &picture, uint16 destX, uint16 destY) {  	// Copy the picture to the given place on the screen.  	for (uint16 y = 0; y < picture.h; y++) diff --git a/engines/avalanche/graphics.h b/engines/avalanche/graphics.h index ac9e8bf91d..ad6a68252b 100644 --- a/engines/avalanche/graphics.h +++ b/engines/avalanche/graphics.h @@ -36,89 +36,57 @@  namespace Avalanche {  class AvalancheEngine; -typedef byte fontType[256][16]; // raw font type +typedef byte FontType[256][16]; // raw font type -typedef byte manitype[2049]; // manitype = array[5..2053] of byte;  +typedef byte ManiType[2049]; // manitype = array[5..2053] of byte;   // Be aware!!! -typedef byte siltype[51][11]; // 35, 4 +typedef byte SilType[51][11]; // 35, 4  class SpriteInfo {  public: -	byte xw; // x-width in bytes -	byte xl, yl; // x & y lengths of pictures - -	manitype *mani[24]; -	siltype *sil[24]; - -	uint16 size; // the size of one picture +	byte _xWidth; +	byte _xLength, _yLength; +	ManiType *_mani[24]; +	SilType *_sil[24]; +	uint16 _size; // The size of one picture.  }; -  class Graphics {  public:  	static const int16 kScreenWidth = 640;  	static const int16 kScreenHeight = 200; -  	static const uint16 kBackgroundWidth = kScreenWidth; -	static const byte kBackgroundHeight = 8 * 12080 / kScreenWidth; // With 640 width it's 151 +	static const byte kBackgroundHeight = 8 * 12080 / kScreenWidth; // With 640 width it's 151.  	// The 8 = number of bits in a byte, and 12080 comes from Lucerna::load().  	::Graphics::Surface _surface; -  	::Graphics::Surface _background; - -	::Graphics::Surface _magics; -	// Lucerna::draw_also_lines() draws the "magical" lines here. -	// Further information: https://github.com/urukgit/avalot/wiki/Also -	 -	::Graphics::Surface _screen; - +	::Graphics::Surface _magics; // Lucerna::draw_also_lines() draws the "magical" lines here. Further information: https://github.com/urukgit/avalot/wiki/Also  	::Graphics::Surface _scrolls; - -  	Graphics(AvalancheEngine *vm); - -	void init(); -  	~Graphics(); - -	void flesh_colors(); - -	byte *getPixel(int16 x, int16 y); - -	void drawFrame(int16 x1, int16 y1, int16 x2, int16 y2, int16 color); - -	void drawBar(int16 x1, int16 y1, int16 x2, int16 y2, int16 color); - -	void drawSprite(const SpriteInfo &sprite, byte picnum, int16 x, int16 y); - -	Common::Point drawArc(::Graphics::Surface &surface, int16 x, int16 y, int16 stAngle, int16 endAngle, uint16 radius, byte color); +	void init(); +	void fleshColors(); +	  	// Taken from Free Pascal's Procedure InternalEllipseDefault. Used to replace Pascal's procedure arc.  	// Returns the end point of the arc. (Needed in Lucerna::lucerna_clock().)  	// TODO: Make it more accurate later. - +	Common::Point drawArc(::Graphics::Surface &surface, int16 x, int16 y, int16 stAngle, int16 endAngle, uint16 radius, byte color); +	  	void drawPieSlice(::Graphics::Surface &surface, int16 x, int16 y, int16 stAngle, int16 endAngle, uint16 radius, byte color); -  	void drawTriangle(::Graphics::Surface &surface, Common::Point *p, byte color); - - - -	void drawText(::Graphics::Surface &surface, const Common::String &text, fontType font, byte fontHeight, int16 x, int16 y, byte color); - - +	void drawText(::Graphics::Surface &surface, const Common::String &text, FontType font, byte fontHeight, int16 x, int16 y, byte color);  	// The caller has to .free() the returned Surfaces!!! +	// Further information about these two: http://www.shikadi.net/moddingwiki/Raw_EGA_data  	::Graphics::Surface loadPictureGraphic(Common::File &file); // Reads Graphic-planar EGA data. -  	::Graphics::Surface loadPictureRow(Common::File &file, uint16 width, uint16 height); // Reads Row-planar EGA data. -	// Further information about these two: http://www.shikadi.net/moddingwiki/Raw_EGA_data +	void drawSprite(const SpriteInfo &sprite, byte picnum, int16 x, int16 y);  	void drawPicture(::Graphics::Surface &target, ::Graphics::Surface &picture, uint16 destX, uint16 destY); // Can't call .free() here. See Lucerna::showscore() for example. -  	void refreshScreen(); -  	void refreshBackground();  private: @@ -127,6 +95,7 @@ private:  	static const byte kEgaPaletteIndex[16];  	byte _egaPalette[64][3]; +	::Graphics::Surface _screen; // Only used in refreshScreen() to make it more optimized. (No recreation of it at every call of the function.)  };  } // End of namespace Avalanche diff --git a/engines/avalanche/gyro2.h b/engines/avalanche/gyro2.h index d70072777e..c11eb389cb 100644 --- a/engines/avalanche/gyro2.h +++ b/engines/avalanche/gyro2.h @@ -522,7 +522,7 @@ public:  	Common::String atkey; // For XTs, set to "alt-". For ATs, set to "f1".  	byte cp, ledstatus, defaultled; -	fontType characters; +	FontType characters;  	bool alive;  	byte buffer[2000];  	uint16 bufsize; diff --git a/engines/avalanche/lucerna2.cpp b/engines/avalanche/lucerna2.cpp index f225d0263e..4673a5f195 100644 --- a/engines/avalanche/lucerna2.cpp +++ b/engines/avalanche/lucerna2.cpp @@ -223,7 +223,7 @@ void Lucerna::load(byte n) {     // Load2, actually  	CursorMan.showMouse(false); -	_vm->_graphics->flesh_colors(); +	_vm->_graphics->fleshColors();  	xx = _vm->_gyro->strf(n);  	Common::String filename; @@ -1017,14 +1017,14 @@ void Lucerna::verte(Common::Point cursorPos) {  	// _vm->_trip->tr[0] : that's the only one we're interested in here. (It's Avalot.)  	if (cursorPos.x < _vm->_trip->tr[0].x)   		what = 1; -	else if (cursorPos.x > (_vm->_trip->tr[0].x + _vm->_trip->tr[0]._info.xl))  +	else if (cursorPos.x > (_vm->_trip->tr[0].x + _vm->_trip->tr[0]._info._xLength))   		what = 2;  	else  		what = 0; // On top  	if (cursorPos.y < _vm->_trip->tr[0].y)  		what += 3; -	else if (cursorPos.y > (_vm->_trip->tr[0].y + _vm->_trip->tr[0]._info.yl)) +	else if (cursorPos.y > (_vm->_trip->tr[0].y + _vm->_trip->tr[0]._info._yLength))  		what += 6;  	switch (what) { diff --git a/engines/avalanche/parser.cpp b/engines/avalanche/parser.cpp index 737bf87088..fc705abcd5 100644 --- a/engines/avalanche/parser.cpp +++ b/engines/avalanche/parser.cpp @@ -113,7 +113,7 @@ void Parser::plotText() {  	cursorOff(); -	_vm->_graphics->drawBar(24, 161, 640, 169, black); // Black out the line of the text. +	_vm->_graphics->_surface.fillRect(Common::Rect(24, 161, 640, 169), black); // Black out the line of the text.  	_vm->_graphics->drawText(_vm->_graphics->_surface, _vm->_parser->_inputText, _vm->_gyro->characters, 8, 24, 161, white); @@ -149,7 +149,7 @@ int16 Parser::pos(const Common::String &crit, const Common::String &src) {  void Parser::drawCursor() {  	// Draw the '_' character.  	for (byte bit = 0; bit < 8; bit++) -		*_vm->_graphics->getPixel(24 + _inputTextPos * 8 + 7 - bit, 168) = white; +		*(byte *)_vm->_graphics->_surface.getBasePtr(24 + _inputTextPos * 8 + 7 - bit, 168) = white;  	bytefield bf;  	bf.x1 = _inputTextPos + 1; @@ -166,7 +166,7 @@ void Parser::wipeText() {  	cursorOff(); -	_vm->_graphics->drawBar(24, 161, 640, 169, black); // Black out the line of the text. +	_vm->_graphics->_surface.fillRect(Common::Rect(24, 161, 640, 169), black); // Black out the line of the text.  	_quote = true;  	_inputTextPos = 0; diff --git a/engines/avalanche/scrolls2.cpp b/engines/avalanche/scrolls2.cpp index 3994f56569..143dd19a4b 100644 --- a/engines/avalanche/scrolls2.cpp +++ b/engines/avalanche/scrolls2.cpp @@ -72,7 +72,7 @@ void Scrolls::state(byte x) {     // Sets "Ready" light to whatever  	CursorMan.showMouse(false); -	_vm->_graphics->drawBar(419, 195, 438, 197, color); +	_vm->_graphics->_surface.fillRect(Common::Rect(419, 195, 438, 197), color);  	CursorMan.showMouse(true);  	_vm->_gyro->ledstatus = x; @@ -83,7 +83,7 @@ void Scrolls::easteregg() {  }  void Scrolls::say(int16 x, int16 y, Common::String z) { // Fancy FAST screenwriting -	fontType itw; +	FontType itw;  	byte lz = z.size();  	bool offset = x % 8 == 4; diff --git a/engines/avalanche/scrolls2.h b/engines/avalanche/scrolls2.h index 910285c65a..0238d33b16 100644 --- a/engines/avalanche/scrolls2.h +++ b/engines/avalanche/scrolls2.h @@ -92,7 +92,7 @@ public:  	void musical_scroll(); -	fontType ch[2]; +	FontType ch[2];  private:  	AvalancheEngine *_vm; diff --git a/engines/avalanche/trip6.cpp b/engines/avalanche/trip6.cpp index 7b13f13833..3f9c66c79a 100644 --- a/engines/avalanche/trip6.cpp +++ b/engines/avalanche/trip6.cpp @@ -88,28 +88,28 @@ void triptype::init(byte spritenum, bool do_check, Trip *tr) {  	inf.skip(16 - commentSize);  	a.num = inf.readByte(); -	_info.xl = inf.readByte(); -	_info.yl = inf.readByte(); +	_info._xLength = inf.readByte(); +	_info._yLength = inf.readByte();  	a.seq = inf.readByte(); -	_info.size = inf.readUint16LE(); +	_info._size = inf.readUint16LE();  	a.fgc = inf.readByte();  	a.bgc = inf.readByte();  	a.accinum = inf.readByte();  	totalnum = 0; // = 1; -	_info.xw = _info.xl / 8; -	if ((_info.xl % 8) > 0) -		_info.xw++; +	_info._xWidth = _info._xLength / 8; +	if ((_info._xLength % 8) > 0) +		_info._xWidth++;  	for (byte aa = 0; aa < /*nds*seq*/a.num; aa++) { -		_info.sil[totalnum] = new siltype[11 * (_info.yl + 1)]; +		_info._sil[totalnum] = new SilType[11 * (_info._yLength + 1)];  		//getmem(sil[totalnum-1], 11 * (a.yl + 1)); -		_info.mani[totalnum] = new manitype[_info.size - 6]; +		_info._mani[totalnum] = new ManiType[_info._size - 6];  		//getmem(mani[totalnum-1], a.size - 6); -		for (fv = 0; fv <= _info.yl; fv++) -			inf.read((*_info.sil[totalnum])[fv], _info.xw); +		for (fv = 0; fv <= _info._yLength; fv++) +			inf.read((*_info._sil[totalnum])[fv], _info._xWidth);  			//blockread(inf, (*sil[totalnum-1])[fv], xw); -		inf.read(*_info.mani[totalnum], _info.size - 6); +		inf.read(*_info._mani[totalnum], _info._size - 6);  		//blockread(inf, *mani[totalnum-1], a.size - 6);  		totalnum++; @@ -173,8 +173,8 @@ void triptype::appear(int16 wx, int16 wy, byte wf) {  bool triptype::collision_check() {  	for (byte fv = 0; fv < _tr->numtr; fv++)   		if (_tr->tr[fv].quick && (_tr->tr[fv].whichsprite != whichsprite) && -			((x + _info.xl) > _tr->tr[fv].x) && -			(x < (_tr->tr[fv].x + _tr->tr[fv]._info.xl)) && +			((x + _info._xLength) > _tr->tr[fv].x) && +			(x < (_tr->tr[fv].x + _tr->tr[fv]._info._xLength)) &&  			(_tr->tr[fv].y == y))   				return true; @@ -191,8 +191,8 @@ void triptype::walk() {  		if (r.x1 == 255)  			r.x1 = 0;  		r.y1 = y - 2; -		r.x2 = ((x + _info.xl) / 8) + 1; -		r.y2 = y + _info.yl + 2; +		r.x2 = ((x + _info._xLength) / 8) + 1; +		r.y2 = y + _info._yLength + 2;  		_tr->getset[1 - _tr->_vm->_gyro->cp].remember(r);  	} @@ -212,7 +212,7 @@ void triptype::walk() {  			return;  		} -		tc = _tr->checkfeet(x, x + _info.xl, oy[_tr->_vm->_gyro->cp], y, _info.yl) - 1; +		tc = _tr->checkfeet(x, x + _info._xLength, oy[_tr->_vm->_gyro->cp], y, _info._yLength) - 1;  		// -1  is because the modified array indexes of magics[] compared to Pascal .  		if ((tc != 255) & (!_tr->_vm->_gyro->doing_sprite_run)) { @@ -279,8 +279,8 @@ int8 triptype::sgn(int16 val) {  void triptype::walkto(byte pednum) {  	pednum--; // Pascal -> C conversion: different array indexes.  	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; +	hx = _tr->_vm->_gyro->peds[pednum].x - _info._xLength / 2; +	hy = _tr->_vm->_gyro->peds[pednum].y - _info._yLength;  	homing = true;  } @@ -344,7 +344,7 @@ void triptype::stopwalk() {  }  void triptype::chatter() { -	_tr->_vm->_gyro->talkx = x + _info.xl / 2; +	_tr->_vm->_gyro->talkx = x + _info._xLength / 2;  	_tr->_vm->_gyro->talky = y;  	_tr->_vm->_gyro->talkf = a.fgc;  	_tr->_vm->_gyro->talkb = a.bgc; @@ -362,7 +362,7 @@ void triptype::set_up_saver(trip_saver_type &v) {  	v.homing = homing;  	v.check_me = check_me;  	v.count = count; -	v.xw = _info.xw; +	v.xw = _info._xWidth;  	v.xs = xs;  	v.ys = ys;  	v.totalnum = totalnum; @@ -385,7 +385,7 @@ void triptype::unload_saver(trip_saver_type v) {  	homing = v.homing;  	check_me = v.check_me;  	count = v.count; -	_info.xw = v.xw; +	_info._xWidth = v.xw;  	xs = v.xs;  	ys = v.ys;  	totalnum = v.totalnum; @@ -417,13 +417,13 @@ triptype *triptype::done() {  	//  nds:=num div seq;  	totalnum--; -	_info.xw = _info.xl / 8; -	if ((_info.xl % 8) > 0) -		_info.xw++; +	_info._xWidth = _info._xLength / 8; +	if ((_info._xLength % 8) > 0) +		_info._xWidth++;  	for (byte aa = 0; aa < /*nds*seq*/ a.num; aa++) {  		totalnum--; -		delete[] _info.mani[totalnum]; -		delete[] _info.sil[totalnum]; +		delete[] _info._mani[totalnum]; +		delete[] _info._sil[totalnum];  	}  	quick = false; @@ -1115,7 +1115,7 @@ void Trip::rwsp(byte t, byte dir) {  void Trip::apped(byte trn, byte np) {  	trn--;  	np--; -	tr[trn].appear(_vm->_gyro->peds[np].x - tr[trn]._info.xl / 2, _vm->_gyro->peds[np].y - tr[trn]._info.yl, _vm->_gyro->peds[np].dir); +	tr[trn].appear(_vm->_gyro->peds[np].x - tr[trn]._info._xLength / 2, _vm->_gyro->peds[np].y - tr[trn]._info._yLength, _vm->_gyro->peds[np].dir);  	rwsp(trn, _vm->_gyro->peds[np].dir);  } @@ -1206,9 +1206,9 @@ void Trip::arrow_procs(byte tripnum) {  		// This is so if: a) the bottom of the arrow is below Avvy's head,  		// b) the left of the arrow is left of the right of Avvy's head, and  		// c) the right of the arrow is right of the left of Avvy's head. -		if (((tr[tripnum].y + tr[tripnum]._info.yl) >= tr[0].y) // A -				&& (tr[tripnum].x <= (tr[0].x + tr[0]._info.xl)) // B -				&& ((tr[tripnum].x + tr[tripnum]._info.xl) >= tr[0].x)) { // C +		if (((tr[tripnum].y + tr[tripnum]._info._yLength) >= tr[0].y) // A +				&& (tr[tripnum].x <= (tr[0].x + tr[0]._info._xLength)) // B +				&& ((tr[tripnum].x + tr[tripnum]._info._xLength) >= tr[0].x)) { // C  			// OK, it's hit him... what now?  			tr[1].call_eachstep = false; // prevent recursion. @@ -1547,7 +1547,7 @@ void Trip::fliproom(byte room, byte ped) {  bool Trip::infield(byte which) {  	which--; // Pascal -> C: different array indexes. -	int16 yy = tr[0].y + tr[0]._info.yl; +	int16 yy = tr[0].y + tr[0]._info._yLength;  	return (tr[0].x >= _vm->_gyro->fields[which].x1) && (tr[0].x <= _vm->_gyro->fields[which].x2)  		&& (yy >= _vm->_gyro->fields[which].y1) && (yy <= _vm->_gyro->fields[which].y2); @@ -1561,7 +1561,7 @@ bool Trip::neardoor() {  	}  	int16 ux = tr[0].x; -	int16 uy = tr[0].y + tr[0]._info.yl; +	int16 uy = tr[0].y + tr[0]._info._yLength;  	bool nd = false;  	for (byte fv = 8; fv < _vm->_gyro->numfields; fv++)  		if ((ux >= _vm->_gyro->fields[fv].x1) && (ux <= _vm->_gyro->fields[fv].x2) | 
