From 78487719618ccceeb3743985ac720a0c199db2f3 Mon Sep 17 00:00:00 2001
From: "p.kosyh"
Date: Sun, 1 Nov 2009 18:41:14 +0000
Subject: [PATCH] safe lifeoff from life
---
stead/stead.lua | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/stead/stead.lua b/stead/stead.lua
index a1f1bff..8ab0d6f 100644
--- a/stead/stead.lua
+++ b/stead/stead.lua
@@ -1148,7 +1148,10 @@ end
function game_life(self)
local i,o
local av,v
-
+
+ stead.in_life_call = true;
+ stead.lifes_off = list {}; -- lifes to off
+
for i,o in opairs(self.lifes) do
local vv
local pre
@@ -1161,7 +1164,12 @@ function game_life(self)
av = par(' ', av, vv);
end
end
+ end
+ stead.in_life_call = false;
+ for i,o in ipairs(stead.lifes_off) do
+ lifeoff(o);
end
+ stead.lifes_off = nil;
return v, av;
end
@@ -1727,6 +1735,10 @@ function lifeon(what)
end
function lifeoff(what)
+ if stead.in_life_call then
+ stead.lifes_off:add(what);
+ return
+ end
game.lifes:del(what);
end