- 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:
parent
4acc8a6954
commit
09c28e5bf9
19 changed files with 176 additions and 103 deletions
|
|
@ -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()
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue