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

Go to the source code of this file.

Functions

static void InitL3Dungeon ()
 
static BOOL DRLG_L3FillRoom (int x1, int y1, int x2, int y2)
 
static void DRLG_L3CreateBlock (int x, int y, int obs, int dir)
 
static void DRLG_L3FloorArea (int x1, int y1, int x2, int y2)
 
static void DRLG_L3FillDiags ()
 
static void DRLG_L3FillSingles ()
 
static void DRLG_L3FillStraights ()
 
static void DRLG_L3Edges ()
 
static int DRLG_L3GetFloorArea ()
 
static void DRLG_L3MakeMegas ()
 
static void DRLG_L3River ()
 
static BOOL DRLG_L3Spawn (int x, int y, int *totarea)
 
static BOOL DRLG_L3SpawnEdge (int x, int y, int *totarea)
 
static void DRLG_L3Pool ()
 Flood fills dirt and wall tiles looking for an area of at most 40 tiles and disconnected from the map edge. More...
 
static void DRLG_L3PoolFix ()
 
static BOOL DRLG_L3PlaceMiniSet (const BYTE *miniset, int tmin, int tmax, int cx, int cy, BOOL setview, int ldir)
 
static void DRLG_L3PlaceRndSet (const BYTE *miniset, int rndper)
 
static BOOL WoodVertU (int i, int y)
 
static BOOL WoodVertD (int i, int y)
 
static BOOL WoodHorizL (int x, int j)
 
static BOOL WoodHorizR (int x, int j)
 
void AddFenceDoors ()
 
void FenceDoorFix ()
 
static void DRLG_L3Wood ()
 
BOOL DRLG_L3Anvil ()
 
void FixL3Warp ()
 
void FixL3HallofHeroes ()
 
void DRLG_L3LockRec (int x, int y)
 
BOOL DRLG_L3Lockout ()
 
static void DRLG_L3 (int entry)
 
static void DRLG_L3Pass3 ()
 
void CreateL3Dungeon (DWORD rseed, int entry)
 
void LoadL3Dungeon (char *sFileName, int vx, int vy)
 
void LoadPreL3Dungeon (char *sFileName, int vx, int vy)
 

Variables

DEVILUTION_BEGIN_NAMESPACE BOOLEAN lavapool
 
int abyssx
 
int lockoutcnt
 
BOOLEAN lockout [DMAXX][DMAXY]
 
const BYTE L3ConvTbl [16] = { 8, 11, 3, 10, 1, 9, 12, 12, 6, 13, 4, 13, 2, 14, 5, 7 }
 
const BYTE L3UP [20] = { 3, 3, 8, 8, 0, 10, 10, 0, 7, 7, 0, 51, 50, 0, 48, 49, 0, 0, 0, 0 }
 
const BYTE L3DOWN [20] = { 3, 3, 8, 9, 7, 8, 9, 7, 0, 0, 0, 0, 47, 0, 0, 46, 0, 0, 0, 0 }
 
const BYTE L3HOLDWARP [20] = { 3, 3, 8, 8, 0, 10, 10, 0, 7, 7, 0, 125, 125, 0, 125, 125, 0, 0, 0, 0 }
 
const BYTE L3TITE1 [34] = { 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 57, 58, 0, 0, 56, 55, 0, 0, 0, 0, 0 }
 
const BYTE L3TITE2 [34] = { 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 61, 62, 0, 0, 60, 59, 0, 0, 0, 0, 0 }
 
const BYTE L3TITE3 [34] = { 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 65, 66, 0, 0, 64, 63, 0, 0, 0, 0, 0 }
 
const BYTE L3TITE6 [42] = { 5, 4, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 77, 78, 0, 0, 0, 76, 74, 75, 0, 0, 0, 0, 0, 0 }
 
const BYTE L3TITE7 [42] = { 4, 5, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 83, 0, 0, 0, 82, 80, 0, 0, 81, 79, 0, 0, 0, 0, 0 }
 
const BYTE L3TITE8 [20] = { 3, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 52, 0, 0, 0, 0 }
 
const BYTE L3TITE9 [20] = { 3, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 53, 0, 0, 0, 0 }
 
const BYTE L3TITE10 [20] = { 3, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 54, 0, 0, 0, 0 }
 
const BYTE L3TITE11 [20] = { 3, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 67, 0, 0, 0, 0 }
 
const BYTE L3TITE12 [6] = { 2, 1, 9, 7, 68, 0 }
 
const BYTE L3TITE13 [6] = { 1, 2, 10, 7, 69, 0 }
 
const BYTE L3CREV1 [6] = { 2, 1, 8, 7, 84, 85 }
 
const BYTE L3CREV2 [6] = { 2, 1, 8, 11, 86, 87 }
 
const BYTE L3CREV3 [6] = { 1, 2, 8, 10, 89, 88 }
 
const BYTE L3CREV4 [6] = { 2, 1, 8, 7, 90, 91 }
 
const BYTE L3CREV5 [6] = { 1, 2, 8, 11, 92, 93 }
 
const BYTE L3CREV6 [6] = { 1, 2, 8, 10, 95, 94 }
 
const BYTE L3CREV7 [6] = { 2, 1, 8, 7, 96, 101 }
 
const BYTE L3CREV8 [6] = { 1, 2, 2, 8, 102, 97 }
 
const BYTE L3CREV9 [6] = { 2, 1, 3, 8, 103, 98 }
 
const BYTE L3CREV10 [6] = { 2, 1, 4, 8, 104, 99 }
 
const BYTE L3CREV11 [6] = { 1, 2, 6, 8, 105, 100 }
 
const BYTE L3ISLE1 [14] = { 2, 3, 5, 14, 4, 9, 13, 12, 7, 7, 7, 7, 7, 7 }
 
const BYTE L3ISLE2 [14] = { 3, 2, 5, 2, 14, 13, 10, 12, 7, 7, 7, 7, 7, 7 }
 
const BYTE L3ISLE3 [14] = { 2, 3, 5, 14, 4, 9, 13, 12, 29, 30, 25, 28, 31, 32 }
 
const BYTE L3ISLE4 [14] = { 3, 2, 5, 2, 14, 13, 10, 12, 29, 26, 30, 31, 27, 32 }
 
const BYTE L3ISLE5 [10] = { 2, 2, 5, 14, 13, 12, 7, 7, 7, 7 }
 
const BYTE L3XTRA1 [4] = { 1, 1, 7, 106 }
 
const BYTE L3XTRA2 [4] = { 1, 1, 7, 107 }
 
const BYTE L3XTRA3 [4] = { 1, 1, 7, 108 }
 
const BYTE L3XTRA4 [4] = { 1, 1, 9, 109 }
 
const BYTE L3XTRA5 [4] = { 1, 1, 10, 110 }
 
const BYTE L3ANVIL [244]
 

Detailed Description

Implementation of the caves level generation algorithms.

Definition in file drlg_l3.cpp.