summaryrefslogtreecommitdiff
path: root/src/personality_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/personality_test.c')
-rw-r--r--src/personality_test.c39
1 files changed, 38 insertions, 1 deletions
diff --git a/src/personality_test.c b/src/personality_test.c
index c0562e4..9aef10a 100644
--- a/src/personality_test.c
+++ b/src/personality_test.c
@@ -1,5 +1,8 @@
#include "global.h"
#include "constants/species.h"
+#include "pokemon.h"
+
+#define NUM_PARTNERS 10
// TODO convert this... maybe a script?
const u8 gUnknown_80F4244[32] =
@@ -14,7 +17,7 @@ const u8 gUnknown_80F4244[32] =
'p', 'k', 's', 'd', 'i', 'r', '0', 0
};
-const u16 gPartners[10] =
+const s16 gPartners[NUM_PARTNERS] =
{
SPECIES_CHARMANDER,
SPECIES_BULBASAUR,
@@ -32,6 +35,40 @@ extern u8 gUnknown_80F42D0[];
extern u8 gUnknown_80F42F0[];
extern u8 gUnknown_203B408;
+struct unkStruct_203B404
+{
+ // Size: 0xB8
+ /* 0x0 */ s16 StarterID;
+ /* 0x2 */ s16 PartnerArray[NUM_PARTNERS];
+};
+
+extern struct unkStruct_203B404 *gUnknown_203B404;
+
+s32 GetValidPartners(void)
+{
+ u8 PlayerType[2];
+ u8 currentPartnerTypes[2];
+ s32 counter;
+ s32 ValidPartnerCounter;
+ s32 CurrentPartnerID;
+
+ ValidPartnerCounter = 0;
+ PlayerType[0] = GetPokemonType(gUnknown_203B404->StarterID,0);
+ PlayerType[1] = GetPokemonType(gUnknown_203B404->StarterID,1);
+ for(counter = 0; counter < NUM_PARTNERS; counter++){
+ CurrentPartnerID = gPartners[counter];
+ currentPartnerTypes[0] = GetPokemonType(CurrentPartnerID,0);
+ currentPartnerTypes[1] = GetPokemonType(CurrentPartnerID,1);
+ if (((currentPartnerTypes[0] == '\0') || ((currentPartnerTypes[0] != PlayerType[0] && (currentPartnerTypes[0] != PlayerType[1]))))
+ && ((currentPartnerTypes[1] == '\0' || ((currentPartnerTypes[1] != PlayerType[0] && (currentPartnerTypes[1] != PlayerType[1])))
+ ))) {
+ gUnknown_203B404->PartnerArray[ValidPartnerCounter] = CurrentPartnerID;
+ ValidPartnerCounter++;
+ }
+ }
+ return ValidPartnerCounter;
+}
+
u8 sub_803D0D8()
{
return gUnknown_203B408;