//Zone IDs
#define MLLeftLegZone 0
#define MLRightLegZone 1
#define MLLeftArmZone 2
#define MLRightArmZone 3
#define MLRightTorsoZone 4
#define MLLeftTorsoZone 5
#define MLCenterTorsoZone 6
#define MLHeadZone 7
#define MLSpecialZone1 8
#define MLSpecialZone2 9

//Callback IDs
#define MLGetDummyData -1
#define MLDataSetupLeftArm 0			//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupRightArm 1			//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupLeftLeg 2			//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupRightLeg 3			//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupLeftTorso 4			//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupRightTorso 5			//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupCenterTorso 6		//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupHead 7				//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupMechSelection 8
#define MLDataSetupChassisSelection 9
#define MLCreateNewMech 10
#define MLSelectNewMech 11
#define MLInitChassisTab 12
#define MLInitWeaponsTab 13
#define MLInitArmorTab 14
#define MLDataSetupSpecial1 15			//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupSpecial2 16			//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupAllWeapons 17		//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupBeamWeapons 18		//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupProjectileWeapons 19	//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupMissileWeapons 20	//IDs, SlotType, SlotSize, ton, dam, range, heat, num
#define MLDataSetupGetMechData 21		//ID, ton, battle, heat eff
#define MLDataSetupGetMechArmor 22		//Vals, Max Vals, type, int type, points per, ton, tot
#define MLDataSetupGetMechNoEditData 23
#define MLDataSetupGetEngineSpeed 24
#define MLSetEngineUpgrade 25
#define MLSetEngineDegrade 26
#define MLDataSetupGetHeatSinks 27
#define MLAddHeatSink 28
#define MLRemoveHeatSink 29
#define MLGetJumpJets 30
#define MLSetJumpJets 31
#define MLGetECM 32
#define MLSetECM 33
#define MLGetBeagle 34
#define MLSetBeagle 35
#define MLSetArmorType 36
#define MLAddArmorToZone 37
#define MLRemoveArmorFromZone 38

//Data manipulation
#define MLAddSubsystem 40
#define MLRemoveSubsystem 41
#define MLRemoveAllSubsystems 42
#define MLAutoAddSubsystem 43

//Weapon Grouping
#define MLDataGetWeaponGroups 44
#define MLSetWeaponGroup 45
#define MLClearWeaponGroup 46
#define MLSetAllWeaponGroups 47

//other stuff
#define MLSave 48
#define MLExit 49
#define MLDeleteMech 50
#define MLRestore 51
#define MLRename 52

//Ammo Support
#define MLDataGetWeaponAmmo 53
#define MLAddWeaponAmmo 54
#define MLRemoveWeaponAmmo 55

//Skin Support
#define MLGetSkinListCount 56
#define MLDataGetSkinList 57
#define MLSetMechSkin 58

#define MLGetLightAmp 59
#define MLSetLightAmp 60

//Added Functions
#define MLSetArmorZoneValue 61
#define MLDistributeArmor 62
#define MLGetAMS 63
#define MLSetAMS 64
#define MLGetLAMS 65
#define MLSetLAMS 66
#define MLGetBaseMechName 67

// Enhanced Optics
#define MLGetEnhancedOptics 68
#define MLSetEnhancedOptics 69

// Enhanced Optics
#define MLGetIFF_Jammer 70
#define MLSetIFF_Jammer 71

//Mech IDs
// NOTE: IF YOU CHANGE THESE, YOU MUST ALSO CHANGE THE CONSTANTS IN MWCONST.ABI!!!
//       YOU MUST ALSO CHANGE THE CHASSIS LOOKUP TABLE IN MECH.HPP/MECH.CPP
#define FirstMechID 0
#define M_Argus 0
#define M_Atlas 1
#define M_Awesome 2
#define M_Bushwacker 3
#define M_Catapult 4
#define M_Chimera 5
#define	M_Cougar 6
#define M_Daishi 7
#define M_Hellspawn 8
#define M_Loki 9
#define M_Madcat 10
#define M_Madcat_MKII 11
#define M_Mauler 12
#define M_Novacat 13
#define M_Osiris 14
#define M_Raven 15
#define M_Shadowcat 16
#define M_Thanatos 17
#define M_Thor 18
#define M_Uziel 19
#define M_Vulture 20
//mech packs
#define M_Dragon 21
#define M_Masakari 22
#define M_CauldronBorn 23
#define M_Highlander 24
#define M_Zeus 25
#define M_Hunchback 26
#define M_ArcticWolf 27
#define M_Kodiak 28



