Fix event objects not being freed

This commit is contained in:
Tamás Bálint Misius
2018-11-16 22:01:40 +01:00
committed by jacob1
parent 531229daa9
commit 3de68c4346
2 changed files with 16 additions and 8 deletions

View File

@@ -622,12 +622,14 @@ void GameController::CutRegion(ui::Point point1, ui::Point point2, bool includeP
bool GameController::MouseMove(int x, int y, int dx, int dy) bool GameController::MouseMove(int x, int y, int dx, int dy)
{ {
return commandInterface->HandleEvent(LuaEvents::mousemove, new MouseMoveEvent(x, y, dx, dy)); MouseMoveEvent ev(x, y, dx, dy);
return commandInterface->HandleEvent(LuaEvents::mousemove, &ev);
} }
bool GameController::MouseDown(int x, int y, unsigned button) bool GameController::MouseDown(int x, int y, unsigned button)
{ {
bool ret = commandInterface->HandleEvent(LuaEvents::mousedown, new MouseDownEvent(x, y, button)); MouseDownEvent ev(x, y, button);
bool ret = commandInterface->HandleEvent(LuaEvents::mousedown, &ev);
if (ret && y<YRES && x<XRES && !gameView->GetPlacingSave() && !gameView->GetPlacingZoom()) if (ret && y<YRES && x<XRES && !gameView->GetPlacingSave() && !gameView->GetPlacingZoom())
{ {
ui::Point point = gameModel->AdjustZoomCoords(ui::Point(x, y)); ui::Point point = gameModel->AdjustZoomCoords(ui::Point(x, y));
@@ -649,7 +651,8 @@ bool GameController::MouseDown(int x, int y, unsigned button)
bool GameController::MouseUp(int x, int y, unsigned button, char type) bool GameController::MouseUp(int x, int y, unsigned button, char type)
{ {
bool ret = commandInterface->HandleEvent(LuaEvents::mouseup, new MouseUpEvent(x, y, button, type)); MouseUpEvent ev(x, y, button, type);
bool ret = commandInterface->HandleEvent(LuaEvents::mouseup, &ev);
if (type) if (type)
return ret; return ret;
if (ret && foundSignID != -1 && y<YRES && x<XRES && !gameView->GetPlacingSave()) if (ret && foundSignID != -1 && y<YRES && x<XRES && !gameView->GetPlacingSave())
@@ -707,17 +710,20 @@ bool GameController::MouseUp(int x, int y, unsigned button, char type)
bool GameController::MouseWheel(int x, int y, int d) bool GameController::MouseWheel(int x, int y, int d)
{ {
return commandInterface->HandleEvent(LuaEvents::mousewheel, new MouseWheelEvent(x, y, d)); MouseWheelEvent ev(x, y, d);
return commandInterface->HandleEvent(LuaEvents::mousewheel, &ev);
} }
bool GameController::TextInput(String text) bool GameController::TextInput(String text)
{ {
return commandInterface->HandleEvent(LuaEvents::textinput, new TextInputEvent(text)); TextInputEvent ev(text);
return commandInterface->HandleEvent(LuaEvents::textinput, &ev);
} }
bool GameController::KeyPress(int key, int scan, bool repeat, bool shift, bool ctrl, bool alt) bool GameController::KeyPress(int key, int scan, bool repeat, bool shift, bool ctrl, bool alt)
{ {
bool ret = commandInterface->HandleEvent(LuaEvents::keypress, new KeyEvent(key, scan, repeat, shift, ctrl, alt)); KeyEvent ev(key, scan, repeat, shift, ctrl, alt);
bool ret = commandInterface->HandleEvent(LuaEvents::keypress, &ev);
if (repeat) if (repeat)
return ret; return ret;
if (ret) if (ret)
@@ -796,7 +802,8 @@ bool GameController::KeyPress(int key, int scan, bool repeat, bool shift, bool c
bool GameController::KeyRelease(int key, int scan, bool repeat, bool shift, bool ctrl, bool alt) bool GameController::KeyRelease(int key, int scan, bool repeat, bool shift, bool ctrl, bool alt)
{ {
bool ret = commandInterface->HandleEvent(LuaEvents::keyrelease, new KeyEvent(key, scan, repeat, shift, ctrl, alt)); KeyEvent ev(key, scan, repeat, shift, ctrl, alt);
bool ret = commandInterface->HandleEvent(LuaEvents::keyrelease, &ev);
if (repeat) if (repeat)
return ret; return ret;
if (ret) if (ret)

View File

@@ -3349,7 +3349,8 @@ void LuaScriptInterface::OnTick()
lua_setfield(l, -2, "NUM_PARTS"); lua_setfield(l, -2, "NUM_PARTS");
} }
lua_pop(l, 1); lua_pop(l, 1);
HandleEvent(LuaEvents::tick, new TickEvent()); TickEvent ev;
HandleEvent(LuaEvents::tick, &ev);
} }
int LuaScriptInterface::Command(String command) int LuaScriptInterface::Command(String command)