diff --git a/src/include/animation/animation_wiggle.h b/src/include/animation/animation_wiggle.h index 039943c46..3aa15e129 100644 --- a/src/include/animation/animation_wiggle.h +++ b/src/include/animation/animation_wiggle.h @@ -38,7 +38,7 @@ class CAnimation_Wiggle : public CAnimation { public: - CAnimation_Wiggle() : CAnimation(AnimationWiggle), isHeading(false) {} + CAnimation_Wiggle() : CAnimation(AnimationWiggle), isHeading(false), speed(0), ifNotReached(NULL) {} virtual void Action(CUnit &unit, int &move, int scale) const; virtual void Init(const char *s, lua_State *l); @@ -47,6 +47,8 @@ private: std::string x; std::string y; bool isHeading; + std::string speed; + CAnimation *ifNotReached; }; //@} diff --git a/src/include/unittype.h b/src/include/unittype.h index 3824e6735..966bbb3f1 100644 --- a/src/include/unittype.h +++ b/src/include/unittype.h @@ -202,6 +202,8 @@ enum { BASICDAMAGE_INDEX, POSX_INDEX, POSY_INDEX, + POS_RIGHT_INDEX, + POS_BOTTOM_INDEX, TARGETPOSX_INDEX, TARGETPOSY_INDEX, RADAR_INDEX, diff --git a/src/unit/script_unittype.cpp b/src/unit/script_unittype.cpp index 2654f7d22..dc009b455 100644 --- a/src/unit/script_unittype.cpp +++ b/src/unit/script_unittype.cpp @@ -120,6 +120,8 @@ static const char PIERCINGDAMAGE_KEY[] = "PiercingDamage"; static const char BASICDAMAGE_KEY[] = "BasicDamage"; static const char POSX_KEY[] = "PosX"; static const char POSY_KEY[] = "PosY"; +static const char POS_RIGHT_KEY[] = "PosRight"; +static const char POS_BOTTOM_KEY[] = "PosBottom"; static const char TARGETPOSX_KEY[] = "TargetPosX"; static const char TARGETPOSY_KEY[] = "TargetPosY"; static const char RADARRANGE_KEY[] = "RadarRange"; @@ -174,7 +176,7 @@ CUnitTypeVar::CVariableKeys::CVariableKeys() RESEARCH_KEY, TRAINING_KEY, UPGRADETO_KEY, GIVERESOURCE_KEY, CARRYRESOURCE_KEY, XP_KEY, KILL_KEY, SUPPLY_KEY, DEMAND_KEY, ARMOR_KEY, SIGHTRANGE_KEY, ATTACKRANGE_KEY, PIERCINGDAMAGE_KEY, - BASICDAMAGE_KEY, POSX_KEY, POSY_KEY, TARGETPOSX_KEY, TARGETPOSY_KEY, RADARRANGE_KEY, + BASICDAMAGE_KEY, POSX_KEY, POSY_KEY, POS_RIGHT_KEY, POS_BOTTOM_KEY, TARGETPOSX_KEY, TARGETPOSY_KEY, RADARRANGE_KEY, RADARJAMMERRANGE_KEY, AUTOREPAIRRANGE_KEY, BLOODLUST_KEY, HASTE_KEY, SLOW_KEY, INVISIBLE_KEY, UNHOLYARMOR_KEY, SLOT_KEY, SHIELD_KEY, POINTS_KEY, MAXHARVESTERS_KEY, POISON_KEY, SHIELDPERMEABILITY_KEY, SHIELDPIERCING_KEY, ISALIVE_KEY, PLAYER_KEY, @@ -2234,6 +2236,10 @@ void UpdateUnitVariables(CUnit &unit) unit.Variable[POSX_INDEX].Max = Map.Info.MapWidth; unit.Variable[POSY_INDEX].Value = unit.tilePos.y; unit.Variable[POSY_INDEX].Max = Map.Info.MapHeight; + unit.Variable[POS_RIGHT_INDEX].Value = unit.tilePos.x + unit.Type->TileWidth; + unit.Variable[POS_RIGHT_INDEX].Max = Map.Info.MapWidth; + unit.Variable[POS_BOTTOM_INDEX].Value = unit.tilePos.y + unit.Type->TileHeight; + unit.Variable[POS_BOTTOM_INDEX].Max = Map.Info.MapHeight; // Target Position const Vec2i goalPos = unit.CurrentOrder()->GetGoalPos();