diff options
author | DizzyEggg <jajkodizzy@wp.pl> | 2018-10-13 00:48:26 +0200 |
---|---|---|
committer | DizzyEggg <jajkodizzy@wp.pl> | 2018-10-13 00:48:26 +0200 |
commit | 74b81bf229ded3212ab77701aebd4e16799731ec (patch) | |
tree | 941bb520c99e92ab4e305900218dd52f73f97d8b /src | |
parent | a2a6700966cc802185577e44ba88a9154429c93b (diff) |
start apprentice
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_frontier_2.c | 151 |
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; +} |