MCPcopy Create free account
hub / github.com/diasurgical/devilution / ProcessMissiles

Function ProcessMissiles

Source/missiles.cpp:4056–4111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4054}
4055
4056void ProcessMissiles()
4057{
4058 int i, mi;
4059
4060 for (i = 0; i < nummissiles; i++) {
4061 dFlags[missile[missileactive[i]]._mix][missile[missileactive[i]]._miy] &= ~BFLAG_MISSILE;
4062 dMissile[missile[missileactive[i]]._mix][missile[missileactive[i]]._miy] = 0;
4063 }
4064
4065 i = 0;
4066 while (i < nummissiles) {
4067 if (missile[missileactive[i]]._miDelFlag) {
4068 DeleteMissile(missileactive[i], i);
4069 i = 0;
4070 } else {
4071 i++;
4072 }
4073 }
4074
4075 MissilePreFlag = FALSE;
4076 ManashieldFlag = FALSE;
4077
4078 for (i = 0; i < nummissiles; i++) {
4079 mi = missileactive[i];
4080 missiledata[missile[mi]._mitype].mProc(missileactive[i]);
4081 if (!(missile[mi]._miAnimFlags & MFLAG_LOCK_ANIMATION)) {
4082 missile[mi]._miAnimCnt++;
4083 if (missile[mi]._miAnimCnt >= missile[mi]._miAnimDelay) {
4084 missile[mi]._miAnimCnt = 0;
4085 missile[mi]._miAnimFrame += missile[mi]._miAnimAdd;
4086 if (missile[mi]._miAnimFrame > missile[mi]._miAnimLen)
4087 missile[mi]._miAnimFrame = 1;
4088 if (missile[mi]._miAnimFrame < 1)
4089 missile[mi]._miAnimFrame = missile[mi]._miAnimLen;
4090 }
4091 }
4092 }
4093
4094 if (ManashieldFlag) {
4095 for (i = 0; i < nummissiles; i++) {
4096 if (missile[missileactive[i]]._mitype == MIS_MANASHIELD) {
4097 MI_Manashield(missileactive[i]);
4098 }
4099 }
4100 }
4101
4102 i = 0;
4103 while (i < nummissiles) {
4104 if (missile[missileactive[i]]._miDelFlag) {
4105 DeleteMissile(missileactive[i], i);
4106 i = 0;
4107 } else {
4108 i++;
4109 }
4110 }
4111}
4112
4113void missiles_process_charge()

Callers 1

game_logicFunction · 0.85

Calls 2

DeleteMissileFunction · 0.85
MI_ManashieldFunction · 0.85

Tested by

no test coverage detected