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