summaryrefslogtreecommitdiff
path: root/include/macros.inc
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2018-01-10 23:20:32 -0600
committercamthesaxman <cameronghall@cox.net>2018-01-10 23:20:32 -0600
commitb5667bd097347c1d3958fa8f9eb6d39788c0ff50 (patch)
tree29aca119bf365256255da97e8e768cd9216688a8 /include/macros.inc
parentd4afe49b06a7ef2422839fcd0340c06c6a8e541b (diff)
refactor build system
Diffstat (limited to 'include/macros.inc')
-rw-r--r--include/macros.inc149
1 files changed, 149 insertions, 0 deletions
diff --git a/include/macros.inc b/include/macros.inc
new file mode 100644
index 000000000..f34353079
--- /dev/null
+++ b/include/macros.inc
@@ -0,0 +1,149 @@
+ .include "include/macros/asm.inc"
+ .include "include/macros/function.inc"
+ .include "include/macros/movement.inc"
+ .include "include/macros/pokemon_data.inc"
+ .include "include/macros/ec.inc"
+ .include "include/macros/map.inc"
+
+ .macro region_map_location x, y, width, height, name
+ .byte \x
+ .byte \y
+ .byte \width
+ .byte \height
+ .4byte gMapName_\name
+ .endm
+
+ .macro obj_tiles address, uncompressed_size, tag
+ .4byte \address
+ .2byte \uncompressed_size
+ .2byte \tag
+ .endm
+
+ .macro null_obj_tiles
+ obj_tiles 0, 0, 0
+ .endm
+
+ .macro obj_pal address, tag
+ .4byte \address
+ .2byte \tag
+ .2byte 0 @ padding
+ .endm
+
+ .macro null_obj_pal
+ obj_pal 0, 0
+ .endm
+
+ .macro paired_pals tag, address
+ .2byte \tag
+ .2byte 0 @ padding
+ .4byte \address
+ .endm
+
+@ For object animation frames.
+ .macro obj_frame_tiles address, uncompressed_size
+ .4byte \address
+ .2byte \uncompressed_size
+ .2byte 0 @ padding
+ .endm
+
+ .macro spr_template tile_tag, pal_tag, oam, anims, images, affine_anims, callback
+ .2byte \tile_tag
+ .2byte \pal_tag
+ .4byte \oam
+ .4byte \anims
+ .4byte \images
+ .4byte \affine_anims
+ .4byte \callback
+ .endm
+
+@ Berry trees have a table defining the palette slot used for each of their 5
+@ stages. However, the first 2 stages always use the same slots regardless of
+@ the type of tree and the slots of the last 3 stages always equal each other.
+ .macro berry_tree_palette_slot_table slot
+ .byte 3, 4, \slot, \slot, \slot
+ .endm
+
+ .macro subsprite x, y, priority, tile_num_offset, size
+ .2byte \x
+ .2byte \y
+ .2byte ((\priority) << 14) | ((\tile_num_offset) << 4) | SPRITE_SIZE_\size
+ .2byte 0 @ padding
+ .endm
+
+ .macro obj_image_anim_frame pic_id, duration, flags = 0
+ .2byte \pic_id
+ .byte (\flags) | (\duration)
+ .byte 0 @ padding
+ .endm
+
+ .macro obj_image_anim_loop count
+ .2byte 0xfffd
+ .byte \count
+ .byte 0 @ padding
+ .endm
+
+ .macro obj_image_anim_jump target_index
+ .2byte 0xfffe
+ .byte \target_index
+ .byte 0 @ padding
+ .endm
+
+ .macro obj_image_anim_end
+ .2byte 0xffff
+ .2byte 0 @ padding
+ .endm
+
+ .macro obj_rot_scal_anim_frame delta_x_scale, delta_y_scale, delta_angle, duration
+ .2byte \delta_x_scale
+ .2byte \delta_y_scale
+ .byte \delta_angle
+ .byte \duration
+ .2byte 0 @ padding
+ .endm
+
+ .macro obj_rot_scal_anim_loop count
+ .2byte 0x7ffd
+ .2byte \count
+ .4byte 0 @ padding
+ .endm
+
+ .macro obj_rot_scal_anim_jump target_index
+ .2byte 0x7ffe
+ .2byte \target_index
+ .4byte 0 @ padding
+ .endm
+
+ .macro obj_rot_scal_anim_end unknown=0
+ .2byte 0x7fff
+ .2byte \unknown
+ .fill 4 @ padding
+ .endm
+
+ .macro credits_entry number, text
+ .4byte \number
+ .4byte \text
+ .endm
+
+ .macro door_anim_frame unknown, offset
+ .byte \unknown
+ .byte 0 @ padding
+ .2byte \offset
+ .endm
+
+ .macro door_anim_gfx metatile_num, unknown, tile_addr, palette_addr
+ .2byte \metatile_num
+ .2byte \unknown
+ .4byte \tile_addr
+ .4byte \palette_addr
+ .endm
+
+ .macro trainer_eye_trainer opp_1, opp_2, opp_3, opp_4, opp_5, map_name
+ .2byte OPPONENT_\opp_1
+ .2byte OPPONENT_\opp_2
+ .2byte OPPONENT_\opp_3
+ .2byte OPPONENT_\opp_4
+ .2byte OPPONENT_\opp_5
+ .2byte GROUP_\map_name
+ .2byte MAP_\map_name
+ .space 2
+ .endm