- implemented the Defaults property initializer.

This uses the same property and flag tables as DECORATE with a few changes:

 * it sets the parse mode to strict, so that several DECORATE warnings are now errors.
 * trying to change a deprecated flag will print a warning.
 * setting of editor numbers, spawn and conversation ID id not possible. Use MAPINFO to do this.
 * all subclass flags must use the qualified name now (e.g. +ALWAYSPICKUP will print an error.)
 * the scriptable Damage property is not yet implemented. This will require a special case with a differently named property in the processing function because in the AST it is no longer possible to distinguish between a damage value and a constant damage function.
This commit is contained in:
Christoph Oelckers 2016-10-11 00:56:47 +02:00
commit 3b19887637
11 changed files with 438 additions and 25 deletions

View file

@ -436,14 +436,15 @@ static FFlagDef *FindFlag (FFlagDef *flags, int numflags, const char *flag)
//
//==========================================================================
FFlagDef *FindFlag (const PClass *type, const char *part1, const char *part2)
FFlagDef *FindFlag (const PClass *type, const char *part1, const char *part2, bool strict)
{
FFlagDef *def;
size_t i;
if (part2 == NULL)
{ // Search all lists
for (i = 0; i < NUM_FLAG_LISTS; ++i)
int max = strict ? 1 : NUM_FLAG_LISTS;
for (i = 0; i < max; ++i)
{
if (type->IsDescendantOf (*FlagLists[i].Type))
{