Up to sub 0x80ce580

This commit is contained in:
DizzyEggg 2018-12-15 23:58:47 +01:00
parent 59a69eb627
commit f1421d94c3
29 changed files with 2776 additions and 7355 deletions

View File

@ -2093,7 +2093,7 @@ _080F6AA6:
adds r0, r1 adds r0, r1
ldrh r0, [r0] ldrh r0, [r0]
movs r1, 0 movs r1, 0
bl mon_icon_convert_unown_species_id bl GetIconSpecies
lsls r0, 16 lsls r0, 16
lsrs r0, 16 lsrs r0, 16
adds r0, r6 adds r0, r6

File diff suppressed because it is too large Load Diff

View File

@ -409,14 +409,14 @@ _081C73C2:
_081C73C6: _081C73C6:
adds r0, r4, 0 adds r0, r4, 0
adds r1, r5, 0 adds r1, r5, 0
bl sub_80D2270 bl CheckBoxedMonSanity
cmp r0, 0 cmp r0, 0
beq _081C73EC beq _081C73EC
lsls r1, r5, 24 lsls r1, r5, 24
lsrs r1, 24 lsrs r1, 24
lsrs r0, r6, 24 lsrs r0, r6, 24
movs r2, 0x52 movs r2, 0x52
bl GetBoxMonDataFromAnyBox bl GetBoxMonDataAt
cmp r0, 0 cmp r0, 0
beq _081C73EC beq _081C73EC
_081C73E2: _081C73E2:
@ -16376,7 +16376,7 @@ _081CF1F4:
_081CF1FC: _081CF1FC:
adds r0, r5, 0 adds r0, r5, 0
adds r1, r4, 0 adds r1, r4, 0
bl sub_80D2270 bl CheckBoxedMonSanity
cmp r0, 0 cmp r0, 0
beq _081CF23A beq _081CF23A
ldr r1, =0xffffff00 ldr r1, =0xffffff00
@ -16392,7 +16392,7 @@ _081CF1FC:
str r0, [sp] str r0, [sp]
ldr r2, [r6, 0x14] ldr r2, [r6, 0x14]
adds r0, r7, 0 adds r0, r7, 0
bl GetBoxMonDataFromAnyBox bl GetBoxMonDataAt
lsls r0, 16 lsls r0, 16
ldr r2, =0x0000ffff ldr r2, =0x0000ffff
ldr r1, [sp] ldr r1, [sp]
@ -17735,7 +17735,7 @@ sub_81CFC40: @ 81CFC40
_081CFC60: _081CFC60:
adds r0, r7, 0 adds r0, r7, 0
adds r1, r6, 0 adds r1, r6, 0
bl sub_80D2270 bl CheckBoxedMonSanity
cmp r0, 0 cmp r0, 0
beq _081CFCA6 beq _081CFCA6
lsls r0, r7, 24 lsls r0, r7, 24
@ -17745,7 +17745,7 @@ _081CFC60:
adds r0, r5, 0 adds r0, r5, 0
adds r1, r4, 0 adds r1, r4, 0
movs r2, 0x52 movs r2, 0x52
bl GetBoxMonDataFromAnyBox bl GetBoxMonDataAt
adds r3, r0, 0 adds r3, r0, 0
cmp r3, 0 cmp r3, 0
beq _081CFCA6 beq _081CFCA6
@ -17900,14 +17900,14 @@ _081CFD92:
_081CFD96: _081CFD96:
adds r0, r5, 0 adds r0, r5, 0
adds r1, r4, 0 adds r1, r4, 0
bl sub_80D2270 bl CheckBoxedMonSanity
cmp r0, 0 cmp r0, 0
beq _081CFDBC beq _081CFDBC
lsls r1, r4, 24 lsls r1, r4, 24
lsrs r1, 24 lsrs r1, 24
lsrs r0, r6, 24 lsrs r0, r6, 24
movs r2, 0x53 movs r2, 0x53
bl GetBoxMonDataFromAnyBox bl GetBoxMonDataAt
cmp r0, 0 cmp r0, 0
beq _081CFDBC beq _081CFDBC
_081CFDB2: _081CFDB2:
@ -19257,7 +19257,7 @@ sub_81D07D8: @ 81D07D8
beq _081D07FA beq _081D07FA
ldrb r1, [r1, 0x1] ldrb r1, [r1, 0x1]
movs r2, 0x52 movs r2, 0x52
bl GetBoxMonDataFromAnyBox bl GetBoxMonDataAt
b _081D080A b _081D080A
_081D07FA: _081D07FA:
ldrb r1, [r1, 0x1] ldrb r1, [r1, 0x1]
@ -19302,7 +19302,7 @@ _081D0848:
ldrb r0, [r1] ldrb r0, [r1]
ldrb r1, [r1, 0x1] ldrb r1, [r1, 0x1]
movs r2, 0x53 movs r2, 0x53
bl GetBoxMonDataFromAnyBox bl GetBoxMonDataAt
_081D0852: _081D0852:
mov r12, r0 mov r12, r0
movs r0, 0 movs r0, 0
@ -23046,14 +23046,14 @@ _081D2CB0:
lsrs r0, 24 lsrs r0, 24
lsls r1, 24 lsls r1, 24
lsrs r1, 24 lsrs r1, 24
bl GetAndCopyBoxMonDataFromAnyBox bl GetAndCopyBoxMonDataAt
b _081D2CCA b _081D2CCA
_081D2CBE: _081D2CBE:
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
lsls r1, 24 lsls r1, 24
lsrs r1, 24 lsrs r1, 24
bl GetBoxMonDataFromAnyBox bl GetBoxMonDataAt
_081D2CCA: _081D2CCA:
pop {r1} pop {r1}
bx r1 bx r1

View File

