diff options
-rw-r--r-- | asm/pokemon_summary_screen.s | 132 | ||||
-rw-r--r-- | src/pokemon_summary_screen.c | 57 |
2 files changed, 33 insertions, 156 deletions
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 0f7896dc8..8f4722c2b 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,138 +5,6 @@ .text - thumb_func_start sub_8139C44 -sub_8139C44: @ 8139C44 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08139C74 @ =gSprites - ldr r1, _08139C78 @ =gMonSummaryScreen - ldr r1, [r1] - ldr r2, _08139C7C @ =0x00003010 - adds r1, r2 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - adds r2, 0x3E - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - ldrb r3, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r0 - strb r1, [r2] - bx lr - .align 2, 0 -_08139C74: .4byte gSprites -_08139C78: .4byte gMonSummaryScreen -_08139C7C: .4byte 0x00003010 - thumb_func_end sub_8139C44 - - thumb_func_start sub_8139C80 -sub_8139C80: @ 8139C80 - push {r4,lr} - ldr r0, _08139CA4 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08139CA8 @ =0x00003010 - adds r0, r1 - ldrb r0, [r0] - bl FreeAndDestroyMonPicSprite - ldr r4, _08139CAC @ =gUnknown_203B170 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08139CA4: .4byte gMonSummaryScreen -_08139CA8: .4byte 0x00003010 -_08139CAC: .4byte gUnknown_203B170 - thumb_func_end sub_8139C80 - - thumb_func_start sub_8139CB0 -sub_8139CB0: @ 8139CB0 - push {r4,lr} - ldr r0, _08139CD4 @ =gMonSummaryScreen - ldr r1, [r0] - movs r2, 0xC8 - lsls r2, 6 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _08139CD8 - adds r2, 0x90 - adds r0, r1, r2 - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - b _08139CDA - .align 2, 0 -_08139CD4: .4byte gMonSummaryScreen -_08139CD8: - movs r0, 0 -_08139CDA: - bl ItemIdToBallId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl LoadBallGfx - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, _08139D40 @ =gBallSpriteTemplates - adds r0, r1 - movs r1, 0x6A - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - ldr r2, _08139D44 @ =gMonSummaryScreen - ldr r1, [r2] - ldr r3, _08139D48 @ =0x0000300c - adds r1, r3 - strb r0, [r1] - ldr r4, _08139D4C @ =gSprites - ldr r2, [r2] - adds r2, r3 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08139D50 @ =SpriteCallbackDummy - str r1, [r0] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - movs r0, 0x1 - bl sub_8139D54 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08139D40: .4byte gBallSpriteTemplates -_08139D44: .4byte gMonSummaryScreen -_08139D48: .4byte 0x0000300c -_08139D4C: .4byte gSprites -_08139D50: .4byte SpriteCallbackDummy - thumb_func_end sub_8139CB0 - thumb_func_start sub_8139D54 sub_8139D54: @ 8139D54 lsls r0, 24 diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index ec42eb65c..a3015ca85 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -28,6 +28,8 @@ #include "constants/battle.h" #include "event_data.h" #include "trainer_pokemon_sprites.h" +#include "battle_anim.h" +#include "pokeball.h" extern void sub_8138B8C(struct Pokemon * mon); void sub_8135C34(void); @@ -141,20 +143,12 @@ struct PokemonSummaryScreenData { bool32 isEnemyParty; /* 0x3024 */ struct PokeSummary { - // u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH]; - // u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1]; - - // u8 ALIGNED(4) unk3040[OT_NAME_LENGTH + 1]; - // u8 ALIGNED(4) unk3048[2][OT_NAME_LENGTH + 1]; - u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH]; u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1]; u8 ALIGNED(4) unk3040[12]; u8 ALIGNED(4) unk304C[2][12]; u8 ALIGNED(4) unk3064[5]; - //u8 ALIGNED(4) unk3060[7]; - //u8 ALIGNED(4) unk3068[16]; u8 ALIGNED(4) unk306C[7]; u8 ALIGNED(4) unk3074[ITEM_NAME_LENGTH + 1]; @@ -175,22 +169,6 @@ struct PokemonSummaryScreenData { u8 ALIGNED(4) unk31BC[13]; u8 ALIGNED(4) unk31CC[20]; u8 ALIGNED(4) pad31E0[0x20]; - - // u8 ALIGNED(4) unk3090[9]; - // u8 ALIGNED(4) unk309C[5][5]; - - // u8 ALIGNED(4) unk30AC[5][11]; - // u8 ALIGNED(4) unk30E4[5][11]; - // u8 ALIGNED(4) unk311C[5][13]; - // u8 ALIGNED(4) pssd4[5][5]; - // u8 ALIGNED(4) pssd5[5][5]; - - // u8 ALIGNED(4) pssd6[9]; - // u8 ALIGNED(4) pssd7[9]; - - // u8 ALIGNED(4) pssd8[13]; - // u8 ALIGNED(4) pssd9[20]; - // u8 ALIGNED(4) tempPadRemoveLater[0x2c]; } summary; u8 ALIGNED(4) isEgg; /* 0x3200 */ @@ -3513,3 +3491,34 @@ void sub_8139AAC(u16 spriteId) gSprites[spriteId].callback = sub_8139768; } + +void sub_8139C44(u8 invisible) +{ + gSprites[gMonSummaryScreen->unk3010].invisible = invisible; +} + +void sub_8139C80(void) +{ + FreeAndDestroyMonPicSprite(gMonSummaryScreen->unk3010); + FREE_AND_SET_NULL(gUnknown_203B170); +} + +void sub_8139CB0(void) +{ + u16 ballItemId; + u8 ballId; + + if (gMonSummaryScreen->isEgg == 0) + ballItemId = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_POKEBALL); + else + ballItemId = 0; + + ballId = ItemIdToBallId(ballItemId); + LoadBallGfx(ballId); + + gMonSummaryScreen->unk300C = CreateSprite(&gBallSpriteTemplates[ballId], 106, 88, 0); + gSprites[gMonSummaryScreen->unk300C].callback = SpriteCallbackDummy; + gSprites[gMonSummaryScreen->unk300C].oam.priority = 0; + + sub_8139D54(1); +} |