mirror of
https://github.com/pret/pmd-red.git
synced 2024-11-23 05:00:12 +00:00
Names
This commit is contained in:
parent
8152820e76
commit
d96bb4a9aa
@ -39,7 +39,7 @@ _080727A8:
|
||||
movs r4, 0xC
|
||||
ldrsh r3, [r0, r4]
|
||||
mov r0, sp
|
||||
bl sub_808E0AC
|
||||
bl GetMovesLearnedAtLevel
|
||||
adds r7, r0, 0
|
||||
add r4, sp, 0x20
|
||||
movs r1, 0x8C
|
||||
|
@ -6,7 +6,7 @@
|
||||
u32 sub_8057144(Entity * pokemon);
|
||||
bool8 sub_80571F0(Entity * pokemon, Move *move);
|
||||
bool8 sub_805727C(Entity * pokemon, Entity * target, s32 chance);
|
||||
bool8 sub_8057308(Entity *pokemon, s32 chance);
|
||||
bool8 RollSecondaryEffect(Entity *pokemon, s32 chance);
|
||||
bool8 CanAIUseMove(Entity *pokemon, s32 moveIndex, bool8 hasPPChecker);
|
||||
bool8 CanMonsterUseMove(Entity *pokemon, Move *move, bool8 hasPPChecker);
|
||||
|
||||
|
@ -9,7 +9,7 @@ struct DamageStruct
|
||||
u8 type;
|
||||
bool8 isCrit;
|
||||
u8 unkE;
|
||||
u8 unkF;
|
||||
bool8 tookNoDamage;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -376,8 +376,8 @@ extern void sub_8046F84(s32 itemFlag);
|
||||
extern bool8 sub_8083C50(void);
|
||||
extern void sub_8068FE0(Entity *, u32, Entity *r2);
|
||||
extern void sub_806BFC0(EntityInfo *, u32);
|
||||
extern s32 sub_808E0AC(u16* a1, s16 species, s32 a3, s32 IQPoints);
|
||||
extern s32 sub_808E0AC(u16* a1, s16 species, s32 a3, s32 IQPoints);
|
||||
extern s32 GetMovesLearnedAtLevel(u16* a1, s16 species, s32 a3, s32 IQPoints);
|
||||
extern s32 GetMovesLearnedAtLevel(u16* a1, s16 species, s32 a3, s32 IQPoints);
|
||||
extern bool8 IsKeepMoney(u8 dungeon);
|
||||
extern void sub_8042B0C(Entity *);
|
||||
|
||||
@ -387,7 +387,7 @@ extern u8 gUnknown_202F1A8;
|
||||
extern s32 gDungeonBrightness;
|
||||
extern Entity *gLeaderPointer;
|
||||
|
||||
void sub_8044124(void);
|
||||
void EnforceMaxItemsAndMoney(void);
|
||||
void sub_8043FD0(void);
|
||||
void sub_806B404(void);
|
||||
u8 sub_8043D10(void);
|
||||
@ -489,7 +489,7 @@ void xxx_dungeon_8042F6C(struct UnkStruct_xxx_dungeon_8042F6C *r8)
|
||||
}
|
||||
|
||||
gDungeon->unk674 = 0;
|
||||
sub_8044124();
|
||||
EnforceMaxItemsAndMoney();
|
||||
}
|
||||
if (!r6) {
|
||||
if (gDungeon->unk678 == 1) {
|
||||
@ -1163,7 +1163,7 @@ void sub_8043FD0(void)
|
||||
monStruct->offense.def[0] = def;
|
||||
monStruct->offense.def[1] = spDef;
|
||||
|
||||
movesCount = sub_808E0AC(learnedMoves, monStruct->speciesNum, monStruct->level, 999);
|
||||
movesCount = GetMovesLearnedAtLevel(learnedMoves, monStruct->speciesNum, monStruct->level, 999);
|
||||
if (movesCount == 0)
|
||||
continue;
|
||||
|
||||
@ -1181,7 +1181,7 @@ void sub_8043FD0(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8044124(void)
|
||||
void EnforceMaxItemsAndMoney(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
|
@ -3088,7 +3088,7 @@ void sub_8060D24(UNUSED ActionContainer *a0)
|
||||
sub_803EAF0(0, NULL);
|
||||
}
|
||||
|
||||
extern bool8 sub_804ACE4(Position *pos);
|
||||
extern bool8 PosHasItem(Position *pos);
|
||||
|
||||
s32 sub_8060D64(s16 *a0, bool8 a1, bool8 a2, bool8 a3, Entity *a4)
|
||||
{
|
||||
@ -3104,7 +3104,7 @@ s32 sub_8060D64(s16 *a0, bool8 a1, bool8 a2, bool8 a3, Entity *a4)
|
||||
}
|
||||
}
|
||||
|
||||
if (a2 && sub_804ACE4(&a4->pos)) {
|
||||
if (a2 && PosHasItem(&a4->pos)) {
|
||||
a0[count++] = 2;
|
||||
}
|
||||
|
||||
|
@ -334,7 +334,7 @@ void HandleDealingDamage(Entity *attacker, Entity *target, struct DamageStruct *
|
||||
|
||||
if (HandleDealingDamageInternal(attacker, target, dmgStruct, isFalseSwipe, giveExp, r10, argC))
|
||||
return;
|
||||
if (dmgStruct->unkF)
|
||||
if (dmgStruct->tookNoDamage)
|
||||
return;
|
||||
if (!EntityExists(attacker) || !EntityExists(target))
|
||||
return;
|
||||
@ -392,7 +392,7 @@ void HandleDealingDamage(Entity *attacker, Entity *target, struct DamageStruct *
|
||||
sp.typeEffectiveness = 2;
|
||||
sp.isCrit = FALSE;
|
||||
sp.unkE = 0;
|
||||
sp.unkF = 0;
|
||||
sp.tookNoDamage = FALSE;
|
||||
HandleDealingDamageInternal(target, attacker, &sp, FALSE, giveExp, r10, argC);
|
||||
}
|
||||
}
|
||||
@ -503,9 +503,9 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
|
||||
s32 r8 = 0;
|
||||
Tile *unkTile = NULL;
|
||||
|
||||
dmgStruct->unkF = 0;
|
||||
dmgStruct->tookNoDamage = FALSE;
|
||||
if (GetEntityType(target) != ENTITY_MONSTER) {
|
||||
dmgStruct->unkF = 1;
|
||||
dmgStruct->tookNoDamage = TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -523,14 +523,14 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
|
||||
SetMessageArgument(gFormatBuffer_Monsters[1], target, 0);
|
||||
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80FCA90);
|
||||
sub_8042238(attacker, target);
|
||||
dmgStruct->unkF = 1;
|
||||
dmgStruct->tookNoDamage = TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
if (targetData->immobilize.immobilizeStatus == STATUS_FROZEN) {
|
||||
SetMessageArgument(gFormatBuffer_Monsters[1], target, 0);
|
||||
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F9600);
|
||||
sub_8042238(attacker, target);
|
||||
dmgStruct->unkF = 1;
|
||||
dmgStruct->tookNoDamage = TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -542,12 +542,12 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
|
||||
|
||||
if ((HasAbility(target, ABILITY_VOLT_ABSORB) && dmgStruct->type == TYPE_ELECTRIC)) {
|
||||
HealTargetHP(attacker, target, dmgStruct->dmg, 0, 0);
|
||||
dmgStruct->unkF = 1;
|
||||
dmgStruct->tookNoDamage = TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
else if (HasAbility(target, ABILITY_WATER_ABSORB) && dmgStruct->type == TYPE_WATER) {
|
||||
HealTargetHP(attacker, target, dmgStruct->dmg, 0, 0);
|
||||
dmgStruct->unkF = 1;
|
||||
dmgStruct->tookNoDamage = TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -583,7 +583,7 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc
|
||||
}
|
||||
sub_803E708(0x1E, 0x18);
|
||||
}
|
||||
dmgStruct->unkF = 1;
|
||||
dmgStruct->tookNoDamage = TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
else if (dmgStruct->dmg == 9999) {
|
||||
|
@ -150,7 +150,7 @@ static inline void SetDamageOne(struct DamageStruct *dmgStruct, u8 moveType)
|
||||
dmgStruct->type = moveType;
|
||||
dmgStruct->isCrit = FALSE;
|
||||
dmgStruct->unkE = 0;
|
||||
dmgStruct->unkF = 0;
|
||||
dmgStruct->tookNoDamage = FALSE;
|
||||
}
|
||||
|
||||
void CalcDamage(Entity *attacker, Entity *target, u8 moveType, s32 movePower, s32 critChance, struct DamageStruct *dmgStruct, s32 arg8, u16 moveId, bool8 arg_10)
|
||||
@ -447,11 +447,11 @@ void DealDamageToEntity(Entity *entity, s32 dmg, s32 r6, s16 r4)
|
||||
dmgStruct.residualDmgType = r6;
|
||||
dmgStruct.isCrit = FALSE;
|
||||
dmgStruct.unkE = 0;
|
||||
dmgStruct.unkF = 0;
|
||||
dmgStruct.tookNoDamage = FALSE;
|
||||
HandleDealingDamage(&spEntity, entity, &dmgStruct, FALSE, FALSE, r4_, FALSE, 0);
|
||||
}
|
||||
|
||||
void sub_806F370(Entity *pokemon, Entity *target, s32 dmg, s32 r9, u8 *arg_0, u8 moveType, s16 arg_8, s32 arg_C, s32 arg_10, s32 arg_14)
|
||||
void sub_806F370(Entity *pokemon, Entity *target, s32 dmg, s32 giveExp, bool8 *tookNoDamage, u8 moveType, s16 arg_8, s32 residualDmgType, s32 arg_10, s32 arg_14)
|
||||
{
|
||||
s32 i;
|
||||
struct DamageStruct dmgStruct;
|
||||
@ -459,7 +459,7 @@ void sub_806F370(Entity *pokemon, Entity *target, s32 dmg, s32 r9, u8 *arg_0, u8
|
||||
s32 dmgNew = dmg;
|
||||
|
||||
dmgStruct.typeEffectiveness = EFFECTIVENESS_NEUTRAL;
|
||||
dmgStruct.residualDmgType = arg_C;
|
||||
dmgStruct.residualDmgType = residualDmgType;
|
||||
dmgStruct.type = moveType;
|
||||
dmgStruct.isCrit = FALSE;
|
||||
dmgStruct.unkE = 0;
|
||||
@ -480,14 +480,14 @@ void sub_806F370(Entity *pokemon, Entity *target, s32 dmg, s32 r9, u8 *arg_0, u8
|
||||
|
||||
dmgStruct.dmg = dmgNew;
|
||||
if (dmgNew == 0) {
|
||||
dmgStruct.unkF = 1;
|
||||
dmgStruct.tookNoDamage = TRUE;
|
||||
}
|
||||
else {
|
||||
dmgStruct.unkF = 0;
|
||||
dmgStruct.tookNoDamage = FALSE;
|
||||
}
|
||||
|
||||
HandleDealingDamage(pokemon, target, &dmgStruct, FALSE, r9, arg_8_, arg_10, arg_14);
|
||||
if (arg_0 != NULL) {
|
||||
*arg_0 = dmgStruct.unkF;
|
||||
HandleDealingDamage(pokemon, target, &dmgStruct, FALSE, giveExp, arg_8_, arg_10, arg_14);
|
||||
if (tookNoDamage != NULL) {
|
||||
*tookNoDamage = dmgStruct.tookNoDamage;
|
||||
}
|
||||
}
|
||||
|
@ -36,6 +36,7 @@ void xxx_init_struct_8094924_save_809486C(struct unkStruct_8094924 *r0, u8 *r1,
|
||||
MemoryClear8(r1, size);
|
||||
}
|
||||
|
||||
// Related to reading/writing bits
|
||||
void nullsub_102(struct unkStruct_8094924 *r0)
|
||||
{
|
||||
|
||||
|
@ -61,13 +61,13 @@ extern s32 sub_800E710(s16 a0, u16 a1);
|
||||
extern void sub_800E3AC(s32 a0, Position *pos, s32 a2);
|
||||
extern void sub_8041168(Entity *entity, Entity *entity2, Move *,Position *);
|
||||
extern Entity *sub_80696A8(Entity *a0);
|
||||
extern Entity *sub_804AD0C(Position *pos);
|
||||
extern Entity *GetMonsterAtPos(Position *pos);
|
||||
extern Entity *sub_80696FC(Entity *);
|
||||
extern Entity *sub_806977C(Entity *);
|
||||
extern void sub_806F2BC(Entity *attacker, Entity *target, u8 moveType, s32 a2, struct DamageStruct *dmgStruct);
|
||||
extern void sub_806ACE8(Entity *entity, Move *move);
|
||||
extern s32 sub_8057070(Move *move);
|
||||
extern bool8 sub_805755C(Entity* pokemon,u16 param_2);
|
||||
extern bool8 MoveRequiresCharging(Entity* pokemon,u16 param_2);
|
||||
extern s32 sub_800ED20(u16 param_1);
|
||||
extern bool32 sub_8058F04(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern void sub_8042930(Entity *r0);
|
||||
@ -514,7 +514,7 @@ static void UseMoveAgainstTargets(Entity **targetsArray, Entity *attacker, Move
|
||||
TrySendImmobilizeSleepEndMsg(attacker, currTarget);
|
||||
r4 = FALSE;
|
||||
if (!MoveMatchesChargingStatus(attacker, move)) {
|
||||
r4 = (sub_805755C(attacker, move->id) != 0);
|
||||
r4 = (MoveRequiresCharging(attacker, move->id) != 0);
|
||||
}
|
||||
|
||||
if (!lightRodRedirect) {
|
||||
@ -1621,7 +1621,7 @@ static void UseMoveAgainstTargets(Entity **targetsArray, Entity *attacker, Move
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (MoveCausesPaused(move) && sub_8057308(attacker, 0)) {
|
||||
if (MoveCausesPaused(move) && RollSecondaryEffect(attacker, 0)) {
|
||||
gUnknown_202F222 = 1;
|
||||
}
|
||||
}
|
||||
@ -1707,10 +1707,10 @@ static s32 TryHitTarget(Entity *attacker, Entity *target, Move *move, struct Dam
|
||||
else {
|
||||
TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F9688); // It took no damage!
|
||||
}
|
||||
dmgStruct->unkF = 1;
|
||||
dmgStruct->tookNoDamage = TRUE;
|
||||
}
|
||||
|
||||
if (dmgStruct->unkF != 0) {
|
||||
if (dmgStruct->tookNoDamage) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1728,7 +1728,7 @@ s32 sub_8055864(Entity *attacker, Entity *target, Move *move, s32 param_4, s32 i
|
||||
|
||||
sub_806F2BC(attacker, target, moveType, param_4, &dmgStruct);
|
||||
HandleDealingDamage(attacker, target, &dmgStruct, FALSE, TRUE, sub_8057600(move, itemId), TRUE, 0);
|
||||
if (dmgStruct.unkF != 0) {
|
||||
if (dmgStruct.tookNoDamage) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2592,7 +2592,7 @@ void sub_80566F8(Entity *attacker, Move *move, s32 a2, bool8 a3, s32 itemId, s32
|
||||
break;
|
||||
}
|
||||
|
||||
if (sub_805755C(attacker, move->id) && !MoveMatchesChargingStatus(attacker, move)) {
|
||||
if (MoveRequiresCharging(attacker, move->id) && !MoveMatchesChargingStatus(attacker, move)) {
|
||||
var_34 = -1;
|
||||
}
|
||||
else {
|
||||
@ -2833,7 +2833,7 @@ static void SetTargetsForMove(Entity **targetsArray, Entity *attacker, Move *mov
|
||||
direction &= DIRECTION_MASK;
|
||||
unkPositon.x = attacker->pos.x + gAdjacentTileOffsets[direction].x ;
|
||||
unkPositon.y = attacker->pos.y + gAdjacentTileOffsets[direction].y;
|
||||
targetEntity = sub_804AD0C(&unkPositon);
|
||||
targetEntity = GetMonsterAtPos(&unkPositon);
|
||||
if (targetEntity != NULL) {
|
||||
arrId = SetNewTarget(arrId, targetsArray, targetFlags, attacker, targetEntity, move, canHitPartner);
|
||||
}
|
||||
@ -3087,7 +3087,7 @@ u32 sub_8057144(Entity * pokemon)
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
if (moves[j].moveFlags & MOVE_FLAG_EXISTS
|
||||
&& !sub_805755C(pokemon, moves[j].id)
|
||||
&& !MoveRequiresCharging(pokemon, moves[j].id)
|
||||
&& moves[j].id != MOVE_SKETCH
|
||||
&& nMoves < 80) {
|
||||
moveStack[nMoves++] = &moves[j];
|
||||
@ -3175,7 +3175,7 @@ bool8 sub_805727C(Entity * pokemon, Entity * target, s32 chance)
|
||||
return uVar2;
|
||||
}
|
||||
|
||||
bool8 sub_8057308(Entity *pokemon, s32 chance)
|
||||
bool8 RollSecondaryEffect(Entity *pokemon, s32 chance)
|
||||
{
|
||||
if(!EntityExists(pokemon))
|
||||
return FALSE;
|
||||
|
@ -201,19 +201,19 @@ extern s32 sub_80556BC(Entity *, Entity *, u8, Move *, u32, u32);
|
||||
|
||||
// move_util.h
|
||||
extern bool8 sub_805727C(Entity *, Entity *, s16);
|
||||
bool8 sub_8057308(Entity *pokemon, s32 chance);
|
||||
bool8 RollSecondaryEffect(Entity *pokemon, s32 chance);
|
||||
bool8 sub_80571F0(Entity * pokemon, Move *move);
|
||||
|
||||
extern void sub_806F370(Entity *r0, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
|
||||
extern u32 HandleDamagingMove(Entity *, Entity *, Move *, u32, u32);
|
||||
u8 sub_8057620(u32 param_1);
|
||||
u8 ToItemID(u32 param_1);
|
||||
extern s16 sub_8094828(u16, u8);
|
||||
extern void DealDamageToEntity(Entity *, s32, u32, u32);
|
||||
|
||||
extern s16 gUnknown_80F4DB4;
|
||||
extern u32 gUnknown_8106A4C;
|
||||
|
||||
bool8 sub_805755C(Entity* pokemon, u16 moveID)
|
||||
bool8 MoveRequiresCharging(Entity* pokemon, u16 moveID)
|
||||
{
|
||||
if ((moveID == MOVE_SOLARBEAM) && (GetApparentWeather(pokemon) == WEATHER_SUNNY)) {
|
||||
return FALSE;
|
||||
@ -261,10 +261,10 @@ void sub_8057588(Entity * pokemon, u8 param_2)
|
||||
|
||||
s16 sub_8057600(Move *move, s32 itemID)
|
||||
{
|
||||
return sub_8094828(move->id, sub_8057620(itemID));
|
||||
return sub_8094828(move->id, ToItemID(itemID));
|
||||
}
|
||||
|
||||
u8 sub_8057620(u32 itemID)
|
||||
u8 ToItemID(u32 itemID)
|
||||
{
|
||||
if(itemID == ITEM_NOTHING)
|
||||
return ITEM_NOTHING;
|
||||
@ -664,7 +664,7 @@ bool8 sub_8057E6C(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
SendThawedMessage(pokemon,target);
|
||||
if (HandleDamagingMove(pokemon,target,move,0x100,param_4) != 0) {
|
||||
flag = TRUE;
|
||||
if (sub_8057308(pokemon, 0)) {
|
||||
if (RollSecondaryEffect(pokemon, 0)) {
|
||||
entityInfo->unk155 = 1;
|
||||
}
|
||||
}
|
||||
@ -1062,7 +1062,7 @@ bool8 sub_80586DC(Entity * pokemon, Entity * target, Move * move, u32 param_4)
|
||||
hasLiquidOoze = HasAbility(target, ABILITY_LIQUID_OOZE);
|
||||
uVar3 = HandleDamagingMove(pokemon,target,move,0x100,param_4);
|
||||
flag = uVar3 != 0 ? TRUE : FALSE;
|
||||
if (flag && sub_8057308(pokemon, 0)) {
|
||||
if (flag && RollSecondaryEffect(pokemon, 0)) {
|
||||
newHP = uVar3 / 2;
|
||||
entityInfo = GetEntInfo(pokemon);
|
||||
flag = TRUE;
|
||||
@ -1151,7 +1151,7 @@ bool8 sub_80588B8(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
if(HandleDamagingMove(pokemon, target, move, 0x80 << 1, param_4) != 0)
|
||||
{
|
||||
flag = TRUE;
|
||||
if(sub_8057308(pokemon, 0))
|
||||
if(RollSecondaryEffect(pokemon, 0))
|
||||
{
|
||||
gUnknown_202F219 = 1;
|
||||
}
|
||||
@ -1178,7 +1178,7 @@ bool8 sub_8058930(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
if(HandleDamagingMove(pokemon, target, move, 0x80 << 1, param_4) != 0)
|
||||
{
|
||||
flag = TRUE;
|
||||
if(sub_8057308(pokemon, gUnknown_80F4DD6))
|
||||
if(RollSecondaryEffect(pokemon, gUnknown_80F4DD6))
|
||||
{
|
||||
entityInfo = GetEntInfo(pokemon);
|
||||
RaiseMovementSpeedTarget(pokemon, pokemon, 0, TRUE);
|
||||
@ -1212,7 +1212,7 @@ bool8 sub_8058A18(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
if(HandleDamagingMove(pokemon, target, move, 0x80 << 1, param_4) != 0)
|
||||
{
|
||||
flag = TRUE;
|
||||
if(sub_8057308(pokemon, 0))
|
||||
if(RollSecondaryEffect(pokemon, 0))
|
||||
{
|
||||
gUnknown_202F21A = 1;
|
||||
}
|
||||
@ -1351,7 +1351,7 @@ bool8 sub_8058CEC(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
if(HandleDamagingMove(pokemon, target, move, 0x80 << 1, param_4) != 0)
|
||||
{
|
||||
flag = TRUE;
|
||||
if(sub_8057308(pokemon, 0))
|
||||
if(RollSecondaryEffect(pokemon, 0))
|
||||
{
|
||||
LowerAttackStageTarget(pokemon, pokemon, gUnknown_8106A50, 2, 0, FALSE);
|
||||
}
|
||||
@ -1432,7 +1432,7 @@ bool8 sub_8058E5C(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
iVar3 = 1;
|
||||
}
|
||||
flag = TRUE;
|
||||
if ((!HasAbility(pokemon, ABILITY_ROCK_HEAD)) && sub_8057308(pokemon, 0)) {
|
||||
if ((!HasAbility(pokemon, ABILITY_ROCK_HEAD)) && RollSecondaryEffect(pokemon, 0)) {
|
||||
sub_806F370(pokemon,pokemon,iVar3,0,0,0,0x1fd,0x14,1,0);
|
||||
}
|
||||
}
|
||||
@ -1601,7 +1601,7 @@ bool8 sub_80591E4(Entity *pokemon, Entity *target, Move *move, s32 param_4)
|
||||
EntityInfo *entityInfo = GetEntInfo(pokemon);
|
||||
flag = TRUE;
|
||||
SetExpMultplier(entityInfo);
|
||||
if (sub_8057308(pokemon,0)) {
|
||||
if (RollSecondaryEffect(pokemon,0)) {
|
||||
if (hasLiquidOoze) {
|
||||
DealDamageToEntity(pokemon,iVar4,0xd,0x1fa);
|
||||
}
|
||||
@ -1707,7 +1707,7 @@ bool8 sub_805946C(Entity * pokemon,Entity * target,Move * move,u32 param_4)
|
||||
flag = FALSE;
|
||||
if (HandleDamagingMove(pokemon, target, move, 0x100, param_4) != 0) {
|
||||
flag = TRUE;
|
||||
if ((!HasAbility(pokemon, ABILITY_ROCK_HEAD)) && (sub_8057308(pokemon,0) != 0)) {
|
||||
if ((!HasAbility(pokemon, ABILITY_ROCK_HEAD)) && (RollSecondaryEffect(pokemon,0) != 0)) {
|
||||
HP = GetEntInfo(pokemon)->maxHPStat;
|
||||
if (HP < 0) {
|
||||
HP = HP + 7;
|
||||
@ -2464,7 +2464,7 @@ bool8 sub_805A464(Entity *pokemon, Entity *target, Move *move, u32 param_4)
|
||||
flag = FALSE;
|
||||
if (HandleDamagingMove(pokemon, target, move, 0x100, param_4) != 0) {
|
||||
flag = TRUE;
|
||||
if (sub_8057308(pokemon, 0) != 0) {
|
||||
if (RollSecondaryEffect(pokemon, 0) != 0) {
|
||||
if (!EntityExists(target)) {
|
||||
pos.x = 0;
|
||||
pos.y = 0;
|
||||
|
@ -696,7 +696,7 @@ const u8* DecompressMoveID(const u8* src, u16* moveID)
|
||||
return src;
|
||||
}
|
||||
|
||||
s32 sub_808E0AC(u16* a1, s16 species, s32 a3, s32 IQPoints)
|
||||
s32 GetMovesLearnedAtLevel(u16* dst, s16 species, s32 level, s32 IQPoints)
|
||||
{
|
||||
const u8* stream;
|
||||
u16 moveID; // moveID
|
||||
@ -720,20 +720,20 @@ s32 sub_808E0AC(u16* a1, s16 species, s32 a3, s32 IQPoints)
|
||||
stream = DecompressMoveID(stream, &moveID);
|
||||
v12 = *stream++;
|
||||
|
||||
if (v12 > a3)
|
||||
if (v12 > level)
|
||||
break;
|
||||
if (v12 == a3) {
|
||||
bool8 cond = 1;
|
||||
if (v12 == level) {
|
||||
bool8 cond = TRUE;
|
||||
|
||||
// NOTE: these moves require IQ to be > 333
|
||||
if ((moveID == MOVE_FRENZY_PLANT) && (IQPoints < gFrenzyPlantIQReq)) cond = 0;
|
||||
if ((moveID == MOVE_HYDRO_CANNON) && (IQPoints < gHydroCannonIQReq)) cond = 0;
|
||||
if ((moveID == MOVE_BLAST_BURN) && (IQPoints < gBlastBurnIQReq)) cond = 0;
|
||||
if ((moveID == MOVE_VOLT_TACKLE) && (IQPoints < gVoltTackleIQReq)) cond = 0;
|
||||
if ((moveID == MOVE_FRENZY_PLANT) && (IQPoints < gFrenzyPlantIQReq)) cond = FALSE;
|
||||
if ((moveID == MOVE_HYDRO_CANNON) && (IQPoints < gHydroCannonIQReq)) cond = FALSE;
|
||||
if ((moveID == MOVE_BLAST_BURN) && (IQPoints < gBlastBurnIQReq)) cond = FALSE;
|
||||
if ((moveID == MOVE_VOLT_TACKLE) && (IQPoints < gVoltTackleIQReq)) cond = FALSE;
|
||||
|
||||
if (cond) {
|
||||
if (count < 16) {
|
||||
*a1++ = moveID;
|
||||
*dst++ = moveID;
|
||||
++count;
|
||||
}
|
||||
}
|
||||
@ -928,7 +928,7 @@ void sub_808E490(Move* a1, s16 species)
|
||||
{
|
||||
u16 buffer[0x10]; // of moveIDs
|
||||
s32 i;
|
||||
s32 count = sub_808E0AC(buffer, species, 1, 999);
|
||||
s32 count = GetMovesLearnedAtLevel(buffer, species, 1, 999);
|
||||
if (count == 0) {
|
||||
count = 1;
|
||||
buffer[0] = MOVE_ITEM_TOSS;
|
||||
|
@ -79,7 +79,7 @@ extern void SqueezedStatusTarget(Entity *, Entity *, s32, bool32);
|
||||
extern void sub_8075C58(Entity *, Entity *, s32, s32);
|
||||
|
||||
extern void DealDamageToEntity(Entity *, s32, u32, u32);
|
||||
extern bool8 sub_805755C(Entity* pokemon,u16 moveID);
|
||||
extern bool8 MoveRequiresCharging(Entity* pokemon,u16 moveID);
|
||||
extern void sub_80783C4(Entity *, Entity *, u32);
|
||||
|
||||
|
||||
@ -431,7 +431,7 @@ bool8 MimicMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4
|
||||
for(moveIndex = 0; moveIndex < MAX_MON_MOVES; moveIndex++)
|
||||
{
|
||||
movePtr = &targetEntityInfo->moves.moves[moveIndex];
|
||||
if (((movePtr->moveFlags & MOVE_FLAG_EXISTS)) && !sub_805755C(pokemon,movePtr->id)) {
|
||||
if (((movePtr->moveFlags & MOVE_FLAG_EXISTS)) && !MoveRequiresCharging(pokemon,movePtr->id)) {
|
||||
if ((movePtr->id != MOVE_MIMIC) && (movePtr->id != MOVE_ASSIST) && (movePtr->id != MOVE_SKETCH) && (movePtr->id != MOVE_MIRROR_MOVE) &&
|
||||
(movePtr->id != MOVE_ENCORE) && ((movePtr->moveFlags & MOVE_FLAG_LAST_USED))) {
|
||||
entityInfo->mimicMoveIDs[moveCounter] = movePtr->id;
|
||||
@ -517,9 +517,9 @@ bool8 sub_805B668(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
if (newHP < 1) {
|
||||
newHP = 1;
|
||||
}
|
||||
if (sub_8057308(pokemon,0) != 0) {
|
||||
if (RollSecondaryEffect(pokemon,0) != 0) {
|
||||
SetExpMultplier(GetEntInfo(pokemon));
|
||||
if (sub_8057308(pokemon,0) != 0) {
|
||||
if (RollSecondaryEffect(pokemon,0) != 0) {
|
||||
if (hasLiquidOoze) {
|
||||
DealDamageToEntity(pokemon,newHP,0xd,0x1fa);
|
||||
}
|
||||
@ -637,7 +637,7 @@ bool8 sub_805B968(Entity * pokemon, Entity * target, Move * move, s32 param_4)
|
||||
flag = FALSE;
|
||||
if (HandleDamagingMove(pokemon,target,move,0x100,param_4) != 0) {
|
||||
flag = TRUE;
|
||||
if (sub_8057308(pokemon,0) != 0) {
|
||||
if (RollSecondaryEffect(pokemon,0) != 0) {
|
||||
entityHP = GetEntInfo(pokemon)->maxHPStat;
|
||||
if (entityHP < 0) {
|
||||
entityHP = entityHP + 3;
|
||||
|
@ -90,7 +90,7 @@ extern void sub_8049BB0(s32, s32);
|
||||
void sub_8042A14(Position *);
|
||||
extern void sub_8049ED4(void);
|
||||
|
||||
bool8 sub_804ACE4(Position *pos)
|
||||
bool8 PosHasItem(Position *pos)
|
||||
{
|
||||
struct Tile *tile;
|
||||
Entity *entity;
|
||||
@ -103,7 +103,7 @@ bool8 sub_804ACE4(Position *pos)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
Entity *sub_804AD0C(Position *pos)
|
||||
Entity *GetMonsterAtPos(Position *pos)
|
||||
{
|
||||
struct Tile *tile;
|
||||
Entity *entity;
|
||||
|
Loading…
Reference in New Issue
Block a user