- fixed code generation bug with bad class names in DECORATE.

- print attenuation info with 'listlights' CCMD.
This commit is contained in:
Christoph Oelckers 2017-03-17 16:00:04 +01:00
parent 33d36157c8
commit d506b2e6a1
2 changed files with 8 additions and 4 deletions

View file

@ -780,10 +780,10 @@ CCMD(listlights)
walls=0; walls=0;
sectors=0; sectors=0;
subsecs = 0; subsecs = 0;
Printf("%s at (%f, %f, %f), color = 0x%02x%02x%02x, radius = %f ", Printf("%s at (%f, %f, %f), color = 0x%02x%02x%02x, radius = %f %s",
dl->target? dl->target->GetClass()->TypeName.GetChars() : dl->GetClass()->TypeName.GetChars(), dl->target? dl->target->GetClass()->TypeName.GetChars() : dl->GetClass()->TypeName.GetChars(),
dl->X(), dl->Y(), dl->Z(), dl->args[LIGHT_RED], dl->X(), dl->Y(), dl->Z(), dl->args[LIGHT_RED],
dl->args[LIGHT_GREEN], dl->args[LIGHT_BLUE], dl->radius); dl->args[LIGHT_GREEN], dl->args[LIGHT_BLUE], dl->radius, (dl->flags4 & MF4_ATTENUATE)? "attenuated" : "");
i++; i++;
if (dl->target) if (dl->target)

View file

@ -10528,9 +10528,13 @@ FxExpression *FxClassTypeCast::Resolve(FCompileContext &ctx)
ScriptPosition.Message(MSG_OPTERROR, ScriptPosition.Message(MSG_OPTERROR,
"Unknown class name '%s' of type '%s'", "Unknown class name '%s' of type '%s'",
clsname.GetChars(), desttype->TypeName.GetChars()); clsname.GetChars(), desttype->TypeName.GetChars());
// When originating from DECORATE this must pass, when in ZScript it's an error that must abort the code generation here.
if (!ctx.FromDecorate)
{
delete this; delete this;
return nullptr; return nullptr;
} }
}
else else
{ {
if (!cls->IsDescendantOf(desttype)) if (!cls->IsDescendantOf(desttype))