pokemon_summary_screen.c, part 11.

This commit is contained in:
luckytyphlosion
2020-07-03 21:35:59 -04:00
parent 7cb48a704a
commit 4bf7e4f4fb
2 changed files with 33 additions and 156 deletions
-132
View File
@@ -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
+33 -24
View File
@@ -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);
}