|
|
|
|
@ -624,152 +624,71 @@ BOOL ForceL3Trig()
|
|
|
|
|
return FALSE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
unsigned char ForceL4Trig() |
|
|
|
|
BOOL ForceL4Trig() |
|
|
|
|
{ |
|
|
|
|
int *v0; // eax
|
|
|
|
|
int *v1; // esi
|
|
|
|
|
int v2; // eax
|
|
|
|
|
int *v3; // ecx
|
|
|
|
|
int *v4; // eax
|
|
|
|
|
int *v5; // esi
|
|
|
|
|
int *v6; // ecx
|
|
|
|
|
int *v7; // eax
|
|
|
|
|
int *v8; // ebp
|
|
|
|
|
int v9; // edi
|
|
|
|
|
TriggerStruct *v10; // esi
|
|
|
|
|
int v11; // ebx
|
|
|
|
|
int v12; // eax
|
|
|
|
|
int *v13; // eax
|
|
|
|
|
int *v14; // esi
|
|
|
|
|
int *v15; // edx
|
|
|
|
|
int v16; // edi
|
|
|
|
|
int v17; // eax
|
|
|
|
|
int v18; // eax
|
|
|
|
|
int v19; // ecx
|
|
|
|
|
|
|
|
|
|
if (L4UpList[0] != -1) { |
|
|
|
|
v0 = L4UpList; |
|
|
|
|
v1 = L4UpList; |
|
|
|
|
while (1) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == *v0) { |
|
|
|
|
sprintf(infostr, "Up to level %i", currlevel - 1); |
|
|
|
|
v2 = 0; |
|
|
|
|
if (trigflag[4] > 0) |
|
|
|
|
break; |
|
|
|
|
int i, j, dx, dy; |
|
|
|
|
|
|
|
|
|
for (i = 0; L4UpList[i] != -1; ++i) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == L4UpList[i]) { |
|
|
|
|
sprintf(infostr, "Up to level %i", currlevel - 1); |
|
|
|
|
for (j = 0; j < trigflag[4]; j++) { |
|
|
|
|
if (trigs[j]._tmsg == WM_DIABPREVLVL) { |
|
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
|
return TRUE; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
LABEL_8: |
|
|
|
|
++v1; |
|
|
|
|
v0 = v1; |
|
|
|
|
if (*v1 == -1) |
|
|
|
|
goto LABEL_9; |
|
|
|
|
} |
|
|
|
|
v3 = &trigs[0]._tmsg; |
|
|
|
|
while (*v3 != WM_DIABPREVLVL) { |
|
|
|
|
++v2; |
|
|
|
|
v3 += 4; |
|
|
|
|
if (v2 >= trigflag[4]) |
|
|
|
|
goto LABEL_8; |
|
|
|
|
} |
|
|
|
|
goto LABEL_39; |
|
|
|
|
} |
|
|
|
|
LABEL_9: |
|
|
|
|
if (L4DownList[0] != -1) { |
|
|
|
|
v4 = L4DownList; |
|
|
|
|
v5 = L4DownList; |
|
|
|
|
while (1) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == *v4) { |
|
|
|
|
sprintf(infostr, "Down to level %i", currlevel + 1); |
|
|
|
|
v2 = 0; |
|
|
|
|
if (trigflag[4] > 0) |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
for (i = 0; L4DownList[i] != -1; i++) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == L4DownList[i]) { |
|
|
|
|
sprintf(infostr, "Down to level %i", currlevel + 1); |
|
|
|
|
for (j = 0; j < trigflag[4]; j++) { |
|
|
|
|
if (trigs[j]._tmsg == WM_DIABNEXTLVL) { |
|
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
|
return TRUE; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
LABEL_16: |
|
|
|
|
++v5; |
|
|
|
|
v4 = v5; |
|
|
|
|
if (*v5 == -1) |
|
|
|
|
goto LABEL_17; |
|
|
|
|
} |
|
|
|
|
v6 = &trigs[0]._tmsg; |
|
|
|
|
while (*v6 != WM_DIABNEXTLVL) { |
|
|
|
|
++v2; |
|
|
|
|
v6 += 4; |
|
|
|
|
if (v2 >= trigflag[4]) |
|
|
|
|
goto LABEL_16; |
|
|
|
|
} |
|
|
|
|
goto LABEL_39; |
|
|
|
|
} |
|
|
|
|
LABEL_17: |
|
|
|
|
|
|
|
|
|
if (currlevel == 13) { |
|
|
|
|
if (L4TWarpUpList[0] != -1) { |
|
|
|
|
v7 = L4TWarpUpList; |
|
|
|
|
v8 = L4TWarpUpList; |
|
|
|
|
while (1) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == *v7) { |
|
|
|
|
v9 = 0; |
|
|
|
|
if (trigflag[4] > 0) |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
LABEL_27: |
|
|
|
|
++v8; |
|
|
|
|
v7 = v8; |
|
|
|
|
if (*v8 == -1) |
|
|
|
|
goto LABEL_28; |
|
|
|
|
} |
|
|
|
|
v10 = trigs; |
|
|
|
|
while (1) { |
|
|
|
|
if (v10->_tmsg == WM_DIABTWARPUP) { |
|
|
|
|
v11 = abs(v10->_tx - cursmx); |
|
|
|
|
v12 = abs(v10->_ty - cursmy); |
|
|
|
|
if (v11 < 4 && v12 < 4) |
|
|
|
|
break; |
|
|
|
|
for (i = 0; L4TWarpUpList[i] != -1; i++) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == L4TWarpUpList[i]) { |
|
|
|
|
for (j = 0; j < trigflag[4]; j++) { |
|
|
|
|
if (trigs[j]._tmsg == WM_DIABTWARPUP) { |
|
|
|
|
dx = abs(trigs[j]._tx - cursmx); |
|
|
|
|
dy = abs(trigs[j]._ty - cursmy); |
|
|
|
|
if (dx < 4 && dy < 4) { |
|
|
|
|
strcpy(infostr, "Up to town"); |
|
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
|
return TRUE; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
++v9; |
|
|
|
|
++v10; |
|
|
|
|
if (v9 >= trigflag[4]) |
|
|
|
|
goto LABEL_27; |
|
|
|
|
} |
|
|
|
|
strcpy(infostr, "Up to town"); |
|
|
|
|
v16 = v9; |
|
|
|
|
cursmx = trigs[v16]._tx; |
|
|
|
|
v17 = trigs[v16]._ty; |
|
|
|
|
goto LABEL_40; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
LABEL_28: |
|
|
|
|
if (currlevel == 15 && L4PentaList[0] != -1) { |
|
|
|
|
v13 = L4PentaList; |
|
|
|
|
v14 = L4PentaList; |
|
|
|
|
while (1) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == *v13) { |
|
|
|
|
strcpy(infostr, "Down to Diablo"); |
|
|
|
|
v2 = 0; |
|
|
|
|
if (trigflag[4] > 0) |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (currlevel == 15) { |
|
|
|
|
for (i = 0; L4PentaList[i] != -1; i++) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == L4PentaList[i]) { |
|
|
|
|
strcpy(infostr, "Down to Diablo"); |
|
|
|
|
for (j = 0; j < trigflag[4]; j++) { |
|
|
|
|
if (trigs[j]._tmsg == WM_DIABNEXTLVL) { |
|
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
|
return TRUE; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
LABEL_36: |
|
|
|
|
++v14; |
|
|
|
|
v13 = v14; |
|
|
|
|
if (*v14 == -1) |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
v15 = &trigs[0]._tmsg; |
|
|
|
|
while (*v15 != WM_DIABNEXTLVL) { |
|
|
|
|
++v2; |
|
|
|
|
v15 += 4; |
|
|
|
|
if (v2 >= trigflag[4]) |
|
|
|
|
goto LABEL_36; |
|
|
|
|
} |
|
|
|
|
LABEL_39: |
|
|
|
|
v18 = v2; |
|
|
|
|
v19 = trigs[v18]._tx; |
|
|
|
|
v17 = trigs[v18]._ty; |
|
|
|
|
cursmx = v19; |
|
|
|
|
LABEL_40: |
|
|
|
|
cursmy = v17; |
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
return FALSE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void Freeupstairs() |
|
|
|
|
|