- Fixed: Starting a game without skill menu always started the first episode.

- Changed A_AlertMonsters so that it can be placed directly in a weapon state.
- Fixed: Frozen corpses of stealth monsters were invisible.
- Added: Calling Radius_Quake with a tid of 0 now uses the activator
  as the quake's center.


SVN r275 (trunk)
This commit is contained in:
Christoph Oelckers 2006-07-30 08:31:26 +00:00
parent 3f90f1655c
commit d6bc07c3b1
7 changed files with 41 additions and 11 deletions

View file

@ -1,4 +1,11 @@
July 29, 2008 (Changes by Graf Zahl) July 30, 2006 (Changes by Graf Zahl)
- Fixed: Starting a game without skill menu always started the first episode.
- Changed A_AlertMonsters so that it can be placed directly in a weapon state.
July 29, 2006 (Changes by Graf Zahl)
- Fixed: Frozen corpses of stealth monsters were invisible.
- Added: Calling Radius_Quake with a tid of 0 now uses the activator
as the quake's center.
- Used the new explosion handling to clean up the old style projectile - Used the new explosion handling to clean up the old style projectile
definitions. The SimpleProjectile class is gone and it uses the meta definitions. The SimpleProjectile class is gone and it uses the meta
data and A_ExplodeParms instead now. data and A_ExplodeParms instead now.
@ -11,7 +18,7 @@ July 29, 2008 (Changes by Graf Zahl)
- Changed DECORATE parsing so that functions with completely optional - Changed DECORATE parsing so that functions with completely optional
parameter lists don't create an empty list when called without parameters. parameter lists don't create an empty list when called without parameters.
July 28, 2008 July 28, 2006
- Version bump to 2.1.4. - Version bump to 2.1.4.
- Fixed: Friendlies would not turn to face you when you engaged them in - Fixed: Friendlies would not turn to face you when you engaged them in
conversation, nor would they reliably return to their original facing when conversation, nor would they reliably return to their original facing when

View file

@ -181,6 +181,13 @@ void A_FreezeDeath (AActor *actor)
actor->height = actor->GetDefault()->height; actor->height = actor->GetDefault()->height;
S_Sound (actor, CHAN_BODY, "misc/freeze", 1, ATTN_NORM); S_Sound (actor, CHAN_BODY, "misc/freeze", 1, ATTN_NORM);
// [RH] Andy Baker's stealth monsters
if (actor->flags & MF_STEALTH)
{
actor->alpha = OPAQUE;
actor->visdir = 0;
}
if (actor->player) if (actor->player)
{ {
actor->player->damagecount = 0; actor->player->damagecount = 0;

View file

@ -152,18 +152,29 @@ int DEarthquake::StaticGetQuakeIntensity (AActor *victim)
// //
//========================================================================== //==========================================================================
bool P_StartQuake (int tid, int intensity, int duration, int damrad, int tremrad) bool P_StartQuake (AActor *activator, int tid, int intensity, int duration, int damrad, int tremrad)
{ {
AActor *center; AActor *center;
FActorIterator iterator (tid);
bool res = false; bool res = false;
intensity = clamp (intensity, 1, 9); intensity = clamp (intensity, 1, 9);
while ( (center = iterator.Next ()) ) if (tid == 0)
{ {
res = true; if (activator != NULL)
new DEarthquake (center, intensity, duration, damrad, tremrad); {
new DEarthquake(activator, intensity, duration, damrad, tremrad);
return true;
}
}
else
{
FActorIterator iterator (tid);
while ( (center = iterator.Next ()) )
{
res = true;
new DEarthquake (center, intensity, duration, damrad, tremrad);
}
} }
return res; return res;

View file

@ -271,7 +271,11 @@ END_DEFAULTS
void A_AlertMonsters (AActor *self) void A_AlertMonsters (AActor *self)
{ {
if (self->target != NULL && self->target->player != NULL) if (self->player != NULL)
{
P_NoiseAlert(self, self);
}
else if (self->target != NULL && self->target->player != NULL)
{ {
P_NoiseAlert (self->target, self); P_NoiseAlert (self->target, self);
} }

View file

@ -1729,13 +1729,14 @@ void M_Episode (int choice)
return; return;
} }
epi = choice;
if (EpisodeNoSkill[choice]) if (EpisodeNoSkill[choice])
{ {
M_ChooseSkill(2); M_ChooseSkill(2);
return; return;
} }
epi = choice;
if (gameinfo.gametype & (GAME_Doom|GAME_Strife)) if (gameinfo.gametype & (GAME_Doom|GAME_Strife))
M_SetupNextMenu (&NewDef); M_SetupNextMenu (&NewDef);
else if (gameinfo.gametype == GAME_Hexen) else if (gameinfo.gametype == GAME_Hexen)

View file

@ -1650,7 +1650,7 @@ FUNC(LS_Light_Stop)
FUNC(LS_Radius_Quake) FUNC(LS_Radius_Quake)
// Radius_Quake (intensity, duration, damrad, tremrad, tid) // Radius_Quake (intensity, duration, damrad, tremrad, tid)
{ {
return P_StartQuake (arg4, arg0, arg1, arg2, arg3); return P_StartQuake (it, arg4, arg0, arg1, arg2, arg3);
} }
FUNC(LS_UsePuzzleItem) FUNC(LS_UsePuzzleItem)

View file

@ -951,6 +951,6 @@ void P_DoDeferedScripts (void);
// //
// [RH] p_quake.c // [RH] p_quake.c
// //
bool P_StartQuake (int tid, int intensity, int duration, int damrad, int tremrad); bool P_StartQuake (AActor *activator, int tid, int intensity, int duration, int damrad, int tremrad);
#endif #endif