diff --git a/Source/missiles.cpp b/Source/missiles.cpp index 4fff6cd85..5883c51af 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -4865,51 +4865,32 @@ void __fastcall MI_Acidsplat(int i) void __fastcall MI_Teleport(int i) { - int v1; // edi - int v2; // ebx - int *v3; // eax - int v4; // esi - int v5; // ecx - int v6; // edx - int v7; // ecx - int v8; // edx - int v9; // edx - int v10; // eax - BOOLEAN v11; // zf + int id; - v1 = i; - v2 = missile[i]._misource; - v3 = &missile[i]._mirange; - if (--*v3 > 0) { - v4 = v2; - v5 = plr[v2].WorldX; - v6 = plr[v2].WorldY; - dPlayer[plr[v2].WorldX][v6] = 0; - PlrClrTrans(v5, v6); - v7 = missile[v1]._mix; - v8 = missile[v1]._miy; - plr[v4].WorldX = v7; - plr[v4].WorldY = v8; - plr[v4]._px = v7; - plr[v4]._py = v8; - plr[v4]._poldx = v7; - plr[v4]._poldy = v8; - PlrDoTrans(v7, v8); - v9 = plr[v2].WorldX; - missile[v1]._miVar1 = 1; - v10 = plr[v2].WorldY; - v11 = leveltype == DTYPE_TOWN; - dPlayer[v9][v10] = v2 + 1; - if (!v11) { - ChangeLightXY(plr[v4]._plid, v9, v10); - ChangeVisionXY(plr[v4]._pvid, plr[v4].WorldX, plr[v4].WorldY); + id = missile[i]._misource; + missile[i]._mirange--; + if (missile[i]._mirange <= 0) { + missile[i]._miDelFlag = TRUE; + } else { + dPlayer[plr[id].WorldX][plr[id].WorldY] = 0; + PlrClrTrans(plr[id].WorldX, plr[id].WorldY); + plr[id].WorldX = missile[i]._mix; + plr[id].WorldY = missile[i]._miy; + plr[id]._px = missile[i]._mix; + plr[id]._py = missile[i]._miy; + plr[id]._poldx = missile[i]._mix; + plr[id]._poldy = missile[i]._miy; + PlrDoTrans(missile[i]._mix, missile[i]._miy); + missile[i]._miVar1 = 1; + dPlayer[plr[id].WorldX][plr[id].WorldY] = id + 1; + if (leveltype != DTYPE_TOWN) { + ChangeLightXY(plr[id]._plid, plr[id].WorldX, plr[id].WorldY); + ChangeVisionXY(plr[id]._pvid, plr[id].WorldX, plr[id].WorldY); } - if (v2 == myplr) { - ViewX = plr[v4].WorldX - ScrollInfo._sdx; - ViewY = plr[v4].WorldY - ScrollInfo._sdy; + if (id == myplr) { + ViewX = plr[id].WorldX - ScrollInfo._sdx; + ViewY = plr[id].WorldY - ScrollInfo._sdy; } - } else { - missile[v1]._miDelFlag = TRUE; } }