-
Notifications
You must be signed in to change notification settings - Fork 0
/
map.h
82 lines (67 loc) · 1.31 KB
/
map.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#ifndef _MAP_H
#define _MAP_H
#ifdef __cplusplus
extern "C"
{
#endif
#include "common.h"
typedef struct tagPALMAP
{
DWORD Tiles[128][64][2];
LPSPRITE pTileSprite;
INT iMapNum;
}PALMAP, *LPPALMAP;
typedef const PALMAP *LPCPALMAP;
LPPALMAP
PAL_LoadMap(
INT iMapNum,
FILE *fpMapMKF,
FILE *fpGopMKF
);
VOID
PAL_FreeMap(
LPPALMAP lpMap
);
LPCBITMAPRLE
PAL_MapGetTileBitmap(
BYTE x,
BYTE y,
BYTE h,
BYTE ucLayer,
LPCPALMAP lpMap
);
BOOL
PAL_MapTileIsBlocked(
BYTE x,
BYTE y,
BYTE h,
LPCPALMAP lpMap
);
BYTE
PAL_MapGetTileHeight(
BYTE x,
BYTE y,
BYTE h,
BYTE ucLayer,
LPCPALMAP lpMap
);
VOID
PAL_MapBlitToSurface(
LPCPALMAP lpMap,
SDL_Surface *lpSurface,
const SDL_Rect *lpSrcRect,
BYTE ucLayer
);
#define PAL_XYH_TO_POS(x, y, h) \
PAL_POS((x) * 32 + (h) * 16, (y) * 16 + (h) * 8)
#define PAL_POS_TO_XYH(pos, x, y, h) \
{ \
(h) = (BYTE)(((PAL_X(pos) % 32) != 0) ? 1 : 0); \
(x) = (BYTE)(PAL_X(pos) / 32); \
(y) = (BYTE)(PAL_Y(pos) / 16); \
}
#ifdef __cpluscplus
}
#endif
#endif
#endif