Devilution
Diablo devolved - magic behind the 1996 computer game
Functions | Variables
drlg_l2.cpp File Reference
#include <algorithm>
#include "all.h"

Go to the source code of this file.

Functions

static BOOL DRLG_L2PlaceMiniSet (BYTE *miniset, int tmin, int tmax, int cx, int cy, BOOL setview, int ldir)
 
static void DRLG_L2PlaceRndSet (BYTE *miniset, int rndper)
 
static void DRLG_L2Subs ()
 
static void DRLG_L2Shadows ()
 
void InitDungeon ()
 
static void DRLG_LoadL2SP ()
 
static void DRLG_FreeL2SP ()
 
static void DRLG_L2SetRoom (int rx1, int ry1)
 
static void DefineRoom (int nX1, int nY1, int nX2, int nY2, BOOL ForceHW)
 
static void CreateDoorType (int nX, int nY)
 
static void PlaceHallExt (int nX, int nY)
 
static void AddHall (int nX1, int nY1, int nX2, int nY2, int nHd)
 
static void CreateRoom (int nX1, int nY1, int nX2, int nY2, int nRDest, int nHDir, BOOL ForceHW, int nH, int nW)
 Draws a random room rectangle, and then subdivides the rest of the passed in rectangle into 4 and recurses. More...
 
static void GetHall (int *nX1, int *nY1, int *nX2, int *nY2, int *nHd)
 
static void ConnectHall (int nX1, int nY1, int nX2, int nY2, int nHd)
 
static void DoPatternCheck (int i, int j)
 
static void L2TileFix ()
 
static BOOL DL2_Cont (BOOL x1f, BOOL y1f, BOOL x2f, BOOL y2f)
 
static int DL2_NumNoChar ()
 
static void DL2_DrawRoom (int x1, int y1, int x2, int y2)
 
static void DL2_KnockWalls (int x1, int y1, int x2, int y2)
 
static BOOL DL2_FillVoids ()
 
static BOOL CreateDungeon ()
 
static void DRLG_L2Pass3 ()
 
static void DRLG_L2FTVR (int i, int j, int x, int y, int d)
 
static void DRLG_L2FloodTVal ()
 
static void DRLG_L2TransFix ()
 
static void L2DirtFix ()
 
void L2LockoutFix ()
 
void L2DoorFix ()
 
static void DRLG_L2 (int entry)
 
static void DRLG_InitL2Vals ()
 
void LoadL2Dungeon (char *sFileName, int vx, int vy)
 
void LoadPreL2Dungeon (char *sFileName, int vx, int vy)
 
void CreateL2Dungeon (DWORD rseed, int entry)
 

Variables

DEVILUTION_BEGIN_NAMESPACE int nSx1
 
int nSx2
 
int nSy1
 
int nSy2
 
int nRoomCnt
 
BYTE predungeon [DMAXX][DMAXY]
 
ROOMNODE RoomList [81]
 
HALLNODEpHallList
 
int Area_Min = 2
 
int Room_Max = 10
 
int Room_Min = 4
 
int Dir_Xadd [5] = { 0, 0, 1, 0, -1 }
 
int Dir_Yadd [5] = { 0, -1, 0, 1, 0 }
 
ShadowStruct SPATSL2 [2] = { { 6, 3, 0, 3, 48, 0, 50 }, { 9, 3, 0, 3, 48, 0, 50 } }
 
BYTE BTYPESL2 [161] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 17, 18, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 2, 2, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
 
