|
|
|
@ -244,8 +244,7 @@ bool PlaceMiniSet(const BYTE *miniset, int tmin, int tmax, int cx, int cy, bool |
|
|
|
Quests[Q_BETRAYER].position = { sx + 1, sy + 1 }; |
|
|
|
Quests[Q_BETRAYER].position = { sx + 1, sy + 1 }; |
|
|
|
} |
|
|
|
} |
|
|
|
if (setview) { |
|
|
|
if (setview) { |
|
|
|
ViewX = 2 * sx + 21; |
|
|
|
ViewPosition = Point { 21, 22 } + Displacement { sx, sy } * 2; |
|
|
|
ViewY = 2 * sy + 22; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
return true; |
|
|
|
@ -1347,20 +1346,19 @@ void GenerateLevel(lvl_entry entry) |
|
|
|
if (doneflag && currlevel == 13) { |
|
|
|
if (doneflag && currlevel == 13) { |
|
|
|
doneflag = PlaceMiniSet(L4TWARP, 1, 1, -1, -1, false); |
|
|
|
doneflag = PlaceMiniSet(L4TWARP, 1, 1, -1, -1, false); |
|
|
|
} |
|
|
|
} |
|
|
|
ViewX++; |
|
|
|
ViewPosition.x++; |
|
|
|
} else if (entry == ENTRY_PREV) { |
|
|
|
} else if (entry == ENTRY_PREV) { |
|
|
|
doneflag = PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, false); |
|
|
|
doneflag = PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, false); |
|
|
|
if (doneflag && currlevel == 13) { |
|
|
|
if (doneflag && currlevel == 13) { |
|
|
|
doneflag = PlaceMiniSet(L4TWARP, 1, 1, -1, -1, false); |
|
|
|
doneflag = PlaceMiniSet(L4TWARP, 1, 1, -1, -1, false); |
|
|
|
} |
|
|
|
} |
|
|
|
ViewX = 2 * setpc_x + 22; |
|
|
|
ViewPosition = Point { 22, 22 } + Displacement { setpc_x, setpc_y } * 2; |
|
|
|
ViewY = 2 * setpc_y + 22; |
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
doneflag = PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, false); |
|
|
|
doneflag = PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, false); |
|
|
|
if (doneflag && currlevel == 13) { |
|
|
|
if (doneflag && currlevel == 13) { |
|
|
|
doneflag = PlaceMiniSet(L4TWARP, 1, 1, -1, -1, true); |
|
|
|
doneflag = PlaceMiniSet(L4TWARP, 1, 1, -1, -1, true); |
|
|
|
} |
|
|
|
} |
|
|
|
ViewX++; |
|
|
|
ViewPosition.x++; |
|
|
|
} |
|
|
|
} |
|
|
|
} else if (currlevel != 15) { |
|
|
|
} else if (currlevel != 15) { |
|
|
|
if (entry == ENTRY_MAIN) { |
|
|
|
if (entry == ENTRY_MAIN) { |
|
|
|
@ -1371,7 +1369,7 @@ void GenerateLevel(lvl_entry entry) |
|
|
|
if (doneflag && currlevel == 13) { |
|
|
|
if (doneflag && currlevel == 13) { |
|
|
|
doneflag = PlaceMiniSet(L4TWARP, 1, 1, -1, -1, false); |
|
|
|
doneflag = PlaceMiniSet(L4TWARP, 1, 1, -1, -1, false); |
|
|
|
} |
|
|
|
} |
|
|
|
ViewX++; |
|
|
|
ViewPosition.x++; |
|
|
|
} else if (entry == ENTRY_PREV) { |
|
|
|
} else if (entry == ENTRY_PREV) { |
|
|
|
doneflag = PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, false); |
|
|
|
doneflag = PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, false); |
|
|
|
if (doneflag && currlevel != 16) { |
|
|
|
if (doneflag && currlevel != 16) { |
|
|
|
@ -1380,7 +1378,7 @@ void GenerateLevel(lvl_entry entry) |
|
|
|
if (doneflag && currlevel == 13) { |
|
|
|
if (doneflag && currlevel == 13) { |
|
|
|
doneflag = PlaceMiniSet(L4TWARP, 1, 1, -1, -1, false); |
|
|
|
doneflag = PlaceMiniSet(L4TWARP, 1, 1, -1, -1, false); |
|
|
|
} |
|
|
|
} |
|
|
|
ViewY++; |
|
|
|
ViewPosition.y++; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
doneflag = PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, false); |
|
|
|
doneflag = PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, false); |
|
|
|
if (doneflag && currlevel != 16) { |
|
|
|
if (doneflag && currlevel != 16) { |
|
|
|
@ -1389,7 +1387,7 @@ void GenerateLevel(lvl_entry entry) |
|
|
|
if (doneflag && currlevel == 13) { |
|
|
|
if (doneflag && currlevel == 13) { |
|
|
|
doneflag = PlaceMiniSet(L4TWARP, 1, 1, -1, -1, true); |
|
|
|
doneflag = PlaceMiniSet(L4TWARP, 1, 1, -1, -1, true); |
|
|
|
} |
|
|
|
} |
|
|
|
ViewX++; |
|
|
|
ViewPosition.x++; |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
if (entry == ENTRY_MAIN) { |
|
|
|
if (entry == ENTRY_MAIN) { |
|
|
|
@ -1401,7 +1399,7 @@ void GenerateLevel(lvl_entry entry) |
|
|
|
doneflag = PlaceMiniSet(L4PENTA2, 1, 1, -1, -1, false); |
|
|
|
doneflag = PlaceMiniSet(L4PENTA2, 1, 1, -1, -1, false); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
ViewX++; |
|
|
|
ViewPosition.x++; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
doneflag = PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, false); |
|
|
|
doneflag = PlaceMiniSet(L4USTAIRS, 1, 1, -1, -1, false); |
|
|
|
if (doneflag) { |
|
|
|
if (doneflag) { |
|
|
|
@ -1411,7 +1409,7 @@ void GenerateLevel(lvl_entry entry) |
|
|
|
doneflag = PlaceMiniSet(L4PENTA2, 1, 1, -1, -1, true); |
|
|
|
doneflag = PlaceMiniSet(L4PENTA2, 1, 1, -1, -1, true); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
ViewY++; |
|
|
|
ViewPosition.y++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} while (!doneflag); |
|
|
|
} while (!doneflag); |
|
|
|
@ -1475,8 +1473,7 @@ void CreateL4Dungeon(uint32_t rseed, lvl_entry entry) |
|
|
|
dmaxx = 96; |
|
|
|
dmaxx = 96; |
|
|
|
dmaxy = 96; |
|
|
|
dmaxy = 96; |
|
|
|
|
|
|
|
|
|
|
|
ViewX = 40; |
|
|
|
ViewPosition = { 40, 40 }; |
|
|
|
ViewY = 40; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DRLG_InitSetPC(); |
|
|
|
DRLG_InitSetPC(); |
|
|
|
LoadQuestSetPieces(); |
|
|
|
LoadQuestSetPieces(); |
|
|
|
@ -1500,8 +1497,7 @@ void LoadL4Dungeon(const char *path, int vx, int vy) |
|
|
|
|
|
|
|
|
|
|
|
SetRoom(dunData.get(), 0, 0); |
|
|
|
SetRoom(dunData.get(), 0, 0); |
|
|
|
|
|
|
|
|
|
|
|
ViewX = vx; |
|
|
|
ViewPosition = { vx, vy }; |
|
|
|
ViewY = vy; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pass3(); |
|
|
|
Pass3(); |
|
|
|
DRLG_Init_Globals(); |
|
|
|
DRLG_Init_Globals(); |
|
|
|
|