⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 map.h

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 H
字号:
/*

*/

#ifndef	__MAP_H__
#define	__MAP_H__

#include "dragon.h"

#pragma	pack	( 1 )






#define TILE_MAX_   3600
///////////////////// 0430 lkh 眠啊 ///////////////////////////
#define HOUSETILE_MAX_	1200






/*
typedef struct	tagTILE
{
	DWORD	back			: 12;
	DWORD	front			: 12;
	DWORD	fronttype		:  1;
	DWORD	rooftype		:  1;
	DWORD	attr_dont		:  1;
	DWORD	attr_map		:  1;
	DWORD	attr_roof		:  1;
	DWORD	attr_door		:  1;
	DWORD	attr_tree		:  1;
	DWORD	attr_music		:  1;

	DWORD	roof			: 12;
	DWORD	show_roof		:  1;
	DWORD	frontoffset		:  9;
	DWORD	attr_scroll		:  1;
	DWORD	attr_padding	:  9;
} TILE, *LPTILE;
*/	
	
typedef struct	tagTILE
{	
	DWORD	back			: 12;
	DWORD	front			: 12;
	DWORD	empty__1		:  1;	// fronttype
	DWORD	rooftype		:  1;
	DWORD	attr_dont		:  1;
	DWORD	attr_map		:  1;
	DWORD	attr_room		:  2;
	DWORD	empty__2		:  1;		// attr_music
	DWORD	attr_skill		:  1;
	
	DWORD	roof			: 12;
	DWORD	show_roof		:  1;
	DWORD	frontoffset		: 10;
	
	DWORD	occupied		:  1;
	DWORD	canmatch        :  1;  // 捞镑俊辑绰 轿况档 PK啊 登瘤 臼绰促. 
	DWORD	empty__4		:  1;
	DWORD	attr_light		:  1;
	DWORD	attr_inside		:  1;
	DWORD	attr_river		:  1;
	DWORD	attr_magic		:  1;
	DWORD	attr_no_battle  :  1;
	DWORD	empty__6		:  1;
	
} TILE, *LPTILE;
	
	
typedef struct tagSOU2
{	
	short	tile_no;
	char	source_no;
	
} SOU2, *LPSOU2;
	
	
#pragma	pack	( 8 )
	
typedef struct	tagMAPFILE
{	
	WORD		wType;
	WORD		wWidth, wHeight;
	char		cOdd, cEven;
} MAPFILE, *LPMAPFILE;
	
typedef struct	tagMAP
{	
	SURFACEINFO		SurfaceInfo;
	int				x, y;
	WORD			wScreenWidth, wScreenHeight;
	int				tox, toy;
	int				oX, oY;							//鸥老 扁霖 谅钎客 窃膊 档飘窜困 钎泅阑 困茄 甘可悸 谅钎
	int             display_X, display_Y;           //档飘 窜困 胶农费 楷免阑 困茄 例措(档飘) 甘 谅钎 

	MAPFILE			file;
	Spr				sp;
} MAP, *LPMAP;
	
// roof
typedef struct	tagROOF
{	
	WORD			x, y;
	
	struct tagROOF	*lpPrev, *lpNext;
} ROOF, *LPROOF;
	
typedef struct	tagROOFGROUP
{	
	WORD					count;
	
	LPROOF					lpFirst, lpLast;
	struct tagROOFGROUP		*lpPrev, *lpNext;
} ROOFGROUP, *LPROOFGROUP;
	
typedef struct	tagROOFHEADER
{	
	WORD			count;
	
	LPROOFGROUP		lpFirst, lpLast;
} ROOFHEADER, *LPROOFHEADER;
	
// event
typedef struct	tagEVENTLIST
{	
	WORD				x, y;
	WORD				index;
	struct tagEVENTLIST	*lpPrev, *lpNext;
} EVENTLIST, *LPEVENTLIST;

typedef struct	tagEVENTLISTHEADER
{
	WORD			wCount;
	LPEVENTLIST		lpFirst, lpLast;
} EVENTLISTHEADER, *LPEVENTLISTHEADER;

extern MAP					g_Map;
extern TILE					TileMap[ VILLAGE_SIZE ][ VILLAGE_SIZE ];
//////////////// 0501 lkh 眠啊 //////////////////
extern TILE					HouseTileMap[ VILLAGE_SIZE ][ VILLAGE_SIZE ];

extern ROOFHEADER			g_RoofHeader;
extern EVENTLISTHEADER		g_EventListHeaderMap;
extern EVENTLISTHEADER		g_EventListHeaderRoom;
extern EVENTLISTHEADER		g_EventListHeaderMusic;


extern Spr Sou[ TILE_MAX_];
extern BYTE *SouBuf;

extern char MapName[ 260];



extern int LimitMapSx;
extern int LimitMapSy;
extern int LimitMapEx;
extern int LimitMapEy;

extern int OldEventMx, OldEventMy, EventMx, EventMy;

extern int StartMapx, StartMapy, StartMapFlag;

extern int MapNumber;
///////////// SoundUp lkh 眠啊 //////////////
extern BOOL	g_BGE_Flag;

