141 lines
4.5 KiB
C
141 lines
4.5 KiB
C
#ifndef __MAP_H__
|
||
#define __MAP_H__
|
||
#include "common.h"
|
||
#include "util.h"
|
||
|
||
typedef struct tagMAP_Objlink
|
||
{
|
||
int objindex;
|
||
struct tagMAP_Objlink* next;
|
||
}MAP_Objlink, *OBJECT;
|
||
|
||
#define GET_OBJINDEX(x) ((x)->objindex)
|
||
#define NEXT_OBJECT(x) ((x)->next)
|
||
|
||
typedef struct tagMAP_Map
|
||
{
|
||
int id; /* ID */
|
||
int xsiz,ysiz; /* */
|
||
char string[64]; /* 表示 */
|
||
unsigned short* tile; /* */
|
||
unsigned short* obj; /* */
|
||
MAP_Objlink** olink;
|
||
#ifdef _MAP_NOEXIT
|
||
unsigned int startpoint;
|
||
int MapType;
|
||
#endif
|
||
}MAP_Map;
|
||
|
||
|
||
typedef enum
|
||
{
|
||
MAP_WALKABLE, /*
|
||
* 场合
|
||
* 擌? Q 见 0
|
||
* 擌? M 见 1
|
||
* 擌? M 见 2
|
||
*/
|
||
MAP_HAVEHEIGHT, /* 高 非0 0 */
|
||
MAP_DEFENCE, /* 抃 、守备力、0 以下 抃 */
|
||
|
||
MAP_INTODAMAGE, /* 入 时 HP 足 ? */
|
||
MAP_OUTOFDAMAGE, /* 出 时 HP 足 ? */
|
||
|
||
MAP_SETED_BATTLEMAP, /* 设定? */
|
||
MAP_BATTLEMAP, /* 番咥 1*/
|
||
MAP_BATTLEMAP2, /* 番咥 2*/
|
||
MAP_BATTLEMAP3, /* 番咥 3*/
|
||
|
||
/* 以下 LS2 使 SA 使 (? X ? @) */
|
||
|
||
MAP_INTODARKNESS, /* 入 时 暗 */
|
||
MAP_INTOCONFUSION, /* 入 时 混? */
|
||
|
||
MAP_OUTOFPOISON, /* 入 时 毒 */
|
||
MAP_OUTOFPARALYSIS, /* 入 时 */
|
||
MAP_OUTOFSILENCE, /* 入 时 沈? */
|
||
MAP_OUTOFSTONE, /* 入 时 石 */
|
||
MAP_OUTOFDARKNESS, /* 入 时 暗 */
|
||
MAP_OUTOFCONFUSION, /* 入 时 混? */
|
||
|
||
MAP_DATAINT_NUM,
|
||
}MAP_DATAINT;
|
||
typedef enum
|
||
{
|
||
MAP_DATACHAR_NUM,
|
||
}MAP_DATACHAR;
|
||
typedef struct tagMAP_ImageData
|
||
{
|
||
int data[MAP_DATAINT_NUM];
|
||
STRING32 string[MAP_DATACHAR_NUM];
|
||
}MAP_ImageData;
|
||
|
||
typedef enum
|
||
{
|
||
MAP_KINDWALKABLE, /* 擌? F 1 入 */
|
||
|
||
MAP_KINDNUM,
|
||
}MAP_kind;
|
||
|
||
|
||
INLINE int MAP_getfloorIndex( int floorid );
|
||
int MAP_getfloorX( int floorid );
|
||
int MAP_getfloorY( int floorid );
|
||
|
||
BOOL MAP_initReadMap( char* maptilefile , char* mapdir );
|
||
BOOL MAP_initMapArray( int num );
|
||
void MAP_endMapArray( void );
|
||
|
||
char* MAP_getdataFromRECT( int floor, RECT* seekr, RECT* realr );
|
||
char *MAP_getChecksumFromRECT( int floor, RECT* seekr, RECT* realr,
|
||
int *tilesum, int *objsum, int *eventsum );
|
||
|
||
BOOL MAP_checkCoordinates( int mapid, int x, int y );
|
||
|
||
BOOL MAP_setTileAndObjData( int ff ,int fx, int fy, int tile, int obj);
|
||
BOOL MAP_getTileAndObjData( int ff ,int fx, int fy, int* tile, int* obj);
|
||
void MAP_sendAroundMapdata( int fl, int x, int y);
|
||
int MAP_getImageInt( int imagenumber, int element );
|
||
BOOL MAP_setImageInt( int imagenumber, int element, int value );
|
||
BOOL IsValidImagenumber( int imagenumber );
|
||
|
||
char* MAP_getfloorShowstring( int floorid );
|
||
BOOL MAP_makeVariousMap(char* atile, char* aobj, int floor, int startx, int starty, int xsiz, int ysiz, MAP_kind kind );
|
||
BOOL MAP_makeWalkableMap( char* data, int floor, int startx, int starty,int xsiz, int ysiz );
|
||
BOOL MAP_IsThereSpecificFloorid( int floorid );
|
||
BOOL MAP_IsValidCoordinate( int floorid, int x, int y );
|
||
|
||
BOOL MAP_addNewObj( int floor, int x, int y, int objindex );
|
||
BOOL MAP_removeObj( int floor, int x, int y, int objindex );
|
||
#define MAP_getTopObj( fl, x, y) _MAP_getTopObj( __FILE__, __LINE__, fl, x, y)
|
||
MAP_Objlink* _MAP_getTopObj( char *file, int line, int floor, int x, int y );
|
||
#define MAP_objmove( objindex, of, ox, oy, nfl, nx, ny) _MAP_objmove( __FILE__, __LINE__, objindex, of, ox, oy, nfl, nx, ny)
|
||
BOOL _MAP_objmove( char *file, int line, int objindex, int ofloor, int ox, int oy, int nfloor,
|
||
int nx, int ny );
|
||
char *MAP_getFloorName( int floor);
|
||
BOOL MAP_setObjData( int ff ,int fx, int fy, int obj, int objhp );
|
||
|
||
#ifdef _MAKE_MAP
|
||
int MAP_getFloorXY( int floor, int *x, int *y);
|
||
#endif
|
||
|
||
#ifdef _STATUS_WATERWORD //水世界状态
|
||
int MAP_getMapFloorType( int floor);
|
||
#endif
|
||
|
||
#ifdef _MAP_NOEXIT
|
||
unsigned int MAP_getExFloor_XY( int floor , int *map_type);
|
||
BOOL CHECKFLOORID( int id);
|
||
#endif
|
||
int MAP_getMapNum();
|
||
int MAP_getfloorId(int index);
|
||
|
||
#ifdef _CAX_LNS_MAPSUOXU
|
||
BOOL MAP_SetExWarp(int mapid , int fl, int x, int y, int type);
|
||
BOOL MAP_DelMap(int mapid );
|
||
int MAP_makenew( int mapid ,char* map_name);
|
||
#endif
|
||
|
||
#endif
|
||
/*__MAP_H__*/
|