mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-27 04:04:17 +01:00
Fix ModifyPersonalityForNature (#3452)
This commit is contained in:
parent
cd59e055c2
commit
5fd36a8e39
@ -1896,7 +1896,7 @@ static u32 GeneratePartyHash(const struct Trainer *trainer, u32 i)
|
|||||||
void ModifyPersonalityForNature(u32 *personality, u32 newNature)
|
void ModifyPersonalityForNature(u32 *personality, u32 newNature)
|
||||||
{
|
{
|
||||||
u32 nature = GetNatureFromPersonality(*personality);
|
u32 nature = GetNatureFromPersonality(*personality);
|
||||||
s32 diff = abs(nature - newNature);
|
s32 diff = abs((s32)nature - (s32)newNature);
|
||||||
s32 sign = (nature > newNature) ? 1 : -1;
|
s32 sign = (nature > newNature) ? 1 : -1;
|
||||||
if (diff > NUM_NATURES / 2)
|
if (diff > NUM_NATURES / 2)
|
||||||
{
|
{
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include "battle_main.h"
|
#include "battle_main.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
#include "malloc.h"
|
#include "malloc.h"
|
||||||
|
#include "random.h"
|
||||||
#include "string_util.h"
|
#include "string_util.h"
|
||||||
#include "constants/item.h"
|
#include "constants/item.h"
|
||||||
#include "constants/abilities.h"
|
#include "constants/abilities.h"
|
||||||
@ -119,3 +120,17 @@ TEST("CreateNPCTrainerPartyForTrainer generates different personalities for diff
|
|||||||
EXPECT(testParty[0].box.personality != testParty[1].box.personality);
|
EXPECT(testParty[0].box.personality != testParty[1].box.personality);
|
||||||
Free(testParty);
|
Free(testParty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST("ModifyPersonalityForNature can set any nature")
|
||||||
|
{
|
||||||
|
u32 personality, nature, j, k;
|
||||||
|
for (j = 0; j < 64; j++)
|
||||||
|
{
|
||||||
|
for (k = 0; k < NUM_NATURES; k++)
|
||||||
|
{
|
||||||
|
PARAMETRIZE { personality = Random32(); nature = k; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ModifyPersonalityForNature(&personality, nature);
|
||||||
|
EXPECT_EQ(GetNatureFromPersonality(personality), nature);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user