- Added a type check to Spawn(actorname,...) to allow it to print a

meaningful message instead of the nondescript 
  'Tried to spawn a class-less actor'.
- Converted AGlassJunk to DECORATE and made the spawn function a little
  more flexible so that replacing the shard is easier.
- Converted ABloodSplatter to DECORATE.
- Removed A_Jiggle because it never worked properly.
- Changed DECORATE parser to allow commas between arguments for multi-
  argument properties. For all newly added properties this format will
  become mandatory but for backwards compatibility it is optional for
  old ones.
- Added a check for negative indices to TAutoGrowArray::SetVal to prevent
  passing an index of -1 from crashing the game.
- Fixed: Morphing must clear the weapon's flash sprite.
- Fixed: Resurrecting a morphed player caused a crash.
- Fixed: Random sounds that recursively refer to themselves caused a stack
  overflow. Now they print a warning and get ignored.


SVN r277 (trunk)
This commit is contained in:
Christoph Oelckers 2006-07-31 10:22:53 +00:00
commit 5ac0789e6e
16 changed files with 156 additions and 113 deletions

View file

@ -77,7 +77,6 @@ static FRandom pr_cwpunch ("CustomWpPunch");
static FRandom pr_grenade ("ThrowGrenade");
static FRandom pr_crailgun ("CustomRailgun");
static FRandom pr_spawndebris ("SpawnDebris");
static FRandom pr_jiggle ("Jiggle");
static FRandom pr_burst ("Burst");
@ -1471,29 +1470,6 @@ void A_ExtChase(AActor * self)
}
//===========================================================================
//
// Weapon jiggling
//
//===========================================================================
void A_Jiggle(AActor * self)
{
int index=CheckIndex(2, &CallingState);
if (index<0) return;
int xmax = EvalExpressionI (StateParameters[index], self);
int ymax = EvalExpressionI (StateParameters[index+1], self);
if (self->player)
{
int rand_x = (pr_jiggle()%(xmax*2))-xmax;
int rand_y = (pr_jiggle()%(ymax*2))-ymax;
self->player->psprites[0].sx += rand_x;
self->player->psprites[0].sy += rand_y;
self->player->psprites[1].sx += rand_x;
self->player->psprites[1].sy += rand_y;
}
}
//===========================================================================
//
// Inventory drop