From c04168e81fad8e80d2b8d60493270b288527109d Mon Sep 17 00:00:00 2001
From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Date: Sun, 30 Nov 2025 13:50:20 -0600
Subject: [PATCH] Standerdizing currency symbols (Part 1?) (#94128)
## About The Pull Request
Passes a standardized define into some of the tgui to parody behavior
with vending machines.
Adds a few defines for money symbols to make it easier to rework types
of money.
If yall are for this I can also go through and find and replace a ton of
strings and other tgui with these, but dont want to sink 2 much time
into it if not.
Proof of concept if Nanotrasen was not an evil conglomerate and the
dollar never went out of style
some broken shit here but 99% thats cause minimal runtime station does
not support the supply console
---
code/__DEFINES/economy.dm | 9 +++++++++
.../computer/orders/order_computer/mining_order.dm | 5 ++---
.../computer/orders/order_computer/order_computer.dm | 5 +----
code/modules/bitrunning/objects/vendor.dm | 6 +-----
code/modules/cargo/materials_market.dm | 2 +-
code/modules/cargo/order.dm | 2 +-
code/modules/cargo/orderconsole.dm | 3 +++
code/modules/mob/living/basic/trader/trader.dm | 2 +-
code/modules/mob/living/basic/trader/trader_data.dm | 2 +-
code/modules/vending/sustenance.dm | 2 +-
code/modules/vending/vendor/_vending.dm | 2 +-
code/modules/vending/vendor/ui_data.dm | 2 +-
tgui/packages/tgui/interfaces/Cargo/CargoButtons.tsx | 4 ++--
tgui/packages/tgui/interfaces/Cargo/CargoCatalog.tsx | 6 +++---
tgui/packages/tgui/interfaces/Cargo/CargoRequests.tsx | 4 ++--
tgui/packages/tgui/interfaces/Cargo/CargoStatus.tsx | 2 +-
tgui/packages/tgui/interfaces/Cargo/types.ts | 2 ++
17 files changed, 33 insertions(+), 27 deletions(-)
diff --git a/code/__DEFINES/economy.dm b/code/__DEFINES/economy.dm
index a1108ba7fb0..c98a5c49b82 100644
--- a/code/__DEFINES/economy.dm
+++ b/code/__DEFINES/economy.dm
@@ -81,3 +81,12 @@
#define MARKET_TREND_STABLE 0
#define MARKET_EVENT_PROBABILITY 8 //Probability of a market event firing, in percent. Fires once per material, every stock market tick.
+
+/// The symbol for the default type of money used in the code.
+#define MONEY_SYMBOL "cr"
+/// The name for the default type of money used in the code.
+#define MONEY_NAME "credits"
+#define MONEY_NAME_SINGULAR "credit"
+
+#define MONEY_MINING_SYMBOL "mp"
+#define MONEY_BITRUNNING_SYMBOL "np"
diff --git a/code/game/machinery/computer/orders/order_computer/mining_order.dm b/code/game/machinery/computer/orders/order_computer/mining_order.dm
index 97e9e74b5ce..b7082507a87 100644
--- a/code/game/machinery/computer/orders/order_computer/mining_order.dm
+++ b/code/game/machinery/computer/orders/order_computer/mining_order.dm
@@ -1,4 +1,4 @@
-#define CREDIT_TYPE_MINING "mp"
+
/obj/machinery/computer/order_console/mining
name = "mining equipment order console"
@@ -15,7 +15,7 @@
and hopefully get delivered by them.
35% cheaper than express delivery."}
express_tooltip = @{"Sends your purchases instantly."}
- credit_type = CREDIT_TYPE_MINING
+ credit_type = MONEY_MINING_SYMBOL
order_categories = list(
CATEGORY_MINING,
@@ -127,6 +127,5 @@
points += amount
to_chat(user, span_notice("You transfer [amount] mining points from [attacking_id] to [src]."))
-#undef CREDIT_TYPE_MINING
#undef TO_POINT_CARD
#undef TO_USER_ID
diff --git a/code/game/machinery/computer/orders/order_computer/order_computer.dm b/code/game/machinery/computer/orders/order_computer/order_computer.dm
index 02b26438d50..d89dd05c434 100644
--- a/code/game/machinery/computer/orders/order_computer/order_computer.dm
+++ b/code/game/machinery/computer/orders/order_computer/order_computer.dm
@@ -1,6 +1,5 @@
///List of all items that can be found in the different types of order consoles, to purchase.
GLOBAL_LIST_EMPTY(order_console_products)
-#define CREDIT_TYPE_CREDIT "credit"
/obj/machinery/computer/order_console
name = "Orders Console"
@@ -25,7 +24,7 @@ GLOBAL_LIST_EMPTY(order_console_products)
var/announcement_line
///The kind of cash does the console use.
- var/credit_type = CREDIT_TYPE_CREDIT
+ var/credit_type = MONEY_SYMBOL
///Whether the console can only use express mode ONLY
var/forced_express = FALSE
///Multiplied cost to use for cargo mode
@@ -250,5 +249,3 @@ GLOBAL_LIST_EMPTY(order_console_products)
announcement_lines_map["Error"] = "Unknown Error happened, while we tried to procceed an order, please report this to Nanotrasen."
. = ..()
-
-#undef CREDIT_TYPE_CREDIT
diff --git a/code/modules/bitrunning/objects/vendor.dm b/code/modules/bitrunning/objects/vendor.dm
index c42a954b978..a850cd75c99 100644
--- a/code/modules/bitrunning/objects/vendor.dm
+++ b/code/modules/bitrunning/objects/vendor.dm
@@ -1,5 +1,3 @@
-#define CREDIT_TYPE_BITRUNNING "np"
-
/obj/machinery/computer/order_console/bitrunning
name = "bitrunning supplies order console"
desc = "NexaCache(tm)! Dubiously authentic gear for the digital daredevil."
@@ -15,7 +13,7 @@
and hopefully get delivered by them.
35% cheaper than express delivery."}
express_tooltip = @{"Sends your purchases instantly."}
- credit_type = CREDIT_TYPE_BITRUNNING
+ credit_type = MONEY_BITRUNNING_SYMBOL
order_categories = list(
CATEGORY_BITRUNNING_FLAIR,
@@ -84,5 +82,3 @@
name = "[purchaser]'s Bitrunning Order"
src.cost = cost
src.contains = contains
-
-#undef CREDIT_TYPE_BITRUNNING
diff --git a/code/modules/cargo/materials_market.dm b/code/modules/cargo/materials_market.dm
index 019c8f94503..22983d671e2 100644
--- a/code/modules/cargo/materials_market.dm
+++ b/code/modules/cargo/materials_market.dm
@@ -317,7 +317,7 @@
orderer_rank = GALATIC_MATERIAL_ORDER,
orderer_ckey = living_user.ckey,
paying_account = is_ordering_private ? account_payable : null,
- cost_type = "cr",
+ cost_type = MONEY_SYMBOL,
can_be_cancelled = FALSE
)
//first time order compute the correct cost and compare
diff --git a/code/modules/cargo/order.dm b/code/modules/cargo/order.dm
index 9241cf9da99..b31dc83c459 100644
--- a/code/modules/cargo/order.dm
+++ b/code/modules/cargo/order.dm
@@ -72,7 +72,7 @@
coupon,
charge_on_purchase = TRUE,
manifest_can_fail = TRUE,
- cost_type = "cr",
+ cost_type = MONEY_SYMBOL,
can_be_cancelled = TRUE,
)
id = SSshuttle.order_number++
diff --git a/code/modules/cargo/orderconsole.dm b/code/modules/cargo/orderconsole.dm
index e3a17a52ff9..a66e53bc0a3 100644
--- a/code/modules/cargo/orderconsole.dm
+++ b/code/modules/cargo/orderconsole.dm
@@ -157,6 +157,9 @@
"packs" = get_packs_data(pack.group),
)
+ data["displayed_currency_full_name"] = " [MONEY_NAME]"
+ data["displayed_currency_name"] = " [MONEY_SYMBOL]"
+
return data
/**
diff --git a/code/modules/mob/living/basic/trader/trader.dm b/code/modules/mob/living/basic/trader/trader.dm
index 9b01261fa51..c23726a562b 100644
--- a/code/modules/mob/living/basic/trader/trader.dm
+++ b/code/modules/mob/living/basic/trader/trader.dm
@@ -23,7 +23,7 @@
///Sound used when item sold/bought
var/sell_sound = 'sound/effects/cashregister.ogg'
///The currency name
- var/currency_name = "credits"
+ var/currency_name = MONEY_NAME
///The spawner we use to create our look
var/spawner_path = /obj/effect/mob_spawn/corpse/human/generic_assistant
///Our species to create our look
diff --git a/code/modules/mob/living/basic/trader/trader_data.dm b/code/modules/mob/living/basic/trader/trader_data.dm
index c47e200154f..6af2c85530e 100644
--- a/code/modules/mob/living/basic/trader/trader_data.dm
+++ b/code/modules/mob/living/basic/trader/trader_data.dm
@@ -8,7 +8,7 @@
///Sound used when item sold/bought
var/sell_sound = 'sound/effects/cashregister.ogg'
///The currency name
- var/currency_name = "credits"
+ var/currency_name = MONEY_NAME
///The initial products that the trader offers
var/list/initial_products = list(
/obj/item/food/burger/ghost = list(PAYCHECK_CREW * 4, INFINITY),
diff --git a/code/modules/vending/sustenance.dm b/code/modules/vending/sustenance.dm
index 05f71b4eb6b..71313d74140 100644
--- a/code/modules/vending/sustenance.dm
+++ b/code/modules/vending/sustenance.dm
@@ -50,7 +50,7 @@
icon_state = "sustenance_labor"
all_products_free = FALSE
displayed_currency_icon = "digging"
- displayed_currency_name = " LP"
+ displayed_currency_name = "LP"
allow_custom = FALSE
/obj/machinery/vending/sustenance/labor_camp/proceed_payment(obj/item/card/id/advanced/prisoner/paying_scum_id, mob/living/mob_paying, datum/data/vending_product/product_to_vend, price_to_use)
diff --git a/code/modules/vending/vendor/_vending.dm b/code/modules/vending/vendor/_vending.dm
index 3df88989705..eb27528a0c8 100644
--- a/code/modules/vending/vendor/_vending.dm
+++ b/code/modules/vending/vendor/_vending.dm
@@ -153,7 +153,7 @@
///fontawesome icon name to use in to display the user's balance in the vendor UI
var/displayed_currency_icon = "coins"
///String of the used currency to display in the vendor UI
- var/displayed_currency_name = " cr"
+ var/displayed_currency_name = MONEY_SYMBOL
///Whether our age check is currently functional
var/age_restrictions = TRUE
/// How many credits does this vending machine have? 20% of all sales go to this pool, and are given freely when the machine is restocked, or successfully tilted. Lost on deconstruction.
diff --git a/code/modules/vending/vendor/ui_data.dm b/code/modules/vending/vendor/ui_data.dm
index 49e90b946de..c375e0a78d6 100644
--- a/code/modules/vending/vendor/ui_data.dm
+++ b/code/modules/vending/vendor/ui_data.dm
@@ -70,7 +70,7 @@
data["jobDiscount"] = DEPARTMENT_DISCOUNT
data["product_records"] = list()
data["displayed_currency_icon"] = displayed_currency_icon
- data["displayed_currency_name"] = displayed_currency_name
+ data["displayed_currency_name"] = " [displayed_currency_name]"
var/list/categories = list()
diff --git a/tgui/packages/tgui/interfaces/Cargo/CargoButtons.tsx b/tgui/packages/tgui/interfaces/Cargo/CargoButtons.tsx
index 04b201017dd..f069fd94f11 100644
--- a/tgui/packages/tgui/interfaces/Cargo/CargoButtons.tsx
+++ b/tgui/packages/tgui/interfaces/Cargo/CargoButtons.tsx
@@ -6,7 +6,7 @@ import type { CargoData } from './types';
export function CargoCartButtons(props) {
const { act, data } = useBackend();
- const { cart = [], requestonly, can_send, can_approve_requests } = data;
+ const { cart = [], requestonly, can_send, can_approve_requests, displayed_currency_name } = data;
let total = 0;
let amount = 0;
@@ -24,7 +24,7 @@ export function CargoCartButtons(props) {
{amount === 0 && 'Cart is empty'}
{amount === 1 && '1 item'}
{amount >= 2 && `${amount} items`}{' '}
- {total > 0 && `(${formatMoney(total)} cr)`}
+ {total > 0 && `(${formatMoney(total)}${displayed_currency_name})`}