@ -4,441 +4,6 @@
.section .rodata .section .rodata
.align 2
PCGfx_Arrow: @ 8577678
.incbin "graphics/pokemon_storage/arrow.4bpp"
.align 2
gWallpaperPalettes_Zigzagoon:: @ 85776F8
.incbin "graphics/pokemon_storage/friends_frame1.gbapal"
.incbin "graphics/pokemon_storage/zigzagoon_bg.gbapal"
.align 2
gWallpaperTiles_Zigzagoon: @ 8577738
.incbin "graphics/pokemon_storage/zigzagoon.4bpp.lz"
.align 2
gWallpaperTilemap_Zigzagoon: @ 857792C
.incbin "graphics/pokemon_storage/zigzagoon.bin.lz"
.align 2
gWallpaperPalettes_Screen:: @ 8577A44
.incbin "graphics/pokemon_storage/friends_frame1.gbapal"
.incbin "graphics/pokemon_storage/screen_bg.gbapal"
.align 2
gWallpaperTiles_Screen: @ 8577A84
.incbin "graphics/pokemon_storage/screen.4bpp.lz"
.align 2
gWallpaperTilemap_Screen: @ 8577D00
.incbin "graphics/pokemon_storage/screen.bin.lz"
.align 2
gWallpaperPalettes_Diagonal:: @ 8577E2C
.incbin "graphics/pokemon_storage/friends_frame1.gbapal"
.incbin "graphics/pokemon_storage/diagonal_bg.gbapal"
.align 2
gWallpaperTiles_Diagonal: @ 8577E6C
.incbin "graphics/pokemon_storage/diagonal.4bpp.lz"
.align 2
gWallpaperTilemap_Diagonal: @ 8578058
.incbin "graphics/pokemon_storage/diagonal.bin.lz"
.align 2
gWallpaperPalettes_Block:: @ 8578148
.incbin "graphics/pokemon_storage/block_bg.gbapal"
.incbin "graphics/pokemon_storage/block_bg.gbapal"
.align 2
gWallpaperTiles_Block: @ 8578188
.incbin "graphics/pokemon_storage/block.4bpp.lz"
.align 2
gWallpaperTilemap_Block: @ 8578358
.incbin "graphics/pokemon_storage/block.bin.lz"
.align 2
gWallpaperPalettes_Pokecenter2:: @ 8578450
.incbin "graphics/pokemon_storage/pokecenter2_bg.gbapal"
.incbin "graphics/pokemon_storage/pokecenter2_bg.gbapal"
.align 2
gWallpaperTiles_Pokecenter2: @ 8578490
.incbin "graphics/pokemon_storage/pokecenter2.4bpp.lz"
.align 2
gWallpaperTilemap_Pokecenter2: @ 85786D0
.incbin "graphics/pokemon_storage/pokecenter2.bin.lz"
.align 2
gWallpaperPalettes_Frame:: @ 85787E4
.incbin "graphics/pokemon_storage/frame_bg.gbapal"
.incbin "graphics/pokemon_storage/frame_bg.gbapal"
.align 2
gWallpaperTiles_Frame: @ 8578824
.incbin "graphics/pokemon_storage/frame.4bpp.lz"
.align 2
gWallpaperTilemap_Frame: @ 8578A34
.incbin "graphics/pokemon_storage/frame.bin.lz"
.align 2
gWallpaperPalettes_Blank:: @ 8578B48
.incbin "graphics/pokemon_storage/friends_frame1.gbapal"
.incbin "graphics/pokemon_storage/zigzagoon_bg.gbapal"
.align 2
gWallpaperTiles_Blank: @ 8578B88
.incbin "graphics/pokemon_storage/blank.4bpp.lz"
.align 2
gWallpaperTilemap_Blank: @ 8578D34
.incbin "graphics/pokemon_storage/blank.bin.lz"
.align 2
gWallpaperPalettes_Circles:: @ 8578E10
.incbin "graphics/pokemon_storage/friends_frame2.gbapal"
.incbin "graphics/pokemon_storage/circles_bg.gbapal"
.align 2
gWallpaperTiles_Circles: @ 8578E50
.incbin "graphics/pokemon_storage/circles.4bpp.lz"
.align 2
gWallpaperTilemap_Circles: @ 85790A4
.incbin "graphics/pokemon_storage/circles.bin.lz"
.align 2
gWallpaperPalettes_Azumarill:: @ 85791A0
.incbin "graphics/pokemon_storage/friends_frame2.gbapal"
.incbin "graphics/pokemon_storage/azumarill_bg.gbapal"
.align 2
gWallpaperTiles_Azumarill: @ 85791E0
.incbin "graphics/pokemon_storage/azumarill.4bpp.lz"
.align 2
gWallpaperTilemap_Azumarill: @ 85793CC
.incbin "graphics/pokemon_storage/azumarill.bin.lz"
.align 2
gWallpaperPalettes_Pikachu:: @ 85794C4
.incbin "graphics/pokemon_storage/friends_frame2.gbapal"
.incbin "graphics/pokemon_storage/pikachu_bg.gbapal"
.align 2
gWallpaperTiles_Pikachu: @ 8579504
.incbin "graphics/pokemon_storage/pikachu.4bpp.lz"
.align 2
gWallpaperTilemap_Pikachu: @ 8579738
.incbin "graphics/pokemon_storage/pikachu.bin.lz"
.align 2
gWallpaperPalettes_Legendary:: @ 8579860
.incbin "graphics/pokemon_storage/friends_frame2.gbapal"
.incbin "graphics/pokemon_storage/legendary_bg.gbapal"
.align 2
gWallpaperTiles_Legendary: @ 85798A0
.incbin "graphics/pokemon_storage/legendary.4bpp.lz"
.align 2
gWallpaperTilemap_Legendary: @ 8579B80
.incbin "graphics/pokemon_storage/legendary.bin.lz"
.align 2
gWallpaperPalettes_Dusclops:: @ 8579CC4
.incbin "graphics/pokemon_storage/friends_frame2.gbapal"
.incbin "graphics/pokemon_storage/dusclops_bg.gbapal"
.align 2
gWallpaperTiles_Dusclops: @ 8579D04
.incbin "graphics/pokemon_storage/dusclops.4bpp.lz"
.align 2
gWallpaperTilemap_Dusclops: @ 8579F50
.incbin "graphics/pokemon_storage/dusclops.bin.lz"
.align 2
gWallpaperPalettes_Ludicolo:: @ 857A048
.incbin "graphics/pokemon_storage/friends_frame2.gbapal"
.incbin "graphics/pokemon_storage/ludicolo_bg.gbapal"
.align 2
gWallpaperTiles_Ludicolo: @ 857A088
.incbin "graphics/pokemon_storage/ludicolo.4bpp.lz"
.align 2
gWallpaperTilemap_Ludicolo: @ 857A348
.incbin "graphics/pokemon_storage/ludicolo.bin.lz"
.align 2
gWallpaperPalettes_Whiscash:: @ 857A468
.incbin "graphics/pokemon_storage/friends_frame2.gbapal"
.incbin "graphics/pokemon_storage/whiscash_bg.gbapal"
.align 2
gWallpaperTiles_Whiscash: @ 857A4A8
.incbin "graphics/pokemon_storage/whiscash.4bpp.lz"
.align 2
gWallpaperTilemap_Whiscash: @ 857A6F0
.incbin "graphics/pokemon_storage/whiscash.bin.lz"
.align 2
gWallpaperIcon_Aqua: @ 857A81C
.incbin "graphics/pokemon_storage/aqua_icon.4bpp.lz"
.align 2
gWallpaperIcon_Heart: @ 857A860
.incbin "graphics/pokemon_storage/heart_icon.4bpp.lz"
.align 2
gWallpaperIcon_FiveStar: @ 857A89C
.incbin "graphics/pokemon_storage/five_star_icon.4bpp.lz"
.align 2
gWallpaperIcon_Brick: @ 857A8DC
.incbin "graphics/pokemon_storage/brick_icon.4bpp.lz"
.align 2
gWallpaperIcon_FourStar: @ 857A904
.incbin "graphics/pokemon_storage/four_star_icon.4bpp.lz"
.align 2
gWallpaperIcon_Asterisk: @ 857A940
.incbin "graphics/pokemon_storage/asterisk_icon.4bpp.lz"
.align 2
gWallpaperIcon_Dot: @ 857A990
.incbin "graphics/pokemon_storage/dot_icon.4bpp.lz"
.align 2
gWallpaperIcon_LineCircle: @ 857A9C0
.incbin "graphics/pokemon_storage/line_circle_icon.4bpp.lz"
.align 2
gWallpaperIcon_PokeBall: @ 857A9EC
.incbin "graphics/pokemon_storage/pokeball_icon.4bpp.lz"
.align 2
gWallpaperIcon_Maze: @ 857AA38
.incbin "graphics/pokemon_storage/maze_icon.4bpp.lz"
.align 2
gWallpaperIcon_Footprint: @ 857AA7C
.incbin "graphics/pokemon_storage/footprint_icon.4bpp.lz"
.align 2
gWallpaperIcon_BigAsterisk: @ 857AAC4
.incbin "graphics/pokemon_storage/big_asterisk_icon.4bpp.lz"
.align 2
gWallpaperIcon_Circle: @ 857AB08
.incbin "graphics/pokemon_storage/circle_icon.4bpp.lz"
.align 2
gWallpaperIcon_Koffing: @ 857AB48
.incbin "graphics/pokemon_storage/koffing_icon.4bpp.lz"
.align 2
gWallpaperIcon_Ribbon: @ 857AB98
.incbin "graphics/pokemon_storage/ribbon_icon.4bpp.lz"
.align 2
gWallpaperIcon_FourCircles: @ 857AC00
.incbin "graphics/pokemon_storage/four_circles_icon.4bpp.lz"
.align 2
gWallpaperIcon_Lotad: @ 857AC30
.incbin "graphics/pokemon_storage/lotad_icon.4bpp.lz"
.align 2
gWallpaperIcon_Crystal: @ 857AC74
.incbin "graphics/pokemon_storage/crystal_icon.4bpp.lz"
.align 2
gWallpaperIcon_Pichu: @ 857ACBC
.incbin "graphics/pokemon_storage/pichu_icon.4bpp.lz"
.align 2
gWallpaperIcon_Diglett: @ 857ACF4
.incbin "graphics/pokemon_storage/diglett_icon.4bpp.lz"
.align 2
gWallpaperIcon_Luvdisc: @ 857AD44
.incbin "graphics/pokemon_storage/luvdisc_icon.4bpp.lz"
.align 2
gWallpaperIcon_StarInCircle: @ 857AD88
.incbin "graphics/pokemon_storage/star_in_circle_icon.4bpp.lz"
.align 2
gWallpaperIcon_Spinda: @ 857ADCC
.incbin "graphics/pokemon_storage/spinda_icon.4bpp.lz"
.align 2
gWallpaperIcon_Latis: @ 857AE20
.incbin "graphics/pokemon_storage/latis_icon.4bpp.lz"
.align 2
gWallpaperIcon_Minun: @ 857AE64
.incbin "graphics/pokemon_storage/minun_icon.4bpp.lz"
.align 2
gWallpaperIcon_Togepi: @ 857AEAC
.incbin "graphics/pokemon_storage/togepi_icon.4bpp.lz"
.align 2
gWallpaperIcon_Magma: @ 857AF08
.incbin "graphics/pokemon_storage/magma_icon.4bpp.lz"
.align 2
gUnknown_0857AF44:: @ 857AF44
.4byte gWallpaperTiles_Zigzagoon, gWallpaperTilemap_Zigzagoon, gWallpaperPalettes_Zigzagoon
.4byte gWallpaperTiles_Screen, gWallpaperTilemap_Screen, gWallpaperPalettes_Screen
.4byte gWallpaperTiles_Horizontal, gWallpaperTilemap_Horizontal, gWallpaperPalettes_Horizontal
.4byte gWallpaperTiles_Diagonal, gWallpaperTilemap_Diagonal, gWallpaperPalettes_Diagonal
.4byte gWallpaperTiles_Block, gWallpaperTilemap_Block, gWallpaperPalettes_Block
.4byte gWallpaperTiles_Ribbon, gWallpaperTilemap_Ribbon, gWallpaperPalettes_Ribbon
.4byte gWallpaperTiles_Pokecenter2, gWallpaperTilemap_Pokecenter2, gWallpaperPalettes_Pokecenter2
.4byte gWallpaperTiles_Frame, gWallpaperTilemap_Frame, gWallpaperPalettes_Frame
.4byte gWallpaperTiles_Blank, gWallpaperTilemap_Blank, gWallpaperPalettes_Blank
.4byte gWallpaperTiles_Circles, gWallpaperTilemap_Circles, gWallpaperPalettes_Circles
.4byte gWallpaperTiles_Azumarill, gWallpaperTilemap_Azumarill, gWallpaperPalettes_Azumarill
.4byte gWallpaperTiles_Pikachu, gWallpaperTilemap_Pikachu, gWallpaperPalettes_Pikachu
.4byte gWallpaperTiles_Legendary, gWallpaperTilemap_Legendary, gWallpaperPalettes_Legendary
.4byte gWallpaperTiles_Dusclops, gWallpaperTilemap_Dusclops, gWallpaperPalettes_Dusclops
.4byte gWallpaperTiles_Ludicolo, gWallpaperTilemap_Ludicolo, gWallpaperPalettes_Ludicolo
.4byte gWallpaperTiles_Whiscash, gWallpaperTilemap_Whiscash, gWallpaperPalettes_Whiscash
.align 2
gUnknown_0857B004:: @ 857B004
.4byte gWallpaperIcon_Aqua
.4byte gWallpaperIcon_Heart
.4byte gWallpaperIcon_FiveStar
.4byte gWallpaperIcon_Brick
.4byte gWallpaperIcon_FourStar
.4byte gWallpaperIcon_Asterisk
.4byte gWallpaperIcon_Dot
.4byte gWallpaperIcon_Cross
.4byte gWallpaperIcon_LineCircle
.4byte gWallpaperIcon_PokeBall
.4byte gWallpaperIcon_Maze
.4byte gWallpaperIcon_Footprint
.4byte gWallpaperIcon_BigAsterisk
.4byte gWallpaperIcon_Circle
.4byte gWallpaperIcon_Koffing
.4byte gWallpaperIcon_Ribbon
.4byte gWallpaperIcon_Bolt
.4byte gWallpaperIcon_FourCircles
.4byte gWallpaperIcon_Lotad
.4byte gWallpaperIcon_Crystal
.4byte gWallpaperIcon_Pichu
.4byte gWallpaperIcon_Diglett
.4byte gWallpaperIcon_Luvdisc
.4byte gWallpaperIcon_StarInCircle
.4byte gWallpaperIcon_Spinda
.4byte gWallpaperIcon_Latis
.4byte gWallpaperIcon_Plusle
.4byte gWallpaperIcon_Minun
.4byte gWallpaperIcon_Togepi
.4byte gWallpaperIcon_Magma
.align 2
gUnknown_0857B07C:: @ 857B07C
.4byte 0x23BA
.align 2
gUnknown_0857B080:: @ 857B080
obj_tiles PCGfx_Arrow, 128, 0x0006
.align 2
gOamData_857B088:: @ 857B088
.2byte 0x4000
.2byte 0x8000
.2byte 0x0800
.align 2
gSpriteAnim_857B090:: @ 857B090
obj_image_anim_frame 0, 5
obj_image_anim_end
.align 2
gSpriteAnim_857B098:: @ 857B098
obj_image_anim_frame 8, 5
obj_image_anim_end
.align 2
gSpriteAnimTable_857B0A0:: @ 857B0A0
.4byte gSpriteAnim_857B090
.4byte gSpriteAnim_857B098
.align 2
gSpriteTemplate_857B0A8:: @ 857B0A8
spr_template 0x0003, 0xDAC9, gOamData_857B088, gSpriteAnimTable_857B0A0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
gOamData_857B0C0:: @ 857B0C0
.2byte 0x8000
.2byte 0x0000
.2byte 0x0800
.align 2
gSpriteAnim_857B0C8:: @ 857B0C8
obj_image_anim_frame 0, 5
obj_image_anim_end
.align 2
gSpriteAnim_857B0D0:: @ 857B0D0
obj_image_anim_frame 2, 5
obj_image_anim_end
.align 2
gSpriteAnimTable_857B0D8:: @ 857B0D8
.4byte gSpriteAnim_857B0C8
.4byte gSpriteAnim_857B0D0
gUnknown_0857B0E0:: @ 857B0E0
spr_template 0x0006, 0xDACA, gOamData_857B0C0, gSpriteAnimTable_857B0D8, NULL, gDummySpriteAffineAnimTable, sub_80CD210
.align 2
HandCursorPalette: @ 857B0F8
.incbin "graphics/pokemon_storage/hand_cursor.gbapal"
.align 2
HandCursorTiles: @ 857B118
.incbin "graphics/pokemon_storage/hand_cursor.4bpp"
.align 2
HandCursorShadowTiles: @ 857B918
.incbin "graphics/pokemon_storage/hand_cursor_shadow.4bpp"
.align 2
gUnknown_0857B998:: @ 857B998
.4byte sub_80CDCCC
.4byte sub_80CDD5C
.4byte sub_80CDDD8
.align 2
gUnknown_0857B9A4:: @ 857B9A4
.byte 0x22, 0x00
.2byte 0x0039
.byte 0x22, 0x00
.2byte 0x0123
.byte 0x10, 0x0a
.2byte 0x0046
.byte 0x10, 0x0a
.2byte 0x00f9
.byte 0x10, 0x0e
.2byte 0x0046
.byte 0x10, 0x0e
.2byte 0x00f9
.align 2 .align 2
gUnknown_0857B9BC:: @ 857B9BC gUnknown_0857B9BC:: @ 857B9BC
@ -450,13 +15,13 @@ gUnknown_0857B9BC:: @ 857B9BC
.align 2 .align 2
gHandCursorSpriteSheets:: @ 857B9E4 gHandCursorSpriteSheets:: @ 857B9E4
obj_tiles HandCursorTiles, 0x0800, 0x0000 obj_tiles gHandCursorTiles, 0x0800, 0x0000
obj_tiles HandCursorShadowTiles, 0x0080, 0x0001 obj_tiles gHandCursorShadowTiles, 0x0080, 0x0001
null_obj_tiles null_obj_tiles
.align 2 .align 2
gHandCursorSpritePalettes:: @ 857B9FC gHandCursorSpritePalettes:: @ 857B9FC
obj_pal HandCursorPalette, 0xDAC7 obj_pal gHandCursorPalette, 0xDAC7
null_obj_pal null_obj_pal
.align 2 .align 2

