|
|
|
|
/**
|
|
|
|
|
* @file gendung.h
|
|
|
|
|
*
|
|
|
|
|
* Interface of general dungeon generation code.
|
|
|
|
|
*/
|
|
|
|
|
#ifndef __GENDUNG_H__
|
|
|
|
|
#define __GENDUNG_H__
|
|
|
|
|
|
|
|
|
|
extern BYTE dungeon[DMAXX][DMAXY];
|
|
|
|
|
extern BYTE pdungeon[DMAXX][DMAXY];
|
|
|
|
|
extern char dflags[DMAXX][DMAXY];
|
|
|
|
|
extern int setpc_x;
|
|
|
|
|
extern int setpc_y;
|
|
|
|
|
extern int setpc_w;
|
|
|
|
|
extern int setpc_h;
|
|
|
|
|
extern BYTE *pSetPiece;
|
|
|
|
|
extern BOOL setloadflag;
|
|
|
|
|
extern BYTE *pSpecialCels;
|
|
|
|
|
extern BYTE *pMegaTiles;
|
|
|
|
|
extern BYTE *pLevelPieces;
|
|
|
|
|
extern BYTE *pDungeonCels;
|
|
|
|
|
extern BYTE *pSpeedCels;
|
|
|
|
|
extern int SpeedFrameTbl[128][16];
|
|
|
|
|
extern char block_lvid[MAXTILES + 1];
|
|
|
|
|
extern BOOLEAN nBlockTable[MAXTILES + 1];
|
|
|
|
|
extern BOOLEAN nSolidTable[MAXTILES + 1];
|
|
|
|
|
extern BOOLEAN nTransTable[MAXTILES + 1];
|
|
|
|
|
extern BOOLEAN nMissileTable[MAXTILES + 1];
|
|
|
|
|
extern BOOLEAN nTrapTable[MAXTILES + 1];
|
|
|
|
|
extern int dminx;
|
|
|
|
|
extern int dminy;
|
|
|
|
|
extern int dmaxx;
|
|
|
|
|
extern int dmaxy;
|
|
|
|
|
extern int gnDifficulty;
|
|
|
|
|
extern BYTE leveltype;
|
|
|
|
|
extern BYTE currlevel;
|
|
|
|
|
extern BOOLEAN setlevel;
|
|
|
|
|
extern BYTE setlvlnum;
|
|
|
|
|
extern char setlvltype;
|
|
|
|
|
extern int ViewX;
|
|
|
|
|
extern int ViewY;
|
|
|
|
|
extern int ViewBX;
|
|
|
|
|
extern int ViewBY;
|
|
|
|
|
extern int ViewDX;
|
|
|
|
|
extern int ViewDY;
|
|
|
|
|
extern ScrollStruct ScrollInfo;
|
|
|
|
|
extern int LvlViewX;
|
|
|
|
|
extern int LvlViewY;
|
|
|
|
|
extern int MicroTileLen;
|
|
|
|
|
extern char TransVal;
|
|
|
|
|
extern BOOLEAN TransList[256];
|
|
|
|
|
extern int dPiece[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern MICROS dpiece_defs_map_2[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern MICROS dpiece_defs_map_1[MAXDUNX * MAXDUNY];
|
|
|
|
|
extern char dTransVal[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern char dLight[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern char dPreLight[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern char dFlags[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern char dPlayer[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern int dMonster[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern char dDead[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern char dObject[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern char dItem[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern char dMissile[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern char dSpecial[MAXDUNX][MAXDUNY];
|
|
|
|
|
extern int themeCount;
|
|
|
|
|
extern THEME_LOC themeLoc[MAXTHEMES];
|
|
|
|
|
|
|
|
|
|
void FillSolidBlockTbls();
|
|
|
|
|
int IsometricCoord(int x, int y);
|
|
|
|
|
void SetDungeonMicros();
|
|
|
|
|
void DRLG_InitTrans();
|
|
|
|
|
void DRLG_MRectTrans(int x1, int y1, int x2, int y2);
|
|
|
|
|
void DRLG_RectTrans(int x1, int y1, int x2, int y2);
|
|
|
|
|
void DRLG_CopyTrans(int sx, int sy, int dx, int dy);
|
|
|
|
|
void DRLG_ListTrans(int num, BYTE *List);
|
|
|
|
|
void DRLG_AreaTrans(int num, BYTE *List);
|
|
|
|
|
void DRLG_InitSetPC();
|
|
|
|
|
void DRLG_SetPC();
|
|
|
|
|
void Make_SetPC(int x, int y, int w, int h);
|
|
|
|
|
void DRLG_PlaceThemeRooms(int minSize, int maxSize, int floor, int freq, int rndSize);
|
|
|
|
|
void DRLG_HoldThemeRooms();
|
|
|
|
|
BOOL SkipThemeRoom(int x, int y);
|
|
|
|
|
void InitLevels();
|
|
|
|
|
|
|
|
|
|
#endif /* __GENDUNG_H__ */
|