struct SMechSpec
{
    int m_nNameID;
    Stuff::Scalar m_fTopSpeed;
    Stuff::Scalar m_fTonnage;
    int m_nClass;
    int m_nTech;
    int m_nInfo;
};

extern SMechSpec g_aMechSpecs[NoMechID];

class CMLCallData
{
public:
    CMLCallData();
    void Setup_MLCallData();
    int __cdecl CallML(int nCallID, int nCount, ...);
public:
    int mech_id;
	float mech_tonnage;
	float mech_max_tonnage;
	int battle_value;
	int heat_eff;
	int armor_value;
	int speed_value;
    int Call1() {
        return CallML(MLDataSetupGetMechData, 7, &mech_id, &mech_tonnage, &mech_max_tonnage, &battle_value, &heat_eff, &speed_value, &armor_value);
    }

	float acceleration;
	float deacceleration;
	float turn_rate;
	float torso_twist;
	float twist_speed;
	int tech_type;
	int Call2() {
        return CallML(MLDataSetupGetMechNoEditData, 6, &acceleration, &deacceleration, &turn_rate, &torso_twist, &twist_speed, &tech_type);
    }

	int jumpjets_installed;
	int can_have_jump;
	float jump_tons;
	int Call3() {
        return CallML(MLGetJumpJets, 3, &jumpjets_installed, &can_have_jump, &jump_tons);
    }

	int heatsinks_installed;
	int Call4() {
        return CallML(MLDataSetupGetHeatSinks, 1, &heatsinks_installed);
    }

	int ecm_installed;
	int can_have_ecm;
	float ecm_tons;
	int Call5() {
        return CallML(MLGetECM, 3, &ecm_installed, &can_have_ecm, &ecm_tons);
    }

	float engine_topspeed;
	float engine_tons;
	int Call6() {
        return CallML(MLDataSetupGetEngineSpeed, 2, &engine_topspeed, &engine_tons);
    }

	int beagle_installed;
	int can_have_beagle;
	float beagle_tons;
	int Call7() {
        return CallML(MLGetBeagle, 3, &beagle_installed, &can_have_beagle, &beagle_tons);
    }

	int light_installed;
	int can_have_light;
	float light_tons;
	int Call8() {
        return CallML(MLGetLightAmp, 3, &light_installed, &can_have_light, &light_tons);
    }

	int ams_installed;
	int can_have_ams;
	float ams_tons;
	int Call9() {
        return CallML(MLGetAMS, 3, &ams_installed, &can_have_ams, &ams_tons);
    }

	int lams_installed;
	int can_have_lams;
	float lams_tons;
	int Call10() {
        return CallML(MLGetLAMS, 3, &lams_installed, &can_have_lams, &lams_tons);
    }
};
