From e5cb69df43f07a7e764c66cfe5760f18edabe1ff Mon Sep 17 00:00:00 2001 From: Oshisaure Date: Sat, 1 Jul 2023 01:56:51 +0100 Subject: [PATCH] Slight revamp on BG image handling - The game can now load more than 20 backgrounds by putting them in /res/backgrounds in the save directory - If a gamemode tries to set its background to an ID higher than the max it will be clamped down to the last background loaded --- load/graphics.lua | 27 +++++++-------------------- tetris/modes/gamemode.lua | 4 +++- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/load/graphics.lua b/load/graphics.lua index 066ce72..893bb1b 100644 --- a/load/graphics.lua +++ b/load/graphics.lua @@ -1,24 +1,4 @@ backgrounds = { - [0] = love.graphics.newImage("res/backgrounds/0.png"), - love.graphics.newImage("res/backgrounds/100.png"), - love.graphics.newImage("res/backgrounds/200.png"), - love.graphics.newImage("res/backgrounds/300.png"), - love.graphics.newImage("res/backgrounds/400.png"), - love.graphics.newImage("res/backgrounds/500.png"), - love.graphics.newImage("res/backgrounds/600.png"), - love.graphics.newImage("res/backgrounds/700.png"), - love.graphics.newImage("res/backgrounds/800.png"), - love.graphics.newImage("res/backgrounds/900.png"), - love.graphics.newImage("res/backgrounds/1000.png"), - love.graphics.newImage("res/backgrounds/1100.png"), - love.graphics.newImage("res/backgrounds/1200.png"), - love.graphics.newImage("res/backgrounds/1300.png"), - love.graphics.newImage("res/backgrounds/1400.png"), - love.graphics.newImage("res/backgrounds/1500.png"), - love.graphics.newImage("res/backgrounds/1600.png"), - love.graphics.newImage("res/backgrounds/1700.png"), - love.graphics.newImage("res/backgrounds/1800.png"), - love.graphics.newImage("res/backgrounds/1900.png"), title = love.graphics.newImage("res/backgrounds/title.png"), title_no_icon = love.graphics.newImage("res/backgrounds/title-no-icon.jpg"), title_night = love.graphics.newImage("res/backgrounds/title-night.jpg"), @@ -27,6 +7,13 @@ backgrounds = { game_config = love.graphics.newImage("res/backgrounds/options-game.png"), } +local i = 0 +local bgpath = "res/backgrounds/%d.png" +while love.filesystem.getInfo(bgpath:format(i*100)) do + backgrounds[i] = love.graphics.newImage(bgpath:format(i*100)) + i = i + 1 +end + -- in order, the colors are: -- red, orange, yellow, green, cyan, blue -- magenta (or purple), white, black diff --git a/tetris/modes/gamemode.lua b/tetris/modes/gamemode.lua index 2586cb3..eb07c37 100644 --- a/tetris/modes/gamemode.lua +++ b/tetris/modes/gamemode.lua @@ -979,9 +979,11 @@ function GameMode:drawSectionTimesWithSplits(current_section, section_limit) end function GameMode:drawBackground() + local id = self:getBackground() + if type(id) == "number" then id = clamp(id, 0, #backgrounds) end love.graphics.setColor(1, 1, 1, 1) love.graphics.draw( - backgrounds[self:getBackground()], + backgrounds[id], 0, 0, 0, 0.5, 0.5 )