diff --git a/Source/missiles.cpp b/Source/missiles.cpp index 07a98a454..adc90422c 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -1378,12 +1378,19 @@ void AddLightningWall(Missile &missile, const AddMissileParameter ¶meter) UpdateMissileVelocity(missile, parameter.dst, 16); missile._miAnimFrame = GenerateRnd(8) + 1; missile._mirange = 255 * (missile._mispllvl + 1); - if (missile._misource < 0) { + switch (missile.sourceType()) { + case MissileSource::Trap: missile.var1 = missile.position.start.x; missile.var2 = missile.position.start.y; - } else { - missile.var1 = Players[missile._misource].position.tile.x; - missile.var2 = Players[missile._misource].position.tile.y; + break; + case MissileSource::Player: { + Player &player = *missile.sourcePlayer(); + missile.var1 = player.position.tile.x; + missile.var2 = player.position.tile.y; + } break; + case MissileSource::Monster: + assert(missile.sourceType() != MissileSource::Monster); + break; } }