diff options
| -rw-r--r-- | engines/hugo/console.cpp | 10 | ||||
| -rw-r--r-- | engines/hugo/dialogs.cpp | 82 | ||||
| -rw-r--r-- | engines/hugo/dialogs.h | 4 | ||||
| -rw-r--r-- | engines/hugo/display.cpp | 36 | ||||
| -rw-r--r-- | engines/hugo/file.cpp | 168 | ||||
| -rw-r--r-- | engines/hugo/game.h | 100 | ||||
| -rw-r--r-- | engines/hugo/hugo.cpp | 82 | ||||
| -rw-r--r-- | engines/hugo/hugo.h | 26 | ||||
| -rw-r--r-- | engines/hugo/intro.cpp | 32 | ||||
| -rw-r--r-- | engines/hugo/inventory.cpp | 2 | ||||
| -rw-r--r-- | engines/hugo/mouse.cpp | 28 | ||||
| -rw-r--r-- | engines/hugo/object.cpp | 386 | ||||
| -rw-r--r-- | engines/hugo/object.h | 10 | ||||
| -rw-r--r-- | engines/hugo/object_v1d.cpp | 254 | ||||
| -rw-r--r-- | engines/hugo/object_v1w.cpp | 244 | ||||
| -rw-r--r-- | engines/hugo/object_v2d.cpp | 248 | ||||
| -rw-r--r-- | engines/hugo/object_v3d.cpp | 164 | ||||
| -rw-r--r-- | engines/hugo/parser.cpp | 74 | ||||
| -rw-r--r-- | engines/hugo/parser.h | 28 | ||||
| -rw-r--r-- | engines/hugo/parser_v1d.cpp | 130 | ||||
| -rw-r--r-- | engines/hugo/parser_v1w.cpp | 32 | ||||
| -rw-r--r-- | engines/hugo/parser_v2d.cpp | 18 | ||||
| -rw-r--r-- | engines/hugo/parser_v3d.cpp | 166 | ||||
| -rw-r--r-- | engines/hugo/route.cpp | 106 | ||||
| -rw-r--r-- | engines/hugo/schedule.cpp | 124 | ||||
| -rw-r--r-- | engines/hugo/sound.cpp | 4 | 
26 files changed, 1279 insertions, 1279 deletions
| diff --git a/engines/hugo/console.cpp b/engines/hugo/console.cpp index 19fd91e3fa..414c86e1d4 100644 --- a/engines/hugo/console.cpp +++ b/engines/hugo/console.cpp @@ -96,8 +96,8 @@ bool HugoConsole::Cmd_listObjects(int argc, const char **argv) {  	DebugPrintf("Available objects for this game are:\n");  	for (int i = 0; i < _vm->_object->_numObj; i++) { -		if (_vm->_object->_objects[i].genericCmd & TAKE) -			DebugPrintf("%2d - %s\n", i, _vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 2)); +		if (_vm->_object->_objects[i]._genericCmd & TAKE) +			DebugPrintf("%2d - %s\n", i, _vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 2));  	}  	return true;  } @@ -111,7 +111,7 @@ bool HugoConsole::Cmd_getObject(int argc, const char **argv) {  		return true;  	} -	if (_vm->_object->_objects[strToInt(argv[1])].genericCmd & TAKE) +	if (_vm->_object->_objects[strToInt(argv[1])]._genericCmd & TAKE)  		_vm->_parser->takeObject(&_vm->_object->_objects[strToInt(argv[1])]);  	else  		DebugPrintf("Object not available\n"); @@ -129,7 +129,7 @@ bool HugoConsole::Cmd_getAllObjects(int argc, const char **argv) {  	}  	for (int i = 0; i < _vm->_object->_numObj; i++) { -		if (_vm->_object->_objects[i].genericCmd & TAKE) +		if (_vm->_object->_objects[i]._genericCmd & TAKE)  			_vm->_parser->takeObject(&_vm->_object->_objects[i]);  	} @@ -145,7 +145,7 @@ bool HugoConsole::Cmd_boundaries(int argc, const char **argv) {  		return true;  	} -	_vm->getGameStatus().showBoundariesFl = !_vm->getGameStatus().showBoundariesFl; +	_vm->getGameStatus()._showBoundariesFl = !_vm->getGameStatus()._showBoundariesFl;  	return false;  } diff --git a/engines/hugo/dialogs.cpp b/engines/hugo/dialogs.cpp index e0b0198470..0efd47a3bd 100644 --- a/engines/hugo/dialogs.cpp +++ b/engines/hugo/dialogs.cpp @@ -34,19 +34,19 @@  namespace Hugo { -TopMenu::TopMenu(HugoEngine *vm) : Dialog(0, 0, kMenuWidth, kMenuHeight), arrayBmp(0), arraySize(0), +TopMenu::TopMenu(HugoEngine *vm) : Dialog(0, 0, kMenuWidth, kMenuHeight), _arrayBmp(0), _arraySize(0),  	_vm(vm) {  	init();  }  TopMenu::~TopMenu() { -	for (int i = 0; i < arraySize; i++) { -		arrayBmp[i * 2]->free(); -		delete arrayBmp[i * 2]; -		arrayBmp[i * 2 + 1]->free(); -		delete arrayBmp[i * 2 + 1]; +	for (int i = 0; i < _arraySize; i++) { +		_arrayBmp[i * 2]->free(); +		delete _arrayBmp[i * 2]; +		_arrayBmp[i * 2 + 1]->free(); +		delete _arrayBmp[i * 2 + 1];  	} -	delete[] arrayBmp; +	delete[] _arrayBmp;  }  void TopMenu::init() { @@ -108,23 +108,23 @@ void TopMenu::reflowLayout() {  	x += kButtonWidth + kButtonPad;  	// Set the graphics to the 'on' buttons, except for the variable ones -	_whatButton->setGfx(arrayBmp[4 * kMenuWhat + scale - 1]); -	_musicButton->setGfx(arrayBmp[4 * kMenuMusic + scale - 1 + ((_vm->_config.musicFl) ? 0 : 2)]); -	_soundFXButton->setGfx(arrayBmp[4 * kMenuSoundFX + scale - 1 + ((_vm->_config.soundFl) ? 0 : 2)]); -	_saveButton->setGfx(arrayBmp[4 * kMenuSave + scale - 1]); -	_loadButton->setGfx(arrayBmp[4 * kMenuLoad + scale - 1]); -	_recallButton->setGfx(arrayBmp[4 * kMenuRecall + scale - 1]); -	_turboButton->setGfx(arrayBmp[4 * kMenuTurbo + scale - 1 + ((_vm->_config.turboFl) ? 0 : 2)]); -	_lookButton->setGfx(arrayBmp[4 * kMenuLook + scale - 1]); -	_inventButton->setGfx(arrayBmp[4 * kMenuInventory + scale - 1]); +	_whatButton->setGfx(_arrayBmp[4 * kMenuWhat + scale - 1]); +	_musicButton->setGfx(_arrayBmp[4 * kMenuMusic + scale - 1 + ((_vm->_config.musicFl) ? 0 : 2)]); +	_soundFXButton->setGfx(_arrayBmp[4 * kMenuSoundFX + scale - 1 + ((_vm->_config.soundFl) ? 0 : 2)]); +	_saveButton->setGfx(_arrayBmp[4 * kMenuSave + scale - 1]); +	_loadButton->setGfx(_arrayBmp[4 * kMenuLoad + scale - 1]); +	_recallButton->setGfx(_arrayBmp[4 * kMenuRecall + scale - 1]); +	_turboButton->setGfx(_arrayBmp[4 * kMenuTurbo + scale - 1 + ((_vm->_config.turboFl) ? 0 : 2)]); +	_lookButton->setGfx(_arrayBmp[4 * kMenuLook + scale - 1]); +	_inventButton->setGfx(_arrayBmp[4 * kMenuInventory + scale - 1]);  }  void TopMenu::loadBmpArr(Common::SeekableReadStream &in) { -	arraySize = in.readUint16BE(); +	_arraySize = in.readUint16BE(); -	delete arrayBmp; -	arrayBmp = new Graphics::Surface *[arraySize * 2]; -	for (int i = 0; i < arraySize; i++) { +	delete _arrayBmp; +	_arrayBmp = new Graphics::Surface *[_arraySize * 2]; +	for (int i = 0; i < _arraySize; i++) {  		uint16 bmpSize = in.readUint16BE();  		uint32 filPos = in.pos();  		Common::SeekableSubReadStream stream(&in, filPos, filPos + bmpSize); @@ -137,28 +137,28 @@ void TopMenu::loadBmpArr(Common::SeekableReadStream &in) {  		if (bitmapSrc->format.bytesPerPixel == 1)  			error("TopMenu::loadBmpArr(): Unhandled paletted image"); -		arrayBmp[i * 2] = bitmapSrc->convertTo(g_system->getOverlayFormat()); -		arrayBmp[i * 2 + 1] = new Graphics::Surface(); -		arrayBmp[i * 2 + 1]->create(arrayBmp[i * 2]->w * 2, arrayBmp[i * 2]->h * 2, g_system->getOverlayFormat()); -		byte *src = (byte *)arrayBmp[i * 2]->pixels; -		byte *dst = (byte *)arrayBmp[i * 2 + 1]->pixels; - -		for (int j = 0; j < arrayBmp[i * 2]->h; j++) { -			src = (byte *)arrayBmp[i * 2]->getBasePtr(0, j); -			dst = (byte *)arrayBmp[i * 2 + 1]->getBasePtr(0, j * 2); -			for (int k = arrayBmp[i * 2]->w; k > 0; k--) { -				for (int m = arrayBmp[i * 2]->format.bytesPerPixel; m > 0; m--) { +		_arrayBmp[i * 2] = bitmapSrc->convertTo(g_system->getOverlayFormat()); +		_arrayBmp[i * 2 + 1] = new Graphics::Surface(); +		_arrayBmp[i * 2 + 1]->create(_arrayBmp[i * 2]->w * 2, _arrayBmp[i * 2]->h * 2, g_system->getOverlayFormat()); +		byte *src = (byte *)_arrayBmp[i * 2]->pixels; +		byte *dst = (byte *)_arrayBmp[i * 2 + 1]->pixels; + +		for (int j = 0; j < _arrayBmp[i * 2]->h; j++) { +			src = (byte *)_arrayBmp[i * 2]->getBasePtr(0, j); +			dst = (byte *)_arrayBmp[i * 2 + 1]->getBasePtr(0, j * 2); +			for (int k = _arrayBmp[i * 2]->w; k > 0; k--) { +				for (int m = _arrayBmp[i * 2]->format.bytesPerPixel; m > 0; m--) {  					*dst++ = *src++;  				} -				src -= arrayBmp[i * 2]->format.bytesPerPixel; +				src -= _arrayBmp[i * 2]->format.bytesPerPixel; -				for (int m = arrayBmp[i * 2]->format.bytesPerPixel; m > 0; m--) { +				for (int m = _arrayBmp[i * 2]->format.bytesPerPixel; m > 0; m--) {  					*dst++ = *src++;  				}  			} -			src = (byte *)arrayBmp[i * 2 + 1]->getBasePtr(0, j * 2); -			dst = (byte *)arrayBmp[i * 2 + 1]->getBasePtr(0, j * 2 + 1); -			for (int k = arrayBmp[i * 2 + 1]->pitch; k > 0; k--) { +			src = (byte *)_arrayBmp[i * 2 + 1]->getBasePtr(0, j * 2); +			dst = (byte *)_arrayBmp[i * 2 + 1]->getBasePtr(0, j * 2 + 1); +			for (int k = _arrayBmp[i * 2 + 1]->pitch; k > 0; k--) {  				*dst++ = *src++;  			}  		} @@ -171,12 +171,12 @@ void TopMenu::handleCommand(GUI::CommandSender *sender, uint32 command, uint32 d  	switch (command) {  	case kCmdWhat:  		close(); -		_vm->getGameStatus().helpFl = true; +		_vm->getGameStatus()._helpFl = true;  		break;  	case kCmdMusic:  		_vm->_sound->toggleMusic(); -		_musicButton->setGfx(arrayBmp[4 * kMenuMusic + (g_system->getOverlayWidth() > 320 ? 2 : 1) - 1 + ((_vm->_config.musicFl) ? 0 : 2)]); +		_musicButton->setGfx(_arrayBmp[4 * kMenuMusic + (g_system->getOverlayWidth() > 320 ? 2 : 1) - 1 + ((_vm->_config.musicFl) ? 0 : 2)]);  		_musicButton->draw();  		g_gui.theme()->updateScreen();  		g_system->updateScreen(); @@ -194,8 +194,8 @@ void TopMenu::handleCommand(GUI::CommandSender *sender, uint32 command, uint32 d  		break;  	case kCmdSave:  		close(); -		if (_vm->getGameStatus().viewState == kViewPlay) { -			if (_vm->getGameStatus().gameOverFl) +		if (_vm->getGameStatus()._viewState == kViewPlay) { +			if (_vm->getGameStatus()._gameOverFl)  				_vm->gameOverMsg();  			else  				_vm->_file->saveGame(-1, Common::String()); @@ -207,7 +207,7 @@ void TopMenu::handleCommand(GUI::CommandSender *sender, uint32 command, uint32 d  		break;  	case kCmdRecall:  		close(); -		_vm->getGameStatus().recallFl = true; +		_vm->getGameStatus()._recallFl = true;  		break;  	case kCmdTurbo:  		_vm->_parser->switchTurbo(); diff --git a/engines/hugo/dialogs.h b/engines/hugo/dialogs.h index 4e710ff2f8..114bcf56a9 100644 --- a/engines/hugo/dialogs.h +++ b/engines/hugo/dialogs.h @@ -94,8 +94,8 @@ protected:  	GUI::PicButtonWidget *_lookButton;  	GUI::PicButtonWidget *_inventButton; -	Graphics::Surface **arrayBmp; -	uint16 arraySize; +	Graphics::Surface **_arrayBmp; +	uint16 _arraySize;  };  class EntryDialog : public GUI::Dialog { diff --git a/engines/hugo/display.cpp b/engines/hugo/display.cpp index fa18d6b791..7028195dd4 100644 --- a/engines/hugo/display.cpp +++ b/engines/hugo/display.cpp @@ -239,13 +239,13 @@ void Screen::setBackgroundColor(const uint16 color) {  void Screen::displayFrame(const int sx, const int sy, seq_t *seq, const bool foreFl) {  	debugC(3, kDebugDisplay, "displayFrame(%d, %d, seq, %d)", sx, sy, (foreFl) ? 1 : 0); -	image_pt image = seq->imagePtr;                 // Ptr to object image data +	image_pt image = seq->_imagePtr;                 // Ptr to object image data  	image_pt subFrontBuffer = &_frontBuffer[sy * kXPix + sx]; // Ptr to offset in _frontBuffer -	int16 frontBufferwrap = kXPix - seq->x2 - 1;     // Wraps dest_p after each line -	int16 imageWrap = seq->bytesPerLine8 - seq->x2 - 1; +	int16 frontBufferwrap = kXPix - seq->_x2 - 1;     // Wraps dest_p after each line +	int16 imageWrap = seq->_bytesPerLine8 - seq->_x2 - 1;  	overlayState_t overlayState = (foreFl) ? kOvlForeground : kOvlUndef; // Overlay state of object -	for (uint16 y = 0; y < seq->lines; y++) {       // Each line in object -		for (uint16 x = 0; x <= seq->x2; x++) { +	for (uint16 y = 0; y < seq->_lines; y++) {       // Each line in object +		for (uint16 x = 0; x <= seq->_x2; x++) {  			if (*image) {                           // Non-transparent  				byte ovlBound = _vm->_object->getFirstOverlay((uint16)(subFrontBuffer - _frontBuffer) >> 3); // Ptr into overlay bits  				if (ovlBound & (0x80 >> ((uint16)(subFrontBuffer - _frontBuffer) & 7))) { // Overlay bit is set @@ -265,7 +265,7 @@ void Screen::displayFrame(const int sx, const int sy, seq_t *seq, const bool for  	}  	// Add this rectangle to the display list -	displayList(kDisplayAdd, sx, sy, seq->x2 + 1, seq->lines); +	displayList(kDisplayAdd, sx, sy, seq->_x2 + 1, seq->_lines);  }  /** @@ -359,8 +359,8 @@ void Screen::displayList(dupdate_t update, ...) {  		// Don't blit if newscreen just loaded because _frontBuffer will  		// get blitted via InvalidateRect() at end of this cycle  		// and blitting here causes objects to appear too soon. -		if (_vm->getGameStatus().newScreenFl) { -			_vm->getGameStatus().newScreenFl = false; +		if (_vm->getGameStatus()._newScreenFl) { +			_vm->getGameStatus()._newScreenFl = false;  			break;  		} @@ -563,7 +563,7 @@ void Screen::initNewScreenDisplay() {  	displayBackground();  	// Stop premature object display in Display_list(D_DISPLAY) -	_vm->getGameStatus().newScreenFl = true; +	_vm->getGameStatus()._newScreenFl = true;  }  /** @@ -650,19 +650,19 @@ bool Screen::isOverlapping(const rect_t *rectA, const rect_t *rectB) const {   * White       = Fix objects, parts of background   */  void Screen::drawBoundaries() { -	if (!_vm->getGameStatus().showBoundariesFl) +	if (!_vm->getGameStatus()._showBoundariesFl)  		return;  	_vm->_mouse->drawHotspots();  	for (int i = 0; i < _vm->_object->_numObj; i++) {  		object_t *obj = &_vm->_object->_objects[i]; // Get pointer to object -		if (obj->screenIndex == *_vm->_screen_p) { -			if ((obj->currImagePtr != 0) && (obj->cycling != kCycleInvisible)) -				drawRectangle(false, obj->x + obj->currImagePtr->x1, obj->y + obj->currImagePtr->y1, -				                     obj->x + obj->currImagePtr->x2, obj->y + obj->currImagePtr->y2, _TLIGHTGREEN); -			else if ((obj->currImagePtr == 0) && (obj->vxPath != 0) && !obj->carriedFl) -				drawRectangle(false, obj->oldx, obj->oldy, obj->oldx + obj->vxPath, obj->oldy + obj->vyPath, _TBRIGHTWHITE); +		if (obj->_screenIndex == *_vm->_screen_p) { +			if ((obj->_currImagePtr != 0) && (obj->_cycling != kCycleInvisible)) +				drawRectangle(false, obj->_x + obj->_currImagePtr->_x1, obj->_y + obj->_currImagePtr->_y1, +				                     obj->_x + obj->_currImagePtr->_x2, obj->_y + obj->_currImagePtr->_y2, _TLIGHTGREEN); +			else if ((obj->_currImagePtr == 0) && (obj->_vxPath != 0) && !obj->_carriedFl) +				drawRectangle(false, obj->_oldx, obj->_oldy, obj->_oldx + obj->_vxPath, obj->_oldy + obj->_vyPath, _TBRIGHTWHITE);  		}  	}  	g_system->copyRectToScreen(_frontBuffer, 320, 0, 0, 320, 200); @@ -735,7 +735,7 @@ overlayState_t Screen_v1d::findOvl(seq_t *seq_p, image_pt dst_p, uint16 y) {  	uint16 index = (uint16)(dst_p - _frontBuffer) >> 3; -	for (int i = 0; i < seq_p->lines-y; i++) {      // Each line in object +	for (int i = 0; i < seq_p->_lines-y; i++) {      // Each line in object  		if (_vm->_object->getBaseBoundary(index))   // If any overlay base byte is non-zero then the object is foreground, else back.  			return kOvlForeground;  		index += kCompLineSize; @@ -802,7 +802,7 @@ void Screen_v1w::loadFontArr(Common::ReadStream &in) {  overlayState_t Screen_v1w::findOvl(seq_t *seq_p, image_pt dst_p, uint16 y) {  	debugC(4, kDebugDisplay, "findOvl()"); -	for (; y < seq_p->lines; y++) {                 // Each line in object +	for (; y < seq_p->_lines; y++) {                 // Each line in object  		byte ovb = _vm->_object->getBaseBoundary((uint16)(dst_p - _frontBuffer) >> 3); // Ptr into overlay bits  		if (ovb & (0x80 >> ((uint16)(dst_p - _frontBuffer) & 7))) // Overlay bit is set  			return kOvlForeground;                  // Found a bit - must be foreground diff --git a/engines/hugo/file.cpp b/engines/hugo/file.cpp index f94f3b0443..8b03a9a430 100644 --- a/engines/hugo/file.cpp +++ b/engines/hugo/file.cpp @@ -143,11 +143,11 @@ seq_t *FileManager::readPCX(Common::ReadStream &f, seq_t *seqPtr, byte *imagePtr  	// Find size of image data in 8-bit DIB format  	// Note save of x2 - marks end of valid data before garbage  	uint16 bytesPerLine4 = PCC_header.bytesPerLine * 4; // 4-bit bpl -	seqPtr->bytesPerLine8 = bytesPerLine4 * 2;      // 8-bit bpl -	seqPtr->lines = PCC_header.y2 - PCC_header.y1 + 1; -	seqPtr->x2 = PCC_header.x2 - PCC_header.x1 + 1; +	seqPtr->_bytesPerLine8 = bytesPerLine4 * 2;      // 8-bit bpl +	seqPtr->_lines = PCC_header.y2 - PCC_header.y1 + 1; +	seqPtr->_x2 = PCC_header.x2 - PCC_header.x1 + 1;  	// Size of the image -	uint16 size = seqPtr->lines * seqPtr->bytesPerLine8; +	uint16 size = seqPtr->_lines * seqPtr->_bytesPerLine8;  	// Allocate memory for image data if NULL  	if (imagePtr == 0) @@ -155,13 +155,13 @@ seq_t *FileManager::readPCX(Common::ReadStream &f, seq_t *seqPtr, byte *imagePtr  	assert(imagePtr); -	seqPtr->imagePtr = imagePtr; +	seqPtr->_imagePtr = imagePtr;  	// Process the image data, converting to 8-bit DIB format  	uint16 y = 0;                                   // Current line index  	byte  pline[kXPix];                             // Hold 4 planes of data  	byte  *p = pline;                               // Ptr to above -	while (y < seqPtr->lines) { +	while (y < seqPtr->_lines) {  		byte c = f.readByte();  		if ((c & kRepeatMask) == kRepeatMask) {  			byte d = f.readByte();                  // Read data byte @@ -193,7 +193,7 @@ void FileManager::readImage(const int objNum, object_t *objPtr) {  		uint32 objLength;  	}; -	if (!objPtr->seqNumb)                           // This object has no images +	if (!objPtr->_seqNumb)                           // This object has no images  		return;  	if (_vm->isPacked()) { @@ -206,9 +206,9 @@ void FileManager::readImage(const int objNum, object_t *objPtr) {  		_objectsArchive.seek(objBlock.objOffset, SEEK_SET);  	} else {  		Common::String buf; -		buf = _vm->_picDir + Common::String(_vm->_text->getNoun(objPtr->nounIndex, 0)) + ".PIX"; +		buf = _vm->_picDir + Common::String(_vm->_text->getNoun(objPtr->_nounIndex, 0)) + ".PIX";  		if (!_objectsArchive.open(buf)) { -			buf = Common::String(_vm->_text->getNoun(objPtr->nounIndex, 0)) + ".PIX"; +			buf = Common::String(_vm->_text->getNoun(objPtr->_nounIndex, 0)) + ".PIX";  			if (!_objectsArchive.open(buf))  				error("File not found: %s", buf.c_str());  		} @@ -218,60 +218,60 @@ void FileManager::readImage(const int objNum, object_t *objPtr) {  	seq_t *seqPtr = 0;                              // Ptr to sequence structure  	// Now read the images into an images list -	for (int j = 0; j < objPtr->seqNumb; j++) {     // for each sequence -		for (int k = 0; k < objPtr->seqList[j].imageNbr; k++) { // each image +	for (int j = 0; j < objPtr->_seqNumb; j++) {     // for each sequence +		for (int k = 0; k < objPtr->_seqList[j]._imageNbr; k++) { // each image  			if (k == 0) {                           // First image  				// Read this image - allocate both seq and image memory -				seqPtr = readPCX(_objectsArchive, 0, 0, firstImgFl, _vm->_text->getNoun(objPtr->nounIndex, 0)); -				objPtr->seqList[j].seqPtr = seqPtr; +				seqPtr = readPCX(_objectsArchive, 0, 0, firstImgFl, _vm->_text->getNoun(objPtr->_nounIndex, 0)); +				objPtr->_seqList[j]._seqPtr = seqPtr;  				firstImgFl = false;  			} else {                                // Subsequent image  				// Read this image - allocate both seq and image memory -				seqPtr->nextSeqPtr = readPCX(_objectsArchive, 0, 0, firstImgFl, _vm->_text->getNoun(objPtr->nounIndex, 0)); -				seqPtr = seqPtr->nextSeqPtr; +				seqPtr->_nextSeqPtr = readPCX(_objectsArchive, 0, 0, firstImgFl, _vm->_text->getNoun(objPtr->_nounIndex, 0)); +				seqPtr = seqPtr->_nextSeqPtr;  			}  			// Compute the bounding box - x1, x2, y1, y2  			// Note use of x2 - marks end of valid data in row -			uint16 x2 = seqPtr->x2; -			seqPtr->x1 = seqPtr->x2; -			seqPtr->x2 = 0; -			seqPtr->y1 = seqPtr->lines; -			seqPtr->y2 = 0; - -			image_pt dibPtr = seqPtr->imagePtr; -			for (int y = 0; y < seqPtr->lines; y++, dibPtr += seqPtr->bytesPerLine8 - x2) { +			uint16 x2 = seqPtr->_x2; +			seqPtr->_x1 = seqPtr->_x2; +			seqPtr->_x2 = 0; +			seqPtr->_y1 = seqPtr->_lines; +			seqPtr->_y2 = 0; + +			image_pt dibPtr = seqPtr->_imagePtr; +			for (int y = 0; y < seqPtr->_lines; y++, dibPtr += seqPtr->_bytesPerLine8 - x2) {  				for (int x = 0; x < x2; x++) {  					if (*dibPtr++) {                // Some data found -						if (x < seqPtr->x1) -							seqPtr->x1 = x; -						if (x > seqPtr->x2) -							seqPtr->x2 = x; -						if (y < seqPtr->y1) -							seqPtr->y1 = y; -						if (y > seqPtr->y2) -							seqPtr->y2 = y; +						if (x < seqPtr->_x1) +							seqPtr->_x1 = x; +						if (x > seqPtr->_x2) +							seqPtr->_x2 = x; +						if (y < seqPtr->_y1) +							seqPtr->_y1 = y; +						if (y > seqPtr->_y2) +							seqPtr->_y2 = y;  					}  				}  			}  		}  		assert(seqPtr); -		seqPtr->nextSeqPtr = objPtr->seqList[j].seqPtr; // loop linked list to head +		seqPtr->_nextSeqPtr = objPtr->_seqList[j]._seqPtr; // loop linked list to head  	}  	// Set the current image sequence to first or last -	switch (objPtr->cycling) { +	switch (objPtr->_cycling) {  	case kCycleInvisible:                           // (May become visible later)  	case kCycleAlmostInvisible:  	case kCycleNotCycling:  	case kCycleForward: -		objPtr->currImagePtr = objPtr->seqList[0].seqPtr; +		objPtr->_currImagePtr = objPtr->_seqList[0]._seqPtr;  		break;  	case kCycleBackward: -		objPtr->currImagePtr = seqPtr; +		objPtr->_currImagePtr = seqPtr;  		break;  	default: -		warning("Unexpected cycling: %d", objPtr->cycling); +		warning("Unexpected cycling: %d", objPtr->_cycling);  	}  	if (!_vm->isPacked()) @@ -298,25 +298,25 @@ sound_pt FileManager::getSound(const int16 sound, uint16 *size) {  	if (!has_read_header) {  		for (int i = 0; i < kMaxSounds; i++) { -			s_hdr[i].size = fp.readUint16LE(); -			s_hdr[i].offset = fp.readUint32LE(); +			s_hdr[i]._size = fp.readUint16LE(); +			s_hdr[i]._offset = fp.readUint32LE();  		}  		if (fp.err())  			error("Wrong sound file format");  		has_read_header = true;  	} -	*size = s_hdr[sound].size; +	*size = s_hdr[sound]._size;  	if (*size == 0)  		error("Wrong sound file format or missing sound %d", sound);  	// Allocate memory for sound or music, if possible -	sound_pt soundPtr = (byte *)malloc(s_hdr[sound].size); // Ptr to sound data +	sound_pt soundPtr = (byte *)malloc(s_hdr[sound]._size); // Ptr to sound data  	assert(soundPtr);  	// Seek to data and read it -	fp.seek(s_hdr[sound].offset, SEEK_SET); -	if (fp.read(soundPtr, s_hdr[sound].size) != s_hdr[sound].size) +	fp.seek(s_hdr[sound]._offset, SEEK_SET); +	if (fp.read(soundPtr, s_hdr[sound]._size) != s_hdr[sound]._size)  		error("Wrong sound file format");  	fp.close(); @@ -391,13 +391,13 @@ bool FileManager::saveGame(const int16 slot, const Common::String &descrip) {  	out->writeSint16BE(_vm->getScore());  	// Save story mode -	out->writeByte((gameStatus.storyModeFl) ? 1 : 0); +	out->writeByte((gameStatus._storyModeFl) ? 1 : 0);  	// Save jumpexit mode  	out->writeByte((_vm->_mouse->getJumpExitFl()) ? 1 : 0);  	// Save gameover status -	out->writeByte((gameStatus.gameOverFl) ? 1 : 0); +	out->writeByte((gameStatus._gameOverFl) ? 1 : 0);  	// Save screen states  	for (int i = 0; i < _vm->_numStates; i++) @@ -408,17 +408,17 @@ bool FileManager::saveGame(const int16 slot, const Common::String &descrip) {  	_vm->_screen->savePal(out);  	// Save maze status -	out->writeByte((_vm->_maze.enabledFl) ? 1 : 0); -	out->writeByte(_vm->_maze.size); -	out->writeSint16BE(_vm->_maze.x1); -	out->writeSint16BE(_vm->_maze.y1); -	out->writeSint16BE(_vm->_maze.x2); -	out->writeSint16BE(_vm->_maze.y2); -	out->writeSint16BE(_vm->_maze.x3); -	out->writeSint16BE(_vm->_maze.x4); -	out->writeByte(_vm->_maze.firstScreenIndex); - -	out->writeByte((byte)_vm->getGameStatus().viewState); +	out->writeByte((_vm->_maze._enabledFl) ? 1 : 0); +	out->writeByte(_vm->_maze._size); +	out->writeSint16BE(_vm->_maze._x1); +	out->writeSint16BE(_vm->_maze._y1); +	out->writeSint16BE(_vm->_maze._x2); +	out->writeSint16BE(_vm->_maze._y2); +	out->writeSint16BE(_vm->_maze._x3); +	out->writeSint16BE(_vm->_maze._x4); +	out->writeByte(_vm->_maze._firstScreenIndex); + +	out->writeByte((byte)_vm->getGameStatus()._viewState);  	out->finalize(); @@ -491,9 +491,9 @@ bool FileManager::restoreGame(const int16 slot) {  	int score = in->readSint16BE();  	_vm->setScore(score); -	gameStatus.storyModeFl = (in->readByte() == 1); +	gameStatus._storyModeFl = (in->readByte() == 1);  	_vm->_mouse->setJumpExitFl(in->readByte() == 1); -	gameStatus.gameOverFl = (in->readByte() == 1); +	gameStatus._gameOverFl = (in->readByte() == 1);  	for (int i = 0; i < _vm->_numStates; i++)  		_vm->_screenStates[i] = in->readByte(); @@ -503,18 +503,18 @@ bool FileManager::restoreGame(const int16 slot) {  	_vm->_screen->restorePal(in);  	// Restore maze status -	_vm->_maze.enabledFl = (in->readByte() == 1); -	_vm->_maze.size = in->readByte(); -	_vm->_maze.x1 = in->readSint16BE(); -	_vm->_maze.y1 = in->readSint16BE(); -	_vm->_maze.x2 = in->readSint16BE(); -	_vm->_maze.y2 = in->readSint16BE(); -	_vm->_maze.x3 = in->readSint16BE(); -	_vm->_maze.x4 = in->readSint16BE(); -	_vm->_maze.firstScreenIndex = in->readByte(); +	_vm->_maze._enabledFl = (in->readByte() == 1); +	_vm->_maze._size = in->readByte(); +	_vm->_maze._x1 = in->readSint16BE(); +	_vm->_maze._y1 = in->readSint16BE(); +	_vm->_maze._x2 = in->readSint16BE(); +	_vm->_maze._y2 = in->readSint16BE(); +	_vm->_maze._x3 = in->readSint16BE(); +	_vm->_maze._x4 = in->readSint16BE(); +	_vm->_maze._firstScreenIndex = in->readByte();  	_vm->_scheduler->restoreScreen(*_vm->_screen_p); -	if ((_vm->getGameStatus().viewState = (vstate_t) in->readByte()) != kViewPlay) +	if ((_vm->getGameStatus()._viewState = (vstate_t) in->readByte()) != kViewPlay)  		_vm->_screen->hideCursor(); @@ -536,25 +536,25 @@ void FileManager::printBootText() {  			return;  		} else {  			Utils::notifyBox(Common::String::format("Missing startup file '%s'", getBootFilename())); -			_vm->getGameStatus().doQuitFl = true; +			_vm->getGameStatus()._doQuitFl = true;  			return;  		}  	}  	// Allocate space for the text and print it -	char *buf = (char *)malloc(_vm->_boot.exit_len + 1); +	char *buf = (char *)malloc(_vm->_boot._exitLen + 1);  	if (buf) {  		// Skip over the boot structure (already read) and read exit text  		ofp.seek((long)sizeof(_vm->_boot), SEEK_SET); -		if (ofp.read(buf, _vm->_boot.exit_len) != (size_t)_vm->_boot.exit_len) { +		if (ofp.read(buf, _vm->_boot._exitLen) != (size_t)_vm->_boot._exitLen) {  			Utils::notifyBox(Common::String::format("Error while reading startup file '%s'", getBootFilename())); -			_vm->getGameStatus().doQuitFl = true; +			_vm->getGameStatus()._doQuitFl = true;  			return;  		}  		// Decrypt the exit text, using CRYPT substring  		int i; -		for (i = 0; i < _vm->_boot.exit_len; i++) +		for (i = 0; i < _vm->_boot._exitLen; i++)  			buf[i] ^= s_bootCypher[i % s_bootCypherLen];  		buf[i] = '\0'; @@ -577,32 +577,32 @@ void FileManager::readBootFile() {  		if (_vm->_gameVariant == kGameVariantH1Dos) {  			//TODO initialize properly _boot structure  			warning("readBootFile - Skipping as H1 Dos may be a freeware"); -			memset(_vm->_boot.distrib, '\0', sizeof(_vm->_boot.distrib)); -			_vm->_boot.registered = kRegFreeware; +			memset(_vm->_boot._distrib, '\0', sizeof(_vm->_boot._distrib)); +			_vm->_boot._registered = kRegFreeware;  			return;  		} else if (_vm->getPlatform() == Common::kPlatformPC) {  			warning("readBootFile - Skipping as H2 and H3 Dos may be shareware"); -			memset(_vm->_boot.distrib, '\0', sizeof(_vm->_boot.distrib)); -			_vm->_boot.registered = kRegShareware; +			memset(_vm->_boot._distrib, '\0', sizeof(_vm->_boot._distrib)); +			_vm->_boot._registered = kRegShareware;  			return;  		} else {  			Utils::notifyBox(Common::String::format("Missing startup file '%s'", getBootFilename())); -			_vm->getGameStatus().doQuitFl = true; +			_vm->getGameStatus()._doQuitFl = true;  			return;  		}  	}  	if (ofp.size() < (int32)sizeof(_vm->_boot)) {  		Utils::notifyBox(Common::String::format("Corrupted startup file '%s'", getBootFilename())); -		_vm->getGameStatus().doQuitFl = true; +		_vm->getGameStatus()._doQuitFl = true;  		return;  	} -	_vm->_boot.checksum = ofp.readByte(); -	_vm->_boot.registered = ofp.readByte(); -	ofp.read(_vm->_boot.pbswitch, sizeof(_vm->_boot.pbswitch)); -	ofp.read(_vm->_boot.distrib, sizeof(_vm->_boot.distrib)); -	_vm->_boot.exit_len = ofp.readUint16LE(); +	_vm->_boot._checksum = ofp.readByte(); +	_vm->_boot._registered = ofp.readByte(); +	ofp.read(_vm->_boot._pbswitch, sizeof(_vm->_boot._pbswitch)); +	ofp.read(_vm->_boot._distrib, sizeof(_vm->_boot._distrib)); +	_vm->_boot._exitLen = ofp.readUint16LE();  	byte *p = (byte *)&_vm->_boot; @@ -615,7 +615,7 @@ void FileManager::readBootFile() {  	if (checksum) {  		Utils::notifyBox(Common::String::format("Corrupted startup file '%s'", getBootFilename())); -		_vm->getGameStatus().doQuitFl = true; +		_vm->getGameStatus()._doQuitFl = true;  	}  } diff --git a/engines/hugo/game.h b/engines/hugo/game.h index b1c5f407b3..ab5e2dff56 100644 --- a/engines/hugo/game.h +++ b/engines/hugo/game.h @@ -84,11 +84,11 @@ enum path_t {  };  struct hugo_boot_t {                                // Common HUGO boot file -	char checksum;                                  // Checksum for boot structure (not exit text) -	char registered;                                // TRUE if registered version, else FALSE -	char pbswitch[8];                               // Playback switch string -	char distrib[32];                               // Distributor branding string -	uint16 exit_len;                                // Length of exit text (next in file) +	char _checksum;                                 // Checksum for boot structure (not exit text) +	char _registered;                               // TRUE if registered version, else FALSE +	char _pbswitch[8];                              // Playback switch string +	char _distrib[32];                              // Distributor branding string +	uint16 _exitLen;                                // Length of exit text (next in file)  } PACKED_STRUCT;  /** @@ -101,11 +101,11 @@ typedef byte *sound_pt;                             // ptr to sound (or music) d   * Structure for initializing maze processing   */  struct maze_t { -	bool enabledFl;                                 // TRUE when maze processing enabled -	byte size;                                      // Size of (square) maze matrix -	int  x1, y1, x2, y2;                            // maze hotspot bounding box -	int  x3, x4;                                    // north, south x entry coordinates -	byte firstScreenIndex;                          // index of first screen in maze +	bool _enabledFl;                                // TRUE when maze processing enabled +	byte _size;                                     // Size of (square) maze matrix +	int  _x1, _y1, _x2, _y2;                        // maze hotspot bounding box +	int  _x3, _x4;                                  // north, south x entry coordinates +	byte _firstScreenIndex;                         // index of first screen in maze  };  /** @@ -113,25 +113,25 @@ struct maze_t {   * The image data is in 8-bit DIB format, i.e. 1 byte = 1 pixel   */  struct seq_t {                                      // Linked list of images -	byte   *imagePtr;                               // ptr to image -	uint16  bytesPerLine8;                          // bytes per line (8bits) -	uint16  lines;                                  // lines -	uint16  x1, x2, y1, y2;                         // Offsets from x,y: data bounding box -	seq_t  *nextSeqPtr;                             // ptr to next record +	byte   *_imagePtr;                              // ptr to image +	uint16  _bytesPerLine8;                         // bytes per line (8bits) +	uint16  _lines;                                 // lines +	uint16  _x1, _x2, _y1, _y2;                     // Offsets from x,y: data bounding box +	seq_t  *_nextSeqPtr;                            // ptr to next record  };  /**   * The following is an array of structures of above sequences   */  struct seqList_t { -	uint16 imageNbr;                                // Number of images in sequence -	seq_t *seqPtr;                                  // Ptr to sequence structure +	uint16 _imageNbr;                               // Number of images in sequence +	seq_t *_seqPtr;                                 // Ptr to sequence structure  };  #include "common/pack-start.h"                      // START STRUCT PACKING  struct sound_hdr_t {                                // Sound file lookup entry -	uint16 size;                                    // Size of sound data in bytes -	uint32 offset;                                  // Offset of sound data in file +	uint16 _size;                                   // Size of sound data in bytes +	uint32 _offset;                                 // Offset of sound data in file  } PACKED_STRUCT;  #include "common/pack-end.h"                        // END STRUCT PACKING @@ -141,37 +141,37 @@ static const int kMaxSeqNumb = 4;                   // Number of sequences of im   * Following is definition of object attributes   */  struct object_t { -	uint16     nounIndex;                           // String identifying object -	uint16     dataIndex;                           // String describing the object -	uint16     *stateDataIndex;                     // Added by Strangerke to handle the LOOK_S state-dependant descriptions -	path_t     pathType;                            // Describe path object follows -	int        vxPath, vyPath;                      // Delta velocities (e.g. for CHASE) -	uint16     actIndex;                            // Action list to do on collision with hero -	byte       seqNumb;                             // Number of sequences in list -	seq_t     *currImagePtr;                        // Sequence image currently in use -	seqList_t  seqList[kMaxSeqNumb];                // Array of sequence structure ptrs and lengths -	cycle_t    cycling;                             // Whether cycling, forward or backward -	byte       cycleNumb;                           // No. of times to cycle -	byte       frameInterval;                       // Interval (in ticks) between frames -	byte       frameTimer;                          // Decrementing timer for above -	int8       radius;                              // Defines sphere of influence by hero -	byte       screenIndex;                         // Screen in which object resides -	int        x, y;                                // Current coordinates of object -	int        oldx, oldy;                          // Previous coordinates of object -	int8       vx, vy;                              // Velocity -	byte       objValue;                            // Value of object -	int        genericCmd;                          // Bit mask of 'generic' commands for object -	uint16     cmdIndex;                            // ptr to list of cmd structures for verbs -	bool       carriedFl;                           // TRUE if object being carried -	byte       state;                               // state referenced in cmd list -	bool       verbOnlyFl;                          // TRUE if verb-only cmds allowed e.g. sit,look -	byte       priority;                            // Whether object fore, background or floating -	int16      viewx, viewy;                        // Position to view object from (or 0 or -1) -	int16      direction;                           // Direction to view object from -	byte       curSeqNum;                           // Save which seq number currently in use -	byte       curImageNum;                         // Save which image of sequence currently in use -	int8       oldvx;                               // Previous vx (used in wandering) -	int8       oldvy;                               // Previous vy +	uint16     _nounIndex;                           // String identifying object +	uint16     _dataIndex;                           // String describing the object +	uint16     *_stateDataIndex;                     // Added by Strangerke to handle the LOOK_S state-dependant descriptions +	path_t     _pathType;                            // Describe path object follows +	int        _vxPath, _vyPath;                     // Delta velocities (e.g. for CHASE) +	uint16     _actIndex;                            // Action list to do on collision with hero +	byte       _seqNumb;                             // Number of sequences in list +	seq_t     *_currImagePtr;                        // Sequence image currently in use +	seqList_t  _seqList[kMaxSeqNumb];                // Array of sequence structure ptrs and lengths +	cycle_t    _cycling;                             // Whether cycling, forward or backward +	byte       _cycleNumb;                           // No. of times to cycle +	byte       _frameInterval;                       // Interval (in ticks) between frames +	byte       _frameTimer;                          // Decrementing timer for above +	int8       _radius;                              // Defines sphere of influence by hero +	byte       _screenIndex;                         // Screen in which object resides +	int        _x, _y;                               // Current coordinates of object +	int        _oldx, _oldy;                         // Previous coordinates of object +	int8       _vx, _vy;                             // Velocity +	byte       _objValue;                            // Value of object +	int        _genericCmd;                          // Bit mask of 'generic' commands for object +	uint16     _cmdIndex;                            // ptr to list of cmd structures for verbs +	bool       _carriedFl;                           // TRUE if object being carried +	byte       _state;                               // state referenced in cmd list +	bool       _verbOnlyFl;                          // TRUE if verb-only cmds allowed e.g. sit,look +	byte       _priority;                            // Whether object fore, background or floating +	int16      _viewx, _viewy;                       // Position to view object from (or 0 or -1) +	int16      _direction;                           // Direction to view object from +	byte       _curSeqNum;                           // Save which seq number currently in use +	byte       _curImageNum;                         // Save which image of sequence currently in use +	int8       _oldvx;                               // Previous vx (used in wandering) +	int8       _oldvy;                               // Previous vy  };  } // End of namespace Hugo diff --git a/engines/hugo/hugo.cpp b/engines/hugo/hugo.cpp index df8abf32eb..450f4ff837 100644 --- a/engines/hugo/hugo.cpp +++ b/engines/hugo/hugo.cpp @@ -249,24 +249,24 @@ Common::Error HugoEngine::run() {  	initStatus();                                   // Initialize game status  	initConfig();                                   // Initialize user's config -	if (!_status.doQuitFl) { +	if (!_status._doQuitFl) {  		initialize();  		resetConfig();                              // Reset user's config  		initMachine();  		// Start the state machine -		_status.viewState = kViewIntroInit; +		_status._viewState = kViewIntroInit;  		int16 loadSlot = Common::ConfigManager::instance().getInt("save_slot");  		if (loadSlot >= 0) { -			_status.skipIntroFl = true; +			_status._skipIntroFl = true;  			_file->restoreGame(loadSlot);  		} else {  			_file->saveGame(0, "New Game");  		}  	} -	while (!_status.doQuitFl) { +	while (!_status._doQuitFl) {  		_screen->drawBoundaries();  		g_system->updateScreen();  		runMachine(); @@ -289,20 +289,20 @@ Common::Error HugoEngine::run() {  				_mouse->setRightButton();  				break;  			case Common::EVENT_QUIT: -				_status.doQuitFl = true; +				_status._doQuitFl = true;  				break;  			default:  				break;  			}  		} -		if (_status.helpFl) { -			_status.helpFl = false; +		if (_status._helpFl) { +			_status._helpFl = false;  			_file->instructions();  		}  		_mouse->mouseHandler();                     // Mouse activity - adds to display list  		_screen->displayList(kDisplayDisplay);      // Blit the display list to screen -		_status.doQuitFl |= shouldQuit();           // update game quit flag +		_status._doQuitFl |= shouldQuit();           // update game quit flag  	}  	return Common::kNoError;  } @@ -326,7 +326,7 @@ void HugoEngine::runMachine() {  	status_t &gameStatus = getGameStatus();  	// Don't process if gameover -	if (gameStatus.gameOverFl) +	if (gameStatus._gameOverFl)  		return;  	_curTime = g_system->getMillis(); @@ -338,19 +338,19 @@ void HugoEngine::runMachine() {  	_lastTime = _curTime; -	switch (gameStatus.viewState) { +	switch (gameStatus._viewState) {  	case kViewIdle:                                 // Not processing state machine  		_screen->hideCursor();  		_intro->preNewGame();                       // Any processing before New Game selected  		break;  	case kViewIntroInit:                            // Initialization before intro begins  		_intro->introInit(); -		gameStatus.viewState = kViewIntro; +		gameStatus._viewState = kViewIntro;  		break;  	case kViewIntro:                                // Do any game-dependant preamble  		if (_intro->introPlay()) {                  // Process intro screen  			_scheduler->newScreen(0);               // Initialize first screen -			gameStatus.viewState = kViewPlay; +			gameStatus._viewState = kViewPlay;  		}  		break;  	case kViewPlay:                                 // Playing game @@ -368,8 +368,8 @@ void HugoEngine::runMachine() {  		_inventory->runInventory();                 // Process Inventory state machine  		break;  	case kViewExit:                                 // Game over or user exited -		gameStatus.viewState = kViewIdle; -		_status.doQuitFl = true; +		gameStatus._viewState = kViewIdle; +		_status._doQuitFl = true;  		break;  	}  } @@ -427,7 +427,7 @@ bool HugoEngine::loadHugoDat() {  	_scheduler->loadActListArr(in);  	_scheduler->loadAlNewscrIndex(in);  	_hero = &_object->_objects[kHeroIndex];         // This always points to hero -	_screen_p = &(_object->_objects[kHeroIndex].screenIndex); // Current screen is hero's +	_screen_p = &(_object->_objects[kHeroIndex]._screenIndex); // Current screen is hero's  	_heroImage = kHeroIndex;                        // Current in use hero image  	for (int varnt = 0; varnt < _numVariant; varnt++) { @@ -527,33 +527,33 @@ void HugoEngine::initPlaylist(bool playlist[kMaxTunes]) {   */  void HugoEngine::initStatus() {  	debugC(1, kDebugEngine, "initStatus"); -	_status.storyModeFl      = false;               // Not in story mode -	_status.gameOverFl       = false;               // Hero not knobbled yet -	_status.lookFl           = false;               // Toolbar "look" button -	_status.recallFl         = false;               // Toolbar "recall" button -	_status.newScreenFl      = false;               // Screen not just loaded -	_status.godModeFl        = false;               // No special cheats allowed -	_status.showBoundariesFl = false;               // Boundaries hidden by default -	_status.doQuitFl         = false; -	_status.skipIntroFl      = false; -	_status.helpFl           = false; +	_status._storyModeFl      = false;               // Not in story mode +	_status._gameOverFl       = false;               // Hero not knobbled yet +	_status._lookFl           = false;               // Toolbar "look" button +	_status._recallFl         = false;               // Toolbar "recall" button +	_status._newScreenFl      = false;               // Screen not just loaded +	_status._godModeFl        = false;               // No special cheats allowed +	_status._showBoundariesFl = false;               // Boundaries hidden by default +	_status._doQuitFl         = false; +	_status._skipIntroFl      = false; +	_status._helpFl           = false;  	// Initialize every start of new game -	_status.tick            = 0;                    // Tick count -	_status.viewState       = kViewIdle;            // View state +	_status._tick            = 0;                    // Tick count +	_status._viewState       = kViewIdle;            // View state  // Strangerke - Suppress as related to playback -//	_status.recordFl      = false;                  // Not record mode -//	_status.playbackFl    = false;                  // Not playback mode +//	_status._recordFl      = false;                  // Not record mode +//	_status._playbackFl    = false;                  // Not playback mode  // Strangerke - Not used ? -//	_status.mmtime        = false;                  // Multimedia timer support -//	_status.helpFl        = false;                  // Not calling WinHelp() -//	_status.demoFl        = false;                  // Not demo mode -//	_status.path[0]       = 0;                      // Path to write files -//	_status.screenWidth   = 0;                      // Desktop screen width -//	_status.saveTick      = 0;                      // Time of last save -//	_status.saveSlot      = 0;                      // Slot to save/restore game -//	_status.textBoxFl     = false;                  // Not processing a text box +//	_status._mmtime        = false;                  // Multimedia timer support +//	_status._helpFl        = false;                  // Not calling WinHelp() +//	_status._demoFl        = false;                  // Not demo mode +//	_status._path[0]       = 0;                      // Path to write files +//	_status._screenWidth   = 0;                      // Desktop screen width +//	_status._saveTick      = 0;                      // Time of last save +//	_status._saveSlot      = 0;                      // Slot to save/restore game +//	_status._textBoxFl     = false;                  // Not processing a text box  }  /** @@ -587,7 +587,7 @@ void HugoEngine::resetConfig() {  void HugoEngine::initialize() {  	debugC(1, kDebugEngine, "initialize"); -	_maze.enabledFl = false; +	_maze._enabledFl = false;  	_line[0] = '\0';  	_sound->initSound(); @@ -679,10 +679,10 @@ void HugoEngine::calcMaxScore() {  void HugoEngine::endGame() {  	debugC(1, kDebugEngine, "endGame"); -	if (_boot.registered != kRegRegistered) +	if (_boot._registered != kRegRegistered)  		Utils::notifyBox(_text->getTextEngine(kEsAdvertise));  	Utils::notifyBox(Common::String::format("%s\n%s", _episode, getCopyrightString())); -	_status.viewState = kViewExit; +	_status._viewState = kViewExit;  }  bool HugoEngine::canLoadGameStateCurrently() { @@ -690,7 +690,7 @@ bool HugoEngine::canLoadGameStateCurrently() {  }  bool HugoEngine::canSaveGameStateCurrently() { -	return (_status.viewState == kViewPlay); +	return (_status._viewState == kViewPlay);  }  int8 HugoEngine::getTPS() const { diff --git a/engines/hugo/hugo.h b/engines/hugo/hugo.h index 125819a39b..3ad6fced24 100644 --- a/engines/hugo/hugo.h +++ b/engines/hugo/hugo.h @@ -171,20 +171,20 @@ enum seqTextEngine {  struct HugoGameDescription;  struct status_t {                                   // Game status (not saved) -	bool     storyModeFl;                           // Game is telling story - no commands -	bool     gameOverFl;                            // Game is over - hero knobbled -	bool     lookFl;                                // Toolbar "look" button pressed -	bool     recallFl;                              // Toolbar "recall" button pressed -	bool     newScreenFl;                           // New screen just loaded in dib_a -	bool     godModeFl;                             // Allow DEBUG features in live version -	bool     showBoundariesFl;                      // Flag used to show and hide boundaries, +	bool     _storyModeFl;                           // Game is telling story - no commands +	bool     _gameOverFl;                            // Game is over - hero knobbled +	bool     _lookFl;                                // Toolbar "look" button pressed +	bool     _recallFl;                              // Toolbar "recall" button pressed +	bool     _newScreenFl;                           // New screen just loaded in dib_a +	bool     _godModeFl;                             // Allow DEBUG features in live version +	bool     _showBoundariesFl;                      // Flag used to show and hide boundaries,  	                                                // used by the console -	bool     doQuitFl; -	bool     skipIntroFl; -	bool     helpFl; -	uint32   tick;                                  // Current time in ticks -	vstate_t viewState;                             // View state machine -	int16    song;                                  // Current song +	bool     _doQuitFl; +	bool     _skipIntroFl; +	bool     _helpFl; +	uint32   _tick;                                  // Current time in ticks +	vstate_t _viewState;                             // View state machine +	int16    _song;                                  // Current song  // Strangerke - Suppress as related to playback  //	bool     playbackFl;                            // Game is in playback mode diff --git a/engines/hugo/intro.cpp b/engines/hugo/intro.cpp index 72f718fe8e..599d8f21d3 100644 --- a/engines/hugo/intro.cpp +++ b/engines/hugo/intro.cpp @@ -98,7 +98,7 @@ void intro_v1d::introInit() {  bool intro_v1d::introPlay() {  	byte introSize = getIntroSize(); -	if (_vm->getGameStatus().skipIntroFl) +	if (_vm->getGameStatus()._skipIntroFl)  		return true;  	if (introTicks < introSize) { @@ -117,20 +117,20 @@ bool intro_v1d::introPlay() {  				error("Unable to load font TMSRB.FON, face 'Tms Rmn', size 8");  			char buffer[80]; -			if (_vm->_boot.registered == kRegRegistered) +			if (_vm->_boot._registered == kRegRegistered)  				strcpy(buffer, "Registered Version"); -			else if (_vm->_boot.registered == kRegShareware) +			else if (_vm->_boot._registered == kRegShareware)  				strcpy(buffer, "Shareware Version"); -			else if (_vm->_boot.registered == kRegFreeware) +			else if (_vm->_boot._registered == kRegFreeware)  				strcpy(buffer, "Freeware Version");  			else -				error("Unknown registration flag in hugo.bsf: %d", _vm->_boot.registered); +				error("Unknown registration flag in hugo.bsf: %d", _vm->_boot._registered);  			font.drawString(&surf, buffer, 0, 163, 320, _TLIGHTMAGENTA, Graphics::kTextAlignCenter);  			font.drawString(&surf, _vm->getCopyrightString(), 0, 176, 320, _TLIGHTMAGENTA, Graphics::kTextAlignCenter); -			if ((*_vm->_boot.distrib != '\0') && (scumm_stricmp(_vm->_boot.distrib, "David P. Gray"))) { -				sprintf(buffer, "Distributed by %s.", _vm->_boot.distrib); +			if ((*_vm->_boot._distrib != '\0') && (scumm_stricmp(_vm->_boot._distrib, "David P. Gray"))) { +				sprintf(buffer, "Distributed by %s.", _vm->_boot._distrib);  				font.drawString(&surf, buffer, 0, 75, 320, _TMAGENTA, Graphics::kTextAlignCenter);  			} @@ -253,16 +253,16 @@ void intro_v2d::introInit() {  	if (!font.loadFromFON("TMSRB.FON", Graphics::WinFontDirEntry("Tms Rmn", 8)))  		error("Unable to load font TMSRB.FON, face 'Tms Rmn', size 8"); -	if (_vm->_boot.registered) +	if (_vm->_boot._registered)  		sprintf(buffer, "%s  Registered Version", _vm->getCopyrightString());  	else  		sprintf(buffer, "%s  Shareware Version", _vm->getCopyrightString());  	font.drawString(&surf, buffer, 0, 186, 320, _TLIGHTRED, Graphics::kTextAlignCenter); -	if ((*_vm->_boot.distrib != '\0') && (scumm_stricmp(_vm->_boot.distrib, "David P. Gray"))) { +	if ((*_vm->_boot._distrib != '\0') && (scumm_stricmp(_vm->_boot._distrib, "David P. Gray"))) {  		// TROMAN, size 10-5 -		sprintf(buffer, "Distributed by %s.", _vm->_boot.distrib); +		sprintf(buffer, "Distributed by %s.", _vm->_boot._distrib);  		font.drawString(&surf, buffer, 0, 1, 320, _TLIGHTRED, Graphics::kTextAlignCenter);  	} @@ -294,7 +294,7 @@ void intro_v3d::introInit() {  	surf.format = Graphics::PixelFormat::createFormatCLUT8();  	char buffer[128]; -	if (_vm->_boot.registered) +	if (_vm->_boot._registered)  		sprintf(buffer, "%s  Registered Version", _vm->getCopyrightString());  	else  		sprintf(buffer,"%s  Shareware Version", _vm->getCopyrightString()); @@ -305,8 +305,8 @@ void intro_v3d::introInit() {  	font.drawString(&surf, buffer, 0, 190, 320, _TBROWN, Graphics::kTextAlignCenter); -	if ((*_vm->_boot.distrib != '\0') && (scumm_stricmp(_vm->_boot.distrib, "David P. Gray"))) { -		sprintf(buffer, "Distributed by %s.", _vm->_boot.distrib); +	if ((*_vm->_boot._distrib != '\0') && (scumm_stricmp(_vm->_boot._distrib, "David P. Gray"))) { +		sprintf(buffer, "Distributed by %s.", _vm->_boot._distrib);  		font.drawString(&surf, buffer, 0, 0, 320, _TBROWN, Graphics::kTextAlignCenter);  	} @@ -325,7 +325,7 @@ void intro_v3d::introInit() {   * Called every tick.  Returns TRUE when complete   */  bool intro_v3d::introPlay() { -	if (_vm->getGameStatus().skipIntroFl) +	if (_vm->getGameStatus()._skipIntroFl)  		return true;  	if (introTicks < getIntroSize()) { @@ -356,7 +356,7 @@ intro_v1w::~intro_v1w() {  }  void intro_v1w::preNewGame() { -	_vm->getGameStatus().viewState = kViewIntroInit; +	_vm->getGameStatus()._viewState = kViewIntroInit;  }  void intro_v1w::introInit() { @@ -416,7 +416,7 @@ void intro_v3w::introInit() {   * Called every tick.  Returns TRUE when complete   */  bool intro_v3w::introPlay() { -	if (_vm->getGameStatus().skipIntroFl) +	if (_vm->getGameStatus()._skipIntroFl)  		return true;  	if (introTicks < getIntroSize()) { diff --git a/engines/hugo/inventory.cpp b/engines/hugo/inventory.cpp index 410c4e715c..151fe0ee13 100644 --- a/engines/hugo/inventory.cpp +++ b/engines/hugo/inventory.cpp @@ -231,7 +231,7 @@ void InventoryHandler::runInventory() {  			_vm->_screen->moveImage(_vm->_screen->getBackBuffer(), 0, 0, kXPix, kYPix, kXPix, _vm->_screen->getFrontBuffer(), 0, 0, kXPix);  			_vm->_object->updateImages();           // Add objects back into display list for restore  			_inventoryState = kInventoryOff; -			gameStatus.viewState = kViewPlay; +			gameStatus._viewState = kViewPlay;  		}  		break;  	case kInventoryDown:                            // Icon bar moving down diff --git a/engines/hugo/mouse.cpp b/engines/hugo/mouse.cpp index d2d5b59dae..323f362b10 100644 --- a/engines/hugo/mouse.cpp +++ b/engines/hugo/mouse.cpp @@ -154,7 +154,7 @@ void MouseHandler::processRightClick(const int16 objId, const int16 cx, const in  	status_t &gameStatus = _vm->getGameStatus(); -	if (gameStatus.storyModeFl || _vm->_hero->pathType == kPathQuiet) // Make sure user has control +	if (gameStatus._storyModeFl || _vm->_hero->_pathType == kPathQuiet) // Make sure user has control  		return;  	int16 inventObjId = _vm->_inventory->getInventoryObjId(); @@ -170,7 +170,7 @@ void MouseHandler::processRightClick(const int16 objId, const int16 cx, const in  	} else {                                        // Clicked over viewport object  		object_t *obj = &_vm->_object->_objects[objId];  		int16 x, y; -		switch (obj->viewx) {                       // Where to walk to +		switch (obj->_viewx) {                       // Where to walk to  		case -1:                                    // Walk to object position  			if (_vm->_object->findObjectSpace(obj, &x, &y))  				foundFl = _vm->_route->startRoute(kRouteGet, objId, x, y); @@ -181,8 +181,8 @@ void MouseHandler::processRightClick(const int16 objId, const int16 cx, const in  			_vm->_object->useObject(objId);         // Pick up or use object  			break;  		default:                                    // Walk to view point if possible -			if (!_vm->_route->startRoute(kRouteGet, objId, obj->viewx, obj->viewy)) { -				if (_vm->_hero->cycling == kCycleInvisible) // If invisible do +			if (!_vm->_route->startRoute(kRouteGet, objId, obj->_viewx, obj->_viewy)) { +				if (_vm->_hero->_cycling == kCycleInvisible) // If invisible do  					_vm->_object->useObject(objId); // immediate use  				else  					Utils::notifyBox(_vm->_text->getTextMouse(kMsNoWayText)); // Can't get there @@ -207,7 +207,7 @@ void MouseHandler::processLeftClick(const int16 objId, const int16 cx, const int  	status_t &gameStatus = _vm->getGameStatus(); -	if (gameStatus.storyModeFl || _vm->_hero->pathType == kPathQuiet) // Make sure user has control +	if (gameStatus._storyModeFl || _vm->_hero->_pathType == kPathQuiet) // Make sure user has control  		return;  	switch (objId) { @@ -254,7 +254,7 @@ void MouseHandler::processLeftClick(const int16 objId, const int16 cx, const int  			_vm->_object->lookObject(obj);  		} else {  			bool foundFl = false;                   // TRUE if route found to object -			switch (obj->viewx) {                   // Clicked over viewport object +			switch (obj->_viewx) {                   // Clicked over viewport object  			case -1:                                // Walk to object position  				if (_vm->_object->findObjectSpace(obj, &x, &y))  					foundFl = _vm->_route->startRoute(kRouteLook, objId, x, y); @@ -265,8 +265,8 @@ void MouseHandler::processLeftClick(const int16 objId, const int16 cx, const int  				_vm->_object->lookObject(obj);  				break;  			default:                                // Walk to view point if possible -				if (!_vm->_route->startRoute(kRouteLook, objId, obj->viewx, obj->viewy)) { -					if (_vm->_hero->cycling == kCycleInvisible) // If invisible do +				if (!_vm->_route->startRoute(kRouteLook, objId, obj->_viewx, obj->_viewy)) { +					if (_vm->_hero->_cycling == kCycleInvisible) // If invisible do  						_vm->_object->lookObject(obj);          // immediate decription  					else  						Utils::notifyBox(_vm->_text->getTextMouse(kMsNoWayText));  // Can't get there @@ -286,14 +286,14 @@ void MouseHandler::mouseHandler() {  	status_t &gameStatus = _vm->getGameStatus();  	istate_t inventState = _vm->_inventory->getInventoryState(); -	if ((gameStatus.viewState != kViewPlay) && (inventState != kInventoryActive)) +	if ((gameStatus._viewState != kViewPlay) && (inventState != kInventoryActive))  		return;  	int16 cx = getMouseX();  	int16 cy = getMouseY(); -//	gameStatus.cx = cx;                             // Save cursor coords -//	gameStatus.cy = cy; +//	gameStatus._cx = cx;                             // Save cursor coords +//	gameStatus._cy = cy;  	// Don't process if outside client area  	if ((cx < 0) || (cx > kXPix) || (cy < kDibOffY) || (cy > kViewSizeY + kDibOffY)) @@ -309,14 +309,14 @@ void MouseHandler::mouseHandler() {  		}  	} -	if (!gameStatus.gameOverFl) { +	if (!gameStatus._gameOverFl) {  		if (objId == -1)                            // No match, check rest of view  			objId = _vm->_object->findObject(cx, cy);  		if (objId >= 0) {                           // Got a match  			// Display object name next to cursor (unless CURSOR_NOCHAR)  			// Note test for swapped hero name -			const char *name = _vm->_text->getNoun(_vm->_object->_objects[(objId == kHeroIndex) ? _vm->_heroImage : objId].nounIndex, kCursorNameIndex); +			const char *name = _vm->_text->getNoun(_vm->_object->_objects[(objId == kHeroIndex) ? _vm->_heroImage : objId]._nounIndex, kCursorNameIndex);  			if (name[0] != kCursorNochar)  				cursorText(name, cx, cy, U_FONT8, _TBRIGHTWHITE); @@ -378,7 +378,7 @@ void MouseHandler::loadHotspots(Common::ReadStream &in) {  void MouseHandler::drawHotspots() const {  	for (int i = 0; _hotspots[i].screenIndex >= 0; i++) {  		hotspot_t *hotspot = &_hotspots[i]; -		if (hotspot->screenIndex == _vm->_hero->screenIndex) +		if (hotspot->screenIndex == _vm->_hero->_screenIndex)  			_vm->_screen->drawRectangle(false, hotspot->x1, hotspot->y1, hotspot->x2, hotspot->y2, _TLIGHTRED);  	}  } diff --git a/engines/hugo/object.cpp b/engines/hugo/object.cpp index bc99abf410..92a04227d6 100644 --- a/engines/hugo/object.cpp +++ b/engines/hugo/object.cpp @@ -74,22 +74,22 @@ byte ObjectHandler::getFirstOverlay(uint16 index) const {  }  bool ObjectHandler::isCarried(int objIndex) const { -	return _objects[objIndex].carriedFl; +	return _objects[objIndex]._carriedFl;  }  void ObjectHandler::setCarry(int objIndex, bool val) { -	_objects[objIndex].carriedFl = val; +	_objects[objIndex]._carriedFl = val;  }  void ObjectHandler::setVelocity(int objIndex, int8 vx, int8 vy) { -	_objects[objIndex].vx = vx; -	_objects[objIndex].vy = vy; +	_objects[objIndex]._vx = vx; +	_objects[objIndex]._vy = vy;  }  void ObjectHandler::setPath(int objIndex, path_t pathType, int16 vxPath, int16 vyPath) { -	_objects[objIndex].pathType = pathType; -	_objects[objIndex].vxPath = vxPath; -	_objects[objIndex].vyPath = vyPath; +	_objects[objIndex]._pathType = pathType; +	_objects[objIndex]._vxPath = vxPath; +	_objects[objIndex]._vyPath = vyPath;  }  /** @@ -99,15 +99,15 @@ void ObjectHandler::saveSeq(object_t *obj) {  	debugC(1, kDebugObject, "saveSeq");  	bool found = false; -	for (int i = 0; !found && (i < obj->seqNumb); i++) { -		seq_t *q = obj->seqList[i].seqPtr; -		for (int j = 0; !found && (j < obj->seqList[i].imageNbr); j++) { -			if (obj->currImagePtr == q) { +	for (int i = 0; !found && (i < obj->_seqNumb); i++) { +		seq_t *q = obj->_seqList[i]._seqPtr; +		for (int j = 0; !found && (j < obj->_seqList[i]._imageNbr); j++) { +			if (obj->_currImagePtr == q) {  				found = true; -				obj->curSeqNum = i; -				obj->curImageNum = j; +				obj->_curSeqNum = i; +				obj->_curImageNum = j;  			} else { -				q = q->nextSeqPtr; +				q = q->_nextSeqPtr;  			}  		}  	} @@ -119,10 +119,10 @@ void ObjectHandler::saveSeq(object_t *obj) {  void ObjectHandler::restoreSeq(object_t *obj) {  	debugC(1, kDebugObject, "restoreSeq"); -	seq_t *q = obj->seqList[obj->curSeqNum].seqPtr; -	for (int j = 0; j < obj->curImageNum; j++) -		q = q->nextSeqPtr; -	obj->currImagePtr = q; +	seq_t *q = obj->_seqList[obj->_curSeqNum]._seqPtr; +	for (int j = 0; j < obj->_curImageNum; j++) +		q = q->_nextSeqPtr; +	obj->_currImagePtr = q;  }  /** @@ -137,33 +137,33 @@ void ObjectHandler::useObject(int16 objId) {  	object_t *obj = &_objects[objId];               // Ptr to object  	if (inventObjId == -1) {  		// Get or use objid directly -		if ((obj->genericCmd & TAKE) || obj->objValue)  // Get collectible item -			sprintf(_vm->_line, "%s %s", _vm->_text->getVerb(_vm->_take, 0), _vm->_text->getNoun(obj->nounIndex, 0)); -		else if (obj->cmdIndex != 0)                // Use non-collectible item if able -			sprintf(_vm->_line, "%s %s", _vm->_text->getVerb(_vm->_parser->getCmdDefaultVerbIdx(obj->cmdIndex), 0), _vm->_text->getNoun(obj->nounIndex, 0)); -		else if ((verb = _vm->_parser->useBG(_vm->_text->getNoun(obj->nounIndex, 0))) != 0) -			sprintf(_vm->_line, "%s %s", verb, _vm->_text->getNoun(obj->nounIndex, 0)); +		if ((obj->_genericCmd & TAKE) || obj->_objValue)  // Get collectible item +			sprintf(_vm->_line, "%s %s", _vm->_text->getVerb(_vm->_take, 0), _vm->_text->getNoun(obj->_nounIndex, 0)); +		else if (obj->_cmdIndex != 0)                // Use non-collectible item if able +			sprintf(_vm->_line, "%s %s", _vm->_text->getVerb(_vm->_parser->getCmdDefaultVerbIdx(obj->_cmdIndex), 0), _vm->_text->getNoun(obj->_nounIndex, 0)); +		else if ((verb = _vm->_parser->useBG(_vm->_text->getNoun(obj->_nounIndex, 0))) != 0) +			sprintf(_vm->_line, "%s %s", verb, _vm->_text->getNoun(obj->_nounIndex, 0));  		else  			return;                                 // Can't use object directly  	} else {  		// Use status.objid on objid  		// Default to first cmd verb -		sprintf(_vm->_line, "%s %s %s", _vm->_text->getVerb(_vm->_parser->getCmdDefaultVerbIdx(_objects[inventObjId].cmdIndex), 0), -			                       _vm->_text->getNoun(_objects[inventObjId].nounIndex, 0), -			                       _vm->_text->getNoun(obj->nounIndex, 0)); +		sprintf(_vm->_line, "%s %s %s", _vm->_text->getVerb(_vm->_parser->getCmdDefaultVerbIdx(_objects[inventObjId]._cmdIndex), 0), +			                       _vm->_text->getNoun(_objects[inventObjId]._nounIndex, 0), +			                       _vm->_text->getNoun(obj->_nounIndex, 0));  		// Check valid use of objects and override verb if necessary -		for (uses_t *use = _uses; use->objId != _numObj; use++) { -			if (inventObjId == use->objId) { +		for (uses_t *use = _uses; use->_objId != _numObj; use++) { +			if (inventObjId == use->_objId) {  				// Look for secondary object, if found use matching verb  				bool foundFl = false; -				for (target_t *target = use->targets; target->nounIndex != 0; target++) -					if (target->nounIndex == obj->nounIndex) { +				for (target_t *target = use->_targets; target->_nounIndex != 0; target++) +					if (target->_nounIndex == obj->_nounIndex) {  						foundFl = true; -						sprintf(_vm->_line, "%s %s %s", _vm->_text->getVerb(target->verbIndex, 0), -							                       _vm->_text->getNoun(_objects[inventObjId].nounIndex, 0), -							                       _vm->_text->getNoun(obj->nounIndex, 0)); +						sprintf(_vm->_line, "%s %s %s", _vm->_text->getVerb(target->_verbIndex, 0), +							                       _vm->_text->getNoun(_objects[inventObjId]._nounIndex, 0), +							                       _vm->_text->getNoun(obj->_nounIndex, 0));  					}  				// No valid use of objects found, print failure string @@ -171,7 +171,7 @@ void ObjectHandler::useObject(int16 objId) {  					// Deselect dragged icon if inventory not active  					if (_vm->_inventory->getInventoryState() != kInventoryActive)  						_vm->_screen->resetInventoryObjId(); -					Utils::notifyBox(_vm->_text->getTextData(use->dataIndex)); +					Utils::notifyBox(_vm->_text->getTextData(use->_dataIndex));  					return;  				}  			} @@ -199,26 +199,26 @@ int16 ObjectHandler::findObject(uint16 x, uint16 y) {  	// Check objects on screen  	for (int i = 0; i < _numObj; i++, obj++) {  		// Object must be in current screen and "useful" -		if (obj->screenIndex == *_vm->_screen_p && (obj->genericCmd || obj->objValue || obj->cmdIndex)) { -			seq_t *curImage = obj->currImagePtr; +		if (obj->_screenIndex == *_vm->_screen_p && (obj->_genericCmd || obj->_objValue || obj->_cmdIndex)) { +			seq_t *curImage = obj->_currImagePtr;  			// Object must have a visible image... -			if (curImage != 0 && obj->cycling != kCycleInvisible) { +			if (curImage != 0 && obj->_cycling != kCycleInvisible) {  				// If cursor inside object -				if (x >= (uint16)obj->x && x <= obj->x + curImage->x2 && y >= (uint16)obj->y && y <= obj->y + curImage->y2) { +				if (x >= (uint16)obj->_x && x <= obj->_x + curImage->_x2 && y >= (uint16)obj->_y && y <= obj->_y + curImage->_y2) {  					// If object is closest so far -					if (obj->y + curImage->y2 > y2Max) { -						y2Max = obj->y + curImage->y2; +					if (obj->_y + curImage->_y2 > y2Max) { +						y2Max = obj->_y + curImage->_y2;  						objIndex = i;               // Found an object!  					}  				}  			} else {  				// ...or a dummy object that has a hotspot rectangle -				if (curImage == 0 && obj->vxPath != 0 && !obj->carriedFl) { +				if (curImage == 0 && obj->_vxPath != 0 && !obj->_carriedFl) {  					// If cursor inside special rectangle -					if ((int16)x >= obj->oldx && (int16)x < obj->oldx + obj->vxPath && (int16)y >= obj->oldy && (int16)y < obj->oldy + obj->vyPath) { +					if ((int16)x >= obj->_oldx && (int16)x < obj->_oldx + obj->_vxPath && (int16)y >= obj->_oldy && (int16)y < obj->_oldy + obj->_vyPath) {  						// If object is closest so far -						if (obj->oldy + obj->vyPath - 1 > (int16)y2Max) { -							y2Max = obj->oldy + obj->vyPath - 1; +						if (obj->_oldy + obj->_vyPath - 1 > (int16)y2Max) { +							y2Max = obj->_oldy + obj->_vyPath - 1;  							objIndex = i;           // Found an object!  						}  					} @@ -240,7 +240,7 @@ void ObjectHandler::lookObject(object_t *obj) {  		// Hero swapped - look at other  		obj = &_objects[_vm->_heroImage]; -	_vm->_parser->command("%s %s", _vm->_text->getVerb(_vm->_look, 0), _vm->_text->getNoun(obj->nounIndex, 0)); +	_vm->_parser->command("%s %s", _vm->_text->getVerb(_vm->_look, 0), _vm->_text->getNoun(obj->_nounIndex, 0));  }  /** @@ -249,26 +249,26 @@ void ObjectHandler::lookObject(object_t *obj) {  void ObjectHandler::freeObjects() {  	debugC(1, kDebugObject, "freeObjects"); -	if (_vm->_hero != 0 && _vm->_hero->seqList[0].seqPtr != 0) { +	if (_vm->_hero != 0 && _vm->_hero->_seqList[0]._seqPtr != 0) {  		// Free all sequence lists and image data  		for (int16 i = 0; i < _numObj; i++) {  			object_t *obj = &_objects[i]; -			for (int16 j = 0; j < obj->seqNumb; j++) { -				seq_t *seq = obj->seqList[j].seqPtr; +			for (int16 j = 0; j < obj->_seqNumb; j++) { +				seq_t *seq = obj->_seqList[j]._seqPtr;  				seq_t *next;  				if (seq == 0) // Failure during database load  					break; -				if (seq->imagePtr != 0) { -					free(seq->imagePtr); -					seq->imagePtr = 0; +				if (seq->_imagePtr != 0) { +					free(seq->_imagePtr); +					seq->_imagePtr = 0;  				} -				seq = seq->nextSeqPtr; -				while (seq != obj->seqList[j].seqPtr) { -					if (seq->imagePtr != 0) { -						free(seq->imagePtr); -						seq->imagePtr = 0; +				seq = seq->_nextSeqPtr; +				while (seq != obj->_seqList[j]._seqPtr) { +					if (seq->_imagePtr != 0) { +						free(seq->_imagePtr); +						seq->_imagePtr = 0;  					} -					next = seq->nextSeqPtr; +					next = seq->_nextSeqPtr;  					free(seq);  					seq = next;  				} @@ -279,13 +279,13 @@ void ObjectHandler::freeObjects() {  	if (_uses) {  		for (int16 i = 0; i < _usesSize; i++) -			free(_uses[i].targets); +			free(_uses[i]._targets);  		free(_uses);  	}  	for (int16 i = 0; i < _objCount; i++) { -		free(_objects[i].stateDataIndex); -		_objects[i].stateDataIndex = 0; +		free(_objects[i]._stateDataIndex); +		_objects[i]._stateDataIndex = 0;  	}  	free(_objects); @@ -307,20 +307,20 @@ int ObjectHandler::y2comp(const void *a, const void *b) {  		// Why does qsort try the same indexes?  		return 0; -	if (p1->priority == kPriorityBackground) +	if (p1->_priority == kPriorityBackground)  		return -1; -	if (p2->priority == kPriorityBackground) +	if (p2->_priority == kPriorityBackground)  		return 1; -	if (p1->priority == kPriorityForeground) +	if (p1->_priority == kPriorityForeground)  		return 1; -	if (p2->priority == kPriorityForeground) +	if (p2->_priority == kPriorityForeground)  		return -1; -	int ay2 = p1->y + p1->currImagePtr->y2; -	int by2 = p2->y + p2->currImagePtr->y2; +	int ay2 = p1->_y + p1->_currImagePtr->_y2; +	int by2 = p2->_y + p2->_currImagePtr->_y2;  	return ay2 - by2;  } @@ -332,7 +332,7 @@ bool ObjectHandler::isCarrying(uint16 wordIndex) {  	debugC(1, kDebugObject, "isCarrying(%d)", wordIndex);  	for (int i = 0; i < _numObj; i++) { -		if ((wordIndex == _objects[i].nounIndex) && _objects[i].carriedFl) +		if ((wordIndex == _objects[i]._nounIndex) && _objects[i]._carriedFl)  			return true;  	}  	return false; @@ -346,10 +346,10 @@ void ObjectHandler::showTakeables() {  	for (int j = 0; j < _numObj; j++) {  		object_t *obj = &_objects[j]; -		if ((obj->cycling != kCycleInvisible) && -		    (obj->screenIndex == *_vm->_screen_p) && -		    (((TAKE & obj->genericCmd) == TAKE) || obj->objValue)) { -			Utils::notifyBox(Common::String::format("You can also see:\n%s.", _vm->_text->getNoun(obj->nounIndex, LOOK_NAME))); +		if ((obj->_cycling != kCycleInvisible) && +		    (obj->_screenIndex == *_vm->_screen_p) && +		    (((TAKE & obj->_genericCmd) == TAKE) || obj->_objValue)) { +			Utils::notifyBox(Common::String::format("You can also see:\n%s.", _vm->_text->getNoun(obj->_nounIndex, LOOK_NAME)));  		}  	}  } @@ -360,19 +360,19 @@ void ObjectHandler::showTakeables() {  bool ObjectHandler::findObjectSpace(object_t *obj, int16 *destx, int16 *desty) {  	debugC(1, kDebugObject, "findObjectSpace(obj, %d, %d)", *destx, *desty); -	seq_t *curImage = obj->currImagePtr; -	int16 y = obj->y + curImage->y2 - 1; +	seq_t *curImage = obj->_currImagePtr; +	int16 y = obj->_y + curImage->_y2 - 1;  	bool foundFl = true;  	// Try left rear corner -	for (int16 x = *destx = obj->x + curImage->x1; x < *destx + kHeroMaxWidth; x++) { +	for (int16 x = *destx = obj->_x + curImage->_x1; x < *destx + kHeroMaxWidth; x++) {  		if (checkBoundary(x, y))  			foundFl = false;  	}  	if (!foundFl) {                                 // Try right rear corner  		foundFl = true; -		for (int16 x = *destx = obj->x + curImage->x2 - kHeroMaxWidth + 1; x <= obj->x + (int16)curImage->x2; x++) { +		for (int16 x = *destx = obj->_x + curImage->_x2 - kHeroMaxWidth + 1; x <= obj->_x + (int16)curImage->_x2; x++) {  			if (checkBoundary(x, y))  				foundFl = false;  		} @@ -381,7 +381,7 @@ bool ObjectHandler::findObjectSpace(object_t *obj, int16 *destx, int16 *desty) {  	if (!foundFl) {                                 // Try left front corner  		foundFl = true;  		y += 2; -		for (int16 x = *destx = obj->x + curImage->x1; x < *destx + kHeroMaxWidth; x++) { +		for (int16 x = *destx = obj->_x + curImage->_x1; x < *destx + kHeroMaxWidth; x++) {  			if (checkBoundary(x, y))  				foundFl = false;  		} @@ -389,7 +389,7 @@ bool ObjectHandler::findObjectSpace(object_t *obj, int16 *destx, int16 *desty) {  	if (!foundFl) {                                 // Try right rear corner  		foundFl = true; -		for (int16 x = *destx = obj->x + curImage->x2 - kHeroMaxWidth + 1; x <= obj->x + (int16)curImage->x2; x++) { +		for (int16 x = *destx = obj->_x + curImage->_x2 - kHeroMaxWidth + 1; x <= obj->_x + (int16)curImage->_x2; x++) {  			if (checkBoundary(x, y))  				foundFl = false;  		} @@ -400,13 +400,13 @@ bool ObjectHandler::findObjectSpace(object_t *obj, int16 *destx, int16 *desty) {  }  void ObjectHandler::readUse(Common::ReadStream &in, uses_t &curUse) { -	curUse.objId = in.readSint16BE(); -	curUse.dataIndex = in.readUint16BE(); +	curUse._objId = in.readSint16BE(); +	curUse._dataIndex = in.readUint16BE();  	uint16 numSubElem = in.readUint16BE(); -	curUse.targets = (target_t *)malloc(sizeof(target_t) * numSubElem); +	curUse._targets = (target_t *)malloc(sizeof(target_t) * numSubElem);  	for (int j = 0; j < numSubElem; j++) { -		curUse.targets[j].nounIndex = in.readUint16BE(); -		curUse.targets[j].verbIndex = in.readUint16BE(); +		curUse._targets[j]._nounIndex = in.readUint16BE(); +		curUse._targets[j]._verbIndex = in.readUint16BE();  	}  }  /** @@ -414,7 +414,7 @@ void ObjectHandler::readUse(Common::ReadStream &in, uses_t &curUse) {   */  void ObjectHandler::loadObjectUses(Common::ReadStream &in) {  	uses_t tmpUse; -	tmpUse.targets = 0; +	tmpUse._targets = 0;  	//Read _uses  	for (int varnt = 0; varnt < _vm->_numVariant; varnt++) { @@ -429,68 +429,68 @@ void ObjectHandler::loadObjectUses(Common::ReadStream &in) {  				readUse(in, _uses[i]);  			else {  				readUse(in, tmpUse); -				free(tmpUse.targets); -				tmpUse.targets = 0; +				free(tmpUse._targets); +				tmpUse._targets = 0;  			}  		}  	}  }  void ObjectHandler::readObject(Common::ReadStream &in, object_t &curObject) { -	curObject.nounIndex = in.readUint16BE(); -	curObject.dataIndex = in.readUint16BE(); +	curObject._nounIndex = in.readUint16BE(); +	curObject._dataIndex = in.readUint16BE();  	uint16 numSubElem = in.readUint16BE();  	if (numSubElem == 0) -		curObject.stateDataIndex = 0; +		curObject._stateDataIndex = 0;  	else -		curObject.stateDataIndex = (uint16 *)malloc(sizeof(uint16) * numSubElem); +		curObject._stateDataIndex = (uint16 *)malloc(sizeof(uint16) * numSubElem);  	for (int j = 0; j < numSubElem; j++) -		curObject.stateDataIndex[j] = in.readUint16BE(); - -	curObject.pathType = (path_t) in.readSint16BE(); -	curObject.vxPath = in.readSint16BE(); -	curObject.vyPath = in.readSint16BE(); -	curObject.actIndex = in.readUint16BE(); -	curObject.seqNumb = in.readByte(); -	curObject.currImagePtr = 0; - -	if (curObject.seqNumb == 0) { -		curObject.seqList[0].imageNbr = 0; -		curObject.seqList[0].seqPtr = 0; +		curObject._stateDataIndex[j] = in.readUint16BE(); + +	curObject._pathType = (path_t) in.readSint16BE(); +	curObject._vxPath = in.readSint16BE(); +	curObject._vyPath = in.readSint16BE(); +	curObject._actIndex = in.readUint16BE(); +	curObject._seqNumb = in.readByte(); +	curObject._currImagePtr = 0; + +	if (curObject._seqNumb == 0) { +		curObject._seqList[0]._imageNbr = 0; +		curObject._seqList[0]._seqPtr = 0;  	} -	for (int j = 0; j < curObject.seqNumb; j++) { -		curObject.seqList[j].imageNbr = in.readUint16BE(); -		curObject.seqList[j].seqPtr = 0; +	for (int j = 0; j < curObject._seqNumb; j++) { +		curObject._seqList[j]._imageNbr = in.readUint16BE(); +		curObject._seqList[j]._seqPtr = 0;  	} -	curObject.cycling = (cycle_t)in.readByte(); -	curObject.cycleNumb = in.readByte(); -	curObject.frameInterval = in.readByte(); -	curObject.frameTimer = in.readByte(); -	curObject.radius = in.readByte(); -	curObject.screenIndex = in.readByte(); -	curObject.x = in.readSint16BE(); -	curObject.y = in.readSint16BE(); -	curObject.oldx = in.readSint16BE(); -	curObject.oldy = in.readSint16BE(); -	curObject.vx = in.readByte(); -	curObject.vy = in.readByte(); -	curObject.objValue = in.readByte(); -	curObject.genericCmd = in.readSint16BE(); -	curObject.cmdIndex = in.readUint16BE(); -	curObject.carriedFl = (in.readByte() != 0); -	curObject.state = in.readByte(); -	curObject.verbOnlyFl = (in.readByte() != 0); -	curObject.priority = in.readByte(); -	curObject.viewx = in.readSint16BE(); -	curObject.viewy = in.readSint16BE(); -	curObject.direction = in.readSint16BE(); -	curObject.curSeqNum = in.readByte(); -	curObject.curImageNum = in.readByte(); -	curObject.oldvx = in.readByte(); -	curObject.oldvy = in.readByte(); +	curObject._cycling = (cycle_t)in.readByte(); +	curObject._cycleNumb = in.readByte(); +	curObject._frameInterval = in.readByte(); +	curObject._frameTimer = in.readByte(); +	curObject._radius = in.readByte(); +	curObject._screenIndex = in.readByte(); +	curObject._x = in.readSint16BE(); +	curObject._y = in.readSint16BE(); +	curObject._oldx = in.readSint16BE(); +	curObject._oldy = in.readSint16BE(); +	curObject._vx = in.readByte(); +	curObject._vy = in.readByte(); +	curObject._objValue = in.readByte(); +	curObject._genericCmd = in.readSint16BE(); +	curObject._cmdIndex = in.readUint16BE(); +	curObject._carriedFl = (in.readByte() != 0); +	curObject._state = in.readByte(); +	curObject._verbOnlyFl = (in.readByte() != 0); +	curObject._priority = in.readByte(); +	curObject._viewx = in.readSint16BE(); +	curObject._viewy = in.readSint16BE(); +	curObject._direction = in.readSint16BE(); +	curObject._curSeqNum = in.readByte(); +	curObject._curImageNum = in.readByte(); +	curObject._oldvx = in.readByte(); +	curObject._oldvy = in.readByte();  }  /**   * Load ObjectArr from Hugo.dat @@ -498,7 +498,7 @@ void ObjectHandler::readObject(Common::ReadStream &in, object_t &curObject) {  void ObjectHandler::loadObjectArr(Common::ReadStream &in) {  	debugC(6, kDebugObject, "loadObject(&in)");  	object_t tmpObject; -	tmpObject.stateDataIndex = 0; +	tmpObject._stateDataIndex = 0;  	for (int varnt = 0; varnt < _vm->_numVariant; varnt++) {  		uint16 numElem = in.readUint16BE(); @@ -514,8 +514,8 @@ void ObjectHandler::loadObjectArr(Common::ReadStream &in) {  			else {  				// Skip over uneeded objects.  				readObject(in, tmpObject); -				free(tmpObject.stateDataIndex); -				tmpObject.stateDataIndex = 0; +				free(tmpObject._stateDataIndex); +				tmpObject._stateDataIndex = 0;  			}  		}  	} @@ -528,7 +528,7 @@ void ObjectHandler::loadObjectArr(Common::ReadStream &in) {  void ObjectHandler::setCarriedScreen(int screenNum) {  	for (int i = kHeroIndex + 1; i < _numObj; i++) {// Any others  		if (isCarried(i))                           // being carried -			_objects[i].screenIndex = screenNum; +			_objects[i]._screenIndex = screenNum;  	}  } @@ -562,30 +562,30 @@ void ObjectHandler::saveObjects(Common::WriteStream *out) {  		// Save where curr_seq_p is pointing to  		saveSeq(&_objects[i]); -		out->writeByte(_objects[i].pathType); -		out->writeSint16BE(_objects[i].vxPath); -		out->writeSint16BE(_objects[i].vyPath); -		out->writeByte(_objects[i].cycling); -		out->writeByte(_objects[i].cycleNumb); -		out->writeByte(_objects[i].frameTimer); -		out->writeByte(_objects[i].screenIndex); -		out->writeSint16BE(_objects[i].x); -		out->writeSint16BE(_objects[i].y); -		out->writeSint16BE(_objects[i].oldx); -		out->writeSint16BE(_objects[i].oldy); -		out->writeSByte(_objects[i].vx); -		out->writeSByte(_objects[i].vy); -		out->writeByte(_objects[i].objValue); -		out->writeByte((_objects[i].carriedFl) ? 1 : 0); -		out->writeByte(_objects[i].state); -		out->writeByte(_objects[i].priority); -		out->writeSint16BE(_objects[i].viewx); -		out->writeSint16BE(_objects[i].viewy); -		out->writeSint16BE(_objects[i].direction); -		out->writeByte(_objects[i].curSeqNum); -		out->writeByte(_objects[i].curImageNum); -		out->writeSByte(_objects[i].oldvx); -		out->writeSByte(_objects[i].oldvy); +		out->writeByte(_objects[i]._pathType); +		out->writeSint16BE(_objects[i]._vxPath); +		out->writeSint16BE(_objects[i]._vyPath); +		out->writeByte(_objects[i]._cycling); +		out->writeByte(_objects[i]._cycleNumb); +		out->writeByte(_objects[i]._frameTimer); +		out->writeByte(_objects[i]._screenIndex); +		out->writeSint16BE(_objects[i]._x); +		out->writeSint16BE(_objects[i]._y); +		out->writeSint16BE(_objects[i]._oldx); +		out->writeSint16BE(_objects[i]._oldy); +		out->writeSByte(_objects[i]._vx); +		out->writeSByte(_objects[i]._vy); +		out->writeByte(_objects[i]._objValue); +		out->writeByte((_objects[i]._carriedFl) ? 1 : 0); +		out->writeByte(_objects[i]._state); +		out->writeByte(_objects[i]._priority); +		out->writeSint16BE(_objects[i]._viewx); +		out->writeSint16BE(_objects[i]._viewy); +		out->writeSint16BE(_objects[i]._direction); +		out->writeByte(_objects[i]._curSeqNum); +		out->writeByte(_objects[i]._curImageNum); +		out->writeSByte(_objects[i]._oldvx); +		out->writeSByte(_objects[i]._oldvy);  	}  } @@ -594,30 +594,30 @@ void ObjectHandler::saveObjects(Common::WriteStream *out) {   */  void ObjectHandler::restoreObjects(Common::SeekableReadStream *in) {  	for (int i = 0; i < _numObj; i++) { -		_objects[i].pathType = (path_t) in->readByte(); -		_objects[i].vxPath = in->readSint16BE(); -		_objects[i].vyPath = in->readSint16BE(); -		_objects[i].cycling = (cycle_t) in->readByte(); -		_objects[i].cycleNumb = in->readByte(); -		_objects[i].frameTimer = in->readByte(); -		_objects[i].screenIndex = in->readByte(); -		_objects[i].x = in->readSint16BE(); -		_objects[i].y = in->readSint16BE(); -		_objects[i].oldx = in->readSint16BE(); -		_objects[i].oldy = in->readSint16BE(); -		_objects[i].vx = in->readSByte(); -		_objects[i].vy = in->readSByte(); -		_objects[i].objValue = in->readByte(); -		_objects[i].carriedFl = (in->readByte() == 1); -		_objects[i].state = in->readByte(); -		_objects[i].priority = in->readByte(); -		_objects[i].viewx = in->readSint16BE(); -		_objects[i].viewy = in->readSint16BE(); -		_objects[i].direction = in->readSint16BE(); -		_objects[i].curSeqNum = in->readByte(); -		_objects[i].curImageNum = in->readByte(); -		_objects[i].oldvx = in->readSByte(); -		_objects[i].oldvy = in->readSByte(); +		_objects[i]._pathType = (path_t) in->readByte(); +		_objects[i]._vxPath = in->readSint16BE(); +		_objects[i]._vyPath = in->readSint16BE(); +		_objects[i]._cycling = (cycle_t) in->readByte(); +		_objects[i]._cycleNumb = in->readByte(); +		_objects[i]._frameTimer = in->readByte(); +		_objects[i]._screenIndex = in->readByte(); +		_objects[i]._x = in->readSint16BE(); +		_objects[i]._y = in->readSint16BE(); +		_objects[i]._oldx = in->readSint16BE(); +		_objects[i]._oldy = in->readSint16BE(); +		_objects[i]._vx = in->readSByte(); +		_objects[i]._vy = in->readSByte(); +		_objects[i]._objValue = in->readByte(); +		_objects[i]._carriedFl = (in->readByte() == 1); +		_objects[i]._state = in->readByte(); +		_objects[i]._priority = in->readByte(); +		_objects[i]._viewx = in->readSint16BE(); +		_objects[i]._viewy = in->readSint16BE(); +		_objects[i]._direction = in->readSint16BE(); +		_objects[i]._curSeqNum = in->readByte(); +		_objects[i]._curImageNum = in->readByte(); +		_objects[i]._oldvx = in->readSByte(); +		_objects[i]._oldvy = in->readSByte();  	}  } @@ -627,7 +627,7 @@ void ObjectHandler::restoreObjects(Common::SeekableReadStream *in) {  int ObjectHandler::calcMaxScore() {  	int score = 0;  	for (int i = 0; i < _numObj; i++) -		score += _objects[i].objValue; +		score += _objects[i]._objValue;  	return score;  } @@ -788,26 +788,26 @@ void ObjectHandler::boundaryCollision(object_t *obj) {  	if (obj == _vm->_hero) {  		// Hotspots only relevant to HERO  		int x; -		if (obj->vx > 0) -			x = obj->x + obj->currImagePtr->x2; +		if (obj->_vx > 0) +			x = obj->_x + obj->_currImagePtr->_x2;  		else -			x = obj->x + obj->currImagePtr->x1; -		int y = obj->y + obj->currImagePtr->y2; +			x = obj->_x + obj->_currImagePtr->_x1; +		int y = obj->_y + obj->_currImagePtr->_y2; -		int16 index = _vm->_mouse->findExit(x, y, obj->screenIndex); +		int16 index = _vm->_mouse->findExit(x, y, obj->_screenIndex);  		if (index >= 0)  			_vm->_scheduler->insertActionList(_vm->_mouse->getHotspotActIndex(index));  	} else {  		// Check whether an object collided with HERO -		int dx = _vm->_hero->x + _vm->_hero->currImagePtr->x1 - obj->x - obj->currImagePtr->x1; -		int dy = _vm->_hero->y + _vm->_hero->currImagePtr->y2 - obj->y - obj->currImagePtr->y2; +		int dx = _vm->_hero->_x + _vm->_hero->_currImagePtr->_x1 - obj->_x - obj->_currImagePtr->_x1; +		int dy = _vm->_hero->_y + _vm->_hero->_currImagePtr->_y2 - obj->_y - obj->_currImagePtr->_y2;  		// If object's radius is infinity, use a closer value -		int8 radius = obj->radius; +		int8 radius = obj->_radius;  		if (radius < 0)  			radius = kStepDx * 2;  		if ((abs(dx) <= radius) && (abs(dy) <= radius)) -			_vm->_scheduler->insertActionList(obj->actIndex); +			_vm->_scheduler->insertActionList(obj->_actIndex);  	}  } diff --git a/engines/hugo/object.h b/engines/hugo/object.h index 84c20db041..8f8043dbbc 100644 --- a/engines/hugo/object.h +++ b/engines/hugo/object.h @@ -35,14 +35,14 @@  namespace Hugo {  struct target_t {                                   // Secondary target for action -	uint16 nounIndex;                               // Secondary object -	uint16 verbIndex;                               // Action on secondary object +	uint16 _nounIndex;                               // Secondary object +	uint16 _verbIndex;                               // Action on secondary object  };  struct uses_t {                                     // Define uses of certain objects -	int16     objId;                                // Primary object -	uint16    dataIndex;                            // String if no secondary object matches -	target_t *targets;                              // List of secondary targets +	int16     _objId;                                // Primary object +	uint16    _dataIndex;                            // String if no secondary object matches +	target_t *_targets;                              // List of secondary targets  };  class ObjectHandler { diff --git a/engines/hugo/object_v1d.cpp b/engines/hugo/object_v1d.cpp index 831dc88dea..7b8f90e189 100644 --- a/engines/hugo/object_v1d.cpp +++ b/engines/hugo/object_v1d.cpp @@ -64,7 +64,7 @@ void ObjectHandler_v1d::updateImages() {  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i]; -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->cycling >= kCycleAlmostInvisible)) +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_cycling >= kCycleAlmostInvisible))  			objindex[num_objs++] = i;  	} @@ -75,27 +75,27 @@ void ObjectHandler_v1d::updateImages() {  	for (int i = 0; i < num_objs; i++) {  		object_t *obj = &_objects[objindex[i]];  		// Count down inter-frame timer -		if (obj->frameTimer) -			obj->frameTimer--; +		if (obj->_frameTimer) +			obj->_frameTimer--; -		if (obj->cycling > kCycleAlmostInvisible) {      // Only if visible -			switch (obj->cycling) { +		if (obj->_cycling > kCycleAlmostInvisible) {      // Only if visible +			switch (obj->_cycling) {  			case kCycleNotCycling: -				_vm->_screen->displayFrame(obj->x, obj->y, obj->currImagePtr, false); +				_vm->_screen->displayFrame(obj->_x, obj->_y, obj->_currImagePtr, false);  				break;  			case kCycleForward: -				if (obj->frameTimer)                // Not time to see next frame yet -					_vm->_screen->displayFrame(obj->x, obj->y, obj->currImagePtr, false); +				if (obj->_frameTimer)                // Not time to see next frame yet +					_vm->_screen->displayFrame(obj->_x, obj->_y, obj->_currImagePtr, false);  				else -					_vm->_screen->displayFrame(obj->x, obj->y, obj->currImagePtr->nextSeqPtr, false); +					_vm->_screen->displayFrame(obj->_x, obj->_y, obj->_currImagePtr->_nextSeqPtr, false);  				break;  			case kCycleBackward: { -				seq_t *seqPtr = obj->currImagePtr; -				if (!obj->frameTimer) {             // Show next frame -					while (seqPtr->nextSeqPtr != obj->currImagePtr) -						seqPtr = seqPtr->nextSeqPtr; +				seq_t *seqPtr = obj->_currImagePtr; +				if (!obj->_frameTimer) {             // Show next frame +					while (seqPtr->_nextSeqPtr != obj->_currImagePtr) +						seqPtr = seqPtr->_nextSeqPtr;  				} -				_vm->_screen->displayFrame(obj->x, obj->y, seqPtr, false); +				_vm->_screen->displayFrame(obj->_x, obj->_y, seqPtr, false);  				break;  				}  			default: @@ -109,28 +109,28 @@ void ObjectHandler_v1d::updateImages() {  	// Cycle any animating objects  	for (int i = 0; i < num_objs; i++) {  		object_t *obj = &_objects[objindex[i]]; -		if (obj->cycling != kCycleInvisible) { +		if (obj->_cycling != kCycleInvisible) {  			// Only if it's visible -			if (obj->cycling == kCycleAlmostInvisible) -				obj->cycling = kCycleInvisible; +			if (obj->_cycling == kCycleAlmostInvisible) +				obj->_cycling = kCycleInvisible;  			// Now Rotate to next picture in sequence -			switch (obj->cycling) { +			switch (obj->_cycling) {  			case kCycleNotCycling:  				break;  			case kCycleForward: -				if (!obj->frameTimer) { +				if (!obj->_frameTimer) {  					// Time to step to next frame -					obj->currImagePtr = obj->currImagePtr->nextSeqPtr; +					obj->_currImagePtr = obj->_currImagePtr->_nextSeqPtr;  					// Find out if this is last frame of sequence  					// If so, reset frame_timer and decrement n_cycle -					if (obj->frameInterval || obj->cycleNumb) { -						obj->frameTimer = obj->frameInterval; -						for (int j = 0; j < obj->seqNumb; j++) { -							if (obj->currImagePtr->nextSeqPtr == obj->seqList[j].seqPtr) { -								if (obj->cycleNumb) { // Decr cycleNumb if Non-continous -									if (!--obj->cycleNumb) -										obj->cycling = kCycleNotCycling; +					if (obj->_frameInterval || obj->_cycleNumb) { +						obj->_frameTimer = obj->_frameInterval; +						for (int j = 0; j < obj->_seqNumb; j++) { +							if (obj->_currImagePtr->_nextSeqPtr == obj->_seqList[j]._seqPtr) { +								if (obj->_cycleNumb) { // Decr cycleNumb if Non-continous +									if (!--obj->_cycleNumb) +										obj->_cycling = kCycleNotCycling;  								}  							}  						} @@ -138,20 +138,20 @@ void ObjectHandler_v1d::updateImages() {  				}  				break;  			case kCycleBackward: { -				if (!obj->frameTimer) { +				if (!obj->_frameTimer) {  					// Time to step to prev frame -					seq_t *seqPtr = obj->currImagePtr; -					while (obj->currImagePtr->nextSeqPtr != seqPtr) -						obj->currImagePtr = obj->currImagePtr->nextSeqPtr; +					seq_t *seqPtr = obj->_currImagePtr; +					while (obj->_currImagePtr->_nextSeqPtr != seqPtr) +						obj->_currImagePtr = obj->_currImagePtr->_nextSeqPtr;  					// Find out if this is first frame of sequence  					// If so, reset frame_timer and decrement n_cycle -					if (obj->frameInterval || obj->cycleNumb) { -						obj->frameTimer = obj->frameInterval; -						for (int j = 0; j < obj->seqNumb; j++) { -							if (obj->currImagePtr == obj->seqList[j].seqPtr) { -								if (obj->cycleNumb){ // Decr cycleNumb if Non-continous -									if (!--obj->cycleNumb) -										obj->cycling = kCycleNotCycling; +					if (obj->_frameInterval || obj->_cycleNumb) { +						obj->_frameTimer = obj->_frameInterval; +						for (int j = 0; j < obj->_seqNumb; j++) { +							if (obj->_currImagePtr == obj->_seqList[j]._seqPtr) { +								if (obj->_cycleNumb){ // Decr cycleNumb if Non-continous +									if (!--obj->_cycleNumb) +										obj->_cycling = kCycleNotCycling;  								}  							}  						} @@ -162,8 +162,8 @@ void ObjectHandler_v1d::updateImages() {  			default:  				break;  			} -			obj->oldx = obj->x; -			obj->oldy = obj->y; +			obj->_oldx = obj->_x; +			obj->_oldy = obj->_y;  		}  	}  } @@ -184,161 +184,161 @@ void ObjectHandler_v1d::moveObjects() {  	// Don't store foreground or background objects  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i];               // Get pointer to object -		seq_t *currImage = obj->currImagePtr;       // Get ptr to current image -		if (obj->screenIndex == *_vm->_screen_p) { -			switch (obj->pathType) { +		seq_t *currImage = obj->_currImagePtr;       // Get ptr to current image +		if (obj->_screenIndex == *_vm->_screen_p) { +			switch (obj->_pathType) {  			case kPathChase: {  				// Allowable motion wrt boundary -				int dx = _vm->_hero->x + _vm->_hero->currImagePtr->x1 - obj->x - currImage->x1; -				int dy = _vm->_hero->y + _vm->_hero->currImagePtr->y2 - obj->y - currImage->y2 - 1; +				int dx = _vm->_hero->_x + _vm->_hero->_currImagePtr->_x1 - obj->_x - currImage->_x1; +				int dy = _vm->_hero->_y + _vm->_hero->_currImagePtr->_y2 - obj->_y - currImage->_y2 - 1;  				if (abs(dx) <= 1) -					obj->vx = 0; +					obj->_vx = 0;  				else -					obj->vx = (dx > 0) ? MIN(dx, obj->vxPath) : MAX(dx, -obj->vxPath); +					obj->_vx = (dx > 0) ? MIN(dx, obj->_vxPath) : MAX(dx, -obj->_vxPath);  				if (abs(dy) <= 1) -					obj->vy = 0; +					obj->_vy = 0;  				else -					obj->vy = (dy > 0) ? MIN(dy, obj->vyPath) : MAX(dy, -obj->vyPath); +					obj->_vy = (dy > 0) ? MIN(dy, obj->_vyPath) : MAX(dy, -obj->_vyPath);  				// Set first image in sequence (if multi-seq object) -				if (obj->seqNumb == 4) { -					if (!obj->vx) {                 // Got 4 directions -						if (obj->vx != obj->oldvx) {// vx just stopped +				if (obj->_seqNumb == 4) { +					if (!obj->_vx) {                 // Got 4 directions +						if (obj->_vx != obj->_oldvx) {// vx just stopped  							if (dy > 0) -								obj->currImagePtr = obj->seqList[SEQ_DOWN].seqPtr; +								obj->_currImagePtr = obj->_seqList[SEQ_DOWN]._seqPtr;  							else -								obj->currImagePtr = obj->seqList[SEQ_UP].seqPtr; +								obj->_currImagePtr = obj->_seqList[SEQ_UP]._seqPtr;  						} -					} else if (obj->vx != obj->oldvx) { +					} else if (obj->_vx != obj->_oldvx) {  						if (dx > 0) -							obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  						else -							obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  					}  				} -				if (obj->vx || obj->vy) { -					if (obj->seqNumb > 1) -						obj->cycling = kCycleForward; +				if (obj->_vx || obj->_vy) { +					if (obj->_seqNumb > 1) +						obj->_cycling = kCycleForward;  				} else { -					obj->cycling = kCycleNotCycling; +					obj->_cycling = kCycleNotCycling;  					boundaryCollision(obj);         // Must have got hero!  				} -				obj->oldvx = obj->vx; -				obj->oldvy = obj->vy; -				currImage = obj->currImagePtr;      // Get (new) ptr to current image +				obj->_oldvx = obj->_vx; +				obj->_oldvy = obj->_vy; +				currImage = obj->_currImagePtr;      // Get (new) ptr to current image  				break;  				}  			case kPathWander:  				if (!_vm->_rnd->getRandomNumber(3 * _vm->_normalTPS)) {       // Kick on random interval -					obj->vx = _vm->_rnd->getRandomNumber(obj->vxPath << 1) - obj->vxPath; -					obj->vy = _vm->_rnd->getRandomNumber(obj->vyPath << 1) - obj->vyPath; +					obj->_vx = _vm->_rnd->getRandomNumber(obj->_vxPath << 1) - obj->_vxPath; +					obj->_vy = _vm->_rnd->getRandomNumber(obj->_vyPath << 1) - obj->_vyPath;  					// Set first image in sequence (if multi-seq object) -					if (obj->seqNumb > 1) { -						if (!obj->vx && (obj->seqNumb > 2)) { -							if (obj->vx != obj->oldvx) { // vx just stopped -								if (obj->vy > 0) -									obj->currImagePtr = obj->seqList[SEQ_DOWN].seqPtr; +					if (obj->_seqNumb > 1) { +						if (!obj->_vx && (obj->_seqNumb > 2)) { +							if (obj->_vx != obj->_oldvx) { // vx just stopped +								if (obj->_vy > 0) +									obj->_currImagePtr = obj->_seqList[SEQ_DOWN]._seqPtr;  								else -									obj->currImagePtr = obj->seqList[SEQ_UP].seqPtr; +									obj->_currImagePtr = obj->_seqList[SEQ_UP]._seqPtr;  							} -						} else if (obj->vx != obj->oldvx) { -							if (obj->vx > 0) -								obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +						} else if (obj->_vx != obj->_oldvx) { +							if (obj->_vx > 0) +								obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  							else -								obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +								obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  						} -						if (obj->vx || obj->vy) -							obj->cycling = kCycleForward; +						if (obj->_vx || obj->_vy) +							obj->_cycling = kCycleForward;  						else -							obj->cycling = kCycleNotCycling; +							obj->_cycling = kCycleNotCycling;  					} -					obj->oldvx = obj->vx; -					obj->oldvy = obj->vy; -					currImage = obj->currImagePtr;  // Get (new) ptr to current image +					obj->_oldvx = obj->_vx; +					obj->_oldvy = obj->_vy; +					currImage = obj->_currImagePtr;  // Get (new) ptr to current image  				}  				break;  			default:  				; // Really, nothing  			}  			// Store boundaries -			if ((obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) -				storeBoundary(obj->x + currImage->x1, obj->x + currImage->x2, obj->y + currImage->y2); +			if ((obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating)) +				storeBoundary(obj->_x + currImage->_x1, obj->_x + currImage->_x2, obj->_y + currImage->_y2);  		}  	}  	// Move objects, allowing for boundaries  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i];               // Get pointer to object -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->vx || obj->vy)) { +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_vx || obj->_vy)) {  			// Only process if it's moving  			// Do object movement.  Delta_x,y return allowed movement in x,y  			// to move as close to a boundary as possible without crossing it. -			seq_t *currImage = obj->currImagePtr;   // Get ptr to current image +			seq_t *currImage = obj->_currImagePtr;   // Get ptr to current image  			// object coordinates -			int x1 = obj->x + currImage->x1;        // Left edge of object -			int x2 = obj->x + currImage->x2;        // Right edge -			int y1 = obj->y + currImage->y1;        // Top edge -			int y2 = obj->y + currImage->y2;        // Bottom edge +			int x1 = obj->_x + currImage->_x1;        // Left edge of object +			int x2 = obj->_x + currImage->_x2;        // Right edge +			int y1 = obj->_y + currImage->_y1;        // Top edge +			int y2 = obj->_y + currImage->_y2;        // Bottom edge -			if ((obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) +			if ((obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating))  				clearBoundary(x1, x2, y2);     // Clear our own boundary  			// Allowable motion wrt boundary -			int dx = deltaX(x1, x2, obj->vx, y2); -			if (dx != obj->vx) { +			int dx = deltaX(x1, x2, obj->_vx, y2); +			if (dx != obj->_vx) {  				// An object boundary collision!  				boundaryCollision(obj); -				obj->vx = 0; +				obj->_vx = 0;  			} -			int dy = deltaY(x1, x2, obj->vy, y2); -			if (dy != obj->vy) { +			int dy = deltaY(x1, x2, obj->_vy, y2); +			if (dy != obj->_vy) {  				// An object boundary collision!  				boundaryCollision(obj); -				obj->vy = 0; +				obj->_vy = 0;  			} -			if ((obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) +			if ((obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating))  				storeBoundary(x1, x2, y2);     // Re-store our own boundary -			obj->x += dx;                           // Update object position -			obj->y += dy; +			obj->_x += dx;                           // Update object position +			obj->_y += dy;  			// Don't let object go outside screen  			if (x1 < kEdge) -				obj->x = kEdge2; +				obj->_x = kEdge2;  			if (x2 > (kXPix - kEdge)) -				obj->x = kXPix - kEdge2 - (x2 - x1); +				obj->_x = kXPix - kEdge2 - (x2 - x1);  			if (y1 < kEdge) -				obj->y = kEdge2; +				obj->_y = kEdge2;  			if (y2 > (kYPix - kEdge)) -				obj->y = kYPix - kEdge2 - (y2 - y1); +				obj->_y = kYPix - kEdge2 - (y2 - y1); -			if ((obj->vx == 0) && (obj->vy == 0)) -				obj->cycling = kCycleNotCycling; +			if ((obj->_vx == 0) && (obj->_vy == 0)) +				obj->_cycling = kCycleNotCycling;  		}  	}  	// Clear all object baselines from the boundary file.  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i];               // Get pointer to object -		seq_t *currImage = obj->currImagePtr;       // Get ptr to current image -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) -			clearBoundary(obj->oldx + currImage->x1, obj->oldx + currImage->x2, obj->oldy + currImage->y2); +		seq_t *currImage = obj->_currImagePtr;       // Get ptr to current image +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating)) +			clearBoundary(obj->_oldx + currImage->_x1, obj->_oldx + currImage->_x2, obj->_oldy + currImage->_y2);  	}  	// If maze mode is enabled, do special maze processing -	if (_vm->_maze.enabledFl) { -		seq_t *currImage = _vm->_hero->currImagePtr;// Get ptr to current image +	if (_vm->_maze._enabledFl) { +		seq_t *currImage = _vm->_hero->_currImagePtr;// Get ptr to current image  		// hero coordinates -		int x1 = _vm->_hero->x + currImage->x1;     // Left edge of object -		int x2 = _vm->_hero->x + currImage->x2;     // Right edge -		int y1 = _vm->_hero->y + currImage->y1;     // Top edge -		int y2 = _vm->_hero->y + currImage->y2;     // Bottom edge +		int x1 = _vm->_hero->_x + currImage->_x1;     // Left edge of object +		int x2 = _vm->_hero->_x + currImage->_x2;     // Right edge +		int y1 = _vm->_hero->_y + currImage->_y1;     // Top edge +		int y2 = _vm->_hero->_y + currImage->_y2;     // Bottom edge  		_vm->_scheduler->processMaze(x1, x2, y1, y2);  	} @@ -355,11 +355,11 @@ void ObjectHandler_v1d::swapImages(int objIndex1, int objIndex2) {  	seqList_t tmpSeqList[kMaxSeqNumb];  	int seqListSize = sizeof(seqList_t) * kMaxSeqNumb; -	memmove(tmpSeqList, _objects[objIndex1].seqList, seqListSize); -	memmove(_objects[objIndex1].seqList, _objects[objIndex2].seqList, seqListSize); -	memmove(_objects[objIndex2].seqList, tmpSeqList, seqListSize); -	_objects[objIndex1].currImagePtr = _objects[objIndex1].seqList[0].seqPtr; -	_objects[objIndex2].currImagePtr = _objects[objIndex2].seqList[0].seqPtr; +	memmove(tmpSeqList, _objects[objIndex1]._seqList, seqListSize); +	memmove(_objects[objIndex1]._seqList, _objects[objIndex2]._seqList, seqListSize); +	memmove(_objects[objIndex2]._seqList, tmpSeqList, seqListSize); +	_objects[objIndex1]._currImagePtr = _objects[objIndex1]._seqList[0]._seqPtr; +	_objects[objIndex2]._currImagePtr = _objects[objIndex2]._seqList[0]._seqPtr;  	_vm->_heroImage = (_vm->_heroImage == kHeroIndex) ? objIndex2 : kHeroIndex;  } @@ -367,9 +367,9 @@ void ObjectHandler_v1d::homeIn(int objIndex1, const int objIndex2, const int8 ob  	// object obj1 will home in on object obj2  	object_t *obj1 = &_objects[objIndex1];  	object_t *obj2 = &_objects[objIndex2]; -	obj1->pathType = kPathAuto; -	int dx = obj1->x + obj1->currImagePtr->x1 - obj2->x - obj2->currImagePtr->x1; -	int dy = obj1->y + obj1->currImagePtr->y1 - obj2->y - obj2->currImagePtr->y1; +	obj1->_pathType = kPathAuto; +	int dx = obj1->_x + obj1->_currImagePtr->_x1 - obj2->_x - obj2->_currImagePtr->_x1; +	int dy = obj1->_y + obj1->_currImagePtr->_y1 - obj2->_y - obj2->_currImagePtr->_y1;  	if (dx == 0)                                    // Don't EVER divide by zero!  		dx = 1; @@ -377,11 +377,11 @@ void ObjectHandler_v1d::homeIn(int objIndex1, const int objIndex2, const int8 ob  		dy = 1;  	if (abs(dx) > abs(dy)) { -		obj1->vx = objDx * -sign<int8>(dx); -		obj1->vy = abs((objDy * dy) / dx) * -sign<int8>(dy); +		obj1->_vx = objDx * -sign<int8>(dx); +		obj1->_vy = abs((objDy * dy) / dx) * -sign<int8>(dy);  	} else { -		obj1->vy = objDy * sign<int8>(dy); -		obj1->vx = abs((objDx * dx) / dy) * sign<int8>(dx); +		obj1->_vy = objDy * sign<int8>(dy); +		obj1->_vx = abs((objDx * dx) / dy) * sign<int8>(dx);  	}  }  } // End of namespace Hugo diff --git a/engines/hugo/object_v1w.cpp b/engines/hugo/object_v1w.cpp index 4388ef5520..dd3de5fe40 100644 --- a/engines/hugo/object_v1w.cpp +++ b/engines/hugo/object_v1w.cpp @@ -64,7 +64,7 @@ void ObjectHandler_v1w::updateImages() {  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i]; -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->cycling >= kCycleAlmostInvisible)) +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_cycling >= kCycleAlmostInvisible))  			objindex[num_objs++] = i;  	} @@ -75,27 +75,27 @@ void ObjectHandler_v1w::updateImages() {  	for (int i = 0; i < num_objs; i++) {  		object_t *obj = &_objects[objindex[i]];  		// Count down inter-frame timer -		if (obj->frameTimer) -			obj->frameTimer--; +		if (obj->_frameTimer) +			obj->_frameTimer--; -		if (obj->cycling > kCycleAlmostInvisible) { // Only if visible -			switch (obj->cycling) { +		if (obj->_cycling > kCycleAlmostInvisible) { // Only if visible +			switch (obj->_cycling) {  			case kCycleNotCycling: -				_vm->_screen->displayFrame(obj->x, obj->y, obj->currImagePtr, obj->priority == kPriorityOverOverlay); +				_vm->_screen->displayFrame(obj->_x, obj->_y, obj->_currImagePtr, obj->_priority == kPriorityOverOverlay);  				break;  			case kCycleForward: -				if (obj->frameTimer)                // Not time to see next frame yet -					_vm->_screen->displayFrame(obj->x, obj->y, obj->currImagePtr, obj->priority == kPriorityOverOverlay); +				if (obj->_frameTimer)                // Not time to see next frame yet +					_vm->_screen->displayFrame(obj->_x, obj->_y, obj->_currImagePtr, obj->_priority == kPriorityOverOverlay);  				else -					_vm->_screen->displayFrame(obj->x, obj->y, obj->currImagePtr->nextSeqPtr, obj->priority == kPriorityOverOverlay); +					_vm->_screen->displayFrame(obj->_x, obj->_y, obj->_currImagePtr->_nextSeqPtr, obj->_priority == kPriorityOverOverlay);  				break;  			case kCycleBackward: { -				seq_t *seqPtr = obj->currImagePtr; -				if (!obj->frameTimer) {             // Show next frame -					while (seqPtr->nextSeqPtr != obj->currImagePtr) -						seqPtr = seqPtr->nextSeqPtr; +				seq_t *seqPtr = obj->_currImagePtr; +				if (!obj->_frameTimer) {             // Show next frame +					while (seqPtr->_nextSeqPtr != obj->_currImagePtr) +						seqPtr = seqPtr->_nextSeqPtr;  				} -				_vm->_screen->displayFrame(obj->x, obj->y, seqPtr, obj->priority == kPriorityOverOverlay); +				_vm->_screen->displayFrame(obj->_x, obj->_y, seqPtr, obj->_priority == kPriorityOverOverlay);  				break;  				}  			default: @@ -107,28 +107,28 @@ void ObjectHandler_v1w::updateImages() {  	// Cycle any animating objects  	for (int i = 0; i < num_objs; i++) {  		object_t *obj = &_objects[objindex[i]]; -		if (obj->cycling != kCycleInvisible) { +		if (obj->_cycling != kCycleInvisible) {  			// Only if it's visible -			if (obj->cycling == kCycleAlmostInvisible) -				obj->cycling = kCycleInvisible; +			if (obj->_cycling == kCycleAlmostInvisible) +				obj->_cycling = kCycleInvisible;  			// Now Rotate to next picture in sequence -			switch (obj->cycling) { +			switch (obj->_cycling) {  			case kCycleNotCycling:  				break;  			case kCycleForward: -				if (!obj->frameTimer) { +				if (!obj->_frameTimer) {  					// Time to step to next frame -					obj->currImagePtr = obj->currImagePtr->nextSeqPtr; +					obj->_currImagePtr = obj->_currImagePtr->_nextSeqPtr;  					// Find out if this is last frame of sequence  					// If so, reset frame_timer and decrement n_cycle -					if (obj->frameInterval || obj->cycleNumb) { -						obj->frameTimer = obj->frameInterval; -						for (int j = 0; j < obj->seqNumb; j++) { -							if (obj->currImagePtr->nextSeqPtr == obj->seqList[j].seqPtr) { -								if (obj->cycleNumb) { // Decr cycleNumb if Non-continous -									if (!--obj->cycleNumb) -										obj->cycling = kCycleNotCycling; +					if (obj->_frameInterval || obj->_cycleNumb) { +						obj->_frameTimer = obj->_frameInterval; +						for (int j = 0; j < obj->_seqNumb; j++) { +							if (obj->_currImagePtr->_nextSeqPtr == obj->_seqList[j]._seqPtr) { +								if (obj->_cycleNumb) { // Decr cycleNumb if Non-continous +									if (!--obj->_cycleNumb) +										obj->_cycling = kCycleNotCycling;  								}  							}  						} @@ -136,20 +136,20 @@ void ObjectHandler_v1w::updateImages() {  				}  				break;  			case kCycleBackward: { -				if (!obj->frameTimer) { +				if (!obj->_frameTimer) {  					// Time to step to prev frame -					seq_t *seqPtr = obj->currImagePtr; -					while (obj->currImagePtr->nextSeqPtr != seqPtr) -						obj->currImagePtr = obj->currImagePtr->nextSeqPtr; +					seq_t *seqPtr = obj->_currImagePtr; +					while (obj->_currImagePtr->_nextSeqPtr != seqPtr) +						obj->_currImagePtr = obj->_currImagePtr->_nextSeqPtr;  					// Find out if this is first frame of sequence  					// If so, reset frame_timer and decrement n_cycle -					if (obj->frameInterval || obj->cycleNumb) { -						obj->frameTimer = obj->frameInterval; -						for (int j = 0; j < obj->seqNumb; j++) { -							if (obj->currImagePtr == obj->seqList[j].seqPtr) { -								if (obj->cycleNumb){ // Decr cycleNumb if Non-continous -									if (!--obj->cycleNumb) -										obj->cycling = kCycleNotCycling; +					if (obj->_frameInterval || obj->_cycleNumb) { +						obj->_frameTimer = obj->_frameInterval; +						for (int j = 0; j < obj->_seqNumb; j++) { +							if (obj->_currImagePtr == obj->_seqList[j]._seqPtr) { +								if (obj->_cycleNumb){ // Decr cycleNumb if Non-continous +									if (!--obj->_cycleNumb) +										obj->_cycling = kCycleNotCycling;  								}  							}  						} @@ -160,8 +160,8 @@ void ObjectHandler_v1w::updateImages() {  			default:  				break;  			} -			obj->oldx = obj->x; -			obj->oldy = obj->y; +			obj->_oldx = obj->_x; +			obj->_oldy = obj->_y;  		}  	}  } @@ -181,174 +181,174 @@ void ObjectHandler_v1w::moveObjects() {  	// Don't store foreground or background objects  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i];               // Get pointer to object -		seq_t *currImage = obj->currImagePtr;       // Get ptr to current image -		if (obj->screenIndex == *_vm->_screen_p) { -			switch (obj->pathType) { +		seq_t *currImage = obj->_currImagePtr;       // Get ptr to current image +		if (obj->_screenIndex == *_vm->_screen_p) { +			switch (obj->_pathType) {  			case kPathChase:  			case kPathChase2: { -				int8 radius = obj->radius;          // Default to object's radius +				int8 radius = obj->_radius;          // Default to object's radius  				if (radius < 0)                     // If radius infinity, use closer value  					radius = kStepDx;  				// Allowable motion wrt boundary -				int dx = _vm->_hero->x + _vm->_hero->currImagePtr->x1 - obj->x - currImage->x1; -				int dy = _vm->_hero->y + _vm->_hero->currImagePtr->y2 - obj->y - currImage->y2 - 1; +				int dx = _vm->_hero->_x + _vm->_hero->_currImagePtr->_x1 - obj->_x - currImage->_x1; +				int dy = _vm->_hero->_y + _vm->_hero->_currImagePtr->_y2 - obj->_y - currImage->_y2 - 1;  				if (abs(dx) <= radius) -					obj->vx = 0; +					obj->_vx = 0;  				else -					obj->vx = (dx > 0) ? MIN(dx, obj->vxPath) : MAX(dx, -obj->vxPath); +					obj->_vx = (dx > 0) ? MIN(dx, obj->_vxPath) : MAX(dx, -obj->_vxPath);  				if (abs(dy) <= radius) -					obj->vy = 0; +					obj->_vy = 0;  				else -					obj->vy = (dy > 0) ? MIN(dy, obj->vyPath) : MAX(dy, -obj->vyPath); +					obj->_vy = (dy > 0) ? MIN(dy, obj->_vyPath) : MAX(dy, -obj->_vyPath);  				// Set first image in sequence (if multi-seq object) -				switch (obj->seqNumb) { +				switch (obj->_seqNumb) {  				case 4: -					if (!obj->vx) {                 // Got 4 directions -						if (obj->vx != obj->oldvx) { // vx just stopped +					if (!obj->_vx) {                 // Got 4 directions +						if (obj->_vx != obj->_oldvx) { // vx just stopped  							if (dy >= 0) -								obj->currImagePtr = obj->seqList[SEQ_DOWN].seqPtr; +								obj->_currImagePtr = obj->_seqList[SEQ_DOWN]._seqPtr;  							else -								obj->currImagePtr = obj->seqList[SEQ_UP].seqPtr; +								obj->_currImagePtr = obj->_seqList[SEQ_UP]._seqPtr;  						} -					} else if (obj->vx != obj->oldvx) { +					} else if (obj->_vx != obj->_oldvx) {  						if (dx > 0) -							obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  						else -							obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  					}  					break;  				case 3:  				case 2: -					if (obj->vx != obj->oldvx) {    // vx just stopped +					if (obj->_vx != obj->_oldvx) {    // vx just stopped  						if (dx > 0)                 // Left & right only -							obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  						else -							obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  					}  					break;  				} -				if (obj->vx || obj->vy) { -					obj->cycling = kCycleForward; +				if (obj->_vx || obj->_vy) { +					obj->_cycling = kCycleForward;  				} else { -					obj->cycling = kCycleNotCycling; +					obj->_cycling = kCycleNotCycling;  					boundaryCollision(obj);         // Must have got hero!  				} -				obj->oldvx = obj->vx; -				obj->oldvy = obj->vy; -				currImage = obj->currImagePtr;      // Get (new) ptr to current image +				obj->_oldvx = obj->_vx; +				obj->_oldvy = obj->_vy; +				currImage = obj->_currImagePtr;      // Get (new) ptr to current image  				break;  				}  			case kPathWander2:  			case kPathWander:  				if (!_vm->_rnd->getRandomNumber(3 * _vm->_normalTPS)) {       // Kick on random interval -					obj->vx = _vm->_rnd->getRandomNumber(obj->vxPath << 1) - obj->vxPath; -					obj->vy = _vm->_rnd->getRandomNumber(obj->vyPath << 1) - obj->vyPath; +					obj->_vx = _vm->_rnd->getRandomNumber(obj->_vxPath << 1) - obj->_vxPath; +					obj->_vy = _vm->_rnd->getRandomNumber(obj->_vyPath << 1) - obj->_vyPath;  					// Set first image in sequence (if multi-seq object) -					if (obj->seqNumb > 1) { -						if (!obj->vx && (obj->seqNumb >= 4)) { -							if (obj->vx != obj->oldvx) { // vx just stopped -								if (obj->vy > 0) -									obj->currImagePtr = obj->seqList[SEQ_DOWN].seqPtr; +					if (obj->_seqNumb > 1) { +						if (!obj->_vx && (obj->_seqNumb >= 4)) { +							if (obj->_vx != obj->_oldvx) { // vx just stopped +								if (obj->_vy > 0) +									obj->_currImagePtr = obj->_seqList[SEQ_DOWN]._seqPtr;  								else -									obj->currImagePtr = obj->seqList[SEQ_UP].seqPtr; +									obj->_currImagePtr = obj->_seqList[SEQ_UP]._seqPtr;  							} -						} else if (obj->vx != obj->oldvx) { -							if (obj->vx > 0) -								obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +						} else if (obj->_vx != obj->_oldvx) { +							if (obj->_vx > 0) +								obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  							else -								obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +								obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  						}  					} -					obj->oldvx = obj->vx; -					obj->oldvy = obj->vy; -					currImage = obj->currImagePtr;  // Get (new) ptr to current image +					obj->_oldvx = obj->_vx; +					obj->_oldvy = obj->_vy; +					currImage = obj->_currImagePtr;  // Get (new) ptr to current image  				} -				if (obj->vx || obj->vy) -					obj->cycling = kCycleForward; +				if (obj->_vx || obj->_vy) +					obj->_cycling = kCycleForward;  				break;  			default:  				; // Really, nothing  			}  			// Store boundaries -			if ((obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) -				storeBoundary(obj->x + currImage->x1, obj->x + currImage->x2, obj->y + currImage->y2); +			if ((obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating)) +				storeBoundary(obj->_x + currImage->_x1, obj->_x + currImage->_x2, obj->_y + currImage->_y2);  		}  	}  	// Move objects, allowing for boundaries  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i];                         // Get pointer to object -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->vx || obj->vy)) { +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_vx || obj->_vy)) {  			// Only process if it's moving  			// Do object movement.  Delta_x,y return allowed movement in x,y  			// to move as close to a boundary as possible without crossing it. -			seq_t *currImage = obj->currImagePtr;   // Get ptr to current image +			seq_t *currImage = obj->_currImagePtr;   // Get ptr to current image  			// object coordinates -			int x1 = obj->x + currImage->x1;        // Left edge of object -			int x2 = obj->x + currImage->x2;        // Right edge -			int y1 = obj->y + currImage->y1;        // Top edge -			int y2 = obj->y + currImage->y2;        // Bottom edge +			int x1 = obj->_x + currImage->_x1;        // Left edge of object +			int x2 = obj->_x + currImage->_x2;        // Right edge +			int y1 = obj->_y + currImage->_y1;        // Top edge +			int y2 = obj->_y + currImage->_y2;        // Bottom edge -			if ((obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) +			if ((obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating))  				clearBoundary(x1, x2, y2);          // Clear our own boundary  			// Allowable motion wrt boundary -			int dx = deltaX(x1, x2, obj->vx, y2); -			if (dx != obj->vx) { +			int dx = deltaX(x1, x2, obj->_vx, y2); +			if (dx != obj->_vx) {  				// An object boundary collision!  				boundaryCollision(obj); -				obj->vx = 0; +				obj->_vx = 0;  			} -			int dy = deltaY(x1, x2, obj->vy, y2); -			if (dy != obj->vy) { +			int dy = deltaY(x1, x2, obj->_vy, y2); +			if (dy != obj->_vy) {  				// An object boundary collision!  				boundaryCollision(obj); -				obj->vy = 0; +				obj->_vy = 0;  			} -			if ((obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) +			if ((obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating))  				storeBoundary(x1, x2, y2);          // Re-store our own boundary -			obj->x += dx;                           // Update object position -			obj->y += dy; +			obj->_x += dx;                           // Update object position +			obj->_y += dy;  			// Don't let object go outside screen  			if (x1 < kEdge) -				obj->x = kEdge2; +				obj->_x = kEdge2;  			if (x2 > (kXPix - kEdge)) -				obj->x = kXPix - kEdge2 - (x2 - x1); +				obj->_x = kXPix - kEdge2 - (x2 - x1);  			if (y1 < kEdge) -				obj->y = kEdge2; +				obj->_y = kEdge2;  			if (y2 > (kYPix - kEdge)) -				obj->y = kYPix - kEdge2 - (y2 - y1); +				obj->_y = kYPix - kEdge2 - (y2 - y1); -			if ((obj->vx == 0) && (obj->vy == 0) && (obj->pathType != kPathWander2) && (obj->pathType != kPathChase2)) -				obj->cycling = kCycleNotCycling; +			if ((obj->_vx == 0) && (obj->_vy == 0) && (obj->_pathType != kPathWander2) && (obj->_pathType != kPathChase2)) +				obj->_cycling = kCycleNotCycling;  		}  	}  	// Clear all object baselines from the boundary file.  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i];               // Get pointer to object -		seq_t *currImage = obj->currImagePtr;       // Get ptr to current image -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) -			clearBoundary(obj->oldx + currImage->x1, obj->oldx + currImage->x2, obj->oldy + currImage->y2); +		seq_t *currImage = obj->_currImagePtr;       // Get ptr to current image +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating)) +			clearBoundary(obj->_oldx + currImage->_x1, obj->_oldx + currImage->_x2, obj->_oldy + currImage->_y2);  	}  	// If maze mode is enabled, do special maze processing -	if (_vm->_maze.enabledFl) { -		seq_t *currImage = _vm->_hero->currImagePtr;    // Get ptr to current image +	if (_vm->_maze._enabledFl) { +		seq_t *currImage = _vm->_hero->_currImagePtr;    // Get ptr to current image  		// hero coordinates -		int x1 = _vm->_hero->x + currImage->x1;         // Left edge of object -		int x2 = _vm->_hero->x + currImage->x2;         // Right edge -		int y1 = _vm->_hero->y + currImage->y1;         // Top edge -		int y2 = _vm->_hero->y + currImage->y2;         // Bottom edge +		int x1 = _vm->_hero->_x + currImage->_x1;         // Left edge of object +		int x2 = _vm->_hero->_x + currImage->_x2;         // Right edge +		int y1 = _vm->_hero->_y + currImage->_y1;         // Top edge +		int y2 = _vm->_hero->_y + currImage->_y2;         // Bottom edge  		_vm->_scheduler->processMaze(x1, x2, y1, y2);  	} @@ -367,15 +367,15 @@ void ObjectHandler_v1w::swapImages(int objIndex1, int objIndex2) {  	seqList_t tmpSeqList[kMaxSeqNumb];  	int seqListSize = sizeof(seqList_t) * kMaxSeqNumb; -	memmove(tmpSeqList, _objects[objIndex1].seqList, seqListSize); -	memmove(_objects[objIndex1].seqList, _objects[objIndex2].seqList, seqListSize); -	memmove(_objects[objIndex2].seqList, tmpSeqList, seqListSize); +	memmove(tmpSeqList, _objects[objIndex1]._seqList, seqListSize); +	memmove(_objects[objIndex1]._seqList, _objects[objIndex2]._seqList, seqListSize); +	memmove(_objects[objIndex2]._seqList, tmpSeqList, seqListSize);  	restoreSeq(&_objects[objIndex1]); -	_objects[objIndex2].currImagePtr = _objects[objIndex2].seqList[0].seqPtr; +	_objects[objIndex2]._currImagePtr = _objects[objIndex2]._seqList[0]._seqPtr;  	_vm->_heroImage = (_vm->_heroImage == kHeroIndex) ? objIndex2 : kHeroIndex;  	// Make sure baseline stays constant -	_objects[objIndex1].y += _objects[objIndex2].currImagePtr->y2 - _objects[objIndex1].currImagePtr->y2; +	_objects[objIndex1]._y += _objects[objIndex2]._currImagePtr->_y2 - _objects[objIndex1]._currImagePtr->_y2;  }  } // End of namespace Hugo diff --git a/engines/hugo/object_v2d.cpp b/engines/hugo/object_v2d.cpp index 4a22fab2c0..025374521c 100644 --- a/engines/hugo/object_v2d.cpp +++ b/engines/hugo/object_v2d.cpp @@ -64,7 +64,7 @@ void ObjectHandler_v2d::updateImages() {  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i]; -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->cycling >= kCycleAlmostInvisible)) +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_cycling >= kCycleAlmostInvisible))  			objindex[num_objs++] = i;  	} @@ -75,27 +75,27 @@ void ObjectHandler_v2d::updateImages() {  	for (int i = 0; i < num_objs; i++) {  		object_t *obj = &_objects[objindex[i]];  		// Count down inter-frame timer -		if (obj->frameTimer) -			obj->frameTimer--; +		if (obj->_frameTimer) +			obj->_frameTimer--; -		if (obj->cycling > kCycleAlmostInvisible) { // Only if visible -			switch (obj->cycling) { +		if (obj->_cycling > kCycleAlmostInvisible) { // Only if visible +			switch (obj->_cycling) {  			case kCycleNotCycling: -				_vm->_screen->displayFrame(obj->x, obj->y, obj->currImagePtr, obj->priority == kPriorityOverOverlay); +				_vm->_screen->displayFrame(obj->_x, obj->_y, obj->_currImagePtr, obj->_priority == kPriorityOverOverlay);  				break;  			case kCycleForward: -				if (obj->frameTimer)                // Not time to see next frame yet -					_vm->_screen->displayFrame(obj->x, obj->y, obj->currImagePtr, obj->priority == kPriorityOverOverlay); +				if (obj->_frameTimer)                // Not time to see next frame yet +					_vm->_screen->displayFrame(obj->_x, obj->_y, obj->_currImagePtr, obj->_priority == kPriorityOverOverlay);  				else -					_vm->_screen->displayFrame(obj->x, obj->y, obj->currImagePtr->nextSeqPtr, obj->priority == kPriorityOverOverlay); +					_vm->_screen->displayFrame(obj->_x, obj->_y, obj->_currImagePtr->_nextSeqPtr, obj->_priority == kPriorityOverOverlay);  				break;  			case kCycleBackward: { -				seq_t *seqPtr = obj->currImagePtr; -				if (!obj->frameTimer) {             // Show next frame -					while (seqPtr->nextSeqPtr != obj->currImagePtr) -						seqPtr = seqPtr->nextSeqPtr; +				seq_t *seqPtr = obj->_currImagePtr; +				if (!obj->_frameTimer) {             // Show next frame +					while (seqPtr->_nextSeqPtr != obj->_currImagePtr) +						seqPtr = seqPtr->_nextSeqPtr;  				} -				_vm->_screen->displayFrame(obj->x, obj->y, seqPtr, obj->priority == kPriorityOverOverlay); +				_vm->_screen->displayFrame(obj->_x, obj->_y, seqPtr, obj->_priority == kPriorityOverOverlay);  				break;  				}  			default: @@ -109,28 +109,28 @@ void ObjectHandler_v2d::updateImages() {  	// Cycle any animating objects  	for (int i = 0; i < num_objs; i++) {  		object_t *obj = &_objects[objindex[i]]; -		if (obj->cycling != kCycleInvisible) { +		if (obj->_cycling != kCycleInvisible) {  			// Only if it's visible -			if (obj->cycling == kCycleAlmostInvisible) -				obj->cycling = kCycleInvisible; +			if (obj->_cycling == kCycleAlmostInvisible) +				obj->_cycling = kCycleInvisible;  			// Now Rotate to next picture in sequence -			switch (obj->cycling) { +			switch (obj->_cycling) {  			case kCycleNotCycling:  				break;  			case kCycleForward: -				if (!obj->frameTimer) { +				if (!obj->_frameTimer) {  					// Time to step to next frame -					obj->currImagePtr = obj->currImagePtr->nextSeqPtr; +					obj->_currImagePtr = obj->_currImagePtr->_nextSeqPtr;  					// Find out if this is last frame of sequence  					// If so, reset frame_timer and decrement n_cycle -					if (obj->frameInterval || obj->cycleNumb) { -						obj->frameTimer = obj->frameInterval; -						for (int j = 0; j < obj->seqNumb; j++) { -							if (obj->currImagePtr->nextSeqPtr == obj->seqList[j].seqPtr) { -								if (obj->cycleNumb) { // Decr cycleNumb if Non-continous -									if (!--obj->cycleNumb) -										obj->cycling = kCycleNotCycling; +					if (obj->_frameInterval || obj->_cycleNumb) { +						obj->_frameTimer = obj->_frameInterval; +						for (int j = 0; j < obj->_seqNumb; j++) { +							if (obj->_currImagePtr->_nextSeqPtr == obj->_seqList[j]._seqPtr) { +								if (obj->_cycleNumb) { // Decr cycleNumb if Non-continous +									if (!--obj->_cycleNumb) +										obj->_cycling = kCycleNotCycling;  								}  							}  						} @@ -138,20 +138,20 @@ void ObjectHandler_v2d::updateImages() {  				}  				break;  			case kCycleBackward: { -				if (!obj->frameTimer) { +				if (!obj->_frameTimer) {  					// Time to step to prev frame -					seq_t *seqPtr = obj->currImagePtr; -					while (obj->currImagePtr->nextSeqPtr != seqPtr) -						obj->currImagePtr = obj->currImagePtr->nextSeqPtr; +					seq_t *seqPtr = obj->_currImagePtr; +					while (obj->_currImagePtr->_nextSeqPtr != seqPtr) +						obj->_currImagePtr = obj->_currImagePtr->_nextSeqPtr;  					// Find out if this is first frame of sequence  					// If so, reset frame_timer and decrement n_cycle -					if (obj->frameInterval || obj->cycleNumb) { -						obj->frameTimer = obj->frameInterval; -						for (int j = 0; j < obj->seqNumb; j++) { -							if (obj->currImagePtr == obj->seqList[j].seqPtr) { -								if (obj->cycleNumb){ // Decr cycleNumb if Non-continous -									if (!--obj->cycleNumb) -										obj->cycling = kCycleNotCycling; +					if (obj->_frameInterval || obj->_cycleNumb) { +						obj->_frameTimer = obj->_frameInterval; +						for (int j = 0; j < obj->_seqNumb; j++) { +							if (obj->_currImagePtr == obj->_seqList[j]._seqPtr) { +								if (obj->_cycleNumb){ // Decr cycleNumb if Non-continous +									if (!--obj->_cycleNumb) +										obj->_cycling = kCycleNotCycling;  								}  							}  						} @@ -162,8 +162,8 @@ void ObjectHandler_v2d::updateImages() {  			default:  				break;  			} -			obj->oldx = obj->x; -			obj->oldy = obj->y; +			obj->_oldx = obj->_x; +			obj->_oldy = obj->_y;  		}  	}  } @@ -184,174 +184,174 @@ void ObjectHandler_v2d::moveObjects() {  	// Don't store foreground or background objects  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i];               // Get pointer to object -		seq_t *currImage = obj->currImagePtr;       // Get ptr to current image -		if (obj->screenIndex == *_vm->_screen_p) { -			switch (obj->pathType) { +		seq_t *currImage = obj->_currImagePtr;       // Get ptr to current image +		if (obj->_screenIndex == *_vm->_screen_p) { +			switch (obj->_pathType) {  			case kPathChase:  			case kPathChase2: { -				int8 radius = obj->radius;          // Default to object's radius +				int8 radius = obj->_radius;          // Default to object's radius  				if (radius < 0)                     // If radius infinity, use closer value  					radius = kStepDx;  				// Allowable motion wrt boundary -				int dx = _vm->_hero->x + _vm->_hero->currImagePtr->x1 - obj->x - currImage->x1; -				int dy = _vm->_hero->y + _vm->_hero->currImagePtr->y2 - obj->y - currImage->y2 - 1; +				int dx = _vm->_hero->_x + _vm->_hero->_currImagePtr->_x1 - obj->_x - currImage->_x1; +				int dy = _vm->_hero->_y + _vm->_hero->_currImagePtr->_y2 - obj->_y - currImage->_y2 - 1;  				if (abs(dx) <= radius) -					obj->vx = 0; +					obj->_vx = 0;  				else -					obj->vx = (dx > 0) ? MIN(dx, obj->vxPath) : MAX(dx, -obj->vxPath); +					obj->_vx = (dx > 0) ? MIN(dx, obj->_vxPath) : MAX(dx, -obj->_vxPath);  				if (abs(dy) <= radius) -					obj->vy = 0; +					obj->_vy = 0;  				else -					obj->vy = (dy > 0) ? MIN(dy, obj->vyPath) : MAX(dy, -obj->vyPath); +					obj->_vy = (dy > 0) ? MIN(dy, obj->_vyPath) : MAX(dy, -obj->_vyPath);  				// Set first image in sequence (if multi-seq object) -				switch (obj->seqNumb) { +				switch (obj->_seqNumb) {  				case 4: -					if (!obj->vx) {                 // Got 4 directions -						if (obj->vx != obj->oldvx) { // vx just stopped +					if (!obj->_vx) {                 // Got 4 directions +						if (obj->_vx != obj->_oldvx) { // vx just stopped  							if (dy > 0) -								obj->currImagePtr = obj->seqList[SEQ_DOWN].seqPtr; +								obj->_currImagePtr = obj->_seqList[SEQ_DOWN]._seqPtr;  							else -								obj->currImagePtr = obj->seqList[SEQ_UP].seqPtr; +								obj->_currImagePtr = obj->_seqList[SEQ_UP]._seqPtr;  						} -					} else if (obj->vx != obj->oldvx) { +					} else if (obj->_vx != obj->_oldvx) {  						if (dx > 0) -							obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  						else -							obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  					}  					break;  				case 3:  				case 2: -					if (obj->vx != obj->oldvx) {    // vx just stopped +					if (obj->_vx != obj->_oldvx) {    // vx just stopped  						if (dx > 0)                 // Left & right only -							obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  						else -							obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  					}  					break;  				} -				if (obj->vx || obj->vy) { -					obj->cycling = kCycleForward; +				if (obj->_vx || obj->_vy) { +					obj->_cycling = kCycleForward;  				} else { -					obj->cycling = kCycleNotCycling; +					obj->_cycling = kCycleNotCycling;  					boundaryCollision(obj);         // Must have got hero!  				} -				obj->oldvx = obj->vx; -				obj->oldvy = obj->vy; -				currImage = obj->currImagePtr;      // Get (new) ptr to current image +				obj->_oldvx = obj->_vx; +				obj->_oldvy = obj->_vy; +				currImage = obj->_currImagePtr;      // Get (new) ptr to current image  				break;  				}  			case kPathWander2:  			case kPathWander:  				if (!_vm->_rnd->getRandomNumber(3 * _vm->_normalTPS)) {       // Kick on random interval -					obj->vx = _vm->_rnd->getRandomNumber(obj->vxPath << 1) - obj->vxPath; -					obj->vy = _vm->_rnd->getRandomNumber(obj->vyPath << 1) - obj->vyPath; +					obj->_vx = _vm->_rnd->getRandomNumber(obj->_vxPath << 1) - obj->_vxPath; +					obj->_vy = _vm->_rnd->getRandomNumber(obj->_vyPath << 1) - obj->_vyPath;  					// Set first image in sequence (if multi-seq object) -					if (obj->seqNumb > 1) { -						if (!obj->vx && (obj->seqNumb >= 4)) { -							if (obj->vx != obj->oldvx) { // vx just stopped -								if (obj->vy > 0) -									obj->currImagePtr = obj->seqList[SEQ_DOWN].seqPtr; +					if (obj->_seqNumb > 1) { +						if (!obj->_vx && (obj->_seqNumb >= 4)) { +							if (obj->_vx != obj->_oldvx) { // vx just stopped +								if (obj->_vy > 0) +									obj->_currImagePtr = obj->_seqList[SEQ_DOWN]._seqPtr;  								else -									obj->currImagePtr = obj->seqList[SEQ_UP].seqPtr; +									obj->_currImagePtr = obj->_seqList[SEQ_UP]._seqPtr;  							} -						} else if (obj->vx != obj->oldvx) { -							if (obj->vx > 0) -								obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +						} else if (obj->_vx != obj->_oldvx) { +							if (obj->_vx > 0) +								obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  							else -								obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +								obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  						}  					} -					obj->oldvx = obj->vx; -					obj->oldvy = obj->vy; -					currImage = obj->currImagePtr;  // Get (new) ptr to current image +					obj->_oldvx = obj->_vx; +					obj->_oldvy = obj->_vy; +					currImage = obj->_currImagePtr;  // Get (new) ptr to current image  				} -				if (obj->vx || obj->vy) -					obj->cycling = kCycleForward; +				if (obj->_vx || obj->_vy) +					obj->_cycling = kCycleForward;  				break;  			default:  				; // Really, nothing  			}  			// Store boundaries -			if ((obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) -				storeBoundary(obj->x + currImage->x1, obj->x + currImage->x2, obj->y + currImage->y2); +			if ((obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating)) +				storeBoundary(obj->_x + currImage->_x1, obj->_x + currImage->_x2, obj->_y + currImage->_y2);  		}  	}  	// Move objects, allowing for boundaries  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i];               // Get pointer to object -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->vx || obj->vy)) { +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_vx || obj->_vy)) {  			// Only process if it's moving  			// Do object movement.  Delta_x,y return allowed movement in x,y  			// to move as close to a boundary as possible without crossing it. -			seq_t *currImage = obj->currImagePtr;   // Get ptr to current image +			seq_t *currImage = obj->_currImagePtr;   // Get ptr to current image  			// object coordinates -			int x1 = obj->x + currImage->x1;        // Left edge of object -			int x2 = obj->x + currImage->x2;        // Right edge -			int y1 = obj->y + currImage->y1;        // Top edge -			int y2 = obj->y + currImage->y2;        // Bottom edge +			int x1 = obj->_x + currImage->_x1;        // Left edge of object +			int x2 = obj->_x + currImage->_x2;        // Right edge +			int y1 = obj->_y + currImage->_y1;        // Top edge +			int y2 = obj->_y + currImage->_y2;        // Bottom edge -			if ((obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) +			if ((obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating))  				clearBoundary(x1, x2, y2);          // Clear our own boundary  			// Allowable motion wrt boundary -			int dx = deltaX(x1, x2, obj->vx, y2); -			if (dx != obj->vx) { +			int dx = deltaX(x1, x2, obj->_vx, y2); +			if (dx != obj->_vx) {  				// An object boundary collision!  				boundaryCollision(obj); -				obj->vx = 0; +				obj->_vx = 0;  			} -			int dy = deltaY(x1, x2, obj->vy, y2); -			if (dy != obj->vy) { +			int dy = deltaY(x1, x2, obj->_vy, y2); +			if (dy != obj->_vy) {  				// An object boundary collision!  				boundaryCollision(obj); -				obj->vy = 0; +				obj->_vy = 0;  			} -			if ((obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) +			if ((obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating))  				storeBoundary(x1, x2, y2);          // Re-store our own boundary -			obj->x += dx;                           // Update object position -			obj->y += dy; +			obj->_x += dx;                           // Update object position +			obj->_y += dy;  			// Don't let object go outside screen  			if (x1 < kEdge) -				obj->x = kEdge2; +				obj->_x = kEdge2;  			if (x2 > (kXPix - kEdge)) -				obj->x = kXPix - kEdge2 - (x2 - x1); +				obj->_x = kXPix - kEdge2 - (x2 - x1);  			if (y1 < kEdge) -				obj->y = kEdge2; +				obj->_y = kEdge2;  			if (y2 > (kYPix - kEdge)) -				obj->y = kYPix - kEdge2 - (y2 - y1); +				obj->_y = kYPix - kEdge2 - (y2 - y1); -			if ((obj->vx == 0) && (obj->vy == 0) && (obj->pathType != kPathWander2) && (obj->pathType != kPathChase2)) -				obj->cycling = kCycleNotCycling; +			if ((obj->_vx == 0) && (obj->_vy == 0) && (obj->_pathType != kPathWander2) && (obj->_pathType != kPathChase2)) +				obj->_cycling = kCycleNotCycling;  		}  	}  	// Clear all object baselines from the boundary file.  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i];                   // Get pointer to object -		seq_t *currImage = obj->currImagePtr;           // Get ptr to current image -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) -			clearBoundary(obj->oldx + currImage->x1, obj->oldx + currImage->x2, obj->oldy + currImage->y2); +		seq_t *currImage = obj->_currImagePtr;           // Get ptr to current image +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating)) +			clearBoundary(obj->_oldx + currImage->_x1, obj->_oldx + currImage->_x2, obj->_oldy + currImage->_y2);  	}  	// If maze mode is enabled, do special maze processing -	if (_vm->_maze.enabledFl) { -		seq_t *currImage = _vm->_hero->currImagePtr;    // Get ptr to current image +	if (_vm->_maze._enabledFl) { +		seq_t *currImage = _vm->_hero->_currImagePtr;    // Get ptr to current image  		// hero coordinates -		int x1 = _vm->_hero->x + currImage->x1;         // Left edge of object -		int x2 = _vm->_hero->x + currImage->x2;         // Right edge -		int y1 = _vm->_hero->y + currImage->y1;         // Top edge -		int y2 = _vm->_hero->y + currImage->y2;         // Bottom edge +		int x1 = _vm->_hero->_x + currImage->_x1;         // Left edge of object +		int x2 = _vm->_hero->_x + currImage->_x2;         // Right edge +		int y1 = _vm->_hero->_y + currImage->_y1;         // Top edge +		int y2 = _vm->_hero->_y + currImage->_y2;         // Bottom edge  		_vm->_scheduler->processMaze(x1, x2, y1, y2);  	} @@ -361,9 +361,9 @@ void ObjectHandler_v2d::homeIn(const int objIndex1, const int objIndex2, const i  	// object obj1 will home in on object obj2  	object_t *obj1 = &_objects[objIndex1];  	object_t *obj2 = &_objects[objIndex2]; -	obj1->pathType = kPathAuto; -	int dx = obj1->x + obj1->currImagePtr->x1 - obj2->x - obj2->currImagePtr->x1; -	int dy = obj1->y + obj1->currImagePtr->y1 - obj2->y - obj2->currImagePtr->y1; +	obj1->_pathType = kPathAuto; +	int dx = obj1->_x + obj1->_currImagePtr->_x1 - obj2->_x - obj2->_currImagePtr->_x1; +	int dy = obj1->_y + obj1->_currImagePtr->_y1 - obj2->_y - obj2->_currImagePtr->_y1;  	if (dx == 0)                                        // Don't EVER divide by zero!  		dx = 1; @@ -371,11 +371,11 @@ void ObjectHandler_v2d::homeIn(const int objIndex1, const int objIndex2, const i  		dy = 1;  	if (abs(dx) > abs(dy)) { -		obj1->vx = objDx * -sign<int8>(dx); -		obj1->vy = abs((objDy * dy) / dx) * -sign<int8>(dy); +		obj1->_vx = objDx * -sign<int8>(dx); +		obj1->_vy = abs((objDy * dy) / dx) * -sign<int8>(dy);  	} else { -		obj1->vy = objDy * -sign<int8>(dy); -		obj1->vx = abs((objDx * dx) / dy) * -sign<int8>(dx); +		obj1->_vy = objDy * -sign<int8>(dy); +		obj1->_vx = abs((objDx * dx) / dy) * -sign<int8>(dx);  	}  }  } // End of namespace Hugo diff --git a/engines/hugo/object_v3d.cpp b/engines/hugo/object_v3d.cpp index cde7f5fd62..15d5fcd936 100644 --- a/engines/hugo/object_v3d.cpp +++ b/engines/hugo/object_v3d.cpp @@ -65,175 +65,175 @@ void ObjectHandler_v3d::moveObjects() {  	// Don't store foreground or background objects  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i];               // Get pointer to object -		seq_t *currImage = obj->currImagePtr;       // Get ptr to current image -		if (obj->screenIndex == *_vm->_screen_p) { -			switch (obj->pathType) { +		seq_t *currImage = obj->_currImagePtr;       // Get ptr to current image +		if (obj->_screenIndex == *_vm->_screen_p) { +			switch (obj->_pathType) {  			case kPathChase:  			case kPathChase2: { -				int8 radius = obj->radius;          // Default to object's radius +				int8 radius = obj->_radius;          // Default to object's radius  				if (radius < 0)                     // If radius infinity, use closer value  					radius = kStepDx;  				// Allowable motion wrt boundary -				int dx = _vm->_hero->x + _vm->_hero->currImagePtr->x1 - obj->x - currImage->x1; -				int dy = _vm->_hero->y + _vm->_hero->currImagePtr->y2 - obj->y - currImage->y2 - 1; +				int dx = _vm->_hero->_x + _vm->_hero->_currImagePtr->_x1 - obj->_x - currImage->_x1; +				int dy = _vm->_hero->_y + _vm->_hero->_currImagePtr->_y2 - obj->_y - currImage->_y2 - 1;  				if (abs(dx) <= radius) -					obj->vx = 0; +					obj->_vx = 0;  				else -					obj->vx = (dx > 0) ? MIN(dx, obj->vxPath) : MAX(dx, -obj->vxPath); +					obj->_vx = (dx > 0) ? MIN(dx, obj->_vxPath) : MAX(dx, -obj->_vxPath);  				if (abs(dy) <= radius) -					obj->vy = 0; +					obj->_vy = 0;  				else -					obj->vy = (dy > 0) ? MIN(dy, obj->vyPath) : MAX(dy, -obj->vyPath); +					obj->_vy = (dy > 0) ? MIN(dy, obj->_vyPath) : MAX(dy, -obj->_vyPath);  				// Set first image in sequence (if multi-seq object) -				switch (obj->seqNumb) { +				switch (obj->_seqNumb) {  				case 4: -					if (!obj->vx) {                 // Got 4 directions -						if (obj->vx != obj->oldvx) { // vx just stopped +					if (!obj->_vx) {                 // Got 4 directions +						if (obj->_vx != obj->_oldvx) { // vx just stopped  							if (dy >= 0) -								obj->currImagePtr = obj->seqList[SEQ_DOWN].seqPtr; +								obj->_currImagePtr = obj->_seqList[SEQ_DOWN]._seqPtr;  							else -								obj->currImagePtr = obj->seqList[SEQ_UP].seqPtr; +								obj->_currImagePtr = obj->_seqList[SEQ_UP]._seqPtr;  						} -					} else if (obj->vx != obj->oldvx) { +					} else if (obj->_vx != obj->_oldvx) {  						if (dx > 0) -							obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  						else -							obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  					}  					break;  				case 3:  				case 2: -					if (obj->vx != obj->oldvx) {    // vx just stopped +					if (obj->_vx != obj->_oldvx) {    // vx just stopped  						if (dx > 0)                 // Left & right only -							obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  						else -							obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +							obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  					}  					break;  				} -				if (obj->vx || obj->vy) { -					obj->cycling = kCycleForward; +				if (obj->_vx || obj->_vy) { +					obj->_cycling = kCycleForward;  				} else { -					obj->cycling = kCycleNotCycling; +					obj->_cycling = kCycleNotCycling;  					boundaryCollision(obj);         // Must have got hero!  				} -				obj->oldvx = obj->vx; -				obj->oldvy = obj->vy; -				currImage = obj->currImagePtr;      // Get (new) ptr to current image +				obj->_oldvx = obj->_vx; +				obj->_oldvy = obj->_vy; +				currImage = obj->_currImagePtr;      // Get (new) ptr to current image  				break;  				}  			case kPathWander2:  			case kPathWander:  				if (!_vm->_rnd->getRandomNumber(3 * _vm->_normalTPS)) {       // Kick on random interval -					obj->vx = _vm->_rnd->getRandomNumber(obj->vxPath << 1) - obj->vxPath; -					obj->vy = _vm->_rnd->getRandomNumber(obj->vyPath << 1) - obj->vyPath; +					obj->_vx = _vm->_rnd->getRandomNumber(obj->_vxPath << 1) - obj->_vxPath; +					obj->_vy = _vm->_rnd->getRandomNumber(obj->_vyPath << 1) - obj->_vyPath;  					// Set first image in sequence (if multi-seq object) -					if (obj->seqNumb > 1) { -						if (!obj->vx && (obj->seqNumb >= 4)) { -							if (obj->vx != obj->oldvx) { // vx just stopped -								if (obj->vy > 0) -									obj->currImagePtr = obj->seqList[SEQ_DOWN].seqPtr; +					if (obj->_seqNumb > 1) { +						if (!obj->_vx && (obj->_seqNumb >= 4)) { +							if (obj->_vx != obj->_oldvx) { // vx just stopped +								if (obj->_vy > 0) +									obj->_currImagePtr = obj->_seqList[SEQ_DOWN]._seqPtr;  								else -									obj->currImagePtr = obj->seqList[SEQ_UP].seqPtr; +									obj->_currImagePtr = obj->_seqList[SEQ_UP]._seqPtr;  							} -						} else if (obj->vx != obj->oldvx) { -							if (obj->vx > 0) -								obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +						} else if (obj->_vx != obj->_oldvx) { +							if (obj->_vx > 0) +								obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  							else -								obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +								obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  						}  					} -					obj->oldvx = obj->vx; -					obj->oldvy = obj->vy; -					currImage = obj->currImagePtr;  // Get (new) ptr to current image +					obj->_oldvx = obj->_vx; +					obj->_oldvy = obj->_vy; +					currImage = obj->_currImagePtr;  // Get (new) ptr to current image  				} -				if (obj->vx || obj->vy) -					obj->cycling = kCycleForward; +				if (obj->_vx || obj->_vy) +					obj->_cycling = kCycleForward;  				break;  			default:  				; // Really, nothing  			}  			// Store boundaries -			if ((obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) -				storeBoundary(obj->x + currImage->x1, obj->x + currImage->x2, obj->y + currImage->y2); +			if ((obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating)) +				storeBoundary(obj->_x + currImage->_x1, obj->_x + currImage->_x2, obj->_y + currImage->_y2);  		}  	}  	// Move objects, allowing for boundaries  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i];                         // Get pointer to object -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->vx || obj->vy)) { +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_vx || obj->_vy)) {  			// Only process if it's moving  			// Do object movement.  Delta_x,y return allowed movement in x,y  			// to move as close to a boundary as possible without crossing it. -			seq_t *currImage = obj->currImagePtr;   // Get ptr to current image +			seq_t *currImage = obj->_currImagePtr;   // Get ptr to current image  			// object coordinates -			int x1 = obj->x + currImage->x1;        // Left edge of object -			int x2 = obj->x + currImage->x2;        // Right edge -			int y1 = obj->y + currImage->y1;        // Top edge -			int y2 = obj->y + currImage->y2;        // Bottom edge +			int x1 = obj->_x + currImage->_x1;        // Left edge of object +			int x2 = obj->_x + currImage->_x2;        // Right edge +			int y1 = obj->_y + currImage->_y1;        // Top edge +			int y2 = obj->_y + currImage->_y2;        // Bottom edge -			if ((obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) +			if ((obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating))  				clearBoundary(x1, x2, y2);          // Clear our own boundary  			// Allowable motion wrt boundary -			int dx = deltaX(x1, x2, obj->vx, y2); -			if (dx != obj->vx) { +			int dx = deltaX(x1, x2, obj->_vx, y2); +			if (dx != obj->_vx) {  				// An object boundary collision!  				boundaryCollision(obj); -				obj->vx = 0; +				obj->_vx = 0;  			} -			int dy = deltaY(x1, x2, obj->vy, y2); -			if (dy != obj->vy) { +			int dy = deltaY(x1, x2, obj->_vy, y2); +			if (dy != obj->_vy) {  				// An object boundary collision!  				boundaryCollision(obj); -				obj->vy = 0; +				obj->_vy = 0;  			} -			if ((obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) +			if ((obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating))  				storeBoundary(x1, x2, y2);          // Re-store our own boundary -			obj->x += dx;                           // Update object position -			obj->y += dy; +			obj->_x += dx;                           // Update object position +			obj->_y += dy;  			// Don't let object go outside screen  			if (x1 < kEdge) -				obj->x = kEdge2; +				obj->_x = kEdge2;  			if (x2 > (kXPix - kEdge)) -				obj->x = kXPix - kEdge2 - (x2 - x1); +				obj->_x = kXPix - kEdge2 - (x2 - x1);  			if (y1 < kEdge) -				obj->y = kEdge2; +				obj->_y = kEdge2;  			if (y2 > (kYPix - kEdge)) -				obj->y = kYPix - kEdge2 - (y2 - y1); +				obj->_y = kYPix - kEdge2 - (y2 - y1); -			if ((obj->vx == 0) && (obj->vy == 0) && (obj->pathType != kPathWander2) && (obj->pathType != kPathChase2)) -				obj->cycling = kCycleNotCycling; +			if ((obj->_vx == 0) && (obj->_vy == 0) && (obj->_pathType != kPathWander2) && (obj->_pathType != kPathChase2)) +				obj->_cycling = kCycleNotCycling;  		}  	}  	// Clear all object baselines from the boundary file.  	for (int i = 0; i < _numObj; i++) {  		object_t *obj = &_objects[i];               // Get pointer to object -		seq_t *currImage = obj->currImagePtr;       // Get ptr to current image -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->cycling > kCycleAlmostInvisible) && (obj->priority == kPriorityFloating)) -			clearBoundary(obj->oldx + currImage->x1, obj->oldx + currImage->x2, obj->oldy + currImage->y2); +		seq_t *currImage = obj->_currImagePtr;       // Get ptr to current image +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_cycling > kCycleAlmostInvisible) && (obj->_priority == kPriorityFloating)) +			clearBoundary(obj->_oldx + currImage->_x1, obj->_oldx + currImage->_x2, obj->_oldy + currImage->_y2);  	}  	// If maze mode is enabled, do special maze processing -	if (_vm->_maze.enabledFl) { -		seq_t *currImage = _vm->_hero->currImagePtr;// Get ptr to current image +	if (_vm->_maze._enabledFl) { +		seq_t *currImage = _vm->_hero->_currImagePtr;// Get ptr to current image  		// hero coordinates -		int x1 = _vm->_hero->x + currImage->x1;     // Left edge of object -		int x2 = _vm->_hero->x + currImage->x2;     // Right edge -		int y1 = _vm->_hero->y + currImage->y1;     // Top edge -		int y2 = _vm->_hero->y + currImage->y2;     // Bottom edge +		int x1 = _vm->_hero->_x + currImage->_x1;     // Left edge of object +		int x2 = _vm->_hero->_x + currImage->_x2;     // Right edge +		int y1 = _vm->_hero->_y + currImage->_y1;     // Top edge +		int y2 = _vm->_hero->_y + currImage->_y2;     // Bottom edge  		_vm->_scheduler->processMaze(x1, x2, y1, y2);  	} @@ -252,15 +252,15 @@ void ObjectHandler_v3d::swapImages(int objIndex1, int objIndex2) {  	seqList_t tmpSeqList[kMaxSeqNumb];  	int seqListSize = sizeof(seqList_t) * kMaxSeqNumb; -	memmove(tmpSeqList, _objects[objIndex1].seqList, seqListSize); -	memmove(_objects[objIndex1].seqList, _objects[objIndex2].seqList, seqListSize); -	memmove(_objects[objIndex2].seqList, tmpSeqList, seqListSize); +	memmove(tmpSeqList, _objects[objIndex1]._seqList, seqListSize); +	memmove(_objects[objIndex1]._seqList, _objects[objIndex2]._seqList, seqListSize); +	memmove(_objects[objIndex2]._seqList, tmpSeqList, seqListSize);  	restoreSeq(&_objects[objIndex1]); -	_objects[objIndex2].currImagePtr = _objects[objIndex2].seqList[0].seqPtr; +	_objects[objIndex2]._currImagePtr = _objects[objIndex2]._seqList[0]._seqPtr;  	_vm->_heroImage = (_vm->_heroImage == kHeroIndex) ? objIndex2 : kHeroIndex;  	// Make sure baseline stays constant -	_objects[objIndex1].y += _objects[objIndex2].currImagePtr->y2 - _objects[objIndex1].currImagePtr->y2; +	_objects[objIndex1]._y += _objects[objIndex2]._currImagePtr->_y2 - _objects[objIndex1]._currImagePtr->_y2;  }  } // End of namespace Hugo diff --git a/engines/hugo/parser.cpp b/engines/hugo/parser.cpp index 4eaed6fecf..b4255e607b 100644 --- a/engines/hugo/parser.cpp +++ b/engines/hugo/parser.cpp @@ -58,21 +58,21 @@ Parser::~Parser() {  }  uint16 Parser::getCmdDefaultVerbIdx(const uint16 index) const { -	return _cmdList[index][0].verbIndex; +	return _cmdList[index][0]._verbIndex;  }  /**   * Read a cmd structure from Hugo.dat   */  void Parser::readCmd(Common::ReadStream &in, cmd &curCmd) { -	curCmd.verbIndex = in.readUint16BE(); -	curCmd.reqIndex = in.readUint16BE(); -	curCmd.textDataNoCarryIndex = in.readUint16BE(); -	curCmd.reqState = in.readByte(); -	curCmd.newState = in.readByte(); -	curCmd.textDataWrongIndex = in.readUint16BE(); -	curCmd.textDataDoneIndex = in.readUint16BE(); -	curCmd.actIndex = in.readUint16BE(); +	curCmd._verbIndex = in.readUint16BE(); +	curCmd._reqIndex = in.readUint16BE(); +	curCmd._textDataNoCarryIndex = in.readUint16BE(); +	curCmd._reqState = in.readByte(); +	curCmd._newState = in.readByte(); +	curCmd._textDataWrongIndex = in.readUint16BE(); +	curCmd._textDataDoneIndex = in.readUint16BE(); +	curCmd._actIndex = in.readUint16BE();  }  /** @@ -100,12 +100,12 @@ void Parser::loadCmdList(Common::ReadStream &in) {  void Parser::readBG(Common::ReadStream &in, background_t &curBG) { -	curBG.verbIndex = in.readUint16BE(); -	curBG.nounIndex = in.readUint16BE(); -	curBG.commentIndex = in.readSint16BE(); -	curBG.matchFl = (in.readByte() != 0); -	curBG.roomState = in.readByte(); -	curBG.bonusIndex = in.readByte(); +	curBG._verbIndex = in.readUint16BE(); +	curBG._nounIndex = in.readUint16BE(); +	curBG._commentIndex = in.readSint16BE(); +	curBG._matchFl = (in.readByte() != 0); +	curBG._roomState = in.readByte(); +	curBG._bonusIndex = in.readByte();  }  /** @@ -165,11 +165,11 @@ const char *Parser::useBG(const char *name) {  	debugC(1, kDebugEngine, "useBG(%s)", name);  	objectList_t p = _backgroundObjects[*_vm->_screen_p]; -	for (int i = 0; p[i].verbIndex != 0; i++) { -		if ((name == _vm->_text->getNoun(p[i].nounIndex, 0) && -		     p[i].verbIndex != _vm->_look) && -		    ((p[i].roomState == kStateDontCare) || (p[i].roomState == _vm->_screenStates[*_vm->_screen_p]))) -			return _vm->_text->getVerb(p[i].verbIndex, 0); +	for (int i = 0; p[i]._verbIndex != 0; i++) { +		if ((name == _vm->_text->getNoun(p[i]._nounIndex, 0) && +		     p[i]._verbIndex != _vm->_look) && +		    ((p[i]._roomState == kStateDontCare) || (p[i]._roomState == _vm->_screenStates[*_vm->_screen_p]))) +			return _vm->_text->getVerb(p[i]._verbIndex, 0);  	}  	return 0; @@ -222,7 +222,7 @@ void Parser::charHandler() {  				_cmdLine[--_cmdLineIndex] = '\0';  			break;  		case Common::KEYCODE_RETURN:                // EOL, pass line to line handler -			if (_cmdLineIndex && (_vm->_hero->pathType != kPathQuiet)) { +			if (_cmdLineIndex && (_vm->_hero->_pathType != kPathQuiet)) {  				// Remove inventory bar if active  				if (_vm->_inventory->getInventoryState() == kInventoryActive)  					_vm->_inventory->setInventoryState(kInventoryUp); @@ -248,9 +248,9 @@ void Parser::charHandler() {  		_cmdLineCursor = (_cmdLineCursor == '_') ? ' ' : '_';  	// See if recall button pressed -	if (gameStatus.recallFl) { +	if (gameStatus._recallFl) {  		// Copy previous line to current cmdline -		gameStatus.recallFl = false; +		gameStatus._recallFl = false;  		strcpy(_cmdLine, _vm->_line);  		_cmdLineIndex = strlen(_cmdLine);  	} @@ -259,9 +259,9 @@ void Parser::charHandler() {  	sprintf(_vm->_scoreLine, "F1-Help  %s  Score: %d of %d Sound %s", (_vm->_config.turboFl) ? "T" : " ", _vm->getScore(), _vm->getMaxScore(), (_vm->_config.soundFl) ? "On" : "Off");  	// See if "look" button pressed -	if (gameStatus.lookFl) { +	if (gameStatus._lookFl) {  		command("look around"); -		gameStatus.lookFl = false; +		gameStatus._lookFl = false;  	}  } @@ -288,8 +288,8 @@ void Parser::keyHandler(Common::Event event) {  				_vm->_file->restoreGame(0);  			break;  		case Common::KEYCODE_s: -			if (gameStatus.viewState == kViewPlay) { -				if (gameStatus.gameOverFl) +			if (gameStatus._viewState == kViewPlay) { +				if (gameStatus._gameOverFl)  					_vm->gameOverMsg();  				else  					_vm->_file->saveGame(-1, Common::String()); @@ -304,8 +304,8 @@ void Parser::keyHandler(Common::Event event) {  	// Process key down event - called from OnKeyDown()  	switch (nChar) {                                // Set various toggle states  	case Common::KEYCODE_ESCAPE:                    // Escape key, may want to QUIT -		if (gameStatus.viewState == kViewIntro) -			gameStatus.skipIntroFl = true; +		if (gameStatus._viewState == kViewIntro) +			gameStatus._skipIntroFl = true;  		else {  			if (_vm->_inventory->getInventoryState() == kInventoryActive) // Remove inventory, if displayed  				_vm->_inventory->setInventoryState(kInventoryUp); @@ -333,7 +333,7 @@ void Parser::keyHandler(Common::Event event) {  		break;  	case Common::KEYCODE_F1:                        // User Help (DOS)  		if (_checkDoubleF1Fl) -			gameStatus.helpFl = true; +			gameStatus._helpFl = true;  		else  			_vm->_screen->userHelp();  		_checkDoubleF1Fl = !_checkDoubleF1Fl; @@ -343,11 +343,11 @@ void Parser::keyHandler(Common::Event event) {  		_vm->_sound->toggleMusic();  		break;  	case Common::KEYCODE_F3:                        // Repeat last line -		gameStatus.recallFl = true; +		gameStatus._recallFl = true;  		break;  	case Common::KEYCODE_F4:                        // Save game -		if (gameStatus.viewState == kViewPlay) { -			if (gameStatus.gameOverFl) +		if (gameStatus._viewState == kViewPlay) { +			if (gameStatus._gameOverFl)  				_vm->gameOverMsg();  			else  				_vm->_file->saveGame(-1, Common::String()); @@ -366,7 +366,7 @@ void Parser::keyHandler(Common::Event event) {  		warning("STUB: F9 (DOS) - BossKey");  		break;  	default:                                        // Any other key -		if (!gameStatus.storyModeFl) {              // Keyboard disabled +		if (!gameStatus._storyModeFl) {              // Keyboard disabled  			// Add printable keys to ring buffer  			uint16 bnext = _putIndex + 1;  			if (bnext >= sizeof(_ringBuffer)) @@ -452,7 +452,7 @@ void Parser::showDosInventory() const {  	for (int i = 0; i < _vm->_object->_numObj; i++) { // Find widths of 2 columns  		if (_vm->_object->isCarried(i)) { -			uint16 len = strlen(_vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 2)); +			uint16 len = strlen(_vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 2));  			if (index++ & 1)                        // Right hand column  				len2 = (len > len2) ? len : len2;  			else @@ -473,9 +473,9 @@ void Parser::showDosInventory() const {  	for (int i = 0; i < _vm->_object->_numObj; i++) { // Assign strings  		if (_vm->_object->isCarried(i)) {  			if (index++ & 1) -				buffer += Common::String(_vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 2)) + "\n"; +				buffer += Common::String(_vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 2)) + "\n";  			else -				buffer += Common::String(_vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 2)) + Common::String(blanks, len1 - strlen(_vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 2))); +				buffer += Common::String(_vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 2)) + Common::String(blanks, len1 - strlen(_vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 2)));  		}  	}  	if (index & 1) diff --git a/engines/hugo/parser.h b/engines/hugo/parser.h index f8b9d9f13b..18f4916b1e 100644 --- a/engines/hugo/parser.h +++ b/engines/hugo/parser.h @@ -48,14 +48,14 @@ enum seqTextParser {   * The following determines how a verb is acted on, for an object   */  struct cmd { -	uint16 verbIndex;                               // the verb -	uint16 reqIndex;                                // ptr to list of required objects -	uint16 textDataNoCarryIndex;                    // ptr to string if any of above not carried -	byte   reqState;                                // required state for verb to be done -	byte   newState;                                // new states if verb done -	uint16 textDataWrongIndex;                      // ptr to string if wrong state -	uint16 textDataDoneIndex;                       // ptr to string if verb done -	uint16 actIndex;                                // Ptr to action list if verb done +	uint16 _verbIndex;                               // the verb +	uint16 _reqIndex;                                // ptr to list of required objects +	uint16 _textDataNoCarryIndex;                    // ptr to string if any of above not carried +	byte   _reqState;                                // required state for verb to be done +	byte   _newState;                                // new states if verb done +	uint16 _textDataWrongIndex;                      // ptr to string if wrong state +	uint16 _textDataDoneIndex;                       // ptr to string if verb done +	uint16 _actIndex;                                // Ptr to action list if verb done  };  /** @@ -65,12 +65,12 @@ struct cmd {   * "don't understand" we produce an interesting msg to keep user sane.   */  struct background_t { -	uint16 verbIndex; -	uint16 nounIndex; -	int    commentIndex;                            // Index of comment produced on match -	bool   matchFl;                                 // TRUE if noun must match when present -	byte   roomState;                               // "State" of room. Comments might differ. -	byte   bonusIndex;                              // Index of bonus score (0 = no bonus) +	uint16 _verbIndex; +	uint16 _nounIndex; +	int    _commentIndex;                            // Index of comment produced on match +	bool   _matchFl;                                 // TRUE if noun must match when present +	byte   _roomState;                               // "State" of room. Comments might differ. +	byte   _bonusIndex;                              // Index of bonus score (0 = no bonus)  };  typedef background_t *objectList_t; diff --git a/engines/hugo/parser_v1d.cpp b/engines/hugo/parser_v1d.cpp index ccd428311b..aa43cce536 100644 --- a/engines/hugo/parser_v1d.cpp +++ b/engines/hugo/parser_v1d.cpp @@ -81,32 +81,32 @@ const char *Parser_v1d::findNextNoun(const char *noun) const {  bool Parser_v1d::isNear_v1(const char *verb, const char *noun, object_t *obj, char *comment) const {  	debugC(1, kDebugParser, "isNear(%s, %s, obj, %s)", verb, noun, comment); -	if (!noun && !obj->verbOnlyFl) {                // No noun specified & object not context senesitive +	if (!noun && !obj->_verbOnlyFl) {                // No noun specified & object not context senesitive  		return false; -	} else if (noun && (noun != _vm->_text->getNoun(obj->nounIndex, 0))) { // Noun specified & not same as object +	} else if (noun && (noun != _vm->_text->getNoun(obj->_nounIndex, 0))) { // Noun specified & not same as object  		return false; -	} else if (obj->carriedFl) {                    // Object is being carried +	} else if (obj->_carriedFl) {                    // Object is being carried  		return true; -	} else if (obj->screenIndex != *_vm->_screen_p) { // Not in same screen -		if (obj->objValue) +	} else if (obj->_screenIndex != *_vm->_screen_p) { // Not in same screen +		if (obj->_objValue)  			strcpy (comment, _vm->_text->getTextParser(kCmtAny4));  		return false;  	} -	if (obj->cycling == kCycleInvisible) { -		if (obj->seqNumb) {                         // There is an image +	if (obj->_cycling == kCycleInvisible) { +		if (obj->_seqNumb) {                         // There is an image  			strcpy(comment, _vm->_text->getTextParser(kCmtAny5));  			return false;  		} else {                                    // No image, assume visible -			if ((obj->radius < 0) || -			   ((abs(obj->x - _vm->_hero->x) <= obj->radius) && -			   (abs(obj->y - _vm->_hero->y - _vm->_hero->currImagePtr->y2) <= obj->radius))) { +			if ((obj->_radius < 0) || +			   ((abs(obj->_x - _vm->_hero->_x) <= obj->_radius) && +			   (abs(obj->_y - _vm->_hero->_y - _vm->_hero->_currImagePtr->_y2) <= obj->_radius))) {  			   return true;  			} else {  				// User is either not close enough (stationary, valueless objects)  				// or is not carrying it (small, portable objects of value)  				if (noun) {                         // Don't say unless object specified -					if (obj->objValue && (verb != _vm->_text->getVerb(_vm->_take, 0))) +					if (obj->_objValue && (verb != _vm->_text->getVerb(_vm->_take, 0)))  						strcpy(comment, _vm->_text->getTextParser(kCmtAny4));  					else  						strcpy(comment, _vm->_text->getTextParser(kCmtClose)); @@ -116,15 +116,15 @@ bool Parser_v1d::isNear_v1(const char *verb, const char *noun, object_t *obj, ch  		}  	} -	if ((obj->radius < 0) || -	    ((abs(obj->x - _vm->_hero->x) <= obj->radius) && -	    (abs(obj->y + obj->currImagePtr->y2 - _vm->_hero->y - _vm->_hero->currImagePtr->y2) <= obj->radius))) { +	if ((obj->_radius < 0) || +	    ((abs(obj->_x - _vm->_hero->_x) <= obj->_radius) && +	    (abs(obj->_y + obj->_currImagePtr->_y2 - _vm->_hero->_y - _vm->_hero->_currImagePtr->_y2) <= obj->_radius))) {  	   return true;  	} else {  		// User is either not close enough (stationary, valueless objects)  		// or is not carrying it (small, portable objects of value)  		if (noun) {                                 // Don't say unless object specified -			if (obj->objValue && (verb != _vm->_text->getVerb(_vm->_take, 0))) +			if (obj->_objValue && (verb != _vm->_text->getVerb(_vm->_take, 0)))  				strcpy(comment, _vm->_text->getTextParser(kCmtAny4));  			else  				strcpy(comment, _vm->_text->getTextParser(kCmtClose)); @@ -143,28 +143,28 @@ bool Parser_v1d::isNear_v1(const char *verb, const char *noun, object_t *obj, ch  bool Parser_v1d::isGenericVerb_v1(const char *word, object_t *obj) {  	debugC(1, kDebugParser, "isGenericVerb(%s, object_t *obj)", word); -	if (!obj->genericCmd) +	if (!obj->_genericCmd)  		return false;  	// Following is equivalent to switch, but couldn't do one  	if (word == _vm->_text->getVerb(_vm->_look, 0)) { -		if ((LOOK & obj->genericCmd) == LOOK) -			Utils::notifyBox(_vm->_text->getTextData(obj->dataIndex)); +		if ((LOOK & obj->_genericCmd) == LOOK) +			Utils::notifyBox(_vm->_text->getTextData(obj->_dataIndex));  		else  			Utils::notifyBox(_vm->_text->getTextParser(kTBUnusual_1d));  	} else if (word == _vm->_text->getVerb(_vm->_take, 0)) { -		if (obj->carriedFl) +		if (obj->_carriedFl)  			Utils::notifyBox(_vm->_text->getTextParser(kTBHave)); -		else if ((TAKE & obj->genericCmd) == TAKE) +		else if ((TAKE & obj->_genericCmd) == TAKE)  			takeObject(obj); -		else if (!obj->verbOnlyFl)                  // Make sure not taking object in context! +		else if (!obj->_verbOnlyFl)                  // Make sure not taking object in context!  			Utils::notifyBox(_vm->_text->getTextParser(kTBNoUse));  		else  			return false;  	} else if (word == _vm->_text->getVerb(_vm->_drop, 0)) { -		if (!obj->carriedFl) +		if (!obj->_carriedFl)  			Utils::notifyBox(_vm->_text->getTextParser(kTBDontHave)); -		else if ((DROP & obj->genericCmd) == DROP) +		else if ((DROP & obj->_genericCmd) == DROP)  			dropObject(obj);  		else  			Utils::notifyBox(_vm->_text->getTextParser(kTBNeed)); @@ -185,42 +185,42 @@ bool Parser_v1d::isObjectVerb_v1(const char *word, object_t *obj) {  	debugC(1, kDebugParser, "isObjectVerb(%s, object_t *obj)", word);  	// First, find matching verb in cmd list -	uint16 cmdIndex = obj->cmdIndex;                // ptr to list of commands +	uint16 cmdIndex = obj->_cmdIndex;                // ptr to list of commands  	if (!cmdIndex)                                  // No commands for this obj  		return false;  	int i; -	for (i = 0; _cmdList[cmdIndex][i].verbIndex != 0; i++) { // For each cmd -		if (!strcmp(word, _vm->_text->getVerb(_cmdList[cmdIndex][i].verbIndex, 0))) // Is this verb catered for? +	for (i = 0; _cmdList[cmdIndex][i]._verbIndex != 0; i++) { // For each cmd +		if (!strcmp(word, _vm->_text->getVerb(_cmdList[cmdIndex][i]._verbIndex, 0))) // Is this verb catered for?  			break;  	} -	if (_cmdList[cmdIndex][i].verbIndex == 0)       // No +	if (_cmdList[cmdIndex][i]._verbIndex == 0)       // No  		return false;  	// Verb match found, check all required objects are being carried  	cmd *cmnd = &_cmdList[cmdIndex][i];             // ptr to struct cmd -	if (cmnd->reqIndex) {                           // At least 1 thing in list -		uint16 *reqs = _arrayReqs[cmnd->reqIndex];  // ptr to list of required objects +	if (cmnd->_reqIndex) {                          // At least 1 thing in list +		uint16 *reqs = _arrayReqs[cmnd->_reqIndex]; // ptr to list of required objects  		for (i = 0; reqs[i]; i++) {                 // for each obj  			if (!_vm->_object->isCarrying(reqs[i])) { -				Utils::notifyBox(_vm->_text->getTextData(cmnd->textDataNoCarryIndex)); +				Utils::notifyBox(_vm->_text->getTextData(cmnd->_textDataNoCarryIndex));  				return true;  			}  		}  	}  	// Required objects are present, now check state is correct -	if ((obj->state != cmnd->reqState) && (cmnd->reqState != kStateDontCare)){ -		Utils::notifyBox(_vm->_text->getTextData(cmnd->textDataWrongIndex)); +	if ((obj->_state != cmnd->_reqState) && (cmnd->_reqState != kStateDontCare)){ +		Utils::notifyBox(_vm->_text->getTextData(cmnd->_textDataWrongIndex));  		return true;  	}  	// Everything checked.  Change the state and carry out any actions -	if (cmnd->reqState != kStateDontCare)           // Don't change new state if required state didn't care -		obj->state = cmnd->newState; -	Utils::notifyBox(_vm->_text->getTextData(cmnd->textDataDoneIndex)); -	_vm->_scheduler->insertActionList(cmnd->actIndex); +	if (cmnd->_reqState != kStateDontCare)           // Don't change new state if required state didn't care +		obj->_state = cmnd->_newState; +	Utils::notifyBox(_vm->_text->getTextData(cmnd->_textDataDoneIndex)); +	_vm->_scheduler->insertActionList(cmnd->_actIndex);  	// Special case if verb is Take or Drop.  Assume additional generic actions  	if ((word == _vm->_text->getVerb(_vm->_take, 0)) || (word == _vm->_text->getVerb(_vm->_drop, 0)))  		isGenericVerb_v1(word, obj); @@ -237,9 +237,9 @@ bool Parser_v1d::isBackgroundWord_v1(const char *noun, const char *verb, objectL  	if (!noun)  		return false; -	for (int i = 0; obj[i].verbIndex; i++) { -		if ((verb == _vm->_text->getVerb(obj[i].verbIndex, 0)) && (noun == _vm->_text->getNoun(obj[i].nounIndex, 0))) { -			Utils::notifyBox(_vm->_file->fetchString(obj[i].commentIndex)); +	for (int i = 0; obj[i]._verbIndex; i++) { +		if ((verb == _vm->_text->getVerb(obj[i]._verbIndex, 0)) && (noun == _vm->_text->getNoun(obj[i]._nounIndex, 0))) { +			Utils::notifyBox(_vm->_file->fetchString(obj[i]._commentIndex));  			return true;  		}  	} @@ -252,13 +252,13 @@ bool Parser_v1d::isBackgroundWord_v1(const char *noun, const char *verb, objectL  void Parser_v1d::takeObject(object_t *obj) {  	debugC(1, kDebugParser, "takeObject(object_t *obj)"); -	obj->carriedFl = true; -	if (obj->seqNumb)                               // Don't change if no image to display -		obj->cycling = kCycleAlmostInvisible; +	obj->_carriedFl = true; +	if (obj->_seqNumb)                               // Don't change if no image to display +		obj->_cycling = kCycleAlmostInvisible; -	_vm->adjustScore(obj->objValue); +	_vm->adjustScore(obj->_objValue); -	Utils::notifyBox(Common::String::format(TAKE_TEXT, _vm->_text->getNoun(obj->nounIndex, TAKE_NAME))); +	Utils::notifyBox(Common::String::format(TAKE_TEXT, _vm->_text->getNoun(obj->_nounIndex, TAKE_NAME)));  }  /** @@ -267,13 +267,13 @@ void Parser_v1d::takeObject(object_t *obj) {  void Parser_v1d::dropObject(object_t *obj) {  	debugC(1, kDebugParser, "dropObject(object_t *obj)"); -	obj->carriedFl = false; -	obj->screenIndex = *_vm->_screen_p; -	if (obj->seqNumb)                               // Don't change if no image to display -		obj->cycling = kCycleNotCycling; -	obj->x = _vm->_hero->x - 1; -	obj->y = _vm->_hero->y + _vm->_hero->currImagePtr->y2 - 1; -	_vm->adjustScore(-obj->objValue); +	obj->_carriedFl = false; +	obj->_screenIndex = *_vm->_screen_p; +	if (obj->_seqNumb)                               // Don't change if no image to display +		obj->_cycling = kCycleNotCycling; +	obj->_x = _vm->_hero->_x - 1; +	obj->_y = _vm->_hero->_y + _vm->_hero->_currImagePtr->_y2 - 1; +	_vm->adjustScore(-obj->_objValue);  	Utils::notifyBox(_vm->_text->getTextParser(kTBOk));  } @@ -284,15 +284,15 @@ void Parser_v1d::dropObject(object_t *obj) {  bool Parser_v1d::isCatchallVerb_v1(bool testNounFl, const char *noun, const char *verb, objectList_t obj) const {  	debugC(1, kDebugParser, "isCatchallVerb(%d, %s, %s, object_list_t obj)", (testNounFl) ? 1 : 0, noun, verb); -	if (_vm->_maze.enabledFl) +	if (_vm->_maze._enabledFl)  		return false;  	if (testNounFl && !noun)  		return false; -	for (int i = 0; obj[i].verbIndex; i++) { -		if ((verb == _vm->_text->getVerb(obj[i].verbIndex, 0)) && ((noun == _vm->_text->getNoun(obj[i].nounIndex, 0)) || (obj[i].nounIndex == 0))) { -			Utils::notifyBox(_vm->_file->fetchString(obj[i].commentIndex)); +	for (int i = 0; obj[i]._verbIndex; i++) { +		if ((verb == _vm->_text->getVerb(obj[i]._verbIndex, 0)) && ((noun == _vm->_text->getNoun(obj[i]._nounIndex, 0)) || (obj[i]._nounIndex == 0))) { +			Utils::notifyBox(_vm->_file->fetchString(obj[i]._commentIndex));  			return true;  		}  	} @@ -310,7 +310,7 @@ void Parser_v1d::lineHandler() {  	// Toggle God Mode  	if (!strncmp(_vm->_line, "PPG", 3)) {  		_vm->_sound->playSound(!_vm->_soundTest, kSoundPriorityHigh); -		gameStatus.godModeFl = !gameStatus.godModeFl; +		gameStatus._godModeFl = !gameStatus._godModeFl;  		return;  	} @@ -321,7 +321,7 @@ void Parser_v1d::lineHandler() {  	// fetch <object name>                          Hero carries named object  	// fetch all                                    Hero carries all possible objects  	// find <object name>                           Takes hero to screen containing named object -	if (gameStatus.godModeFl) { +	if (gameStatus._godModeFl) {  		// Special code to allow me to go straight to any screen  		if (strstr(_vm->_line, "goto")) {  			for (int i = 0; i < _vm->_numScreens; i++) { @@ -335,7 +335,7 @@ void Parser_v1d::lineHandler() {  		// Special code to allow me to get objects from anywhere  		if (strstr(_vm->_line, "fetch all")) {  			for (int i = 0; i < _vm->_object->_numObj; i++) { -				if (_vm->_object->_objects[i].genericCmd & TAKE) +				if (_vm->_object->_objects[i]._genericCmd & TAKE)  					takeObject(&_vm->_object->_objects[i]);  			}  			return; @@ -343,7 +343,7 @@ void Parser_v1d::lineHandler() {  		if (strstr(_vm->_line, "fetch")) {  			for (int i = 0; i < _vm->_object->_numObj; i++) { -				if (!scumm_stricmp(&_vm->_line[strlen("fetch") + 1], _vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 0))) { +				if (!scumm_stricmp(&_vm->_line[strlen("fetch") + 1], _vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 0))) {  					takeObject(&_vm->_object->_objects[i]);  					return;  				} @@ -353,8 +353,8 @@ void Parser_v1d::lineHandler() {  		// Special code to allow me to goto objects  		if (strstr(_vm->_line, "find")) {  			for (int i = 0; i < _vm->_object->_numObj; i++) { -				if (!scumm_stricmp(&_vm->_line[strlen("find") + 1], _vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 0))) { -					_vm->_scheduler->newScreen(_vm->_object->_objects[i].screenIndex); +				if (!scumm_stricmp(&_vm->_line[strlen("find") + 1], _vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 0))) { +					_vm->_scheduler->newScreen(_vm->_object->_objects[i]._screenIndex);  					return;  				}  			} @@ -369,7 +369,7 @@ void Parser_v1d::lineHandler() {  	// SAVE/RESTORE  	if (!strcmp("save", _vm->_line)) { -		if (gameStatus.gameOverFl) +		if (gameStatus._gameOverFl)  			_vm->gameOverMsg();  		else  			_vm->_file->saveGame(-1, Common::String()); @@ -387,7 +387,7 @@ void Parser_v1d::lineHandler() {  	if (strspn(_vm->_line, " ") == strlen(_vm->_line)) // Nothing but spaces!  		return; -	if (gameStatus.gameOverFl) { +	if (gameStatus._gameOverFl) {  		// No commands allowed!  		_vm->gameOverMsg();  		return; @@ -425,8 +425,8 @@ void Parser_v1d::lineHandler() {  void Parser_v1d::showInventory() const {  	status_t &gameStatus = _vm->getGameStatus(); -	if (gameStatus.viewState == kViewPlay) { -		if (gameStatus.gameOverFl) +	if (gameStatus._viewState == kViewPlay) { +		if (gameStatus._gameOverFl)  			_vm->gameOverMsg();  		else  			showDosInventory(); diff --git a/engines/hugo/parser_v1w.cpp b/engines/hugo/parser_v1w.cpp index b1657c3bf4..832e6fd1b0 100644 --- a/engines/hugo/parser_v1w.cpp +++ b/engines/hugo/parser_v1w.cpp @@ -61,7 +61,7 @@ void Parser_v1w::lineHandler() {  	// Toggle God Mode  	if (!strncmp(_vm->_line, "PPG", 3)) {  		_vm->_sound->playSound(!_vm->_soundTest, kSoundPriorityHigh); -		gameStatus.godModeFl = !gameStatus.godModeFl; +		gameStatus._godModeFl = !gameStatus._godModeFl;  		return;  	} @@ -72,7 +72,7 @@ void Parser_v1w::lineHandler() {  	// fetch <object name>                          Hero carries named object  	// fetch all                                    Hero carries all possible objects  	// find <object name>                           Takes hero to screen containing named object -	if (gameStatus.godModeFl) { +	if (gameStatus._godModeFl) {  		// Special code to allow me to go straight to any screen  		if (strstr(_vm->_line, "goto")) {  			for (int i = 0; i < _vm->_numScreens; i++) { @@ -86,7 +86,7 @@ void Parser_v1w::lineHandler() {  		// Special code to allow me to get objects from anywhere  		if (strstr(_vm->_line, "fetch all")) {  			for (int i = 0; i < _vm->_object->_numObj; i++) { -				if (_vm->_object->_objects[i].genericCmd & TAKE) +				if (_vm->_object->_objects[i]._genericCmd & TAKE)  					takeObject(&_vm->_object->_objects[i]);  			}  			return; @@ -94,7 +94,7 @@ void Parser_v1w::lineHandler() {  		if (strstr(_vm->_line, "fetch")) {  			for (int i = 0; i < _vm->_object->_numObj; i++) { -				if (!scumm_stricmp(&_vm->_line[strlen("fetch") + 1], _vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 0))) { +				if (!scumm_stricmp(&_vm->_line[strlen("fetch") + 1], _vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 0))) {  					takeObject(&_vm->_object->_objects[i]);  					return;  				} @@ -104,8 +104,8 @@ void Parser_v1w::lineHandler() {  		// Special code to allow me to goto objects  		if (strstr(_vm->_line, "find")) {  			for (int i = 0; i < _vm->_object->_numObj; i++) { -				if (!scumm_stricmp(&_vm->_line[strlen("find") + 1], _vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 0))) { -					_vm->_scheduler->newScreen(_vm->_object->_objects[i].screenIndex); +				if (!scumm_stricmp(&_vm->_line[strlen("find") + 1], _vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 0))) { +					_vm->_scheduler->newScreen(_vm->_object->_objects[i]._screenIndex);  					return;  				}  			} @@ -121,12 +121,12 @@ void Parser_v1w::lineHandler() {  	}  	// SAVE/RESTORE -	if (!strcmp("save", _vm->_line) && gameStatus.viewState == kViewPlay) { +	if (!strcmp("save", _vm->_line) && gameStatus._viewState == kViewPlay) {  		_vm->_file->saveGame(-1, Common::String());  		return;  	} -	if (!strcmp("restore", _vm->_line) && (gameStatus.viewState == kViewPlay || gameStatus.viewState == kViewIdle)) { +	if (!strcmp("restore", _vm->_line) && (gameStatus._viewState == kViewPlay || gameStatus._viewState == kViewIdle)) {  		_vm->_file->restoreGame(-1);  		return;  	} @@ -137,7 +137,7 @@ void Parser_v1w::lineHandler() {  	if (strspn(_vm->_line, " ") == strlen(_vm->_line)) // Nothing but spaces!  		return; -	if (gameStatus.gameOverFl) { +	if (gameStatus._gameOverFl) {  		// No commands allowed!  		_vm->gameOverMsg();  		return; @@ -148,7 +148,7 @@ void Parser_v1w::lineHandler() {  	// Test for nearby objects referenced explicitly  	for (int i = 0; i < _vm->_object->_numObj; i++) {  		object_t *obj = &_vm->_object->_objects[i]; -		if (isWordPresent(_vm->_text->getNounArray(obj->nounIndex))) { +		if (isWordPresent(_vm->_text->getNounArray(obj->_nounIndex))) {  			if (isObjectVerb_v3(obj, farComment) || isGenericVerb_v3(obj, farComment))  				return;  		} @@ -158,7 +158,7 @@ void Parser_v1w::lineHandler() {  	// Note comment is unused if not near.  	for (int i = 0; i < _vm->_object->_numObj; i++) {  		object_t *obj = &_vm->_object->_objects[i]; -		if (obj->verbOnlyFl) { +		if (obj->_verbOnlyFl) {  			char contextComment[kCompLineSize * 5] = ""; // Unused comment for context objects  			if (isObjectVerb_v3(obj, contextComment) || isGenericVerb_v3(obj, contextComment))  				return; @@ -185,7 +185,7 @@ void Parser_v1w::lineHandler() {  	// Nothing matches.  Report recognition success to user.  	const char *verb = findVerb();  	const char *noun = findNoun(); -	if (verb == _vm->_text->getVerb(_vm->_look, 0) && _vm->_maze.enabledFl) { +	if (verb == _vm->_text->getVerb(_vm->_look, 0) && _vm->_maze._enabledFl) {  		Utils::notifyBox(_vm->_text->getTextParser(kTBMaze));  		_vm->_object->showTakeables();  	} else if (verb && noun) {                      // A combination I didn't think of @@ -202,14 +202,14 @@ void Parser_v1w::lineHandler() {  void Parser_v1w::showInventory() const {  	status_t &gameStatus = _vm->getGameStatus();  	istate_t inventState = _vm->_inventory->getInventoryState(); -	if (gameStatus.gameOverFl) { +	if (gameStatus._gameOverFl) {  		_vm->gameOverMsg(); -	} else if ((inventState == kInventoryOff) && (gameStatus.viewState == kViewPlay)) { +	} else if ((inventState == kInventoryOff) && (gameStatus._viewState == kViewPlay)) {  		_vm->_inventory->setInventoryState(kInventoryDown); -		gameStatus.viewState = kViewInvent; +		gameStatus._viewState = kViewInvent;  	} else if (inventState == kInventoryActive) {  		_vm->_inventory->setInventoryState(kInventoryUp); -		gameStatus.viewState = kViewInvent; +		gameStatus._viewState = kViewInvent;  	}  } diff --git a/engines/hugo/parser_v2d.cpp b/engines/hugo/parser_v2d.cpp index 0095c4d726..2daf3c5e9f 100644 --- a/engines/hugo/parser_v2d.cpp +++ b/engines/hugo/parser_v2d.cpp @@ -60,7 +60,7 @@ void Parser_v2d::lineHandler() {  	// Toggle God Mode  	if (!strncmp(_vm->_line, "PPG", 3)) {  		_vm->_sound->playSound(!_vm->_soundTest, kSoundPriorityHigh); -		gameStatus.godModeFl = !gameStatus.godModeFl; +		gameStatus._godModeFl = !gameStatus._godModeFl;  		return;  	} @@ -71,7 +71,7 @@ void Parser_v2d::lineHandler() {  	// fetch <object name>                          Hero carries named object  	// fetch all                                    Hero carries all possible objects  	// find <object name>                           Takes hero to screen containing named object -	if (gameStatus.godModeFl) { +	if (gameStatus._godModeFl) {  		// Special code to allow me to go straight to any screen  		if (strstr(_vm->_line, "goto")) {  			for (int i = 0; i < _vm->_numScreens; i++) { @@ -85,7 +85,7 @@ void Parser_v2d::lineHandler() {  		// Special code to allow me to get objects from anywhere  		if (strstr(_vm->_line, "fetch all")) {  			for (int i = 0; i < _vm->_object->_numObj; i++) { -				if (_vm->_object->_objects[i].genericCmd & TAKE) +				if (_vm->_object->_objects[i]._genericCmd & TAKE)  					takeObject(&_vm->_object->_objects[i]);  			}  			return; @@ -93,7 +93,7 @@ void Parser_v2d::lineHandler() {  		if (strstr(_vm->_line, "fetch")) {  			for (int i = 0; i < _vm->_object->_numObj; i++) { -				if (!scumm_stricmp(&_vm->_line[strlen("fetch") + 1], _vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 0))) { +				if (!scumm_stricmp(&_vm->_line[strlen("fetch") + 1], _vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 0))) {  					takeObject(&_vm->_object->_objects[i]);  					return;  				} @@ -103,8 +103,8 @@ void Parser_v2d::lineHandler() {  		// Special code to allow me to goto objects  		if (strstr(_vm->_line, "find")) {  			for (int i = 0; i < _vm->_object->_numObj; i++) { -				if (!scumm_stricmp(&_vm->_line[strlen("find") + 1], _vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 0))) { -					_vm->_scheduler->newScreen(_vm->_object->_objects[i].screenIndex); +				if (!scumm_stricmp(&_vm->_line[strlen("find") + 1], _vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 0))) { +					_vm->_scheduler->newScreen(_vm->_object->_objects[i]._screenIndex);  					return;  				}  			} @@ -119,7 +119,7 @@ void Parser_v2d::lineHandler() {  	// SAVE/RESTORE  	if (!strcmp("save", _vm->_line)) { -		if (gameStatus.gameOverFl) +		if (gameStatus._gameOverFl)  			_vm->gameOverMsg();  		else  			_vm->_file->saveGame(-1, Common::String()); @@ -137,7 +137,7 @@ void Parser_v2d::lineHandler() {  	if (strspn(_vm->_line, " ") == strlen(_vm->_line)) // Nothing but spaces!  		return; -	if (gameStatus.gameOverFl) { +	if (gameStatus._gameOverFl) {  		// No commands allowed!  		_vm->gameOverMsg();  		return; @@ -172,7 +172,7 @@ void Parser_v2d::lineHandler() {  		&& !isCatchallVerb_v1(false, noun, verb, _catchallList)) {  		if (*farComment != '\0') {                  // An object matched but not near enough  			Utils::notifyBox(farComment); -		} else if (_vm->_maze.enabledFl && (verb == _vm->_text->getVerb(_vm->_look, 0))) { +		} else if (_vm->_maze._enabledFl && (verb == _vm->_text->getVerb(_vm->_look, 0))) {  			Utils::notifyBox(_vm->_text->getTextParser(kTBMaze));  			_vm->_object->showTakeables();  		} else if (verb && noun) {                  // A combination I didn't think of diff --git a/engines/hugo/parser_v3d.cpp b/engines/hugo/parser_v3d.cpp index b45e9186b3..abfe263f6e 100644 --- a/engines/hugo/parser_v3d.cpp +++ b/engines/hugo/parser_v3d.cpp @@ -60,7 +60,7 @@ void Parser_v3d::lineHandler() {  	// Toggle God Mode  	if (!strncmp(_vm->_line, "PPG", 3)) {  		_vm->_sound->playSound(!_vm->_soundTest, kSoundPriorityHigh); -		gameStatus.godModeFl = !gameStatus.godModeFl; +		gameStatus._godModeFl = !gameStatus._godModeFl;  		return;  	} @@ -71,7 +71,7 @@ void Parser_v3d::lineHandler() {  	// fetch <object name>                          Hero carries named object  	// fetch all                                    Hero carries all possible objects  	// find <object name>                           Takes hero to screen containing named object -	if (gameStatus.godModeFl) { +	if (gameStatus._godModeFl) {  		// Special code to allow me to go straight to any screen  		if (strstr(_vm->_line, "goto")) {  			for (int i = 0; i < _vm->_numScreens; i++) { @@ -85,7 +85,7 @@ void Parser_v3d::lineHandler() {  		// Special code to allow me to get objects from anywhere  		if (strstr(_vm->_line, "fetch all")) {  			for (int i = 0; i < _vm->_object->_numObj; i++) { -				if (_vm->_object->_objects[i].genericCmd & TAKE) +				if (_vm->_object->_objects[i]._genericCmd & TAKE)  					takeObject(&_vm->_object->_objects[i]);  			}  			return; @@ -93,7 +93,7 @@ void Parser_v3d::lineHandler() {  		if (strstr(_vm->_line, "fetch")) {  			for (int i = 0; i < _vm->_object->_numObj; i++) { -				if (!scumm_stricmp(&_vm->_line[strlen("fetch") + 1], _vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 0))) { +				if (!scumm_stricmp(&_vm->_line[strlen("fetch") + 1], _vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 0))) {  					takeObject(&_vm->_object->_objects[i]);  					return;  				} @@ -103,8 +103,8 @@ void Parser_v3d::lineHandler() {  		// Special code to allow me to goto objects  		if (strstr(_vm->_line, "find")) {  			for (int i = 0; i < _vm->_object->_numObj; i++) { -				if (!scumm_stricmp(&_vm->_line[strlen("find") + 1], _vm->_text->getNoun(_vm->_object->_objects[i].nounIndex, 0))) { -					_vm->_scheduler->newScreen(_vm->_object->_objects[i].screenIndex); +				if (!scumm_stricmp(&_vm->_line[strlen("find") + 1], _vm->_text->getNoun(_vm->_object->_objects[i]._nounIndex, 0))) { +					_vm->_scheduler->newScreen(_vm->_object->_objects[i]._screenIndex);  					return;  				}  			} @@ -121,7 +121,7 @@ void Parser_v3d::lineHandler() {  	// SAVE/RESTORE  	if (!strcmp("save", _vm->_line)) { -		if (gameStatus.gameOverFl) +		if (gameStatus._gameOverFl)  			_vm->gameOverMsg();  		else  			_vm->_file->saveGame(-1, Common::String()); @@ -139,7 +139,7 @@ void Parser_v3d::lineHandler() {  	if (strspn(_vm->_line, " ") == strlen(_vm->_line)) // Nothing but spaces!  		return; -	if (gameStatus.gameOverFl) { +	if (gameStatus._gameOverFl) {  		// No commands allowed!  		_vm->gameOverMsg();  		return; @@ -150,7 +150,7 @@ void Parser_v3d::lineHandler() {  	// Test for nearby objects referenced explicitly  	for (int i = 0; i < _vm->_object->_numObj; i++) {  		object_t *obj = &_vm->_object->_objects[i]; -		if (isWordPresent(_vm->_text->getNounArray(obj->nounIndex))) { +		if (isWordPresent(_vm->_text->getNounArray(obj->_nounIndex))) {  			if (isObjectVerb_v3(obj, farComment) || isGenericVerb_v3(obj, farComment))  				return;  		} @@ -160,7 +160,7 @@ void Parser_v3d::lineHandler() {  	// Note comment is unused if not near.  	for (int i = 0; i < _vm->_object->_numObj; i++) {  		object_t *obj = &_vm->_object->_objects[i]; -		if (obj->verbOnlyFl) { +		if (obj->_verbOnlyFl) {  			char contextComment[kCompLineSize * 5] = ""; // Unused comment for context objects  			if (isObjectVerb_v3(obj, contextComment) || isGenericVerb_v3(obj, contextComment))  				return; @@ -208,47 +208,47 @@ bool Parser_v3d::isObjectVerb_v3(object_t *obj, char *comment) {  	debugC(1, kDebugParser, "isObjectVerb(object_t *obj, %s)", comment);  	// First, find matching verb in cmd list -	uint16 cmdIndex = obj->cmdIndex;                // ptr to list of commands +	uint16 cmdIndex = obj->_cmdIndex;                // ptr to list of commands  	if (cmdIndex == 0)                              // No commands for this obj  		return false;  	int i; -	for (i = 0; _cmdList[cmdIndex][i].verbIndex != 0; i++) {                           // For each cmd -		if (isWordPresent(_vm->_text->getVerbArray(_cmdList[cmdIndex][i].verbIndex)))  // Was this verb used? +	for (i = 0; _cmdList[cmdIndex][i]._verbIndex != 0; i++) {                           // For each cmd +		if (isWordPresent(_vm->_text->getVerbArray(_cmdList[cmdIndex][i]._verbIndex)))  // Was this verb used?  			break;  	} -	if (_cmdList[cmdIndex][i].verbIndex == 0)       // No verbs used. +	if (_cmdList[cmdIndex][i]._verbIndex == 0)       // No verbs used.  		return false;  	// Verb match found.  Check if object is Near -	char *verb = *_vm->_text->getVerbArray(_cmdList[cmdIndex][i].verbIndex); +	char *verb = *_vm->_text->getVerbArray(_cmdList[cmdIndex][i]._verbIndex);  	if (!isNear_v3(obj, verb, comment))  		return false;  	// Check all required objects are being carried  	cmd *cmnd = &_cmdList[cmdIndex][i];             // ptr to struct cmd -	if (cmnd->reqIndex) {                           // At least 1 thing in list -		uint16 *reqs = _arrayReqs[cmnd->reqIndex];  // ptr to list of required objects +	if (cmnd->_reqIndex) {                           // At least 1 thing in list +		uint16 *reqs = _arrayReqs[cmnd->_reqIndex];  // ptr to list of required objects  		for (i = 0; reqs[i]; i++) {                 // for each obj  			if (!_vm->_object->isCarrying(reqs[i])) { -				Utils::notifyBox(_vm->_text->getTextData(cmnd->textDataNoCarryIndex)); +				Utils::notifyBox(_vm->_text->getTextData(cmnd->_textDataNoCarryIndex));  				return true;  			}  		}  	}  	// Required objects are present, now check state is correct -	if ((obj->state != cmnd->reqState) && (cmnd->reqState != kStateDontCare)) { -		Utils::notifyBox(_vm->_text->getTextData(cmnd->textDataWrongIndex)); +	if ((obj->_state != cmnd->_reqState) && (cmnd->_reqState != kStateDontCare)) { +		Utils::notifyBox(_vm->_text->getTextData(cmnd->_textDataWrongIndex));  		return true;  	}  	// Everything checked.  Change the state and carry out any actions -	if (cmnd->reqState != kStateDontCare)           // Don't change new state if required state didn't care -		obj->state = cmnd->newState; -	Utils::notifyBox(_vm->_text->getTextData(cmnd->textDataDoneIndex)); -	_vm->_scheduler->insertActionList(cmnd->actIndex); +	if (cmnd->_reqState != kStateDontCare)           // Don't change new state if required state didn't care +		obj->_state = cmnd->_newState; +	Utils::notifyBox(_vm->_text->getTextData(cmnd->_textDataDoneIndex)); +	_vm->_scheduler->insertActionList(cmnd->_actIndex);  	// See if any additional generic actions  	if ((verb == _vm->_text->getVerb(_vm->_look, 0)) || (verb == _vm->_text->getVerb(_vm->_take, 0)) || (verb == _vm->_text->getVerb(_vm->_drop, 0))) @@ -262,18 +262,18 @@ bool Parser_v3d::isObjectVerb_v3(object_t *obj, char *comment) {  bool Parser_v3d::isGenericVerb_v3(object_t *obj, char *comment) {  	debugC(1, kDebugParser, "isGenericVerb(object_t *obj, %s)", comment); -	if (!obj->genericCmd) +	if (!obj->_genericCmd)  		return false;  	// Following is equivalent to switch, but couldn't do one  	if (isWordPresent(_vm->_text->getVerbArray(_vm->_look)) && isNear_v3(obj, _vm->_text->getVerb(_vm->_look, 0), comment)) {  		// Test state-dependent look before general look -		if ((obj->genericCmd & LOOK_S) == LOOK_S) { -			Utils::notifyBox(_vm->_text->getTextData(obj->stateDataIndex[obj->state])); +		if ((obj->_genericCmd & LOOK_S) == LOOK_S) { +			Utils::notifyBox(_vm->_text->getTextData(obj->_stateDataIndex[obj->_state]));  		} else { -			if ((LOOK & obj->genericCmd) == LOOK) { -				if (obj->dataIndex != 0) -					Utils::notifyBox(_vm->_text->getTextData(obj->dataIndex)); +			if ((LOOK & obj->_genericCmd) == LOOK) { +				if (obj->_dataIndex != 0) +					Utils::notifyBox(_vm->_text->getTextData(obj->_dataIndex));  				else  					return false;  			} else { @@ -281,22 +281,22 @@ bool Parser_v3d::isGenericVerb_v3(object_t *obj, char *comment) {  			}  		}  	} else if (isWordPresent(_vm->_text->getVerbArray(_vm->_take)) && isNear_v3(obj, _vm->_text->getVerb(_vm->_take, 0), comment)) { -		if (obj->carriedFl) +		if (obj->_carriedFl)  			Utils::notifyBox(_vm->_text->getTextParser(kTBHave)); -		else if ((TAKE & obj->genericCmd) == TAKE) +		else if ((TAKE & obj->_genericCmd) == TAKE)  			takeObject(obj); -		else if (obj->cmdIndex)                     // No comment if possible commands +		else if (obj->_cmdIndex)                     // No comment if possible commands  			return false; -		else if (!obj->verbOnlyFl && (TAKE & obj->genericCmd) == TAKE)  // Make sure not taking object in context! +		else if (!obj->_verbOnlyFl && (TAKE & obj->_genericCmd) == TAKE)  // Make sure not taking object in context!  			Utils::notifyBox(_vm->_text->getTextParser(kTBNoUse));  		else  			return false;  	} else if (isWordPresent(_vm->_text->getVerbArray(_vm->_drop))) { -		if (!obj->carriedFl && ((DROP & obj->genericCmd) == DROP)) +		if (!obj->_carriedFl && ((DROP & obj->_genericCmd) == DROP))  			Utils::notifyBox(_vm->_text->getTextParser(kTBDontHave)); -		else if (obj->carriedFl && ((DROP & obj->genericCmd) == DROP)) +		else if (obj->_carriedFl && ((DROP & obj->_genericCmd) == DROP))  			dropObject(obj); -		else if (obj->cmdIndex == 0) +		else if (obj->_cmdIndex == 0)  			Utils::notifyBox(_vm->_text->getTextParser(kTBNeed));  		else  			return false; @@ -316,32 +316,32 @@ bool Parser_v3d::isGenericVerb_v3(object_t *obj, char *comment) {  bool Parser_v3d::isNear_v3(object_t *obj, const char *verb, char *comment) const {  	debugC(1, kDebugParser, "isNear(object_t *obj, %s, %s)", verb, comment); -	if (obj->carriedFl)                             // Object is being carried +	if (obj->_carriedFl)                             // Object is being carried  		return true; -	if (obj->screenIndex != *_vm->_screen_p) { +	if (obj->_screenIndex != *_vm->_screen_p) {  		// Not in same screen -		if (obj->objValue) +		if (obj->_objValue)  			strcpy(comment, _vm->_text->getTextParser(kCmtAny1));  		else  			strcpy(comment, _vm->_text->getTextParser(kCmtAny2));  		return false;  	} -	if (obj->cycling == kCycleInvisible) { -		if (obj->seqNumb) { +	if (obj->_cycling == kCycleInvisible) { +		if (obj->_seqNumb) {  			// There is an image  			strcpy(comment, _vm->_text->getTextParser(kCmtAny3));  			return false;  		} else {  			// No image, assume visible -			if ((obj->radius < 0) || -			        ((abs(obj->x - _vm->_hero->x) <= obj->radius) && -					(abs(obj->y - _vm->_hero->y - _vm->_hero->currImagePtr->y2) <= obj->radius))) { +			if ((obj->_radius < 0) || +			        ((abs(obj->_x - _vm->_hero->_x) <= obj->_radius) && +					(abs(obj->_y - _vm->_hero->_y - _vm->_hero->_currImagePtr->_y2) <= obj->_radius))) {  				return true;  			} else {  				// User is not close enough -				if (obj->objValue && (verb != _vm->_text->getVerb(_vm->_take, 0))) +				if (obj->_objValue && (verb != _vm->_text->getVerb(_vm->_take, 0)))  					strcpy(comment, _vm->_text->getTextParser(kCmtAny1));  				else  					strcpy(comment, _vm->_text->getTextParser(kCmtClose)); @@ -350,13 +350,13 @@ bool Parser_v3d::isNear_v3(object_t *obj, const char *verb, char *comment) const  		}  	} -	if ((obj->radius < 0) || -	    ((abs(obj->x - _vm->_hero->x) <= obj->radius) && -	     (abs(obj->y + obj->currImagePtr->y2 - _vm->_hero->y - _vm->_hero->currImagePtr->y2) <= obj->radius))) { +	if ((obj->_radius < 0) || +	    ((abs(obj->_x - _vm->_hero->_x) <= obj->_radius) && +	     (abs(obj->_y + obj->_currImagePtr->_y2 - _vm->_hero->_y - _vm->_hero->_currImagePtr->_y2) <= obj->_radius))) {  		return true;  	} else {  		// User is not close enough -		if (obj->objValue && (verb != _vm->_text->getVerb(_vm->_take, 0))) +		if (obj->_objValue && (verb != _vm->_text->getVerb(_vm->_take, 0)))  			strcpy(comment, _vm->_text->getTextParser(kCmtAny1));  		else  			strcpy(comment, _vm->_text->getTextParser(kCmtClose)); @@ -371,15 +371,15 @@ bool Parser_v3d::isNear_v3(object_t *obj, const char *verb, char *comment) const  void Parser_v3d::takeObject(object_t *obj) {  	debugC(1, kDebugParser, "takeObject(object_t *obj)"); -	obj->carriedFl = true; -	if (obj->seqNumb) {                             // Don't change if no image to display -		obj->cycling = kCycleInvisible; +	obj->_carriedFl = true; +	if (obj->_seqNumb) {                             // Don't change if no image to display +		obj->_cycling = kCycleInvisible;  	} -	_vm->adjustScore(obj->objValue); +	_vm->adjustScore(obj->_objValue); -	if (obj->seqNumb > 0)                           // If object has an image, force walk to dropped -		obj->viewx = -1;                            // (possibly moved) object next time taken! -	Utils::notifyBox(Common::String::format(TAKE_TEXT, _vm->_text->getNoun(obj->nounIndex, TAKE_NAME))); +	if (obj->_seqNumb > 0)                           // If object has an image, force walk to dropped +		obj->_viewx = -1;                            // (possibly moved) object next time taken! +	Utils::notifyBox(Common::String::format(TAKE_TEXT, _vm->_text->getNoun(obj->_nounIndex, TAKE_NAME)));  }  /** @@ -388,16 +388,16 @@ void Parser_v3d::takeObject(object_t *obj) {  void Parser_v3d::dropObject(object_t *obj) {  	debugC(1, kDebugParser, "dropObject(object_t *obj)"); -	obj->carriedFl = false; -	obj->screenIndex = *_vm->_screen_p; -	if ((obj->seqNumb > 1) || (obj->seqList[0].imageNbr > 1)) -		obj->cycling = kCycleForward; +	obj->_carriedFl = false; +	obj->_screenIndex = *_vm->_screen_p; +	if ((obj->_seqNumb > 1) || (obj->_seqList[0]._imageNbr > 1)) +		obj->_cycling = kCycleForward;  	else -		obj->cycling = kCycleNotCycling; -	obj->x = _vm->_hero->x - 1; -	obj->y = _vm->_hero->y + _vm->_hero->currImagePtr->y2 - 1; -	obj->y = (obj->y + obj->currImagePtr->y2 < kYPix) ? obj->y : kYPix - obj->currImagePtr->y2 - 10; -	_vm->adjustScore(-obj->objValue); +		obj->_cycling = kCycleNotCycling; +	obj->_x = _vm->_hero->_x - 1; +	obj->_y = _vm->_hero->_y + _vm->_hero->_currImagePtr->_y2 - 1; +	obj->_y = (obj->_y + obj->_currImagePtr->_y2 < kYPix) ? obj->_y : kYPix - obj->_currImagePtr->_y2 - 10; +	_vm->adjustScore(-obj->_objValue);  	Utils::notifyBox(_vm->_text->getTextParser(kTBOk));  } @@ -410,19 +410,19 @@ void Parser_v3d::dropObject(object_t *obj) {  bool Parser_v3d::isCatchallVerb_v3(objectList_t obj) const {  	debugC(1, kDebugParser, "isCatchallVerb(object_list_t obj)"); -	if (_vm->_maze.enabledFl) +	if (_vm->_maze._enabledFl)  		return false; -	for (int i = 0; obj[i].verbIndex != 0; i++) { -		if (isWordPresent(_vm->_text->getVerbArray(obj[i].verbIndex)) && obj[i].nounIndex == 0 && -		   (!obj[i].matchFl || !findNoun()) && -		   ((obj[i].roomState == kStateDontCare) || -		    (obj[i].roomState == _vm->_screenStates[*_vm->_screen_p]))) { -			Utils::notifyBox(_vm->_file->fetchString(obj[i].commentIndex)); -			_vm->_scheduler->processBonus(obj[i].bonusIndex); +	for (int i = 0; obj[i]._verbIndex != 0; i++) { +		if (isWordPresent(_vm->_text->getVerbArray(obj[i]._verbIndex)) && obj[i]._nounIndex == 0 && +		   (!obj[i]._matchFl || !findNoun()) && +		   ((obj[i]._roomState == kStateDontCare) || +		    (obj[i]._roomState == _vm->_screenStates[*_vm->_screen_p]))) { +			Utils::notifyBox(_vm->_file->fetchString(obj[i]._commentIndex)); +			_vm->_scheduler->processBonus(obj[i]._bonusIndex);  			// If this is LOOK (without a noun), show any takeable objects -			if (*(_vm->_text->getVerbArray(obj[i].verbIndex)) == _vm->_text->getVerb(_vm->_look, 0)) +			if (*(_vm->_text->getVerbArray(obj[i]._verbIndex)) == _vm->_text->getVerb(_vm->_look, 0))  				_vm->_object->showTakeables();  			return true; @@ -438,16 +438,16 @@ bool Parser_v3d::isCatchallVerb_v3(objectList_t obj) const {  bool Parser_v3d::isBackgroundWord_v3(objectList_t obj) const {  	debugC(1, kDebugParser, "isBackgroundWord(object_list_t obj)"); -	if (_vm->_maze.enabledFl) +	if (_vm->_maze._enabledFl)  		return false; -	for (int i = 0; obj[i].verbIndex != 0; i++) { -		if (isWordPresent(_vm->_text->getVerbArray(obj[i].verbIndex)) && -		    isWordPresent(_vm->_text->getNounArray(obj[i].nounIndex)) && -		    ((obj[i].roomState == kStateDontCare) || -		     (obj[i].roomState == _vm->_screenStates[*_vm->_screen_p]))) { -			Utils::notifyBox(_vm->_file->fetchString(obj[i].commentIndex)); -			_vm->_scheduler->processBonus(obj[i].bonusIndex); +	for (int i = 0; obj[i]._verbIndex != 0; i++) { +		if (isWordPresent(_vm->_text->getVerbArray(obj[i]._verbIndex)) && +		    isWordPresent(_vm->_text->getNounArray(obj[i]._nounIndex)) && +		    ((obj[i]._roomState == kStateDontCare) || +		     (obj[i]._roomState == _vm->_screenStates[*_vm->_screen_p]))) { +			Utils::notifyBox(_vm->_file->fetchString(obj[i]._commentIndex)); +			_vm->_scheduler->processBonus(obj[i]._bonusIndex);  			return true;  		}  	} diff --git a/engines/hugo/route.cpp b/engines/hugo/route.cpp index 281aacf031..552ddaf5c9 100644 --- a/engines/hugo/route.cpp +++ b/engines/hugo/route.cpp @@ -67,35 +67,35 @@ void Route::setDirection(const uint16 keyCode) {  	switch (keyCode) {  	case Common::KEYCODE_UP:  	case Common::KEYCODE_KP8: -		obj->currImagePtr = obj->seqList[SEQ_UP].seqPtr; +		obj->_currImagePtr = obj->_seqList[SEQ_UP]._seqPtr;  		break;  	case Common::KEYCODE_DOWN:  	case Common::KEYCODE_KP2: -		obj->currImagePtr = obj->seqList[SEQ_DOWN].seqPtr; +		obj->_currImagePtr = obj->_seqList[SEQ_DOWN]._seqPtr;  		break;  	case Common::KEYCODE_LEFT:  	case Common::KEYCODE_KP4: -		obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +		obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  		break;  	case Common::KEYCODE_RIGHT:  	case Common::KEYCODE_KP6: -		obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +		obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  		break;  	case Common::KEYCODE_HOME:  	case Common::KEYCODE_KP7: -		obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +		obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  		break;  	case Common::KEYCODE_END:  	case Common::KEYCODE_KP1: -		obj->currImagePtr = obj->seqList[SEQ_LEFT].seqPtr; +		obj->_currImagePtr = obj->_seqList[SEQ_LEFT]._seqPtr;  		break;  	case Common::KEYCODE_PAGEUP:  	case Common::KEYCODE_KP9: -		obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +		obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  		break;  	case Common::KEYCODE_PAGEDOWN:  	case Common::KEYCODE_KP3: -		obj->currImagePtr = obj->seqList[SEQ_RIGHT].seqPtr; +		obj->_currImagePtr = obj->_seqList[SEQ_RIGHT]._seqPtr;  		break;  	}  } @@ -109,66 +109,66 @@ void Route::setWalk(const uint16 direction) {  	object_t *obj = _vm->_hero;                     // Pointer to hero object -	if (_vm->getGameStatus().storyModeFl || obj->pathType != kPathUser) // Make sure user has control +	if (_vm->getGameStatus()._storyModeFl || obj->_pathType != kPathUser) // Make sure user has control  		return; -	if (!obj->vx && !obj->vy) +	if (!obj->_vx && !obj->_vy)  		_oldWalkDirection = 0;                      // Fix for consistant restarts  	if (direction != _oldWalkDirection) {  		// Direction has changed  		setDirection(direction);                    // Face new direction -		obj->vx = obj->vy = 0; +		obj->_vx = obj->_vy = 0;  		switch (direction) {                        // And set correct velocity  		case Common::KEYCODE_UP:  		case Common::KEYCODE_KP8: -			obj->vy = -kStepDy; +			obj->_vy = -kStepDy;  			break;  		case Common::KEYCODE_DOWN:  		case Common::KEYCODE_KP2: -			obj->vy =  kStepDy; +			obj->_vy =  kStepDy;  			break;  		case Common::KEYCODE_LEFT:  		case Common::KEYCODE_KP4: -			obj->vx = -kStepDx; +			obj->_vx = -kStepDx;  			break;  		case Common::KEYCODE_RIGHT:  		case Common::KEYCODE_KP6: -			obj->vx =  kStepDx; +			obj->_vx =  kStepDx;  			break;  		case Common::KEYCODE_HOME:  		case Common::KEYCODE_KP7: -			obj->vx = -kStepDx; +			obj->_vx = -kStepDx;  			// Note: in v1 Dos and v2 Dos, obj->vy is set to DY -			obj->vy = -kStepDy / 2; +			obj->_vy = -kStepDy / 2;  			break;  		case Common::KEYCODE_END:  		case Common::KEYCODE_KP1: -			obj->vx = -kStepDx; +			obj->_vx = -kStepDx;  			// Note: in v1 Dos and v2 Dos, obj->vy is set to -DY -			obj->vy =  kStepDy / 2; +			obj->_vy =  kStepDy / 2;  			break;  		case Common::KEYCODE_PAGEUP:  		case Common::KEYCODE_KP9: -			obj->vx =  kStepDx; +			obj->_vx =  kStepDx;  			// Note: in v1 Dos and v2 Dos, obj->vy is set to -DY -			obj->vy = -kStepDy / 2; +			obj->_vy = -kStepDy / 2;  			break;  		case Common::KEYCODE_PAGEDOWN:  		case Common::KEYCODE_KP3: -			obj->vx =  kStepDx; +			obj->_vx =  kStepDx;  			// Note: in v1 Dos and v2 Dos, obj->vy is set to DY -			obj->vy =  kStepDy / 2; +			obj->_vy =  kStepDy / 2;  			break;  		}  		_oldWalkDirection = direction; -		obj->cycling = kCycleForward; +		obj->_cycling = kCycleForward;  	} else {  		// Same key twice - halt hero -		obj->vy = 0; -		obj->vx = 0; +		obj->_vy = 0; +		obj->_vx = 0;  		_oldWalkDirection = 0; -		obj->cycling = kCycleNotCycling; +		obj->_cycling = kCycleNotCycling;  	}  } @@ -228,7 +228,7 @@ void Route::segment(int16 x, int16 y) {  	if (y <= 0 || y >= kYPix - 1)  		return; -	if (_vm->_hero->x < x1) { +	if (_vm->_hero->_x < x1) {  		// Hero x not in segment, search x1..x2  		// Find all segments above current  		for (x = x1; !(_routeFoundFl || _fullStackFl || _fullSegmentFl) && x <= x2; x++) { @@ -241,7 +241,7 @@ void Route::segment(int16 x, int16 y) {  			if (_boundaryMap[y + 1][x] == 0)  				segment(x, y + 1);  		} -	} else if (_vm->_hero->x + kHeroMaxWidth > x2) { +	} else if (_vm->_hero->_x + kHeroMaxWidth > x2) {  		// Hero x not in segment, search x1..x2  		// Find all segments above current  		for (x = x2; !(_routeFoundFl || _fullStackFl || _fullSegmentFl) && x >= x1; x--) { @@ -257,22 +257,22 @@ void Route::segment(int16 x, int16 y) {  	} else {  		// Organize search around hero x position - this gives  		// better chance for more direct route. -		for (x = _vm->_hero->x; !(_routeFoundFl || _fullStackFl || _fullSegmentFl) && x <= x2; x++) { +		for (x = _vm->_hero->_x; !(_routeFoundFl || _fullStackFl || _fullSegmentFl) && x <= x2; x++) {  			if (_boundaryMap[y - 1][x] == 0)  				segment(x, y - 1);  		} -		for (x = x1; !(_routeFoundFl || _fullStackFl || _fullSegmentFl) && x < _vm->_hero->x; x++) { +		for (x = x1; !(_routeFoundFl || _fullStackFl || _fullSegmentFl) && x < _vm->_hero->_x; x++) {  			if (_boundaryMap[y - 1][x] == 0)  				segment(x, y - 1);  		} -		for (x = _vm->_hero->x; !(_routeFoundFl || _fullStackFl || _fullSegmentFl) && x <= x2; x++) { +		for (x = _vm->_hero->_x; !(_routeFoundFl || _fullStackFl || _fullSegmentFl) && x <= x2; x++) {  			if (_boundaryMap[y + 1][x] == 0)  				segment(x, y + 1);  		} -		for (x = x1; !(_routeFoundFl || _fullStackFl || _fullSegmentFl) && x < _vm->_hero->x; x++) { +		for (x = x1; !(_routeFoundFl || _fullStackFl || _fullSegmentFl) && x < _vm->_hero->_x; x++) {  			if (_boundaryMap[y + 1][x] == 0)  				segment(x, y + 1);  		} @@ -327,16 +327,16 @@ bool Route::findRoute(const int16 cx, const int16 cy) {  	_destY = cy;                                    // Destination coords  	_destX = cx;                                    // Destination coords -	int16 herox1 = _vm->_hero->x + _vm->_hero->currImagePtr->x1;        // Hero baseline -	int16 herox2 = _vm->_hero->x + _vm->_hero->currImagePtr->x2;        // Hero baseline -	int16 heroy  = _vm->_hero->y + _vm->_hero->currImagePtr->y2;        // Hero baseline +	int16 herox1 = _vm->_hero->_x + _vm->_hero->_currImagePtr->_x1;        // Hero baseline +	int16 herox2 = _vm->_hero->_x + _vm->_hero->_currImagePtr->_x2;        // Hero baseline +	int16 heroy  = _vm->_hero->_y + _vm->_hero->_currImagePtr->_y2;        // Hero baseline  	// Store all object baselines into objbound (except hero's = [0])  	object_t  *obj;                                 // Ptr to object  	int i;  	for (i = 1, obj = &_vm->_object->_objects[i]; i < _vm->_object->_numObj; i++, obj++) { -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->cycling != kCycleInvisible) && (obj->priority == kPriorityFloating)) -			_vm->_object->storeBoundary(obj->oldx + obj->currImagePtr->x1, obj->oldx + obj->currImagePtr->x2, obj->oldy + obj->currImagePtr->y2); +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_cycling != kCycleInvisible) && (obj->_priority == kPriorityFloating)) +			_vm->_object->storeBoundary(obj->_oldx + obj->_currImagePtr->_x1, obj->_oldx + obj->_currImagePtr->_x2, obj->_oldy + obj->_currImagePtr->_y2);  	}  	// Combine objbound and boundary bitmaps to local byte map @@ -350,8 +350,8 @@ bool Route::findRoute(const int16 cx, const int16 cy) {  	// Clear all object baselines from objbound  	for (i = 0, obj = _vm->_object->_objects; i < _vm->_object->_numObj; i++, obj++) { -		if ((obj->screenIndex == *_vm->_screen_p) && (obj->cycling != kCycleInvisible) && (obj->priority == kPriorityFloating)) -			_vm->_object->clearBoundary(obj->oldx + obj->currImagePtr->x1, obj->oldx + obj->currImagePtr->x2, obj->oldy + obj->currImagePtr->y2); +		if ((obj->_screenIndex == *_vm->_screen_p) && (obj->_cycling != kCycleInvisible) && (obj->_priority == kPriorityFloating)) +			_vm->_object->clearBoundary(obj->_oldx + obj->_currImagePtr->_x1, obj->_oldx + obj->_currImagePtr->_x2, obj->_oldy + obj->_currImagePtr->_y2);  	}  	// Search from hero to destination @@ -433,18 +433,18 @@ void Route::processRoute() {  		return;  	// Current hero position -	int16 herox = _vm->_hero->x + _vm->_hero->currImagePtr->x1; -	int16 heroy = _vm->_hero->y + _vm->_hero->currImagePtr->y2; +	int16 herox = _vm->_hero->_x + _vm->_hero->_currImagePtr->_x1; +	int16 heroy = _vm->_hero->_y + _vm->_hero->_currImagePtr->_y2;  	Point *routeNode = &_route[_routeIndex];  	// Arrived at node?  	if (abs(herox - routeNode->x) < kStepDx + 1 && abs(heroy - routeNode->y) < kStepDy) {  		// kStepDx too low  		// Close enough - position hero exactly -		_vm->_hero->x = _vm->_hero->oldx = routeNode->x - _vm->_hero->currImagePtr->x1; -		_vm->_hero->y = _vm->_hero->oldy = routeNode->y - _vm->_hero->currImagePtr->y2; -		_vm->_hero->vx = _vm->_hero->vy = 0; -		_vm->_hero->cycling = kCycleNotCycling; +		_vm->_hero->_x = _vm->_hero->_oldx = routeNode->x - _vm->_hero->_currImagePtr->_x1; +		_vm->_hero->_y = _vm->_hero->_oldy = routeNode->y - _vm->_hero->_currImagePtr->_y2; +		_vm->_hero->_vx = _vm->_hero->_vy = 0; +		_vm->_hero->_cycling = kCycleNotCycling;  		// Arrived at final node?  		if (--_routeIndex < 0) { @@ -458,7 +458,7 @@ void Route::processRoute() {  					_vm->_object->lookObject(&_vm->_object->_objects[_routeObjId]);  					turnedFl = false;  				} else { -					setDirection(_vm->_object->_objects[_routeObjId].direction); +					setDirection(_vm->_object->_objects[_routeObjId]._direction);  					_routeIndex++;                  // Come round again  					turnedFl = true;  				} @@ -468,7 +468,7 @@ void Route::processRoute() {  					_vm->_object->useObject(_routeObjId);  					turnedFl = false;  				} else { -					setDirection(_vm->_object->_objects[_routeObjId].direction); +					setDirection(_vm->_object->_objects[_routeObjId]._direction);  					_routeIndex++;                  // Come round again  					turnedFl = true;  				} @@ -477,7 +477,7 @@ void Route::processRoute() {  				break;  			}  		} -	} else if (_vm->_hero->vx == 0 && _vm->_hero->vy == 0) { +	} else if (_vm->_hero->_vx == 0 && _vm->_hero->_vy == 0) {  		// Set direction of travel if at a node  		// Note realignment when changing to (thinner) up/down sprite,  		// otherwise hero could bump into boundaries along route. @@ -487,10 +487,10 @@ void Route::processRoute() {  			setWalk(Common::KEYCODE_LEFT);  		} else if (heroy < routeNode->y) {  			setWalk(Common::KEYCODE_DOWN); -			_vm->_hero->x = _vm->_hero->oldx = routeNode->x - _vm->_hero->currImagePtr->x1; +			_vm->_hero->_x = _vm->_hero->_oldx = routeNode->x - _vm->_hero->_currImagePtr->_x1;  		} else if (heroy > routeNode->y) {  			setWalk(Common::KEYCODE_UP); -			_vm->_hero->x = _vm->_hero->oldx = routeNode->x - _vm->_hero->currImagePtr->x1; +			_vm->_hero->_x = _vm->_hero->_oldx = routeNode->x - _vm->_hero->_currImagePtr->_x1;  		}  	}  } @@ -504,7 +504,7 @@ bool Route::startRoute(const go_t routeType, const int16 objId, int16 cx, int16  	debugC(1, kDebugRoute, "startRoute(%d, %d, %d, %d)", routeType, objId, cx, cy);  	// Don't attempt to walk if user does not have control -	if (_vm->_hero->pathType != kPathUser) +	if (_vm->_hero->_pathType != kPathUser)  		return false;  	// if inventory showing, make it go away @@ -521,7 +521,7 @@ bool Route::startRoute(const go_t routeType, const int16 objId, int16 cx, int16  	bool foundFl = false;                           // TRUE if route found ok  	if ((foundFl = findRoute(cx, cy))) {            // Found a route?  		_routeIndex = _routeListIndex;              // Node index -		_vm->_hero->vx = _vm->_hero->vy = 0;        // Stop manual motion +		_vm->_hero->_vx = _vm->_hero->_vy = 0;      // Stop manual motion  	}  	return foundFl; diff --git a/engines/hugo/schedule.cpp b/engines/hugo/schedule.cpp index 896e8fa2ce..18e414420a 100644 --- a/engines/hugo/schedule.cpp +++ b/engines/hugo/schedule.cpp @@ -112,7 +112,7 @@ void Scheduler::insertActionList(const uint16 actIndex) {  uint32 Scheduler::getWinTicks() const {  	debugC(5, kDebugSchedule, "getWinTicks()"); -	return _vm->getGameStatus().tick; +	return _vm->getGameStatus()._tick;  }  /** @@ -656,32 +656,32 @@ void Scheduler::screenActions(const int screenNum) {  void Scheduler::processMaze(const int x1, const int x2, const int y1, const int y2) {  	debugC(1, kDebugSchedule, "processMaze"); -	if (x1 < _vm->_maze.x1) { +	if (x1 < _vm->_maze._x1) {  		// Exit west  		_actListArr[_alNewscrIndex][3].a8.screenIndex = *_vm->_screen_p - 1; -		_actListArr[_alNewscrIndex][0].a2.x = _vm->_maze.x2 - kShiftSize - (x2 - x1); -		_actListArr[_alNewscrIndex][0].a2.y = _vm->_hero->y; +		_actListArr[_alNewscrIndex][0].a2.x = _vm->_maze._x2 - kShiftSize - (x2 - x1); +		_actListArr[_alNewscrIndex][0].a2.y = _vm->_hero->_y;  		_vm->_route->resetRoute();  		insertActionList(_alNewscrIndex); -	} else if (x2 > _vm->_maze.x2) { +	} else if (x2 > _vm->_maze._x2) {  		// Exit east  		_actListArr[_alNewscrIndex][3].a8.screenIndex = *_vm->_screen_p + 1; -		_actListArr[_alNewscrIndex][0].a2.x = _vm->_maze.x1 + kShiftSize; -		_actListArr[_alNewscrIndex][0].a2.y = _vm->_hero->y; +		_actListArr[_alNewscrIndex][0].a2.x = _vm->_maze._x1 + kShiftSize; +		_actListArr[_alNewscrIndex][0].a2.y = _vm->_hero->_y;  		_vm->_route->resetRoute();  		insertActionList(_alNewscrIndex); -	} else if (y1 < _vm->_maze.y1 - kShiftSize) { +	} else if (y1 < _vm->_maze._y1 - kShiftSize) {  		// Exit north -		_actListArr[_alNewscrIndex][3].a8.screenIndex = *_vm->_screen_p - _vm->_maze.size; -		_actListArr[_alNewscrIndex][0].a2.x = _vm->_maze.x3; -		_actListArr[_alNewscrIndex][0].a2.y = _vm->_maze.y2 - kShiftSize - (y2 - y1); +		_actListArr[_alNewscrIndex][3].a8.screenIndex = *_vm->_screen_p - _vm->_maze._size; +		_actListArr[_alNewscrIndex][0].a2.x = _vm->_maze._x3; +		_actListArr[_alNewscrIndex][0].a2.y = _vm->_maze._y2 - kShiftSize - (y2 - y1);  		_vm->_route->resetRoute();  		insertActionList(_alNewscrIndex); -	} else if (y2 > _vm->_maze.y2 - kShiftSize / 2) { +	} else if (y2 > _vm->_maze._y2 - kShiftSize / 2) {  		// Exit south -		_actListArr[_alNewscrIndex][3].a8.screenIndex = *_vm->_screen_p + _vm->_maze.size; -		_actListArr[_alNewscrIndex][0].a2.x = _vm->_maze.x4; -		_actListArr[_alNewscrIndex][0].a2.y = _vm->_maze.y1 + kShiftSize; +		_actListArr[_alNewscrIndex][3].a8.screenIndex = *_vm->_screen_p + _vm->_maze._size; +		_actListArr[_alNewscrIndex][0].a2.x = _vm->_maze._x4; +		_actListArr[_alNewscrIndex][0].a2.y = _vm->_maze._y1 + kShiftSize;  		_vm->_route->resetRoute();  		insertActionList(_alNewscrIndex);  	} @@ -1144,7 +1144,7 @@ void Scheduler::insertAction(act *action) {  		break;  	// Workaround: When dying, switch to storyMode in order to block the keyboard.  	case GAMEOVER: -		_vm->getGameStatus().storyModeFl = true; +		_vm->getGameStatus()._storyModeFl = true;  	// No break on purpose  	default:  		curEvent->localActionFl = true;             // Rest are for current screen only @@ -1205,12 +1205,12 @@ event_t *Scheduler::doAction(event_t *curEvent) {  		insertActionList(action->a0.actIndex);  		break;  	case START_OBJ:                                 // act1: Start an object cycling -		_vm->_object->_objects[action->a1.objIndex].cycleNumb = action->a1.cycleNumb; -		_vm->_object->_objects[action->a1.objIndex].cycling = action->a1.cycle; +		_vm->_object->_objects[action->a1.objIndex]._cycleNumb = action->a1.cycleNumb; +		_vm->_object->_objects[action->a1.objIndex]._cycling = action->a1.cycle;  		break;  	case INIT_OBJXY:                                // act2: Initialize an object -		_vm->_object->_objects[action->a2.objIndex].x = action->a2.x;          // Coordinates -		_vm->_object->_objects[action->a2.objIndex].y = action->a2.y; +		_vm->_object->_objects[action->a2.objIndex]._x = action->a2.x;          // Coordinates +		_vm->_object->_objects[action->a2.objIndex]._y = action->a2.y;  		break;  	case PROMPT:                                    // act3: Prompt user for key phrase  		promptAction(action); @@ -1225,21 +1225,21 @@ event_t *Scheduler::doAction(event_t *curEvent) {  		_vm->_object->setCarry(action->a6.objIndex, action->a6.carriedFl);  // carried status  		break;  	case INIT_HF_COORD:                             // act7: Initialize an object to hero's "feet" coords -		_vm->_object->_objects[action->a7.objIndex].x = _vm->_hero->x - 1; -		_vm->_object->_objects[action->a7.objIndex].y = _vm->_hero->y + _vm->_hero->currImagePtr->y2 - 1; -		_vm->_object->_objects[action->a7.objIndex].screenIndex = *_vm->_screen_p;  // Don't forget screen! +		_vm->_object->_objects[action->a7.objIndex]._x = _vm->_hero->_x - 1; +		_vm->_object->_objects[action->a7.objIndex]._y = _vm->_hero->_y + _vm->_hero->_currImagePtr->_y2 - 1; +		_vm->_object->_objects[action->a7.objIndex]._screenIndex = *_vm->_screen_p;  // Don't forget screen!  		break;  	case NEW_SCREEN:                                // act8: Start new screen  		newScreen(action->a8.screenIndex);  		break;  	case INIT_OBJSTATE:                             // act9: Initialize an object state -		_vm->_object->_objects[action->a9.objIndex].state = action->a9.newState; +		_vm->_object->_objects[action->a9.objIndex]._state = action->a9.newState;  		break;  	case INIT_PATH:                                 // act10: Initialize an object path and velocity  		_vm->_object->setPath(action->a10.objIndex, (path_t) action->a10.newPathType, action->a10.vxPath, action->a10.vyPath);  		break;  	case COND_R:                                    // act11: action lists conditional on object state -		if (_vm->_object->_objects[action->a11.objIndex].state == action->a11.stateReq) +		if (_vm->_object->_objects[action->a11.objIndex]._state == action->a11.stateReq)  			insertActionList(action->a11.actPassIndex);  		else  			insertActionList(action->a11.actFailIndex); @@ -1251,7 +1251,7 @@ event_t *Scheduler::doAction(event_t *curEvent) {  		_vm->_object->swapImages(action->a13.objIndex1, action->a13.objIndex2);  		break;  	case COND_SCR:                                  // act14: Conditional on current screen -		if (_vm->_object->_objects[action->a14.objIndex].screenIndex == action->a14.screenReq) +		if (_vm->_object->_objects[action->a14.objIndex]._screenIndex == action->a14.screenReq)  			insertActionList(action->a14.actPassIndex);  		else  			insertActionList(action->a14.actFailIndex); @@ -1262,16 +1262,16 @@ event_t *Scheduler::doAction(event_t *curEvent) {  	case INIT_OBJ_SEQ:                              // act16: Set sequence number to use  		// Note: Don't set a sequence at time 0 of a new screen, it causes  		// problems clearing the boundary bits of the object!  t>0 is safe -		_vm->_object->_objects[action->a16.objIndex].currImagePtr = _vm->_object->_objects[action->a16.objIndex].seqList[action->a16.seqIndex].seqPtr; +		_vm->_object->_objects[action->a16.objIndex]._currImagePtr = _vm->_object->_objects[action->a16.objIndex]._seqList[action->a16.seqIndex]._seqPtr;  		break;  	case SET_STATE_BITS:                            // act17: OR mask with curr obj state -		_vm->_object->_objects[action->a17.objIndex].state |= action->a17.stateMask; +		_vm->_object->_objects[action->a17.objIndex]._state |= action->a17.stateMask;  		break;  	case CLEAR_STATE_BITS:                          // act18: AND ~mask with curr obj state -		_vm->_object->_objects[action->a18.objIndex].state &= ~action->a18.stateMask; +		_vm->_object->_objects[action->a18.objIndex]._state &= ~action->a18.stateMask;  		break;  	case TEST_STATE_BITS:                           // act19: If all bits set, do apass else afail -		if ((_vm->_object->_objects[action->a19.objIndex].state & action->a19.stateMask) == action->a19.stateMask) +		if ((_vm->_object->_objects[action->a19.objIndex]._state & action->a19.stateMask) == action->a19.stateMask)  			insertActionList(action->a19.actPassIndex);  		else  			insertActionList(action->a19.actFailIndex); @@ -1282,12 +1282,12 @@ event_t *Scheduler::doAction(event_t *curEvent) {  	case GAMEOVER:                                  // act21: Game over!  		// NOTE: Must wait at least 1 tick before issuing this action if  		// any objects are to be made invisible! -		gameStatus.gameOverFl = true; +		gameStatus._gameOverFl = true;  		break;  	case INIT_HH_COORD:                             // act22: Initialize an object to hero's actual coords -		_vm->_object->_objects[action->a22.objIndex].x = _vm->_hero->x; -		_vm->_object->_objects[action->a22.objIndex].y = _vm->_hero->y; -		_vm->_object->_objects[action->a22.objIndex].screenIndex = *_vm->_screen_p;// Don't forget screen! +		_vm->_object->_objects[action->a22.objIndex]._x = _vm->_hero->_x; +		_vm->_object->_objects[action->a22.objIndex]._y = _vm->_hero->_y; +		_vm->_object->_objects[action->a22.objIndex]._screenIndex = *_vm->_screen_p;// Don't forget screen!  		break;  	case EXIT:                                      // act23: Exit game back to DOS  		_vm->endGame(); @@ -1297,8 +1297,8 @@ event_t *Scheduler::doAction(event_t *curEvent) {  		break;  	case COND_BOX:                                  // act25: Conditional on bounding box  		obj1 = &_vm->_object->_objects[action->a25.objIndex]; -		dx = obj1->x + obj1->currImagePtr->x1; -		dy = obj1->y + obj1->currImagePtr->y2; +		dx = obj1->_x + obj1->_currImagePtr->_x1; +		dy = obj1->_y + obj1->_currImagePtr->_y2;  		if ((dx >= action->a25.x1) && (dx <= action->a25.x2) &&  		        (dy >= action->a25.y1) && (dy <= action->a25.y2))  			insertActionList(action->a25.actPassIndex); @@ -1312,10 +1312,10 @@ event_t *Scheduler::doAction(event_t *curEvent) {  			_vm->_sound->playSound(action->a26.soundIndex, kSoundPriorityMedium);  		break;  	case ADD_SCORE:                                 // act27: Add object's value to score -		_vm->adjustScore(_vm->_object->_objects[action->a27.objIndex].objValue); +		_vm->adjustScore(_vm->_object->_objects[action->a27.objIndex]._objValue);  		break;  	case SUB_SCORE:                                 // act28: Subtract object's value from score -		_vm->adjustScore(-_vm->_object->_objects[action->a28.objIndex].objValue); +		_vm->adjustScore(-_vm->_object->_objects[action->a28.objIndex]._objValue);  		break;  	case COND_CARRY:                                // act29: Conditional on object being carried  		if (_vm->_object->isCarried(action->a29.objIndex)) @@ -1324,24 +1324,24 @@ event_t *Scheduler::doAction(event_t *curEvent) {  			insertActionList(action->a29.actFailIndex);  		break;  	case INIT_MAZE:                                 // act30: Enable and init maze structure -		_vm->_maze.enabledFl = true; -		_vm->_maze.size = action->a30.mazeSize; -		_vm->_maze.x1 = action->a30.x1; -		_vm->_maze.y1 = action->a30.y1; -		_vm->_maze.x2 = action->a30.x2; -		_vm->_maze.y2 = action->a30.y2; -		_vm->_maze.x3 = action->a30.x3; -		_vm->_maze.x4 = action->a30.x4; -		_vm->_maze.firstScreenIndex = action->a30.firstScreenIndex; +		_vm->_maze._enabledFl = true; +		_vm->_maze._size = action->a30.mazeSize; +		_vm->_maze._x1 = action->a30.x1; +		_vm->_maze._y1 = action->a30.y1; +		_vm->_maze._x2 = action->a30.x2; +		_vm->_maze._y2 = action->a30.y2; +		_vm->_maze._x3 = action->a30.x3; +		_vm->_maze._x4 = action->a30.x4; +		_vm->_maze._firstScreenIndex = action->a30.firstScreenIndex;  		break;  	case EXIT_MAZE:                                 // act31: Disable maze mode -		_vm->_maze.enabledFl = false; +		_vm->_maze._enabledFl = false;  		break;  	case INIT_PRIORITY: -		_vm->_object->_objects[action->a32.objIndex].priority = action->a32.priority; +		_vm->_object->_objects[action->a32.objIndex]._priority = action->a32.priority;  		break;  	case INIT_SCREEN: -		_vm->_object->_objects[action->a33.objIndex].screenIndex = action->a33.screenIndex; +		_vm->_object->_objects[action->a33.objIndex]._screenIndex = action->a33.screenIndex;  		break;  	case AGSCHEDULE:                                // act34: Schedule a (global) action list  		insertActionList(action->a34.actIndex); @@ -1359,15 +1359,15 @@ event_t *Scheduler::doAction(event_t *curEvent) {  		_vm->_screenStates[action->a37.screenIndex] = action->a37.newState;  		break;  	case INIT_LIPS:                                 // act38: Position lips on object -		_vm->_object->_objects[action->a38.lipsObjIndex].x = _vm->_object->_objects[action->a38.objIndex].x + action->a38.dxLips; -		_vm->_object->_objects[action->a38.lipsObjIndex].y = _vm->_object->_objects[action->a38.objIndex].y + action->a38.dyLips; -		_vm->_object->_objects[action->a38.lipsObjIndex].screenIndex = *_vm->_screen_p; // Don't forget screen! -		_vm->_object->_objects[action->a38.lipsObjIndex].cycling = kCycleForward; +		_vm->_object->_objects[action->a38.lipsObjIndex]._x = _vm->_object->_objects[action->a38.objIndex]._x + action->a38.dxLips; +		_vm->_object->_objects[action->a38.lipsObjIndex]._y = _vm->_object->_objects[action->a38.objIndex]._y + action->a38.dyLips; +		_vm->_object->_objects[action->a38.lipsObjIndex]._screenIndex = *_vm->_screen_p; // Don't forget screen! +		_vm->_object->_objects[action->a38.lipsObjIndex]._cycling = kCycleForward;  		break;  	case INIT_STORY_MODE:                           // act39: Init story_mode flag  		// This is similar to the QUIET path mode, except that it is  		// independant of it and it additionally disables the ">" prompt -		gameStatus.storyModeFl = action->a39.storyModeFl; +		gameStatus._storyModeFl = action->a39.storyModeFl;  		break;  	case WARN:                                      // act40: Text box (CF TEXT)  		Utils::notifyBox(_vm->_file->fetchString(action->a40.stringIndex)); @@ -1379,7 +1379,7 @@ event_t *Scheduler::doAction(event_t *curEvent) {  			insertActionList(action->a41.actFailIndex);  		break;  	case TEXT_TAKE:                                 // act42: Text box with "take" message -		Utils::notifyBox(Common::String::format(TAKE_TEXT, _vm->_text->getNoun(_vm->_object->_objects[action->a42.objIndex].nounIndex, TAKE_NAME))); +		Utils::notifyBox(Common::String::format(TAKE_TEXT, _vm->_text->getNoun(_vm->_object->_objects[action->a42.objIndex]._nounIndex, TAKE_NAME)));  		break;  	case YESNO:                                     // act43: Prompt user for Yes or No  		if (Utils::yesNoBox(_vm->_file->fetchString(action->a43.promptIndex))) @@ -1403,16 +1403,16 @@ event_t *Scheduler::doAction(event_t *curEvent) {  		_vm->_mouse->setJumpExitFl(action->a46.jumpExitFl);  		break;  	case INIT_VIEW:                                 // act47: Init object.viewx, viewy, dir -		_vm->_object->_objects[action->a47.objIndex].viewx = action->a47.viewx; -		_vm->_object->_objects[action->a47.objIndex].viewy = action->a47.viewy; -		_vm->_object->_objects[action->a47.objIndex].direction = action->a47.direction; +		_vm->_object->_objects[action->a47.objIndex]._viewx = action->a47.viewx; +		_vm->_object->_objects[action->a47.objIndex]._viewy = action->a47.viewy; +		_vm->_object->_objects[action->a47.objIndex]._direction = action->a47.direction;  		break;  	case INIT_OBJ_FRAME:                            // act48: Set seq,frame number to use  		// Note: Don't set a sequence at time 0 of a new screen, it causes  		// problems clearing the boundary bits of the object!  t>0 is safe -		_vm->_object->_objects[action->a48.objIndex].currImagePtr = _vm->_object->_objects[action->a48.objIndex].seqList[action->a48.seqIndex].seqPtr; +		_vm->_object->_objects[action->a48.objIndex]._currImagePtr = _vm->_object->_objects[action->a48.objIndex]._seqList[action->a48.seqIndex]._seqPtr;  		for (dx = 0; dx < action->a48.frameIndex; dx++) -			_vm->_object->_objects[action->a48.objIndex].currImagePtr = _vm->_object->_objects[action->a48.objIndex].currImagePtr->nextSeqPtr; +			_vm->_object->_objects[action->a48.objIndex]._currImagePtr = _vm->_object->_objects[action->a48.objIndex]._currImagePtr->_nextSeqPtr;  		break;  	case OLD_SONG:  		// Replaces ACT26 for DOS games. @@ -1644,6 +1644,6 @@ void Scheduler_v1w::runScheduler() {  	while (curEvent && (curEvent->time <= ticker))  // While mature events found  		curEvent = doAction(curEvent);              // Perform the action (returns next_p) -	_vm->getGameStatus().tick++;                    // Accessed elsewhere via getTicks() +	_vm->getGameStatus()._tick++;                    // Accessed elsewhere via getTicks()  }  } // End of namespace Hugo diff --git a/engines/hugo/sound.cpp b/engines/hugo/sound.cpp index d0b4e3dfe8..eed4164d5e 100644 --- a/engines/hugo/sound.cpp +++ b/engines/hugo/sound.cpp @@ -186,7 +186,7 @@ void SoundHandler::playMusic(int16 tune) {  	uint16 size;                                    // Size of sequence data  	if (_vm->_config.musicFl) { -		_vm->getGameStatus().song = tune; +		_vm->getGameStatus()._song = tune;  		seqPtr = _vm->_file->getSound(tune, &size);  		playMIDI(seqPtr, size);  		free(seqPtr); @@ -245,7 +245,7 @@ void SoundHandler::checkMusic() {  		return;  	for (int i = 0; _vm->_defltTunes[i] != -1; i++) { -		if (_vm->_defltTunes[i] == _vm->getGameStatus().song) { +		if (_vm->_defltTunes[i] == _vm->getGameStatus()._song) {  			if (_vm->_defltTunes[i + 1] != -1)  				playMusic(_vm->_defltTunes[i + 1]);  			else | 
