mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-12-11 04:51:13 +00:00
- Updated thingdef_specials.h for the new thingdef_specials.gperf file.
- Created a new MorphedMonster class that Chicken and Pig now derive from. This class automatically takes care of unmorphing the monster when its time is up. - Made PlayerClass and MonsterClass properties of EggFX. You can override these in a subclass to create new kinds of morpher projectiles. Along with that, MorphWeapon is a new property of PlayerPawn that controls what type of weapon you have available while morphed ("None" means you have no weapons). - Changed morphed monsters to record the time when they want to unmorph, not the time left until they unmorph. This simplifies calling P_UpdateMorhpedMonster() because you don't need to pass it a tic count. - Added an optional second parameter to A_SpawnDebris and an optional fifth parameter to A_SpawnItem that both do the same thing: If you set it to 1, then the spawned actor will be assigned the same translation table as the actor that called the function. - Moved the blood colorization in P_SpawnBlood() ahead of the SetDamage() call so that the blood color will available to the states of the blood actor. - Extended the puke command so that giving it a negative script number will act like ACS_ExecuteAlways and always execute the script. (Ugh. Why did I use's Raven's cheat code to name this command?) SVN r296 (trunk)
This commit is contained in:
parent
c16cff7f47
commit
a6d656b108
17 changed files with 630 additions and 658 deletions
|
@ -1,4 +1,26 @@
|
||||||
August 16, 2006
|
August 16, 2006
|
||||||
|
- Updated thingdef_specials.h for the new thingdef_specials.gperf file.
|
||||||
|
- Created a new MorphedMonster class that Chicken and Pig now derive from.
|
||||||
|
This class automatically takes care of unmorphing the monster when its
|
||||||
|
time is up.
|
||||||
|
- Made PlayerClass and MonsterClass properties of EggFX. You can override
|
||||||
|
these in a subclass to create new kinds of morpher projectiles. Along with
|
||||||
|
that, MorphWeapon is a new property of PlayerPawn that controls what type
|
||||||
|
of weapon you have available while morphed ("None" means you have no
|
||||||
|
weapons).
|
||||||
|
- Changed morphed monsters to record the time when they want to unmorph, not
|
||||||
|
the time left until they unmorph. This simplifies calling
|
||||||
|
P_UpdateMorhpedMonster() because you don't need to pass it a tic count.
|
||||||
|
- Added an optional second parameter to A_SpawnDebris and an optional
|
||||||
|
fifth parameter to A_SpawnItem that both do the same thing: If you set it
|
||||||
|
to 1, then the spawned actor will be assigned the same translation table
|
||||||
|
as the actor that called the function.
|
||||||
|
- Moved the blood colorization in P_SpawnBlood() ahead of the SetDamage()
|
||||||
|
call so that the blood color will available to the states of the blood
|
||||||
|
actor.
|
||||||
|
- Extended the puke command so that giving it a negative script number will
|
||||||
|
act like ACS_ExecuteAlways and always execute the script. (Ugh. Why did I
|
||||||
|
use's Raven's cheat code to name this command?)
|
||||||
- Added action special support to the thingdef expression evaluator. Now you
|
- Added action special support to the thingdef expression evaluator. Now you
|
||||||
can use them like normal functions, which is probably most useful for
|
can use them like normal functions, which is probably most useful for
|
||||||
ACS_ExecuteWithResult.
|
ACS_ExecuteWithResult.
|
||||||
|
|
|
@ -428,6 +428,11 @@ CCMD (puke)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int script = atoi (argv[1]);
|
int script = atoi (argv[1]);
|
||||||
|
|
||||||
|
if (script == 0)
|
||||||
|
{ // Script 0 is reserved for Strife support. It is not pukable.
|
||||||
|
return;
|
||||||
|
}
|
||||||
int arg[3] = { 0, 0, 0 };
|
int arg[3] = { 0, 0, 0 };
|
||||||
int argn = MIN (argc - 2, 3), i;
|
int argn = MIN (argc - 2, 3), i;
|
||||||
|
|
||||||
|
@ -436,8 +441,16 @@ CCMD (puke)
|
||||||
arg[i] = atoi (argv[2+i]);
|
arg[i] = atoi (argv[2+i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (script > 0)
|
||||||
|
{
|
||||||
Net_WriteByte (DEM_RUNSCRIPT);
|
Net_WriteByte (DEM_RUNSCRIPT);
|
||||||
Net_WriteWord (script);
|
Net_WriteWord (script);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Net_WriteByte (DEM_RUNSCRIPT2);
|
||||||
|
Net_WriteWord (-script);
|
||||||
|
}
|
||||||
Net_WriteByte (argn);
|
Net_WriteByte (argn);
|
||||||
for (i = 0; i < argn; ++i)
|
for (i = 0; i < argn; ++i)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2242,6 +2242,7 @@ void Net_DoCommand (int type, byte **stream, int player)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DEM_RUNSCRIPT:
|
case DEM_RUNSCRIPT:
|
||||||
|
case DEM_RUNSCRIPT2:
|
||||||
{
|
{
|
||||||
int snum = ReadWord (stream);
|
int snum = ReadWord (stream);
|
||||||
int argn = ReadByte (stream);
|
int argn = ReadByte (stream);
|
||||||
|
@ -2252,7 +2253,7 @@ void Net_DoCommand (int type, byte **stream, int player)
|
||||||
arg[i] = ReadLong (stream);
|
arg[i] = ReadLong (stream);
|
||||||
}
|
}
|
||||||
P_StartScript (players[player].mo, NULL, snum, level.mapname, false,
|
P_StartScript (players[player].mo, NULL, snum, level.mapname, false,
|
||||||
arg[0], arg[1], arg[2], false, false, true);
|
arg[0], arg[1], arg[2], type == DEM_RUNSCRIPT2, false, true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -2345,6 +2346,7 @@ void Net_SkipCommand (int type, byte **stream)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DEM_RUNSCRIPT:
|
case DEM_RUNSCRIPT:
|
||||||
|
case DEM_RUNSCRIPT2:
|
||||||
skip = 3 + *(*stream + 2) * 4;
|
skip = 3 + *(*stream + 2) * 4;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -110,6 +110,7 @@ public:
|
||||||
fixed_t SideMove1, SideMove2;
|
fixed_t SideMove1, SideMove2;
|
||||||
int ScoreIcon;
|
int ScoreIcon;
|
||||||
int SpawnMask;
|
int SpawnMask;
|
||||||
|
int MorphWeapon; // actually a name
|
||||||
|
|
||||||
int GetMaxHealth() const;
|
int GetMaxHealth() const;
|
||||||
};
|
};
|
||||||
|
|
|
@ -138,6 +138,7 @@ enum EDemoCommand
|
||||||
DEM_SUMMONFRIEND, // 37 String: Thing to fabricate
|
DEM_SUMMONFRIEND, // 37 String: Thing to fabricate
|
||||||
DEM_SPRAY, // 38 String: The decal to spray
|
DEM_SPRAY, // 38 String: The decal to spray
|
||||||
DEM_CROUCH, // 39
|
DEM_CROUCH, // 39
|
||||||
|
DEM_RUNSCRIPT2 // 40 Same as DEM_RUNSCRIPT, but always executes
|
||||||
};
|
};
|
||||||
|
|
||||||
// The following are implemented by cht_DoCheat in m_cheat.cpp
|
// The following are implemented by cht_DoCheat in m_cheat.cpp
|
||||||
|
|
|
@ -24,9 +24,6 @@ void A_BeakAttackPL1 (AActor *);
|
||||||
void A_BeakAttackPL2 (AActor *);
|
void A_BeakAttackPL2 (AActor *);
|
||||||
|
|
||||||
void A_Feathers (AActor *);
|
void A_Feathers (AActor *);
|
||||||
void A_ChicLook (AActor *);
|
|
||||||
void A_ChicChase (AActor *);
|
|
||||||
void A_ChicPain (AActor *);
|
|
||||||
void A_ChicAttack (AActor *);
|
void A_ChicAttack (AActor *);
|
||||||
|
|
||||||
void P_UpdateBeak (AActor *);
|
void P_UpdateBeak (AActor *);
|
||||||
|
@ -109,7 +106,6 @@ class AChickenPlayer : public APlayerPawn
|
||||||
DECLARE_ACTOR (AChickenPlayer, APlayerPawn)
|
DECLARE_ACTOR (AChickenPlayer, APlayerPawn)
|
||||||
public:
|
public:
|
||||||
void MorphPlayerThink ();
|
void MorphPlayerThink ();
|
||||||
void ActivateMorphWeapon ();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
FState AChickenPlayer::States[] =
|
FState AChickenPlayer::States[] =
|
||||||
|
@ -166,6 +162,7 @@ IMPLEMENT_ACTOR (AChickenPlayer, Heretic, -1, 0)
|
||||||
PROP_PlayerPawn_ForwardMove2 (FRACUNIT * 2500 / 2048)
|
PROP_PlayerPawn_ForwardMove2 (FRACUNIT * 2500 / 2048)
|
||||||
PROP_PlayerPawn_SideMove1 (FRACUNIT * 2500 / 2048)
|
PROP_PlayerPawn_SideMove1 (FRACUNIT * 2500 / 2048)
|
||||||
PROP_PlayerPawn_SideMove2 (FRACUNIT * 2500 / 2048)
|
PROP_PlayerPawn_SideMove2 (FRACUNIT * 2500 / 2048)
|
||||||
|
PROP_PlayerPawn_MorphWeapon ("Beak")
|
||||||
|
|
||||||
PROP_PainSound ("chicken/pain")
|
PROP_PainSound ("chicken/pain")
|
||||||
PROP_DeathSound ("chicken/death")
|
PROP_DeathSound ("chicken/death")
|
||||||
|
@ -199,49 +196,26 @@ void AChickenPlayer::MorphPlayerThink ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AChickenPlayer::ActivateMorphWeapon ()
|
|
||||||
{
|
|
||||||
player->PendingWeapon = WP_NOCHANGE;
|
|
||||||
player->psprites[ps_weapon].sy = WEAPONTOP;
|
|
||||||
player->ReadyWeapon = player->mo->FindInventory<ABeak> ();
|
|
||||||
if (player->ReadyWeapon == NULL)
|
|
||||||
{
|
|
||||||
player->ReadyWeapon = static_cast<AWeapon *>(player->mo->GiveInventoryType (RUNTIME_CLASS(ABeak)));
|
|
||||||
}
|
|
||||||
if (player->ReadyWeapon != NULL)
|
|
||||||
{
|
|
||||||
P_SetPsprite (player, ps_weapon, player->ReadyWeapon->GetReadyState());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
P_SetPsprite (player, ps_weapon, NULL);
|
|
||||||
}
|
|
||||||
P_SetPsprite (player, ps_flash, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Chicken (non-player) -----------------------------------------------------
|
// Chicken (non-player) -----------------------------------------------------
|
||||||
|
|
||||||
class AChicken : public AActor
|
class AChicken : public AMorphedMonster
|
||||||
{
|
{
|
||||||
DECLARE_ACTOR (AChicken, AActor)
|
DECLARE_ACTOR (AChicken, AMorphedMonster)
|
||||||
public:
|
|
||||||
void Destroy ();
|
|
||||||
void Die (AActor *source, AActor *inflictor);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
FState AChicken::States[] =
|
FState AChicken::States[] =
|
||||||
{
|
{
|
||||||
#define S_CHICKEN_LOOK 0
|
#define S_CHICKEN_LOOK 0
|
||||||
S_NORMAL (CHKN, 'A', 10, A_ChicLook , &States[S_CHICKEN_LOOK+1]),
|
S_NORMAL (CHKN, 'A', 10, A_Look , &States[S_CHICKEN_LOOK+1]),
|
||||||
S_NORMAL (CHKN, 'B', 10, A_ChicLook , &States[S_CHICKEN_LOOK+0]),
|
S_NORMAL (CHKN, 'B', 10, A_Look , &States[S_CHICKEN_LOOK+0]),
|
||||||
|
|
||||||
#define S_CHICKEN_WALK (S_CHICKEN_LOOK+2)
|
#define S_CHICKEN_WALK (S_CHICKEN_LOOK+2)
|
||||||
S_NORMAL (CHKN, 'A', 3, A_ChicChase , &States[S_CHICKEN_WALK+1]),
|
S_NORMAL (CHKN, 'A', 3, A_Chase , &States[S_CHICKEN_WALK+1]),
|
||||||
S_NORMAL (CHKN, 'B', 3, A_ChicChase , &States[S_CHICKEN_WALK+0]),
|
S_NORMAL (CHKN, 'B', 3, A_Chase , &States[S_CHICKEN_WALK+0]),
|
||||||
|
|
||||||
#define S_CHICKEN_PAIN (S_CHICKEN_WALK+2)
|
#define S_CHICKEN_PAIN (S_CHICKEN_WALK+2)
|
||||||
S_NORMAL (CHKN, 'D', 5, A_Feathers , &States[S_CHICKEN_PAIN+1]),
|
S_NORMAL (CHKN, 'D', 5, A_Feathers , &States[S_CHICKEN_PAIN+1]),
|
||||||
S_NORMAL (CHKN, 'C', 5, A_ChicPain , &States[S_CHICKEN_WALK+0]),
|
S_NORMAL (CHKN, 'C', 5, A_Pain , &States[S_CHICKEN_WALK+0]),
|
||||||
|
|
||||||
#define S_CHICKEN_ATK (S_CHICKEN_PAIN+2)
|
#define S_CHICKEN_ATK (S_CHICKEN_PAIN+2)
|
||||||
S_NORMAL (CHKN, 'A', 8, A_FaceTarget , &States[S_CHICKEN_ATK+1]),
|
S_NORMAL (CHKN, 'A', 8, A_FaceTarget , &States[S_CHICKEN_ATK+1]),
|
||||||
|
@ -283,24 +257,6 @@ IMPLEMENT_ACTOR (AChicken, Heretic, -1, 122)
|
||||||
PROP_Obituary("$OB_CHICKEN")
|
PROP_Obituary("$OB_CHICKEN")
|
||||||
END_DEFAULTS
|
END_DEFAULTS
|
||||||
|
|
||||||
void AChicken::Destroy ()
|
|
||||||
{
|
|
||||||
if (tracer != NULL)
|
|
||||||
{
|
|
||||||
tracer->Destroy ();
|
|
||||||
}
|
|
||||||
Super::Destroy ();
|
|
||||||
}
|
|
||||||
|
|
||||||
void AChicken::Die (AActor *source, AActor *inflictor)
|
|
||||||
{
|
|
||||||
Super::Die (source, inflictor);
|
|
||||||
if (tracer != NULL && (tracer->flags & MF_UNMORPHED))
|
|
||||||
{
|
|
||||||
tracer->Die (source, inflictor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Feather ------------------------------------------------------------------
|
// Feather ------------------------------------------------------------------
|
||||||
|
|
||||||
class AFeather : public AActor
|
class AFeather : public AActor
|
||||||
|
@ -343,10 +299,6 @@ END_DEFAULTS
|
||||||
|
|
||||||
void A_ChicAttack (AActor *actor)
|
void A_ChicAttack (AActor *actor)
|
||||||
{
|
{
|
||||||
if (P_UpdateMorphedMonster(actor, 18))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!actor->target)
|
if (!actor->target)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
@ -359,51 +311,6 @@ void A_ChicAttack (AActor *actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// PROC A_ChicLook
|
|
||||||
//
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void A_ChicLook (AActor *actor)
|
|
||||||
{
|
|
||||||
if (P_UpdateMorphedMonster (actor, 10))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
A_Look (actor);
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// PROC A_ChicChase
|
|
||||||
//
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void A_ChicChase (AActor *actor)
|
|
||||||
{
|
|
||||||
if (P_UpdateMorphedMonster (actor, 3))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
A_Chase (actor);
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// PROC A_ChicPain
|
|
||||||
//
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void A_ChicPain (AActor *actor)
|
|
||||||
{
|
|
||||||
if (P_UpdateMorphedMonster (actor, 10))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
S_SoundID (actor, CHAN_BODY, actor->PainSound, 1, ATTN_NORM);
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// PROC A_Feathers
|
// PROC A_Feathers
|
||||||
|
|
|
@ -22,8 +22,6 @@ extern void AdjustPlayerAngle (AActor *);
|
||||||
void A_SnoutAttack (AActor *actor);
|
void A_SnoutAttack (AActor *actor);
|
||||||
|
|
||||||
void A_PigPain (AActor *);
|
void A_PigPain (AActor *);
|
||||||
void A_PigLook (AActor *);
|
|
||||||
void A_PigChase (AActor *);
|
|
||||||
void A_PigAttack (AActor *);
|
void A_PigAttack (AActor *);
|
||||||
|
|
||||||
// Snout puff ---------------------------------------------------------------
|
// Snout puff ---------------------------------------------------------------
|
||||||
|
@ -91,7 +89,6 @@ class APigPlayer : public APlayerPawn
|
||||||
DECLARE_ACTOR (APigPlayer, APlayerPawn)
|
DECLARE_ACTOR (APigPlayer, APlayerPawn)
|
||||||
public:
|
public:
|
||||||
void MorphPlayerThink ();
|
void MorphPlayerThink ();
|
||||||
void ActivateMorphWeapon ();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
FState APigPlayer::States[] =
|
FState APigPlayer::States[] =
|
||||||
|
@ -154,6 +151,7 @@ IMPLEMENT_ACTOR (APigPlayer, Hexen, -1, 0)
|
||||||
PROP_PlayerPawn_ForwardMove2 (FRACUNIT * 0x31 / 0x32)
|
PROP_PlayerPawn_ForwardMove2 (FRACUNIT * 0x31 / 0x32)
|
||||||
PROP_PlayerPawn_SideMove1 (FRACUNIT * 0x17 / 0x18)
|
PROP_PlayerPawn_SideMove1 (FRACUNIT * 0x17 / 0x18)
|
||||||
PROP_PlayerPawn_SideMove2 (FRACUNIT * 0x27 / 0x28)
|
PROP_PlayerPawn_SideMove2 (FRACUNIT * 0x27 / 0x28)
|
||||||
|
PROP_PlayerPawn_MorphWeapon ("Snout")
|
||||||
|
|
||||||
PROP_PainSound ("PigPain")
|
PROP_PainSound ("PigPain")
|
||||||
PROP_DeathSound ("PigDeath")
|
PROP_DeathSound ("PigDeath")
|
||||||
|
@ -177,46 +175,23 @@ void APigPlayer::MorphPlayerThink ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void APigPlayer::ActivateMorphWeapon ()
|
|
||||||
{
|
|
||||||
player->PendingWeapon = WP_NOCHANGE;
|
|
||||||
player->psprites[ps_weapon].sy = WEAPONTOP;
|
|
||||||
player->ReadyWeapon = player->mo->FindInventory<ASnout> ();
|
|
||||||
if (player->ReadyWeapon == NULL)
|
|
||||||
{
|
|
||||||
player->ReadyWeapon = static_cast<AWeapon *>(player->mo->GiveInventoryType (RUNTIME_CLASS(ASnout)));
|
|
||||||
}
|
|
||||||
if (player->ReadyWeapon != NULL)
|
|
||||||
{
|
|
||||||
P_SetPsprite (player, ps_weapon, player->ReadyWeapon->GetReadyState());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
P_SetPsprite (player, ps_weapon, NULL);
|
|
||||||
}
|
|
||||||
P_SetPsprite (player, ps_flash, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Pig (non-player) ---------------------------------------------------------
|
// Pig (non-player) ---------------------------------------------------------
|
||||||
|
|
||||||
class APig : public AActor
|
class APig : public AMorphedMonster
|
||||||
{
|
{
|
||||||
DECLARE_ACTOR (APig, AActor)
|
DECLARE_ACTOR (APig, AMorphedMonster)
|
||||||
public:
|
|
||||||
void Destroy ();
|
|
||||||
void Die (AActor *source, AActor *inflictor);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
FState APig::States[] =
|
FState APig::States[] =
|
||||||
{
|
{
|
||||||
#define S_PIG_LOOK1 0
|
#define S_PIG_LOOK1 0
|
||||||
S_NORMAL (PIGY, 'B', 10, A_PigLook , &States[S_PIG_LOOK1]),
|
S_NORMAL (PIGY, 'B', 10, A_Look , &States[S_PIG_LOOK1]),
|
||||||
|
|
||||||
#define S_PIG_WALK1 (S_PIG_LOOK1+1)
|
#define S_PIG_WALK1 (S_PIG_LOOK1+1)
|
||||||
S_NORMAL (PIGY, 'A', 3, A_PigChase , &States[S_PIG_WALK1+1]),
|
S_NORMAL (PIGY, 'A', 3, A_Chase , &States[S_PIG_WALK1+1]),
|
||||||
S_NORMAL (PIGY, 'B', 3, A_PigChase , &States[S_PIG_WALK1+2]),
|
S_NORMAL (PIGY, 'B', 3, A_Chase , &States[S_PIG_WALK1+2]),
|
||||||
S_NORMAL (PIGY, 'C', 3, A_PigChase , &States[S_PIG_WALK1+3]),
|
S_NORMAL (PIGY, 'C', 3, A_Chase , &States[S_PIG_WALK1+3]),
|
||||||
S_NORMAL (PIGY, 'D', 3, A_PigChase , &States[S_PIG_WALK1]),
|
S_NORMAL (PIGY, 'D', 3, A_Chase , &States[S_PIG_WALK1]),
|
||||||
|
|
||||||
#define S_PIG_PAIN (S_PIG_WALK1+4)
|
#define S_PIG_PAIN (S_PIG_WALK1+4)
|
||||||
S_NORMAL (PIGY, 'D', 4, A_PigPain , &States[S_PIG_WALK1]),
|
S_NORMAL (PIGY, 'D', 4, A_PigPain , &States[S_PIG_WALK1]),
|
||||||
|
@ -265,24 +240,6 @@ IMPLEMENT_ACTOR (APig, Hexen, -1, 0)
|
||||||
PROP_ActiveSound ("PigActive1")
|
PROP_ActiveSound ("PigActive1")
|
||||||
END_DEFAULTS
|
END_DEFAULTS
|
||||||
|
|
||||||
void APig::Destroy ()
|
|
||||||
{
|
|
||||||
if (tracer != NULL)
|
|
||||||
{
|
|
||||||
tracer->Destroy ();
|
|
||||||
}
|
|
||||||
Super::Destroy ();
|
|
||||||
}
|
|
||||||
|
|
||||||
void APig::Die (AActor *source, AActor *inflictor)
|
|
||||||
{
|
|
||||||
Super::Die (source, inflictor);
|
|
||||||
if (tracer != NULL && (tracer->flags & MF_UNMORPHED))
|
|
||||||
{
|
|
||||||
tracer->Die (source, inflictor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
// A_SnoutAttack
|
// A_SnoutAttack
|
||||||
|
@ -317,36 +274,6 @@ void A_SnoutAttack (AActor *actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// PROC A_PigLook
|
|
||||||
//
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void A_PigLook (AActor *actor)
|
|
||||||
{
|
|
||||||
if (P_UpdateMorphedMonster (actor, 10))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
A_Look (actor);
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// PROC A_PigChase
|
|
||||||
//
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void A_PigChase (AActor *actor)
|
|
||||||
{
|
|
||||||
if (P_UpdateMorphedMonster (actor, 3))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
A_Chase(actor);
|
|
||||||
}
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
// A_PigAttack
|
// A_PigAttack
|
||||||
|
@ -355,10 +282,6 @@ void A_PigChase (AActor *actor)
|
||||||
|
|
||||||
void A_PigAttack (AActor *actor)
|
void A_PigAttack (AActor *actor)
|
||||||
{
|
{
|
||||||
if (P_UpdateMorphedMonster (actor, 18))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!actor->target)
|
if (!actor->target)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "s_sound.h"
|
#include "s_sound.h"
|
||||||
#include "m_random.h"
|
#include "m_random.h"
|
||||||
#include "a_sharedglobal.h"
|
#include "a_sharedglobal.h"
|
||||||
|
#include "ravenshared.h"
|
||||||
|
|
||||||
#define MORPHTICS (40*TICRATE)
|
#define MORPHTICS (40*TICRATE)
|
||||||
|
|
||||||
|
@ -196,25 +197,26 @@ bool P_UndoPlayerMorph (player_t *player, bool force)
|
||||||
|
|
||||||
bool P_MorphMonster (AActor *actor, const PClass *spawntype)
|
bool P_MorphMonster (AActor *actor, const PClass *spawntype)
|
||||||
{
|
{
|
||||||
AActor *morphed;
|
AMorphedMonster *morphed;
|
||||||
|
|
||||||
if (actor->player ||
|
if (actor->player || spawntype == NULL ||
|
||||||
actor->flags3 & MF3_DONTMORPH ||
|
actor->flags3 & MF3_DONTMORPH ||
|
||||||
!(actor->flags3 & MF3_ISMONSTER))
|
!(actor->flags3 & MF3_ISMONSTER) ||
|
||||||
|
!spawntype->IsDescendantOf (RUNTIME_CLASS(AMorphedMonster)))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
morphed = Spawn (spawntype, actor->x, actor->y, actor->z, NO_REPLACE);
|
morphed = static_cast<AMorphedMonster *>(Spawn (spawntype, actor->x, actor->y, actor->z, NO_REPLACE));
|
||||||
DObject::PointerSubstitution (actor, morphed);
|
DObject::PointerSubstitution (actor, morphed);
|
||||||
morphed->tid = actor->tid;
|
morphed->tid = actor->tid;
|
||||||
morphed->angle = actor->angle;
|
morphed->angle = actor->angle;
|
||||||
morphed->tracer = actor;
|
morphed->UnmorphedMe = actor;
|
||||||
morphed->alpha = actor->alpha;
|
morphed->alpha = actor->alpha;
|
||||||
morphed->RenderStyle = actor->RenderStyle;
|
morphed->RenderStyle = actor->RenderStyle;
|
||||||
|
|
||||||
morphed->special1 = MORPHTICS + pr_morphmonst();
|
morphed->UnmorphTime = level.time + MORPHTICS + pr_morphmonst();
|
||||||
morphed->special2 = actor->flags & ~MF_JUSTHIT;
|
morphed->FlagsSave = actor->flags & ~MF_JUSTHIT;
|
||||||
//morphed->special = actor->special;
|
//morphed->special = actor->special;
|
||||||
//memcpy (morphed->args, actor->args, sizeof(actor->args));
|
//memcpy (morphed->args, actor->args, sizeof(actor->args));
|
||||||
morphed->CopyFriendliness (actor, true);
|
morphed->CopyFriendliness (actor, true);
|
||||||
|
@ -222,7 +224,7 @@ bool P_MorphMonster (AActor *actor, const PClass *spawntype)
|
||||||
morphed->flags3 |= actor->flags3 & MF3_GHOST;
|
morphed->flags3 |= actor->flags3 & MF3_GHOST;
|
||||||
if (actor->renderflags & RF_INVISIBLE)
|
if (actor->renderflags & RF_INVISIBLE)
|
||||||
{
|
{
|
||||||
morphed->special2 |= MF_JUSTHIT;
|
morphed->FlagsSave |= MF_JUSTHIT;
|
||||||
}
|
}
|
||||||
morphed->AddToHash ();
|
morphed->AddToHash ();
|
||||||
actor->RemoveFromHash ();
|
actor->RemoveFromHash ();
|
||||||
|
@ -242,18 +244,18 @@ bool P_MorphMonster (AActor *actor, const PClass *spawntype)
|
||||||
//
|
//
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
bool P_UpdateMorphedMonster (AActor *beast, int tics)
|
bool P_UpdateMorphedMonster (AMorphedMonster *beast)
|
||||||
{
|
{
|
||||||
AActor *actor;
|
AActor *actor;
|
||||||
|
|
||||||
beast->special1 -= tics;
|
if (beast->UnmorphTime == 0 ||
|
||||||
if (beast->special1 > 0 ||
|
beast->UnmorphTime > level.time ||
|
||||||
beast->tracer == NULL ||
|
beast->UnmorphedMe == NULL ||
|
||||||
beast->flags3 & MF3_STAYMORPHED)
|
beast->flags3 & MF3_STAYMORPHED)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
actor = beast->tracer;
|
actor = beast->UnmorphedMe;
|
||||||
actor->SetOrigin (beast->x, beast->y, beast->z);
|
actor->SetOrigin (beast->x, beast->y, beast->z);
|
||||||
actor->flags |= MF_SOLID;
|
actor->flags |= MF_SOLID;
|
||||||
beast->flags &= ~MF_SOLID;
|
beast->flags &= ~MF_SOLID;
|
||||||
|
@ -261,18 +263,18 @@ bool P_UpdateMorphedMonster (AActor *beast, int tics)
|
||||||
{ // Didn't fit
|
{ // Didn't fit
|
||||||
actor->flags &= ~MF_SOLID;
|
actor->flags &= ~MF_SOLID;
|
||||||
beast->flags |= MF_SOLID;
|
beast->flags |= MF_SOLID;
|
||||||
beast->special1 = 5*TICRATE; // Next try in 5 seconds
|
beast->UnmorphTime = level.time + 5*TICRATE; // Next try in 5 seconds
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
actor->angle = beast->angle;
|
actor->angle = beast->angle;
|
||||||
actor->target = beast->target;
|
actor->target = beast->target;
|
||||||
actor->FriendPlayer = beast->FriendPlayer;
|
actor->FriendPlayer = beast->FriendPlayer;
|
||||||
actor->flags = beast->special2 & ~MF_JUSTHIT;
|
actor->flags = beast->FlagsSave & ~MF_JUSTHIT;
|
||||||
actor->flags = (actor->flags & ~(MF_FRIENDLY|MF_SHADOW)) | (beast->flags & (MF_FRIENDLY|MF_SHADOW));
|
actor->flags = (actor->flags & ~(MF_FRIENDLY|MF_SHADOW)) | (beast->flags & (MF_FRIENDLY|MF_SHADOW));
|
||||||
actor->flags3 = (actor->flags3 & ~(MF3_NOSIGHTCHECK|MF3_HUNTPLAYERS|MF3_GHOST))
|
actor->flags3 = (actor->flags3 & ~(MF3_NOSIGHTCHECK|MF3_HUNTPLAYERS|MF3_GHOST))
|
||||||
| (beast->flags3 & (MF3_NOSIGHTCHECK|MF3_HUNTPLAYERS|MF3_GHOST));
|
| (beast->flags3 & (MF3_NOSIGHTCHECK|MF3_HUNTPLAYERS|MF3_GHOST));
|
||||||
actor->flags4 = (actor->flags4 & ~MF4_NOHATEPLAYERS) | (beast->flags4 & MF4_NOHATEPLAYERS);
|
actor->flags4 = (actor->flags4 & ~MF4_NOHATEPLAYERS) | (beast->flags4 & MF4_NOHATEPLAYERS);
|
||||||
if (!(beast->special2 & MF_JUSTHIT))
|
if (!(beast->FlagsSave & MF_JUSTHIT))
|
||||||
actor->renderflags &= ~RF_INVISIBLE;
|
actor->renderflags &= ~RF_INVISIBLE;
|
||||||
actor->health = actor->GetDefault()->health;
|
actor->health = actor->GetDefault()->health;
|
||||||
actor->momx = beast->momx;
|
actor->momx = beast->momx;
|
||||||
|
@ -282,7 +284,7 @@ bool P_UpdateMorphedMonster (AActor *beast, int tics)
|
||||||
actor->special = beast->special;
|
actor->special = beast->special;
|
||||||
memcpy (actor->args, beast->args, sizeof(actor->args));
|
memcpy (actor->args, beast->args, sizeof(actor->args));
|
||||||
actor->AddToHash ();
|
actor->AddToHash ();
|
||||||
beast->tracer = NULL;
|
beast->UnmorphedMe = NULL;
|
||||||
DObject::PointerSubstitution (beast, actor);
|
DObject::PointerSubstitution (beast, actor);
|
||||||
beast->Destroy ();
|
beast->Destroy ();
|
||||||
Spawn<ATeleportFog> (beast->x, beast->y, beast->z + TELEFOGHEIGHT, ALLOW_REPLACE);
|
Spawn<ATeleportFog> (beast->x, beast->y, beast->z + TELEFOGHEIGHT, ALLOW_REPLACE);
|
||||||
|
@ -291,13 +293,6 @@ bool P_UpdateMorphedMonster (AActor *beast, int tics)
|
||||||
|
|
||||||
// Egg ----------------------------------------------------------------------
|
// Egg ----------------------------------------------------------------------
|
||||||
|
|
||||||
class AEggFX : public AActor
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (AEggFX, AActor)
|
|
||||||
public:
|
|
||||||
int DoSpecialDamage (AActor *target, int damage);
|
|
||||||
};
|
|
||||||
|
|
||||||
FState AEggFX::States[] =
|
FState AEggFX::States[] =
|
||||||
{
|
{
|
||||||
#define S_EGGFX 0
|
#define S_EGGFX 0
|
||||||
|
@ -324,21 +319,30 @@ IMPLEMENT_ACTOR (AEggFX, Heretic, -1, 40)
|
||||||
|
|
||||||
PROP_SpawnState (S_EGGFX)
|
PROP_SpawnState (S_EGGFX)
|
||||||
PROP_DeathState (S_EGGFXI1)
|
PROP_DeathState (S_EGGFXI1)
|
||||||
|
|
||||||
|
PROP_EggFX_PlayerClass ("ChickenPlayer")
|
||||||
|
PROP_EggFX_MonsterClass ("Chicken")
|
||||||
END_DEFAULTS
|
END_DEFAULTS
|
||||||
|
|
||||||
int AEggFX::DoSpecialDamage (AActor *target, int damage)
|
int AEggFX::DoSpecialDamage (AActor *target, int damage)
|
||||||
{
|
{
|
||||||
if (target->player)
|
if (target->player)
|
||||||
{
|
{
|
||||||
P_MorphPlayer (target->player, PClass::FindClass (NAME_ChickenPlayer));
|
P_MorphPlayer (target->player, PClass::FindClass (ENamedName(PlayerClass)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
P_MorphMonster (target, PClass::FindClass (NAME_Chicken));
|
P_MorphMonster (target, PClass::FindClass (ENamedName(MonsterClass)));
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AEggFX::Serialize (FArchive &arc)
|
||||||
|
{
|
||||||
|
Super::Serialize (arc);
|
||||||
|
arc << PlayerClass << MonsterClass;
|
||||||
|
}
|
||||||
|
|
||||||
// Morph Ovum ----------------------------------------------------------------
|
// Morph Ovum ----------------------------------------------------------------
|
||||||
|
|
||||||
class AArtiEgg : public AInventory
|
class AArtiEgg : public AInventory
|
||||||
|
@ -379,11 +383,9 @@ bool AArtiEgg::Use (bool pickup)
|
||||||
|
|
||||||
// Pork missile --------------------------------------------------------------
|
// Pork missile --------------------------------------------------------------
|
||||||
|
|
||||||
class APorkFX : public AActor
|
class APorkFX : public AEggFX
|
||||||
{
|
{
|
||||||
DECLARE_ACTOR (APorkFX, AActor)
|
DECLARE_ACTOR (APorkFX, AEggFX)
|
||||||
public:
|
|
||||||
int DoSpecialDamage (AActor *target, int damage);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
FState APorkFX::States[] =
|
FState APorkFX::States[] =
|
||||||
|
@ -412,20 +414,10 @@ IMPLEMENT_ACTOR (APorkFX, Hexen, -1, 40)
|
||||||
|
|
||||||
PROP_SpawnState (S_EGGFX)
|
PROP_SpawnState (S_EGGFX)
|
||||||
PROP_DeathState (S_EGGFXI2)
|
PROP_DeathState (S_EGGFXI2)
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
int APorkFX::DoSpecialDamage (AActor *target, int damage)
|
PROP_EggFX_PlayerClass ("PigPlayer")
|
||||||
{
|
PROP_EggFX_MonsterClass ("Pig")
|
||||||
if (target->player)
|
END_DEFAULTS
|
||||||
{
|
|
||||||
P_MorphPlayer (target->player, PClass::FindClass (NAME_PigPlayer));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
P_MorphMonster (target, PClass::FindClass (NAME_Pig));
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Porkalator ---------------------------------------------------------------
|
// Porkalator ---------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -469,3 +461,49 @@ bool AArtiPork::Use (bool pickup)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Morphed Monster (you must subclass this to do something useful) ---------
|
||||||
|
|
||||||
|
IMPLEMENT_POINTY_CLASS (AMorphedMonster)
|
||||||
|
DECLARE_POINTER (UnmorphedMe)
|
||||||
|
END_POINTERS
|
||||||
|
|
||||||
|
BEGIN_STATELESS_DEFAULTS (AMorphedMonster, Any, -1, 0)
|
||||||
|
PROP_Flags (MF_SOLID|MF_SHOOTABLE)
|
||||||
|
PROP_Flags2 (MF2_MCROSS|MF2_WINDTHRUST|MF2_FLOORCLIP|MF2_PASSMOBJ|MF2_PUSHWALL)
|
||||||
|
PROP_Flags3 (MF3_DONTMORPH|MF3_ISMONSTER)
|
||||||
|
END_DEFAULTS
|
||||||
|
|
||||||
|
void AMorphedMonster::Serialize (FArchive &arc)
|
||||||
|
{
|
||||||
|
Super::Serialize (arc);
|
||||||
|
arc << UnmorphedMe << UnmorphTime << FlagsSave;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AMorphedMonster::Destroy ()
|
||||||
|
{
|
||||||
|
if (UnmorphedMe != NULL)
|
||||||
|
{
|
||||||
|
UnmorphedMe->Destroy ();
|
||||||
|
}
|
||||||
|
Super::Destroy ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AMorphedMonster::Die (AActor *source, AActor *inflictor)
|
||||||
|
{
|
||||||
|
// Dead things don't unmorph
|
||||||
|
source->flags3 |= MF3_STAYMORPHED;
|
||||||
|
Super::Die (source, inflictor);
|
||||||
|
if (UnmorphedMe != NULL && (UnmorphedMe->flags & MF_UNMORPHED))
|
||||||
|
{
|
||||||
|
UnmorphedMe->health = health;
|
||||||
|
UnmorphedMe->Die (source, inflictor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void AMorphedMonster::Tick ()
|
||||||
|
{
|
||||||
|
if (!P_UpdateMorphedMonster (this))
|
||||||
|
{
|
||||||
|
Super::Tick ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ bool P_MorphPlayer (player_s *player);
|
||||||
bool P_UndoPlayerMorph (player_s *player, bool force);
|
bool P_UndoPlayerMorph (player_s *player, bool force);
|
||||||
|
|
||||||
bool P_MorphMonster (AActor *actor, const PClass *morphClass);
|
bool P_MorphMonster (AActor *actor, const PClass *morphClass);
|
||||||
bool P_UpdateMorphedMonster (AActor *actor, int tics);
|
bool P_UpdateMorphedMonster (AActor *actor);
|
||||||
|
|
||||||
class AMinotaur : public AActor
|
class AMinotaur : public AActor
|
||||||
{
|
{
|
||||||
|
@ -36,4 +36,29 @@ public:
|
||||||
void Serialize (FArchive &arc);
|
void Serialize (FArchive &arc);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class AEggFX : public AActor
|
||||||
|
{
|
||||||
|
DECLARE_ACTOR (AEggFX, AActor)
|
||||||
|
public:
|
||||||
|
int DoSpecialDamage (AActor *target, int damage);
|
||||||
|
void Serialize (FArchive &arc);
|
||||||
|
|
||||||
|
int PlayerClass, MonsterClass; // actually names
|
||||||
|
};
|
||||||
|
|
||||||
|
class AMorphedMonster : public AActor
|
||||||
|
{
|
||||||
|
DECLARE_ACTOR (AMorphedMonster, AActor)
|
||||||
|
HAS_OBJECT_POINTERS
|
||||||
|
public:
|
||||||
|
void Tick ();
|
||||||
|
void Serialize (FArchive &arc);
|
||||||
|
void Die (AActor *source, AActor *inflictor);
|
||||||
|
void Destroy ();
|
||||||
|
|
||||||
|
AActor *UnmorphedMe;
|
||||||
|
int UnmorphTime;
|
||||||
|
DWORD FlagsSave;
|
||||||
|
};
|
||||||
|
|
||||||
#endif //__RAVENSHARED_H__
|
#endif //__RAVENSHARED_H__
|
||||||
|
|
|
@ -245,7 +245,10 @@ enum
|
||||||
ADEF_PlayerPawn_DisplayName,
|
ADEF_PlayerPawn_DisplayName,
|
||||||
ADEF_PlayerPawn_SoundClass,
|
ADEF_PlayerPawn_SoundClass,
|
||||||
ADEF_PlayerPawn_ScoreIcon,
|
ADEF_PlayerPawn_ScoreIcon,
|
||||||
ADEF_LastString = ADEF_PlayerPawn_ScoreIcon,
|
ADEF_PlayerPawn_MorphWeapon,
|
||||||
|
ADEF_EggFX_PlayerClass,
|
||||||
|
ADEF_EggFX_MonsterClass,
|
||||||
|
ADEF_LastString = ADEF_EggFX_MonsterClass,
|
||||||
|
|
||||||
// The rest of the properties use their type field (upper 2 bits)
|
// The rest of the properties use their type field (upper 2 bits)
|
||||||
ADEF_XScale,
|
ADEF_XScale,
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
#include "w_wad.h"
|
#include "w_wad.h"
|
||||||
#include "a_strifeglobal.h"
|
#include "a_strifeglobal.h"
|
||||||
#include "thingdef.h"
|
#include "thingdef.h"
|
||||||
|
#include "ravenshared.h"
|
||||||
|
|
||||||
void FActorInfo::BuildDefaults ()
|
void FActorInfo::BuildDefaults ()
|
||||||
{
|
{
|
||||||
|
@ -129,6 +130,7 @@ static void ApplyActorDefault (int defnum, const char *datastr, int dataint)
|
||||||
ASigil *const sigil = (ASigil *)sgDefaults;
|
ASigil *const sigil = (ASigil *)sgDefaults;
|
||||||
AAmmo *const ammo = (AAmmo *)sgDefaults;
|
AAmmo *const ammo = (AAmmo *)sgDefaults;
|
||||||
APlayerPawn *const player = (APlayerPawn *)sgDefaults;
|
APlayerPawn *const player = (APlayerPawn *)sgDefaults;
|
||||||
|
AEggFX *const eggfx = (AEggFX *)sgDefaults;
|
||||||
|
|
||||||
switch (defnum)
|
switch (defnum)
|
||||||
{
|
{
|
||||||
|
@ -325,6 +327,7 @@ static void ApplyActorDefault (int defnum, const char *datastr, int dataint)
|
||||||
case ADEF_PlayerPawn_ColorRange: sgClass->Meta.SetMetaInt (APMETA_ColorRange, dataint); break;
|
case ADEF_PlayerPawn_ColorRange: sgClass->Meta.SetMetaInt (APMETA_ColorRange, dataint); break;
|
||||||
case ADEF_PlayerPawn_CrouchSprite: player->crouchsprite = GetSpriteIndex(datastr); break;
|
case ADEF_PlayerPawn_CrouchSprite: player->crouchsprite = GetSpriteIndex(datastr); break;
|
||||||
case ADEF_PlayerPawn_SpawnMask: player->SpawnMask = dataint; break;
|
case ADEF_PlayerPawn_SpawnMask: player->SpawnMask = dataint; break;
|
||||||
|
case ADEF_PlayerPawn_MorphWeapon: player->MorphWeapon = FName(datastr); break;
|
||||||
|
|
||||||
case ADEF_PlayerPawn_DisplayName:
|
case ADEF_PlayerPawn_DisplayName:
|
||||||
sgClass->Meta.SetMetaString (APMETA_DisplayName, datastr);
|
sgClass->Meta.SetMetaString (APMETA_DisplayName, datastr);
|
||||||
|
@ -340,6 +343,9 @@ static void ApplyActorDefault (int defnum, const char *datastr, int dataint)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ADEF_EggFX_PlayerClass: eggfx->PlayerClass = FName(datastr); break;
|
||||||
|
case ADEF_EggFX_MonsterClass: eggfx->MonsterClass = FName(datastr); break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -215,6 +215,9 @@ public:
|
||||||
#define PROP_PlayerPawn_DisplayName(x) ADD_STRING_PROP(ADEF_PlayerPawn_DisplayName,"\25",x)
|
#define PROP_PlayerPawn_DisplayName(x) ADD_STRING_PROP(ADEF_PlayerPawn_DisplayName,"\25",x)
|
||||||
#define PROP_PlayerPawn_SoundClass(x) ADD_STRING_PROP(ADEF_PlayerPawn_SoundClass,"\26",x)
|
#define PROP_PlayerPawn_SoundClass(x) ADD_STRING_PROP(ADEF_PlayerPawn_SoundClass,"\26",x)
|
||||||
#define PROP_PlayerPawn_ScoreIcon(x) ADD_STRING_PROP(ADEF_PlayerPawn_ScoreIcon,"\27",x)
|
#define PROP_PlayerPawn_ScoreIcon(x) ADD_STRING_PROP(ADEF_PlayerPawn_ScoreIcon,"\27",x)
|
||||||
|
#define PROP_PlayerPawn_MorphWeapon(x) ADD_STRING_PROP(ADEF_PlayerPawn_MorphWeapon,"\30",x)
|
||||||
|
#define PROP_EggFX_PlayerClass(x) ADD_STRING_PROP(ADEF_EggFX_PlayerClass,"\31",x)
|
||||||
|
#define PROP_EggFX_MonsterClass(x) ADD_STRING_PROP(ADEF_EggFX_MonsterClass,"\32",x)
|
||||||
|
|
||||||
#define PROP_XScale(x) ADD_BYTE_PROP(ADEF_XScale,x)
|
#define PROP_XScale(x) ADD_BYTE_PROP(ADEF_XScale,x)
|
||||||
#define PROP_YScale(x) ADD_BYTE_PROP(ADEF_YScale,x)
|
#define PROP_YScale(x) ADD_BYTE_PROP(ADEF_YScale,x)
|
||||||
|
|
|
@ -3942,10 +3942,12 @@ void P_SpawnBlood (fixed_t x, fixed_t y, fixed_t z, angle_t dir, int damage, AAc
|
||||||
if (th->tics < 1)
|
if (th->tics < 1)
|
||||||
th->tics = 1;
|
th->tics = 1;
|
||||||
}
|
}
|
||||||
th->SetDamage (damage);
|
|
||||||
|
|
||||||
// colorize the blood!
|
// colorize the blood!
|
||||||
if (bloodcolor!=0) th->Translation = TRANSLATION(TRANSLATION_Blood, bloodcolor.a);
|
if (bloodcolor != 0)
|
||||||
|
{
|
||||||
|
th->Translation = TRANSLATION(TRANSLATION_Blood, bloodcolor.a);
|
||||||
|
}
|
||||||
|
th->SetDamage (damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cl_bloodtype >= 1)
|
if (cl_bloodtype >= 1)
|
||||||
|
|
|
@ -382,6 +382,7 @@ BEGIN_STATELESS_DEFAULTS (APlayerPawn, Any, -1, 0)
|
||||||
PROP_PlayerPawn_SideMove2 (FRACUNIT)
|
PROP_PlayerPawn_SideMove2 (FRACUNIT)
|
||||||
PROP_PlayerPawn_ColorRange (0, 0)
|
PROP_PlayerPawn_ColorRange (0, 0)
|
||||||
PROP_PlayerPawn_SoundClass ("player")
|
PROP_PlayerPawn_SoundClass ("player")
|
||||||
|
PROP_PlayerPawn_MorphWeapon ("None")
|
||||||
END_DEFAULTS
|
END_DEFAULTS
|
||||||
|
|
||||||
IMPLEMENT_ABSTRACT_ACTOR (APlayerChunk)
|
IMPLEMENT_ABSTRACT_ACTOR (APlayerChunk)
|
||||||
|
@ -399,7 +400,8 @@ void APlayerPawn::Serialize (FArchive &arc)
|
||||||
<< SideMove2
|
<< SideMove2
|
||||||
<< ScoreIcon
|
<< ScoreIcon
|
||||||
<< InvFirst
|
<< InvFirst
|
||||||
<< InvSel;
|
<< InvSel
|
||||||
|
<< MorphWeapon;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
@ -911,6 +913,32 @@ void APlayerPawn::MorphPlayerThink ()
|
||||||
|
|
||||||
void APlayerPawn::ActivateMorphWeapon ()
|
void APlayerPawn::ActivateMorphWeapon ()
|
||||||
{
|
{
|
||||||
|
const PClass *morphweapon = PClass::FindClass (ENamedName(MorphWeapon));
|
||||||
|
player->PendingWeapon = WP_NOCHANGE;
|
||||||
|
player->psprites[ps_weapon].sy = WEAPONTOP;
|
||||||
|
|
||||||
|
if (morphweapon == NULL || !morphweapon->IsDescendantOf (RUNTIME_CLASS(AWeapon)))
|
||||||
|
{ // No weapon at all while morphed!
|
||||||
|
player->ReadyWeapon = NULL;
|
||||||
|
P_SetPsprite (player, ps_weapon, NULL);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player->ReadyWeapon = static_cast<AWeapon *>(player->mo->FindInventory (morphweapon));
|
||||||
|
if (player->ReadyWeapon == NULL)
|
||||||
|
{
|
||||||
|
player->ReadyWeapon = static_cast<AWeapon *>(player->mo->GiveInventoryType (morphweapon));
|
||||||
|
}
|
||||||
|
if (player->ReadyWeapon != NULL)
|
||||||
|
{
|
||||||
|
P_SetPsprite (player, ps_weapon, player->ReadyWeapon->GetReadyState());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
P_SetPsprite (player, ps_weapon, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
P_SetPsprite (player, ps_flash, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
|
@ -67,6 +67,7 @@
|
||||||
#include "p_conversation.h"
|
#include "p_conversation.h"
|
||||||
#include "v_text.h"
|
#include "v_text.h"
|
||||||
#include "thingdef.h"
|
#include "thingdef.h"
|
||||||
|
#include "ravenshared.h"
|
||||||
|
|
||||||
|
|
||||||
const PClass *QuestItemClasses[31];
|
const PClass *QuestItemClasses[31];
|
||||||
|
@ -508,6 +509,19 @@ ACTOR(RadiusThrust)
|
||||||
|
|
||||||
#include "d_dehackedactions.h"
|
#include "d_dehackedactions.h"
|
||||||
|
|
||||||
|
/* What do the parameter letters mean?
|
||||||
|
*
|
||||||
|
* If the letter is uppercase, it is required. Lowercase letters are optional.
|
||||||
|
* i = integer
|
||||||
|
* f = fixed point
|
||||||
|
* s = sound name
|
||||||
|
* m = actor name
|
||||||
|
* t = string
|
||||||
|
* l = jump label
|
||||||
|
* c = color
|
||||||
|
* x = expression
|
||||||
|
* y = expression
|
||||||
|
*/
|
||||||
#define FUNC(name, parm) { #name, name, parm },
|
#define FUNC(name, parm) { #name, name, parm },
|
||||||
// Declare the code pointer table
|
// Declare the code pointer table
|
||||||
AFuncDesc AFTable[]=
|
AFuncDesc AFTable[]=
|
||||||
|
@ -664,14 +678,14 @@ AFuncDesc AFTable[]=
|
||||||
FUNC(A_JumpIfInventory, "MXL" )
|
FUNC(A_JumpIfInventory, "MXL" )
|
||||||
FUNC(A_GiveInventory, "Mx" )
|
FUNC(A_GiveInventory, "Mx" )
|
||||||
FUNC(A_TakeInventory, "Mx" )
|
FUNC(A_TakeInventory, "Mx" )
|
||||||
FUNC(A_SpawnItem, "Mxxy" )
|
FUNC(A_SpawnItem, "Mxxyx" )
|
||||||
FUNC(A_ThrowGrenade, "Mxxxy" )
|
FUNC(A_ThrowGrenade, "Mxxxy" )
|
||||||
FUNC(A_SelectWeapon, "M")
|
FUNC(A_SelectWeapon, "M")
|
||||||
FUNC(A_Print, "T")
|
FUNC(A_Print, "T")
|
||||||
FUNC(A_SetTranslucent, "Xx")
|
FUNC(A_SetTranslucent, "Xx")
|
||||||
FUNC(A_FadeIn, "x")
|
FUNC(A_FadeIn, "x")
|
||||||
FUNC(A_FadeOut, "x")
|
FUNC(A_FadeOut, "x")
|
||||||
FUNC(A_SpawnDebris, "M")
|
FUNC(A_SpawnDebris, "Mx")
|
||||||
FUNC(A_CheckSight, "L")
|
FUNC(A_CheckSight, "L")
|
||||||
FUNC(A_ExtChase, "XXyx")
|
FUNC(A_ExtChase, "XXyx")
|
||||||
FUNC(A_DropInventory, "M")
|
FUNC(A_DropInventory, "M")
|
||||||
|
@ -1710,7 +1724,7 @@ do_stop:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'C':
|
case 'C':
|
||||||
case 'c':
|
case 'c': // Color
|
||||||
SC_MustGetString ();
|
SC_MustGetString ();
|
||||||
if (SC_Compare("none"))
|
if (SC_Compare("none"))
|
||||||
{
|
{
|
||||||
|
@ -3620,6 +3634,15 @@ static void PlayerMaxHealth (APlayerPawn *defaults, Baggage &bag)
|
||||||
defaults->MaxHealth = sc_Number;
|
defaults->MaxHealth = sc_Number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
static void PlayerMorphWeapon (APlayerPawn *defaults, Baggage &bag)
|
||||||
|
{
|
||||||
|
SC_MustGetString ();
|
||||||
|
defaults->MorphWeapon = FName(sc_String);
|
||||||
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
@ -3675,6 +3698,24 @@ static void PlayerStartItem (APlayerPawn *defaults, Baggage &bag)
|
||||||
bag.DropItemList = di;
|
bag.DropItemList = di;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
static void EggFXMonsterClass (AEggFX *defaults, Baggage &bag)
|
||||||
|
{
|
||||||
|
SC_MustGetString ();
|
||||||
|
defaults->MonsterClass = FName(sc_String);
|
||||||
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
static void EggFXPlayerClass (AEggFX *defaults, Baggage &bag)
|
||||||
|
{
|
||||||
|
SC_MustGetString ();
|
||||||
|
defaults->PlayerClass = FName(sc_String);
|
||||||
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
@ -3739,6 +3780,8 @@ static const ActorProps props[] =
|
||||||
{ "disintegrate", ActorDisintegrateState, RUNTIME_CLASS(AActor) },
|
{ "disintegrate", ActorDisintegrateState, RUNTIME_CLASS(AActor) },
|
||||||
{ "donthurtshooter", ActorDontHurtShooter, RUNTIME_CLASS(AActor) },
|
{ "donthurtshooter", ActorDontHurtShooter, RUNTIME_CLASS(AActor) },
|
||||||
{ "dropitem", ActorDropItem, RUNTIME_CLASS(AActor) },
|
{ "dropitem", ActorDropItem, RUNTIME_CLASS(AActor) },
|
||||||
|
{ "eggfx.playerclass", (apf)EggFXPlayerClass, RUNTIME_CLASS(AEggFX) },
|
||||||
|
{ "eggfx.monsterclass", (apf)EggFXMonsterClass, RUNTIME_CLASS(AEggFX) },
|
||||||
{ "explosiondamage", ActorExplosionDamage, RUNTIME_CLASS(AActor) },
|
{ "explosiondamage", ActorExplosionDamage, RUNTIME_CLASS(AActor) },
|
||||||
{ "explosionradius", ActorExplosionRadius, RUNTIME_CLASS(AActor) },
|
{ "explosionradius", ActorExplosionRadius, RUNTIME_CLASS(AActor) },
|
||||||
{ "fastspeed", ActorFastSpeed, RUNTIME_CLASS(AActor) },
|
{ "fastspeed", ActorFastSpeed, RUNTIME_CLASS(AActor) },
|
||||||
|
@ -3782,6 +3825,7 @@ static const ActorProps props[] =
|
||||||
{ "player.forwardmove", (apf)PlayerForwardMove, RUNTIME_CLASS(APlayerPawn) },
|
{ "player.forwardmove", (apf)PlayerForwardMove, RUNTIME_CLASS(APlayerPawn) },
|
||||||
{ "player.jumpz", (apf)PlayerJumpZ, RUNTIME_CLASS(APlayerPawn) },
|
{ "player.jumpz", (apf)PlayerJumpZ, RUNTIME_CLASS(APlayerPawn) },
|
||||||
{ "player.maxhealth", (apf)PlayerMaxHealth, RUNTIME_CLASS(APlayerPawn) },
|
{ "player.maxhealth", (apf)PlayerMaxHealth, RUNTIME_CLASS(APlayerPawn) },
|
||||||
|
{ "player.morphweapon", (apf)PlayerMorphWeapon, RUNTIME_CLASS(APlayerPawn) },
|
||||||
{ "player.scoreicon", (apf)PlayerScoreIcon, RUNTIME_CLASS(APlayerPawn) },
|
{ "player.scoreicon", (apf)PlayerScoreIcon, RUNTIME_CLASS(APlayerPawn) },
|
||||||
{ "player.sidemove", (apf)PlayerSideMove, RUNTIME_CLASS(APlayerPawn) },
|
{ "player.sidemove", (apf)PlayerSideMove, RUNTIME_CLASS(APlayerPawn) },
|
||||||
{ "player.soundclass", (apf)PlayerSoundClass, RUNTIME_CLASS(APlayerPawn) },
|
{ "player.soundclass", (apf)PlayerSoundClass, RUNTIME_CLASS(APlayerPawn) },
|
||||||
|
|
|
@ -1118,13 +1118,14 @@ void A_TakeFromTarget(AActor * self)
|
||||||
void A_SpawnItem(AActor * self)
|
void A_SpawnItem(AActor * self)
|
||||||
{
|
{
|
||||||
FState * CallingState;
|
FState * CallingState;
|
||||||
int index=CheckIndex(4, &CallingState);
|
int index=CheckIndex(5, &CallingState);
|
||||||
if (index<0) return;
|
if (index<0) return;
|
||||||
|
|
||||||
const PClass * missile= PClass::FindClass((ENamedName)StateParameters[index]);
|
const PClass * missile= PClass::FindClass((ENamedName)StateParameters[index]);
|
||||||
fixed_t distance = fixed_t(EvalExpressionF (StateParameters[index+1], self) * FRACUNIT);
|
fixed_t distance = fixed_t(EvalExpressionF (StateParameters[index+1], self) * FRACUNIT);
|
||||||
fixed_t zheight = fixed_t(EvalExpressionF (StateParameters[index+2], self) * FRACUNIT);
|
fixed_t zheight = fixed_t(EvalExpressionF (StateParameters[index+2], self) * FRACUNIT);
|
||||||
bool useammo = EvalExpressionN (StateParameters[index+3], self);
|
bool useammo = EvalExpressionN (StateParameters[index+3], self);
|
||||||
|
BOOL transfer_translation = EvalExpressionI (StateParameters[index+4], self);
|
||||||
|
|
||||||
if (!missile)
|
if (!missile)
|
||||||
{
|
{
|
||||||
|
@ -1156,6 +1157,11 @@ void A_SpawnItem(AActor * self)
|
||||||
{
|
{
|
||||||
AActor * originator = self;
|
AActor * originator = self;
|
||||||
|
|
||||||
|
if (transfer_translation)
|
||||||
|
{
|
||||||
|
mo->Translation = self->Translation;
|
||||||
|
}
|
||||||
|
|
||||||
mo->angle=self->angle;
|
mo->angle=self->angle;
|
||||||
while (originator && isMissile(originator)) originator = originator->target;
|
while (originator && isMissile(originator)) originator = originator->target;
|
||||||
|
|
||||||
|
@ -1407,9 +1413,11 @@ void A_SpawnDebris(AActor * self)
|
||||||
AActor * mo;
|
AActor * mo;
|
||||||
const PClass * debris;
|
const PClass * debris;
|
||||||
|
|
||||||
int index=CheckIndex(1, NULL);
|
int index=CheckIndex(2, NULL);
|
||||||
if (index<0) return;
|
if (index<0) return;
|
||||||
|
|
||||||
|
BOOL transfer_translation = EvalExpressionI (StateParameters[index+1], self);
|
||||||
|
|
||||||
debris = PClass::FindClass((ENamedName)StateParameters[index]);
|
debris = PClass::FindClass((ENamedName)StateParameters[index]);
|
||||||
if (debris == NULL) return;
|
if (debris == NULL) return;
|
||||||
|
|
||||||
|
@ -1418,6 +1426,10 @@ void A_SpawnDebris(AActor * self)
|
||||||
mo = Spawn(debris, self->x+((pr_spawndebris()-128)<<12),
|
mo = Spawn(debris, self->x+((pr_spawndebris()-128)<<12),
|
||||||
self->y+((pr_spawndebris()-128)<<12),
|
self->y+((pr_spawndebris()-128)<<12),
|
||||||
self->z+(pr_spawndebris()*self->height/256), ALLOW_REPLACE);
|
self->z+(pr_spawndebris()*self->height/256), ALLOW_REPLACE);
|
||||||
|
if (mo && transfer_translation)
|
||||||
|
{
|
||||||
|
mo->Translation = self->Translation;
|
||||||
|
}
|
||||||
if (mo && i < mo->GetClass()->ActorInfo->NumOwnedStates)
|
if (mo && i < mo->GetClass()->ActorInfo->NumOwnedStates)
|
||||||
{
|
{
|
||||||
mo->SetState (mo->GetClass()->ActorInfo->OwnedStates + i);
|
mo->SetState (mo->GetClass()->ActorInfo->OwnedStates + i);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ANSI-C code produced by gperf version 3.0.1 */
|
/* ANSI-C code produced by gperf version 3.0.1 */
|
||||||
/* Command-line: gperf -tE -LANSI-C -Hspecialhash -Nis_special -C --null-strings thingdef_specials.gperf */
|
/* Command-line: gperf -m10000 -tE -LANSI-C -Hspecialhash -Nis_special -C --null-strings thingdef_specials.gperf */
|
||||||
/* Computed positions: -k'1,7,9,14,17' */
|
/* Computed positions: -k'1,7,9,14,17' */
|
||||||
|
|
||||||
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
#line 10 "thingdef_specials.gperf"
|
#line 10 "thingdef_specials.gperf"
|
||||||
struct ACSspecials { const char *name; unsigned char Special; unsigned char MinArgs; unsigned char MaxArgs; };
|
struct ACSspecials { const char *name; unsigned char Special; unsigned char MinArgs; unsigned char MaxArgs; };
|
||||||
/* maximum key range = 567, duplicates = 0 */
|
/* maximum key range = 326, duplicates = 0 */
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
__inline
|
__inline
|
||||||
|
@ -45,32 +45,32 @@ specialhash (register const char *str, register unsigned int len)
|
||||||
{
|
{
|
||||||
static const unsigned short asso_values[] =
|
static const unsigned short asso_values[] =
|
||||||
{
|
{
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 60, 580, 0, 105, 20,
|
356, 356, 356, 356, 356, 53, 356, 20, 85, 15,
|
||||||
200, 10, 140, 0, 30, 155, 75, 0, 5, 165,
|
107, 13, 88, 10, 68, 95, 10, 10, 13, 136,
|
||||||
85, 70, 65, 580, 0, 5, 5, 65, 30, 10,
|
72, 84, 44, 356, 10, 11, 12, 28, 53, 69,
|
||||||
5, 30, 580, 580, 580, 580, 580, 580, 580, 580,
|
10, 75, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
|
356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
|
||||||
580, 580, 580, 580, 580, 580
|
356, 356, 356, 356, 356, 356
|
||||||
};
|
};
|
||||||
register int hval = len;
|
register int hval = len;
|
||||||
|
|
||||||
|
@ -115,11 +115,11 @@ is_special (register const char *str, register unsigned int len)
|
||||||
{
|
{
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
TOTAL_KEYWORDS = 166,
|
TOTAL_KEYWORDS = 169,
|
||||||
MIN_WORD_LENGTH = 8,
|
MIN_WORD_LENGTH = 8,
|
||||||
MAX_WORD_LENGTH = 29,
|
MAX_WORD_LENGTH = 29,
|
||||||
MIN_HASH_VALUE = 13,
|
MIN_HASH_VALUE = 30,
|
||||||
MAX_HASH_VALUE = 579
|
MAX_HASH_VALUE = 355
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct ACSspecials wordlist[] =
|
static const struct ACSspecials wordlist[] =
|
||||||
|
@ -127,487 +127,429 @@ is_special (register const char *str, register unsigned int len)
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
{(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
{(char*)0}, {(char*)0},
|
||||||
#line 76 "thingdef_specials.gperf"
|
#line 76 "thingdef_specials.gperf"
|
||||||
{"teleport",70,1},
|
{"teleport",70,1},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
#line 93 "thingdef_specials.gperf"
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
{"teleportgroup",77,5},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 88 "thingdef_specials.gperf"
|
|
||||||
{"thing_spawn",135,3,4},
|
|
||||||
#line 49 "thingdef_specials.gperf"
|
|
||||||
{"light_strobe",116,5},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 13 "thingdef_specials.gperf"
|
|
||||||
{"acs_suspend",81,2},
|
|
||||||
{(char*)0},
|
|
||||||
#line 145 "thingdef_specials.gperf"
|
|
||||||
{"thing_setgoal",229,3},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 160 "thingdef_specials.gperf"
|
|
||||||
{"exit_secret",244,1},
|
|
||||||
#line 107 "thingdef_specials.gperf"
|
|
||||||
{"line_alignceiling",183,2},
|
|
||||||
{(char*)0},
|
|
||||||
#line 82 "thingdef_specials.gperf"
|
|
||||||
{"thing_activate",130,1},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 126 "thingdef_specials.gperf"
|
|
||||||
{"generic_lift",203,5},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
{(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0},
|
||||||
|
#line 93 "thingdef_specials.gperf"
|
||||||
|
{"teleportgroup",77,5},
|
||||||
|
#line 49 "thingdef_specials.gperf"
|
||||||
|
{"light_strobe",116,5},
|
||||||
|
#line 160 "thingdef_specials.gperf"
|
||||||
|
{"exit_secret",244,1},
|
||||||
|
#line 145 "thingdef_specials.gperf"
|
||||||
|
{"thing_setgoal",229,3},
|
||||||
|
{(char*)0},
|
||||||
|
#line 126 "thingdef_specials.gperf"
|
||||||
|
{"generic_lift",203,5},
|
||||||
|
{(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
#line 88 "thingdef_specials.gperf"
|
||||||
|
{"thing_spawn",135,3,4},
|
||||||
|
#line 13 "thingdef_specials.gperf"
|
||||||
|
{"acs_suspend",81,2},
|
||||||
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
{(char*)0},
|
||||||
#line 127 "thingdef_specials.gperf"
|
#line 127 "thingdef_specials.gperf"
|
||||||
{"generic_stairs",204,5},
|
{"generic_stairs",204,5},
|
||||||
#line 105 "thingdef_specials.gperf"
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
{"thing_settranslation",180,2},
|
|
||||||
{(char*)0},
|
|
||||||
#line 99 "thingdef_specials.gperf"
|
|
||||||
{"thing_spawnfacing",139,2,4},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 102 "thingdef_specials.gperf"
|
|
||||||
{"thing_hate",177,2,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 91 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_waggle",38,5},
|
|
||||||
#line 170 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_lowertofloor",254,2},
|
|
||||||
{(char*)0},
|
|
||||||
#line 168 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_raisetonearest",252,2},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 16 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_crushandraise",42,3},
|
|
||||||
#line 119 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_crushandraisea",196,4},
|
|
||||||
{(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0},
|
||||||
#line 128 "thingdef_specials.gperf"
|
#line 128 "thingdef_specials.gperf"
|
||||||
{"generic_crusher",205,5},
|
{"generic_crusher",205,5},
|
||||||
#line 18 "thingdef_specials.gperf"
|
{(char*)0}, {(char*)0},
|
||||||
{"ceiling_lowerandcrush",43,3},
|
#line 82 "thingdef_specials.gperf"
|
||||||
|
{"thing_activate",130,1},
|
||||||
|
#line 12 "thingdef_specials.gperf"
|
||||||
|
{"acs_execute",80,1,5},
|
||||||
|
{(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
#line 107 "thingdef_specials.gperf"
|
||||||
|
{"line_alignceiling",183,2},
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
#line 120 "thingdef_specials.gperf"
|
#line 105 "thingdef_specials.gperf"
|
||||||
{"ceiling_crushandraisesilenta",197,4},
|
{"thing_settranslation",180,2},
|
||||||
|
{(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
#line 168 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_raisetonearest",252,2},
|
||||||
|
#line 170 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_lowertofloor",254,2},
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
|
#line 99 "thingdef_specials.gperf"
|
||||||
|
{"thing_spawnfacing",139,2,4},
|
||||||
#line 21 "thingdef_specials.gperf"
|
#line 21 "thingdef_specials.gperf"
|
||||||
{"ceiling_crushraiseandstay",45,3},
|
{"ceiling_crushraiseandstay",45,3},
|
||||||
#line 118 "thingdef_specials.gperf"
|
#line 118 "thingdef_specials.gperf"
|
||||||
{"ceiling_crushraiseandstaya",195,4},
|
{"ceiling_crushraiseandstaya",195,4},
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 171 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_crushraiseandstaysila",255,4},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 15 "thingdef_specials.gperf"
|
|
||||||
{"acs_lockedexecute",83,5},
|
|
||||||
#line 135 "thingdef_specials.gperf"
|
#line 135 "thingdef_specials.gperf"
|
||||||
{"teleport_line",215,2},
|
{"teleport_line",215,2},
|
||||||
#line 77 "thingdef_specials.gperf"
|
|
||||||
{"teleport_nofog",71,1,2},
|
|
||||||
#line 78 "thingdef_specials.gperf"
|
|
||||||
{"teleport_newmap",74,2},
|
|
||||||
#line 79 "thingdef_specials.gperf"
|
|
||||||
{"teleport_endgame",75,0},
|
|
||||||
#line 141 "thingdef_specials.gperf"
|
#line 141 "thingdef_specials.gperf"
|
||||||
{"scroll_floor",223,4},
|
{"scroll_floor",223,4},
|
||||||
|
#line 171 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_crushraiseandstaysila",255,4},
|
||||||
|
#line 16 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_crushandraise",42,3},
|
||||||
|
#line 119 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_crushandraisea",196,4},
|
||||||
|
#line 15 "thingdef_specials.gperf"
|
||||||
|
{"acs_lockedexecute",83,5},
|
||||||
|
#line 18 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_lowerandcrush",43,3},
|
||||||
{(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0},
|
||||||
#line 47 "thingdef_specials.gperf"
|
#line 180 "thingdef_specials.gperf"
|
||||||
{"light_glow",114,4},
|
{"acs_lockedexecutedoor",85,5},
|
||||||
#line 12 "thingdef_specials.gperf"
|
#line 120 "thingdef_specials.gperf"
|
||||||
{"acs_execute",80,1,5},
|
{"ceiling_crushandraisesilenta",197,4},
|
||||||
|
#line 77 "thingdef_specials.gperf"
|
||||||
|
{"teleport_nofog",71,1,2},
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
#line 92 "thingdef_specials.gperf"
|
|
||||||
{"teleportother",76,3},
|
|
||||||
#line 142 "thingdef_specials.gperf"
|
#line 142 "thingdef_specials.gperf"
|
||||||
{"scroll_ceiling",224,4},
|
{"scroll_ceiling",224,4},
|
||||||
#line 50 "thingdef_specials.gperf"
|
#line 102 "thingdef_specials.gperf"
|
||||||
{"light_stop",117,1},
|
{"thing_hate",177,2,3},
|
||||||
#line 134 "thingdef_specials.gperf"
|
#line 70 "thingdef_specials.gperf"
|
||||||
{"sector_setdamage",214,3},
|
{"radius_quake",120,5},
|
||||||
#line 114 "thingdef_specials.gperf"
|
|
||||||
{"setplayerproperty",191,3},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 108 "thingdef_specials.gperf"
|
|
||||||
{"line_alignfloor",184,2},
|
|
||||||
#line 148 "thingdef_specials.gperf"
|
|
||||||
{"light_strobedoom",232,3},
|
|
||||||
#line 139 "thingdef_specials.gperf"
|
|
||||||
{"sector_setcurrent",220,4},
|
|
||||||
{(char*)0},
|
|
||||||
#line 133 "thingdef_specials.gperf"
|
#line 133 "thingdef_specials.gperf"
|
||||||
{"sector_setfade",213,4},
|
{"sector_setfade",213,4},
|
||||||
#line 177 "thingdef_specials.gperf"
|
#line 177 "thingdef_specials.gperf"
|
||||||
{"noisealert",173,2},
|
{"noisealert",173,2},
|
||||||
|
#line 63 "thingdef_specials.gperf"
|
||||||
|
{"polyobj_rotateright",3,3},
|
||||||
|
#line 175 "thingdef_specials.gperf"
|
||||||
|
{"acs_executewithresult",84,1,4},
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
|
#line 59 "thingdef_specials.gperf"
|
||||||
|
{"plat_stop",61,1},
|
||||||
|
#line 78 "thingdef_specials.gperf"
|
||||||
|
{"teleport_newmap",74,2},
|
||||||
|
#line 79 "thingdef_specials.gperf"
|
||||||
|
{"teleport_endgame",75,0},
|
||||||
|
#line 17 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_crushstop",44,1},
|
||||||
|
#line 134 "thingdef_specials.gperf"
|
||||||
|
{"sector_setdamage",214,3},
|
||||||
|
{(char*)0}, {(char*)0},
|
||||||
|
#line 139 "thingdef_specials.gperf"
|
||||||
|
{"sector_setcurrent",220,4},
|
||||||
|
#line 47 "thingdef_specials.gperf"
|
||||||
|
{"light_glow",114,4},
|
||||||
|
#line 50 "thingdef_specials.gperf"
|
||||||
|
{"light_stop",117,1},
|
||||||
|
#line 92 "thingdef_specials.gperf"
|
||||||
|
{"teleportother",76,3},
|
||||||
|
{(char*)0},
|
||||||
|
#line 91 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_waggle",38,5},
|
||||||
#line 112 "thingdef_specials.gperf"
|
#line 112 "thingdef_specials.gperf"
|
||||||
{"sector_setceilingscale",188,5},
|
{"sector_setceilingscale",188,5},
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
#line 110 "thingdef_specials.gperf"
|
#line 110 "thingdef_specials.gperf"
|
||||||
{"sector_setceilingpanning",186,5},
|
{"sector_setceilingpanning",186,5},
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 143 "thingdef_specials.gperf"
|
|
||||||
{"acs_executealways",226,1,5},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 175 "thingdef_specials.gperf"
|
|
||||||
{"acs_executewithresult",84,1,4},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 45 "thingdef_specials.gperf"
|
|
||||||
{"light_changetovalue",112,2},
|
|
||||||
{(char*)0},
|
|
||||||
#line 169 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_lowertolowest",253,2},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 144 "thingdef_specials.gperf"
|
|
||||||
{"plat_raiseandstaytx0",228,2},
|
|
||||||
{(char*)0},
|
|
||||||
#line 17 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_crushstop",44,1},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 173 "thingdef_specials.gperf"
|
|
||||||
{"clearforcefield",34,1},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 44 "thingdef_specials.gperf"
|
|
||||||
{"light_lowerbyvalue",111,2},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 70 "thingdef_specials.gperf"
|
|
||||||
{"radius_quake",120,5},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 124 "thingdef_specials.gperf"
|
|
||||||
{"generic_ceiling",201,5},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 59 "thingdef_specials.gperf"
|
|
||||||
{"plat_stop",61,1},
|
|
||||||
#line 20 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_raisebyvalue",41,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 19 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_lowerbyvalue",40,3},
|
|
||||||
#line 121 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_raisebyvaluetimes8",198,3},
|
|
||||||
#line 136 "thingdef_specials.gperf"
|
|
||||||
{"sector_setgravity",216,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 122 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_lowerbyvaluetimes8",199,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 132 "thingdef_specials.gperf"
|
|
||||||
{"sector_setcolor",212,4,5},
|
|
||||||
{(char*)0},
|
|
||||||
#line 90 "thingdef_specials.gperf"
|
|
||||||
{"floor_waggle",138,5},
|
|
||||||
#line 109 "thingdef_specials.gperf"
|
|
||||||
{"sector_setrotation",185,3},
|
|
||||||
#line 56 "thingdef_specials.gperf"
|
|
||||||
{"plat_upwaitdownstay",64,3},
|
|
||||||
{(char*)0},
|
|
||||||
#line 89 "thingdef_specials.gperf"
|
|
||||||
{"thing_spawnnofog",137,3,4},
|
|
||||||
#line 111 "thingdef_specials.gperf"
|
|
||||||
{"sector_setfloorpanning",187,5},
|
|
||||||
#line 14 "thingdef_specials.gperf"
|
|
||||||
{"acs_terminate",82,2},
|
|
||||||
#line 63 "thingdef_specials.gperf"
|
|
||||||
{"polyobj_rotateright",3,3},
|
|
||||||
#line 162 "thingdef_specials.gperf"
|
|
||||||
{"elevator_movetofloor",246,2},
|
|
||||||
#line 106 "thingdef_specials.gperf"
|
|
||||||
{"line_mirror",182,0},
|
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
#line 123 "thingdef_specials.gperf"
|
#line 123 "thingdef_specials.gperf"
|
||||||
{"generic_floor",200,5},
|
{"generic_floor",200,5},
|
||||||
#line 140 "thingdef_specials.gperf"
|
#line 124 "thingdef_specials.gperf"
|
||||||
{"scroll_texture_both",221,5},
|
{"generic_ceiling",201,5},
|
||||||
{(char*)0},
|
#line 178 "thingdef_specials.gperf"
|
||||||
|
{"thing_raise",17,1},
|
||||||
|
#line 106 "thingdef_specials.gperf"
|
||||||
|
{"line_mirror",182,0},
|
||||||
#line 80 "thingdef_specials.gperf"
|
#line 80 "thingdef_specials.gperf"
|
||||||
{"thrustthing",72,2,4},
|
{"thrustthing",72,2,4},
|
||||||
#line 98 "thingdef_specials.gperf"
|
#line 98 "thingdef_specials.gperf"
|
||||||
{"thrustthingz",128,4},
|
{"thrustthingz",128,4},
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 131 "thingdef_specials.gperf"
|
|
||||||
{"translucentline",208,2,3},
|
|
||||||
#line 94 "thingdef_specials.gperf"
|
|
||||||
{"teleportinsector",78,4,5},
|
|
||||||
#line 87 "thingdef_specials.gperf"
|
|
||||||
{"thing_remove",132,1},
|
|
||||||
{(char*)0},
|
|
||||||
#line 57 "thingdef_specials.gperf"
|
|
||||||
{"plat_upbyvalue",65,4},
|
|
||||||
#line 113 "thingdef_specials.gperf"
|
|
||||||
{"sector_setfloorscale",189,5},
|
|
||||||
#line 97 "thingdef_specials.gperf"
|
|
||||||
{"thing_setspecial",127,5},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 31 "thingdef_specials.gperf"
|
|
||||||
{"floor_lowertolowest",21,2},
|
|
||||||
#line 146 "thingdef_specials.gperf"
|
|
||||||
{"plat_upbyvaluestaytx",230,3},
|
|
||||||
#line 104 "thingdef_specials.gperf"
|
#line 104 "thingdef_specials.gperf"
|
||||||
{"changeskill",179,1},
|
{"changeskill",179,1},
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
#line 157 "thingdef_specials.gperf"
|
#line 148 "thingdef_specials.gperf"
|
||||||
{"floor_lowertolowesttxty",241,2},
|
{"light_strobedoom",232,3},
|
||||||
#line 164 "thingdef_specials.gperf"
|
#line 108 "thingdef_specials.gperf"
|
||||||
{"healthing",248,1,2},
|
{"line_alignfloor",184,2},
|
||||||
#line 101 "thingdef_specials.gperf"
|
{(char*)0},
|
||||||
{"thing_changetid",176,2},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 117 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_raiseinstant",194,3},
|
|
||||||
#line 53 "thingdef_specials.gperf"
|
|
||||||
{"pillar_open",30,4},
|
|
||||||
#line 51 "thingdef_specials.gperf"
|
#line 51 "thingdef_specials.gperf"
|
||||||
{"pillar_build",29,3},
|
{"pillar_build",29,3},
|
||||||
#line 71 "thingdef_specials.gperf"
|
#line 14 "thingdef_specials.gperf"
|
||||||
{"sector_changesound",140,2},
|
{"acs_terminate",82,2},
|
||||||
|
{(char*)0},
|
||||||
|
#line 131 "thingdef_specials.gperf"
|
||||||
|
{"translucentline",208,2,3},
|
||||||
|
#line 23 "thingdef_specials.gperf"
|
||||||
|
{"door_close",10,2},
|
||||||
|
#line 173 "thingdef_specials.gperf"
|
||||||
|
{"clearforcefield",34,1},
|
||||||
|
#line 84 "thingdef_specials.gperf"
|
||||||
|
{"thing_destroy",133,1,2},
|
||||||
|
#line 125 "thingdef_specials.gperf"
|
||||||
|
{"generic_door",202,5},
|
||||||
|
#line 94 "thingdef_specials.gperf"
|
||||||
|
{"teleportinsector",78,4,5},
|
||||||
|
#line 97 "thingdef_specials.gperf"
|
||||||
|
{"thing_setspecial",127,5},
|
||||||
|
#line 89 "thingdef_specials.gperf"
|
||||||
|
{"thing_spawnnofog",137,3,4},
|
||||||
|
#line 25 "thingdef_specials.gperf"
|
||||||
|
{"door_raise",12,3},
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
#line 116 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_lowerinstant",193,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 73 "thingdef_specials.gperf"
|
#line 73 "thingdef_specials.gperf"
|
||||||
{"stairs_buildup",27,5},
|
{"stairs_buildup",27,5},
|
||||||
#line 96 "thingdef_specials.gperf"
|
{(char*)0},
|
||||||
{"thing_move",125,2},
|
#line 53 "thingdef_specials.gperf"
|
||||||
|
{"pillar_open",30,4},
|
||||||
|
{(char*)0}, {(char*)0},
|
||||||
|
#line 169 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_lowertolowest",253,2},
|
||||||
|
{(char*)0},
|
||||||
|
#line 101 "thingdef_specials.gperf"
|
||||||
|
{"thing_changetid",176,2},
|
||||||
|
#line 143 "thingdef_specials.gperf"
|
||||||
|
{"acs_executealways",226,1,5},
|
||||||
|
{(char*)0},
|
||||||
|
#line 20 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_raisebyvalue",41,3},
|
||||||
|
{(char*)0},
|
||||||
|
#line 117 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_raiseinstant",194,3},
|
||||||
|
#line 19 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_lowerbyvalue",40,3},
|
||||||
|
#line 45 "thingdef_specials.gperf"
|
||||||
|
{"light_changetovalue",112,2},
|
||||||
|
#line 116 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_lowerinstant",193,3},
|
||||||
|
#line 121 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_raisebyvaluetimes8",198,3},
|
||||||
|
{(char*)0}, {(char*)0},
|
||||||
|
#line 122 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_lowerbyvaluetimes8",199,3},
|
||||||
|
#line 87 "thingdef_specials.gperf"
|
||||||
|
{"thing_remove",132,1},
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
#line 115 "thingdef_specials.gperf"
|
#line 115 "thingdef_specials.gperf"
|
||||||
{"ceiling_lowertohighestfloor",192,2},
|
{"ceiling_lowertohighestfloor",192,2},
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 25 "thingdef_specials.gperf"
|
|
||||||
{"door_raise",12,3},
|
|
||||||
#line 72 "thingdef_specials.gperf"
|
|
||||||
{"stairs_builddown",26,5},
|
|
||||||
#line 153 "thingdef_specials.gperf"
|
|
||||||
{"changecamera",237,3},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 23 "thingdef_specials.gperf"
|
|
||||||
{"door_close",10,2},
|
|
||||||
#line 83 "thingdef_specials.gperf"
|
|
||||||
{"thing_deactivate",131,1},
|
|
||||||
#line 150 "thingdef_specials.gperf"
|
|
||||||
{"light_maxneighbor",234,1},
|
|
||||||
#line 84 "thingdef_specials.gperf"
|
|
||||||
{"thing_destroy",133,1,2},
|
|
||||||
{(char*)0},
|
|
||||||
#line 74 "thingdef_specials.gperf"
|
|
||||||
{"stairs_builddownsync",31,4},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 125 "thingdef_specials.gperf"
|
|
||||||
{"generic_door",202,5},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 158 "thingdef_specials.gperf"
|
|
||||||
{"floor_lowertohighest",242,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0},
|
|
||||||
#line 55 "thingdef_specials.gperf"
|
|
||||||
{"plat_downbyvalue",63,4},
|
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
#line 165 "thingdef_specials.gperf"
|
#line 165 "thingdef_specials.gperf"
|
||||||
{"door_closewaitopen",249,3},
|
{"door_closewaitopen",249,3},
|
||||||
{(char*)0}, {(char*)0},
|
#line 83 "thingdef_specials.gperf"
|
||||||
|
{"thing_deactivate",131,1},
|
||||||
|
#line 132 "thingdef_specials.gperf"
|
||||||
|
{"sector_setcolor",212,4,5},
|
||||||
|
{(char*)0},
|
||||||
|
#line 153 "thingdef_specials.gperf"
|
||||||
|
{"changecamera",237,3},
|
||||||
|
#line 90 "thingdef_specials.gperf"
|
||||||
|
{"floor_waggle",138,5},
|
||||||
|
{(char*)0},
|
||||||
|
#line 144 "thingdef_specials.gperf"
|
||||||
|
{"plat_raiseandstaytx0",228,2},
|
||||||
|
#line 164 "thingdef_specials.gperf"
|
||||||
|
{"healthing",248,1,2},
|
||||||
|
#line 62 "thingdef_specials.gperf"
|
||||||
|
{"polyobj_rotateleft",2,3},
|
||||||
#line 68 "thingdef_specials.gperf"
|
#line 68 "thingdef_specials.gperf"
|
||||||
{"polyobj_or_rotateleft",90,3},
|
{"polyobj_or_rotateleft",90,3},
|
||||||
#line 69 "thingdef_specials.gperf"
|
#line 69 "thingdef_specials.gperf"
|
||||||
{"polyobj_or_rotateright",91,3},
|
{"polyobj_or_rotateright",91,3},
|
||||||
#line 163 "thingdef_specials.gperf"
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
{"elevator_lowertonearest",247,2},
|
#line 57 "thingdef_specials.gperf"
|
||||||
|
{"plat_upbyvalue",65,4},
|
||||||
|
{(char*)0},
|
||||||
|
#line 72 "thingdef_specials.gperf"
|
||||||
|
{"stairs_builddown",26,5},
|
||||||
|
#line 140 "thingdef_specials.gperf"
|
||||||
|
{"scroll_texture_both",221,5},
|
||||||
|
#line 44 "thingdef_specials.gperf"
|
||||||
|
{"light_lowerbyvalue",111,2},
|
||||||
|
#line 162 "thingdef_specials.gperf"
|
||||||
|
{"elevator_movetofloor",246,2},
|
||||||
|
#line 113 "thingdef_specials.gperf"
|
||||||
|
{"sector_setfloorscale",189,5},
|
||||||
|
{(char*)0},
|
||||||
|
#line 138 "thingdef_specials.gperf"
|
||||||
|
{"sector_setwind",218,4},
|
||||||
|
#line 109 "thingdef_specials.gperf"
|
||||||
|
{"sector_setrotation",185,3},
|
||||||
|
{(char*)0},
|
||||||
|
#line 114 "thingdef_specials.gperf"
|
||||||
|
{"setplayerproperty",191,3},
|
||||||
|
#line 61 "thingdef_specials.gperf"
|
||||||
|
{"polyobj_move",4,4},
|
||||||
|
#line 111 "thingdef_specials.gperf"
|
||||||
|
{"sector_setfloorpanning",187,5},
|
||||||
|
#line 65 "thingdef_specials.gperf"
|
||||||
|
{"polyobj_doorslide",8,5},
|
||||||
|
{(char*)0},
|
||||||
|
#line 67 "thingdef_specials.gperf"
|
||||||
|
{"polyobj_or_move",92,4},
|
||||||
|
#line 74 "thingdef_specials.gperf"
|
||||||
|
{"stairs_builddownsync",31,4},
|
||||||
|
#line 56 "thingdef_specials.gperf"
|
||||||
|
{"plat_upwaitdownstay",64,3},
|
||||||
|
#line 48 "thingdef_specials.gperf"
|
||||||
|
{"light_flicker",115,3},
|
||||||
|
{(char*)0},
|
||||||
|
#line 96 "thingdef_specials.gperf"
|
||||||
|
{"thing_move",125,2},
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
#line 42 "thingdef_specials.gperf"
|
#line 42 "thingdef_specials.gperf"
|
||||||
{"light_forcelightning",109,1},
|
{"light_forcelightning",109,1},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 67 "thingdef_specials.gperf"
|
|
||||||
{"polyobj_or_move",92,4},
|
|
||||||
#line 159 "thingdef_specials.gperf"
|
|
||||||
{"exit_normal",243,1},
|
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
#line 161 "thingdef_specials.gperf"
|
#line 31 "thingdef_specials.gperf"
|
||||||
{"elevator_raisetonearest",245,2},
|
{"floor_lowertolowest",21,2},
|
||||||
{(char*)0},
|
#line 146 "thingdef_specials.gperf"
|
||||||
#line 32 "thingdef_specials.gperf"
|
{"plat_upbyvaluestaytx",230,3},
|
||||||
{"floor_lowertonearest",22,2},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 29 "thingdef_specials.gperf"
|
|
||||||
{"floor_lowerinstant",66,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 27 "thingdef_specials.gperf"
|
|
||||||
{"floor_lowerbyvalue",20,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 174 "thingdef_specials.gperf"
|
|
||||||
{"teleport_zombiechanger",39,2},
|
|
||||||
#line 43 "thingdef_specials.gperf"
|
#line 43 "thingdef_specials.gperf"
|
||||||
{"light_raisebyvalue",110,2},
|
{"light_raisebyvalue",110,2},
|
||||||
#line 28 "thingdef_specials.gperf"
|
|
||||||
{"floor_lowerbyvaluetimes8",36,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 137 "thingdef_specials.gperf"
|
|
||||||
{"stairs_buildupdoom",217,5},
|
|
||||||
{(char*)0},
|
|
||||||
#line 22 "thingdef_specials.gperf"
|
|
||||||
{"ceiling_movetovaluetimes8",69,4},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 138 "thingdef_specials.gperf"
|
|
||||||
{"sector_setwind",218,4},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0},
|
|
||||||
#line 52 "thingdef_specials.gperf"
|
|
||||||
{"pillar_buildandcrush",94,4},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 75 "thingdef_specials.gperf"
|
|
||||||
{"stairs_buildupsync",32,4},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 149 "thingdef_specials.gperf"
|
|
||||||
{"light_minneighbor",233,1},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0},
|
|
||||||
#line 62 "thingdef_specials.gperf"
|
|
||||||
{"polyobj_rotateleft",2,3},
|
|
||||||
#line 54 "thingdef_specials.gperf"
|
|
||||||
{"plat_downwaitupstay",62,3},
|
|
||||||
#line 41 "thingdef_specials.gperf"
|
|
||||||
{"floor_crushstop",46,1},
|
|
||||||
#line 85 "thingdef_specials.gperf"
|
|
||||||
{"thing_projectile",134,5},
|
|
||||||
#line 129 "thingdef_specials.gperf"
|
|
||||||
{"plat_downwaitupstaylip",206,4},
|
|
||||||
#line 48 "thingdef_specials.gperf"
|
|
||||||
{"light_flicker",115,3},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 103 "thingdef_specials.gperf"
|
|
||||||
{"thing_projectileaimed",178,4,5},
|
|
||||||
#line 61 "thingdef_specials.gperf"
|
|
||||||
{"polyobj_move",4,4},
|
|
||||||
#line 86 "thingdef_specials.gperf"
|
|
||||||
{"thing_projectilegravity",136,5},
|
|
||||||
#line 58 "thingdef_specials.gperf"
|
|
||||||
{"plat_perpetualraise",60,3},
|
|
||||||
{(char*)0},
|
|
||||||
#line 151 "thingdef_specials.gperf"
|
|
||||||
{"floor_transfertrigger",235,1},
|
|
||||||
#line 130 "thingdef_specials.gperf"
|
|
||||||
{"plat_perpetualraiselip",207,4},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 156 "thingdef_specials.gperf"
|
|
||||||
{"floor_raisebytexture",240,2},
|
|
||||||
#line 176 "thingdef_specials.gperf"
|
|
||||||
{"plat_upnearestwaitdownstay",172,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 152 "thingdef_specials.gperf"
|
|
||||||
{"floor_transfernumeric",236,1},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 154 "thingdef_specials.gperf"
|
|
||||||
{"floor_raisetolowestceiling",238,2},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0},
|
|
||||||
#line 46 "thingdef_specials.gperf"
|
#line 46 "thingdef_specials.gperf"
|
||||||
{"light_fade",113,3},
|
{"light_fade",113,3},
|
||||||
|
#line 157 "thingdef_specials.gperf"
|
||||||
|
{"floor_lowertolowesttxty",241,2},
|
||||||
{(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0},
|
||||||
#line 40 "thingdef_specials.gperf"
|
#line 136 "thingdef_specials.gperf"
|
||||||
{"floorandceiling_raisebyvalue",96,3},
|
{"sector_setgravity",216,3},
|
||||||
#line 24 "thingdef_specials.gperf"
|
|
||||||
{"door_open",11,2},
|
|
||||||
{(char*)0},
|
|
||||||
#line 167 "thingdef_specials.gperf"
|
|
||||||
{"floorandceiling_lowerraise",251,3},
|
|
||||||
{(char*)0},
|
|
||||||
#line 39 "thingdef_specials.gperf"
|
|
||||||
{"floorandceiling_lowerbyvalue",95,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 64 "thingdef_specials.gperf"
|
|
||||||
{"polyobj_doorswing",7,4},
|
|
||||||
#line 30 "thingdef_specials.gperf"
|
|
||||||
{"floor_movetovaluetimes8",68,4},
|
|
||||||
{(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0},
|
||||||
#line 81 "thingdef_specials.gperf"
|
#line 81 "thingdef_specials.gperf"
|
||||||
{"damagething",73,1},
|
{"damagething",73,1},
|
||||||
#line 65 "thingdef_specials.gperf"
|
#line 75 "thingdef_specials.gperf"
|
||||||
{"polyobj_doorslide",8,5},
|
{"stairs_buildupsync",32,4},
|
||||||
|
#line 52 "thingdef_specials.gperf"
|
||||||
|
{"pillar_buildandcrush",94,4},
|
||||||
|
#line 58 "thingdef_specials.gperf"
|
||||||
|
{"plat_perpetualraise",60,3},
|
||||||
|
#line 55 "thingdef_specials.gperf"
|
||||||
|
{"plat_downbyvalue",63,4},
|
||||||
|
#line 41 "thingdef_specials.gperf"
|
||||||
|
{"floor_crushstop",46,1},
|
||||||
|
#line 130 "thingdef_specials.gperf"
|
||||||
|
{"plat_perpetualraiselip",207,4},
|
||||||
|
#line 24 "thingdef_specials.gperf"
|
||||||
|
{"door_open",11,2},
|
||||||
|
#line 71 "thingdef_specials.gperf"
|
||||||
|
{"sector_changesound",140,2},
|
||||||
|
#line 176 "thingdef_specials.gperf"
|
||||||
|
{"plat_upnearestwaitdownstay",172,3},
|
||||||
{(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0},
|
||||||
#line 37 "thingdef_specials.gperf"
|
#line 156 "thingdef_specials.gperf"
|
||||||
{"floor_raisetohighest",24,2},
|
{"floor_raisebytexture",240,2},
|
||||||
|
#line 137 "thingdef_specials.gperf"
|
||||||
|
{"stairs_buildupdoom",217,5},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
{(char*)0},
|
||||||
|
#line 159 "thingdef_specials.gperf"
|
||||||
|
{"exit_normal",243,1},
|
||||||
|
#line 154 "thingdef_specials.gperf"
|
||||||
|
{"floor_raisetolowestceiling",238,2},
|
||||||
|
#line 151 "thingdef_specials.gperf"
|
||||||
|
{"floor_transfertrigger",235,1},
|
||||||
{(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0},
|
||||||
|
#line 179 "thingdef_specials.gperf"
|
||||||
|
{"startconversation",18,1,2},
|
||||||
|
{(char*)0},
|
||||||
|
#line 85 "thingdef_specials.gperf"
|
||||||
|
{"thing_projectile",134,5},
|
||||||
|
{(char*)0}, {(char*)0},
|
||||||
|
#line 150 "thingdef_specials.gperf"
|
||||||
|
{"light_maxneighbor",234,1},
|
||||||
|
#line 163 "thingdef_specials.gperf"
|
||||||
|
{"elevator_lowertonearest",247,2},
|
||||||
|
{(char*)0},
|
||||||
|
#line 64 "thingdef_specials.gperf"
|
||||||
|
{"polyobj_doorswing",7,4},
|
||||||
|
#line 161 "thingdef_specials.gperf"
|
||||||
|
{"elevator_raisetonearest",245,2},
|
||||||
|
#line 54 "thingdef_specials.gperf"
|
||||||
|
{"plat_downwaitupstay",62,3},
|
||||||
|
#line 174 "thingdef_specials.gperf"
|
||||||
|
{"teleport_zombiechanger",39,2},
|
||||||
|
{(char*)0},
|
||||||
|
#line 129 "thingdef_specials.gperf"
|
||||||
|
{"plat_downwaitupstaylip",206,4},
|
||||||
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
#line 95 "thingdef_specials.gperf"
|
#line 95 "thingdef_specials.gperf"
|
||||||
{"thing_damage",119,2,3},
|
{"thing_damage",119,2,3},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
#line 86 "thingdef_specials.gperf"
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{"thing_projectilegravity",136,5},
|
||||||
|
#line 27 "thingdef_specials.gperf"
|
||||||
|
{"floor_lowerbyvalue",20,3},
|
||||||
|
{(char*)0},
|
||||||
|
#line 29 "thingdef_specials.gperf"
|
||||||
|
{"floor_lowerinstant",66,3},
|
||||||
|
#line 32 "thingdef_specials.gperf"
|
||||||
|
{"floor_lowertonearest",22,2},
|
||||||
{(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0},
|
||||||
#line 147 "thingdef_specials.gperf"
|
#line 28 "thingdef_specials.gperf"
|
||||||
{"plat_toggleceiling",231,1},
|
{"floor_lowerbyvaluetimes8",36,3},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
#line 103 "thingdef_specials.gperf"
|
||||||
{(char*)0}, {(char*)0},
|
{"thing_projectileaimed",178,4,5},
|
||||||
#line 38 "thingdef_specials.gperf"
|
{(char*)0},
|
||||||
{"floor_raisetonearest",25,2},
|
#line 166 "thingdef_specials.gperf"
|
||||||
{(char*)0}, {(char*)0},
|
{"floor_donut",250,3},
|
||||||
#line 36 "thingdef_specials.gperf"
|
|
||||||
{"floor_raiseinstant",67,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
#line 22 "thingdef_specials.gperf"
|
||||||
|
{"ceiling_movetovaluetimes8",69,4},
|
||||||
|
{(char*)0},
|
||||||
|
#line 40 "thingdef_specials.gperf"
|
||||||
|
{"floorandceiling_raisebyvalue",96,3},
|
||||||
|
#line 167 "thingdef_specials.gperf"
|
||||||
|
{"floorandceiling_lowerraise",251,3},
|
||||||
|
#line 152 "thingdef_specials.gperf"
|
||||||
|
{"floor_transfernumeric",236,1},
|
||||||
|
#line 39 "thingdef_specials.gperf"
|
||||||
|
{"floorandceiling_lowerbyvalue",95,3},
|
||||||
|
{(char*)0}, {(char*)0}, {(char*)0},
|
||||||
#line 34 "thingdef_specials.gperf"
|
#line 34 "thingdef_specials.gperf"
|
||||||
{"floor_raisebyvalue",23,3},
|
{"floor_raisebyvalue",23,3},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0},
|
||||||
|
#line 36 "thingdef_specials.gperf"
|
||||||
|
{"floor_raiseinstant",67,3},
|
||||||
|
#line 38 "thingdef_specials.gperf"
|
||||||
|
{"floor_raisetonearest",25,2},
|
||||||
#line 155 "thingdef_specials.gperf"
|
#line 155 "thingdef_specials.gperf"
|
||||||
{"floor_raisebyvaluetxty",239,3},
|
{"floor_raisebyvaluetxty",239,3},
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
#line 35 "thingdef_specials.gperf"
|
#line 35 "thingdef_specials.gperf"
|
||||||
{"floor_raisebyvaluetimes8",35,3},
|
{"floor_raisebyvaluetimes8",35,3},
|
||||||
{(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
#line 66 "thingdef_specials.gperf"
|
#line 66 "thingdef_specials.gperf"
|
||||||
{"polyobj_or_movetimes8",93,4},
|
{"polyobj_or_movetimes8",93,4},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 166 "thingdef_specials.gperf"
|
|
||||||
{"floor_donut",250,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 26 "thingdef_specials.gperf"
|
#line 26 "thingdef_specials.gperf"
|
||||||
{"door_lockedraise",13,4},
|
{"door_lockedraise",13,4},
|
||||||
|
{(char*)0},
|
||||||
|
#line 60 "thingdef_specials.gperf"
|
||||||
|
{"polyobj_movetimes8",6,4},
|
||||||
|
{(char*)0},
|
||||||
|
#line 149 "thingdef_specials.gperf"
|
||||||
|
{"light_minneighbor",233,1},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
{(char*)0}, {(char*)0},
|
||||||
|
#line 147 "thingdef_specials.gperf"
|
||||||
|
{"plat_toggleceiling",231,1},
|
||||||
|
{(char*)0}, {(char*)0},
|
||||||
|
#line 158 "thingdef_specials.gperf"
|
||||||
|
{"floor_lowertohighest",242,3},
|
||||||
|
{(char*)0},
|
||||||
|
#line 172 "thingdef_specials.gperf"
|
||||||
|
{"door_animated",14,3},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
#line 30 "thingdef_specials.gperf"
|
||||||
|
{"floor_movetovaluetimes8",68,4},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
{(char*)0},
|
{(char*)0},
|
||||||
#line 172 "thingdef_specials.gperf"
|
|
||||||
{"door_animated",4,3},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 100 "thingdef_specials.gperf"
|
|
||||||
{"thing_projectileintercept",175,5},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 60 "thingdef_specials.gperf"
|
|
||||||
{"polyobj_movetimes8",6,4},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
{(char*)0}, {(char*)0}, {(char*)0},
|
|
||||||
#line 33 "thingdef_specials.gperf"
|
#line 33 "thingdef_specials.gperf"
|
||||||
{"floor_raiseandcrush",28,3}
|
{"floor_raiseandcrush",28,3},
|
||||||
|
{(char*)0},
|
||||||
|
#line 37 "thingdef_specials.gperf"
|
||||||
|
{"floor_raisetohighest",24,2},
|
||||||
|
{(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
|
||||||
|
{(char*)0},
|
||||||
|
#line 100 "thingdef_specials.gperf"
|
||||||
|
{"thing_projectileintercept",175,5}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
|
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
|
||||||
|
|
Loading…
Reference in a new issue