SVN r52 (trunk)

This commit is contained in:
Christoph Oelckers 2006-04-17 16:04:27 +00:00
parent 36e37becb5
commit d8500150f3
7 changed files with 25 additions and 8 deletions

View file

@ -1,4 +1,15 @@
April 17, 2006 (Changes by Graf Zahl)
- Fixed: The Oracle Pass is an item, not a key. Strictly speaking the
same applies to the Prison pass but having that as a key masks
some bad design in Strife so it is better to leave it a key.
- Fixed: The spectral lightning spot used a weird combination of flags
that made it act quite unexpectedly. After removing all flags except
MF_NOBLOCKMAP it seems to do what it is supposed to do. I also had
to add a new flag, MF5_NODROPOFF to prevent the spot from moving over
tall ledges.
- Fixed: When giving an autoactivatable item to the player a copy is
created to allow respawning. But when the item had been successully
used the original was destroyed, not the copy.
- Fixed: dssiglup was misspelled as dssglup in SNDINFO so the Sigil's
charging sound never played.
- Fixed: The sigil doesn't use the generic weapon pickup sound. It should

View file

@ -275,6 +275,7 @@ enum
MF5_FASTER = 0x00000001, // moves faster when DF_FAST_MONSTERS or nightmare is on.
MF5_FASTMELEE = 0x00000002, // has a faster melee attack when DF_FAST_MONSTERS or nightmare is on.
MF5_NODROPOFF = 0x00000004, // cannot drop off under any circumstances.
// --- mobj.renderflags ---

View file

@ -1132,8 +1132,8 @@ bool AInventory::TryPickup (AActor *toucher)
{
if (--copy->Amount <= 0)
{
flags &= ~MF_SPECIAL;
SetState (&States[S_HOLDANDDESTROY]);
copy->flags &= ~MF_SPECIAL;
copy->SetState (&States[S_HOLDANDDESTROY]);
}
}
}

View file

@ -234,8 +234,9 @@ IMPLEMENT_ACTOR (ASpectralLightningSpot, Strife, -1, 0)
PROP_SpawnState (0)
PROP_SpeedFixed (18)
PROP_ReactionTime (70)
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY|MF_DROPOFF)
PROP_Flags3 (MF3_FLOORHUGGER)
PROP_Flags (MF_NOBLOCKMAP)
PROP_Flags3 (MF3_NOBLOCKMONST)
PROP_Flags5 (MF5_NODROPOFF)
PROP_RenderStyle (STYLE_Translucent)
PROP_Alpha (HR_SHADOW)
END_DEFAULTS

View file

@ -825,7 +825,6 @@ END_DEFAULTS
bool APrisonPass::TryPickup (AActor *toucher)
{
Super::TryPickup (toucher);
EV_DoDoor (DDoor::doorOpen, NULL, toucher, 223, 2*FRACUNIT, 0, 0, 0);
toucher->GiveInventoryType (QuestItemClasses[9]);
return true;
@ -855,9 +854,9 @@ bool APrisonPass::SpecialDropAction (AActor *dropper)
// Oracle Pass --------------------------------------------------------------
class AOraclePass : public AKey
class AOraclePass : public AInventory
{
DECLARE_ACTOR (AOraclePass, AKey)
DECLARE_ACTOR (AOraclePass, AInventory)
public:
bool TryPickup (AActor *toucher);
const char *PickupMessage ();
@ -873,6 +872,7 @@ IMPLEMENT_ACTOR (AOraclePass, Strife, -1, 0)
PROP_StrifeTeaserType (292)
PROP_StrifeTeaserType2 (309)
PROP_SpawnState (0)
PROP_Inventory_FlagsSet(IF_INVBAR)
PROP_Inventory_Icon ("I_OTOK")
PROP_Tag ("Oracle_Pass")
END_DEFAULTS

View file

@ -1661,7 +1661,7 @@ BOOL P_TryMove (AActor *thing, fixed_t x, fixed_t y,
}
// killough 3/15/98: Allow certain objects to drop off
if (!dropoff && !(thing->flags & (MF_DROPOFF|MF_FLOAT|MF_MISSILE)))
if ((!dropoff && !(thing->flags & (MF_DROPOFF|MF_FLOAT|MF_MISSILE))) || (thing->flags5&MF5_NODROPOFF))
{
fixed_t floorz = tmfloorz;
// [RH] If the thing is standing on something, use its current z as the floorz.

View file

@ -215,6 +215,10 @@ static flagdef ActorFlags[]=
DEFINE_FLAG(MF4, FRIGHTENED, AActor, flags4),
DEFINE_FLAG(MF4, NOBOUNCESOUND, AActor, flags4),
DEFINE_FLAG(MF5, FASTER, AActor, flags5),
DEFINE_FLAG(MF5, FASTMELEE, AActor, flags5),
DEFINE_FLAG(MF5, NODROPOFF, AActor, flags5),
// Effect flags
DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects),
DEFINE_FLAG2(FX_ROCKET, ROCKETTRAIL, AActor, effects),