diff --git a/Source/misdat.cpp b/Source/misdat.cpp index 6eae6b800..09990dbf7 100644 --- a/Source/misdat.cpp +++ b/Source/misdat.cpp @@ -10,115 +10,115 @@ namespace devilution { /** Data related to each missile ID. */ 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, &AddBloodStar, &MI_Blood, true, 2, MISR_NONE, MFILE_BLOOD, LS_BLODSTAR, LS_BLSIMPT }, - { MIS_BONE, &AddBone, &MI_Blood, true, 2, MISR_NONE, MFILE_BONE, -1, -1 }, - { MIS_METLHIT, &AddMetlHit, &MI_Blood, 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, &AddFireWallA, &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, &AddDummy, &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, &AddBlodbur, &MI_Blood, 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, &AddFireman, &MI_Fireman, true, 2, MISR_NONE, MFILE_NONE, -1, -1 }, - { MIS_KRULL, &AddKrull, &MI_Krull, 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, &AddMana, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, - { MIS_MAGI, &AddMagi, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, - { MIS_LIGHTWALL, &AddLightningWall, &MI_LightningWall, true, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_LMAG, LS_ELECIMP1 }, - { MIS_LIGHTNINGWALL, &AddFirewallC, &MI_LightningWallC, false, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 }, - { MIS_IMMOLATION, &AddNova, &MI_FireNova, true, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 }, - { MIS_SPECARROW, &AddSpecArrow, &MI_SpecArrow, true, 0, MISR_NONE, MFILE_ARROWS, -1, -1 }, - { MIS_FIRENOVA, &AddFireNova, &MI_Fireball, true, 1, MISR_FIRE, MFILE_FIREBA, IS_FBALLBOW, LS_FIRIMP2 }, - { MIS_LIGHTARROW, &AddLightningArrow, &MI_LightningArrow, false, 1, MISR_LIGHTNING, MFILE_LGHNING, IS_FBALLBOW, -1 }, - { MIS_CBOLTARROW, &AddCboltArrow, &MI_Cbolt, true, 1, MISR_LIGHTNING, MFILE_MINILTNG, LS_CBOLT, -1 }, - { MIS_HBOLTARROW, &AddHbolt, &MI_Hbolt, true, 1, MISR_NONE, MFILE_HOLY, LS_HOLYBOLT, LS_ELECIMP1 }, - { MIS_WARP, &AddWarp, &MI_Teleport, false, 1, MISR_NONE, MFILE_NONE, LS_ETHEREAL, -1 }, - { MIS_REFLECT, &AddReflection, &MI_Reflect, true, 1, MISR_NONE, MFILE_REFLECT, LS_MSHIELD, -1 }, - { MIS_BERSERK, &AddBerserk, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, - { MIS_FIRERING, &AddRing, &MI_FireRing, false, 1, MISR_FIRE, MFILE_FIREWAL, -1, -1 }, - { MIS_STEALPOTS, &AddStealPotions, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, - { MIS_MANATRAP, &AddManaTrap, &MI_Dummy, false, 1, MISR_NONE, MFILE_NONE, IS_CAST7, -1 }, - { MIS_LIGHTRING, &AddRing, &MI_LightningRing, false, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 }, - { MIS_SEARCH, &AddSearch, &MI_Search, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, - { MIS_FLASHBK, &AddFlashBack, &MI_FlashBack, true, 1, MISR_MAGIC, MFILE_BLUEXBK, -1, -1 }, - { MIS_FLASHFR, &AddFlashFront, &MI_FlashFront, true, 1, MISR_MAGIC, MFILE_BLUEXFR, -1, LS_ELECIMP1 }, - { MIS_IMMOLATION2, &AddImmolation, &MI_Immolation, true, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 }, - { MIS_RUNEFIRE, &AddFireRune, &MI_Rune, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 }, - { MIS_RUNELIGHT, &AddLightningRune, &MI_Rune, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 }, - { MIS_RUNENOVA, &AddGreatLightningRune, &MI_Rune, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 }, - { MIS_RUNEIMMOLAT, &AddImmolationRune, &MI_Rune, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 }, - { MIS_RUNESTONE, &AddStoneRune, &MI_Rune, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 }, - { MIS_HIVEEXP, &AddRuneExplosion, &MI_HiveExplode, true, 1, MISR_FIRE, MFILE_BIGEXP, LS_NESTXPLD, LS_NESTXPLD }, - { MIS_HORKDMN, &AddHorkSpawn, &MI_HorkSpawn, true, 2, MISR_NONE, MFILE_NONE, -1, -1 }, - { MIS_JESTER, &AddJester, &MI_Dummy, false, 2, MISR_NONE, MFILE_NONE, -1, -1 }, - { MIS_HIVEEXP2, &AddHiveExplosion, &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 }, + // mAddProc, mProc, mName, mDraw, mType, mResist, mFileNum, miSFX, mlSFX; + { &AddArrow, &MI_Arrow, MIS_ARROW, true, 0, MISR_NONE, MFILE_ARROWS, -1, -1 }, + { &AddFirebolt, &MI_Firebolt, MIS_FIREBOLT, true, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 }, + { &AddGuardian, &MI_Guardian, MIS_GUARDIAN, true, 1, MISR_NONE, MFILE_GUARD, LS_GUARD, LS_GUARDLAN }, + { &AddRndTeleport, &MI_Teleport, MIS_RNDTELEPORT, false, 1, MISR_NONE, MFILE_NONE, LS_TELEPORT, -1 }, + { &AddLightball, &MI_Lightball, MIS_LIGHTBALL, true, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 }, + { &AddFirewall, &MI_Firewall, MIS_FIREWALL, true, 1, MISR_FIRE, MFILE_FIREWAL, LS_WALLLOOP, LS_FIRIMP2 }, + { &AddFireball, &MI_Fireball, MIS_FIREBALL, true, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 }, + { &AddLightctrl, &MI_Lightctrl, MIS_LIGHTCTRL, false, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 }, + { &AddLightning, &MI_Lightning, MIS_LIGHTNING, true, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_LNING1, LS_ELECIMP1 }, + { &AddMisexp, &MI_Misexp, MIS_MISEXP, true, 2, MISR_NONE, MFILE_MAGBLOS, -1, -1 }, + { &AddTown, &MI_Town, MIS_TOWN, true, 1, MISR_MAGIC, MFILE_PORTAL, LS_SENTINEL, LS_ELEMENTL }, + { &AddFlash, &MI_Flash, MIS_FLASH, true, 1, MISR_MAGIC, MFILE_BLUEXFR, LS_NOVA, LS_ELECIMP1 }, + { &AddFlash2, &MI_Flash2, MIS_FLASH2, true, 1, MISR_MAGIC, MFILE_BLUEXBK, -1, -1 }, + { &AddManashield, &MI_SetManashield, MIS_MANASHIELD, false, 1, MISR_MAGIC, MFILE_MANASHLD, LS_MSHIELD, -1 }, + { &AddFiremove, &MI_Firemove, MIS_FIREMOVE, true, 1, MISR_FIRE, MFILE_FIREWAL, -1, -1 }, + { &AddChain, &MI_Chain, MIS_CHAIN, true, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_LNING1, LS_ELECIMP1 }, + { NULL, NULL, MIS_SENTINAL, true, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 }, + { &AddBloodStar, &MI_Blood, MIS_BLODSTAR, true, 2, MISR_NONE, MFILE_BLOOD, LS_BLODSTAR, LS_BLSIMPT }, + { &AddBone, &MI_Blood, MIS_BONE, true, 2, MISR_NONE, MFILE_BONE, -1, -1 }, + { &AddMetlHit, &MI_Blood, MIS_METLHIT, true, 2, MISR_NONE, MFILE_METLHIT, -1, -1 }, + { &AddRhino, &MI_Rhino, MIS_RHINO, true, 2, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddMagmaball, &MI_Firebolt, MIS_MAGMABALL, true, 1, MISR_FIRE, MFILE_MAGBALL, -1, -1 }, + { &AddLightctrl, &MI_Lightctrl, MIS_LIGHTCTRL2, false, 1, MISR_LIGHTNING, MFILE_THINLGHT, -1, -1 }, + { &AddLightning, &MI_Lightning, MIS_LIGHTNING2, true, 1, MISR_LIGHTNING, MFILE_THINLGHT, -1, -1 }, + { &AddFlare, &MI_Firebolt, MIS_FLARE, true, 1, MISR_MAGIC, MFILE_FLARE, -1, -1 }, + { &AddMisexp, &MI_Misexp, MIS_MISEXP2, true, 2, MISR_MAGIC, MFILE_FLAREEXP, -1, -1 }, + { &AddTeleport, &MI_Teleport, MIS_TELEPORT, false, 1, MISR_NONE, MFILE_NONE, LS_ELEMENTL, -1 }, + { &AddLArrow, &MI_LArrow, MIS_FARROW, true, 0, MISR_FIRE, MFILE_FARROW, -1, -1 }, + { NULL, NULL, MIS_DOOMSERP, false, 1, MISR_MAGIC, MFILE_DOOM, LS_DSERP, -1 }, + { &AddFireWallA, &MI_Firewall, MIS_FIREWALLA, true, 2, MISR_FIRE, MFILE_FIREWAL, -1, -1 }, + { &AddStone, &MI_Stone, MIS_STONE, false, 1, MISR_MAGIC, MFILE_NONE, LS_SCURIMP, -1 }, + { &AddDummy, &MI_Dummy, MIS_NULL_1F, true, 1, MISR_NONE, MFILE_NONE, -1, -1 }, + { NULL, NULL, MIS_INVISIBL, false, 1, MISR_NONE, MFILE_NONE, LS_INVISIBL, -1 }, + { &AddGolem, &MI_Golem, MIS_GOLEM, false, 1, MISR_NONE, MFILE_NONE, LS_GOLUM, -1 }, + { &AddEtherealize, &MI_Etherealize, MIS_ETHEREALIZE, true, 1, MISR_NONE, MFILE_ETHRSHLD, LS_ETHEREAL, -1 }, + { &AddBlodbur, &MI_Blood, MIS_BLODBUR, true, 2, MISR_NONE, MFILE_BLODBUR, -1, -1 }, + { &AddBoom, &MI_Boom, MIS_BOOM, true, 2, MISR_NONE, MFILE_NEWEXP, -1, -1 }, + { &AddHeal, &MI_Dummy, MIS_HEAL, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddFirewallC, &MI_FirewallC, MIS_FIREWALLC, false, 1, MISR_FIRE, MFILE_FIREWAL, -1, -1 }, + { &AddInfra, &MI_Infra, MIS_INFRA, false, 1, MISR_NONE, MFILE_NONE, LS_INFRAVIS, -1 }, + { &AddIdentify, &MI_Dummy, MIS_IDENTIFY, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddWave, &MI_Wave, MIS_WAVE, true, 1, MISR_FIRE, MFILE_FIREWAL, LS_FLAMWAVE, -1 }, + { &AddNova, &MI_Nova, MIS_NOVA, true, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_NOVA, -1 }, + { &AddBlodboil, &MI_Blodboil, MIS_BLODBOIL, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddApoca, &MI_Apoca, MIS_APOCA, true, 1, MISR_MAGIC, MFILE_NEWEXP, LS_APOC, -1 }, + { &AddRepair, &MI_Dummy, MIS_REPAIR, false, 2, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddRecharge, &MI_Dummy, MIS_RECHARGE, false, 2, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddDisarm, &MI_Dummy, MIS_DISARM, false, 2, MISR_NONE, MFILE_NONE, LS_TRAPDIS, -1 }, + { &AddFlame, &MI_Flame, MIS_FLAME, true, 1, MISR_FIRE, MFILE_INFERNO, LS_SPOUTSTR, -1 }, + { &AddFlamec, &MI_Flamec, MIS_FLAMEC, false, 1, MISR_FIRE, MFILE_NONE, -1, -1 }, + { &AddFireman, &MI_Fireman, MIS_FIREMAN, true, 2, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddKrull, &MI_Krull, MIS_KRULL, true, 0, MISR_FIRE, MFILE_KRULL, -1, -1 }, + { &AddCbolt, &MI_Cbolt, MIS_CBOLT, true, 1, MISR_LIGHTNING, MFILE_MINILTNG, LS_CBOLT, -1 }, + { &AddHbolt, &MI_Hbolt, MIS_HBOLT, true, 1, MISR_NONE, MFILE_HOLY, LS_HOLYBOLT, LS_ELECIMP1 }, + { &AddResurrect, &MI_Dummy, MIS_RESURRECT, false, 1, MISR_MAGIC, MFILE_NONE, -1, LS_RESUR }, + { &AddTelekinesis, &MI_Dummy, MIS_TELEKINESIS, false, 1, MISR_NONE, MFILE_NONE, LS_ETHEREAL, -1 }, + { &AddLArrow, &MI_LArrow, MIS_LARROW, true, 0, MISR_LIGHTNING, MFILE_LARROW, -1, -1 }, + { &AddAcid, &MI_Firebolt, MIS_ACID, true, 1, MISR_ACID, MFILE_ACIDBF, LS_ACID, -1 }, + { &AddMisexp, &MI_Acidsplat, MIS_MISEXP3, true, 2, MISR_ACID, MFILE_ACIDSPLA, -1, -1 }, + { &AddAcidpud, &MI_Acidpud, MIS_ACIDPUD, true, 2, MISR_ACID, MFILE_ACIDPUD, LS_PUDDLE, -1 }, + { &AddHealOther, &MI_Dummy, MIS_HEALOTHER, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddElement, &MI_Element, MIS_ELEMENT, true, 1, MISR_FIRE, MFILE_FIRERUN, LS_ELEMENTL, -1 }, + { &AddResurrectBeam, &MI_ResurrectBeam, MIS_RESURRECTBEAM, true, 1, MISR_NONE, MFILE_RESSUR1, -1, -1 }, + { &AddBoneSpirit, &MI_Bonespirit, MIS_BONESPIRIT, true, 1, MISR_MAGIC, MFILE_SKLBALL, LS_BONESP, LS_BSIMPCT }, + { &AddWeapexp, &MI_Weapexp, MIS_WEAPEXP, true, 2, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddRportal, &MI_Rportal, MIS_RPORTAL, true, 2, MISR_NONE, MFILE_RPORTAL, LS_SENTINEL, LS_ELEMENTL }, + { &AddBoom, &MI_Boom, MIS_BOOM2, true, 2, MISR_NONE, MFILE_FIREPLAR, -1, -1 }, + { &AddDiabApoca, &MI_Dummy, MIS_DIABAPOCA, false, 2, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddMana, &MI_Dummy, MIS_MANA, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddMagi, &MI_Dummy, MIS_MAGI, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddLightningWall, &MI_LightningWall, MIS_LIGHTWALL, true, 1, MISR_LIGHTNING, MFILE_LGHNING, LS_LMAG, LS_ELECIMP1 }, + { &AddFirewallC, &MI_LightningWallC, MIS_LIGHTNINGWALL, false, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 }, + { &AddNova, &MI_FireNova, MIS_IMMOLATION, true, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 }, + { &AddSpecArrow, &MI_SpecArrow, MIS_SPECARROW, true, 0, MISR_NONE, MFILE_ARROWS, -1, -1 }, + { &AddFireNova, &MI_Fireball, MIS_FIRENOVA, true, 1, MISR_FIRE, MFILE_FIREBA, IS_FBALLBOW, LS_FIRIMP2 }, + { &AddLightningArrow, &MI_LightningArrow, MIS_LIGHTARROW, false, 1, MISR_LIGHTNING, MFILE_LGHNING, IS_FBALLBOW, -1 }, + { &AddCboltArrow, &MI_Cbolt, MIS_CBOLTARROW, true, 1, MISR_LIGHTNING, MFILE_MINILTNG, LS_CBOLT, -1 }, + { &AddHbolt, &MI_Hbolt, MIS_HBOLTARROW, true, 1, MISR_NONE, MFILE_HOLY, LS_HOLYBOLT, LS_ELECIMP1 }, + { &AddWarp, &MI_Teleport, MIS_WARP, false, 1, MISR_NONE, MFILE_NONE, LS_ETHEREAL, -1 }, + { &AddReflection, &MI_Reflect, MIS_REFLECT, true, 1, MISR_NONE, MFILE_REFLECT, LS_MSHIELD, -1 }, + { &AddBerserk, &MI_Dummy, MIS_BERSERK, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddRing, &MI_FireRing, MIS_FIRERING, false, 1, MISR_FIRE, MFILE_FIREWAL, -1, -1 }, + { &AddStealPotions, &MI_Dummy, MIS_STEALPOTS, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddManaTrap, &MI_Dummy, MIS_MANATRAP, false, 1, MISR_NONE, MFILE_NONE, IS_CAST7, -1 }, + { &AddRing, &MI_LightningRing, MIS_LIGHTRING, false, 1, MISR_LIGHTNING, MFILE_LGHNING, -1, -1 }, + { &AddSearch, &MI_Search, MIS_SEARCH, false, 1, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddFlashBack, &MI_FlashBack, MIS_FLASHBK, true, 1, MISR_MAGIC, MFILE_BLUEXBK, -1, -1 }, + { &AddFlashFront, &MI_FlashFront, MIS_FLASHFR, true, 1, MISR_MAGIC, MFILE_BLUEXFR, -1, LS_ELECIMP1 }, + { &AddImmolation, &MI_Immolation, MIS_IMMOLATION2, true, 1, MISR_FIRE, MFILE_FIREBA, LS_FBOLT1, LS_FIRIMP2 }, + { &AddFireRune, &MI_Rune, MIS_RUNEFIRE, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 }, + { &AddLightningRune, &MI_Rune, MIS_RUNELIGHT, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 }, + { &AddGreatLightningRune, &MI_Rune, MIS_RUNENOVA, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 }, + { &AddImmolationRune, &MI_Rune, MIS_RUNEIMMOLAT, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 }, + { &AddStoneRune, &MI_Rune, MIS_RUNESTONE, true, 1, MISR_NONE, MFILE_RUNE, -1, -1 }, + { &AddRuneExplosion, &MI_HiveExplode, MIS_HIVEEXP, true, 1, MISR_FIRE, MFILE_BIGEXP, LS_NESTXPLD, LS_NESTXPLD }, + { &AddHorkSpawn, &MI_HorkSpawn, MIS_HORKDMN, true, 2, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddJester, &MI_Dummy, MIS_JESTER, false, 2, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddHiveExplosion, &MI_Dummy, MIS_HIVEEXP2, false, 2, MISR_NONE, MFILE_NONE, -1, -1 }, + { &AddFlare, &MI_Firebolt, MIS_LICH, true, 1, MISR_MAGIC, MFILE_LICH, -1, -1 }, + { &AddFlare, &MI_Firebolt, MIS_PSYCHORB, true, 1, MISR_MAGIC, MFILE_BONEDEMON, -1, -1 }, + { &AddFlare, &MI_Firebolt, MIS_NECROMORB, true, 1, MISR_MAGIC, MFILE_NECROMORB, -1, -1 }, + { &AddFlare, &MI_Firebolt, MIS_ARCHLICH, true, 1, MISR_MAGIC, MFILE_ARCHLICH, -1, -1 }, + { &AddFlare, &MI_Firebolt, MIS_BONEDEMON, true, 1, MISR_MAGIC, MFILE_BONEDEMON, -1, -1 }, + { &AddMisexp, &MI_Misexp, MIS_EXYEL2, true, 2, MISR_NONE, MFILE_EXYEL2, LS_FIRIMP2, -1 }, + { &AddMisexp, &MI_Misexp, MIS_EXRED3, true, 2, MISR_NONE, MFILE_EXRED3, LS_FIRIMP2, -1 }, + { &AddMisexp, &MI_Misexp, MIS_EXBL2, true, 2, MISR_NONE, MFILE_EXBL2, LS_FIRIMP2, -1 }, + { &AddMisexp, &MI_Misexp, MIS_EXBL3, true, 2, MISR_NONE, MFILE_EXBL3, LS_FIRIMP2, -1 }, + { &AddMisexp, &MI_Misexp, MIS_EXORA1, true, 2, MISR_NONE, MFILE_EXORA1, LS_FIRIMP2, -1 }, // clang-format on }; diff --git a/Source/missiles.h b/Source/missiles.h index 387e4abcf..ef064f6c8 100644 --- a/Source/missiles.h +++ b/Source/missiles.h @@ -12,9 +12,9 @@ extern "C" { #endif typedef struct MissileData { - Uint8 mName; void (*mAddProc)(Sint32, Sint32, Sint32, Sint32, Sint32, Sint32, Sint8, Sint32, Sint32); void (*mProc)(Sint32); + Uint8 mName; bool mDraw; Uint8 mType; Uint8 mResist;