|
|
|
@ -2,11 +2,9 @@ |
|
|
|
|
|
|
|
|
|
|
|
DEVILUTION_BEGIN_NAMESPACE |
|
|
|
DEVILUTION_BEGIN_NAMESPACE |
|
|
|
|
|
|
|
|
|
|
|
int trigflag_0; |
|
|
|
BOOL townwarps[3]; |
|
|
|
int trigflag_1; |
|
|
|
BOOL trigflag; |
|
|
|
int trigflag_2; |
|
|
|
int numtrigs; |
|
|
|
int trigflag_3; |
|
|
|
|
|
|
|
int trigflag_4; |
|
|
|
|
|
|
|
TriggerStruct trigs[MAXTRIGGERS]; |
|
|
|
TriggerStruct trigs[MAXTRIGGERS]; |
|
|
|
int TWarpFrom; // weak
|
|
|
|
int TWarpFrom; // weak
|
|
|
|
|
|
|
|
|
|
|
|
@ -91,25 +89,25 @@ int L4PentaList[33] = { |
|
|
|
|
|
|
|
|
|
|
|
void InitNoTriggers() |
|
|
|
void InitNoTriggers() |
|
|
|
{ |
|
|
|
{ |
|
|
|
trigflag_4 = 0; |
|
|
|
numtrigs = 0; |
|
|
|
trigflag_3 = 0; |
|
|
|
trigflag = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void InitTownTriggers() |
|
|
|
void InitTownTriggers() |
|
|
|
{ |
|
|
|
{ |
|
|
|
char v0; // bl
|
|
|
|
int i; |
|
|
|
int v1; // eax
|
|
|
|
|
|
|
|
int v2; // eax
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trigs[0]._tx = 25; |
|
|
|
trigs[0]._tx = 25; |
|
|
|
trigs[0]._ty = 29; |
|
|
|
trigs[0]._ty = 29; |
|
|
|
trigs[0]._tmsg = WM_DIABNEXTLVL; |
|
|
|
trigs[0]._tmsg = WM_DIABNEXTLVL; |
|
|
|
trigflag_4 = 1; |
|
|
|
|
|
|
|
if (gbMaxPlayers == 4) { |
|
|
|
numtrigs = 1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(gbMaxPlayers == MAX_PLRS) { |
|
|
|
|
|
|
|
for(i = 0; i < sizeof(townwarps) / sizeof(townwarps[0]); i++) { |
|
|
|
|
|
|
|
townwarps[i] = TRUE; |
|
|
|
|
|
|
|
} |
|
|
|
trigs[1]._tx = 49; |
|
|
|
trigs[1]._tx = 49; |
|
|
|
trigflag_0 = 1; |
|
|
|
|
|
|
|
trigflag_1 = 1; |
|
|
|
|
|
|
|
trigflag_2 = 1; |
|
|
|
|
|
|
|
trigs[1]._ty = 21; |
|
|
|
trigs[1]._ty = 21; |
|
|
|
trigs[1]._tmsg = WM_DIABTOWNWARP; |
|
|
|
trigs[1]._tmsg = WM_DIABTOWNWARP; |
|
|
|
trigs[1]._tlvl = 5; |
|
|
|
trigs[1]._tlvl = 5; |
|
|
|
@ -121,38 +119,38 @@ void InitTownTriggers() |
|
|
|
trigs[3]._ty = 80; |
|
|
|
trigs[3]._ty = 80; |
|
|
|
trigs[3]._tmsg = WM_DIABTOWNWARP; |
|
|
|
trigs[3]._tmsg = WM_DIABTOWNWARP; |
|
|
|
trigs[3]._tlvl = 13; |
|
|
|
trigs[3]._tlvl = 13; |
|
|
|
trigflag_4 = 4; |
|
|
|
numtrigs = 4; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
trigflag_0 = 0; |
|
|
|
for(i = 0; i < 3; i++) { |
|
|
|
trigflag_1 = 0; |
|
|
|
townwarps[i] = FALSE; |
|
|
|
trigflag_2 = 0; |
|
|
|
} |
|
|
|
v0 = plr[myplr].pTownWarps; |
|
|
|
if(plr[myplr].pTownWarps & 1) { |
|
|
|
if (v0 & 1) { |
|
|
|
|
|
|
|
trigs[1]._tx = 49; |
|
|
|
trigs[1]._tx = 49; |
|
|
|
trigs[1]._ty = 21; |
|
|
|
trigs[1]._ty = 21; |
|
|
|
trigs[1]._tmsg = WM_DIABTOWNWARP; |
|
|
|
trigs[1]._tmsg = WM_DIABTOWNWARP; |
|
|
|
trigs[1]._tlvl = 5; |
|
|
|
trigs[1]._tlvl = 5; |
|
|
|
trigflag_4 = 2; |
|
|
|
numtrigs = 2; |
|
|
|
trigflag_0 = 1; |
|
|
|
townwarps[0] = TRUE; |
|
|
|
} |
|
|
|
} |
|
|
|
if (v0 & 2) { |
|
|
|
if(plr[myplr].pTownWarps & 2) { |
|
|
|
trigflag_1 = 1; |
|
|
|
townwarps[1] = TRUE; |
|
|
|
v1 = trigflag_4++; |
|
|
|
trigs[numtrigs]._tx = 17; |
|
|
|
trigs[v1]._tx = 17; |
|
|
|
trigs[numtrigs]._ty = 69; |
|
|
|
trigs[v1]._ty = 69; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABTOWNWARP; |
|
|
|
trigs[v1]._tmsg = WM_DIABTOWNWARP; |
|
|
|
trigs[numtrigs]._tlvl = 9; |
|
|
|
trigs[v1]._tlvl = 9; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
if (v0 & 4) { |
|
|
|
if(plr[myplr].pTownWarps & 4) { |
|
|
|
trigflag_2 = 1; |
|
|
|
townwarps[2] = TRUE; |
|
|
|
v2 = trigflag_4++; |
|
|
|
trigs[numtrigs]._tx = 41; |
|
|
|
trigs[v2]._tx = 41; |
|
|
|
trigs[numtrigs]._ty = 80; |
|
|
|
trigs[v2]._ty = 80; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABTOWNWARP; |
|
|
|
trigs[v2]._tmsg = WM_DIABTOWNWARP; |
|
|
|
trigs[numtrigs]._tlvl = 13; |
|
|
|
trigs[v2]._tlvl = 13; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
trigflag_3 = 0; |
|
|
|
|
|
|
|
|
|
|
|
trigflag = FALSE; |
|
|
|
} |
|
|
|
} |
|
|
|
// 679660: using guessed type char gbMaxPlayers;
|
|
|
|
// 679660: using guessed type char gbMaxPlayers;
|
|
|
|
|
|
|
|
|
|
|
|
@ -160,120 +158,120 @@ void InitL1Triggers() |
|
|
|
{ |
|
|
|
{ |
|
|
|
int j, i; |
|
|
|
int j, i; |
|
|
|
|
|
|
|
|
|
|
|
trigflag_4 = 0; |
|
|
|
numtrigs = 0; |
|
|
|
for (j = 0; j < MAXDUNY; j++) { |
|
|
|
for (j = 0; j < MAXDUNY; j++) { |
|
|
|
for (i = 0; i < MAXDUNX; i++) { |
|
|
|
for (i = 0; i < MAXDUNX; i++) { |
|
|
|
if (dPiece[i][j] == 129) { |
|
|
|
if (dPiece[i][j] == 129) { |
|
|
|
trigs[trigflag_4]._tx = i; |
|
|
|
trigs[numtrigs]._tx = i; |
|
|
|
trigs[trigflag_4]._ty = j; |
|
|
|
trigs[numtrigs]._ty = j; |
|
|
|
trigs[trigflag_4]._tmsg = WM_DIABPREVLVL; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABPREVLVL; |
|
|
|
trigflag_4++; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
if (dPiece[i][j] == 115) { |
|
|
|
if (dPiece[i][j] == 115) { |
|
|
|
trigs[trigflag_4]._tx = i; |
|
|
|
trigs[numtrigs]._tx = i; |
|
|
|
trigs[trigflag_4]._ty = j; |
|
|
|
trigs[numtrigs]._ty = j; |
|
|
|
trigs[trigflag_4]._tmsg = WM_DIABNEXTLVL; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABNEXTLVL; |
|
|
|
trigflag_4++; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
trigflag_3 = 0; |
|
|
|
trigflag = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void InitL2Triggers() |
|
|
|
void InitL2Triggers() |
|
|
|
{ |
|
|
|
{ |
|
|
|
int i, j; |
|
|
|
int i, j; |
|
|
|
|
|
|
|
|
|
|
|
trigflag_4 = 0; |
|
|
|
numtrigs = 0; |
|
|
|
for (j = 0; j < MAXDUNY; j++) { |
|
|
|
for (j = 0; j < MAXDUNY; j++) { |
|
|
|
for (i = 0; i < MAXDUNX; i++) { |
|
|
|
for (i = 0; i < MAXDUNX; i++) { |
|
|
|
if (dPiece[i][j] == 267 && (i != quests[QTYPE_BONE]._qtx || j != quests[QTYPE_BONE]._qty)) { |
|
|
|
if (dPiece[i][j] == 267 && (i != quests[QTYPE_BONE]._qtx || j != quests[QTYPE_BONE]._qty)) { |
|
|
|
trigs[trigflag_4]._tx = i; |
|
|
|
trigs[numtrigs]._tx = i; |
|
|
|
trigs[trigflag_4]._ty = j; |
|
|
|
trigs[numtrigs]._ty = j; |
|
|
|
trigs[trigflag_4]._tmsg = WM_DIABPREVLVL; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABPREVLVL; |
|
|
|
trigflag_4++; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (dPiece[i][j] == 559) { |
|
|
|
if (dPiece[i][j] == 559) { |
|
|
|
trigs[trigflag_4]._tx = i; |
|
|
|
trigs[numtrigs]._tx = i; |
|
|
|
trigs[trigflag_4]._ty = j; |
|
|
|
trigs[numtrigs]._ty = j; |
|
|
|
trigs[trigflag_4]._tmsg = WM_DIABTWARPUP; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABTWARPUP; |
|
|
|
trigs[trigflag_4]._tlvl = 0; |
|
|
|
trigs[numtrigs]._tlvl = 0; |
|
|
|
trigflag_4++; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (dPiece[i][j] == 271) { |
|
|
|
if (dPiece[i][j] == 271) { |
|
|
|
trigs[trigflag_4]._tx = i; |
|
|
|
trigs[numtrigs]._tx = i; |
|
|
|
trigs[trigflag_4]._ty = j; |
|
|
|
trigs[numtrigs]._ty = j; |
|
|
|
trigs[trigflag_4]._tmsg = WM_DIABNEXTLVL; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABNEXTLVL; |
|
|
|
trigflag_4++; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
trigflag_3 = 0; |
|
|
|
trigflag = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void InitL3Triggers() |
|
|
|
void InitL3Triggers() |
|
|
|
{ |
|
|
|
{ |
|
|
|
int i, j; |
|
|
|
int i, j; |
|
|
|
|
|
|
|
|
|
|
|
trigflag_4 = 0; |
|
|
|
numtrigs = 0; |
|
|
|
for (j = 0; j < MAXDUNY; j++) { |
|
|
|
for (j = 0; j < MAXDUNY; j++) { |
|
|
|
for (i = 0; i < MAXDUNX; i++) { |
|
|
|
for (i = 0; i < MAXDUNX; i++) { |
|
|
|
if (dPiece[i][j] == 171) { |
|
|
|
if (dPiece[i][j] == 171) { |
|
|
|
trigs[trigflag_4]._tx = i; |
|
|
|
trigs[numtrigs]._tx = i; |
|
|
|
trigs[trigflag_4]._ty = j; |
|
|
|
trigs[numtrigs]._ty = j; |
|
|
|
trigs[trigflag_4]._tmsg = WM_DIABPREVLVL; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABPREVLVL; |
|
|
|
trigflag_4++; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (dPiece[i][j] == 168) { |
|
|
|
if (dPiece[i][j] == 168) { |
|
|
|
trigs[trigflag_4]._tx = i; |
|
|
|
trigs[numtrigs]._tx = i; |
|
|
|
trigs[trigflag_4]._ty = j; |
|
|
|
trigs[numtrigs]._ty = j; |
|
|
|
trigs[trigflag_4] ._tmsg = WM_DIABNEXTLVL; |
|
|
|
trigs[numtrigs] ._tmsg = WM_DIABNEXTLVL; |
|
|
|
trigflag_4++; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (dPiece[i][j] == 549) { |
|
|
|
if (dPiece[i][j] == 549) { |
|
|
|
trigs[trigflag_4]._tx = i; |
|
|
|
trigs[numtrigs]._tx = i; |
|
|
|
trigs[trigflag_4]._ty = j; |
|
|
|
trigs[numtrigs]._ty = j; |
|
|
|
trigs[trigflag_4]._tmsg = WM_DIABTWARPUP; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABTWARPUP; |
|
|
|
trigflag_4++; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
trigflag_3 = 0; |
|
|
|
trigflag = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void InitL4Triggers() |
|
|
|
void InitL4Triggers() |
|
|
|
{ |
|
|
|
{ |
|
|
|
int i, j; |
|
|
|
int i, j; |
|
|
|
|
|
|
|
|
|
|
|
trigflag_4 = 0; |
|
|
|
numtrigs = 0; |
|
|
|
for (j = 0; j < MAXDUNY; j++) { |
|
|
|
for (j = 0; j < MAXDUNY; j++) { |
|
|
|
for (i = 0; i < MAXDUNX; i++) { |
|
|
|
for (i = 0; i < MAXDUNX; i++) { |
|
|
|
if (dPiece[i][j] == 83) { |
|
|
|
if (dPiece[i][j] == 83) { |
|
|
|
trigs[trigflag_4]._tx = i; |
|
|
|
trigs[numtrigs]._tx = i; |
|
|
|
trigs[trigflag_4]._ty = j; |
|
|
|
trigs[numtrigs]._ty = j; |
|
|
|
trigs[trigflag_4]._tmsg = WM_DIABPREVLVL; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABPREVLVL; |
|
|
|
trigflag_4++; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (dPiece[i][j] == 422) { |
|
|
|
if (dPiece[i][j] == 422) { |
|
|
|
trigs[trigflag_4]._tx = i; |
|
|
|
trigs[numtrigs]._tx = i; |
|
|
|
trigs[trigflag_4]._ty = j; |
|
|
|
trigs[numtrigs]._ty = j; |
|
|
|
trigs[trigflag_4]._tmsg = WM_DIABTWARPUP; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABTWARPUP; |
|
|
|
trigs[trigflag_4]._tlvl = 0; |
|
|
|
trigs[numtrigs]._tlvl = 0; |
|
|
|
trigflag_4++; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (dPiece[i][j] == 120) { |
|
|
|
if (dPiece[i][j] == 120) { |
|
|
|
trigs[trigflag_4]._tx = i; |
|
|
|
trigs[numtrigs]._tx = i; |
|
|
|
trigs[trigflag_4]._ty = j; |
|
|
|
trigs[numtrigs]._ty = j; |
|
|
|
trigs[trigflag_4]._tmsg = WM_DIABNEXTLVL; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABNEXTLVL; |
|
|
|
trigflag_4++; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -281,20 +279,20 @@ void InitL4Triggers() |
|
|
|
for (j = 0; j < MAXDUNY; j++) { |
|
|
|
for (j = 0; j < MAXDUNY; j++) { |
|
|
|
for (i = 0; i < MAXDUNX; i++) { |
|
|
|
for (i = 0; i < MAXDUNX; i++) { |
|
|
|
if (dPiece[i][j] == 370 && quests[QTYPE_VB]._qactive == 3) { |
|
|
|
if (dPiece[i][j] == 370 && quests[QTYPE_VB]._qactive == 3) { |
|
|
|
trigs[trigflag_4]._tx = i; |
|
|
|
trigs[numtrigs]._tx = i; |
|
|
|
trigs[trigflag_4]._ty = j; |
|
|
|
trigs[numtrigs]._ty = j; |
|
|
|
trigs[trigflag_4]._tmsg = WM_DIABNEXTLVL; |
|
|
|
trigs[numtrigs]._tmsg = WM_DIABNEXTLVL; |
|
|
|
trigflag_4++; |
|
|
|
numtrigs++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
trigflag_3 = 0; |
|
|
|
trigflag = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void InitSKingTriggers() |
|
|
|
void InitSKingTriggers() |
|
|
|
{ |
|
|
|
{ |
|
|
|
trigflag_3 = 0; |
|
|
|
trigflag = 0; |
|
|
|
trigflag_4 = 1; |
|
|
|
numtrigs = 1; |
|
|
|
trigs[0]._tx = 82; |
|
|
|
trigs[0]._tx = 82; |
|
|
|
trigs[0]._ty = 42; |
|
|
|
trigs[0]._ty = 42; |
|
|
|
trigs[0]._tmsg = WM_DIABRTNLVL; |
|
|
|
trigs[0]._tmsg = WM_DIABRTNLVL; |
|
|
|
@ -302,8 +300,8 @@ void InitSKingTriggers() |
|
|
|
|
|
|
|
|
|
|
|
void InitSChambTriggers() |
|
|
|
void InitSChambTriggers() |
|
|
|
{ |
|
|
|
{ |
|
|
|
trigflag_3 = 0; |
|
|
|
trigflag = 0; |
|
|
|
trigflag_4 = 1; |
|
|
|
numtrigs = 1; |
|
|
|
trigs[0]._tx = 70; |
|
|
|
trigs[0]._tx = 70; |
|
|
|
trigs[0]._ty = 39; |
|
|
|
trigs[0]._ty = 39; |
|
|
|
trigs[0]._tmsg = WM_DIABRTNLVL; |
|
|
|
trigs[0]._tmsg = WM_DIABRTNLVL; |
|
|
|
@ -311,8 +309,8 @@ void InitSChambTriggers() |
|
|
|
|
|
|
|
|
|
|
|
void InitPWaterTriggers() |
|
|
|
void InitPWaterTriggers() |
|
|
|
{ |
|
|
|
{ |
|
|
|
trigflag_3 = 0; |
|
|
|
trigflag = 0; |
|
|
|
trigflag_4 = 1; |
|
|
|
numtrigs = 1; |
|
|
|
trigs[0]._tx = 30; |
|
|
|
trigs[0]._tx = 30; |
|
|
|
trigs[0]._ty = 83; |
|
|
|
trigs[0]._ty = 83; |
|
|
|
trigs[0]._tmsg = WM_DIABRTNLVL; |
|
|
|
trigs[0]._tmsg = WM_DIABRTNLVL; |
|
|
|
@ -320,8 +318,8 @@ void InitPWaterTriggers() |
|
|
|
|
|
|
|
|
|
|
|
void InitVPTriggers() |
|
|
|
void InitVPTriggers() |
|
|
|
{ |
|
|
|
{ |
|
|
|
trigflag_3 = 0; |
|
|
|
trigflag = 0; |
|
|
|
trigflag_4 = 1; |
|
|
|
numtrigs = 1; |
|
|
|
trigs[0]._tx = 35; |
|
|
|
trigs[0]._tx = 35; |
|
|
|
trigs[0]._ty = 32; |
|
|
|
trigs[0]._ty = 32; |
|
|
|
trigs[0]._tmsg = WM_DIABRTNLVL; |
|
|
|
trigs[0]._tmsg = WM_DIABRTNLVL; |
|
|
|
@ -340,7 +338,7 @@ BOOL ForceTownTrig() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (trigflag_0) { |
|
|
|
if (townwarps[0]) { |
|
|
|
for (j = 0; TownWarp1List[j] != -1; j++) { |
|
|
|
for (j = 0; TownWarp1List[j] != -1; j++) { |
|
|
|
if (dPiece[cursmx][cursmy] == TownWarp1List[j]) { |
|
|
|
if (dPiece[cursmx][cursmy] == TownWarp1List[j]) { |
|
|
|
strcpy(infostr, "Down to catacombs"); |
|
|
|
strcpy(infostr, "Down to catacombs"); |
|
|
|
@ -351,7 +349,7 @@ BOOL ForceTownTrig() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (trigflag_1) { |
|
|
|
if (townwarps[1]) { |
|
|
|
for (k = 1199; k <= 1220; k++) { |
|
|
|
for (k = 1199; k <= 1220; k++) { |
|
|
|
if (dPiece[cursmx][cursmy] == k) { |
|
|
|
if (dPiece[cursmx][cursmy] == k) { |
|
|
|
strcpy(infostr, "Down to caves"); |
|
|
|
strcpy(infostr, "Down to caves"); |
|
|
|
@ -362,7 +360,7 @@ BOOL ForceTownTrig() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (trigflag_2) { |
|
|
|
if (townwarps[2]) { |
|
|
|
for (l = 1240; l <= 1254; l++) { |
|
|
|
for (l = 1240; l <= 1254; l++) { |
|
|
|
if (dPiece[cursmx][cursmy] == l) { |
|
|
|
if (dPiece[cursmx][cursmy] == l) { |
|
|
|
strcpy(infostr, "Down to hell"); |
|
|
|
strcpy(infostr, "Down to hell"); |
|
|
|
@ -386,7 +384,7 @@ BOOL ForceL1Trig() |
|
|
|
sprintf(infostr, "Up to level %i", currlevel - 1); |
|
|
|
sprintf(infostr, "Up to level %i", currlevel - 1); |
|
|
|
else |
|
|
|
else |
|
|
|
strcpy(infostr, "Up to town"); |
|
|
|
strcpy(infostr, "Up to town"); |
|
|
|
for (j = 0; j < trigflag_4; j++) { |
|
|
|
for (j = 0; j < numtrigs; j++) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABPREVLVL) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABPREVLVL) { |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
@ -399,7 +397,7 @@ BOOL ForceL1Trig() |
|
|
|
for (i = 0; L1DownList[i] != -1; i++) { |
|
|
|
for (i = 0; L1DownList[i] != -1; i++) { |
|
|
|
if (dPiece[cursmx][cursmy] == L1DownList[i]) { |
|
|
|
if (dPiece[cursmx][cursmy] == L1DownList[i]) { |
|
|
|
sprintf(infostr, "Down to level %i", currlevel + 1); |
|
|
|
sprintf(infostr, "Down to level %i", currlevel + 1); |
|
|
|
for (j = 0; j < trigflag_4; j++) { |
|
|
|
for (j = 0; j < numtrigs; j++) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABNEXTLVL) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABNEXTLVL) { |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
@ -418,7 +416,7 @@ BOOL ForceL2Trig() |
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; L2UpList[i] != -1; i++) { |
|
|
|
for (i = 0; L2UpList[i] != -1; i++) { |
|
|
|
if (dPiece[cursmx][cursmy] == L2UpList[i]) { |
|
|
|
if (dPiece[cursmx][cursmy] == L2UpList[i]) { |
|
|
|
for (j = 0; j < trigflag_4; j++) { |
|
|
|
for (j = 0; j < numtrigs; j++) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABPREVLVL) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABPREVLVL) { |
|
|
|
dx = abs(trigs[j]._tx - cursmx); |
|
|
|
dx = abs(trigs[j]._tx - cursmx); |
|
|
|
dy = abs(trigs[j]._ty - cursmy); |
|
|
|
dy = abs(trigs[j]._ty - cursmy); |
|
|
|
@ -436,7 +434,7 @@ BOOL ForceL2Trig() |
|
|
|
for (i = 0; L2DownList[i] != -1; i++) { |
|
|
|
for (i = 0; L2DownList[i] != -1; i++) { |
|
|
|
if (dPiece[cursmx][cursmy] == L2DownList[i]) { |
|
|
|
if (dPiece[cursmx][cursmy] == L2DownList[i]) { |
|
|
|
sprintf(infostr, "Down to level %i", currlevel + 1); |
|
|
|
sprintf(infostr, "Down to level %i", currlevel + 1); |
|
|
|
for (j = 0; j < trigflag_4; j++) { |
|
|
|
for (j = 0; j < numtrigs; j++) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABNEXTLVL) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABNEXTLVL) { |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
@ -449,7 +447,7 @@ BOOL ForceL2Trig() |
|
|
|
if (currlevel == 5) { |
|
|
|
if (currlevel == 5) { |
|
|
|
for (i = 0; L2TWarpUpList[i] != -1; i++) { |
|
|
|
for (i = 0; L2TWarpUpList[i] != -1; i++) { |
|
|
|
if (dPiece[cursmx][cursmy] == L2TWarpUpList[i]) { |
|
|
|
if (dPiece[cursmx][cursmy] == L2TWarpUpList[i]) { |
|
|
|
for (j = 0; j < trigflag_4; j++) { |
|
|
|
for (j = 0; j < numtrigs; j++) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABTWARPUP) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABTWARPUP) { |
|
|
|
dx = abs(trigs[j]._tx - cursmx); |
|
|
|
dx = abs(trigs[j]._tx - cursmx); |
|
|
|
dy = abs(trigs[j]._ty - cursmy); |
|
|
|
dy = abs(trigs[j]._ty - cursmy); |
|
|
|
@ -475,7 +473,7 @@ BOOL ForceL3Trig() |
|
|
|
for (i = 0; L3UpList[i] != -1; ++i) { |
|
|
|
for (i = 0; L3UpList[i] != -1; ++i) { |
|
|
|
if (dPiece[cursmx][cursmy] == L3UpList[i]) { |
|
|
|
if (dPiece[cursmx][cursmy] == L3UpList[i]) { |
|
|
|
sprintf(infostr, "Up to level %i", currlevel - 1); |
|
|
|
sprintf(infostr, "Up to level %i", currlevel - 1); |
|
|
|
for (j = 0; j < trigflag_4; j++) { |
|
|
|
for (j = 0; j < numtrigs; j++) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABPREVLVL) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABPREVLVL) { |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
@ -488,7 +486,7 @@ BOOL ForceL3Trig() |
|
|
|
for (i = 0; L3DownList[i] != -1; i++) { |
|
|
|
for (i = 0; L3DownList[i] != -1; i++) { |
|
|
|
if (dPiece[cursmx][cursmy] == L3DownList[i] || dPiece[cursmx + 1][cursmy] == L3DownList[i] || dPiece[cursmx + 2][cursmy] == L3DownList[i]) { |
|
|
|
if (dPiece[cursmx][cursmy] == L3DownList[i] || dPiece[cursmx + 1][cursmy] == L3DownList[i] || dPiece[cursmx + 2][cursmy] == L3DownList[i]) { |
|
|
|
sprintf(infostr, "Down to level %i", currlevel + 1); |
|
|
|
sprintf(infostr, "Down to level %i", currlevel + 1); |
|
|
|
for (j = 0; j < trigflag_4; j++) { |
|
|
|
for (j = 0; j < numtrigs; j++) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABNEXTLVL) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABNEXTLVL) { |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
@ -501,7 +499,7 @@ BOOL ForceL3Trig() |
|
|
|
if (currlevel == 9) { |
|
|
|
if (currlevel == 9) { |
|
|
|
for (i = 0; L3TWarpUpList[i] != -1; i++) { |
|
|
|
for (i = 0; L3TWarpUpList[i] != -1; i++) { |
|
|
|
if (dPiece[cursmx][cursmy] == L3TWarpUpList[i]) { |
|
|
|
if (dPiece[cursmx][cursmy] == L3TWarpUpList[i]) { |
|
|
|
for (j = 0; j < trigflag_4; j++) { |
|
|
|
for (j = 0; j < numtrigs; j++) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABTWARPUP) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABTWARPUP) { |
|
|
|
dx = abs(trigs[j]._tx - cursmx); |
|
|
|
dx = abs(trigs[j]._tx - cursmx); |
|
|
|
dy = abs(trigs[j]._ty - cursmy); |
|
|
|
dy = abs(trigs[j]._ty - cursmy); |
|
|
|
@ -527,7 +525,7 @@ BOOL ForceL4Trig() |
|
|
|
for (i = 0; L4UpList[i] != -1; ++i) { |
|
|
|
for (i = 0; L4UpList[i] != -1; ++i) { |
|
|
|
if (dPiece[cursmx][cursmy] == L4UpList[i]) { |
|
|
|
if (dPiece[cursmx][cursmy] == L4UpList[i]) { |
|
|
|
sprintf(infostr, "Up to level %i", currlevel - 1); |
|
|
|
sprintf(infostr, "Up to level %i", currlevel - 1); |
|
|
|
for (j = 0; j < trigflag_4; j++) { |
|
|
|
for (j = 0; j < numtrigs; j++) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABPREVLVL) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABPREVLVL) { |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
@ -540,7 +538,7 @@ BOOL ForceL4Trig() |
|
|
|
for (i = 0; L4DownList[i] != -1; i++) { |
|
|
|
for (i = 0; L4DownList[i] != -1; i++) { |
|
|
|
if (dPiece[cursmx][cursmy] == L4DownList[i]) { |
|
|
|
if (dPiece[cursmx][cursmy] == L4DownList[i]) { |
|
|
|
sprintf(infostr, "Down to level %i", currlevel + 1); |
|
|
|
sprintf(infostr, "Down to level %i", currlevel + 1); |
|
|
|
for (j = 0; j < trigflag_4; j++) { |
|
|
|
for (j = 0; j < numtrigs; j++) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABNEXTLVL) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABNEXTLVL) { |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
@ -553,7 +551,7 @@ BOOL ForceL4Trig() |
|
|
|
if (currlevel == 13) { |
|
|
|
if (currlevel == 13) { |
|
|
|
for (i = 0; L4TWarpUpList[i] != -1; i++) { |
|
|
|
for (i = 0; L4TWarpUpList[i] != -1; i++) { |
|
|
|
if (dPiece[cursmx][cursmy] == L4TWarpUpList[i]) { |
|
|
|
if (dPiece[cursmx][cursmy] == L4TWarpUpList[i]) { |
|
|
|
for (j = 0; j < trigflag_4; j++) { |
|
|
|
for (j = 0; j < numtrigs; j++) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABTWARPUP) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABTWARPUP) { |
|
|
|
dx = abs(trigs[j]._tx - cursmx); |
|
|
|
dx = abs(trigs[j]._tx - cursmx); |
|
|
|
dy = abs(trigs[j]._ty - cursmy); |
|
|
|
dy = abs(trigs[j]._ty - cursmy); |
|
|
|
@ -573,7 +571,7 @@ BOOL ForceL4Trig() |
|
|
|
for (i = 0; L4PentaList[i] != -1; i++) { |
|
|
|
for (i = 0; L4PentaList[i] != -1; i++) { |
|
|
|
if (dPiece[cursmx][cursmy] == L4PentaList[i]) { |
|
|
|
if (dPiece[cursmx][cursmy] == L4PentaList[i]) { |
|
|
|
strcpy(infostr, "Down to Diablo"); |
|
|
|
strcpy(infostr, "Down to Diablo"); |
|
|
|
for (j = 0; j < trigflag_4; j++) { |
|
|
|
for (j = 0; j < numtrigs; j++) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABNEXTLVL) { |
|
|
|
if (trigs[j]._tmsg == WM_DIABNEXTLVL) { |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmx = trigs[j]._tx; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
cursmy = trigs[j]._ty; |
|
|
|
@ -591,7 +589,7 @@ void Freeupstairs() |
|
|
|
{ |
|
|
|
{ |
|
|
|
int i, yy, xx, tx, ty; |
|
|
|
int i, yy, xx, tx, ty; |
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < trigflag_4; i++) { |
|
|
|
for (i = 0; i < numtrigs; i++) { |
|
|
|
tx = trigs[i]._tx; |
|
|
|
tx = trigs[i]._tx; |
|
|
|
ty = trigs[i]._ty; |
|
|
|
ty = trigs[i]._ty; |
|
|
|
|
|
|
|
|
|
|
|
@ -656,63 +654,49 @@ BOOL ForcePWaterTrig() |
|
|
|
|
|
|
|
|
|
|
|
void CheckTrigForce() |
|
|
|
void CheckTrigForce() |
|
|
|
{ |
|
|
|
{ |
|
|
|
int v0; // eax
|
|
|
|
trigflag = FALSE; |
|
|
|
int v1; // eax
|
|
|
|
|
|
|
|
|
|
|
|
if(MouseY > 352 - 1) { |
|
|
|
trigflag_3 = 0; |
|
|
|
return; |
|
|
|
if (MouseY <= 351) { |
|
|
|
} |
|
|
|
if (setlevel) { |
|
|
|
|
|
|
|
switch (setlvlnum) { |
|
|
|
if(!setlevel) { |
|
|
|
case SL_SKELKING: |
|
|
|
switch(leveltype) { |
|
|
|
v1 = ForceSKingTrig(); |
|
|
|
case DTYPE_TOWN: |
|
|
|
break; |
|
|
|
trigflag = ForceTownTrig(); |
|
|
|
case SL_BONECHAMB: |
|
|
|
break; |
|
|
|
v1 = ForceSChambTrig(); |
|
|
|
case DTYPE_CATHEDRAL: |
|
|
|
break; |
|
|
|
trigflag = ForceL1Trig(); |
|
|
|
case SL_POISONWATER: |
|
|
|
break; |
|
|
|
v1 = ForcePWaterTrig(); |
|
|
|
case DTYPE_CATACOMBS: |
|
|
|
break; |
|
|
|
trigflag = ForceL2Trig(); |
|
|
|
default: |
|
|
|
break; |
|
|
|
return; |
|
|
|
case DTYPE_CAVES: |
|
|
|
} |
|
|
|
trigflag = ForceL3Trig(); |
|
|
|
goto LABEL_23; |
|
|
|
break; |
|
|
|
} |
|
|
|
case DTYPE_HELL: |
|
|
|
if (leveltype) { |
|
|
|
trigflag = ForceL4Trig(); |
|
|
|
switch (leveltype) { |
|
|
|
break; |
|
|
|
case DTYPE_CATHEDRAL: |
|
|
|
} |
|
|
|
v0 = ForceL1Trig(); |
|
|
|
if(leveltype != DTYPE_TOWN && !trigflag) { |
|
|
|
break; |
|
|
|
trigflag = ForceQuests(); |
|
|
|
case DTYPE_CATACOMBS: |
|
|
|
|
|
|
|
v0 = ForceL2Trig(); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case DTYPE_CAVES: |
|
|
|
|
|
|
|
v0 = ForceL3Trig(); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case DTYPE_HELL: |
|
|
|
|
|
|
|
v0 = ForceL4Trig(); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
default: |
|
|
|
|
|
|
|
LABEL_14: |
|
|
|
|
|
|
|
if (leveltype == DTYPE_TOWN) |
|
|
|
|
|
|
|
goto LABEL_24; |
|
|
|
|
|
|
|
if (trigflag_3) { |
|
|
|
|
|
|
|
LABEL_25: |
|
|
|
|
|
|
|
ClearPanel(); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
v1 = ForceQuests(); |
|
|
|
|
|
|
|
LABEL_23: |
|
|
|
|
|
|
|
trigflag_3 = v1; |
|
|
|
|
|
|
|
LABEL_24: |
|
|
|
|
|
|
|
if (!trigflag_3) |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
goto LABEL_25; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
v0 = ForceTownTrig(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
trigflag_3 = v0; |
|
|
|
} else { |
|
|
|
goto LABEL_14; |
|
|
|
switch(setlvlnum) { |
|
|
|
|
|
|
|
case SL_SKELKING: |
|
|
|
|
|
|
|
trigflag = ForceSKingTrig(); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case SL_BONECHAMB: |
|
|
|
|
|
|
|
trigflag = ForceSChambTrig(); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case SL_POISONWATER: |
|
|
|
|
|
|
|
trigflag = ForcePWaterTrig(); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(trigflag) { |
|
|
|
|
|
|
|
ClearPanel(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// 5CF31D: using guessed type char setlevel;
|
|
|
|
// 5CF31D: using guessed type char setlevel;
|
|
|
|
@ -726,7 +710,7 @@ void CheckTriggers() |
|
|
|
if (plr[myplr]._pmode) |
|
|
|
if (plr[myplr]._pmode) |
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < trigflag_4; i++) { |
|
|
|
for (i = 0; i < numtrigs; i++) { |
|
|
|
if (plr[myplr].WorldX != trigs[i]._tx || plr[myplr].WorldY != trigs[i]._ty) { |
|
|
|
if (plr[myplr].WorldX != trigs[i]._tx || plr[myplr].WorldY != trigs[i]._ty) { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|