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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
.macro map map_id
.byte \map_id >> 8 @ map group
.byte \map_id & 0xFF @ map num
.endm
.macro map_script type, address
.byte \type
.4byte \address
.endm
.macro map_script_2 word1, word2, address
.2byte \word1
.2byte \word2
.4byte \address
.endm
.macro object_event index:req, gfx:req, in_connection:req x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req
.byte \index
.byte \gfx
.byte \in_connection
.byte 0
.2byte \x, \y
.byte \elevation, \movement_type, ((\y_radius << 4) | \x_radius), 0
.2byte \trainer_type, \sight_radius_tree_etc
.4byte \script
.2byte \event_flag, 0
inc _num_npcs
.endm
.macro warp_def x, y, byte, warp, map_id
.2byte \x, \y
.byte \byte, \warp
.byte \map_id & 0xFF @ map num
.byte \map_id >> 8 @ map group
inc _num_warps
.endm
.macro coord_event x, y, byte1, byte2, word1, word2, word3, script
.2byte \x, \y
.byte \byte1, \byte2
.2byte \word1, \word2, \word3
.4byte \script
inc _num_traps
.endm
.macro bg_event x, y, byte, kind, word, arg6, arg7, arg8
.2byte \x, \y
.byte \byte, \kind
.2byte \word
.if \kind < 5
.4byte \arg6
.else
.2byte \arg6
.byte \arg7, \arg8
.endif
inc _num_signs
.endm
.macro bg_hidden_item_event x, y, height, item, flag, quantity, underfoot
bg_event \x, \y, \height, 7, 0, \item, \flag, \quantity | (\underfoot << 7)
.endm
.macro map_events npcs, warps, traps, signs
.byte _num_npcs, _num_warps, _num_traps, _num_signs
.4byte \npcs, \warps, \traps, \signs
reset_map_events
.endm
.macro reset_map_events
.set _num_npcs, 0
.set _num_warps, 0
.set _num_traps, 0
.set _num_signs, 0
.endm
reset_map_events
.equiv connection_down, 1
.equiv connection_up, 2
.equiv connection_left, 3
.equiv connection_right, 4
.equiv connection_dive, 5
.equiv connection_emerge, 6
.macro connection direction, offset, map, filler
.4byte connection_\direction
.4byte \offset
map \map
.space 2
.endm
.macro map_header_flags allow_cycling:req, allow_escaping:req, allow_running:req, show_map_name:req
.byte \allow_cycling
.byte ((\show_map_name & 1) << 2) | ((\allow_running & 1) << 1) | ((\allow_escaping & 1) << 0)
.endm
|