mirror of
https://github.com/pret/pokeruby.git
synced 2026-08-09 10:57:40 -05:00
merge
This commit is contained in:
commit
b3dc66655e
7033
asm/decoration.s
7033
asm/decoration.s
File diff suppressed because it is too large
Load Diff
|
|
@ -1,265 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
@ 83E9FD0
|
||||
.include "data/decorations.inc"
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC5E4:: @ 83EC5E4
|
||||
.4byte SecretBaseText_Desk
|
||||
.4byte SecretBaseText_Chair
|
||||
.4byte SecretBaseText_Plant
|
||||
.4byte SecretBaseText_Ornament
|
||||
.4byte SecretBaseText_Mat
|
||||
.4byte SecretBaseText_Poster
|
||||
.4byte SecretBaseText_Doll
|
||||
.4byte SecretBaseText_Cushion
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC604:: @ 83EC604
|
||||
.4byte SecretBaseText_Decorate, sub_80FF160
|
||||
.4byte SecretBaseText_PutAway, sub_8100A0C
|
||||
.4byte SecretBaseText_Toss, sub_8101700
|
||||
.4byte gUnknownText_Exit, gpu_pal_decompress_alloc_tag_and_upload
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC624:: @ 83EC624
|
||||
.4byte SecretBaseText_PutOutDecor
|
||||
.4byte SecretBaseText_StoreChosenDecor
|
||||
.4byte SecretBaseText_ThrowAwayDecor
|
||||
.4byte gMenuText_GoBackToPrev
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC634:: @ 83EC634
|
||||
.4byte sub_80FF5BC
|
||||
.4byte sub_80FF058
|
||||
.4byte sub_81017A0
|
||||
.4byte sub_80FF058
|
||||
.4byte sub_81017A0
|
||||
.4byte sub_80FF058
|
||||
.4byte sub_8109D04
|
||||
.4byte sub_80FF058
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC654:: @ 83EC654
|
||||
.2byte 0x6318, 0x739C, 0x7FFF
|
||||
|
||||
gUnknown_083EC65A:: @ 83EC65A
|
||||
.string "{PALETTE 13}{STR_VAR_1}$"
|
||||
|
||||
Unknown_3EC660: @ 83EC660
|
||||
.byte 0, 1, 2, 3
|
||||
|
||||
Unknown_3EC664: @ 83EC664
|
||||
.byte 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13
|
||||
|
||||
Unknown_3EC670: @ 83EC670
|
||||
.byte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
|
||||
|
||||
Unknown_3EC680: @ 83EC680
|
||||
.byte 0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21
|
||||
|
||||
Unknown_3EC68C: @ 83EC68C
|
||||
.byte 0, 1, 2, 3, 4, 5, 6, 7
|
||||
|
||||
Unknown_3EC694: @ 83EC694
|
||||
.byte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
|
||||
|
||||
Unknown_3EC6B4: @ 83EC6B4
|
||||
.byte 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45
|
||||
|
||||
Unknown_3EC6D8: @ 83EC6D8
|
||||
.byte 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29
|
||||
|
||||
Unknown_3EC6F0: @ 83EC6F0
|
||||
.byte 0, 0, 0, 0
|
||||
|
||||
Unknown_3EC6F4: @ 83EC6F4
|
||||
.byte 0, 0, 1, 1, 0, 0, 1, 1
|
||||
|
||||
Unknown_3EC6FC: @ 83EC6FC
|
||||
.byte 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2
|
||||
|
||||
Unknown_3EC708: @ 83EC708
|
||||
.byte 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 4, 4, 5, 5, 6, 6, 7, 7
|
||||
|
||||
Unknown_3EC728: @ 83EC728
|
||||
.byte 0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3
|
||||
|
||||
Unknown_3EC738: @ 83EC738
|
||||
.byte 0, 0, 0, 0, 1, 1, 1, 1
|
||||
|
||||
Unknown_3EC740: @ 83EC740
|
||||
.byte 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2
|
||||
|
||||
Unknown_3EC74C: @ 83EC74C
|
||||
.byte 0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3, 4, 4, 5, 5, 4, 4, 5, 5, 6, 6, 7, 7, 6, 6, 7, 7
|
||||
|
||||
Unknown_3EC76C: @ 83EC76C
|
||||
.byte 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 6, 6, 7, 7, 8, 8
|
||||
|
||||
Unknown_3EC790: @ 83EC790
|
||||
.byte 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5
|
||||
|
||||
Unknown_3EC7A8: @ 83EC7A8
|
||||
.byte 4, 5, 6, 7
|
||||
|
||||
Unknown_3EC7AC: @ 83EC7AC
|
||||
.byte 4, 5, 4, 5, 6, 7, 6, 7
|
||||
|
||||
Unknown_3EC7B4: @ 83EC7B4
|
||||
.byte 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7
|
||||
|
||||
Unknown_3EC7C0: @ 83EC7C0
|
||||
.byte 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7
|
||||
|
||||
Unknown_3EC7E0: @ 83EC7E0
|
||||
.byte 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7
|
||||
|
||||
Unknown_3EC7F0: @ 83EC7F0
|
||||
.byte 4, 5, 6, 7, 4, 5, 6, 7
|
||||
|
||||
Unknown_3EC7F8: @ 83EC7F8
|
||||
.byte 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7
|
||||
|
||||
Unknown_3EC804: @ 83EC804
|
||||
.byte 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7
|
||||
|
||||
Unknown_3EC824: @ 83EC824
|
||||
.byte 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7
|
||||
|
||||
Unknown_3EC848: @ 83EC848
|
||||
.byte 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC860:: @ 83EC860
|
||||
.4byte Unknown_3EC660, Unknown_3EC6F0, Unknown_3EC7A8, 0x4
|
||||
.4byte Unknown_3EC68C, Unknown_3EC6F4, Unknown_3EC7AC, 0x8
|
||||
.4byte Unknown_3EC664, Unknown_3EC6FC, Unknown_3EC7B4, 0xc
|
||||
.4byte Unknown_3EC694, Unknown_3EC708, Unknown_3EC7C0, 0x20
|
||||
.4byte Unknown_3EC670, Unknown_3EC728, Unknown_3EC7E0, 0x10
|
||||
.4byte Unknown_3EC68C, Unknown_3EC738, Unknown_3EC7F0, 0x8
|
||||
.4byte Unknown_3EC680, Unknown_3EC740, Unknown_3EC7F8, 0xc
|
||||
.4byte Unknown_3EC694, Unknown_3EC74C, Unknown_3EC804, 0x20
|
||||
.4byte Unknown_3EC6B4, Unknown_3EC76C, Unknown_3EC824, 0x24
|
||||
.4byte Unknown_3EC6D8, Unknown_3EC790, Unknown_3EC848, 0x18
|
||||
|
||||
gUnknown_083EC900:: @ 83EC900
|
||||
.byte 0, 1, 120, 78
|
||||
.byte 1, 2, -128, 78
|
||||
.byte 1, 3, -112, 86
|
||||
.byte 1, 3, -112, 70
|
||||
.byte 0, 2, -128, 70
|
||||
.byte 2, 2, 120, 70
|
||||
.byte 2, 3, -128, 86
|
||||
.byte 2, 3, -128, 54
|
||||
.byte 0, 3, -112, 70
|
||||
.byte 1, 3, -112, 70
|
||||
|
||||
.align 2
|
||||
gSpriteAnim_83EC928:: @ 83EC928
|
||||
obj_image_anim_frame 0, 0
|
||||
obj_image_anim_end
|
||||
|
||||
.align 2
|
||||
gSpriteAnimTable_83EC930:: @ 83EC930
|
||||
.4byte gSpriteAnim_83EC928
|
||||
|
||||
.align 2
|
||||
gSpriteImageTable_83EC934: @ 83EC934
|
||||
obj_frame_tiles gUnknown_02038900+0x84, 0x800
|
||||
|
||||
.align 2
|
||||
gSpriteTemplate_83EC93C:: @ 83EC93C
|
||||
spr_template 0xFFFF, 3000, 0x20391AC, gSpriteAnimTable_83EC930, gSpriteImageTable_83EC934, gDummySpriteAffineAnimTable, sub_81009A8
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC954:: @ 83EC954
|
||||
obj_pal gUnknown_02038900+0x884, 3000
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC95C:: @ 83EC95C
|
||||
.4byte sub_81000C4
|
||||
.4byte sub_810065C
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC964:: @ 83EC964
|
||||
.4byte sub_810026C
|
||||
.4byte sub_810065C
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC96C:: @ 83EC96C
|
||||
.4byte sub_80FFAB0
|
||||
.4byte sub_80FFB08
|
||||
.4byte sub_8100F88
|
||||
.4byte sub_8100FB4
|
||||
|
||||
gUnknown_083EC97C:: @ 83EC97C
|
||||
.byte 4, 4, 4, 4, 0, 3, 3, 0
|
||||
|
||||
gUnknown_083EC984:: @ 83EC984
|
||||
.byte 4, 4, 4, 4, 0, 4, 3, 0
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC98C::
|
||||
.incbin "graphics/unknown/83EC98C.gbapal"
|
||||
|
||||
.align 2
|
||||
Unknown_3EC9AC: @ 83EC9AC
|
||||
.incbin "graphics/unknown/83EC9AC.gbapal"
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC9CC:: @ 83EC9CC
|
||||
.4byte sub_810153C
|
||||
.4byte sub_8100EEC
|
||||
|
||||
.align 2
|
||||
gUnknown_083EC9D4:: @ 83EC9D4
|
||||
.4byte sub_8101590
|
||||
.4byte sub_8100EEC
|
||||
|
||||
.align 2
|
||||
gSpriteImage_83EC9DC:: @ 83EC9DC
|
||||
.incbin "graphics/unknown_sprites/83EC9DC.4bpp"
|
||||
|
||||
.align 2
|
||||
gUnknown_083ECA5C:: @ 83ECA5C
|
||||
obj_pal gUnknown_083EC98C, 0x0008
|
||||
|
||||
.align 2
|
||||
gUnknown_083ECA64:: @ 83ECA64
|
||||
obj_pal Unknown_3EC9AC, 0x0008
|
||||
|
||||
.align 2
|
||||
gOamData_83ECA6C:: @ 83ECA6C
|
||||
.2byte 0x0000
|
||||
.2byte 0x4000
|
||||
.2byte 0x0400
|
||||
|
||||
.align 2
|
||||
gSpriteAnim_83ECA74:: @ 83ECA74
|
||||
obj_image_anim_frame 0, 0
|
||||
obj_image_anim_end
|
||||
|
||||
.align 2
|
||||
gSpriteAnimTable_83ECA7C:: @ 83ECA7C
|
||||
.4byte gSpriteAnim_83ECA74
|
||||
|
||||
.align 2
|
||||
gSpriteImageTable_83ECA80:: @ 83ECA80
|
||||
obj_frame_tiles gSpriteImage_83EC9DC, 0x80
|
||||
|
||||
.align 2
|
||||
gSpriteTemplate_83ECA88:: @ 83ECA88
|
||||
spr_template 0xFFFF, 8, gOamData_83ECA6C, gSpriteAnimTable_83ECA7C, gSpriteImageTable_83ECA80, gDummySpriteAffineAnimTable, sub_8101698
|
||||
|
||||
.align 2
|
||||
gUnknown_083ECAA0:: @ 83ECAA0
|
||||
.4byte sub_8101848
|
||||
.4byte sub_80FED3C
|
||||
|
||||
@ XXX: what is this?
|
||||
.align 2
|
||||
.4byte 0x2000000
|
||||
2432
data/decorations.inc
2432
data/decorations.inc
File diff suppressed because it is too large
Load Diff
|
|
@ -107,9 +107,9 @@ struct SmallItemStruct
|
|||
struct BattleStruct /* 0x2000000 */
|
||||
{
|
||||
u8 filler0[0x15DDE];
|
||||
/*0x15DDE*/ u8 unk15DDE;
|
||||
/*0x15DDF*/ u8 unk15DDF;
|
||||
/*0x15DE0*/ u8 filler15DE0[0x23C]; // 0xAF off?
|
||||
/*0x15DDE*/ u8 unk15DDE;
|
||||
/*0x15DDF*/ u8 unk15DDF;
|
||||
/*0x15DE0*/ u8 filler15DE0[0x23C]; // 0xAF off?
|
||||
struct SmallBattleStruct1 unk;
|
||||
u8 filler1[0x68];
|
||||
/* 0x16089 */ u8 safariFleeRate;
|
||||
|
|
@ -148,27 +148,27 @@ extern struct AI_ThinkingStruct gAIThinkingSpace;
|
|||
|
||||
struct UnknownStruct11
|
||||
{
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
u8 unk3;
|
||||
u8 unk4;
|
||||
u8 unk5_0:1;
|
||||
u8 unk5_1:1;
|
||||
u16 unk6;
|
||||
u8 unk8[10];
|
||||
u8 unk12;
|
||||
u8 unk13;
|
||||
u8 unk14[10];
|
||||
u8 filler1E[2];
|
||||
u16 unk20;
|
||||
u16 unk22;
|
||||
u16 unk24;
|
||||
u16 unk26;
|
||||
u16 unk28;
|
||||
u8 unk2A[10];
|
||||
u8 filler34[2];
|
||||
u8 unk36[10];
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
u8 unk3;
|
||||
u8 unk4;
|
||||
u8 unk5_0:1;
|
||||
u8 unk5_1:1;
|
||||
u16 unk6;
|
||||
u8 unk8[10];
|
||||
u8 unk12;
|
||||
u8 unk13;
|
||||
u8 unk14[10];
|
||||
u8 filler1E[2];
|
||||
u16 unk20;
|
||||
u16 unk22;
|
||||
u16 unk24;
|
||||
u16 unk26;
|
||||
u16 unk28;
|
||||
u8 unk2A[10];
|
||||
u8 filler34[2];
|
||||
u8 unk36[10];
|
||||
};
|
||||
|
||||
#endif // GUARD_BATTLE_H
|
||||
|
|
|
|||
|
|
@ -8,10 +8,10 @@
|
|||
|
||||
enum
|
||||
{
|
||||
NORMAL_RANK,
|
||||
SUPER_RANK,
|
||||
HYPER_RANK,
|
||||
MASTER_RANK,
|
||||
NORMAL_RANK,
|
||||
SUPER_RANK,
|
||||
HYPER_RANK,
|
||||
MASTER_RANK,
|
||||
};
|
||||
|
||||
enum
|
||||
|
|
|
|||
371
include/decoration.h
Normal file → Executable file
371
include/decoration.h
Normal file → Executable file
|
|
@ -1,19 +1,376 @@
|
|||
#ifndef GUARD_DECORATION_H
|
||||
#define GUARD_DECORATION_H
|
||||
|
||||
enum DecoId {
|
||||
/*000*/ DECOR_NONE,
|
||||
/*001*/ DECOR_SMALL_DESK,
|
||||
/*002*/ DECOR_POKEMON_DESK,
|
||||
/*003*/ DECOR_HEAVY_DESK,
|
||||
/*004*/ DECOR_RAGGED_DESK,
|
||||
/*005*/ DECOR_COMFORT_DESK,
|
||||
/*006*/ DECOR_PRETTY_DESK,
|
||||
/*007*/ DECOR_BRICK_DESK,
|
||||
/*008*/ DECOR_CAMP_DESK,
|
||||
/*009*/ DECOR_HARD_DESK,
|
||||
/*010*/ DECOR_SMALL_CHAIR,
|
||||
/*011*/ DECOR_POKEMON_CHAIR,
|
||||
/*012*/ DECOR_HEAVY_CHAIR,
|
||||
/*013*/ DECOR_PRETTY_CHAIR,
|
||||
/*014*/ DECOR_COMFORT_CHAIR,
|
||||
/*015*/ DECOR_RAGGED_CHAIR,
|
||||
/*016*/ DECOR_BRICK_CHAIR,
|
||||
/*017*/ DECOR_CAMP_CHAIR,
|
||||
/*018*/ DECOR_HARD_CHAIR,
|
||||
/*019*/ DECOR_RED_PLANT,
|
||||
/*020*/ DECOR_TROPICAL_PLANT,
|
||||
/*021*/ DECOR_PRETTY_FLOWERS,
|
||||
/*022*/ DECOR_COLORFUL_PLANT,
|
||||
/*023*/ DECOR_BIG_PLANT,
|
||||
/*024*/ DECOR_GORGEOUS_PLANT,
|
||||
/*025*/ DECOR_RED_BRICK,
|
||||
/*026*/ DECOR_YELLOW_BRICK,
|
||||
/*027*/ DECOR_BLUE_BRICK,
|
||||
/*028*/ DECOR_RED_BALLOON,
|
||||
/*029*/ DECOR_BLUE_BALLOON,
|
||||
/*030*/ DECOR_YELLOW_BALLOON,
|
||||
/*031*/ DECOR_RED_TENT,
|
||||
/*032*/ DECOR_BLUE_TENT,
|
||||
/*033*/ DECOR_SOLID_BOARD,
|
||||
/*034*/ DECOR_SLIDE,
|
||||
/*035*/ DECOR_FENCE_LENGTH,
|
||||
/*036*/ DECOR_FENCE_WIDTH,
|
||||
/*037*/ DECOR_TIRE,
|
||||
/*038*/ DECOR_STAND,
|
||||
/*039*/ DECOR_MUD_BALL,
|
||||
/*040*/ DECOR_BREAKABLE_DOOR,
|
||||
/*041*/ DECOR_SAND_ORNAMENT,
|
||||
/*042*/ DECOR_SILVER_SHIELD,
|
||||
/*043*/ DECOR_GOLD_SHIELD,
|
||||
/*044*/ DECOR_GLASS_ORNAMENT,
|
||||
/*045*/ DECOR_TV,
|
||||
/*046*/ DECOR_ROUND_TV,
|
||||
/*047*/ DECOR_CUTE_TV,
|
||||
/*048*/ DECOR_GLITTER_MAT,
|
||||
/*049*/ DECOR_JUMP_MAT,
|
||||
/*050*/ DECOR_SPIN_MAT,
|
||||
/*051*/ DECOR_C_LOW_NOTE_MAT,
|
||||
/*052*/ DECOR_D_NOTE_MAT,
|
||||
/*053*/ DECOR_E_NOTE_MAT,
|
||||
/*054*/ DECOR_F_NOTE_MAT,
|
||||
/*055*/ DECOR_G_NOTE_MAT,
|
||||
/*056*/ DECOR_A_NOTE_MAT,
|
||||
/*057*/ DECOR_B_NOTE_MAT,
|
||||
/*058*/ DECOR_C_HIGH_NOTE_MAT,
|
||||
/*059*/ DECOR_SURF_MAT,
|
||||
/*060*/ DECOR_THUNDER_MAT,
|
||||
/*061*/ DECOR_FIRE_BLAST_MAT,
|
||||
/*062*/ DECOR_POWDER_SNOW_MAT,
|
||||
/*063*/ DECOR_ATTRACT_MAT,
|
||||
/*064*/ DECOR_FISSURE_MAT,
|
||||
/*065*/ DECOR_SPIKES_MAT,
|
||||
/*066*/ DECOR_BALL_POSTER,
|
||||
/*067*/ DECOR_GREEN_POSTER,
|
||||
/*068*/ DECOR_RED_POSTER,
|
||||
/*069*/ DECOR_BLUE_POSTER,
|
||||
/*070*/ DECOR_CUTE_POSTER,
|
||||
/*071*/ DECOR_PIKA_POSTER,
|
||||
/*072*/ DECOR_LONG_POSTER,
|
||||
/*073*/ DECOR_SEA_POSTER,
|
||||
/*074*/ DECOR_SKY_POSTER,
|
||||
/*075*/ DECOR_KISS_POSTER,
|
||||
/*076*/ DECOR_PICHU_DOLL,
|
||||
/*077*/ DECOR_PIKACHU_DOLL,
|
||||
/*078*/ DECOR_MARILL_DOLL,
|
||||
/*079*/ DECOR_TOGEPI_DOLL,
|
||||
/*080*/ DECOR_CYNDAQUIL_DOLL,
|
||||
/*081*/ DECOR_CHIKORITA_DOLL,
|
||||
/*082*/ DECOR_TOTODILE_DOLL,
|
||||
/*083*/ DECOR_JIGGLYPUFF_DOLL,
|
||||
/*084*/ DECOR_MEOWTH_DOLL,
|
||||
/*085*/ DECOR_CLEFAIRY_DOLL,
|
||||
/*086*/ DECOR_DITTO_DOLL,
|
||||
/*087*/ DECOR_SMOOCHUM_DOLL,
|
||||
/*088*/ DECOR_TREECKO_DOLL,
|
||||
/*089*/ DECOR_TORCHIC_DOLL,
|
||||
/*090*/ DECOR_MUDKIP_DOLL,
|
||||
/*091*/ DECOR_DUSKULL_DOLL,
|
||||
/*092*/ DECOR_WYNAUT_DOLL,
|
||||
/*093*/ DECOR_BALTOY_DOLL,
|
||||
/*094*/ DECOR_KECLEON_DOLL,
|
||||
/*095*/ DECOR_AZURILL_DOLL,
|
||||
/*096*/ DECOR_SKITTY_DOLL,
|
||||
/*097*/ DECOR_SWABLU_DOLL,
|
||||
/*098*/ DECOR_GULPIN_DOLL,
|
||||
/*099*/ DECOR_LOTAD_DOLL,
|
||||
/*100*/ DECOR_SEEDOT_DOLL,
|
||||
/*101*/ DECOR_PIKA_CUSHION,
|
||||
/*102*/ DECOR_ROUND_CUSHION,
|
||||
/*103*/ DECOR_KISS_CUSHION,
|
||||
/*104*/ DECOR_ZIGZAG_CUSHION,
|
||||
/*105*/ DECOR_SPIN_CUSHION,
|
||||
/*106*/ DECOR_DIAMOND_CUSHION,
|
||||
/*107*/ DECOR_BALL_CUSHION,
|
||||
/*108*/ DECOR_GRASS_CUSHION,
|
||||
/*109*/ DECOR_FIRE_CUSHION,
|
||||
/*110*/ DECOR_WATER_CUSHION,
|
||||
/*111*/ DECOR_SNORLAX_DOLL,
|
||||
/*112*/ DECOR_RHYDON_DOLL,
|
||||
/*113*/ DECOR_LAPRAS_DOLL,
|
||||
/*114*/ DECOR_VENUSAUR_DOLL,
|
||||
/*115*/ DECOR_CHARIZARD_DOLL,
|
||||
/*116*/ DECOR_BLASTOISE_DOLL,
|
||||
/*117*/ DECOR_WAILMER_DOLL,
|
||||
/*118*/ DECOR_REGIROCK_DOLL,
|
||||
/*119*/ DECOR_REGICE_DOLL,
|
||||
/*120*/ DECOR_REGISTEEL_DOLL
|
||||
};
|
||||
|
||||
enum DecorPerm {
|
||||
/*
|
||||
* The nomenclature here describes collision and placement permissions, in that order.
|
||||
*/
|
||||
DECORPERM_SOLID_FLOOR,
|
||||
DECORPERM_PASS_FLOOR,
|
||||
DECORPERM_BEHIND_FLOOR,
|
||||
DECORPERM_NA_WALL,
|
||||
DECORPERM_SOLID_MAT
|
||||
};
|
||||
|
||||
enum DecorShape {
|
||||
/*
|
||||
* Width-x-height
|
||||
*/
|
||||
DECORSHAPE_1x1,
|
||||
DECORSHAPE_2x1,
|
||||
DECORSHAPE_3x1, // unused
|
||||
DECORSHAPE_4x2,
|
||||
DECORSHAPE_2x2,
|
||||
DECORSHAPE_1x2,
|
||||
DECORSHAPE_1x3, // unused
|
||||
DECORSHAPE_2x4,
|
||||
DECORSHAPE_3x3,
|
||||
DECORSHAPE_3x2
|
||||
};
|
||||
|
||||
enum DecoCat {
|
||||
/*
|
||||
* In which category you can find the decoration in the PC.
|
||||
*/
|
||||
/*0*/ DECORCAT_DESK,
|
||||
/*1*/ DECORCAT_CHAIR,
|
||||
/*2*/ DECORCAT_PLANT,
|
||||
/*3*/ DECORCAT_ORNAMENT,
|
||||
/*4*/ DECORCAT_MAT,
|
||||
/*5*/ DECORCAT_POSTER,
|
||||
/*6*/ DECORCAT_DOLL,
|
||||
/*7*/ DECORCAT_CUSHION
|
||||
};
|
||||
|
||||
struct Decoration
|
||||
{
|
||||
/*0x00*/ u8 id;
|
||||
/*0x01*/ u8 name[16];
|
||||
/*0x11*/ u8 decor_field_11;
|
||||
/*0x12*/ u8 decor_field_12;
|
||||
/*0x13*/ u8 decor_field_13;
|
||||
/*0x11*/ u8 permission;
|
||||
/*0x12*/ u8 shape;
|
||||
/*0x13*/ u8 category;
|
||||
/*0x14*/ u16 price;
|
||||
/*0x18*/ u8 *description;
|
||||
/*0x1c*/ u16 *tiles;
|
||||
/*0x18*/ const u8 *description;
|
||||
/*0x1c*/ const u16 *tiles;
|
||||
};
|
||||
|
||||
extern struct Decoration gDecorations[0x77];
|
||||
extern void sub_80FF394(u16 unkr0, u16 unkr1, u16 unkr2);
|
||||
struct DecoPCPointers
|
||||
{
|
||||
/* 0x00 */ u8 *items;
|
||||
/* 0x04 */ u8 *pos;
|
||||
/* 0x08 */ u8 size;
|
||||
/* 0x09 */ u8 isPlayerRoom;
|
||||
};
|
||||
|
||||
struct DecorationInventory
|
||||
{
|
||||
u8 *items;
|
||||
u8 size;
|
||||
};
|
||||
|
||||
struct UnkStruct_803EC860
|
||||
{
|
||||
const u8 *tiles;
|
||||
const u8 *y;
|
||||
const u8 *x;
|
||||
u8 size;
|
||||
};
|
||||
|
||||
extern const struct UnkStruct_803EC860 gUnknown_083EC860[];
|
||||
|
||||
extern u8 ewram[];
|
||||
#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000))
|
||||
|
||||
struct UnkStruct_02038900
|
||||
{
|
||||
/*0x000; 0x02038900*/ const struct Decoration *decoration;
|
||||
/*0x004; 0x02038904*/ u16 tiles[0x40];
|
||||
/*0x084; 0x02038984*/ u8 image[0x800];
|
||||
/*0x884; 0x02039184*/ u16 palette[16];
|
||||
};
|
||||
|
||||
struct UnkStruct_083EC900
|
||||
{
|
||||
u8 shape;
|
||||
u8 size;
|
||||
u8 x;
|
||||
u8 y;
|
||||
};
|
||||
|
||||
struct UnkStruct_020391B4
|
||||
{
|
||||
u8 decorId;
|
||||
u8 width;
|
||||
u8 height;
|
||||
u16 flagId;
|
||||
};
|
||||
|
||||
extern const struct UnkStruct_083EC900 gUnknown_083EC900[];
|
||||
extern const struct SpritePalette gUnknown_083EC954;
|
||||
extern const struct SpritePalette gUnknown_083ECA5C;
|
||||
extern const struct SpritePalette gUnknown_083ECA64;
|
||||
extern const struct SpriteTemplate gSpriteTemplate_83EC93C;
|
||||
extern const struct SpriteTemplate gSpriteTemplate_83ECA88;
|
||||
|
||||
extern const struct Decoration gDecorations[];
|
||||
extern struct UnkStruct_02038900 gUnknown_02038900;
|
||||
extern u8 *gUnknown_020388D0;
|
||||
extern u8 gUnknown_081A2F7B[];
|
||||
extern u8 gUnknown_081A2F8A[];
|
||||
extern struct OamData gUnknown_020391AC;
|
||||
|
||||
extern u8 gUnknown_020388D4;
|
||||
extern u8 gUnknown_020388D5;
|
||||
extern u8 gUnknown_020388F2;
|
||||
extern u8 gUnknown_020388F3;
|
||||
extern u8 gUnknown_020388F4;
|
||||
extern u8 gUnknown_020388F5;
|
||||
extern u8 gUnknown_020388F6;
|
||||
extern u8 gUnknown_020388D6[16];
|
||||
extern u8 gUnknown_020388E6[12];
|
||||
extern u16 gSpecialVar_0x8004;
|
||||
extern u16 gSpecialVar_0x8005;
|
||||
extern u16 gSpecialVar_0x8006;
|
||||
extern u16 gSpecialVar_0x8007;
|
||||
extern u16 gUnknown_020391A4;
|
||||
extern u16 gUnknown_020391A6;
|
||||
extern u8 gUnknown_020391A8;
|
||||
extern u8 gUnknown_020391A9;
|
||||
extern u8 gUnknown_020391AA;
|
||||
extern u8 gUnknown_02039234;
|
||||
extern void (*gUnknown_0300485C)(void);
|
||||
extern const struct YesNoFuncTable gUnknown_083EC96C[];
|
||||
extern struct UnkStruct_020391B4 gUnknown_020391B4[16];
|
||||
|
||||
extern const u16 gUnknown_083EC654[3];
|
||||
extern const struct DecorationInventory gDecorationInventories[];
|
||||
extern const u8 *const gUnknown_083EC5E4[];
|
||||
extern const u8 *const gUnknown_083EC624[];
|
||||
extern u8 gUnknown_020388F7[];
|
||||
extern const struct MenuAction2 gUnknown_083EC604[];
|
||||
extern const struct MenuAction3 gUnknown_083EC634[];
|
||||
extern const u8 gUnknown_083EC65A[];
|
||||
extern const u8 gUnknown_083EC97C[];
|
||||
extern const u8 gUnknown_083EC984[];
|
||||
extern void sub_80B3068(u8); // src/shop
|
||||
extern const struct YesNoFuncTable gUnknown_083EC95C;
|
||||
extern const struct YesNoFuncTable gUnknown_083EC964;
|
||||
extern const struct YesNoFuncTable gUnknown_083EC9CC;
|
||||
extern const struct YesNoFuncTable gUnknown_083EC9D4;
|
||||
extern const struct YesNoFuncTable gUnknown_083ECAA0;
|
||||
|
||||
extern u8 sub_8134194(u8); // src/decoration_inventory
|
||||
extern bool8 sub_81341D4(void); // src/decoration_inventory
|
||||
extern void sub_8134104(u8); // src/decoration_inventory
|
||||
extern bool8 sub_807D770(void);
|
||||
extern void sub_80F944C(void); // src/menu_helpers
|
||||
extern void sub_80F9480(u8 *, u8); // src/menu_helpers
|
||||
extern void sub_80F94A4(u8, u8 *, u8, s16); // src/menu_helpers
|
||||
extern void sub_80F94F8(u8 *); // src/menu_helpers
|
||||
extern void sub_80F9520(u8 *, u8); // src/menu_helpers
|
||||
extern void DestroyVerticalScrollIndicator(u8); // src/menu_helpers
|
||||
extern void CreateVerticalScrollIndicators(u8, u8, u8); // src/menu_helpers
|
||||
extern void LoadScrollIndicatorPalette(void); // src/menu_helpers
|
||||
extern void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); // src/menu_helpers
|
||||
extern void BuyMenuFreeMemory(void); // src/menu_helpers
|
||||
extern void sub_8109DAC(u8); // src/trader
|
||||
extern void ReshowPlayerPC(u8); // src/player_pc
|
||||
|
||||
void sub_80FE2B4(void);
|
||||
void Task_DecorationPCProcessMenuInput(u8);
|
||||
void sub_80FE394(void);
|
||||
void gpu_pal_decompress_alloc_tag_and_upload(u8);
|
||||
void sub_80FE5AC(u8);
|
||||
void sub_80FE604(u8);
|
||||
void sub_80FE728(u8);
|
||||
void sub_80FE758(u8);
|
||||
void sub_80FE868(u8);
|
||||
void sub_80FE948(u8);
|
||||
void sub_80FEABC(u8, u8);
|
||||
void sub_80FEC94(u8);
|
||||
void sub_80FECB8(u8);
|
||||
void sub_80FECE0(u8);
|
||||
void sub_80FEF50(u8);
|
||||
void sub_80FF394(u16, u16, u16);
|
||||
void sub_80FF6AC(u8);
|
||||
void sub_80FF960(u8);
|
||||
void AddDecorationIconObjectFromFieldObject(struct UnkStruct_02038900 *, u8);
|
||||
void SetUpPlacingDecorationPlayerAvatar(u8, struct UnkStruct_02038900 *);
|
||||
void sub_8100038(u8);
|
||||
void sub_81000A0(u8);
|
||||
void sub_8100174(u8);
|
||||
void sub_8100248(u8);
|
||||
void sub_810028C(u8);
|
||||
void c1_overworld_prev_quest(u8);
|
||||
void sub_8100364(void);
|
||||
void sub_810045C(void);
|
||||
void sub_810065C(u8);
|
||||
void sub_81006A8(u8);
|
||||
void sub_81006D0(struct UnkStruct_02038900 *);
|
||||
void sub_810070C(u16 *, u16);
|
||||
void sub_8100874(struct UnkStruct_02038900 *);
|
||||
void sub_81008BC(struct UnkStruct_02038900 *);
|
||||
void sub_8100930(u8);
|
||||
void sub_81009A8(struct Sprite *);
|
||||
void sub_81009C0(struct Sprite *);
|
||||
bool8 sub_8100D38(u8);
|
||||
void sub_8100E70(u8);
|
||||
void sub_8100EEC(u8);
|
||||
void sub_8101024(u8);
|
||||
void sub_81010F0(u8);
|
||||
void sub_8101460(u8);
|
||||
void sub_8101518(u8);
|
||||
void sub_81015B0(u8);
|
||||
void sub_81015E0(u8);
|
||||
void sub_810156C(u8);
|
||||
void sub_8101678(void);
|
||||
void sub_8101698(struct Sprite *);
|
||||
void sub_81016C8(void);
|
||||
void sub_81016F4(void);
|
||||
void sub_8101824(u8);
|
||||
void sub_8109A30(u8);
|
||||
|
||||
void sub_80FF160(u8);
|
||||
void sub_80FF5BC(u8);
|
||||
void sub_80FF058(u8);
|
||||
void sub_8100A0C(u8);
|
||||
void sub_8101700(u8);
|
||||
void sub_81017A0(u8);
|
||||
void sub_8109D04(u8);
|
||||
|
||||
void sub_80FED3C(u8);
|
||||
void sub_80FFAB0(u8);
|
||||
void sub_80FFB08(u8);
|
||||
void sub_81000C4(u8);
|
||||
void sub_810026C(u8);
|
||||
void sub_8100F88(u8);
|
||||
void sub_8100FB4(u8);
|
||||
void sub_810153C(u8);
|
||||
void sub_8101590(u8);
|
||||
void sub_8101848(u8);
|
||||
|
||||
#endif // GUARD_DECORATION_H
|
||||
|
|
|
|||
|
|
@ -7,5 +7,7 @@ struct MapHeader *mapconnection_get_mapheader(struct MapConnection *connection);
|
|||
int GetMapBorderIdAt(int x, int y);
|
||||
extern bool8 IsMetatileDirectionallyImpassable(struct MapObject *mapObject, s16 x, s16 y, u8 direction);
|
||||
int CanCameraMoveInDirection(int direction);
|
||||
u32 GetBehaviorByMetatileId(u16 metatile);
|
||||
void MapGridSetMetatileEntryAt(int, int, u16);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -639,6 +639,8 @@
|
|||
#define KEY_INTR_ENABLE 0x0400
|
||||
#define KEY_OR_INTR 0x0000
|
||||
#define KEY_AND_INTR 0x8000
|
||||
#define DPAD_ANY 0x00F0
|
||||
#define JOY_EXCL_DPAD 0x030F
|
||||
|
||||
// interrupt flags
|
||||
#define INTR_FLAG_VBLANK (1 << 0)
|
||||
|
|
|
|||
|
|
@ -44,23 +44,23 @@ typedef void (*TilesetCB)(void);
|
|||
|
||||
struct Tileset
|
||||
{
|
||||
bool8 isCompressed;
|
||||
bool8 isSecondary;
|
||||
void *tiles;
|
||||
void *palettes;
|
||||
void *metatiles;
|
||||
void *metatileAttributes;
|
||||
TilesetCB callback;
|
||||
/*0x00*/ bool8 isCompressed;
|
||||
/*0x01*/ bool8 isSecondary;
|
||||
/*0x04*/ void *tiles;
|
||||
/*0x08*/ void *palettes;
|
||||
/*0x0c*/ void *metatiles;
|
||||
/*0x10*/ void *metatileAttributes;
|
||||
/*0x14*/ TilesetCB callback;
|
||||
};
|
||||
|
||||
struct MapData
|
||||
{
|
||||
s32 width;
|
||||
s32 height;
|
||||
u16 *border;
|
||||
u16 *map;
|
||||
struct Tileset *primaryTileset;
|
||||
struct Tileset *secondaryTileset;
|
||||
/*0x00*/ s32 width;
|
||||
/*0x04*/ s32 height;
|
||||
/*0x08*/ u16 *border;
|
||||
/*0x0c*/ u16 *map;
|
||||
/*0x10*/ struct Tileset *primaryTileset;
|
||||
/*0x14*/ struct Tileset *secondaryTileset;
|
||||
};
|
||||
|
||||
struct BackupMapData
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ struct SecretBaseRecord
|
|||
/*0x1A09*/ u8 sbr_field_1_0:4;
|
||||
/*0x1A09*/ u8 gender:1;
|
||||
/*0x1A09*/ u8 sbr_field_1_5:1;
|
||||
/*0x1A09*/ u8 sbr_field_1_6:2;
|
||||
/*0x1A09*/ u8 sbr_field_1_6:2;
|
||||
/*0x1A0A*/ u8 sbr_field_2[7]; // 0xFF bytes?
|
||||
/*0x1A12*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
|
||||
/*0x1A16*/ u16 sbr_field_e;
|
||||
|
|
@ -219,7 +219,7 @@ struct TVShowRecentHappenings {
|
|||
/*0x00*/ u8 var00;
|
||||
/*0x01*/ u8 var01;
|
||||
/*0x02*/ u16 var02;
|
||||
/*0x04*/ u16 var04[6];
|
||||
/*0x04*/ u16 var04[6];
|
||||
/*0x10*/ u8 playerName[8];
|
||||
/*0x18*/ u8 language;
|
||||
/*0x19*/ u8 pad19[10];
|
||||
|
|
@ -446,9 +446,9 @@ typedef union SB_Struct {
|
|||
// size is 0x198
|
||||
|
||||
struct UnknownSaveStruct2ABC {
|
||||
u8 val0;
|
||||
u8 val1;
|
||||
u16 val2;
|
||||
u8 val0;
|
||||
u8 val1;
|
||||
u16 val2;
|
||||
};
|
||||
|
||||
struct GabbyAndTyData {
|
||||
|
|
@ -473,7 +473,7 @@ struct GabbyAndTyData {
|
|||
};
|
||||
|
||||
struct RecordMixing_UnknownStruct {
|
||||
u8 data[0x38];
|
||||
u8 data[0x38];
|
||||
};
|
||||
|
||||
struct SaveBlock1 /* 0x02025734 */
|
||||
|
|
@ -525,7 +525,7 @@ struct SaveBlock1 /* 0x02025734 */
|
|||
/*0x2704*/ u8 decorDoll[40];
|
||||
/*0x272C*/ u8 decorCushion[10];
|
||||
/*0x2736*/ u8 padding_2736[2];
|
||||
/*0x2738*/ TVShow tvShows[25];
|
||||
/*0x2738*/ TVShow tvShows[25];
|
||||
/*0x2ABC*/ struct UnknownSaveStruct2ABC unknown_2ABC[16];
|
||||
/*0x2AFC*/ u16 outbreakPokemonSpecies;
|
||||
/*0x2AFE*/ u8 outbreakLocationMapNum;
|
||||
|
|
@ -592,8 +592,8 @@ struct Pokedex
|
|||
struct SaveBlock2_Sub
|
||||
{
|
||||
/*0x0000, 0x00A4*/ u8 filler_000[0x3D8];
|
||||
/*0x03D8, 0x0480*/ u16 var_480;
|
||||
/*0x03DA, 0x0482*/ u16 var_482;
|
||||
/*0x03D8, 0x0480*/ u16 var_480;
|
||||
/*0x03DA, 0x0482*/ u16 var_482;
|
||||
/*0x03DC, 0x0484*/ u8 filler_3DC[0xD1];
|
||||
/*0x04AD, 0x0555*/ u8 var_4AD;
|
||||
/*0x04AE, 0x0556*/ u8 var_4AE;
|
||||
|
|
|
|||
758
include/items.h
758
include/items.h
|
|
@ -2,387 +2,387 @@
|
|||
#define GUARD_ITEMS_H
|
||||
|
||||
enum {
|
||||
ITEM_NONE, // 0x000
|
||||
ITEM_MASTER_BALL, // 0x001
|
||||
ITEM_ULTRA_BALL, // 0x002
|
||||
ITEM_GREAT_BALL, // 0x003
|
||||
ITEM_POKE_BALL, // 0x004
|
||||
ITEM_SAFARI_BALL, // 0x005
|
||||
ITEM_NET_BALL, // 0x006
|
||||
ITEM_DIVE_BALL, // 0x007
|
||||
ITEM_NEST_BALL, // 0x008
|
||||
ITEM_REPEAT_BALL, // 0x009
|
||||
ITEM_TIMER_BALL, // 0x00a
|
||||
ITEM_LUXURY_BALL, // 0x00b
|
||||
ITEM_PREMIER_BALL, // 0x00c
|
||||
ITEM_POTION, // 0x00d
|
||||
ITEM_ANTIDOTE, // 0x00e
|
||||
ITEM_BURN_HEAL, // 0x00f
|
||||
ITEM_ICE_HEAL, // 0x010
|
||||
ITEM_AWAKENING, // 0x011
|
||||
ITEM_PARALYZE_HEAL, // 0x012
|
||||
ITEM_FULL_RESTORE, // 0x013
|
||||
ITEM_MAX_POTION, // 0x014
|
||||
ITEM_HYPER_POTION, // 0x015
|
||||
ITEM_SUPER_POTION, // 0x016
|
||||
ITEM_FULL_HEAL, // 0x017
|
||||
ITEM_REVIVE, // 0x018
|
||||
ITEM_MAX_REVIVE, // 0x019
|
||||
ITEM_FRESH_WATER, // 0x01a
|
||||
ITEM_SODA_POP, // 0x01b
|
||||
ITEM_LEMONADE, // 0x01c
|
||||
ITEM_MOOMOO_MILK, // 0x01d
|
||||
ITEM_ENERGY_POWDER, // 0x01e
|
||||
ITEM_ENERGY_ROOT, // 0x01f
|
||||
ITEM_HEAL_POWDER, // 0x020
|
||||
ITEM_REVIVAL_HERB, // 0x021
|
||||
ITEM_ETHER, // 0x022
|
||||
ITEM_MAX_ETHER, // 0x023
|
||||
ITEM_ELIXIR, // 0x024
|
||||
ITEM_MAX_ELIXIR, // 0x025
|
||||
ITEM_LAVA_COOKIE, // 0x026
|
||||
ITEM_BLUE_FLUTE, // 0x027
|
||||
ITEM_YELLOW_FLUTE, // 0x028
|
||||
ITEM_RED_FLUTE, // 0x029
|
||||
ITEM_BLACK_FLUTE, // 0x02a
|
||||
ITEM_WHITE_FLUTE, // 0x02b
|
||||
ITEM_BERRY_JUICE, // 0x02c
|
||||
ITEM_SACRED_ASH, // 0x02d
|
||||
ITEM_SHOAL_SALT, // 0x02e
|
||||
ITEM_SHOAL_SHELL, // 0x02f
|
||||
ITEM_RED_SHARD, // 0x030
|
||||
ITEM_BLUE_SHARD, // 0x031
|
||||
ITEM_YELLOW_SHARD, // 0x032
|
||||
ITEM_GREEN_SHARD, // 0x033
|
||||
ITEM_034,
|
||||
ITEM_035,
|
||||
ITEM_036,
|
||||
ITEM_037,
|
||||
ITEM_038,
|
||||
ITEM_039,
|
||||
ITEM_03A,
|
||||
ITEM_03B,
|
||||
ITEM_03C,
|
||||
ITEM_03D,
|
||||
ITEM_03E,
|
||||
ITEM_HP_UP, // 0x03f
|
||||
ITEM_PROTEIN, // 0x040
|
||||
ITEM_IRON, // 0x041
|
||||
ITEM_CARBOS, // 0x042
|
||||
ITEM_CALCIUM, // 0x043
|
||||
ITEM_RARE_CANDY, // 0x044
|
||||
ITEM_PP_UP, // 0x045
|
||||
ITEM_ZINC, // 0x046
|
||||
ITEM_PP_MAX, // 0x047
|
||||
ITEM_048,
|
||||
ITEM_GUARD_SPEC, // 0x049
|
||||
ITEM_DIRE_HIT, // 0x04a
|
||||
ITEM_X_ATTACK, // 0x04b
|
||||
ITEM_X_DEFEND, // 0x04c
|
||||
ITEM_X_SPEED, // 0x04d
|
||||
ITEM_X_ACCURACY, // 0x04e
|
||||
ITEM_X_SPECIAL, // 0x04f
|
||||
ITEM_POKE_DOLL, // 0x050
|
||||
ITEM_FLUFFY_TAIL, // 0x051
|
||||
ITEM_052,
|
||||
ITEM_SUPER_REPEL, // 0x053
|
||||
ITEM_MAX_REPEL, // 0x054
|
||||
ITEM_ESCAPE_ROPE, // 0x055
|
||||
ITEM_REPEL, // 0x056
|
||||
ITEM_057,
|
||||
ITEM_058,
|
||||
ITEM_059,
|
||||
ITEM_05A,
|
||||
ITEM_05B,
|
||||
ITEM_05C,
|
||||
ITEM_SUN_STONE, // 0x05d
|
||||
ITEM_MOON_STONE, // 0x05e
|
||||
ITEM_FIRE_STONE, // 0x05f
|
||||
ITEM_THUNDER_STONE, // 0x060
|
||||
ITEM_WATER_STONE, // 0x061
|
||||
ITEM_LEAF_STONE, // 0x062
|
||||
ITEM_063,
|
||||
ITEM_064,
|
||||
ITEM_065,
|
||||
ITEM_066,
|
||||
ITEM_TINY_MUSHROOM, // 0x067
|
||||
ITEM_BIG_MUSHROOM, // 0x068
|
||||
ITEM_069,
|
||||
ITEM_PEARL, // 0x06a
|
||||
ITEM_BIG_PEARL, // 0x06b
|
||||
ITEM_STARDUST, // 0x06c
|
||||
ITEM_STAR_PIECE, // 0x06d
|
||||
ITEM_NUGGET, // 0x06e
|
||||
ITEM_HEART_SCALE, // 0x06f
|
||||
ITEM_070,
|
||||
ITEM_071,
|
||||
ITEM_072,
|
||||
ITEM_073,
|
||||
ITEM_074,
|
||||
ITEM_075,
|
||||
ITEM_076,
|
||||
ITEM_077,
|
||||
ITEM_078,
|
||||
ITEM_ORANGE_MAIL, // 0x079
|
||||
ITEM_HARBOR_MAIL, // 0x07a
|
||||
ITEM_GLITTER_MAIL, // 0x07b
|
||||
ITEM_MECH_MAIL, // 0x07c
|
||||
ITEM_WOOD_MAIL, // 0x07d
|
||||
ITEM_WAVE_MAIL, // 0x07e
|
||||
ITEM_BEAD_MAIL, // 0x07f
|
||||
ITEM_SHADOW_MAIL, // 0x080
|
||||
ITEM_TROPIC_MAIL, // 0x081
|
||||
ITEM_DREAM_MAIL, // 0x082
|
||||
ITEM_FAB_MAIL, // 0x083
|
||||
ITEM_RETRO_MAIL, // 0x084
|
||||
ITEM_CHERI_BERRY, // 0x085
|
||||
ITEM_CHESTO_BERRY, // 0x086
|
||||
ITEM_PECHA_BERRY, // 0x087
|
||||
ITEM_RAWST_BERRY, // 0x088
|
||||
ITEM_ASPEAR_BERRY, // 0x089
|
||||
ITEM_LEPPA_BERRY, // 0x08a
|
||||
ITEM_ORAN_BERRY, // 0x08b
|
||||
ITEM_PERSIM_BERRY, // 0x08c
|
||||
ITEM_LUM_BERRY, // 0x08d
|
||||
ITEM_SITRUS_BERRY, // 0x08e
|
||||
ITEM_FIGY_BERRY, // 0x08f
|
||||
ITEM_WIKI_BERRY, // 0x090
|
||||
ITEM_MAGO_BERRY, // 0x091
|
||||
ITEM_AGUAV_BERRY, // 0x092
|
||||
ITEM_IAPAPA_BERRY, // 0x093
|
||||
ITEM_RAZZ_BERRY, // 0x094
|
||||
ITEM_BLUK_BERRY, // 0x095
|
||||
ITEM_NANAB_BERRY, // 0x096
|
||||
ITEM_WEPEAR_BERRY, // 0x097
|
||||
ITEM_PINAP_BERRY, // 0x098
|
||||
ITEM_POMEG_BERRY, // 0x099
|
||||
ITEM_KELPSY_BERRY, // 0x09a
|
||||
ITEM_QUALOT_BERRY, // 0x09b
|
||||
ITEM_HONDEW_BERRY, // 0x09c
|
||||
ITEM_GREPA_BERRY, // 0x09d
|
||||
ITEM_TAMATO_BERRY, // 0x09e
|
||||
ITEM_CORNN_BERRY, // 0x09f
|
||||
ITEM_MAGOST_BERRY, // 0x0a0
|
||||
ITEM_RABUTA_BERRY, // 0x0a1
|
||||
ITEM_NOMEL_BERRY, // 0x0a2
|
||||
ITEM_SPELON_BERRY, // 0x0a3
|
||||
ITEM_PAMTRE_BERRY, // 0x0a4
|
||||
ITEM_WATMEL_BERRY, // 0x0a5
|
||||
ITEM_DURIN_BERRY, // 0x0a6
|
||||
ITEM_BELUE_BERRY, // 0x0a7
|
||||
ITEM_LIECHI_BERRY, // 0x0a8
|
||||
ITEM_GANLON_BERRY, // 0x0a9
|
||||
ITEM_SALAC_BERRY, // 0x0aa
|
||||
ITEM_PETAYA_BERRY, // 0x0ab
|
||||
ITEM_APICOT_BERRY, // 0x0ac
|
||||
ITEM_LANSAT_BERRY, // 0x0ad
|
||||
ITEM_STARF_BERRY, // 0x0ae
|
||||
ITEM_ENIGMA_BERRY, // 0x0af
|
||||
ITEM_0B0,
|
||||
ITEM_0B1,
|
||||
ITEM_0B2,
|
||||
ITEM_BRIGHT_POWDER, // 0x0b3
|
||||
ITEM_WHITE_HERB, // 0x0b4
|
||||
ITEM_MACHO_BRACE, // 0x0b5
|
||||
ITEM_EXP_SHARE, // 0x0b6
|
||||
ITEM_QUICK_CLAW, // 0x0b7
|
||||
ITEM_SOOTHE_BELL, // 0x0b8
|
||||
ITEM_MENTAL_HERB, // 0x0b9
|
||||
ITEM_CHOICE_BAND, // 0x0ba
|
||||
ITEM_KINGS_ROCK, // 0x0bb
|
||||
ITEM_SILVER_POWDER, // 0x0bc
|
||||
ITEM_AMULET_COIN, // 0x0bd
|
||||
ITEM_CLEANSE_TAG, // 0x0be
|
||||
ITEM_SOUL_DEW, // 0x0bf
|
||||
ITEM_DEEP_SEA_TOOTH, // 0x0c0
|
||||
ITEM_DEEP_SEA_SCALE, // 0x0c1
|
||||
ITEM_SMOKE_BALL, // 0x0c2
|
||||
ITEM_EVERSTONE, // 0x0c3
|
||||
ITEM_FOCUS_BAND, // 0x0c4
|
||||
ITEM_LUCKY_EGG, // 0x0c5
|
||||
ITEM_SCOPE_LENS, // 0x0c6
|
||||
ITEM_METAL_COAT, // 0x0c7
|
||||
ITEM_LEFTOVERS, // 0x0c8
|
||||
ITEM_DRAGON_SCALE, // 0x0c9
|
||||
ITEM_LIGHT_BALL, // 0x0ca
|
||||
ITEM_SOFT_SAND, // 0x0cb
|
||||
ITEM_HARD_STONE, // 0x0cc
|
||||
ITEM_MIRACLE_SEED, // 0x0cd
|
||||
ITEM_BLACK_GLASSES, // 0x0ce
|
||||
ITEM_BLACK_BELT, // 0x0cf
|
||||
ITEM_MAGNET, // 0x0d0
|
||||
ITEM_MYSTIC_WATER, // 0x0d1
|
||||
ITEM_SHARP_BEAK, // 0x0d2
|
||||
ITEM_POISON_BARB, // 0x0d3
|
||||
ITEM_NEVER_MELT_ICE, // 0x0d4
|
||||
ITEM_SPELL_TAG, // 0x0d5
|
||||
ITEM_TWISTED_SPOON, // 0x0d6
|
||||
ITEM_CHARCOAL, // 0x0d7
|
||||
ITEM_DRAGON_FANG, // 0x0d8
|
||||
ITEM_SILK_SCARF, // 0x0d9
|
||||
ITEM_UP_GRADE, // 0x0da
|
||||
ITEM_SHELL_BELL, // 0x0db
|
||||
ITEM_SEA_INCENSE, // 0x0dc
|
||||
ITEM_LAX_INCENSE, // 0x0dd
|
||||
ITEM_LUCKY_PUNCH, // 0x0de
|
||||
ITEM_METAL_POWDER, // 0x0df
|
||||
ITEM_THICK_CLUB, // 0x0e0
|
||||
ITEM_STICK, // 0x0e1
|
||||
ITEM_0E2,
|
||||
ITEM_0E3,
|
||||
ITEM_0E4,
|
||||
ITEM_0E5,
|
||||
ITEM_0E6,
|
||||
ITEM_0E7,
|
||||
ITEM_0E8,
|
||||
ITEM_0E9,
|
||||
ITEM_0EA,
|
||||
ITEM_0EB,
|
||||
ITEM_0EC,
|
||||
ITEM_0ED,
|
||||
ITEM_0EE,
|
||||
ITEM_0EF,
|
||||
ITEM_0F0,
|
||||
ITEM_0F1,
|
||||
ITEM_0F2,
|
||||
ITEM_0F3,
|
||||
ITEM_0F4,
|
||||
ITEM_0F5,
|
||||
ITEM_0F6,
|
||||
ITEM_0F7,
|
||||
ITEM_0F8,
|
||||
ITEM_0F9,
|
||||
ITEM_0FA,
|
||||
ITEM_0FB,
|
||||
ITEM_0FC,
|
||||
ITEM_0FD,
|
||||
ITEM_RED_SCARF, // 0x0fe
|
||||
ITEM_BLUE_SCARF, // 0x0ff
|
||||
ITEM_PINK_SCARF, // 0x100
|
||||
ITEM_GREEN_SCARF, // 0x101
|
||||
ITEM_YELLOW_SCARF, // 0x102
|
||||
ITEM_MACH_BIKE, // 0x103
|
||||
ITEM_COIN_CASE, // 0x104
|
||||
ITEM_ITEMFINDER, // 0x105
|
||||
ITEM_OLD_ROD, // 0x106
|
||||
ITEM_GOOD_ROD, // 0x107
|
||||
ITEM_SUPER_ROD, // 0x108
|
||||
ITEM_SS_TICKET, // 0x109
|
||||
ITEM_CONTEST_PASS, // 0x10a
|
||||
ITEM_10B,
|
||||
ITEM_WAILMER_PAIL, // 0x10c
|
||||
ITEM_DEVON_GOODS, // 0x10d
|
||||
ITEM_SOOT_SACK, // 0x10e
|
||||
ITEM_BASEMENT_KEY, // 0x10f
|
||||
ITEM_ACRO_BIKE, // 0x110
|
||||
ITEM_POKEBLOCK_CASE, // 0x111
|
||||
ITEM_LETTER, // 0x112
|
||||
ITEM_EON_TICKET, // 0x113
|
||||
ITEM_RED_ORB, // 0x114
|
||||
ITEM_BLUE_ORB, // 0x115
|
||||
ITEM_SCANNER, // 0x116
|
||||
ITEM_GO_GOGGLES, // 0x117
|
||||
ITEM_METEORITE, // 0x118
|
||||
ITEM_ROOM_1_KEY, // 0x119
|
||||
ITEM_ROOM_2_KEY, // 0x11a
|
||||
ITEM_ROOM_4_KEY, // 0x11b
|
||||
ITEM_ROOM_6_KEY, // 0x11c
|
||||
ITEM_STORAGE_KEY, // 0x11d
|
||||
ITEM_ROOT_FOSSIL, // 0x11e
|
||||
ITEM_CLAW_FOSSIL, // 0x11f
|
||||
ITEM_DEVON_SCOPE, // 0x120
|
||||
ITEM_TM01, // 0x121
|
||||
ITEM_TM02, // 0x122
|
||||
ITEM_TM03, // 0x123
|
||||
ITEM_TM04, // 0x124
|
||||
ITEM_TM05, // 0x125
|
||||
ITEM_TM06, // 0x126
|
||||
ITEM_TM07, // 0x127
|
||||
ITEM_TM08, // 0x128
|
||||
ITEM_TM09, // 0x129
|
||||
ITEM_TM10, // 0x12a
|
||||
ITEM_TM11, // 0x12b
|
||||
ITEM_TM12, // 0x12c
|
||||
ITEM_TM13, // 0x12d
|
||||
ITEM_TM14, // 0x12e
|
||||
ITEM_TM15, // 0x12f
|
||||
ITEM_TM16, // 0x130
|
||||
ITEM_TM17, // 0x131
|
||||
ITEM_TM18, // 0x132
|
||||
ITEM_TM19, // 0x133
|
||||
ITEM_TM20, // 0x134
|
||||
ITEM_TM21, // 0x135
|
||||
ITEM_TM22, // 0x136
|
||||
ITEM_TM23, // 0x137
|
||||
ITEM_TM24, // 0x138
|
||||
ITEM_TM25, // 0x139
|
||||
ITEM_TM26, // 0x13a
|
||||
ITEM_TM27, // 0x13b
|
||||
ITEM_TM28, // 0x13c
|
||||
ITEM_TM29, // 0x13d
|
||||
ITEM_TM30, // 0x13e
|
||||
ITEM_TM31, // 0x13f
|
||||
ITEM_TM32, // 0x140
|
||||
ITEM_TM33, // 0x141
|
||||
ITEM_TM34, // 0x142
|
||||
ITEM_TM35, // 0x143
|
||||
ITEM_TM36, // 0x144
|
||||
ITEM_TM37, // 0x145
|
||||
ITEM_TM38, // 0x146
|
||||
ITEM_TM39, // 0x147
|
||||
ITEM_TM40, // 0x148
|
||||
ITEM_TM41, // 0x149
|
||||
ITEM_TM42, // 0x14a
|
||||
ITEM_TM43, // 0x14b
|
||||
ITEM_TM44, // 0x14c
|
||||
ITEM_TM45, // 0x14d
|
||||
ITEM_TM46, // 0x14e
|
||||
ITEM_TM47, // 0x14f
|
||||
ITEM_TM48, // 0x150
|
||||
ITEM_TM49, // 0x151
|
||||
ITEM_TM50, // 0x152
|
||||
ITEM_HM01, // 0x153
|
||||
ITEM_HM02, // 0x154
|
||||
ITEM_HM03, // 0x155
|
||||
ITEM_HM04, // 0x156
|
||||
ITEM_HM05, // 0x157
|
||||
ITEM_HM06, // 0x158
|
||||
ITEM_HM07, // 0x159
|
||||
ITEM_HM08, // 0x15a
|
||||
ITEM_15B,
|
||||
ITEM_15C,
|
||||
ITEM_NONE, // 0x000
|
||||
ITEM_MASTER_BALL, // 0x001
|
||||
ITEM_ULTRA_BALL, // 0x002
|
||||
ITEM_GREAT_BALL, // 0x003
|
||||
ITEM_POKE_BALL, // 0x004
|
||||
ITEM_SAFARI_BALL, // 0x005
|
||||
ITEM_NET_BALL, // 0x006
|
||||
ITEM_DIVE_BALL, // 0x007
|
||||
ITEM_NEST_BALL, // 0x008
|
||||
ITEM_REPEAT_BALL, // 0x009
|
||||
ITEM_TIMER_BALL, // 0x00a
|
||||
ITEM_LUXURY_BALL, // 0x00b
|
||||
ITEM_PREMIER_BALL, // 0x00c
|
||||
ITEM_POTION, // 0x00d
|
||||
ITEM_ANTIDOTE, // 0x00e
|
||||
ITEM_BURN_HEAL, // 0x00f
|
||||
ITEM_ICE_HEAL, // 0x010
|
||||
ITEM_AWAKENING, // 0x011
|
||||
ITEM_PARALYZE_HEAL, // 0x012
|
||||
ITEM_FULL_RESTORE, // 0x013
|
||||
ITEM_MAX_POTION, // 0x014
|
||||
ITEM_HYPER_POTION, // 0x015
|
||||
ITEM_SUPER_POTION, // 0x016
|
||||
ITEM_FULL_HEAL, // 0x017
|
||||
ITEM_REVIVE, // 0x018
|
||||
ITEM_MAX_REVIVE, // 0x019
|
||||
ITEM_FRESH_WATER, // 0x01a
|
||||
ITEM_SODA_POP, // 0x01b
|
||||
ITEM_LEMONADE, // 0x01c
|
||||
ITEM_MOOMOO_MILK, // 0x01d
|
||||
ITEM_ENERGY_POWDER, // 0x01e
|
||||
ITEM_ENERGY_ROOT, // 0x01f
|
||||
ITEM_HEAL_POWDER, // 0x020
|
||||
ITEM_REVIVAL_HERB, // 0x021
|
||||
ITEM_ETHER, // 0x022
|
||||
ITEM_MAX_ETHER, // 0x023
|
||||
ITEM_ELIXIR, // 0x024
|
||||
ITEM_MAX_ELIXIR, // 0x025
|
||||
ITEM_LAVA_COOKIE, // 0x026
|
||||
ITEM_BLUE_FLUTE, // 0x027
|
||||
ITEM_YELLOW_FLUTE, // 0x028
|
||||
ITEM_RED_FLUTE, // 0x029
|
||||
ITEM_BLACK_FLUTE, // 0x02a
|
||||
ITEM_WHITE_FLUTE, // 0x02b
|
||||
ITEM_BERRY_JUICE, // 0x02c
|
||||
ITEM_SACRED_ASH, // 0x02d
|
||||
ITEM_SHOAL_SALT, // 0x02e
|
||||
ITEM_SHOAL_SHELL, // 0x02f
|
||||
ITEM_RED_SHARD, // 0x030
|
||||
ITEM_BLUE_SHARD, // 0x031
|
||||
ITEM_YELLOW_SHARD, // 0x032
|
||||
ITEM_GREEN_SHARD, // 0x033
|
||||
ITEM_034,
|
||||
ITEM_035,
|
||||
ITEM_036,
|
||||
ITEM_037,
|
||||
ITEM_038,
|
||||
ITEM_039,
|
||||
ITEM_03A,
|
||||
ITEM_03B,
|
||||
ITEM_03C,
|
||||
ITEM_03D,
|
||||
ITEM_03E,
|
||||
ITEM_HP_UP, // 0x03f
|
||||
ITEM_PROTEIN, // 0x040
|
||||
ITEM_IRON, // 0x041
|
||||
ITEM_CARBOS, // 0x042
|
||||
ITEM_CALCIUM, // 0x043
|
||||
ITEM_RARE_CANDY, // 0x044
|
||||
ITEM_PP_UP, // 0x045
|
||||
ITEM_ZINC, // 0x046
|
||||
ITEM_PP_MAX, // 0x047
|
||||
ITEM_048,
|
||||
ITEM_GUARD_SPEC, // 0x049
|
||||
ITEM_DIRE_HIT, // 0x04a
|
||||
ITEM_X_ATTACK, // 0x04b
|
||||
ITEM_X_DEFEND, // 0x04c
|
||||
ITEM_X_SPEED, // 0x04d
|
||||
ITEM_X_ACCURACY, // 0x04e
|
||||
ITEM_X_SPECIAL, // 0x04f
|
||||
ITEM_POKE_DOLL, // 0x050
|
||||
ITEM_FLUFFY_TAIL, // 0x051
|
||||
ITEM_052,
|
||||
ITEM_SUPER_REPEL, // 0x053
|
||||
ITEM_MAX_REPEL, // 0x054
|
||||
ITEM_ESCAPE_ROPE, // 0x055
|
||||
ITEM_REPEL, // 0x056
|
||||
ITEM_057,
|
||||
ITEM_058,
|
||||
ITEM_059,
|
||||
ITEM_05A,
|
||||
ITEM_05B,
|
||||
ITEM_05C,
|
||||
ITEM_SUN_STONE, // 0x05d
|
||||
ITEM_MOON_STONE, // 0x05e
|
||||
ITEM_FIRE_STONE, // 0x05f
|
||||
ITEM_THUNDER_STONE, // 0x060
|
||||
ITEM_WATER_STONE, // 0x061
|
||||
ITEM_LEAF_STONE, // 0x062
|
||||
ITEM_063,
|
||||
ITEM_064,
|
||||
ITEM_065,
|
||||
ITEM_066,
|
||||
ITEM_TINY_MUSHROOM, // 0x067
|
||||
ITEM_BIG_MUSHROOM, // 0x068
|
||||
ITEM_069,
|
||||
ITEM_PEARL, // 0x06a
|
||||
ITEM_BIG_PEARL, // 0x06b
|
||||
ITEM_STARDUST, // 0x06c
|
||||
ITEM_STAR_PIECE, // 0x06d
|
||||
ITEM_NUGGET, // 0x06e
|
||||
ITEM_HEART_SCALE, // 0x06f
|
||||
ITEM_070,
|
||||
ITEM_071,
|
||||
ITEM_072,
|
||||
ITEM_073,
|
||||
ITEM_074,
|
||||
ITEM_075,
|
||||
ITEM_076,
|
||||
ITEM_077,
|
||||
ITEM_078,
|
||||
ITEM_ORANGE_MAIL, // 0x079
|
||||
ITEM_HARBOR_MAIL, // 0x07a
|
||||
ITEM_GLITTER_MAIL, // 0x07b
|
||||
ITEM_MECH_MAIL, // 0x07c
|
||||
ITEM_WOOD_MAIL, // 0x07d
|
||||
ITEM_WAVE_MAIL, // 0x07e
|
||||
ITEM_BEAD_MAIL, // 0x07f
|
||||
ITEM_SHADOW_MAIL, // 0x080
|
||||
ITEM_TROPIC_MAIL, // 0x081
|
||||
ITEM_DREAM_MAIL, // 0x082
|
||||
ITEM_FAB_MAIL, // 0x083
|
||||
ITEM_RETRO_MAIL, // 0x084
|
||||
ITEM_CHERI_BERRY, // 0x085
|
||||
ITEM_CHESTO_BERRY, // 0x086
|
||||
ITEM_PECHA_BERRY, // 0x087
|
||||
ITEM_RAWST_BERRY, // 0x088
|
||||
ITEM_ASPEAR_BERRY, // 0x089
|
||||
ITEM_LEPPA_BERRY, // 0x08a
|
||||
ITEM_ORAN_BERRY, // 0x08b
|
||||
ITEM_PERSIM_BERRY, // 0x08c
|
||||
ITEM_LUM_BERRY, // 0x08d
|
||||
ITEM_SITRUS_BERRY, // 0x08e
|
||||
ITEM_FIGY_BERRY, // 0x08f
|
||||
ITEM_WIKI_BERRY, // 0x090
|
||||
ITEM_MAGO_BERRY, // 0x091
|
||||
ITEM_AGUAV_BERRY, // 0x092
|
||||
ITEM_IAPAPA_BERRY, // 0x093
|
||||
ITEM_RAZZ_BERRY, // 0x094
|
||||
ITEM_BLUK_BERRY, // 0x095
|
||||
ITEM_NANAB_BERRY, // 0x096
|
||||
ITEM_WEPEAR_BERRY, // 0x097
|
||||
ITEM_PINAP_BERRY, // 0x098
|
||||
ITEM_POMEG_BERRY, // 0x099
|
||||
ITEM_KELPSY_BERRY, // 0x09a
|
||||
ITEM_QUALOT_BERRY, // 0x09b
|
||||
ITEM_HONDEW_BERRY, // 0x09c
|
||||
ITEM_GREPA_BERRY, // 0x09d
|
||||
ITEM_TAMATO_BERRY, // 0x09e
|
||||
ITEM_CORNN_BERRY, // 0x09f
|
||||
ITEM_MAGOST_BERRY, // 0x0a0
|
||||
ITEM_RABUTA_BERRY, // 0x0a1
|
||||
ITEM_NOMEL_BERRY, // 0x0a2
|
||||
ITEM_SPELON_BERRY, // 0x0a3
|
||||
ITEM_PAMTRE_BERRY, // 0x0a4
|
||||
ITEM_WATMEL_BERRY, // 0x0a5
|
||||
ITEM_DURIN_BERRY, // 0x0a6
|
||||
ITEM_BELUE_BERRY, // 0x0a7
|
||||
ITEM_LIECHI_BERRY, // 0x0a8
|
||||
ITEM_GANLON_BERRY, // 0x0a9
|
||||
ITEM_SALAC_BERRY, // 0x0aa
|
||||
ITEM_PETAYA_BERRY, // 0x0ab
|
||||
ITEM_APICOT_BERRY, // 0x0ac
|
||||
ITEM_LANSAT_BERRY, // 0x0ad
|
||||
ITEM_STARF_BERRY, // 0x0ae
|
||||
ITEM_ENIGMA_BERRY, // 0x0af
|
||||
ITEM_0B0,
|
||||
ITEM_0B1,
|
||||
ITEM_0B2,
|
||||
ITEM_BRIGHT_POWDER, // 0x0b3
|
||||
ITEM_WHITE_HERB, // 0x0b4
|
||||
ITEM_MACHO_BRACE, // 0x0b5
|
||||
ITEM_EXP_SHARE, // 0x0b6
|
||||
ITEM_QUICK_CLAW, // 0x0b7
|
||||
ITEM_SOOTHE_BELL, // 0x0b8
|
||||
ITEM_MENTAL_HERB, // 0x0b9
|
||||
ITEM_CHOICE_BAND, // 0x0ba
|
||||
ITEM_KINGS_ROCK, // 0x0bb
|
||||
ITEM_SILVER_POWDER, // 0x0bc
|
||||
ITEM_AMULET_COIN, // 0x0bd
|
||||
ITEM_CLEANSE_TAG, // 0x0be
|
||||
ITEM_SOUL_DEW, // 0x0bf
|
||||
ITEM_DEEP_SEA_TOOTH, // 0x0c0
|
||||
ITEM_DEEP_SEA_SCALE, // 0x0c1
|
||||
ITEM_SMOKE_BALL, // 0x0c2
|
||||
ITEM_EVERSTONE, // 0x0c3
|
||||
ITEM_FOCUS_BAND, // 0x0c4
|
||||
ITEM_LUCKY_EGG, // 0x0c5
|
||||
ITEM_SCOPE_LENS, // 0x0c6
|
||||
ITEM_METAL_COAT, // 0x0c7
|
||||
ITEM_LEFTOVERS, // 0x0c8
|
||||
ITEM_DRAGON_SCALE, // 0x0c9
|
||||
ITEM_LIGHT_BALL, // 0x0ca
|
||||
ITEM_SOFT_SAND, // 0x0cb
|
||||
ITEM_HARD_STONE, // 0x0cc
|
||||
ITEM_MIRACLE_SEED, // 0x0cd
|
||||
ITEM_BLACK_GLASSES, // 0x0ce
|
||||
ITEM_BLACK_BELT, // 0x0cf
|
||||
ITEM_MAGNET, // 0x0d0
|
||||
ITEM_MYSTIC_WATER, // 0x0d1
|
||||
ITEM_SHARP_BEAK, // 0x0d2
|
||||
ITEM_POISON_BARB, // 0x0d3
|
||||
ITEM_NEVER_MELT_ICE, // 0x0d4
|
||||
ITEM_SPELL_TAG, // 0x0d5
|
||||
ITEM_TWISTED_SPOON, // 0x0d6
|
||||
ITEM_CHARCOAL, // 0x0d7
|
||||
ITEM_DRAGON_FANG, // 0x0d8
|
||||
ITEM_SILK_SCARF, // 0x0d9
|
||||
ITEM_UP_GRADE, // 0x0da
|
||||
ITEM_SHELL_BELL, // 0x0db
|
||||
ITEM_SEA_INCENSE, // 0x0dc
|
||||
ITEM_LAX_INCENSE, // 0x0dd
|
||||
ITEM_LUCKY_PUNCH, // 0x0de
|
||||
ITEM_METAL_POWDER, // 0x0df
|
||||
ITEM_THICK_CLUB, // 0x0e0
|
||||
ITEM_STICK, // 0x0e1
|
||||
ITEM_0E2,
|
||||
ITEM_0E3,
|
||||
ITEM_0E4,
|
||||
ITEM_0E5,
|
||||
ITEM_0E6,
|
||||
ITEM_0E7,
|
||||
ITEM_0E8,
|
||||
ITEM_0E9,
|
||||
ITEM_0EA,
|
||||
ITEM_0EB,
|
||||
ITEM_0EC,
|
||||
ITEM_0ED,
|
||||
ITEM_0EE,
|
||||
ITEM_0EF,
|
||||
ITEM_0F0,
|
||||
ITEM_0F1,
|
||||
ITEM_0F2,
|
||||
ITEM_0F3,
|
||||
ITEM_0F4,
|
||||
ITEM_0F5,
|
||||
ITEM_0F6,
|
||||
ITEM_0F7,
|
||||
ITEM_0F8,
|
||||
ITEM_0F9,
|
||||
ITEM_0FA,
|
||||
ITEM_0FB,
|
||||
ITEM_0FC,
|
||||
ITEM_0FD,
|
||||
ITEM_RED_SCARF, // 0x0fe
|
||||
ITEM_BLUE_SCARF, // 0x0ff
|
||||
ITEM_PINK_SCARF, // 0x100
|
||||
ITEM_GREEN_SCARF, // 0x101
|
||||
ITEM_YELLOW_SCARF, // 0x102
|
||||
ITEM_MACH_BIKE, // 0x103
|
||||
ITEM_COIN_CASE, // 0x104
|
||||
ITEM_ITEMFINDER, // 0x105
|
||||
ITEM_OLD_ROD, // 0x106
|
||||
ITEM_GOOD_ROD, // 0x107
|
||||
ITEM_SUPER_ROD, // 0x108
|
||||
ITEM_SS_TICKET, // 0x109
|
||||
ITEM_CONTEST_PASS, // 0x10a
|
||||
ITEM_10B,
|
||||
ITEM_WAILMER_PAIL, // 0x10c
|
||||
ITEM_DEVON_GOODS, // 0x10d
|
||||
ITEM_SOOT_SACK, // 0x10e
|
||||
ITEM_BASEMENT_KEY, // 0x10f
|
||||
ITEM_ACRO_BIKE, // 0x110
|
||||
ITEM_POKEBLOCK_CASE, // 0x111
|
||||
ITEM_LETTER, // 0x112
|
||||
ITEM_EON_TICKET, // 0x113
|
||||
ITEM_RED_ORB, // 0x114
|
||||
ITEM_BLUE_ORB, // 0x115
|
||||
ITEM_SCANNER, // 0x116
|
||||
ITEM_GO_GOGGLES, // 0x117
|
||||
ITEM_METEORITE, // 0x118
|
||||
ITEM_ROOM_1_KEY, // 0x119
|
||||
ITEM_ROOM_2_KEY, // 0x11a
|
||||
ITEM_ROOM_4_KEY, // 0x11b
|
||||
ITEM_ROOM_6_KEY, // 0x11c
|
||||
ITEM_STORAGE_KEY, // 0x11d
|
||||
ITEM_ROOT_FOSSIL, // 0x11e
|
||||
ITEM_CLAW_FOSSIL, // 0x11f
|
||||
ITEM_DEVON_SCOPE, // 0x120
|
||||
ITEM_TM01, // 0x121
|
||||
ITEM_TM02, // 0x122
|
||||
ITEM_TM03, // 0x123
|
||||
ITEM_TM04, // 0x124
|
||||
ITEM_TM05, // 0x125
|
||||
ITEM_TM06, // 0x126
|
||||
ITEM_TM07, // 0x127
|
||||
ITEM_TM08, // 0x128
|
||||
ITEM_TM09, // 0x129
|
||||
ITEM_TM10, // 0x12a
|
||||
ITEM_TM11, // 0x12b
|
||||
ITEM_TM12, // 0x12c
|
||||
ITEM_TM13, // 0x12d
|
||||
ITEM_TM14, // 0x12e
|
||||
ITEM_TM15, // 0x12f
|
||||
ITEM_TM16, // 0x130
|
||||
ITEM_TM17, // 0x131
|
||||
ITEM_TM18, // 0x132
|
||||
ITEM_TM19, // 0x133
|
||||
ITEM_TM20, // 0x134
|
||||
ITEM_TM21, // 0x135
|
||||
ITEM_TM22, // 0x136
|
||||
ITEM_TM23, // 0x137
|
||||
ITEM_TM24, // 0x138
|
||||
ITEM_TM25, // 0x139
|
||||
ITEM_TM26, // 0x13a
|
||||
ITEM_TM27, // 0x13b
|
||||
ITEM_TM28, // 0x13c
|
||||
ITEM_TM29, // 0x13d
|
||||
ITEM_TM30, // 0x13e
|
||||
ITEM_TM31, // 0x13f
|
||||
ITEM_TM32, // 0x140
|
||||
ITEM_TM33, // 0x141
|
||||
ITEM_TM34, // 0x142
|
||||
ITEM_TM35, // 0x143
|
||||
ITEM_TM36, // 0x144
|
||||
ITEM_TM37, // 0x145
|
||||
ITEM_TM38, // 0x146
|
||||
ITEM_TM39, // 0x147
|
||||
ITEM_TM40, // 0x148
|
||||
ITEM_TM41, // 0x149
|
||||
ITEM_TM42, // 0x14a
|
||||
ITEM_TM43, // 0x14b
|
||||
ITEM_TM44, // 0x14c
|
||||
ITEM_TM45, // 0x14d
|
||||
ITEM_TM46, // 0x14e
|
||||
ITEM_TM47, // 0x14f
|
||||
ITEM_TM48, // 0x150
|
||||
ITEM_TM49, // 0x151
|
||||
ITEM_TM50, // 0x152
|
||||
ITEM_HM01, // 0x153
|
||||
ITEM_HM02, // 0x154
|
||||
ITEM_HM03, // 0x155
|
||||
ITEM_HM04, // 0x156
|
||||
ITEM_HM05, // 0x157
|
||||
ITEM_HM06, // 0x158
|
||||
ITEM_HM07, // 0x159
|
||||
ITEM_HM08, // 0x15a
|
||||
ITEM_15B,
|
||||
ITEM_15C,
|
||||
|
||||
// FireRed/LeafGreen
|
||||
ITEM_OAKS_PARCEL, // 0x15d
|
||||
ITEM_POKE_FLUTE, // 0x15e
|
||||
ITEM_SECRET_KEY, // 0x15f
|
||||
ITEM_BIKE_VOUCHER, // 0x160
|
||||
ITEM_GOLD_TEETH, // 0x161
|
||||
ITEM_OLD_AMBER, // 0x162
|
||||
ITEM_CARD_KEY, // 0x163
|
||||
ITEM_LIFT_KEY, // 0x164
|
||||
ITEM_HELIX_FOSSIL, // 0x165
|
||||
ITEM_DOME_FOSSIL, // 0x166
|
||||
ITEM_SILPH_SCOPE, // 0x167
|
||||
ITEM_BICYCLE, // 0x168
|
||||
ITEM_TOWN_MAP, // 0x169
|
||||
ITEM_VS_SEEKER, // 0x16a
|
||||
ITEM_FAME_CHECKER, // 0x16b
|
||||
ITEM_TM_CASE, // 0x16c
|
||||
ITEM_BERRY_POUCH, // 0x16d
|
||||
ITEM_TEACHY_TV, // 0x16e
|
||||
ITEM_TRI_PASS, // 0x16f
|
||||
ITEM_RAINBOW_PASS, // 0x170
|
||||
ITEM_TEA, // 0x171
|
||||
ITEM_MYSTIC_TICKET, // 0x172
|
||||
ITEM_AURORA_TICKET, // 0x173
|
||||
ITEM_POWDER_JAR, // 0x174
|
||||
ITEM_RUBY, // 0x175
|
||||
ITEM_SAPPHIRE, // 0x176
|
||||
// FireRed/LeafGreen
|
||||
ITEM_OAKS_PARCEL, // 0x15d
|
||||
ITEM_POKE_FLUTE, // 0x15e
|
||||
ITEM_SECRET_KEY, // 0x15f
|
||||
ITEM_BIKE_VOUCHER, // 0x160
|
||||
ITEM_GOLD_TEETH, // 0x161
|
||||
ITEM_OLD_AMBER, // 0x162
|
||||
ITEM_CARD_KEY, // 0x163
|
||||
ITEM_LIFT_KEY, // 0x164
|
||||
ITEM_HELIX_FOSSIL, // 0x165
|
||||
ITEM_DOME_FOSSIL, // 0x166
|
||||
ITEM_SILPH_SCOPE, // 0x167
|
||||
ITEM_BICYCLE, // 0x168
|
||||
ITEM_TOWN_MAP, // 0x169
|
||||
ITEM_VS_SEEKER, // 0x16a
|
||||
ITEM_FAME_CHECKER, // 0x16b
|
||||
ITEM_TM_CASE, // 0x16c
|
||||
ITEM_BERRY_POUCH, // 0x16d
|
||||
ITEM_TEACHY_TV, // 0x16e
|
||||
ITEM_TRI_PASS, // 0x16f
|
||||
ITEM_RAINBOW_PASS, // 0x170
|
||||
ITEM_TEA, // 0x171
|
||||
ITEM_MYSTIC_TICKET, // 0x172
|
||||
ITEM_AURORA_TICKET, // 0x173
|
||||
ITEM_POWDER_JAR, // 0x174
|
||||
ITEM_RUBY, // 0x175
|
||||
ITEM_SAPPHIRE, // 0x176
|
||||
|
||||
// Emerald
|
||||
ITEM_MAGMA_EMBLEM, // 0x177
|
||||
ITEM_OLD_SEA_MAP, // 0x178
|
||||
// Emerald
|
||||
ITEM_MAGMA_EMBLEM, // 0x177
|
||||
ITEM_OLD_SEA_MAP, // 0x178
|
||||
};
|
||||
|
||||
#endif // GUARD_ITEMS_H
|
||||
|
|
|
|||
|
|
@ -9,6 +9,18 @@ struct MenuAction
|
|||
u8 (*func)();
|
||||
};
|
||||
|
||||
struct MenuAction2
|
||||
{
|
||||
const u8 *text;
|
||||
void (*func)(u8);
|
||||
};
|
||||
|
||||
struct MenuAction3
|
||||
{
|
||||
void (*func1)(u8);
|
||||
void (*func2)(u8);
|
||||
};
|
||||
|
||||
void CloseMenu(void);
|
||||
void AppendToList(u8 *list, u8 *pindex, u32 value);
|
||||
void InitMenuWindow(const struct WindowConfig *);
|
||||
|
|
@ -52,7 +64,7 @@ s8 ProcessMenuInputNoWrap_(void);
|
|||
u8 MenuPrint_PixelCoords(const u8 *, u8, u16, u8);
|
||||
u8 sub_8072A18(const u8 *, u8, u16, u8, u32);
|
||||
u8 unref_sub_8072A5C(u8 *, u8 *, u8, u16, u8, u32);
|
||||
int sub_8072AB0(u8 *, u8, u16, u8, u8, u32);
|
||||
int sub_8072AB0(const u8 *, u8, u16, u8, u8, u32);
|
||||
void MenuPrint_RightAligned(u8 *, u8, u8);
|
||||
void sub_8072B80(u8 *, u8, u8, u8 *);
|
||||
void sub_8072BD8(const u8 *, u8, u8, u16);
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ struct NamingScreenData
|
|||
/*0x10*/ u8 unk10;
|
||||
/*0x11*/ u8 textBuffer[0x10];
|
||||
/*0x21*/ u8 filler21[0x13];
|
||||
const struct NamingScreenTemplate *template;
|
||||
const struct NamingScreenTemplate *template;
|
||||
/*0x38*/ u8 *destBuffer;
|
||||
/*0x3C*/ u16 unk3C; //savedKeyRepeatStartDelay
|
||||
/*0x3E*/ u16 unk3E;
|
||||
|
|
|
|||
|
|
@ -16,22 +16,22 @@ enum
|
|||
|
||||
struct PaletteFadeControl
|
||||
{
|
||||
u32 multipurpose1;
|
||||
u8 delayCounter:6;
|
||||
u16 y:5; // blend coefficient
|
||||
u16 targetY:5; // target blend coefficient
|
||||
u16 blendColor:15;
|
||||
u16 active:1;
|
||||
u16 multipurpose2:6;
|
||||
u16 yDec:1; // whether blend coefficient is decreasing
|
||||
u16 bufferTransferDisabled:1;
|
||||
u16 mode:2;
|
||||
u16 shouldResetBlendRegisters:1;
|
||||
u16 hardwareFadeFinishing:1;
|
||||
u16 softwareFadeFinishingCounter:5;
|
||||
u16 softwareFadeFinishing:1;
|
||||
u16 objPaletteToggle:1;
|
||||
u8 deltaY:4; // rate of change of blend coefficient
|
||||
/*0x00*/ u32 multipurpose1;
|
||||
/*0x04*/ u8 delayCounter:6;
|
||||
/*0x05*/ u16 y:5; // blend coefficient
|
||||
/*0x05-06*/ u16 targetY:5; // target blend coefficient
|
||||
/*0x07*/ u16 blendColor:15;
|
||||
/*0x07*/ u16 active:1;
|
||||
/*0x08*/ u16 multipurpose2:6;
|
||||
/*0x08*/ u16 yDec:1; // whether blend coefficient is decreasing
|
||||
/*0x08*/ u16 bufferTransferDisabled:1;
|
||||
/*0x09*/ u16 mode:2;
|
||||
/*0x09*/ u16 shouldResetBlendRegisters:1;
|
||||
/*0x09*/ u16 hardwareFadeFinishing:1;
|
||||
/*0x09-0a*/ u16 softwareFadeFinishingCounter:5;
|
||||
/*0x0a*/ u16 softwareFadeFinishing:1;
|
||||
/*0x0a*/ u16 objPaletteToggle:1;
|
||||
/*0x0a*/ u8 deltaY:4; // rate of change of blend coefficient
|
||||
};
|
||||
|
||||
extern struct PaletteFadeControl gPaletteFade;
|
||||
|
|
|
|||
|
|
@ -39,12 +39,12 @@ enum
|
|||
// Do save types
|
||||
enum
|
||||
{
|
||||
NORMAL_SAVE,
|
||||
LINK_SAVE,
|
||||
EREADER_SAVE, // mossdeep event
|
||||
HOF_SAVE,
|
||||
DIFFERENT_FILE_SAVE,
|
||||
HOF_DELETE_SAVE // unused
|
||||
NORMAL_SAVE,
|
||||
LINK_SAVE,
|
||||
EREADER_SAVE, // mossdeep event
|
||||
HOF_SAVE,
|
||||
DIFFERENT_FILE_SAVE,
|
||||
HOF_DELETE_SAVE // unused
|
||||
};
|
||||
|
||||
void ClearSaveData(void);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
struct ScriptContext;
|
||||
|
||||
typedef bool8 (*ScrCmdFunc)(struct ScriptContext *);
|
||||
typedef u8 Script[];
|
||||
|
||||
struct ScriptContext
|
||||
{
|
||||
|
|
@ -54,5 +55,6 @@ u32 CalculateRamScriptChecksum(void);
|
|||
void ClearRamScript(void);
|
||||
bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId);
|
||||
u8 *GetRamScript(u8 objectId, u8 *script);
|
||||
u16 gScriptResult;
|
||||
|
||||
#endif // GUARD_SCRIPT_H
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ struct SpriteFrameImage
|
|||
u16 size;
|
||||
};
|
||||
|
||||
#define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr}
|
||||
|
||||
struct SpritePalette
|
||||
{
|
||||
const u16 *data;
|
||||
|
|
@ -142,7 +144,7 @@ struct SpriteTemplate
|
|||
u16 paletteTag;
|
||||
const struct OamData *oam;
|
||||
const union AnimCmd *const *anims;
|
||||
struct SpriteFrameImage *images;
|
||||
const struct SpriteFrameImage *images;
|
||||
const union AffineAnimCmd *const *affineAnims;
|
||||
void (*callback)(struct Sprite *);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -5,12 +5,12 @@ typedef void (*TaskFunc)(u8 taskId);
|
|||
|
||||
struct Task
|
||||
{
|
||||
TaskFunc func;
|
||||
bool8 isActive;
|
||||
u8 prev;
|
||||
u8 next;
|
||||
u8 priority;
|
||||
s16 data[16];
|
||||
/*0x00*/ TaskFunc func;
|
||||
/*0x04*/ bool8 isActive;
|
||||
/*0x05*/ u8 prev;
|
||||
/*0x06*/ u8 next;
|
||||
/*0x07*/ u8 priority;
|
||||
/*0x08*/ s16 data[16];
|
||||
};
|
||||
|
||||
extern struct Task gTasks[];
|
||||
|
|
|
|||
|
|
@ -201,9 +201,7 @@ SECTIONS {
|
|||
src/heal_location.o(.text);
|
||||
asm/region_map.o(.text);
|
||||
asm/cute_sketch.o(.text);
|
||||
asm/decoration.o(.text);
|
||||
src/decoration.o(.text);
|
||||
asm/decoration.o(.text_80FE868);
|
||||
asm/slot_machine.o(.text);
|
||||
src/slot_machine.o(.text);
|
||||
asm/slot_machine.o(.text_8104D30)
|
||||
|
|
@ -434,7 +432,7 @@ SECTIONS {
|
|||
src/heal_location.o(.rodata);
|
||||
data/region_map.o(.rodata);
|
||||
data/cute_sketch.o(.rodata);
|
||||
data/decoration.o(.rodata);
|
||||
src/decoration.o(.rodata);
|
||||
data/slot_machine.o(.rodata);
|
||||
src/contest_painting.o(.rodata);
|
||||
src/battle_ai.o(.rodata);
|
||||
|
|
|
|||
4190
src/decoration.c
Normal file → Executable file
4190
src/decoration.c
Normal file → Executable file
File diff suppressed because it is too large
Load Diff
|
|
@ -4302,39 +4302,39 @@ __attribute__((naked))
|
|||
int state_to_direction(u8 a0, u8 a1, u8 a2)
|
||||
{
|
||||
asm(".syntax unified\n\
|
||||
push {r4,lr}\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r4, r0, 24\n\
|
||||
lsls r1, 24\n\
|
||||
lsrs r1, 24\n\
|
||||
adds r0, r1, 0\n\
|
||||
lsls r2, 24\n\
|
||||
lsrs r2, 24\n\
|
||||
cmp r1, 0\n\
|
||||
beq _08060BFC\n\
|
||||
cmp r2, 0\n\
|
||||
beq _08060BFC\n\
|
||||
cmp r1, 0x4\n\
|
||||
bhi _08060BFC\n\
|
||||
cmp r2, 0x4\n\
|
||||
bls _08060C00\n\
|
||||
push {r4,lr}\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r4, r0, 24\n\
|
||||
lsls r1, 24\n\
|
||||
lsrs r1, 24\n\
|
||||
adds r0, r1, 0\n\
|
||||
lsls r2, 24\n\
|
||||
lsrs r2, 24\n\
|
||||
cmp r1, 0\n\
|
||||
beq _08060BFC\n\
|
||||
cmp r2, 0\n\
|
||||
beq _08060BFC\n\
|
||||
cmp r1, 0x4\n\
|
||||
bhi _08060BFC\n\
|
||||
cmp r2, 0x4\n\
|
||||
bls _08060C00\n\
|
||||
_08060BFC:\n\
|
||||
movs r0, 0\n\
|
||||
b _08060C12\n\
|
||||
movs r0, 0\n\
|
||||
b _08060C12\n\
|
||||
_08060C00:\n\
|
||||
adds r1, r2, 0\n\
|
||||
bl zffu_offset_calc\n\
|
||||
ldr r2, _08060C18 @ =gUnknown_08375767\n\
|
||||
lsls r1, r4, 2\n\
|
||||
subs r1, 0x5\n\
|
||||
adds r0, r1\n\
|
||||
adds r0, r2\n\
|
||||
ldrb r0, [r0]\n\
|
||||
adds r1, r2, 0\n\
|
||||
bl zffu_offset_calc\n\
|
||||
ldr r2, _08060C18 @ =gUnknown_08375767\n\
|
||||
lsls r1, r4, 2\n\
|
||||
subs r1, 0x5\n\
|
||||
adds r0, r1\n\
|
||||
adds r0, r2\n\
|
||||
ldrb r0, [r0]\n\
|
||||
_08060C12:\n\
|
||||
pop {r4}\n\
|
||||
pop {r1}\n\
|
||||
bx r1\n\
|
||||
.align 2, 0\n\
|
||||
pop {r4}\n\
|
||||
pop {r1}\n\
|
||||
bx r1\n\
|
||||
.align 2, 0\n\
|
||||
_08060C18: .4byte gUnknown_08375767\n\
|
||||
.syntax divided\n");
|
||||
}
|
||||
|
|
@ -6609,121 +6609,121 @@ void sub_80634E8(struct MapObject *mapObject, struct Sprite *sprite)
|
|||
__attribute__((naked))
|
||||
void sub_80634E8(struct MapObject *mapObject, struct Sprite *sprite) {
|
||||
asm(".syntax unified\n\
|
||||
push {r4-r6,lr}\n\
|
||||
adds r5, r0, 0\n\
|
||||
adds r4, r1, 0\n\
|
||||
ldrb r1, [r5, 0x1]\n\
|
||||
movs r0, 0x41\n\
|
||||
negs r0, r0\n\
|
||||
ands r0, r1\n\
|
||||
strb r0, [r5, 0x1]\n\
|
||||
ldrb r0, [r5, 0x5]\n\
|
||||
bl GetFieldObjectGraphicsInfo\n\
|
||||
adds r6, r0, 0\n\
|
||||
adds r0, r4, 0\n\
|
||||
adds r0, 0x3E\n\
|
||||
ldrb r1, [r0]\n\
|
||||
movs r0, 0x2\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0806354C\n\
|
||||
ldrh r1, [r4, 0x24]\n\
|
||||
ldrh r0, [r4, 0x20]\n\
|
||||
adds r1, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
adds r0, 0x28\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
ldr r2, _08063544 @ =gSpriteCoordOffsetX\n\
|
||||
adds r0, r1\n\
|
||||
ldrh r2, [r2]\n\
|
||||
adds r0, r2\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r3, r0, 16\n\
|
||||
ldrh r1, [r4, 0x26]\n\
|
||||
ldrh r0, [r4, 0x22]\n\
|
||||
adds r1, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
adds r0, 0x29\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
ldr r2, _08063548 @ =gSpriteCoordOffsetY\n\
|
||||
adds r0, r1\n\
|
||||
ldrh r2, [r2]\n\
|
||||
adds r0, r2\n\
|
||||
b _08063574\n\
|
||||
.align 2, 0\n\
|
||||
push {r4-r6,lr}\n\
|
||||
adds r5, r0, 0\n\
|
||||
adds r4, r1, 0\n\
|
||||
ldrb r1, [r5, 0x1]\n\
|
||||
movs r0, 0x41\n\
|
||||
negs r0, r0\n\
|
||||
ands r0, r1\n\
|
||||
strb r0, [r5, 0x1]\n\
|
||||
ldrb r0, [r5, 0x5]\n\
|
||||
bl GetFieldObjectGraphicsInfo\n\
|
||||
adds r6, r0, 0\n\
|
||||
adds r0, r4, 0\n\
|
||||
adds r0, 0x3E\n\
|
||||
ldrb r1, [r0]\n\
|
||||
movs r0, 0x2\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0806354C\n\
|
||||
ldrh r1, [r4, 0x24]\n\
|
||||
ldrh r0, [r4, 0x20]\n\
|
||||
adds r1, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
adds r0, 0x28\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
ldr r2, _08063544 @ =gSpriteCoordOffsetX\n\
|
||||
adds r0, r1\n\
|
||||
ldrh r2, [r2]\n\
|
||||
adds r0, r2\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r3, r0, 16\n\
|
||||
ldrh r1, [r4, 0x26]\n\
|
||||
ldrh r0, [r4, 0x22]\n\
|
||||
adds r1, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
adds r0, 0x29\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
ldr r2, _08063548 @ =gSpriteCoordOffsetY\n\
|
||||
adds r0, r1\n\
|
||||
ldrh r2, [r2]\n\
|
||||
adds r0, r2\n\
|
||||
b _08063574\n\
|
||||
.align 2, 0\n\
|
||||
_08063544: .4byte gSpriteCoordOffsetX\n\
|
||||
_08063548: .4byte gSpriteCoordOffsetY\n\
|
||||
_0806354C:\n\
|
||||
ldrh r1, [r4, 0x24]\n\
|
||||
ldrh r0, [r4, 0x20]\n\
|
||||
adds r1, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
adds r0, 0x28\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
adds r0, r1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r3, r0, 16\n\
|
||||
ldrh r1, [r4, 0x26]\n\
|
||||
ldrh r0, [r4, 0x22]\n\
|
||||
adds r1, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
adds r0, 0x29\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
adds r0, r1\n\
|
||||
ldrh r1, [r4, 0x24]\n\
|
||||
ldrh r0, [r4, 0x20]\n\
|
||||
adds r1, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
adds r0, 0x28\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
adds r0, r1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r3, r0, 16\n\
|
||||
ldrh r1, [r4, 0x26]\n\
|
||||
ldrh r0, [r4, 0x22]\n\
|
||||
adds r1, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
adds r0, 0x29\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
adds r0, r1\n\
|
||||
_08063574:\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r2, r0, 16\n\
|
||||
ldrh r0, [r6, 0x8]\n\
|
||||
adds r0, r3\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r1, r0, 16\n\
|
||||
ldrh r0, [r6, 0xA]\n\
|
||||
adds r0, r2\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
lsls r0, r3, 16\n\
|
||||
asrs r0, 16\n\
|
||||
cmp r0, 0xFF\n\
|
||||
bgt _0806359C\n\
|
||||
lsls r0, r1, 16\n\
|
||||
asrs r0, 16\n\
|
||||
movs r1, 0x10\n\
|
||||
negs r1, r1\n\
|
||||
cmp r0, r1\n\
|
||||
bge _080635A4\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r2, r0, 16\n\
|
||||
ldrh r0, [r6, 0x8]\n\
|
||||
adds r0, r3\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r1, r0, 16\n\
|
||||
ldrh r0, [r6, 0xA]\n\
|
||||
adds r0, r2\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
lsls r0, r3, 16\n\
|
||||
asrs r0, 16\n\
|
||||
cmp r0, 0xFF\n\
|
||||
bgt _0806359C\n\
|
||||
lsls r0, r1, 16\n\
|
||||
asrs r0, 16\n\
|
||||
movs r1, 0x10\n\
|
||||
negs r1, r1\n\
|
||||
cmp r0, r1\n\
|
||||
bge _080635A4\n\
|
||||
_0806359C:\n\
|
||||
ldrb r0, [r5, 0x1]\n\
|
||||
movs r1, 0x40\n\
|
||||
orrs r0, r1\n\
|
||||
strb r0, [r5, 0x1]\n\
|
||||
ldrb r0, [r5, 0x1]\n\
|
||||
movs r1, 0x40\n\
|
||||
orrs r0, r1\n\
|
||||
strb r0, [r5, 0x1]\n\
|
||||
_080635A4:\n\
|
||||
lsls r0, r2, 16\n\
|
||||
asrs r0, 16\n\
|
||||
cmp r0, 0xAF\n\
|
||||
bgt _080635B8\n\
|
||||
lsls r0, r4, 16\n\
|
||||
asrs r0, 16\n\
|
||||
movs r1, 0x10\n\
|
||||
negs r1, r1\n\
|
||||
cmp r0, r1\n\
|
||||
bge _080635C0\n\
|
||||
lsls r0, r2, 16\n\
|
||||
asrs r0, 16\n\
|
||||
cmp r0, 0xAF\n\
|
||||
bgt _080635B8\n\
|
||||
lsls r0, r4, 16\n\
|
||||
asrs r0, 16\n\
|
||||
movs r1, 0x10\n\
|
||||
negs r1, r1\n\
|
||||
cmp r0, r1\n\
|
||||
bge _080635C0\n\
|
||||
_080635B8:\n\
|
||||
ldrb r0, [r5, 0x1]\n\
|
||||
movs r1, 0x40\n\
|
||||
orrs r0, r1\n\
|
||||
strb r0, [r5, 0x1]\n\
|
||||
ldrb r0, [r5, 0x1]\n\
|
||||
movs r1, 0x40\n\
|
||||
orrs r0, r1\n\
|
||||
strb r0, [r5, 0x1]\n\
|
||||
_080635C0:\n\
|
||||
pop {r4-r6}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
pop {r4-r6}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.syntax divided\n");
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@ void fillSouthConnection(struct MapHeader *, struct MapHeader *, s32);
|
|||
void fillNorthConnection(struct MapHeader *, struct MapHeader *, s32);
|
||||
void fillWestConnection(struct MapHeader *, struct MapHeader *, s32);
|
||||
void fillEastConnection(struct MapHeader *, struct MapHeader *, s32);
|
||||
u32 GetBehaviorByMetatileId(u16 metatile);
|
||||
struct MapConnection *sub_8056A64(u8 direction, int x, int y);
|
||||
bool8 sub_8056ABC(u8 direction, int x, int y, struct MapConnection *connection);
|
||||
bool8 sub_8056B20(int x, int src_width, int dest_width, int offset);
|
||||
|
|
|
|||
|
|
@ -611,7 +611,7 @@ u8 unref_sub_8072A5C(u8 *dest, u8 *src, u8 left, u16 top, u8 width, u32 a6)
|
|||
return sub_8004FD0(gMenuWindowPtr, dest, src, gMenuTextTileOffset, left, top, width, a6);
|
||||
}
|
||||
|
||||
int sub_8072AB0(u8 *str, u8 left, u16 top, u8 width, u8 height, u32 a6)
|
||||
int sub_8072AB0(const u8 *str, u8 left, u16 top, u8 width, u8 height, u32 a6)
|
||||
{
|
||||
u8 newlineCount = sub_8004FD0(gMenuWindowPtr, NULL, str, gMenuTextTileOffset, left, top, width, a6);
|
||||
|
||||
|
|
|
|||
|
|
@ -61,7 +61,6 @@ extern u8 *gStdScripts[];
|
|||
extern u8 *gStdScripts_End[];
|
||||
|
||||
extern u8 * const gUnknown_083CE048[];
|
||||
extern struct Decoration gDecorations[];
|
||||
|
||||
// This is defined in here so the optimizer can't see its value when compiling
|
||||
// script.c.
|
||||
|
|
|
|||
|
|
@ -12,10 +12,11 @@
|
|||
#include "map_constants.h"
|
||||
#include "task.h"
|
||||
#include "palette.h"
|
||||
#include "decoration.h"
|
||||
#include "field_weather.h"
|
||||
#include "metatile_behavior.h"
|
||||
#include "pokemon.h"
|
||||
#include "script.h"
|
||||
#include "decoration.h"
|
||||
|
||||
extern u8 gUnknown_020387DC;
|
||||
extern u16 gSpecialVar_0x8004;
|
||||
|
|
@ -29,8 +30,6 @@ extern const struct
|
|||
u16 unk_083D1358_1;
|
||||
} gUnknown_083D1358[7];
|
||||
extern const u8 gUnknown_083D1374[4 * 16];
|
||||
extern void *gUnknown_0300485C;
|
||||
extern const u8 sub_807D770(void);
|
||||
extern const u8 gUnknown_083D13EC[12];
|
||||
extern const u8 sub_80BCCA4(u8);
|
||||
extern u8 gUnknown_081A2E14[];
|
||||
|
|
@ -393,84 +392,84 @@ void sub_80BBCCC(u8 flagIn)
|
|||
{
|
||||
asm(".syntax unified\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r8\n\
|
||||
push {r7}\n\
|
||||
sub sp, 0x4\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
mov r8, r0\n\
|
||||
bl CurrentMapIsSecretBase\n\
|
||||
lsls r0, 24\n\
|
||||
cmp r0, 0\n\
|
||||
beq _080BBDBC\n\
|
||||
ldr r0, _080BBD70 @ =0x00004054\n\
|
||||
bl VarGet\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
movs r1, 0\n\
|
||||
mov r0, sp\n\
|
||||
strh r1, [r0]\n\
|
||||
ldr r6, _080BBD74 @ =gSaveBlock1\n\
|
||||
mov r4, sp\n\
|
||||
ldr r0, _080BBD78 @ =0x00001a2a\n\
|
||||
adds r7, r6, r0\n\
|
||||
mov r7, r8\n\
|
||||
push {r7}\n\
|
||||
sub sp, 0x4\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
mov r8, r0\n\
|
||||
bl CurrentMapIsSecretBase\n\
|
||||
lsls r0, 24\n\
|
||||
cmp r0, 0\n\
|
||||
beq _080BBDBC\n\
|
||||
ldr r0, _080BBD70 @ =0x00004054\n\
|
||||
bl VarGet\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
movs r1, 0\n\
|
||||
mov r0, sp\n\
|
||||
strh r1, [r0]\n\
|
||||
ldr r6, _080BBD74 @ =gSaveBlock1\n\
|
||||
mov r4, sp\n\
|
||||
ldr r0, _080BBD78 @ =0x00001a2a\n\
|
||||
adds r7, r6, r0\n\
|
||||
_080BBCFC:\n\
|
||||
lsls r0, r5, 2\n\
|
||||
adds r0, r5\n\
|
||||
lsls r0, 5\n\
|
||||
ldrh r1, [r4]\n\
|
||||
adds r2, r0, r1\n\
|
||||
ldr r1, _080BBD7C @ =0x00001a1a\n\
|
||||
adds r0, r6, r1\n\
|
||||
adds r1, r2, r0\n\
|
||||
ldrb r0, [r1]\n\
|
||||
subs r0, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
cmp r0, 0x77\n\
|
||||
bhi _080BBD3A\n\
|
||||
ldr r0, _080BBD80 @ =gDecorations\n\
|
||||
ldrb r3, [r1]\n\
|
||||
lsls r1, r3, 5\n\
|
||||
adds r1, r0\n\
|
||||
ldrb r0, [r1, 0x11]\n\
|
||||
cmp r0, 0x4\n\
|
||||
beq _080BBD3A\n\
|
||||
adds r0, r2, r7\n\
|
||||
ldrb r2, [r0]\n\
|
||||
lsrs r0, r2, 4\n\
|
||||
adds r0, 0x7\n\
|
||||
movs r1, 0xF\n\
|
||||
ands r1, r2\n\
|
||||
adds r1, 0x7\n\
|
||||
adds r2, r3, 0\n\
|
||||
bl sub_80FF394\n\
|
||||
lsls r0, r5, 2\n\
|
||||
adds r0, r5\n\
|
||||
lsls r0, 5\n\
|
||||
ldrh r1, [r4]\n\
|
||||
adds r2, r0, r1\n\
|
||||
ldr r1, _080BBD7C @ =0x00001a1a\n\
|
||||
adds r0, r6, r1\n\
|
||||
adds r1, r2, r0\n\
|
||||
ldrb r0, [r1]\n\
|
||||
subs r0, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
cmp r0, 0x77\n\
|
||||
bhi _080BBD3A\n\
|
||||
ldr r0, _080BBD80 @ =gDecorations\n\
|
||||
ldrb r3, [r1]\n\
|
||||
lsls r1, r3, 5\n\
|
||||
adds r1, r0\n\
|
||||
ldrb r0, [r1, 0x11]\n\
|
||||
cmp r0, 0x4\n\
|
||||
beq _080BBD3A\n\
|
||||
adds r0, r2, r7\n\
|
||||
ldrb r2, [r0]\n\
|
||||
lsrs r0, r2, 4\n\
|
||||
adds r0, 0x7\n\
|
||||
movs r1, 0xF\n\
|
||||
ands r1, r2\n\
|
||||
adds r1, 0x7\n\
|
||||
adds r2, r3, 0\n\
|
||||
bl sub_80FF394\n\
|
||||
_080BBD3A:\n\
|
||||
ldrh r0, [r4]\n\
|
||||
adds r0, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
strh r0, [r4]\n\
|
||||
cmp r0, 0xF\n\
|
||||
bls _080BBCFC\n\
|
||||
cmp r5, 0\n\
|
||||
beq _080BBD88\n\
|
||||
mov r4, sp\n\
|
||||
adds r4, 0x2\n\
|
||||
movs r2, 0x88\n\
|
||||
lsls r2, 2\n\
|
||||
mov r0, sp\n\
|
||||
adds r1, r4, 0\n\
|
||||
bl sub_80BB764\n\
|
||||
mov r0, sp\n\
|
||||
ldrh r0, [r0]\n\
|
||||
adds r0, 0x7\n\
|
||||
ldrh r1, [r4]\n\
|
||||
adds r1, 0x7\n\
|
||||
ldr r2, _080BBD84 @ =0x00000e21\n\
|
||||
bl MapGridSetMetatileIdAt\n\
|
||||
b _080BBDBC\n\
|
||||
.align 2, 0\n\
|
||||
ldrh r0, [r4]\n\
|
||||
adds r0, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
strh r0, [r4]\n\
|
||||
cmp r0, 0xF\n\
|
||||
bls _080BBCFC\n\
|
||||
cmp r5, 0\n\
|
||||
beq _080BBD88\n\
|
||||
mov r4, sp\n\
|
||||
adds r4, 0x2\n\
|
||||
movs r2, 0x88\n\
|
||||
lsls r2, 2\n\
|
||||
mov r0, sp\n\
|
||||
adds r1, r4, 0\n\
|
||||
bl sub_80BB764\n\
|
||||
mov r0, sp\n\
|
||||
ldrh r0, [r0]\n\
|
||||
adds r0, 0x7\n\
|
||||
ldrh r1, [r4]\n\
|
||||
adds r1, 0x7\n\
|
||||
ldr r2, _080BBD84 @ =0x00000e21\n\
|
||||
bl MapGridSetMetatileIdAt\n\
|
||||
b _080BBDBC\n\
|
||||
.align 2, 0\n\
|
||||
_080BBD70: .4byte 0x00004054\n\
|
||||
_080BBD74: .4byte gSaveBlock1\n\
|
||||
_080BBD78: .4byte 0x00001a2a\n\
|
||||
|
|
@ -478,37 +477,37 @@ _080BBD7C: .4byte 0x00001a1a\n\
|
|||
_080BBD80: .4byte gDecorations\n\
|
||||
_080BBD84: .4byte 0x00000e21\n\
|
||||
_080BBD88:\n\
|
||||
mov r0, r8\n\
|
||||
cmp r0, 0x1\n\
|
||||
bne _080BBDBC\n\
|
||||
ldr r0, _080BBDC8 @ =0x00004089\n\
|
||||
bl VarGet\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
cmp r0, 0x1\n\
|
||||
bne _080BBDBC\n\
|
||||
mov r4, sp\n\
|
||||
adds r4, 0x2\n\
|
||||
movs r2, 0x88\n\
|
||||
lsls r2, 2\n\
|
||||
mov r0, sp\n\
|
||||
adds r1, r4, 0\n\
|
||||
bl sub_80BB764\n\
|
||||
mov r0, sp\n\
|
||||
ldrh r0, [r0]\n\
|
||||
adds r0, 0x7\n\
|
||||
ldrh r1, [r4]\n\
|
||||
adds r1, 0x7\n\
|
||||
ldr r2, _080BBDCC @ =0x00000e0a\n\
|
||||
bl MapGridSetMetatileIdAt\n\
|
||||
mov r0, r8\n\
|
||||
cmp r0, 0x1\n\
|
||||
bne _080BBDBC\n\
|
||||
ldr r0, _080BBDC8 @ =0x00004089\n\
|
||||
bl VarGet\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
cmp r0, 0x1\n\
|
||||
bne _080BBDBC\n\
|
||||
mov r4, sp\n\
|
||||
adds r4, 0x2\n\
|
||||
movs r2, 0x88\n\
|
||||
lsls r2, 2\n\
|
||||
mov r0, sp\n\
|
||||
adds r1, r4, 0\n\
|
||||
bl sub_80BB764\n\
|
||||
mov r0, sp\n\
|
||||
ldrh r0, [r0]\n\
|
||||
adds r0, 0x7\n\
|
||||
ldrh r1, [r4]\n\
|
||||
adds r1, 0x7\n\
|
||||
ldr r2, _080BBDCC @ =0x00000e0a\n\
|
||||
bl MapGridSetMetatileIdAt\n\
|
||||
_080BBDBC:\n\
|
||||
add sp, 0x4\n\
|
||||
pop {r3}\n\
|
||||
mov r8, r3\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.align 2, 0\n\
|
||||
add sp, 0x4\n\
|
||||
pop {r3}\n\
|
||||
mov r8, r3\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.align 2, 0\n\
|
||||
_080BBDC8: .4byte 0x00004089\n\
|
||||
_080BBDCC: .4byte 0x00000e0a\n\
|
||||
.syntax divided\n");
|
||||
|
|
@ -518,220 +517,220 @@ __attribute__((naked))
|
|||
void sub_80BBDD0(void)
|
||||
{
|
||||
asm(".syntax unified\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x14\n\
|
||||
ldr r0, _080BBE00 @ =0x00004054\n\
|
||||
bl VarGet\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
bl CurrentMapIsSecretBase\n\
|
||||
lsls r0, 24\n\
|
||||
cmp r0, 0\n\
|
||||
bne _080BBE08\n\
|
||||
ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688\n\
|
||||
str r0, [sp, 0x4]\n\
|
||||
adds r0, 0xC\n\
|
||||
str r0, [sp, 0x8]\n\
|
||||
movs r1, 0xC\n\
|
||||
str r1, [sp, 0xC]\n\
|
||||
b _080BBE1E\n\
|
||||
.align 2, 0\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x14\n\
|
||||
ldr r0, _080BBE00 @ =0x00004054\n\
|
||||
bl VarGet\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
bl CurrentMapIsSecretBase\n\
|
||||
lsls r0, 24\n\
|
||||
cmp r0, 0\n\
|
||||
bne _080BBE08\n\
|
||||
ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688\n\
|
||||
str r0, [sp, 0x4]\n\
|
||||
adds r0, 0xC\n\
|
||||
str r0, [sp, 0x8]\n\
|
||||
movs r1, 0xC\n\
|
||||
str r1, [sp, 0xC]\n\
|
||||
b _080BBE1E\n\
|
||||
.align 2, 0\n\
|
||||
_080BBE00: .4byte 0x00004054\n\
|
||||
_080BBE04: .4byte gSaveBlock1 + 0x2688\n\
|
||||
_080BBE08:\n\
|
||||
lsls r1, r4, 2\n\
|
||||
adds r1, r4\n\
|
||||
lsls r1, 5\n\
|
||||
ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A\n\
|
||||
adds r2, r1, r0\n\
|
||||
str r2, [sp, 0x4]\n\
|
||||
adds r0, 0x10\n\
|
||||
adds r1, r0\n\
|
||||
str r1, [sp, 0x8]\n\
|
||||
movs r3, 0x10\n\
|
||||
str r3, [sp, 0xC]\n\
|
||||
lsls r1, r4, 2\n\
|
||||
adds r1, r4\n\
|
||||
lsls r1, 5\n\
|
||||
ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A\n\
|
||||
adds r2, r1, r0\n\
|
||||
str r2, [sp, 0x4]\n\
|
||||
adds r0, 0x10\n\
|
||||
adds r1, r0\n\
|
||||
str r1, [sp, 0x8]\n\
|
||||
movs r3, 0x10\n\
|
||||
str r3, [sp, 0xC]\n\
|
||||
_080BBE1E:\n\
|
||||
movs r6, 0\n\
|
||||
ldr r4, [sp, 0xC]\n\
|
||||
cmp r6, r4\n\
|
||||
bcc _080BBE28\n\
|
||||
b _080BBF6C\n\
|
||||
movs r6, 0\n\
|
||||
ldr r4, [sp, 0xC]\n\
|
||||
cmp r6, r4\n\
|
||||
bcc _080BBE28\n\
|
||||
b _080BBF6C\n\
|
||||
_080BBE28:\n\
|
||||
ldr r5, _080BBF80 @ =gSaveBlock1\n\
|
||||
mov r10, r5\n\
|
||||
ldr r5, _080BBF80 @ =gSaveBlock1\n\
|
||||
mov r10, r5\n\
|
||||
_080BBE2C:\n\
|
||||
ldr r1, [sp, 0x4]\n\
|
||||
adds r0, r1, r6\n\
|
||||
ldrb r1, [r0]\n\
|
||||
mov r9, r0\n\
|
||||
adds r2, r6, 0x1\n\
|
||||
str r2, [sp, 0x10]\n\
|
||||
cmp r1, 0\n\
|
||||
bne _080BBE3E\n\
|
||||
b _080BBF5E\n\
|
||||
ldr r1, [sp, 0x4]\n\
|
||||
adds r0, r1, r6\n\
|
||||
ldrb r1, [r0]\n\
|
||||
mov r9, r0\n\
|
||||
adds r2, r6, 0x1\n\
|
||||
str r2, [sp, 0x10]\n\
|
||||
cmp r1, 0\n\
|
||||
bne _080BBE3E\n\
|
||||
b _080BBF5E\n\
|
||||
_080BBE3E:\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 5\n\
|
||||
ldr r3, _080BBF84 @ =gDecorations\n\
|
||||
adds r0, r3\n\
|
||||
ldrb r0, [r0, 0x11]\n\
|
||||
cmp r0, 0x4\n\
|
||||
beq _080BBE4E\n\
|
||||
b _080BBF5E\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 5\n\
|
||||
ldr r3, _080BBF84 @ =gDecorations\n\
|
||||
adds r0, r3\n\
|
||||
ldrb r0, [r0, 0x11]\n\
|
||||
cmp r0, 0x4\n\
|
||||
beq _080BBE4E\n\
|
||||
b _080BBF5E\n\
|
||||
_080BBE4E:\n\
|
||||
movs r5, 0\n\
|
||||
ldr r0, _080BBF88 @ =gMapHeader\n\
|
||||
ldr r2, [r0, 0x4]\n\
|
||||
ldrb r3, [r2]\n\
|
||||
mov r8, r0\n\
|
||||
cmp r5, r3\n\
|
||||
bcs _080BBE8E\n\
|
||||
ldr r0, [r2, 0x4]\n\
|
||||
ldrh r1, [r0, 0x14]\n\
|
||||
ldr r4, _080BBF8C @ =gSpecialVar_0x8004\n\
|
||||
ldrh r0, [r4]\n\
|
||||
adds r0, 0xAE\n\
|
||||
adds r7, r4, 0\n\
|
||||
cmp r1, r0\n\
|
||||
beq _080BBE8E\n\
|
||||
adds r4, r2, 0\n\
|
||||
adds r2, r3, 0\n\
|
||||
movs r5, 0\n\
|
||||
ldr r0, _080BBF88 @ =gMapHeader\n\
|
||||
ldr r2, [r0, 0x4]\n\
|
||||
ldrb r3, [r2]\n\
|
||||
mov r8, r0\n\
|
||||
cmp r5, r3\n\
|
||||
bcs _080BBE8E\n\
|
||||
ldr r0, [r2, 0x4]\n\
|
||||
ldrh r1, [r0, 0x14]\n\
|
||||
ldr r4, _080BBF8C @ =gSpecialVar_0x8004\n\
|
||||
ldrh r0, [r4]\n\
|
||||
adds r0, 0xAE\n\
|
||||
adds r7, r4, 0\n\
|
||||
cmp r1, r0\n\
|
||||
beq _080BBE8E\n\
|
||||
adds r4, r2, 0\n\
|
||||
adds r2, r3, 0\n\
|
||||
_080BBE70:\n\
|
||||
adds r0, r5, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r5, r0, 24\n\
|
||||
cmp r5, r2\n\
|
||||
bcs _080BBE8E\n\
|
||||
ldr r1, [r4, 0x4]\n\
|
||||
lsls r0, r5, 1\n\
|
||||
adds r0, r5\n\
|
||||
lsls r0, 3\n\
|
||||
adds r0, r1\n\
|
||||
ldrh r1, [r0, 0x14]\n\
|
||||
ldrh r0, [r7]\n\
|
||||
adds r0, 0xAE\n\
|
||||
cmp r1, r0\n\
|
||||
bne _080BBE70\n\
|
||||
adds r0, r5, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r5, r0, 24\n\
|
||||
cmp r5, r2\n\
|
||||
bcs _080BBE8E\n\
|
||||
ldr r1, [r4, 0x4]\n\
|
||||
lsls r0, r5, 1\n\
|
||||
adds r0, r5\n\
|
||||
lsls r0, 3\n\
|
||||
adds r0, r1\n\
|
||||
ldrh r1, [r0, 0x14]\n\
|
||||
ldrh r0, [r7]\n\
|
||||
adds r0, 0xAE\n\
|
||||
cmp r1, r0\n\
|
||||
bne _080BBE70\n\
|
||||
_080BBE8E:\n\
|
||||
mov r1, r8\n\
|
||||
ldr r0, [r1, 0x4]\n\
|
||||
ldrb r0, [r0]\n\
|
||||
cmp r5, r0\n\
|
||||
beq _080BBF5E\n\
|
||||
ldr r7, _080BBF90 @ =gSpecialVar_0x8006\n\
|
||||
ldr r2, [sp, 0x8]\n\
|
||||
adds r1, r2, r6\n\
|
||||
ldrb r0, [r1]\n\
|
||||
lsrs r0, 4\n\
|
||||
strh r0, [r7]\n\
|
||||
ldr r6, _080BBF94 @ =gSpecialVar_0x8007\n\
|
||||
ldrb r1, [r1]\n\
|
||||
movs r0, 0xF\n\
|
||||
ands r0, r1\n\
|
||||
strh r0, [r6]\n\
|
||||
ldrh r0, [r7]\n\
|
||||
adds r0, 0x7\n\
|
||||
ldrh r1, [r6]\n\
|
||||
adds r1, 0x7\n\
|
||||
bl MapGridGetMetatileBehaviorAt\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r4, r0, 24\n\
|
||||
adds r0, r4, 0\n\
|
||||
bl sub_80572D8\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
cmp r0, 0x1\n\
|
||||
beq _080BBEDA\n\
|
||||
adds r0, r4, 0\n\
|
||||
bl sub_80572EC\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
cmp r0, 0x1\n\
|
||||
bne _080BBF5E\n\
|
||||
mov r1, r8\n\
|
||||
ldr r0, [r1, 0x4]\n\
|
||||
ldrb r0, [r0]\n\
|
||||
cmp r5, r0\n\
|
||||
beq _080BBF5E\n\
|
||||
ldr r7, _080BBF90 @ =gSpecialVar_0x8006\n\
|
||||
ldr r2, [sp, 0x8]\n\
|
||||
adds r1, r2, r6\n\
|
||||
ldrb r0, [r1]\n\
|
||||
lsrs r0, 4\n\
|
||||
strh r0, [r7]\n\
|
||||
ldr r6, _080BBF94 @ =gSpecialVar_0x8007\n\
|
||||
ldrb r1, [r1]\n\
|
||||
movs r0, 0xF\n\
|
||||
ands r0, r1\n\
|
||||
strh r0, [r6]\n\
|
||||
ldrh r0, [r7]\n\
|
||||
adds r0, 0x7\n\
|
||||
ldrh r1, [r6]\n\
|
||||
adds r1, 0x7\n\
|
||||
bl MapGridGetMetatileBehaviorAt\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r4, r0, 24\n\
|
||||
adds r0, r4, 0\n\
|
||||
bl sub_80572D8\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
cmp r0, 0x1\n\
|
||||
beq _080BBEDA\n\
|
||||
adds r0, r4, 0\n\
|
||||
bl sub_80572EC\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
cmp r0, 0x1\n\
|
||||
bne _080BBF5E\n\
|
||||
_080BBEDA:\n\
|
||||
mov r3, r8\n\
|
||||
ldr r0, [r3, 0x4]\n\
|
||||
ldr r1, [r0, 0x4]\n\
|
||||
lsls r4, r5, 1\n\
|
||||
adds r4, r5\n\
|
||||
lsls r4, 3\n\
|
||||
adds r1, r4, r1\n\
|
||||
ldr r5, _080BBF98 @ =0x00003f20\n\
|
||||
adds r0, r5, 0\n\
|
||||
ldrb r1, [r1, 0x1]\n\
|
||||
adds r0, r1\n\
|
||||
ldr r1, _080BBF9C @ =gScriptResult\n\
|
||||
strh r0, [r1]\n\
|
||||
ldrh r0, [r1]\n\
|
||||
mov r2, r9\n\
|
||||
ldrb r1, [r2]\n\
|
||||
lsls r1, 5\n\
|
||||
ldr r3, _080BBFA0 @ =gDecorations + 0x1C\n\
|
||||
adds r1, r3\n\
|
||||
ldr r1, [r1]\n\
|
||||
ldrh r1, [r1]\n\
|
||||
bl VarSet\n\
|
||||
mov r5, r8\n\
|
||||
ldr r0, [r5, 0x4]\n\
|
||||
ldr r0, [r0, 0x4]\n\
|
||||
adds r4, r0\n\
|
||||
ldrb r0, [r4]\n\
|
||||
ldr r1, _080BBF9C @ =gScriptResult\n\
|
||||
strh r0, [r1]\n\
|
||||
ldr r2, _080BBF8C @ =gSpecialVar_0x8004\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r0, 0xAE\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
bl FlagReset\n\
|
||||
ldr r3, _080BBF9C @ =gScriptResult\n\
|
||||
ldrb r0, [r3]\n\
|
||||
mov r4, r10\n\
|
||||
ldrb r1, [r4, 0x5]\n\
|
||||
ldrb r2, [r4, 0x4]\n\
|
||||
bl show_sprite\n\
|
||||
ldr r5, _080BBF9C @ =gScriptResult\n\
|
||||
ldrb r0, [r5]\n\
|
||||
ldrb r1, [r4, 0x5]\n\
|
||||
ldrb r2, [r4, 0x4]\n\
|
||||
movs r4, 0\n\
|
||||
ldrsh r3, [r7, r4]\n\
|
||||
movs r5, 0\n\
|
||||
ldrsh r4, [r6, r5]\n\
|
||||
str r4, [sp]\n\
|
||||
bl sub_805C0F8\n\
|
||||
ldr r1, _080BBF9C @ =gScriptResult\n\
|
||||
ldrb r0, [r1]\n\
|
||||
mov r2, r10\n\
|
||||
ldrb r1, [r2, 0x5]\n\
|
||||
ldrb r2, [r2, 0x4]\n\
|
||||
bl sub_805C78C\n\
|
||||
ldr r3, _080BBF8C @ =gSpecialVar_0x8004\n\
|
||||
ldrh r0, [r3]\n\
|
||||
adds r0, 0x1\n\
|
||||
strh r0, [r3]\n\
|
||||
mov r3, r8\n\
|
||||
ldr r0, [r3, 0x4]\n\
|
||||
ldr r1, [r0, 0x4]\n\
|
||||
lsls r4, r5, 1\n\
|
||||
adds r4, r5\n\
|
||||
lsls r4, 3\n\
|
||||
adds r1, r4, r1\n\
|
||||
ldr r5, _080BBF98 @ =0x00003f20\n\
|
||||
adds r0, r5, 0\n\
|
||||
ldrb r1, [r1, 0x1]\n\
|
||||
adds r0, r1\n\
|
||||
ldr r1, _080BBF9C @ =gScriptResult\n\
|
||||
strh r0, [r1]\n\
|
||||
ldrh r0, [r1]\n\
|
||||
mov r2, r9\n\
|
||||
ldrb r1, [r2]\n\
|
||||
lsls r1, 5\n\
|
||||
ldr r3, _080BBFA0 @ =gDecorations + 0x1C\n\
|
||||
adds r1, r3\n\
|
||||
ldr r1, [r1]\n\
|
||||
ldrh r1, [r1]\n\
|
||||
bl VarSet\n\
|
||||
mov r5, r8\n\
|
||||
ldr r0, [r5, 0x4]\n\
|
||||
ldr r0, [r0, 0x4]\n\
|
||||
adds r4, r0\n\
|
||||
ldrb r0, [r4]\n\
|
||||
ldr r1, _080BBF9C @ =gScriptResult\n\
|
||||
strh r0, [r1]\n\
|
||||
ldr r2, _080BBF8C @ =gSpecialVar_0x8004\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r0, 0xAE\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
bl FlagReset\n\
|
||||
ldr r3, _080BBF9C @ =gScriptResult\n\
|
||||
ldrb r0, [r3]\n\
|
||||
mov r4, r10\n\
|
||||
ldrb r1, [r4, 0x5]\n\
|
||||
ldrb r2, [r4, 0x4]\n\
|
||||
bl show_sprite\n\
|
||||
ldr r5, _080BBF9C @ =gScriptResult\n\
|
||||
ldrb r0, [r5]\n\
|
||||
ldrb r1, [r4, 0x5]\n\
|
||||
ldrb r2, [r4, 0x4]\n\
|
||||
movs r4, 0\n\
|
||||
ldrsh r3, [r7, r4]\n\
|
||||
movs r5, 0\n\
|
||||
ldrsh r4, [r6, r5]\n\
|
||||
str r4, [sp]\n\
|
||||
bl sub_805C0F8\n\
|
||||
ldr r1, _080BBF9C @ =gScriptResult\n\
|
||||
ldrb r0, [r1]\n\
|
||||
mov r2, r10\n\
|
||||
ldrb r1, [r2, 0x5]\n\
|
||||
ldrb r2, [r2, 0x4]\n\
|
||||
bl sub_805C78C\n\
|
||||
ldr r3, _080BBF8C @ =gSpecialVar_0x8004\n\
|
||||
ldrh r0, [r3]\n\
|
||||
adds r0, 0x1\n\
|
||||
strh r0, [r3]\n\
|
||||
_080BBF5E:\n\
|
||||
ldr r4, [sp, 0x10]\n\
|
||||
lsls r0, r4, 24\n\
|
||||
lsrs r6, r0, 24\n\
|
||||
ldr r5, [sp, 0xC]\n\
|
||||
cmp r6, r5\n\
|
||||
bcs _080BBF6C\n\
|
||||
b _080BBE2C\n\
|
||||
ldr r4, [sp, 0x10]\n\
|
||||
lsls r0, r4, 24\n\
|
||||
lsrs r6, r0, 24\n\
|
||||
ldr r5, [sp, 0xC]\n\
|
||||
cmp r6, r5\n\
|
||||
bcs _080BBF6C\n\
|
||||
b _080BBE2C\n\
|
||||
_080BBF6C:\n\
|
||||
add sp, 0x14\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.align 2, 0\n\
|
||||
add sp, 0x14\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.align 2, 0\n\
|
||||
_080BBF7C: .4byte gSaveBlock1 + 0x1A1A\n\
|
||||
_080BBF80: .4byte gSaveBlock1\n\
|
||||
_080BBF84: .4byte gDecorations\n\
|
||||
|
|
@ -902,148 +901,148 @@ __attribute__((naked))
|
|||
void sub_80BC300(void)
|
||||
{
|
||||
asm(".syntax unified\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0xC\n\
|
||||
movs r0, 0\n\
|
||||
mov r10, r0\n\
|
||||
movs r6, 0\n\
|
||||
mov r9, r6\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0xC\n\
|
||||
movs r0, 0\n\
|
||||
mov r10, r0\n\
|
||||
movs r6, 0\n\
|
||||
mov r9, r6\n\
|
||||
_080BC314:\n\
|
||||
movs r4, 0\n\
|
||||
lsls r3, r6, 2\n\
|
||||
lsls r2, r6, 1\n\
|
||||
ldr r7, _080BC424 @ =gPlayerParty\n\
|
||||
adds r1, r6, 0x1\n\
|
||||
str r1, [sp]\n\
|
||||
adds r1, r3, 0\n\
|
||||
movs r4, 0\n\
|
||||
lsls r3, r6, 2\n\
|
||||
lsls r2, r6, 1\n\
|
||||
ldr r7, _080BC424 @ =gPlayerParty\n\
|
||||
adds r1, r6, 0x1\n\
|
||||
str r1, [sp]\n\
|
||||
adds r1, r3, 0\n\
|
||||
_080BC322:\n\
|
||||
adds r0, r1, r4\n\
|
||||
lsls r0, 1\n\
|
||||
ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54\n\
|
||||
adds r0, r5, r0\n\
|
||||
mov r5, r9\n\
|
||||
strh r5, [r0]\n\
|
||||
adds r0, r4, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
cmp r4, 0x3\n\
|
||||
bls _080BC322\n\
|
||||
ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84\n\
|
||||
adds r0, r1, r2\n\
|
||||
strh r5, [r0]\n\
|
||||
ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90\n\
|
||||
adds r0, r5, r2\n\
|
||||
mov r1, r9\n\
|
||||
strh r1, [r0]\n\
|
||||
ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C\n\
|
||||
adds r0, r2, r6\n\
|
||||
mov r5, r9\n\
|
||||
strb r5, [r0]\n\
|
||||
ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C\n\
|
||||
adds r0, r1, r3\n\
|
||||
mov r2, r9\n\
|
||||
str r2, [r0]\n\
|
||||
ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2\n\
|
||||
adds r0, r3, r6\n\
|
||||
strb r2, [r0]\n\
|
||||
movs r0, 0x64\n\
|
||||
adds r5, r6, 0\n\
|
||||
muls r5, r0\n\
|
||||
adds r4, r5, r7\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0xB\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
beq _080BC408\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0x2D\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
bne _080BC408\n\
|
||||
movs r4, 0\n\
|
||||
mov r0, r10\n\
|
||||
lsls r0, 2\n\
|
||||
mov r8, r0\n\
|
||||
mov r1, r10\n\
|
||||
lsls r7, r1, 1\n\
|
||||
adds r1, 0x1\n\
|
||||
str r1, [sp, 0x4]\n\
|
||||
ldr r2, _080BC424 @ =gPlayerParty\n\
|
||||
adds r0, r1, r4\n\
|
||||
lsls r0, 1\n\
|
||||
ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54\n\
|
||||
adds r0, r5, r0\n\
|
||||
mov r5, r9\n\
|
||||
strh r5, [r0]\n\
|
||||
adds r0, r4, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
cmp r4, 0x3\n\
|
||||
bls _080BC322\n\
|
||||
ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84\n\
|
||||
adds r0, r1, r2\n\
|
||||
strh r5, [r0]\n\
|
||||
ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90\n\
|
||||
adds r0, r5, r2\n\
|
||||
mov r1, r9\n\
|
||||
strh r1, [r0]\n\
|
||||
ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C\n\
|
||||
adds r0, r2, r6\n\
|
||||
mov r5, r9\n\
|
||||
strb r5, [r0]\n\
|
||||
ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C\n\
|
||||
adds r0, r1, r3\n\
|
||||
mov r2, r9\n\
|
||||
str r2, [r0]\n\
|
||||
ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2\n\
|
||||
adds r0, r3, r6\n\
|
||||
strb r2, [r0]\n\
|
||||
movs r0, 0x64\n\
|
||||
adds r5, r6, 0\n\
|
||||
muls r5, r0\n\
|
||||
adds r4, r5, r7\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0xB\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
beq _080BC408\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0x2D\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
bne _080BC408\n\
|
||||
movs r4, 0\n\
|
||||
mov r0, r10\n\
|
||||
lsls r0, 2\n\
|
||||
mov r8, r0\n\
|
||||
mov r1, r10\n\
|
||||
lsls r7, r1, 1\n\
|
||||
adds r1, 0x1\n\
|
||||
str r1, [sp, 0x4]\n\
|
||||
ldr r2, _080BC424 @ =gPlayerParty\n\
|
||||
_080BC38E:\n\
|
||||
adds r1, r4, 0\n\
|
||||
adds r1, 0xD\n\
|
||||
adds r0, r5, r2\n\
|
||||
str r2, [sp, 0x8]\n\
|
||||
bl GetMonData\n\
|
||||
mov r3, r8\n\
|
||||
adds r1, r3, r4\n\
|
||||
lsls r1, 1\n\
|
||||
ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54\n\
|
||||
adds r1, r3, r1\n\
|
||||
strh r0, [r1]\n\
|
||||
adds r0, r4, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
ldr r2, [sp, 0x8]\n\
|
||||
cmp r4, 0x3\n\
|
||||
bls _080BC38E\n\
|
||||
movs r0, 0x64\n\
|
||||
adds r4, r6, 0\n\
|
||||
muls r4, r0\n\
|
||||
ldr r0, _080BC424 @ =gPlayerParty\n\
|
||||
adds r4, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0xB\n\
|
||||
bl GetMonData\n\
|
||||
ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84\n\
|
||||
adds r1, r5, r7\n\
|
||||
strh r0, [r1]\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0xC\n\
|
||||
bl GetMonData\n\
|
||||
ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90\n\
|
||||
adds r1, r2, r7\n\
|
||||
strh r0, [r1]\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0x38\n\
|
||||
bl GetMonData\n\
|
||||
ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C\n\
|
||||
add r1, r10\n\
|
||||
strb r0, [r1]\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0\n\
|
||||
bl GetMonData\n\
|
||||
ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C\n\
|
||||
add r1, r8\n\
|
||||
str r0, [r1]\n\
|
||||
adds r0, r4, 0\n\
|
||||
bl sub_80BC298\n\
|
||||
ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2\n\
|
||||
add r1, r10\n\
|
||||
strb r0, [r1]\n\
|
||||
ldr r3, [sp, 0x4]\n\
|
||||
lsls r0, r3, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
mov r10, r0\n\
|
||||
adds r1, r4, 0\n\
|
||||
adds r1, 0xD\n\
|
||||
adds r0, r5, r2\n\
|
||||
str r2, [sp, 0x8]\n\
|
||||
bl GetMonData\n\
|
||||
mov r3, r8\n\
|
||||
adds r1, r3, r4\n\
|
||||
lsls r1, 1\n\
|
||||
ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54\n\
|
||||
adds r1, r3, r1\n\
|
||||
strh r0, [r1]\n\
|
||||
adds r0, r4, 0x1\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
ldr r2, [sp, 0x8]\n\
|
||||
cmp r4, 0x3\n\
|
||||
bls _080BC38E\n\
|
||||
movs r0, 0x64\n\
|
||||
adds r4, r6, 0\n\
|
||||
muls r4, r0\n\
|
||||
ldr r0, _080BC424 @ =gPlayerParty\n\
|
||||
adds r4, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0xB\n\
|
||||
bl GetMonData\n\
|
||||
ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84\n\
|
||||
adds r1, r5, r7\n\
|
||||
strh r0, [r1]\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0xC\n\
|
||||
bl GetMonData\n\
|
||||
ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90\n\
|
||||
adds r1, r2, r7\n\
|
||||
strh r0, [r1]\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0x38\n\
|
||||
bl GetMonData\n\
|
||||
ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C\n\
|
||||
add r1, r10\n\
|
||||
strb r0, [r1]\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0\n\
|
||||
bl GetMonData\n\
|
||||
ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C\n\
|
||||
add r1, r8\n\
|
||||
str r0, [r1]\n\
|
||||
adds r0, r4, 0\n\
|
||||
bl sub_80BC298\n\
|
||||
ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2\n\
|
||||
add r1, r10\n\
|
||||
strb r0, [r1]\n\
|
||||
ldr r3, [sp, 0x4]\n\
|
||||
lsls r0, r3, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
mov r10, r0\n\
|
||||
_080BC408:\n\
|
||||
ldr r5, [sp]\n\
|
||||
lsls r0, r5, 16\n\
|
||||
lsrs r6, r0, 16\n\
|
||||
cmp r6, 0x5\n\
|
||||
bls _080BC314\n\
|
||||
add sp, 0xC\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.align 2, 0\n\
|
||||
ldr r5, [sp]\n\
|
||||
lsls r0, r5, 16\n\
|
||||
lsrs r6, r0, 16\n\
|
||||
cmp r6, 0x5\n\
|
||||
bls _080BC314\n\
|
||||
add sp, 0xC\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.align 2, 0\n\
|
||||
_080BC424: .4byte gPlayerParty\n\
|
||||
_080BC428: .4byte gSaveBlock1 + 0x1A54\n\
|
||||
_080BC42C: .4byte gSaveBlock1 + 0x1A84\n\
|
||||
|
|
|
|||
690
src/util.c
690
src/util.c
|
|
@ -6,41 +6,41 @@ extern const u8 gSpriteDimensions[3][4][2];
|
|||
extern const u16 gCrc16Table[];
|
||||
|
||||
u8 CreateInvisibleSpriteWithCallback(void (*callback)(struct Sprite *)) {
|
||||
u8 sprite = CreateSprite(&gInvisibleSpriteTemplate, 248, 168, 14);
|
||||
gSprites[sprite].invisible = TRUE;
|
||||
gSprites[sprite].callback = callback;
|
||||
return sprite;
|
||||
u8 sprite = CreateSprite(&gInvisibleSpriteTemplate, 248, 168, 14);
|
||||
gSprites[sprite].invisible = TRUE;
|
||||
gSprites[sprite].callback = callback;
|
||||
return sprite;
|
||||
}
|
||||
|
||||
void StoreWordInTwoHalfwords(u16 *h, u32 w) {
|
||||
h[0] = (u16)(w);
|
||||
h[1] = (u16)(w >> 16);
|
||||
h[0] = (u16)(w);
|
||||
h[1] = (u16)(w >> 16);
|
||||
}
|
||||
|
||||
void LoadWordFromTwoHalfwords(u16 *h, u32 *w) {
|
||||
*w = h[0] | (s16)h[1] << 16;
|
||||
*w = h[0] | (s16)h[1] << 16;
|
||||
}
|
||||
|
||||
void SetBgAffineStruct(struct BgAffineSrcData *src, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha) {
|
||||
src->texX = texX;
|
||||
src->texY = texY;
|
||||
src->scrX = scrX;
|
||||
src->scrY = scrY;
|
||||
src->sx = sx;
|
||||
src->sy = sy;
|
||||
src->alpha = alpha;
|
||||
src->texX = texX;
|
||||
src->texY = texY;
|
||||
src->scrX = scrX;
|
||||
src->scrY = scrY;
|
||||
src->sx = sx;
|
||||
src->sy = sy;
|
||||
src->alpha = alpha;
|
||||
}
|
||||
|
||||
void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha) {
|
||||
struct BgAffineSrcData src;
|
||||
SetBgAffineStruct(
|
||||
&src,
|
||||
texX, texY,
|
||||
scrX, scrY,
|
||||
sx, sy,
|
||||
alpha
|
||||
);
|
||||
BgAffineSet(&src, dest, 1);
|
||||
struct BgAffineSrcData src;
|
||||
SetBgAffineStruct(
|
||||
&src,
|
||||
texX, texY,
|
||||
scrX, scrY,
|
||||
sx, sy,
|
||||
alpha
|
||||
);
|
||||
BgAffineSet(&src, dest, 1);
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
|
|
@ -48,342 +48,342 @@ void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s
|
|||
// Functionally equivalent.
|
||||
// Only the two yflip loops don't match.
|
||||
void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) {
|
||||
u8 x, y;
|
||||
s8 i, j;
|
||||
u8 xflip[32];
|
||||
u8 h = gSpriteDimensions[shape][size][1];
|
||||
u8 w = gSpriteDimensions[shape][size][0];
|
||||
for (y = 0; y < h; y++) {
|
||||
int filler = 32 - w;
|
||||
for (x = 0; x < w; x++) {
|
||||
int tile = (*tilemap & 0x3ff) * 32;
|
||||
int attr = *tilemap & 0xc00;
|
||||
if (attr == 0) {
|
||||
void *src = tiles + tile;
|
||||
void *dest = output;
|
||||
int length = 32;
|
||||
DmaCopy32(3, src, dest, length);
|
||||
} else if (attr == 0x800) { // yflip
|
||||
for (i = 0; i < 8; i++) {
|
||||
void *src = tiles;
|
||||
void *dest = output;
|
||||
int length = 4;
|
||||
// this is likely wrong, but makes it closer to matching
|
||||
src += tile + (7 - i) * 4;
|
||||
dest += i * 4;
|
||||
DmaCopy32(3, src, dest, length);
|
||||
}
|
||||
} else { // xflip
|
||||
for (i = 0; i < 8; i++) {
|
||||
for (j = 0; j < 4; j++) {
|
||||
u8 i2 = i * 4;
|
||||
xflip[i2 + (3-j)] = (tiles[tile + i2 + j] & 0xf) << 4;
|
||||
xflip[i2 + (3-j)] |= tiles[tile + i2 + j] >> 4;
|
||||
}
|
||||
}
|
||||
if (*tilemap & 0x800) { // yflip
|
||||
for (i = 0; i < 8; i++) {
|
||||
void *src = xflip + (7-i) * 4;
|
||||
void *dest = output + i*4;
|
||||
int length = 4;
|
||||
DmaCopy32(3, src, dest, length);
|
||||
}
|
||||
} else {
|
||||
void *src = xflip;
|
||||
void *dest = output;
|
||||
int length = 32;
|
||||
DmaCopy32(3, src, dest, length);
|
||||
}
|
||||
}
|
||||
tilemap++;
|
||||
output += 32;
|
||||
}
|
||||
tilemap += filler;
|
||||
}
|
||||
u8 x, y;
|
||||
s8 i, j;
|
||||
u8 xflip[32];
|
||||
u8 h = gSpriteDimensions[shape][size][1];
|
||||
u8 w = gSpriteDimensions[shape][size][0];
|
||||
for (y = 0; y < h; y++) {
|
||||
int filler = 32 - w;
|
||||
for (x = 0; x < w; x++) {
|
||||
int tile = (*tilemap & 0x3ff) * 32;
|
||||
int attr = *tilemap & 0xc00;
|
||||
if (attr == 0) {
|
||||
void *src = tiles + tile;
|
||||
void *dest = output;
|
||||
int length = 32;
|
||||
DmaCopy32(3, src, dest, length);
|
||||
} else if (attr == 0x800) { // yflip
|
||||
for (i = 0; i < 8; i++) {
|
||||
void *src = tiles;
|
||||
void *dest = output;
|
||||
int length = 4;
|
||||
// this is likely wrong, but makes it closer to matching
|
||||
src += tile + (7 - i) * 4;
|
||||
dest += i * 4;
|
||||
DmaCopy32(3, src, dest, length);
|
||||
}
|
||||
} else { // xflip
|
||||
for (i = 0; i < 8; i++) {
|
||||
for (j = 0; j < 4; j++) {
|
||||
u8 i2 = i * 4;
|
||||
xflip[i2 + (3-j)] = (tiles[tile + i2 + j] & 0xf) << 4;
|
||||
xflip[i2 + (3-j)] |= tiles[tile + i2 + j] >> 4;
|
||||
}
|
||||
}
|
||||
if (*tilemap & 0x800) { // yflip
|
||||
for (i = 0; i < 8; i++) {
|
||||
void *src = xflip + (7-i) * 4;
|
||||
void *dest = output + i*4;
|
||||
int length = 4;
|
||||
DmaCopy32(3, src, dest, length);
|
||||
}
|
||||
} else {
|
||||
void *src = xflip;
|
||||
void *dest = output;
|
||||
int length = 32;
|
||||
DmaCopy32(3, src, dest, length);
|
||||
}
|
||||
}
|
||||
tilemap++;
|
||||
output += 32;
|
||||
}
|
||||
tilemap += filler;
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
__attribute__((naked)) void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) {
|
||||
asm("\n"
|
||||
" .syntax unified\n"
|
||||
" push {r4-r7,lr}\n"
|
||||
" mov r7, r10\n"
|
||||
" mov r6, r9\n"
|
||||
" mov r5, r8\n"
|
||||
" push {r5-r7}\n"
|
||||
" sub sp, 0x3C\n"
|
||||
" str r2, [sp, 0x20]\n"
|
||||
" adds r4, r3, 0\n"
|
||||
" ldr r7, [sp, 0x5C]\n"
|
||||
" lsls r0, 24\n"
|
||||
" lsls r1, 24\n"
|
||||
" ldr r2, _08041008 @ =gSpriteDimensions\n"
|
||||
" lsrs r1, 23\n"
|
||||
" lsrs r0, 21\n"
|
||||
" adds r1, r0\n"
|
||||
" adds r0, r2, 0x1\n"
|
||||
" adds r0, r1, r0\n"
|
||||
" ldrb r0, [r0]\n"
|
||||
" str r0, [sp, 0x24]\n"
|
||||
" adds r1, r2\n"
|
||||
" ldrb r1, [r1]\n"
|
||||
" str r1, [sp, 0x28]\n"
|
||||
" movs r1, 0\n"
|
||||
" cmp r1, r0\n"
|
||||
" bcc _08040FB4\n"
|
||||
" b _08041136\n"
|
||||
"_08040FB4:\n"
|
||||
" movs r0, 0x20\n"
|
||||
" ldr r2, [sp, 0x28]\n"
|
||||
" subs r0, r2\n"
|
||||
" lsls r0, 1\n"
|
||||
" str r0, [sp, 0x2C]\n"
|
||||
"_08040FBE:\n"
|
||||
" movs r2, 0\n"
|
||||
" adds r1, 0x1\n"
|
||||
" str r1, [sp, 0x34]\n"
|
||||
" ldr r3, [sp, 0x28]\n"
|
||||
" cmp r2, r3\n"
|
||||
" bcc _08040FCC\n"
|
||||
" b _08041124\n"
|
||||
"_08040FCC:\n"
|
||||
" ldr r0, _0804100C @ =0x040000d4\n"
|
||||
" mov r8, r0\n"
|
||||
"_08040FD0:\n"
|
||||
" ldrh r1, [r4]\n"
|
||||
" ldr r0, _08041010 @ =0x000003ff\n"
|
||||
" ands r0, r1\n"
|
||||
" lsls r0, 5\n"
|
||||
" mov r12, r0\n"
|
||||
" movs r0, 0xC0\n"
|
||||
" lsls r0, 4\n"
|
||||
" ands r0, r1\n"
|
||||
" mov r3, sp\n"
|
||||
" strh r1, [r3, 0x38]\n"
|
||||
" cmp r0, 0\n"
|
||||
" bne _08041018\n"
|
||||
" ldr r0, [sp, 0x20]\n"
|
||||
" add r0, r12\n"
|
||||
" mov r1, r8\n"
|
||||
" str r0, [r1]\n"
|
||||
" str r7, [r1, 0x4]\n"
|
||||
" ldr r3, _08041014 @ =0x84000008\n"
|
||||
" str r3, [r1, 0x8]\n"
|
||||
" ldr r0, [r1, 0x8]\n"
|
||||
" adds r4, 0x2\n"
|
||||
" str r4, [sp, 0x30]\n"
|
||||
" adds r7, 0x20\n"
|
||||
" mov r10, r7\n"
|
||||
" adds r2, 0x1\n"
|
||||
" mov r9, r2\n"
|
||||
" b _08041112\n"
|
||||
" .align 2, 0\n"
|
||||
"_08041008: .4byte gSpriteDimensions\n"
|
||||
"_0804100C: .4byte 0x040000d4\n"
|
||||
"_08041010: .4byte 0x000003ff\n"
|
||||
"_08041014: .4byte 0x84000008\n"
|
||||
"_08041018:\n"
|
||||
" movs r1, 0x80\n"
|
||||
" lsls r1, 4\n"
|
||||
" cmp r0, r1\n"
|
||||
" bne _08041068\n"
|
||||
" movs r3, 0\n"
|
||||
" adds r4, 0x2\n"
|
||||
" str r4, [sp, 0x30]\n"
|
||||
" movs r0, 0x20\n"
|
||||
" adds r0, r7\n"
|
||||
" mov r10, r0\n"
|
||||
" adds r2, 0x1\n"
|
||||
" mov r9, r2\n"
|
||||
" ldr r4, _08041060 @ =0x040000d4\n"
|
||||
" ldr r6, _08041064 @ =0x84000001\n"
|
||||
" movs r5, 0x7\n"
|
||||
"_08041036:\n"
|
||||
" lsls r2, r3, 24\n"
|
||||
" asrs r2, 24\n"
|
||||
" subs r0, r5, r2\n"
|
||||
" lsls r0, 2\n"
|
||||
" add r0, r12\n"
|
||||
" ldr r1, [sp, 0x20]\n"
|
||||
" adds r0, r1, r0\n"
|
||||
" lsls r1, r2, 2\n"
|
||||
" adds r1, r7, r1\n"
|
||||
" str r0, [r4]\n"
|
||||
" str r1, [r4, 0x4]\n"
|
||||
" str r6, [r4, 0x8]\n"
|
||||
" ldr r0, [r4, 0x8]\n"
|
||||
" adds r2, 0x1\n"
|
||||
" lsls r2, 24\n"
|
||||
" lsrs r3, r2, 24\n"
|
||||
" asrs r2, 24\n"
|
||||
" cmp r2, 0x7\n"
|
||||
" ble _08041036\n"
|
||||
" b _08041112\n"
|
||||
" .align 2, 0\n"
|
||||
"_08041060: .4byte 0x040000d4\n"
|
||||
"_08041064: .4byte 0x84000001\n"
|
||||
"_08041068:\n"
|
||||
" movs r3, 0\n"
|
||||
" adds r4, 0x2\n"
|
||||
" str r4, [sp, 0x30]\n"
|
||||
" movs r0, 0x20\n"
|
||||
" adds r0, r7\n"
|
||||
" mov r10, r0\n"
|
||||
" adds r2, 0x1\n"
|
||||
" mov r9, r2\n"
|
||||
"_08041078:\n"
|
||||
" movs r2, 0\n"
|
||||
" lsls r4, r3, 24\n"
|
||||
" lsls r0, r4, 2\n"
|
||||
" lsrs r0, 24\n"
|
||||
" adds r6, r0, 0x3\n"
|
||||
" mov r1, r12\n"
|
||||
" adds r5, r1, r0\n"
|
||||
"_08041086:\n"
|
||||
" lsls r1, r2, 24\n"
|
||||
" asrs r1, 24\n"
|
||||
" subs r0, r6, r1\n"
|
||||
" mov r2, sp\n"
|
||||
" adds r3, r2, r0\n"
|
||||
" adds r0, r5, r1\n"
|
||||
" ldr r2, [sp, 0x20]\n"
|
||||
" adds r0, r2, r0\n"
|
||||
" ldrb r2, [r0]\n"
|
||||
" movs r0, 0xF\n"
|
||||
" ands r0, r2\n"
|
||||
" lsls r0, 4\n"
|
||||
" lsrs r2, 4\n"
|
||||
" orrs r0, r2\n"
|
||||
" strb r0, [r3]\n"
|
||||
" adds r1, 0x1\n"
|
||||
" lsls r1, 24\n"
|
||||
" lsrs r2, r1, 24\n"
|
||||
" asrs r1, 24\n"
|
||||
" cmp r1, 0x3\n"
|
||||
" ble _08041086\n"
|
||||
" movs r3, 0x80\n"
|
||||
" lsls r3, 17\n"
|
||||
" adds r0, r4, r3\n"
|
||||
" lsrs r3, r0, 24\n"
|
||||
" asrs r0, 24\n"
|
||||
" cmp r0, 0x7\n"
|
||||
" ble _08041078\n"
|
||||
" movs r0, 0x80\n"
|
||||
" lsls r0, 4\n"
|
||||
" mov r1, sp\n"
|
||||
" ldrh r1, [r1, 0x38]\n"
|
||||
" ands r0, r1\n"
|
||||
" cmp r0, 0\n"
|
||||
" beq _08041104\n"
|
||||
" movs r3, 0\n"
|
||||
" ldr r4, _080410FC @ =0x040000d4\n"
|
||||
" ldr r6, _08041100 @ =0x84000001\n"
|
||||
" movs r5, 0x7\n"
|
||||
"_080410D4:\n"
|
||||
" lsls r1, r3, 24\n"
|
||||
" asrs r1, 24\n"
|
||||
" subs r0, r5, r1\n"
|
||||
" lsls r0, 2\n"
|
||||
" mov r3, sp\n"
|
||||
" adds r2, r3, r0\n"
|
||||
" lsls r0, r1, 2\n"
|
||||
" adds r0, r7, r0\n"
|
||||
" str r2, [r4]\n"
|
||||
" str r0, [r4, 0x4]\n"
|
||||
" str r6, [r4, 0x8]\n"
|
||||
" ldr r0, [r4, 0x8]\n"
|
||||
" adds r1, 0x1\n"
|
||||
" lsls r1, 24\n"
|
||||
" lsrs r3, r1, 24\n"
|
||||
" asrs r1, 24\n"
|
||||
" cmp r1, 0x7\n"
|
||||
" ble _080410D4\n"
|
||||
" b _08041112\n"
|
||||
" .align 2, 0\n"
|
||||
"_080410FC: .4byte 0x040000d4\n"
|
||||
"_08041100: .4byte 0x84000001\n"
|
||||
"_08041104:\n"
|
||||
" mov r0, sp\n"
|
||||
" mov r1, r8\n"
|
||||
" str r0, [r1]\n"
|
||||
" str r7, [r1, 0x4]\n"
|
||||
" ldr r2, _08041148 @ =0x84000008\n"
|
||||
" str r2, [r1, 0x8]\n"
|
||||
" ldr r0, [r1, 0x8]\n"
|
||||
"_08041112:\n"
|
||||
" ldr r4, [sp, 0x30]\n"
|
||||
" mov r7, r10\n"
|
||||
" mov r3, r9\n"
|
||||
" lsls r0, r3, 24\n"
|
||||
" lsrs r2, r0, 24\n"
|
||||
" ldr r0, [sp, 0x28]\n"
|
||||
" cmp r2, r0\n"
|
||||
" bcs _08041124\n"
|
||||
" b _08040FD0\n"
|
||||
"_08041124:\n"
|
||||
" ldr r1, [sp, 0x2C]\n"
|
||||
" adds r4, r1\n"
|
||||
" ldr r2, [sp, 0x34]\n"
|
||||
" lsls r0, r2, 24\n"
|
||||
" lsrs r1, r0, 24\n"
|
||||
" ldr r3, [sp, 0x24]\n"
|
||||
" cmp r1, r3\n"
|
||||
" bcs _08041136\n"
|
||||
" b _08040FBE\n"
|
||||
"_08041136:\n"
|
||||
" add sp, 0x3C\n"
|
||||
" pop {r3-r5}\n"
|
||||
" mov r8, r3\n"
|
||||
" mov r9, r4\n"
|
||||
" mov r10, r5\n"
|
||||
" pop {r4-r7}\n"
|
||||
" pop {r0}\n"
|
||||
" bx r0\n"
|
||||
" .align 2, 0\n"
|
||||
"_08041148: .4byte 0x84000008\n"
|
||||
" .syntax divided\n"
|
||||
);
|
||||
asm("\n"
|
||||
" .syntax unified\n"
|
||||
" push {r4-r7,lr}\n"
|
||||
" mov r7, r10\n"
|
||||
" mov r6, r9\n"
|
||||
" mov r5, r8\n"
|
||||
" push {r5-r7}\n"
|
||||
" sub sp, 0x3C\n"
|
||||
" str r2, [sp, 0x20]\n"
|
||||
" adds r4, r3, 0\n"
|
||||
" ldr r7, [sp, 0x5C]\n"
|
||||
" lsls r0, 24\n"
|
||||
" lsls r1, 24\n"
|
||||
" ldr r2, _08041008 @ =gSpriteDimensions\n"
|
||||
" lsrs r1, 23\n"
|
||||
" lsrs r0, 21\n"
|
||||
" adds r1, r0\n"
|
||||
" adds r0, r2, 0x1\n"
|
||||
" adds r0, r1, r0\n"
|
||||
" ldrb r0, [r0]\n"
|
||||
" str r0, [sp, 0x24]\n"
|
||||
" adds r1, r2\n"
|
||||
" ldrb r1, [r1]\n"
|
||||
" str r1, [sp, 0x28]\n"
|
||||
" movs r1, 0\n"
|
||||
" cmp r1, r0\n"
|
||||
" bcc _08040FB4\n"
|
||||
" b _08041136\n"
|
||||
"_08040FB4:\n"
|
||||
" movs r0, 0x20\n"
|
||||
" ldr r2, [sp, 0x28]\n"
|
||||
" subs r0, r2\n"
|
||||
" lsls r0, 1\n"
|
||||
" str r0, [sp, 0x2C]\n"
|
||||
"_08040FBE:\n"
|
||||
" movs r2, 0\n"
|
||||
" adds r1, 0x1\n"
|
||||
" str r1, [sp, 0x34]\n"
|
||||
" ldr r3, [sp, 0x28]\n"
|
||||
" cmp r2, r3\n"
|
||||
" bcc _08040FCC\n"
|
||||
" b _08041124\n"
|
||||
"_08040FCC:\n"
|
||||
" ldr r0, _0804100C @ =0x040000d4\n"
|
||||
" mov r8, r0\n"
|
||||
"_08040FD0:\n"
|
||||
" ldrh r1, [r4]\n"
|
||||
" ldr r0, _08041010 @ =0x000003ff\n"
|
||||
" ands r0, r1\n"
|
||||
" lsls r0, 5\n"
|
||||
" mov r12, r0\n"
|
||||
" movs r0, 0xC0\n"
|
||||
" lsls r0, 4\n"
|
||||
" ands r0, r1\n"
|
||||
" mov r3, sp\n"
|
||||
" strh r1, [r3, 0x38]\n"
|
||||
" cmp r0, 0\n"
|
||||
" bne _08041018\n"
|
||||
" ldr r0, [sp, 0x20]\n"
|
||||
" add r0, r12\n"
|
||||
" mov r1, r8\n"
|
||||
" str r0, [r1]\n"
|
||||
" str r7, [r1, 0x4]\n"
|
||||
" ldr r3, _08041014 @ =0x84000008\n"
|
||||
" str r3, [r1, 0x8]\n"
|
||||
" ldr r0, [r1, 0x8]\n"
|
||||
" adds r4, 0x2\n"
|
||||
" str r4, [sp, 0x30]\n"
|
||||
" adds r7, 0x20\n"
|
||||
" mov r10, r7\n"
|
||||
" adds r2, 0x1\n"
|
||||
" mov r9, r2\n"
|
||||
" b _08041112\n"
|
||||
" .align 2, 0\n"
|
||||
"_08041008: .4byte gSpriteDimensions\n"
|
||||
"_0804100C: .4byte 0x040000d4\n"
|
||||
"_08041010: .4byte 0x000003ff\n"
|
||||
"_08041014: .4byte 0x84000008\n"
|
||||
"_08041018:\n"
|
||||
" movs r1, 0x80\n"
|
||||
" lsls r1, 4\n"
|
||||
" cmp r0, r1\n"
|
||||
" bne _08041068\n"
|
||||
" movs r3, 0\n"
|
||||
" adds r4, 0x2\n"
|
||||
" str r4, [sp, 0x30]\n"
|
||||
" movs r0, 0x20\n"
|
||||
" adds r0, r7\n"
|
||||
" mov r10, r0\n"
|
||||
" adds r2, 0x1\n"
|
||||
" mov r9, r2\n"
|
||||
" ldr r4, _08041060 @ =0x040000d4\n"
|
||||
" ldr r6, _08041064 @ =0x84000001\n"
|
||||
" movs r5, 0x7\n"
|
||||
"_08041036:\n"
|
||||
" lsls r2, r3, 24\n"
|
||||
" asrs r2, 24\n"
|
||||
" subs r0, r5, r2\n"
|
||||
" lsls r0, 2\n"
|
||||
" add r0, r12\n"
|
||||
" ldr r1, [sp, 0x20]\n"
|
||||
" adds r0, r1, r0\n"
|
||||
" lsls r1, r2, 2\n"
|
||||
" adds r1, r7, r1\n"
|
||||
" str r0, [r4]\n"
|
||||
" str r1, [r4, 0x4]\n"
|
||||
" str r6, [r4, 0x8]\n"
|
||||
" ldr r0, [r4, 0x8]\n"
|
||||
" adds r2, 0x1\n"
|
||||
" lsls r2, 24\n"
|
||||
" lsrs r3, r2, 24\n"
|
||||
" asrs r2, 24\n"
|
||||
" cmp r2, 0x7\n"
|
||||
" ble _08041036\n"
|
||||
" b _08041112\n"
|
||||
" .align 2, 0\n"
|
||||
"_08041060: .4byte 0x040000d4\n"
|
||||
"_08041064: .4byte 0x84000001\n"
|
||||
"_08041068:\n"
|
||||
" movs r3, 0\n"
|
||||
" adds r4, 0x2\n"
|
||||
" str r4, [sp, 0x30]\n"
|
||||
" movs r0, 0x20\n"
|
||||
" adds r0, r7\n"
|
||||
" mov r10, r0\n"
|
||||
" adds r2, 0x1\n"
|
||||
" mov r9, r2\n"
|
||||
"_08041078:\n"
|
||||
" movs r2, 0\n"
|
||||
" lsls r4, r3, 24\n"
|
||||
" lsls r0, r4, 2\n"
|
||||
" lsrs r0, 24\n"
|
||||
" adds r6, r0, 0x3\n"
|
||||
" mov r1, r12\n"
|
||||
" adds r5, r1, r0\n"
|
||||
"_08041086:\n"
|
||||
" lsls r1, r2, 24\n"
|
||||
" asrs r1, 24\n"
|
||||
" subs r0, r6, r1\n"
|
||||
" mov r2, sp\n"
|
||||
" adds r3, r2, r0\n"
|
||||
" adds r0, r5, r1\n"
|
||||
" ldr r2, [sp, 0x20]\n"
|
||||
" adds r0, r2, r0\n"
|
||||
" ldrb r2, [r0]\n"
|
||||
" movs r0, 0xF\n"
|
||||
" ands r0, r2\n"
|
||||
" lsls r0, 4\n"
|
||||
" lsrs r2, 4\n"
|
||||
" orrs r0, r2\n"
|
||||
" strb r0, [r3]\n"
|
||||
" adds r1, 0x1\n"
|
||||
" lsls r1, 24\n"
|
||||
" lsrs r2, r1, 24\n"
|
||||
" asrs r1, 24\n"
|
||||
" cmp r1, 0x3\n"
|
||||
" ble _08041086\n"
|
||||
" movs r3, 0x80\n"
|
||||
" lsls r3, 17\n"
|
||||
" adds r0, r4, r3\n"
|
||||
" lsrs r3, r0, 24\n"
|
||||
" asrs r0, 24\n"
|
||||
" cmp r0, 0x7\n"
|
||||
" ble _08041078\n"
|
||||
" movs r0, 0x80\n"
|
||||
" lsls r0, 4\n"
|
||||
" mov r1, sp\n"
|
||||
" ldrh r1, [r1, 0x38]\n"
|
||||
" ands r0, r1\n"
|
||||
" cmp r0, 0\n"
|
||||
" beq _08041104\n"
|
||||
" movs r3, 0\n"
|
||||
" ldr r4, _080410FC @ =0x040000d4\n"
|
||||
" ldr r6, _08041100 @ =0x84000001\n"
|
||||
" movs r5, 0x7\n"
|
||||
"_080410D4:\n"
|
||||
" lsls r1, r3, 24\n"
|
||||
" asrs r1, 24\n"
|
||||
" subs r0, r5, r1\n"
|
||||
" lsls r0, 2\n"
|
||||
" mov r3, sp\n"
|
||||
" adds r2, r3, r0\n"
|
||||
" lsls r0, r1, 2\n"
|
||||
" adds r0, r7, r0\n"
|
||||
" str r2, [r4]\n"
|
||||
" str r0, [r4, 0x4]\n"
|
||||
" str r6, [r4, 0x8]\n"
|
||||
" ldr r0, [r4, 0x8]\n"
|
||||
" adds r1, 0x1\n"
|
||||
" lsls r1, 24\n"
|
||||
" lsrs r3, r1, 24\n"
|
||||
" asrs r1, 24\n"
|
||||
" cmp r1, 0x7\n"
|
||||
" ble _080410D4\n"
|
||||
" b _08041112\n"
|
||||
" .align 2, 0\n"
|
||||
"_080410FC: .4byte 0x040000d4\n"
|
||||
"_08041100: .4byte 0x84000001\n"
|
||||
"_08041104:\n"
|
||||
" mov r0, sp\n"
|
||||
" mov r1, r8\n"
|
||||
" str r0, [r1]\n"
|
||||
" str r7, [r1, 0x4]\n"
|
||||
" ldr r2, _08041148 @ =0x84000008\n"
|
||||
" str r2, [r1, 0x8]\n"
|
||||
" ldr r0, [r1, 0x8]\n"
|
||||
"_08041112:\n"
|
||||
" ldr r4, [sp, 0x30]\n"
|
||||
" mov r7, r10\n"
|
||||
" mov r3, r9\n"
|
||||
" lsls r0, r3, 24\n"
|
||||
" lsrs r2, r0, 24\n"
|
||||
" ldr r0, [sp, 0x28]\n"
|
||||
" cmp r2, r0\n"
|
||||
" bcs _08041124\n"
|
||||
" b _08040FD0\n"
|
||||
"_08041124:\n"
|
||||
" ldr r1, [sp, 0x2C]\n"
|
||||
" adds r4, r1\n"
|
||||
" ldr r2, [sp, 0x34]\n"
|
||||
" lsls r0, r2, 24\n"
|
||||
" lsrs r1, r0, 24\n"
|
||||
" ldr r3, [sp, 0x24]\n"
|
||||
" cmp r1, r3\n"
|
||||
" bcs _08041136\n"
|
||||
" b _08040FBE\n"
|
||||
"_08041136:\n"
|
||||
" add sp, 0x3C\n"
|
||||
" pop {r3-r5}\n"
|
||||
" mov r8, r3\n"
|
||||
" mov r9, r4\n"
|
||||
" mov r10, r5\n"
|
||||
" pop {r4-r7}\n"
|
||||
" pop {r0}\n"
|
||||
" bx r0\n"
|
||||
" .align 2, 0\n"
|
||||
"_08041148: .4byte 0x84000008\n"
|
||||
" .syntax divided\n"
|
||||
);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int CountTrailingZeroBits(u32 value) {
|
||||
u8 i;
|
||||
for (i = 0; i < 32; i++) {
|
||||
if ((value & 1) == 0) {
|
||||
value >>= 1;
|
||||
} else {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
u8 i;
|
||||
for (i = 0; i < 32; i++) {
|
||||
if ((value & 1) == 0) {
|
||||
value >>= 1;
|
||||
} else {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
u16 CalcCRC16(u8 *data, int length) {
|
||||
u16 i, j;
|
||||
u16 crc = 0x1121;
|
||||
for (i = 0; i < length; i++) {
|
||||
crc ^= data[i];
|
||||
for (j = 0; j < 8; j++) {
|
||||
if (crc & 1) {
|
||||
crc = (crc >> 1) ^ 0x8408;
|
||||
} else {
|
||||
crc >>= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return ~crc;
|
||||
u16 i, j;
|
||||
u16 crc = 0x1121;
|
||||
for (i = 0; i < length; i++) {
|
||||
crc ^= data[i];
|
||||
for (j = 0; j < 8; j++) {
|
||||
if (crc & 1) {
|
||||
crc = (crc >> 1) ^ 0x8408;
|
||||
} else {
|
||||
crc >>= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return ~crc;
|
||||
}
|
||||
|
||||
u16 CalcCRC16WithTable(u8 *data, int length) {
|
||||
u16 i;
|
||||
u16 crc = 0x1121;
|
||||
u8 byte;
|
||||
for (i = 0; i < length; i++) {
|
||||
byte = crc >> 8;
|
||||
crc ^= data[i];
|
||||
crc = byte ^ gCrc16Table[(u8)crc];
|
||||
}
|
||||
return ~crc;
|
||||
u16 i;
|
||||
u16 crc = 0x1121;
|
||||
u8 byte;
|
||||
for (i = 0; i < length; i++) {
|
||||
byte = crc >> 8;
|
||||
crc ^= data[i];
|
||||
crc = byte ^ gCrc16Table[(u8)crc];
|
||||
}
|
||||
return ~crc;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user