1 /** 2 * @file missiles.h 3 * 4 * Interface of missile functionality. 5 */ 6 #ifndef __MISSILES_H__ 7 #define __MISSILES_H__ 8 9 DEVILUTION_BEGIN_NAMESPACE 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 typedef struct MissileData { 16 Uint8 mName; 17 void (*mAddProc)(Sint32, Sint32, Sint32, Sint32, Sint32, Sint32, Sint8, Sint32, Sint32); 18 void (*mProc)(Sint32); 19 bool mDraw; 20 Uint8 mType; 21 Uint8 mResist; 22 Uint8 mFileNum; 23 Sint32 mlSFX; 24 Sint32 miSFX; 25 } MissileData; 26 27 typedef struct MisFileData { 28 Uint8 mAnimName; 29 Uint8 mAnimFAmt; 30 const char *mName; 31 Sint32 mFlags; 32 Uint8 *mAnimData[16]; 33 Uint8 mAnimDelay[16]; 34 Uint8 mAnimLen[16]; 35 Sint32 mAnimWidth[16]; 36 Sint32 mAnimWidth2[16]; 37 } MisFileData; 38 39 typedef struct ChainStruct { 40 Sint32 idx; 41 Sint32 _mitype; 42 Sint32 _mirange; 43 } ChainStruct; 44 45 typedef struct MissileStruct { 46 Sint32 _mitype; // Type of projectile (missile_id) 47 Sint32 _mix; // Tile X-position of the missile 48 Sint32 _miy; // Tile Y-position of the missile 49 Sint32 _mixoff; // Sprite pixel X-offset for the missile 50 Sint32 _miyoff; // Sprite pixel Y-offset for the missile 51 Sint32 _mixvel; // Missile tile X-velocity while walking. This gets added onto _mitxoff each game tick 52 Sint32 _miyvel; // Missile tile Y-velocity while walking. This gets added onto _mitxoff each game tick 53 Sint32 _misx; // Initial tile X-position for missile 54 Sint32 _misy; // Initial tile Y-position for missile 55 Sint32 _mitxoff; // How far the missile has travelled in its lifespan along the X-axis. mix/miy/mxoff/myoff get updated every game tick based on this 56 Sint32 _mityoff; // How far the missile has travelled in its lifespan along the Y-axis. mix/miy/mxoff/myoff get updated every game tick based on this 57 Sint32 _mimfnum; // The direction of the missile (direction enum) 58 Sint32 _mispllvl; 59 bool _miDelFlag; // Indicate whether the missile should be deleted 60 Uint8 _miAnimType; 61 Sint32 _miAnimFlags; 62 Uint8 *_miAnimData; 63 Sint32 _miAnimDelay; // Tick length of each frame in the current animation 64 Sint32 _miAnimLen; // Number of frames in current animation 65 Sint32 _miAnimWidth; 66 Sint32 _miAnimWidth2; 67 Sint32 _miAnimCnt; // Increases by one each game tick, counting how close we are to _pAnimDelay 68 Sint32 _miAnimAdd; 69 Sint32 _miAnimFrame; // Current frame of animation. 70 bool _miDrawFlag; 71 bool _miLightFlag; 72 bool _miPreFlag; 73 Uint32 _miUniqTrans; 74 Sint32 _mirange; // Time to live for the missile in game ticks, oncs 0 the missile will be marked for deletion via _miDelFlag 75 Sint32 _misource; 76 Sint32 _micaster; 77 Sint32 _midam; 78 bool _miHitFlag; 79 Sint32 _midist; // Used for arrows to measure distance travelled (increases by 1 each game tick). Higher value is a penalty for accuracy calculation when hitting enemy 80 Sint32 _mlid; 81 Sint32 _mirnd; 82 Sint32 _miVar1; 83 Sint32 _miVar2; 84 Sint32 _miVar3; 85 Sint32 _miVar4; 86 Sint32 _miVar5; 87 Sint32 _miVar6; 88 Sint32 _miVar7; 89 Sint32 _miVar8; 90 } MissileStruct; 91 92 extern int missileactive[MAXMISSILES]; 93 extern int missileavail[MAXMISSILES]; 94 extern MissileStruct missile[MAXMISSILES]; 95 extern int nummissiles; 96 extern bool MissilePreFlag; 97 98 void GetDamageAmt(int i, int *mind, int *maxd); 99 int GetSpellLevel(int id, int sn); 100 int GetDirection8(int x1, int y1, int x2, int y2); 101 int GetDirection16(int x1, int y1, int x2, int y2); 102 void DeleteMissile(int mi, int i); 103 BOOL MonsterTrapHit(int m, int mindam, int maxdam, int dist, int t, BOOLEAN shift); 104 BOOL PlayerMHit(int pnum, int m, int dist, int mind, int maxd, int mtype, BOOLEAN shift, int earflag, BOOLEAN *blocked); 105 void SetMissAnim(int mi, int animtype); 106 void SetMissDir(int mi, int dir); 107 void LoadMissileGFX(BYTE mi); 108 void InitMissileGFX(); 109 void FreeMissiles(); 110 void FreeMissiles2(); 111 void InitMissiles(); 112 void AddHiveExplosion(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 113 void AddFireRune(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 114 void AddLightningRune(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 115 void AddGreatLightningRune(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 116 void AddImmolationRune(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 117 void AddStoneRune(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 118 void AddReflection(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 119 void AddBerserk(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 120 void AddHorkSpawn(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 121 void AddJester(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 122 void AddStealPotions(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 123 void AddManaTrap(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 124 void AddSpecArrow(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 125 void AddWarp(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 126 void AddLightningWall(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 127 void AddRuneExplosion(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 128 void AddImmolation(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 129 void AddFireNova(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 130 void AddLightningArrow(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 131 void AddFlashFront(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 132 void AddFlashBack(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 133 void AddMana(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 134 void AddMagi(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 135 void AddRing(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 136 void AddSearch(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 137 void AddCboltArrow(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 138 void AddHboltArrow(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 139 void AddLArrow(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 140 void AddArrow(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 141 void AddRndTeleport(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 142 void AddFirebolt(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 micaster, Sint32 id, Sint32 dam); 143 void AddMagmaball(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 144 void AddKrull(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 145 void AddTeleport(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 146 void AddLightball(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 147 void AddFirewall(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 148 void AddFireball(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 149 void AddLightctrl(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 150 void AddLightning(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 151 void AddMisexp(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 152 void AddWeapexp(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 153 void AddTown(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 154 void AddFlash(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 155 void AddFlash2(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 156 void AddManashield(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 157 void AddFiremove(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 158 void AddGuardian(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 159 void AddChain(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 160 void AddBloodStar(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 161 void AddBone(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 162 void AddMetlHit(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 163 void AddRhino(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 164 void AddFireman(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 165 void AddFlare(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 166 void AddAcid(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 167 void AddFireWallA(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 168 void AddAcidpud(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 169 void AddStone(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 170 void AddGolem(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 171 void AddEtherealize(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 172 void AddDummy(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 173 void AddBlodbur(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 174 void AddBoom(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 175 void AddHeal(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 176 void AddHealOther(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 177 void AddElement(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 178 void AddIdentify(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 179 void AddFirewallC(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 180 void AddInfra(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 181 void AddWave(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 182 void AddNova(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 183 void AddBlodboil(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 184 void AddRepair(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 185 void AddRecharge(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 186 void AddDisarm(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 187 void AddApoca(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 188 void AddFlame(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 189 void AddFlamec(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 190 void AddCbolt(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 micaster, Sint32 id, Sint32 dam); 191 void AddHbolt(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 micaster, Sint32 id, Sint32 dam); 192 void AddResurrect(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 193 void AddResurrectBeam(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 194 void AddTelekinesis(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 195 void AddBoneSpirit(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 196 void AddRportal(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 197 void AddDiabApoca(Sint32 mi, Sint32 sx, Sint32 sy, Sint32 dx, Sint32 dy, Sint32 midir, Sint8 mienemy, Sint32 id, Sint32 dam); 198 int AddMissile(int sx, int sy, int dx, int dy, int midir, int mitype, char micaster, int id, int midam, int spllvl); 199 void MI_Dummy(Sint32 i); 200 void MI_Golem(Sint32 i); 201 void MI_SetManashield(Sint32 i); 202 void MI_LArrow(Sint32 i); 203 void MI_Arrow(Sint32 i); 204 void MI_Firebolt(Sint32 i); 205 void MI_Lightball(Sint32 i); 206 void MI_Krull(Sint32 i); 207 void MI_Acidpud(Sint32 i); 208 void MI_Firewall(Sint32 i); 209 void MI_Fireball(Sint32 i); 210 void MI_HorkSpawn(Sint32 i); 211 void MI_Rune(Sint32 i); 212 void MI_LightningWall(Sint32 i); 213 void MI_HiveExplode(Sint32 i); 214 void MI_Immolation(Sint32 i); 215 void MI_LightningArrow(Sint32 i); 216 void MI_FlashFront(Sint32 i); 217 void MI_FlashBack(Sint32 i); 218 void MI_Reflect(Sint32 i); 219 void MI_FireRing(Sint32 i); 220 void MI_LightningRing(Sint32 i); 221 void MI_Search(Sint32 i); 222 void MI_LightningWallC(Sint32 i); 223 void MI_FireNova(Sint32 i); 224 void MI_SpecArrow(Sint32 i); 225 void MI_Lightctrl(Sint32 i); 226 void MI_Lightning(Sint32 i); 227 void MI_Town(Sint32 i); 228 void MI_Flash(Sint32 i); 229 void MI_Flash2(Sint32 i); 230 void MI_Etherealize(Sint32 i); 231 void MI_Firemove(Sint32 i); 232 void MI_Guardian(Sint32 i); 233 void MI_Chain(Sint32 i); 234 void MI_Blood(Sint32 i); 235 void MI_Weapexp(Sint32 i); 236 void MI_Misexp(Sint32 i); 237 void MI_Acidsplat(Sint32 i); 238 void MI_Teleport(Sint32 i); 239 void MI_Stone(Sint32 i); 240 void MI_Boom(Sint32 i); 241 void MI_Rhino(Sint32 i); 242 void MI_Fireman(Sint32 i); 243 void MI_FirewallC(Sint32 i); 244 void MI_Infra(Sint32 i); 245 void MI_Apoca(Sint32 i); 246 void MI_Wave(Sint32 i); 247 void MI_Nova(Sint32 i); 248 void MI_Blodboil(Sint32 i); 249 void MI_Flame(Sint32 i); 250 void MI_Flamec(Sint32 i); 251 void MI_Cbolt(Sint32 i); 252 void MI_Hbolt(Sint32 i); 253 void MI_Element(Sint32 i); 254 void MI_Bonespirit(Sint32 i); 255 void MI_ResurrectBeam(Sint32 i); 256 void MI_Rportal(Sint32 i); 257 void ProcessMissiles(); 258 void missiles_process_charge(); 259 void ClearMissileSpot(int mi); 260 261 #ifdef __cplusplus 262 } 263 #endif 264 265 DEVILUTION_END_NAMESPACE 266 267 #endif /* __MISSILES_H__ */ 268