class GVAR(AttackProfiles) {
    class LIN {
        name = "";
        visualName = "";
        description = "";

        functionName = QFUNC(attackProfile_LIN);
    };
    // empty classes for backwards compat
    class MID: LIN {
    };
    class HI: LIN {
    };
    class DIR {
        name = "";
        visualName = "";
        description = "";

        functionName = QFUNC(attackProfile_DIR);
    };
    class LOFT {
        name = "";
        visualName = "";
        description = "";

        functionName = QFUNC(attackProfile_LOFT);
    };
    class JAV_DIR {
        name = "";
        visualName = "";
        description = "";

        functionName = QFUNC(attackProfile_JAV_DIR);
    };
    class JAV_TOP {
        name = "";
        visualName = "";
        description = "";

        functionName = QFUNC(attackProfile_JAV_TOP);
    };
    class WIRE {
        name = "";
        visualName = "";
        description = "";

        functionName = QFUNC(attackProfile_WIRE);
        onFired = QFUNC(wire_onFired);
    };
    class BEAM {
        name = "";
        visualName = "";
        description = "";

        functionName = QFUNC(attackProfile_BEAM);
        onFired = QFUNC(wire_onFired); // since Beam guidance is pretty much the same as Wire guidance, we can reuse this
    };
};

class GVAR(SeekerTypes) {
    class SALH {
        name = "";
        visualName = "";
        description = "";

        functionName = QFUNC(seekerType_SALH);
    };
    class Optic {
        name = "";
        visualName = "";
        description = "";

        functionName = QFUNC(seekerType_Optic);
    };
    class SACLOS {
        name = "";
        visualName = "";
        description = "";

        functionName = QFUNC(seekerType_SACLOS);
        onFired = QFUNC(SACLOS_onFired);
    };
    class ARH {
        name = "";
        visualName = "";
        description = "";
        
        functionName = QFUNC(seekerType_ARH);
        onFired = QFUNC(ahr_onFired);
    };
};

class GVAR(NavigationTypes) {
    class LineOfSight {
        functionName = QFUNC(navigationType_lineOfSight);
    };
    class ProportionalNavigation {       
        functionName = QFUNC(navigationType_proNav);
        onFired = QFUNC(proNav_onFired);
    };
};