|
|
|
|
@ -516,126 +516,60 @@ BOOL ForceL1Trig()
|
|
|
|
|
return FALSE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
unsigned char ForceL2Trig() |
|
|
|
|
BOOL ForceL2Trig() |
|
|
|
|
{ |
|
|
|
|
int *v0; // eax
|
|
|
|
|
int *v1; // ebp
|
|
|
|
|
int v2; // edi
|
|
|
|
|
TriggerStruct *v3; // esi
|
|
|
|
|
int v4; // ebx
|
|
|
|
|
int v5; // eax
|
|
|
|
|
int *v6; // eax
|
|
|
|
|
int *v7; // esi
|
|
|
|
|
int v8; // eax
|
|
|
|
|
int *v9; // ecx
|
|
|
|
|
int v10; // eax
|
|
|
|
|
int v11; // ecx
|
|
|
|
|
int v12; // eax
|
|
|
|
|
int *v13; // eax
|
|
|
|
|
int *v14; // ebp
|
|
|
|
|
TriggerStruct *v15; // esi
|
|
|
|
|
int v16; // ebx
|
|
|
|
|
int v17; // eax
|
|
|
|
|
int v19; // edi
|
|
|
|
|
int i, j, dx, dy; |
|
|
|
|
|
|
|
|
|
if (L2UpList[0] == -1) { |
|
|
|
|
LABEL_11: |
|
|
|
|
if (L2DownList[0] != -1) { |
|
|
|
|
v6 = L2DownList; |
|
|
|
|
v7 = L2DownList; |
|
|
|
|
while (1) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == *v6) { |
|
|
|
|
sprintf(infostr, "Down to level %i", currlevel + 1); |
|
|
|
|
v8 = 0; |
|
|
|
|
if (trigflag[4] > 0) |
|
|
|
|
break; |
|
|
|
|
for (i = 0; L2UpList[i] != -1; i++) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == L2UpList[i]) { |
|
|
|
|
for (j = 0; j < trigflag[4]; j++) { |
|
|
|
|
if (trigs[j]._tmsg == WM_DIABPREVLVL) { |
|
|
|
|
dx = abs(trigs[j]._tx - cursmx); |
|
|
|
|
dy = abs(trigs[j]._ty - cursmy); |
|
|
|
|
if (dx < 4 && dy < 4) { |
|
|
|
|
sprintf(infostr, "Up to level %i", currlevel - 1); |
|
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
|
return TRUE; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
LABEL_18: |
|
|
|
|
++v7; |
|
|
|
|
v6 = v7; |
|
|
|
|
if (*v7 == -1) |
|
|
|
|
goto LABEL_22; |
|
|
|
|
} |
|
|
|
|
v9 = &trigs[0]._tmsg; |
|
|
|
|
while (*v9 != WM_DIABNEXTLVL) { |
|
|
|
|
++v8; |
|
|
|
|
v9 += 4; |
|
|
|
|
if (v8 >= trigflag[4]) |
|
|
|
|
goto LABEL_18; |
|
|
|
|
} |
|
|
|
|
v10 = v8; |
|
|
|
|
v11 = trigs[v10]._tx; |
|
|
|
|
v12 = trigs[v10]._ty; |
|
|
|
|
cursmx = v11; |
|
|
|
|
goto LABEL_37; |
|
|
|
|
} |
|
|
|
|
LABEL_22: |
|
|
|
|
if (currlevel != 5 || L2TWarpUpList[0] == -1) |
|
|
|
|
return 0; |
|
|
|
|
v13 = L2TWarpUpList; |
|
|
|
|
v14 = L2TWarpUpList; |
|
|
|
|
while (1) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == *v13) { |
|
|
|
|
v2 = 0; |
|
|
|
|
if (trigflag[4] > 0) |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
LABEL_32: |
|
|
|
|
++v14; |
|
|
|
|
v13 = v14; |
|
|
|
|
if (*v14 == -1) |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
v15 = trigs; |
|
|
|
|
while (1) { |
|
|
|
|
if (v15->_tmsg == WM_DIABTWARPUP) { |
|
|
|
|
v16 = abs(v15->_tx - cursmx); |
|
|
|
|
v17 = abs(v15->_ty - cursmy); |
|
|
|
|
if (v16 < 4 && v17 < 4) |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
++v2; |
|
|
|
|
++v15; |
|
|
|
|
if (v2 >= trigflag[4]) |
|
|
|
|
goto LABEL_32; |
|
|
|
|
} |
|
|
|
|
strcpy(infostr, "Up to town"); |
|
|
|
|
} else { |
|
|
|
|
v0 = L2UpList; |
|
|
|
|
v1 = L2UpList; |
|
|
|
|
while (1) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == *v0) { |
|
|
|
|
v2 = 0; |
|
|
|
|
if (trigflag[4] > 0) |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (i = 0; L2DownList[i] != -1; i++) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == L2DownList[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_10: |
|
|
|
|
++v1; |
|
|
|
|
v0 = v1; |
|
|
|
|
if (*v1 == -1) |
|
|
|
|
goto LABEL_11; |
|
|
|
|
} |
|
|
|
|
v3 = trigs; |
|
|
|
|
while (1) { |
|
|
|
|
if (v3->_tmsg == WM_DIABPREVLVL) { |
|
|
|
|
v4 = abs(v3->_tx - cursmx); |
|
|
|
|
v5 = abs(v3->_ty - cursmy); |
|
|
|
|
if (v4 < 4 && v5 < 4) |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (currlevel == 5) { |
|
|
|
|
for (i = 0; L2TWarpUpList[i] != -1; i++) { |
|
|
|
|
if (dPiece[cursmx][cursmy] == L2TWarpUpList[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; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
++v2; |
|
|
|
|
++v3; |
|
|
|
|
if (v2 >= trigflag[4]) |
|
|
|
|
goto LABEL_10; |
|
|
|
|
} |
|
|
|
|
sprintf(infostr, "Up to level %i", currlevel - 1); |
|
|
|
|
} |
|
|
|
|
v19 = v2; |
|
|
|
|
cursmx = trigs[v19]._tx; |
|
|
|
|
v12 = trigs[v19]._ty; |
|
|
|
|
LABEL_37: |
|
|
|
|
cursmy = v12; |
|
|
|
|
return 1; |
|
|
|
|
|
|
|
|
|
return FALSE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
unsigned char ForceL3Trig() |
|
|
|
|
|