Blame lua53.patch

Bernhard M. Wiedemann 5331e1
From 1524b7cc7b8e6e18cc1575118e87ea464d6ae494 Mon Sep 17 00:00:00 2001
Bernhard M. Wiedemann 5331e1
From: Charles Lindsay <chaz@chazomatic.us>
Bernhard M. Wiedemann 5331e1
Date: Fri, 8 Jul 2016 21:38:59 -0700
Bernhard M. Wiedemann 5331e1
Subject: [PATCH] Upgrade to Lua 5.3
Bernhard M. Wiedemann 5331e1
Bernhard M. Wiedemann 5331e1
It's been out for a while, might as well keep current.
Bernhard M. Wiedemann 5331e1
Bernhard M. Wiedemann 5331e1
The C code is pretty easy--unsigneds just become integers, no big whoop.
Bernhard M. Wiedemann 5331e1
The lua code is a little trickier since every math operation has to
Bernhard M. Wiedemann 5331e1
(gets to?) take the new integer type into account.  I think I got it all
Bernhard M. Wiedemann 5331e1
ok, might've even gotten a little pedantic in there... but if this isn't
Bernhard M. Wiedemann 5331e1
the place for pedantry, what is?
Bernhard M. Wiedemann 5331e1
---
Bernhard M. Wiedemann 5331e1
 configure.ac               |  6 +++---
Bernhard M. Wiedemann 5331e1
 l3/l3.c                    |  2 +-
Bernhard M. Wiedemann 5331e1
 l3/level.c                 | 18 +++++++++---------
Bernhard M. Wiedemann 5331e1
 l3/sync.c                  |  2 +-
Bernhard M. Wiedemann 5331e1
 res/base/bot.lua           |  8 ++++----
Bernhard M. Wiedemann 5331e1
 res/base/entities/bomn.lua |  4 ++--
Bernhard M. Wiedemann 5331e1
 res/base/entities/dude.lua |  8 ++++----
Bernhard M. Wiedemann 5331e1
 res/base/generate.lua      | 22 +++++++++++-----------
Bernhard M. Wiedemann 5331e1
 res/base/sprites/blast.lua |  4 ++--
Bernhard M. Wiedemann 5331e1
 9 files changed, 37 insertions(+), 37 deletions(-)
Bernhard M. Wiedemann 5331e1
Bernhard M. Wiedemann 5331e1
diff --git a/configure.ac b/configure.ac
Bernhard M. Wiedemann 5331e1
index 1833c5b..941d132 100644
Bernhard M. Wiedemann 5331e1
--- a/configure.ac
Bernhard M. Wiedemann 5331e1
+++ b/configure.ac
Bernhard M. Wiedemann 5331e1
@@ -18,9 +18,9 @@ PKG_CHECK_MODULES([SDL], [
Bernhard M. Wiedemann 5331e1
 	SDL2_image >= 2.0.0
Bernhard M. Wiedemann 5331e1
 	SDL2_ttf >= 2.0.12
Bernhard M. Wiedemann 5331e1
 ])
