Browse Source

Clean up ForceL4Trig

pull/88/head
Anders Jenbo 7 years ago
parent
commit
5794c40f27
  1. 181
      Source/trigs.cpp
  2. 2
      Source/trigs.h

181
Source/trigs.cpp

@ -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()

2
Source/trigs.h

@ -20,7 +20,7 @@ BOOL ForceTownTrig();
BOOL ForceL1Trig();
BOOL ForceL2Trig();
BOOL ForceL3Trig();
unsigned char ForceL4Trig();
BOOL ForceL4Trig();
void Freeupstairs();
BOOL ForceSKingTrig();
BOOL ForceSChambTrig();

Loading…
Cancel
Save