diff options
author | Filippos Karapetis | 2011-11-26 22:20:10 +0200 |
---|---|---|
committer | Filippos Karapetis | 2011-11-26 22:28:39 +0200 |
commit | 31cf9b76108b877d6f0421ef6046e0d59100bda4 (patch) | |
tree | 1de1f8b4a73597ec29c9779420ef23bf15c7fbe1 | |
parent | 89b1ff3dc350f49ded2514176a70bceae702cf4b (diff) | |
download | scummvm-rg350-31cf9b76108b877d6f0421ef6046e0d59100bda4.tar.gz scummvm-rg350-31cf9b76108b877d6f0421ef6046e0d59100bda4.tar.bz2 scummvm-rg350-31cf9b76108b877d6f0421ef6046e0d59100bda4.zip |
TOLTECS: Reduce code duplication
-rw-r--r-- | engines/toltecs/menu.cpp | 53 |
1 files changed, 14 insertions, 39 deletions
diff --git a/engines/toltecs/menu.cpp b/engines/toltecs/menu.cpp index 25c240f67e..5ff0019d31 100644 --- a/engines/toltecs/menu.cpp +++ b/engines/toltecs/menu.cpp @@ -230,7 +230,6 @@ void MenuSystem::setItemCaption(Item *item, const char *caption) { } void MenuSystem::initMenu(MenuID menuID) { - int newSlotNum; _items.clear(); @@ -253,13 +252,10 @@ void MenuSystem::initMenu(MenuID menuID) { addClickTextItem(kItemIdSavegameUp, 0, 155, 545, 1, "^", 255, 253); addClickTextItem(kItemIdSavegameDown, 0, 195, 545, 1, "\\", 255, 253); addClickTextItem(kItemIdCancel, 0, 275, 320, 0, _vm->getSysString(kStrCancel), 255, 253); - addClickTextItem(kItemIdSavegame1, 0, 115 + 20 * 0, 300, 0, "SAVEGAME 1", 231, 234); - addClickTextItem(kItemIdSavegame2, 0, 115 + 20 * 1, 300, 0, "SAVEGAME 2", 231, 234); - addClickTextItem(kItemIdSavegame3, 0, 115 + 20 * 2, 300, 0, "SAVEGAME 3", 231, 234); - addClickTextItem(kItemIdSavegame4, 0, 115 + 20 * 3, 300, 0, "SAVEGAME 4", 231, 234); - addClickTextItem(kItemIdSavegame5, 0, 115 + 20 * 4, 300, 0, "SAVEGAME 5", 231, 234); - addClickTextItem(kItemIdSavegame6, 0, 115 + 20 * 5, 300, 0, "SAVEGAME 6", 231, 234); - addClickTextItem(kItemIdSavegame7, 0, 115 + 20 * 6, 300, 0, "SAVEGAME 7", 231, 234); + for (int i = 1; i <= 7; i++) { + const char *saveDesc = Common::String::format("SAVEGAME %d", i).c_str(); + addClickTextItem((ItemID)(kItemIdSavegame1 + i - 1), 0, 115 + 20 * (i - 1), 300, 0, saveDesc, 231, 234); + } loadSavegamesList(); setSavegameCaptions(); break; @@ -268,13 +264,10 @@ void MenuSystem::initMenu(MenuID menuID) { addClickTextItem(kItemIdSavegameUp, 0, 155, 545, 1, "^", 255, 253); addClickTextItem(kItemIdSavegameDown, 0, 195, 545, 1, "\\", 255, 253); addClickTextItem(kItemIdCancel, 0, 275, 320, 0, _vm->getSysString(kStrCancel), 255, 253); - addClickTextItem(kItemIdSavegame1, 0, 115 + 20 * 0, 300, 0, "SAVEGAME 1", 231, 234); - addClickTextItem(kItemIdSavegame2, 0, 115 + 20 * 1, 300, 0, "SAVEGAME 2", 231, 234); - addClickTextItem(kItemIdSavegame3, 0, 115 + 20 * 2, 300, 0, "SAVEGAME 3", 231, 234); - addClickTextItem(kItemIdSavegame4, 0, 115 + 20 * 3, 300, 0, "SAVEGAME 4", 231, 234); - addClickTextItem(kItemIdSavegame5, 0, 115 + 20 * 4, 300, 0, "SAVEGAME 5", 231, 234); - addClickTextItem(kItemIdSavegame6, 0, 115 + 20 * 5, 300, 0, "SAVEGAME 6", 231, 234); - addClickTextItem(kItemIdSavegame7, 0, 115 + 20 * 6, 300, 0, "SAVEGAME 7", 231, 234); + for (int i = 1; i <= 7; i++) { + const char *saveDesc = Common::String::format("SAVEGAME %d", i).c_str(); + addClickTextItem((ItemID)(kItemIdSavegame1 + i - 1), 0, 115 + 20 * (i - 1), 300, 0, saveDesc, 231, 234); + } newSlotNum = loadSavegamesList() + 1; _savegames.push_back(SavegameItem(newSlotNum, Common::String::format("GAME %03d", _savegames.size() + 1))); setSavegameCaptions(); @@ -486,29 +479,16 @@ int MenuSystem::loadSavegamesList() { } MenuSystem::SavegameItem *MenuSystem::getSavegameItemByID(ItemID id) { - switch (id) { - case kItemIdSavegame1: - case kItemIdSavegame2: - case kItemIdSavegame3: - case kItemIdSavegame4: - case kItemIdSavegame5: - case kItemIdSavegame6: - case kItemIdSavegame7: + if (id >= kItemIdSavegame1 && id <= kItemIdSavegame7) return &_savegames[_savegameListTopIndex + id - kItemIdSavegame1]; - default: + else return NULL; - } } void MenuSystem::setSavegameCaptions() { uint index = _savegameListTopIndex; - setItemCaption(getItem(kItemIdSavegame1), index < _savegames.size() ? _savegames[index++]._description.c_str() : ""); - setItemCaption(getItem(kItemIdSavegame2), index < _savegames.size() ? _savegames[index++]._description.c_str() : ""); - setItemCaption(getItem(kItemIdSavegame3), index < _savegames.size() ? _savegames[index++]._description.c_str() : ""); - setItemCaption(getItem(kItemIdSavegame4), index < _savegames.size() ? _savegames[index++]._description.c_str() : ""); - setItemCaption(getItem(kItemIdSavegame5), index < _savegames.size() ? _savegames[index++]._description.c_str() : ""); - setItemCaption(getItem(kItemIdSavegame6), index < _savegames.size() ? _savegames[index++]._description.c_str() : ""); - setItemCaption(getItem(kItemIdSavegame7), index < _savegames.size() ? _savegames[index++]._description.c_str() : ""); + for (int i = 1; i <= 7; i++) + setItemCaption(getItem((ItemID)(kItemIdSavegame1 + i - 1)), index < _savegames.size() ? _savegames[index++]._description.c_str() : ""); } void MenuSystem::scrollSavegames(int delta) { @@ -516,13 +496,8 @@ void MenuSystem::scrollSavegames(int delta) { _savegameListTopIndex = newPos; restoreRect(80, 92, 440, 140); setSavegameCaptions(); - drawItem(kItemIdSavegame1, false); - drawItem(kItemIdSavegame2, false); - drawItem(kItemIdSavegame3, false); - drawItem(kItemIdSavegame4, false); - drawItem(kItemIdSavegame5, false); - drawItem(kItemIdSavegame6, false); - drawItem(kItemIdSavegame7, false); + for (int i = 1; i <= 7; i++) + drawItem((ItemID)(kItemIdSavegame1 + i - 1), false); } void MenuSystem::clickSavegameItem(ItemID id) { |