closer match than before

This commit is contained in:
Seth Barberee 2023-01-30 17:08:02 -08:00
parent 3b8ac7b9ed
commit 3870cf1b78
3 changed files with 29 additions and 93 deletions

View File

@ -12,7 +12,7 @@ void InitZeroedPPPokemonMove(struct Move *move, u16 moveID);
s16 GetMoveTargetAndRange(struct Move *move, u32 isAI);
u8 GetMoveType(struct Move *move);
u8* GetLevelUpMoves(s16 species);
u8* GetHMTMMoves(s32 species);
u8* GetHMTMMoves(s16 species);
u8 GetMoveAIWeight(struct Move *move);
u32 GetMoveNumberOfChainedHits(struct Move *move);
s32 GetMoveBasePower(struct Move *move);

View File

@ -174,103 +174,39 @@ u8 GetMoveType(struct Move *move)
return gMovesData[move->id].type;
}
#ifdef NONMATCHING
u8 *GetLevelUpMoves(s16 species)
{
if (species == MONSTER_DECOY || species == MONSTER_NONE)
{
return &gUnknown_810992B;
}
if (species == MONSTER_MUNCHLAX)
{
return &gUnknown_810992B;
}
return (*gMoveLearnsets)[species].levelUpMoves;
}
#else
NAKED
u8* GetLevelUpMoves(s16 species)
{
asm_unified("\tpush {lr}\n"
"\tlsls r0, 16\n"
"\tasrs r1, r0, 16\n"
"\tadds r2, r1, 0\n"
"\tldr r0, _08092B40\n"
"\tcmp r1, r0\n"
"\tbeq _08092B48\n"
"\tcmp r1, 0\n"
"\tbeq _08092B48\n"
"\tmovs r0, 0xD2\n"
"\tlsls r0, 1\n"
"\tcmp r2, r0\n"
"\tbeq _08092B48\n"
"\tldr r0, _08092B44\n"
"\tldr r1, [r0]\n"
"\tlsls r0, r2, 3\n"
"\tadds r0, r1\n"
"\tldr r0, [r0]\n"
"\tb _08092B4A\n"
"\t.align 2, 0\n"
"_08092B40: .4byte 0x000001a5\n"
"_08092B44: .4byte gMoveLearnsets\n"
"_08092B48:\n"
"\tldr r0, _08092B50\n"
"_08092B4A:\n"
"\tpop {r1}\n"
"\tbx r1\n"
"\t.align 2, 0\n"
"_08092B50: .4byte gUnknown_810992B");
}
s32 species_s32, species_s32_1 = species;
#ifndef NONMATCHING
asm("add \tr2, r1, #0");
#endif
if (species_s32_1 == MONSTER_DECOY || species_s32_1 == MONSTER_NONE)
{
return &gUnknown_810992B;
}
if (species_s32 == MONSTER_MUNCHLAX)
{
return &gUnknown_810992B;
}
return (*gMoveLearnsets)[species_s32].levelUpMoves;
}
#ifdef NONMATCHING
u8 *GetHMTMMoves(s32 species)
u8 *GetHMTMMoves(s16 species)
{
if (species == MONSTER_DECOY || species == MONSTER_NONE)
{
return &gUnknown_810992B;
}
if (species == MONSTER_MUNCHLAX)
{
return &gUnknown_810992B;
}
return (*gMoveLearnsets)[species].HMTMMoves;
}
#else
NAKED
u8* GetHMTMMoves(s32 species)
{
asm_unified("\tpush {lr}\n"
"\tlsls r0, 16\n"
"\tasrs r1, r0, 16\n"
"\tadds r2, r1, 0\n"
"\tldr r0, _08092B7C\n"
"\tcmp r1, r0\n"
"\tbeq _08092B84\n"
"\tcmp r1, 0\n"
"\tbeq _08092B84\n"
"\tmovs r0, 0xD2\n"
"\tlsls r0, 1\n"
"\tcmp r2, r0\n"
"\tbeq _08092B84\n"
"\tldr r0, _08092B80\n"
"\tldr r1, [r0]\n"
"\tlsls r0, r2, 3\n"
"\tadds r0, r1\n"
"\tldr r0, [r0, 0x4]\n"
"\tb _08092B86\n"
"\t.align 2, 0\n"
"_08092B7C: .4byte 0x000001a5\n"
"_08092B80: .4byte gMoveLearnsets\n"
"_08092B84:\n"
"\tldr r0, _08092B8C\n"
"_08092B86:\n"
"\tpop {r1}\n"
"\tbx r1\n"
"\t.align 2, 0\n"
"_08092B8C: .4byte gUnknown_810992B");
}
s32 species_s32, species_s32_1 = species;
#ifndef NONMATCHING
asm("add \tr2, r1, #0");
#endif
if (species_s32_1 == MONSTER_DECOY || species_s32_1 == MONSTER_NONE)
{
return &gUnknown_810992B;
}
if (species_s32 == MONSTER_MUNCHLAX)
{
return &gUnknown_810992B;
}
return (*gMoveLearnsets)[species_s32].HMTMMoves;
}
u8 GetMoveAIWeight(struct Move *move)
{

View File

@ -725,7 +725,7 @@ bool8 CanMonLearnMove(u16 moveID, s16 _species)
if (species == MONSTER_MUNCHLAX) return 0;
if (moveID == MOVE_STRUGGLE) return 0;
learnsetPtr = GetLevelUpMoves(species);
learnsetPtr = GetLevelUpMoves(_species);
while (*learnsetPtr) {
learnsetPtr = DecompressMoveID(learnsetPtr, &levelUpMoveID);
learnsetPtr++;