.include "asm/macros/asm.inc" .include "asm/macros/function.inc" .include "asm/macros/movement.inc" .include "asm/macros/window.inc" .include "asm/macros/pokemon_data.inc" .include "asm/macros/ec.inc" .include "asm/macros/map.inc" .include "asm/macros/field_effect_script.inc" .include "asm/macros/trainer_hill.inc" .include "asm/macros/battle_tent.inc" .include "asm/macros/battle_frontier/apprentice.inc" .include "asm/macros/battle_frontier/battle_arena.inc" .include "asm/macros/battle_frontier/battle_dome.inc" .include "asm/macros/battle_frontier/battle_factory.inc" .include "asm/macros/battle_frontier/battle_palace.inc" .include "asm/macros/battle_frontier/battle_pike.inc" .include "asm/macros/battle_frontier/battle_pyramid.inc" .include "asm/macros/battle_frontier/battle_tower.inc" .include "asm/macros/battle_frontier/frontier_util.inc" .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 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 .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 unknown=0 .2byte 0x7fff .2byte \unknown .fill 4 @ padding .endm .macro door_anim_frame unknown, offset .byte \unknown .byte 0 @ padding .2byte \offset .endm .macro door_anim_gfx metatile_num, unknown, unknown2, tile_addr, palette_addr .2byte \metatile_num .byte \unknown .byte \unknown2 .4byte \tile_addr .4byte \palette_addr .endm