summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rom_800D42C.c96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/rom_800D42C.c b/src/rom_800D42C.c
new file mode 100644
index 000000000..43819f991
--- /dev/null
+++ b/src/rom_800D42C.c
@@ -0,0 +1,96 @@
+#include "global.h"
+#include "battle.h"
+#include "link.h"
+#include "text.h"
+
+struct Unk2000000
+{
+ u8 filler0[0x160CB];
+ /* 0x160CB */ u8 linkPlayerIndex;
+};
+
+extern struct Unk2000000 unk_2000000;
+extern u16 gBattleTypeFlags;
+extern u8 gUnknown_02024D26;
+
+extern struct Window gUnknown_03004210;
+
+extern u8 BattleText_Win[];
+extern u8 BattleText_Loss[];
+extern u8 BattleText_Tie[];
+
+#define LEFT_MESSAGE_X 6
+#define RIGHT_MESSAGE_X 21
+#define CENTER_MESSAGE_X 13
+#define MESSAGE_Y 2
+
+#define PRINT_MESSAGE(text, tileDataStartOffset, x) \
+{ \
+ InitWindow(&gUnknown_03004210, text, tileDataStartOffset, x, MESSAGE_Y); \
+ sub_8002F44(&gUnknown_03004210); \
+}
+
+#define PRINT_MESSAGE_LEFT(text, tileDataStartOffset) PRINT_MESSAGE(text, tileDataStartOffset, LEFT_MESSAGE_X)
+#define PRINT_MESSAGE_RIGHT(text, tileDataStartOffset) PRINT_MESSAGE(text, tileDataStartOffset, RIGHT_MESSAGE_X)
+
+void sub_800DC24(void) {
+
+ if (gUnknown_02024D26 == 3) {
+ PRINT_MESSAGE(BattleText_Tie, 160, CENTER_MESSAGE_X);
+ return;
+ }
+
+ if (gBattleTypeFlags & BATTLE_TYPE_40) {
+ // Double battle?
+
+ if (gUnknown_02024D26 == 1) {
+
+ // lp_field_18 = player position?
+ switch (gLinkPlayers[unk_2000000.linkPlayerIndex].lp_field_18) {
+ case 0:
+ case 2: PRINT_MESSAGE_LEFT(BattleText_Win, 160);
+ PRINT_MESSAGE_RIGHT(BattleText_Loss, 168);
+ return;
+
+ case 1:
+ case 3: PRINT_MESSAGE_RIGHT(BattleText_Win, 160)
+ PRINT_MESSAGE_LEFT(BattleText_Loss, 168)
+ return;
+ }
+ } else {
+
+ switch (gLinkPlayers[unk_2000000.linkPlayerIndex].lp_field_18) {
+ case 1:
+ case 3: PRINT_MESSAGE_LEFT(BattleText_Win, 160);
+ PRINT_MESSAGE_RIGHT(BattleText_Loss, 168);
+ return;
+
+ case 0:
+ case 2: PRINT_MESSAGE_RIGHT(BattleText_Win, 160);
+ PRINT_MESSAGE_LEFT(BattleText_Loss, 168);
+ return;
+ }
+ }
+
+ return;
+ }
+
+
+ if (gUnknown_02024D26 == 1) {
+ if (gLinkPlayers[unk_2000000.linkPlayerIndex].lp_field_18 != 0) {
+ PRINT_MESSAGE_RIGHT(BattleText_Win, 160);
+ PRINT_MESSAGE_LEFT(BattleText_Loss, 168);
+ } else {
+ PRINT_MESSAGE_LEFT(BattleText_Win, 160);
+ PRINT_MESSAGE_RIGHT(BattleText_Loss, 168);
+ }
+ } else {
+ if (gLinkPlayers[unk_2000000.linkPlayerIndex].lp_field_18 != 0) {
+ PRINT_MESSAGE_LEFT(BattleText_Win, 160);
+ PRINT_MESSAGE_RIGHT(BattleText_Loss, 168);
+ } else {
+ PRINT_MESSAGE_RIGHT(BattleText_Win, 160);
+ PRINT_MESSAGE_LEFT(BattleText_Loss, 168);
+ }
+ }
+}