Clean up missile types

This commit is contained in:
Anders Jenbo 2021-02-25 09:56:10 +01:00
commit 61729c1eb6
5 changed files with 372 additions and 377 deletions

View file

@ -11,114 +11,114 @@ DEVILUTION_BEGIN_NAMESPACE
MissileData missiledata[] = {
// clang-format off
// mName, mAddProc, mProc, mDraw, mType, mResist, mFileNum, miSFX, mlSFX;
{ MIS_ARROW, &AddArrow, &MI_Arrow, TRUE, 0, MISR_NONE, MFILE_ARROWS, -1, -1 },
{ MIS_FIREBOLT, &AddFirebolt, &MI_Firebolt, TRUE, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 },
{ MIS_GUARDIAN, &AddGuardian, &MI_Guardian, TRUE, 1, MISR_NONE, MFILE_GUARD, LS_GUARD, LS_GUARDLAN },
{ MIS_RNDTELEPORT, &AddRndTeleport, &MI_Teleport, FALSE, 1, MISR_NONE, MFILE_NONE, LS_TELEPORT, -1 },
{ MIS_LIGHTBALL, &AddLightball, &MI_Lightball, TRUE, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 },
{ MIS_FIREWALL, &AddFirewall, &MI_Firewall, TRUE, 1, MISR_FIRE, MFILE_FIREWAL, LS_WALLLOOP, LS_FIRIMP2 },
{ MIS_FIREBALL, &AddFireball, &MI_Fireball, TRUE, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 },
{ MIS_LIGHTCTRL, &AddLightctrl, &MI_Lightctrl, FALSE, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 },
{ MIS_LIGHTNING, &AddLightning, &MI_Lightning, TRUE, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_LNING1, LS_ELECIMP1 },
{ MIS_MISEXP, &AddMisexp, &MI_Misexp, TRUE, 2, MISR_NONE, MFILE_MAGBLOS, -1, -1 },
{ MIS_TOWN, &AddTown, &MI_Town, TRUE, 1, MISR_MAGIC, MFILE_PORTAL, LS_SENTINEL, LS_ELEMENTL },
{ MIS_FLASH, &AddFlash, &MI_Flash, TRUE, 1, MISR_MAGIC, MFILE_BLUEXFR, LS_NOVA, LS_ELECIMP1 },
{ MIS_FLASH2, &AddFlash2, &MI_Flash2, TRUE, 1, MISR_MAGIC, MFILE_BLUEXBK, -1, -1 },
{ MIS_MANASHIELD, &AddManashield, &MI_SetManashield, FALSE, 1, MISR_MAGIC, MFILE_MANASHLD, LS_MSHIELD, -1 },
{ MIS_FIREMOVE, &AddFiremove, &MI_Firemove, TRUE, 1, MISR_FIRE, MFILE_FIREWAL, -1, -1 },
{ MIS_CHAIN, &AddChain, &MI_Chain, TRUE, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_LNING1, LS_ELECIMP1 },
{ MIS_SENTINAL, NULL, NULL, TRUE, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 },
{ MIS_BLODSTAR, &miss_null_11, &mi_null_11, TRUE, 2, MISR_NONE, MFILE_BLOOD, LS_BLODSTAR, LS_BLSIMPT },
{ MIS_BONE, &miss_null_12, &mi_null_11, TRUE, 2, MISR_NONE, MFILE_BONE, -1, -1 },
{ MIS_METLHIT, &miss_null_13, &mi_null_11, TRUE, 2, MISR_NONE, MFILE_METLHIT, -1, -1 },
{ MIS_RHINO, &AddRhino, &MI_Rhino, TRUE, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_MAGMABALL, &AddMagmaball, &MI_Firebolt, TRUE, 1, MISR_FIRE, MFILE_MAGBALL, -1, -1 },
{ MIS_LIGHTCTRL2, &AddLightctrl, &MI_Lightctrl, FALSE, 1, MISR_LIGHTNING, MFILE_THINLGHT, -1, -1 },
{ MIS_LIGHTNING2, &AddLightning, &MI_Lightning, TRUE, 1, MISR_LIGHTNING, MFILE_THINLGHT, -1, -1 },
{ MIS_FLARE, &AddFlare, &MI_Firebolt, TRUE, 1, MISR_MAGIC, MFILE_FLARE, -1, -1 },
{ MIS_MISEXP2, &AddMisexp, &MI_Misexp, TRUE, 2, MISR_MAGIC, MFILE_FLAREEXP, -1, -1 },
{ MIS_TELEPORT, &AddTeleport, &MI_Teleport, FALSE, 1, MISR_NONE, MFILE_NONE, LS_ELEMENTL, -1 },
{ MIS_FARROW, &AddLArrow, &MI_LArrow, TRUE, 0, MISR_FIRE, MFILE_FARROW, -1, -1 },
{ MIS_DOOMSERP, NULL, NULL, FALSE, 1, MISR_MAGIC, MFILE_DOOM, LS_DSERP, -1 },
{ MIS_FIREWALLA, &miss_null_1D, &MI_Firewall, TRUE, 2, MISR_FIRE, MFILE_FIREWAL, -1, -1 },
{ MIS_STONE, &AddStone, &MI_Stone, FALSE, 1, MISR_MAGIC, MFILE_NONE, LS_SCURIMP, -1 },
{ MIS_NULL_1F, &miss_null_1F, &MI_Dummy, TRUE, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_INVISIBL, NULL, NULL, FALSE, 1, MISR_NONE, MFILE_NONE, LS_INVISIBL, -1 },
{ MIS_GOLEM, &AddGolem, &MI_Golem, FALSE, 1, MISR_NONE, MFILE_NONE, LS_GOLUM, -1 },
{ MIS_ETHEREALIZE, &AddEtherealize, &MI_Etherealize, TRUE, 1, MISR_NONE, MFILE_ETHRSHLD, LS_ETHEREAL, -1 },
{ MIS_BLODBUR, &miss_null_23, &mi_null_11, TRUE, 2, MISR_NONE, MFILE_BLODBUR, -1, -1 },
{ MIS_BOOM, &AddBoom, &MI_Boom, TRUE, 2, MISR_NONE, MFILE_NEWEXP, -1, -1 },
{ MIS_HEAL, &AddHeal, &MI_Dummy, FALSE, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_FIREWALLC, &AddFirewallC, &MI_FirewallC, FALSE, 1, MISR_FIRE, MFILE_FIREWAL, -1, -1 },
{ MIS_INFRA, &AddInfra, &MI_Infra, FALSE, 1, MISR_NONE, MFILE_NONE, LS_INFRAVIS, -1 },
{ MIS_IDENTIFY, &AddIdentify, &MI_Dummy, FALSE, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_WAVE, &AddWave, &MI_Wave, TRUE, 1, MISR_FIRE, MFILE_FIREWAL, LS_FLAMWAVE, -1 },
{ MIS_NOVA, &AddNova, &MI_Nova, TRUE, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_NOVA, -1 },
{ MIS_BLODBOIL, &AddBlodboil, &MI_Blodboil, FALSE, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_APOCA, &AddApoca, &MI_Apoca, TRUE, 1, MISR_MAGIC, MFILE_NEWEXP, LS_APOC, -1 },
{ MIS_REPAIR, &AddRepair, &MI_Dummy, FALSE, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_RECHARGE, &AddRecharge, &MI_Dummy, FALSE, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_DISARM, &AddDisarm, &MI_Dummy, FALSE, 2, MISR_NONE, MFILE_NONE, LS_TRAPDIS, -1 },
{ MIS_FLAME, &AddFlame, &MI_Flame, TRUE, 1, MISR_FIRE, MFILE_INFERNO, LS_SPOUTSTR, -1 },
{ MIS_FLAMEC, &AddFlamec, &MI_Flamec, FALSE, 1, MISR_FIRE, MFILE_NONE, -1, -1 },
{ MIS_FIREMAN, &miss_null_32, &mi_null_32, TRUE, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_KRULL, &miss_null_33, &mi_null_33, TRUE, 0, MISR_FIRE, MFILE_KRULL, -1, -1 },
{ MIS_CBOLT, &AddCbolt, &MI_Cbolt, TRUE, 1, MISR_LIGHTNING, MFILE_MINILTNG, LS_CBOLT, -1 },
{ MIS_HBOLT, &AddHbolt, &MI_Hbolt, TRUE, 1, MISR_NONE, MFILE_HOLY, LS_HOLYBOLT, LS_ELECIMP1 },
{ MIS_RESURRECT, &AddResurrect, &MI_Dummy, FALSE, 1, MISR_MAGIC, MFILE_NONE, -1, LS_RESUR },
{ MIS_TELEKINESIS, &AddTelekinesis, &MI_Dummy, FALSE, 1, MISR_NONE, MFILE_NONE, LS_ETHEREAL, -1 },
{ MIS_LARROW, &AddLArrow, &MI_LArrow, TRUE, 0, MISR_LIGHTNING, MFILE_LARROW, -1, -1 },
{ MIS_ACID, &AddAcid, &MI_Firebolt, TRUE, 1, MISR_ACID, MFILE_ACIDBF, LS_ACID, -1 },
{ MIS_MISEXP3, &AddMisexp, &MI_Acidsplat, TRUE, 2, MISR_ACID, MFILE_ACIDSPLA, -1, -1 },
{ MIS_ACIDPUD, &AddAcidpud, &MI_Acidpud, TRUE, 2, MISR_ACID, MFILE_ACIDPUD, LS_PUDDLE, -1 },
{ MIS_HEALOTHER, &AddHealOther, &MI_Dummy, FALSE, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_ELEMENT, &AddElement, &MI_Element, TRUE, 1, MISR_FIRE, MFILE_FIRERUN, LS_ELEMENTL, -1 },
{ MIS_RESURRECTBEAM, &AddResurrectBeam, &MI_ResurrectBeam, TRUE, 1, MISR_NONE, MFILE_RESSUR1, -1, -1 },
{ MIS_BONESPIRIT, &AddBoneSpirit, &MI_Bonespirit, TRUE, 1, MISR_MAGIC, MFILE_SKLBALL, LS_BONESP, LS_BSIMPCT },
{ MIS_WEAPEXP, &AddWeapexp, &MI_Weapexp, TRUE, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_RPORTAL, &AddRportal, &MI_Rportal, TRUE, 2, MISR_NONE, MFILE_RPORTAL, LS_SENTINEL, LS_ELEMENTL },
{ MIS_BOOM2, &AddBoom, &MI_Boom, TRUE, 2, MISR_NONE, MFILE_FIREPLAR, -1, -1 },
{ MIS_DIABAPOCA, &AddDiabApoca, &MI_Dummy, FALSE, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_MANA, &missiles_rech_mana, &MI_Dummy, FALSE, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_MAGI, &missiles_magi, &MI_Dummy, FALSE, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_LIGHTWALL, &missiles_light_wall, &mi_light_wall, TRUE, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_LMAG, LS_ELECIMP1 },
{ MIS_LIGHTNINGWALL, &AddFirewallC, &mi_lightning_wall, FALSE, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 },
{ MIS_IMMOLATION, &AddNova, &mi_fire_nova, TRUE, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 },
{ MIS_SPECARROW, &missiles_spec_arrow, &mi_spec_arrow, TRUE, 0, MISR_NONE, MFILE_ARROWS, -1, -1 },
{ MIS_FIRENOVA, &missiles_immo_2, &MI_Fireball, TRUE, 1, MISR_FIRE, MFILE_FIREBA, IS_FBALLBOW, LS_FIRIMP2 },
{ MIS_LIGHTARROW, &missiles_larrow, &mi_light_arrow, FALSE, 1, MISR_LIGHTNING, MFILE_LGHNING, IS_FBALLBOW, -1 },
{ MIS_CBOLTARROW, &missiles_cbolt_arrow, &MI_Cbolt, TRUE, 1, MISR_LIGHTNING, MFILE_MINILTNG, LS_CBOLT, -1 },
{ MIS_HBOLTARROW, &missiles_hbolt_arrow, &MI_Hbolt, TRUE, 1, MISR_NONE, MFILE_HOLY, LS_HOLYBOLT, LS_ELECIMP1 },
{ MIS_WARP, &missiles_warp, &MI_Teleport, FALSE, 1, MISR_NONE, MFILE_NONE, LS_ETHEREAL, -1 },
{ MIS_REFLECT, &missiles_reflection, &mi_reflect, TRUE, 1, MISR_NONE, MFILE_REFLECT, LS_MSHIELD, -1 },
{ MIS_BERSERK, &missiles_berserk, &MI_Dummy, FALSE, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_FIRERING, &missiles_ring, &mi_fire_ring, FALSE, 1, MISR_FIRE, MFILE_FIREWAL, -1, -1 },
{ MIS_STEALPOTS, &missiles_steal_pots, &MI_Dummy, FALSE, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_MANATRAP, &missiles_mana_trap, &MI_Dummy, FALSE, 1, MISR_NONE, MFILE_NONE, IS_CAST7, -1 },
{ MIS_LIGHTRING, &missiles_ring, &mi_light_ring, FALSE, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 },
{ MIS_SEARCH, &missiles_search, &mi_search, FALSE, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_FLASHBK, &missiles_433040, &mi_flashbk, TRUE, 1, MISR_MAGIC, MFILE_BLUEXBK, -1, -1 },
{ MIS_FLASHFR, &missiles_43303D, &mi_flashfr, TRUE, 1, MISR_MAGIC, MFILE_BLUEXFR, -1, LS_ELECIMP1 },
{ MIS_IMMOLATION2, &missiles_immo_1, &mi_immolation, TRUE, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 },
{ MIS_RUNEFIRE, &missiles_fire_rune, &MI_Rune, TRUE, 1, MISR_NONE, MFILE_RUNE, -1, -1 },
{ MIS_RUNELIGHT, &missiles_light_rune, &MI_Rune, TRUE, 1, MISR_NONE, MFILE_RUNE, -1, -1 },
{ MIS_RUNENOVA, &missiles_great_light_rune, &MI_Rune, TRUE, 1, MISR_NONE, MFILE_RUNE, -1, -1 },
{ MIS_RUNEIMMOLAT, &missiles_immolation_rune, &MI_Rune, TRUE, 1, MISR_NONE, MFILE_RUNE, -1, -1 },
{ MIS_RUNESTONE, &missiles_stone_rune, &MI_Rune, TRUE, 1, MISR_NONE, MFILE_RUNE, -1, -1 },
{ MIS_HIVEEXP, &missiles_rune_explosion, &mi_hive_explode, TRUE, 1, MISR_FIRE, MFILE_BIGEXP, LS_NESTXPLD, LS_NESTXPLD },
{ MIS_HORKDMN, &missiles_430624, &missiles_4359A0, TRUE, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_JESTER, &missiles_jester, &MI_Dummy, FALSE, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_HIVEEXP2, &missiles_hive_explosion, &MI_Dummy, FALSE, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_LICH, &AddFlare, &MI_Firebolt, TRUE, 1, MISR_MAGIC, MFILE_LICH, -1, -1 },
{ MIS_PSYCHORB, &AddFlare, &MI_Firebolt, TRUE, 1, MISR_MAGIC, MFILE_BONEDEMON, -1, -1 },
{ MIS_NECROMORB, &AddFlare, &MI_Firebolt, TRUE, 1, MISR_MAGIC, MFILE_NECROMORB, -1, -1 },
{ MIS_ARCHLICH, &AddFlare, &MI_Firebolt, TRUE, 1, MISR_MAGIC, MFILE_ARCHLICH, -1, -1 },
{ MIS_BONEDEMON, &AddFlare, &MI_Firebolt, TRUE, 1, MISR_MAGIC, MFILE_BONEDEMON, -1, -1 },
{ MIS_EXYEL2, &AddMisexp, &MI_Misexp, TRUE, 2, MISR_NONE, MFILE_EXYEL2, LS_FIRIMP2, -1 },
{ MIS_EXRED3, &AddMisexp, &MI_Misexp, TRUE, 2, MISR_NONE, MFILE_EXRED3, LS_FIRIMP2, -1 },
{ MIS_EXBL2, &AddMisexp, &MI_Misexp, TRUE, 2, MISR_NONE, MFILE_EXBL2, LS_FIRIMP2, -1 },
{ MIS_EXBL3, &AddMisexp, &MI_Misexp, TRUE, 2, MISR_NONE, MFILE_EXBL3, LS_FIRIMP2, -1 },
{ MIS_EXORA1, &AddMisexp, &MI_Misexp, TRUE, 2, MISR_NONE, MFILE_EXORA1, LS_FIRIMP2, -1 },
{ MIS_ARROW, &AddArrow, &MI_Arrow, true, 0, MISR_NONE, MFILE_ARROWS, -1, -1 },
{ MIS_FIREBOLT, &AddFirebolt, &MI_Firebolt, true, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 },
{ MIS_GUARDIAN, &AddGuardian, &MI_Guardian, true, 1, MISR_NONE, MFILE_GUARD, LS_GUARD, LS_GUARDLAN },
{ MIS_RNDTELEPORT, &AddRndTeleport, &MI_Teleport, false, 1, MISR_NONE, MFILE_NONE, LS_TELEPORT, -1 },
{ MIS_LIGHTBALL, &AddLightball, &MI_Lightball, true, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 },
{ MIS_FIREWALL, &AddFirewall, &MI_Firewall, true, 1, MISR_FIRE, MFILE_FIREWAL, LS_WALLLOOP, LS_FIRIMP2 },
{ MIS_FIREBALL, &AddFireball, &MI_Fireball, true, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 },
{ MIS_LIGHTCTRL, &AddLightctrl, &MI_Lightctrl, false, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 },
{ MIS_LIGHTNING, &AddLightning, &MI_Lightning, true, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_LNING1, LS_ELECIMP1 },
{ MIS_MISEXP, &AddMisexp, &MI_Misexp, true, 2, MISR_NONE, MFILE_MAGBLOS, -1, -1 },
{ MIS_TOWN, &AddTown, &MI_Town, true, 1, MISR_MAGIC, MFILE_PORTAL, LS_SENTINEL, LS_ELEMENTL },
{ MIS_FLASH, &AddFlash, &MI_Flash, true, 1, MISR_MAGIC, MFILE_BLUEXFR, LS_NOVA, LS_ELECIMP1 },
{ MIS_FLASH2, &AddFlash2, &MI_Flash2, true, 1, MISR_MAGIC, MFILE_BLUEXBK, -1, -1 },
{ MIS_MANASHIELD, &AddManashield, &MI_SetManashield, false, 1, MISR_MAGIC, MFILE_MANASHLD, LS_MSHIELD, -1 },
{ MIS_FIREMOVE, &AddFiremove, &MI_Firemove, true, 1, MISR_FIRE, MFILE_FIREWAL, -1, -1 },
{ MIS_CHAIN, &AddChain, &MI_Chain, true, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_LNING1, LS_ELECIMP1 },
{ MIS_SENTINAL, NULL, NULL, true, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 },
{ MIS_BLODSTAR, &miss_null_11, &mi_null_11, true, 2, MISR_NONE, MFILE_BLOOD, LS_BLODSTAR, LS_BLSIMPT },
{ MIS_BONE, &miss_null_12, &mi_null_11, true, 2, MISR_NONE, MFILE_BONE, -1, -1 },
{ MIS_METLHIT, &miss_null_13, &mi_null_11, true, 2, MISR_NONE, MFILE_METLHIT, -1, -1 },
{ MIS_RHINO, &AddRhino, &MI_Rhino, true, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_MAGMABALL, &AddMagmaball, &MI_Firebolt, true, 1, MISR_FIRE, MFILE_MAGBALL, -1, -1 },
{ MIS_LIGHTCTRL2, &AddLightctrl, &MI_Lightctrl, false, 1, MISR_LIGHTNING, MFILE_THINLGHT, -1, -1 },
{ MIS_LIGHTNING2, &AddLightning, &MI_Lightning, true, 1, MISR_LIGHTNING, MFILE_THINLGHT, -1, -1 },
{ MIS_FLARE, &AddFlare, &MI_Firebolt, true, 1, MISR_MAGIC, MFILE_FLARE, -1, -1 },
{ MIS_MISEXP2, &AddMisexp, &MI_Misexp, true, 2, MISR_MAGIC, MFILE_FLAREEXP, -1, -1 },
{ MIS_TELEPORT, &AddTeleport, &MI_Teleport, false, 1, MISR_NONE, MFILE_NONE, LS_ELEMENTL, -1 },
{ MIS_FARROW, &AddLArrow, &MI_LArrow, true, 0, MISR_FIRE, MFILE_FARROW, -1, -1 },
{ MIS_DOOMSERP, NULL, NULL, false, 1, MISR_MAGIC, MFILE_DOOM, LS_DSERP, -1 },
{ MIS_FIREWALLA, &miss_null_1D, &MI_Firewall, true, 2, MISR_FIRE, MFILE_FIREWAL, -1, -1 },
{ MIS_STONE, &AddStone, &MI_Stone, false, 1, MISR_MAGIC, MFILE_NONE, LS_SCURIMP, -1 },
{ MIS_NULL_1F, &miss_null_1F, &MI_Dummy, true, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_INVISIBL, NULL, NULL, false, 1, MISR_NONE, MFILE_NONE, LS_INVISIBL, -1 },
{ MIS_GOLEM, &AddGolem, &MI_Golem, false, 1, MISR_NONE, MFILE_NONE, LS_GOLUM, -1 },
{ MIS_ETHEREALIZE, &AddEtherealize, &MI_Etherealize, true, 1, MISR_NONE, MFILE_ETHRSHLD, LS_ETHEREAL, -1 },
{ MIS_BLODBUR, &miss_null_23, &mi_null_11, true, 2, MISR_NONE, MFILE_BLODBUR, -1, -1 },
{ MIS_BOOM, &AddBoom, &MI_Boom, true, 2, MISR_NONE, MFILE_NEWEXP, -1, -1 },
{ MIS_HEAL, &AddHeal, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_FIREWALLC, &AddFirewallC, &MI_FirewallC, false, 1, MISR_FIRE, MFILE_FIREWAL, -1, -1 },
{ MIS_INFRA, &AddInfra, &MI_Infra, false, 1, MISR_NONE, MFILE_NONE, LS_INFRAVIS, -1 },
{ MIS_IDENTIFY, &AddIdentify, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_WAVE, &AddWave, &MI_Wave, true, 1, MISR_FIRE, MFILE_FIREWAL, LS_FLAMWAVE, -1 },
{ MIS_NOVA, &AddNova, &MI_Nova, true, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_NOVA, -1 },
{ MIS_BLODBOIL, &AddBlodboil, &MI_Blodboil, false, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_APOCA, &AddApoca, &MI_Apoca, true, 1, MISR_MAGIC, MFILE_NEWEXP, LS_APOC, -1 },
{ MIS_REPAIR, &AddRepair, &MI_Dummy, false, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_RECHARGE, &AddRecharge, &MI_Dummy, false, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_DISARM, &AddDisarm, &MI_Dummy, false, 2, MISR_NONE, MFILE_NONE, LS_TRAPDIS, -1 },
{ MIS_FLAME, &AddFlame, &MI_Flame, true, 1, MISR_FIRE, MFILE_INFERNO, LS_SPOUTSTR, -1 },
{ MIS_FLAMEC, &AddFlamec, &MI_Flamec, false, 1, MISR_FIRE, MFILE_NONE, -1, -1 },
{ MIS_FIREMAN, &miss_null_32, &mi_null_32, true, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_KRULL, &miss_null_33, &mi_null_33, true, 0, MISR_FIRE, MFILE_KRULL, -1, -1 },
{ MIS_CBOLT, &AddCbolt, &MI_Cbolt, true, 1, MISR_LIGHTNING, MFILE_MINILTNG, LS_CBOLT, -1 },
{ MIS_HBOLT, &AddHbolt, &MI_Hbolt, true, 1, MISR_NONE, MFILE_HOLY, LS_HOLYBOLT, LS_ELECIMP1 },
{ MIS_RESURRECT, &AddResurrect, &MI_Dummy, false, 1, MISR_MAGIC, MFILE_NONE, -1, LS_RESUR },
{ MIS_TELEKINESIS, &AddTelekinesis, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, LS_ETHEREAL, -1 },
{ MIS_LARROW, &AddLArrow, &MI_LArrow, true, 0, MISR_LIGHTNING, MFILE_LARROW, -1, -1 },
{ MIS_ACID, &AddAcid, &MI_Firebolt, true, 1, MISR_ACID, MFILE_ACIDBF, LS_ACID, -1 },
{ MIS_MISEXP3, &AddMisexp, &MI_Acidsplat, true, 2, MISR_ACID, MFILE_ACIDSPLA, -1, -1 },
{ MIS_ACIDPUD, &AddAcidpud, &MI_Acidpud, true, 2, MISR_ACID, MFILE_ACIDPUD, LS_PUDDLE, -1 },
{ MIS_HEALOTHER, &AddHealOther, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_ELEMENT, &AddElement, &MI_Element, true, 1, MISR_FIRE, MFILE_FIRERUN, LS_ELEMENTL, -1 },
{ MIS_RESURRECTBEAM, &AddResurrectBeam, &MI_ResurrectBeam, true, 1, MISR_NONE, MFILE_RESSUR1, -1, -1 },
{ MIS_BONESPIRIT, &AddBoneSpirit, &MI_Bonespirit, true, 1, MISR_MAGIC, MFILE_SKLBALL, LS_BONESP, LS_BSIMPCT },
{ MIS_WEAPEXP, &AddWeapexp, &MI_Weapexp, true, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_RPORTAL, &AddRportal, &MI_Rportal, true, 2, MISR_NONE, MFILE_RPORTAL, LS_SENTINEL, LS_ELEMENTL },
{ MIS_BOOM2, &AddBoom, &MI_Boom, true, 2, MISR_NONE, MFILE_FIREPLAR, -1, -1 },
{ MIS_DIABAPOCA, &AddDiabApoca, &MI_Dummy, false, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_MANA, &missiles_rech_mana, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_MAGI, &missiles_magi, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_LIGHTWALL, &missiles_light_wall, &mi_light_wall, true, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_LMAG, LS_ELECIMP1 },
{ MIS_LIGHTNINGWALL, &AddFirewallC, &mi_lightning_wall, false, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 },
{ MIS_IMMOLATION, &AddNova, &mi_fire_nova, true, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 },
{ MIS_SPECARROW, &missiles_spec_arrow, &mi_spec_arrow, true, 0, MISR_NONE, MFILE_ARROWS, -1, -1 },
{ MIS_FIRENOVA, &missiles_immo_2, &MI_Fireball, true, 1, MISR_FIRE, MFILE_FIREBA, IS_FBALLBOW, LS_FIRIMP2 },
{ MIS_LIGHTARROW, &missiles_larrow, &mi_light_arrow, false, 1, MISR_LIGHTNING, MFILE_LGHNING, IS_FBALLBOW, -1 },
{ MIS_CBOLTARROW, &missiles_cbolt_arrow, &MI_Cbolt, true, 1, MISR_LIGHTNING, MFILE_MINILTNG, LS_CBOLT, -1 },
{ MIS_HBOLTARROW, &missiles_hbolt_arrow, &MI_Hbolt, true, 1, MISR_NONE, MFILE_HOLY, LS_HOLYBOLT, LS_ELECIMP1 },
{ MIS_WARP, &missiles_warp, &MI_Teleport, false, 1, MISR_NONE, MFILE_NONE, LS_ETHEREAL, -1 },
{ MIS_REFLECT, &missiles_reflection, &mi_reflect, true, 1, MISR_NONE, MFILE_REFLECT, LS_MSHIELD, -1 },
{ MIS_BERSERK, &missiles_berserk, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_FIRERING, &missiles_ring, &mi_fire_ring, false, 1, MISR_FIRE, MFILE_FIREWAL, -1, -1 },
{ MIS_STEALPOTS, &missiles_steal_pots, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_MANATRAP, &missiles_mana_trap, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, IS_CAST7, -1 },
{ MIS_LIGHTRING, &missiles_ring, &mi_light_ring, false, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 },
{ MIS_SEARCH, &missiles_search, &mi_search, false, 1, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_FLASHBK, &missiles_433040, &mi_flashbk, true, 1, MISR_MAGIC, MFILE_BLUEXBK, -1, -1 },
{ MIS_FLASHFR, &missiles_43303D, &mi_flashfr, true, 1, MISR_MAGIC, MFILE_BLUEXFR, -1, LS_ELECIMP1 },
{ MIS_IMMOLATION2, &missiles_immo_1, &mi_immolation, true, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 },
{ MIS_RUNEFIRE, &missiles_fire_rune, &MI_Rune, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 },
{ MIS_RUNELIGHT, &missiles_light_rune, &MI_Rune, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 },
{ MIS_RUNENOVA, &missiles_great_light_rune, &MI_Rune, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 },
{ MIS_RUNEIMMOLAT, &missiles_immolation_rune, &MI_Rune, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 },
{ MIS_RUNESTONE, &missiles_stone_rune, &MI_Rune, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 },
{ MIS_HIVEEXP, &missiles_rune_explosion, &mi_hive_explode, true, 1, MISR_FIRE, MFILE_BIGEXP, LS_NESTXPLD, LS_NESTXPLD },
{ MIS_HORKDMN, &missiles_430624, &missiles_4359A0, true, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_JESTER, &missiles_jester, &MI_Dummy, false, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_HIVEEXP2, &missiles_hive_explosion, &MI_Dummy, false, 2, MISR_NONE, MFILE_NONE, -1, -1 },
{ MIS_LICH, &AddFlare, &MI_Firebolt, true, 1, MISR_MAGIC, MFILE_LICH, -1, -1 },
{ MIS_PSYCHORB, &AddFlare, &MI_Firebolt, true, 1, MISR_MAGIC, MFILE_BONEDEMON, -1, -1 },
{ MIS_NECROMORB, &AddFlare, &MI_Firebolt, true, 1, MISR_MAGIC, MFILE_NECROMORB, -1, -1 },
{ MIS_ARCHLICH, &AddFlare, &MI_Firebolt, true, 1, MISR_MAGIC, MFILE_ARCHLICH, -1, -1 },
{ MIS_BONEDEMON, &AddFlare, &MI_Firebolt, true, 1, MISR_MAGIC, MFILE_BONEDEMON, -1, -1 },
{ MIS_EXYEL2, &AddMisexp, &MI_Misexp, true, 2, MISR_NONE, MFILE_EXYEL2, LS_FIRIMP2, -1 },
{ MIS_EXRED3, &AddMisexp, &MI_Misexp, true, 2, MISR_NONE, MFILE_EXRED3, LS_FIRIMP2, -1 },
{ MIS_EXBL2, &AddMisexp, &MI_Misexp, true, 2, MISR_NONE, MFILE_EXBL2, LS_FIRIMP2, -1 },
{ MIS_EXBL3, &AddMisexp, &MI_Misexp, true, 2, MISR_NONE, MFILE_EXBL3, LS_FIRIMP2, -1 },
{ MIS_EXORA1, &AddMisexp, &MI_Misexp, true, 2, MISR_NONE, MFILE_EXORA1, LS_FIRIMP2, -1 },
// clang-format on
};