[Cleanup] Cleanup #show currencies Command (#3693)

* [Cleanup] Cleanup #show currencies Command

# Notes
- Cleans up messages.
- Adds `AA Points` as a viewable currency.
- Adds an enum for `MoneyTypes` and `MoneySubtypes` so we're not using magic numbers for `GetMoney` anymore.
- Converts money amounts to `uint64`.

* Update currencies.cpp

* Update currencies.cpp
This commit is contained in:
Alex King 2023-11-18 19:05:04 -05:00 committed by GitHub
parent ded82ac6d6
commit 93f2bea96e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 59 additions and 41 deletions

View File

@ -1059,4 +1059,20 @@ enum SpellTimeRestrictions
Night Night
}; };
enum MoneyTypes
{
Copper,
Silver,
Gold,
Platinum
};
enum MoneySubtypes
{
Personal,
Bank,
Cursor,
SharedBank // Platinum Only
};
#endif /*COMMON_EQ_CONSTANTS_H*/ #endif /*COMMON_EQ_CONSTANTS_H*/

View File

@ -2262,10 +2262,10 @@ void Client::QuestReadBook(const char* text, uint8 type) {
uint32 Client::GetCarriedPlatinum() { uint32 Client::GetCarriedPlatinum() {
return ( return (
GetMoney(3, 0) + GetMoney(MoneyTypes::Platinum, MoneySubtypes::Personal) +
(GetMoney(2, 0) / 10) + (GetMoney(MoneyTypes::Gold, MoneySubtypes::Personal) / 10) +
(GetMoney(1, 0) / 100) + (GetMoney(MoneyTypes::Silver, MoneySubtypes::Personal) / 100) +
(GetMoney(0, 0) / 1000) (GetMoney(MoneyTypes::Copper, MoneySubtypes::Personal) / 1000)
); );
} }
@ -8119,16 +8119,17 @@ void Client::SendHPUpdateMarquee(){
uint32 Client::GetMoney(uint8 type, uint8 subtype) { uint32 Client::GetMoney(uint8 type, uint8 subtype) {
uint32 value = 0; uint32 value = 0;
switch (type) { switch (type) {
case 0: { case MoneyTypes::Copper: {
switch (subtype) { switch (subtype) {
case 0: case MoneySubtypes::Personal:
value = static_cast<uint32>(m_pp.copper); value = static_cast<uint32>(m_pp.copper);
break; break;
case 1: case MoneySubtypes::Bank:
value = static_cast<uint32>(m_pp.copper_bank); value = static_cast<uint32>(m_pp.copper_bank);
break; break;
case 2: case MoneySubtypes::Cursor:
value = static_cast<uint32>(m_pp.copper_cursor); value = static_cast<uint32>(m_pp.copper_cursor);
break; break;
default: default:
@ -8136,15 +8137,15 @@ uint32 Client::GetMoney(uint8 type, uint8 subtype) {
} }
break; break;
} }
case 1: { case MoneyTypes::Silver: {
switch (subtype) { switch (subtype) {
case 0: case MoneySubtypes::Personal:
value = static_cast<uint32>(m_pp.silver); value = static_cast<uint32>(m_pp.silver);
break; break;
case 1: case MoneySubtypes::Bank:
value = static_cast<uint32>(m_pp.silver_bank); value = static_cast<uint32>(m_pp.silver_bank);
break; break;
case 2: case MoneySubtypes::Cursor:
value = static_cast<uint32>(m_pp.silver_cursor); value = static_cast<uint32>(m_pp.silver_cursor);
break; break;
default: default:
@ -8152,15 +8153,15 @@ uint32 Client::GetMoney(uint8 type, uint8 subtype) {
} }
break; break;
} }
case 2: { case MoneyTypes::Gold: {
switch (subtype) { switch (subtype) {
case 0: case MoneySubtypes::Personal:
value = static_cast<uint32>(m_pp.gold); value = static_cast<uint32>(m_pp.gold);
break; break;
case 1: case MoneySubtypes::Bank:
value = static_cast<uint32>(m_pp.gold_bank); value = static_cast<uint32>(m_pp.gold_bank);
break; break;
case 2: case MoneySubtypes::Cursor:
value = static_cast<uint32>(m_pp.gold_cursor); value = static_cast<uint32>(m_pp.gold_cursor);
break; break;
default: default:
@ -8168,18 +8169,18 @@ uint32 Client::GetMoney(uint8 type, uint8 subtype) {
} }
break; break;
} }
case 3: { case MoneyTypes::Platinum: {
switch (subtype) { switch (subtype) {
case 0: case MoneySubtypes::Personal:
value = static_cast<uint32>(m_pp.platinum); value = static_cast<uint32>(m_pp.platinum);
break; break;
case 1: case MoneySubtypes::Bank:
value = static_cast<uint32>(m_pp.platinum_bank); value = static_cast<uint32>(m_pp.platinum_bank);
break; break;
case 2: case MoneySubtypes::Cursor:
value = static_cast<uint32>(m_pp.platinum_cursor); value = static_cast<uint32>(m_pp.platinum_cursor);
break; break;
case 3: case MoneySubtypes::SharedBank:
value = static_cast<uint32>(m_pp.platinum_shared); value = static_cast<uint32>(m_pp.platinum_shared);
break; break;
default: default:
@ -8190,6 +8191,7 @@ uint32 Client::GetMoney(uint8 type, uint8 subtype) {
default: default:
break; break;
} }
return value; return value;
} }

View File

@ -3,34 +3,34 @@
void ShowCurrencies(Client *c, const Seperator *sep) void ShowCurrencies(Client *c, const Seperator *sep)
{ {
auto t = c; Client *t = c;
if (c->GetTarget() && c->GetTarget()->IsClient()) { if (c->GetTarget() && c->GetTarget()->IsClient()) {
t = c->GetTarget()->CastToClient(); t = c->GetTarget()->CastToClient();
} }
const uint32 platinum = ( const uint64 platinum = (
t->GetMoney(3, 0) + t->GetMoney(MoneyTypes::Platinum, MoneySubtypes::Personal) +
t->GetMoney(3, 1) + t->GetMoney(MoneyTypes::Platinum, MoneySubtypes::Bank) +
t->GetMoney(3, 2) + t->GetMoney(MoneyTypes::Platinum, MoneySubtypes::Cursor) +
t->GetMoney(3, 3) t->GetMoney(MoneyTypes::Platinum, MoneySubtypes::SharedBank)
); );
const uint32 gold = ( const uint64 gold = (
t->GetMoney(2, 0) + t->GetMoney(MoneyTypes::Gold, MoneySubtypes::Personal) +
t->GetMoney(2, 1) + t->GetMoney(MoneyTypes::Gold, MoneySubtypes::Bank) +
t->GetMoney(2, 2) t->GetMoney(MoneyTypes::Gold, MoneySubtypes::Cursor)
); );
const uint32 silver = ( const uint64 silver = (
t->GetMoney(1, 0) + t->GetMoney(MoneyTypes::Silver, MoneySubtypes::Personal) +
t->GetMoney(1, 1) + t->GetMoney(MoneyTypes::Silver, MoneySubtypes::Bank) +
t->GetMoney(1, 2) t->GetMoney(MoneyTypes::Silver, MoneySubtypes::Cursor)
); );
const uint32 copper = ( const uint64 copper = (
t->GetMoney(0, 0) + t->GetMoney(MoneyTypes::Copper, MoneySubtypes::Personal) +
t->GetMoney(0, 1) + t->GetMoney(MoneyTypes::Copper, MoneySubtypes::Bank) +
t->GetMoney(0, 2) t->GetMoney(MoneyTypes::Copper, MoneySubtypes::Cursor)
); );
std::string currency_table; std::string currency_table;
@ -79,9 +79,9 @@ void ShowCurrencies(Client *c, const Seperator *sep)
for (const auto& a : zone->AlternateCurrencies) { for (const auto& a : zone->AlternateCurrencies) {
const uint32 currency_value = t->GetAlternateCurrencyValue(a.id); const uint32 currency_value = t->GetAlternateCurrencyValue(a.id);
if (currency_value) { if (currency_value) {
const auto* d = database.GetItem(a.item_id); const auto *item = database.GetItem(a.item_id);
currency_table += DialogueWindow::TableRow( currency_table += DialogueWindow::TableRow(
DialogueWindow::TableCell(d->Name) + DialogueWindow::TableCell(item->Name) +
DialogueWindow::TableCell(Strings::Commify(currency_value)) DialogueWindow::TableCell(Strings::Commify(currency_value))
); );