From 5f852a61e6d277bc856a129e1e55369af77128c5 Mon Sep 17 00:00:00 2001 From: lustlion Date: Tue, 15 Feb 2022 10:35:52 +0100 Subject: [PATCH] bugfix collision optimizer being too greedy --- code/entities/player.lua | 1 - code/level.lua | 11 ++++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/code/entities/player.lua b/code/entities/player.lua index ceeb44a..4cab434 100644 --- a/code/entities/player.lua +++ b/code/entities/player.lua @@ -301,7 +301,6 @@ function Player:HandleAnimation() ) end - logPrint(tostring(self.body.anim_speed)) self.body:Animate() self:Draw(self.body) diff --git a/code/level.lua b/code/level.lua index e6117a2..25c8d49 100644 --- a/code/level.lua +++ b/code/level.lua @@ -247,23 +247,18 @@ function TileOptimizeObjects() logPrint("Optimizing Objects...") local unoptimized = 0 local isTileOptimized = {} - for i = 1, #LevelTiles do isTileOptimized[i] = {} for j= 1, #LevelTiles[i] do isTileOptimized[i][j] = false end end - for i = 1, #LevelTiles do for j = 1, #LevelTiles[i] do if LevelTiles[i][j].id ~= 0 then local type = TileData[LevelTiles[i][j].id].type - if type == "whole" and not isTileOptimized[i][j] then - isTileOptimized[i][j] = true - local n = 1 local check = true while check do @@ -281,12 +276,12 @@ function TileOptimizeObjects() end end end - local m = 1 local check = true while check do check = false local checkline = true + -- for as long as line, check for l = 0, n-1 do checkline = false if LevelTiles[i+m] ~= nil @@ -301,6 +296,8 @@ function TileOptimizeObjects() else break end + else + break end end if checkline then @@ -310,7 +307,7 @@ function TileOptimizeObjects() end m = m + 1 else - check = false + break end end