- Added MF5_CANTSEEK flag to prevent seeker missiles from homing in on

certain actors and added an option to APowerInvisibility to set this
  flag when active.
- Added map specific automap backgrounds.
- Fixed: Voodoo dolls did not play a sound when dying.
- Added colorized error messages to DECORATE and made a few more error
  conditions that do not block further parsing not immediately abort.
- Made all errors in CreateNewActor not immediately fatal so that the
  rest of the DECORATE lump can be parsed normally to look for more errors.
- Fixed: Defining classes with the same name as their immediate base class
  was legal. It should not be allowed that a class has another one with the
  same name in its ancestry.
- Fixed: Formatting of the intermission screen on Heretic, Hexen and Strife
  was broken. Changed it to use WI_Drawpercent which does it properly and
  also allows showing percentage in these games now.
- Fixed: The MAPINFO parser ignored missing terminating braces of the last
  block in the file.

SVN r1425 (trunk)
This commit is contained in:
Christoph Oelckers 2009-02-19 14:36:37 +00:00
commit 666e40c8bb
23 changed files with 474 additions and 345 deletions

View file

@ -540,6 +540,22 @@ PalEntry APowerStrength::GetBlend ()
IMPLEMENT_CLASS (APowerInvisibility)
//===========================================================================
//
// APowerInvisibility :: CommonInit
//
// stuff that's done for all subclasses
//
//===========================================================================
void APowerInvisibility::CommonInit()
{
Owner->flags |= MF_SHADOW;
// transfer seeker missile blocking (but only if the owner does not already have this flag
if (!(Owner->flags5 & MF5_CANTSEEK) && (flags5 & MF5_CANTSEEK)) Owner->flags5 |= MF5_CANTSEEK;
else flags &=~MF5_CANTSEEK;
}
//===========================================================================
//
// APowerInvisibility :: InitEffect
@ -548,11 +564,16 @@ IMPLEMENT_CLASS (APowerInvisibility)
void APowerInvisibility::InitEffect ()
{
Owner->flags |= MF_SHADOW;
CommonInit();
Owner->alpha = FRACUNIT/5;
Owner->RenderStyle = STYLE_OptFuzzy;
}
//===========================================================================
//
// APowerInvisibility :: DoEffect
//
//===========================================================================
void APowerInvisibility::DoEffect ()
{
Super::DoEffect();
@ -571,6 +592,7 @@ void APowerInvisibility::EndEffect ()
{
if (Owner != NULL)
{
if (flags5 & MF5_CANTSEEK) Owner->flags5 &= ~MF5_CANTSEEK;
Owner->flags &= ~MF_SHADOW;
Owner->flags3 &= ~MF3_GHOST;
Owner->RenderStyle = STYLE_Normal;
@ -628,7 +650,7 @@ IMPLEMENT_CLASS (APowerGhost)
void APowerGhost::InitEffect ()
{
Owner->flags |= MF_SHADOW;
CommonInit();
Owner->flags3 |= MF3_GHOST;
Owner->alpha = HR_SHADOW;
Owner->RenderStyle = STYLE_Translucent;
@ -705,7 +727,7 @@ bool APowerShadow::HandlePickup (AInventory *item)
void APowerShadow::InitEffect ()
{
Owner->flags |= MF_SHADOW;
CommonInit();
Owner->alpha = special1 == 0 ? TRANSLUC25 : 0;
Owner->RenderStyle = STYLE_Translucent;
}