View File

@ -587,6 +587,7 @@
// Map Group 33 // Map Group 33
#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8)) #define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8))
#define MAP_GROUPS_COUNT 34
#define MAP_NONE (0x7F | (0x7F << 8)) #define MAP_NONE (0x7F | (0x7F << 8))
#define MAP_UNDEFINED (0xFF | (0xFF << 8)) #define MAP_UNDEFINED (0xFF | (0xFF << 8))

View File

@ -858,15 +858,15 @@ typedef union // 3b58
struct WaldaPhrase struct WaldaPhrase
{ {
u16 field_0; u16 colors[2]; // Background, foreground.
u16 field_2;
u8 text[16]; u8 text[16];
u8 iconId; u8 iconId;
u8 patternId; u8 patternId;
bool8 patternUnlocked; bool8 patternUnlocked;
}; };
struct UnkSaveSubstruct_3b98 { struct UnkSaveSubstruct_3b98
{
u32 trainerId; u32 trainerId;
u8 trainerName[PLAYER_NAME_LENGTH + 1]; u8 trainerName[PLAYER_NAME_LENGTH + 1];
}; };

View File

@ -4743,6 +4743,15 @@ extern const u16 gPokedexAreaScreenAreaUnknown_Pal[];
// Pokemon Storage System // Pokemon Storage System
extern const u32 gPSSMenu_Gfx[]; extern const u32 gPSSMenu_Gfx[];
extern const u16 gPSSMenu_Pal[]; extern const u16 gPSSMenu_Pal[];
extern const u32 gWallpaperIcon_Plusle[];
extern const u32 gWallpaperIcon_Cross[];
extern const u32 gWallpaperIcon_Bolt[];
extern const u32 gUnknown_08DD36C8[]; extern const u32 gUnknown_08DD36C8[];
extern const u32 gWallpaperTiles_Ribbon[];
extern const u32 gWallpaperTilemap_Ribbon[];
extern const u16 gWallpaperPalettes_Ribbon[][16];
extern const u32 gWallpaperTiles_Horizontal[];
extern const u32 gWallpaperTilemap_Horizontal[];
extern const u16 gWallpaperPalettes_Horizontal[][16];
#endif //GUARD_GRAPHICS_H #endif //GUARD_GRAPHICS_H

