mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
Add missing :req, remove old macros
This commit is contained in:
parent
9f2b6ab2f2
commit
2495d18132
129
asm/macros.inc
129
asm/macros.inc
@ -1,8 +1,6 @@
|
||||
.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/map.inc"
|
||||
.include "asm/macros/field_effect_script.inc"
|
||||
.include "asm/macros/trainer_hill.inc"
|
||||
@ -16,130 +14,3 @@
|
||||
.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
|
||||
|
@ -1,4 +1,4 @@
|
||||
.macro inc x
|
||||
.macro inc x:req
|
||||
.set \x, \x + 1
|
||||
.endm
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
.set __enum__, \x
|
||||
.endm
|
||||
|
||||
.macro enum constant
|
||||
.macro enum constant:req
|
||||
.equiv \constant, __enum__
|
||||
inc __enum__
|
||||
.endm
|
||||
|
@ -1,19 +1,19 @@
|
||||
.macro field_eff_loadtiles address
|
||||
.macro field_eff_loadtiles address:req
|
||||
.byte 0
|
||||
.4byte \address
|
||||
.endm
|
||||
|
||||
.macro field_eff_loadfadedpal address
|
||||
.macro field_eff_loadfadedpal address:req
|
||||
.byte 1
|
||||
.4byte \address
|
||||
.endm
|
||||
|
||||
.macro field_eff_loadpal address
|
||||
.macro field_eff_loadpal address:req
|
||||
.byte 2
|
||||
.4byte \address
|
||||
.endm
|
||||
|
||||
.macro field_eff_callnative address
|
||||
.macro field_eff_callnative address:req
|
||||
.byte 3
|
||||
.4byte \address
|
||||
.endm
|
||||
@ -22,20 +22,20 @@
|
||||
.byte 4
|
||||
.endm
|
||||
|
||||
.macro field_eff_loadgfx_callnative tiles_address, palette_address, function_address
|
||||
.macro field_eff_loadgfx_callnative tiles_address:req, palette_address:req, function_address:req
|
||||
.byte 5
|
||||
.4byte \tiles_address
|
||||
.4byte \palette_address
|
||||
.4byte \function_address
|
||||
.endm
|
||||
|
||||
.macro field_eff_loadtiles_callnative tiles_address, function_address
|
||||
.macro field_eff_loadtiles_callnative tiles_address:req, function_address:req
|
||||
.byte 6
|
||||
.4byte \tiles_address
|
||||
.4byte \function_address
|
||||
.endm
|
||||
|
||||
.macro field_eff_loadfadedpal_callnative palette_address, function_address
|
||||
.macro field_eff_loadfadedpal_callnative palette_address:req, function_address:req
|
||||
.byte 7
|
||||
.4byte \palette_address
|
||||
.4byte \function_address
|
||||
|
@ -1,15 +1,15 @@
|
||||
.macro arm_func_start name
|
||||
.macro arm_func_start name:req
|
||||
.align 2, 0
|
||||
.global \name
|
||||
.arm
|
||||
.type \name, %function
|
||||
.endm
|
||||
|
||||
.macro arm_func_end name
|
||||
.macro arm_func_end name:req
|
||||
.size \name, .-\name
|
||||
.endm
|
||||
|
||||
.macro thumb_func_start name
|
||||
.macro thumb_func_start name:req
|
||||
.align 2, 0
|
||||
.global \name
|
||||
.thumb
|
||||
@ -17,13 +17,13 @@
|
||||
.type \name, %function
|
||||
.endm
|
||||
|
||||
.macro non_word_aligned_thumb_func_start name
|
||||
.macro non_word_aligned_thumb_func_start name:req
|
||||
.global \name
|
||||
.thumb
|
||||
.thumb_func
|
||||
.type \name, %function
|
||||
.endm
|
||||
|
||||
.macro thumb_func_end name
|
||||
.macro thumb_func_end name:req
|
||||
.size \name, .-\name
|
||||
.endm
|
||||
|
@ -1,13 +1,13 @@
|
||||
.macro song label, music_player, unknown
|
||||
.macro song label:req, music_player:req, unknown:req
|
||||
.4byte \label
|
||||
.2byte \music_player
|
||||
.2byte \unknown
|
||||
.endm
|
||||
|
||||
.macro music_player info_struct, track_struct, unknown_1, unknown_2
|
||||
.macro music_player info_struct:req, track_struct:req, num_tracks:req, unknown:req
|
||||
.4byte \info_struct
|
||||
.4byte \track_struct
|
||||
.byte \unknown_1
|
||||
.space 1
|
||||
.2byte \unknown_2
|
||||
.byte \num_tracks
|
||||
.byte 0 @ Padding
|
||||
.2byte \unknown
|
||||
.endm
|
||||
|
@ -1,78 +1,88 @@
|
||||
.macro map map_id
|
||||
.macro map map_id:req
|
||||
.byte \map_id >> 8 @ map group
|
||||
.byte \map_id & 0xFF @ map num
|
||||
.endm
|
||||
|
||||
.macro map_script type, address
|
||||
.macro map_script type:req, script:req
|
||||
.byte \type
|
||||
.4byte \address
|
||||
.4byte \script
|
||||
.endm
|
||||
|
||||
.macro map_script_2 word1, word2, address
|
||||
.2byte \word1
|
||||
.2byte \word2
|
||||
.4byte \address
|
||||
.macro map_script_2 var:req, compare:req, script:req
|
||||
.2byte \var
|
||||
.2byte \compare
|
||||
.4byte \script
|
||||
.endm
|
||||
|
||||
.macro object_event index:req, gfx:req, replacement:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req
|
||||
.byte \index, \gfx, \replacement, 0
|
||||
.2byte \x
|
||||
.2byte \y
|
||||
.byte \elevation, \movement_type, ((\y_radius << 4) | \x_radius), 0
|
||||
.2byte \trainer_type, \sight_radius_tree_etc
|
||||
.macro object_event index:req, gfx:req, inConnection:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req
|
||||
.byte \index
|
||||
.byte \gfx
|
||||
.byte \inConnection
|
||||
.byte 0 @ Padding
|
||||
.2byte \x, \y
|
||||
.byte \elevation
|
||||
.byte \movement_type
|
||||
.byte ((\y_radius << 4) | \x_radius)
|
||||
.byte 0 @ Padding
|
||||
.2byte \trainer_type
|
||||
.2byte \sight_radius_tree_etc
|
||||
.4byte \script
|
||||
.2byte \event_flag
|
||||
.2byte 0
|
||||
.2byte 0 @ Padding
|
||||
inc _num_npcs
|
||||
.endm
|
||||
|
||||
.macro warp_def x, y, byte, warp, map_id
|
||||
.macro warp_def x:req, y:req, elevation:req, warpId:req, map_id:req
|
||||
.2byte \x, \y
|
||||
.byte \byte, \warp
|
||||
.byte \elevation
|
||||
.byte \warpId
|
||||
.byte \map_id & 0xFF @ map num
|
||||
.byte \map_id >> 8 @ map group
|
||||
inc _num_warps
|
||||
.endm
|
||||
|
||||
.macro coord_event x, y, elevation, trigger, index, script
|
||||
.macro coord_event x:req, y:req, elevation:req, trigger:req, index:req, script:req
|
||||
.2byte \x, \y
|
||||
.byte \elevation, 0
|
||||
.2byte \trigger, \index, 0
|
||||
.byte \elevation
|
||||
.byte 0 @ Padding
|
||||
.2byte \trigger
|
||||
.2byte \index
|
||||
.2byte 0 @ Padding
|
||||
.4byte \script
|
||||
inc _num_traps
|
||||
.endm
|
||||
|
||||
.macro coord_weather_event x, y, elevation, weather
|
||||
.2byte \x, \y
|
||||
.byte \elevation, 0
|
||||
.2byte \weather
|
||||
.2byte 0, 0
|
||||
.4byte 0
|
||||
inc _num_traps
|
||||
.macro coord_weather_event x:req, y:req, elevation:req, weather:req
|
||||
coord_event \x, \y, \elevation, \weather, 0, NULL
|
||||
.endm
|
||||
|
||||
.macro bg_event x, y, elevation, kind, arg6, arg7
|
||||
.macro bg_event x:req, y:req, elevation:req, kind:req, arg6:req, arg7
|
||||
.2byte \x, \y
|
||||
.byte \elevation, \kind
|
||||
.2byte 0
|
||||
.byte \elevation
|
||||
.byte \kind
|
||||
.2byte 0 @ Padding
|
||||
.if \kind != BG_EVENT_HIDDEN_ITEM
|
||||
.4byte \arg6
|
||||
.4byte \arg6
|
||||
.else
|
||||
.2byte \arg6
|
||||
.2byte \arg7
|
||||
.2byte \arg6
|
||||
.2byte \arg7
|
||||
.endif
|
||||
inc _num_signs
|
||||
.endm
|
||||
|
||||
.macro bg_hidden_item_event x, y, height, item, flag
|
||||
bg_event \x, \y, \height, BG_EVENT_HIDDEN_ITEM, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START)
|
||||
.macro bg_sign_event x:req, y:req, elevation:req, facing_dir:req, script:req
|
||||
bg_event \x, \y, \elevation, \facing_dir, \script
|
||||
.endm
|
||||
|
||||
.macro bg_secret_base_event x, y, height, secret_base_id
|
||||
bg_event \x, \y, \height, BG_EVENT_SECRET_BASE, \secret_base_id
|
||||
.macro bg_hidden_item_event x:req, y:req, elevation:req, item:req, flag:req
|
||||
bg_event \x, \y, \elevation, BG_EVENT_HIDDEN_ITEM, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START)
|
||||
.endm
|
||||
|
||||
.macro map_events npcs, warps, traps, signs
|
||||
.macro bg_secret_base_event x:req, y:req, elevation:req, secret_base_id:req
|
||||
bg_event \x, \y, \elevation, BG_EVENT_SECRET_BASE, \secret_base_id
|
||||
.endm
|
||||
|
||||
.macro map_events npcs:req, warps:req, traps:req, signs:req
|
||||
.byte _num_npcs, _num_warps, _num_traps, _num_signs
|
||||
.4byte \npcs, \warps, \traps, \signs
|
||||
reset_map_events
|
||||
@ -88,14 +98,14 @@
|
||||
reset_map_events
|
||||
|
||||
|
||||
.equiv connection_down, 1
|
||||
.equiv connection_up, 2
|
||||
.equiv connection_left, 3
|
||||
.equiv connection_right, 4
|
||||
.equiv connection_dive, 5
|
||||
.equiv connection_emerge, 6
|
||||
.equiv connection_down, CONNECTION_SOUTH
|
||||
.equiv connection_up, CONNECTION_NORTH
|
||||
.equiv connection_left, CONNECTION_WEST
|
||||
.equiv connection_right, CONNECTION_EAST
|
||||
.equiv connection_dive, CONNECTION_DIVE
|
||||
.equiv connection_emerge, CONNECTION_EMERGE
|
||||
|
||||
.macro connection direction, offset, map
|
||||
.macro connection direction:req, offset:req, map:req
|
||||
.4byte connection_\direction
|
||||
.4byte \offset
|
||||
map \map
|
||||
|
@ -1,56 +0,0 @@
|
||||
.macro pokedex_entry height, width, text_pointer, pokemon_scale, pokemon_offset, trainer_scale, trainer_offset
|
||||
.2byte \height @ in decimeters
|
||||
.2byte \width @ in hectograms
|
||||
.4byte \text_pointer
|
||||
.2byte 0 @ unused
|
||||
.2byte \pokemon_scale
|
||||
.2byte \pokemon_offset
|
||||
.2byte \trainer_scale
|
||||
.2byte \trainer_offset
|
||||
.2byte 0 @ padding
|
||||
.endm
|
||||
|
||||
.macro base_stats hp, attack, defense, speed, sp_attack, sp_defense
|
||||
.byte \hp
|
||||
.byte \attack
|
||||
.byte \defense
|
||||
.byte \speed
|
||||
.byte \sp_attack
|
||||
.byte \sp_defense
|
||||
.endm
|
||||
|
||||
.macro ev_yield hp, attack, defense, speed, sp_attack, sp_defense
|
||||
.2byte (\sp_defense << 10) | (\sp_attack << 8) | (\speed << 6) | (\defense << 4) | (\attack << 2) | \hp
|
||||
.endm
|
||||
|
||||
.macro level_up_move level, move
|
||||
.2byte (\level << 9) | \move
|
||||
.endm
|
||||
|
||||
.macro evo_entry method, parameter, target_species
|
||||
.2byte \method
|
||||
.2byte \parameter
|
||||
.2byte \target_species
|
||||
.2byte 0 @ padding
|
||||
.endm
|
||||
|
||||
.macro empty_evo_entries count
|
||||
.fill 8 * \count, 1, 0
|
||||
.endm
|
||||
|
||||
.macro egg_moves_begin species
|
||||
.2byte 20000 + \species
|
||||
.endm
|
||||
|
||||
@ If the min level equals the max level, only one level argument is needed.
|
||||
.macro wild_mon species, min_level, max_level
|
||||
.byte \min_level
|
||||
|
||||
.ifb \max_level
|
||||
.byte \min_level
|
||||
.else
|
||||
.byte \max_level
|
||||
.endif
|
||||
|
||||
.2byte \species
|
||||
.endm
|
@ -1,35 +0,0 @@
|
||||
.macro window_template bg_id, x, y, width, height, palette, vram_tile_offset
|
||||
.byte \bg_id
|
||||
.byte \x
|
||||
.byte \y
|
||||
.byte \width
|
||||
.byte \height
|
||||
.byte \palette
|
||||
.2byte \vram_tile_offset
|
||||
.endm
|
||||
|
||||
.macro null_window_template
|
||||
window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000
|
||||
.endm
|
||||
|
||||
.macro glyph_width_func font_id, func
|
||||
.4byte \font_id
|
||||
.4byte \func
|
||||
.endm
|
||||
|
||||
.macro keypad_icon tile_offset, width, height
|
||||
.2byte \tile_offset
|
||||
.byte \width
|
||||
.byte \height
|
||||
.endm
|
||||
|
||||
.macro font_info func, max_glyph_width, glyph_height, glyph_spacing, line_spacing, text_color, shadow_color, bg_color
|
||||
.4byte \func
|
||||
.byte \max_glyph_width
|
||||
.byte \glyph_height
|
||||
.byte \glyph_spacing
|
||||
.byte \line_spacing
|
||||
.byte \text_color << 4 @ low nybble seems unused
|
||||
.byte (\shadow_color << 4) | \bg_color
|
||||
.2byte 0 @ padding
|
||||
.endm
|
@ -1,3 +1,4 @@
|
||||
#include "constants/global.h"
|
||||
#include "constants/event_bg.h"
|
||||
#include "constants/event_object_movement.h"
|
||||
#include "constants/event_objects.h"
|
||||
|
@ -1,3 +1,4 @@
|
||||
#include "constants/global.h"
|
||||
#include "constants/layouts.h"
|
||||
#include "constants/map_types.h"
|
||||
#include "constants/maps.h"
|
||||
|
@ -138,4 +138,13 @@
|
||||
#define DIR_NORTHWEST 7
|
||||
#define DIR_NORTHEAST 8
|
||||
|
||||
#define CONNECTION_INVALID -1
|
||||
#define CONNECTION_NONE 0
|
||||
#define CONNECTION_SOUTH 1
|
||||
#define CONNECTION_NORTH 2
|
||||
#define CONNECTION_WEST 3
|
||||
#define CONNECTION_EAST 4
|
||||
#define CONNECTION_DIVE 5
|
||||
#define CONNECTION_EMERGE 6
|
||||
|
||||
#endif // GUARD_CONSTANTS_GLOBAL_H
|
||||
|
@ -349,7 +349,7 @@ struct MusicPlayer
|
||||
{
|
||||
struct MusicPlayerInfo *info;
|
||||
struct MusicPlayerTrack *track;
|
||||
u8 unk_8;
|
||||
u8 numTracks;
|
||||
u16 unk_A;
|
||||
};
|
||||
|
||||
|
@ -16,18 +16,6 @@
|
||||
// for constructing large tiles, such as the Battle Pike's curtain tile.
|
||||
#define METATILE_ROW_WIDTH 8
|
||||
|
||||
enum
|
||||
{
|
||||
CONNECTION_INVALID = -1,
|
||||
CONNECTION_NONE,
|
||||
CONNECTION_SOUTH,
|
||||
CONNECTION_NORTH,
|
||||
CONNECTION_WEST,
|
||||
CONNECTION_EAST,
|
||||
CONNECTION_DIVE,
|
||||
CONNECTION_EMERGE
|
||||
};
|
||||
|
||||
typedef void (*TilesetCB)(void);
|
||||
|
||||
struct Tileset
|
||||
|
@ -83,7 +83,7 @@ void m4aSoundInit(void)
|
||||
for (i = 0; i < NUM_MUSIC_PLAYERS; i++)
|
||||
{
|
||||
struct MusicPlayerInfo *mplayInfo = gMPlayTable[i].info;
|
||||
MPlayOpen(mplayInfo, gMPlayTable[i].track, gMPlayTable[i].unk_8);
|
||||
MPlayOpen(mplayInfo, gMPlayTable[i].track, gMPlayTable[i].numTracks);
|
||||
mplayInfo->unk_B = gMPlayTable[i].unk_A;
|
||||
mplayInfo->memAccArea = gMPlayMemAccArea;
|
||||
}
|
||||
|
@ -230,7 +230,7 @@ string generate_map_events_text(Json map_data) {
|
||||
text << bgs_label << ":\n";
|
||||
for (auto &bg_event : map_data["bg_events"].array_items()) {
|
||||
if (bg_event["type"] == "sign") {
|
||||
text << "\tbg_event "
|
||||
text << "\tbg_sign_event "
|
||||
<< bg_event["x"].int_value() << ", "
|
||||
<< bg_event["y"].int_value() << ", "
|
||||
<< bg_event["elevation"].int_value() << ", "
|
||||
|
Loading…
Reference in New Issue
Block a user