summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com>2020-07-03 21:35:59 -0400
committerluckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com>2020-07-03 21:35:59 -0400
commit4bf7e4f4fb033085f9c6819a116b131e62e15ee9 (patch)
treea94e2a56ca33d7d18637948bc8b49558f44bece2
parent7cb48a704a5f3783577bd85a85a802213e3d562c (diff)
pokemon_summary_screen.c, part 11.
-rw-r--r--asm/pokemon_summary_screen.s132
-rw-r--r--src/pokemon_summary_screen.c57
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);
+}