View File

@ -48,11 +48,11 @@ s8 Menu_ProcessInput(void);
s8 Menu_ProcessInputNoWrap(void); s8 Menu_ProcessInputNoWrap(void);
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y); void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
void reset_temp_tile_data_buffers(void); void reset_temp_tile_data_buffers(void);
void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode); void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
bool8 free_temp_tile_data_buffers_if_possible(void); bool8 free_temp_tile_data_buffers_if_possible(void);
struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock); struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock);
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode); void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
s8 Menu_ProcessInputNoWrapClearOnChoose(void); s8 Menu_ProcessInputNoWrapClearOnChoose(void);
s8 ProcessMenuInput_other(void); s8 ProcessMenuInput_other(void);
void do_scheduled_bg_tilemap_copies_to_vram(void); void do_scheduled_bg_tilemap_copies_to_vram(void);
@ -62,7 +62,7 @@ void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u8 a3);
void sub_81995E4(u8 windowId, u8 optionsNo, const struct MenuAction *actions, const u8 *actionIds); void sub_81995E4(u8 windowId, u8 optionsNo, const struct MenuAction *actions, const u8 *actionIds);
void sub_8197DF8(u8 windowId, bool8 copyToVram); void sub_8197DF8(u8 windowId, bool8 copyToVram);
u16 sub_8198AA4(u8, u8, u8, u8, u8, u8, u16); u16 sub_8198AA4(u8, u8, u8, u8, u8, u8, u16);
void *malloc_and_decompress(const void *src, int *sizeOut); void *malloc_and_decompress(const void *src, u32 *sizeOut);
u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode); u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode);
void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress); void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress);
void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8); void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8);

