IMPORTANT NOTE: I uncommented some code depending on the missing x86.cpp file to allow this to compile, These changes must be reverted as soon as this file is added (see v_palette.cpp and win32/i_system.cpp.)

- Removed AT_GAME_SET because it's no longer used anywhere.
- Converted the last remaining global classes to DECORATE.
- Fixed: Inventory.PickupFlash requires an class name as parameter not an
  integer. Some Hexen definitions got it wrong.
- Converted Hexen's Pig to DECORATE.
- Replaced the ActorInfo definitions of all internal inventory classes with 
  DECORATE definitions.
- Added option to specify a powerup's duration in second by using a negative
  number.


SVN r1137 (trunk)
This commit is contained in:
Christoph Oelckers 2008-08-09 11:35:42 +00:00
commit ae54e13428
50 changed files with 866 additions and 638 deletions

View file

@ -32,7 +32,7 @@ static FRandom pr_torch ("Torch");
EXTERN_CVAR (Bool, r_drawfuzz);
IMPLEMENT_ABSTRACT_ACTOR (APowerup)
IMPLEMENT_CLASS (APowerup)
// Powerup-Giver -------------------------------------------------------------
@ -340,10 +340,7 @@ void APowerup::OwnerDied ()
// Invulnerability Powerup ---------------------------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerInvulnerable, Any, -1, 0)
PROP_Powerup_EffectTics (INVULNTICS)
PROP_Inventory_Icon ("SPSHLD0")
END_DEFAULTS
IMPLEMENT_CLASS (APowerInvulnerable)
//===========================================================================
//
@ -475,11 +472,7 @@ int APowerInvulnerable::AlterWeaponSprite (vissprite_t *vis)
// Strength (aka Berserk) Powerup --------------------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerStrength, Any, -1, 0)
PROP_Powerup_EffectTics (1)
PROP_Powerup_Color (128, 255, 0, 0)
PROP_Inventory_FlagsSet (IF_HUBPOWER)
END_DEFAULTS
IMPLEMENT_CLASS (APowerStrength)
//===========================================================================
//
@ -543,9 +536,7 @@ PalEntry APowerStrength::GetBlend ()
// Invisibility Powerup ------------------------------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerInvisibility, Any, -1, 0)
PROP_Powerup_EffectTics (INVISTICS)
END_DEFAULTS
IMPLEMENT_CLASS (APowerInvisibility)
//===========================================================================
//
@ -625,9 +616,7 @@ int APowerInvisibility::AlterWeaponSprite (vissprite_t *vis)
// Ghost Powerup (Heretic's version of invisibility) -------------------------
IMPLEMENT_STATELESS_ACTOR (APowerGhost, Any, -1, 0)
PROP_Powerup_EffectTics (INVISTICS)
END_DEFAULTS
IMPLEMENT_CLASS (APowerGhost)
//===========================================================================
//
@ -670,10 +659,7 @@ int APowerGhost::AlterWeaponSprite (vissprite_t *vis)
// Shadow Powerup (Strife's version of invisibility) -------------------------
IMPLEMENT_STATELESS_ACTOR (APowerShadow, Any, -1, 0)
PROP_Powerup_EffectTics (55*TICRATE)
PROP_Inventory_FlagsSet (IF_HUBPOWER)
END_DEFAULTS
IMPLEMENT_CLASS (APowerShadow)
//===========================================================================
//
@ -754,10 +740,7 @@ int APowerShadow::AlterWeaponSprite (vissprite_t *vis)
// Ironfeet Powerup ----------------------------------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerIronFeet, Any, -1, 0)
PROP_Powerup_EffectTics (IRONTICS)
PROP_Powerup_Color (32, 0, 255, 0)
END_DEFAULTS
IMPLEMENT_CLASS (APowerIronFeet)
//===========================================================================
//
@ -783,12 +766,7 @@ void APowerIronFeet::AbsorbDamage (int damage, FName damageType, int &newdamage)
// Strife Environment Suit Powerup -------------------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerMask, Any, -1, 0)
PROP_Powerup_EffectTics (80*TICRATE)
PROP_Powerup_Color (0, 0, 0, 0)
PROP_Inventory_FlagsSet (IF_HUBPOWER)
PROP_Inventory_Icon ("I_MASK")
END_DEFAULTS
IMPLEMENT_CLASS (APowerMask)
//===========================================================================
//
@ -825,9 +803,7 @@ void APowerMask::DoEffect ()
// Light-Amp Powerup ---------------------------------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerLightAmp, Any, -1, 0)
PROP_Powerup_EffectTics (INFRATICS)
END_DEFAULTS
IMPLEMENT_CLASS (APowerLightAmp)
//===========================================================================
//
@ -868,9 +844,7 @@ void APowerLightAmp::EndEffect ()
// Torch Powerup -------------------------------------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerTorch, Any, -1, 0)
PROP_Powerup_EffectTics (INFRATICS)
END_DEFAULTS
IMPLEMENT_CLASS (APowerTorch)
//===========================================================================
//
@ -932,10 +906,7 @@ void APowerTorch::DoEffect ()
// Flight (aka Wings of Wrath) powerup ---------------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerFlight, Any, -1, 0)
PROP_Powerup_EffectTics (FLIGHTTICS)
PROP_Inventory_FlagsSet (IF_HUBPOWER)
END_DEFAULTS
IMPLEMENT_CLASS (APowerFlight)
//===========================================================================
//
@ -1066,10 +1037,7 @@ bool APowerFlight::DrawPowerup (int x, int y)
// Weapon Level 2 (aka Tome of Power) Powerup --------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerWeaponLevel2, Any, -1, 0)
PROP_Powerup_EffectTics (WPNLEV2TICS)
PROP_Inventory_Icon ("SPINBK0")
END_DEFAULTS
IMPLEMENT_CLASS (APowerWeaponLevel2)
//===========================================================================
//
@ -1138,16 +1106,12 @@ void APowerWeaponLevel2::EndEffect ()
class APlayerSpeedTrail : public AActor
{
DECLARE_STATELESS_ACTOR (APlayerSpeedTrail, AActor)
DECLARE_CLASS (APlayerSpeedTrail, AActor)
public:
void Tick ();
};
IMPLEMENT_STATELESS_ACTOR (APlayerSpeedTrail, Any, -1, 0)
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
PROP_Alpha (FRACUNIT*6/10)
PROP_RenderStyle (STYLE_Translucent)
END_DEFAULTS
IMPLEMENT_CLASS (APlayerSpeedTrail)
//===========================================================================
//
@ -1170,11 +1134,7 @@ void APlayerSpeedTrail::Tick ()
// Speed Powerup -------------------------------------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerSpeed, Any, -1, 0)
PROP_SpeedLong(3*FRACUNIT/2)
PROP_Powerup_EffectTics (SPEEDTICS)
PROP_Inventory_Icon ("SPBOOT0")
END_DEFAULTS
IMPLEMENT_CLASS (APowerSpeed)
//===========================================================================
//
@ -1238,24 +1198,11 @@ void APowerSpeed::DoEffect ()
// Minotaur (aka Dark Servant) powerup ---------------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerMinotaur, Any, -1, 0)
PROP_Powerup_EffectTics (MAULATORTICS)
PROP_Inventory_Icon ("SPMINO0")
END_DEFAULTS
IMPLEMENT_CLASS (APowerMinotaur)
// Targeter powerup ---------------------------------------------------------
FState APowerTargeter::States[] =
{
S_NORMAL (TRGT, 'A', -1, NULL, NULL),
S_NORMAL (TRGT, 'B', -1, NULL, NULL),
S_NORMAL (TRGT, 'C', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (APowerTargeter, Any, -1, 0)
PROP_Powerup_EffectTics (160*TICRATE)
PROP_Inventory_FlagsSet (IF_HUBPOWER)
END_DEFAULTS
IMPLEMENT_CLASS (APowerTargeter)
void APowerTargeter::Travelled ()
{
@ -1269,9 +1216,14 @@ void APowerTargeter::InitEffect ()
if ((player = Owner->player) == NULL)
return;
P_SetPsprite (player, ps_targetcenter, &States[0]);
P_SetPsprite (player, ps_targetleft, &States[1]);
P_SetPsprite (player, ps_targetright, &States[2]);
FState *state = FindState("Targeter");
if (state != NULL)
{
P_SetPsprite (player, ps_targetcenter, state + 0);
P_SetPsprite (player, ps_targetleft, state + 1);
P_SetPsprite (player, ps_targetright, state + 2);
}
player->psprites[ps_targetcenter].sx = (160-3)*FRACUNIT;
player->psprites[ps_targetcenter].sy =
@ -1328,9 +1280,7 @@ void APowerTargeter::PositionAccuracy ()
// Frightener Powerup --------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerFrightener, Any, -1, 0)
PROP_Powerup_EffectTics (60*TICRATE)
END_DEFAULTS
IMPLEMENT_CLASS (APowerFrightener)
//===========================================================================
//
@ -1362,17 +1312,11 @@ void APowerFrightener::EndEffect ()
// Scanner powerup ----------------------------------------------------------
IMPLEMENT_STATELESS_ACTOR (APowerScanner, Any, -1, 0)
PROP_Powerup_EffectTics (80*TICRATE)
PROP_Inventory_FlagsSet (IF_HUBPOWER)
END_DEFAULTS
IMPLEMENT_CLASS (APowerScanner)
// Time freezer powerup -----------------------------------------------------
IMPLEMENT_STATELESS_ACTOR( APowerTimeFreezer, Any, -1, 0 )
PROP_Powerup_EffectTics( TIMEFREEZE_TICS )
END_DEFAULTS
IMPLEMENT_CLASS( APowerTimeFreezer)
//===========================================================================
//
@ -1487,9 +1431,7 @@ void APowerTimeFreezer::EndEffect( )
// Damage powerup ------------------------------------------------------
IMPLEMENT_STATELESS_ACTOR( APowerDamage, Any, -1, 0 )
PROP_Powerup_EffectTics( 25*TICRATE )
END_DEFAULTS
IMPLEMENT_CLASS( APowerDamage)
//===========================================================================
//
@ -1543,9 +1485,7 @@ void APowerDamage::ModifyDamage(int damage, FName damageType, int &newdamage, bo
// Quarter damage powerup ------------------------------------------------------
IMPLEMENT_STATELESS_ACTOR( APowerProtection, Any, -1, 0 )
PROP_Powerup_EffectTics( 25*TICRATE )
END_DEFAULTS
IMPLEMENT_CLASS( APowerProtection)
//===========================================================================
//
@ -1598,9 +1538,7 @@ void APowerProtection::ModifyDamage(int damage, FName damageType, int &newdamage
// Drain rune -------------------------------------------------------
IMPLEMENT_STATELESS_ACTOR( APowerDrain, Any, -1, 0 )
PROP_Powerup_EffectTics( 60*TICRATE )
END_DEFAULTS
IMPLEMENT_CLASS( APowerDrain)
//===========================================================================
//
@ -1636,9 +1574,7 @@ void APowerDrain::EndEffect( )
// Regeneration rune -------------------------------------------------------
IMPLEMENT_STATELESS_ACTOR( APowerRegeneration, Any, -1, 0 )
PROP_Powerup_EffectTics( 120*TICRATE )
END_DEFAULTS
IMPLEMENT_CLASS( APowerRegeneration)
//===========================================================================
//
@ -1673,8 +1609,7 @@ void APowerRegeneration::EndEffect( )
// High jump rune -------------------------------------------------------
IMPLEMENT_STATELESS_ACTOR( APowerHighJump, Any, -1, 0 )
END_DEFAULTS
IMPLEMENT_CLASS( APowerHighJump)
//===========================================================================
//
@ -1709,9 +1644,7 @@ void APowerHighJump::EndEffect( )
// Morph powerup ------------------------------------------------------
IMPLEMENT_STATELESS_ACTOR( APowerMorph, Any, -1, 0 )
PROP_Powerup_EffectTics( MORPHTICS )
END_DEFAULTS
IMPLEMENT_CLASS( APowerMorph)
//===========================================================================
//