summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_dome_cards.s86
-rw-r--r--src/battle_dome_cards.c52
2 files changed, 51 insertions, 87 deletions
diff --git a/asm/battle_dome_cards.s b/asm/battle_dome_cards.s
index 525aa3d79..923dc997d 100644
--- a/asm/battle_dome_cards.s
+++ b/asm/battle_dome_cards.s
@@ -6,92 +6,6 @@
.text
- thumb_func_start load_pokemon_image_TODO
-@ int load_pokemon_image_TODO(int species_num, unsigned int a2, u8 a3, void *a4, int a5, u8 a6)
-load_pokemon_image_TODO: @ 818CFF4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r1, 0
- adds r5, r3, 0
- ldr r3, [sp, 0x18]
- ldr r1, [sp, 0x1C]
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r4, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- cmp r3, 0
- bne _0818D068
- cmp r2, 0
- beq _0818D034
- cmp r1, 0
- bne _0818D028
- lsls r0, r4, 3
- ldr r1, =gMonFrontPicTable
- b _0818D03C
- .pool
-_0818D028:
- lsls r0, r4, 3
- ldr r1, =gMonFrontPicTable
- b _0818D054
- .pool
-_0818D034:
- cmp r0, 0
- bne _0818D050
- lsls r0, r4, 3
- ldr r1, =gMonBackPicTable
-_0818D03C:
- adds r0, r1
- str r2, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl LoadSpecialPokePic
- b _0818D08E
- .pool
-_0818D050:
- lsls r0, r4, 3
- ldr r1, =gMonBackPicTable
-_0818D054:
- adds r0, r1
- str r2, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl LoadSpecialPokePic_DontHandleDeoxys
- b _0818D08E
- .pool
-_0818D068:
- cmp r2, 0
- beq _0818D080
- lsls r0, r4, 3
- ldr r1, =gTrainerFrontPicTable
- adds r0, r1
- adds r1, r5, 0
- adds r2, r4, 0
- bl DecompressPicFromTable
- b _0818D08E
- .pool
-_0818D080:
- lsls r0, r7, 3
- ldr r1, =gTrainerBackPicTable
- adds r0, r1
- adds r1, r5, 0
- adds r2, r7, 0
- bl DecompressPicFromTable
-_0818D08E:
- movs r0, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end load_pokemon_image_TODO
-
thumb_func_start sub_818D09C
sub_818D09C: @ 818D09C
push {r4,lr}
diff --git a/src/battle_dome_cards.c b/src/battle_dome_cards.c
index 0afad23f6..6ceb929ad 100644
--- a/src/battle_dome_cards.c
+++ b/src/battle_dome_cards.c
@@ -1,6 +1,15 @@
// Includes
#include "global.h"
+#include "sprite.h"
+#include "species.h"
+#include "pokemon.h"
+#include "decompress.h"
+
+extern const struct CompressedSpriteSheet gMonFrontPicTable[NUM_SPECIES];
+extern const struct CompressedSpriteSheet gMonBackPicTable[NUM_SPECIES];
+extern const struct CompressedSpriteSheet gTrainerFrontPicTable[];
+extern const struct CompressedSpriteSheet gTrainerBackPicTable[];
// Static type declarations
@@ -20,7 +29,7 @@ extern const struct BattleDomeCard gUnknown_0860B058;
// .text
-void nullsub_122(void)
+void nullsub_122(struct Sprite *sprite)
{
}
@@ -35,3 +44,44 @@ bool8 dp13_810BB8C(void)
}
return FALSE;
}
+
+bool8 load_pokemon_image_TODO(u16 species, u32 personality, bool8 isFrontPic, void *dest, bool8 isTrainer, bool8 ignoreDeoxys)
+{
+ if (!isTrainer)
+ {
+ if (isFrontPic)
+ {
+ if (!ignoreDeoxys)
+ {
+ LoadSpecialPokePic(&gMonFrontPicTable[species], dest, species, personality, isFrontPic);
+ }
+ else
+ {
+ LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], dest, species, personality, isFrontPic);
+ }
+ }
+ else
+ {
+ if (!ignoreDeoxys)
+ {
+ LoadSpecialPokePic(&gMonBackPicTable[species], dest, species, personality, isFrontPic);
+ }
+ else
+ {
+ LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], dest, species, personality, isFrontPic);
+ }
+ }
+ }
+ else
+ {
+ if (isFrontPic)
+ {
+ DecompressPicFromTable(&gTrainerFrontPicTable[species], dest, species);
+ }
+ else
+ {
+ DecompressPicFromTable(&gTrainerBackPicTable[species], dest, species);
+ }
+ }
+ return FALSE;
+}