mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-24 05:01:41 +00:00
May 3, 2006 (Changes by Graf Zahl)
- Removed doom.x, heretic.x and strife.x from the SVN repository. These are generated files. - Fixed: A_PainDie has to check whether a valid target exists before calling IsFriend. - Fixed: FDecalLib::FindAnimator needs a signed counter to work properly. May 1, 2006 (Changes by Graf Zahl) - Added support for game specific pickup messages, if only to be able to define Raven's invulnerability item in DECORATE. - Removed A_TreeDeath because it is no longer used. - Fixed: When picking up a PowerupGiver for an active powerup the blend color and the duration were transferred to a temorary item and never took effect. They have to be trnasferred to the newly created powerup item before trying to give it to the player, not afterward. - Made the colormap of the InvulnerabilitySphere item specific. The base power class still needs to have its color adjusted per game though and since Raven's invulnerability item is used in both Hexen and Heretic it can't define its own colormap/blend. - Separated the invulnerability colormaps from the game being played and made them item specific. They can also be specified as regular blend colors in DECORATE now. - Converted a_hereticarmor.cpp and most of a_doomartifacts.cpp, a_hereticartifacts.cpp and a_heretickeys.cpp to DECORATE. - Changed the Soulsphere to be a real health item with the Dehacked modifications made in d_dehacked.cpp as for most other items which need to be adjusted. - Added IF_BIGPOWERUP flag to AInventory to expose the RESPAWN_SUPER dmflag to DECORATE. Also removed the now obsolete ShouldRespawn methods from AInvulnerabilitySphere and ABlurSphere. - Converted a_splashes.cpp to DECORATE. - Converted most of a_debris.cpp to DECORATE. SVN r73 (trunk)
This commit is contained in:
parent
01a41a6f13
commit
0e69196370
59 changed files with 1430 additions and 1533 deletions
14
default.cbd
14
default.cbd
|
@ -160,26 +160,26 @@ ${COMPILER} "autostart.cpp a.nas blocks.nas misc.nas tmap.nas tmap2.nas tmap3.na
|
|||
v_video.cpp vectors.cpp name.cpp zstring.cpp zstringpool.cpp zstrformat.cpp \
|
||||
w_wad.cpp wi_stuff.cpp a_arachnotron.cpp a_archvile.cpp a_bossbrain.cpp \
|
||||
a_bruiser.cpp a_cacodemon.cpp a_cyberdemon.cpp a_demon.cpp \
|
||||
a_doomarmor.cpp a_doomartifacts.cpp a_doomdecorations.cpp a_doomhealth.cpp \
|
||||
a_doomimp.cpp a_doomkeys.cpp a_doommisc.cpp a_doomplayer.cpp a_doomweaps.cpp \
|
||||
a_doomartifacts.cpp a_doomhealth.cpp \
|
||||
a_doomimp.cpp a_doommisc.cpp a_doomplayer.cpp a_doomweaps.cpp \
|
||||
a_fatso.cpp a_keen.cpp a_lostsoul.cpp a_painelemental.cpp a_possessed.cpp \
|
||||
a_revenant.cpp a_scriptedmarine.cpp a_spidermaster.cpp doom_sbar.cpp a_beast.cpp \
|
||||
a_chicken.cpp a_clink.cpp a_dsparil.cpp a_hereticarmor.cpp \
|
||||
a_hereticartifacts.cpp a_hereticdecorations.cpp a_hereticimp.cpp a_heretickeys.cpp \
|
||||
a_chicken.cpp a_clink.cpp a_dsparil.cpp \
|
||||
a_hereticartifacts.cpp a_hereticimp.cpp a_heretickeys.cpp \
|
||||
a_hereticmisc.cpp a_hereticplayer.cpp a_hereticweaps.cpp a_ironlich.cpp \
|
||||
a_knight.cpp a_mummy.cpp a_snake.cpp a_wizard.cpp heretic_sbar.cpp a_bats.cpp \
|
||||
a_bishop.cpp a_blastradius.cpp a_boostarmor.cpp a_centaur.cpp a_clericboss.cpp \
|
||||
a_clericflame.cpp a_clericholy.cpp a_clericmace.cpp a_clericplayer.cpp \
|
||||
a_clericstaff.cpp a_demons.cpp a_dragon.cpp a_ettin.cpp a_fighteraxe.cpp \
|
||||
a_fighterboss.cpp a_fighterhammer.cpp a_fighterplayer.cpp a_fighterquietus.cpp \
|
||||
a_firedemon.cpp a_flame.cpp a_flechette.cpp a_fog.cpp a_healingradius.cpp \
|
||||
a_firedemon.cpp a_flechette.cpp a_fog.cpp a_healingradius.cpp \
|
||||
a_heresiarch.cpp a_hexenarmor.cpp a_hexendecorations.cpp a_hexenkeys.cpp \
|
||||
a_hexenspecialdecs.cpp a_iceguy.cpp a_korax.cpp a_mageboss.cpp a_magecone.cpp \
|
||||
a_magelightning.cpp a_mageplayer.cpp a_magestaff.cpp a_magewand.cpp a_mana.cpp \
|
||||
a_pig.cpp a_puzzleitems.cpp a_scriptprojectiles.cpp a_serpent.cpp a_speedboots.cpp \
|
||||
a_spike.cpp a_summon.cpp a_teleportother.cpp a_weaponpieces.cpp a_wraith.cpp \
|
||||
hexen_sbar.cpp a_artiegg.cpp a_artitele.cpp a_minotaur.cpp a_ravenambient.cpp \
|
||||
a_ravenartifacts.cpp a_ravenhealth.cpp a_acolyte.cpp a_alienspectres.cpp \
|
||||
a_acolyte.cpp a_alienspectres.cpp \
|
||||
a_beggars.cpp a_coin.cpp a_crusader.cpp a_entityboss.cpp a_inquisitor.cpp \
|
||||
a_loremaster.cpp a_macil.cpp a_merchants.cpp a_oracle.cpp a_peasant.cpp \
|
||||
a_programmer.cpp a_questitems.cpp a_ratbuddy.cpp a_reaver.cpp a_rebels.cpp \
|
||||
|
@ -190,7 +190,7 @@ ${COMPILER} "autostart.cpp a.nas blocks.nas misc.nas tmap.nas tmap2.nas tmap3.na
|
|||
a_camera.cpp a_debris.cpp a_decals.cpp a_flashfader.cpp a_fountain.cpp \
|
||||
a_hatetarget.cpp a_keys.cpp a_lightning.cpp a_movingcamera.cpp a_pickups.cpp \
|
||||
a_quake.cpp a_secrettrigger.cpp a_sectoraction.cpp a_sharedmisc.cpp a_skies.cpp \
|
||||
a_soundenvironment.cpp a_soundsequence.cpp a_spark.cpp a_splashes.cpp a_waterzone.cpp a_weaponpiece.cpp a_weapons.cpp \
|
||||
a_soundenvironment.cpp a_soundsequence.cpp a_spark.cpp a_waterzone.cpp a_weaponpiece.cpp a_weapons.cpp \
|
||||
hudmessages.cpp shared_sbar.cpp fmopl.cpp mlkernel.cpp mlopl.cpp mlopl_io.cpp \
|
||||
opl_mus_player.cpp fmodsound.cpp i_music.cpp i_sound.cpp music_cd.cpp \
|
||||
music_flac.cpp music_midi_midiout.cpp music_midi_stream.cpp music_midi_timidity.cpp \
|
||||
|
|
|
@ -1,3 +1,36 @@
|
|||
May 3, 2006 (Changes by Graf Zahl)
|
||||
- Removed doom.x, heretic.x and strife.x from the SVN repository. These
|
||||
are generated files.
|
||||
- Fixed: A_PainDie has to check whether a valid target exists before
|
||||
calling IsFriend.
|
||||
- Fixed: FDecalLib::FindAnimator needs a signed counter to work properly.
|
||||
|
||||
May 1, 2006 (Changes by Graf Zahl)
|
||||
- Added support for game specific pickup messages, if only to be able
|
||||
to define Raven's invulnerability item in DECORATE.
|
||||
- Removed A_TreeDeath because it is no longer used.
|
||||
- Fixed: When picking up a PowerupGiver for an active powerup the
|
||||
blend color and the duration were transferred to a temorary item
|
||||
and never took effect. They have to be trnasferred to the newly created
|
||||
powerup item before trying to give it to the player, not afterward.
|
||||
- Made the colormap of the InvulnerabilitySphere item specific.
|
||||
The base power class still needs to have its color adjusted
|
||||
per game though and since Raven's invulnerability item is used in both
|
||||
Hexen and Heretic it can't define its own colormap/blend.
|
||||
- Separated the invulnerability colormaps from the game being played
|
||||
and made them item specific. They can also be specified as regular
|
||||
blend colors in DECORATE now.
|
||||
- Converted a_hereticarmor.cpp and most of a_doomartifacts.cpp,
|
||||
a_hereticartifacts.cpp and a_heretickeys.cpp to DECORATE.
|
||||
- Changed the Soulsphere to be a real health item with the Dehacked
|
||||
modifications made in d_dehacked.cpp as for most other items which
|
||||
need to be adjusted.
|
||||
- Added IF_BIGPOWERUP flag to AInventory to expose the RESPAWN_SUPER
|
||||
dmflag to DECORATE. Also removed the now obsolete ShouldRespawn methods
|
||||
from AInvulnerabilitySphere and ABlurSphere.
|
||||
- Converted a_splashes.cpp to DECORATE.
|
||||
- Converted most of a_debris.cpp to DECORATE.
|
||||
|
||||
May 1, 2006
|
||||
- Made loading of Build's palette.dat automatic if it's found inside a loaded
|
||||
group file, but the -bpal parameter remains for now.
|
||||
|
|
|
@ -588,7 +588,7 @@ public:
|
|||
BYTE frame; // sprite frame to draw
|
||||
BYTE xscale, yscale; // Scaling values; 63 is normal size
|
||||
BYTE RenderStyle; // Style to draw this actor with
|
||||
WORD renderflags; // Different rendering flags
|
||||
DWORD renderflags; // Different rendering flags
|
||||
WORD picnum; // Draw this instead of sprite if != 0xffff
|
||||
SWORD TIDtoHate; // TID of things to hate (0 if none)
|
||||
DWORD effects; // [RH] see p_effect.h
|
||||
|
|
|
@ -67,6 +67,7 @@
|
|||
#include "r_sky.h"
|
||||
|
||||
extern FILE *Logfile;
|
||||
extern bool insave;
|
||||
|
||||
CVAR (Bool, sv_cheats, false, CVAR_SERVERINFO | CVAR_LATCH)
|
||||
|
||||
|
@ -90,12 +91,12 @@ BOOL CheckCheatmode ()
|
|||
|
||||
CCMD (quit)
|
||||
{
|
||||
exit (0);
|
||||
if (!insave) exit (0);
|
||||
}
|
||||
|
||||
CCMD (exit)
|
||||
{
|
||||
exit (0);
|
||||
if (!insave) exit (0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -1628,19 +1628,38 @@ static int PatchMisc (int dummy)
|
|||
ABasicArmorPickup *armor;
|
||||
|
||||
armor = static_cast<ABasicArmorPickup *> (GetDefaultByName ("GreenArmor"));
|
||||
armor->SaveAmount = 100 * deh.GreenAC;
|
||||
armor->SavePercent = deh.GreenAC == 1 ? FRACUNIT/3 : FRACUNIT/2;
|
||||
if (armor!=NULL)
|
||||
{
|
||||
armor->SaveAmount = 100 * deh.GreenAC;
|
||||
armor->SavePercent = deh.GreenAC == 1 ? FRACUNIT/3 : FRACUNIT/2;
|
||||
}
|
||||
armor = static_cast<ABasicArmorPickup *> (GetDefaultByName ("BlueArmor"));
|
||||
armor->SaveAmount = 100 * deh.BlueAC;
|
||||
armor->SavePercent = deh.BlueAC == 1 ? FRACUNIT/3 : FRACUNIT/2;
|
||||
if (armor!=NULL)
|
||||
{
|
||||
armor->SaveAmount = 100 * deh.BlueAC;
|
||||
armor->SavePercent = deh.BlueAC == 1 ? FRACUNIT/3 : FRACUNIT/2;
|
||||
}
|
||||
|
||||
ABasicArmorBonus *barmor;
|
||||
barmor = static_cast<ABasicArmorBonus *> (GetDefaultByName ("ArmorBonus"));
|
||||
barmor->MaxSaveAmount = deh.MaxArmor;
|
||||
if (barmor!=NULL)
|
||||
{
|
||||
barmor->MaxSaveAmount = deh.MaxArmor;
|
||||
}
|
||||
|
||||
AHealth *health;
|
||||
health = static_cast<AHealth *> (GetDefaultByName ("HealthBonus"));
|
||||
if (deh.MaxHealth != -1) health->MaxAmount = deh.MaxHealth;
|
||||
if (deh.MaxHealth != -1 && health!=NULL)
|
||||
{
|
||||
health->MaxAmount = deh.MaxHealth;
|
||||
}
|
||||
|
||||
health = static_cast<AHealth *> (GetDefaultByName ("Soulsphere"));
|
||||
if (health!=NULL)
|
||||
{
|
||||
health->Amount = deh.SoulsphereHealth;
|
||||
health->MaxAmount = deh.MaxSoulsphere;
|
||||
}
|
||||
|
||||
// 0xDD means "enable infighting"
|
||||
if (infighting == 0xDD)
|
||||
|
|
|
@ -149,6 +149,7 @@ EXTERN_CVAR (Bool, st_scale)
|
|||
extern BOOL gameisdead;
|
||||
extern bool demorecording;
|
||||
extern bool M_DemoNoPlay; // [RH] if true, then skip any demos in the loop
|
||||
extern bool insave;
|
||||
|
||||
extern cycle_t WallCycles, PlaneCycles, MaskedCycles, WallScanCycles;
|
||||
|
||||
|
@ -690,6 +691,7 @@ void D_ErrorCleanup ()
|
|||
players[0].playerstate = PST_LIVE;
|
||||
gameaction = ga_fullconsole;
|
||||
menuactive = MENU_Off;
|
||||
insave=false;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
|
|
@ -1324,9 +1324,9 @@ DThinker *FDecalCombinerAnim::CreateThinker (DBaseDecal *actor, side_t *wall) co
|
|||
|
||||
FDecalAnimator *FDecalLib::FindAnimator (const char *name)
|
||||
{
|
||||
unsigned int i;
|
||||
int i;
|
||||
|
||||
for (i = Animators.Size ()-1; i >= 0; --i)
|
||||
for (i = (int)Animators.Size ()-1; i >= 0; --i)
|
||||
{
|
||||
if (stricmp (name, Animators[i]->Name) == 0)
|
||||
{
|
||||
|
|
|
@ -148,12 +148,6 @@ void A_BspiAttack (AActor *self)
|
|||
if (!self->target)
|
||||
return;
|
||||
|
||||
// [RH] Andy Baker's stealth monsters
|
||||
if (self->flags & MF_STEALTH)
|
||||
{
|
||||
self->visdir = 1;
|
||||
}
|
||||
|
||||
A_FaceTarget (self);
|
||||
|
||||
// launch a missile
|
||||
|
|
|
@ -12,86 +12,6 @@
|
|||
#include "p_enemy.h"
|
||||
#include "p_effect.h"
|
||||
|
||||
// Invulnerability Sphere ---------------------------------------------------
|
||||
|
||||
class AInvulnerabilitySphere : public APowerupGiver
|
||||
{
|
||||
DECLARE_ACTOR (AInvulnerabilitySphere, APowerupGiver)
|
||||
public:
|
||||
bool ShouldRespawn ();
|
||||
protected:
|
||||
const char *PickupMessage ();
|
||||
};
|
||||
|
||||
FState AInvulnerabilitySphere::States[] =
|
||||
{
|
||||
S_BRIGHT (PINV, 'A', 6, NULL , &States[1]),
|
||||
S_BRIGHT (PINV, 'B', 6, NULL , &States[2]),
|
||||
S_BRIGHT (PINV, 'C', 6, NULL , &States[3]),
|
||||
S_BRIGHT (PINV, 'D', 6, NULL , &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AInvulnerabilitySphere, Doom, 2022, 133)
|
||||
PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_FlagsSet (IF_AUTOACTIVATE|IF_ALWAYSPICKUP)
|
||||
PROP_Inventory_MaxAmount (0)
|
||||
PROP_PowerupGiver_Powerup ("PowerInvulnerable")
|
||||
END_DEFAULTS
|
||||
|
||||
const char *AInvulnerabilitySphere::PickupMessage ()
|
||||
{
|
||||
return GStrings("GOTINVUL");
|
||||
}
|
||||
|
||||
bool AInvulnerabilitySphere::ShouldRespawn ()
|
||||
{
|
||||
return Super::ShouldRespawn () && (dmflags & DF_RESPAWN_SUPER);
|
||||
}
|
||||
|
||||
// Soulsphere --------------------------------------------------------------
|
||||
|
||||
class ASoulsphere : public AInventory
|
||||
{
|
||||
DECLARE_ACTOR (ASoulsphere, AInventory)
|
||||
public:
|
||||
virtual bool Use (bool pickup)
|
||||
{
|
||||
player_t *player = Owner->player;
|
||||
if (player->health < deh.MaxSoulsphere)
|
||||
{
|
||||
player->health += deh.SoulsphereHealth;
|
||||
if (player->health > deh.MaxSoulsphere)
|
||||
player->health = deh.MaxSoulsphere;
|
||||
player->mo->health = player->health;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
protected:
|
||||
virtual const char *PickupMessage ()
|
||||
{
|
||||
return GStrings("GOTSUPER");
|
||||
}
|
||||
};
|
||||
|
||||
FState ASoulsphere::States[] =
|
||||
{
|
||||
S_BRIGHT (SOUL, 'A', 6, NULL , &States[1]),
|
||||
S_BRIGHT (SOUL, 'B', 6, NULL , &States[2]),
|
||||
S_BRIGHT (SOUL, 'C', 6, NULL , &States[3]),
|
||||
S_BRIGHT (SOUL, 'D', 6, NULL , &States[4]),
|
||||
S_BRIGHT (SOUL, 'C', 6, NULL , &States[5]),
|
||||
S_BRIGHT (SOUL, 'B', 6, NULL , &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ASoulsphere, Doom, 2013, 25)
|
||||
PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
|
||||
PROP_Inventory_FlagsSet (IF_AUTOACTIVATE|IF_ALWAYSPICKUP|IF_FANCYPICKUPSOUND)
|
||||
PROP_Inventory_MaxAmount (0)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_PickupSound ("misc/p_pkup")
|
||||
END_DEFAULTS
|
||||
|
||||
// Mega sphere --------------------------------------------------------------
|
||||
|
||||
class AMegasphere : public APowerupGiver
|
||||
|
@ -181,124 +101,3 @@ IMPLEMENT_ACTOR (ABerserk, Doom, 2023, 134)
|
|||
PROP_PowerupGiver_Powerup ("PowerStrength")
|
||||
END_DEFAULTS
|
||||
|
||||
// Invisibility -------------------------------------------------------------
|
||||
|
||||
class ABlurSphere : public APowerupGiver
|
||||
{
|
||||
DECLARE_ACTOR (ABlurSphere, APowerupGiver)
|
||||
public:
|
||||
virtual void PostBeginPlay ()
|
||||
{
|
||||
Super::PostBeginPlay ();
|
||||
effects |= FX_VISIBILITYPULSE;
|
||||
visdir = -1;
|
||||
}
|
||||
virtual bool ShouldRespawn ()
|
||||
{
|
||||
return Super::ShouldRespawn () && (dmflags & DF_RESPAWN_SUPER);
|
||||
}
|
||||
protected:
|
||||
virtual const char *PickupMessage ()
|
||||
{
|
||||
return GStrings("GOTINVIS");
|
||||
}
|
||||
};
|
||||
|
||||
FState ABlurSphere::States[] =
|
||||
{
|
||||
S_BRIGHT (PINS, 'A', 6, NULL , &States[1]),
|
||||
S_BRIGHT (PINS, 'B', 6, NULL , &States[2]),
|
||||
S_BRIGHT (PINS, 'C', 6, NULL , &States[3]),
|
||||
S_BRIGHT (PINS, 'D', 6, NULL , &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ABlurSphere, Doom, 2024, 135)
|
||||
PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
|
||||
PROP_RenderStyle (STYLE_Translucent)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_FlagsSet (IF_AUTOACTIVATE|IF_ALWAYSPICKUP)
|
||||
PROP_Inventory_MaxAmount (0)
|
||||
PROP_PowerupGiver_Powerup ("PowerInvisibility")
|
||||
END_DEFAULTS
|
||||
|
||||
// Radiation suit (aka iron feet) -------------------------------------------
|
||||
|
||||
class ARadSuit : public APowerupGiver
|
||||
{
|
||||
DECLARE_ACTOR (ARadSuit, APowerupGiver)
|
||||
protected:
|
||||
virtual const char *PickupMessage ()
|
||||
{
|
||||
return GStrings("GOTSUIT");
|
||||
}
|
||||
};
|
||||
|
||||
FState ARadSuit::States[] =
|
||||
{
|
||||
S_BRIGHT (SUIT, 'A', -1, NULL , NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ARadSuit, Doom, 2025, 136)
|
||||
PROP_HeightFixed (46)
|
||||
PROP_Flags (MF_SPECIAL)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_FlagsSet (IF_AUTOACTIVATE|IF_ALWAYSPICKUP)
|
||||
PROP_Inventory_MaxAmount (0)
|
||||
PROP_PowerupGiver_Powerup ("PowerIronFeet")
|
||||
END_DEFAULTS
|
||||
|
||||
// infrared -----------------------------------------------------------------
|
||||
|
||||
class AInfrared : public APowerupGiver
|
||||
{
|
||||
DECLARE_ACTOR (AInfrared, APowerupGiver)
|
||||
protected:
|
||||
virtual const char *PickupMessage ()
|
||||
{
|
||||
return GStrings("GOTVISOR");
|
||||
}
|
||||
};
|
||||
|
||||
FState AInfrared::States[] =
|
||||
{
|
||||
S_BRIGHT (PVIS, 'A', 6, NULL , &States[1]),
|
||||
S_NORMAL (PVIS, 'B', 6, NULL , &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AInfrared, Doom, 2045, 138)
|
||||
PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_FlagsSet (IF_AUTOACTIVATE|IF_ALWAYSPICKUP)
|
||||
PROP_Inventory_MaxAmount (0)
|
||||
PROP_PowerupGiver_Powerup ("PowerLightAmp")
|
||||
END_DEFAULTS
|
||||
|
||||
// Allmap -------------------------------------------------------------------
|
||||
|
||||
class AAllmap : public AMapRevealer
|
||||
{
|
||||
DECLARE_ACTOR (AAllmap, AMapRevealer)
|
||||
protected:
|
||||
const char *PickupMessage ()
|
||||
{
|
||||
return GStrings("GOTMAP");
|
||||
}
|
||||
};
|
||||
|
||||
FState AAllmap::States[] =
|
||||
{
|
||||
S_BRIGHT (PMAP, 'A', 6, NULL , &States[1]),
|
||||
S_BRIGHT (PMAP, 'B', 6, NULL , &States[2]),
|
||||
S_BRIGHT (PMAP, 'C', 6, NULL , &States[3]),
|
||||
S_BRIGHT (PMAP, 'D', 6, NULL , &States[4]),
|
||||
S_BRIGHT (PMAP, 'C', 6, NULL , &States[5]),
|
||||
S_BRIGHT (PMAP, 'B', 6, NULL , &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AAllmap, Doom, 2026, 137)
|
||||
PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
|
||||
PROP_Inventory_FlagsSet (IF_ALWAYSPICKUP|IF_FANCYPICKUPSOUND)
|
||||
PROP_Inventory_MaxAmount (0)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_PickupSound ("misc/p_pkup")
|
||||
END_DEFAULTS
|
||||
|
|
|
@ -222,7 +222,7 @@ void A_DualPainAttack (AActor *self)
|
|||
|
||||
void A_PainDie (AActor *self)
|
||||
{
|
||||
if (self->IsFriend (self->target))
|
||||
if (self->target != NULL && self->IsFriend (self->target))
|
||||
{ // And I thought you were my friend!
|
||||
self->flags &= ~MF_FRIENDLY;
|
||||
}
|
||||
|
|
|
@ -113,6 +113,7 @@ bool sendpause; // send a pause event next tic
|
|||
bool sendsave; // send a save event next tic
|
||||
bool sendturn180; // [RH] send a 180 degree turn next tic
|
||||
bool usergame; // ok to save / end game
|
||||
bool insave; // Game is saving - used to block exit commands
|
||||
|
||||
BOOL timingdemo; // if true, exit with report on completion
|
||||
BOOL nodrawers; // for comparative timing purposes
|
||||
|
@ -1153,6 +1154,7 @@ void G_PlayerReborn (int player)
|
|||
{
|
||||
APowerup *invul = static_cast<APowerup*>(actor->GiveInventoryType (RUNTIME_CLASS(APowerInvulnerable)));
|
||||
invul->EffectTics = 2*TICRATE;
|
||||
invul->BlendColor = 0; // don't mess with the view
|
||||
actor->effects |= FX_RESPAWNINVUL; // [RH] special effect
|
||||
}
|
||||
}
|
||||
|
@ -1959,6 +1961,7 @@ void G_DoSaveGame (bool okForQuicksave)
|
|||
return;
|
||||
}
|
||||
|
||||
insave=true;
|
||||
G_SnapshotLevel ();
|
||||
|
||||
FILE *stdfile = fopen (savegamefile.GetChars(), "wb");
|
||||
|
@ -1968,6 +1971,7 @@ void G_DoSaveGame (bool okForQuicksave)
|
|||
Printf ("Could not create savegame '%s'\n", savegamefile.GetChars());
|
||||
savegamefile = "";
|
||||
gameaction = ga_nothing;
|
||||
insave = false;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2038,6 +2042,7 @@ void G_DoSaveGame (bool okForQuicksave)
|
|||
|
||||
BackupSaveName = savegamefile;
|
||||
savegamefile = "";
|
||||
insave = false;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
#include "info.h"
|
||||
#include "a_pickups.h"
|
||||
#include "d_player.h"
|
||||
#include "gstrings.h"
|
||||
#include "p_local.h"
|
||||
#include "gi.h"
|
||||
|
||||
// Silver Shield (Shield1) --------------------------------------------------
|
||||
|
||||
class ASilverShield : public ABasicArmorPickup
|
||||
{
|
||||
DECLARE_ACTOR (ASilverShield, ABasicArmorPickup)
|
||||
protected:
|
||||
virtual const char *PickupMessage ()
|
||||
{
|
||||
return GStrings("TXT_ITEMSHIELD1");
|
||||
}
|
||||
};
|
||||
|
||||
FState ASilverShield::States[] =
|
||||
{
|
||||
S_NORMAL (SHLD, 'A', -1, NULL, NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ASilverShield, Heretic, 85, 68)
|
||||
PROP_Flags (MF_SPECIAL)
|
||||
PROP_Flags2 (MF2_FLOATBOB)
|
||||
PROP_BasicArmorPickup_SavePercent (FRACUNIT/2)
|
||||
PROP_BasicArmorPickup_SaveAmount (100)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_Icon ("SHLDA0")
|
||||
END_DEFAULTS
|
||||
|
||||
// Enchanted shield (Shield2) -----------------------------------------------
|
||||
|
||||
class AEnchantedShield : public ABasicArmorPickup
|
||||
{
|
||||
DECLARE_ACTOR (AEnchantedShield, ABasicArmorPickup)
|
||||
protected:
|
||||
virtual const char *PickupMessage ()
|
||||
{
|
||||
return GStrings("TXT_ITEMSHIELD2");
|
||||
}
|
||||
};
|
||||
|
||||
FState AEnchantedShield::States[] =
|
||||
{
|
||||
S_NORMAL (SHD2, 'A', -1, NULL, NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AEnchantedShield, Heretic, 31, 69)
|
||||
PROP_Flags (MF_SPECIAL)
|
||||
PROP_Flags2 (MF2_FLOATBOB)
|
||||
PROP_BasicArmorPickup_SavePercent (FRACUNIT*3/4)
|
||||
PROP_BasicArmorPickup_SaveAmount (200)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_Icon ("SHD2A0")
|
||||
END_DEFAULTS
|
|
@ -6,37 +6,6 @@
|
|||
#include "p_enemy.h"
|
||||
#include "s_sound.h"
|
||||
|
||||
// Invisibility -------------------------------------------------------------
|
||||
|
||||
class AArtiInvisibility : public APowerupGiver
|
||||
{
|
||||
DECLARE_ACTOR (AArtiInvisibility, APowerupGiver)
|
||||
public:
|
||||
const char *PickupMessage ();
|
||||
};
|
||||
|
||||
FState AArtiInvisibility::States[] =
|
||||
{
|
||||
S_BRIGHT (INVS, 'A', 350, NULL, &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AArtiInvisibility, Heretic, 75, 135)
|
||||
PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
|
||||
PROP_Flags2 (MF2_FLOATBOB)
|
||||
PROP_RenderStyle (STYLE_Translucent)
|
||||
PROP_Alpha (HR_SHADOW)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_RespawnTics (30+4200)
|
||||
PROP_Inventory_FlagsSet (IF_PICKUPFLASH)
|
||||
PROP_Inventory_Icon ("ARTIINVS")
|
||||
PROP_PowerupGiver_Powerup ("PowerGhost")
|
||||
END_DEFAULTS
|
||||
|
||||
const char *AArtiInvisibility::PickupMessage ()
|
||||
{
|
||||
return GStrings("TXT_ARTIINVISIBILITY");
|
||||
}
|
||||
|
||||
// Tome of power ------------------------------------------------------------
|
||||
|
||||
class AArtiTomeOfPower : public APowerupGiver
|
||||
|
|
|
@ -5,106 +5,6 @@
|
|||
#include "p_local.h"
|
||||
#include "a_keys.h"
|
||||
|
||||
IMPLEMENT_STATELESS_ACTOR (AHereticKey, Heretic, -1, 0)
|
||||
PROP_Flags (MF_SPECIAL|MF_NOTDMATCH)
|
||||
PROP_RadiusFixed (20)
|
||||
PROP_HeightFixed (16)
|
||||
END_DEFAULTS
|
||||
|
||||
// Green key ------------------------------------------------------------
|
||||
|
||||
class AKeyGreen : public AHereticKey
|
||||
{
|
||||
DECLARE_ACTOR (AKeyGreen, AHereticKey)
|
||||
public:
|
||||
const char *PickupMessage ();
|
||||
};
|
||||
|
||||
FState AKeyGreen::States[] =
|
||||
{
|
||||
S_BRIGHT (AKYY, 'A', 3, NULL , &States[1]),
|
||||
S_BRIGHT (AKYY, 'B', 3, NULL , &States[2]),
|
||||
S_BRIGHT (AKYY, 'C', 3, NULL , &States[3]),
|
||||
S_BRIGHT (AKYY, 'D', 3, NULL , &States[4]),
|
||||
S_BRIGHT (AKYY, 'E', 3, NULL , &States[5]),
|
||||
S_BRIGHT (AKYY, 'F', 3, NULL , &States[6]),
|
||||
S_BRIGHT (AKYY, 'G', 3, NULL , &States[7]),
|
||||
S_BRIGHT (AKYY, 'H', 3, NULL , &States[8]),
|
||||
S_BRIGHT (AKYY, 'I', 3, NULL , &States[9]),
|
||||
S_BRIGHT (AKYY, 'J', 3, NULL , &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AKeyGreen, Heretic, 73, 86)
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
const char *AKeyGreen::PickupMessage ()
|
||||
{
|
||||
return GStrings("TXT_GOTGREENKEY");
|
||||
}
|
||||
|
||||
// Blue key -----------------------------------------------------------------
|
||||
|
||||
class AKeyBlue : public AHereticKey
|
||||
{
|
||||
DECLARE_ACTOR (AKeyBlue, AHereticKey)
|
||||
public:
|
||||
const char *PickupMessage ();
|
||||
};
|
||||
|
||||
FState AKeyBlue::States[] =
|
||||
{
|
||||
S_BRIGHT (BKYY, 'A', 3, NULL , &States[1]),
|
||||
S_BRIGHT (BKYY, 'B', 3, NULL , &States[2]),
|
||||
S_BRIGHT (BKYY, 'C', 3, NULL , &States[3]),
|
||||
S_BRIGHT (BKYY, 'D', 3, NULL , &States[4]),
|
||||
S_BRIGHT (BKYY, 'E', 3, NULL , &States[5]),
|
||||
S_BRIGHT (BKYY, 'F', 3, NULL , &States[6]),
|
||||
S_BRIGHT (BKYY, 'G', 3, NULL , &States[7]),
|
||||
S_BRIGHT (BKYY, 'H', 3, NULL , &States[8]),
|
||||
S_BRIGHT (BKYY, 'I', 3, NULL , &States[9]),
|
||||
S_BRIGHT (BKYY, 'J', 3, NULL , &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AKeyBlue, Heretic, 79, 85)
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
const char *AKeyBlue::PickupMessage ()
|
||||
{
|
||||
return GStrings("TXT_GOTBLUEKEY");
|
||||
}
|
||||
|
||||
// Yellow key ---------------------------------------------------------------
|
||||
|
||||
class AKeyYellow : public AHereticKey
|
||||
{
|
||||
DECLARE_ACTOR (AKeyYellow, AHereticKey)
|
||||
public:
|
||||
const char *PickupMessage ();
|
||||
};
|
||||
|
||||
FState AKeyYellow::States[] =
|
||||
{
|
||||
S_BRIGHT (CKYY, 'A', 3, NULL , &States[1]),
|
||||
S_BRIGHT (CKYY, 'B', 3, NULL , &States[2]),
|
||||
S_BRIGHT (CKYY, 'C', 3, NULL , &States[3]),
|
||||
S_BRIGHT (CKYY, 'D', 3, NULL , &States[4]),
|
||||
S_BRIGHT (CKYY, 'E', 3, NULL , &States[5]),
|
||||
S_BRIGHT (CKYY, 'F', 3, NULL , &States[6]),
|
||||
S_BRIGHT (CKYY, 'G', 3, NULL , &States[7]),
|
||||
S_BRIGHT (CKYY, 'H', 3, NULL , &States[8]),
|
||||
S_BRIGHT (CKYY, 'I', 3, NULL , &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AKeyYellow, Heretic, 80, 87)
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
const char *AKeyYellow::PickupMessage ()
|
||||
{
|
||||
return GStrings("TXT_GOTYELLOWKEY");
|
||||
}
|
||||
|
||||
// --- Key gizmos -----------------------------------------------------------
|
||||
|
||||
|
|
|
@ -357,31 +357,6 @@ void A_AccTeleGlitter (AActor *actor)
|
|||
}
|
||||
}
|
||||
|
||||
// Super map ----------------------------------------------------------------
|
||||
|
||||
class ASuperMap : public AMapRevealer
|
||||
{
|
||||
DECLARE_ACTOR (ASuperMap, AMapRevealer)
|
||||
protected:
|
||||
const char *PickupMessage ()
|
||||
{
|
||||
return GStrings("TXT_ITEMSUPERMAP");
|
||||
}
|
||||
};
|
||||
|
||||
FState ASuperMap::States[] =
|
||||
{
|
||||
#define S_ITEM_SPMP 0
|
||||
S_NORMAL (SPMP, 'A', -1, NULL , NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ASuperMap, Heretic, 35, 137)
|
||||
PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
|
||||
PROP_Flags2 (MF2_FLOATBOB)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
// --- Volcano --------------------------------------------------------------
|
||||
|
||||
void A_VolcanoSet (AActor *);
|
||||
|
|
|
@ -1,207 +0,0 @@
|
|||
#include "actor.h"
|
||||
#include "info.h"
|
||||
#include "a_action.h"
|
||||
#include "s_sound.h"
|
||||
|
||||
void A_FlameCheck (AActor *);
|
||||
|
||||
// Temp Small Flame --------------------------------------------------------
|
||||
|
||||
class AFlameSmallTemp : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (AFlameSmallTemp, AActor)
|
||||
};
|
||||
|
||||
FState AFlameSmallTemp::States[] =
|
||||
{
|
||||
S_BRIGHT (FFSM, 'A', 3, NULL , &States[1]),
|
||||
S_BRIGHT (FFSM, 'B', 3, NULL , &States[2]),
|
||||
S_BRIGHT (FFSM, 'C', 2, A_FlameCheck , &States[3]),
|
||||
S_BRIGHT (FFSM, 'C', 2, NULL , &States[4]),
|
||||
S_BRIGHT (FFSM, 'D', 3, NULL , &States[5]),
|
||||
S_BRIGHT (FFSM, 'E', 3, A_FlameCheck , &States[0]),
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AFlameSmallTemp, Hexen, 10500, 96)
|
||||
PROP_Flags2 (MF2_NOTELEPORT)
|
||||
PROP_RenderStyle (STYLE_Add)
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
// Temp Large Flame ---------------------------------------------------------
|
||||
|
||||
class AFlameLargeTemp : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (AFlameLargeTemp, AActor)
|
||||
};
|
||||
|
||||
FState AFlameLargeTemp::States[] =
|
||||
{
|
||||
S_BRIGHT (FFLG, 'A', 4, NULL , &States[1]),
|
||||
S_BRIGHT (FFLG, 'B', 4, A_FlameCheck , &States[2]),
|
||||
S_BRIGHT (FFLG, 'C', 4, NULL , &States[3]),
|
||||
S_BRIGHT (FFLG, 'D', 4, A_FlameCheck , &States[4]),
|
||||
S_BRIGHT (FFLG, 'E', 4, NULL , &States[5]),
|
||||
S_BRIGHT (FFLG, 'F', 4, A_FlameCheck , &States[6]),
|
||||
S_BRIGHT (FFLG, 'G', 4, NULL , &States[7]),
|
||||
S_BRIGHT (FFLG, 'H', 4, A_FlameCheck , &States[8]),
|
||||
S_BRIGHT (FFLG, 'I', 4, NULL , &States[9]),
|
||||
S_BRIGHT (FFLG, 'J', 4, A_FlameCheck , &States[10]),
|
||||
S_BRIGHT (FFLG, 'K', 4, NULL , &States[11]),
|
||||
S_BRIGHT (FFLG, 'L', 4, A_FlameCheck , &States[12]),
|
||||
S_BRIGHT (FFLG, 'M', 4, NULL , &States[13]),
|
||||
S_BRIGHT (FFLG, 'N', 4, A_FlameCheck , &States[14]),
|
||||
S_BRIGHT (FFLG, 'O', 4, NULL , &States[15]),
|
||||
S_BRIGHT (FFLG, 'P', 4, A_FlameCheck , &States[4]),
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AFlameLargeTemp, Hexen, 10502, 98)
|
||||
PROP_Flags2 (MF2_NOTELEPORT)
|
||||
PROP_RenderStyle (STYLE_Add)
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
// Small Flame --------------------------------------------------------------
|
||||
|
||||
class AFlameSmall : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (AFlameSmall, AActor)
|
||||
public:
|
||||
void Activate (AActor *activator);
|
||||
void Deactivate (AActor *activator);
|
||||
};
|
||||
|
||||
FState AFlameSmall::States[] =
|
||||
{
|
||||
#define S_FLAME_SMALL1 0
|
||||
S_BRIGHT (FFSM, 'A', 3, NULL , &States[S_FLAME_SMALL1+1]),
|
||||
S_BRIGHT (FFSM, 'A', 3, A_UnHideThing , &States[S_FLAME_SMALL1+2]),
|
||||
S_BRIGHT (FFSM, 'A', 3, NULL , &States[S_FLAME_SMALL1+3]),
|
||||
S_BRIGHT (FFSM, 'B', 3, NULL , &States[S_FLAME_SMALL1+4]),
|
||||
S_BRIGHT (FFSM, 'C', 3, NULL , &States[S_FLAME_SMALL1+5]),
|
||||
S_BRIGHT (FFSM, 'D', 3, NULL , &States[S_FLAME_SMALL1+6]),
|
||||
S_BRIGHT (FFSM, 'E', 3, NULL , &States[S_FLAME_SMALL1+2]),
|
||||
|
||||
#define S_FLAME_SDORM1 (S_FLAME_SMALL1+7)
|
||||
S_NORMAL (FFSM, 'A', 2, NULL , &States[S_FLAME_SDORM1+1]),
|
||||
S_NORMAL (FFSM, 'B', 2, A_HideThing , &States[S_FLAME_SDORM1+2]),
|
||||
S_NORMAL (FFSM, 'C', 200, NULL , &States[S_FLAME_SDORM1+2]),
|
||||
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AFlameSmall, Hexen, 10501, 97)
|
||||
PROP_Flags2 (MF2_NOTELEPORT|RF_INVISIBLE)
|
||||
PROP_RenderStyle (STYLE_Add)
|
||||
PROP_SpawnState (S_FLAME_SMALL1)
|
||||
END_DEFAULTS
|
||||
|
||||
void AFlameSmall::Activate (AActor *activator)
|
||||
{
|
||||
Super::Activate (activator);
|
||||
S_Sound (this, CHAN_BODY, "Ignite", 1, ATTN_NORM);
|
||||
SetState (&States[S_FLAME_SMALL1]);
|
||||
}
|
||||
|
||||
void AFlameSmall::Deactivate (AActor *activator)
|
||||
{
|
||||
Super::Deactivate (activator);
|
||||
SetState (&States[S_FLAME_SDORM1]);
|
||||
}
|
||||
|
||||
// Large Flame --------------------------------------------------------------
|
||||
|
||||
class AFlameLarge : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (AFlameLarge, AActor)
|
||||
public:
|
||||
void Activate (AActor *activator);
|
||||
void Deactivate (AActor *activator);
|
||||
};
|
||||
|
||||
FState AFlameLarge::States[] =
|
||||
{
|
||||
#define S_FLAME_LARGE1 0
|
||||
S_BRIGHT (FFLG, 'A', 2, NULL , &States[S_FLAME_LARGE1+1]),
|
||||
S_BRIGHT (FFLG, 'A', 2, A_UnHideThing , &States[S_FLAME_LARGE1+2]),
|
||||
S_BRIGHT (FFLG, 'A', 4, NULL , &States[S_FLAME_LARGE1+3]),
|
||||
S_BRIGHT (FFLG, 'B', 4, NULL , &States[S_FLAME_LARGE1+4]),
|
||||
S_BRIGHT (FFLG, 'C', 4, NULL , &States[S_FLAME_LARGE1+5]),
|
||||
S_BRIGHT (FFLG, 'D', 4, NULL , &States[S_FLAME_LARGE1+6]),
|
||||
S_BRIGHT (FFLG, 'E', 4, NULL , &States[S_FLAME_LARGE1+7]),
|
||||
S_BRIGHT (FFLG, 'F', 4, NULL , &States[S_FLAME_LARGE1+8]),
|
||||
S_BRIGHT (FFLG, 'G', 4, NULL , &States[S_FLAME_LARGE1+9]),
|
||||
S_BRIGHT (FFLG, 'H', 4, NULL , &States[S_FLAME_LARGE1+10]),
|
||||
S_BRIGHT (FFLG, 'I', 4, NULL , &States[S_FLAME_LARGE1+11]),
|
||||
S_BRIGHT (FFLG, 'J', 4, NULL , &States[S_FLAME_LARGE1+12]),
|
||||
S_BRIGHT (FFLG, 'K', 4, NULL , &States[S_FLAME_LARGE1+13]),
|
||||
S_BRIGHT (FFLG, 'L', 4, NULL , &States[S_FLAME_LARGE1+14]),
|
||||
S_BRIGHT (FFLG, 'M', 4, NULL , &States[S_FLAME_LARGE1+15]),
|
||||
S_BRIGHT (FFLG, 'N', 4, NULL , &States[S_FLAME_LARGE1+16]),
|
||||
S_BRIGHT (FFLG, 'O', 4, NULL , &States[S_FLAME_LARGE1+17]),
|
||||
S_BRIGHT (FFLG, 'P', 4, NULL , &States[S_FLAME_LARGE1+6]),
|
||||
|
||||
#define S_FLAME_LDORM1 (S_FLAME_LARGE1+18)
|
||||
S_NORMAL (FFLG, 'D', 2, NULL , &States[S_FLAME_LDORM1+1]),
|
||||
S_NORMAL (FFLG, 'C', 2, NULL , &States[S_FLAME_LDORM1+2]),
|
||||
S_NORMAL (FFLG, 'B', 2, NULL , &States[S_FLAME_LDORM1+3]),
|
||||
S_NORMAL (FFLG, 'A', 2, A_HideThing , &States[S_FLAME_LDORM1+4]),
|
||||
S_NORMAL (FFLG, 'A', 200, NULL , &States[S_FLAME_LDORM1+4]),
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AFlameLarge, Hexen, 10503, 99)
|
||||
PROP_Flags2 (MF2_NOTELEPORT)
|
||||
PROP_RenderFlags (RF_INVISIBLE)
|
||||
PROP_RenderStyle (STYLE_Add)
|
||||
PROP_SpawnState (S_FLAME_LARGE1)
|
||||
END_DEFAULTS
|
||||
|
||||
void AFlameLarge::Activate (AActor *activator)
|
||||
{
|
||||
Super::Activate (activator);
|
||||
S_Sound (this, CHAN_BODY, "Ignite", 1, ATTN_NORM);
|
||||
SetState (&States[S_FLAME_LARGE1]);
|
||||
}
|
||||
|
||||
void AFlameLarge::Deactivate (AActor *activator)
|
||||
{
|
||||
Super::Deactivate (activator);
|
||||
SetState (&States[S_FLAME_LDORM1]);
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
// A_FlameCheck
|
||||
//
|
||||
//===========================================================================
|
||||
|
||||
void A_FlameCheck (AActor *actor)
|
||||
{
|
||||
if (!actor->args[0]--) // Called every 8 tics
|
||||
{
|
||||
actor->Destroy ();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
// Hexen uses 2 different spawn IDs for these actors
|
||||
//
|
||||
//===========================================================================
|
||||
|
||||
class AFlameSmall2 : public AFlameSmall
|
||||
{
|
||||
DECLARE_ACTOR (AFlameSmall2, AFlameSmall)
|
||||
};
|
||||
|
||||
IMPLEMENT_STATELESS_ACTOR (AFlameSmall2, Hexen, -1, 66)
|
||||
END_DEFAULTS
|
||||
|
||||
class AFlameLarge2 : public AFlameLarge
|
||||
{
|
||||
DECLARE_ACTOR (AFlameLarge2, AFlameLarge)
|
||||
};
|
||||
|
||||
IMPLEMENT_STATELESS_ACTOR (AFlameLarge2, Hexen, -1, 67)
|
||||
END_DEFAULTS
|
|
@ -870,27 +870,6 @@ void AZShrub2::GetExplodeParms (int &damage, int &distance, bool &hurtSrc)
|
|||
distance = 64;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
// A_TreeDeath
|
||||
//
|
||||
//===========================================================================
|
||||
|
||||
void A_TreeDeath (AActor *actor)
|
||||
{
|
||||
if (actor->DamageType != MOD_FIRE)
|
||||
{
|
||||
actor->height <<= 2;
|
||||
actor->flags |= MF_SHOOTABLE;
|
||||
actor->flags &= ~(MF_CORPSE+MF_DROPOFF);
|
||||
actor->health = 35;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
actor->SetState (actor->MeleeState);
|
||||
}
|
||||
}
|
||||
|
||||
// Poison Shroom ------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -1,168 +0,0 @@
|
|||
#include "info.h"
|
||||
#include "a_pickups.h"
|
||||
#include "a_artifacts.h"
|
||||
#include "gstrings.h"
|
||||
#include "p_local.h"
|
||||
#include "s_sound.h"
|
||||
#include "gi.h"
|
||||
|
||||
// Health -------------------------------------------------------------------
|
||||
|
||||
class AArtiHealth : public AHealthPickup
|
||||
{
|
||||
DECLARE_ACTOR (AArtiHealth, AHealthPickup)
|
||||
public:
|
||||
const char *PickupMessage ();
|
||||
};
|
||||
|
||||
FState AArtiHealth::States[] =
|
||||
{
|
||||
S_NORMAL (PTN2, 'A', 4, NULL, &States[1]),
|
||||
S_NORMAL (PTN2, 'B', 4, NULL, &States[2]),
|
||||
S_NORMAL (PTN2, 'C', 4, NULL, &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AArtiHealth, Raven, 82, 24)
|
||||
PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
|
||||
PROP_Flags2 (MF2_FLOATBOB)
|
||||
PROP_SpawnHealth (25)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_FlagsSet (IF_PICKUPFLASH|IF_FANCYPICKUPSOUND)
|
||||
PROP_Inventory_Icon ("ARTIPTN2")
|
||||
PROP_Inventory_PickupSound ("misc/p_pkup")
|
||||
END_DEFAULTS
|
||||
|
||||
const char *AArtiHealth::PickupMessage ()
|
||||
{
|
||||
return GStrings("TXT_ARTIHEALTH");
|
||||
}
|
||||
|
||||
// Super health -------------------------------------------------------------
|
||||
|
||||
class AArtiSuperHealth : public AHealthPickup
|
||||
{
|
||||
DECLARE_ACTOR (AArtiSuperHealth, AHealthPickup)
|
||||
public:
|
||||
const char *PickupMessage ();
|
||||
};
|
||||
|
||||
FState AArtiSuperHealth::States[] =
|
||||
{
|
||||
S_NORMAL (SPHL, 'A', 350, NULL, &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AArtiSuperHealth, Raven, 32, 25)
|
||||
PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
|
||||
PROP_Flags2 (MF2_FLOATBOB)
|
||||
PROP_SpawnState (0)
|
||||
PROP_SpawnHealth (100)
|
||||
PROP_Inventory_FlagsSet (IF_PICKUPFLASH|IF_FANCYPICKUPSOUND)
|
||||
PROP_Inventory_Icon ("ARTISPHL")
|
||||
PROP_Inventory_PickupSound ("misc/p_pkup")
|
||||
END_DEFAULTS
|
||||
|
||||
const char *AArtiSuperHealth::PickupMessage ()
|
||||
{
|
||||
return GStrings("TXT_ARTISUPERHEALTH");
|
||||
}
|
||||
|
||||
// Flight -------------------------------------------------------------------
|
||||
|
||||
class AArtiFly : public APowerupGiver
|
||||
{
|
||||
DECLARE_ACTOR (AArtiFly, APowerupGiver)
|
||||
public:
|
||||
const char *PickupMessage ();
|
||||
};
|
||||
|
||||
FState AArtiFly::States[] =
|
||||
{
|
||||
S_NORMAL (SOAR, 'A', 5, NULL, &States[1]),
|
||||
S_NORMAL (SOAR, 'B', 5, NULL, &States[2]),
|
||||
S_NORMAL (SOAR, 'C', 5, NULL, &States[3]),
|
||||
S_NORMAL (SOAR, 'B', 5, NULL, &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AArtiFly, Raven, 83, 15)
|
||||
PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
|
||||
PROP_Flags2 (MF2_FLOATBOB)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_RespawnTics (30+4200)
|
||||
PROP_Inventory_FlagsSet (IF_INTERHUBSTRIP|IF_PICKUPFLASH)
|
||||
PROP_Inventory_Icon ("ARTISOAR")
|
||||
PROP_PowerupGiver_Powerup ("PowerFlight")
|
||||
END_DEFAULTS
|
||||
|
||||
const char *AArtiFly::PickupMessage ()
|
||||
{
|
||||
return GStrings("TXT_ARTIFLY");
|
||||
}
|
||||
|
||||
// Invulnerability ----------------------------------------------------------
|
||||
|
||||
class AArtiInvulnerability : public APowerupGiver
|
||||
{
|
||||
DECLARE_ACTOR (AArtiInvulnerability, APowerupGiver)
|
||||
public:
|
||||
const char *PickupMessage ();
|
||||
};
|
||||
|
||||
FState AArtiInvulnerability::States[] =
|
||||
{
|
||||
S_NORMAL (INVU, 'A', 3, NULL, &States[1]),
|
||||
S_NORMAL (INVU, 'B', 3, NULL, &States[2]),
|
||||
S_NORMAL (INVU, 'C', 3, NULL, &States[3]),
|
||||
S_NORMAL (INVU, 'D', 3, NULL, &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AArtiInvulnerability, Raven, 84, 133)
|
||||
PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
|
||||
PROP_Flags2 (MF2_FLOATBOB)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_RespawnTics (30+4200)
|
||||
PROP_Inventory_FlagsSet (IF_PICKUPFLASH)
|
||||
PROP_Inventory_Icon ("ARTIINVU")
|
||||
PROP_PowerupGiver_Powerup ("PowerInvulnerable")
|
||||
END_DEFAULTS
|
||||
|
||||
const char *AArtiInvulnerability::PickupMessage ()
|
||||
{
|
||||
if (gameinfo.gametype == GAME_Hexen)
|
||||
{
|
||||
return GStrings("TXT_ARTIINVULNERABILITY2");
|
||||
}
|
||||
else
|
||||
{
|
||||
return GStrings("TXT_ARTIINVULNERABILITY");
|
||||
}
|
||||
}
|
||||
|
||||
// Torch --------------------------------------------------------------------
|
||||
|
||||
class AArtiTorch : public APowerupGiver
|
||||
{
|
||||
DECLARE_ACTOR (AArtiTorch, APowerupGiver)
|
||||
public:
|
||||
const char *PickupMessage ();
|
||||
};
|
||||
|
||||
FState AArtiTorch::States[] =
|
||||
{
|
||||
S_BRIGHT (TRCH, 'A', 3, NULL, &States[1]),
|
||||
S_BRIGHT (TRCH, 'B', 3, NULL, &States[2]),
|
||||
S_BRIGHT (TRCH, 'C', 3, NULL, &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AArtiTorch, Raven, 33, 73)
|
||||
PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
|
||||
PROP_Flags2 (MF2_FLOATBOB)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_FlagsSet (IF_PICKUPFLASH)
|
||||
PROP_Inventory_Icon ("ARTITRCH")
|
||||
PROP_PowerupGiver_Powerup ("PowerTorch")
|
||||
END_DEFAULTS
|
||||
|
||||
const char *AArtiTorch::PickupMessage ()
|
||||
{
|
||||
return GStrings("TXT_ARTITORCH");
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
#include "info.h"
|
||||
#include "a_pickups.h"
|
||||
#include "d_player.h"
|
||||
#include "gstrings.h"
|
||||
#include "p_local.h"
|
||||
|
||||
// Crystal vial -------------------------------------------------------------
|
||||
|
||||
class ACrystalVial : public AHealth
|
||||
{
|
||||
DECLARE_ACTOR (ACrystalVial, AHealth)
|
||||
protected:
|
||||
virtual const char *PickupMessage ()
|
||||
{
|
||||
return GStrings("TXT_ITEMHEALTH");
|
||||
}
|
||||
};
|
||||
|
||||
FState ACrystalVial::States[] =
|
||||
{
|
||||
S_NORMAL (PTN1, 'A', 3, NULL , &States[1]),
|
||||
S_NORMAL (PTN1, 'B', 3, NULL , &States[2]),
|
||||
S_NORMAL (PTN1, 'C', 3, NULL , &States[0])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ACrystalVial, Raven, 81, 23)
|
||||
PROP_Flags (MF_SPECIAL)
|
||||
PROP_Flags2 (MF2_FLOATBOB)
|
||||
PROP_Inventory_Amount (10)
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
|
@ -44,17 +44,18 @@ bool APowerupGiver::Use (bool pickup)
|
|||
{
|
||||
APowerup *power = static_cast<APowerup *> (Spawn (PowerupType, 0, 0, 0));
|
||||
|
||||
if (EffectTics != 0)
|
||||
{
|
||||
power->EffectTics = EffectTics;
|
||||
}
|
||||
if (BlendColor != 0)
|
||||
{
|
||||
power->BlendColor = BlendColor;
|
||||
}
|
||||
|
||||
power->ItemFlags |= ItemFlags & IF_ALWAYSPICKUP;
|
||||
if (power->TryPickup (Owner))
|
||||
{
|
||||
if (EffectTics != 0)
|
||||
{
|
||||
power->EffectTics = EffectTics;
|
||||
}
|
||||
if (BlendColor != 0)
|
||||
{
|
||||
power->BlendColor = BlendColor;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
power->GoAwayAndDie ();
|
||||
|
@ -91,6 +92,14 @@ void APowerup::Tick ()
|
|||
else if (EffectTics > 0)
|
||||
{
|
||||
DoEffect ();
|
||||
|
||||
if (EffectTics > BLINKTHRESHOLD || (EffectTics & 8))
|
||||
{
|
||||
if (BlendColor == INVERSECOLOR) Owner->player->fixedcolormap = INVERSECOLORMAP;
|
||||
else if (BlendColor == GOLDCOLOR) Owner->player->fixedcolormap = GOLDCOLORMAP;
|
||||
}
|
||||
else Owner->player->fixedcolormap = 0;
|
||||
|
||||
if (--EffectTics == 0)
|
||||
{
|
||||
Destroy ();
|
||||
|
@ -118,7 +127,10 @@ void APowerup::Serialize (FArchive &arc)
|
|||
|
||||
PalEntry APowerup::GetBlend ()
|
||||
{
|
||||
if (EffectTics <= 4*32 && !(EffectTics & 8))
|
||||
if (EffectTics <= BLINKTHRESHOLD && !(EffectTics & 8))
|
||||
return 0;
|
||||
|
||||
if (BlendColor == INVERSECOLOR || BlendColor == GOLDCOLOR)
|
||||
return 0;
|
||||
|
||||
return BlendColor;
|
||||
|
@ -213,7 +225,12 @@ bool APowerup::HandlePickup (AInventory *item)
|
|||
return true;
|
||||
}
|
||||
// Only increase the EffectTics, not decrease it.
|
||||
EffectTics = MAX (EffectTics, power->EffectTics);
|
||||
// Color also gets transferred only when the new item has an effect.
|
||||
if (power->EffectTics > EffectTics)
|
||||
{
|
||||
EffectTics = power->EffectTics;
|
||||
BlendColor = power->BlendColor;
|
||||
}
|
||||
power->ItemFlags |= IF_PICKUPGOOD;
|
||||
return true;
|
||||
}
|
||||
|
@ -259,6 +276,25 @@ IMPLEMENT_STATELESS_ACTOR (APowerInvulnerable, Any, -1, 0)
|
|||
PROP_Inventory_Icon ("SPSHLD0")
|
||||
END_DEFAULTS
|
||||
|
||||
// Need to set the default for each game here
|
||||
AT_GAME_SET(PowerInvulnerable)
|
||||
{
|
||||
APowerInvulnerable * invul = GetDefault<APowerInvulnerable>();
|
||||
switch (gameinfo.gametype)
|
||||
{
|
||||
case GAME_Doom:
|
||||
case GAME_Strife:
|
||||
invul->BlendColor = INVERSECOLOR;
|
||||
break;
|
||||
|
||||
case GAME_Heretic:
|
||||
invul->BlendColor = GOLDCOLOR;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
//===========================================================================
|
||||
//
|
||||
// APowerInvulnerable :: InitEffect
|
||||
|
@ -281,19 +317,6 @@ void APowerInvulnerable::InitEffect ()
|
|||
void APowerInvulnerable::DoEffect ()
|
||||
{
|
||||
Owner->player->mo->SpecialInvulnerabilityHandling (APlayerPawn::INVUL_Active);
|
||||
if (gameinfo.gametype != GAME_Hexen)
|
||||
{
|
||||
if ((EffectTics > BLINKTHRESHOLD || (EffectTics & 8)) &&
|
||||
!(Owner->player->mo->effects & FX_RESPAWNINVUL) &&
|
||||
0 == BlendColor.a) // [RH] No special colormap if there is a blend
|
||||
{
|
||||
Owner->player->fixedcolormap = NUMCOLORMAPS;
|
||||
}
|
||||
else
|
||||
{
|
||||
Owner->player->fixedcolormap = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
#include "farchive.h"
|
||||
#include "a_pickups.h"
|
||||
|
||||
#define INVERSECOLOR 0x00345678
|
||||
#define GOLDCOLOR 0x009abcde
|
||||
|
||||
#define STREAM_ENUM(e) \
|
||||
inline FArchive &operator<< (FArchive &arc, e &i) \
|
||||
{ \
|
||||
|
|
|
@ -4,115 +4,6 @@
|
|||
|
||||
static FRandom pr_dirt ("SpawnDirt");
|
||||
|
||||
// Convenient macros --------------------------------------------------------
|
||||
|
||||
#define _DEBCOMMON(cls,parent,ns,dstate,sid) \
|
||||
class cls : public parent { DECLARE_STATELESS_ACTOR (cls, parent) static FState States[ns]; }; \
|
||||
IMPLEMENT_ACTOR (cls, Any, -1, sid) \
|
||||
PROP_DeathState (dstate) \
|
||||
PROP_SpawnState (0)
|
||||
|
||||
#define _DEBSTARTSTATES(cls,ns) \
|
||||
END_DEFAULTS FState cls::States[ns] =
|
||||
|
||||
#define DEBRIS(cls,spawnnum,ns,dstate) \
|
||||
_DEBCOMMON(cls,AActor,ns,dstate,spawnnum) \
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_DROPOFF|MF_MISSILE) \
|
||||
PROP_Flags2 (MF2_NOTELEPORT) \
|
||||
_DEBSTARTSTATES(cls,ns)
|
||||
|
||||
#define SHARD(cls,spawnnum,ns,dstate) \
|
||||
_DEBCOMMON(cls,AGlassShard,ns,dstate,spawnnum) \
|
||||
PROP_RadiusFixed (5) \
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_DROPOFF|MF_MISSILE|MF_NOGRAVITY) \
|
||||
PROP_Flags2 (MF2_NOTELEPORT|MF2_HEXENBOUNCE) \
|
||||
_DEBSTARTSTATES(cls,ns)
|
||||
|
||||
// Rocks --------------------------------------------------------------------
|
||||
|
||||
#define S_ROCK1 0
|
||||
#define S_ROCK1_D (S_ROCK1+1)
|
||||
|
||||
DEBRIS (ARock1, 41, 2, S_ROCK1_D)
|
||||
{
|
||||
S_NORMAL (ROKK, 'A', 20, NULL, &States[S_ROCK1]),
|
||||
S_NORMAL (ROKK, 'A', 10, NULL, NULL)
|
||||
};
|
||||
|
||||
#define S_ROCK2 0
|
||||
#define S_ROCK2_D (S_ROCK2+1)
|
||||
|
||||
DEBRIS (ARock2, 42, 2, S_ROCK2_D)
|
||||
{
|
||||
S_NORMAL (ROKK, 'B', 20, NULL, &States[S_ROCK2]),
|
||||
S_NORMAL (ROKK, 'B', 10, NULL, NULL)
|
||||
};
|
||||
|
||||
#define S_ROCK3 0
|
||||
#define S_ROCK3_D (S_ROCK3+1)
|
||||
|
||||
DEBRIS (ARock3, 43, 2, S_ROCK3_D)
|
||||
{
|
||||
S_NORMAL (ROKK, 'C', 20, NULL, &States[S_ROCK3+0]),
|
||||
S_NORMAL (ROKK, 'C', 10, NULL, NULL)
|
||||
};
|
||||
|
||||
// Dirt ---------------------------------------------------------------------
|
||||
|
||||
#define S_DIRT1 0
|
||||
#define S_DIRT1_D (S_DIRT1+1)
|
||||
|
||||
DEBRIS (ADirt1, 44, 2, S_DIRT1_D)
|
||||
{
|
||||
S_NORMAL (ROKK, 'D', 20, NULL, &States[S_DIRT1]),
|
||||
S_NORMAL (ROKK, 'D', 10, NULL, NULL)
|
||||
};
|
||||
|
||||
#define S_DIRT2 0
|
||||
#define S_DIRT2_D (S_DIRT2+1)
|
||||
|
||||
DEBRIS (ADirt2, 45, 2, S_DIRT2_D)
|
||||
{
|
||||
S_NORMAL (ROKK, 'E', 20, NULL, &States[S_DIRT2]),
|
||||
S_NORMAL (ROKK, 'E', 10, NULL, NULL)
|
||||
};
|
||||
|
||||
#define S_DIRT3 0
|
||||
#define S_DIRT3_D (S_DIRT3+1)
|
||||
|
||||
DEBRIS (ADirt3, 46, 2, S_DIRT3_D)
|
||||
{
|
||||
S_NORMAL (ROKK, 'F', 20, NULL, &States[S_DIRT3]),
|
||||
S_NORMAL (ROKK, 'F', 10, NULL, NULL)
|
||||
};
|
||||
|
||||
#define S_DIRT4 0
|
||||
#define S_DIRT4_D (S_DIRT4+1)
|
||||
|
||||
DEBRIS (ADirt4, 47, 2, S_DIRT4_D)
|
||||
{
|
||||
S_NORMAL (ROKK, 'G', 20, NULL, &States[S_DIRT4]),
|
||||
S_NORMAL (ROKK, 'G', 10, NULL, NULL)
|
||||
};
|
||||
|
||||
#define S_DIRT5 0
|
||||
#define S_DIRT5_D (S_DIRT5+1)
|
||||
|
||||
DEBRIS (ADirt5, 48, 2, S_DIRT5_D)
|
||||
{
|
||||
S_NORMAL (ROKK, 'H', 20, NULL, &States[S_DIRT5]),
|
||||
S_NORMAL (ROKK, 'H', 10, NULL, NULL)
|
||||
};
|
||||
|
||||
#define S_DIRT6 0
|
||||
#define S_DIRT6_D (S_DIRT6+1)
|
||||
|
||||
DEBRIS (ADirt6, 49, 2, S_DIRT6_D)
|
||||
{
|
||||
S_NORMAL (ROKK, 'I', 20, NULL, &States[S_DIRT6]),
|
||||
S_NORMAL (ROKK, 'I', 10, NULL, NULL)
|
||||
};
|
||||
|
||||
// Stained glass ------------------------------------------------------------
|
||||
|
||||
class AGlassShard : public AActor
|
||||
|
@ -121,140 +12,19 @@ class AGlassShard : public AActor
|
|||
public:
|
||||
bool FloorBounceMissile (secplane_t &plane)
|
||||
{
|
||||
fixed_t bouncemomz = FixedMul (momz, (fixed_t)(-0.3*FRACUNIT));
|
||||
|
||||
if (abs (bouncemomz) < (FRACUNIT/2))
|
||||
if (!Super::FloorBounceMissile (plane))
|
||||
{
|
||||
Destroy ();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!Super::FloorBounceMissile (plane))
|
||||
if (abs (momz) < (FRACUNIT/2))
|
||||
{
|
||||
momz = bouncemomz;
|
||||
return false;
|
||||
Destroy ();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
IMPLEMENT_ABSTRACT_ACTOR (AGlassShard)
|
||||
|
||||
#define S_SGSHARD1 0
|
||||
#define S_SGSHARD1_D (S_SGSHARD1+5)
|
||||
|
||||
SHARD (ASGShard1, 54, 6, S_SGSHARD1_D)
|
||||
{
|
||||
S_NORMAL (SGSA, 'A', 4, NULL , &States[S_SGSHARD1+1]),
|
||||
S_NORMAL (SGSA, 'B', 4, NULL , &States[S_SGSHARD1+2]),
|
||||
S_NORMAL (SGSA, 'C', 4, NULL , &States[S_SGSHARD1+3]),
|
||||
S_NORMAL (SGSA, 'D', 4, NULL , &States[S_SGSHARD1+4]),
|
||||
S_NORMAL (SGSA, 'E', 4, NULL , &States[S_SGSHARD1+0]),
|
||||
|
||||
S_NORMAL (SGSA, 'E', 30, NULL , NULL)
|
||||
};
|
||||
|
||||
#define S_SGSHARD2 0
|
||||
#define S_SGSHARD2_D (S_SGSHARD2+5)
|
||||
|
||||
SHARD (ASGShard2, 55, 6, S_SGSHARD2_D)
|
||||
{
|
||||
S_NORMAL (SGSA, 'F', 4, NULL , &States[S_SGSHARD2+1]),
|
||||
S_NORMAL (SGSA, 'G', 4, NULL , &States[S_SGSHARD2+2]),
|
||||
S_NORMAL (SGSA, 'H', 4, NULL , &States[S_SGSHARD2+3]),
|
||||
S_NORMAL (SGSA, 'I', 4, NULL , &States[S_SGSHARD2+4]),
|
||||
S_NORMAL (SGSA, 'J', 4, NULL , &States[S_SGSHARD2+0]),
|
||||
|
||||
S_NORMAL (SGSA, 'J', 30, NULL , NULL)
|
||||
};
|
||||
|
||||
#define S_SGSHARD3 0
|
||||
#define S_SGSHARD3_D (S_SGSHARD3+5)
|
||||
|
||||
SHARD (ASGShard3, 56, 6, S_SGSHARD3_D)
|
||||
{
|
||||
S_NORMAL (SGSA, 'K', 4, NULL , &States[S_SGSHARD3+1]),
|
||||
S_NORMAL (SGSA, 'L', 4, NULL , &States[S_SGSHARD3+2]),
|
||||
S_NORMAL (SGSA, 'M', 4, NULL , &States[S_SGSHARD3+3]),
|
||||
S_NORMAL (SGSA, 'N', 4, NULL , &States[S_SGSHARD3+4]),
|
||||
S_NORMAL (SGSA, 'O', 4, NULL , &States[S_SGSHARD3+0]),
|
||||
|
||||
S_NORMAL (SGSA, 'O', 30, NULL , NULL)
|
||||
};
|
||||
|
||||
#define S_SGSHARD4 0
|
||||
#define S_SGSHARD4_D (S_SGSHARD4+5)
|
||||
|
||||
SHARD (ASGShard4, 57, 6, S_SGSHARD4_D)
|
||||
{
|
||||
S_NORMAL (SGSA, 'P', 4, NULL , &States[S_SGSHARD4+1]),
|
||||
S_NORMAL (SGSA, 'Q', 4, NULL , &States[S_SGSHARD4+2]),
|
||||
S_NORMAL (SGSA, 'R', 4, NULL , &States[S_SGSHARD4+3]),
|
||||
S_NORMAL (SGSA, 'S', 4, NULL , &States[S_SGSHARD4+4]),
|
||||
S_NORMAL (SGSA, 'T', 4, NULL , &States[S_SGSHARD4+0]),
|
||||
|
||||
S_NORMAL (SGSA, 'T', 30, NULL , NULL)
|
||||
};
|
||||
|
||||
#define S_SGSHARD5 0
|
||||
#define S_SGSHARD5_D (S_SGSHARD5+5)
|
||||
|
||||
SHARD (ASGShard5, 58, 6, S_SGSHARD5_D)
|
||||
{
|
||||
S_NORMAL (SGSA, 'U', 4, NULL , &States[S_SGSHARD5+1]),
|
||||
S_NORMAL (SGSA, 'V', 4, NULL , &States[S_SGSHARD5+2]),
|
||||
S_NORMAL (SGSA, 'W', 4, NULL , &States[S_SGSHARD5+3]),
|
||||
S_NORMAL (SGSA, 'X', 4, NULL , &States[S_SGSHARD5+4]),
|
||||
S_NORMAL (SGSA, 'Y', 4, NULL , &States[S_SGSHARD5+0]),
|
||||
|
||||
S_NORMAL (SGSA, 'Y', 30, NULL , NULL)
|
||||
};
|
||||
|
||||
#define S_SGSHARD6 0
|
||||
#define S_SGSHARD6_D (S_SGSHARD6+1)
|
||||
|
||||
SHARD (ASGShard6, 59, 2, S_SGSHARD6_D)
|
||||
{
|
||||
S_NORMAL (SGSB, 'A', 4, NULL , &States[S_SGSHARD6+0]),
|
||||
S_NORMAL (SGSB, 'A', 30, NULL , NULL)
|
||||
};
|
||||
|
||||
#define S_SGSHARD7 0
|
||||
#define S_SGSHARD7_D (S_SGSHARD7+1)
|
||||
|
||||
SHARD (ASGShard7, 60, 2, S_SGSHARD7_D)
|
||||
{
|
||||
S_NORMAL (SGSB, 'B', 4, NULL , &States[S_SGSHARD7+0]),
|
||||
S_NORMAL (SGSB, 'B', 30, NULL , NULL)
|
||||
};
|
||||
|
||||
#define S_SGSHARD8 0
|
||||
#define S_SGSHARD8_D (S_SGSHARD8+1)
|
||||
|
||||
SHARD (ASGShard8, 61, 2, S_SGSHARD8_D)
|
||||
{
|
||||
S_NORMAL (SGSB, 'C', 4, NULL , &States[S_SGSHARD8+0]),
|
||||
S_NORMAL (SGSB, 'C', 30, NULL , NULL)
|
||||
};
|
||||
|
||||
#define S_SGSHARD9 0
|
||||
#define S_SGSHARD9_D (S_SGSHARD9+1)
|
||||
|
||||
SHARD (ASGShard9, 62, 2, S_SGSHARD9_D)
|
||||
{
|
||||
S_NORMAL (SGSB, 'D', 4, NULL , &States[S_SGSHARD9+0]),
|
||||
S_NORMAL (SGSB, 'D', 30, NULL , NULL)
|
||||
};
|
||||
|
||||
#define S_SGSHARD0 0
|
||||
#define S_SGSHARD0_D (S_SGSHARD0+1)
|
||||
|
||||
SHARD (ASGShard0, 63, 2, S_SGSHARD0_D)
|
||||
{
|
||||
S_NORMAL (SGSB, 'E', 4, NULL , &States[S_SGSHARD0+0]),
|
||||
S_NORMAL (SGSB, 'E', 30, NULL , NULL)
|
||||
};
|
||||
IMPLEMENT_ABSTRACT_ACTOR(AGlassShard)
|
||||
|
||||
// Dirt stuff
|
||||
|
||||
|
@ -269,30 +39,16 @@ void P_SpawnDirt (AActor *actor, fixed_t radius)
|
|||
x = actor->x + FixedMul(radius,finecosine[angle]);
|
||||
y = actor->y + FixedMul(radius,finesine[angle]);
|
||||
z = actor->z + (pr_dirt()<<9) + FRACUNIT;
|
||||
switch (pr_dirt()%6)
|
||||
|
||||
char fmt[8];
|
||||
sprintf(fmt, "Dirt%d", 1 + pr_dirt()%6);
|
||||
dtype = TypeInfo::FindType(fmt);
|
||||
if (dtype)
|
||||
{
|
||||
case 0:
|
||||
dtype = RUNTIME_CLASS(ADirt1);
|
||||
break;
|
||||
case 1:
|
||||
dtype = RUNTIME_CLASS(ADirt2);
|
||||
break;
|
||||
case 2:
|
||||
dtype = RUNTIME_CLASS(ADirt3);
|
||||
break;
|
||||
case 3:
|
||||
dtype = RUNTIME_CLASS(ADirt4);
|
||||
break;
|
||||
case 4:
|
||||
dtype = RUNTIME_CLASS(ADirt5);
|
||||
break;
|
||||
case 5:
|
||||
dtype = RUNTIME_CLASS(ADirt6);
|
||||
break;
|
||||
}
|
||||
mo = Spawn (dtype, x, y, z);
|
||||
if (mo)
|
||||
{
|
||||
mo->momz = pr_dirt()<<10;
|
||||
mo = Spawn (dtype, x, y, z);
|
||||
if (mo)
|
||||
{
|
||||
mo->momz = pr_dirt()<<10;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,16 +15,6 @@ protected:
|
|||
virtual bool ShouldStay ();
|
||||
};
|
||||
|
||||
class ADoomKey : public AKey
|
||||
{
|
||||
DECLARE_STATELESS_ACTOR (ADoomKey, AKey)
|
||||
};
|
||||
|
||||
class AHereticKey : public AKey
|
||||
{
|
||||
DECLARE_STATELESS_ACTOR (AHereticKey, AKey)
|
||||
};
|
||||
|
||||
class AHexenKey : public AKey
|
||||
{
|
||||
DECLARE_STATELESS_ACTOR (AHexenKey, AKey)
|
||||
|
|
|
@ -498,6 +498,7 @@ bool AInventory::SpecialDropAction (AActor *dropper)
|
|||
|
||||
bool AInventory::ShouldRespawn ()
|
||||
{
|
||||
if ((ItemFlags & IF_BIGPOWERUP) && !(dmflags & DF_RESPAWN_SUPER)) return false;
|
||||
return !!(dmflags & DF_ITEMS_RESPAWN);
|
||||
}
|
||||
|
||||
|
|
|
@ -85,6 +85,7 @@ enum
|
|||
IF_PICKUPFLASH = 1<<9, // Item "flashes" when picked up
|
||||
IF_ALWAYSPICKUP = 1<<10, // For IF_AUTOACTIVATE, MaxAmount=0 items: Always "pick up", even if it doesn't do anything
|
||||
IF_FANCYPICKUPSOUND = 1<<11, // Play pickup sound in "surround" mode
|
||||
IF_BIGPOWERUP = 1<<12, // Affected by RESPAWN_SUPER dmflag
|
||||
};
|
||||
|
||||
struct vissprite_t;
|
||||
|
|
|
@ -80,7 +80,7 @@ public:
|
|||
DWORD AlphaColor;
|
||||
WORD Translation;
|
||||
WORD PicNum;
|
||||
WORD RenderFlags;
|
||||
DWORD RenderFlags;
|
||||
BYTE RenderStyle;
|
||||
|
||||
protected:
|
||||
|
@ -116,36 +116,6 @@ private:
|
|||
DImpactDecal();
|
||||
};
|
||||
|
||||
class AWaterSplashBase : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (AWaterSplashBase, AActor)
|
||||
};
|
||||
|
||||
class AWaterSplash : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (AWaterSplash, AActor)
|
||||
};
|
||||
|
||||
class ALavaSplash : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ALavaSplash, AActor)
|
||||
};
|
||||
|
||||
class ALavaSmoke : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ALavaSmoke, AActor)
|
||||
};
|
||||
|
||||
class ASludgeSplash : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ASludgeSplash, AActor)
|
||||
};
|
||||
|
||||
class ASludgeChunk : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ASludgeChunk, AActor)
|
||||
};
|
||||
|
||||
class AAmbientSound : public AActor
|
||||
{
|
||||
DECLARE_STATELESS_ACTOR (AAmbientSound, AActor)
|
||||
|
|
|
@ -1,229 +0,0 @@
|
|||
#include "actor.h"
|
||||
#include "a_sharedglobal.h"
|
||||
#include "m_random.h"
|
||||
#include "gi.h"
|
||||
|
||||
// Water --------------------------------------------------------------------
|
||||
|
||||
FState AWaterSplash::States[] =
|
||||
{
|
||||
#define S_SPLASH 0
|
||||
S_NORMAL (SPSH, 'A', 8, NULL, &States[1]),
|
||||
S_NORMAL (SPSH, 'B', 8, NULL, &States[2]),
|
||||
S_NORMAL (SPSH, 'C', 8, NULL, &States[3]),
|
||||
S_NORMAL (SPSH, 'D', 16, NULL, NULL),
|
||||
|
||||
#define S_SPLASHX (S_SPLASH+4)
|
||||
S_NORMAL (SPSH, 'D', 10, NULL, NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AWaterSplash, Any, -1, 0)
|
||||
PROP_RadiusFixed (2)
|
||||
PROP_HeightFixed (4)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF)
|
||||
PROP_Flags2 (MF2_NOTELEPORT|MF2_LOGRAV|MF2_CANNOTPUSH)
|
||||
PROP_Flags3 (MF3_DONTSPLASH|MF3_DONTBLAST)
|
||||
|
||||
PROP_SpawnState (S_SPLASH)
|
||||
PROP_DeathState (S_SPLASHX)
|
||||
END_DEFAULTS
|
||||
|
||||
FState AWaterSplashBase::States[] =
|
||||
{
|
||||
S_NORMAL (SPSH, 'E', 5, NULL, &States[1]),
|
||||
S_NORMAL (SPSH, 'F', 5, NULL, &States[2]),
|
||||
S_NORMAL (SPSH, 'G', 5, NULL, &States[3]),
|
||||
S_NORMAL (SPSH, 'H', 5, NULL, &States[4]),
|
||||
S_NORMAL (SPSH, 'I', 5, NULL, &States[5]),
|
||||
S_NORMAL (SPSH, 'J', 5, NULL, &States[6]),
|
||||
S_NORMAL (SPSH, 'K', 5, NULL, NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AWaterSplashBase, Any, -1, 0)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY)
|
||||
PROP_Flags3 (MF3_DONTSPLASH|MF3_DONTBLAST)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
// Lava ---------------------------------------------------------------------
|
||||
|
||||
FState ALavaSplash::States[] =
|
||||
{
|
||||
S_BRIGHT (LVAS, 'A', 5, NULL, &States[1]),
|
||||
S_BRIGHT (LVAS, 'B', 5, NULL, &States[2]),
|
||||
S_BRIGHT (LVAS, 'C', 5, NULL, &States[3]),
|
||||
S_BRIGHT (LVAS, 'D', 5, NULL, &States[4]),
|
||||
S_BRIGHT (LVAS, 'E', 5, NULL, &States[5]),
|
||||
S_BRIGHT (LVAS, 'F', 5, NULL, NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ALavaSplash, Any, -1, 0)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY)
|
||||
PROP_Flags3 (MF3_DONTSPLASH)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
FState ALavaSmoke::States[] =
|
||||
{
|
||||
S_BRIGHT (LVAS, 'G', 5, NULL, &States[1]),
|
||||
S_BRIGHT (LVAS, 'H', 5, NULL, &States[2]),
|
||||
S_BRIGHT (LVAS, 'I', 5, NULL, &States[3]),
|
||||
S_BRIGHT (LVAS, 'J', 5, NULL, &States[4]),
|
||||
S_BRIGHT (LVAS, 'K', 5, NULL, NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ALavaSmoke, Any, -1, 0)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP)
|
||||
PROP_RenderStyle (STYLE_Translucent)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
AT_GAME_SET (LavaSmoke)
|
||||
{
|
||||
ALavaSmoke *def = GetDefault<ALavaSmoke>();
|
||||
def->alpha = (gameinfo.gametype == GAME_Heretic ? HR_SHADOW : HX_SHADOW);
|
||||
}
|
||||
|
||||
// Sludge -------------------------------------------------------------------
|
||||
|
||||
FState ASludgeChunk::States[] =
|
||||
{
|
||||
#define S_SLUDGECHUNK 0
|
||||
S_NORMAL (SLDG, 'A', 8, NULL, &States[1]),
|
||||
S_NORMAL (SLDG, 'B', 8, NULL, &States[2]),
|
||||
S_NORMAL (SLDG, 'C', 8, NULL, &States[3]),
|
||||
S_NORMAL (SLDG, 'D', 8, NULL, NULL),
|
||||
|
||||
#define S_SLUDGECHUNKX (S_SLUDGECHUNK+4)
|
||||
S_NORMAL (SLDG, 'D', 6, NULL, NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ASludgeChunk, Any, -1, 0)
|
||||
PROP_RadiusFixed (2)
|
||||
PROP_HeightFixed (4)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF)
|
||||
PROP_Flags2 (MF2_NOTELEPORT|MF2_LOGRAV|MF2_CANNOTPUSH)
|
||||
PROP_Flags3 (MF3_DONTSPLASH)
|
||||
|
||||
PROP_SpawnState (S_SLUDGECHUNK)
|
||||
PROP_DeathState (S_SLUDGECHUNKX)
|
||||
END_DEFAULTS
|
||||
|
||||
FState ASludgeSplash::States[] =
|
||||
{
|
||||
S_NORMAL (SLDG, 'E', 6, NULL, &States[1]),
|
||||
S_NORMAL (SLDG, 'F', 6, NULL, &States[2]),
|
||||
S_NORMAL (SLDG, 'G', 6, NULL, &States[3]),
|
||||
S_NORMAL (SLDG, 'H', 6, NULL, NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ASludgeSplash, Any, -1, 0)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY)
|
||||
PROP_Flags3 (MF3_DONTSPLASH)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
/*
|
||||
* These next four classes are not used by me anywhere.
|
||||
* They are for people who want to use them in a TERRAIN lump.
|
||||
*/
|
||||
|
||||
class ABloodSplash : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ABloodSplash, AActor);
|
||||
};
|
||||
class ABloodSplashBase : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ABloodSplashBase, AActor);
|
||||
};
|
||||
class ASlimeSplash : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ASlimeSplash, AActor)
|
||||
};
|
||||
class ASlimeChunk : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ASlimeChunk, AActor)
|
||||
};
|
||||
|
||||
// Blood (water with a different sprite) ------------------------------------
|
||||
|
||||
FState ABloodSplash::States[] =
|
||||
{
|
||||
S_NORMAL (BSPH, 'A', 8, NULL, &States[1]),
|
||||
S_NORMAL (BSPH, 'B', 8, NULL, &States[2]),
|
||||
S_NORMAL (BSPH, 'C', 8, NULL, &States[3]),
|
||||
S_NORMAL (BSPH, 'D', 16, NULL, NULL),
|
||||
|
||||
S_NORMAL (BSPH, 'D', 10, NULL, NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ABloodSplash, Any, -1, 0)
|
||||
PROP_RadiusFixed (2)
|
||||
PROP_HeightFixed (4)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF)
|
||||
PROP_Flags2 (MF2_NOTELEPORT|MF2_LOGRAV|MF2_CANNOTPUSH)
|
||||
PROP_Flags3 (MF3_DONTSPLASH)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
PROP_DeathState (4)
|
||||
END_DEFAULTS
|
||||
|
||||
FState ABloodSplashBase::States[] =
|
||||
{
|
||||
S_NORMAL (BSPH, 'E', 5, NULL, &States[1]),
|
||||
S_NORMAL (BSPH, 'F', 5, NULL, &States[2]),
|
||||
S_NORMAL (BSPH, 'G', 5, NULL, &States[3]),
|
||||
S_NORMAL (BSPH, 'H', 5, NULL, &States[4]),
|
||||
S_NORMAL (BSPH, 'I', 5, NULL, &States[5]),
|
||||
S_NORMAL (BSPH, 'J', 5, NULL, &States[6]),
|
||||
S_NORMAL (BSPH, 'K', 5, NULL, NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ABloodSplashBase, Any, -1, 0)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY)
|
||||
PROP_Flags3 (MF3_DONTSPLASH)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
// Slime (sludge with a different sprite) -----------------------------------
|
||||
|
||||
FState ASlimeChunk::States[] =
|
||||
{
|
||||
S_NORMAL (SLIM, 'A', 8, NULL, &States[1]),
|
||||
S_NORMAL (SLIM, 'B', 8, NULL, &States[2]),
|
||||
S_NORMAL (SLIM, 'C', 8, NULL, &States[3]),
|
||||
S_NORMAL (SLIM, 'D', 8, NULL, NULL),
|
||||
|
||||
S_NORMAL (SLIM, 'D', 6, NULL, NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ASlimeChunk, Any, -1, 0)
|
||||
PROP_RadiusFixed (2)
|
||||
PROP_HeightFixed (4)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF)
|
||||
PROP_Flags2 (MF2_NOTELEPORT|MF2_LOGRAV|MF2_CANNOTPUSH)
|
||||
PROP_Flags3 (MF3_DONTSPLASH)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
PROP_DeathState (4)
|
||||
END_DEFAULTS
|
||||
|
||||
FState ASlimeSplash::States[] =
|
||||
{
|
||||
S_NORMAL (SLIM, 'E', 6, NULL, &States[1]),
|
||||
S_NORMAL (SLIM, 'F', 6, NULL, &States[2]),
|
||||
S_NORMAL (SLIM, 'G', 6, NULL, &States[3]),
|
||||
S_NORMAL (SLIM, 'H', 6, NULL, NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ASlimeSplash, Any, -1, 0)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY)
|
||||
PROP_Flags3 (MF3_DONTSPLASH)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
|
@ -1124,15 +1124,24 @@ void R_SetupFrame (AActor *actor)
|
|||
fixedlightlev = player->fixedcolormap*256;
|
||||
fixedcolormap = NormalLight.Maps;
|
||||
}
|
||||
else
|
||||
else switch (player->fixedcolormap)
|
||||
{
|
||||
fixedcolormap = InvulnerabilityColormap;
|
||||
case INVERSECOLORMAP:
|
||||
fixedcolormap = InverseColormap;
|
||||
break;
|
||||
|
||||
case GOLDCOLORMAP:
|
||||
fixedcolormap = GoldColormap;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
// [RH] Inverse light for shooting the Sigil
|
||||
else if (extralight == INT_MIN)
|
||||
{
|
||||
fixedcolormap = InvulnerabilityColormap;
|
||||
fixedcolormap = InverseColormap;
|
||||
extralight = 0;
|
||||
}
|
||||
|
||||
|
@ -1419,7 +1428,7 @@ void R_RenderActorView (AActor *actor)
|
|||
R_FindParticleSubsectors ();
|
||||
|
||||
clock (WallCycles);
|
||||
WORD savedflags = camera->renderflags;
|
||||
DWORD savedflags = camera->renderflags;
|
||||
// Never draw the player unless in chasecam mode
|
||||
if (!r_showviewer)
|
||||
{
|
||||
|
|
|
@ -86,6 +86,8 @@ extern int r_Yaspect;
|
|||
// Number of diminishing brightness levels.
|
||||
// There a 0-31, i.e. 32 LUT in the COLORMAP lump.
|
||||
#define NUMCOLORMAPS 32
|
||||
#define INVERSECOLORMAP 32
|
||||
#define GOLDCOLORMAP 33
|
||||
|
||||
// The size of a single colormap, in bits
|
||||
#define COLORMAPSHIFT 8
|
||||
|
|
|
@ -1824,7 +1824,7 @@ static void R_RenderDecal (side_t *wall, DBaseDecal *decal, drawseg_t *clipper,
|
|||
yscale = decal->ScaleY;
|
||||
|
||||
WallSpriteTile = TexMan(decal->PicNum);
|
||||
flipx = decal->RenderFlags & RF_XFLIP;
|
||||
flipx = (byte)(decal->RenderFlags & RF_XFLIP);
|
||||
|
||||
if (WallSpriteTile->UseType == FTexture::TEX_Null)
|
||||
{
|
||||
|
|
|
@ -836,7 +836,7 @@ void SC_RestoreScriptState()
|
|||
sc_Crossed = ss.sc_Crossed;
|
||||
sc_FileScripts = ss.sc_FileScripts;
|
||||
ScriptName = *ss.ScriptName;
|
||||
delete ss.ScriptName;
|
||||
::delete ss.ScriptName;
|
||||
ScriptBuffer = ss.ScriptBuffer;
|
||||
ScriptPtr = ss.ScriptPtr;
|
||||
ScriptEndPtr = ss.ScriptEndPtr;
|
||||
|
|
|
@ -225,6 +225,7 @@ static flagdef ActorFlags[]=
|
|||
DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects),
|
||||
DEFINE_FLAG2(FX_ROCKET, ROCKETTRAIL, AActor, effects),
|
||||
DEFINE_FLAG2(FX_GRENADE, GRENADETRAIL, AActor, effects),
|
||||
DEFINE_FLAG(RF, INVISIBLE, AActor, renderflags),
|
||||
};
|
||||
|
||||
static flagdef InventoryFlags[] =
|
||||
|
@ -239,6 +240,7 @@ static flagdef InventoryFlags[] =
|
|||
DEFINE_FLAG(IF, PICKUPFLASH, AInventory, ItemFlags),
|
||||
DEFINE_FLAG(IF, ALWAYSPICKUP, AInventory, ItemFlags),
|
||||
DEFINE_FLAG(IF, FANCYPICKUPSOUND, AInventory, ItemFlags),
|
||||
DEFINE_FLAG(IF, BIGPOWERUP, AInventory, ItemFlags),
|
||||
};
|
||||
|
||||
static flagdef WeaponFlags[] =
|
||||
|
@ -496,6 +498,7 @@ ACTOR(DualPainAttack)
|
|||
ACTOR(GiveToTarget)
|
||||
ACTOR(TakeFromTarget)
|
||||
ACTOR(JumpIfInTargetInventory)
|
||||
ACTOR(CountdownArg)
|
||||
|
||||
|
||||
#include "d_dehackedactions.h"
|
||||
|
@ -679,6 +682,7 @@ AFuncDesc AFTable[]=
|
|||
FUNC(A_JumpIfInTargetInventory, "MXL" )
|
||||
FUNC(A_GiveToTarget, "Mx" )
|
||||
FUNC(A_TakeFromTarget, "Mx" )
|
||||
FUNC(A_CountdownArg, "X")
|
||||
};
|
||||
|
||||
//==========================================================================
|
||||
|
@ -2502,8 +2506,15 @@ static void ActorRenderStyle (AActor *defaults, Baggage &bag)
|
|||
//==========================================================================
|
||||
static void ActorAlpha (AActor *defaults, Baggage &bag)
|
||||
{
|
||||
SC_MustGetFloat();
|
||||
defaults->alpha=fixed_t(sc_Float*FRACUNIT);
|
||||
if (SC_CheckString("DEFAULT"))
|
||||
{
|
||||
defaults->alpha = gameinfo.gametype==GAME_Heretic? HR_SHADOW : HX_SHADOW;
|
||||
}
|
||||
else
|
||||
{
|
||||
SC_MustGetFloat();
|
||||
defaults->alpha=fixed_t(sc_Float*FRACUNIT);
|
||||
}
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
@ -2955,7 +2966,18 @@ static void InventoryDefMaxAmount (AInventory *defaults, Baggage &bag)
|
|||
//==========================================================================
|
||||
static void InventoryPickupmsg (AInventory *defaults, Baggage &bag)
|
||||
{
|
||||
// allow game specific pickup messages
|
||||
const char * games[] = {"Doom", "Heretic", "Hexen", "Raven", "Strife", NULL};
|
||||
int gamemode[]={GAME_Doom, GAME_Heretic, GAME_Hexen, GAME_Raven, GAME_Strife};
|
||||
|
||||
SC_MustGetString();
|
||||
int game = SC_MatchString(games);
|
||||
|
||||
if (game!=-1)
|
||||
{
|
||||
SC_MustGetString();
|
||||
if (!(gameinfo.gametype&gamemode[game])) return;
|
||||
}
|
||||
bag.Info->Class->Meta.SetMetaString(AIMETA_PickupMessage, sc_String);
|
||||
}
|
||||
|
||||
|
@ -3167,6 +3189,18 @@ static void PowerupColor (APowerupGiver *defaults, Baggage &bag)
|
|||
else
|
||||
{
|
||||
SC_MustGetString();
|
||||
|
||||
if (SC_Compare("INVERSEMAP"))
|
||||
{
|
||||
defaults->BlendColor = INVERSECOLOR;
|
||||
return;
|
||||
}
|
||||
else if (SC_Compare("GOLDMAP"))
|
||||
{
|
||||
defaults->BlendColor = GOLDCOLOR;
|
||||
return;
|
||||
}
|
||||
|
||||
int c = V_GetColor(NULL, sc_String);
|
||||
r=RPART(c);
|
||||
g=GPART(c);
|
||||
|
@ -3175,7 +3209,8 @@ static void PowerupColor (APowerupGiver *defaults, Baggage &bag)
|
|||
SC_MustGetFloat();
|
||||
alpha=int(sc_Float*255);
|
||||
alpha=clamp<int>(alpha, 0, 255);
|
||||
defaults->BlendColor = MAKEARGB(alpha, r, g, b);
|
||||
if (alpha!=0) defaults->BlendColor = MAKEARGB(alpha, r, g, b);
|
||||
else defaults->BlendColor = 0;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
|
|
@ -1373,6 +1373,7 @@ void A_DoChase(AActor * actor, bool fastchase, FState * meleestate, FState * mis
|
|||
void A_ExtChase(AActor * self)
|
||||
{
|
||||
int index=CheckIndex(4, &CallingState);
|
||||
if (index<0) return;
|
||||
|
||||
A_DoChase(self, false,
|
||||
EvalExpressionI (StateParameters[index], self) ? self->MeleeState:NULL,
|
||||
|
@ -1390,6 +1391,7 @@ void A_ExtChase(AActor * self)
|
|||
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);
|
||||
|
||||
|
@ -1412,6 +1414,7 @@ void A_Jiggle(AActor * self)
|
|||
void A_DropInventory(AActor * self)
|
||||
{
|
||||
int index=CheckIndex(1, &CallingState);
|
||||
if (index<0) return;
|
||||
const TypeInfo * ti = TypeInfo::FindType((const char*)StateParameters[index]);
|
||||
if (ti)
|
||||
{
|
||||
|
@ -1432,6 +1435,7 @@ void A_DropInventory(AActor * self)
|
|||
void A_SetBlend(AActor * self)
|
||||
{
|
||||
int index=CheckIndex(3);
|
||||
if (index<0) return;
|
||||
PalEntry color = StateParameters[index];
|
||||
float alpha = clamp<float> (EvalExpressionF (StateParameters[index+1], self), 0, 1);
|
||||
int tics = EvalExpressionI (StateParameters[index+2], self);
|
||||
|
@ -1455,6 +1459,7 @@ void A_JumpIf(AActor * self)
|
|||
{
|
||||
FState * CallingState;
|
||||
int index=CheckIndex(2, &CallingState);
|
||||
if (index<0) return;
|
||||
int expression = EvalExpressionI (StateParameters[index], self);
|
||||
|
||||
if (index>=0 && expression) DoJump(self, CallingState, StateParameters[index+1]);
|
||||
|
@ -1492,3 +1497,22 @@ void A_KillChildren(AActor * self)
|
|||
}
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
// A_CountdownArg
|
||||
//
|
||||
//===========================================================================
|
||||
void A_CountdownArg(AActor * self)
|
||||
{
|
||||
int index=CheckIndex(1);
|
||||
if (index<0) return;
|
||||
index = EvalExpressionI (StateParameters[index], self);
|
||||
|
||||
if (index<=0 || index>5) return;
|
||||
if (!self->args[index]--)
|
||||
{
|
||||
self->SetState(self->DeathState);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -59,7 +59,8 @@ extern "C" {
|
|||
FDynamicColormap NormalLight;
|
||||
}
|
||||
FPalette GPalette;
|
||||
BYTE *InvulnerabilityColormap;
|
||||
BYTE *InverseColormap;
|
||||
BYTE *GoldColormap;
|
||||
int Near255;
|
||||
|
||||
FColorMatcher ColorMatcher;
|
||||
|
@ -384,35 +385,34 @@ void InitPalette ()
|
|||
NormalLight.Color = PalEntry (255, 255, 255);
|
||||
NormalLight.Fade = 0;
|
||||
|
||||
InvulnerabilityColormap = new BYTE[NUMCOLORMAPS*256];
|
||||
|
||||
// build special maps (e.g. invulnerability)
|
||||
shade = InvulnerabilityColormap;
|
||||
if (gameinfo.gametype & (GAME_Doom|GAME_Strife))
|
||||
{ // Doom invulnerability is an inverted grayscale
|
||||
// Strife uses it when firing the Sigil
|
||||
int grayint;
|
||||
for (c = 0; c < 256; c++)
|
||||
{
|
||||
grayint = (65535 -
|
||||
(GPalette.BaseColors[c].r * 77 +
|
||||
GPalette.BaseColors[c].g * 143 +
|
||||
GPalette.BaseColors[c].b * 37)) >> 8;
|
||||
*shade++ = ColorMatcher.Pick (grayint, grayint, grayint);
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Heretic invulnerability is a golden shade
|
||||
int intensity;
|
||||
int intensity;
|
||||
|
||||
for (c = 0; c < 256; c++)
|
||||
{
|
||||
intensity = GPalette.BaseColors[c].r * 77 +
|
||||
GPalette.BaseColors[c].g * 143 +
|
||||
GPalette.BaseColors[c].b * 37;
|
||||
*shade++ = ColorMatcher.Pick (
|
||||
MIN (255, (intensity+intensity/2)>>8), intensity>>8, 0);
|
||||
}
|
||||
// Doom invulnerability is an inverted grayscale
|
||||
// Strife uses it when firing the Sigil
|
||||
InverseColormap = new BYTE[NUMCOLORMAPS*256];
|
||||
shade = InverseColormap;
|
||||
|
||||
for (c = 0; c < 256; c++)
|
||||
{
|
||||
intensity = (65535 -
|
||||
(GPalette.BaseColors[c].r * 77 +
|
||||
GPalette.BaseColors[c].g * 143 +
|
||||
GPalette.BaseColors[c].b * 37)) >> 8;
|
||||
*shade++ = ColorMatcher.Pick (intensity, intensity, intensity);
|
||||
}
|
||||
|
||||
// Heretic invulnerability is a golden shade
|
||||
GoldColormap = new BYTE[NUMCOLORMAPS*256];
|
||||
shade = GoldColormap;
|
||||
|
||||
for (c = 0; c < 256; c++)
|
||||
{
|
||||
intensity = GPalette.BaseColors[c].r * 77 +
|
||||
GPalette.BaseColors[c].g * 143 +
|
||||
GPalette.BaseColors[c].b * 37;
|
||||
*shade++ = ColorMatcher.Pick (
|
||||
MIN (255, (intensity+intensity/2)>>8), intensity>>8, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -77,7 +77,8 @@ struct FDynamicColormap
|
|||
FDynamicColormap *Next;
|
||||
};
|
||||
|
||||
extern BYTE *InvulnerabilityColormap;
|
||||
extern BYTE *InverseColormap;
|
||||
extern BYTE *GoldColormap;
|
||||
extern FPalette GPalette;
|
||||
extern "C" {
|
||||
extern FDynamicColormap NormalLight;
|
||||
|
|
|
@ -1,5 +1,17 @@
|
|||
#include "actors/shared/debris.txt"
|
||||
#include "actors/shared/splashes.txt"
|
||||
|
||||
#include "actors/doom/doomarmor.txt"
|
||||
#include "actors/doom/doomartifacts.txt"
|
||||
#include "actors/doom/doomkeys.txt"
|
||||
#include "actors/doom/doomdecorations.txt"
|
||||
|
||||
#include "actors/raven/ravenartifacts.txt"
|
||||
#include "actors/raven/ravenhealth.txt"
|
||||
|
||||
#include "actors/heretic/hereticarmor.txt"
|
||||
#include "actors/heretic/hereticartifacts.txt"
|
||||
#include "actors/heretic/heretickeys.txt"
|
||||
#include "actors/heretic/hereticdecorations.txt"
|
||||
|
||||
#include "actors/hexen/flame.txt"
|
||||
|
|
127
wadsrc/decorate/doom/doomartifacts.txt
Normal file
127
wadsrc/decorate/doom/doomartifacts.txt
Normal file
|
@ -0,0 +1,127 @@
|
|||
// Invulnerability Sphere ---------------------------------------------------
|
||||
|
||||
ACTOR InvulnerabilitySphere : PowerupGiver 2022
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 133
|
||||
+COUNTITEM
|
||||
+INVENTORY.AUTOACTIVATE
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
+INVENTORY.BIGPOWERUP
|
||||
Inventory.MaxAmount 0
|
||||
Powerup.Type Invulnerable
|
||||
Powerup.Color InverseMap
|
||||
Inventory.PickupMessage "$GOTINVUL"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
PINV ABCD 6 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Soulsphere --------------------------------------------------------------
|
||||
|
||||
ACTOR Soulsphere : Health 2013
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 25
|
||||
+COUNTITEM
|
||||
+INVENTORY.AUTOACTIVATE
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
+INVENTORY.FANCYPICKUPSOUND
|
||||
Inventory.Amount 100
|
||||
Inventory.MaxAmount 200
|
||||
Inventory.PickupMessage "$GOTSUPER"
|
||||
Inventory.PickupSound "misc/p_pkup"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SOUL ABCDCB 6 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Invisibility -------------------------------------------------------------
|
||||
|
||||
ACTOR BlurSphere : PowerupGiver 2024
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 135
|
||||
+COUNTITEM
|
||||
+VISIBILITYPULSE
|
||||
+INVENTORY.AUTOACTIVATE
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
+INVENTORY.BIGPOWERUP
|
||||
Inventory.MaxAmount 0
|
||||
Powerup.Type Invisibility
|
||||
RenderStyle Translucent
|
||||
Inventory.PickupMessage "$GOTINVIS"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
PINS ABCD 6 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Radiation suit (aka iron feet) -------------------------------------------
|
||||
|
||||
ACTOR RadSuit : PowerupGiver 2025
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 136
|
||||
Height 46
|
||||
+INVENTORY.AUTOACTIVATE
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
Inventory.MaxAmount 0
|
||||
Powerup.Type IronFeet
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SUIT A -1 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// infrared -----------------------------------------------------------------
|
||||
|
||||
ACTOR Infrared : PowerupGiver 2045
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 138
|
||||
+COUNTITEM
|
||||
+INVENTORY.AUTOACTIVATE
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
Inventory.MaxAmount 0
|
||||
Powerup.Type LightAmp
|
||||
Inventory.PickupMessage "$GOTVISOR"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
PVIS A 6 Bright
|
||||
PVIS B 6
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Allmap -------------------------------------------------------------------
|
||||
|
||||
ACTOR Allmap : MapRevealer 2026
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 137
|
||||
+COUNTITEM
|
||||
+INVENTORY.FANCYPICKUPSOUND
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
Inventory.MaxAmount 0
|
||||
Inventory.PickupSound "misc/p_pkup"
|
||||
Inventory.PickupMessage "$GOTMAP"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
PMAP ABCDCB 6 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
|
@ -688,7 +688,7 @@ ACTOR HangTSkull 76
|
|||
|
||||
// Hanging from top without a brain ----------------------------------------
|
||||
|
||||
ACTOR AHangTNoBrain 78
|
||||
ACTOR HangTNoBrain 78
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
|
39
wadsrc/decorate/heretic/hereticarmor.txt
Normal file
39
wadsrc/decorate/heretic/hereticarmor.txt
Normal file
|
@ -0,0 +1,39 @@
|
|||
|
||||
// Silver Shield (Shield1) --------------------------------------------------
|
||||
|
||||
Actor SilverShield : BasicArmorPickup 85
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 68
|
||||
+FLOATBOB
|
||||
Inventory.Pickupmessage "$TXT_ITEMSHIELD1"
|
||||
Inventory.Icon "SHLDA0"
|
||||
Armor.Savepercent 50
|
||||
Armor.Saveamount 100
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SHLD A -1
|
||||
stop
|
||||
}
|
||||
}
|
||||
|
||||
// Enchanted shield (Shield2) -----------------------------------------------
|
||||
|
||||
Actor EnchantedShield : BasicArmorPickup 31
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 69
|
||||
+FLOATBOB
|
||||
Inventory.Pickupmessage "$TXT_ITEMSHIELD2"
|
||||
Inventory.Icon "SHD2A0"
|
||||
Armor.Savepercent 75
|
||||
Armor.Saveamount 200
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SHD2 A -1
|
||||
stop
|
||||
}
|
||||
}
|
||||
|
44
wadsrc/decorate/heretic/hereticartifacts.txt
Normal file
44
wadsrc/decorate/heretic/hereticartifacts.txt
Normal file
|
@ -0,0 +1,44 @@
|
|||
// Super map ----------------------------------------------------------------
|
||||
|
||||
ACTOR SuperMap : MapRevealer 35
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 137
|
||||
+COUNTITEM
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
+FLOATBOB
|
||||
Inventory.MaxAmount 0
|
||||
Inventory.PickupMessage "$TXT_ITEMSUPERMAP"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SPMP A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Invisibility -------------------------------------------------------------
|
||||
|
||||
ACTOR ArtiInvisibility : PowerupGiver 75
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 135
|
||||
+COUNTITEM
|
||||
+FLOATBOB
|
||||
+INVENTORY.PICKUPFLASH
|
||||
RenderStyle Translucent
|
||||
Alpha 0.4
|
||||
Inventory.RespawnTics 4230
|
||||
Inventory.Icon ARTIINVS
|
||||
Powerup.Type Ghost
|
||||
Inventory.PickupMessage "$TXT_ARTIINVISIBILITY"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
INVS A 350 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
|
54
wadsrc/decorate/heretic/heretickeys.txt
Normal file
54
wadsrc/decorate/heretic/heretickeys.txt
Normal file
|
@ -0,0 +1,54 @@
|
|||
|
||||
ACTOR HereticKey : Key
|
||||
{
|
||||
+NOTDMATCH
|
||||
Radius 20
|
||||
Height 16
|
||||
}
|
||||
|
||||
// Green key ------------------------------------------------------------
|
||||
|
||||
ACTOR KeyGreen : HereticKey 73
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 86
|
||||
Inventory.PickupMessage "$TXT_GOTGREENKEY"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
AKYY ABCDEFGHIJ 3 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Blue key -----------------------------------------------------------------
|
||||
|
||||
ACTOR KeyBlue : HereticKey 79
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 85
|
||||
Inventory.PickupMessage "$TXT_GOTBLUEKEY"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BKYY ABCDEFGHIJ 3 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Yellow key ---------------------------------------------------------------
|
||||
|
||||
ACTOR KeyYellow : HereticKey 80
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 87
|
||||
Inventory.PickupMessage "$TXT_GOTYELLOWKEY"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CKYY ABCDEFGHI 3 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
|
116
wadsrc/decorate/hexen/flame.txt
Normal file
116
wadsrc/decorate/hexen/flame.txt
Normal file
|
@ -0,0 +1,116 @@
|
|||
// Temp Small Flame --------------------------------------------------------
|
||||
|
||||
ACTOR AFlameSmallTemp 10500
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 96
|
||||
+NOTELEPORT
|
||||
RenderStyle Add
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
FFSM AB 3 Bright
|
||||
FFSM C 2 Bright A_CountdownArg(1)
|
||||
FFSM C 2 Bright
|
||||
FFSM D 3 Bright
|
||||
FFSM E 3 Bright A_CountdownArg(1)
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Temp Large Flame ---------------------------------------------------------
|
||||
|
||||
ACTOR AFlameLargeTemp 10502
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 98
|
||||
+NOTELEPORT
|
||||
RenderStyle Add
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
FFLG A 4 Bright
|
||||
FFLG B 4 Bright A_CountdownArg(1)
|
||||
FFLG C 4 Bright
|
||||
FFLG D 4 Bright A_CountdownArg(1)
|
||||
FFLG E 4 Bright
|
||||
FFLG F 4 Bright A_CountdownArg(1)
|
||||
FFLG G 4 Bright
|
||||
FFLG H 4 Bright A_CountdownArg(1)
|
||||
FFLG I 4 Bright
|
||||
FFLG J 4 Bright A_CountdownArg(1)
|
||||
FFLG K 4 Bright
|
||||
FFLG L 4 Bright A_CountdownArg(1)
|
||||
FFLG M 4 Bright
|
||||
FFLG N 4 Bright A_CountdownArg(1)
|
||||
FFLG O 4 Bright
|
||||
FFLG P 4 Bright A_CountdownArg(1)
|
||||
Goto Spawn+4
|
||||
}
|
||||
}
|
||||
|
||||
// Small Flame --------------------------------------------------------------
|
||||
|
||||
ACTOR FlameSmall : SwitchableDecoration 10501
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 97
|
||||
+NOTELEPORT
|
||||
+INVISIBLE
|
||||
RenderStyle Add
|
||||
States
|
||||
{
|
||||
Active:
|
||||
FFSM A 0 Bright A_PlaySound("Ignite")
|
||||
Spawn:
|
||||
FFSM A 3 Bright
|
||||
FFSM A 3 Bright A_UnHideThing
|
||||
FFSM ABCDE 3 Bright
|
||||
Goto Spawn+2
|
||||
Inactive:
|
||||
FFSM A 2
|
||||
FFSM B 2 A_HideThing
|
||||
FFSM C 200
|
||||
Wait
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR FlameSmall2 : FlameSmall
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 66
|
||||
}
|
||||
|
||||
// Large Flame --------------------------------------------------------------
|
||||
|
||||
ACTOR FlameLarge : SwitchableDecoration 10503
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 99
|
||||
+NOTELEPORT
|
||||
+INVISIBLE
|
||||
RenderStyle Add
|
||||
States
|
||||
{
|
||||
Active:
|
||||
FFLG A 0 Bright A_PlaySound("Ignite")
|
||||
Spawn:
|
||||
FFLG A 2 Bright
|
||||
FFLG A 2 Bright A_UnHideThing
|
||||
FFLG ABCDEFGHIJKLMNOP 4 Bright
|
||||
Goto Spawn+6
|
||||
Inactive:
|
||||
FFLG DCB 2
|
||||
FFLG A 2 A_HideThing
|
||||
FFLG A 200
|
||||
Wait
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR FlameLarge2 : FlameLarge
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 67
|
||||
}
|
||||
|
1
wadsrc/decorate/hexen/hexenarmor.txt
Normal file
1
wadsrc/decorate/hexen/hexenarmor.txt
Normal file
|
@ -0,0 +1 @@
|
|||
//
|
1
wadsrc/decorate/hexen/hexendecorations.txt
Normal file
1
wadsrc/decorate/hexen/hexendecorations.txt
Normal file
|
@ -0,0 +1 @@
|
|||
//
|
1
wadsrc/decorate/hexen/hexenkeys.txt
Normal file
1
wadsrc/decorate/hexen/hexenkeys.txt
Normal file
|
@ -0,0 +1 @@
|
|||
//
|
1
wadsrc/decorate/hexen/hexenspecialdecs.txt
Normal file
1
wadsrc/decorate/hexen/hexenspecialdecs.txt
Normal file
|
@ -0,0 +1 @@
|
|||
//
|
1
wadsrc/decorate/hexen/puzzleitems.txt
Normal file
1
wadsrc/decorate/hexen/puzzleitems.txt
Normal file
|
@ -0,0 +1 @@
|
|||
//
|
1
wadsrc/decorate/hexen/scriptprojectiles.txt
Normal file
1
wadsrc/decorate/hexen/scriptprojectiles.txt
Normal file
|
@ -0,0 +1 @@
|
|||
//
|
1
wadsrc/decorate/hexen/speedboots.txt
Normal file
1
wadsrc/decorate/hexen/speedboots.txt
Normal file
|
@ -0,0 +1 @@
|
|||
//
|
108
wadsrc/decorate/raven/ravenartifacts.txt
Normal file
108
wadsrc/decorate/raven/ravenartifacts.txt
Normal file
|
@ -0,0 +1,108 @@
|
|||
|
||||
// Health -------------------------------------------------------------------
|
||||
|
||||
ACTOR ArtiHealth : HealthPickup 82
|
||||
{
|
||||
Game Raven
|
||||
SpawnID 24
|
||||
Health 25
|
||||
+COUNTITEM
|
||||
+FLOATBOB
|
||||
+INVENTORY.PICKUPFLASH
|
||||
+INVENTORY.FANCYPICKUPSOUND
|
||||
Inventory.Icon ARTIPTN2
|
||||
Inventory.PickupSound "misc/p_pkup"
|
||||
Inventory.PickupMessage "$TXT_ARTIHEALTH"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
PTN2 ABC 4
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Super health -------------------------------------------------------------
|
||||
|
||||
ACTOR ArtiSuperHealth : HealthPickup 32
|
||||
{
|
||||
Game Raven
|
||||
SpawnID 25
|
||||
Health 100
|
||||
+COUNTITEM
|
||||
+FLOATBOB
|
||||
+INVENTORY.PICKUPFLASH
|
||||
+INVENTORY.FANCYPICKUPSOUND
|
||||
Inventory.Icon ARTISPHL
|
||||
Inventory.PickupSound "misc/p_pkup"
|
||||
Inventory.PickupMessage "$TXT_ARTISUPERHEALTH"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SPHL A 350
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Flight -------------------------------------------------------------------
|
||||
|
||||
ACTOR ArtiFly : PowerupGiver 83
|
||||
{
|
||||
Game Raven
|
||||
SpawnID 15
|
||||
+COUNTITEM
|
||||
+FLOATBOB
|
||||
+INVENTORY.PICKUPFLASH
|
||||
+INVENTORY.INTERHUBSTRIP
|
||||
Inventory.RespawnTics 4230
|
||||
Inventory.Icon ARTISOAR
|
||||
Inventory.PickupMessage "$TXT_ARTIFLY"
|
||||
Powerup.Type Flight
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SOAR ABCB 5
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Invulnerability ----------------------------------------------------------
|
||||
|
||||
ACTOR ArtiInvulnerability : PowerupGiver 84
|
||||
{
|
||||
Game Raven
|
||||
SpawnID 133
|
||||
+COUNTITEM
|
||||
+FLOATBOB
|
||||
+INVENTORY.PICKUPFLASH
|
||||
Inventory.RespawnTics 4230
|
||||
Inventory.Icon ARTIINVU
|
||||
Inventory.PickupMessage "$TXT_ARTIINVULNERABILITY"
|
||||
Inventory.PickupMessage Hexen "$TXT_ARTIINVULNERABILITY2"
|
||||
Powerup.Type Invulnerable
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
INVU ABCD 3
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Torch --------------------------------------------------------------------
|
||||
|
||||
ACTOR ArtiTorch : PowerupGiver 33
|
||||
{
|
||||
Game Raven
|
||||
SpawnID 73
|
||||
+COUNTITEM
|
||||
+FLOATBOB
|
||||
+INVENTORY.PICKUPFLASH
|
||||
Inventory.Icon ARTITRCH
|
||||
Inventory.PickupMessage "$TXT_ARTITORCH"
|
||||
Powerup.Type Torch
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
TRCH ABC 3 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
15
wadsrc/decorate/raven/ravenhealth.txt
Normal file
15
wadsrc/decorate/raven/ravenhealth.txt
Normal file
|
@ -0,0 +1,15 @@
|
|||
ACTOR CrystalVial : Health 81
|
||||
{
|
||||
Game Raven
|
||||
SpawnID 23
|
||||
+FLOATBOB
|
||||
Inventory.Amount 10
|
||||
Inventory.PickupMessage "$TXT_ITEMHEALTH"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
PTN1 ABC 3
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
362
wadsrc/decorate/shared/debris.txt
Normal file
362
wadsrc/decorate/shared/debris.txt
Normal file
|
@ -0,0 +1,362 @@
|
|||
|
||||
// Rocks --------------------------------------------------------------------
|
||||
|
||||
ACTOR Rock1
|
||||
{
|
||||
SpawnID 41
|
||||
+NOBLOCKMAP
|
||||
+DROPOFF
|
||||
+MISSILE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ROKK A 20
|
||||
Loop
|
||||
Death:
|
||||
ROKK A 10
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR Rock2
|
||||
{
|
||||
SpawnID 42
|
||||
+NOBLOCKMAP
|
||||
+DROPOFF
|
||||
+MISSILE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ROKK B 20
|
||||
Loop
|
||||
Death:
|
||||
ROKK B 10
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ACTOR Rock3
|
||||
{
|
||||
SpawnID 43
|
||||
+NOBLOCKMAP
|
||||
+DROPOFF
|
||||
+MISSILE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ROKK C 20
|
||||
Loop
|
||||
Death:
|
||||
ROKK C 10
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Dirt --------------------------------------------------------------------
|
||||
|
||||
ACTOR Dirt1
|
||||
{
|
||||
SpawnID 44
|
||||
+NOBLOCKMAP
|
||||
+DROPOFF
|
||||
+MISSILE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ROKK D 20
|
||||
Loop
|
||||
Death:
|
||||
ROKK D 10
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR Dirt2
|
||||
{
|
||||
SpawnID 45
|
||||
+NOBLOCKMAP
|
||||
+DROPOFF
|
||||
+MISSILE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ROKK E 20
|
||||
Loop
|
||||
Death:
|
||||
ROKK E 10
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR Dirt3
|
||||
{
|
||||
SpawnID 46
|
||||
+NOBLOCKMAP
|
||||
+DROPOFF
|
||||
+MISSILE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ROKK F 20
|
||||
Loop
|
||||
Death:
|
||||
ROKK F 10
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR Dirt4
|
||||
{
|
||||
SpawnID 47
|
||||
+NOBLOCKMAP
|
||||
+DROPOFF
|
||||
+MISSILE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ROKK G 20
|
||||
Loop
|
||||
Death:
|
||||
ROKK G 10
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR Dirt5
|
||||
{
|
||||
SpawnID 48
|
||||
+NOBLOCKMAP
|
||||
+DROPOFF
|
||||
+MISSILE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ROKK H 20
|
||||
Loop
|
||||
Death:
|
||||
ROKK H 10
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR Dirt6
|
||||
{
|
||||
SpawnID 49
|
||||
+NOBLOCKMAP
|
||||
+DROPOFF
|
||||
+MISSILE
|
||||
+NOTELEPORT
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ROKK I 20
|
||||
Loop
|
||||
Death:
|
||||
ROKK I 10
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Stained glass ------------------------------------------------------------
|
||||
|
||||
|
||||
ACTOR SGShard1 : GlassShard
|
||||
{
|
||||
SpawnID 54
|
||||
Radius 5
|
||||
Projectile
|
||||
-ACTIVATEMCROSS
|
||||
-ACTIVATEIMPACT
|
||||
BounceFactor 0.3
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SGSA ABCDE 4
|
||||
Loop
|
||||
Death:
|
||||
SGSA E 30
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR SGShard2 : GlassShard
|
||||
{
|
||||
SpawnID 55
|
||||
Radius 5
|
||||
Projectile
|
||||
-ACTIVATEMCROSS
|
||||
-ACTIVATEIMPACT
|
||||
BounceFactor 0.3
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SGSA FGHIJ 4
|
||||
Loop
|
||||
Death:
|
||||
SGSA J 30
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR SGShard3 : GlassShard
|
||||
{
|
||||
SpawnID 56
|
||||
Radius 5
|
||||
Projectile
|
||||
-ACTIVATEMCROSS
|
||||
-ACTIVATEIMPACT
|
||||
BounceFactor 0.3
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SGSA KLMNO 4
|
||||
Loop
|
||||
Death:
|
||||
SGSA O 30
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR SGShard4 : GlassShard
|
||||
{
|
||||
SpawnID 57
|
||||
Radius 5
|
||||
Projectile
|
||||
-ACTIVATEMCROSS
|
||||
-ACTIVATEIMPACT
|
||||
BounceFactor 0.3
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SGSA PQRST 4
|
||||
Loop
|
||||
Death:
|
||||
SGSA T 30
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR SGShard5 : GlassShard
|
||||
{
|
||||
SpawnID 58
|
||||
Radius 5
|
||||
Projectile
|
||||
-ACTIVATEMCROSS
|
||||
-ACTIVATEIMPACT
|
||||
BounceFactor 0.3
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SGSA UVWXY 4
|
||||
Loop
|
||||
Death:
|
||||
SGSA Y 30
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR SGShard6 : GlassShard
|
||||
{
|
||||
SpawnID 59
|
||||
Radius 5
|
||||
Projectile
|
||||
-ACTIVATEMCROSS
|
||||
-ACTIVATEIMPACT
|
||||
BounceFactor 0.3
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SGSB A 4
|
||||
Loop
|
||||
Death:
|
||||
SGSB A 30
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR SGShard7 : GlassShard
|
||||
{
|
||||
SpawnID 60
|
||||
Radius 5
|
||||
Projectile
|
||||
-ACTIVATEMCROSS
|
||||
-ACTIVATEIMPACT
|
||||
BounceFactor 0.3
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SGSB B 4
|
||||
Loop
|
||||
Death:
|
||||
SGSB B 30
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR SGShard8 : GlassShard
|
||||
{
|
||||
SpawnID 61
|
||||
Radius 5
|
||||
Projectile
|
||||
-ACTIVATEMCROSS
|
||||
-ACTIVATEIMPACT
|
||||
BounceFactor 0.3
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SGSB C 4
|
||||
Loop
|
||||
Death:
|
||||
SGSB C 30
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR SGShard9 : GlassShard
|
||||
{
|
||||
SpawnID 62
|
||||
Radius 5
|
||||
Projectile
|
||||
-ACTIVATEMCROSS
|
||||
-ACTIVATEIMPACT
|
||||
BounceFactor 0.3
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SGSB D 4
|
||||
Loop
|
||||
Death:
|
||||
SGSB D 30
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR SGShard0 : GlassShard
|
||||
{
|
||||
SpawnID 63
|
||||
Radius 5
|
||||
Projectile
|
||||
-ACTIVATEMCROSS
|
||||
-ACTIVATEIMPACT
|
||||
BounceFactor 0.3
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SGSB E 4
|
||||
Loop
|
||||
Death:
|
||||
SGSB E 30
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
199
wadsrc/decorate/shared/splashes.txt
Normal file
199
wadsrc/decorate/shared/splashes.txt
Normal file
|
@ -0,0 +1,199 @@
|
|||
|
||||
// Water --------------------------------------------------------------------
|
||||
|
||||
ACTOR WaterSplash
|
||||
{
|
||||
Radius 2
|
||||
Height 4
|
||||
+NOBLOCKMAP
|
||||
+MISSILE
|
||||
+DROPOFF
|
||||
+NOTELEPORT
|
||||
+LOWGRAVITY
|
||||
+CANNOTPUSH
|
||||
+DONTSPLASH
|
||||
+DONTBLAST
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SPSH ABC 8
|
||||
SPSH D 16
|
||||
Stop
|
||||
Death:
|
||||
SPSH D 10
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ACTOR WaterSplashBase
|
||||
{
|
||||
+NOBLOCKMAP
|
||||
+NOCLIP
|
||||
+NOGRAVITY
|
||||
+DONTSPLASH
|
||||
+DONTBLAST
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SPSH EFGHIJK 5
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Lava ---------------------------------------------------------------------
|
||||
|
||||
ACTOR LavaSplash
|
||||
{
|
||||
+NOBLOCKMAP
|
||||
+NOCLIP
|
||||
+NOGRAVITY
|
||||
+DONTSPLASH
|
||||
+DONTBLAST
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
LVAS ABCDEF 5 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR LavaSmoke
|
||||
{
|
||||
+NOBLOCKMAP
|
||||
+NOCLIP
|
||||
+NOGRAVITY
|
||||
+DONTSPLASH
|
||||
RenderStyle Translucent
|
||||
Alpha Default
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
LVAS GHIJK 5 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Sludge -------------------------------------------------------------------
|
||||
|
||||
ACTOR SludgeChunk
|
||||
{
|
||||
Radius 2
|
||||
Height 4
|
||||
+NOBLOCKMAP
|
||||
+MISSILE
|
||||
+DROPOFF
|
||||
+NOTELEPORT
|
||||
+LOWGRAVITY
|
||||
+CANNOTPUSH
|
||||
+DONTSPLASH
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SLDG ABCD 8
|
||||
Stop
|
||||
Death:
|
||||
SLDG D 6
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR SludgeSplash
|
||||
{
|
||||
+NOBLOCKMAP
|
||||
+NOCLIP
|
||||
+NOGRAVITY
|
||||
+DONTSPLASH
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SLDG EFGH 6
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* These next four classes are not used by me anywhere.
|
||||
* They are for people who want to use them in a TERRAIN lump.
|
||||
*/
|
||||
|
||||
// Blood (water with a different sprite) ------------------------------------
|
||||
|
||||
ACTOR BloodSplash
|
||||
{
|
||||
Radius 2
|
||||
Height 4
|
||||
+NOBLOCKMAP
|
||||
+MISSILE
|
||||
+DROPOFF
|
||||
+NOTELEPORT
|
||||
+LOWGRAVITY
|
||||
+CANNOTPUSH
|
||||
+DONTSPLASH
|
||||
+DONTBLAST
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BSPH ABC 8
|
||||
BSPH D 16
|
||||
Stop
|
||||
Death:
|
||||
BSPH D 10
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ACTOR BloodSplashBase
|
||||
{
|
||||
+NOBLOCKMAP
|
||||
+NOCLIP
|
||||
+NOGRAVITY
|
||||
+DONTSPLASH
|
||||
+DONTBLAST
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BSPH EFGHIJK 5
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Slime (sludge with a different sprite) -----------------------------------
|
||||
|
||||
ACTOR SlimeChunk
|
||||
{
|
||||
Radius 2
|
||||
Height 4
|
||||
+NOBLOCKMAP
|
||||
+MISSILE
|
||||
+DROPOFF
|
||||
+NOTELEPORT
|
||||
+LOWGRAVITY
|
||||
+CANNOTPUSH
|
||||
+DONTSPLASH
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SLIM ABCD 8
|
||||
Stop
|
||||
Death:
|
||||
SLIM D 6
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
ACTOR SlimeSplash
|
||||
{
|
||||
+NOBLOCKMAP
|
||||
+NOCLIP
|
||||
+NOGRAVITY
|
||||
+DONTSPLASH
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
SLIM EFGH 6
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
|
@ -241,6 +241,9 @@
|
|||
<File
|
||||
RelativePath=".\decorate\doom\doomarmor.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\doom\doomartifacts.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\doom\doomdecorations.txt">
|
||||
</File>
|
||||
|
@ -248,6 +251,74 @@
|
|||
RelativePath=".\decorate\doom\doomkeys.txt">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Heretic"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath=".\decorate\heretic\hereticarmor.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\heretic\hereticartifacts.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\heretic\hereticdecorations.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\heretic\heretickeys.txt">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Hexen"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath=".\decorate\hexen\flame.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\hexen\hexenarmor.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\hexen\hexendecorations.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\hexen\hexenkeys.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\hexen\hexenspecialdecs.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\hexen\puzzleitems.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\hexen\scriptprojectiles.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\hexen\speedboots.txt">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Strife"
|
||||
Filter="">
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Raven"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath=".\decorate\raven\ravenartifacts.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\raven\ravenhealth.txt">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Shared"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath=".\shared\debris.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decorate\shared\splashes.txt">
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<File
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -178,13 +178,33 @@ strfinfo.txt mapinfo/strife.txt
|
|||
acs/strfhelp.o strfhelp.o
|
||||
|
||||
|
||||
========
|
||||
========
|
||||
# Decorate stuff
|
||||
|
||||
decorate.txt decorate/decorate.txt
|
||||
|
||||
actors/shared/debris.txt decorate/shared/debris.txt
|
||||
actors/shared/splashes.txt decorate/shared/splashes.txt
|
||||
|
||||
actors/doom/doomarmor.txt decorate/doom/doomarmor.txt
|
||||
actors/doom/doomartifacts.txt decorate/doom/doomartifacts.txt
|
||||
actors/doom/doomkeys.txt decorate/doom/doomkeys.txt
|
||||
actors/doom/doomdecorations.txt decorate/doom/doomdecorations.txt
|
||||
|
||||
actors/raven/ravenartifacts.txt decorate/raven/ravenartifacts.txt
|
||||
actors/raven/ravenhealth.txt decorate/raven/ravenhealth.txt
|
||||
|
||||
actors/heretic/hereticarmor.txt decorate/heretic/hereticarmor.txt
|
||||
actors/heretic/hereticartifacts.txt decorate/heretic/hereticartifacts.txt
|
||||
actors/heretic/heretickeys.txt decorate/heretic/heretickeys.txt
|
||||
actors/heretic/hereticdecorations.txt decorate/heretic/hereticdecorations.txt
|
||||
|
||||
actors/hexen/flame.txt decorate/hexen/flame.txt
|
||||
actors/hexen/hexenarmor.txt decorate/hexen/hexenarmor.txt
|
||||
actors/hexen/hexendecorations.txt decorate/hexen/hexendecorations.txt
|
||||
actors/hexen/hexenkeys.txt decorate/hexen/hexenkeys.txt
|
||||
actors/hexen/hexenspecialdecs.txt decorate/hexen/hexenspecialdecs.txt
|
||||
actors/hexen/puzzleitems.txt decorate/hexen/puzzleitems.txt
|
||||
actors/hexen/scriptprojectiles.txt decorate/hexen/scriptprojectiles.txt
|
||||
actors/hexen/speedboots.txt decorate/hexen/speedboots.txt
|
||||
|
|
75
zdoom.vcproj
75
zdoom.vcproj
|
@ -2708,21 +2708,6 @@
|
|||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\g_shared\a_splashes.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\g_shared\a_waterzone.cpp">
|
||||
<FileConfiguration
|
||||
|
@ -3193,36 +3178,6 @@
|
|||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\g_raven\a_ravenartifacts.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\g_raven\a_ravenhealth.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\g_raven\ravenshared.h">
|
||||
</File>
|
||||
|
@ -3290,21 +3245,6 @@
|
|||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\g_heretic\a_hereticarmor.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\g_heretic\a_hereticartifacts.cpp">
|
||||
<FileConfiguration
|
||||
|
@ -3756,21 +3696,6 @@
|
|||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\g_hexen\a_flame.cpp">
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="" /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" " /I /fmod/api/inc" "/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\g_hexen\a_flechette.cpp">
|
||||
<FileConfiguration
|
||||
|
|
Loading…
Reference in a new issue