mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-04-26 00:32:20 -05:00
Species table generation code
This commit is contained in:
parent
2b5752ccd6
commit
0ed8f42727
63
include/tutor_movesets.h
Normal file
63
include/tutor_movesets.h
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
#ifndef POKEPLATINUM_TUTOR_MOVESETS_H
|
||||
#define POKEPLATINUM_TUTOR_MOVESETS_H
|
||||
|
||||
typedef struct {
|
||||
u16 moveID;
|
||||
u8 unk_02;
|
||||
u8 unk_03;
|
||||
u8 unk_04;
|
||||
u8 unk_05;
|
||||
u32 shardColor; // the type of underground shard you use to trade to the move tutors
|
||||
} TeachableMove;
|
||||
|
||||
static const TeachableMove sTeachableMoves[] = {
|
||||
{ MOVE_DIVE, 0x2, 0x4, 0x2, 0x0, 0x0 },
|
||||
{ MOVE_MUD_SLAP, 0x4, 0x4, 0x0, 0x0, 0x1 },
|
||||
{ MOVE_FURY_CUTTER, 0x0, 0x8, 0x0, 0x0, 0x0 },
|
||||
{ MOVE_ICY_WIND, 0x0, 0x6, 0x0, 0x2, 0x0 },
|
||||
{ MOVE_ROLLOUT, 0x4, 0x2, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_THUNDER_PUNCH, 0x2, 0x6, 0x0, 0x0, 0x0 },
|
||||
{ MOVE_FIRE_PUNCH, 0x2, 0x6, 0x0, 0x0, 0x0 },
|
||||
{ MOVE_SUPERPOWER, 0x8, 0x0, 0x0, 0x0, 0x1 },
|
||||
{ MOVE_ICE_PUNCH, 0x2, 0x6, 0x0, 0x0, 0x0 },
|
||||
{ MOVE_IRON_HEAD, 0x6, 0x0, 0x2, 0x0, 0x1 },
|
||||
{ MOVE_AQUA_TAIL, 0x6, 0x0, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_OMINOUS_WIND, 0x0, 0x6, 0x0, 0x2, 0x0 },
|
||||
{ MOVE_GASTRO_ACID, 0x4, 0x0, 0x2, 0x2, 0x1 },
|
||||
{ MOVE_SNORE, 0x2, 0x0, 0x4, 0x2, 0x2 },
|
||||
{ MOVE_SPITE, 0x0, 0x0, 0x8, 0x0, 0x2 },
|
||||
{ MOVE_AIR_CUTTER, 0x2, 0x4, 0x0, 0x2, 0x0 },
|
||||
{ MOVE_HELPING_HAND, 0x2, 0x0, 0x4, 0x2, 0x2 },
|
||||
{ MOVE_ENDEAVOR, 0x4, 0x0, 0x4, 0x0, 0x1 },
|
||||
{ MOVE_OUTRAGE, 0x6, 0x0, 0x2, 0x0, 0x1 },
|
||||
{ MOVE_ANCIENT_POWER, 0x6, 0x0, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_SYNTHESIS, 0x0, 0x0, 0x2, 0x6, 0x2 },
|
||||
{ MOVE_SIGNAL_BEAM, 0x2, 0x2, 0x2, 0x2, 0x1 },
|
||||
{ MOVE_ZEN_HEADBUTT, 0x0, 0x4, 0x4, 0x0, 0x0 },
|
||||
{ MOVE_VACUUM_WAVE, 0x2, 0x4, 0x0, 0x2, 0x0 },
|
||||
{ MOVE_EARTH_POWER, 0x6, 0x0, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_GUNK_SHOT, 0x4, 0x2, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_TWISTER, 0x6, 0x0, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_SEED_BOMB, 0x4, 0x0, 0x0, 0x4, 0x1 },
|
||||
{ MOVE_IRON_DEFENSE, 0x4, 0x2, 0x2, 0x0, 0x1 },
|
||||
{ MOVE_MAGNET_RISE, 0x0, 0x2, 0x4, 0x2, 0x2 },
|
||||
{ MOVE_LAST_RESORT, 0x0, 0x0, 0x0, 0x8, 0x2 },
|
||||
{ MOVE_BOUNCE, 0x4, 0x0, 0x2, 0x2, 0x1 },
|
||||
{ MOVE_TRICK, 0x0, 0x4, 0x4, 0x0, 0x0 },
|
||||
{ MOVE_HEAT_WAVE, 0x4, 0x2, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_KNOCK_OFF, 0x4, 0x4, 0x0, 0x0, 0x0 },
|
||||
{ MOVE_SUCKER_PUNCH, 0x0, 0x6, 0x2, 0x0, 0x0 },
|
||||
{ MOVE_SWIFT, 0x0, 0x2, 0x2, 0x4, 0x2 },
|
||||
{ MOVE_UPROAR, 0x0, 0x0, 0x6, 0x2, 0x2 }
|
||||
};
|
||||
|
||||
#define MOVESET_MASK_SIZE (s32)((NELEMS(sTeachableMoves) + 7) / 8)
|
||||
|
||||
// Each of the bits in this array correspond to a move in sTeachableMoves
|
||||
// Therefore the size is dependent on how many teachable moves exist
|
||||
|
||||
typedef struct {
|
||||
u8 maskData[MOVESET_MASK_SIZE];
|
||||
} MovesetMask;
|
||||
|
||||
#endif // POKEPLATINUM_TUTOR_MOVESETS_H
|
||||
|
|
@ -146,6 +146,7 @@ main = executable('main',
|
|||
c_consts_generators,
|
||||
asm_consts_generators,
|
||||
naix_headers,
|
||||
gen_species_headers
|
||||
],
|
||||
c_args: [
|
||||
pokeplatinum_args,
|
||||
|
|
|
|||
|
|
@ -771,6 +771,20 @@ pl_growtbl_narc = custom_target('pl_growtbl.narc',
|
|||
]
|
||||
)
|
||||
|
||||
species_header_target = meson.current_build_dir()
|
||||
species_headers_includes = include_directories('.')
|
||||
|
||||
gen_species_headers = custom_target('auto-generated species headers',
|
||||
output: 'gen_species_headers',
|
||||
input: personal_files,
|
||||
env: json2bin_env,
|
||||
command: [
|
||||
make_species_tables_py,
|
||||
'--source-dir', '@CURRENT_SOURCE_DIR@',
|
||||
'--output-dir', species_header_target
|
||||
]
|
||||
)
|
||||
|
||||
nitrofs_files += pl_personal_narc
|
||||
nitrofs_files += evo_narc
|
||||
nitrofs_files += pl_poke_icon_narc
|
||||
|
|
|
|||
|
|
@ -40,572 +40,8 @@
|
|||
#include "overlay005/ov5_021DC018.h"
|
||||
#include "overlay005/ov5_021F77A8.h"
|
||||
|
||||
typedef struct {
|
||||
u16 moveID;
|
||||
u8 unk_02;
|
||||
u8 unk_03;
|
||||
u8 unk_04;
|
||||
u8 unk_05;
|
||||
u32 shardColor; // the type of underground shard you use to trade to the move tutors
|
||||
} TeachableMove;
|
||||
|
||||
static const TeachableMove sTeachableMoves[] = {
|
||||
{ MOVE_DIVE, 0x2, 0x4, 0x2, 0x0, 0x0 },
|
||||
{ MOVE_MUD_SLAP, 0x4, 0x4, 0x0, 0x0, 0x1 },
|
||||
{ MOVE_FURY_CUTTER, 0x0, 0x8, 0x0, 0x0, 0x0 },
|
||||
{ MOVE_ICY_WIND, 0x0, 0x6, 0x0, 0x2, 0x0 },
|
||||
{ MOVE_ROLLOUT, 0x4, 0x2, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_THUNDER_PUNCH, 0x2, 0x6, 0x0, 0x0, 0x0 },
|
||||
{ MOVE_FIRE_PUNCH, 0x2, 0x6, 0x0, 0x0, 0x0 },
|
||||
{ MOVE_SUPERPOWER, 0x8, 0x0, 0x0, 0x0, 0x1 },
|
||||
{ MOVE_ICE_PUNCH, 0x2, 0x6, 0x0, 0x0, 0x0 },
|
||||
{ MOVE_IRON_HEAD, 0x6, 0x0, 0x2, 0x0, 0x1 },
|
||||
{ MOVE_AQUA_TAIL, 0x6, 0x0, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_OMINOUS_WIND, 0x0, 0x6, 0x0, 0x2, 0x0 },
|
||||
{ MOVE_GASTRO_ACID, 0x4, 0x0, 0x2, 0x2, 0x1 },
|
||||
{ MOVE_SNORE, 0x2, 0x0, 0x4, 0x2, 0x2 },
|
||||
{ MOVE_SPITE, 0x0, 0x0, 0x8, 0x0, 0x2 },
|
||||
{ MOVE_AIR_CUTTER, 0x2, 0x4, 0x0, 0x2, 0x0 },
|
||||
{ MOVE_HELPING_HAND, 0x2, 0x0, 0x4, 0x2, 0x2 },
|
||||
{ MOVE_ENDEAVOR, 0x4, 0x0, 0x4, 0x0, 0x1 },
|
||||
{ MOVE_OUTRAGE, 0x6, 0x0, 0x2, 0x0, 0x1 },
|
||||
{ MOVE_ANCIENT_POWER, 0x6, 0x0, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_SYNTHESIS, 0x0, 0x0, 0x2, 0x6, 0x2 },
|
||||
{ MOVE_SIGNAL_BEAM, 0x2, 0x2, 0x2, 0x2, 0x1 },
|
||||
{ MOVE_ZEN_HEADBUTT, 0x0, 0x4, 0x4, 0x0, 0x0 },
|
||||
{ MOVE_VACUUM_WAVE, 0x2, 0x4, 0x0, 0x2, 0x0 },
|
||||
{ MOVE_EARTH_POWER, 0x6, 0x0, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_GUNK_SHOT, 0x4, 0x2, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_TWISTER, 0x6, 0x0, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_SEED_BOMB, 0x4, 0x0, 0x0, 0x4, 0x1 },
|
||||
{ MOVE_IRON_DEFENSE, 0x4, 0x2, 0x2, 0x0, 0x1 },
|
||||
{ MOVE_MAGNET_RISE, 0x0, 0x2, 0x4, 0x2, 0x2 },
|
||||
{ MOVE_LAST_RESORT, 0x0, 0x0, 0x0, 0x8, 0x2 },
|
||||
{ MOVE_BOUNCE, 0x4, 0x0, 0x2, 0x2, 0x1 },
|
||||
{ MOVE_TRICK, 0x0, 0x4, 0x4, 0x0, 0x0 },
|
||||
{ MOVE_HEAT_WAVE, 0x4, 0x2, 0x0, 0x2, 0x1 },
|
||||
{ MOVE_KNOCK_OFF, 0x4, 0x4, 0x0, 0x0, 0x0 },
|
||||
{ MOVE_SUCKER_PUNCH, 0x0, 0x6, 0x2, 0x0, 0x0 },
|
||||
{ MOVE_SWIFT, 0x0, 0x2, 0x2, 0x4, 0x2 },
|
||||
{ MOVE_UPROAR, 0x0, 0x0, 0x6, 0x2, 0x2 }
|
||||
};
|
||||
|
||||
#define MOVESET_MASK_SIZE (s32)((NELEMS(sTeachableMoves) + 7) / 8)
|
||||
|
||||
// Each of the bits in this array correspond to a move in sTeachableMoves
|
||||
// Therefore the size is dependent on how many teachable moves exist
|
||||
|
||||
typedef struct {
|
||||
u8 maskData[MOVESET_MASK_SIZE];
|
||||
} MovesetMask;
|
||||
|
||||
const MovesetMask sTeachableMovesets[MOVESET_MAX] = {
|
||||
{ 0x6, 0x20, 0x10, 0x8, 0x4 },
|
||||
{ 0x6, 0x20, 0x10, 0x8, 0x4 },
|
||||
{ 0x6, 0x20, 0x14, 0x8, 0x4 },
|
||||
{ 0x66, 0x20, 0x0, 0x0, 0x12 },
|
||||
{ 0x66, 0x20, 0x0, 0x0, 0x12 },
|
||||
{ 0x66, 0xA8, 0x4, 0x4, 0x12 },
|
||||
{ 0x1B, 0x25, 0x40, 0x10, 0x0 },
|
||||
{ 0x1B, 0x25, 0x40, 0x10, 0x0 },
|
||||
{ 0x1B, 0x25, 0x64, 0x10, 0x0 },
|
||||
{ 0x0, 0x20, 0x0, 0x0, 0x0 },
|
||||
{ 0x0, 0x0, 0x0, 0x10, 0x0 },
|
||||
{ 0x0, 0xA8, 0x20, 0x4, 0x10 },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x0, 0x0, 0x0, 0x10, 0x0 },
|
||||
{ 0x4, 0xA8, 0x2, 0x0, 0x14 },
|
||||
{ 0x2, 0xA8, 0x0, 0x4, 0x32 },
|
||||
{ 0x2, 0xA8, 0x0, 0x4, 0x32 },
|
||||
{ 0x2, 0xA8, 0x0, 0x4, 0x32 },
|
||||
{ 0xA, 0x20, 0x42, 0x40, 0x18 },
|
||||
{ 0xA, 0x20, 0x42, 0x40, 0x18 },
|
||||
{ 0x2, 0xA8, 0x0, 0x4, 0x12 },
|
||||
{ 0x2, 0xA8, 0x0, 0x4, 0x12 },
|
||||
{ 0x0, 0x74, 0x0, 0xA, 0x0 },
|
||||
{ 0x0, 0x74, 0x0, 0xA, 0x0 },
|
||||
{ 0x32, 0x20, 0x21, 0x20, 0x14 },
|
||||
{ 0x32, 0x20, 0x21, 0x20, 0x14 },
|
||||
{ 0x16, 0x20, 0x0, 0x1, 0x14 },
|
||||
{ 0x16, 0x20, 0x0, 0x1, 0x14 },
|
||||
{ 0x2, 0x20, 0x1, 0x0, 0x0 },
|
||||
{ 0x2, 0x20, 0x1, 0x0, 0x0 },
|
||||
{ 0xEE, 0x25, 0x5, 0x1, 0x20 },
|
||||
{ 0x2, 0x20, 0x1, 0x0, 0x8 },
|
||||
{ 0x2, 0x20, 0x1, 0x0, 0x8 },
|
||||
{ 0xEE, 0x25, 0x5, 0x1, 0x28 },
|
||||
{ 0x7A, 0x21, 0x63, 0xC0, 0x5 },
|
||||
{ 0x7A, 0x21, 0x63, 0xC0, 0x5 },
|
||||
{ 0x0, 0x68, 0x40, 0x0, 0x12 },
|
||||
{ 0x0, 0x68, 0x40, 0x0, 0x12 },
|
||||
{ 0x7A, 0x21, 0x3, 0xC0, 0x4 },
|
||||
{ 0x7A, 0x21, 0x3, 0xC0, 0x4 },
|
||||
{ 0x0, 0xA8, 0x40, 0x4, 0x32 },
|
||||
{ 0x0, 0xA8, 0x40, 0x4, 0x32 },
|
||||
{ 0x0, 0x30, 0x10, 0x8, 0x0 },
|
||||
{ 0x0, 0x30, 0x10, 0x8, 0x0 },
|
||||
{ 0x0, 0x30, 0x10, 0x8, 0x0 },
|
||||
{ 0x4, 0x20, 0x10, 0x8, 0x4 },
|
||||
{ 0x4, 0x20, 0x10, 0x8, 0x4 },
|
||||
{ 0x0, 0x20, 0x60, 0x0, 0x10 },
|
||||
{ 0x0, 0xA8, 0x60, 0x4, 0x10 },
|
||||
{ 0x2, 0x20, 0x0, 0x1, 0x8 },
|
||||
{ 0x2, 0x20, 0x0, 0x1, 0x8 },
|
||||
{ 0xA, 0x60, 0x0, 0x4A, 0x34 },
|
||||
{ 0xA, 0x60, 0x0, 0x4A, 0x34 },
|
||||
{ 0xB, 0x25, 0x60, 0x0, 0x10 },
|
||||
{ 0xF, 0x25, 0x60, 0x0, 0x10 },
|
||||
{ 0x62, 0x41, 0x87, 0xA, 0x30 },
|
||||
{ 0x62, 0x41, 0x87, 0xA, 0x30 },
|
||||
{ 0x2, 0x20, 0x1, 0x0, 0x12 },
|
||||
{ 0x2, 0x22, 0x1, 0x0, 0x12 },
|
||||
{ 0x9, 0x20, 0x1, 0x0, 0x0 },
|
||||
{ 0xB, 0x21, 0x1, 0x0, 0x0 },
|
||||
{ 0xB, 0x21, 0x81, 0x0, 0x0 },
|
||||
{ 0x60, 0x21, 0x60, 0x0, 0x5 },
|
||||
{ 0x60, 0x21, 0x60, 0x0, 0x5 },
|
||||
{ 0x60, 0x21, 0x60, 0x0, 0x5 },
|
||||
{ 0xE2, 0x21, 0x81, 0x0, 0x0 },
|
||||
{ 0xE2, 0x21, 0x81, 0x0, 0x0 },
|
||||
{ 0xE2, 0x21, 0x81, 0x0, 0x0 },
|
||||
{ 0x0, 0x30, 0x10, 0x8, 0xC },
|
||||
{ 0x0, 0x30, 0x10, 0x8, 0xC },
|
||||
{ 0x0, 0x30, 0x10, 0x8, 0xC },
|
||||
{ 0x9, 0x20, 0x0, 0x0, 0x4 },
|
||||
{ 0x9, 0x20, 0x0, 0x0, 0x4 },
|
||||
{ 0xF2, 0x20, 0x8, 0x1, 0x8 },
|
||||
{ 0xF2, 0x20, 0x8, 0x1, 0x8 },
|
||||
{ 0xF6, 0x22, 0x8, 0x1, 0x8 },
|
||||
{ 0x0, 0x20, 0x0, 0x80, 0x12 },
|
||||
{ 0x0, 0x20, 0x0, 0x80, 0x12 },
|
||||
{ 0xB, 0x24, 0x60, 0x0, 0x11 },
|
||||
{ 0xF, 0x25, 0x60, 0x10, 0x11 },
|
||||
{ 0x10, 0x20, 0x20, 0x30, 0x10 },
|
||||
{ 0x10, 0x20, 0x20, 0x30, 0x10 },
|
||||
{ 0x6, 0xA8, 0x0, 0x44, 0x36 },
|
||||
{ 0x2, 0xA0, 0x2, 0x0, 0x34 },
|
||||
{ 0x2, 0xA0, 0x2, 0x0, 0x34 },
|
||||
{ 0x9, 0x24, 0x20, 0x0, 0x0 },
|
||||
{ 0x9, 0x24, 0x20, 0x0, 0x0 },
|
||||
{ 0x62, 0x21, 0x0, 0x2, 0x0 },
|
||||
{ 0x62, 0x21, 0x0, 0x2, 0x0 },
|
||||
{ 0x9, 0x20, 0x0, 0x10, 0x10 },
|
||||
{ 0x9, 0x20, 0x20, 0x10, 0x10 },
|
||||
{ 0x68, 0x69, 0x0, 0x0, 0x2D },
|
||||
{ 0x68, 0x69, 0x0, 0x0, 0x2D },
|
||||
{ 0x68, 0x69, 0x0, 0x0, 0x2D },
|
||||
{ 0x12, 0x22, 0x8, 0x5, 0x0 },
|
||||
{ 0x60, 0x1, 0x60, 0x0, 0x1 },
|
||||
{ 0x60, 0x1, 0x60, 0x0, 0x1 },
|
||||
{ 0x8F, 0x20, 0x8, 0x10, 0x4 },
|
||||
{ 0x8F, 0x20, 0x8, 0x10, 0x4 },
|
||||
{ 0x10, 0x20, 0x20, 0x20, 0x18 },
|
||||
{ 0x10, 0x20, 0x20, 0x20, 0x18 },
|
||||
{ 0x10, 0x20, 0x18, 0x8, 0x20 },
|
||||
{ 0x10, 0x20, 0x58, 0x8, 0x0 },
|
||||
{ 0x6E, 0x20, 0x2, 0x11, 0x24 },
|
||||
{ 0x6E, 0x20, 0x6, 0x11, 0x24 },
|
||||
{ 0x82, 0x20, 0x81, 0x80, 0x1C },
|
||||
{ 0x62, 0x21, 0x81, 0x0, 0x10 },
|
||||
{ 0x7A, 0x25, 0x40, 0x0, 0x4 },
|
||||
{ 0x10, 0x60, 0x0, 0x0, 0x20 },
|
||||
{ 0x10, 0x60, 0x0, 0x0, 0x20 },
|
||||
{ 0x9A, 0x64, 0xA, 0x1, 0x20 },
|
||||
{ 0xFE, 0x65, 0xE, 0x1, 0x20 },
|
||||
{ 0x7A, 0x21, 0x43, 0x40, 0x0 },
|
||||
{ 0x0, 0x20, 0x18, 0x8, 0x4 },
|
||||
{ 0x6E, 0x65, 0x7, 0x0, 0x28 },
|
||||
{ 0x9, 0x20, 0x24, 0x84, 0x10 },
|
||||
{ 0x9, 0x20, 0x24, 0x84, 0x10 },
|
||||
{ 0xF, 0x24, 0x0, 0x80, 0x14 },
|
||||
{ 0xF, 0x24, 0x0, 0x80, 0x14 },
|
||||
{ 0x19, 0x20, 0x20, 0x4, 0x10 },
|
||||
{ 0x19, 0x20, 0x20, 0x4, 0x11 },
|
||||
{ 0x62, 0x21, 0x61, 0x10, 0x1 },
|
||||
{ 0x4, 0x28, 0x0, 0x0, 0x14 },
|
||||
{ 0xA, 0x21, 0x61, 0x0, 0x1 },
|
||||
{ 0x62, 0x21, 0x21, 0x20, 0x10 },
|
||||
{ 0x62, 0x20, 0x1, 0x0, 0x2 },
|
||||
{ 0x84, 0x20, 0x0, 0x10, 0x4 },
|
||||
{ 0x8, 0x62, 0x47, 0x0, 0x20 },
|
||||
{ 0x0, 0x0, 0x0, 0x80, 0x0 },
|
||||
{ 0x9, 0x66, 0x4, 0x84, 0x20 },
|
||||
{ 0x9, 0x26, 0x6C, 0x0, 0x0 },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2, 0x20, 0x1, 0x40, 0x10 },
|
||||
{ 0xB, 0x24, 0x21, 0x40, 0x10 },
|
||||
{ 0x2, 0x20, 0x21, 0x60, 0x10 },
|
||||
{ 0x82, 0x20, 0x1, 0x40, 0x12 },
|
||||
{ 0x8, 0x20, 0x60, 0x40, 0x11 },
|
||||
{ 0x19, 0x20, 0x8, 0x11, 0x4 },
|
||||
{ 0x19, 0x20, 0x8, 0x11, 0x4 },
|
||||
{ 0x1A, 0x20, 0x8, 0x11, 0x4 },
|
||||
{ 0x9F, 0x24, 0x8, 0x11, 0x4 },
|
||||
{ 0x0, 0xAE, 0x8, 0x5, 0x12 },
|
||||
{ 0xFA, 0x23, 0x44, 0x4A, 0x0 },
|
||||
{ 0xA, 0xA8, 0x28, 0x4, 0x10 },
|
||||
{ 0x2, 0xA8, 0x28, 0x4, 0x12 },
|
||||
{ 0x2, 0xA8, 0x8, 0x4, 0x12 },
|
||||
{ 0x8, 0x24, 0x4, 0x4, 0x10 },
|
||||
{ 0x8, 0x24, 0x4, 0x4, 0x10 },
|
||||
{ 0xEF, 0xAF, 0x4, 0x4, 0x12 },
|
||||
{ 0x6A, 0x25, 0x60, 0x0, 0x11 },
|
||||
{ 0xFF, 0xFF, 0xFF, 0xFF, 0x3F },
|
||||
{ 0x6, 0x20, 0x18, 0x8, 0x0 },
|
||||
{ 0x6, 0x20, 0x18, 0x8, 0x0 },
|
||||
{ 0x6, 0x20, 0x1C, 0x8, 0x0 },
|
||||
{ 0x12, 0x20, 0x0, 0x0, 0x12 },
|
||||
{ 0x16, 0x20, 0x0, 0x0, 0x12 },
|
||||
{ 0x76, 0x20, 0x0, 0x0, 0x12 },
|
||||
{ 0x8B, 0x65, 0x8, 0x0, 0x20 },
|
||||
{ 0x8F, 0x61, 0x8, 0x0, 0x20 },
|
||||
{ 0x8F, 0x65, 0xC, 0x0, 0x20 },
|
||||
{ 0x76, 0x25, 0x1, 0x40, 0x3C },
|
||||
{ 0x76, 0x25, 0x1, 0x40, 0x3C },
|
||||
{ 0x2, 0x88, 0x40, 0x4, 0x32 },
|
||||
{ 0x2, 0x88, 0x40, 0x4, 0x32 },
|
||||
{ 0x30, 0xA9, 0x0, 0x0, 0x34 },
|
||||
{ 0x30, 0xA9, 0x0, 0x0, 0x34 },
|
||||
{ 0x0, 0x0, 0x20, 0x80, 0x8 },
|
||||
{ 0x0, 0x0, 0x20, 0x80, 0x8 },
|
||||
{ 0x0, 0xA8, 0x40, 0x4, 0x32 },
|
||||
{ 0x9, 0x20, 0x20, 0x80, 0x8 },
|
||||
{ 0x9, 0x24, 0x20, 0x80, 0x8 },
|
||||
{ 0x12, 0x20, 0x21, 0x20, 0x30 },
|
||||
{ 0x1A, 0x20, 0x63, 0x40, 0x21 },
|
||||
{ 0x1A, 0x20, 0x3, 0xC0, 0x20 },
|
||||
{ 0x12, 0x20, 0x6A, 0x40, 0x31 },
|
||||
{ 0x12, 0xA8, 0x6A, 0x44, 0x13 },
|
||||
{ 0x0, 0xA8, 0x60, 0x4, 0x1B },
|
||||
{ 0x0, 0xA8, 0x60, 0x4, 0x1B },
|
||||
{ 0x0, 0x20, 0x20, 0x20, 0x10 },
|
||||
{ 0x60, 0x20, 0x20, 0x20, 0x10 },
|
||||
{ 0x60, 0x20, 0x24, 0x20, 0x10 },
|
||||
{ 0x0, 0x30, 0x10, 0x8, 0x20 },
|
||||
{ 0x9B, 0x25, 0x1, 0x0, 0x14 },
|
||||
{ 0x9B, 0x25, 0x1, 0x0, 0x14 },
|
||||
{ 0x72, 0x21, 0x1, 0x1, 0x8 },
|
||||
{ 0xB, 0x20, 0x1, 0x80, 0x0 },
|
||||
{ 0x0, 0x20, 0x11, 0x88, 0x0 },
|
||||
{ 0x0, 0x20, 0x11, 0x88, 0x0 },
|
||||
{ 0x0, 0x20, 0x11, 0x88, 0x0 },
|
||||
{ 0x66, 0x61, 0x0, 0xCA, 0x34 },
|
||||
{ 0x0, 0x20, 0x13, 0x8, 0x20 },
|
||||
{ 0x0, 0x20, 0x13, 0x8, 0x20 },
|
||||
{ 0x0, 0xA8, 0x28, 0x0, 0x30 },
|
||||
{ 0x1B, 0x25, 0x8, 0x1, 0x0 },
|
||||
{ 0x1B, 0x25, 0x8, 0x1, 0x0 },
|
||||
{ 0x2, 0x20, 0x61, 0x40, 0x11 },
|
||||
{ 0x2, 0x60, 0x1, 0x40, 0x18 },
|
||||
{ 0xA, 0xC8, 0x0, 0x4, 0x3A },
|
||||
{ 0xF, 0x25, 0x60, 0x10, 0x11 },
|
||||
{ 0x8, 0x68, 0x0, 0x0, 0x39 },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2, 0x20, 0x60, 0x0, 0x39 },
|
||||
{ 0x10, 0x20, 0x0, 0x10, 0x0 },
|
||||
{ 0x10, 0x20, 0x20, 0x30, 0x0 },
|
||||
{ 0x12, 0x64, 0x4A, 0x40, 0x0 },
|
||||
{ 0x4, 0x24, 0x0, 0x1, 0x14 },
|
||||
{ 0x12, 0x26, 0x8, 0x25, 0x0 },
|
||||
{ 0xE2, 0x21, 0x0, 0x40, 0x0 },
|
||||
{ 0xE2, 0x21, 0x0, 0x40, 0x0 },
|
||||
{ 0x19, 0x24, 0x20, 0x80, 0x10 },
|
||||
{ 0x84, 0x2A, 0x0, 0x10, 0x14 },
|
||||
{ 0x12, 0x30, 0x9, 0x1, 0x0 },
|
||||
{ 0x4, 0x20, 0x81, 0x10, 0x4 },
|
||||
{ 0xE, 0x61, 0x0, 0x0, 0x14 },
|
||||
{ 0xF6, 0x21, 0x0, 0x4A, 0x10 },
|
||||
{ 0xF6, 0x21, 0x0, 0x4A, 0x30 },
|
||||
{ 0x12, 0x20, 0x8, 0x11, 0x2 },
|
||||
{ 0x12, 0x20, 0x8, 0x11, 0x2 },
|
||||
{ 0x8A, 0x20, 0xA, 0x1, 0x0 },
|
||||
{ 0x8A, 0x20, 0xA, 0x1, 0x0 },
|
||||
{ 0x1A, 0x20, 0xA, 0x1, 0x8 },
|
||||
{ 0xB, 0x20, 0x20, 0x8A, 0x10 },
|
||||
{ 0xB, 0x20, 0x20, 0x8A, 0x10 },
|
||||
{ 0x1A, 0x0, 0x20, 0x8A, 0x10 },
|
||||
{ 0xB, 0xA6, 0x21, 0x8A, 0x10 },
|
||||
{ 0xE, 0xA8, 0x0, 0x14, 0x10 },
|
||||
{ 0x2, 0x60, 0x0, 0x0, 0x3A },
|
||||
{ 0x2, 0x60, 0x0, 0x0, 0x3A },
|
||||
{ 0x9, 0x22, 0x24, 0x84, 0x10 },
|
||||
{ 0x92, 0x20, 0xA, 0xB, 0x4 },
|
||||
{ 0x92, 0x20, 0xA, 0x9B, 0x4 },
|
||||
{ 0x8, 0x20, 0x60, 0x40, 0x11 },
|
||||
{ 0x2, 0x60, 0x60, 0xC0, 0x38 },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2, 0x20, 0x81, 0x0, 0x30 },
|
||||
{ 0x12, 0x20, 0x83, 0x4, 0x18 },
|
||||
{ 0xA, 0x21, 0x61, 0x0, 0x21 },
|
||||
{ 0x62, 0x21, 0x21, 0x20, 0x30 },
|
||||
{ 0x62, 0x20, 0x1, 0x0, 0x22 },
|
||||
{ 0x7A, 0x23, 0x41, 0x0, 0x0 },
|
||||
{ 0x7A, 0x21, 0x43, 0x40, 0x0 },
|
||||
{ 0x2, 0x22, 0x20, 0x20, 0x10 },
|
||||
{ 0x2, 0x22, 0x0, 0x0, 0x12 },
|
||||
{ 0xB, 0x2A, 0x20, 0x0, 0x10 },
|
||||
{ 0x82, 0x62, 0x8, 0x1, 0x20 },
|
||||
{ 0x82, 0x62, 0x8, 0x11, 0x20 },
|
||||
{ 0xE6, 0x67, 0xC, 0x1, 0x20 },
|
||||
{ 0xB, 0xAE, 0x68, 0x5, 0x11 },
|
||||
{ 0x2, 0xAA, 0x68, 0x5, 0x12 },
|
||||
{ 0x2, 0x20, 0x79, 0x49, 0x39 },
|
||||
{ 0x26, 0x20, 0x12, 0x8, 0x10 },
|
||||
{ 0x26, 0x20, 0x12, 0x8, 0x10 },
|
||||
{ 0x26, 0x20, 0x16, 0x8, 0x10 },
|
||||
{ 0x2, 0x20, 0x1, 0xC0, 0x12 },
|
||||
{ 0x66, 0x20, 0x81, 0xC0, 0x12 },
|
||||
{ 0xE6, 0x20, 0x81, 0xC0, 0x16 },
|
||||
{ 0x9B, 0x24, 0xA, 0x1, 0x0 },
|
||||
{ 0x9B, 0x25, 0xA, 0x1, 0x0 },
|
||||
{ 0x9B, 0x25, 0xE, 0x1, 0x0 },
|
||||
{ 0x2, 0x60, 0x0, 0x0, 0x28 },
|
||||
{ 0x2, 0x60, 0x0, 0x0, 0x28 },
|
||||
{ 0x1E, 0x20, 0x1, 0x4A, 0x11 },
|
||||
{ 0x1E, 0x20, 0x1, 0x4A, 0x11 },
|
||||
{ 0x0, 0x20, 0x0, 0x0, 0x0 },
|
||||
{ 0x0, 0x0, 0x0, 0x10, 0x0 },
|
||||
{ 0x0, 0xA8, 0x20, 0x4, 0x10 },
|
||||
{ 0x0, 0x0, 0x0, 0x10, 0x0 },
|
||||
{ 0x0, 0xA8, 0x20, 0x4, 0x10 },
|
||||
{ 0x8, 0x20, 0x50, 0x8, 0x20 },
|
||||
{ 0x6B, 0x21, 0x50, 0x8, 0x20 },
|
||||
{ 0x6B, 0x21, 0x50, 0x8, 0x20 },
|
||||
{ 0x10, 0x60, 0x10, 0x8, 0x0 },
|
||||
{ 0x16, 0x60, 0x10, 0x8, 0x10 },
|
||||
{ 0x1E, 0xE8, 0x10, 0x8C, 0x1C },
|
||||
{ 0x2, 0xA8, 0x2, 0x4, 0x12 },
|
||||
{ 0x2, 0xA8, 0x2, 0x4, 0x12 },
|
||||
{ 0xA, 0xA8, 0x0, 0x4, 0x34 },
|
||||
{ 0xA, 0xA8, 0x0, 0xE, 0x34 },
|
||||
{ 0x6A, 0x21, 0x61, 0x0, 0x11 },
|
||||
{ 0x6A, 0x21, 0x61, 0x0, 0x11 },
|
||||
{ 0x6A, 0x21, 0x61, 0x0, 0x11 },
|
||||
{ 0xA, 0x20, 0x20, 0x0, 0x10 },
|
||||
{ 0xA, 0xA8, 0x20, 0x4, 0x10 },
|
||||
{ 0x0, 0x20, 0x11, 0x8, 0x0 },
|
||||
{ 0xA6, 0x20, 0x91, 0x8, 0x0 },
|
||||
{ 0x6E, 0x21, 0x0, 0x2, 0x8 },
|
||||
{ 0x6E, 0x1, 0x0, 0x2, 0x28 },
|
||||
{ 0x6E, 0x21, 0x0, 0x2, 0x8 },
|
||||
{ 0x6, 0x60, 0x0, 0x0, 0x0 },
|
||||
{ 0x6, 0xE8, 0x0, 0x0, 0x30 },
|
||||
{ 0x6, 0x60, 0x0, 0x0, 0x9 },
|
||||
{ 0x7A, 0x21, 0x40, 0x0, 0x20 },
|
||||
{ 0x7A, 0x21, 0x40, 0x0, 0x20 },
|
||||
{ 0x7A, 0x21, 0x44, 0x0, 0x20 },
|
||||
{ 0xE2, 0x21, 0x81, 0x0, 0x4 },
|
||||
{ 0xE2, 0x23, 0x81, 0x0, 0x4 },
|
||||
{ 0x1A, 0x20, 0x1, 0x0, 0x34 },
|
||||
{ 0x72, 0x21, 0x8, 0x31, 0x0 },
|
||||
{ 0x1A, 0x20, 0x41, 0x40, 0x18 },
|
||||
{ 0x1A, 0x20, 0x41, 0x40, 0x18 },
|
||||
{ 0x6E, 0x69, 0x60, 0x0, 0xD },
|
||||
{ 0x2A, 0x23, 0x8, 0x30, 0xC },
|
||||
{ 0x96, 0x62, 0xA, 0x31, 0x20 },
|
||||
{ 0x96, 0x62, 0xA, 0x31, 0x20 },
|
||||
{ 0xFE, 0x67, 0xE, 0x31, 0x20 },
|
||||
{ 0x62, 0x21, 0xE1, 0x0, 0x11 },
|
||||
{ 0x62, 0x21, 0xE1, 0x0, 0x11 },
|
||||
{ 0x2, 0x20, 0x20, 0x20, 0x10 },
|
||||
{ 0x2, 0x20, 0x20, 0x20, 0x10 },
|
||||
{ 0x32, 0x20, 0x21, 0x60, 0x30 },
|
||||
{ 0x32, 0x20, 0x21, 0x60, 0x30 },
|
||||
{ 0x22, 0xA9, 0x61, 0x0, 0x10 },
|
||||
{ 0x22, 0xA9, 0x41, 0x0, 0x10 },
|
||||
{ 0x6, 0x20, 0x10, 0x8, 0x10 },
|
||||
{ 0x72, 0x31, 0x0, 0xA, 0x0 },
|
||||
{ 0x72, 0x31, 0x0, 0xA, 0x0 },
|
||||
{ 0xF, 0x60, 0x48, 0x80, 0x30 },
|
||||
{ 0xF, 0x60, 0x48, 0x80, 0x30 },
|
||||
{ 0x19, 0x20, 0x0, 0x80, 0x0 },
|
||||
{ 0x19, 0x22, 0x0, 0x80, 0x0 },
|
||||
{ 0x12, 0x20, 0x0, 0x1, 0x2 },
|
||||
{ 0x12, 0x22, 0x0, 0x1, 0x2 },
|
||||
{ 0x12, 0x20, 0x0, 0x11, 0x2 },
|
||||
{ 0x8, 0x20, 0x60, 0x80, 0x11 },
|
||||
{ 0x6A, 0x21, 0x60, 0x80, 0x11 },
|
||||
{ 0x7A, 0x21, 0x41, 0x40, 0x38 },
|
||||
{ 0x6, 0x20, 0x0, 0x1, 0x0 },
|
||||
{ 0x6, 0xA8, 0x4, 0x5, 0x12 },
|
||||
{ 0x66, 0xA8, 0x4, 0x5, 0x12 },
|
||||
{ 0x26, 0x60, 0x10, 0x8, 0x8 },
|
||||
{ 0xA6, 0x60, 0x10, 0x8, 0x8 },
|
||||
{ 0x2, 0xA8, 0x4, 0x4, 0x32 },
|
||||
{ 0x2, 0xA8, 0x4, 0x4, 0x32 },
|
||||
{ 0x7E, 0x21, 0x2, 0x40, 0x14 },
|
||||
{ 0x6, 0x24, 0x0, 0x0, 0x1C },
|
||||
{ 0x10, 0x22, 0x69, 0x1, 0x10 },
|
||||
{ 0x10, 0x22, 0x69, 0x11, 0x10 },
|
||||
{ 0xB, 0x24, 0x0, 0x81, 0x0 },
|
||||
{ 0xB, 0x24, 0x40, 0x81, 0x0 },
|
||||
{ 0x8E, 0x60, 0xA, 0x10, 0x4 },
|
||||
{ 0x8F, 0x60, 0xA, 0x10, 0x14 },
|
||||
{ 0x2, 0x20, 0x68, 0x1, 0x1 },
|
||||
{ 0x2, 0x20, 0x68, 0x1, 0x1 },
|
||||
{ 0x2, 0x30, 0x18, 0x9, 0x0 },
|
||||
{ 0x2, 0x30, 0x18, 0x9, 0x0 },
|
||||
{ 0x6, 0x20, 0x8, 0x11, 0x4 },
|
||||
{ 0x86, 0x24, 0x8, 0x11, 0x4 },
|
||||
{ 0x9, 0x20, 0x0, 0x0, 0x10 },
|
||||
{ 0xB, 0x26, 0x0, 0x4, 0x10 },
|
||||
{ 0x8, 0x28, 0x0, 0x40, 0x10 },
|
||||
{ 0x7E, 0x25, 0x8, 0x40, 0x1D },
|
||||
{ 0x8, 0x48, 0x0, 0x0, 0xD },
|
||||
{ 0xA, 0x48, 0x0, 0x0, 0xD },
|
||||
{ 0x8, 0x68, 0x0, 0x0, 0x9 },
|
||||
{ 0x6A, 0x69, 0x0, 0x0, 0x9 },
|
||||
{ 0x6, 0xA8, 0x14, 0x4, 0x0 },
|
||||
{ 0x18, 0x20, 0x61, 0x40, 0x25 },
|
||||
{ 0x8E, 0x60, 0x40, 0x80, 0x1C },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x18, 0x60, 0x0, 0x0, 0x0 },
|
||||
{ 0x18, 0x62, 0x20, 0x0, 0x0 },
|
||||
{ 0x1B, 0x24, 0x20, 0x0, 0x0 },
|
||||
{ 0x1B, 0x24, 0x20, 0x0, 0x0 },
|
||||
{ 0x1F, 0x26, 0x20, 0x0, 0x0 },
|
||||
{ 0x9, 0x20, 0x0, 0x10, 0x0 },
|
||||
{ 0xB, 0x24, 0x0, 0x80, 0x18 },
|
||||
{ 0xB, 0x24, 0x20, 0x80, 0x10 },
|
||||
{ 0xB, 0x24, 0x8, 0x81, 0x0 },
|
||||
{ 0x9, 0x20, 0x0, 0x80, 0x10 },
|
||||
{ 0x6, 0x20, 0x44, 0x4, 0x0 },
|
||||
{ 0x16, 0x20, 0x44, 0x14, 0x0 },
|
||||
{ 0x16, 0xAC, 0x44, 0x4, 0x12 },
|
||||
{ 0x0, 0x2, 0x40, 0x10, 0x0 },
|
||||
{ 0x3E, 0x23, 0x60, 0x30, 0x11 },
|
||||
{ 0x3E, 0x23, 0x60, 0x30, 0x11 },
|
||||
{ 0xF2, 0x23, 0x8, 0x1, 0x0 },
|
||||
{ 0xBA, 0x23, 0x28, 0x0, 0x0 },
|
||||
{ 0xB2, 0x23, 0x8, 0x30, 0x0 },
|
||||
{ 0xF, 0x20, 0x45, 0x44, 0x19 },
|
||||
{ 0xF, 0x20, 0x45, 0x44, 0x11 },
|
||||
{ 0xB, 0x26, 0x28, 0x0, 0x30 },
|
||||
{ 0x76, 0x22, 0x8, 0x1, 0x30 },
|
||||
{ 0xF, 0x26, 0xC, 0x5, 0x30 },
|
||||
{ 0x6A, 0x23, 0x69, 0x50, 0x31 },
|
||||
{ 0x6A, 0x21, 0x60, 0x0, 0x15 },
|
||||
{ 0x82, 0x20, 0x10, 0x9, 0x0 },
|
||||
{ 0x82, 0x20, 0x10, 0x9, 0x0 },
|
||||
{ 0x82, 0x22, 0x14, 0x9, 0x0 },
|
||||
{ 0x72, 0x20, 0x83, 0x2, 0x32 },
|
||||
{ 0x72, 0x20, 0x83, 0x2, 0x12 },
|
||||
{ 0x72, 0x20, 0x83, 0x2, 0x12 },
|
||||
{ 0xB, 0x20, 0x20, 0x0, 0x0 },
|
||||
{ 0xB, 0x20, 0x20, 0x0, 0x0 },
|
||||
{ 0xF, 0x20, 0x20, 0x10, 0x4 },
|
||||
{ 0x2, 0xA8, 0x2, 0x4, 0x12 },
|
||||
{ 0x2, 0xA8, 0x2, 0x4, 0x12 },
|
||||
{ 0x2, 0xA8, 0x2, 0x4, 0x12 },
|
||||
{ 0x9E, 0x24, 0x0, 0x40, 0x10 },
|
||||
{ 0x9F, 0x24, 0x0, 0x40, 0x10 },
|
||||
{ 0x2, 0x20, 0x2, 0x0, 0x20 },
|
||||
{ 0x6, 0x20, 0x2, 0x0, 0x24 },
|
||||
{ 0x6, 0x20, 0x20, 0x20, 0x10 },
|
||||
{ 0x6, 0x20, 0x20, 0x20, 0x10 },
|
||||
{ 0x86, 0x20, 0x20, 0x20, 0x10 },
|
||||
{ 0x2, 0x20, 0x10, 0x8, 0x30 },
|
||||
{ 0x6, 0x20, 0x10, 0x8, 0x10 },
|
||||
{ 0xE2, 0x62, 0x4A, 0x1, 0x20 },
|
||||
{ 0xE2, 0x62, 0x4E, 0x1, 0x20 },
|
||||
{ 0x2, 0x22, 0x8, 0x31, 0x0 },
|
||||
{ 0x2, 0x22, 0xC, 0x31, 0x0 },
|
||||
{ 0x0, 0x20, 0x0, 0x0, 0x0 },
|
||||
{ 0x0, 0x20, 0x32, 0x8, 0x28 },
|
||||
{ 0x2, 0xA8, 0x20, 0x4, 0x10 },
|
||||
{ 0x2, 0xA8, 0x2, 0x0, 0x10 },
|
||||
{ 0x6, 0xA8, 0x22, 0x0, 0x10 },
|
||||
{ 0x32, 0x20, 0x1, 0x6A, 0x30 },
|
||||
{ 0xB, 0x21, 0x0, 0x0, 0x10 },
|
||||
{ 0xB, 0x25, 0x0, 0x0, 0x10 },
|
||||
{ 0x10, 0x20, 0x11, 0x8, 0x0 },
|
||||
{ 0x10, 0x20, 0x11, 0x8, 0x0 },
|
||||
{ 0xB, 0x20, 0x8, 0x1, 0x0 },
|
||||
{ 0xB, 0x20, 0x8, 0x1, 0x0 },
|
||||
{ 0x66, 0x61, 0x0, 0xCA, 0x34 },
|
||||
{ 0x1A, 0xE8, 0x0, 0x0, 0x1D },
|
||||
{ 0x1A, 0xE8, 0x0, 0x0, 0x1D },
|
||||
{ 0x2, 0x20, 0x3, 0xC0, 0x30 },
|
||||
{ 0x66, 0x21, 0x3, 0xC0, 0x30 },
|
||||
{ 0x8, 0x68, 0x0, 0x0, 0x39 },
|
||||
{ 0x82, 0xC8, 0x0, 0x4, 0x3A },
|
||||
{ 0x6, 0x20, 0x0, 0x40, 0x1C },
|
||||
{ 0x16, 0x20, 0x0, 0x40, 0x1C },
|
||||
{ 0x18, 0x20, 0x61, 0x40, 0x35 },
|
||||
{ 0x6, 0x20, 0x0, 0x0, 0x18 },
|
||||
{ 0x6, 0x20, 0x0, 0x0, 0x18 },
|
||||
{ 0x10, 0x20, 0x28, 0x0, 0x1 },
|
||||
{ 0x10, 0x22, 0x68, 0x0, 0x1 },
|
||||
{ 0x10, 0x20, 0x1, 0x1, 0x28 },
|
||||
{ 0x2, 0x20, 0x21, 0x0, 0x21 },
|
||||
{ 0x1A, 0x20, 0x43, 0x40, 0x20 },
|
||||
{ 0x2, 0xA8, 0x0, 0x4, 0x32 },
|
||||
{ 0x8, 0x68, 0x0, 0x0, 0x29 },
|
||||
{ 0x6, 0x22, 0x4, 0x5, 0x10 },
|
||||
{ 0x6, 0x22, 0x4, 0x5, 0x10 },
|
||||
{ 0x6, 0x26, 0x4, 0x5, 0x10 },
|
||||
{ 0xFA, 0x21, 0x40, 0x4A, 0x20 },
|
||||
{ 0x26, 0x21, 0xC1, 0x30, 0x10 },
|
||||
{ 0x26, 0x21, 0xC1, 0x30, 0x10 },
|
||||
{ 0x82, 0x20, 0x0, 0x1, 0x0 },
|
||||
{ 0x82, 0x22, 0x0, 0x1, 0x0 },
|
||||
{ 0x6, 0x24, 0x0, 0x0, 0x4 },
|
||||
{ 0x6, 0x24, 0x0, 0x0, 0x4 },
|
||||
{ 0x2E, 0x61, 0x81, 0x82, 0xC },
|
||||
{ 0x2E, 0x61, 0x81, 0x82, 0xC },
|
||||
{ 0x6, 0x30, 0x10, 0x8, 0x4 },
|
||||
{ 0x9, 0xAC, 0x0, 0x84, 0x10 },
|
||||
{ 0x9, 0xAC, 0x0, 0x84, 0x10 },
|
||||
{ 0xB, 0xA0, 0x1, 0x80, 0x10 },
|
||||
{ 0xA, 0x21, 0x10, 0x8, 0x0 },
|
||||
{ 0xA, 0x21, 0x14, 0x8, 0x0 },
|
||||
{ 0xE, 0x61, 0x0, 0x0, 0x14 },
|
||||
{ 0x10, 0x22, 0x20, 0x30, 0x10 },
|
||||
{ 0x7A, 0x25, 0x40, 0x0, 0x4 },
|
||||
{ 0xFE, 0x67, 0xE, 0x1, 0x20 },
|
||||
{ 0x2, 0x20, 0x18, 0x8, 0x4 },
|
||||
{ 0x62, 0x21, 0x21, 0x20, 0x10 },
|
||||
{ 0x62, 0x20, 0x1, 0x0, 0x2 },
|
||||
{ 0x12, 0xA8, 0x6A, 0x44, 0x13 },
|
||||
{ 0x2, 0xA8, 0x28, 0x0, 0x30 },
|
||||
{ 0x6, 0x20, 0x11, 0x48, 0x14 },
|
||||
{ 0xA, 0x24, 0x21, 0x40, 0x10 },
|
||||
{ 0x6, 0x24, 0x0, 0x1, 0x14 },
|
||||
{ 0x8E, 0x22, 0xA, 0x1, 0x4 },
|
||||
{ 0x8, 0x20, 0x60, 0x40, 0x31 },
|
||||
{ 0x66, 0x21, 0xE1, 0x0, 0x15 },
|
||||
{ 0x72, 0x23, 0x8, 0x31, 0x0 },
|
||||
{ 0x6A, 0x69, 0x0, 0x0, 0x9 },
|
||||
{ 0x1A, 0x69, 0x20, 0x0, 0x9 },
|
||||
{ 0x2, 0x68, 0x20, 0x0, 0x39 },
|
||||
{ 0x62, 0x21, 0x61, 0x0, 0x15 },
|
||||
{ 0x62, 0x21, 0x61, 0x0, 0x15 },
|
||||
{ 0x62, 0x21, 0x61, 0x40, 0x35 },
|
||||
{ 0x6, 0x22, 0xC, 0x35, 0x10 },
|
||||
{ 0x7, 0x24, 0xC, 0x5, 0x10 },
|
||||
{ 0x2, 0x22, 0x8, 0x11, 0x22 },
|
||||
{ 0xEA, 0x23, 0x48, 0x1, 0x0 },
|
||||
{ 0xE, 0xEE, 0xC, 0x5, 0x10 },
|
||||
{ 0xE, 0x20, 0x61, 0x0, 0x11 },
|
||||
{ 0xB, 0x20, 0x29, 0xC0, 0x34 },
|
||||
{ 0xB, 0x20, 0x29, 0xC0, 0x34 },
|
||||
{ 0xA, 0x68, 0x0, 0x40, 0x1D },
|
||||
{ 0x2, 0x20, 0x52, 0x49, 0x10 },
|
||||
{ 0xF, 0x2E, 0x6C, 0x55, 0x13 },
|
||||
{ 0x82, 0x20, 0x60, 0x0, 0x1 },
|
||||
{ 0x2, 0x20, 0x60, 0x10, 0x5 },
|
||||
{ 0x2, 0x20, 0x60, 0x0, 0x15 },
|
||||
{ 0x12, 0x20, 0x22, 0x1, 0x28 },
|
||||
{ 0x0, 0x22, 0x22, 0x32, 0x28 },
|
||||
{ 0xE, 0xEE, 0xC, 0x5, 0x10 },
|
||||
{ 0x2, 0xA8, 0x50, 0x48, 0x10 },
|
||||
{ 0x2, 0x68, 0x20, 0x0, 0x39 },
|
||||
{ 0x2, 0x68, 0x20, 0x0, 0x39 },
|
||||
{ 0x2, 0x68, 0x20, 0x0, 0x39 },
|
||||
{ 0x2, 0x68, 0x20, 0x0, 0x39 },
|
||||
{ 0x2, 0x68, 0x20, 0x0, 0x39 }
|
||||
};
|
||||
#include "tutor_movesets.h"
|
||||
#include "res/pokemon/tutor_movesets.h"
|
||||
|
||||
struct UnkStruct_ov5_021F7ED8_t {
|
||||
FieldSystem * unk_00;
|
||||
|
|
|
|||
154
tools/scripts/make_species_tables.py
Normal file
154
tools/scripts/make_species_tables.py
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import json
|
||||
import pathlib
|
||||
import sys
|
||||
from consts.moves import Move
|
||||
from consts.species import PokemonSpecies
|
||||
|
||||
|
||||
argparser = argparse.ArgumentParser(
|
||||
prog='make_species_tables.py',
|
||||
description='Creates generated .h files for species-specific data'
|
||||
)
|
||||
argparser.add_argument('-s', '--source-dir',
|
||||
required=True,
|
||||
help='Path to the source directory (res/pokemon)')
|
||||
argparser.add_argument('-o', '--output-dir',
|
||||
required=True,
|
||||
help='Path to the output directory (where the header files will be made)')
|
||||
args = argparser.parse_args()
|
||||
|
||||
source_dir = pathlib.Path(args.source_dir)
|
||||
output_dir = pathlib.Path(args.output_dir)
|
||||
|
||||
moveset = [
|
||||
Move.MOVE_DIVE,
|
||||
Move.MOVE_MUD_SLAP,
|
||||
Move.MOVE_FURY_CUTTER,
|
||||
Move.MOVE_ICY_WIND,
|
||||
Move.MOVE_ROLLOUT,
|
||||
Move.MOVE_THUNDER_PUNCH,
|
||||
Move.MOVE_FIRE_PUNCH,
|
||||
Move.MOVE_SUPERPOWER,
|
||||
Move.MOVE_ICE_PUNCH,
|
||||
Move.MOVE_IRON_HEAD,
|
||||
Move.MOVE_AQUA_TAIL,
|
||||
Move.MOVE_OMINOUS_WIND,
|
||||
Move.MOVE_GASTRO_ACID,
|
||||
Move.MOVE_SNORE,
|
||||
Move.MOVE_SPITE,
|
||||
Move.MOVE_AIR_CUTTER,
|
||||
Move.MOVE_HELPING_HAND,
|
||||
Move.MOVE_ENDEAVOR,
|
||||
Move.MOVE_OUTRAGE,
|
||||
Move.MOVE_ANCIENT_POWER,
|
||||
Move.MOVE_SYNTHESIS,
|
||||
Move.MOVE_SIGNAL_BEAM,
|
||||
Move.MOVE_ZEN_HEADBUTT,
|
||||
Move.MOVE_VACUUM_WAVE,
|
||||
Move.MOVE_EARTH_POWER,
|
||||
Move.MOVE_GUNK_SHOT,
|
||||
Move.MOVE_TWISTER,
|
||||
Move.MOVE_SEED_BOMB,
|
||||
Move.MOVE_IRON_DEFENSE,
|
||||
Move.MOVE_MAGNET_RISE,
|
||||
Move.MOVE_LAST_RESORT,
|
||||
Move.MOVE_BOUNCE,
|
||||
Move.MOVE_TRICK,
|
||||
Move.MOVE_HEAT_WAVE,
|
||||
Move.MOVE_KNOCK_OFF,
|
||||
Move.MOVE_SUCKER_PUNCH,
|
||||
Move.MOVE_SWIFT,
|
||||
Move.MOVE_UPROAR,
|
||||
]
|
||||
|
||||
NATIONAL_DEX_COUNT = 493
|
||||
|
||||
FORM_INDICES = {
|
||||
'DEOXYS' : {
|
||||
'ATTACK': NATIONAL_DEX_COUNT + 1,
|
||||
'DEFENSE': NATIONAL_DEX_COUNT + 2,
|
||||
'SPEED': NATIONAL_DEX_COUNT + 3,
|
||||
},
|
||||
'WORMADAM': {
|
||||
'SANDY': NATIONAL_DEX_COUNT + 4,
|
||||
'TRASH': NATIONAL_DEX_COUNT + 5,
|
||||
},
|
||||
'GIRATINA': {
|
||||
'ORIGIN': NATIONAL_DEX_COUNT + 6,
|
||||
},
|
||||
'SHAYMIN': {
|
||||
'SKY': NATIONAL_DEX_COUNT + 7,
|
||||
},
|
||||
'ROTOM': {
|
||||
'HEAT': NATIONAL_DEX_COUNT + 8,
|
||||
'WASH': NATIONAL_DEX_COUNT + 9,
|
||||
'FROST': NATIONAL_DEX_COUNT + 10,
|
||||
'FAN': NATIONAL_DEX_COUNT + 11,
|
||||
'MOW': NATIONAL_DEX_COUNT + 12,
|
||||
},
|
||||
}
|
||||
|
||||
species_sets = {}
|
||||
|
||||
for file_path in source_dir.glob("**/data.json"):
|
||||
with open(file_path, 'r') as data_file:
|
||||
species_data = json.load(data_file)
|
||||
|
||||
species_name = file_path.parent.stem.upper()
|
||||
|
||||
if species_name in ["000", "EGG", "BAD_EGG"]:
|
||||
continue
|
||||
|
||||
if file_path.parent.parent.stem == "forms":
|
||||
|
||||
form_name = species_name
|
||||
species_name = file_path.parent.parent.parent.stem.upper()
|
||||
|
||||
species_id = FORM_INDICES[species_name][form_name]
|
||||
else:
|
||||
species_id = PokemonSpecies[f"SPECIES_{species_name}"].value
|
||||
|
||||
|
||||
# this needs to be increased if more than 40 moves are added to this list
|
||||
byte_array = [0, 0, 0, 0, 0]
|
||||
|
||||
def set_bit(bit_num):
|
||||
byte_index = bit_num // 8
|
||||
bit_index = bit_num % 8
|
||||
|
||||
byte = byte_array[byte_index]
|
||||
byte_array[byte_index] = byte | (1 << bit_index)
|
||||
|
||||
for tutor_move in species_data["learnset"]["tutor"]:
|
||||
set_bit(moveset.index(Move[tutor_move]))
|
||||
|
||||
species_sets[species_id] = byte_array
|
||||
|
||||
|
||||
generated_disclaimer = [
|
||||
"// This file is GENERATED. Changes will be overwritten here on build\n",
|
||||
"// Check make_species_tables.py for reference\n",
|
||||
]
|
||||
|
||||
output_path = output_dir / "tutor_movesets.h"
|
||||
|
||||
with open(output_path, "w") as output_file:
|
||||
output_file.writelines(generated_disclaimer)
|
||||
output_file.write("#ifndef POKEPLATINUM_GENERATED_TUTOR_MOVESETS_H\n")
|
||||
output_file.write("#define POKEPLATINUM_GENERATED_TUTOR_MOVESETS_H\n")
|
||||
output_file.write("#include \"tutor_movesets.h\"\n")
|
||||
output_file.write("#include \"constants/forms.h\"\n")
|
||||
output_file.write("\n")
|
||||
output_file.write("const MovesetMask sTeachableMovesets[MOVESET_MAX] = {\n")
|
||||
|
||||
sorted_array = sorted(species_sets.items())
|
||||
|
||||
for key, value in sorted_array:
|
||||
struct = ''.join([f" 0x{i:X},".ljust(6) for i in value])
|
||||
|
||||
output_file.write(f" {{{struct.rstrip(' ,').ljust(29)} }},\n")
|
||||
|
||||
output_file.write("};\n")
|
||||
output_file.write("\n#endif\n")
|
||||
|
|
@ -6,3 +6,4 @@ make_script_bin_sh = find_program('make_script_bin.sh', native: true)
|
|||
make_pl_pokezukan_py = find_program('make_pl_pokezukan.py', native: true)
|
||||
make_shinzukan_py = find_program('make_shinzukan.py', native: true)
|
||||
make_pl_growtbl_py = find_program('make_pl_growtbl.py', native: true)
|
||||
make_species_tables_py = find_program('make_species_tables.py', native: true)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user