[manifest]
version = "1.0.0"
dump_lua = true
priority = -10
#
# Use number_format for...
#
# DynaText
[[patches]]
[patches.regex]
target = "engine/text.lua"
pattern = 'tostring\((?v\.ref_table and v\.ref_table\[v\.ref_value\] or v\.string)\)'
position = "at"
payload = "format_ui_value($param)"
# Cash Out
[[patches]]
[patches.regex]
target = "functions/common_events.lua"
pattern = '''
localize\('\$'\)\.\.config\.dollars'''
position = "at"
payload = "localize('$')..format_ui_value(config.dollars)"
# End of round money
[[patches]]
[patches.regex]
target = "functions/common_events.lua"
pattern = '''
localize\('\$'\)\.\.num_dollars\}'''
position = "at"
payload = "localize('$')..format_ui_value(num_dollars)}"
# Tooltip numbers
[[patches]]
[patches.regex]
target = "functions/misc_functions.lua"
pattern = '(?args\.vars\[tonumber\(subpart\[1\]\)\])'
position = "at"
payload = 'format_ui_value($param)'
# Poker Hand chips
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = "{n=G.UIT.T, config={text = G.GAME.hands[handname].chips, scale = 0.45, colour = G.C.UI.TEXT_LIGHT}},"
position = "at"
payload = "{n=G.UIT.T, config={text = number_format(G.GAME.hands[handname].chips, 1000000), scale = 0.45, colour = G.C.UI.TEXT_LIGHT}},"
match_indent = true
# Poker Hand mult
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = "{n=G.UIT.T, config={text = G.GAME.hands[handname].mult, scale = 0.45, colour = G.C.UI.TEXT_LIGHT}}"
position = "at"
payload = "{n=G.UIT.T, config={text = number_format(G.GAME.hands[handname].mult, 1000000), scale = 0.45, colour = G.C.UI.TEXT_LIGHT}}"
match_indent = true
# Continue Run - Money
[[patches]]
[patches.regex]
target = "functions/UI_definitions.lua"
pattern = 'tostring\(saved_game\.GAME\.dollars\)'
position = "at"
payload = "format_ui_value(saved_game.GAME.dollars)"
# Continue Run - Best Hand - bigger size
[[patches]]
[patches.regex]
target = "functions/UI_definitions.lua"
pattern = 'scale_number\(saved_game\.GAME\.round_scores\.hand\.amt\, 0\.8\*scale\)'
position = "at"
payload = "scale_number(saved_game.GAME.round_scores.hand.amt, 0.8*scale, 100000000000)"
#
# Custom sci notation switch point
#
## number_format
[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = 'function number_format(num)'
position = "at"
payload = '''
function number_format(num, e_switch_point)
if type(num) ~= 'number' then return num end
local sign = (num >= 0 and "") or "-"
num = math.abs(num)'''
match_indent = true
[[patches]]
[patches.regex]
target = "functions/misc_functions.lua"
pattern = 'num >= G\.E_SWITCH_POINT'
position = "at"
payload = "num >= (e_switch_point or G.E_SWITCH_POINT)"
# 1. Fix floating point error (1.000e92 instead of 10.000e91)
# 2. Lower precision with higher numbers
[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = '''
return string.format("%.3f",x/(10^fac))..'e'..fac'''
position = "at"
payload = '''
if num == math.huge then
return sign.."naneinf"
end
local mantissa = round_number(x/(10^fac), 3)
if mantissa >= 10 then
mantissa = mantissa / 10
fac = fac + 1
end
return sign..(string.format(fac >= 100 and "%.1fe%i" or fac >= 10 and "%.2fe%i" or "%.3fe%i", mantissa, fac))'''
match_indent = true
# Remove trailing zeroes
# E.g. X1.5 being displayed as X1.50
[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = '''
return string.format(num ~= math.floor(num) and (num >= 100 and "%.0f" or num >= 10 and "%.1f" or "%.2f") or "%.0f", num):reverse():gsub("(%d%d%d)", "%1,"):gsub(",$", ""):reverse()'''
position = "at"
payload = '''
local formatted
if num ~= math.floor(num) and num < 100 then
formatted = string.format(num >= 10 and "%.1f" or "%.2f", num)
if formatted:sub(-1) == "0" then
formatted = formatted:gsub("%.?0+$", "")
end
-- Return already to avoid comas being added
if num < 0.01 then return tostring(num) end
else
formatted = string.format("%.0f", num)
end
return sign..(formatted:reverse():gsub("(%d%d%d)", "%1,"):gsub(",$", ""):reverse())'''
match_indent = true
## scale_number
[[patches]]
[patches.pattern]
target = "functions/button_callbacks.lua"
pattern = 'function scale_number(number, scale, max)'
position = "at"
payload = 'function scale_number(number, scale, max, e_switch_point)'
match_indent = true
[[patches]]
[patches.regex]
target = "functions/button_callbacks.lua"
pattern = 'number >= G\.E_SWITCH_POINT'
position = "at"
payload = "math.abs(number) >= (e_switch_point or G.E_SWITCH_POINT)"