It's something to do with ACS.
Tags default to the class name when empty, so it's normal.
By the way, did you see those warnings in the log before the crash?
Code: Select all
ACS: I don't know what \cCUnder the waterfall... is.
ACS: I don't know what \cCUnder the waterfall... is.
ACS: I don't know what \cCUnder the waterfall... is.
ACS: I don't know what \cCUnder the waterfall... is.
ACS: I don't know what \cCUnder the waterfall... is.
ACS: I don't know what \cCUnder the waterfall... is.
Edit: I fixed the problem by adding a check for NULLness:
Code: Select all
case PCD_CHECKWEAPON:
if (activator == NULL || activator->player == NULL || // Non-players do not have weapons
activator->player->ReadyWeapon == NULL || FBehavior::StaticLookupString (STACK(1)) == NULL)
{
STACK(1) = 0;
}
else
{
STACK(1) = 0 == stricmp (FBehavior::StaticLookupString (STACK(1)),
activator->player->ReadyWeapon->GetClass()->TypeName.GetChars());
}
break;
I think what happens here is a script conflict between OMG_ACS and the level script. I notice you haven't made it a library...
Edit: Using the awesome power of the almighty SLADE3, I added this line in the OMG_ACS text lump:
Code: Select all
// Omega ACS file, written by James "Jimmy" Paddock.
//==================================================
#library "omega"
#include "zcommon.acs"
Then right-click on the lump, Scripts->Compile ACS. Automagically, it updated the OMG_ACS script lump between the A_ markers. (I didn't even know it was that smart, it's the first time I use this on a script lump that doesn't belong to a map.)
Save, load in (unaltered) ZDoom -- no crash.
So, basically, this is [User error] though the engine could use an additional NULL check just for stability concerns.