View File

@ -8,9 +8,9 @@
#define MON_DATA_OT_ID 1 #define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2 #define MON_DATA_NICKNAME 2
#define MON_DATA_LANGUAGE 3 #define MON_DATA_LANGUAGE 3
#define MON_DATA_SANITY_BIT1 4 #define MON_DATA_SANITY_IS_BAD_EGG 4
#define MON_DATA_SANITY_BIT2 5 #define MON_DATA_SANITY_HAS_SPECIES 5
#define MON_DATA_SANITY_BIT3 6 #define MON_DATA_SANITY_IS_EGG 6
#define MON_DATA_OT_NAME 7 #define MON_DATA_OT_NAME 7
#define MON_DATA_MARKINGS 8 #define MON_DATA_MARKINGS 8
#define MON_DATA_CHECKSUM 9 #define MON_DATA_CHECKSUM 9

View File

@ -1,9 +1,12 @@
#ifndef GUARD_POKEMON_ICON_H #ifndef GUARD_POKEMON_ICON_H
#define GUARD_POKEMON_ICON_H #define GUARD_POKEMON_ICON_H
extern const u8 gMonIconPaletteIndices[];
const u8 *GetMonIconTiles(u16 species, bool32); const u8 *GetMonIconTiles(u16 species, bool32);
const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo); const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo);
const u16 *GetValidMonIconPalettePtr(u16 speciesId); const u16 *GetValidMonIconPalettePtr(u16 speciesId);
u16 GetIconSpecies(u16 species, u32 personality);
u16 GetUnownLetterByPersonality(u32 personality); u16 GetUnownLetterByPersonality(u32 personality);
u16 sub_80D2E84(u16 speciesId); u16 sub_80D2E84(u16 speciesId);
void LoadMonIconPalettes(void); void LoadMonIconPalettes(void);

View File

@ -2,7 +2,9 @@
#define GUARD_POKEMON_STORAGE_SYSTEM_H #define GUARD_POKEMON_STORAGE_SYSTEM_H
#define TOTAL_BOXES_COUNT 14 #define TOTAL_BOXES_COUNT 14
#define IN_BOX_COUNT 30 #define IN_BOX_ROWS 6
#define IN_BOX_COLUMS 5
#define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMS)
#include "pc_screen_effect.h" #include "pc_screen_effect.h"
#include "mon_markings.h" #include "mon_markings.h"
@ -69,7 +71,6 @@ struct PokemonStorageSystemData
u8 screenChangeType; u8 screenChangeType;
bool8 isReshowingPSS; bool8 isReshowingPSS;
u8 taskId; u8 taskId;
u8 unk_0005;
struct UnkStruct_2000020 unk_0020; struct UnkStruct_2000020 unk_0020;
struct UnkStruct_2000028 unk_0028[8]; struct UnkStruct_2000028 unk_0028[8];
u16 field_90[16]; u16 field_90[16];
@ -84,26 +85,86 @@ struct PokemonStorageSystemData
bool8 unk_02C9; bool8 unk_02C9;
s16 newCurrBoxId; s16 newCurrBoxId;
u16 bg2_X; u16 bg2_X;
u8 field_2CE; s16 field_2CE;
u8 field_2CF[1213]; u16 field_2D0;
u8 field_2D2;
u8 field_2D3;
u8 field_2D4;
u8 field_2D5;
u16 field_2D6;
s16 field_2D8;
u16 field_2DA;
u16 field_2DC;
u16 field_2DE;
u16 field_2E0;
u8 field_2E2;
u8 field_2E3;
u8 field_2E4[20];
u8 field_2F8[1024];
u8 field_6F8;
u8 field_6F9;
u8 field_6FA;
s8 field_6FB;
u16 field_6FC[16];
u16 field_71C;
u16 field_71E;
struct Sprite *field_720[2];
struct Sprite *field_728[2];
struct Sprite *field_730[2];
u32 field_738;
u8 field_73C[80];
u16 field_78C; u16 field_78C;
s16 wallpaperSetId; s16 wallpaperSetId;
s16 wallpaperId; s16 wallpaperId;
u8 wallpaperTilemap[180 * 4]; u16 field_792[360];
u8 wallpaperChangeState; u8 wallpaperChangeState;
u8 field_A63; u8 field_A63;
u8 field_A64; u8 field_A64;
u8 field_A65; s8 field_A65;
u8 field_A66; u8 field_A66;
u8 field_A67; u8 field_A67;
u8 *wallpaperTilemapPtr; u8 *wallpaperTiles;
struct Sprite *field_A6C; struct Sprite *field_A6C;
struct Sprite *partySprites[PARTY_SIZE]; struct Sprite *partySprites[PARTY_SIZE];
struct Sprite *boxMonsSprites[IN_BOX_COUNT]; struct Sprite *boxMonsSprites[IN_BOX_COUNT];
u8 field_B00[8]; struct Sprite **field_B00;
struct Sprite **field_B04;
u16 field_B08[40]; u16 field_B08[40];
u16 field_B58[40]; u16 field_B58[40];
u8 field_BA8[308]; u16 boxSpecies[IN_BOX_COUNT];
u32 boxPersonalities[IN_BOX_COUNT];
u8 field_C5C;
u8 field_C5D;
u8 field_C5E;
u8 field_C5F;
u16 field_C60;
s16 field_C62;
s16 field_C64;
u16 field_C66;
u8 field_C68;
s8 field_C69;
u8 field_C6A;
u8 field_C6B;
u8 field_C6C[72];
struct Sprite *field_CB4;
struct Sprite *field_CB8;
s32 field_CBC;
s32 field_CC0;
u32 field_CC4;
u32 field_CC8;
s16 field_CCC;
s16 field_CCE;
u16 field_CD0;
s8 field_CD2;
s8 field_CD3;
u8 field_CD4;
u8 field_CD5;
u8 field_CD6;
u8 field_CD7;
u8 field_CD8;
u8 field_CD9;
u8 field_CDA;
u8 field_CDB;
u32 *field_CDC; u32 *field_CDC;
u32 cursorMonPersonality; u32 cursorMonPersonality;
u16 cursorMonSpecies; u16 cursorMonSpecies;
@ -117,13 +178,26 @@ struct PokemonStorageSystemData
u8 cursorMonNick[36]; u8 cursorMonNick[36];
u8 cursorMonSpeciesName[36]; u8 cursorMonSpeciesName[36];
u8 cursorMonGenderLvlText[36]; u8 cursorMonGenderLvlText[36];
u8 cursorMonItemName[47]; u8 cursorMonItemName[36];
bool8 (*monPlaceChangeFunc)(void);
u8 monPlaceChangeState;
u8 field_D91;
struct Sprite *field_D94; struct Sprite *field_D94;
struct Sprite *field_D98[2]; struct Sprite *field_D98[2];
u16 *field_DA0; u16 *field_DA0;
struct PokemonMarkMenu field_DA4; struct PokemonMarkMenu field_DA4;
struct UnkPSSStruct_2002370 field_1E5C; struct UnkPSSStruct_2002370 field_1E5C;
u8 field_20A4[220]; struct Pokemon field_20A4;
struct Pokemon field_2108;
s8 field_216C;
u8 field_216D;
s8 field_216E;
s8 field_216F;
s8 field_2170;
s8 field_2171;
u16 field_2172;
u16 field_2174;
u16 field_2176[5];
u8 field_2180; u8 field_2180;
u8 field_2181; u8 field_2181;
u8 field_2182; u8 field_2182;
@ -134,10 +208,18 @@ struct PokemonStorageSystemData
u8 field_2187; u8 field_2187;
u8 field_2188; u8 field_2188;
struct BoxPokemon *field_218C; struct BoxPokemon *field_218C;
u8 field_2190[80]; u8 field_2190[40];
u8 field_21B8[40];
u8 field_21E0[POKEMON_NAME_LENGTH + 1]; u8 field_21E0[POKEMON_NAME_LENGTH + 1];
u8 field_21EB[15]; // TODO: ITEM NAME LENGTH + 1 u8 field_21EB[15]; // TODO: ITEM NAME LENGTH + 1
u8 field_21FA[58]; u8 field_21FA;
u8 field_21FB;
u8 field_21FC;
u8 field_21FD;
u8 field_21FE;
u8 field_21FF;
u8 field_2200;
u8 field_2201[51];
u16 movingItem; u16 movingItem;
u8 field_2236; u8 field_2236;
u8 field_2237; u8 field_2237;
@ -149,7 +231,8 @@ struct PokemonStorageSystemData
u16 field_2244[16]; u16 field_2244[16];
u8 field_2264[96]; u8 field_2264[96];
u8 field_22C4[0x800]; u8 field_22C4[0x800];
u8 field_2AC4[12288]; u8 field_2AC4[8192];
u8 field_4AC4[0x1000];
u8 field_5AC4[0x800]; u8 field_5AC4[0x800];
}; };
@ -160,7 +243,7 @@ u8* GetBoxNamePtr(u8 boxNumber);
struct BoxPokemon *GetBoxedMonPtr(u8, u8); struct BoxPokemon *GetBoxedMonPtr(u8, u8);
void SetBoxMonNickFromAnyBox(u8, u8, u8 *); void SetBoxMonNickFromAnyBox(u8, u8, u8 *);
void CompactPartySlots(void); void CompactPartySlots(void);
u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request); u32 GetBoxMonDataAt(u8 boxId, u8 monPosition, u32 request);
bool8 CheckFreePokemonStorageSpace(void); bool8 CheckFreePokemonStorageSpace(void);
u8 StorageGetCurrentBox(void); u8 StorageGetCurrentBox(void);
u8 sub_80D214C(struct BoxPokemon *a, u8 b, u8 c, u8 d); u8 sub_80D214C(struct BoxPokemon *a, u8 b, u8 c, u8 d);