#define LastMechID 28
#define NoMechID 29  //This is used for the stack sprites in the campaign screen...

#define M_CameraShip LastMechID+1
#define EmptyMechID LastMechID+2

#define LastVengeanceMechID M_Vulture


//Weapon IDs
#define EmptyWeaponID -1
//Beams
#define FirstWeaponID 0
#define FirstBeamID 0
#define W_Flamer 0
#define W_Bombast 1
#define W_ERLargeLaser 2
#define W_ERMediumLaser 3
#define W_ERSmallLaser 4
#define W_LargeLaser 5
#define W_MediumLaser 6
#define W_SmallLaser 7
#define W_ERPPC 8
#define W_PPC 9
#define W_ERLargePulse 10
#define W_ERMediumPulse 11
#define W_ERSmallPulse 12
#define W_LargePulse 13
#define W_MediumPulse 14
#define W_SmallPulse 15
#define W_ERFlamer 16
#define LastBeamID 16

//Missiles
#define FirstMissileID 51
#define W_LRM5 51
#define W_LRM10 52
#define W_LRM15 53
#define W_LRM20 54
#define W_ClanLRM5 55
#define W_ClanLRM10 56
#define W_ClanLRM15 57
#define W_ClanLRM20 58
#define W_MRM10 59
#define W_MRM20 60
#define W_MRM30 61
#define W_MRM40 62
#define W_SRM2 63
#define W_SRM4 64
#define W_SRM6 65
#define W_SSRM2 66
#define W_SSRM4 67
#define W_SSRM6 68
#define W_Thunderbolt 69
#define W_NarcBeacon 70
#define W_ClanNarcBeacon 71
#define W_Flare 72
#define W_HighExplosive 73
#define W_ArtilleryStrike 74
#define W_SMRM10 75
#define W_SMRM20 76
#define W_SMRM30 77
#define W_SMRM40 78
#define LastMissileID 78

//Projectiles
#define FirstProjectileID 100
#define W_AC5 100
#define W_AC10 101
#define W_LBXAC10 102
#define W_LBXAC20 103
#define W_ClanLBXAC10 104
#define W_ClanLBXAC20 105
#define W_UltraAC2 106
#define W_UltraAC5 107
#define W_ClanUltraAC2 108
#define W_ClanUltraAC5 109
#define W_ClanGauss 110
#define W_Gauss 111
#define W_LightGauss 112
#define W_LongTom 113
#define W_MachineGun 114
#define W_ClanMachineGun 115
#define W_HeavyGauss 116
#define LastProjectileID 116
#define LastWeaponID 116

#define FirstGenericSubsystemID 131
#define Sub_JumpJet 131
#define Sub_AMS 132
#define Sub_LAMS 133
#define Sub_ECM	134
#define Sub_HeatSink 135
#define Sub_Beagle 136
#define Sub_LightAmp 137
#define Sub_EnhancedOptics 138
#define Sub_IFF_Jammer 139
#define LastGenericSubsystemID 139


//Weapon Slot defines
#define Slot_Empty -1
#define Slot_Missile 0
#define Slot_Projectile 1
#define Slot_Beam 2
#define Slot_Omni 3

//Armor Values
#define A_LeftLeg 0
#define A_RightLeg 1
#define A_LeftArm 2
#define A_RightArm 3
#define A_RightTorso 4
#define A_LeftTorso 5
#define A_CenterTorso 6
#define A_RearTorso 7
#define A_Head 8

//Armor Values
#define Armor_Ferro 0
#define Armor_Reactive 1
#define Armor_Reflective 2

//Internal Values
#define Internal_Standard 0
#define Internal_EndoSteel 1

//Tech Types
#define Tech_IS 0
#define Tech_Clan 1




