From 5146a50899ebc9425cdd9fef4a982ee80c63e746 Mon Sep 17 00:00:00 2001
From: "p.kosyh"
Date: Sun, 6 Jun 2010 08:18:59 +0000
Subject: [PATCH] onexit/onenter actions
---
src/sdl-instead/main.c | 6 ++++--
stead/stead.lua | 11 ++++++++---
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/sdl-instead/main.c b/src/sdl-instead/main.c
index 137a569..88e8433 100644
--- a/src/sdl-instead/main.c
+++ b/src/sdl-instead/main.c
@@ -120,7 +120,8 @@ int main(int argc, char **argv)
p = games_sw;
else
p = game_local_games_path(1);
- setup_zip(file, p);
+ if (setup_zip(file, p))
+ exit(1);
}
#endif
} else if (!strcmp(argv[i], "-quit")) {
@@ -136,7 +137,8 @@ int main(int argc, char **argv)
p = games_sw;
else
p = game_tmp_path();
- setup_zip(argv[i], p);
+ if (setup_zip(argv[i], p))
+ exit(1);
clean_tmp = 1;
}
#endif
diff --git a/stead/stead.lua b/stead/stead.lua
index 6abc3b6..1b94444 100644
--- a/stead/stead.lua
+++ b/stead/stead.lua
@@ -1114,12 +1114,17 @@ function go(self, where, back)
res = par('^^',res,v);
if not back then
ref(where).__from__ = deref(self.where);
- end
+ end
+
+ v = call(ref(was), 'onexit', deref(where));
+ res = par('^^',res,v);
+ self.where = deref(where);
+ v = call(ref(where), 'onenter', deref(was));
+ res = par('^^',res,v);
+
if need_scene then -- or isForcedsc(ref(where)) then -- i'am not sure...
- self.where = deref(where);
return par('^^',res,ref(where):scene());
end
- self.where = deref(where);
return res;
end