diff --git a/scripts/4_World/YAProxy/YAProxyActionBase.c b/scripts/4_World/YAProxy/YAProxyActionBase.c index 77dafa8..618d8de 100644 --- a/scripts/4_World/YAProxy/YAProxyActionBase.c +++ b/scripts/4_World/YAProxy/YAProxyActionBase.c @@ -98,7 +98,10 @@ class YAProxyActionBase : ActionContinuousBase string name1; if (house.YA_GetProxyMap1().Find(wKey, name1) && YA_KeywordMatch(name1, kw)) { - ws = target.GetObject().GetWorldPosition(); + // Proxy sub-objects report model-space coords; convert to true world + // so the value is globally unique (state keying) and usable as a spawn + // position. (Same conversion ZPF uses.) + ws = house.ModelToWorld(target.GetObject().GetWorldPosition()); return name1; } @@ -121,7 +124,7 @@ class YAProxyActionBase : ActionContinuousBase } if (bestName != "") { - ws = house.GetPosition() + bestLS; + ws = house.ModelToWorld(bestLS); return bestName; }