diff --git a/binaries/data/mods/public/simulation/components/UnitMotionFlying.js b/binaries/data/mods/public/simulation/components/UnitMotionFlying.js index 75fe0b3d47..705fb1bf62 100644 --- a/binaries/data/mods/public/simulation/components/UnitMotionFlying.js +++ b/binaries/data/mods/public/simulation/components/UnitMotionFlying.js @@ -203,7 +203,7 @@ UnitMotionFlying.prototype.OnUpdate = function(msg) if (!this.reachedTarget && this.targetMinRange <= distFromTarget && distFromTarget <= this.targetMaxRange) { this.reachedTarget = true; - Engine.PostMessage(this.entity, MT_MotionChanged, { "starting": false, "error": false }); + Engine.PostMessage(this.entity, MT_MotionUpdate, { "updateString": "likelySuccess" }); } // If we're facing away from the target, and are still fairly close to it, @@ -291,6 +291,11 @@ UnitMotionFlying.prototype.GetRunMultiplier = function() return 1; }; +UnitMotionFlying.prototype.IsMoveRequested = function() +{ + return this.hasTarget; +}; + UnitMotionFlying.prototype.GetCurrentSpeed = function() { return this.speed; diff --git a/source/simulation2/scripting/MessageTypeConversions.cpp b/source/simulation2/scripting/MessageTypeConversions.cpp index f56f93086f..b515022a7c 100644 --- a/source/simulation2/scripting/MessageTypeConversions.cpp +++ b/source/simulation2/scripting/MessageTypeConversions.cpp @@ -281,9 +281,19 @@ JS::Value CMessageMotionUpdate::ToJSVal(const ScriptInterface& scriptInterface) return JS::ObjectValue(*obj); } -CMessage* CMessageMotionUpdate::FromJSVal(const ScriptInterface&, JS::HandleValue) +CMessage* CMessageMotionUpdate::FromJSVal(const ScriptInterface& scriptInterface, JS::HandleValue val) { - LOGWARNING("CMessageMotionUpdate::FromJSVal not implemented"); + FROMJSVAL_SETUP(); + GET_MSG_PROPERTY(std::wstring, updateString); + + if (updateString == L"likelySuccess") + return new CMessageMotionUpdate(CMessageMotionUpdate::LIKELY_SUCCESS); + if (updateString == L"likelyFailure") + return new CMessageMotionUpdate(CMessageMotionUpdate::LIKELY_FAILURE); + if (updateString == L"obstructed") + return new CMessageMotionUpdate(CMessageMotionUpdate::OBSTRUCTED); + + LOGWARNING("CMessageMotionUpdate::FromJSVal passed wrong updateString"); return NULL; }