//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

// MSL 5.02 SubSystems
// Enhanced Optics
//#define MLGetEnhancedOptics 93
//#define MLSetEnhancedOptics 94

// IFF Jammer
#define MLGetIFF_Jammer 68
#define MLSetIFF_Jammer 69

// Advanced Gyro
#define MLGetAdvancedGyro 70
#define MLSetAdvancedGyro 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
// MSL ADD MECH
#define FirstMechID		0	
#define M_Annihilator		0	
#define M_Archer		1	
#define M_Arcticwolf		2	
#define M_Ares		3	
#define M_Argus		4	
#define M_Assassin2		5	
#define M_Atlas		6	
#define M_Avatar		7	
#define M_Awesome		8	
#define M_Battlemaster		9	
#define M_BattlemasterIIc		10	
#define M_Behemoth		11	
#define M_BehemothII		12	
#define M_Blackhawk		13	
#define M_Blackknight		14	
#define M_Blacklanner		15	
#define M_Brigand		16	
#define M_Bushwacker		17	
#define M_Catapult		18	
#define M_Cauldronborn		19	
#define M_Chimera		20	
#define M_Commando		21	
#define M_Cougar		22	
#define M_Cyclops		23	
#define M_Daishi		24	
#define M_Deimos		25	
#define M_Dragon		26	
#define M_Fafnir		27	
#define M_Flea		28	
#define M_Gladiator		29	
#define M_Grizzly		30	
#define M_Hauptmann		31	
#define M_Hellhound		32	
#define M_Hellspawn		33	
#define M_Highlander		34	
#define M_HollanderII		35	
#define M_Hunchback		36	
#define M_Kodiak		37	
#define M_Loki		38	
#define M_Longbow		39	
#define M_Madcat		40	
#define M_Madcat_MKII		41	
#define M_Masakari		42	
#define M_Mauler		43	
#define M_Novacat		44	
#define M_Osiris		45	
#define M_Owens		46	
#define M_Puma		47	
#define M_Raven		48	
#define M_Rifleman		49	
#define M_Ryoken		50	
#define M_Shadowcat		51	
#define M_Solitaire		52	
#define M_Sunder		53	
#define M_Templar		54	
#define M_Thanatos		55	
#define M_Thor		56	
#define M_Uller		57	
#define M_Urbanmech		58	
#define M_Uziel		59	
#define M_Victor		60	
#define M_Vulture		61	
#define M_Warhammer		62	
#define M_Wolfhound		63	
#define M_Zeus		64	
#define LastMechID		64	
#define NoMechID		65	 //This is used for the stack sprites in the campaign screen...

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


//Weapon IDs
#define EmptyWeaponID -1
//Beams
#define FirstWeaponID		0
#define FirstBeamID			0
#define W_SmallLaser		0
#define W_MediumLaser		1
#define W_LargeLaser		2
#define W_SmallPulse		3
#define W_MediumPulse		4
#define W_LargePulse		5
#define W_ERSmallLaser		6
#define W_ERMediumLaser		7
#define W_ERLargeLaser		8
#define W_SmallXPulse		9
#define W_MedXPulse			10
#define W_LargeXPulse		11
#define W_ClanSmallPulse	12
#define W_ClanMediumPulse	13
#define W_ClanLargePulse	14
#define W_ClanERSmallLaser	15
#define W_ClanERMediumLaser	16
#define W_ClanERLargeLaser	17
#define W_PPC				18
#define W_ERPPC				19
#define W_ClanERPPC			20
#define W_Flamer			21
#define W_ERFlamer			22
#define W_Bombast			23
#define LastBeamID			23

//Missiles
#define FirstMissileID		51
#define W_SRM2				51
#define W_SRM4				52
#define W_SRM6				53
#define W_ClanSRM2			54
#define W_ClanSRM4			55
#define W_ClanSRM6			56
#define W_SSRM2				57
#define W_SSRM4				58
#define W_SSRM6				59
#define W_ClanSSRM2			60
#define W_ClanSSRM4			61
#define W_ClanSSRM6			62
#define W_MRM10				63
#define W_MRM20				64
#define W_MRM30				65
#define W_MRM40				66
#define W_SMRM10			67
#define W_SMRM20			68
#define W_SMRM30			69
#define W_SMRM40			70
#define W_ClanSMRM10		71
#define W_ClanSMRM20		72
#define W_ClanSMRM30		73
#define W_ClanSMRM40		74
#define W_LRM5				75
#define W_LRM10				76
#define W_LRM15				77
#define W_LRM20				78
#define W_ClanLRM5			79
#define W_ClanLRM10			80
#define W_ClanLRM15			81
#define W_ClanLRM20			82
#define W_Thunderbolt		83
#define W_NarcBeacon		84
#define W_ClanNarcBeacon	85
#define W_Flare				86
#define W_HighExplosive		87
#define W_ArtilleryStrike	88
#define LastMissileID		88

//Projectiles
#define FirstProjectileID	100
#define W_AC2				100
#define W_AC5				101
#define W_AC10				102
#define W_AC20				103
#define W_LBXAC10			104
#define W_LBXAC20			105
#define W_ClanLBXAC10		106
#define W_ClanLBXAC20		107
#define W_UltraAC2			108
#define W_UltraAC5			109
#define W_UltraAC10			110
#define W_UltraAC20			111
#define W_ClanUltraAC2		112
#define W_ClanUltraAC5		113
#define W_ClanUltraAC10		114
#define W_ClanUltraAC20		115
#define W_LightGauss		116
#define W_Gauss				117
#define W_HeavyGauss		118
#define W_ClanGauss			119
#define W_MachineGun		120
#define W_ClanMachineGun	121
#define W_LongTom			122
#define LastProjectileID	122
#define LastWeaponID		122

#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 138
#define Sub_AdvancedGyro 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_Standard 0
#define Armor_Ferro 1
#define Armor_Reactive 2
#define Armor_Reflective 3

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

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




