.include "include/macros/asm.inc" .include "include/macros/function.inc" .include "include/macros/movement.inc" .include "include/macros/pokemon_data.inc" .include "include/macros/map.inc" .include "include/macros/mystery_event_script.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