diff --git a/Source/Client/Mode/GameModeHandlers.cpp b/Source/Client/Mode/GameModeHandlers.cpp index eeff51fa..c04ffe23 100644 --- a/Source/Client/Mode/GameModeHandlers.cpp +++ b/Source/Client/Mode/GameModeHandlers.cpp @@ -1508,7 +1508,7 @@ void CGameMode::ReceivePackageItemTest(const unsigned char* packet) { ITEM_INFO item; item.SetItemId(*reinterpret_cast(packet + 4)); int capacity = sizeof(packageName); - ItemDescriptions{g_itemDescriptions}.Name(item, packageName, capacity, 0); + item.sub_6D5810(packageName, capacity, 0); char path[2048]; std::memset(path, 0, sizeof(path)); @@ -1540,7 +1540,7 @@ void CGameMode::ReceivePackageItemTest(const unsigned char* packet) { const PackageItemTestEntry current = *entry; item.SetItemId(current.itemId); int nameCapacity = sizeof(itemName); - ItemDescriptions{g_itemDescriptions}.Name(item, itemName, nameCapacity, 0); + item.sub_6D5810(itemName, nameCapacity, 0); std::fprintf(file, "%s\t\t\t%d\t%c%d%c\n", itemName, current.count, '(', current.unknown_0004, ')'); total += current.count; ++entry; @@ -2456,7 +2456,7 @@ void CGameMode::ReceiveDdukddakBoxTest(const unsigned char* packet) { ITEM_INFO box; box.SetItemId(*reinterpret_cast(packet + 4)); int capacity = sizeof(name); - ItemDescriptions{g_itemDescriptions}.Name(box, name, capacity, 0); + box.sub_6D5810(name, capacity, 0); SYSTEMTIME time; GetLocalTime(&time); @@ -2470,7 +2470,7 @@ void CGameMode::ReceiveDdukddakBoxTest(const unsigned char* packet) { for (auto item = items.begin(); item != items.end(); ++item) { ITEM_INFO info; info.SetItemId(item->first); - ItemDescriptions{g_itemDescriptions}.Name(info, name, capacity, 0); + info.sub_6D5810(name, capacity, 0); std::string amount = FormatOwnedString("%d", item->second); std::string ratio = FormatOwnedString("%.5f%%", static_cast(item->second) / static_cast(total) * 100.0f); output << FormatOwnedString("%d\t%s\t%s\t%s\n", item->first, name, amount.c_str(), ratio.c_str()); diff --git a/Source/Client/Mode/GameModeNotices.cpp b/Source/Client/Mode/GameModeNotices.cpp index 2ccca872..12d49919 100644 --- a/Source/Client/Mode/GameModeNotices.cpp +++ b/Source/Client/Mode/GameModeNotices.cpp @@ -1387,8 +1387,7 @@ void CGameMode::ReceiveItem1784List(const unsigned char* data) { item.unknown_0078[2] = entry.unknown_0014; item.unknown_0064 = 8; item.identified = 1; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); item.SetName(name); g_session.unknown_1784[9].push_back(item); } @@ -3730,8 +3729,7 @@ void CGameMode::ReceiveTypedItemList(const unsigned char* data) { item.unknown_0064 = type; item.SetItemId(itemId); int capacity = sizeof(name); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); item.SetName(name); if (static_cast(packet->type) <= 10) { g_session.unknown_1784[packet->type].push_back(item); @@ -4898,7 +4896,7 @@ void CGameMode::ReceiveStovePurchaseResult(const unsigned char* data) { int capacity = sizeof(name); ITEM_INFO item; item.SetItemId(packet->itemId); - ItemDescriptions{g_itemDescriptions}.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); message = FormatOwnedString("%s아이템 %d개 지급 완료", name, packet->count); } case 2: @@ -5470,7 +5468,7 @@ void CGameMode::ReceiveSpecialBroadcast(const unsigned char* data) { item.SetItemId(packet->value); char itemName[256]; int capacity = sizeof(itemName); - ItemDescriptions{g_itemDescriptions}.Name(item, itemName, capacity, 0); + item.sub_6D5810(itemName, capacity, 0); text.assign(FormatOwnedString(LookupMessage(1265), itemName)); player->LaunchEffect(543, vector3d{0.0f, 0.0f, 0.0f}, 0.0f); break; diff --git a/Source/Client/Mode/GameModePackets.cpp b/Source/Client/Mode/GameModePackets.cpp index 912044ff..ac9086d3 100644 --- a/Source/Client/Mode/GameModePackets.cpp +++ b/Source/Client/Mode/GameModePackets.cpp @@ -6533,7 +6533,7 @@ void CGameMode::ReceiveFormattedMessage(const unsigned char* packet) { ITEM_INFO item; item.SetItemId(*reinterpret_cast(packet + 4)); int capacity = sizeof(name); - ItemDescriptions{g_itemDescriptions}.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); StringFormat(text, sizeof(text), static_cast(-1), LookupMessage(3278), name); } else { std::sprintf(text, LookupMessage(messageId), *reinterpret_cast(packet + 4)); @@ -8947,7 +8947,7 @@ void CGameMode::ReceiveFeedResult(const unsigned char* data) { ITEM_INFO item; item.SetItemId(packet->itemId); int capacity = sizeof(name); - ItemDescriptions{g_itemDescriptions}.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); g_windowMgr.SendNotice(1, reinterpret_cast(FormatOwnedString(LookupMessage(0xA12), name, count).c_str()), 0xFFFF64, 0, 0, 0); } else { ITEM_INFO item; @@ -8966,7 +8966,7 @@ void CGameMode::ReceiveFeedResult(const unsigned char* data) { ITEM_INFO item; item.SetItemId(packet->itemId); int capacity = sizeof(name); - ItemDescriptions{g_itemDescriptions}.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); g_windowMgr.SendNotice(1, reinterpret_cast(FormatOwnedString(LookupMessage(0xCD1), name, count).c_str()), 0xFFFF64, 0, 0, 0); } else { ITEM_INFO item; diff --git a/Source/Client/Mode/ModeDragState.cpp b/Source/Client/Mode/ModeDragState.cpp index 236dcf08..57851157 100644 --- a/Source/Client/Mode/ModeDragState.cpp +++ b/Source/Client/Mode/ModeDragState.cpp @@ -1,4 +1,5 @@ #include "Client/Mode/ModeDragState.h" +#include "Client/Session.h" #include "Contents/Items/BarterMarketItemMgr.h" #include "Contents/Items/ItemDescription.h" #include "Contents/Items/ItemInfo.h" @@ -31,7 +32,7 @@ void ModeDragState::Clear() { // OFFSET: 0x00CFE140 // FUNCTION: fn_21429 void ModeDragState::BeginItem( - WindowManagerWindows& windows, ItemDescriptions& descriptions, int sourceValue, const ITEM_INFO& item, int quantityValue, int slotValue + WindowManagerWindows& windows, int sourceValue, const ITEM_INFO& item, int quantityValue, int slotValue ) { UIWindow* window = windows.EnsureWindow(15); if (window->geometry.visible != 0) { @@ -47,7 +48,7 @@ void ModeDragState::BeginItem( this->skill = 0; this->id = item.unknown_0000[1]; this->quantity = quantityValue; - this->resource = ItemDragResource(descriptions, item.itemId.c_str(), item.identified); + this->resource = g_session.ItemDragResource(item.itemId.c_str(), item.identified); this->name = item.itemId; this->unknown_0310 = item.unknown_0014[0]; this->unknown_0314 = item.unknown_0014[1]; @@ -98,8 +99,7 @@ void ModeDragState::BeginBarterItem(int sourceValue, const BarterMarketItem& ite this->source = sourceValue; this->quantity = quantityValue; this->skill = 0; - ItemDescriptions descriptions{g_itemDescriptions}; - this->resource = ItemDragResource(descriptions, item.name.c_str(), item.flag_24); + this->resource = g_session.ItemDragResource(item.name.c_str(), item.flag_24); this->name = item.name.c_str(); this->unknown_0310 = item.field_20; this->type = item.field_1c; @@ -116,8 +116,7 @@ void ModeDragState::BeginBarterEntry(int sourceValue, const BarterMarketEntry& e this->source = sourceValue; this->quantity = quantityValue; this->skill = 0; - ItemDescriptions descriptions{g_itemDescriptions}; - this->resource = ItemDragResource(descriptions, entry.name.c_str(), entry.flag_24); + this->resource = g_session.ItemDragResource(entry.name.c_str(), entry.flag_24); this->name = entry.name.c_str(); this->unknown_0310 = entry.field_8; this->type = entry.field_0; diff --git a/Source/Client/Mode/ModeDragState.h b/Source/Client/Mode/ModeDragState.h index a3f54a87..73edd227 100644 --- a/Source/Client/Mode/ModeDragState.h +++ b/Source/Client/Mode/ModeDragState.h @@ -6,7 +6,6 @@ #include "UI/Window/WindowManagerWindows.h" class ResourceMgr; -struct ItemDescriptions; struct ITEM_INFO; struct BarterMarketItem; struct BarterMarketEntry; @@ -37,7 +36,7 @@ struct ModeDragState { /* 03C0 */ std::int64_t unknown_03C0; void Clear(); - void BeginItem(WindowManagerWindows& windows, ItemDescriptions& descriptions, int source, const ITEM_INFO& item, int quantity, int slot); + void BeginItem(WindowManagerWindows& windows, int source, const ITEM_INFO& item, int quantity, int slot); void BeginSkill(WindowManagerWindows& windows, ResourceMgr& resources, int source, std::uint32_t id, const char* name, int level, int slot); void BeginBarterItem(int source, const BarterMarketItem& item, int quantity, int slot); void BeginBarterEntry(int source, const BarterMarketEntry& entry, int quantity, int slot); diff --git a/Source/Client/Session.h b/Source/Client/Session.h index b66bb6bd..5955534b 100644 --- a/Source/Client/Session.h +++ b/Source/Client/Session.h @@ -171,6 +171,8 @@ struct SessionEntry00A4 { class CSession { public: + void IconPath(char* output, const char* id, int identified); + const char* ItemDragResource(const char* id, int identified); /* 0000 */ std::uint32_t unknown_0000; /* 0004 */ std::list m_additionalSkills; /* 000C */ CPlayerSkillBundle m_skillBundle; diff --git a/Source/Contents/Actors/Item.cpp b/Source/Contents/Actors/Item.cpp index 05a39927..491b7b64 100644 --- a/Source/Contents/Actors/Item.cpp +++ b/Source/Contents/Actors/Item.cpp @@ -4,6 +4,7 @@ #include "Client/Mode/CGameMode.h" #include "Client/Input/InputCharset.h" #include "Client/Mode/ModeMgr.h" +#include "Client/Session.h" #include "Contents/Configuration/ServiceConfiguration.h" #include "Contents/Effects/EffectLists.h" #include "Contents/Effects/RagEffect.h" @@ -151,10 +152,9 @@ void CItem::SendMsg(CGameObject* sender, int message, int a, int b, int c, int d } this->fallOrigin = this->render.position.y; - ItemDescriptions descriptions{g_itemDescriptions}; - std::string spriteName = ItemDragResource(descriptions, this->name.c_str(), entry->identified); + std::string spriteName = g_session.ItemDragResource(this->name.c_str(), entry->identified); spriteName += ".spr"; - std::string actionName = ItemDragResource(descriptions, this->name.c_str(), entry->identified); + std::string actionName = g_session.ItemDragResource(this->name.c_str(), entry->identified); actionName += ".act"; this->SetSpriteName(ResourceMgr::Instance(), spriteName.c_str()); this->SetActionName(ResourceMgr::Instance(), actionName.c_str()); diff --git a/Source/Contents/Items/ItemDescription.cpp b/Source/Contents/Items/ItemDescription.cpp index 95d3cb68..099d153c 100644 --- a/Source/Contents/Items/ItemDescription.cpp +++ b/Source/Contents/Items/ItemDescription.cpp @@ -1,6 +1,7 @@ #include "Contents/Items/ItemDescription.h" #include "Contents/Items/ItemInfo.h" #include "Contents/Items/ItemNaming.h" +#include "Client/Session.h" #include #include @@ -47,10 +48,10 @@ ITEM_DESC& ITEM_DESC::operator=(const ITEM_DESC& other) { // OFFSET: 0x006D3A00 // FUNCTION: fn_06545 -ITEM_DESC& ItemDescriptions::Find(int id) { +ITEM_DESC& FindItemDescription(int id, std::map& values) { static ITEM_DESC missing; - const auto entry = this->values.find(id); - return entry == this->values.end() ? missing : entry->second; + const auto entry = values.find(id); + return entry == values.end() ? missing : entry->second; } // OFFSET: 0x006D3AE0 @@ -78,35 +79,34 @@ std::vector& EnsureItemDescriptionLines(int id, std::mapvalues[id]; +ITEM_DESC& EnsureItemDescription(int id, std::map& values) { + return values[id]; } // OFFSET: 0x00DDD280 // FUNCTION: fn_23382 -void ItemDescriptions::IconPath(char* output, const char* id, int identified) { - const ITEM_DESC& value = this->Find(std::atoi(id)); +void CSession::IconPath(char* output, const char* id, int identified) { + const ITEM_DESC& value = FindItemDescription(std::atoi(id)); const char* resource = identified != 0 ? value.identifiedResource : value.unidentifiedResource; std::sprintf(output, "유저인터페이스\\item\\%s.bmp", resource); } // OFFSET: 0x006D5730 // FUNCTION: fn_06576 -const std::vector& ItemDescriptions::Description(const ITEM_INFO& item) { - const ITEM_DESC& value = this->Find(std::atoi(item.itemId.c_str())); - return item.identified == 1 ? value.identifiedDescription : value.unidentifiedDescription; +const std::vector& ITEM_INFO::Description() const { + const ITEM_DESC& value = FindItemDescription(std::atoi(this->itemId.c_str()), g_itemDescriptions); + return this->identified == 1 ? value.identifiedDescription : value.unidentifiedDescription; } // OFFSET: 0x006D5810 // FUNCTION: fn_06578 -int ItemDescriptions::Name(const ITEM_INFO& item, char* output, int& capacity, unsigned char consume) { - const char* name = this->Find(std::atoi(item.itemId.c_str())).identifiedName; +int ITEM_INFO::sub_6D5810(char* output, int& capacity, unsigned char consume) const { + const char* name = FindItemDescription(std::atoi(this->itemId.c_str()), g_itemDescriptions).identifiedName; const int error = strncpy_s(output, capacity, name ? name : " ", _TRUNCATE); if (error != 0 && error != 80) { diff --git a/Source/Contents/Items/ItemDescription.h b/Source/Contents/Items/ItemDescription.h index b79c5779..a3ee793d 100644 --- a/Source/Contents/Items/ItemDescription.h +++ b/Source/Contents/Items/ItemDescription.h @@ -26,19 +26,12 @@ public: /* 0040 */ int unknown_0040; }; -struct ItemDescriptions { - std::map& values; - ITEM_DESC& Find(int id); - ITEM_DESC& Ensure(int id); - void IconPath(char* output, const char* id, int identified); - const std::vector& Description(const ITEM_INFO& item); - int Name(const ITEM_INFO& item, char* output, int& capacity, unsigned char consume); -}; - extern std::map g_itemDescriptions; extern std::map> g_metalProcessItems; extern std::map> g_bookItemNames; +ITEM_DESC& FindItemDescription(int id, std::map& values); +ITEM_DESC& EnsureItemDescription(int id, std::map& values); ITEM_DESC& FindItemDescription(int id); ItemCardName& EnsureItemCardName(int id, std::map& values); std::vector& EnsureItemDescriptionLines(int id, std::map>& values); diff --git a/Source/Contents/Items/ItemInfo.h b/Source/Contents/Items/ItemInfo.h index 415a65f2..1e253c3b 100644 --- a/Source/Contents/Items/ItemInfo.h +++ b/Source/Contents/Items/ItemInfo.h @@ -90,7 +90,8 @@ struct alignas(8) ITEM_INFO { bool IsElementalStone() const; bool IsAboveItemId600() const; int Refine(char* output, int& capacity, unsigned char consume) const; - int sub_6D5810(char* output, int& capacity, unsigned char consume); + int sub_6D5810(char* output, int& capacity, unsigned char consume) const; + const std::vector& Description() const; std::vector Serialize() const; std::uint32_t Deserialize(const std::vector& data); /* 0000 */ std::uint32_t unknown_0000[4]; diff --git a/Source/Contents/Items/ItemInfoMgr.cpp b/Source/Contents/Items/ItemInfoMgr.cpp index 1f829b17..4d5a58aa 100644 --- a/Source/Contents/Items/ItemInfoMgr.cpp +++ b/Source/Contents/Items/ItemInfoMgr.cpp @@ -139,8 +139,7 @@ void CItemInfoMgr::SetItemInfo(std::map& descriptions) const { }; for (std::map::const_iterator it = this->m_items.begin(); it != this->m_items.end(); ++it) { - ItemDescriptions table{descriptions}; - ITEM_DESC& desc = table.Ensure(it->first); + ITEM_DESC& desc = EnsureItemDescription(it->first, descriptions); desc.identifiedName = it->second.identifiedDisplayName.c_str(); desc.identifiedResource = it->second.identifiedResourceName.c_str(); std::for_each(it->second.identifiedDescription.begin(), it->second.identifiedDescription.end(), diff --git a/Source/Contents/Items/ItemLink.cpp b/Source/Contents/Items/ItemLink.cpp index 0a78ee11..4e46fa37 100644 --- a/Source/Contents/Items/ItemLink.cpp +++ b/Source/Contents/Items/ItemLink.cpp @@ -170,12 +170,12 @@ void DecodeItemLinkFields(const std::string& text, std::vector& fi // OFFSET: 0x008933E0 // FUNCTION: fn_11505 -bool ItemFromLinkFields(const std::vector& fields, ITEM_INFO& item, ItemDescriptions& descriptions) { +bool ItemFromLinkFields(const std::vector& fields, ITEM_INFO& item) { if (fields.empty()) { return false; } - const char* identified = descriptions.Find(fields[2]).identifiedName; + const char* identified = FindItemDescription(fields[2]).identifiedName; item.unknown_0044 = identified; std::string name = identified; diff --git a/Source/Contents/Items/ItemLink.h b/Source/Contents/Items/ItemLink.h index c94f6ddf..f873d38e 100644 --- a/Source/Contents/Items/ItemLink.h +++ b/Source/Contents/Items/ItemLink.h @@ -5,11 +5,10 @@ #include #include -struct ItemDescriptions; struct ITEM_INFO; void DecodeItemLinkFields(const std::string& text, std::vector& fields); -bool ItemFromLinkFields(const std::vector& fields, ITEM_INFO& item, ItemDescriptions& descriptions); +bool ItemFromLinkFields(const std::vector& fields, ITEM_INFO& item); int ItemLinkMessageId(const std::string& text); #endif diff --git a/Source/Contents/Items/ItemNaming.cpp b/Source/Contents/Items/ItemNaming.cpp index 1ecea89b..a06374f9 100644 --- a/Source/Contents/Items/ItemNaming.cpp +++ b/Source/Contents/Items/ItemNaming.cpp @@ -208,7 +208,7 @@ int ITEM_INFO::Suffixes(char* output, int& capacity, unsigned char consume) cons // OFFSET: 0x006D76E0 // FUNCTION: fn_06593 int ITEM_INFO::Slots(char* output, int& capacity, unsigned char consume) const { - const int slots = ItemDescriptions{g_itemDescriptions}.Find(std::atoi(this->itemId.c_str())).slots; + const int slots = FindItemDescription(std::atoi(this->itemId.c_str())).slots; if (slots == 0) { return 0; } @@ -238,7 +238,7 @@ std::string ITEM_INFO::DisplayName(unsigned char detailed) const { } }; const int id = std::atoi(this->itemId.c_str()); - ITEM_DESC& descriptor = ItemDescriptions{g_itemDescriptions}.Find(id); + ITEM_DESC& descriptor = FindItemDescription(id); if (this->identified != 1) { append(Copy(text, capacity, descriptor.unidentifiedName)); @@ -454,7 +454,7 @@ bool IsItemCard(int id) { // FUNCTION: fn_06591 const char* ItemResourcePath(const ITEM_INFO& item) { int id = std::atoi(item.itemId.c_str()); - ITEM_DESC& desc = ItemDescriptions{g_itemDescriptions}.Find(id); + ITEM_DESC& desc = FindItemDescription(id); return item.identified == 1 ? desc.identifiedResource : desc.unidentifiedResource; } @@ -462,14 +462,14 @@ const char* ItemResourcePath(const ITEM_INFO& item) { // FUNCTION: fn_06592 int ItemSlotsCount(const ITEM_INFO& item) { int id = std::atoi(item.itemId.c_str()); - return ItemDescriptions{g_itemDescriptions}.Find(id).slots; + return FindItemDescription(id).slots; } // OFFSET: 0x006D7760 // FUNCTION: fn_06594 int ItemUnidentifiedName(const ITEM_INFO& item, char* output, int& capacity, unsigned char consume) { int id = std::atoi(item.itemId.c_str()); - int written = Copy(output, capacity, ItemDescriptions{g_itemDescriptions}.Find(id).unidentifiedName); + int written = Copy(output, capacity, FindItemDescription(id).unidentifiedName); if (written > 0 && consume) { capacity -= written; } @@ -822,7 +822,7 @@ std::uint32_t __fastcall ItemCardColor(const ITEM_INFO* item) { } const std::uint32_t colors[5] = {0, 0x00ADFF2F, 0x0000BFFF, 0x00FFA500, 0x009400D3}; - const int slots = ItemDescriptions{g_itemDescriptions}.Find(std::atoi(item->itemId.c_str())).slots; + const int slots = FindItemDescription(std::atoi(item->itemId.c_str())).slots; int count = 0; for (int index = 0; index < 4; ++index) { if (index >= slots && IsItemCard(ids[index])) { diff --git a/Source/Contents/Items/ItemResources.cpp b/Source/Contents/Items/ItemResources.cpp index 86adf840..778186db 100644 --- a/Source/Contents/Items/ItemResources.cpp +++ b/Source/Contents/Items/ItemResources.cpp @@ -1,3 +1,4 @@ +#include "Client/Session.h" #include "Contents/Items/ItemDescription.h" #include "Contents/Items/ItemResources.h" #include "Resource/ResourceMgr.h" @@ -7,10 +8,10 @@ // OFFSET: 0x00DDDA20 // FUNCTION: fn_23391 -const char* ItemDragResource(ItemDescriptions& descriptions, const char* id, int identified) { +const char* CSession::ItemDragResource(const char* id, int identified) { static std::string resource; resource = "아이템\\"; - const ITEM_DESC& value = descriptions.Find(std::atoi(id)); + const ITEM_DESC& value = FindItemDescription(std::atoi(id)); const char* name = identified != 0 ? value.identifiedResource : value.unidentifiedResource; resource += name ? name : "사과"; diff --git a/Source/Contents/Items/ItemResources.h b/Source/Contents/Items/ItemResources.h index 6aab4ed4..2c17f6df 100644 --- a/Source/Contents/Items/ItemResources.h +++ b/Source/Contents/Items/ItemResources.h @@ -2,9 +2,7 @@ #define RAGNAROK_SOURCE_CONTENTS_ITEMS_ITEMRESOURCES_H class ResourceMgr; -struct ItemDescriptions; -const char* ItemDragResource(ItemDescriptions& descriptions, const char* id, int identified); const char* SkillDragResource(ResourceMgr& resources, const char* name); #endif diff --git a/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp b/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp index 61c38214..ebf3ce5a 100644 --- a/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp +++ b/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp @@ -6118,7 +6118,6 @@ void UInCashWnd::Slot25(int x, int y) { ITEM_INFO item = this->ItemAt(x, y); if (item.unknown_0000[1] != 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); - ItemDescriptions descriptions{g_itemDescriptions}; int source; if (this->m_selected < 0) { this->m_selected = ~this->m_selected; @@ -6127,7 +6126,7 @@ void UInCashWnd::Slot25(int x, int y) { this->m_selectedIndex = item.unknown_0064; source = 6; } - mode->drag.BeginItem(g_windowMgr, descriptions, source, item, 1, -1); + mode->drag.BeginItem(g_windowMgr, source, item, 1, -1); } } @@ -8086,8 +8085,7 @@ std::vector UIMakingArrowListWnd::Slot44() { void UINotifyItemObtainWnd::Paint() { this->DrawBorder(0, 0, 0, 0); if (this->m_itemId.size() != 0) { - ItemDescriptions descriptions{g_itemDescriptions}; - DrawItemIconById(*this, descriptions, 13, 5, this->m_itemId.c_str(), this->m_identified); + DrawItemIconById(*this, 13, 5, this->m_itemId.c_str(), this->m_identified); } const int kind = this->m_kind; @@ -8405,8 +8403,7 @@ void UIItemCollectionWnd::Paint() { } this->DrawBitmap(x, y, bitmap, true); } else { - ItemDescriptions descriptions{g_itemDescriptions}; - DrawItemIconById(*this, descriptions, x, y, FormatOwnedString("%d", card).c_str(), 0); + DrawItemIconById(*this, x, y, FormatOwnedString("%d", card).c_str(), 0); } } } @@ -8755,13 +8752,12 @@ void UIEquipWnd::DrawEquipSlots() { } if (item.quantity == 1) { - ItemDescriptions descriptions{g_itemDescriptions}; const unsigned row = slot & 3; if (slot < 8) { - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, iconX[slot / 4], this->m_contentTop + 44 + row * 26, item, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), iconX[slot / 4], this->m_contentTop + 44 + row * 26, item, 0); this->DrawItemName(nameX[slot / 4] + 5, this->m_contentTop + rowOffsets[row] + 51, 70, &item, 0, 0, 12); } else { - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, iconX[row], this->m_contentTop + 18, item, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), iconX[row], this->m_contentTop + 18, item, 0); this->DrawItemName(nameX[slot - 8] + 5, this->m_contentTop + 25, 70, &item, 0, 0, 12); } } @@ -8879,8 +8875,7 @@ void UIEquipWnd::Slot25(int x, int y) { if (item.quantity > 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); const EquipSlots slots = g_session.GetEquipSlots(item.unknown_0000[3]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, this->m_page == 1 ? 24 : 2, item, item.quantity, slots.values[2]); + mode->drag.BeginItem(g_windowMgr, this->m_page == 1 ? 24 : 2, item, item.quantity, slots.values[2]); } if (HIBYTE(GetAsyncKeyState(VK_SHIFT))) { @@ -9543,7 +9538,6 @@ int UIFrameWnd::BuildItemName( } int& capacity = reinterpret_cast(*remaining); - ItemDescriptions descriptions{g_itemDescriptions}; const auto unknownCreator = [&]() { g_windowMgr.RegisterWindow(this); @@ -9596,7 +9590,7 @@ int UIFrameWnd::BuildItemName( } if (g_serviceType == 12 || g_serviceType == 14) { - *cursor += descriptions.Name(*item, *cursor, capacity, 1); + *cursor += item->sub_6D5810(*cursor, capacity, 1); breaks->push_back(*cursor); *cursor += item->Element(*cursor, capacity, 1); breaks->push_back(*cursor); @@ -9624,7 +9618,7 @@ int UIFrameWnd::BuildItemName( } } else { if (!isEquipment()) { - *cursor += descriptions.Name(*item, *cursor, capacity, 1); + *cursor += item->sub_6D5810(*cursor, capacity, 1); breaks->push_back(*cursor); if (withSlots == 1) { *cursor += item->Slots(*cursor, capacity, 1); @@ -9645,7 +9639,7 @@ int UIFrameWnd::BuildItemName( if (item->HasCards()) { *cursor += item->Prefixes(*cursor, capacity, 1); breaks->push_back(*cursor); - *cursor += descriptions.Name(*item, *cursor, capacity, 1); + *cursor += item->sub_6D5810(*cursor, capacity, 1); breaks->push_back(*cursor); *cursor += item->Suffixes(*cursor, capacity, 1); breaks->push_back(*cursor); @@ -9657,7 +9651,7 @@ int UIFrameWnd::BuildItemName( } if (!item->HasSpecialCard()) { - *cursor += descriptions.Name(*item, *cursor, capacity, 1); + *cursor += item->sub_6D5810(*cursor, capacity, 1); breaks->push_back(*cursor); if (withSlots == 1) { *cursor += item->Slots(*cursor, capacity, 1); @@ -9668,7 +9662,7 @@ int UIFrameWnd::BuildItemName( if (g_serviceType == 12 || g_serviceType == 14) { if (g_serviceType == 12) { - *cursor += descriptions.Name(*item, *cursor, capacity, 1); + *cursor += item->sub_6D5810(*cursor, capacity, 1); breaks->push_back(*cursor); *cursor += item->Element(*cursor, capacity, 1); breaks->push_back(*cursor); @@ -9676,7 +9670,7 @@ int UIFrameWnd::BuildItemName( } else { *cursor += item->Star(*cursor, capacity, 1); breaks->push_back(*cursor); - *cursor += descriptions.Name(*item, *cursor, capacity, 1); + *cursor += item->sub_6D5810(*cursor, capacity, 1); breaks->push_back(*cursor); *cursor += item->Element(*cursor, capacity, 1); } @@ -9713,7 +9707,7 @@ int UIFrameWnd::BuildItemName( if (!splitCreator) { *cursor += item->Element(*cursor, capacity, 1); breaks->push_back(*cursor); - *cursor += descriptions.Name(*item, *cursor, capacity, 1); + *cursor += item->sub_6D5810(*cursor, capacity, 1); breaks->push_back(*cursor); return 1; } @@ -9722,7 +9716,7 @@ int UIFrameWnd::BuildItemName( breaks->push_back(*cursor); *cursor += item->Element(*cursor, capacity, 1); breaks->push_back(*cursor); - *cursor += descriptions.Name(*item, *cursor, capacity, 1); + *cursor += item->sub_6D5810(*cursor, capacity, 1); breaks->push_back(*cursor); return 1; } @@ -10282,14 +10276,13 @@ void UIExchangeWnd::Paint() { SkinPaletteChannels(ResourceMgr::Instance(), 10, 6, red, green, blue); this->FillRegion(283, 21, 272, 310, RGB(red, green, blue)); } - ItemDescriptions descriptions{g_itemDescriptions}; int row = 0; for (const ITEM_INFO& item : this->m_myItems) { if (g_session.IsPetEgg(std::atoi(item.itemId.c_str())) != 0 && item.unknown_005D != 0) { continue; } const int y = this->m_rowHeight * row; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, 16, y + 21, item, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), 16, y + 21, item, 0, 0); this->DrawFittedItemName(48, y + 29, &item, 0, 0, 12, 1); if (item.unknown_0088 > 0) { const std::string path = FormatOwnedString("유저인터페이스\\grade_enchant\\grade_icon%d.bmp", item.unknown_0088); @@ -10307,7 +10300,7 @@ void UIExchangeWnd::Paint() { continue; } const int y = this->m_rowHeight * row; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, 295, y + 21, item, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), 295, y + 21, item, 0, 0); this->DrawFittedItemName(327, y + 29, &item, 0, 0, 12, 1); if (item.unknown_0088 > 0) { const std::string path = FormatOwnedString("유저인터페이스\\grade_enchant\\grade_icon%d.bmp", item.unknown_0088); diff --git a/Source/UI/AdventureGuide/UIAdventureGuide.cpp b/Source/UI/AdventureGuide/UIAdventureGuide.cpp index 1ab205a3..73a15c4f 100644 --- a/Source/UI/AdventureGuide/UIAdventureGuide.cpp +++ b/Source/UI/AdventureGuide/UIAdventureGuide.cpp @@ -507,7 +507,7 @@ void CUIItem::BindItem(CUIItemInfo* item, const CItemData& data) { item->nameText->SetText(name.c_str(), name.size()); item->image->SetImage(image); reinterpret_cast(item)->SetStatusLines(data.first, data.second, data.third); - item->SetDescription(data.type, ItemDescriptions{g_itemDescriptions}.Description(info)); + item->SetDescription(data.type, info.Description()); reinterpret_cast(item->unknown_00F8)->Clear(); for (const std::string& value : data.values) { reinterpret_cast(item->unknown_00F8)->AddLine(value); diff --git a/Source/UI/Buttons/UITextButton.cpp b/Source/UI/Buttons/UITextButton.cpp index 974eabb2..f0316fda 100644 --- a/Source/UI/Buttons/UITextButton.cpp +++ b/Source/UI/Buttons/UITextButton.cpp @@ -643,7 +643,7 @@ void UIStaticItem::Slot28(int, int) { char text[260]; std::memset(text, 0, sizeof(text)); int capacity = sizeof(text); - this->m_descriptions->Name(this->m_item, text, capacity, 0); + this->m_item.sub_6D5810(text, capacity, 0); if (std::strlen(text) == 0) { return; @@ -1502,7 +1502,7 @@ void UITabControl::FillTab(int index, int x, int y, int width, int height, std:: void UIStaticItem::Paint() { char path[260]; std::memset(path, 0, sizeof(path)); - this->m_descriptions->IconPath(path, this->m_item.itemId.c_str(), this->m_item.identified); + g_session.IconPath(path, this->m_item.itemId.c_str(), this->m_item.identified); auto* bitmap = static_cast(ResourceMgr::Instance().Load(Resolve(path))); if (!bitmap) { @@ -3524,7 +3524,7 @@ void UIString::Paint() { if (!this->unknown_00AC.empty()) { char path[128]; std::memset(path, 0, sizeof(path)); - reinterpret_cast(&g_session)->IconPath(path, this->unknown_00AC.c_str(), 0); + g_session.IconPath(path, this->unknown_00AC.c_str(), 0); CRes* res = ResourceMgr::Instance().Load(Resolve(path)); if (!res) { return; diff --git a/Source/UI/CashShop/UICashShopWnd.cpp b/Source/UI/CashShop/UICashShopWnd.cpp index ba051f47..33b7f3ce 100644 --- a/Source/UI/CashShop/UICashShopWnd.cpp +++ b/Source/UI/CashShop/UICashShopWnd.cpp @@ -650,9 +650,8 @@ void UICashShopWnd_CartItem::Slot26(int, int) { // FUNCTION: fn_09545 void UICashShopWnd_CartItem::Slot25(int, int) { if (this->m_item.unknown_0000[1] != 0) { - ItemDescriptions descriptions{g_itemDescriptions}; static_cast(g_modeMgr.GetGameMode()) - ->drag.BeginItem(g_windowMgr, descriptions, 4, this->m_item, this->m_item.quantity, -1); + ->drag.BeginItem(g_windowMgr, 4, this->m_item, this->m_item.quantity, -1); } } @@ -660,8 +659,7 @@ void UICashShopWnd_CartItem::Slot25(int, int) { // FUNCTION: fn_09546 void UICashShopWnd_Item::Slot25(int, int) { if (this->m_item.unknown_0000[1] != 0) { - ItemDescriptions descriptions{g_itemDescriptions}; - static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, descriptions, 6, this->m_item, 1, -1); + static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, 6, this->m_item, 1, -1); } } diff --git a/Source/UI/Edit/UIEditCtrl.cpp b/Source/UI/Edit/UIEditCtrl.cpp index 12c74ab2..59610e0b 100644 --- a/Source/UI/Edit/UIEditCtrl.cpp +++ b/Source/UI/Edit/UIEditCtrl.cpp @@ -1164,8 +1164,7 @@ void UIItemWnd::Slot32(int x, int y) { } item = LookupClientItemByIdentity(g_session.m_inventoryItems, item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 1, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 1, item, item.quantity, -1); if (mode->ConfirmDraggedItemUse()) { return; } @@ -1230,8 +1229,7 @@ void UIMerchantItemPurchaseWnd::Slot32(int x, int y) { if (HIBYTE(GetAsyncKeyState(VK_MENU))) { if (g_windowMgr.unknown_0300) { item = g_session.FindItem1760ByItemId(item.itemId.c_str()); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 13, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 13, item, item.quantity, -1); reinterpret_cast(g_windowMgr.unknown_0300)->SendMsg(nullptr, 38, 0, 0, 0, 0); } } else { @@ -1257,8 +1255,7 @@ void UIMerchantItemShopWnd::Slot32(int x, int y) { if (HIBYTE(GetAsyncKeyState(VK_MENU))) { if (g_windowMgr.unknown_0308) { - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 12, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 12, item, item.quantity, -1); reinterpret_cast(g_windowMgr.unknown_0308)->SendMsg(nullptr, 38, 0, 0, 0, 0); } } else { @@ -1308,13 +1305,11 @@ void UIMerchantMirrorItemWnd::Slot32(int x, int y) { if (HIBYTE(GetAsyncKeyState(VK_MENU))) { if (g_windowMgr.unknown_02FC) { item = g_session.FindItem1750(item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 11, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 11, item, item.quantity, -1); reinterpret_cast(g_windowMgr.unknown_02FC)->SendMsg(nullptr, 38, 0, 0, 0, 0); } else if (g_windowMgr.unknown_040C) { item = g_session.FindItem1750(item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 20, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 20, item, item.quantity, -1); reinterpret_cast(g_windowMgr.unknown_040C)->SendMsg(nullptr, 38, 0, 0, 0, 0); } } else { @@ -1334,14 +1329,12 @@ void UIMerchantShopMakeWnd::Slot32(int x, int y) { if (HIBYTE(GetAsyncKeyState(VK_MENU))) { if (g_windowMgr.unknown_02F8) { item = g_session.FindItem1768(item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - gameMode->drag.BeginItem(g_windowMgr, descriptions, 10, item, item.quantity, -1); + gameMode->drag.BeginItem(g_windowMgr, 10, item, item.quantity, -1); reinterpret_cast(g_windowMgr.unknown_02F8)->SendMsg(nullptr, 38, 0, 0, 0, 0); g_windowMgr.SetFocus(nullptr); } else if (g_windowMgr.unknown_0410) { item = g_session.FindItem1768(item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - gameMode->drag.BeginItem(g_windowMgr, descriptions, 19, item, item.quantity, -1); + gameMode->drag.BeginItem(g_windowMgr, 19, item, item.quantity, -1); reinterpret_cast(g_windowMgr.unknown_0410)->SendMsg(nullptr, 38, 0, 0, 0, 0); } } else { @@ -1391,7 +1384,6 @@ void UIItemBaseWnd::Paint() { } } - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; @@ -1408,9 +1400,9 @@ void UIItemBaseWnd::Paint() { const int x = visible % this->columns * 32 + 44; if (this->showQuantity != 0) { - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); } else { - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), x, top + 21, *it, 0); } if (it->unknown_0088 > 0) { @@ -2841,8 +2833,7 @@ int UIMerchantShopMakeWnd::CommitPrice(int next) { ITEM_INFO item = g_session.GetItem1768At(this->editIndex); char name[128]; int capacity = 128; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); std::string message = FormatOwnedString(LookupMessage(2473), name); const int high = static_cast(price / std::atoi(LookupMessage(2474))); @@ -2897,8 +2888,7 @@ void UIMerchantShopMakeWnd::PrintBuyList() { for (unsigned index = 0; index < this->items.size(); ++index, ++it) { int capacity = 256; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(*it, name, capacity, 0); + it->sub_6D5810(name, capacity, 0); std::sprintf(text, "%s ", this->priceEdits[index]->Text()); g_session.IsNumberWithCommas(text); @@ -4305,8 +4295,7 @@ void UIMerchantItemShopWnd::Slot25(int x, int y) { ITEM_INFO item = this->GetItemByIndex(this->hovered); if (item.unknown_0000[1] > 0) { - ItemDescriptions descriptions{g_itemDescriptions}; - static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, descriptions, 12, item, 1, -1); + static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, 12, item, 1, -1); } } } @@ -5517,8 +5506,7 @@ void UIItemPurchaseWnd::Slot25(int x, int y) { if (item.unknown_0000[1] > 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); item = g_session.FindItem1720ByItemId(item.itemId.c_str()); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 4, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 4, item, item.quantity, -1); } } @@ -5553,8 +5541,7 @@ void UIItemSellWnd2::Slot25(int x, int y) { if (item.unknown_0000[1] > 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); item = g_session.FindItem1730(item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 5, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 5, item, item.quantity, -1); } } @@ -5589,8 +5576,7 @@ void UIItemSellWnd::Slot25(int x, int y) { if (item.unknown_0000[1] > 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); item = g_session.FindItem1730(item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 5, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 5, item, item.quantity, -1); } } @@ -5625,8 +5611,7 @@ void UIItemShopWnd2::Slot25(int x, int y) { if (item.unknown_0000[1] > 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); const ITEM_INFO owned = LookupClientItemByIdentity(g_session.m_inventoryItems, item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 3, item, owned.unknown_0000[1] > 0 ? item.quantity : 1, -1); + mode->drag.BeginItem(g_windowMgr, 3, item, owned.unknown_0000[1] > 0 ? item.quantity : 1, -1); } } @@ -5653,8 +5638,7 @@ void UIItemShopWnd::Slot25(int x, int y) { if (item.unknown_0000[1] > 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); const ITEM_INFO owned = LookupClientItemByIdentity(g_session.m_inventoryItems, item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 3, item, owned.unknown_0000[1] > 0 ? item.quantity : 1, -1); + mode->drag.BeginItem(g_windowMgr, 3, item, owned.unknown_0000[1] > 0 ? item.quantity : 1, -1); } } @@ -5670,8 +5654,7 @@ void UIItemStoreFindWnd::Slot25(int x, int y) { if (item.unknown_0000[1] > 0 && item.unknown_0074[2] == 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); item = g_session.FindItem1738(item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 6, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 6, item, item.quantity, -1); } } @@ -5687,8 +5670,7 @@ void UIItemStoreSubWnd::Slot25(int x, int y) { if (item.unknown_0000[1] > 0 && item.unknown_0074[2] == 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); item = g_session.FindItem1738(item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 6, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 6, item, item.quantity, -1); } } @@ -5708,8 +5690,7 @@ void UIItemStoreWnd::Slot25(int x, int y) { if (item.unknown_0000[1] > 0 && item.unknown_0074[2] == 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); item = g_session.FindItem1738(item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 6, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 6, item, item.quantity, -1); } } @@ -5736,8 +5717,7 @@ void UIMerchantItemPurchaseWnd::Slot25(int x, int y) { if (item.unknown_0000[1] > 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); item = g_session.FindItem1760ByItemId(item.itemId.c_str()); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, this->unknown_0108 != 0 ? 21 : 13, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, this->unknown_0108 != 0 ? 21 : 13, item, item.quantity, -1); } } @@ -5757,9 +5737,8 @@ void UIMerchantMirrorItemWnd::Slot25(int x, int y) { if (item.unknown_0000[1] > 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); item = g_session.FindItem1750(item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; mode->drag.BeginItem( - g_windowMgr, descriptions, this->unknown_00F4 == 1 ? 20 : this->unknown_00F4 == 2 ? 22 : 11, item, item.quantity, -1 + g_windowMgr, this->unknown_00F4 == 1 ? 20 : this->unknown_00F4 == 2 ? 22 : 11, item, item.quantity, -1 ); } } @@ -5781,8 +5760,7 @@ void UIMerchantShopMakeWnd::Slot25(int x, int y) { if (item.unknown_0000[1] > 0) { CGameMode* gameMode = static_cast(g_modeMgr.GetGameMode()); item = g_session.FindItem1768(item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - gameMode->drag.BeginItem(g_windowMgr, descriptions, this->mode != 0 ? 19 : 10, item, item.quantity, -1); + gameMode->drag.BeginItem(g_windowMgr, this->mode != 0 ? 19 : 10, item, item.quantity, -1); } } @@ -6843,7 +6821,6 @@ void UIItemStoreFindWnd::Paint() { SkinPaletteChannels(ResourceMgr::Instance(), 2, 2, fillRed, fillGreen, fillBlue); this->FillRegion(72, 17, columns * 32 - 32, rows * 32, RGB(fillRed, fillGreen, fillBlue)); - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; @@ -6860,7 +6837,7 @@ void UIItemStoreFindWnd::Paint() { const int left = visible % this->columns * 32 + 10; const int width = this->geometry.width - left - 66; const int x = left + 4; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); this->DrawWrappedItemName(left + 40, top + 29, width, &*it, 0, 0, 12); if (it->unknown_0088 > 0) { @@ -6902,7 +6879,6 @@ void UIItemStoreSubWnd::Paint() { SkinPaletteChannels(ResourceMgr::Instance(), 2, 2, fillRed, fillGreen, fillBlue); this->FillRegion(72, 17, columns * 32 - 32, rows * 32, RGB(fillRed, fillGreen, fillBlue)); - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; @@ -6919,7 +6895,7 @@ void UIItemStoreSubWnd::Paint() { const int left = visible % this->columns * 32 + 10; const int width = this->geometry.width - left - 66; const int x = left + 4; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); this->DrawWrappedItemName(left + 40, top + 29, width, &*it, 0, 0, 12); if (it->unknown_0088 > 0) { @@ -6976,7 +6952,6 @@ void UIItemPurchaseWnd::Paint() { DrawItemSlotBackground(*this, 40, y); } - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; @@ -6998,7 +6973,7 @@ void UIItemPurchaseWnd::Paint() { } const int x = column + 44; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); int nameWidth = 110; const int amount = static_cast(it->unknown_0014[0]); @@ -7105,7 +7080,6 @@ void UIItemSellWnd::Paint() { SkinPaletteChannels(ResourceMgr::Instance(), 2, 2, fillRed, fillGreen, fillBlue); this->FillRegion(72, 17, columns * 32 - 32, slotRows * 32, RGB(fillRed, fillGreen, fillBlue)); - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; @@ -7127,7 +7101,7 @@ void UIItemSellWnd::Paint() { } const int x = column + 44; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); int nameWidth = 100; const int amount = static_cast(it->unknown_0014[0]); @@ -7214,7 +7188,6 @@ void UIItemShopWnd::Paint() { this->FillRegion(40, slotRows * 32 - 15, 32, 32, RGB(red, green, blue)); } - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; @@ -7236,7 +7209,7 @@ void UIItemShopWnd::Paint() { } const int x = column + 44; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); int nameWidth = 100; const int amount = static_cast(it->unknown_0014[0]); @@ -7368,7 +7341,6 @@ void UIItemStoreWnd::Paint() { SkinPaletteChannels(ResourceMgr::Instance(), 2, 2, fillRed, fillGreen, fillBlue); this->FillRegion(72, 17, columns * 32 - 32, slotRows * 32, RGB(fillRed, fillGreen, fillBlue)); - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; @@ -7384,7 +7356,7 @@ void UIItemStoreWnd::Paint() { const int top = visible / this->columns * 32; const int column = visible % this->columns * 32; const int x = column + 44; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); this->DrawWrappedItemName(column + 80, top + 29, 180, &*it, 0, 0, 12); if (it->unknown_0088 > 0) { @@ -7448,7 +7420,6 @@ void UIMerchantItemPurchaseWnd::Paint() { SkinPaletteChannels(ResourceMgr::Instance(), 2, 2, fillRed, fillGreen, fillBlue); this->FillRegion(72, 17, columns * 32 - 32, slotRows * 32, RGB(fillRed, fillGreen, fillBlue)); - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; @@ -7466,7 +7437,7 @@ void UIMerchantItemPurchaseWnd::Paint() { } const int x = column + 44; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); this->DrawWrappedItemName(column + 76, top + 29, 90, &*it, 0, 0, 12); if (it->unknown_0088 > 0) { @@ -7648,7 +7619,6 @@ void UIMerchantShopMakeWnd::Paint() { } this->DrawTextAt(5, messageY, message, 0, 0, 12, 0xFF, 0, 0); - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; @@ -7664,7 +7634,7 @@ void UIMerchantShopMakeWnd::Paint() { const int top = visible / this->columns * 42; const int column = visible % this->columns * 42; const int x = column + 7; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 48, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 48, *it, 0, 0); this->DrawWrappedItemName(column + 39, top + 57, 100, &*it, 0, 0, 12); if (it->unknown_0088 > 0) { @@ -8293,7 +8263,6 @@ void UIMerchantItemShopWnd::Paint() { this->DrawTextAt(16, 2, title, 0, 0, 12, 0, 0, 0); } - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; @@ -8319,10 +8288,10 @@ void UIMerchantItemShopWnd::Paint() { this->TextWidth(price, 0, 0, 12, 0, 0) - 18; this->DrawTextAt(quantityX, top + 29, price, 0, 0, 12, 0xFF, 0, 0); x = left + 4; - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), x, top + 21, *it, 0); } else { x = column + 44; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); } if (it->unknown_0088 > 0) { @@ -8449,7 +8418,6 @@ void UIMerchantShopMakeWnd::PrintSellList() { const ITEM_INFO& item = *it; char* cursor = name; int capacity = 256; - ItemDescriptions descriptions{g_itemDescriptions}; if (item.unknown_0060 != 0) { cursor += item.Refine(cursor, capacity, 1); @@ -8457,16 +8425,16 @@ void UIMerchantShopMakeWnd::PrintSellList() { if (item.HasCards()) { cursor += item.Prefixes(cursor, capacity, 1); - cursor += descriptions.Name(item, cursor, capacity, 1); + cursor += item.sub_6D5810(cursor, capacity, 1); cursor += item.Suffixes(cursor, capacity, 1); item.Slots(cursor, capacity, 1); } else if (item.HasSpecialCard()) { cursor += item.Star(cursor, capacity, 1); cursor += item.Creator(cursor, capacity, 1); cursor += item.Element(cursor, capacity, 1); - descriptions.Name(item, cursor, capacity, 1); + item.sub_6D5810(cursor, capacity, 1); } else { - cursor += descriptions.Name(item, cursor, capacity, 1); + cursor += item.sub_6D5810(cursor, capacity, 1); item.Slots(cursor, capacity, 1); } @@ -8511,8 +8479,7 @@ void UIItemWnd::Slot25(int x, int y) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); if (item.unknown_0074[2] == 0) { item = LookupClientItemByIdentity(g_session.m_inventoryItems, item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 1, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 1, item, item.quantity, -1); if (HIBYTE(GetAsyncKeyState(VK_SHIFT))) { if (g_windowMgr.GetHoverWindow() && item.identified != 0) { @@ -8549,8 +8516,7 @@ void UIMerchantItemWnd::Slot25(int x, int y) { if (item.unknown_0000[1] > 0 && !g_windowMgr.unknown_02FC && item.unknown_0074[2] == 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); item = g_session.FindItem1740(item.unknown_0000[1]); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, 9, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 9, item, item.quantity, -1); if (HIBYTE(GetAsyncKeyState(VK_SHIFT))) { if (g_windowMgr.GetHoverWindow() && item.identified != 0) { @@ -8633,7 +8599,6 @@ void UIItemSellWnd2::Paint() { SkinPaletteChannels(ResourceMgr::Instance(), 2, 2, fillRed, fillGreen, fillBlue); this->FillRegion(72, 17, columns * 32 - 32, slotRows * 32, RGB(fillRed, fillGreen, fillBlue)); - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; @@ -8655,7 +8620,7 @@ void UIItemSellWnd2::Paint() { } const int x = column + 44; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); this->DrawFittedItemName(column + 76, top + 29, &*it, 0, 0, 12, 0); if (it->unknown_0088 > 0) { @@ -8712,7 +8677,6 @@ void UIItemShopWnd2::Paint() { SkinPaletteChannels(ResourceMgr::Instance(), 2, 2, fillRed, fillGreen, fillBlue); this->FillRegion(72, 17, columns * 32 - 32, slotRows * 32, RGB(fillRed, fillGreen, fillBlue)); - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; @@ -8734,7 +8698,7 @@ void UIItemShopWnd2::Paint() { } const int x = column + 44; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); this->DrawFittedItemName(column + 76, top + 29, &*it, 0, 0, 12, 0); if (it->unknown_0088 > 0) { @@ -8978,7 +8942,6 @@ void UIItemWnd::Paint() { } } - ItemDescriptions descriptions{g_itemDescriptions}; visible = 0; index = 0; for (auto it = this->items.begin(); it != this->items.end(); ++it, ++index) { @@ -8993,7 +8956,7 @@ void UIItemWnd::Paint() { const int top = visible / this->columns * 32; const int x = visible % this->columns * 32 + 44; const int y = top + 21; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, y, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, y, *it, 0, 0); if (it->unknown_0088 > 0) { this->DrawBitmap( diff --git a/Source/UI/Item/UIMerchantItemLogWnd.cpp b/Source/UI/Item/UIMerchantItemLogWnd.cpp index cab133d0..ad33a9bf 100644 --- a/Source/UI/Item/UIMerchantItemLogWnd.cpp +++ b/Source/UI/Item/UIMerchantItemLogWnd.cpp @@ -103,7 +103,6 @@ void UIMerchantItemLogWnd::Paint() { DrawItemSlotBackground(*this, 40, y); } - ItemDescriptions descriptions{g_itemDescriptions}; auto it = this->items.begin(); auto log = this->logs.begin(); @@ -122,7 +121,7 @@ void UIMerchantItemLogWnd::Paint() { const int top = visible / this->columns * 32; const int x = visible % this->columns * 32 + 44; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); if (it->unknown_0088 > 0) { this->DrawBitmap( diff --git a/Source/UI/Item/UIParaItemShopWnd.cpp b/Source/UI/Item/UIParaItemShopWnd.cpp index 3323e176..c92ead5f 100644 --- a/Source/UI/Item/UIParaItemShopWnd.cpp +++ b/Source/UI/Item/UIParaItemShopWnd.cpp @@ -709,7 +709,6 @@ void UIParaItemShopWnd::Paint() { DrawItemSlotBackground(*this, 30, y); } - ItemDescriptions descriptions{g_itemDescriptions}; int index = 0; int visible = 0; @@ -730,9 +729,9 @@ void UIParaItemShopWnd::Paint() { } if (this->unknown_00F8 == 1 || it->quantity != 0) { - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, 34, top + 4, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), 34, top + 4, *it, 0, 0); } else { - DrawItemWithQuantityAuxiliary(*this, descriptions, 1, 34, top + 4, *it, 0, 0); + DrawItemWithQuantityAuxiliary(*this, 1, 34, top + 4, *it, 0, 0); } this->DrawWrappedItemName(70, top + 12, 120, &*it, 0, 0, 12); @@ -833,7 +832,6 @@ void UIParaResultWnd::Paint() { this->FillRegion(72, 17, columns * 32 - 32, slots * 32, RGB(red, green, blue)); } - ItemDescriptions descriptions{g_itemDescriptions}; int index = 0; int visible = 0; @@ -855,7 +853,7 @@ void UIParaResultWnd::Paint() { } const int x = column + 44; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, top + 21, *it, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, top + 21, *it, 0, 0); this->DrawWrappedItemName(column + 76, top + 29, 110, &*it, 0, 0, 12); if (it->unknown_0088 > 0) { diff --git a/Source/UI/Items/MergeItemWnd.cpp b/Source/UI/Items/MergeItemWnd.cpp index a2ec44f3..1a097df8 100644 --- a/Source/UI/Items/MergeItemWnd.cpp +++ b/Source/UI/Items/MergeItemWnd.cpp @@ -160,9 +160,8 @@ void CMergeItemWnd::Paint() { if (item.unknown_0000[1] != 0) { box->SetHidden(false); box->Move(this->m_checkOffsetX + x, this->m_checkOffsetY + y); - ItemDescriptions descriptions{g_itemDescriptions}; DrawItemWithQuantity( - *this, ResourceMgr::Instance(), descriptions, this->m_slotOffsetX + x, this->m_slotOffsetY + y, item, 0, 0 + *this, ResourceMgr::Instance(), this->m_slotOffsetX + x, this->m_slotOffsetY + y, item, 0, 0 ); } } diff --git a/Source/UI/Items/UIMakeTargetProcessWnd.cpp b/Source/UI/Items/UIMakeTargetProcessWnd.cpp index 056bc522..7fbb7c6c 100644 --- a/Source/UI/Items/UIMakeTargetProcessWnd.cpp +++ b/Source/UI/Items/UIMakeTargetProcessWnd.cpp @@ -133,13 +133,12 @@ void UIMakeTargetProcessWnd::Paint() { case 1000: break; default: { - ItemDescriptions descriptions{g_itemDescriptions}; const ITEM_INFO* material = this->materials; for (int x = 8; x < 104; x += 32, ++material) { auto* bar = static_cast(ResourceMgr::Instance().Load(Resolve("유저인터페이스\\basic_interface\\btnbar_right2.bmp"))); DrawItemSlotBackground(*this, x - 4, this->geometry.height - bar->image.height - 32); if (material->unknown_0000[1] != 0) { - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, x, this->geometry.height - bar->image.height - 28, *material, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), x, this->geometry.height - bar->image.height - 28, *material, 0); } } break; diff --git a/Source/UI/Items/UISwapEquipmentWnd.cpp b/Source/UI/Items/UISwapEquipmentWnd.cpp index 4a0c53ad..512fd983 100644 --- a/Source/UI/Items/UISwapEquipmentWnd.cpp +++ b/Source/UI/Items/UISwapEquipmentWnd.cpp @@ -148,7 +148,7 @@ void UISwapEquipmentWnd::sub_82FD90() { if (slot < 8) { const int iconX = xCoords[slot / 4 + 2]; std::memset(path, 0, sizeof(path)); - ItemDescriptions{g_itemDescriptions}.IconPath(path, item.itemId.c_str(), 1); + g_session.IconPath(path, item.itemId.c_str(), 1); CBitmapRes* bitmap = static_cast(ResourceMgr::Instance().Load(Resolve(path))); const int row = slot & 3; if (bitmap) { @@ -164,7 +164,7 @@ void UISwapEquipmentWnd::sub_82FD90() { } else { const int iconX = xCoords[(slot & 3) + 2]; std::memset(path, 0, sizeof(path)); - ItemDescriptions{g_itemDescriptions}.IconPath(path, item.itemId.c_str(), 1); + g_session.IconPath(path, item.itemId.c_str(), 1); CBitmapRes* bitmap = static_cast(ResourceMgr::Instance().Load(Resolve(path))); if (bitmap) { this->DrawAuxiliary(1, iconX, 22, &bitmap->image, true, false); @@ -403,8 +403,7 @@ void UISwapEquipmentWnd::Slot25(int x, int y) { const EquipSlots slots = g_session.GetEquipSlots(item.unknown_0000[3]); CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); - ItemDescriptions descriptions{g_itemDescriptions}; - mode->drag.BeginItem(g_windowMgr, descriptions, this->unknown_00BC == 2 ? 18 : 17, item, item.quantity, slots.values[2]); + mode->drag.BeginItem(g_windowMgr, this->unknown_00BC == 2 ? 18 : 17, item, item.quantity, slots.values[2]); if (HIBYTE(GetAsyncKeyState(VK_SHIFT))) { if (g_windowMgr.GetHoverWindow() && item.identified != 0) { diff --git a/Source/UI/Lists/UIScrollBar.cpp b/Source/UI/Lists/UIScrollBar.cpp index b595f645..bc4d3f2b 100644 --- a/Source/UI/Lists/UIScrollBar.cpp +++ b/Source/UI/Lists/UIScrollBar.cpp @@ -724,8 +724,7 @@ void UIBasicItemCtrl::DrawItemIcon(int x, int y, int, bool compact) { } char path[128]; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.IconPath(path, FormatOwnedString("%d", id).c_str(), this->m_item.identified); + g_session.IconPath(path, FormatOwnedString("%d", id).c_str(), this->m_item.identified); auto* bitmap = static_cast(ResourceMgr::Instance().Load(Resolve(path))); if (bitmap) { this->DrawBitmap(x, y, &bitmap->image, true); @@ -1815,7 +1814,6 @@ std::string UIChatHisBox::RenderItemLinks(const char* lineText, std::string& sou std::vector buttons; unsigned position = 0; unsigned previous = 0; - ItemDescriptions descriptions{g_itemDescriptions}; for (;;) { std::string encoded; @@ -1852,7 +1850,7 @@ std::string UIChatHisBox::RenderItemLinks(const char* lineText, std::string& sou std::vector fields; DecodeItemLinkFields(encoded, fields); ITEM_INFO item; - if (ItemFromLinkFields(fields, item, descriptions)) { + if (ItemFromLinkFields(fields, item)) { const std::string label = this->BracketName(item.DisplayName(0)); if (result.size() + label.size() > std::strlen(lineText)) { previous += static_cast(prefix.size()); diff --git a/Source/UI/Rodex/UIRodexComposeWnd.cpp b/Source/UI/Rodex/UIRodexComposeWnd.cpp index f70ff287..467985e9 100644 --- a/Source/UI/Rodex/UIRodexComposeWnd.cpp +++ b/Source/UI/Rodex/UIRodexComposeWnd.cpp @@ -193,8 +193,7 @@ void UIRodexComposeWnd::Slot25(int x, int y) { ITEM_INFO item = this->GetItemAtPoint(x, y); if (item.unknown_0000[1] > 0) { - ItemDescriptions descriptions{g_itemDescriptions}; - static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, descriptions, 15, item, item.quantity, -1); + static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, 15, item, item.quantity, -1); } } @@ -444,7 +443,6 @@ int UIRodexComposeWnd::SendMsg(UIWindow* sender, int message, std::intptr_t argu // OFFSET: 0x00800530 // FUNCTION: fn_10007 void UIRodexComposeWnd::Paint() { - ItemDescriptions descriptions{g_itemDescriptions}; this->ClearSurface(0x00FF00FF); const auto* bg = &static_cast(ResourceMgr::Instance().Load(Resolve("유저인터페이스\\basic_interface\\rodexsystem\\renewal\\bg_rodex_read.bmp")))->image; @@ -517,9 +515,9 @@ void UIRodexComposeWnd::Paint() { const auto* shadowOn = &static_cast(ResourceMgr::Instance().Load(Resolve("유저인터페이스\\basic_interface\\rodexsystem\\renewal\\shadow_item_on.bmp")))->image; this->DrawBitmap(itemX - 4, 319, shadowOn, true); if (this->unknown_00F8 <= g_session.m_zeny) { - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, itemX, 309, item, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), itemX, 309, item, 0, 0); } else { - DrawItemWithQuantityAuxiliary(*this, descriptions, 2, itemX, 309, item, item.identified, 0); + DrawItemWithQuantityAuxiliary(*this, 2, itemX, 309, item, item.identified, 0); } if (item.unknown_0088 > 0) { std::string gradeStr = FormatOwnedString("유저인터페이스\\grade_enchant\\grade_icon%d.bmp", static_cast(item.unknown_0088)); diff --git a/Source/UI/RuneSystem/UIRuneSystemWnd.cpp b/Source/UI/RuneSystem/UIRuneSystemWnd.cpp index 2fc5f2b5..ac345dc4 100644 --- a/Source/UI/RuneSystem/UIRuneSystemWnd.cpp +++ b/Source/UI/RuneSystem/UIRuneSystemWnd.cpp @@ -1066,8 +1066,7 @@ void UIDecomlist::Paint() { ITEM_INFO item = LookupClientItem(g_session.m_inventoryItems, itemId, 0); char text[128]; std::memset(text, 0, sizeof(text)); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.IconPath(text, item.itemId.c_str(), 1); + g_session.IconPath(text, item.itemId.c_str(), 1); CBitmapRes* icon = static_cast(ResourceMgr::Instance().Load(Resolve(text))); if (!icon) { icon = static_cast(ResourceMgr::Instance().Load(Resolve("유저인터페이스\\item\\사과.bmp"))); @@ -1076,7 +1075,7 @@ void UIDecomlist::Paint() { std::memset(text, 0, sizeof(text)); int capacity = sizeof(text); - descriptions.Name(item, text, capacity, 0); + item.sub_6D5810(text, capacity, 0); this->DrawTextAt(57, y + 8, text, 0, 0, 13, 0, 0, 0); this->DrawTextAt(58, y + 28, FormatOwnedString("%d", item.quantity).c_str(), 0, 0, 13, 0, 0, 0); } @@ -1319,8 +1318,7 @@ void UIRuneSystem_ActiveWnd::Paint() { item.identified = 1; char path[128]; std::memset(path, 0, sizeof(path)); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.IconPath(path, item.itemId.c_str(), 1); + g_session.IconPath(path, item.itemId.c_str(), 1); CBitmapRes* icon = static_cast(ResourceMgr::Instance().Load(Resolve(path))); if (!icon) { icon = static_cast(ResourceMgr::Instance().Load(Resolve("유저인터페이스\\item\\사과.bmp"))); @@ -1362,8 +1360,7 @@ void UIRuneSystem_DecomItemWnd::Paint() { item.identified = 1; char path[128]; std::memset(path, 0, sizeof(path)); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.IconPath(path, item.itemId.c_str(), 1); + g_session.IconPath(path, item.itemId.c_str(), 1); CBitmapRes* icon = static_cast(ResourceMgr::Instance().Load(Resolve(path))); if (!icon) { icon = static_cast(ResourceMgr::Instance().Load(Resolve("유저인터페이스\\item\\사과.bmp"))); @@ -1405,8 +1402,7 @@ void UIRuneSystem_DecomResultWnd::Paint() { item.identified = 1; char path[128]; std::memset(path, 0, sizeof(path)); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.IconPath(path, item.itemId.c_str(), 1); + g_session.IconPath(path, item.itemId.c_str(), 1); CBitmapRes* icon = static_cast(ResourceMgr::Instance().Load(Resolve(path))); if (!icon) { icon = static_cast(ResourceMgr::Instance().Load(Resolve("유저인터페이스\\item\\사과.bmp"))); @@ -2063,8 +2059,7 @@ void UIRuneSet_Info::Paint() { item.SetItemId(static_cast(itemId)); char iconPath[128]; std::memset(iconPath, 0, sizeof(iconPath)); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.IconPath(iconPath, item.itemId.c_str(), 1); + g_session.IconPath(iconPath, item.itemId.c_str(), 1); CBitmapRes* icon = static_cast(ResourceMgr::Instance().Load(Resolve(iconPath))); if (icon) { this->DrawBitmap(rewardX[index], rewardY[index], reinterpret_cast(icon), true); @@ -2152,8 +2147,7 @@ void UIRune_Decom::Paint() { item.SetItemId((*this->m_decomList)[index].m_itemId); char iconPath[128]; std::memset(iconPath, 0, sizeof(iconPath)); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.IconPath(iconPath, item.itemId.c_str(), 1); + g_session.IconPath(iconPath, item.itemId.c_str(), 1); CBitmapRes* icon = static_cast(ResourceMgr::Instance().Load(Resolve(iconPath))); if (!icon) { icon = static_cast(ResourceMgr::Instance().Load(Resolve("유저인터페이스\\item\\사과.bmp"))); diff --git a/Source/UI/Shop/ItemDrawing.cpp b/Source/UI/Shop/ItemDrawing.cpp index b9c84f2a..d2b4a831 100644 --- a/Source/UI/Shop/ItemDrawing.cpp +++ b/Source/UI/Shop/ItemDrawing.cpp @@ -1,3 +1,4 @@ +#include "Client/Session.h" #include "Contents/Items/ItemDescription.h" #include "Contents/Items/ItemInfo.h" #include "Resource/Bitmap/BitmapResource.h" @@ -11,11 +12,11 @@ // OFFSET: 0x008A8D30 // FUNCTION: fn_11716 void DrawItemWithQuantityAuxiliary( - UIWindow& window, ItemDescriptions& descriptions, int mode, int x, int y, const ITEM_INFO& item, + UIWindow& window, int mode, int x, int y, const ITEM_INFO& item, unsigned char identified, unsigned char plain ) { char text[128] = {}; - descriptions.IconPath(text, item.itemId.c_str(), identified); + g_session.IconPath(text, item.itemId.c_str(), identified); CBitmapRes* bitmap = static_cast(ResourceMgr::Instance().Load(Resolve(text))); window.DrawAuxiliary(mode, x, y, bitmap ? &bitmap->image : nullptr, true, false); @@ -38,9 +39,9 @@ void DrawItemWithQuantityAuxiliary( // OFFSET: 0x008A8EE0 // FUNCTION: fn_11717 -void DrawItemIcon(UIWindow& window, ResourceMgr& resources, ItemDescriptions& descriptions, int x, int y, const ITEM_INFO& item, unsigned char identified) { +void DrawItemIcon(UIWindow& window, ResourceMgr& resources, int x, int y, const ITEM_INFO& item, unsigned char identified) { char path[128]; - descriptions.IconPath(path, item.itemId.c_str(), item.identified != 0 || identified != 0); + g_session.IconPath(path, item.itemId.c_str(), item.identified != 0 || identified != 0); CBitmapRes* bitmap = static_cast(resources.Load(path)); if (bitmap) { @@ -50,9 +51,9 @@ void DrawItemIcon(UIWindow& window, ResourceMgr& resources, ItemDescriptions& de // OFFSET: 0x008A8F80 // FUNCTION: fn_11718 -void DrawItemIconById(UIWindow& window, ItemDescriptions& descriptions, int x, int y, const char* id, unsigned char identified) { +void DrawItemIconById(UIWindow& window, int x, int y, const char* id, unsigned char identified) { char path[128]; - descriptions.IconPath(path, id, identified); + g_session.IconPath(path, id, identified); CBitmapRes* bitmap = static_cast(ResourceMgr::Instance().Load(Resolve(path))); if (bitmap) { @@ -70,10 +71,10 @@ void DrawItemSlotBackground(UIWindow& window, int x, int y) { // OFFSET: 0x008A9040 // FUNCTION: fn_11720 void DrawItemWithQuantity( - UIWindow& window, ResourceMgr& resources, ItemDescriptions& descriptions, int x, int y, const ITEM_INFO& item, + UIWindow& window, ResourceMgr& resources, int x, int y, const ITEM_INFO& item, unsigned char identified, unsigned char plain ) { - DrawItemIcon(window, resources, descriptions, x, y, item, identified); + DrawItemIcon(window, resources, x, y, item, identified); if (item.quantity == -1 || item.quantity == 0) { return; } diff --git a/Source/UI/Shop/ItemDrawing.h b/Source/UI/Shop/ItemDrawing.h index 04830dfa..5c5f519a 100644 --- a/Source/UI/Shop/ItemDrawing.h +++ b/Source/UI/Shop/ItemDrawing.h @@ -2,19 +2,18 @@ #define RAGNAROK_SOURCE_UI_SHOP_ITEMDRAWING_H struct ITEM_INFO; -struct ItemDescriptions; class UIWindow; class ResourceMgr; -void DrawItemIcon(UIWindow& window, ResourceMgr& resources, ItemDescriptions& descriptions, int x, int y, const ITEM_INFO& item, unsigned char identified); -void DrawItemIconById(UIWindow& window, ItemDescriptions& descriptions, int x, int y, const char* id, unsigned char identified); +void DrawItemIcon(UIWindow& window, ResourceMgr& resources, int x, int y, const ITEM_INFO& item, unsigned char identified); +void DrawItemIconById(UIWindow& window, int x, int y, const char* id, unsigned char identified); void DrawItemSlotBackground(UIWindow& window, int x, int y); void DrawItemWithQuantity( - UIWindow& window, ResourceMgr& resources, ItemDescriptions& descriptions, int x, int y, const ITEM_INFO& item, + UIWindow& window, ResourceMgr& resources, int x, int y, const ITEM_INFO& item, unsigned char identified, unsigned char plain ); void DrawItemWithQuantityAuxiliary( - UIWindow& window, ItemDescriptions& descriptions, int mode, int x, int y, const ITEM_INFO& item, + UIWindow& window, int mode, int x, int y, const ITEM_INFO& item, unsigned char identified, unsigned char plain ); diff --git a/Source/UI/Shortcuts/ShortcutCooldowns.cpp b/Source/UI/Shortcuts/ShortcutCooldowns.cpp index 21614f24..5e828624 100644 --- a/Source/UI/Shortcuts/ShortcutCooldowns.cpp +++ b/Source/UI/Shortcuts/ShortcutCooldowns.cpp @@ -439,7 +439,7 @@ void UIQuickSlotWnd::Paint() { continue; } - DrawItemWithQuantity(*this, ResourceMgr::Instance(), painting.descriptions, x, 5, item, item.identified, 1); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, 5, item, item.identified, 1); if (item.unknown_0088 > 0) { const std::string name = FormatOwnedString("유저인터페이스\\grade_enchant\\grade_icon%d.bmp", item.unknown_0088); auto* grade = static_cast(ResourceMgr::Instance().Load(Resolve(name.c_str()))); @@ -834,7 +834,6 @@ void UISerachStoreInfoWnd::Paint() { const SearchStoreEntry* end = reinterpret_cast(g_session.unknown_5BD4.data() + g_session.unknown_5BD4.size()); const SearchStoreEntry* entry = reinterpret_cast(g_session.unknown_5BD4.data()) + (this->unknown_00DC - 1) * 10; - ItemDescriptions descriptions{g_itemDescriptions}; for (int row = 0; entry != end; ++entry) { if (row == 10) { break; @@ -853,7 +852,7 @@ void UISerachStoreInfoWnd::Paint() { const int top = this->unknown_00E8 * row + 100; const int y = top + 7; - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, 13, top, entry->item, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), 13, top, entry->item, 0); if (entry->item.unknown_0088 > 0) { this->DrawBitmap( 13, y + 5, diff --git a/Source/UI/Shortcuts/ShortcutPainting.cpp b/Source/UI/Shortcuts/ShortcutPainting.cpp index aae862c1..35657f8f 100644 --- a/Source/UI/Shortcuts/ShortcutPainting.cpp +++ b/Source/UI/Shortcuts/ShortcutPainting.cpp @@ -123,7 +123,7 @@ void ShortcutPainting::Paint(UIWindow& window, const ShortcutGrid& grid, const N continue; } - DrawItemIcon(window, this->resources, this->descriptions, x, y, item, static_cast(item.unknown_0060)); + DrawItemIcon(window, this->resources, x, y, item, static_cast(item.unknown_0060)); if (item.quantity != 0) { Count(window, x + 27, (y + 17), item.quantity); } @@ -152,7 +152,7 @@ void ShortcutPainting::Paint(UIWindow& window, const ShortcutGrid& grid, const N } const int x = 16 + 29 * column; - DrawItemIcon(window, this->resources, this->descriptions, x, y, item, static_cast(item.unknown_0060)); + DrawItemIcon(window, this->resources, x, y, item, static_cast(item.unknown_0060)); if (item.quantity != 0) { Count(window, x + 27, (y + 17), item.quantity); } diff --git a/Source/UI/Shortcuts/ShortcutPainting.h b/Source/UI/Shortcuts/ShortcutPainting.h index cda308d3..39b730c7 100644 --- a/Source/UI/Shortcuts/ShortcutPainting.h +++ b/Source/UI/Shortcuts/ShortcutPainting.h @@ -19,7 +19,6 @@ struct ShortcutPainting { const TextLocale& locale; ClientSkills& skills; const std::list& inventory; - ItemDescriptions& descriptions; std::list& icons; ShortcutCooldowns& cooldowns; CooldownDrawing& drawing; diff --git a/Source/UI/Shortcuts/ShortcutPress.cpp b/Source/UI/Shortcuts/ShortcutPress.cpp index 8098f68f..4e76d1cc 100644 --- a/Source/UI/Shortcuts/ShortcutPress.cpp +++ b/Source/UI/Shortcuts/ShortcutPress.cpp @@ -36,7 +36,7 @@ void ShortcutPress::Press(UIFrameWnd& window, ShortcutGrid& grid, int x, int y, } else { ITEM_INFO item = LookupClientItem(this->inventory, static_cast(slot.itemId), 1); if (item.unknown_0000[1] != 0) { - this->drag->BeginItem(this->windows, this->descriptions, 7, item, item.quantity, -1); + this->drag->BeginItem(this->windows, 7, item, item.quantity, -1); } } } else if (this->itemSlotActive) { @@ -47,7 +47,7 @@ void ShortcutPress::Press(UIFrameWnd& window, ShortcutGrid& grid, int x, int y, ITEM_INFO item = LookupClientItem(this->inventory, static_cast(slot.itemId), 1); if (item.unknown_0000[1] != 0 && this->drag) { - this->drag->BeginItem(this->windows, this->descriptions, 7, item, item.quantity, -1); + this->drag->BeginItem(this->windows, 7, item, item.quantity, -1); } } } diff --git a/Source/UI/Shortcuts/ShortcutPress.h b/Source/UI/Shortcuts/ShortcutPress.h index 47f40164..d31bcf1b 100644 --- a/Source/UI/Shortcuts/ShortcutPress.h +++ b/Source/UI/Shortcuts/ShortcutPress.h @@ -15,7 +15,6 @@ struct ModeDragState; struct ShortcutPress { ClientSkills& skills; const std::list& inventory; - ItemDescriptions& descriptions; ResourceMgr& resources; WindowManagerWindows& windows; ModeDragState*& drag; diff --git a/Source/UI/Shortcuts/UIQuickSlotWnd.cpp b/Source/UI/Shortcuts/UIQuickSlotWnd.cpp index 50a9c4d2..9510c7a6 100644 --- a/Source/UI/Shortcuts/UIQuickSlotWnd.cpp +++ b/Source/UI/Shortcuts/UIQuickSlotWnd.cpp @@ -65,7 +65,7 @@ void UIQuickSlotWnd::Slot25(int x, int y) { ITEM_INFO item = LookupClientItem(painting.inventory, static_cast(entry.id), 1); if (item.unknown_0000[1] > 0) { CGameMode* mode = static_cast(g_modeMgr.GetGameMode()); - mode->drag.BeginItem(g_windowMgr, painting.descriptions, 16, item, item.quantity, -1); + mode->drag.BeginItem(g_windowMgr, 16, item, item.quantity, -1); } } } diff --git a/Source/UI/Shortcuts/UIQuickSlotWnd.h b/Source/UI/Shortcuts/UIQuickSlotWnd.h index 2635b726..b8428145 100644 --- a/Source/UI/Shortcuts/UIQuickSlotWnd.h +++ b/Source/UI/Shortcuts/UIQuickSlotWnd.h @@ -11,7 +11,6 @@ class FontCache; struct TextLocale; struct ClientSkills; struct ITEM_INFO; -struct ItemDescriptions; class AutomaticSkills; struct QuickSlotPainting { @@ -19,7 +18,6 @@ struct QuickSlotPainting { const TextLocale& locale; ClientSkills& skills; const std::list& inventory; - ItemDescriptions& descriptions; std::list& icons; ShortcutCooldowns& cooldowns; CooldownDrawing& drawing; diff --git a/Source/UI/StylingShop/UIStylingShopWnd.cpp b/Source/UI/StylingShop/UIStylingShopWnd.cpp index b69be2a8..1cbc96f8 100644 --- a/Source/UI/StylingShop/UIStylingShopWnd.cpp +++ b/Source/UI/StylingShop/UIStylingShopWnd.cpp @@ -1267,8 +1267,7 @@ void UIShowInfoWnd::DrawPaymentItem(const int& type, const int& zeny, const int& char number[32] = {}; std::sprintf(number, "%d", id); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.IconPath(path, number, 1); + g_session.IconPath(path, number, 1); } else { strcpy_s(path, sizeof(path), "유저인터페이스\\styleshop\\icon_zeny.bmp"); } @@ -1287,8 +1286,7 @@ void UIShowInfoWnd::DrawPaymentItem(const int& type, const int& zeny, const int& memset(path, 0, sizeof(path)); char number[32] = {}; std::sprintf(number, "%d", id); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.IconPath(path, number, 1); + g_session.IconPath(path, number, 1); bitmap = static_cast(ResourceMgr::Instance().Load(Resolve(path))); } @@ -1961,8 +1959,7 @@ void UIAccessoryShowCase::AddAccessories(int& loaded, int& skipped, const char* char path[128] = {}; char id[32] = {}; std::sprintf(id, "%d", itemId); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.IconPath(path, id, 1); + g_session.IconPath(path, id, 1); UIAccBitmapButton* button = new (std::nothrow) UIAccBitmapButton(); button->SetBitmap(path, 0, 0); diff --git a/Source/UI/Text/ItemLinkDisplay.cpp b/Source/UI/Text/ItemLinkDisplay.cpp index 29d5d153..302bf1ce 100644 --- a/Source/UI/Text/ItemLinkDisplay.cpp +++ b/Source/UI/Text/ItemLinkDisplay.cpp @@ -30,8 +30,7 @@ bool UIChatHisBox::Name(const std::string& encoded, std::string& output) { DecodeItemLinkFields(encoded, fields); ITEM_INFO item; - ItemDescriptions descriptions{g_itemDescriptions}; - if (ItemFromLinkFields(fields, item, descriptions)) { + if (ItemFromLinkFields(fields, item)) { output = item.DisplayName(0); return true; } diff --git a/Source/UI/Text/NavigationLink.cpp b/Source/UI/Text/NavigationLink.cpp index 6c2d9f8a..1170d4da 100644 --- a/Source/UI/Text/NavigationLink.cpp +++ b/Source/UI/Text/NavigationLink.cpp @@ -656,8 +656,7 @@ void UIItemImage::Paint() { this->ClearSurface(0xFFFF00FF); char path[128] = {}; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.IconPath(path, this->m_itemId.c_str(), 1); + g_session.IconPath(path, this->m_itemId.c_str(), 1); CBitmapRes* bitmap = static_cast(ResourceMgr::Instance().Load(Resolve(path))); if (bitmap) { @@ -1402,8 +1401,7 @@ int CCreateLineInfo::ParseItemName(int index) { char name[260]; std::memset(name, 0, sizeof(name)); int capacity = sizeof(name); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); this->AddSegment(LINE_SEGMENT_TEXT); this->AppendText(std::string(name)); index += static_cast(digits.size()) + 9; diff --git a/Source/UI/Text/TextWrapping.cpp b/Source/UI/Text/TextWrapping.cpp index 1462491d..f56b8fb3 100644 --- a/Source/UI/Text/TextWrapping.cpp +++ b/Source/UI/Text/TextWrapping.cpp @@ -81,7 +81,7 @@ namespace { // OFFSET: 0x009B4730 // FUNCTION: fn_13833 void WrapRichText( - const char* text, std::vector& lines, int width, bool carriageReturns, ItemDescriptions& items + const char* text, std::vector& lines, int width, bool carriageReturns ) { const char* begin = text; const char* current = text; @@ -141,7 +141,7 @@ void WrapRichText( char name[260]; int capacity = sizeof(name); - items.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); lines.emplace_back(name); } } else { diff --git a/Source/UI/Text/TextWrapping.h b/Source/UI/Text/TextWrapping.h index 8a6a5842..32be6467 100644 --- a/Source/UI/Text/TextWrapping.h +++ b/Source/UI/Text/TextWrapping.h @@ -4,12 +4,11 @@ #include #include -struct ItemDescriptions; void WrapPlainText(const char* text, std::vector& lines, int width); void WrapRichText( - const char* text, std::vector& lines, int width, bool carriageReturns, ItemDescriptions& items + const char* text, std::vector& lines, int width, bool carriageReturns ); #endif diff --git a/Source/UI/Text/UIAchWnd.cpp b/Source/UI/Text/UIAchWnd.cpp index 71a61ad2..db15c4f3 100644 --- a/Source/UI/Text/UIAchWnd.cpp +++ b/Source/UI/Text/UIAchWnd.cpp @@ -655,8 +655,7 @@ void UIToolTipBitmapWnd::Paint() { info.SetItemId(item); char path[260]; std::memset(path, 0, sizeof(path)); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.IconPath(path, info.itemId.c_str(), 1); + g_session.IconPath(path, info.itemId.c_str(), 1); CBitmapRes* icon = static_cast(ResourceMgr::Instance().Load(Resolve(path))); if (icon) { this->DrawBitmap(20, 15, &icon->image, true); diff --git a/Source/UI/Text/UIBalloonText.cpp b/Source/UI/Text/UIBalloonText.cpp index 29760222..14d20386 100644 --- a/Source/UI/Text/UIBalloonText.cpp +++ b/Source/UI/Text/UIBalloonText.cpp @@ -98,8 +98,7 @@ void UIBalloonText::SetText(const char* text, int width) { this->m_lines.clear(); if (this->m_richText != 0) { - ItemDescriptions descriptions{g_itemDescriptions}; - WrapRichText(text, this->m_lines, width, false, descriptions); + WrapRichText(text, this->m_lines, width, false); } else { WrapPlainText(text, this->m_lines, width); } diff --git a/Source/UI/Text/UIBalloonText.h b/Source/UI/Text/UIBalloonText.h index dadd33e0..ebd9d4f9 100644 --- a/Source/UI/Text/UIBalloonText.h +++ b/Source/UI/Text/UIBalloonText.h @@ -8,7 +8,6 @@ class FontCache; struct TextLocale; -struct ItemDescriptions; class UIBalloonText : public UIWindow { friend class UIBalloonOpenBtn; diff --git a/Source/UI/Text/UITextViewerMessages.cpp b/Source/UI/Text/UITextViewerMessages.cpp index f963e996..591762f3 100644 --- a/Source/UI/Text/UITextViewerMessages.cpp +++ b/Source/UI/Text/UITextViewerMessages.cpp @@ -159,8 +159,7 @@ void UITextViewer::AppendText(char* text, int width, bool carriageReturns, bool const int scrollWidth = carriageReturns ? this->verticalBar->geometry.width + 2 : 0; this->WrapPixelText(display.c_str(), wrapped, this->geometry.width - scrollWidth - 4); } else { - ItemDescriptions descriptions{g_itemDescriptions}; - WrapRichText(display.c_str(), wrapped, width == 0 ? 35 : width, carriageReturns, descriptions); + WrapRichText(display.c_str(), wrapped, width == 0 ? 35 : width, carriageReturns); } for (const auto& line : wrapped) { diff --git a/Source/UI/UIBartermarketWnd.cpp b/Source/UI/UIBartermarketWnd.cpp index 86e228e8..3e2277d2 100644 --- a/Source/UI/UIBartermarketWnd.cpp +++ b/Source/UI/UIBartermarketWnd.cpp @@ -1686,7 +1686,6 @@ void UIBarterItemPurchaseWnd::Paint() { DrawItemSlotBackground(*this, 40, row * 32 + 17); } - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; std::list* items = g_barterMarketItemMgr->GetAllItems(); @@ -1705,10 +1704,10 @@ void UIBarterItemPurchaseWnd::Paint() { } const ITEM_INFO item = it->ToItemInfo(); - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x + 44, y + 21, item, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x + 44, y + 21, item, 0, 0); this->DrawItemName(x + 76, y + 29, 100, &item, 0, 0, 12); const std::string iconId = std::to_string(it->field_2c); - DrawItemIconById(*this, descriptions, this->geometry.width - 70, y + 21, iconId.c_str(), 1); + DrawItemIconById(*this, this->geometry.width - 70, y + 21, iconId.c_str(), 1); if (it->field_28 > 0) { const std::string amount = std::to_string(it->value * it->field_28); this->DrawRightAlignedText(this->geometry.width - 25, y + 29, amount.c_str(), 0, 0, 12, 0, 0); @@ -1767,7 +1766,6 @@ void UIBartermarketWnd::Paint() { DrawItemSlotBackground(*this, 40, row * 32 + 17); } - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; std::list items = *g_barterMarketItemMgr->GetItems(); @@ -1787,13 +1785,13 @@ void UIBartermarketWnd::Paint() { const ITEM_INFO item = it->ToItemInfo(); if (it->flag_38) { - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, x + 44, y + 21, item, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), x + 44, y + 21, item, 0); } else { - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x + 44, y + 21, item, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x + 44, y + 21, item, 0, 0); } this->DrawItemName(x + 76, y + 29, 120, &item, 0, 0, 12); const std::string iconId = std::to_string(it->field_2c); - DrawItemIconById(*this, descriptions, this->geometry.width - 70, y + 21, iconId.c_str(), 1); + DrawItemIconById(*this, this->geometry.width - 70, y + 21, iconId.c_str(), 1); if (it->field_28 > 0) { const std::string amount = std::to_string(it->field_28); this->DrawRightAlignedText(this->geometry.width - 25, y + 29, amount.c_str(), 0, 0, 12, 0, 0); @@ -1828,7 +1826,6 @@ void UIExpandedBartermarketWnd::Paint() { this->FillRegion(20, 17, this->geometry.width - 40, this->geometry.height - 46, RGB(red, green, blue)); this->DrawButtonBar(2, 0, 1); - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; for (std::list::iterator it = this->Entries().begin(); it != this->Entries().end(); ++it, ++index) { @@ -1847,7 +1844,7 @@ void UIExpandedBartermarketWnd::Paint() { } const ITEM_INFO item = it->ToItemInfo(); - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, 44, y + 21, item, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), 44, y + 21, item, 0, 0); this->DrawItemName(76, y + 29, 100, &item, 0, 0, 12); if (it->field_28 > 0) { @@ -1862,7 +1859,7 @@ void UIExpandedBartermarketWnd::Paint() { chunkItem.quantity = chunk->amount * it->value; chunkItem.unknown_0060 = chunk->field_4; const int chunkX = 84 + chunkIndex * 42; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, chunkX - 8, y + 49, chunkItem, 1, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), chunkX - 8, y + 49, chunkItem, 1, 0); if (chunk->field_4 > 0) { const std::string chunkAmount = FormatOwnedString("+%d", chunk->field_4); DrawOutlinedText(*this, chunkX, y + 49, chunkAmount.c_str(), 0, 0xFFFFFF, 200, 0, 12, 1, 0); @@ -1910,7 +1907,6 @@ void UIExpandedBarterItemPurchaseWnd::Paint() { this->FillRegion(20, 17, this->geometry.width - 40, this->geometry.height - 46, RGB(red, green, blue)); this->DrawButtonBar(2, 0, 1); - ItemDescriptions descriptions{g_itemDescriptions}; int visible = 0; int index = 0; for (std::list::iterator it = this->Entries().begin(); it != this->Entries().end(); ++it, ++index) { @@ -1930,11 +1926,11 @@ void UIExpandedBarterItemPurchaseWnd::Paint() { const ITEM_INFO item = it->ToItemInfo(); if (it->flag_30) { - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, 44, y + 21, item, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), 44, y + 21, item, 0); } else if (it->value == 0) { - DrawItemWithQuantityAuxiliary(*this, descriptions, 1, 44, y + 21, item, 1, 0); + DrawItemWithQuantityAuxiliary(*this, 1, 44, y + 21, item, 1, 0); } else { - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, 44, y + 21, item, 1, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), 44, y + 21, item, 1, 0); } this->DrawItemName(76, y + 29, 100, &item, 0, 0, 12); if (it->field_28 > 0) { @@ -1950,9 +1946,9 @@ void UIExpandedBarterItemPurchaseWnd::Paint() { chunkItem.unknown_0060 = chunk->field_4; const int chunkX = 76 + chunkIndex * 42; if (it->value == 0) { - DrawItemWithQuantityAuxiliary(*this, descriptions, 1, chunkX, y + 49, chunkItem, 1, 0); + DrawItemWithQuantityAuxiliary(*this, 1, chunkX, y + 49, chunkItem, 1, 0); } else { - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, chunkX, y + 49, chunkItem, 1, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), chunkX, y + 49, chunkItem, 1, 0); } if (chunk->field_4 != 0) { const std::string chunkAmount = FormatOwnedString("+%d", chunk->field_4); diff --git a/Source/UI/UIChangeMaterialWnd.cpp b/Source/UI/UIChangeMaterialWnd.cpp index 7b981481..80e0804c 100644 --- a/Source/UI/UIChangeMaterialWnd.cpp +++ b/Source/UI/UIChangeMaterialWnd.cpp @@ -536,7 +536,6 @@ void UIChangeMaterialWnd_List::ShiftSelectedIndex(int value) { // FUNCTION: fn_03878 void UIChangeMaterialWnd::Paint() { UIWindowContext& controls = *this->m_context; - ItemDescriptions descriptions{g_itemDescriptions}; CBitmapRes* background = static_cast(ResourceMgr::Instance().Load(Resolve("유저인터페이스\\ChangeMaterial\\bg_ChangeMaterial.bmp"))); this->DrawBitmap(0, 0, background ? &background->image : nullptr, true); @@ -548,13 +547,13 @@ void UIChangeMaterialWnd::Paint() { const MaterialSlotPos* position = this->m_materialPos; for (auto it = this->m_materials.begin(); it != this->m_materials.end(); ++it, ++position) { if (it->identified == 1) { - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, position->x, position->y, *it, 1, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), position->x, position->y, *it, 1, 0); } else { - DrawItemWithQuantityAuxiliary(*this, descriptions, 1, position->x, position->y, *it, 1, 0); + DrawItemWithQuantityAuxiliary(*this, 1, position->x, position->y, *it, 1, 0); } } - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, this->m_resultX, this->m_resultY, this->m_resultItem, 1, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), this->m_resultX, this->m_resultY, this->m_resultItem, 1, 0); const std::string amount = FormatOwnedString(LookupMessage(0xE8C), this->m_resultAmount / 10); const int width = this->TextWidth(amount.c_str(), 0, 0x1D, 0x17, 1, 0); @@ -604,7 +603,6 @@ void UIChangeMaterialWnd_List::Paint() { item.quantity = entry->results[0].quantity; item.identified = 1; - ItemDescriptions descriptions{g_itemDescriptions}; std::string name = item.DisplayName(0); if (this->TextWidth(name.c_str(), 0, 0, 12, 0, 0) > 100) { name = this->FitDisplayText(100, name.c_str(), 0, 12, 0); @@ -612,11 +610,11 @@ void UIChangeMaterialWnd_List::Paint() { const int y = rowHeight * row; if (entry->state == 1) { - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, 0, y, item, 1, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), 0, y, item, 1, 0); this->DrawTextAt(30, y + 6, name.c_str(), 0, 0, 12, 0, 0, 0); this->DrawRightAlignedText(163, y + 6, FormatOwnedString(LookupMessage(182), item.quantity).c_str(), 0, 0, 12, 0, 0); } else { - DrawItemWithQuantityAuxiliary(*this, descriptions, 1, 0, y, item, 1, 0); + DrawItemWithQuantityAuxiliary(*this, 1, 0, y, item, 1, 0); this->DrawTextAt(30, y + 6, name.c_str(), 0, 0, 12, 0xAAAAAA, 0, 0); this->DrawRightAlignedText(163, y + 6, FormatOwnedString(LookupMessage(182), item.quantity).c_str(), 0, 0, 12, 0xAAAAAA, 0); } diff --git a/Source/UI/UICheckAttendanceWnd.cpp b/Source/UI/UICheckAttendanceWnd.cpp index 4fd32d48..9b81969c 100644 --- a/Source/UI/UICheckAttendanceWnd.cpp +++ b/Source/UI/UICheckAttendanceWnd.cpp @@ -143,7 +143,6 @@ void UICheckAttendanceWnd::Slot15(int, int) { // FUNCTION: fn_09640 void UICheckAttendanceWnd::Paint() { UIWindowContext& controls = *this->m_context; - ItemDescriptions descriptions{g_itemDescriptions}; const char* backgroundName = this->m_banner->m_entries.size() != 0 ? "유저인터페이스\\check_attendance\\attendance_bg_ad.bmp" : "유저인터페이스\\check_attendance\\attendance_bg.bmp"; @@ -209,7 +208,7 @@ void UICheckAttendanceWnd::Paint() { const int x = (day - 1) % 5 * 62; const int y = (day - 1) / 5 * 64; - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x + 43, y + 109 + bannerHeight, item, 1, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x + 43, y + 109 + bannerHeight, item, 1, 0); this->DrawCenteredText(x + 26, y + 140 + bannerHeight, FormatOwnedString(LookupMessage(3467), day).c_str(), 58, 0, 12, 0xA44F3B, 1); } } @@ -284,8 +283,7 @@ void UICheckAttendanceWnd::Slot28(int x, int y) { char name[260]; std::memset(name, 0, sizeof(name)); int capacity = sizeof(name); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); if (std::strlen(name) != 0) { int tipX = 0; int tipY = -20; diff --git a/Source/UI/UIGradeEnchantWnd.cpp b/Source/UI/UIGradeEnchantWnd.cpp index f299ad6c..0611d57e 100644 --- a/Source/UI/UIGradeEnchantWnd.cpp +++ b/Source/UI/UIGradeEnchantWnd.cpp @@ -309,8 +309,7 @@ void UIGradeEnchantWnd::Slot25(int x, int y) { } if (this->state == 1 && this->item.unknown_0000[1] > 0 && x >= 64 && x <= 110 && y >= 125 && y <= 171) { - ItemDescriptions descriptions{g_itemDescriptions}; - static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, descriptions, 33, this->item, 1, -1); + static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, 33, this->item, 1, -1); } } diff --git a/Source/UI/UIItemReformWnd.cpp b/Source/UI/UIItemReformWnd.cpp index dd69cde7..283972f7 100644 --- a/Source/UI/UIItemReformWnd.cpp +++ b/Source/UI/UIItemReformWnd.cpp @@ -221,8 +221,7 @@ void UIItemReformWnd_List::Paint() { } this->DrawBitmap(0, this->itemHeight * row, &static_cast(ResourceMgr::Instance().Load(Resolve(image)))->image, true); const ITEM_INFO& item = this->items[this->scrollPosition + row]; - ItemDescriptions descriptions{g_itemDescriptions}; - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, 15, this->itemHeight * row + 4, item, 1); + DrawItemIcon(*this, ResourceMgr::Instance(), 15, this->itemHeight * row + 4, item, 1); this->DrawTextAt(42, this->itemHeight * row + 10, this->FitDisplayText(160, item.DisplayName(0).c_str(), 0, 12, 0).c_str(), 0, 0, 12, 0, 0, 0 ); diff --git a/Source/UI/UILapineBoxWnd.cpp b/Source/UI/UILapineBoxWnd.cpp index 7f4970dc..aa1da5fa 100644 --- a/Source/UI/UILapineBoxWnd.cpp +++ b/Source/UI/UILapineBoxWnd.cpp @@ -68,8 +68,7 @@ void UIIngredientInfoWnd::Click(int, int) { // FUNCTION: fn_04162 void UIIngredientInfoWnd::Slot25(int x, int y) { if (this->insufficient != 1 && this->item.unknown_0000[1] > 0) { - ItemDescriptions descriptions{g_itemDescriptions}; - static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, descriptions, 27, this->item, this->quantity, -1); + static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, 27, this->item, this->quantity, -1); } } @@ -127,8 +126,7 @@ void UILapineBoxWnd::DragIngredient(int x, int y) { this->ReadMaterial(&item, x, y); if (item.unknown_0000[1] != 0) { - ItemDescriptions descriptions{g_itemDescriptions}; - static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, descriptions, 0x1A, item, item.quantity, -1); + static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, 0x1A, item, item.quantity, -1); } item.~ITEM_INFO(); @@ -532,8 +530,7 @@ void UILapineBoxWnd::SetIngredient(int id) { char name[0x104]; std::memset(name, 0, sizeof(name)); int capacity = 0x104; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); this->title.assign(name, std::strlen(name)); } diff --git a/Source/UI/UILapineScrollBar.cpp b/Source/UI/UILapineScrollBar.cpp index a5406f12..8d836b95 100644 --- a/Source/UI/UILapineScrollBar.cpp +++ b/Source/UI/UILapineScrollBar.cpp @@ -228,12 +228,11 @@ void UIIngredientInfoWnd::Paint() { std::string name; name = this->FitDisplayText(100, this->item.unknown_0044.c_str(), 0, 12, 0).c_str(); - ItemDescriptions descriptions{g_itemDescriptions}; std::uint32_t color = 0; if (this->insufficient == 0) { - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, 4, 3, this->item, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), 4, 3, this->item, 0, 0); } else { - DrawItemWithQuantityAuxiliary(*this, descriptions, 2, 4, 3, this->item, this->item.identified, 0); + DrawItemWithQuantityAuxiliary(*this, 2, 4, 3, this->item, this->item.identified, 0); color = 0x969696; } @@ -258,7 +257,6 @@ void UILapineBoxWnd::Paint() { const std::string maximum = FormatOwnedString("%d", this->maxItems); this->DrawCenteredText(115, 76, maximum.c_str(), 14, 0, 11, 0xFFFFFF, 0); - ItemDescriptions descriptions{g_itemDescriptions}; const unsigned total = static_cast(this->items.size()); for (unsigned index = 0; index < total; ++index) { int x = 0; @@ -279,7 +277,7 @@ void UILapineBoxWnd::Paint() { } CBitmapRes* slot = static_cast(ResourceMgr::Instance().Load(Resolve("유저인터페이스\\lapine\\shadow_item_off.bmp"))); this->DrawBitmap(x - 4, y + 11, &slot->image, true); - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, y, this->items[index], 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, y, this->items[index], 0, 0); } if (timeGetTime() < this->noticeTick + this->noticeDuration) { @@ -304,8 +302,7 @@ int UILapineBoxWnd::AddIngredient(std::uint32_t id, int quantity) { char name[260]; std::memset(name, 0, sizeof(name)); int capacity = 260; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(item, name, capacity, 1); + item.sub_6D5810(name, capacity, 1); if (item.identified == 1 && item.unknown_0098 != 0) { char formatted[260]; StringFormat(formatted, sizeof(formatted), sizeof(formatted), LookupMessage(2600), name, item.unknown_0098); diff --git a/Source/UI/UILapineUpgradeBoxWnd.cpp b/Source/UI/UILapineUpgradeBoxWnd.cpp index d69ca5a3..69d994ab 100644 --- a/Source/UI/UILapineUpgradeBoxWnd.cpp +++ b/Source/UI/UILapineUpgradeBoxWnd.cpp @@ -139,8 +139,7 @@ void UILapineUpgradeBox_IngredientInfoWnd::Paint() { this->DrawBitmap(32, 0, bitmap ? &bitmap->image : nullptr, false); } - ItemDescriptions descriptions{g_itemDescriptions}; - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, 4, 3, this->item, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), 4, 3, this->item, 0); const std::string name = this->FitDisplayText(100, this->item.unknown_0044.c_str(), 0, 12, 0); this->DrawShadowedText(36, 9, name.c_str(), 0, 0, 0xE0E0E0, 0, 12, 0); @@ -160,8 +159,7 @@ void UILapineUpgradeBoxWnd::Paint() { this->DrawCenteredText(35, 63, this->description.c_str(), 156, 0, 11, 0x844A42, 0); if (this->item.unknown_0000[1] != 0) { - ItemDescriptions descriptions{g_itemDescriptions}; - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, 101, 165, this->item, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), 101, 165, this->item, 0); } if (timeGetTime() < this->noticeTick + this->noticeDuration) { @@ -223,8 +221,7 @@ void UILapineUpgradeBoxWnd::Slot25(int x, int y) { UIFrameWnd::Slot25(x, y); } if (static_cast(x - 101) <= 24 && static_cast(y - 165) <= 24 && this->item.unknown_0000[1] != 0) { - ItemDescriptions descriptions{g_itemDescriptions}; - static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, descriptions, 26, this->item, 1, -1); + static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, 26, this->item, 1, -1); } } @@ -232,8 +229,7 @@ void UILapineUpgradeBoxWnd::Slot25(int x, int y) { // FUNCTION: fn_04206 void UILapineUpgradeBox_IngredientInfoWnd::Slot25(int x, int y) { if (this->item.unknown_0000[1] != 0) { - ItemDescriptions descriptions{g_itemDescriptions}; - static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, descriptions, 27, this->item, this->quantity, -1); + static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, 27, this->item, this->quantity, -1); } } @@ -292,8 +288,7 @@ void UILapineUpgradeBoxWnd::SetIngredient(int id) { char name[0x104]; std::memset(name, 0, sizeof(name)); int capacity = sizeof(name); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); this->title.assign(name, std::strlen(name)); int minimumRefine = 0; @@ -541,8 +536,7 @@ __declspec(noinline) void UILapineUpgradeBox_IngredientInfoWnd::SetItem(std::uin char name[0x104]; std::memset(name, 0, sizeof(name)); int capacity = sizeof(name); - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(this->item, name, capacity, 0); + this->item.sub_6D5810(name, capacity, 0); if (this->item.identified == 1 && this->item.unknown_0098 != 0) { char formatted[0x104]; diff --git a/Source/UI/UIRefiningWnd.cpp b/Source/UI/UIRefiningWnd.cpp index f9bc4bcd..73a3f974 100644 --- a/Source/UI/UIRefiningWnd.cpp +++ b/Source/UI/UIRefiningWnd.cpp @@ -313,8 +313,7 @@ void UIRefiningWnd::ApplyResult() { std::memset(name, 0, sizeof(name)); info.SetItemId(itemId); int capacity = 260; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(info, name, capacity, 0); + info.sub_6D5810(name, capacity, 0); this->againButton->SetTooltip(name); const ITEM_INFO owned = LookupClientItem(g_session.m_inventoryItems, itemId, 0); @@ -433,8 +432,7 @@ void UIRefiningWnd::Slot25(int x, int y) { } if (this->state == 1 && this->item.unknown_0000[1] > 0 && static_cast(x - 109) <= 46 && static_cast(y - 201) <= 46) { - ItemDescriptions descriptions{g_itemDescriptions}; - static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, descriptions, 28, this->item, 1, -1); + static_cast(g_modeMgr.GetGameMode())->drag.BeginItem(g_windowMgr, 28, this->item, 1, -1); } } @@ -540,8 +538,7 @@ void UIRefiningWnd::Slot28(int x, int y) { ITEM_INFO info; info.SetItemId(this->materials[this->selectedMaterial].itemId); int capacity = 260; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(info, name, capacity, 0); + info.sub_6D5810(name, capacity, 0); int tipX = 81; int tipY = 150; this->ToScreen(tipX, tipY); @@ -553,8 +550,7 @@ void UIRefiningWnd::Slot28(int x, int y) { ITEM_INFO info; info.SetItemId(this->catalystItemId); int capacity = 260; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(info, name, capacity, 0); + info.sub_6D5810(name, capacity, 0); int tipX = 161; int tipY = 150; this->ToScreen(tipX, tipY); @@ -575,14 +571,12 @@ void UIRefiningWnd::Slot28(int x, int y) { ITEM_INFO info; info.SetItemId(this->materials[slot].itemId); int capacity = 260; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(info, name, capacity, 0); + info.sub_6D5810(name, capacity, 0); } else if (slot == 4 && this->catalystCount > 0) { ITEM_INFO info; info.SetItemId(this->catalystItemId); int capacity = 260; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(info, name, capacity, 0); + info.sub_6D5810(name, capacity, 0); } if (std::strlen(name) != 0) { @@ -1072,7 +1066,6 @@ void UIRefiningWnd::Paint() { CBitmapRes* bitmap = static_cast(ResourceMgr::Instance().Load(Resolve(background.c_str()))); this->DrawBitmap(1, 17, bitmap ? &bitmap->image : nullptr, false); - ItemDescriptions descriptions{g_itemDescriptions}; if (this->state == 1) { if (this->selectedMaterial >= 0) { @@ -1094,11 +1087,11 @@ void UIRefiningWnd::Paint() { ITEM_INFO icon; icon.SetItemId(material->itemId); const int owned = LookupClientItem(g_session.m_inventoryItems, material->itemId, 0).quantity; - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, x + 12, 69, icon, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), x + 12, 69, icon, 0); const std::string count = FormatOwnedString("%s%d^000000/1", owned != 0 ? "" : color, owned); this->DrawFormattedText(x, 107, count, 48, 6, 0, 12, 0, 0); if (index == this->selectedMaterial && (this->state == 1 || (this->state == 2 && this->frame == 0))) { - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, 81, 150, icon, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), 81, 150, icon, 0); } ++index; x += 49; @@ -1108,17 +1101,17 @@ void UIRefiningWnd::Paint() { ITEM_INFO icon; icon.SetItemId(this->catalystItemId); const int owned = LookupClientItem(g_session.m_inventoryItems, this->catalystItemId, 0).quantity; - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, 218, 69, icon, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), 218, 69, icon, 0); const std::string count = FormatOwnedString("%s%d^000000/%d", this->catalystCount <= owned ? "" : color, owned, this->catalystCount); this->DrawFormattedText(206, 107, count, 48, 6, 0, 12, 0, 0); if (this->catalystEnabled == 1 && (this->state == 1 || (this->state == 2 && this->frame < 13))) { - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, 161, 150, icon, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), 161, 150, icon, 0); } } } if (this->item.unknown_0000[1] != 0) { - DrawItemIcon(*this, ResourceMgr::Instance(), descriptions, 120, 212, this->item, 0); + DrawItemIcon(*this, ResourceMgr::Instance(), 120, 212, this->item, 0); if (this->item.unknown_0088 > 0) { bitmap = static_cast( ResourceMgr::Instance().Load(Resolve(FormatOwnedString("유저인터페이스\\grade_enchant\\grade_icon%d.bmp", this->item.unknown_0088).c_str())) diff --git a/Source/UI/UIRoundBoxTooltipWnd.cpp b/Source/UI/UIRoundBoxTooltipWnd.cpp index a5bb3619..a43e9329 100644 --- a/Source/UI/UIRoundBoxTooltipWnd.cpp +++ b/Source/UI/UIRoundBoxTooltipWnd.cpp @@ -89,8 +89,7 @@ int UIColoringTextViewer::SendMsg(UIWindow* sender, int message, std::intptr_t a } std::vector wrapped; - ItemDescriptions descriptions{g_itemDescriptions}; - WrapRichText(reinterpret_cast(argument1), wrapped, 35, argument3 != 0, descriptions); + WrapRichText(reinterpret_cast(argument1), wrapped, 35, argument3 != 0); for (unsigned index = 0; index < wrapped.size(); ++index) { this->AddLine(wrapped[index].c_str()); } diff --git a/Source/UI/UIStaticItem.cpp b/Source/UI/UIStaticItem.cpp index 22d3e83a..9a6f2d2d 100644 --- a/Source/UI/UIStaticItem.cpp +++ b/Source/UI/UIStaticItem.cpp @@ -2,8 +2,8 @@ // OFFSET: 0x0086E970 // FUNCTION: fn_11079 -UIStaticItem::UIStaticItem(UIWindowContext& windows, ItemDescriptions& descriptions, WindowManagerWindows& windowList) - : UIWindow(windows, 0), m_item(), m_descriptions(&descriptions), m_windows(&windowList) { +UIStaticItem::UIStaticItem(UIWindowContext& windows, WindowManagerWindows& windowList) + : UIWindow(windows, 0), m_item(), m_windows(&windowList) { } // OFFSET: 0x00871A00 diff --git a/Source/UI/UIStaticItem.h b/Source/UI/UIStaticItem.h index da267e14..a8ed2cd9 100644 --- a/Source/UI/UIStaticItem.h +++ b/Source/UI/UIStaticItem.h @@ -4,12 +4,11 @@ #include "Contents/Items/ItemInfo.h" #include "UI/Window/UIWindow.h" -struct ItemDescriptions; #include "UI/Window/WindowManagerWindows.h" class UIStaticItem : public UIWindow { public: - UIStaticItem(UIWindowContext& windows, ItemDescriptions& descriptions, WindowManagerWindows& windowList); + UIStaticItem(UIWindowContext& windows, WindowManagerWindows& windowList); ~UIStaticItem() override; void Paint() override; void Slot28(int x, int y) override; @@ -17,7 +16,7 @@ public: protected: /* 0080 */ ITEM_INFO m_item; - ItemDescriptions* m_descriptions; + void* unknown_descriptions; void* unknown_controls; WindowManagerWindows* m_windows; }; diff --git a/Source/UI/Window/UIRodexContentsWnd.cpp b/Source/UI/Window/UIRodexContentsWnd.cpp index 63900718..bbd5ef1b 100644 --- a/Source/UI/Window/UIRodexContentsWnd.cpp +++ b/Source/UI/Window/UIRodexContentsWnd.cpp @@ -179,14 +179,13 @@ void UIRodexContentsWnd::Paint() { this->DrawBitmap(x, 319, &slot->image, true); } - ItemDescriptions descriptions{g_itemDescriptions}; int x = 30; for (auto item = this->m_items.begin(); item != this->m_items.end(); ++item) { const auto* slot = static_cast( ResourceMgr::Instance().Load(Resolve("유저인터페이스\\basic_interface\\rodexsystem\\renewal\\shadow_item_on.bmp")) ); this->DrawBitmap(x - 4, 319, &slot->image, true); - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, 309, *item, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, 309, *item, 0, 0); if (item->unknown_0088 > 0) { ResourceMgr& resources = ResourceMgr::Instance(); const std::string name = FormatOwnedString("유저인터페이스\\grade_enchant\\grade_icon%d.bmp", item->unknown_0088); diff --git a/Source/UI/Window/UIRoulletteWnd.cpp b/Source/UI/Window/UIRoulletteWnd.cpp index 2d37fbf1..f3a1d5d1 100644 --- a/Source/UI/Window/UIRoulletteWnd.cpp +++ b/Source/UI/Window/UIRoulletteWnd.cpp @@ -208,25 +208,24 @@ void UIRoulletteWnd::Paint() { this->UpdateButtons(); - ItemDescriptions descriptions{g_itemDescriptions}; for (auto it = g_rouletteMgr->m_items.begin(); it != g_rouletteMgr->m_items.end(); ++it) { const int row = it->first.row; const int column = it->first.column; const int x = (row + column) * 36 + 159; const int y = 344 - row * 40; if (g_rouletteMgr->m_stage == row && (g_rouletteMgr->m_resultShown != 0 || g_rouletteMgr->m_spinning != 0)) { - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, x, y, it->second, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), x, y, it->second, 0, 0); } else { - DrawItemWithQuantityAuxiliary(*this, descriptions, 1, x, y, it->second, 0, 0); + DrawItemWithQuantityAuxiliary(*this, 1, x, y, it->second, 0, 0); } } if (g_rouletteMgr->m_resultShown == 1 && g_rouletteMgr->m_resultItem.quantity != 0) { - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, 189, 145, g_rouletteMgr->m_resultItem, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), 189, 145, g_rouletteMgr->m_resultItem, 0, 0); } if (g_rouletteMgr->m_additionItem.quantity != 0) { - DrawItemWithQuantity(*this, ResourceMgr::Instance(), descriptions, 60, 135, g_rouletteMgr->m_additionItem, 0, 0); + DrawItemWithQuantity(*this, ResourceMgr::Instance(), 60, 135, g_rouletteMgr->m_additionItem, 0, 0); } } diff --git a/Source/UI/Window/UIWindow.cpp b/Source/UI/Window/UIWindow.cpp index 1dc24106..8dd2ab1c 100644 --- a/Source/UI/Window/UIWindow.cpp +++ b/Source/UI/Window/UIWindow.cpp @@ -3677,8 +3677,7 @@ void UIPrivateAirplaneWnd::Slot15(int, int) { char name[260]; std::memset(name, 0, sizeof(name)); int capacity = 0x104; - ItemDescriptions descriptions{g_itemDescriptions}; - descriptions.Name(item, name, capacity, 0); + item.sub_6D5810(name, capacity, 0); if (std::strlen(name) == 0) { continue; }