summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2018-10-13 00:48:26 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2018-10-13 00:48:26 +0200
commit74b81bf229ded3212ab77701aebd4e16799731ec (patch)
tree941bb520c99e92ab4e305900218dd52f73f97d8b /src
parenta2a6700966cc802185577e44ba88a9154429c93b (diff)
start apprentice
Diffstat (limited to 'src')
-rw-r--r--src/battle_frontier_2.c151
1 files changed, 151 insertions, 0 deletions
diff --git a/src/battle_frontier_2.c b/src/battle_frontier_2.c
new file mode 100644
index 000000000..e21e972cd
--- /dev/null
+++ b/src/battle_frontier_2.c
@@ -0,0 +1,151 @@
+#include "global.h"
+#include "string_util.h"
+#include "script.h"
+#include "text.h"
+#include "random.h"
+#include "main.h"
+
+struct Unk030062ECStruct
+{
+ u8 unk0;
+ u16 unk2[3][5];
+};
+
+extern struct Unk030062ECStruct *gUnknown_030062EC;
+
+extern const u8 *const gUnknown_08611330[];
+extern const u8 gUnknown_08611548[8];
+
+// This file's functions.
+void sub_81A087C(void);
+
+void sub_819F99C(u8 id)
+{
+ u8 i, var;
+ const u8 *str;
+
+ var = gSaveBlock2Ptr->field_DC[id].field_2;
+ for (i = 0; var != 0 && i < 4; i++)
+ {
+ var /= 10;
+ }
+
+ StringCopy7(gStringVar1, gSaveBlock2Ptr->field_DC[id].playerName);
+ ConvertInternationalString(gStringVar1, gSaveBlock2Ptr->field_DC[id].language);
+ ConvertIntToDecimalStringN(gStringVar2, gSaveBlock2Ptr->field_DC[id].field_2, STR_CONV_MODE_RIGHT_ALIGN, i);
+ str = gUnknown_08611330[gSaveBlock2Ptr->field_DC[id].field_0_0];
+ StringExpandPlaceholders(gStringVar4, str);
+}
+
+void sub_819FA50(void)
+{
+ EnableBothScriptContexts();
+}
+
+void sub_819FA5C(struct UnkRecordMixingStruct *structPtr)
+{
+ u8 i;
+
+ for (i = 0; i < 6; i++)
+ structPtr->unk28[i] |= 0xFFFF;
+
+ structPtr->playerName[0] = EOS;
+ structPtr->field_0_0 = 16;
+}
+
+void sub_819FAA0(void)
+{
+ u8 i, j;
+
+ gSaveBlock2Ptr->field_B2_1 = 0;
+ for (i = 0; i < 4; i++)
+ {
+ for (j = 0; j < 6; j++)
+ gSaveBlock2Ptr->field_DC[i].unk28[j] |= 0xFFFF;
+ gSaveBlock2Ptr->field_DC[i].field_0_0 = 16;
+ gSaveBlock2Ptr->field_DC[i].playerName[0] = EOS;
+ gSaveBlock2Ptr->field_DC[i].field_0_1 = 0;
+ gSaveBlock2Ptr->field_DC[i].field_2 = 0;
+ gSaveBlock2Ptr->field_DC[i].field_1 = 0;
+ for (j = 0; j < 4; j++)
+ gSaveBlock2Ptr->field_DC[i].playerId[j] = 0;
+ gSaveBlock2Ptr->field_DC[i].language = gGameLanguage;
+ gSaveBlock2Ptr->field_DC[i].unk40 = 0;
+ }
+
+ sub_81A087C();
+}
+
+u8 sub_819FBB0(void)
+{
+ return (gSaveBlock2Ptr->field_B1_0 != 0);
+}
+
+void sub_819FBC8(void)
+{
+ if (gSaveBlock2Ptr->field_DC[0].field_2 == 0)
+ {
+ do
+ {
+ gSaveBlock2Ptr->field_B0 = gUnknown_08611548[Random() % ARRAY_COUNT(gUnknown_08611548)];
+ } while (gSaveBlock2Ptr->field_B0 == gSaveBlock2Ptr->field_DC[0].field_0_0);
+ }
+ else
+ {
+ do
+ {
+ gSaveBlock2Ptr->field_B0 = Random() % 16;
+ } while (gSaveBlock2Ptr->field_B0 == gSaveBlock2Ptr->field_DC[0].field_0_0);
+ }
+}
+
+void sub_819FC40(u8 value)
+{
+ gSaveBlock2Ptr->field_B1_0 = value;
+}
+
+void sub_819FC60(void)
+{
+ u8 array[10];
+ u8 i;
+
+ for (i = 0; i < ARRAY_COUNT(array); i++)
+ array[i] = i;
+
+ for (i = 0; i < 50; i++)
+ {
+ u8 temp;
+ u8 var1 = Random() % ARRAY_COUNT(array);
+ u8 var2 = Random() % ARRAY_COUNT(array);
+ SWAP(array[var1], array[var2], temp);
+ }
+
+ for (i = 0; i < 3; i++)
+ gSaveBlock2Ptr->field_B4[i] = ((array[i * 2] & 0xF) << 4) | ((array[i * 2 + 1]) & 0xF);
+}
+
+u8 sub_819FCF8(u8 val, u8 *arg1, u8 *arg2)
+{
+ u8 i, count;
+ u8 ret = 0;
+
+ if (val == 2)
+ {
+ do
+ {
+ ret = Random() % 3;
+ for (count = 0, i = 0; i < 5; i++)
+ {
+ if (gUnknown_030062EC->unk2[ret][i] != 0)
+ count++;
+ }
+ } while (count > 3);
+ }
+ else if (val == 1)
+ {
+ ret = arg1[*arg2];
+ (*arg2)++;
+ }
+
+ return ret;
+}