Browse Source

Clean up ForceL2Trig

pull/88/head
Anders Jenbo 7 years ago
parent
commit
6fd36ad7fb
  1. 154
      Source/trigs.cpp
  2. 2
      Source/trigs.h

154
Source/trigs.cpp

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

2
Source/trigs.h

@ -18,7 +18,7 @@ void InitPWaterTriggers();
void InitVPTriggers();
BOOL ForceTownTrig();
BOOL ForceL1Trig();
unsigned char ForceL2Trig();
BOOL ForceL2Trig();
unsigned char ForceL3Trig();
unsigned char ForceL4Trig();
void Freeupstairs();

Loading…
Cancel
Save