mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-19 04:06:10 +02:00
CLOSES #1418
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
-- 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
|
||||
Reference in New Issue
Block a user