|
|
|
|
@ -3819,69 +3819,35 @@ void __fastcall MI_Lightning(int i)
|
|
|
|
|
|
|
|
|
|
void __fastcall MI_Town(int i) |
|
|
|
|
{ |
|
|
|
|
int v1; // esi
|
|
|
|
|
int v2; // eax
|
|
|
|
|
int *v3; // edi
|
|
|
|
|
int v4; // ecx
|
|
|
|
|
int ExpLight[17]; // [esp+8h] [ebp-4Ch]
|
|
|
|
|
int ia; // [esp+4Ch] [ebp-8h]
|
|
|
|
|
int arglist; // [esp+50h] [ebp-4h]
|
|
|
|
|
int ExpLight[17] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15 }; |
|
|
|
|
int p; |
|
|
|
|
|
|
|
|
|
v1 = i; |
|
|
|
|
ExpLight[14] = 15; |
|
|
|
|
ExpLight[15] = 15; |
|
|
|
|
ExpLight[16] = 15; |
|
|
|
|
v2 = missile[i]._mirange; |
|
|
|
|
ia = i; |
|
|
|
|
ExpLight[0] = 1; |
|
|
|
|
ExpLight[1] = 2; |
|
|
|
|
ExpLight[2] = 3; |
|
|
|
|
ExpLight[3] = 4; |
|
|
|
|
ExpLight[4] = 5; |
|
|
|
|
ExpLight[5] = 6; |
|
|
|
|
ExpLight[6] = 7; |
|
|
|
|
ExpLight[7] = 8; |
|
|
|
|
ExpLight[8] = 9; |
|
|
|
|
ExpLight[9] = 10; |
|
|
|
|
ExpLight[10] = 11; |
|
|
|
|
ExpLight[11] = 12; |
|
|
|
|
ExpLight[12] = 13; |
|
|
|
|
ExpLight[13] = 14; |
|
|
|
|
if (v2 > 1) |
|
|
|
|
missile[v1]._mirange = v2 - 1; |
|
|
|
|
if (missile[v1]._mirange == missile[v1]._miVar1) |
|
|
|
|
if (missile[i]._mirange > 1) |
|
|
|
|
missile[i]._mirange--; |
|
|
|
|
if (missile[i]._mirange == missile[i]._miVar1) |
|
|
|
|
SetMissDir(i, 1); |
|
|
|
|
if (currlevel && missile[v1]._mimfnum != 1 && missile[v1]._mirange) { |
|
|
|
|
if (!missile[v1]._miVar2) |
|
|
|
|
missile[v1]._mlid = AddLight(missile[v1]._mix, missile[v1]._miy, 1); |
|
|
|
|
ChangeLight(missile[v1]._mlid, missile[v1]._mix, missile[v1]._miy, ExpLight[missile[v1]._miVar2]); |
|
|
|
|
++missile[v1]._miVar2; |
|
|
|
|
} |
|
|
|
|
arglist = 0; |
|
|
|
|
v3 = &plr[0].plrlevel; |
|
|
|
|
do { |
|
|
|
|
if (*((_BYTE *)v3 - 23)) { |
|
|
|
|
if (currlevel == *v3 |
|
|
|
|
&& !*((_BYTE *)v3 + 267) |
|
|
|
|
&& !*(v3 - 13) |
|
|
|
|
&& v3[1] == missile[v1]._mix |
|
|
|
|
&& v3[2] == missile[v1]._miy) { |
|
|
|
|
ClrPlrPath(arglist); |
|
|
|
|
if (arglist == myplr) { |
|
|
|
|
NetSendCmdParam1(TRUE, CMD_WARP, missile[v1]._misource); |
|
|
|
|
*(v3 - 13) = 10; |
|
|
|
|
} |
|
|
|
|
if (currlevel && missile[i]._mimfnum != 1 && missile[i]._mirange) { |
|
|
|
|
if (!missile[i]._miVar2) |
|
|
|
|
missile[i]._mlid = AddLight(missile[i]._mix, missile[i]._miy, 1); |
|
|
|
|
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, ExpLight[missile[i]._miVar2]); |
|
|
|
|
missile[i]._miVar2++; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (p = 0; p < 4; p++) { |
|
|
|
|
if (plr[p].plractive && currlevel == plr[p].plrlevel && !plr[p]._pLvlChanging && !plr[p]._pmode && plr[p].WorldX == missile[i]._mix && plr[p].WorldY == missile[i]._miy) { |
|
|
|
|
ClrPlrPath(p); |
|
|
|
|
if (p == myplr) { |
|
|
|
|
NetSendCmdParam1(TRUE, CMD_WARP, missile[i]._misource); |
|
|
|
|
plr[p]._pmode = 10; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
++arglist; |
|
|
|
|
v3 += 5430; |
|
|
|
|
} while ((signed int)v3 < (signed int)&plr[4].plrlevel); |
|
|
|
|
if (!missile[v1]._mirange) { |
|
|
|
|
v4 = missile[v1]._mlid; |
|
|
|
|
missile[v1]._miDelFlag = TRUE; |
|
|
|
|
AddUnLight(v4); |
|
|
|
|
} |
|
|
|
|
PutMissile(ia); |
|
|
|
|
|
|
|
|
|
if (!missile[i]._mirange) { |
|
|
|
|
missile[i]._miDelFlag = TRUE; |
|
|
|
|
AddUnLight(missile[i]._mlid); |
|
|
|
|
} |
|
|
|
|
PutMissile(i); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void __fastcall MI_Flash(int i) |
|
|
|
|
|