BYTE BSTYPESL2 [161] = { 0, 1, 2, 3, 0, 0, 6, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 6, 6, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 2, 2, 2, 0, 0, 0, 1, 1, 1, 1, 6, 2, 2, 2, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 2, 2, 3, 3, 3, 3, 1, 1, 2, 2, 3, 3, 3, 3, 1, 1, 3, 3, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
 
BYTE VARCH1 [] = { 2, 4, 3, 0, 3, 1, 3, 4, 0, 7, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH2 [] = { 2, 4, 3, 0, 3, 1, 3, 4, 0, 8, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH3 [] = { 2, 4, 3, 0, 3, 1, 3, 4, 0, 6, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH4 [] = { 2, 4, 3, 0, 3, 1, 3, 4, 0, 9, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH5 [] = { 2, 4, 3, 0, 3, 1, 3, 4, 0, 14, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH6 [] = { 2, 4, 3, 0, 3, 1, 3, 4, 0, 13, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH7 [] = { 2, 4, 3, 0, 3, 1, 3, 4, 0, 16, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH8 [] = { 2, 4, 3, 0, 3, 1, 3, 4, 0, 15, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH9 [] = { 2, 4, 3, 0, 3, 8, 3, 4, 0, 7, 48, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH10 [] = { 2, 4, 3, 0, 3, 8, 3, 4, 0, 8, 48, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH11 [] = { 2, 4, 3, 0, 3, 8, 3, 4, 0, 6, 48, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH12 [] = { 2, 4, 3, 0, 3, 8, 3, 4, 0, 9, 48, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH13 [] = { 2, 4, 3, 0, 3, 8, 3, 4, 0, 14, 48, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH14 [] = { 2, 4, 3, 0, 3, 8, 3, 4, 0, 13, 48, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH15 [] = { 2, 4, 3, 0, 3, 8, 3, 4, 0, 16, 48, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH16 [] = { 2, 4, 3, 0, 3, 8, 3, 4, 0, 15, 48, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH17 [] = { 2, 3, 2, 7, 3, 4, 0, 7, 141, 39, 47, 44, 0, 0 }
 
BYTE VARCH18 [] = { 2, 3, 2, 7, 3, 4, 0, 8, 141, 39, 47, 44, 0, 0 }
 
BYTE VARCH19 [] = { 2, 3, 2, 7, 3, 4, 0, 6, 141, 39, 47, 44, 0, 0 }
 
BYTE VARCH20 [] = { 2, 3, 2, 7, 3, 4, 0, 9, 141, 39, 47, 44, 0, 0 }
 
BYTE VARCH21 [] = { 2, 3, 2, 7, 3, 4, 0, 14, 141, 39, 47, 44, 0, 0 }
 
BYTE VARCH22 [] = { 2, 3, 2, 7, 3, 4, 0, 13, 141, 39, 47, 44, 0, 0 }
 
BYTE VARCH23 [] = { 2, 3, 2, 7, 3, 4, 0, 16, 141, 39, 47, 44, 0, 0 }
 
BYTE VARCH24 [] = { 2, 3, 2, 7, 3, 4, 0, 15, 141, 39, 47, 44, 0, 0 }
 
BYTE VARCH25 [] = { 2, 4, 3, 0, 3, 4, 3, 1, 0, 7, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH26 [] = { 2, 4, 3, 0, 3, 4, 3, 1, 0, 8, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH27 [] = { 2, 4, 3, 0, 3, 4, 3, 1, 0, 6, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH28 [] = { 2, 4, 3, 0, 3, 4, 3, 1, 0, 9, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH29 [] = { 2, 4, 3, 0, 3, 4, 3, 1, 0, 14, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH30 [] = { 2, 4, 3, 0, 3, 4, 3, 1, 0, 13, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH31 [] = { 2, 4, 3, 0, 3, 4, 3, 1, 0, 16, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH32 [] = { 2, 4, 3, 0, 3, 4, 3, 1, 0, 15, 48, 0, 51, 39, 47, 44, 0, 0 }
 
BYTE VARCH33 [] = { 2, 4, 2, 0, 3, 8, 3, 4, 0, 7, 142, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH34 [] = { 2, 4, 2, 0, 3, 8, 3, 4, 0, 8, 142, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH35 [] = { 2, 4, 2, 0, 3, 8, 3, 4, 0, 6, 142, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH36 [] = { 2, 4, 2, 0, 3, 8, 3, 4, 0, 9, 142, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH37 [] = { 2, 4, 2, 0, 3, 8, 3, 4, 0, 14, 142, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH38 [] = { 2, 4, 2, 0, 3, 8, 3, 4, 0, 13, 142, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH39 [] = { 2, 4, 2, 0, 3, 8, 3, 4, 0, 16, 142, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE VARCH40 [] = { 2, 4, 2, 0, 3, 8, 3, 4, 0, 15, 142, 0, 51, 42, 47, 44, 0, 0 }
 
BYTE HARCH1 [] = { 3, 2, 3, 3, 0, 2, 5, 9, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH2 [] = { 3, 2, 3, 3, 0, 2, 5, 6, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH3 [] = { 3, 2, 3, 3, 0, 2, 5, 8, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH4 [] = { 3, 2, 3, 3, 0, 2, 5, 7, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH5 [] = { 3, 2, 3, 3, 0, 2, 5, 15, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH6 [] = { 3, 2, 3, 3, 0, 2, 5, 16, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH7 [] = { 3, 2, 3, 3, 0, 2, 5, 13, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH8 [] = { 3, 2, 3, 3, 0, 2, 5, 14, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH9 [] = { 3, 2, 3, 3, 0, 8, 5, 9, 49, 46, 0, 43, 45, 0 }
 
BYTE HARCH10 [] = { 3, 2, 3, 3, 0, 8, 5, 6, 49, 46, 0, 43, 45, 0 }
 
BYTE HARCH11 [] = { 3, 2, 3, 3, 0, 8, 5, 8, 49, 46, 0, 43, 45, 0 }
 
BYTE HARCH12 [] = { 3, 2, 3, 3, 0, 8, 5, 7, 49, 46, 0, 43, 45, 0 }
 
BYTE HARCH13 [] = { 3, 2, 3, 3, 0, 8, 5, 15, 49, 46, 0, 43, 45, 0 }
 
BYTE HARCH14 [] = { 3, 2, 3, 3, 0, 8, 5, 16, 49, 46, 0, 43, 45, 0 }
 
BYTE HARCH15 [] = { 3, 2, 3, 3, 0, 8, 5, 13, 49, 46, 0, 43, 45, 0 }
 
BYTE HARCH16 [] = { 3, 2, 3, 3, 0, 8, 5, 14, 49, 46, 0, 43, 45, 0 }
 
BYTE HARCH17 [] = { 3, 2, 1, 3, 0, 8, 5, 9, 140, 46, 0, 43, 45, 0 }
 
BYTE HARCH18 [] = { 3, 2, 1, 3, 0, 8, 5, 6, 140, 46, 0, 43, 45, 0 }
 
BYTE HARCH19 [] = { 3, 2, 1, 3, 0, 8, 5, 8, 140, 46, 0, 43, 45, 0 }
 
BYTE HARCH20 [] = { 3, 2, 1, 3, 0, 8, 5, 7, 140, 46, 0, 43, 45, 0 }
 
BYTE HARCH21 [] = { 3, 2, 1, 3, 0, 8, 5, 15, 140, 46, 0, 43, 45, 0 }
 
BYTE HARCH22 [] = { 3, 2, 1, 3, 0, 8, 5, 16, 140, 46, 0, 43, 45, 0 }
 
BYTE HARCH23 [] = { 3, 2, 1, 3, 0, 8, 5, 13, 140, 46, 0, 43, 45, 0 }
 
BYTE HARCH24 [] = { 3, 2, 1, 3, 0, 8, 5, 14, 140, 46, 0, 43, 45, 0 }
 
BYTE HARCH25 [] = { 3, 2, 3, 3, 0, 5, 2, 9, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH26 [] = { 3, 2, 3, 3, 0, 5, 2, 6, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH27 [] = { 3, 2, 3, 3, 0, 5, 2, 8, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH28 [] = { 3, 2, 3, 3, 0, 5, 2, 7, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH29 [] = { 3, 2, 3, 3, 0, 5, 2, 15, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH30 [] = { 3, 2, 3, 3, 0, 5, 2, 16, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH31 [] = { 3, 2, 3, 3, 0, 5, 2, 13, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH32 [] = { 3, 2, 3, 3, 0, 5, 2, 14, 49, 46, 0, 40, 45, 0 }
 
BYTE HARCH33 [] = { 3, 2, 1, 3, 0, 9, 5, 9, 140, 46, 0, 40, 45, 0 }
 
BYTE HARCH34 [] = { 3, 2, 1, 3, 0, 9, 5, 6, 140, 46, 0, 40, 45, 0 }
 
BYTE HARCH35 [] = { 3, 2, 1, 3, 0, 9, 5, 8, 140, 46, 0, 40, 45, 0 }
 
BYTE HARCH36 [] = { 3, 2, 1, 3, 0, 9, 5, 7, 140, 46, 0, 40, 45, 0 }
 
BYTE HARCH37 [] = { 3, 2, 1, 3, 0, 9, 5, 15, 140, 46, 0, 40, 45, 0 }
 
BYTE HARCH38 [] = { 3, 2, 1, 3, 0, 9, 5, 16, 140, 46, 0, 40, 45, 0 }
 
BYTE HARCH39 [] = { 3, 2, 1, 3, 0, 9, 5, 13, 140, 46, 0, 40, 45, 0 }
 
BYTE HARCH40 [] = { 3, 2, 1, 3, 0, 9, 5, 14, 140, 46, 0, 40, 45, 0 }
 
BYTE USTAIRS [] = { 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 72, 77, 0, 0, 76, 0, 0, 0, 0, 0, 0 }
 
BYTE DSTAIRS [] = { 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 48, 71, 0, 0, 50, 78, 0, 0, 0, 0, 0 }
 
BYTE WARPSTAIRS [] = { 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 158, 160, 0, 0, 159, 0, 0, 0, 0, 0, 0 }
 
BYTE CRUSHCOL [] = { 3, 3, 3, 1, 3, 2, 6, 3, 3, 3, 3, 0, 0, 0, 0, 83, 0, 0, 0, 0 }
 
BYTE BIG1 [] = { 2, 2, 3, 3, 3, 3, 113, 0, 112, 0 }
 
BYTE BIG2 [] = { 2, 2, 3, 3, 3, 3, 114, 115, 0, 0 }
 
BYTE BIG3 [] = { 1, 2, 1, 1, 117, 116 }
 
BYTE BIG4 [] = { 2, 1, 2, 2, 118, 119 }
 
BYTE BIG5 [] = { 2, 2, 3, 3, 3, 3, 120, 122, 121, 123 }
 
BYTE BIG6 [] = { 1, 2, 1, 1, 125, 124 }
 
BYTE BIG7 [] = { 2, 1, 2, 2, 126, 127 }
 
BYTE BIG8 [] = { 2, 2, 3, 3, 3, 3, 128, 130, 129, 131 }
 
BYTE BIG9 [] = { 2, 2, 1, 3, 1, 3, 133, 135, 132, 134 }
 
BYTE BIG10 [] = { 2, 2, 2, 2, 3, 3, 136, 137, 3, 3 }
 
BYTE RUINS1 [] = { 1, 1, 1, 80 }
 
BYTE RUINS2 [] = { 1, 1, 1, 81 }
 
BYTE RUINS3 [] = { 1, 1, 1, 82 }
 
BYTE RUINS4 [] = { 1, 1, 2, 84 }
 
BYTE RUINS5 [] = { 1, 1, 2, 85 }
 
BYTE RUINS6 [] = { 1, 1, 2, 86 }
 
BYTE RUINS7 [] = { 1, 1, 8, 87 }
 
BYTE PANCREAS1 [] = { 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0 }
 
BYTE PANCREAS2 [] = { 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0 }
 
BYTE CTRDOOR1 [] = { 3, 3, 3, 1, 3, 0, 4, 0, 0, 9, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0 }
 
BYTE CTRDOOR2 [] = { 3, 3, 3, 1, 3, 0, 4, 0, 0, 8, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0 }
 
BYTE CTRDOOR3 [] = { 3, 3, 3, 1, 3, 0, 4, 0, 0, 6, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0 }
 
BYTE CTRDOOR4 [] = { 3, 3, 3, 1, 3, 0, 4, 0, 0, 7, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0 }
 
BYTE CTRDOOR5 [] = { 3, 3, 3, 1, 3, 0, 4, 0, 0, 15, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0 }
 
BYTE CTRDOOR6 [] = { 3, 3, 3, 1, 3, 0, 4, 0, 0, 13, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0 }
 
BYTE CTRDOOR7 [] = { 3, 3, 3, 1, 3, 0, 4, 0, 0, 16, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0 }
 
BYTE CTRDOOR8 [] = { 3, 3, 3, 1, 3, 0, 4, 0, 0, 14, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0 }
 
int Patterns [100][10]
 

Detailed Description

Implementation of the catacombs level generation algorithms.

Definition in file drlg_l2.cpp.