Merge record mixing, pokemon and global with apprentice

This commit is contained in:
DizzyEggg
2018-10-13 20:38:46 +02:00
parent 74b81bf229
commit a496a763ca
11 changed files with 503 additions and 1316 deletions
+8 -8
View File
@@ -35,6 +35,7 @@
#include "pokenav.h"
#include "pokemon_storage_system.h"
#include "recorded_battle.h"
#include "apprentice.h"
struct SpeciesItem
{
@@ -69,7 +70,6 @@ extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[];
extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[];
extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[];
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
extern const struct UnknownPokemonStruct3 gUnknown_08610970[];
extern const struct CompressedSpritePalette gMonPaletteTable[];
extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
extern const u8 gTrainerClassNames[][13];
@@ -2873,17 +2873,17 @@ void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lv
CalculateMonStats(mon);
}
void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u8 monId)
void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId)
{
s32 i;
u16 evAmount;
u8 language;
u32 otId = gUnknown_08610970[src->field_0_0].field_30;
u32 personality = ((gUnknown_08610970[src->field_0_0].field_30 >> 8) | ((gUnknown_08610970[src->field_0_0].field_30 & 0xFF) << 8))
+ src->mons[monId].species + src->field_2;
u32 otId = gApprentices[src->field_0_0].otId;
u32 personality = ((gApprentices[src->field_0_0].otId >> 8) | ((gApprentices[src->field_0_0].otId & 0xFF) << 8))
+ src->monData[monId].species + src->field_2;
CreateMon(mon,
src->mons[monId].species,
src->monData[monId].species,
GetFrontierEnemyMonLevel(src->field_0_1 - 1),
0x1F,
TRUE,
@@ -2891,9 +2891,9 @@ void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u
TRUE,
otId);
SetMonData(mon, MON_DATA_HELD_ITEM, &src->mons[monId].item);
SetMonData(mon, MON_DATA_HELD_ITEM, &src->monData[monId].item);
for (i = 0; i < 4; i++)
SetMonMoveSlot(mon, src->mons[monId].moves[i], i);
SetMonMoveSlot(mon, src->monData[monId].moves[i], i);
evAmount = MAX_TOTAL_EVS / NUM_STATS;
for (i = 0; i < NUM_STATS; i++)