From cb0b8cffbe8a579c00a0e7c691cc5570d2e2dc0c Mon Sep 17 00:00:00 2001
From: mohydine <>
Date: Sat, 18 Oct 2003 01:39:07 +0000
Subject: [PATCH] 
 ---------------------------------------------------------------------- Fixed
 bug: Parabolic Missile was not initialized correctly.

---
 src/stratagus/missile.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/stratagus/missile.cpp b/src/stratagus/missile.cpp
index 19ef115cb..341906ddf 100644
--- a/src/stratagus/missile.cpp
+++ b/src/stratagus/missile.cpp
@@ -297,8 +297,8 @@ local Missile* InitMissile(Missile* missile, MissileType* mtype, int sx,
     missile->Y = sy - mtype->Height / 2;
     missile->DX = dx - mtype->Width / 2;
     missile->DY = dy - mtype->Height / 2;
-    missile->SourceX = sx;
-    missile->SourceY = sy;
+    missile->SourceX = missile->X;
+    missile->SourceY = missile->Y;
     missile->Type = mtype;
     missile->SpriteFrame = 0;
     missile->State = 0;
@@ -960,13 +960,13 @@ local int ParabolicCalc(Missile* missile, int amplitude)
     int thetha;
 
     missile->Xl -= missile->Xstep;
-    missile->X = (missile->Xl + 500) / 1000;
+    missile->X = (missile->Xl ) / 1000;
 
     xmid = (missile->SourceX + missile->DX) / 2;
     sinu = (missile->X - xmid) * (missile->X - xmid);
     thetha = missile->SourceX - xmid;
     missile->Y = ((missile->Angle * (missile->X - missile->SourceX)) -
-	amplitude * isqrt(-sinu + thetha * thetha) + missile->SourceY * 1000 + 500) / 1000;
+	amplitude * isqrt(-sinu + thetha * thetha) + missile->SourceY * 1000 + 500 ) / 1000;
 
     return 0;
 }
@@ -1007,7 +1007,7 @@ local int ParabolicMissile(Missile* missile)
 	} else {
 	    missile->Angle = 1;
 	}
-	missile->Xl = missile->X * 1000;
+	missile->Xl = missile->SourceX * 1000;
 
 	MissileNewHeadingFromXY(missile, dx * xstep, dy * ystep);