diff --git a/hGameTest/src/engine/macros/ConVarDecorators.hx b/hGameTest/src/engine/macros/ConVarDecorators.hx index 45bcdb24..821f1a4f 100644 --- a/hGameTest/src/engine/macros/ConVarDecorators.hx +++ b/hGameTest/src/engine/macros/ConVarDecorators.hx @@ -122,7 +122,7 @@ class ConVarDecorators { // Handle instance fields updateFieldInitialValue(field, macro null); - var instanceInitExpr = macro { + var instanceInitializerExpression = macro { if (Reflect.field(this, $v{fieldName}) == null) { Reflect.setField(this, $v{fieldName}, engine.ConVar.registerCVar( ${meta.name}, @@ -139,18 +139,20 @@ class ConVarDecorators { } }; - ensureConstructorWithInit(extraFields, instanceInitExpr, pos); + ensureConstructorWithInit(extraFields, instanceInitializerExpression, pos); } } + // Map to check field kinds + private static final fieldKindMap:MapBool> = [ + "FFun" => function(ft) return switch(ft) { case FFun(_): true; case _: false; }, + "FVar" => function(ft) return switch(ft) { case FVar(_, _): true; case _: false; }, + "FProp" => function(ft) return switch(ft) { case FProp(_, _, _, _): true; case _: false; } + ]; + // Utility functions private static function isFieldKind(field:Field, kind:String):Bool { - return switch (field.kind) { - case FFun(_) if (kind == "FFun"): true; - case FVar(_, _) if (kind == "FVar"): true; - case FProp(_, _, _, _) if (kind == "FProp"): true; - case _: false; - } + return fieldKindMap.exists(kind) ? fieldKindMap.get(kind)(field.kind) : false; } private static function getFunctionFromField(field:Field):Function {