- Fixed: A_SpawnItem performed an integer multiplication with fixed point

values to calculate the spawn position.
- Fixed: A_SpawnItem tried to set the spawned actor's angle before checking
  the validity of the returned pointer.

SVN r141 (trunk)
This commit is contained in:
Christoph Oelckers 2006-05-24 13:11:30 +00:00
parent 2ff618e474
commit 283d5971fe
2 changed files with 9 additions and 3 deletions

View file

@ -1,3 +1,9 @@
May 24, 2006 (Changes by Graf Zahl)
- Fixed: A_SpawnItem performed an integer multiplication with fixed point
values to calculate the spawn position.
- Fixed: A_SpawnItem tried to set the spawned actor's angle before checking
the validity of the returned pointer.
May 23, 2006 May 23, 2006
- Added missing linker dependencies for Visual C++ 2005 Express Edition and - Added missing linker dependencies for Visual C++ 2005 Express Edition and
fixed building of the assembly files when the source is located in a path fixed building of the assembly files when the source is located in a path

View file

@ -1110,15 +1110,15 @@ void A_SpawnItem(AActor * self)
} }
AActor * mo = Spawn( missile, AActor * mo = Spawn( missile,
self->x + distance*finecosine[self->angle>>ANGLETOFINESHIFT], self->x + FixedMul(distance, finecosine[self->angle>>ANGLETOFINESHIFT]),
self->y + distance*finesine[self->angle>>ANGLETOFINESHIFT], self->y + FixedMul(distance, finesine[self->angle>>ANGLETOFINESHIFT]),
self->z - self->floorclip + zheight); self->z - self->floorclip + zheight);
mo->angle=self->angle;
if (mo) if (mo)
{ {
AActor * originator = self; AActor * originator = self;
mo->angle=self->angle;
while (originator && isMissile(originator)) originator = originator->target; while (originator && isMissile(originator)) originator = originator->target;
if (mo->flags3&MF3_ISMONSTER) if (mo->flags3&MF3_ISMONSTER)