mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-25 15:46:18 -05:00
closer match than before
This commit is contained in:
parent
3b8ac7b9ed
commit
3870cf1b78
|
|
@ -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);
|
||||
|
|
|
|||
118
src/moves.c
118
src/moves.c
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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++;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user