diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index b0494d769d636fdd8c900f704f7803370cf700e7..60c230e5788c8177de47eece7879290ade404f91 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -68,6 +68,8 @@ function _M:run() -- Ok everything is good to go, activate the game in the engine! self:setCurrent() + + self:setupDisplayMode() end function _M:newGame() @@ -95,10 +97,37 @@ function _M:loaded() self.key = engine.KeyCommand.new() end +function _M:setupDisplayMode() + self.gfxmode = self.gfxmode or 1 + if self.gfxmode == 1 then + Map:setViewPort(200, 0, self.w - 200, math.floor(self.h * 0.80), 32, 32, nil, 20, true) + Map.tiles:clean() + Map.tiles.w = 32 + Map.tiles.h = 32 + Map.tiles.use_images = true + game.level.map:recreate() + elseif self.gfxmode == 2 then + Map:setViewPort(200, 0, self.w - 200, math.floor(self.h * 0.80), 16, 16, nil, 14, true) + Map.tiles:clean() + Map.tiles.w = 16 + Map.tiles.h = 16 + Map.tiles.use_images = true + game.level.map:recreate() + elseif self.gfxmode == 3 then + Map:setViewPort(200, 0, self.w - 200, math.floor(self.h * 0.80), 16, 16, nil, 14, false) + Map.tiles:clean() + Map.tiles.w = 16 + Map.tiles.h = 16 + Map.tiles.use_images = false + game.level.map:recreate() + end + game.level.map:moveViewSurround(self.player.x, self.player.y, 8, 8) +end + function _M:save() return class.save(self, {w=true, h=true, zone=true, player=true, level=true, entities=true, energy_to_act=true, energy_per_tick=true, turn=true, paused=true, save_name=true, - always_target=true, + always_target=true, gfxmode=true; }, true) end @@ -441,29 +470,7 @@ function _M:setupCommands() [{"_s","alt"}] = function() self.gfxmode = self.gfxmode or 1 self.gfxmode = util.boundWrap(self.gfxmode + 1, 1, 3) - if self.gfxmode == 1 then - Map:setViewPort(200, 0, self.w - 200, math.floor(self.h * 0.80), 32, 32, nil, 20, true) - Map.tiles:clean() - Map.tiles.w = 32 - Map.tiles.h = 32 - Map.tiles.use_images = true - game.level.map:recreate() - elseif self.gfxmode == 2 then - Map:setViewPort(200, 0, self.w - 200, math.floor(self.h * 0.80), 16, 16, nil, 14, true) - Map.tiles:clean() - Map.tiles.w = 16 - Map.tiles.h = 16 - Map.tiles.use_images = true - game.level.map:recreate() - elseif self.gfxmode == 3 then - Map:setViewPort(200, 0, self.w - 200, math.floor(self.h * 0.80), 16, 16, nil, 14, false) - Map.tiles:clean() - Map.tiles.w = 16 - Map.tiles.h = 16 - Map.tiles.use_images = false - game.level.map:recreate() - end - game.level.map:moveViewSurround(self.player.x, self.player.y, 8, 8) + self:setupDisplayMode() end, -- Targeting movement