View File

@ -258,7 +258,7 @@ void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *c
u16 RenderText(struct TextPrinter *textPrinter); u16 RenderText(struct TextPrinter *textPrinter);
u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing); u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing);
u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32); u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32);
u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing); s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing);
u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str); u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str);
u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y); u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y);
u8 GetKeypadIconTileOffset(u8 keypadIconId); u8 GetKeypadIconTileOffset(u8 keypadIconId);

View File

@ -1613,7 +1613,7 @@ static void sub_81A8830(void)
static bool8 CanEncounterWildMon(u8 enemyMonLevel) static bool8 CanEncounterWildMon(u8 enemyMonLevel)
{ {
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3)) if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG))
{ {
u8 monAbility = GetMonAbility(&gPlayerParty[0]); u8 monAbility = GetMonAbility(&gPlayerParty[0]);
if (monAbility == ABILITY_KEEN_EYE || monAbility == ABILITY_INTIMIDATE) if (monAbility == ABILITY_KEEN_EYE || monAbility == ABILITY_INTIMIDATE)

View File

@ -901,7 +901,7 @@ static bool8 _DoEggActions_CheckHatch(struct DayCare *daycare)
for (i = 0; i < DAYCARE_MON_COUNT; i++) for (i = 0; i < DAYCARE_MON_COUNT; i++)
{ {
if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SANITY_BIT2)) if (GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SANITY_HAS_SPECIES))
daycare->mons[i].steps++, validEggs++; daycare->mons[i].steps++, validEggs++;
} }
@ -922,7 +922,7 @@ static bool8 _DoEggActions_CheckHatch(struct DayCare *daycare)
{ {
if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
continue; continue;
if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT1)) if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_BAD_EGG))
continue; continue;
steps = GetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP); steps = GetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP);

View File