extern int MapNumberX, MapNumberY;
extern int MapNumberFloor;
extern char MapNumberName[ 20];

extern int SmallMapX,  SmallMapY;


extern int TotalTileNo; // Map Source狼 傈眉 佬绢甸牢 鸥老狼 荐..

#ifdef __cplusplus
extern "C"
{
#endif

extern BOOL		MapBuild( LPMAP lpMap, char *mapname );
extern void		MapDestroy( LPMAP lpMap );
extern BOOL		MapCreateSurface( LPDIRECTDRAW lpDirectDraw, LPMAP lpMap );
extern void		MapCleanupSurface( LPMAP lpMap );
extern BOOL		MapRestoreSurface( LPMAP lpMap );
extern BOOL		MapLoadImage( LPDIRECTDRAW lpDirectDraw, LPMAP lpMap, char* lpszFilePath );
extern BOOL		MapReLoadImage( LPDIRECTDRAWSURFACE* lplpSurface, char* lpszFilePath );
extern BOOL		MapReadFile( LPMAPFILE lpMapFile, char* pszFileName );
extern BOOL		MapWirteFile( LPMAPFILE lpMapFile, char* pszFileName );
extern void		MapDisplay( int nType );
extern void		MapDisplay_Attr( void );


extern BOOL			BuildRoofHeader( LPROOFHEADER lpRoofHeader, char* lpszFileName );
extern void			DestroyRoofHeader( LPROOFHEADER lpRoofHeader );
extern LPROOFGROUP	AddRoofGroup( LPROOFHEADER lpRoofHeader );
extern void			DeleteRoofGroup( LPROOFHEADER lpRoofHeader, LPROOFGROUP lpRoofGroup );
extern LPROOF		AddRoof( LPROOFGROUP lpRoofGroup, WORD x, WORD y );
extern void			DeleteRoof( LPROOFGROUP lpRoofGroup, LPROOF lpRoof );
extern LPROOFGROUP	FindRoofGroup( LPROOFHEADER lpRoofHeader, WORD index );
extern LPROOF		FindRoof( LPROOFGROUP lpRoofGroup, WORD x, WORD y );
extern BOOL			ReadRoofData( LPROOFHEADER lpRoofHeader, char* lpszFileName );
										
extern BOOL			BuildEventList( char* lpszFileName );
extern void			DestroyEventList( void );
extern LPEVENTLIST	AddEventList( LPEVENTLISTHEADER lpEventListHeader, WORD x, WORD y, WORD wIndex );
extern void			DeleteEventList( LPEVENTLISTHEADER lpEventListHeader, LPEVENTLIST lpEventList );
extern LPEVENTLIST	FindEventList( LPEVENTLISTHEADER lpEventListHeader, WORD x, WORD y );
extern BOOL			ReadEventList( char* lpszFileName );

extern BOOL		IsScreenArea( LPCHARACTER lpCharacter );
extern BOOL		IsScreenAreaMapObject( int x, int y, SIZE size );
extern BOOL		IsScreenAreaCSP( int x, int y, Spr *sp );

////////////////////// 0808 lkh 眠啊 ////////////////////////////
extern BOOL		IsScreenAreaView( int x, int y );

extern BOOL		IsScreenArea_( POINT position );
extern void		StartSetView( LPCHARACTER ch );
extern void		SetView( LPCHARACTER ch, int range );
extern void		SetHeroPosition( int );
extern int		MoveScreen( DIRECTION direction );


extern void		MapObjectTouchOrder( void );

extern void		MakeSizeofSOU2( void );
extern void		LoadMapSource( char *filename );
extern void		LoadMapSource2( char *filename );
///////////////// 0430 lkh 眠啊 /////////////////
extern void		LoadHouseMapSource( char *filename );

extern void		FreeMapSource( void );


extern int		ReturnEventNo( int mx, int my );
extern int		ChangeEventNo( int mx, int my, int eventno  );

extern int		CheckEventWith_NPC(  LPCHARACTER hero, LPCHARACTER oppo );
extern int		CheckEventAttrTile( void );


extern void		LoadSmallMapBack( void );
extern void		PutSmallMapBack( int x, int y );
extern void		OutputSmallMap( void );


extern void LoadingLoadMaskTable( void );
extern void ViewLoadMask( void );
extern void ViewRoofData(void );
extern void MaskMap( int x, int y, Spr *sp );
extern void MaskMapItem( int x, int y, int offy, Spr *sp );
extern void MaskMapEffect( int x, int y, int height, Spr *sp );
extern void SettingTripAround( void );
extern void DeSettingTripAround( void );
extern char *GetMapNameByPort( int port );
extern char *GetMapNameByMapfile( char *map_file );
extern char *GetMapNameByIndex( int i );		// 021011 //眠啊救秦出辑府.
extern int GetIndexByMapfile( char *map_file );
extern void CheckEnterHouse( LPCHARACTER ch );
extern void CheckRoof(); // 031110 YGI
extern bool IsCollision(int nX, int nY);
extern bool IsMovable(int nX, int nY);
#ifdef __cplusplus
}
#endif

#endif	// __MAP_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -