summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-07 22:25:16 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-07 22:25:16 -0500
commit02fea36a2e43523c9e9401897ac2fdbeb37ed3d4 (patch)
tree61f83715915bc870f6e737bdf07959d960b86372
parentceebbe19918520c65ed9bdcd79d4ae5fbb669d88 (diff)
through sub_8096C68
-rw-r--r--asm/pokemon_storage_system.s79
-rw-r--r--include/pc_screen_effect.h19
-rw-r--r--src/field/pc_screen_effect.c17
-rw-r--r--src/pokemon/pokemon_storage_system.c35
-rw-r--r--src/scene/hall_of_fame.c4
5 files changed, 58 insertions, 96 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 4db9c1667..49bb3995e 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -5,85 +5,6 @@
.text
- thumb_func_start sub_8096BF0
-sub_8096BF0: @ 8096BF0
- push {r4,lr}
- ldr r4, _08096C04 @ =gSharedMem
- ldrb r0, [r4, 0x4]
- cmp r0, 0x1
- beq _08096C16
- cmp r0, 0x1
- bgt _08096C08
- cmp r0, 0
- beq _08096C0E
- b _08096C5C
- .align 2, 0
-_08096C04: .4byte gSharedMem
-_08096C08:
- cmp r0, 0x2
- beq _08096C4C
- b _08096C5C
-_08096C0E:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- b _08096C38
-_08096C16:
- movs r0, 0x2
- bl PlaySE
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08096C48 @ =0x0000dad0
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5CD4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
-_08096C38:
- movs r2, 0
- bl BlendPalettes
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08096C5C
- .align 2, 0
-_08096C48: .4byte 0x0000dad0
-_08096C4C:
- bl sub_80C5DCC
- lsls r0, 24
- cmp r0, 0
- beq _08096C5C
- ldr r0, _08096C64 @ =sub_8096C84
- bl sub_8096BE0
-_08096C5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096C64: .4byte sub_8096C84
- thumb_func_end sub_8096BF0
-
- thumb_func_start sub_8096C68
-sub_8096C68: @ 8096C68
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08096C7A
- ldr r0, _08096C80 @ =sub_8096C84
- bl sub_8096BE0
-_08096C7A:
- pop {r0}
- bx r0
- .align 2, 0
-_08096C80: .4byte sub_8096C84
- thumb_func_end sub_8096C68
-
thumb_func_start sub_8096C84
sub_8096C84: @ 8096C84
push {r4,lr}
diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h
new file mode 100644
index 000000000..a791fc66f
--- /dev/null
+++ b/include/pc_screen_effect.h
@@ -0,0 +1,19 @@
+#ifndef POKERUBY_PC_SCREEN_EFFECT_H
+#define POKERUBY_PC_SCREEN_EFFECT_H
+
+struct PCScreenEffectStruct
+{
+ /*0x00*/ u16 tileTag;
+ /*0x02*/ u16 paletteTag;
+ /*0x04*/ u16 unk04;
+ /*0x06*/ u16 unk06;
+ /*0x08*/ u16 unk08;
+ /*0x0A*/ u16 unk0A;
+ /*0x0C*/ s16 unk0C;
+ /*0x10*/ u32 selectedPalettes;
+};
+
+void sub_80C5CD4(struct PCScreenEffectStruct *unkStruct);
+bool8 sub_80C5DCC(void);
+
+#endif //POKERUBY_PC_SCREEN_EFFECT_H
diff --git a/src/field/pc_screen_effect.c b/src/field/pc_screen_effect.c
index 364fca0aa..dda569ea4 100644
--- a/src/field/pc_screen_effect.c
+++ b/src/field/pc_screen_effect.c
@@ -2,18 +2,7 @@
#include "main.h"
#include "palette.h"
#include "sprite.h"
-
-struct UnkStruct
-{
- /*0x00*/ u16 tileTag;
- /*0x02*/ u16 paletteTag;
- /*0x04*/ u16 unk04;
- /*0x06*/ u16 unk06;
- /*0x08*/ u16 unk08;
- /*0x0A*/ u16 unk0A;
- /*0x0C*/ s16 unk0C;
- /*0x10*/ u32 selectedPalettes;
-};
+#include "pc_screen_effect.h"
void sub_80C603C(void);
void sub_80C6078(void);
@@ -30,7 +19,7 @@ extern const u16 gUnknownPal_083D18EC[16];
extern const u8 gUnknownGfx_083D190C[128];
-extern struct UnkStruct *gUnknown_020387EC;
+extern struct PCScreenEffectStruct *gUnknown_020387EC;
const struct SpriteSheet gUnknown_083D1898 = { gUnknownGfx_083D190C, sizeof(gUnknownGfx_083D190C), 0 };
@@ -58,7 +47,7 @@ const struct SpriteTemplate gSpriteTemplate_83D18C0 =
sub_80C6130,
};
-void sub_80C5CD4(struct UnkStruct *unkStruct)
+void sub_80C5CD4(struct PCScreenEffectStruct *unkStruct)
{
u16 i;
diff --git a/src/pokemon/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c
index f09d9b302..d6119476c 100644
--- a/src/pokemon/pokemon_storage_system.c
+++ b/src/pokemon/pokemon_storage_system.c
@@ -14,6 +14,7 @@
#include "ewram.h"
#include "script.h"
#include "pokemon_summary_screen.h"
+#include "pc_screen_effect.h"
#include "naming_screen.h"
#include "pokemon_storage_system.h"
@@ -53,7 +54,7 @@ struct PokemonStorageSystemData {
u8 unk_0006;
u16 unk_0008;
u16 unk_000a;
- u8 filler_000c[20];
+ struct PCScreenEffectStruct unk_000c;
struct UnkStruct_2000020 unk_0020[274]; // refine size later
u8 filler_08b0[4];
u16 unk_08b4;
@@ -82,6 +83,7 @@ void sub_8096B38(void);
void sub_8096BE0(void (*func)(void));
void sub_8096BF0(void);
void sub_8096C68(void);
+void sub_8096C84(void);
void sub_8097DE0(void);
void sub_8097E44(void);
void sub_8097E70(void);
@@ -1011,6 +1013,37 @@ void sub_8096BE0(void (*func)(void))
ePokemonStorageSystem.unk_0004 = 0;
}
+void sub_8096BF0(void)
+{
+ switch (ePokemonStorageSystem.unk_0004)
+ {
+ case 0:
+ BlendPalettes(0xffffffff, 16, 0);
+ ePokemonStorageSystem.unk_0004++;
+ break;
+ case 1:
+ PlaySE(SE_PC_LOGON);
+ ePokemonStorageSystem.unk_000c.tileTag = 14;
+ ePokemonStorageSystem.unk_000c.paletteTag = 0xdad0;
+ ePokemonStorageSystem.unk_000c.unk04 = 0;
+ ePokemonStorageSystem.unk_000c.unk06 = 0;
+ sub_80C5CD4(&ePokemonStorageSystem.unk_000c);
+ BlendPalettes(0xffffffff, 0, 0);
+ ePokemonStorageSystem.unk_0004++;
+ break;
+ case 2:
+ if (sub_80C5DCC())
+ sub_8096BE0(sub_8096C84);
+ break;
+ }
+}
+
+void sub_8096C68(void)
+{
+ if (!UpdatePaletteFade())
+ sub_8096BE0(sub_8096C84);
+}
+
asm(".section .text.8098898");
void sub_8098898(u8 index) {
diff --git a/src/scene/hall_of_fame.c b/src/scene/hall_of_fame.c
index 1751ee99c..812c28137 100644
--- a/src/scene/hall_of_fame.c
+++ b/src/scene/hall_of_fame.c
@@ -17,6 +17,7 @@
#include "decompress.h"
#include "random.h"
#include "trig.h"
+#include "pc_screen_effect.h"
#include "ewram.h"
static EWRAM_DATA u32 sUnknown_0203931C = 0;
@@ -89,7 +90,6 @@ static bool8 sub_81438C4(void);
// functions from different files
void sub_81439D0(void);
-void sub_80C5CD4(void*); // ?
void sub_80C5E38(void*); // ?
bool8 sub_80C5DCC(void);
bool8 sub_80C5F98(void);
@@ -811,7 +811,7 @@ void sub_81428CC(void)
fameMons = eHallOfFameMons1;
fameMons->mons[0] = sDummyFameMon;
- sub_80C5CD4(fameMons);
+ sub_80C5CD4((struct PCScreenEffectStruct *)fameMons);
gMain.state++;
}
break;