Browse Source

Optimize layout of MissileData: sizeof 40 -> 32

pull/1419/head
Gleb Mazovetskiy 5 years ago committed by Anders Jenbo
parent
commit
1326df189a
  1. 218
      Source/misdat.cpp
  2. 2
      Source/missiles.h

218
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
};

2
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;

Loading…
Cancel
Save