From 2f4eee66dffa9d636446280f55b7bef2aed0e1cc Mon Sep 17 00:00:00 2001 From: nev6502 Date: Sun, 28 Jun 2020 19:56:53 -0600 Subject: [PATCH] Several more small fixes; everything should be where it should be now --- code/redalert/mapscript.cpp | 40 +++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/code/redalert/mapscript.cpp b/code/redalert/mapscript.cpp index 8e1a841..6608868 100644 --- a/code/redalert/mapscript.cpp +++ b/code/redalert/mapscript.cpp @@ -5745,7 +5745,11 @@ static int Script_OrderMove(lua_State* L) { if (this_object != NULL) { - Queue_Mission(TargetClass(this_object), MISSION_ATTACK, 0, As_Target(XY_Cell(in_x, in_y))); + if (this_object->IsRecentlyCreated) { + Queue_Mission(TargetClass(this_object), MISSION_QMOVE, 0, As_Target(XY_Cell(in_x, in_y))); + } + + Queue_Mission(TargetClass(this_object), MISSION_QMOVE, 0, As_Target(XY_Cell(in_x, in_y))); lua_pushnumber(L, 1); return 1; @@ -5791,6 +5795,10 @@ static int Script_OrderAttackCell(lua_State* L) { this_target = As_Target(XY_Cell(in_x, in_y)); } + if (this_object->IsRecentlyCreated) { + Queue_Mission(TargetClass(this_object), MISSION_ATTACK, this_target, this_target); + } + Queue_Mission(TargetClass(this_object), MISSION_ATTACK, this_target, this_target); lua_pushnumber(L, 1); @@ -5841,6 +5849,10 @@ static int Script_OrderAttack(lua_State* L) { this_target = As_Target(XY_Cell(in_x, in_y)); } + if (this_object->IsRecentlyCreated) { + Queue_Mission(TargetClass(this_object), MISSION_ATTACK, 0, this_target); + } + Queue_Mission(TargetClass(this_object), MISSION_ATTACK, 0, this_target); lua_pushnumber(L, 1); @@ -5891,7 +5903,11 @@ static int Script_OrderHunt(lua_State* L) { this_target = As_Target(XY_Cell(in_x, in_y)); } - Queue_Mission(TargetClass(this_object), MISSION_ATTACK, 0, this_target); + if (this_object->IsRecentlyCreated) { + Queue_Mission(TargetClass(this_object), MISSION_HUNT, 0, this_target); + } + + Queue_Mission(TargetClass(this_object), MISSION_HUNT, 0, this_target); lua_pushnumber(L, 1); return 1; @@ -5941,7 +5957,11 @@ static int Script_OrderGuard(lua_State* L) { this_target = As_Target(XY_Cell(in_x, in_y)); } - Queue_Mission(TargetClass(this_object), MISSION_ATTACK, 0, this_target); + if (this_object->IsRecentlyCreated) { + Queue_Mission(TargetClass(this_object), MISSION_GUARD, 0, this_target); + } + + Queue_Mission(TargetClass(this_object), MISSION_GUARD, 0, this_target); lua_pushnumber(L, 1); return 1; @@ -5991,7 +6011,11 @@ static int Script_OrderRetreat(lua_State* L) { this_target = As_Target(XY_Cell(in_x, in_y)); } - Queue_Mission(TargetClass(this_object), MISSION_ATTACK, 0, this_target); + if (this_object->IsRecentlyCreated) { + Queue_Mission(TargetClass(this_object), MISSION_RETREAT, 0, this_target); + } + + Queue_Mission(TargetClass(this_object), MISSION_RETREAT, 0, this_target); lua_pushnumber(L, 1); return 1; @@ -6041,6 +6065,10 @@ static int Script_OrderEnter(lua_State* L) { this_target = As_Target(XY_Cell(in_x, in_y)); } + if (this_object->IsRecentlyCreated) { + Queue_Mission(TargetClass(this_object), MISSION_ENTER, this_target, this_target); + } + Queue_Mission(TargetClass(this_object), MISSION_ENTER, this_target, this_target); lua_pushnumber(L, 1); @@ -6091,6 +6119,10 @@ static int Script_OrderCapture(lua_State* L) { this_target = As_Target(XY_Cell(in_x, in_y)); } + if (this_object->IsRecentlyCreated) { + Queue_Mission(TargetClass(this_object), MISSION_CAPTURE, this_target, this_target); + } + Queue_Mission(TargetClass(this_object), MISSION_CAPTURE, this_target, this_target); lua_pushnumber(L, 1);