diff options
author | camthesaxman <cameronghall@cox.net> | 2018-01-10 23:20:32 -0600 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2018-01-10 23:20:32 -0600 |
commit | b5667bd097347c1d3958fa8f9eb6d39788c0ff50 (patch) | |
tree | 29aca119bf365256255da97e8e768cd9216688a8 /include/macros.inc | |
parent | d4afe49b06a7ef2422839fcd0340c06c6a8e541b (diff) |
refactor build system
Diffstat (limited to 'include/macros.inc')
-rw-r--r-- | include/macros.inc | 149 |
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 |