From 1944bfa6fb9a995c28c7c98975cbb1c90150610f Mon Sep 17 00:00:00 2001 From: Joris <joris.dauphin@gmail.com> Date: Thu, 10 May 2012 17:44:26 +0200 Subject: [PATCH] Add a lua call back when game ends : CleanGame_Lua. --- src/include/script.h | 2 ++ src/stratagus/script.cpp | 14 ++++++++++++++ src/stratagus/stratagus.cpp | 1 + 3 files changed, 17 insertions(+) diff --git a/src/include/script.h b/src/include/script.h index f576b94d1..a359979c4 100644 --- a/src/include/script.h +++ b/src/include/script.h @@ -341,6 +341,8 @@ void FreeNumberDesc(NumberDesc *number); /// Free number description content. ( void FreeUnitDesc(UnitDesc *unitdesc); /// Free unit description content. (no pointer itself). void FreeStringDesc(StringDesc *s); /// Frre string description content. (no pointer itself). +// call the lua function: CleanGame_Lua. +void CleanGame_Lua(); //@} diff --git a/src/stratagus/script.cpp b/src/stratagus/script.cpp index d01478b32..56ec97a06 100644 --- a/src/stratagus/script.cpp +++ b/src/stratagus/script.cpp @@ -2834,4 +2834,18 @@ void SaveCcl(CFile &file) file.printf("SetSpeedResearch(%d)\n", SpeedResearch); } + + +void CleanGame_Lua() +{ + lua_getglobal(Lua, "CleanGame_Lua"); + if (lua_isfunction(Lua, -1)) { + LuaCall(0, 1); + } else { + lua_pop(Lua, 1); + } +} + + + //@} diff --git a/src/stratagus/stratagus.cpp b/src/stratagus/stratagus.cpp index a2d3bde9c..2161e1482 100644 --- a/src/stratagus/stratagus.cpp +++ b/src/stratagus/stratagus.cpp @@ -403,6 +403,7 @@ void CleanGame() EndReplayLog(); CleanMessages(); + CleanGame_Lua(); CleanTriggers(); CleanAi(); CleanGroups();