summaryrefslogtreecommitdiff
path: root/asm/macros.s
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-01-23 12:25:42 -0800
committerYamaArashi <shadow962@live.com>2016-01-23 12:25:42 -0800
commit1362b60f3467f0894d55e82f3294980b6373021d (patch)
treec53b76333cbb099df9e12dfe7ebfc56bd258b707 /asm/macros.s
Initial commit
Diffstat (limited to 'asm/macros.s')
-rw-r--r--asm/macros.s91
1 files changed, 91 insertions, 0 deletions
diff --git a/asm/macros.s b/asm/macros.s
new file mode 100644
index 000000000..590df5a20
--- /dev/null
+++ b/asm/macros.s
@@ -0,0 +1,91 @@
+ .include "asm/macros/function.s"
+ .include "asm/macros/event.s"
+ .include "asm/macros/pokemon_data.s"
+ .include "asm/macros/ec.s"
+ .include "asm/macros/map.s"
+ .include "asm/macros/field_effect_script.s"
+
+ .macro region_map_entry x, y, width, height, name
+ .byte \x
+ .byte \y
+ .byte \width
+ .byte \height
+ .4byte gMapName_\name
+ .endm
+
+ .macro obj_tiles address, uncompressed_size, tag = 0
+ .4byte \address
+ .2byte \uncompressed_size
+ .2byte \tag
+ .endm
+
+ .macro obj_pal address, tag
+ .4byte \address
+ .2byte \tag
+ .2byte 0; padding
+ .endm
+
+ .macro zero_fill count
+ .fill \count
+ .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 sprite_oam x, y, priority, tile_num_offset, size
+ .byte \x
+ .byte \y
+ .2byte ((\priority) << 14) | ((\tile_num_offset) << 4) | SPRITE_SIZE_\size
+ .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
+ .2byte 0x7fff
+ .fill 6 ; padding
+ .endm