Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

337 lines
8.8 KiB
C

//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
#define MLGetMechStatus 68
#define MLGetBlackMarketItemCount 69
//Expansion Functions
//Black Market Support
#define BMDataSetupSalvageChits 71 //IDs, tradeValues, num
#define BMDataSetupOfferingChits 72
#define BMDataSetupMarketChits 73
#define BMDataSetupAcquiringChits 74
#define BMOfferItemForTrade 75 //ID
#define BMCancelOfferForTrade 76 //ID
#define BMAcquireItemForTrade 77 //ID
#define BMCancelAcquireForTrade 78 //ID
#define BMIsTradeValid 79
#define BMGetOfferingValue 80
#define BMGetAcquiringValue 81
#define BMExecuteTrade 82
#define BMExit 83
#define BMDataSetupBeamWeaponSalvageChits 84
#define BMDataSetupBallisticWeaponSalvageChits 85
#define BMDataSetupMissileWeaponSalvageChits 86
#define BMDataSetupMechSalvageChits 87
#define BMDataSetupBeamWeaponMarketChits 88
#define BMDataSetupBallisticWeaponMarketChits 89
#define BMDataSetupMissileWeaponMarketChits 90
#define BMDataSetupMechMarketChits 91
#define BMRestore 92
// Enhanced Optics
#define MLGetEnhancedOptics 93
#define MLSetEnhancedOptics 94
// IFF Jammer
#define MLGetIFF_Jammer 95
#define MLSetIFF_Jammer 96
//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_ArcticWolf 0
#define M_Argus 1
#define M_Atlas 2
#define M_Awesome 3
#define M_BlackKnight 4
#define M_Bushwacker 5
#define M_Catapult 6
#define M_CauldronBorn 7
#define M_Chimera 8
#define M_Cougar 9
#define M_Daishi 10
#define M_Dragon 11
#define M_Hellspawn 12
#define M_Highlander 13
#define M_Hunchback 14
#define M_Kodiak 15
#define M_Loki 16
#define M_Madcat 17
#define M_Madcat_MKII 18
#define M_Masakari 19
#define M_Mauler 20
#define M_Novacat 21
#define M_Osiris 22
#define M_Raven 23
#define M_Ryoken 24
#define M_Shadowcat 25
#define M_Sunder 26
#define M_Thanatos 27
#define M_Thor 28
#define M_Uller 29
#define M_Uziel 30
#define M_Vulture 31
#define M_Wolfhound 32
#define M_Zeus 33
#define LastMechID 33
#define NoMechID 34 //This is used for the stack sprites in the campaign screen...
#define M_CameraShip LastMechID+1
#define EmptyMechID LastMechID+2
//Expansion Mech trading chits
//This offset for Mech ID is so that
//you can trade chassis on the Black Market
//by trading these Mech Chits
//Since Weapons are traded as well, the Mech these
//Mech chit IDs need to be unique among the weapons.
//
#define FirstMechChitID 150
//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
//expansion
#define W_LargeXPulse 16
#define W_MedXPulse 17
#define W_SmallXPulse 18
#define W_ERFlamer 19
#define LastBeamID 19
//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_AC20 102
#define W_LBXAC10 103
#define W_LBXAC20 104
#define W_ClanLBXAC10 105
#define W_ClanLBXAC20 106
#define W_UltraAC2 107
#define W_UltraAC5 108
#define W_UltraAC10 109
#define W_UltraAC20 110
#define W_ClanUltraAC2 111
#define W_ClanUltraAC5 112
#define W_ClanUltraAC10 113
#define W_ClanUltraAC20 114
#define W_ClanGauss 115
#define W_Gauss 116
#define W_LightGauss 117
#define W_LongTom 118
#define W_ClusterBomb 119
#define W_MachineGun 120
#define W_ClanMachineGun 121
#define W_HeavyGauss 122
#define LastProjectileID 122
#define LastWeaponID 122
//unique weapon
#define W_ModlLaser 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 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