summaryrefslogtreecommitdiff
path: root/src/battle_transition.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle_transition.c')
-rw-r--r--src/battle_transition.c52
1 files changed, 48 insertions, 4 deletions
diff --git a/src/battle_transition.c b/src/battle_transition.c
index c0770f793..9f4126822 100644
--- a/src/battle_transition.c
+++ b/src/battle_transition.c
@@ -160,9 +160,9 @@ static bool8 sub_811C938(struct Sprite* sprite);
static bool8 sub_811C984(struct Sprite* sprite);
static bool8 sub_811C9B8(struct Sprite* sprite);
static bool8 sub_811C9E4(struct Sprite* sprite);
+static void sub_811D4C8(s16 a0, s16 a1, s16 a2, s16 a3, s16 a4);
+static bool8 sub_811D52C(void);
-void sub_811D4C8(s16 a0, s16 a1, s16 a2, s16 a3, s16 a4);
-bool8 sub_811D52C(void);
void sub_811D658(void);
void VBlankCB_BattleTransition(void);
void sub_811D6E8(s16* a0, s16 a1, s16 a2, s16 a3, s16 a4, s16 a5);
@@ -173,6 +173,9 @@ void sub_811D6D4(void);
void sub_811D8FC(s16* a0, s16 a1, s16 a2, s16 a3, s16 a4, s16 a5, s16 a6);
bool8 sub_811D978(s16* a0, bool8 a1, bool8 a2);
void sub_811CFD0(struct Sprite* sprite);
+void sub_811D54C(u8 taskID);
+bool8 sub_811D584(struct Task* task);
+bool8 sub_811D5E0(struct Task* task);
// const data
@@ -364,14 +367,31 @@ static const TransitionState sPhase2_Transition11_Funcs[] =
&Phase2_Transition11_Func5
};
+static const s16 gUnknown_083FD8F4[][5] =
+{
+ {56, 0, 0, 160, 0},
+ {104, 160, 240, 88, 1},
+ {240, 72, 56, 0, 1},
+ {0, 32, 144, 160, 0},
+ {144, 160, 184, 0, 1},
+ {56, 0, 168, 160, 0},
+ {168, 160, 48, 0, 1},
+};
+
+static const s16 gUnknown_083FD93A[] = {8, 4, 2, 1, 1, 1, 0};
+
+static const TransitionState gUnknown_083FD948[] =
+{
+ &sub_811D584,
+ &sub_811D5E0
+};
+
extern const u16 gFieldEffectObjectPalette10[];
extern const u16 gUnknown_083FDB44[];
extern const struct SpriteTemplate gSpriteTemplate_83FD98C;
extern const u16 gUnknown_083FDFF4[];
extern const u8 * const sOpponentMugshotsPals[];
extern const u8 * const sPlayerMugshotsPals[2];
-extern const s16 gUnknown_083FD8F4[][5];
-extern const s16 gUnknown_083FD93A[];
// actual code starts here
@@ -2116,3 +2136,27 @@ static void VBlankCB_Phase2_Transition11(void)
REG_WIN0H = gUnknown_03004DE0[1][0];
DmaSet(0, gUnknown_03004DE0[1], &REG_WIN0H, 0xA2400001);
}
+
+static void sub_811D4C8(s16 a0, s16 a1, s16 a2, s16 a3, s16 a4)
+{
+ u8 taskID = CreateTask(sub_811D54C, 3);
+ gTasks[taskID].data[1] = a0;
+ gTasks[taskID].data[2] = a1;
+ gTasks[taskID].data[3] = a2;
+ gTasks[taskID].data[4] = a3;
+ gTasks[taskID].data[5] = a4;
+ gTasks[taskID].data[6] = a0;
+}
+
+static bool8 sub_811D52C(void)
+{
+ if (FindTaskIdByFunc(sub_811D54C) == 0xFF)
+ return 1;
+ else
+ return 0;
+}
+
+void sub_811D54C(u8 taskID)
+{
+ while (gUnknown_083FD948[gTasks[taskID].tState](&gTasks[taskID]));
+}