Bernhard M. Wiedemann 5331e1
-PKG_CHECK_MODULES([LUA], [lua5.2 >= 5.2.0], [], dnl Linux package name
Bernhard M. Wiedemann 5331e1
-	[PKG_CHECK_MODULES([LUA], [lua-5.2 >= 5.2.0], [], dnl BSD
Bernhard M. Wiedemann 5331e1
-	[PKG_CHECK_MODULES([LUA], [lua >= 5.2.0])] dnl OpenSUSE (et al.?)
Bernhard M. Wiedemann 5331e1
+PKG_CHECK_MODULES([LUA], [lua5.3 >= 5.3.0], [], dnl Linux package name
Bernhard M. Wiedemann 5331e1
+	[PKG_CHECK_MODULES([LUA], [lua-5.3 >= 5.3.0], [], dnl BSD
Bernhard M. Wiedemann 5331e1
+	[PKG_CHECK_MODULES([LUA], [lua >= 5.3.0])] dnl OpenSUSE (et al.?)
Bernhard M. Wiedemann 5331e1
 )])
Bernhard M. Wiedemann 5331e1
 AC_CHECK_HEADERS([argp.h], [],
Bernhard M. Wiedemann 5331e1
 	[AC_MSG_ERROR([cannot find required header argp.h])]
Bernhard M. Wiedemann 5331e1
diff --git a/l3/l3.c b/l3/l3.c
Bernhard M. Wiedemann 5331e1
index e540f09..9392b48 100644
Bernhard M. Wiedemann 5331e1
--- a/l3/l3.c
Bernhard M. Wiedemann 5331e1
+++ b/l3/l3.c
Bernhard M. Wiedemann 5331e1
@@ -128,7 +128,7 @@ static void set_tile_images(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
         b3_fatal("Missing global table %s", L3_TILE_IMAGES_NAME);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
     for(int i = 0; i < B3_TILE_COUNT; i++) {
Bernhard M. Wiedemann 5331e1
-        lua_pushunsigned(l, (lua_Unsigned)i);
Bernhard M. Wiedemann 5331e1
+        lua_pushinteger(l, (lua_Integer)i);
Bernhard M. Wiedemann 5331e1
         lua_gettable(l, -2);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
         b3_image **p_image = luaL_testudata(l, -1, IMAGE_METATABLE);
Bernhard M. Wiedemann 5331e1
diff --git a/l3/level.c b/l3/level.c
Bernhard M. Wiedemann 5331e1
index f566237..4f0ae97 100644
Bernhard M. Wiedemann 5331e1
--- a/l3/level.c
Bernhard M. Wiedemann 5331e1
+++ b/l3/level.c
Bernhard M. Wiedemann 5331e1
@@ -40,7 +40,7 @@ l3_level *push_new_level(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 static int level_new(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
     b3_size size = check_size(l, 1);
Bernhard M. Wiedemann 5331e1
-    int max_entities = luaL_checkint(l, 2);
Bernhard M. Wiedemann 5331e1
+    int max_entities = (int)luaL_checkinteger(l, 2);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
     l3_level *level = push_new_level(l);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
@@ -84,14 +84,14 @@ static int level_get_tile(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
     l3_level *level = check_level(l, 1);
Bernhard M. Wiedemann 5331e1
     b3_pos pos = check_map_pos(l, 2, level->map);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
-    lua_pushunsigned(l, (lua_Unsigned)b3_get_map_tile(level->map, &pos));
Bernhard M. Wiedemann 5331e1
+    lua_pushinteger(l, (lua_Integer)b3_get_map_tile(level->map, &pos));
Bernhard M. Wiedemann 5331e1
     return 1;
Bernhard M. Wiedemann 5331e1
 }
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 static int level_set_tile(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
     l3_level *level = check_level(l, 1);
Bernhard M. Wiedemann 5331e1
     b3_pos pos = check_map_pos(l, 2, level->map);
Bernhard M. Wiedemann 5331e1
-    b3_tile tile = (b3_tile)luaL_checkunsigned(l, 3);
Bernhard M. Wiedemann 5331e1
+    b3_tile tile = (b3_tile)luaL_checkinteger(l, 3);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
     b3_set_map_tile(level->map, &pos, tile);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
@@ -231,7 +231,7 @@ static int sprentity_set_image(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
 // Works on either "sprites" or entities.
Bernhard M. Wiedemann 5331e1
 static int sprentity_set_z_order(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
     b3_entity *entity = check_sprentity(l, 1);
Bernhard M. Wiedemann 5331e1
-    int z_order = luaL_checkint(l, 2);
Bernhard M. Wiedemann 5331e1
+    int z_order = (int)luaL_checkinteger(l, 2);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
     b3_set_entity_z_order(entity, z_order);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
@@ -263,7 +263,7 @@ static int level_new_entity(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 static int level_get_entity(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
     l3_level *level = check_level(l, 1);
Bernhard M. Wiedemann 5331e1
-    b3_entity_id id = (b3_entity_id)luaL_checkunsigned(l, 2);
Bernhard M. Wiedemann 5331e1
+    b3_entity_id id = (b3_entity_id)luaL_checkinteger(l, 2);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
     b3_entity *entity = b3_get_entity(level->entities, id);
Bernhard M. Wiedemann 5331e1
     if(entity) {
Bernhard M. Wiedemann 5331e1
@@ -279,14 +279,14 @@ static int level_get_entity(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 static int level_set_dude(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
     l3_level *level = check_level(l, 1);
Bernhard M. Wiedemann 5331e1
-    int i = luaL_checkint(l, 2) - 1;
Bernhard M. Wiedemann 5331e1
+    int i = (int)luaL_checkinteger(l, 2) - 1;
Bernhard M. Wiedemann 5331e1
     luaL_argcheck(
Bernhard M. Wiedemann 5331e1
         l,
Bernhard M. Wiedemann 5331e1
         i >= 0 && i < L3_DUDE_COUNT,
Bernhard M. Wiedemann 5331e1
         2,
Bernhard M. Wiedemann 5331e1
         "dude index out of bounds"
Bernhard M. Wiedemann 5331e1
     );
Bernhard M. Wiedemann 5331e1
-    b3_entity_id id = (b3_entity_id)luaL_checkunsigned(l, 3);
Bernhard M. Wiedemann 5331e1
+    b3_entity_id id = (b3_entity_id)luaL_checkinteger(l, 3);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
     level->dude_ids[i] = id;
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
@@ -298,7 +298,7 @@ static int entity_get_id(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
     b3_entity *entity = check_entity(l, 1);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
     b3_entity_id id = b3_get_entity_id(entity);
Bernhard M. Wiedemann 5331e1
-    lua_pushunsigned(l, (lua_Unsigned)id);
Bernhard M. Wiedemann 5331e1
+    lua_pushinteger(l, (lua_Integer)id);
Bernhard M. Wiedemann 5331e1
     return 1;
Bernhard M. Wiedemann 5331e1
 }
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
@@ -328,7 +328,7 @@ static int entity_get_life(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 static int entity_set_life(lua_State *restrict l) {
Bernhard M. Wiedemann 5331e1
     b3_entity *entity = check_entity(l, 1);
Bernhard M. Wiedemann 5331e1
-    int life = luaL_checkint(l, 2);
Bernhard M. Wiedemann 5331e1
+    int life = (int)luaL_checkinteger(l, 2);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
     b3_set_entity_life(entity, life);
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
diff --git a/l3/sync.c b/l3/sync.c
Bernhard M. Wiedemann 5331e1
index ed0cd08..6e470a4 100644
Bernhard M. Wiedemann 5331e1
--- a/l3/sync.c
Bernhard M. Wiedemann 5331e1
+++ b/l3/sync.c
Bernhard M. Wiedemann 5331e1
@@ -130,7 +130,7 @@ void l3_sync_deleted(b3_entity_id ids[], int count) {
Bernhard M. Wiedemann 5331e1
     lua_createtable(lua, count, 0);
Bernhard M. Wiedemann 5331e1
     for(int i = 0; i < count; i++) {
Bernhard M. Wiedemann 5331e1
         lua_pushinteger(lua, (lua_Integer)(i + 1));
Bernhard M. Wiedemann 5331e1
-        lua_pushunsigned(lua, (lua_Unsigned)ids[i]);
Bernhard M. Wiedemann 5331e1
+        lua_pushinteger(lua, (lua_Integer)ids[i]);
Bernhard M. Wiedemann 5331e1
         lua_settable(lua, -3);
Bernhard M. Wiedemann 5331e1
     }
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
diff --git a/res/base/bot.lua b/res/base/bot.lua
Bernhard M. Wiedemann 5331e1
index d873c54..e0c8b59 100644
Bernhard M. Wiedemann 5331e1
--- a/res/base/bot.lua
Bernhard M. Wiedemann 5331e1
+++ b/res/base/bot.lua
Bernhard M. Wiedemann 5331e1
@@ -36,7 +36,7 @@ end
Bernhard M. Wiedemann 5331e1
 function Bot:co_start(elapsed)
Bernhard M. Wiedemann 5331e1
   -- Wait just a tick (beyond what's already elapsed, which we ignore) to be a
Bernhard M. Wiedemann 5331e1
   -- little more human at the start.
Bernhard M. Wiedemann 5331e1
-  self:co_wait(self.action_time + math.random(0, 5) / 10)
Bernhard M. Wiedemann 5331e1
+  self:co_wait(self.action_time + math.random(0, 5) / 10.0)
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
   while true do
Bernhard M. Wiedemann 5331e1
     self:co_rethink()
Bernhard M. Wiedemann 5331e1
@@ -55,7 +55,7 @@ function Bot:co_rethink(danger)
Bernhard M. Wiedemann 5331e1
 end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 function Bot:do_until(act, done)
Bernhard M. Wiedemann 5331e1
-  local elapsed = 0
Bernhard M. Wiedemann 5331e1
+  local elapsed = 0.0
Bernhard M. Wiedemann 5331e1
   while not done(elapsed) do
Bernhard M. Wiedemann 5331e1
     elapsed = elapsed + act()
Bernhard M. Wiedemann 5331e1
   end
Bernhard M. Wiedemann 5331e1
@@ -229,7 +229,7 @@ function Bot:co_run_away(danger)
Bernhard M. Wiedemann 5331e1
   -- TODO: omit paths (unless it's the only one) that go through a dude.
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
   local function interrupt(elapsed)
Bernhard M. Wiedemann 5331e1
-    return elapsed > 3
Bernhard M. Wiedemann 5331e1
+    return elapsed > 3.0
Bernhard M. Wiedemann 5331e1
   end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
   if #safe == 0 then
Bernhard M. Wiedemann 5331e1
@@ -252,7 +252,7 @@ function Bot:co_hunt()
Bernhard M. Wiedemann 5331e1
   end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
   local function interrupt(elapsed)
Bernhard M. Wiedemann 5331e1
-    return elapsed > 1 or self:get_danger()
Bernhard M. Wiedemann 5331e1
+    return elapsed > 1.0 or self:get_danger()
Bernhard M. Wiedemann 5331e1
   end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
   if not target then
Bernhard M. Wiedemann 5331e1
diff --git a/res/base/entities/bomn.lua b/res/base/entities/bomn.lua
Bernhard M. Wiedemann 5331e1
index 9ac571d..270a48f 100644
Bernhard M. Wiedemann 5331e1
--- a/res/base/entities/bomn.lua
Bernhard M. Wiedemann 5331e1
+++ b/res/base/entities/bomn.lua
Bernhard M. Wiedemann 5331e1
@@ -29,7 +29,7 @@ local serial = require("serial")
Bernhard M. Wiedemann 5331e1
 local Blast = require("sprites.blast")
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
-Bomn.TIME = 3
Bernhard M. Wiedemann 5331e1
+Bomn.TIME = 3.0
Bernhard M. Wiedemann 5331e1
 Bomn.RADIUS = 8
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 Bomn.ANIMATION = nil
Bernhard M. Wiedemann 5331e1
@@ -149,7 +149,7 @@ end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 function Bomn:l3_update(backing, elapsed)
Bernhard M. Wiedemann 5331e1
   self.time = self.time - elapsed
Bernhard M. Wiedemann 5331e1
-  if self.time <= 0 then
Bernhard M. Wiedemann 5331e1
+  if self.time <= 0.0 then
Bernhard M. Wiedemann 5331e1
     self:explode(backing)
Bernhard M. Wiedemann 5331e1
     return
Bernhard M. Wiedemann 5331e1
   end
Bernhard M. Wiedemann 5331e1
diff --git a/res/base/entities/dude.lua b/res/base/entities/dude.lua
Bernhard M. Wiedemann 5331e1
index c016701..9ad5d43 100644
Bernhard M. Wiedemann 5331e1
--- a/res/base/entities/dude.lua
Bernhard M. Wiedemann 5331e1
+++ b/res/base/entities/dude.lua
Bernhard M. Wiedemann 5331e1
@@ -29,7 +29,7 @@ local Entities = require("entities")
Bernhard M. Wiedemann 5331e1
 local Bot = require("bot")
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
-Dude.SUPER_TIME = 10
Bernhard M. Wiedemann 5331e1
+Dude.SUPER_TIME = 10.0
Bernhard M. Wiedemann 5331e1
 Dude.BUMP_DAMAGE = 1
Bernhard M. Wiedemann 5331e1
 Dude.BLAST_DAMAGE = 5
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
@@ -83,7 +83,7 @@ function Dude:set_visual(backing)
Bernhard M. Wiedemann 5331e1
 end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 function Dude:is_super()
Bernhard M. Wiedemann 5331e1
-  return self.super_time > 0
Bernhard M. Wiedemann 5331e1
+  return self.super_time > 0.0
Bernhard M. Wiedemann 5331e1
 end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 function Dude:can_fire()
Bernhard M. Wiedemann 5331e1
@@ -98,7 +98,7 @@ function Dude:superify(backing)
Bernhard M. Wiedemann 5331e1
 end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 function Dude:unsuperify(backing)
Bernhard M. Wiedemann 5331e1
-  self.super_time = 0
Bernhard M. Wiedemann 5331e1
+  self.super_time = 0.0
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
   -- If we ever call unsuperify before the time is actually out, we'll also
Bernhard M. Wiedemann 5331e1
   -- need a self:set_dirty(backing) call here.
Bernhard M. Wiedemann 5331e1
@@ -169,7 +169,7 @@ function Dude:l3_update(backing, elapsed)
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
   if self:is_super() then
Bernhard M. Wiedemann 5331e1
     self.super_time = self.super_time - elapsed
Bernhard M. Wiedemann 5331e1
-    if self.super_time <= 0 then
Bernhard M. Wiedemann 5331e1
+    if self.super_time <= 0.0 then
Bernhard M. Wiedemann 5331e1
       self:unsuperify(backing)
Bernhard M. Wiedemann 5331e1
     end
Bernhard M. Wiedemann 5331e1
   end
Bernhard M. Wiedemann 5331e1
diff --git a/res/base/generate.lua b/res/base/generate.lua
Bernhard M. Wiedemann 5331e1
index df5f68c..0100bbb 100644
Bernhard M. Wiedemann 5331e1
--- a/res/base/generate.lua
Bernhard M. Wiedemann 5331e1
+++ b/res/base/generate.lua
Bernhard M. Wiedemann 5331e1
@@ -56,16 +56,16 @@ end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 function Generator:set_spawns()
Bernhard M. Wiedemann 5331e1
   local quads = {
Bernhard M. Wiedemann 5331e1
-    core.Pos(MAP_SIZE.width / 2, MAP_SIZE.height / 2),
Bernhard M. Wiedemann 5331e1
+    core.Pos(MAP_SIZE.width // 2, MAP_SIZE.height // 2),
Bernhard M. Wiedemann 5331e1
     core.Pos(0, 0),
Bernhard M. Wiedemann 5331e1
-    core.Pos(MAP_SIZE.width / 2, 0),
Bernhard M. Wiedemann 5331e1
-    core.Pos(0, MAP_SIZE.height / 2),
Bernhard M. Wiedemann 5331e1
+    core.Pos(MAP_SIZE.width // 2, 0),
Bernhard M. Wiedemann 5331e1
+    core.Pos(0, MAP_SIZE.height // 2),
Bernhard M. Wiedemann 5331e1
   }
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
   for i, q in ipairs(quads) do
Bernhard M. Wiedemann 5331e1
     self.spawns[i] = core.Pos(
Bernhard M. Wiedemann 5331e1
-      math.random(q.x + 2, q.x + MAP_SIZE.width  / 2 - 2),
Bernhard M. Wiedemann 5331e1
-      math.random(q.y + 2, q.y + MAP_SIZE.height / 2 - 2)
Bernhard M. Wiedemann 5331e1
+      math.random(q.x + 2, q.x + MAP_SIZE.width  // 2 - 2),
Bernhard M. Wiedemann 5331e1
+      math.random(q.y + 2, q.y + MAP_SIZE.height // 2 - 2)
Bernhard M. Wiedemann 5331e1
     )
Bernhard M. Wiedemann 5331e1
   end
Bernhard M. Wiedemann 5331e1
 end
Bernhard M. Wiedemann 5331e1
@@ -79,8 +79,8 @@ end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 function Generator:add_walls()
Bernhard M. Wiedemann 5331e1
   local fourth = core.Size(
Bernhard M. Wiedemann 5331e1
-    math.floor(MAP_SIZE.width  / 4),
Bernhard M. Wiedemann 5331e1
-    math.floor(MAP_SIZE.height / 4)
Bernhard M. Wiedemann 5331e1
+    math.floor(MAP_SIZE.width  // 4),
Bernhard M. Wiedemann 5331e1
+    math.floor(MAP_SIZE.height // 4)
Bernhard M. Wiedemann 5331e1
   )
Bernhard M. Wiedemann 5331e1
   local pos = {
Bernhard M. Wiedemann 5331e1
     core.Pos(fourth.width, fourth.height),
Bernhard M. Wiedemann 5331e1
@@ -111,7 +111,7 @@ function Generator:add_walls()
Bernhard M. Wiedemann 5331e1
   for _, p in ipairs(pos) do
Bernhard M. Wiedemann 5331e1
     wall_grid(p)
Bernhard M. Wiedemann 5331e1
   end
Bernhard M. Wiedemann 5331e1
-  wall_grid(core.Pos(MAP_SIZE.width / 2, MAP_SIZE.height / 2))
Bernhard M. Wiedemann 5331e1
+  wall_grid(core.Pos(MAP_SIZE.width // 2, MAP_SIZE.height // 2))
Bernhard M. Wiedemann 5331e1
 end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 function Generator:fill_space()
Bernhard M. Wiedemann 5331e1
@@ -139,8 +139,8 @@ function Generator:spawn_crates()
Bernhard M. Wiedemann 5331e1
   local function bisect(a, b)
Bernhard M. Wiedemann 5331e1
     -- Rounded up or down at random.
Bernhard M. Wiedemann 5331e1
     return core.Pos(
Bernhard M. Wiedemann 5331e1
-      math.floor((a.x + b.x) / 2 + 0.5 * math.random(0, 1)),
Bernhard M. Wiedemann 5331e1
-      math.floor((a.y + b.y) / 2 + 0.5 * math.random(0, 1))
Bernhard M. Wiedemann 5331e1
+      math.floor((a.x + b.x) / 2.0 + 0.5 * math.random(0, 1)),
Bernhard M. Wiedemann 5331e1
+      math.floor((a.y + b.y) / 2.0 + 0.5 * math.random(0, 1))
Bernhard M. Wiedemann 5331e1
     )
Bernhard M. Wiedemann 5331e1
   end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
@@ -163,7 +163,7 @@ function Generator:spawn_crates()
Bernhard M. Wiedemann 5331e1
     return true
Bernhard M. Wiedemann 5331e1
   end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
-  local center = core.Pos(MAP_SIZE.width / 2, MAP_SIZE.height / 2)
Bernhard M. Wiedemann 5331e1
+  local center = core.Pos(MAP_SIZE.width // 2, MAP_SIZE.height // 2)
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
   span_dir = core.Pos(0, 1)
Bernhard M. Wiedemann 5331e1
   util.line(center, bisect(self.spawns[1], self.spawns[3]), crates)
Bernhard M. Wiedemann 5331e1
diff --git a/res/base/sprites/blast.lua b/res/base/sprites/blast.lua
Bernhard M. Wiedemann 5331e1
index e8196ad..019f918 100644
Bernhard M. Wiedemann 5331e1
--- a/res/base/sprites/blast.lua
Bernhard M. Wiedemann 5331e1
+++ b/res/base/sprites/blast.lua
Bernhard M. Wiedemann 5331e1
@@ -27,7 +27,7 @@ local core = require("core")
Bernhard M. Wiedemann 5331e1
 local util = require("util")
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
-Blast.TIME = 1
Bernhard M. Wiedemann 5331e1
+Blast.TIME = 1.0
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 function Blast:init_animation()
Bernhard M. Wiedemann 5331e1
   self.animation = {}
Bernhard M. Wiedemann 5331e1
@@ -63,7 +63,7 @@ end
Bernhard M. Wiedemann 5331e1
 
Bernhard M. Wiedemann 5331e1
 function Blast:l3_update(backing, elapsed)
Bernhard M. Wiedemann 5331e1
   self.time = self.time - elapsed
Bernhard M. Wiedemann 5331e1
-  if self.time <= 0 then
Bernhard M. Wiedemann 5331e1
+  if self.time <= 0.0 then
Bernhard M. Wiedemann 5331e1
     self:destroy(backing)
Bernhard M. Wiedemann 5331e1
     return
Bernhard M. Wiedemann 5331e1
   end