@ -876,7 +876,7 @@ u8 GetEggStepsToSubtract(void)
u8 count, i; u8 count, i;
for (count = CalculatePlayerPartyCount(), i = 0; i < count; i++) for (count = CalculatePlayerPartyCount(), i = 0; i < count; i++)
{ {
if (!GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT3)) if (!GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_EGG))
{ {
u8 ability = GetMonAbility(&gPlayerParty[i]); u8 ability = GetMonAbility(&gPlayerParty[i]);
if (ability == ABILITY_MAGMA_ARMOR || ability == ABILITY_FLAME_BODY) if (ability == ABILITY_MAGMA_ARMOR || ability == ABILITY_FLAME_BODY)

View File

@ -1845,7 +1845,7 @@ static bool8 Fishing6(struct Task *task)
} }
else else
{ {
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3)) if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG))
{ {
u8 ability = GetMonAbility(&gPlayerParty[0]); u8 ability = GetMonAbility(&gPlayerParty[0]);
if (ability == ABILITY_SUCTION_CUPS || ability == ABILITY_STICKY_HOLD) if (ability == ABILITY_SUCTION_CUPS || ability == ABILITY_STICKY_HOLD)

View File

@ -122,7 +122,7 @@ s32 DoPoisonFieldEffect(void)
u32 numFainted = 0; u32 numFainted = 0;
for (i = 0; i < PARTY_SIZE; i++) for (i = 0; i < PARTY_SIZE; i++)
{ {
if (GetMonData(pokemon, MON_DATA_SANITY_BIT2) && pokemon_ailments_get_primary(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN) if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) && pokemon_ailments_get_primary(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN)
{ {
hp = GetMonData(pokemon, MON_DATA_HP); hp = GetMonData(pokemon, MON_DATA_HP);
if (hp == 0 || --hp == 0) if (hp == 0 || --hp == 0)

View File

@ -1266,7 +1266,7 @@ void IsGrassTypeInParty(void)
for (i = 0; i < PARTY_SIZE; i++) for (i = 0; i < PARTY_SIZE; i++)
{ {
pokemon = &gPlayerParty[i]; pokemon = &gPlayerParty[i];
if (GetMonData(pokemon, MON_DATA_SANITY_BIT2) && !GetMonData(pokemon, MON_DATA_IS_EGG)) if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) && !GetMonData(pokemon, MON_DATA_IS_EGG))
{ {
species = GetMonData(pokemon, MON_DATA_SPECIES); species = GetMonData(pokemon, MON_DATA_SPECIES);
if (gBaseStats[species].type1 == TYPE_GRASS || gBaseStats[species].type2 == TYPE_GRASS) if (gBaseStats[species].type1 == TYPE_GRASS || gBaseStats[species].type2 == TYPE_GRASS)
@ -1658,7 +1658,7 @@ bool8 sub_813990C(void)
for (i = 0; i < partyCount; i++) for (i = 0; i < partyCount; i++)
{ {
if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT1) == 1) if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_BAD_EGG) == 1)
return TRUE; return TRUE;
} }

View File

@ -1797,9 +1797,9 @@ bool8 free_temp_tile_data_buffers_if_possible(void)
} }
} }
void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode) void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, u32 size, u16 offset, u8 mode)
{ {
int sizeOut; u32 sizeOut;
if (gUnknown_0203CDA8 < ARRAY_COUNT(gUnknown_0203CDAC)) if (gUnknown_0203CDA8 < ARRAY_COUNT(gUnknown_0203CDAC))
{ {
void *ptr = malloc_and_decompress(src, &sizeOut); void *ptr = malloc_and_decompress(src, &sizeOut);
@ -1815,9 +1815,9 @@ void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size,
return NULL; return NULL;
} }
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode) void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode)
{ {
int sizeOut; u32 sizeOut;
void *ptr = malloc_and_decompress(src, &sizeOut); void *ptr = malloc_and_decompress(src, &sizeOut);
if (!size) if (!size)
size = sizeOut; size = sizeOut;
@ -1838,7 +1838,7 @@ void task_free_buf_after_copying_tile_data_to_vram(u8 taskId)
} }
} }
void *malloc_and_decompress(const void *src, int *size) void *malloc_and_decompress(const void *src, u32 *size)
{ {
void *ptr; void *ptr;
u8 *sizeAsBytes = (u8 *)size; u8 *sizeAsBytes = (u8 *)size;

View File

@ -1342,7 +1342,7 @@ void UpdateAmbientCry(s16 *state, u16 *delayCounter)
monsCount = CalculatePlayerPartyCount(); monsCount = CalculatePlayerPartyCount();
for (i = 0; i < monsCount; i++) for (i = 0; i < monsCount; i++)
{ {
if (!GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT3) if (!GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_EGG)
&& GetMonAbility(&gPlayerParty[0]) == ABILITY_SWARM) && GetMonAbility(&gPlayerParty[0]) == ABILITY_SWARM)
{ {
divBy = 2; divBy = 2;

View File

@ -4097,13 +4097,13 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
case MON_DATA_LANGUAGE: case MON_DATA_LANGUAGE:
retVal = boxMon->language; retVal = boxMon->language;
break; break;
case MON_DATA_SANITY_BIT1: case MON_DATA_SANITY_IS_BAD_EGG:
retVal = boxMon->isBadEgg; retVal = boxMon->isBadEgg;
break; break;
case MON_DATA_SANITY_BIT2: case MON_DATA_SANITY_HAS_SPECIES:
retVal = boxMon->hasSpecies; retVal = boxMon->hasSpecies;
break; break;
case MON_DATA_SANITY_BIT3: case MON_DATA_SANITY_IS_EGG:
retVal = boxMon->isEgg; retVal = boxMon->isEgg;
break; break;
case MON_DATA_OT_NAME: case MON_DATA_OT_NAME:
@ -4304,7 +4304,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
u16 *moves = (u16 *)data; u16 *moves = (u16 *)data;
s32 i = 0; s32 i = 0;
while (moves[i] != 355) while (moves[i] != MOVES_COUNT)
{ {
u16 move = moves[i]; u16 move = moves[i];
if (substruct1->moves[0] == move if (substruct1->moves[0] == move
@ -4466,13 +4466,13 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg)
case MON_DATA_LANGUAGE: case MON_DATA_LANGUAGE:
SET8(boxMon->language); SET8(boxMon->language);
break; break;
case MON_DATA_SANITY_BIT1: case MON_DATA_SANITY_IS_BAD_EGG:
SET8(boxMon->isBadEgg); SET8(boxMon->isBadEgg);
break; break;
case MON_DATA_SANITY_BIT2: case MON_DATA_SANITY_HAS_SPECIES:
SET8(boxMon->hasSpecies); SET8(boxMon->hasSpecies);
break; break;
case MON_DATA_SANITY_BIT3: case MON_DATA_SANITY_IS_EGG:
SET8(boxMon->isEgg); SET8(boxMon->isEgg);
break; break;
case MON_DATA_OT_NAME: case MON_DATA_OT_NAME:
@ -4897,7 +4897,7 @@ bool8 IsPokemonStorageFull(void)
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
for (j = 0; j < 30; j++) for (j = 0; j < 30; j++)
if (GetBoxMonDataFromAnyBox(i, j, MON_DATA_SPECIES) == SPECIES_NONE) if (GetBoxMonDataAt(i, j, MON_DATA_SPECIES) == SPECIES_NONE)
return FALSE; return FALSE;
return TRUE; return TRUE;
@ -6859,7 +6859,7 @@ void SetWildMonHeldItem(void)
u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, 0); u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, 0);
u16 var1 = 45; u16 var1 = 45;
u16 var2 = 95; u16 var2 = 95;
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3, 0) if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG, 0)
&& GetMonAbility(&gPlayerParty[0]) == ABILITY_COMPOUND_EYES) && GetMonAbility(&gPlayerParty[0]) == ABILITY_COMPOUND_EYES)
{ {
var1 = 20; var1 = 20;

View File

@ -1076,7 +1076,7 @@ u8 sub_80D2D78(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8
return spriteId; return spriteId;
} }
u16 mon_icon_convert_unown_species_id(u16 species, u32 personality) u16 GetIconSpecies(u16 species, u32 personality)
{ {
u16 result; u16 result;
@ -1104,7 +1104,8 @@ u16 GetUnownLetterByPersonality(u32 personality)
{ {
if (!personality) if (!personality)
return 0; return 0;
return (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 0x3)) % 0x1C; else
return (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 0x3)) % 0x1C;
} }
u16 sub_80D2E84(u16 species) u16 sub_80D2E84(u16 species)
@ -1121,19 +1122,17 @@ u16 sub_80D2E84(u16 species)
} }
else else
{ {
if(species > (SPECIES_UNOWN_B - 1)) if (species > (SPECIES_UNOWN_B - 1))
species = 260; species = 260;
return mon_icon_convert_unown_species_id(species, 0); return GetIconSpecies(species, 0);
} }
} }
const u8 *GetMonIconPtr(u16 species, u32 personality, bool32 extra) const u8 *GetMonIconPtr(u16 species, u32 personality, bool32 extra)
{ {
return GetMonIconTiles(mon_icon_convert_unown_species_id(species, personality), extra); return GetMonIconTiles(GetIconSpecies(species, personality), extra);
} }
void sub_80D2EF8(struct Sprite *sprite) void sub_80D2EF8(struct Sprite *sprite)
{ {
sub_80D328C(sprite); sub_80D328C(sprite);

View File

@ -210,7 +210,7 @@ void GiveGiftRibbonToParty(u8 index, u8 ribbonId)
{ {
struct Pokemon *mon = &gPlayerParty[i]; struct Pokemon *mon = &gPlayerParty[i];
if (GetMonData(mon, MON_DATA_SPECIES) != 0 && GetMonData(mon, MON_DATA_SANITY_BIT3) == 0) if (GetMonData(mon, MON_DATA_SPECIES) != 0 && GetMonData(mon, MON_DATA_SANITY_IS_EGG) == 0)
{ {
SetMonData(mon, array[index], &data); SetMonData(mon, array[index], &data);
gotRibbon = TRUE; gotRibbon = TRUE;

File diff suppressed because it is too large Load Diff

View File

@ -1310,7 +1310,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a)
sum->altAbility = GetMonData(a, MON_DATA_ALT_ABILITY); sum->altAbility = GetMonData(a, MON_DATA_ALT_ABILITY);
sum->item = GetMonData(a, MON_DATA_HELD_ITEM); sum->item = GetMonData(a, MON_DATA_HELD_ITEM);
sum->pid = GetMonData(a, MON_DATA_PERSONALITY); sum->pid = GetMonData(a, MON_DATA_PERSONALITY);
sum->sanity = GetMonData(a, MON_DATA_SANITY_BIT1); sum->sanity = GetMonData(a, MON_DATA_SANITY_IS_BAD_EGG);
if (sum->sanity) if (sum->sanity)
sum->isEgg = TRUE; sum->isEgg = TRUE;

View File

@ -50,8 +50,8 @@ int GameClear(void)
ribbonCounts[i].partyIndex = i; ribbonCounts[i].partyIndex = i;
ribbonCounts[i].count = 0; ribbonCounts[i].count = 0;
if (GetMonData(mon, MON_DATA_SANITY_BIT2) if (GetMonData(mon, MON_DATA_SANITY_HAS_SPECIES)
&& !GetMonData(mon, MON_DATA_SANITY_BIT3) && !GetMonData(mon, MON_DATA_SANITY_IS_EGG)
&& !GetMonData(mon, MON_DATA_CHAMPION_RIBBON)) && !GetMonData(mon, MON_DATA_CHAMPION_RIBBON))
{ {
u8 val[1] = {TRUE}; u8 val[1] = {TRUE};

View File

@ -1858,7 +1858,7 @@ u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32)
return NULL; return NULL;
} }
u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
{ {
bool8 isJapanese; bool8 isJapanese;
int minGlyphWidth; int minGlyphWidth;
@ -1868,7 +1868,7 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
u32 lineWidth; u32 lineWidth;
const u8 *bufferPointer; const u8 *bufferPointer;
int glyphWidth; int glyphWidth;
u32 width; s32 width;
isJapanese = 0; isJapanese = 0;
minGlyphWidth = 0; minGlyphWidth = 0;
@ -2028,7 +2028,8 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
if (lineWidth > width) if (lineWidth > width)
return lineWidth; return lineWidth;
return width; else
return width;
} }
u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str)

View File

@ -4802,7 +4802,7 @@ static u8 ChooseWildMonLevel(const struct WildPokemon *wildPokemon)
rand = Random() % range; rand = Random() % range;
// check ability for max level mon // check ability for max level mon
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3)) if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG))
{ {
u8 ability = GetMonAbility(&gPlayerParty[0]); u8 ability = GetMonAbility(&gPlayerParty[0]);
if (ability == ABILITY_HUSTLE || ability == ABILITY_VITAL_SPIRIT || ability == ABILITY_PRESSURE) if (ability == ABILITY_HUSTLE || ability == ABILITY_VITAL_SPIRIT || ability == ABILITY_PRESSURE)
@ -4883,7 +4883,7 @@ static u8 PickWildMonNature(void)
} }
} }
// check synchronize for a pokemon with the same ability // check synchronize for a pokemon with the same ability
if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3) if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG)
&& GetMonAbility(&gPlayerParty[0]) == ABILITY_SYNCHRONIZE && GetMonAbility(&gPlayerParty[0]) == ABILITY_SYNCHRONIZE
&& Random() % 2 == 0) && Random() % 2 == 0)
{ {
@ -4911,7 +4911,7 @@ static void CreateWildMon(u16 species, u8 level)
} }
if (checkCuteCharm if (checkCuteCharm
&& !GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3) && !GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG)
&& GetMonAbility(&gPlayerParty[0]) == ABILITY_CUTE_CHARM && GetMonAbility(&gPlayerParty[0]) == ABILITY_CUTE_CHARM
&& Random() % 3 != 0) && Random() % 3 != 0)
{ {
@ -5029,7 +5029,7 @@ static bool8 DoWildEncounterRateTest(u32 encounterRate, bool8 ignoreAbility)
encounterRate = encounterRate * 80 / 100; encounterRate = encounterRate * 80 / 100;
ApplyFluteEncounterRateMod(&encounterRate); ApplyFluteEncounterRateMod(&encounterRate);
ApplyCleanseTagEncounterRateMod(&encounterRate); ApplyCleanseTagEncounterRateMod(&encounterRate);
if (!ignoreAbility && !GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3)) if (!ignoreAbility && !GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG))
{ {
u32 ability = GetMonAbility(&gPlayerParty[0]); u32 ability = GetMonAbility(&gPlayerParty[0]);
@ -5419,7 +5419,7 @@ static bool8 IsAbilityAllowingEncounter(u8 level)
{ {
u8 ability; u8 ability;
if (GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3)) if (GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG))
return TRUE; return TRUE;
ability = GetMonAbility(&gPlayerParty[0]); ability = GetMonAbility(&gPlayerParty[0]);
@ -5456,7 +5456,7 @@ static bool8 TryGetRandomWildMonIndexByType(const struct WildPokemon *wildMon, u
static bool8 TryGetAbilityInfluencedWildMonIndex(const struct WildPokemon *wildMon, u8 type, u8 ability, u8 *monIndex) static bool8 TryGetAbilityInfluencedWildMonIndex(const struct WildPokemon *wildMon, u8 type, u8 ability, u8 *monIndex)
{ {
if (GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3)) if (GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG))
return FALSE; return FALSE;
else if (GetMonAbility(&gPlayerParty[0]) != ability) else if (GetMonAbility(&gPlayerParty[0]) != ability)
return FALSE; return FALSE;

View File

@ -237,7 +237,7 @@ gUnknown_02039D12: @ 2039D12
gUnknown_02039D14: @ 2039D14 gUnknown_02039D14: @ 2039D14
.space 0x64 .space 0x64
sBoxCursorAction: @ 2039D78 sBoxCursorArea: @ 2039D78
.space 0x1 .space 0x1
sBoxCursorPosition: @ 2039D79 sBoxCursorPosition: @ 2039D79