251 lines
5.6 KiB
C
251 lines
5.6 KiB
C
#ifndef _MAP_H_
|
|
#define _MAP_H_
|
|
|
|
// ?????????????????????
|
|
|
|
#define MAP_TILE_GRID_X1 -20
|
|
#define MAP_TILE_GRID_X2 +17 // ?????
|
|
#define MAP_TILE_GRID_Y1 -16
|
|
#define MAP_TILE_GRID_Y2 +21 // ?????
|
|
|
|
// ??????
|
|
#define MAP_X_SIZE (MAP_TILE_GRID_X2 - MAP_TILE_GRID_X1)
|
|
#define MAP_Y_SIZE (MAP_TILE_GRID_Y2 - MAP_TILE_GRID_Y1)
|
|
|
|
// ????????
|
|
#define GRID_SIZE 64
|
|
|
|
// ?
|
|
#define MOVE_SPEED 4
|
|
#define MOVE_FRAME (GRID_SIZE/MOVE_SPEED)
|
|
|
|
// ?????
|
|
enum
|
|
{
|
|
EVENT_NONE, // ????????
|
|
EVENT_NPC, // ?NPC
|
|
EVENT_ENEMY, // ???????
|
|
EVENT_WARP, // ???
|
|
EVENT_DOOR, // ??
|
|
EVENT_ALTERRATIVE, // ?????????????????????
|
|
EVENT_WARP_MONING, // ????
|
|
EVENT_WARP_NOON, // ?????
|
|
EVENT_WARP_NIGHT, // ?????
|
|
|
|
EVENT_END // ????????
|
|
};
|
|
|
|
// ???????
|
|
#define MAP_READ_FLAG 0x8000 // ???????????????????
|
|
#define MAP_SEE_FLAG 0x4000 // ????????????????
|
|
|
|
// ?????
|
|
#define FLOOR_NAME_LEN 24
|
|
|
|
extern char nowFloorName[];
|
|
extern int nowFloor;
|
|
extern int nowFloorGxSize, nowFloorGySize;
|
|
extern int nowGx, nowGy;
|
|
extern float nowX, nowY;
|
|
extern float nowVx, nowVy, nowSpdRate;
|
|
extern int nextGx, nextGy;
|
|
extern int oldGx, oldGy;
|
|
extern int oldNextGx, oldNextGy;
|
|
extern int mouseMapGx, mouseMapGy;
|
|
extern int mouseMapX, mouseMapY;
|
|
|
|
extern short moveRouteCnt;
|
|
|
|
extern BOOL mapEmptyFlag;
|
|
|
|
extern float viewPointX;
|
|
extern float viewPointY;
|
|
extern int viewOffsetX;
|
|
extern int viewOffsetY;
|
|
|
|
extern short moveAddTbl[8][2];
|
|
|
|
|
|
extern BOOL mouseLeftCrick;
|
|
extern BOOL mouseLeftOn;
|
|
extern BOOL mouseRightCrick;
|
|
extern BOOL mouseRightOn;
|
|
#ifdef _MOUSE_DBL_CLICK
|
|
extern BOOL mouseDblRightOn;
|
|
#endif
|
|
extern unsigned int mouseLeftPushTime;
|
|
extern unsigned int beforeMouseLeftPushTime;
|
|
|
|
|
|
extern short nowEncountPercentage;
|
|
extern short nowEncountExtra;
|
|
extern short minEncountPercentage;
|
|
extern short maxEncountPercentage;
|
|
extern short sendEnFlag;
|
|
extern short encountNowFlag;
|
|
|
|
extern short eventWarpSendFlag;
|
|
extern short eventWarpSendId;
|
|
extern short eventEnemySendFlag;
|
|
extern short eventEnemySendId;
|
|
extern short eventEnemyFlag;
|
|
|
|
extern BOOL loginFlag;
|
|
|
|
extern short vsLookFlag;
|
|
|
|
extern BOOL floorChangeFlag;
|
|
|
|
extern BOOL warpEffectFlag;
|
|
extern BOOL warpEffectStart;
|
|
extern BOOL warpEffectOk;
|
|
|
|
extern int transmigrationEffectFlag;
|
|
extern int transEffectPaletteStatus;
|
|
|
|
void initMap( void );
|
|
void resetMap( void );
|
|
void createMap( int, int, int );
|
|
BOOL writeMap( int, int, int, int, int,
|
|
unsigned short *, unsigned short *, unsigned short * );
|
|
void setMap( int, int, int );
|
|
void setWarpMap( int, int );
|
|
BOOL mapCheckSum( int, int, int, int, int, int, int, int );
|
|
|
|
#ifdef _NEWDRAWBATTLEMAP // (不可开放) Syu ADD 自动产生BattleMap
|
|
void ddrawBattleMap( void );
|
|
#endif
|
|
void drawMap( void );
|
|
void drawMap2( void );
|
|
void drawTile( void );
|
|
void redrawMap( void );
|
|
void drawGrid( void );
|
|
void moveProc( void );
|
|
BOOL checkEmptyMap( int );
|
|
void setMapMovePoint( int, int );
|
|
void setMapMovePoint2( int, int );
|
|
void mapMove2( void );
|
|
void updateMapArea( void );
|
|
|
|
void getRouteData( int, int *, int * );
|
|
|
|
char cnvServDir( int, int );
|
|
|
|
void goFrontPartyCharacter( int, int, int );
|
|
|
|
|
|
void initCharPartsPrio( void );
|
|
void setPartsPrio( int, int, int, int, int, float, float, int);
|
|
#ifdef _SFUMATO
|
|
void setCharPrio( int, int, int, int, int, float, float, int );
|
|
#else
|
|
void setCharPrio( int, int, int, int, int, float, float);
|
|
#endif
|
|
void stockCharParts( void );
|
|
|
|
|
|
#if 0
|
|
BOOL checkNpcEvent( int, int, int, int );
|
|
#endif
|
|
|
|
void drawAutoMap( int x, int y );
|
|
void readAutoMapSeeFlag( void );
|
|
void writeAutoMapSeeFlag( void );
|
|
|
|
BOOL checkHitMap( int, int );
|
|
|
|
void camMapToGamen( float, float, float *, float * );
|
|
void camGamenToMap( float, float, float *, float * );
|
|
|
|
|
|
#if 1
|
|
|
|
enum
|
|
{
|
|
MAP_EFFECT_TYPE_NONE,
|
|
MAP_EFFECT_TYPE_RAIN,
|
|
MAP_EFFECT_TYPE_SNOW,
|
|
MAP_EFFECT_TYPE_STAR,
|
|
MAP_EFFECT_TYPE_KAMIFUBUKI,
|
|
MAP_EFFECT_TYPE_HOTARU
|
|
#ifdef _HALLOWEEN_EFFECT
|
|
,MAP_EFFECT_TYPE_HALLOWEEN
|
|
#endif
|
|
};
|
|
|
|
typedef struct _MAP_EFFECT
|
|
{
|
|
int x, y;
|
|
int dx, dy;
|
|
int gx, gy;
|
|
int ggx, ggy;
|
|
int ex, ey;
|
|
int w, h;
|
|
int cnt;
|
|
_MAP_EFFECT *pre;
|
|
_MAP_EFFECT *next;
|
|
short type;
|
|
short type2;
|
|
short mode;
|
|
#ifdef _HALLOWEEN_EFFECT
|
|
ACTION *pAction;
|
|
#endif
|
|
} MAP_EFFECT;
|
|
|
|
extern MAP_EFFECT *useBufMapEffect;
|
|
|
|
extern short mapEffectRainLevel;
|
|
extern short oldMapEffectRainLevel;
|
|
extern short mapEffectSnowLevel;
|
|
extern short oldMapEffectSnowLevel;
|
|
extern short mapEffectMoveDir;
|
|
extern short mapEffectKamiFubukiLevel;
|
|
#ifdef _HALLOWEEN_EFFECT
|
|
extern int mapEffectHalloween;
|
|
#endif
|
|
#ifdef __EDEN_DICE
|
|
extern BOOL bMapEffectDice;
|
|
#endif
|
|
|
|
|
|
extern const short fastDrawTile;
|
|
extern short fastDrawTileFlag;
|
|
extern int amountXFastDraw, amountYFastDraw;
|
|
extern int nowXFastDraw, nowYFastDraw;
|
|
extern int baseXFastDraw, baseYFastDraw;
|
|
extern int amountXFastDraw2, amountYFastDraw2;
|
|
extern int nowXFastDraw2, nowYFastDraw2;
|
|
extern int baseXFastDraw2, baseYFastDraw2;
|
|
#ifdef _MOVE_SCREEN
|
|
extern int iScreenMoveX, iScreenMoveY;
|
|
#endif
|
|
|
|
|
|
void initMapEffect( BOOL bFirstRun );
|
|
void drawMapEffect( void );
|
|
void mapEffectProc( void );
|
|
void mapEffectRain( void );
|
|
void mapEffectSnow( void );
|
|
void mapEffectStar( void );
|
|
void mapEffectFallingStar( void );
|
|
void mapEffectKamiFubuki( void );
|
|
void mapEffectDice(void);
|
|
|
|
#ifdef _HALLOWEEN_EFFECT
|
|
void mapEffectHalloweenProc(void);
|
|
#endif
|
|
|
|
void mapEffectProc2( int );
|
|
void mapEffectRain2( int );
|
|
void mapEffectSnow2( int );
|
|
|
|
void _checkEmptyMap( void );
|
|
|
|
#endif
|
|
|
|
#ifdef _ITEM_PATH
|
|
extern BOOL ITEMPATHFLAG;
|
|
#endif
|
|
|
|
#endif
|