From a1fbf5253fe604a8b09041384e48b170b122a435 Mon Sep 17 00:00:00 2001 From: KPhoenix Date: Wed, 8 Feb 2023 22:58:26 -0500 Subject: [PATCH] `enum talk_id` -> `enum class TalkID` --- Source/control.cpp | 2 +- Source/controls/game_controls.cpp | 8 +- Source/controls/plrctrls.cpp | 4 +- Source/controls/touch/event_handlers.cpp | 2 +- Source/controls/touch/renderers.cpp | 2 +- Source/diablo.cpp | 36 +- Source/engine/render/scrollrt.cpp | 4 +- Source/inv.cpp | 2 +- Source/qol/chatlog.cpp | 2 +- Source/qol/itemlabels.cpp | 6 +- Source/qol/stash.cpp | 2 +- Source/stores.cpp | 420 +++++++++++------------ Source/stores.h | 54 +-- Source/towners.cpp | 16 +- Source/track.cpp | 2 +- 15 files changed, 281 insertions(+), 281 deletions(-) diff --git a/Source/control.cpp b/Source/control.cpp index 3744df768..14cf4203a 100644 --- a/Source/control.cpp +++ b/Source/control.cpp @@ -491,7 +491,7 @@ bool IsLevelUpButtonVisible() if (ControlMode == ControlTypes::VirtualGamepad) { return false; } - if (stextflag != STORE_NONE || IsStashOpen) { + if (stextflag != TalkID::None || IsStashOpen) { return false; } if (QuestLogIsOpen && GetLeftPanel().contains(GetMainPanel().position + Displacement { 0, -74 })) { diff --git a/Source/controls/game_controls.cpp b/Source/controls/game_controls.cpp index 9c619bd92..b94a286e2 100644 --- a/Source/controls/game_controls.cpp +++ b/Source/controls/game_controls.cpp @@ -133,7 +133,7 @@ bool GetGameAction(const SDL_Event &event, ControllerButtonEvent ctrlEvent, Game if (ControllerActionHeld == GameActionType_NONE) { ControllerActionHeld = GameActionType_PRIMARY_ACTION; } - } else if (sgpCurrentMenu != nullptr || stextflag != STORE_NONE || QuestLogIsOpen) { + } else if (sgpCurrentMenu != nullptr || stextflag != TalkID::None || QuestLogIsOpen) { *action = GameActionSendKey { SDLK_RETURN, false }; } else { *action = GameActionSendKey { SDLK_SPACE, false }; @@ -170,12 +170,12 @@ bool GetGameAction(const SDL_Event &event, ControllerButtonEvent ctrlEvent, Game return true; } if (VirtualGamepadState.healthButton.isHeld && VirtualGamepadState.healthButton.didStateChange) { - if (!QuestLogIsOpen && !sbookflag && stextflag == STORE_NONE) + if (!QuestLogIsOpen && !sbookflag && stextflag == TalkID::None) *action = GameAction(GameActionType_USE_HEALTH_POTION); return true; } if (VirtualGamepadState.manaButton.isHeld && VirtualGamepadState.manaButton.didStateChange) { - if (!QuestLogIsOpen && !sbookflag && stextflag == STORE_NONE) + if (!QuestLogIsOpen && !sbookflag && stextflag == TalkID::None) *action = GameAction(GameActionType_USE_MANA_POTION); return true; } @@ -195,7 +195,7 @@ bool GetGameAction(const SDL_Event &event, ControllerButtonEvent ctrlEvent, Game SDL_Keycode translation = SDLK_UNKNOWN; - if (gmenu_is_active() || stextflag != STORE_NONE) + if (gmenu_is_active() || stextflag != TalkID::None) translation = TranslateControllerButtonToGameMenuKey(ctrlEvent.button); else if (inGameMenu) translation = TranslateControllerButtonToMenuKey(ctrlEvent.button); diff --git a/Source/controls/plrctrls.cpp b/Source/controls/plrctrls.cpp index 1bb7cfb05..b00781e9e 100644 --- a/Source/controls/plrctrls.cpp +++ b/Source/controls/plrctrls.cpp @@ -64,7 +64,7 @@ quest_id pcursquest = Q_INVALID; */ bool InGameMenu() { - return stextflag != STORE_NONE + return stextflag != TalkID::None || HelpFlag || ChatLogFlag || talkflag @@ -1377,7 +1377,7 @@ HandleLeftStickOrDPadFn GetLeftStickOrDPadGameUIHandler() if (QuestLogIsOpen) { return &QuestLogMove; } - if (stextflag != STORE_NONE) { + if (stextflag != TalkID::None) { return &StoreMove; } return nullptr; diff --git a/Source/controls/touch/event_handlers.cpp b/Source/controls/touch/event_handlers.cpp index 340746859..748e6056b 100644 --- a/Source/controls/touch/event_handlers.cpp +++ b/Source/controls/touch/event_handlers.cpp @@ -62,7 +62,7 @@ bool HandleGameMenuInteraction(const SDL_Event &event) bool HandleStoreInteraction(const SDL_Event &event) { - if (stextflag == STORE_NONE) + if (stextflag == TalkID::None) return false; if (event.type == SDL_FINGERDOWN) CheckStoreBtn(); diff --git a/Source/controls/touch/renderers.cpp b/Source/controls/touch/renderers.cpp index 77a90c3d4..9e6966767 100644 --- a/Source/controls/touch/renderers.cpp +++ b/Source/controls/touch/renderers.cpp @@ -426,7 +426,7 @@ VirtualGamepadButtonType PrimaryActionButtonRenderer::GetButtonType() VirtualGamepadButtonType PrimaryActionButtonRenderer::GetTownButtonType() { - if (stextflag != STORE_NONE || pcursmonst != -1) + if (stextflag != TalkID::None || pcursmonst != -1) return GetTalkButtonType(virtualPadButton->isHeld); return GetBlankButtonType(virtualPadButton->isHeld); } diff --git a/Source/diablo.cpp b/Source/diablo.cpp index b220f53e5..ece4410e1 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -335,7 +335,7 @@ void LeftMouseDown(uint16_t modState) return; } - if (stextflag != STORE_NONE) { + if (stextflag != TalkID::None) { CheckStoreBtn(); return; } @@ -399,7 +399,7 @@ void LeftMouseUp(uint16_t modState) } if (lvlbtndown) ReleaseLvlBtn(); - if (stextflag != STORE_NONE) + if (stextflag != TalkID::None) ReleaseStoreBtn(); } @@ -415,7 +415,7 @@ void RightMouseDown(bool isShiftHeld) doom_close(); return; } - if (stextflag != STORE_NONE) + if (stextflag != TalkID::None) return; if (spselflag) { SetSpell(); @@ -556,7 +556,7 @@ void PressKey(SDL_Keycode vkey, uint16_t modState) if ((modState & KMOD_ALT) != 0) { sgOptions.Graphics.fullscreen.SetValue(!IsFullScreen()); SaveOptions(); - } else if (stextflag != STORE_NONE) { + } else if (stextflag != TalkID::None) { StoreEnter(); } else if (QuestLogIsOpen) { QuestlogEnter(); @@ -565,7 +565,7 @@ void PressKey(SDL_Keycode vkey, uint16_t modState) } return; case SDLK_UP: - if (stextflag != STORE_NONE) { + if (stextflag != TalkID::None) { StoreUp(); } else if (QuestLogIsOpen) { QuestlogUp(); @@ -580,7 +580,7 @@ void PressKey(SDL_Keycode vkey, uint16_t modState) } return; case SDLK_DOWN: - if (stextflag != STORE_NONE) { + if (stextflag != TalkID::None) { StoreDown(); } else if (QuestLogIsOpen) { QuestlogDown(); @@ -595,14 +595,14 @@ void PressKey(SDL_Keycode vkey, uint16_t modState) } return; case SDLK_PAGEUP: - if (stextflag != STORE_NONE) { + if (stextflag != TalkID::None) { StorePrior(); } else if (ChatLogFlag) { ChatLogScrollTop(); } return; case SDLK_PAGEDOWN: - if (stextflag != STORE_NONE) { + if (stextflag != TalkID::None) { StoreNext(); } else if (ChatLogFlag) { ChatLogScrollBottom(); @@ -623,7 +623,7 @@ void PressKey(SDL_Keycode vkey, uint16_t modState) void HandleMouseButtonDown(Uint8 button, uint16_t modState) { - if (stextflag != STORE_NONE && (button == SDL_BUTTON_X1 + if (stextflag != TalkID::None && (button == SDL_BUTTON_X1 #if !SDL_VERSION_ATLEAST(2, 0, 0) || button == 8 #endif @@ -1438,7 +1438,7 @@ void HelpKeyPressed() { if (HelpFlag) { HelpFlag = false; - } else if (stextflag != STORE_NONE) { + } else if (stextflag != TalkID::None) { InfoString = {}; AddPanelString(_("No help available")); /// BUGFIX: message isn't displayed AddPanelString(_("while in stores")); @@ -1462,7 +1462,7 @@ void HelpKeyPressed() void InventoryKeyPressed() { - if (stextflag != STORE_NONE) + if (stextflag != TalkID::None) return; invflag = !invflag; if (!IsLeftPanelOpen() && CanPanelsCoverView()) { @@ -1483,7 +1483,7 @@ void InventoryKeyPressed() void CharacterSheetKeyPressed() { - if (stextflag != STORE_NONE) + if (stextflag != TalkID::None) return; chrflag = !chrflag; if (!IsRightPanelOpen() && CanPanelsCoverView()) { @@ -1504,7 +1504,7 @@ void CharacterSheetKeyPressed() void QuestLogKeyPressed() { - if (stextflag != STORE_NONE) + if (stextflag != TalkID::None) return; if (!QuestLogIsOpen) { StartQuestlog(); @@ -1529,7 +1529,7 @@ void QuestLogKeyPressed() void DisplaySpellsKeyPressed() { - if (stextflag != STORE_NONE) + if (stextflag != TalkID::None) return; chrflag = false; QuestLogIsOpen = false; @@ -1545,7 +1545,7 @@ void DisplaySpellsKeyPressed() void SpellBookKeyPressed() { - if (stextflag != STORE_NONE) + if (stextflag != TalkID::None) return; sbookflag = !sbookflag; if (!IsLeftPanelOpen() && CanPanelsCoverView()) { @@ -1655,7 +1655,7 @@ void InitKeymapActions() SDLK_F3, [] { gamemenu_load_game(false); }, nullptr, - [&]() { return !gbIsMultiplayer && gbValidSaveFile && stextflag == STORE_NONE && IsGameRunning(); }); + [&]() { return !gbIsMultiplayer && gbValidSaveFile && stextflag == TalkID::None && IsGameRunning(); }); #ifndef NOEXIT sgOptions.Keymapper.AddAction( "QuitGame", @@ -2193,7 +2193,7 @@ void InitPadmapActions() ControllerButton_NONE, [] { gamemenu_load_game(false); }, nullptr, - [&]() { return !gbIsMultiplayer && gbValidSaveFile && stextflag == STORE_NONE && IsGameRunning(); }); + [&]() { return !gbIsMultiplayer && gbValidSaveFile && stextflag == TalkID::None && IsGameRunning(); }); sgOptions.Padmapper.AddAction( "Item Highlighting", N_("Item highlighting"), @@ -2610,7 +2610,7 @@ bool PressEscKey() rv = true; } - if (stextflag != STORE_NONE) { + if (stextflag != TalkID::None) { StoreESC(); rv = true; } diff --git a/Source/engine/render/scrollrt.cpp b/Source/engine/render/scrollrt.cpp index 4e5a3b2ef..1a56d3781 100644 --- a/Source/engine/render/scrollrt.cpp +++ b/Source/engine/render/scrollrt.cpp @@ -647,7 +647,7 @@ void DrawItem(const Surface &out, Point tilePosition, Point targetBufferPosition const ClxSprite sprite = item.AnimInfo.currentSprite(); int px = targetBufferPosition.x - CalculateWidth2(sprite.width()); const Point position { px, targetBufferPosition.y }; - if (stextflag == STORE_NONE && (bItem - 1 == pcursitem || AutoMapShowItems)) { + if (stextflag == TalkID::None && (bItem - 1 == pcursitem || AutoMapShowItems)) { ClxDrawOutlineSkipColorZero(out, GetOutlineColor(item, false), position, sprite); } ClxDrawLight(out, position, sprite); @@ -1190,7 +1190,7 @@ void DrawView(const Surface &out, Point startPosition) DrawItemNameLabels(out); DrawFloatingNumbers(out, startPosition, offset); - if (stextflag != STORE_NONE && !qtextflag) + if (stextflag != TalkID::None && !qtextflag) DrawSText(out); if (invflag) { DrawInv(out); diff --git a/Source/inv.cpp b/Source/inv.cpp index 8bfd95a45..2b3393eb2 100644 --- a/Source/inv.cpp +++ b/Source/inv.cpp @@ -2014,7 +2014,7 @@ bool UseInvItem(size_t pnum, int cii) return true; if (pcurs != CURSOR_HAND) return true; - if (stextflag != STORE_NONE) + if (stextflag != TalkID::None) return true; if (cii < INVITEM_INV_FIRST) return false; diff --git a/Source/qol/chatlog.cpp b/Source/qol/chatlog.cpp index a65bb666d..a3c7b4561 100644 --- a/Source/qol/chatlog.cpp +++ b/Source/qol/chatlog.cpp @@ -97,7 +97,7 @@ void ToggleChatLog() if (ChatLogFlag) { ChatLogFlag = false; } else { - stextflag = STORE_NONE; + stextflag = TalkID::None; CloseInventory(); chrflag = false; sbookflag = false; diff --git a/Source/qol/itemlabels.cpp b/Source/qol/itemlabels.cpp index a05704cdc..df22559a6 100644 --- a/Source/qol/itemlabels.cpp +++ b/Source/qol/itemlabels.cpp @@ -91,7 +91,7 @@ void ResetItemlabelHighlighted() bool IsHighlightingLabelsEnabled() { - return stextflag == STORE_NONE && altPressed != *sgOptions.Gameplay.showItemLabels; + return stextflag == TalkID::None && altPressed != *sgOptions.Gameplay.showItemLabels; } void AddItemToLabelQueue(int id, Point position) @@ -190,7 +190,7 @@ void DrawItemNameLabels(const Surface &out) if (!gmenu_is_active() && PauseMode == 0 && !MyPlayerIsDead - && stextflag == STORE_NONE + && stextflag == TalkID::None && IsMouseOverGameArea() && LastMouseButtonAction == MouseActionType::None) { isLabelHighlighted = true; @@ -198,7 +198,7 @@ void DrawItemNameLabels(const Surface &out) pcursitem = label.id; } } - if (pcursitem == label.id && stextflag == STORE_NONE) + if (pcursitem == label.id && stextflag == TalkID::None) FillRect(clippedOut, label.pos.x, label.pos.y + MarginY, label.width, Height, PAL8_BLUE + 6); else DrawHalfTransparentRectTo(clippedOut, label.pos.x, label.pos.y + MarginY, label.width, Height); diff --git a/Source/qol/stash.cpp b/Source/qol/stash.cpp index bb8766cb8..a8f5fd993 100644 --- a/Source/qol/stash.cpp +++ b/Source/qol/stash.cpp @@ -451,7 +451,7 @@ bool UseStashItem(uint16_t c) return true; if (pcurs != CURSOR_HAND) return true; - if (stextflag != STORE_NONE) + if (stextflag != TalkID::None) return true; Item *item = &Stash.stashList[c]; diff --git a/Source/stores.cpp b/Source/stores.cpp index a892b30d6..2c26842f0 100644 --- a/Source/stores.cpp +++ b/Source/stores.cpp @@ -31,7 +31,7 @@ namespace devilution { -talk_id stextflag; +TalkID stextflag; int storenumh; int8_t storehidx[48]; @@ -118,7 +118,7 @@ int8_t stextscrlubtn; int8_t stextscrldbtn; /** Remember current store while displaying a dialog */ -talk_id stextshold; +TalkID stextshold; /** Start of possible gossip dialogs for current store */ _speech_id gossipstart; @@ -468,7 +468,7 @@ bool StartSmithPremiumBuy() storenumh++; } if (storenumh == 0) { - StartStore(STORE_SMITH); + StartStore(TalkID::Blacksmith); stextsel = 14; return false; } @@ -984,16 +984,16 @@ void StoreConfirm(Item &item) bool idprint = item._iMagical != ITEM_QUALITY_NORMAL; - if (stextshold == STORE_SIDENTIFY) + if (stextshold == TalkID::StorytellerIdentify) idprint = false; if (item._iMagical != ITEM_QUALITY_NORMAL && !item._iIdentified) { - if (stextshold == STORE_SSELL) + if (stextshold == TalkID::BlacksmithSell) idprint = false; - if (stextshold == STORE_WSELL) + if (stextshold == TalkID::WitchSell) idprint = false; - if (stextshold == STORE_SREPAIR) + if (stextshold == TalkID::BlacksmithRepair) idprint = false; - if (stextshold == STORE_WRECHARGE) + if (stextshold == TalkID::WitchRecharge) idprint = false; } if (idprint) @@ -1007,26 +1007,26 @@ void StoreConfirm(Item &item) string_view prompt; switch (stextshold) { - case STORE_BBOY: + case TalkID::BoyBuy: prompt = _("Do we have a deal?"); break; - case STORE_SIDENTIFY: + case TalkID::StorytellerIdentify: prompt = _("Are you sure you want to identify this item?"); break; - case STORE_HBUY: - case STORE_SPBUY: - case STORE_WBUY: - case STORE_SBUY: + case TalkID::HealerBuy: + case TalkID::SmithPremiumBuy: + case TalkID::WitchBuy: + case TalkID::BlacksmithBuy: prompt = _("Are you sure you want to buy this item?"); break; - case STORE_WRECHARGE: + case TalkID::WitchRecharge: prompt = _("Are you sure you want to recharge this item?"); break; - case STORE_SSELL: - case STORE_WSELL: + case TalkID::BlacksmithSell: + case TalkID::WitchSell: prompt = _("Are you sure you want to sell this item?"); break; - case STORE_SREPAIR: + case TalkID::BlacksmithRepair: prompt = _("Are you sure you want to repair this item?"); break; default: @@ -1380,25 +1380,25 @@ void SmithEnter() case 10: talker = TOWN_SMITH; stextlhold = 10; - stextshold = STORE_SMITH; + stextshold = TalkID::Blacksmith; gossipstart = TEXT_GRISWOLD2; gossipend = TEXT_GRISWOLD13; - StartStore(STORE_GOSSIP); + StartStore(TalkID::Gossip); break; case 12: - StartStore(STORE_SBUY); + StartStore(TalkID::BlacksmithBuy); break; case 14: - StartStore(STORE_SPBUY); + StartStore(TalkID::SmithPremiumBuy); break; case 16: - StartStore(STORE_SSELL); + StartStore(TalkID::BlacksmithSell); break; case 18: - StartStore(STORE_SREPAIR); + StartStore(TalkID::BlacksmithRepair); break; case 20: - stextflag = STORE_NONE; + stextflag = TalkID::None; break; } } @@ -1427,28 +1427,28 @@ void SmithBuyItem(Item &item) void SmithBuyEnter() { if (stextsel == BackButtonLine()) { - StartStore(STORE_SMITH); + StartStore(TalkID::Blacksmith); stextsel = 12; return; } stextlhold = stextsel; stextvhold = stextsval; - stextshold = STORE_SBUY; + stextshold = TalkID::BlacksmithBuy; int idx = stextsval + ((stextsel - stextup) / 4); if (!PlayerCanAfford(smithitem[idx]._iIvalue)) { - StartStore(STORE_NOMONEY); + StartStore(TalkID::NoMoney); return; } if (!StoreAutoPlace(smithitem[idx], false)) { - StartStore(STORE_NOROOM); + StartStore(TalkID::NoRoom); return; } StoreItem = smithitem[idx]; - StartStore(STORE_CONFIRM); + StartStore(TalkID::Confirm); } /** @@ -1478,12 +1478,12 @@ void SmithBuyPItem(Item &item) void SmithPremiumBuyEnter() { if (stextsel == BackButtonLine()) { - StartStore(STORE_SMITH); + StartStore(TalkID::Blacksmith); stextsel = 14; return; } - stextshold = STORE_SPBUY; + stextshold = TalkID::SmithPremiumBuy; stextlhold = stextsel; stextvhold = stextsval; @@ -1497,17 +1497,17 @@ void SmithPremiumBuyEnter() } if (!PlayerCanAfford(premiumitems[idx]._iIvalue)) { - StartStore(STORE_NOMONEY); + StartStore(TalkID::NoMoney); return; } if (!StoreAutoPlace(premiumitems[idx], false)) { - StartStore(STORE_NOROOM); + StartStore(TalkID::NoRoom); return; } StoreItem = premiumitems[idx]; - StartStore(STORE_CONFIRM); + StartStore(TalkID::Confirm); } bool StoreGoldFit(Item &item) @@ -1555,24 +1555,24 @@ void StoreSellItem() void SmithSellEnter() { if (stextsel == BackButtonLine()) { - StartStore(STORE_SMITH); + StartStore(TalkID::Blacksmith); stextsel = 16; return; } stextlhold = stextsel; - stextshold = STORE_SSELL; + stextshold = TalkID::BlacksmithSell; stextvhold = stextsval; int idx = stextsval + ((stextsel - stextup) / 4); if (!StoreGoldFit(storehold[idx])) { - StartStore(STORE_NOROOM); + StartStore(TalkID::NoRoom); return; } StoreItem = storehold[idx]; - StartStore(STORE_CONFIRM); + StartStore(TalkID::Confirm); } /** @@ -1607,24 +1607,24 @@ void SmithRepairItem(int price) void SmithRepairEnter() { if (stextsel == BackButtonLine()) { - StartStore(STORE_SMITH); + StartStore(TalkID::Blacksmith); stextsel = 18; return; } - stextshold = STORE_SREPAIR; + stextshold = TalkID::BlacksmithRepair; stextlhold = stextsel; stextvhold = stextsval; int idx = stextsval + ((stextsel - stextup) / 4); if (!PlayerCanAfford(storehold[idx]._iIvalue)) { - StartStore(STORE_NOMONEY); + StartStore(TalkID::NoMoney); return; } StoreItem = storehold[idx]; - StartStore(STORE_CONFIRM); + StartStore(TalkID::Confirm); } void WitchEnter() @@ -1633,22 +1633,22 @@ void WitchEnter() case 12: stextlhold = 12; talker = TOWN_WITCH; - stextshold = STORE_WITCH; + stextshold = TalkID::Witch; gossipstart = TEXT_ADRIA2; gossipend = TEXT_ADRIA13; - StartStore(STORE_GOSSIP); + StartStore(TalkID::Gossip); break; case 14: - StartStore(STORE_WBUY); + StartStore(TalkID::WitchBuy); break; case 16: - StartStore(STORE_WSELL); + StartStore(TalkID::WitchSell); break; case 18: - StartStore(STORE_WRECHARGE); + StartStore(TalkID::WitchRecharge); break; case 20: - stextflag = STORE_NONE; + stextflag = TalkID::None; break; } } @@ -1683,52 +1683,52 @@ void WitchBuyItem(Item &item) void WitchBuyEnter() { if (stextsel == BackButtonLine()) { - StartStore(STORE_WITCH); + StartStore(TalkID::Witch); stextsel = 14; return; } stextlhold = stextsel; stextvhold = stextsval; - stextshold = STORE_WBUY; + stextshold = TalkID::WitchBuy; int idx = stextsval + ((stextsel - stextup) / 4); if (!PlayerCanAfford(witchitem[idx]._iIvalue)) { - StartStore(STORE_NOMONEY); + StartStore(TalkID::NoMoney); return; } if (!StoreAutoPlace(witchitem[idx], false)) { - StartStore(STORE_NOROOM); + StartStore(TalkID::NoRoom); return; } StoreItem = witchitem[idx]; - StartStore(STORE_CONFIRM); + StartStore(TalkID::Confirm); } void WitchSellEnter() { if (stextsel == BackButtonLine()) { - StartStore(STORE_WITCH); + StartStore(TalkID::Witch); stextsel = 16; return; } stextlhold = stextsel; - stextshold = STORE_WSELL; + stextshold = TalkID::WitchSell; stextvhold = stextsval; int idx = stextsval + ((stextsel - stextup) / 4); if (!StoreGoldFit(storehold[idx])) { - StartStore(STORE_NOROOM); + StartStore(TalkID::NoRoom); return; } StoreItem = storehold[idx]; - StartStore(STORE_CONFIRM); + StartStore(TalkID::Confirm); } /** @@ -1755,52 +1755,52 @@ void WitchRechargeItem(int price) void WitchRechargeEnter() { if (stextsel == BackButtonLine()) { - StartStore(STORE_WITCH); + StartStore(TalkID::Witch); stextsel = 18; return; } - stextshold = STORE_WRECHARGE; + stextshold = TalkID::WitchRecharge; stextlhold = stextsel; stextvhold = stextsval; int idx = stextsval + ((stextsel - stextup) / 4); if (!PlayerCanAfford(storehold[idx]._iIvalue)) { - StartStore(STORE_NOMONEY); + StartStore(TalkID::NoMoney); return; } StoreItem = storehold[idx]; - StartStore(STORE_CONFIRM); + StartStore(TalkID::Confirm); } void BoyEnter() { if (!boyitem.isEmpty() && stextsel == 18) { if (!PlayerCanAfford(50)) { - stextshold = STORE_BOY; + stextshold = TalkID::Boy; stextlhold = 18; stextvhold = stextsval; - StartStore(STORE_NOMONEY); + StartStore(TalkID::NoMoney); } else { TakePlrsMoney(50); - StartStore(STORE_BBOY); + StartStore(TalkID::BoyBuy); } return; } if ((stextsel != 8 && !boyitem.isEmpty()) || (stextsel != 12 && boyitem.isEmpty())) { - stextflag = STORE_NONE; + stextflag = TalkID::None; return; } talker = TOWN_PEGBOY; - stextshold = STORE_BOY; + stextshold = TalkID::Boy; stextlhold = stextsel; gossipstart = TEXT_WIRT2; gossipend = TEXT_WIRT12; - StartStore(STORE_GOSSIP); + StartStore(TalkID::Gossip); } void BoyBuyItem(Item &item) @@ -1808,7 +1808,7 @@ void BoyBuyItem(Item &item) TakePlrsMoney(item._iIvalue); StoreAutoPlace(item, true); boyitem.clear(); - stextshold = STORE_BOY; + stextshold = TalkID::Boy; CalcPlrInv(*MyPlayer, true); stextlhold = 12; } @@ -1854,11 +1854,11 @@ void HealerBuyItem(Item &item) void BoyBuyEnter() { if (stextsel != 10) { - stextflag = STORE_NONE; + stextflag = TalkID::None; return; } - stextshold = STORE_BBOY; + stextshold = TalkID::BoyBuy; stextvhold = stextsval; stextlhold = 10; int price = boyitem._iIvalue; @@ -1868,18 +1868,18 @@ void BoyBuyEnter() price += boyitem._iIvalue / 2; if (!PlayerCanAfford(price)) { - StartStore(STORE_NOMONEY); + StartStore(TalkID::NoMoney); return; } if (!StoreAutoPlace(boyitem, false)) { - StartStore(STORE_NOROOM); + StartStore(TalkID::NoRoom); return; } StoreItem = boyitem; StoreItem._iIvalue = price; - StartStore(STORE_CONFIRM); + StartStore(TalkID::Confirm); } void StorytellerIdentifyItem(Item &item) @@ -1914,33 +1914,33 @@ void ConfirmEnter(Item &item) { if (stextsel == 18) { switch (stextshold) { - case STORE_SBUY: + case TalkID::BlacksmithBuy: SmithBuyItem(item); break; - case STORE_SSELL: - case STORE_WSELL: + case TalkID::BlacksmithSell: + case TalkID::WitchSell: StoreSellItem(); break; - case STORE_SREPAIR: + case TalkID::BlacksmithRepair: SmithRepairItem(item._iIvalue); break; - case STORE_WBUY: + case TalkID::WitchBuy: WitchBuyItem(item); break; - case STORE_WRECHARGE: + case TalkID::WitchRecharge: WitchRechargeItem(item._iIvalue); break; - case STORE_BBOY: + case TalkID::BoyBuy: BoyBuyItem(item); break; - case STORE_HBUY: + case TalkID::HealerBuy: HealerBuyItem(item); break; - case STORE_SIDENTIFY: + case TalkID::StorytellerIdentify: StorytellerIdentifyItem(item); - StartStore(STORE_IDSHOW); + StartStore(TalkID::StorytellerShow); return; - case STORE_SPBUY: + case TalkID::SmithPremiumBuy: SmithBuyPItem(item); break; default: @@ -1967,16 +1967,16 @@ void HealerEnter() case 12: stextlhold = 12; talker = TOWN_HEALER; - stextshold = STORE_HEALER; + stextshold = TalkID::Healer; gossipstart = TEXT_PEPIN2; gossipend = TEXT_PEPIN11; - StartStore(STORE_GOSSIP); + StartStore(TalkID::Gossip); break; case 14: - StartStore(STORE_HBUY); + StartStore(TalkID::HealerBuy); break; case 18: - stextflag = STORE_NONE; + stextflag = TalkID::None; break; } } @@ -1984,29 +1984,29 @@ void HealerEnter() void HealerBuyEnter() { if (stextsel == BackButtonLine()) { - StartStore(STORE_HEALER); + StartStore(TalkID::Healer); stextsel = 14; return; } stextlhold = stextsel; stextvhold = stextsval; - stextshold = STORE_HBUY; + stextshold = TalkID::HealerBuy; int idx = stextsval + ((stextsel - stextup) / 4); if (!PlayerCanAfford(healitem[idx]._iIvalue)) { - StartStore(STORE_NOMONEY); + StartStore(TalkID::NoMoney); return; } if (!StoreAutoPlace(healitem[idx], false)) { - StartStore(STORE_NOROOM); + StartStore(TalkID::NoRoom); return; } StoreItem = healitem[idx]; - StartStore(STORE_CONFIRM); + StartStore(TalkID::Confirm); } void StorytellerEnter() @@ -2015,16 +2015,16 @@ void StorytellerEnter() case 12: stextlhold = 12; talker = TOWN_STORY; - stextshold = STORE_STORY; + stextshold = TalkID::Storyteller; gossipstart = TEXT_STORY2; gossipend = TEXT_STORY11; - StartStore(STORE_GOSSIP); + StartStore(TalkID::Gossip); break; case 14: - StartStore(STORE_SIDENTIFY); + StartStore(TalkID::StorytellerIdentify); break; case 18: - stextflag = STORE_NONE; + stextflag = TalkID::None; break; } } @@ -2032,24 +2032,24 @@ void StorytellerEnter() void StorytellerIdentifyEnter() { if (stextsel == BackButtonLine()) { - StartStore(STORE_STORY); + StartStore(TalkID::Storyteller); stextsel = 14; return; } - stextshold = STORE_SIDENTIFY; + stextshold = TalkID::StorytellerIdentify; stextlhold = stextsel; stextvhold = stextsval; int idx = stextsval + ((stextsel - stextup) / 4); if (!PlayerCanAfford(storehold[idx]._iIvalue)) { - StartStore(STORE_NOMONEY); + StartStore(TalkID::NoMoney); return; } StoreItem = storehold[idx]; - StartStore(STORE_CONFIRM); + StartStore(TalkID::Confirm); } void TalkEnter() @@ -2096,13 +2096,13 @@ void TavernEnter() case 12: stextlhold = 12; talker = TOWN_TAVERN; - stextshold = STORE_TAVERN; + stextshold = TalkID::Tavern; gossipstart = TEXT_OGDEN2; gossipend = TEXT_OGDEN10; - StartStore(STORE_GOSSIP); + StartStore(TalkID::Gossip); break; case 18: - stextflag = STORE_NONE; + stextflag = TalkID::None; break; } } @@ -2113,13 +2113,13 @@ void BarmaidEnter() case 12: stextlhold = 12; talker = TOWN_BMAID; - stextshold = STORE_BARMAID; + stextshold = TalkID::Barmaid; gossipstart = TEXT_GILLIAN2; gossipend = TEXT_GILLIAN10; - StartStore(STORE_GOSSIP); + StartStore(TalkID::Gossip); break; case 14: - stextflag = STORE_NONE; + stextflag = TalkID::None; IsStashOpen = true; Stash.RefreshItemStatFlags(); invflag = true; @@ -2130,7 +2130,7 @@ void BarmaidEnter() } break; case 18: - stextflag = STORE_NONE; + stextflag = TalkID::None; break; } } @@ -2141,13 +2141,13 @@ void DrunkEnter() case 12: stextlhold = 12; talker = TOWN_DRUNK; - stextshold = STORE_DRUNK; + stextshold = TalkID::Drunk; gossipstart = TEXT_FARNHAM2; gossipend = TEXT_FARNHAM13; - StartStore(STORE_GOSSIP); + StartStore(TalkID::Gossip); break; case 18: - stextflag = STORE_NONE; + stextflag = TalkID::None; break; } } @@ -2218,7 +2218,7 @@ void AddStoreHoldRepair(Item *itm, int8_t i) void InitStores() { ClearSText(0, STORE_LINES); - stextflag = STORE_NONE; + stextflag = TalkID::None; stextsize = false; stextscrl = false; numpremium = 0; @@ -2259,7 +2259,7 @@ void FreeStoreMem() if (*sgOptions.Graphics.showItemGraphicsInStores) { FreeHalfSizeItemSprites(); } - stextflag = STORE_NONE; + stextflag = TalkID::None; for (STextStruct &entry : stext) { entry.text.clear(); entry.text.shrink_to_fit(); @@ -2358,7 +2358,7 @@ void ClearSText(int s, int e) } } -void StartStore(talk_id s) +void StartStore(TalkID s) { if (*sgOptions.Graphics.showItemGraphicsInStores) { CreateHalfSizeItemSprites(); @@ -2372,10 +2372,10 @@ void StartStore(talk_id s) ClearSText(0, STORE_LINES); ReleaseStoreBtn(); switch (s) { - case STORE_SMITH: + case TalkID::Blacksmith: StartSmith(); break; - case STORE_SBUY: { + case TalkID::BlacksmithBuy: { bool hasAnyItems = false; for (int i = 0; !smithitem[i].isEmpty(); i++) { hasAnyItems = true; @@ -2384,80 +2384,80 @@ void StartStore(talk_id s) if (hasAnyItems) StartSmithBuy(); else { - stextflag = STORE_SBUY; + stextflag = TalkID::BlacksmithBuy; stextlhold = 12; StoreESC(); return; } break; } - case STORE_SSELL: + case TalkID::BlacksmithSell: StartSmithSell(); break; - case STORE_SREPAIR: + case TalkID::BlacksmithRepair: StartSmithRepair(); break; - case STORE_WITCH: + case TalkID::Witch: StartWitch(); break; - case STORE_WBUY: + case TalkID::WitchBuy: if (storenumh > 0) StartWitchBuy(); break; - case STORE_WSELL: + case TalkID::WitchSell: StartWitchSell(); break; - case STORE_WRECHARGE: + case TalkID::WitchRecharge: StartWitchRecharge(); break; - case STORE_NOMONEY: + case TalkID::NoMoney: StoreNoMoney(); break; - case STORE_NOROOM: + case TalkID::NoRoom: StoreNoRoom(); break; - case STORE_CONFIRM: + case TalkID::Confirm: StoreConfirm(StoreItem); break; - case STORE_BOY: + case TalkID::Boy: StartBoy(); break; - case STORE_BBOY: + case TalkID::BoyBuy: SStartBoyBuy(); break; - case STORE_HEALER: + case TalkID::Healer: StartHealer(); break; - case STORE_STORY: + case TalkID::Storyteller: StartStoryteller(); break; - case STORE_HBUY: + case TalkID::HealerBuy: if (storenumh > 0) StartHealerBuy(); break; - case STORE_SIDENTIFY: + case TalkID::StorytellerIdentify: StartStorytellerIdentify(); break; - case STORE_SPBUY: + case TalkID::SmithPremiumBuy: if (!StartSmithPremiumBuy()) return; break; - case STORE_GOSSIP: + case TalkID::Gossip: StartTalk(); break; - case STORE_IDSHOW: + case TalkID::StorytellerShow: StartStorytellerIdentifyShow(StoreItem); break; - case STORE_TAVERN: + case TalkID::Tavern: StartTavern(); break; - case STORE_DRUNK: + case TalkID::Drunk: StartDrunk(); break; - case STORE_BARMAID: + case TalkID::Barmaid: StartBarmaid(); break; - case STORE_NONE: + case TalkID::None: break; } @@ -2481,23 +2481,23 @@ void DrawSText(const Surface &out) if (stextscrl) { switch (stextflag) { - case STORE_SBUY: + case TalkID::BlacksmithBuy: ScrollSmithBuy(stextsval); break; - case STORE_SSELL: - case STORE_SREPAIR: - case STORE_WSELL: - case STORE_WRECHARGE: - case STORE_SIDENTIFY: + case TalkID::BlacksmithSell: + case TalkID::BlacksmithRepair: + case TalkID::WitchSell: + case TalkID::WitchRecharge: + case TalkID::StorytellerIdentify: ScrollSmithSell(stextsval); break; - case STORE_WBUY: + case TalkID::WitchBuy: ScrollWitchBuy(stextsval); break; - case STORE_HBUY: + case TalkID::HealerBuy: ScrollHealerBuy(stextsval); break; - case STORE_SPBUY: + case TalkID::SmithPremiumBuy: ScrollSmithPremiumBuy(stextsval); break; default: @@ -2532,68 +2532,68 @@ void StoreESC() } switch (stextflag) { - case STORE_SMITH: - case STORE_WITCH: - case STORE_BOY: - case STORE_BBOY: - case STORE_HEALER: - case STORE_STORY: - case STORE_TAVERN: - case STORE_DRUNK: - case STORE_BARMAID: - stextflag = STORE_NONE; - break; - case STORE_GOSSIP: + case TalkID::Blacksmith: + case TalkID::Witch: + case TalkID::Boy: + case TalkID::BoyBuy: + case TalkID::Healer: + case TalkID::Storyteller: + case TalkID::Tavern: + case TalkID::Drunk: + case TalkID::Barmaid: + stextflag = TalkID::None; + break; + case TalkID::Gossip: StartStore(stextshold); stextsel = stextlhold; break; - case STORE_SBUY: - StartStore(STORE_SMITH); + case TalkID::BlacksmithBuy: + StartStore(TalkID::Blacksmith); stextsel = 12; break; - case STORE_SPBUY: - StartStore(STORE_SMITH); + case TalkID::SmithPremiumBuy: + StartStore(TalkID::Blacksmith); stextsel = 14; break; - case STORE_SSELL: - StartStore(STORE_SMITH); + case TalkID::BlacksmithSell: + StartStore(TalkID::Blacksmith); stextsel = 16; break; - case STORE_SREPAIR: - StartStore(STORE_SMITH); + case TalkID::BlacksmithRepair: + StartStore(TalkID::Blacksmith); stextsel = 18; break; - case STORE_WBUY: - StartStore(STORE_WITCH); + case TalkID::WitchBuy: + StartStore(TalkID::Witch); stextsel = 14; break; - case STORE_WSELL: - StartStore(STORE_WITCH); + case TalkID::WitchSell: + StartStore(TalkID::Witch); stextsel = 16; break; - case STORE_WRECHARGE: - StartStore(STORE_WITCH); + case TalkID::WitchRecharge: + StartStore(TalkID::Witch); stextsel = 18; break; - case STORE_HBUY: - StartStore(STORE_HEALER); + case TalkID::HealerBuy: + StartStore(TalkID::Healer); stextsel = 14; break; - case STORE_SIDENTIFY: - StartStore(STORE_STORY); + case TalkID::StorytellerIdentify: + StartStore(TalkID::Storyteller); stextsel = 14; break; - case STORE_IDSHOW: - StartStore(STORE_SIDENTIFY); + case TalkID::StorytellerShow: + StartStore(TalkID::StorytellerIdentify); break; - case STORE_NOMONEY: - case STORE_NOROOM: - case STORE_CONFIRM: + case TalkID::NoMoney: + case TalkID::NoRoom: + case TalkID::Confirm: StartStore(stextshold); stextsel = stextlhold; stextsval = stextvhold; break; - case STORE_NONE: + case TalkID::None: break; } } @@ -2726,76 +2726,76 @@ void StoreEnter() PlaySFX(IS_TITLSLCT); switch (stextflag) { - case STORE_SMITH: + case TalkID::Blacksmith: SmithEnter(); break; - case STORE_SPBUY: + case TalkID::SmithPremiumBuy: SmithPremiumBuyEnter(); break; - case STORE_SBUY: + case TalkID::BlacksmithBuy: SmithBuyEnter(); break; - case STORE_SSELL: + case TalkID::BlacksmithSell: SmithSellEnter(); break; - case STORE_SREPAIR: + case TalkID::BlacksmithRepair: SmithRepairEnter(); break; - case STORE_WITCH: + case TalkID::Witch: WitchEnter(); break; - case STORE_WBUY: + case TalkID::WitchBuy: WitchBuyEnter(); break; - case STORE_WSELL: + case TalkID::WitchSell: WitchSellEnter(); break; - case STORE_WRECHARGE: + case TalkID::WitchRecharge: WitchRechargeEnter(); break; - case STORE_NOMONEY: - case STORE_NOROOM: + case TalkID::NoMoney: + case TalkID::NoRoom: StartStore(stextshold); stextsel = stextlhold; stextsval = stextvhold; break; - case STORE_CONFIRM: + case TalkID::Confirm: ConfirmEnter(StoreItem); break; - case STORE_BOY: + case TalkID::Boy: BoyEnter(); break; - case STORE_BBOY: + case TalkID::BoyBuy: BoyBuyEnter(); break; - case STORE_HEALER: + case TalkID::Healer: HealerEnter(); break; - case STORE_STORY: + case TalkID::Storyteller: StorytellerEnter(); break; - case STORE_HBUY: + case TalkID::HealerBuy: HealerBuyEnter(); break; - case STORE_SIDENTIFY: + case TalkID::StorytellerIdentify: StorytellerIdentifyEnter(); break; - case STORE_GOSSIP: + case TalkID::Gossip: TalkEnter(); break; - case STORE_IDSHOW: - StartStore(STORE_SIDENTIFY); + case TalkID::StorytellerShow: + StartStore(TalkID::StorytellerIdentify); break; - case STORE_DRUNK: + case TalkID::Drunk: DrunkEnter(); break; - case STORE_TAVERN: + case TalkID::Tavern: TavernEnter(); break; - case STORE_BARMAID: + case TalkID::Barmaid: BarmaidEnter(); break; - case STORE_NONE: + case TalkID::None: break; } } diff --git a/Source/stores.h b/Source/stores.h index 41d704bec..e2da2f7d1 100644 --- a/Source/stores.h +++ b/Source/stores.h @@ -19,35 +19,35 @@ namespace devilution { #define SMITH_PREMIUM_ITEMS 15 #define STORE_LINES 104 -enum talk_id : uint8_t { - STORE_NONE, - STORE_SMITH, - STORE_SBUY, - STORE_SSELL, - STORE_SREPAIR, - STORE_WITCH, - STORE_WBUY, - STORE_WSELL, - STORE_WRECHARGE, - STORE_NOMONEY, - STORE_NOROOM, - STORE_CONFIRM, - STORE_BOY, - STORE_BBOY, - STORE_HEALER, - STORE_STORY, - STORE_HBUY, - STORE_SIDENTIFY, - STORE_SPBUY, - STORE_GOSSIP, - STORE_IDSHOW, - STORE_TAVERN, - STORE_DRUNK, - STORE_BARMAID, +enum class TalkID : uint8_t { + None, + Blacksmith, + BlacksmithBuy, + BlacksmithSell, + BlacksmithRepair, + Witch, + WitchBuy, + WitchSell, + WitchRecharge, + NoMoney, + NoRoom, + Confirm, + Boy, + BoyBuy, + Healer, + Storyteller, + HealerBuy, + StorytellerIdentify, + SmithPremiumBuy, + Gossip, + StorytellerShow, + Tavern, + Drunk, + Barmaid, }; /** Currently active store */ -extern talk_id stextflag; +extern TalkID stextflag; /** Current index into storehidx/storehold */ extern DVL_API_FOR_TEST int storenumh; @@ -90,7 +90,7 @@ void PrintSString(const Surface &out, int margin, int line, string_view text, Ui void DrawSLine(const Surface &out, int sy); void DrawSTextHelp(); void ClearSText(int s, int e); -void StartStore(talk_id s); +void StartStore(TalkID s); void DrawSText(const Surface &out); void StoreESC(); void StoreUp(); diff --git a/Source/towners.cpp b/Source/towners.cpp index 52940b032..a94bad165 100644 --- a/Source/towners.cpp +++ b/Source/towners.cpp @@ -343,7 +343,7 @@ void TalkToBarOwner(Player &player, Towner &barOwner) } TownerTalk(TEXT_OGDEN1); - StartStore(STORE_TAVERN); + StartStore(TalkID::Tavern); } void TalkToDeadguy(Player &player, Towner & /*deadguy*/) @@ -411,7 +411,7 @@ void TalkToBlackSmith(Player &player, Towner &blackSmith) } TownerTalk(TEXT_GRISWOLD1); - StartStore(STORE_SMITH); + StartStore(TalkID::Blacksmith); } void TalkToWitch(Player &player, Towner & /*witch*/) @@ -464,7 +464,7 @@ void TalkToWitch(Player &player, Towner & /*witch*/) } TownerTalk(TEXT_ADRIA1); - StartStore(STORE_WITCH); + StartStore(TalkID::Witch); } void TalkToBarmaid(Player &player, Towner & /*barmaid*/) @@ -478,13 +478,13 @@ void TalkToBarmaid(Player &player, Towner & /*barmaid*/) } TownerTalk(TEXT_GILLIAN1); - StartStore(STORE_BARMAID); + StartStore(TalkID::Barmaid); } void TalkToDrunk(Player & /*player*/, Towner & /*drunk*/) { TownerTalk(TEXT_FARNHAM1); - StartStore(STORE_DRUNK); + StartStore(TalkID::Drunk); } void TalkToHealer(Player &player, Towner &healer) @@ -518,13 +518,13 @@ void TalkToHealer(Player &player, Towner &healer) } TownerTalk(TEXT_PEPIN1); - StartStore(STORE_HEALER); + StartStore(TalkID::Healer); } void TalkToBoy(Player & /*player*/, Towner & /*boy*/) { TownerTalk(TEXT_WIRT1); - StartStore(STORE_BOY); + StartStore(TalkID::Boy); } void TalkToStoryteller(Player &player, Towner & /*storyteller*/) @@ -560,7 +560,7 @@ void TalkToStoryteller(Player &player, Towner & /*storyteller*/) } TownerTalk(TEXT_STORY1); - StartStore(STORE_STORY); + StartStore(TalkID::Storyteller); } void TalkToCow(Player &player, Towner &cow) diff --git a/Source/track.cpp b/Source/track.cpp index 86b789ed6..c7198ce9b 100644 --- a/Source/track.cpp +++ b/Source/track.cpp @@ -66,7 +66,7 @@ void RepeatMouseAction() if (sgbMouseDown == CLICK_NONE && ControllerActionHeld == GameActionType_NONE) return; - if (stextflag != STORE_NONE) + if (stextflag != TalkID::None) return; if (LastMouseButtonAction == MouseActionType::None)