- Fixed: ActorFlagSetOrReset() wasn't receiving the + or - character from

ParseActorProperties().
- Fixed: The decorate FindFlag() function returned flags from ActorFlags
  instead of the passed flags set.
- Fixed: The CHT_CHAINSAW, CHT_POWER, CHT_HEALTH, and CHT_RESSURECT needed
  NULL player->mo checks.
- Fixed: The "give all" command didn't give the backpack in Doom, and it
  must give the backpack before giving ammo.
- Fixed: P_SetPsprite() must not call the action function if the player is
  not attached to an actor. This can happen, for instance, if the level is
  destroyed while the player is holding a powered-up Phoenix Rod. As part
  of its EndPowerup() function, it sets the psprite to the regular version,
  but the player actor has already been destroyed.
- Fixed: FinishThingdef() needs to check for valid names, because weapons
  could have inherited valid pointers from their superclass.
- Fixed: fuglyname didn't work.
- Fixed: Redefining $ambient sounds leaked memory.
- Added Jim's crashcatcher.c fix for better shell support.
- VC7.1 seems to have no trouble distinguishing between passing a (const
  TypeInfo *) reference to operator<< and the generic, templated (object *)
  version, so a few places that can benefit from it now use it. I believe
  VC6 had problems with this, which is why I didn't do it all along. The
  function's implementation was also moved out of dobject.cpp and into
  farchive.cpp.
- Fixed: UnpackPixels() unpacked all chunks in a byte, which is wrong for the
  last byte in a row if the image width is not an even multiple of the number
  pixels per byte.
- Fixed: P_TranslateLineDef() should only clear monster activation for secret
  useable lines, not crossable lines.
- Fixed: Some leftover P_IsHostile() calls still needed to be rewritten.
- Fixed: AWeaponHolder::Serialize() wrote the class type in all circumstances.


SVN r20 (trunk)
This commit is contained in:
Randy Heit 2006-03-14 06:11:39 +00:00
commit 09c28e5bf9
19 changed files with 176 additions and 103 deletions

View file

@ -282,7 +282,7 @@ static flagdef *FindFlag (flagdef *flags, int numflags, const char *flag)
int lexval = stricmp (flag, flags[mid].name);
if (lexval == 0)
{
return &ActorFlags[mid];
return &flags[mid];
}
else if (lexval > 0)
{
@ -1954,7 +1954,7 @@ void ParseActorProperties (Baggage &bag)
strlwr (sc_String);
propname += sc_String;
}
else
else if (sc_String[0] != '-' && sc_String[1] != '+')
{
SC_UnGet ();
}
@ -2957,7 +2957,8 @@ public:
}
fuglyname &operator= (const TypeInfo *foo)
{
name(*this) = ENamedName(reinterpret_cast<size_t>(foo));
name *p = this;
*p = ENamedName(reinterpret_cast<size_t>(foo));
return *this;
}
};
@ -3299,7 +3300,7 @@ void FinishThingdef()
fuglyname v;
v = defaults->AmmoType1;
if (v != NAME_None)
if (v != NAME_None && v.IsValidName())
{
defaults->AmmoType1 = TypeInfo::FindType(v.GetChars());
if (!defaults->AmmoType1)
@ -3313,7 +3314,7 @@ void FinishThingdef()
}
v = defaults->AmmoType2;
if (v != NAME_None)
if (v != NAME_None && v.IsValidName())
{
defaults->AmmoType2 = TypeInfo::FindType(v.GetChars());
if (!defaults->AmmoType2)
@ -3327,7 +3328,7 @@ void FinishThingdef()
}
v = defaults->SisterWeaponType;
if (v != NAME_None)
if (v != NAME_None && v.IsValidName())
{
defaults->SisterWeaponType = TypeInfo::FindType(v.GetChars());
if (!defaults->SisterWeaponType)
@ -3373,5 +3374,3 @@ void FinishThingdef()
}
}
}