mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-18 19:54:21 +02:00
80 lines
2.5 KiB
Lua
80 lines
2.5 KiB
Lua
-- Gold VOID FILL (#1418): FADE (each map's own border, dissolving across a
|
|
-- boundary), WATER, TREES, or BLACK. Parks you on Cherrygrove zoomed out so
|
|
-- the void is most of the window, cycles the four modes, then hands the pad
|
|
-- over. Do not add POKEPORT_SPEED: the water anim and the dissolve both run
|
|
-- on the real clock.
|
|
--
|
|
-- POKEPORT_IDENTITY=gold-dev POKEPORT_GAME=gold \
|
|
-- POKEPORT_DRIVER=tests/drivers/gold_void_fill_bug1418_test.lua love .
|
|
|
|
local U = require("tests.drivers.util")
|
|
|
|
return function(game)
|
|
local out = os.getenv("POKEPORT_SHOT_DIR") or "/tmp/gold-void-fill"
|
|
local BorderFill = require("src.world.gen2.BorderFill")
|
|
local Tilt = require("src.render.Tilt")
|
|
local Zoom = require("src.render.Zoom")
|
|
local failures = 0
|
|
|
|
local function ok(label, condition, detail)
|
|
if condition then
|
|
print("[void] ok " .. label)
|
|
else
|
|
failures = failures + 1
|
|
print("[void] FAIL " .. label .. " " .. tostring(detail))
|
|
end
|
|
end
|
|
|
|
U.wait(45)
|
|
local world = game.world
|
|
assert(world and world.map, "gold world did not boot")
|
|
|
|
-- Cherrygrove's header border is water ($35). FADE shows that water,
|
|
-- TREES replaces it, BLACK drops the sheet. attributes.asm:123.
|
|
world:setMap("CHERRYGROVE_CITY", 22, 16, "down")
|
|
U.wait(10)
|
|
|
|
Zoom.offset = -3
|
|
world:rebuildNeighbors()
|
|
world:rebuildPeople({ seamless = true })
|
|
Tilt.setLevel(3)
|
|
for _ = 1, 40 do
|
|
Tilt.update(1 / 60)
|
|
U.wait(1)
|
|
end
|
|
|
|
local function show(mode, file, label)
|
|
BorderFill.setVoidFill(mode)
|
|
if game.options then game.options.voidFill = mode end
|
|
if game.save and game.save.options then
|
|
game.save.options.voidFill = mode
|
|
end
|
|
U.wait(8)
|
|
ok(label, BorderFill.voidFill == mode, BorderFill.voidFill)
|
|
U.shot(game, out .. "/" .. file)
|
|
end
|
|
|
|
show("fade", "01-fade.png", "FADE is the live fill")
|
|
show("water", "02-water.png", "WATER forces the water block")
|
|
show("trees", "03-trees.png", "TREES forces the tree wall")
|
|
show("black", "04-black.png", "BLACK drops the tiled void")
|
|
show("fade", "05-fade-again.png", "and FADE restores the map's own border")
|
|
|
|
Tilt.setLevel(0)
|
|
Zoom.offset = 0
|
|
world:rebuildNeighbors()
|
|
world:rebuildPeople({ seamless = true })
|
|
|
|
if failures > 0 then
|
|
print(("[driver] FAIL gold void fill: %d check(s)"):format(failures))
|
|
return
|
|
end
|
|
print("[driver] PASS gold void fill in " .. out)
|
|
U.log("cycled fade/water/trees/black on cherrygrove (#1418).")
|
|
U.log("OPTION > VOID FILL, zoom out (-) to see the void.")
|
|
|
|
while true do
|
|
coroutine.yield()
|
|
end
|
|
end
|