diff options
author | Paul Gilbert | 2015-02-18 20:35:32 -0500 |
---|---|---|
committer | Paul Gilbert | 2015-02-18 20:35:32 -0500 |
commit | 0f78fb9373b8c4befd727e9e56faf5d30ac59cff (patch) | |
tree | 0f4a9a85f3497ff2e75501deca7f2cb324f9d1cc /engines/xeen/dialogs_spells.cpp | |
parent | 6a7fd1952d62ce0bf44a426aba061ecc85183168 (diff) | |
download | scummvm-rg350-0f78fb9373b8c4befd727e9e56faf5d30ac59cff.tar.gz scummvm-rg350-0f78fb9373b8c4befd727e9e56faf5d30ac59cff.tar.bz2 scummvm-rg350-0f78fb9373b8c4befd727e9e56faf5d30ac59cff.zip |
XEEN: Implement extra code for passing active character to castSpell
Diffstat (limited to 'engines/xeen/dialogs_spells.cpp')
-rw-r--r-- | engines/xeen/dialogs_spells.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/engines/xeen/dialogs_spells.cpp b/engines/xeen/dialogs_spells.cpp index 7abca3fb85..2f4026b2ad 100644 --- a/engines/xeen/dialogs_spells.cpp +++ b/engines/xeen/dialogs_spells.cpp @@ -29,9 +29,9 @@ namespace Xeen { -Character *SpellsDialog::show(XeenEngine *vm, Character *c, int v2) { +Character *SpellsDialog::show(XeenEngine *vm, Character *c, int isCasting) { SpellsDialog *dlg = new SpellsDialog(vm); - Character *result = dlg->execute(c, v2); + Character *result = dlg->execute(c, isCasting); delete dlg; return result; @@ -116,6 +116,10 @@ Character *SpellsDialog::execute(Character *c, int isCasting) { switch (_buttonValue) { case Common::KEYCODE_F1: + case Common::KEYCODE_F2: + case Common::KEYCODE_F3: + case Common::KEYCODE_F4: + case Common::KEYCODE_F5: case Common::KEYCODE_F6: if (_vm->_mode != MODE_COMBAT) { _buttonValue -= Common::KEYCODE_F1; @@ -143,7 +147,7 @@ Character *SpellsDialog::execute(Character *c, int isCasting) { break; } - int spellIndex = (c->_currentSp == -1) ? 39 : c->_currentSpell; + int spellIndex = (c->_currentSpell == -1) ? 39 : c->_currentSpell; int spellId = SPELLS_ALLOWED[category][spellIndex]; screen._windows[10].writeString(Common::String::format(SPELL_DETAILS, spells._spellNames[spellId].c_str(), @@ -445,17 +449,17 @@ int CastSpell::show(XeenEngine *vm, int mode) { } } - Character &c = party._activeParty[charNum]; + Character *c = &party._activeParty[charNum]; intf.highlightChar(charNum); CastSpell *dlg = new CastSpell(vm); - int spellId = dlg->execute(&c, mode); + int spellId = dlg->execute(c, mode); delete dlg; return spellId; } -int CastSpell::show(XeenEngine *vm, Character *c, int mode) { +int CastSpell::show(XeenEngine *vm, Character *&c, int mode) { CastSpell *dlg = new CastSpell(vm); int spellId = dlg->execute(c, mode); delete dlg; @@ -463,7 +467,7 @@ int CastSpell::show(XeenEngine *vm, Character *c, int mode) { return spellId; } -int CastSpell::execute(Character *c, int mode) { +int CastSpell::execute(Character *&c, int mode) { EventsManager &events = *_vm->_events; Interface &intf = *_vm->_interface; Party &party = *_vm->_party; |