mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-18 03:35:56 +02:00
Merge pull request #1492 from thibautbus/fix/museum-1f-ticket-clerk-strings
Route the museum 1F ticket clerk's remaining lines through Strings
This commit is contained in:
@@ -733,7 +733,8 @@ local function museumClerk(game, ow, done, onDecline)
|
||||
local t = game.data.text or {}
|
||||
if game.save.flags.EVENT_BOUGHT_MUSEUM_TICKET then
|
||||
game.stack:push(TextBox.new(game,
|
||||
"Take your time,\nand enjoy it all!", done))
|
||||
t._Museum1FScientist1TakePlentyOfTimeText
|
||||
or "Take your time,\nand enjoy it all!", done))
|
||||
return
|
||||
end
|
||||
-- scripts/Museum1F.asm:72
|
||||
@@ -751,10 +752,12 @@ local function museumClerk(game, ow, done, onDecline)
|
||||
{ money = money }))
|
||||
elseif yes then
|
||||
game.stack:push(TextBox.new(game,
|
||||
"You don't have\nenough money.", onDecline or done, { money = money }))
|
||||
t._Museum1FScientist1DontHaveEnoughMoneyText
|
||||
or "You don't have\nenough money.", onDecline or done, { money = money }))
|
||||
else
|
||||
game.stack:push(TextBox.new(game,
|
||||
"Come again!", onDecline or done, { money = money }))
|
||||
t._Museum1FScientist1ComeAgainText
|
||||
or "Come again!", onDecline or done, { money = money }))
|
||||
end
|
||||
end }))
|
||||
end
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
-- The museum 1F ticket clerk's take-your-time/not-enough-money/come-again
|
||||
-- lines used to be bare English literals, invisible to game.data.text no
|
||||
-- matter what a translation mod put there. tests/engine/museum_money_box_
|
||||
-- bug1335.lua only ever runs with an empty game.data.text, so it can't
|
||||
-- tell a properly-wired t._Key or "..." fallback apart from a literal that
|
||||
-- never looked at t at all -- every assertion there passes either way.
|
||||
-- This test populates game.data.text with translated values and checks
|
||||
-- they actually reach the pushed TextBox, for all three lines.
|
||||
package.path = "./?.lua;./?/init.lua;" .. package.path
|
||||
|
||||
local T = require("tests.harness")
|
||||
|
||||
package.loaded["src.render.TextBox"] = {
|
||||
new = function(_, text, onDone, opts)
|
||||
return { text = text, onDone = onDone, opts = opts }
|
||||
end,
|
||||
}
|
||||
|
||||
local M = assert(loadfile("data/scripts/story2.lua"))()
|
||||
local clerk = M.MUSEUM_1F.talk.TEXT_MUSEUM1F_SCIENTIST1
|
||||
|
||||
local TRANSLATED = {
|
||||
_Museum1FScientist1TakePlentyOfTimeText = "Prends ton temps\net profite bien !",
|
||||
_Museum1FScientist1DontHaveEnoughMoneyText = "Tu n'as pas assez\nd'argent.",
|
||||
_Museum1FScientist1ComeAgainText = "Reviens vite !",
|
||||
}
|
||||
|
||||
local pushed
|
||||
local function mkGame(cash)
|
||||
pushed = {}
|
||||
return {
|
||||
data = { text = TRANSLATED },
|
||||
save = { money = cash, flags = {} },
|
||||
stack = { push = function(_, box) pushed[#pushed + 1] = box end },
|
||||
}
|
||||
end
|
||||
|
||||
-- already ticketed: take-your-time line
|
||||
local g = mkGame(3000)
|
||||
g.save.flags.EVENT_BOUGHT_MUSEUM_TICKET = true
|
||||
clerk(g, nil, nil, function() end)
|
||||
T.eq(pushed[1].text, TRANSLATED._Museum1FScientist1TakePlentyOfTimeText,
|
||||
"an existing ticket holder gets the translated take-your-time line")
|
||||
|
||||
-- YES but short on cash: not-enough-money line
|
||||
g = mkGame(20)
|
||||
clerk(g, nil, nil, function() end)
|
||||
pushed[1].opts.choice(true)
|
||||
T.eq(pushed[2].text, TRANSLATED._Museum1FScientist1DontHaveEnoughMoneyText,
|
||||
"short on cash opens the translated not-enough-money box")
|
||||
|
||||
-- NO: come-again line
|
||||
g = mkGame(3000)
|
||||
clerk(g, nil, nil, function() end)
|
||||
pushed[1].opts.choice(false)
|
||||
T.eq(pushed[2].text, TRANSLATED._Museum1FScientist1ComeAgainText,
|
||||
"declining opens the translated come-again box")
|
||||
|
||||
-- unpopulated game.data.text still falls back to the English literal
|
||||
g = { data = { text = {} }, save = { money = 3000, flags = {} },
|
||||
stack = { push = function(_, box) pushed[#pushed + 1] = box end } }
|
||||
pushed = {}
|
||||
g.save.flags.EVENT_BOUGHT_MUSEUM_TICKET = true
|
||||
clerk(g, nil, nil, function() end)
|
||||
T.check(tostring(pushed[1].text):find("Take your time", 1, true) ~= nil,
|
||||
"an empty catalog still falls back to the English take-your-time line")
|
||||
|
||||
T.finish("museum_1f_clerk_translation_test")
|
||||
Reference in New Issue
Block a user