summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-09-18 21:26:11 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-09-18 21:26:11 -0400
commit7de2140b868a77ea99e4965b06602af9d7de2926 (patch)
treeba06c5a3f408ff5f2a7176279e3ac9d52ed89c60
parente033c721219f4412a0cb2cbbdcbec583ec60c87a (diff)
sub_818D0C4
-rw-r--r--asm/battle_dome_cards.s109
-rw-r--r--src/battle_dome_cards.c43
2 files changed, 40 insertions, 112 deletions
diff --git a/asm/battle_dome_cards.s b/asm/battle_dome_cards.s
index 923dc997d..1e0db8e71 100644
--- a/asm/battle_dome_cards.s
+++ b/asm/battle_dome_cards.s
@@ -6,115 +6,6 @@
.text
- thumb_func_start sub_818D09C
-sub_818D09C: @ 818D09C
- push {r4,lr}
- sub sp, 0x8
- ldr r4, [sp, 0x10]
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- bl load_pokemon_image_TODO
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_818D09C
-
- thumb_func_start sub_818D0C4
-sub_818D0C4: @ 818D0C4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r1, 0
- mov r8, r2
- ldr r1, [sp, 0x18]
- ldr r2, [sp, 0x1C]
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- lsls r3, 24
- lsrs r5, r3, 24
- mov r12, r5
- lsls r1, 16
- lsrs r3, r1, 16
- adds r1, r3, 0
- lsls r2, 24
- cmp r2, 0
- bne _0818D128
- ldr r0, =0x0000ffff
- cmp r3, r0
- bne _0818D110
- ldr r2, =gUnknown_0203CCEC
- ldrh r1, [r2, 0x2]
- adds r0, r3, 0
- orrs r0, r1
- strh r0, [r2, 0x2]
- adds r0, r4, 0
- adds r1, r7, 0
- mov r2, r8
- bl species_and_otid_get_pal
- lsls r1, r5, 20
- b _0818D144
- .pool
-_0818D110:
- ldr r0, =gUnknown_0203CCEC
- strh r3, [r0, 0x2]
- adds r0, r4, 0
- adds r1, r7, 0
- mov r2, r8
- bl sub_806E7CC
- bl LoadCompressedObjectPalette
- b _0818D16E
- .pool
-_0818D128:
- ldr r0, =0x0000ffff
- cmp r3, r0
- bne _0818D160
- ldr r2, =gUnknown_0203CCEC
- ldrh r1, [r2, 0x2]
- adds r0, r3, 0
- orrs r0, r1
- strh r0, [r2, 0x2]
- ldr r1, =gTrainerFrontPicPaletteTable
- lsls r0, r4, 3
- adds r0, r1
- ldr r0, [r0]
- mov r2, r12
- lsls r1, r2, 20
-_0818D144:
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- b _0818D16E
- .pool
-_0818D160:
- ldr r0, =gUnknown_0203CCEC
- strh r1, [r0, 0x2]
- lsls r0, r6, 3
- ldr r1, =gTrainerFrontPicPaletteTable
- adds r0, r1
- bl LoadCompressedObjectPalette
-_0818D16E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818D0C4
-
thumb_func_start sub_818D180
sub_818D180: @ 818D180
push {r4,r5,lr}
diff --git a/src/battle_dome_cards.c b/src/battle_dome_cards.c
index 6ceb929ad..085afeb0c 100644
--- a/src/battle_dome_cards.c
+++ b/src/battle_dome_cards.c
@@ -3,13 +3,14 @@
#include "global.h"
#include "sprite.h"
#include "species.h"
-#include "pokemon.h"
+#include "palette.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[];
+extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
// Static type declarations
@@ -20,6 +21,7 @@ struct BattleDomeCard {
// Static RAM declarations
extern struct BattleDomeCard gUnknown_0203CD04[8];
+extern struct SpriteTemplate gUnknown_0203CCEC;
// Static ROM declarations
@@ -34,7 +36,7 @@ void nullsub_122(struct Sprite *sprite)
}
-bool8 dp13_810BB8C(void)
+bool16 dp13_810BB8C(void)
{
int i;
@@ -45,7 +47,7 @@ bool8 dp13_810BB8C(void)
return FALSE;
}
-bool8 load_pokemon_image_TODO(u16 species, u32 personality, bool8 isFrontPic, void *dest, bool8 isTrainer, bool8 ignoreDeoxys)
+bool16 load_pokemon_image_TODO(u16 species, u32 personality, bool8 isFrontPic, void *dest, bool8 isTrainer, bool8 ignoreDeoxys)
{
if (!isTrainer)
{
@@ -85,3 +87,38 @@ bool8 load_pokemon_image_TODO(u16 species, u32 personality, bool8 isFrontPic, vo
}
return FALSE;
}
+
+bool16 sub_818D09C(u16 species, u32 personality, bool8 isFrontPic, void *dest, bool8 isTrainer)
+{
+ return load_pokemon_image_TODO(species, personality, isFrontPic, dest, isTrainer, FALSE);
+}
+
+void sub_818D0C4(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
+{
+ if (!isTrainer)
+ {
+ if (paletteTag == 0xFFFF)
+ {
+ gUnknown_0203CCEC.paletteTag |= 0xFFFF;
+ LoadCompressedPalette(species_and_otid_get_pal(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20);
+ }
+ else
+ {
+ gUnknown_0203CCEC.paletteTag = paletteTag;
+ LoadCompressedObjectPalette(sub_806E7CC(species, otId, personality));
+ }
+ }
+ else
+ {
+ if (paletteTag == 0xFFFF)
+ {
+ gUnknown_0203CCEC.paletteTag |= 0xFFFF;
+ LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, 0x100 + paletteSlot * 0x10, 0x20);
+ }
+ else
+ {
+ gUnknown_0203CCEC.paletteTag = paletteTag;
+ LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]);
+ }
+ }
+}