diff options
| author | Paul Gilbert | 2016-09-21 07:26:24 -0400 | 
|---|---|---|
| committer | Paul Gilbert | 2016-09-21 07:26:24 -0400 | 
| commit | 2e4fc11320b90db0485a937ec14b3464f3195e0a (patch) | |
| tree | 9590126c8a443ff25864cc4403632c36139c7b69 | |
| parent | 41fea11ce68d21f900f39e65c35f766f2d7a5509 (diff) | |
| download | scummvm-rg350-2e4fc11320b90db0485a937ec14b3464f3195e0a.tar.gz scummvm-rg350-2e4fc11320b90db0485a937ec14b3464f3195e0a.tar.bz2 scummvm-rg350-2e4fc11320b90db0485a937ec14b3464f3195e0a.zip | |
XEEN: Refactored doScroll to have it available to cutscenes
26 files changed, 159 insertions, 195 deletions
| diff --git a/engines/xeen/worldofxeen/cutscenes.cpp b/engines/xeen/cutscenes.cpp index 971070487f..230d574d86 100644 --- a/engines/xeen/worldofxeen/cutscenes.cpp +++ b/engines/xeen/cutscenes.cpp @@ -20,7 +20,7 @@   *   */ -#include "xeen/worldofxeen/cutscenes.h" +#include "xeen/cutscenes.h"  #include "xeen/xeen.h"  namespace Xeen { @@ -103,4 +103,98 @@ uint Cutscenes::getSpeakingFrame(uint minFrame, uint maxFrame) {  	return minFrame + interval % (maxFrame + 1 - minFrame);  } +void Cutscenes::doScroll(bool drawFlag, bool doFade) { +	Screen &screen = *_vm->_screen; +	EventsManager &events = *_vm->_events; + +	if (_vm->getGameID() != GType_Clouds) { +		if (doFade) { +			screen.fadeIn(2); +		} +		return; +	} + +	const int SCROLL_L[8] = { 29, 23, 15, 251, 245, 233, 207, 185 }; +	const int SCROLL_R[8] = { 165, 171, 198, 218, 228, 245, 264, 281 }; + +	screen.saveBackground(); + +	// Load hand vga files +	SpriteResource *hand[16]; +	for (int i = 0; i < 16; ++i) { +		Common::String name = Common::String::format("hand%02d.vga", i); +		hand[i] = new SpriteResource(name); +	} + +	// Load marb vga files +	SpriteResource *marb[5]; +	for (int i = 1; i < 5; ++i) { +		Common::String name = Common::String::format("marb%02d.vga", i); +		marb[i] = new SpriteResource(name); +	} + +	if (drawFlag) { +		for (int i = 22; i > 0; --i) { +			events.updateGameCounter(); +			screen.restoreBackground(); + +			if (i > 0 && i <= 14) { +				hand[i - 1]->draw(screen, 0); +			} else { +				hand[14]->draw(screen, 0, Common::Point(SCROLL_L[i - 14], 0), SPRFLAG_800); +				marb[15]->draw(screen, 0, Common::Point(SCROLL_R[i - 14], 0), SPRFLAG_800); +			} + +			if (i <= 20) { +				marb[i / 5]->draw(screen, i % 5); +			} + +			while (!_vm->shouldQuit() && events.timeElapsed() == 0) +				events.pollEventsAndWait(); + +			screen._windows[0].update(); +			if (i == 0 && doFade) +				screen.fadeIn(2); +		} +	} else { +		for (int i = 0; i < 22 && !events.isKeyMousePressed(); ++i) { +			events.updateGameCounter(); +			screen.restoreBackground(); + +			if (i < 14) { +				hand[i]->draw(screen, 0); +			} else { +				hand[14]->draw(screen, 0, Common::Point(SCROLL_L[i - 7], 0), SPRFLAG_800); +				marb[15]->draw(screen, 0, Common::Point(SCROLL_R[i - 7], 0), SPRFLAG_800); +			} + +			if (i < 20) { +				marb[i / 5]->draw(screen, i % 5); +			} + +			while (!_vm->shouldQuit() && events.timeElapsed() == 0) +				events.pollEventsAndWait(); + +			screen._windows[0].update(); +			if (i == 0 && doFade) +				screen.fadeIn(2); +		} +	} + +	if (drawFlag) { +		hand[0]->draw(screen, 0); +		marb[0]->draw(screen, 0); +	} else { +		screen.restoreBackground(); +	} + +	screen._windows[0].update(); + +	// Free resources +	for (int i = 1; i < 5; ++i) +		delete marb[i]; +	for (int i = 0; i < 16; ++i) +		delete hand[i]; +} +  } // End of namespace Xeen diff --git a/engines/xeen/worldofxeen/cutscenes.h b/engines/xeen/cutscenes.h index f4cb18e9c2..ba90f03426 100644 --- a/engines/xeen/worldofxeen/cutscenes.h +++ b/engines/xeen/cutscenes.h @@ -20,8 +20,8 @@   *   */ -#ifndef XEEN_WORLDOFXEEN_CUTSCENES_H -#define XEEN_WORLDOFXEEN_CUTSCENES_H +#ifndef XEEN_CUTSCENES_H +#define XEEN_CUTSCENES_H  #include "xeen/files.h"  #include "xeen/sprites.h" @@ -81,8 +81,13 @@ protected:  	 * Get a speaking frame from a range  	 */  	uint getSpeakingFrame(uint minFrame, uint maxFrame); + +	/** +	 * Draws the scroll in the background +	 */ +	virtual void doScroll(bool drawFlag, bool doFade);  };  } // End of namespace Xeen -#endif /* XEEN_WORLDOFXEEN_CUTSCENES_H */ +#endif /* XEEN_CUTSCENES_H */ diff --git a/engines/xeen/dialogs.cpp b/engines/xeen/dialogs.cpp index 4ecd1c775c..02546adabd 100644 --- a/engines/xeen/dialogs.cpp +++ b/engines/xeen/dialogs.cpp @@ -97,107 +97,6 @@ bool ButtonContainer::checkEvents(XeenEngine *vm) {  	return false;  } -void ButtonContainer::doScroll(XeenEngine *vm, bool drawFlag, bool doFade) { -	Screen &screen = *vm->_screen; -	EventsManager &events = *vm->_events; - -	if (vm->getGameID() != GType_Clouds) { -		if (doFade) { -			screen.fadeIn(2); -		} -		return; -	} - -	const int SCROLL_L[8] = { 29, 23, 15, 251, 245, 233, 207, 185 }; -	const int SCROLL_R[8] = { 165, 171, 198, 218, 228, 245, 264, 281 }; - -	saveButtons(); -	clearButtons(); -	screen.saveBackground(); - -	// Load hand vga files -	SpriteResource *hand[16]; -	for (int i = 0; i < 16; ++i) { -		Common::String name = Common::String::format("hand%02d.vga", i); -		hand[i] = new SpriteResource(name); -	} - -	// Load marb vga files -	SpriteResource *marb[5]; -	for (int i = 1; i < 5; ++i) { -		Common::String name = Common::String::format("marb%02d.vga", i); -		marb[i] = new SpriteResource(name); -	} - -	if (drawFlag) { -		for (int i = 22; i > 0; --i) { -			events.updateGameCounter(); -			screen.restoreBackground(); - -			if (i > 0 && i <= 14) { -				hand[i - 1]->draw(screen, 0); -			} -			else { -				// TODO: Check '800h'.. horizontal reverse maybe? -				hand[14]->draw(screen, 0, Common::Point(SCROLL_L[i - 14], 0)); -				marb[15]->draw(screen, 0, Common::Point(SCROLL_R[i - 14], 0)); -			} - -			if (i <= 20) { -				marb[i / 5]->draw(screen, i % 5); -			} - -			while (!vm->shouldQuit() && events.timeElapsed() == 0) -				events.pollEventsAndWait(); - -			screen._windows[0].update(); -			if (i == 0 && doFade) -				screen.fadeIn(2); -		} -	} else { -		for (int i = 0; i < 22 && !events.isKeyMousePressed(); ++i) { -			events.updateGameCounter(); -			screen.restoreBackground(); - -			if (i < 14) { -				hand[i]->draw(screen, 0); -			} else { -				// TODO: Check '800h'.. horizontal reverse maybe? -				hand[14]->draw(screen, 0, Common::Point(SCROLL_L[i - 7], 0)); -				marb[15]->draw(screen, 0, Common::Point(SCROLL_R[i - 7], 0)); -			} - -			if (i < 20) { -				marb[i / 5]->draw(screen, i % 5); -			} - -			while (!vm->shouldQuit() && events.timeElapsed() == 0) -				events.pollEventsAndWait(); - -			screen._windows[0].update(); -			if (i == 0 && doFade) -				screen.fadeIn(2); -		} -	} - -	if (drawFlag) { -		hand[0]->draw(screen, 0); -		marb[0]->draw(screen, 0); -	} -	else { -		screen.restoreBackground(); -	} - -	screen._windows[0].update(); -	restoreButtons(); - -	// Free resources -	for (int i = 1; i < 5; ++i) -		delete marb[i]; -	for (int i = 0; i < 16; ++i) -		delete hand[i]; -} -  void ButtonContainer::drawButtons(XSurface *surface) {  	for (uint btnIndex = 0; btnIndex < _buttons.size(); ++btnIndex) {  		UIButton &btn = _buttons[btnIndex]; @@ -208,6 +107,17 @@ void ButtonContainer::drawButtons(XSurface *surface) {  	}  } +void ButtonContainer::doScroll(bool drawFlag, bool doFade) { +	if (_vm->getGameID() == GType_Clouds) { +		saveButtons(); +		clearButtons(); +		Cutscenes::doScroll(drawFlag, doFade); +		restoreButtons(); +	} else { +		Cutscenes::doScroll(drawFlag, doFade); +	} +} +  /*------------------------------------------------------------------------*/  void SettingsBaseDialog::showContents(SpriteResource &title1, bool waitFlag) { @@ -228,12 +138,12 @@ void CreditsScreen::execute() {  	EventsManager &events = *_vm->_events;  	// Handle drawing the credits screen -	doScroll(_vm, true, false); +	doScroll(true, false);  	screen._windows[GAME_WINDOW].close();  	screen.loadBackground("marb.raw");  	screen._windows[0].writeString(CREDITS); -	doScroll(_vm, false, false); +	doScroll(false, false);  	events.setCursor(0);  	screen._windows[0].update(); @@ -243,7 +153,7 @@ void CreditsScreen::execute() {  	while (!events.isKeyMousePressed())  		events.pollEventsAndWait(); -	doScroll(_vm, true, false); +	doScroll(true, false);  }  /*------------------------------------------------------------------------*/ diff --git a/engines/xeen/dialogs.h b/engines/xeen/dialogs.h index 51eafa5f54..93e9a86685 100644 --- a/engines/xeen/dialogs.h +++ b/engines/xeen/dialogs.h @@ -26,6 +26,7 @@  #include "common/array.h"  #include "common/stack.h"  #include "common/rect.h" +#include "xeen/cutscenes.h"  #include "xeen/sprites.h"  #include "xeen/xsurface.h" @@ -46,21 +47,21 @@ public:  	UIButton() : _value(0), _sprites(nullptr), _draw(false) {}  }; -class ButtonContainer { +class ButtonContainer : public Cutscenes {  private:  	Common::Stack< Common::Array<UIButton> > _savedButtons;  protected:  	Common::Array<UIButton> _buttons;  	int _buttonValue; +	bool checkEvents(XeenEngine *vm); +  	/**  	 * Draws the scroll in the background  	 */ -	void doScroll(XeenEngine *vm, bool drawFlag, bool doFade); - -	bool checkEvents(XeenEngine *vm); +	virtual void doScroll(bool drawFlag, bool doFade);  public: -	ButtonContainer() : _buttonValue(0) {} +	ButtonContainer(XeenEngine *vm) : Cutscenes(vm), _buttonValue(0) {}  	/**  	 * Saves the current list of buttons @@ -85,20 +86,16 @@ public:  class SettingsBaseDialog : public ButtonContainer {  protected: -	XeenEngine *_vm; -  	virtual void showContents(SpriteResource &title1, bool mode);  public: -	SettingsBaseDialog(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	SettingsBaseDialog(XeenEngine *vm) : ButtonContainer(vm) {}  	virtual ~SettingsBaseDialog() {}  };  class CreditsScreen: public ButtonContainer {  private: -	XeenEngine *_vm; - -	CreditsScreen(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	CreditsScreen(XeenEngine *vm) : ButtonContainer(vm) {}  	void execute();  public: diff --git a/engines/xeen/dialogs_automap.h b/engines/xeen/dialogs_automap.h index f20f9b0104..239a73a932 100644 --- a/engines/xeen/dialogs_automap.h +++ b/engines/xeen/dialogs_automap.h @@ -31,9 +31,7 @@ class XeenEngine;  class AutoMapDialog: public ButtonContainer {  private: -	XeenEngine *_vm; - -	AutoMapDialog(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	AutoMapDialog(XeenEngine *vm) : ButtonContainer(vm) {}  	void execute();  public: diff --git a/engines/xeen/dialogs_char_info.h b/engines/xeen/dialogs_char_info.h index 90b35a9f6b..cddd4ec89c 100644 --- a/engines/xeen/dialogs_char_info.h +++ b/engines/xeen/dialogs_char_info.h @@ -31,12 +31,11 @@ namespace Xeen {  class CharacterInfo : public ButtonContainer {  private: -	XeenEngine *_vm;  	SpriteResource _iconSprites;  	DrawStruct _drawList[24];  	int _cursorCell; -	CharacterInfo(XeenEngine *vm) : ButtonContainer(), _vm(vm), _cursorCell(0) {} +	CharacterInfo(XeenEngine *vm) : ButtonContainer(vm), _cursorCell(0) {}  	void execute(int charIndex); diff --git a/engines/xeen/dialogs_control_panel.h b/engines/xeen/dialogs_control_panel.h index 16c3781789..ef86acf245 100644 --- a/engines/xeen/dialogs_control_panel.h +++ b/engines/xeen/dialogs_control_panel.h @@ -29,9 +29,7 @@ namespace Xeen {  class ControlPanel : public ButtonContainer {  private: -	XeenEngine *_vm; - -	ControlPanel(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	ControlPanel(XeenEngine *vm) : ButtonContainer(vm) {}  	int execute();  public: diff --git a/engines/xeen/dialogs_dismiss.h b/engines/xeen/dialogs_dismiss.h index ec40e87f7c..7b73fc6f03 100644 --- a/engines/xeen/dialogs_dismiss.h +++ b/engines/xeen/dialogs_dismiss.h @@ -30,10 +30,9 @@ namespace Xeen {  class Dismiss : public ButtonContainer {  private: -	XeenEngine *_vm;  	SpriteResource _iconSprites; -	Dismiss(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	Dismiss(XeenEngine *vm) : ButtonContainer(vm) {}  	void execute(); diff --git a/engines/xeen/dialogs_error.h b/engines/xeen/dialogs_error.h index 46efdb1683..56e30bc9de 100644 --- a/engines/xeen/dialogs_error.h +++ b/engines/xeen/dialogs_error.h @@ -33,9 +33,7 @@ enum ErrorWaitType { WT_FREEZE_WAIT = 0, WT_NONFREEZED_WAIT = 1,  class ErrorDialog : public ButtonContainer {  private: -	XeenEngine *_vm; - -	ErrorDialog(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	ErrorDialog(XeenEngine *vm) : ButtonContainer(vm) {}  	void execute(const Common::String &msg, ErrorWaitType waitType);  public: @@ -51,9 +49,7 @@ public:  class CantCast: public ButtonContainer {  private: -	XeenEngine *_vm; - -	CantCast(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	CantCast(XeenEngine *vm) : ButtonContainer(vm) {}  	void execute(int spellId, int componentNum);  public: diff --git a/engines/xeen/dialogs_exchange.h b/engines/xeen/dialogs_exchange.h index e8c4a2dfb1..e67c315133 100644 --- a/engines/xeen/dialogs_exchange.h +++ b/engines/xeen/dialogs_exchange.h @@ -30,10 +30,9 @@ namespace Xeen {  class ExchangeDialog : public ButtonContainer {  private: -	XeenEngine *_vm;  	SpriteResource _iconSprites; -	ExchangeDialog(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	ExchangeDialog(XeenEngine *vm) : ButtonContainer(vm) {}  	void execute(Character *&c, int &charIndex); diff --git a/engines/xeen/dialogs_fight_options.h b/engines/xeen/dialogs_fight_options.h index 7b058bc6e9..823a716790 100644 --- a/engines/xeen/dialogs_fight_options.h +++ b/engines/xeen/dialogs_fight_options.h @@ -29,9 +29,7 @@ namespace Xeen {  class FightOptions : public ButtonContainer {  private: -	XeenEngine *_vm; - -	FightOptions(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	FightOptions(XeenEngine *vm) : ButtonContainer(vm) {}  	void execute();  public: diff --git a/engines/xeen/dialogs_info.h b/engines/xeen/dialogs_info.h index 66b915788b..68c8403545 100644 --- a/engines/xeen/dialogs_info.h +++ b/engines/xeen/dialogs_info.h @@ -30,10 +30,9 @@ namespace Xeen {  class InfoDialog : public ButtonContainer {  private: -	XeenEngine *_vm;  	Common::StringArray _lines; -	InfoDialog(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	InfoDialog(XeenEngine *vm) : ButtonContainer(vm) {}  	void execute(); diff --git a/engines/xeen/dialogs_input.h b/engines/xeen/dialogs_input.h index e824d17f57..ce159c77a3 100644 --- a/engines/xeen/dialogs_input.h +++ b/engines/xeen/dialogs_input.h @@ -36,7 +36,6 @@ private:  	 */  	Common::KeyCode doCursor(const Common::String &msg);  protected: -	XeenEngine *_vm;  	Window *_window;  	/** @@ -44,7 +43,7 @@ protected:  	 */  	int getString(Common::String &line, uint maxLen, int maxWidth, bool isNumeric); -	Input(XeenEngine *vm, Window *window) : _vm(vm), _window(window) {} +	Input(XeenEngine *vm, Window *window) : ButtonContainer(vm), _window(window) {}  public:  	static int show(XeenEngine *vm, Window *window, Common::String &line,   		uint maxLen, int maxWidth, bool isNumeric = false); @@ -72,10 +71,9 @@ public:  class Choose123 : public ButtonContainer {  private: -	XeenEngine *_vm;  	SpriteResource _iconSprites; -	Choose123(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	Choose123(XeenEngine *vm) : ButtonContainer(vm) {}  	int execute(int numOptions); diff --git a/engines/xeen/dialogs_items.h b/engines/xeen/dialogs_items.h index 6069ca823b..c161b0721b 100644 --- a/engines/xeen/dialogs_items.h +++ b/engines/xeen/dialogs_items.h @@ -37,15 +37,13 @@ enum ItemsMode {  class ItemsDialog : public ButtonContainer {  private: -	XeenEngine *_vm;  	SpriteResource _iconSprites;  	SpriteResource _equipSprites;  	Character _itemsCharacter;  	Character *_oldCharacter;  	DrawStruct _itemsDrawList[INV_ITEMS_TOTAL]; -	ItemsDialog(XeenEngine *vm) : ButtonContainer(),  -		_vm(vm), _oldCharacter(nullptr) {} +	ItemsDialog(XeenEngine *vm) : ButtonContainer(vm), _oldCharacter(nullptr) {}  	Character *execute(Character *c, ItemsMode mode); diff --git a/engines/xeen/dialogs_party.cpp b/engines/xeen/dialogs_party.cpp index ced778f714..a297ed56fe 100644 --- a/engines/xeen/dialogs_party.cpp +++ b/engines/xeen/dialogs_party.cpp @@ -32,7 +32,7 @@  namespace Xeen { -PartyDialog::PartyDialog(XeenEngine *vm) : ButtonContainer(),  +PartyDialog::PartyDialog(XeenEngine *vm) : ButtonContainer(vm),   		PartyDrawer(vm), _vm(vm) {  	initDrawStructs();  } @@ -93,7 +93,7 @@ void PartyDialog::execute() {  				screen._windows[0].update();  			} -			doScroll(_vm, false, false); +			doScroll(false, false);  			events.setCursor(0);  			if (_vm->getGameID() == GType_DarkSide) { diff --git a/engines/xeen/dialogs_query.h b/engines/xeen/dialogs_query.h index 96ae488b97..0b9b2687ac 100644 --- a/engines/xeen/dialogs_query.h +++ b/engines/xeen/dialogs_query.h @@ -29,9 +29,7 @@ namespace Xeen {  class Confirm : public ButtonContainer {  private: -	XeenEngine *_vm; - -	Confirm(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	Confirm(XeenEngine *vm) : ButtonContainer(vm) {}  	bool execute(const Common::String &msg, int mode);  public: @@ -40,9 +38,7 @@ public:  class YesNo : public ButtonContainer {  private: -	XeenEngine *_vm; - -	YesNo(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	YesNo(XeenEngine *vm) : ButtonContainer(vm) {}  	bool execute(bool type, bool townFlag);  public: diff --git a/engines/xeen/dialogs_quests.h b/engines/xeen/dialogs_quests.h index 234accded6..dd1461f75b 100644 --- a/engines/xeen/dialogs_quests.h +++ b/engines/xeen/dialogs_quests.h @@ -30,11 +30,10 @@ namespace Xeen {  class Quests : public ButtonContainer {  private: -	XeenEngine *_vm;  	SpriteResource _iconSprites;  	Common::StringArray _questNotes; -	Quests(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	Quests(XeenEngine *vm) : ButtonContainer(vm) {}  	void execute(); diff --git a/engines/xeen/dialogs_quick_ref.h b/engines/xeen/dialogs_quick_ref.h index 0c1b8e3f91..eaafd99537 100644 --- a/engines/xeen/dialogs_quick_ref.h +++ b/engines/xeen/dialogs_quick_ref.h @@ -29,9 +29,7 @@ namespace Xeen {  class QuickReferenceDialog : public ButtonContainer {  private: -	XeenEngine *_vm; - -	QuickReferenceDialog(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	QuickReferenceDialog(XeenEngine *vm) : ButtonContainer(vm) {}  	void execute();  public: diff --git a/engines/xeen/dialogs_spells.h b/engines/xeen/dialogs_spells.h index 35b2708f7a..3ccdb836a3 100644 --- a/engines/xeen/dialogs_spells.h +++ b/engines/xeen/dialogs_spells.h @@ -41,12 +41,11 @@ struct SpellEntry {  class SpellsDialog : public ButtonContainer {  private: -	XeenEngine *_vm;  	SpriteResource _iconSprites;  	SpriteResource _scrollSprites;  	Common::Array<SpellEntry> _spells; -	SpellsDialog(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	SpellsDialog(XeenEngine *vm) : ButtonContainer(vm) {}  	Character *execute(ButtonContainer *priorDialog, Character *c, int isCasting); @@ -60,10 +59,9 @@ public:  class CastSpell : public ButtonContainer {  private: -	XeenEngine *_vm;  	SpriteResource _iconSprites; -	CastSpell(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	CastSpell(XeenEngine *vm) : ButtonContainer(vm) {}  	int execute(Character *&c); @@ -75,9 +73,7 @@ public:  class SpellOnWho : public ButtonContainer {  private: -	XeenEngine *_vm; - -	SpellOnWho(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	SpellOnWho(XeenEngine *vm) : ButtonContainer(vm) {}  	int execute(int spellId);  public: @@ -86,10 +82,9 @@ public:  class SelectElement : public ButtonContainer {  private: -	XeenEngine *_vm;  	SpriteResource _iconSprites; -	SelectElement(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	SelectElement(XeenEngine *vm) : ButtonContainer(vm) {}  	int execute(int spellId); @@ -100,9 +95,7 @@ public:  class NotWhileEngaged : public ButtonContainer {  private: -	XeenEngine *_vm; - -	NotWhileEngaged(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	NotWhileEngaged(XeenEngine *vm) : ButtonContainer(vm) {}  	void execute(int spellId);  public: @@ -111,10 +104,9 @@ public:  class LloydsBeacon : public ButtonContainer {  private: -	XeenEngine *_vm;  	SpriteResource _iconSprites; -	LloydsBeacon(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	LloydsBeacon(XeenEngine *vm) : ButtonContainer(vm) {}  	bool execute(); @@ -125,10 +117,9 @@ public:  class Teleport : public ButtonContainer {  private: -	XeenEngine *_vm;  	SpriteResource _iconSprites; -	Teleport(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	Teleport(XeenEngine *vm) : ButtonContainer(vm) {}  	int execute();  public: @@ -137,9 +128,7 @@ public:  class TownPortal : public ButtonContainer {  private: -	XeenEngine *_vm; - -	TownPortal(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	TownPortal(XeenEngine *vm) : ButtonContainer(vm) {}  	int execute();  public: @@ -148,9 +137,7 @@ public:  class IdentifyMonster : public ButtonContainer {  private: -	XeenEngine *_vm; - -	IdentifyMonster(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	IdentifyMonster(XeenEngine *vm) : ButtonContainer(vm) {}  	void execute();  public: diff --git a/engines/xeen/dialogs_whowill.h b/engines/xeen/dialogs_whowill.h index 8080c36ddb..8018cbb0ef 100644 --- a/engines/xeen/dialogs_whowill.h +++ b/engines/xeen/dialogs_whowill.h @@ -29,9 +29,7 @@ namespace Xeen {  class WhoWill : public ButtonContainer {  private: -	XeenEngine *_vm; - -	WhoWill(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	WhoWill(XeenEngine *vm) : ButtonContainer(vm) {}  	int execute(int message, int action, bool type);  public: diff --git a/engines/xeen/interface.cpp b/engines/xeen/interface.cpp index 6c09b05b60..8bf90984a4 100644 --- a/engines/xeen/interface.cpp +++ b/engines/xeen/interface.cpp @@ -130,7 +130,7 @@ void PartyDrawer::resetHighlight() {  }  /*------------------------------------------------------------------------*/ -Interface::Interface(XeenEngine *vm) : ButtonContainer(), InterfaceMap(vm),  +Interface::Interface(XeenEngine *vm) : ButtonContainer(vm), InterfaceMap(vm),   		PartyDrawer(vm), _vm(vm) {  	_buttonsLoaded = false;  	_intrIndex1 = 0; diff --git a/engines/xeen/module.mk b/engines/xeen/module.mk index 833b8cf1d2..968a30c23d 100644 --- a/engines/xeen/module.mk +++ b/engines/xeen/module.mk @@ -1,12 +1,12 @@  MODULE := engines/xeen  MODULE_OBJS := \ -	worldofxeen/cutscenes.o \  	worldofxeen/clouds_cutscenes.o \  	worldofxeen/darkside_cutscenes.o \  	worldofxeen/worldofxeen.o \  	character.o \  	combat.o \ +	cutscenes.o \  	debugger.o \  	detection.o \  	dialogs.o \ diff --git a/engines/xeen/town.cpp b/engines/xeen/town.cpp index 1947129c57..1fe0487ad2 100644 --- a/engines/xeen/town.cpp +++ b/engines/xeen/town.cpp @@ -30,7 +30,7 @@  namespace Xeen { -Town::Town(XeenEngine *vm) : _vm(vm) { +Town::Town(XeenEngine *vm) : ButtonContainer(vm) {  	Common::fill(&_arr1[0], &_arr1[6], 0);  	_townMaxId = 0;  	_townActionId = 0; diff --git a/engines/xeen/town.h b/engines/xeen/town.h index f56f24ca73..0767638f8a 100644 --- a/engines/xeen/town.h +++ b/engines/xeen/town.h @@ -37,7 +37,6 @@ class TownMessage;  class Town: public ButtonContainer {  	friend class TownMessage;  private: -	XeenEngine *_vm;  	SpriteResource _icons1, _icons2;  	Common::StringArray _textStrings;  	Common::Array<SpriteResource> _townSprites; @@ -114,10 +113,9 @@ public:  class TownMessage : public ButtonContainer {  private: -	XeenEngine *_vm;  	SpriteResource _iconSprites; -	TownMessage(XeenEngine *vm) : ButtonContainer(), _vm(vm) {} +	TownMessage(XeenEngine *vm) : ButtonContainer(vm) {}  	bool execute(int portrait, const Common::String &name,   		const Common::String &text, int confirm); diff --git a/engines/xeen/worldofxeen/clouds_cutscenes.h b/engines/xeen/worldofxeen/clouds_cutscenes.h index ff935a75fe..1440458c10 100644 --- a/engines/xeen/worldofxeen/clouds_cutscenes.h +++ b/engines/xeen/worldofxeen/clouds_cutscenes.h @@ -23,7 +23,7 @@  #ifndef XEEN_WORLDOFXEEN_CLOUDS_CUTSCENES_H  #define XEEN_WORLDOFXEEN_CLOUDS_CUTSCENES_H -#include "xeen/worldofxeen/cutscenes.h" +#include "xeen/cutscenes.h"  #include "xeen/xeen.h"  namespace Xeen { diff --git a/engines/xeen/worldofxeen/darkside_cutscenes.h b/engines/xeen/worldofxeen/darkside_cutscenes.h index cbd961069f..7c6a1bfb08 100644 --- a/engines/xeen/worldofxeen/darkside_cutscenes.h +++ b/engines/xeen/worldofxeen/darkside_cutscenes.h @@ -23,7 +23,7 @@  #ifndef XEEN_WORLDOFXEEN_DARKSIDE_CUTSCENES_H  #define XEEN_WORLDOFXEEN_DARKSIDE_CUTSCENES_H -#include "xeen/worldofxeen/cutscenes.h" +#include "xeen/cutscenes.h"  namespace Xeen { | 
