Sync some param names with pmdsky-debug

This commit is contained in:
AnonymousRandomPerson
2026-08-23 12:13:47 -04:00
parent 4145bcf47a
commit cf1fa6f35a
22 changed files with 311 additions and 342 deletions

View File

@@ -12,7 +12,7 @@
.public FixedPoint32To64
.public FixedPoint64IsZero
.public GetApparentWeather
.public GetFlashFireStatus
.public FlashFireShouldActivate
.public GetTypeMatchup
.public GhostImmunityIsActive
.public IntToFixedPoint64

View File

@@ -45,7 +45,7 @@
.public GenerateStandardItem
.public GetApparentWeather
.public GetEquivItemIndex
.public GetFlashFireStatus
.public FlashFireShouldActivate
.public GetItemAtIdx
.public GetMonsterGenderVeneer
.public GetMoveCategory

View File

@@ -9,7 +9,7 @@
.public DungeonRandOutcomeUserTargetInteraction
.public EndFrozenStatus
.public GetDamageSourceWrapper
.public GetFlashFireStatus
.public FlashFireShouldActivate
.public GetMoveCategory
.public GetMoveType
.public LogMessageByIdWithPopupCheckUserTarget

View File

@@ -308,7 +308,7 @@ _0230B14C:
bne _0230B198
mov r0, sl
mov r1, sb
bl GetFlashFireStatus
bl FlashFireShouldActivate
cmp r0, #0
beq _0230B198
ldr r1, _0230B798 ; =DUNGEON_PTR

View File

@@ -1132,7 +1132,7 @@ _0230CB78:
bne _0230CC78
mov r0, sl
mov r1, sb
bl GetFlashFireStatus
bl FlashFireShouldActivate
movs r4, r0
beq _0230CC78
ldrb r0, [r7, #0x15c + CALC_DAMAGE_OFFSET]

View File

@@ -170,7 +170,7 @@ DoMoveWillOWisp: ; 0x02326B24
sub sp, sp, #4
mov r6, r0
mov r5, r1
bl GetFlashFireStatus
bl FlashFireShouldActivate
movs r4, r0
beq _02326B94
ldr r3, [r5, #0xb4]

View File

@@ -20,24 +20,24 @@ struct StatIndex
int id;
};
void LowerOffensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 nStagesRaw, bool8 checkProtected, bool8 logMsgProtected);
void LowerDefensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 increment, bool8 checkProtected, bool8 logMsgProtected);
void BoostOffensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 nStagesRaw);
void BoostDefensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 nStagesRaw);
void LowerOffensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 n_stages, bool8 check_is_protected_from_stat_drops, bool8 log_message_if_protected_from_stat_drops);
void LowerDefensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 increment, bool8 check_is_protected_from_stat_drops, bool8 log_message_if_protected_from_stat_drops);
void BoostOffensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 n_stages);
void BoostDefensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 n_stages);
// Checks whether Flash Fire should activate, assuming the defender is being hit by a Fire-type move.
// This checks that the defender is valid and Flash Fire is active, and that Normalize isn't active on the attacker.
enum flash_fire_status GetFlashFireStatus(struct entity *attacker, struct entity *defender);
void ActivateFlashFire(struct entity *pokemon, struct entity *target);
void ApplyOffensiveStatMultiplier(struct entity *user, struct entity *target, struct StatIndex stat, fx32_8 multiplier, bool8 displayMessage);
void ApplyDefensiveStatMultiplier(struct entity *user, struct entity *target, struct StatIndex stat, fx32_8 multiplier, bool8 displayMessage);
void BoostHitChanceStat(struct entity *user, struct entity *target, struct StatIndex stat);
void LowerHitChanceStat(struct entity *user, struct entity *target, struct StatIndex stat, bool8 displayMessage);
bool8 TryInflictCringeStatus(struct entity *user ,struct entity *target, bool8 displayMessage, bool8 onlyCheck);
bool8 TryInflictParalysisStatus(struct entity *user, struct entity *target, bool8 displayMessage, bool8 onlyCheck);
enum flash_fire_status FlashFireShouldActivate(struct entity *attacker, struct entity *defender);
void ActivateFlashFire(struct entity *attacker, struct entity *defender);
void ApplyOffensiveStatMultiplier(struct entity *user, struct entity *target, struct StatIndex stat_idx, fx32_8 multiplier, bool8 display_message);
void ApplyDefensiveStatMultiplier(struct entity *user, struct entity *target, struct StatIndex stat_idx, fx32_8 multiplier, bool8 display_message);
void BoostHitChanceStat(struct entity *user, struct entity *target, struct StatIndex stat_idx);
void LowerHitChanceStat(struct entity *user, struct entity *target, struct StatIndex stat_idx, bool8 display_message);
bool8 TryInflictCringeStatus(struct entity *user ,struct entity *target, bool8 log_failure, bool8 check_only);
bool8 TryInflictParalysisStatus(struct entity *user, struct entity *target, bool8 log_failure, bool8 check_only);
// Checks if a monster is a team member under the effects of a certain exclusive item effect.
bool8 ExclusiveItemEffectIsActive__023147EC(struct entity *entity, enum exclusive_item_effect_id effect_id);
void BoostSpeed(struct entity *user, struct entity *target, s32 nStages, s32 turns, bool8 displayMessage);
void BoostSpeedOneStage(struct entity *user, struct entity *target, s32 turns, bool8 displayMessage);
void LowerSpeed(struct entity *user, struct entity *target, s32 nStages, bool8 displayMessage);
void BoostSpeed(struct entity *user, struct entity *target, s32 n_stages, s32 turns, bool8 log_failure);
void BoostSpeedOneStage(struct entity *user, struct entity *target, s32 turns, bool8 log_failure);
void LowerSpeed(struct entity *user, struct entity *target, s32 n_stages, bool8 log_failure);
#endif //PMDSKY_MOVE_ORB_EFFECTS_H

View File

@@ -1,19 +1,18 @@
#ifndef PMDSKY_OVERLAY_29_02344AF8_H
#define PMDSKY_OVERLAY_29_02344AF8_H
#include "util.h"
#include "dungeon_mode.h"
struct unk_023531A4 {
u8 field_0x0[4];
};
#include "util.h"
#include "dungeon_mode.h"
// Checks if an entity pointer points to a valid entity (not entity type 0, which represents no entity).
bool8 EntityIsValid__02344AF8(struct entity *entity);
void ov29_02344B1C(void);
void ov29_02344B30(void);
void PrepareItemForPrinting__02345728(s32 a, s32 b);
void PrepareItemForPrinting__02345754(s32 a, s32 b);
void PrepareItemForPrinting__02345728(s32 tag_id, struct item *item);
void PrepareItemForPrinting__02345754(s32 tag_id, struct item *item);
#endif //PMDSKY_OVERLAY_29_02344AF8_H

View File

@@ -5,13 +5,54 @@
#include "main_0200C4FC.h"
#include "dungeon_mode.h"
void SetMessageLogGroupStartFlag(bool8 flag);
// Contains information for the "popup alert" messages at the bottom of the screen, which are also
// printed to the message log.
struct alert_box_info {
char alert_box_messages[10][320];
// 0xC80: Whether the message specified by the index is the start of a group
bool8 message_starts_group[10];
u8 field_0xc8a;
u8 field_0xc8b;
u16 alert_box_current_idx; // 0xC8C: Index of current message in alert_box_messages
// 0xC8E: Index of current fully loaded message in alert_box_messages
// (i.e. for which the scrolling is finished)
u16 alert_box_current_loaded_idx;
s16 frames_until_close; // 0xC90
u8 field_0xc92;
u8 field_0xc94;
u8 field_0xc95;
u8 field_0xc96;
u8 field_0xc97;
// 0xC98: 0 means nothing is being loaded, 1 means a message is about to start loading,
// 2 means a message is currently loading/scrolling.
u32 loading_status;
struct preprocessor_args preprocessor_args;
u8 alert_box_window_id; // 0xCEC
u8 field_0xced;
u8 field_0xcee;
u8 field_0xcef;
};
// Contains the alert_box_info struct as well as information related to the current message group.
struct message_log_info {
// 0x0: If true, a new message group will start on the next LogMessage call, even if the user
// matches the last user. A "group" of messages is separated by a horizontal line.
bool8 should_start_group;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
struct alert_box_info *alert_box_info;
// 0x8: If this does not match the current user, a new group will always start
struct entity *last_user;
};
void SetMessageLogGroupStartFlag(bool8 should_start_group);
struct preprocessor_args* GetMessageLogPreprocessorArgs(void);
void InitMessageLogPreprocessorArgs(void);
void SetMessageLogPreprocessorArgsFlagVal(s32 idx, u32 val);
void SetPreprocessorArgsIdVal(s32 idx, u32 val);
void SetMessageLogPreprocessorArgsNumberVal(s32 idx, s32 val);
void SetMessageLogPreprocessorArgsString(s32 idx, char *str);
void SetMessageLogPreprocessorArgsStringToName(s32 idx, struct entity* entity);
void SetMessageLogPreprocessorArgsFlagVal(s32 pos, u32 val);
void SetPreprocessorArgsIdVal(s32 pos, u32 val);
void SetMessageLogPreprocessorArgsNumberVal(s32 pos, s32 val);
void SetMessageLogPreprocessorArgsString(s32 pos, char *string);
void SetMessageLogPreprocessorArgsStringToName(u8 pos, enum monster_id monster_id);
#endif

View File

@@ -4,7 +4,7 @@
#include "util.h"
#include "main_0200C4FC.h"
void SetMessageLogPreprocessorArgsSpeakerId(u32 speaker_id);
void SetMessageLogPreprocessorArgsSpeakerId0x30000(u32 speaker_id);
void SetMessageLogPreprocessorArgsSpeakerId(u32 monster_id);
void SetMessageLogPreprocessorArgsSpeakerId0x30000(u32 team_index);
#endif

View File

@@ -1,36 +1,17 @@
#ifndef PMDSKY_OVERLAY_29_0234BA54_H
#define PMDSKY_OVERLAY_29_0234BA54_H
#include "util.h"
#include "window.h"
struct unk_0234BAC0 {
s16 field_0x0;
u8 field_0x2;
u8 field_0x3;
s32 field_0x4;
s32 field_0x8;
u8 field_0xC;
u8 field_0xD;
u8 field_0xE;
};
struct unk_023537CC {
bool8 field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u8 *field_0x4;
};
void WaitUntilAlertBoxPauseIsOver(u32 a);
void InitPortraitDungeon(struct unk_0234BAC0 *p, s16 a, u8 b);
void WaitUntilAlertBoxPauseIsOver(u32 param_1);
void InitPortraitDungeon(portrait_params *portrait, enum monster_id monster_id, u8 emotion);
void ov29_0234BB10(void);
void ov29_0234BB20(s32 a);
void ov29_0234BB2C(s32 a);
void ov29_0234BB38(s32 a);
void ov29_0234BB44(s32 a);
void ov29_0234BB50(s32 a);
s32 OpenMessageLog(s32 a, s32 b);
s32 OpenMessageLog(s32 param_1, s32 param_2);
void ov29_0234BBDC(s32 a);
#endif

View File

@@ -2,6 +2,7 @@
#define PMDSKY_WINDOW_H
#include "enums.h"
#include "util.h"
// Represents the state of a portrait to be displayed inside a window
typedef struct {
@@ -11,15 +12,12 @@ typedef struct {
u8 layout_idx; // 0x3: Represents the current layout to display the portrait
u32 offset_x; // 0x4: Tile offset (x / 8) in the X axis to draw the portrait
u32 offset_y; // 0x8: Tile offset (y / 8) in the Y axis to draw the portrait
u8 try_flip; // 0xC: Whether to try to get a flipped portrait from kaomado.kao
u8 has_flip; // 0xD: Whether the specified emote has a flipped variant
u8 hw_flip; // 0xE: Whether the portrait should be flipped using the hardware
u8 allow_default; // 0xF: If true, try using emote index 0 if the desired emote can't be found
bool8 try_flip; // 0xC: Whether to try to get a flipped portrait from kaomado.kao
bool8 has_flip; // 0xD: Whether the specified emote has a flipped variant
bool8 hw_flip; // 0xE: Whether the portrait should be flipped using the hardware
bool8 allow_default; // 0xF: If true, try using emote index 0 if the desired emote can't be found
} portrait_params;
#include "util.h"
typedef struct {
s32 x;
s32 y;

View File

@@ -30,7 +30,7 @@ s32 WeightWeakTypePicker(struct entity *user, struct entity *target, enum type_i
if (move_type == TYPE_NORMAL || move_type == TYPE_FIGHTING)
check_exposed = TRUE;
if (move_type == TYPE_FIRE && GetFlashFireStatus(user, target) != FLASH_FIRE_STATUS_NONE)
if (move_type == TYPE_FIRE && FlashFireShouldActivate(user, target) != FLASH_FIRE_STATUS_NONE)
return 0;
#ifdef JAPAN

View File

@@ -9,6 +9,7 @@
#include "exclusive_item.h"
#include "MSL_C/stdlib.h"
#include "moves_1.h"
#include "overlay_29_02344AF8.h"
#ifdef JAPAN
#define CURVED_PROJECTILE_LOG_MESSAGE_1 0x920
@@ -25,14 +26,13 @@ extern struct dungeon *DUNGEON_PTR[];
extern bool8 ov29_022E2CA0(struct position *pos);
extern void ov29_0234B4CC(bool8 val);
extern s32 SinAbs4096(s32 x);
extern bool8 DisplayThrownItemShadow(s32 inX, s32 inY, u8 index);
extern bool8 DisplayItem(struct entity *entity, bool8 hallucinating, u8 a2, u8 a3, u8 a4);
extern void AdvanceFrame(u32);
extern bool8 DisplayThrownItemShadow(s32 x, s32 y, u8 index);
extern bool8 DisplayItem(struct entity *item, bool8 hallucinate, u8 on_floor, u8 dir, u8 priority);
extern void AdvanceFrame(u32 param_1);
extern bool8 TwoTurnMoveForcedMiss(struct entity *target, struct move *move);
extern bool8 DoesProjectileHitTarget(struct entity *user, struct entity *target);
extern void PrepareItemForPrinting__02345754(u8 *buffer, struct item *item);
extern void SubstitutePlaceholderStringTags(s32 slot, struct entity *entity, u32 param_3);
extern void ChangeMonsterAnimationToHurt(struct entity *entity, u32 new_dir);
extern void SubstitutePlaceholderStringTags(s32 string_id, struct entity *entity, u32 param_3);
extern void ChangeMonsterAnimationToHurt(struct entity *monster, u32 direction);
extern void LogMessageByIdWithPopupCheckUserTarget(struct entity *user, struct entity *target, u32 message_id);
extern bool8 TryEndPetrifiedOrSleepStatus(struct entity *user, struct entity *target);
extern void ApplyItemEffect(char param_1, u8 param_2, u8 param_3, struct entity *attacker, struct entity *defender, struct item *thrown_item);

View File

@@ -1,48 +1,48 @@
#include "dungeon_pokemon_attributes.h"
#include "dungeon_map_access.h"
#include "dungeon_util_static.h"
#include "overlay_29_023118B4.h"
#include "move_orb_effects.h"
#include "overlay_29_02311BF8.h"
#include "overlay_29_023018AC.h"
#include "math.h"
#include "dungeon_util.h"
#include "exclusive_item.h"
#include "math.h"
#include "move_orb_effects.h"
#include "overlay_29_023018AC.h"
#include "overlay_29_023118B4.h"
#include "overlay_29_02311BF8.h"
#include "overlay_29_02344AF8.h"
extern u8* AllocateTemp1024ByteBufferFromPool(void);
extern void CopyStringFromId(u8* buf, u32 string_id);
extern void SetMessageLogPreprocessorArgsString(u32 a, u8 *buf);
extern bool8 IsProtectedFromStatDrops(struct entity *user, struct entity *target, bool8 logMsg);
extern void SubstitutePlaceholderStringTags(int a, struct entity *entity, u32 param_3);
extern void PlayOffensiveStatUpEffect(struct entity *user, struct StatIndex);
extern void PlayDefensiveStatDownEffect(struct entity *user, struct StatIndex);
extern void PlayDefensiveStatUpEffect(struct entity *user, struct StatIndex);
extern void PlayOffensiveStatDownEffect(struct entity *user, struct StatIndex);
extern void PlayOffensiveStatMultiplierDownEffect(struct entity *user, struct StatIndex);
extern void PlayOffensiveStatMultiplierUpEffect(struct entity *user, struct StatIndex);
extern void PlayDefensiveStatMultiplierDownEffect(struct entity *user, struct StatIndex);
extern void PlayDefensiveStatMultiplierUpEffect(struct entity *user, struct StatIndex);
extern void PlayHitChanceUpEffect(struct entity *user, struct StatIndex);
extern void PlayHitChanceDownEffect(struct entity *user, struct StatIndex);
extern bool8 IsProtectedFromStatDrops(struct entity *user, struct entity *target, bool8 log_message);
extern void SubstitutePlaceholderStringTags(s32 string_id, struct entity *entity, u32 param_3);
extern void PlayOffensiveStatUpEffect(struct entity *entity, struct StatIndex stat_index);
extern void PlayDefensiveStatDownEffect(struct entity *entity, struct StatIndex stat_index);
extern void PlayDefensiveStatUpEffect(struct entity *entity, struct StatIndex stat_index);
extern void PlayOffensiveStatDownEffect(struct entity *entity, struct StatIndex stat_index);
extern void PlayOffensiveStatMultiplierDownEffect(struct entity *entity, struct StatIndex stat_index);
extern void PlayOffensiveStatMultiplierUpEffect(struct entity *entity, struct StatIndex stat_index);
extern void PlayDefensiveStatMultiplierDownEffect(struct entity *entity, struct StatIndex stat_index);
extern void PlayDefensiveStatMultiplierUpEffect(struct entity *entity, struct StatIndex stat_index);
extern void PlayHitChanceUpEffect(struct entity *entity, struct StatIndex stat_index);
extern void PlayHitChanceDownEffect(struct entity *entity, struct StatIndex stat_index);
extern void LogMessageByIdWithPopupCheckUserTarget(struct entity *user, struct entity *target, u32 message_id);
extern void UpdateStatusIconFlags(struct entity *);
extern void UpdateStatusIconFlags(struct entity *entity);
extern void ov29_022E4338(struct entity *);
extern void PlayExclamationPointEffect__022E5D4C(struct entity *);
extern void PlayParalysisEffect(struct entity *);
extern void PlaySpeedUpEffect(struct entity *);
extern void PlaySpeedDownEffect(struct entity *);
extern fx32_8 MultiplyByFixedPoint(fx32_8 a, fx32_8 b);
extern bool8 IsProtectedFromNegativeStatus(struct entity *user ,struct entity *target, bool8 displayMessage);
extern bool8 SafeguardIsActive(struct entity *user ,struct entity *target, bool8 displayMessage);
extern void TryActivateSteadfast(struct entity *user ,struct entity *target);
extern void TryActivateQuickFeet(struct entity *user ,struct entity *target);
extern s32 CalcStatusDuration(struct entity *target, const s16 *turnRange, bool8 factorCurerSkills);
extern struct tile* GetTile(int x, int y);
extern bool8 GetExclusiveItemWithEffectFromBag(struct entity *, enum exclusive_item_effect_id effect_id, struct item *);
extern void PlayExclamationPointEffect__022E5D4C(struct entity *entity);
extern void PlayParalysisEffect(struct entity *entity);
extern void PlaySpeedUpEffect(struct entity *entity);
extern void PlaySpeedDownEffect(struct entity *entity);
extern fx32_8 MultiplyByFixedPoint(fx32_8 x, fx32_8 mult_fp);
extern bool8 IsProtectedFromNegativeStatus(struct entity *user ,struct entity *target, bool8 log_message);
extern bool8 SafeguardIsActive(struct entity *user ,struct entity *target, bool8 log_message);
extern void TryActivateSteadfast(struct entity *attacker, struct entity *defender);
extern void TryActivateQuickFeet(struct entity *attacker ,struct entity *defender);
extern s32 CalcStatusDuration(struct entity *entity, const s16 *turn_range, bool8 iq_skill_effects);
extern bool8 GetExclusiveItemWithEffectFromBag(struct entity *, enum exclusive_item_effect_id effect_id, struct item *item);
extern struct preprocessor_args* GetMessageLogPreprocessorArgs(void);
extern void SetPreprocessorArgsStringToName(struct preprocessor_args* preprocessor_args, u8 pos,struct monster* monster, u8 param_4, u8 name_type);
extern void PrepareItemForPrinting__02345728(u8, struct item*);
extern void SetPreprocessorArgsStringToName(struct preprocessor_args* preprocessor_args, u8 pos, struct monster* monster, u8 param_4, u8 name_type);
extern int CalcSpeedStageWrapper(struct entity* entity);
extern int CalcSpeedStage(struct entity *, int);
extern int CalcSpeedStage(struct entity *entity, s32 counter_weight);
extern const s16 CRINGE_TURN_RANGE[];
extern const s16 PARALYSIS_TURN_RANGE[];
@@ -56,12 +56,12 @@ extern const u16 ov29_02353318[];
#define JPN_MSG_OFFSET 0
#endif // JAPAN
void LowerOffensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 nStagesRaw, bool8 checkProtected, bool8 logMsgProtected)
void LowerOffensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 n_stages, bool8 check_is_protected_from_stat_drops, bool8 log_message_if_protected_from_stat_drops)
{
struct monster *entityInfo;
u8 *buffer1 = AllocateTemp1024ByteBufferFromPool();
u8 *buffer2 = AllocateTemp1024ByteBufferFromPool();
s16 nStages = nStagesRaw;
s16 n_stages_internal = n_stages;
s32 newStage;
if (!EntityIsValid__023118B4(target))
@@ -76,8 +76,8 @@ void LowerOffensiveStat(struct entity *user, struct entity *target, struct StatI
SetMessageLogPreprocessorArgsString(1, buffer1);
}
if (checkProtected) {
if (IsProtectedFromStatDrops(user, target, logMsgProtected))
if (check_is_protected_from_stat_drops) {
if (IsProtectedFromStatDrops(user, target, log_message_if_protected_from_stat_drops))
return;
if (ItemIsActive__02311BF8(target, ITEM_TWIST_BAND)) {
@@ -102,9 +102,9 @@ void LowerOffensiveStat(struct entity *user, struct entity *target, struct StatI
PlayOffensiveStatDownEffect(target,stat);
if (AbilityIsActiveVeneer(target, ABILITY_SIMPLE))
nStages *= 2;
n_stages_internal *= 2;
if (nStages == 1) {
if (n_stages_internal == 1) {
CopyStringFromId(buffer2, 0xdcd + JPN_MSG_OFFSET);
SetMessageLogPreprocessorArgsString(2, buffer2);
}
@@ -114,7 +114,7 @@ void LowerOffensiveStat(struct entity *user, struct entity *target, struct StatI
}
newStage = entityInfo->stat_modifiers.offensive_stages[stat.id];
newStage -= nStages;
newStage -= n_stages_internal;
if (newStage < 0) {
newStage = 0;
}
@@ -129,12 +129,12 @@ void LowerOffensiveStat(struct entity *user, struct entity *target, struct StatI
UpdateStatusIconFlags(target);
}
void LowerDefensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 nStagesRaw, bool8 checkProtected, bool8 logMsgProtected)
void LowerDefensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 n_stages, bool8 check_is_protected_from_stat_drops, bool8 log_message_if_protected_from_stat_drops)
{
struct monster *entityInfo;
u8 *buffer1 = AllocateTemp1024ByteBufferFromPool();
u8 *buffer2 = AllocateTemp1024ByteBufferFromPool();
s16 nStages = nStagesRaw;
s16 n_stages_internal = n_stages;
s32 newStage;
if (!EntityIsValid__023118B4(target))
@@ -149,8 +149,8 @@ void LowerDefensiveStat(struct entity *user, struct entity *target, struct StatI
SetMessageLogPreprocessorArgsString(1, buffer1);
}
if (checkProtected) {
if (IsProtectedFromStatDrops(user, target, logMsgProtected))
if (check_is_protected_from_stat_drops) {
if (IsProtectedFromStatDrops(user, target, log_message_if_protected_from_stat_drops))
return;
}
@@ -159,9 +159,9 @@ void LowerDefensiveStat(struct entity *user, struct entity *target, struct StatI
PlayDefensiveStatDownEffect(target,stat);
if (AbilityIsActiveVeneer(target, ABILITY_SIMPLE))
nStages *= 2;
n_stages_internal *= 2;
if (nStages == 1) {
if (n_stages_internal == 1) {
CopyStringFromId(buffer2, 0xdcd + JPN_MSG_OFFSET);
SetMessageLogPreprocessorArgsString(2, buffer2);
}
@@ -171,7 +171,7 @@ void LowerDefensiveStat(struct entity *user, struct entity *target, struct StatI
}
newStage = entityInfo->stat_modifiers.defensive_stages[stat.id];
newStage -= nStages;
newStage -= n_stages_internal;
if (newStage < 0) {
newStage = 0;
}
@@ -186,12 +186,12 @@ void LowerDefensiveStat(struct entity *user, struct entity *target, struct StatI
UpdateStatusIconFlags(target);
}
void BoostOffensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 nStagesRaw)
void BoostOffensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 n_stages)
{
struct monster *entityInfo;
u8 *buffer1 = AllocateTemp1024ByteBufferFromPool();
u8 *buffer2 = AllocateTemp1024ByteBufferFromPool();
s16 nStages = nStagesRaw;
s16 n_stages_internal = n_stages;
s32 newStage;
if (!EntityIsValid__023118B4(target))
@@ -210,9 +210,9 @@ void BoostOffensiveStat(struct entity *user, struct entity *target, struct StatI
}
if (AbilityIsActiveVeneer(target, ABILITY_SIMPLE))
nStages *= 2;
n_stages_internal *= 2;
if (nStages == 1) {
if (n_stages_internal == 1) {
CopyStringFromId(buffer2, 0xdcd + JPN_MSG_OFFSET);
SetMessageLogPreprocessorArgsString(2, buffer2);
}
@@ -222,7 +222,7 @@ void BoostOffensiveStat(struct entity *user, struct entity *target, struct StatI
}
newStage = entityInfo->stat_modifiers.offensive_stages[stat.id];
newStage += nStages;
newStage += n_stages_internal;
if (newStage >= MAX_STAT_STAGE) {
newStage = MAX_STAT_STAGE;
}
@@ -237,12 +237,12 @@ void BoostOffensiveStat(struct entity *user, struct entity *target, struct StatI
UpdateStatusIconFlags(target);
}
void BoostDefensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 nStagesRaw)
void BoostDefensiveStat(struct entity *user, struct entity *target, struct StatIndex stat, s32 n_stages)
{
struct monster *entityInfo;
u8 *buffer1 = AllocateTemp1024ByteBufferFromPool();
u8 *buffer2 = AllocateTemp1024ByteBufferFromPool();
s16 nStages = nStagesRaw;
s16 n_stages_internal = n_stages;
s32 newStage;
if (!EntityIsValid__023118B4(target))
@@ -261,9 +261,9 @@ void BoostDefensiveStat(struct entity *user, struct entity *target, struct StatI
}
if (AbilityIsActiveVeneer(target, ABILITY_SIMPLE))
nStages *= 2;
n_stages_internal *= 2;
if (nStages == 1) {
if (n_stages_internal == 1) {
CopyStringFromId(buffer2, 0xdcd + JPN_MSG_OFFSET);
SetMessageLogPreprocessorArgsString(2, buffer2);
}
@@ -273,7 +273,7 @@ void BoostDefensiveStat(struct entity *user, struct entity *target, struct StatI
}
newStage = entityInfo->stat_modifiers.defensive_stages[stat.id];
newStage += nStages;
newStage += n_stages_internal;
if (newStage >= MAX_STAT_STAGE) {
newStage = MAX_STAT_STAGE;
}
@@ -288,7 +288,7 @@ void BoostDefensiveStat(struct entity *user, struct entity *target, struct StatI
UpdateStatusIconFlags(target);
}
enum flash_fire_status GetFlashFireStatus(struct entity *attacker, struct entity *defender)
enum flash_fire_status FlashFireShouldActivate(struct entity *attacker, struct entity *defender)
{
if (!EntityIsValid__023118B4(defender))
return FLASH_FIRE_STATUS_NONE;
@@ -309,26 +309,26 @@ enum flash_fire_status GetFlashFireStatus(struct entity *attacker, struct entity
return FLASH_FIRE_STATUS_NOT_MAXED;
}
void ActivateFlashFire(struct entity *pokemon, struct entity *target)
void ActivateFlashFire(struct entity *attacker, struct entity *defender)
{
s32 flashFireBoost;
if (EntityIsValid__023118B4(target)) {
struct monster * entityInfo = GetEntInfo(target);
SubstitutePlaceholderStringTags(0,target,0);
if (EntityIsValid__023118B4(defender)) {
struct monster * entityInfo = GetEntInfo(defender);
SubstitutePlaceholderStringTags(0,defender,0);
flashFireBoost = entityInfo->stat_modifiers.flash_fire_boost;
if (++flashFireBoost >= 2) {
flashFireBoost = 2;
}
if (entityInfo->stat_modifiers.flash_fire_boost != flashFireBoost) {
entityInfo->stat_modifiers.flash_fire_boost = flashFireBoost;
ov29_022E4338(target);
ov29_022E4338(defender);
}
UpdateStatusIconFlags(target);
UpdateStatusIconFlags(defender);
}
}
void ApplyOffensiveStatMultiplier(struct entity *user, struct entity *target, struct StatIndex stat, fx32_8 multiplier, bool8 displayMessage)
void ApplyOffensiveStatMultiplier(struct entity *user, struct entity *target, struct StatIndex stat_idx, fx32_8 multiplier, bool8 display_message)
{
struct monster *entityInfo;
fx32_8 oldMulti;
@@ -337,7 +337,7 @@ void ApplyOffensiveStatMultiplier(struct entity *user, struct entity *target, st
if (!EntityIsValid__023118B4(target))
return;
if (stat.id != STAT_INDEX_PHYSICAL) {
if (stat_idx.id != STAT_INDEX_PHYSICAL) {
CopyStringFromId(buffer1, 0xdcb + JPN_MSG_OFFSET);
SetMessageLogPreprocessorArgsString(1, buffer1);
}
@@ -346,7 +346,7 @@ void ApplyOffensiveStatMultiplier(struct entity *user, struct entity *target, st
SetMessageLogPreprocessorArgsString(1, buffer1);
}
if (F248LessThanInt(multiplier, 1) && IsProtectedFromStatDrops(user,target,displayMessage))
if (F248LessThanInt(multiplier, 1) && IsProtectedFromStatDrops(user,target,display_message))
return;
if (ItemIsActive__02311BF8(target,ITEM_TWIST_BAND) && F248LessThanInt(multiplier, 1)) {
@@ -360,10 +360,10 @@ void ApplyOffensiveStatMultiplier(struct entity *user, struct entity *target, st
#else
if (DefenderAbilityIsActive__02311B94(user, target, ABILITY_HYPER_CUTTER, TRUE)
#endif // JAPAN
&& stat.id == STAT_INDEX_PHYSICAL
&& stat_idx.id == STAT_INDEX_PHYSICAL
&& F248LessThanInt(multiplier, 1))
{
if (displayMessage) {
if (display_message) {
SubstitutePlaceholderStringTags(0,target,0);
LogMessageByIdWithPopupCheckUserTarget(user,target,0xd9e + JPN_MSG_OFFSET);
}
@@ -372,28 +372,28 @@ void ApplyOffensiveStatMultiplier(struct entity *user, struct entity *target, st
entityInfo = GetEntInfo(target);
SubstitutePlaceholderStringTags(0,target,0);
oldMulti = entityInfo->stat_modifiers.offensive_multipliers[stat.id];
oldMulti = entityInfo->stat_modifiers.offensive_multipliers[stat_idx.id];
if (F248LessThanInt(multiplier, 1)) {
PlayOffensiveStatMultiplierDownEffect(target,stat);
PlayOffensiveStatMultiplierDownEffect(target,stat_idx);
}
else {
PlayOffensiveStatMultiplierUpEffect(target,stat);
PlayOffensiveStatMultiplierUpEffect(target,stat_idx);
}
entityInfo->stat_modifiers.offensive_multipliers[stat.id] = MultiplyByFixedPoint(entityInfo->stat_modifiers.offensive_multipliers[stat.id],multiplier);
entityInfo->stat_modifiers.offensive_multipliers[stat_idx.id] = MultiplyByFixedPoint(entityInfo->stat_modifiers.offensive_multipliers[stat_idx.id],multiplier);
if (F248LessThanFloat(entityInfo->stat_modifiers.offensive_multipliers[stat.id], 0.01)) {
entityInfo->stat_modifiers.offensive_multipliers[stat.id] = IntToF248(0.01);
if (F248LessThanFloat(entityInfo->stat_modifiers.offensive_multipliers[stat_idx.id], 0.01)) {
entityInfo->stat_modifiers.offensive_multipliers[stat_idx.id] = IntToF248(0.01);
}
if (FloatLessThanF248(99.99, entityInfo->stat_modifiers.offensive_multipliers[stat.id])) {
entityInfo->stat_modifiers.offensive_multipliers[stat.id] = IntToF248(99.99);
if (FloatLessThanF248(99.99, entityInfo->stat_modifiers.offensive_multipliers[stat_idx.id])) {
entityInfo->stat_modifiers.offensive_multipliers[stat_idx.id] = IntToF248(99.99);
}
if (F248GreaterThan(oldMulti, entityInfo->stat_modifiers.offensive_multipliers[stat.id])) {
if (F248GreaterThan(oldMulti, entityInfo->stat_modifiers.offensive_multipliers[stat_idx.id])) {
LogMessageByIdWithPopupCheckUserTarget(user,target,0xdd1 + JPN_MSG_OFFSET);
}
else if (F248LessThan(oldMulti, entityInfo->stat_modifiers.offensive_multipliers[stat.id])) {
else if (F248LessThan(oldMulti, entityInfo->stat_modifiers.offensive_multipliers[stat_idx.id])) {
LogMessageByIdWithPopupCheckUserTarget(user,target,0xdd0 + JPN_MSG_OFFSET);
}
else {
@@ -402,7 +402,7 @@ void ApplyOffensiveStatMultiplier(struct entity *user, struct entity *target, st
UpdateStatusIconFlags(target);
}
void ApplyDefensiveStatMultiplier(struct entity *user, struct entity *target, struct StatIndex stat, fx32_8 multiplier, bool8 displayMessage)
void ApplyDefensiveStatMultiplier(struct entity *user, struct entity *target, struct StatIndex stat_idx, fx32_8 multiplier, bool8 display_message)
{
struct monster *entityInfo;
fx32_8 oldMulti;
@@ -411,7 +411,7 @@ void ApplyDefensiveStatMultiplier(struct entity *user, struct entity *target, st
if (!EntityIsValid__023118B4(target))
return;
if (stat.id != STAT_INDEX_PHYSICAL) {
if (stat_idx.id != STAT_INDEX_PHYSICAL) {
CopyStringFromId(buffer1, 0xdc9 + JPN_MSG_OFFSET);
SetMessageLogPreprocessorArgsString(1, buffer1);
}
@@ -420,33 +420,33 @@ void ApplyDefensiveStatMultiplier(struct entity *user, struct entity *target, st
SetMessageLogPreprocessorArgsString(1, buffer1);
}
if (F248LessThanInt(multiplier, 1) && IsProtectedFromStatDrops(user,target,displayMessage))
if (F248LessThanInt(multiplier, 1) && IsProtectedFromStatDrops(user,target,display_message))
return;
entityInfo = GetEntInfo(target);
SubstitutePlaceholderStringTags(0,target,0);
oldMulti = entityInfo->stat_modifiers.defensive_multipliers[stat.id];
oldMulti = entityInfo->stat_modifiers.defensive_multipliers[stat_idx.id];
if (F248LessThanInt(multiplier, 1)) {
PlayDefensiveStatMultiplierDownEffect(target,stat);
PlayDefensiveStatMultiplierDownEffect(target,stat_idx);
}
else {
PlayDefensiveStatMultiplierUpEffect(target,stat);
PlayDefensiveStatMultiplierUpEffect(target,stat_idx);
}
entityInfo->stat_modifiers.defensive_multipliers[stat.id] = MultiplyByFixedPoint(entityInfo->stat_modifiers.defensive_multipliers[stat.id],multiplier);
entityInfo->stat_modifiers.defensive_multipliers[stat_idx.id] = MultiplyByFixedPoint(entityInfo->stat_modifiers.defensive_multipliers[stat_idx.id],multiplier);
if (F248LessThanFloat(entityInfo->stat_modifiers.defensive_multipliers[stat.id], 0.01)) {
entityInfo->stat_modifiers.defensive_multipliers[stat.id] = IntToF248(0.01);
if (F248LessThanFloat(entityInfo->stat_modifiers.defensive_multipliers[stat_idx.id], 0.01)) {
entityInfo->stat_modifiers.defensive_multipliers[stat_idx.id] = IntToF248(0.01);
}
if (FloatLessThanF248(99.99, entityInfo->stat_modifiers.defensive_multipliers[stat.id])) {
entityInfo->stat_modifiers.defensive_multipliers[stat.id] = IntToF248(99.99);
if (FloatLessThanF248(99.99, entityInfo->stat_modifiers.defensive_multipliers[stat_idx.id])) {
entityInfo->stat_modifiers.defensive_multipliers[stat_idx.id] = IntToF248(99.99);
}
if (F248GreaterThan(oldMulti, entityInfo->stat_modifiers.defensive_multipliers[stat.id])) {
if (F248GreaterThan(oldMulti, entityInfo->stat_modifiers.defensive_multipliers[stat_idx.id])) {
LogMessageByIdWithPopupCheckUserTarget(user,target,0xdcf + JPN_MSG_OFFSET);
}
else if (F248LessThan(oldMulti, entityInfo->stat_modifiers.defensive_multipliers[stat.id])) {
else if (F248LessThan(oldMulti, entityInfo->stat_modifiers.defensive_multipliers[stat_idx.id])) {
LogMessageByIdWithPopupCheckUserTarget(user,target,0xdce + JPN_MSG_OFFSET);
}
else {
@@ -455,19 +455,19 @@ void ApplyDefensiveStatMultiplier(struct entity *user, struct entity *target, st
UpdateStatusIconFlags(target);
}
void BoostHitChanceStat(struct entity *user, struct entity *target, struct StatIndex stat)
void BoostHitChanceStat(struct entity *user, struct entity *target, struct StatIndex stat_idx)
{
struct monster *entityInfo;
u8 *buffer1 = AllocateTemp1024ByteBufferFromPool();
s16 nStages = 1;
s16 n_stages = 1;
if (!EntityIsValid__023118B4(target))
return;
entityInfo = GetEntInfo(target);
SubstitutePlaceholderStringTags(0,target,0);
PlayHitChanceUpEffect(target,stat);
if (stat.id != STAT_INDEX_ACCURACY) {
PlayHitChanceUpEffect(target,stat_idx);
if (stat_idx.id != STAT_INDEX_ACCURACY) {
CopyStringFromId(buffer1, 0xdc7 + JPN_MSG_OFFSET);
SetMessageLogPreprocessorArgsString(1, buffer1);
}
@@ -477,15 +477,15 @@ void BoostHitChanceStat(struct entity *user, struct entity *target, struct StatI
}
if (AbilityIsActiveVeneer(target, ABILITY_SIMPLE))
nStages *= 2;
n_stages *= 2;
if (entityInfo->stat_modifiers.hit_chance_stages[stat.id] < MAX_STAT_STAGE) {
entityInfo->stat_modifiers.hit_chance_stages[stat.id] += nStages;
if (entityInfo->stat_modifiers.hit_chance_stages[stat.id] > MAX_STAT_STAGE) {
entityInfo->stat_modifiers.hit_chance_stages[stat.id] = MAX_STAT_STAGE;
if (entityInfo->stat_modifiers.hit_chance_stages[stat_idx.id] < MAX_STAT_STAGE) {
entityInfo->stat_modifiers.hit_chance_stages[stat_idx.id] += n_stages;
if (entityInfo->stat_modifiers.hit_chance_stages[stat_idx.id] > MAX_STAT_STAGE) {
entityInfo->stat_modifiers.hit_chance_stages[stat_idx.id] = MAX_STAT_STAGE;
}
if (nStages >= 2) {
if (n_stages >= 2) {
LogMessageByIdWithPopupCheckUserTarget(user,target,0xd95 + JPN_MSG_OFFSET);
}
else {
@@ -499,16 +499,16 @@ void BoostHitChanceStat(struct entity *user, struct entity *target, struct StatI
UpdateStatusIconFlags(target);
}
void LowerHitChanceStat(struct entity *user, struct entity *target, struct StatIndex stat, bool8 displayMessage)
void LowerHitChanceStat(struct entity *user, struct entity *target, struct StatIndex stat_idx, bool8 display_message)
{
struct monster *entityInfo;
u8 *buffer1 = AllocateTemp1024ByteBufferFromPool();
s16 nStages = 1;
s16 n_stages = 1;
if (!EntityIsValid__023118B4(target))
return;
if (stat.id != STAT_INDEX_ACCURACY) {
if (stat_idx.id != STAT_INDEX_ACCURACY) {
CopyStringFromId(buffer1, 0xdc7 + JPN_MSG_OFFSET);
SetMessageLogPreprocessorArgsString(1, buffer1);
}
@@ -517,15 +517,15 @@ void LowerHitChanceStat(struct entity *user, struct entity *target, struct StatI
SetMessageLogPreprocessorArgsString(1, buffer1);
}
if (IsProtectedFromStatDrops(user,target,displayMessage))
if (IsProtectedFromStatDrops(user,target,display_message))
return;
#ifdef JAPAN
if (DefenderAbilityIsActive__02311B94(user, target, ABILITY_KEEN_EYE) && stat.id == STAT_INDEX_ACCURACY) {
#else
if (DefenderAbilityIsActive__02311B94(user, target, ABILITY_KEEN_EYE, TRUE) && stat.id == STAT_INDEX_ACCURACY) {
if (DefenderAbilityIsActive__02311B94(user, target, ABILITY_KEEN_EYE, TRUE) && stat_idx.id == STAT_INDEX_ACCURACY) {
#endif // JAPAN
if (displayMessage) {
if (display_message) {
SubstitutePlaceholderStringTags(0,target,0);
LogMessageByIdWithPopupCheckUserTarget(user,target,0xd9f + JPN_MSG_OFFSET);
}
@@ -533,19 +533,19 @@ void LowerHitChanceStat(struct entity *user, struct entity *target, struct StatI
}
if (AbilityIsActiveVeneer(target, ABILITY_SIMPLE))
nStages *= 2;
n_stages *= 2;
entityInfo = GetEntInfo(target);
SubstitutePlaceholderStringTags(0,target,0);
PlayHitChanceDownEffect(target,stat);
PlayHitChanceDownEffect(target,stat_idx);
if (entityInfo->stat_modifiers.hit_chance_stages[stat.id] > 0) {
entityInfo->stat_modifiers.hit_chance_stages[stat.id] -= nStages;
if (entityInfo->stat_modifiers.hit_chance_stages[stat.id] < 0) {
entityInfo->stat_modifiers.hit_chance_stages[stat.id] = 0;
if (entityInfo->stat_modifiers.hit_chance_stages[stat_idx.id] > 0) {
entityInfo->stat_modifiers.hit_chance_stages[stat_idx.id] -= n_stages;
if (entityInfo->stat_modifiers.hit_chance_stages[stat_idx.id] < 0) {
entityInfo->stat_modifiers.hit_chance_stages[stat_idx.id] = 0;
}
if (nStages >= 2) {
if (n_stages >= 2) {
LogMessageByIdWithPopupCheckUserTarget(user,target,0xd94 + JPN_MSG_OFFSET);
}
else {
@@ -559,7 +559,7 @@ void LowerHitChanceStat(struct entity *user, struct entity *target, struct StatI
UpdateStatusIconFlags(target);
}
bool8 TryInflictCringeStatus(struct entity *user ,struct entity *target, bool8 displayMessage, bool8 onlyCheck)
bool8 TryInflictCringeStatus(struct entity *user ,struct entity *target, bool8 log_failure, bool8 check_only)
{
struct monster *entityInfo;
u8 *buffer1 = AllocateTemp1024ByteBufferFromPool();
@@ -567,10 +567,10 @@ bool8 TryInflictCringeStatus(struct entity *user ,struct entity *target, bool8 d
if (!EntityIsValid__023118B4(target))
return FALSE;
if (SafeguardIsActive(user, target, displayMessage))
if (SafeguardIsActive(user, target, log_failure))
return FALSE;
if (IsProtectedFromNegativeStatus(user, target, displayMessage))
if (IsProtectedFromNegativeStatus(user, target, log_failure))
return FALSE;
#ifdef JAPAN
@@ -579,12 +579,12 @@ bool8 TryInflictCringeStatus(struct entity *user ,struct entity *target, bool8 d
if (DefenderAbilityIsActive__02311B94(user, target, ABILITY_INNER_FOCUS, TRUE)) {
#endif
SubstitutePlaceholderStringTags(0,target,0);
if (displayMessage)
if (log_failure)
LogMessageByIdWithPopupCheckUserTarget(user,target,0xda2 + JPN_MSG_OFFSET);
return FALSE;
}
if (onlyCheck)
if (check_only)
return TRUE;
entityInfo = GetEntInfo(target);
@@ -604,7 +604,7 @@ bool8 TryInflictCringeStatus(struct entity *user ,struct entity *target, bool8 d
return TRUE;
}
bool8 TryInflictParalysisStatus(struct entity *user, struct entity *target, bool8 displayMessage, bool8 onlyCheck)
bool8 TryInflictParalysisStatus(struct entity *user, struct entity *target, bool8 log_failure, bool8 check_only)
{
struct monster *entityInfo;
bool8 alreadyParalyzed;
@@ -612,10 +612,10 @@ bool8 TryInflictParalysisStatus(struct entity *user, struct entity *target, bool
if (!EntityIsValid__023118B4(target))
return FALSE;
if (SafeguardIsActive(user, target, displayMessage))
if (SafeguardIsActive(user, target, log_failure))
return FALSE;
if (IsProtectedFromNegativeStatus(user, target, displayMessage))
if (IsProtectedFromNegativeStatus(user, target, log_failure))
return FALSE;
#ifdef JAPAN
@@ -624,13 +624,13 @@ bool8 TryInflictParalysisStatus(struct entity *user, struct entity *target, bool
if (DefenderAbilityIsActive__02311B94(user, target, ABILITY_LIMBER, TRUE)) {
#endif
SubstitutePlaceholderStringTags(0,target,0);
if (displayMessage)
if (log_failure)
LogMessageByIdWithPopupCheckUserTarget(user,target,0xda0 + JPN_MSG_OFFSET);
return FALSE;
}
if (ExclusiveItemEffectIsActive__023147EC(target, EXCLUSIVE_EFF_NO_PARALYSIS)) {
if (displayMessage) {
if (log_failure) {
struct item item;
SubstitutePlaceholderStringTags(0,target,0);
@@ -641,7 +641,7 @@ bool8 TryInflictParalysisStatus(struct entity *user, struct entity *target, bool
return FALSE;
}
if (onlyCheck)
if (check_only)
return TRUE;
alreadyParalyzed = TRUE;
@@ -676,7 +676,7 @@ bool8 TryInflictParalysisStatus(struct entity *user, struct entity *target, bool
LogMessageByIdWithPopupCheckUserTarget(user,target,0xdc5 + JPN_MSG_OFFSET);
}
if (GetTreatmentBetweenMonstersIgnoreStatus(target,mapMonster) == TREATMENT_TREAT_AS_ENEMY) {
TryInflictParalysisStatus(user, mapMonster, displayMessage, FALSE);
TryInflictParalysisStatus(user, mapMonster, log_failure, FALSE);
}
}
}
@@ -695,7 +695,7 @@ bool8 ExclusiveItemEffectIsActive__023147EC(struct entity *entity, enum exclusiv
return FALSE;
}
void BoostSpeed(struct entity *user, struct entity *target, s32 nStages, s32 turns, bool8 displayMessage)
void BoostSpeed(struct entity *user, struct entity *target, s32 n_stages, s32 turns, bool8 log_failure)
{
s32 speedBefore;
s32 i;
@@ -711,9 +711,9 @@ void BoostSpeed(struct entity *user, struct entity *target, s32 nStages, s32 tur
entityInfo = GetEntInfo(target);
SubstitutePlaceholderStringTags(0,target,0);
speedBefore = CalcSpeedStage(target, nStages);
speedBefore = CalcSpeedStage(target, n_stages);
if (speedBefore == MAX_SPEED_STAGE) {
if (displayMessage)
if (log_failure)
LogMessageByIdWithPopupCheckUserTarget(user,target,0xddb + JPN_MSG_OFFSET);
}
else {
@@ -724,7 +724,7 @@ void BoostSpeed(struct entity *user, struct entity *target, s32 nStages, s32 tur
}
}
speedAfter = CalcSpeedStage(target, nStages);
speedAfter = CalcSpeedStage(target, n_stages);
if (speedBefore == speedAfter) {
LogMessageByIdWithPopupCheckUserTarget(user,target,0xdda + JPN_MSG_OFFSET);
}
@@ -739,12 +739,12 @@ void BoostSpeed(struct entity *user, struct entity *target, s32 nStages, s32 tur
UpdateStatusIconFlags(target);
}
void BoostSpeedOneStage(struct entity *user, struct entity *target, s32 turns, bool8 displayMessage)
void BoostSpeedOneStage(struct entity *user, struct entity *target, s32 turns, bool8 log_failure)
{
BoostSpeed(user, target, 1, turns, displayMessage);
BoostSpeed(user, target, 1, turns, log_failure);
}
void LowerSpeed(struct entity *user, struct entity *target, s32 nStages, bool8 displayMessage)
void LowerSpeed(struct entity *user, struct entity *target, s32 n_stages, bool8 log_failure)
{
s32 speedBefore;
s32 speedAfter;
@@ -753,22 +753,22 @@ void LowerSpeed(struct entity *user, struct entity *target, s32 nStages, bool8 d
if (!EntityIsValid__023118B4(target))
return;
if (SafeguardIsActive(user,target,displayMessage))
if (SafeguardIsActive(user,target,log_failure))
return;
if (IsProtectedFromNegativeStatus(user, target, displayMessage))
if (IsProtectedFromNegativeStatus(user, target, log_failure))
return;
entityInfo = GetEntInfo(target);
SubstitutePlaceholderStringTags(0,target,0);
speedBefore = CalcSpeedStageWrapper(target);
if (speedBefore == 0) {
if (displayMessage)
if (log_failure)
LogMessageByIdWithPopupCheckUserTarget(user,target,0xddc + JPN_MSG_OFFSET);
}
else {
s32 counter, i;
for (counter = 0; counter < nStages; counter++) {
for (counter = 0; counter < n_stages; counter++) {
for (i = 0; i < NUM_SPEED_COUNTERS; i++) {
if (entityInfo->speed_down_counters[i] == 0) {
entityInfo->speed_down_counters[i] = CalcStatusDuration(target,SPEED_LOWER_TURN_RANGE,TRUE) + 1;
@@ -778,7 +778,7 @@ void LowerSpeed(struct entity *user, struct entity *target, s32 nStages, bool8 d
}
speedAfter = CalcSpeedStageWrapper(target);
if (speedBefore == speedAfter) {
if (displayMessage)
if (log_failure)
LogMessageByIdWithPopupCheckUserTarget(user,target,0xdda + JPN_MSG_OFFSET);
}
else {

View File

@@ -6,15 +6,10 @@
#define GUARD_SWAP_LOG_MESSAGE 0xF2E
#endif
extern void LogMessageByIdWithPopupCheckUserTarget(struct entity *user, struct entity *target, u32 message_id);
extern void SubstitutePlaceholderStringTags(s32 slot, struct entity *entity, u32 a);
extern void SwapDefensiveStages(struct entity *user, struct entity *target, s32 a);
extern void SwapDefensiveMultipliers(struct entity *user, struct entity *target, s32 a);
extern void SubstitutePlaceholderStringTags(s32 string_id, struct entity *entity, u32 param_3);
extern void SwapDefensiveStages(struct entity *attacker, struct entity *defender, s32 log_message);
extern void SwapDefensiveMultipliers(struct entity *attacker, struct entity *defender, s32 log_message);
extern void TryInflictLuckyChantStatus(struct entity *user, struct entity *target);
bool8 DoMoveLuckyChant(struct entity* attacker, struct entity* defender, struct move* move, enum item_id item_id)

View File

@@ -1,18 +1,13 @@
#include "overlay_29_02344AF8.h"
extern struct unk_023531A4 ov29_023531A4;
extern struct unk_023531A4 ov29_023531BC;
extern void SetPreprocessorArgsIdVal(s32 idx, u32 val);
extern void SubstitutePlaceholderItemTags(s32 a, s32 b, struct unk_023531A4 *p);
#include "dungeon_util_static.h"
#include "main_02001188.h"
#include "overlay_29_0234B024.h"
extern struct unk_023531A4 ov29_023531A4;
extern struct unk_023531A4 ov29_023531BC;
extern bool8 ov29_023537B0;
#include "dungeon_util_static.h"
extern void SubstitutePlaceholderItemTags(s32 tag_id, struct item *item, struct unk_023531A4 *param_3);
bool8 EntityIsValid__02344AF8(struct entity *entity)
{
@@ -32,14 +27,14 @@ void ov29_02344B30(void)
ov29_023537B0 = FALSE;
}
void PrepareItemForPrinting__02345728(s32 a, s32 b)
void PrepareItemForPrinting__02345728(s32 tag_id, struct item *item)
{
SetPreprocessorArgsIdVal(a, a | 0x40000);
SubstitutePlaceholderItemTags(a, b, &ov29_023531BC);
SetPreprocessorArgsIdVal(tag_id, tag_id | 0x40000);
SubstitutePlaceholderItemTags(tag_id, item, &ov29_023531BC);
}
void PrepareItemForPrinting__02345754(s32 a, s32 b)
void PrepareItemForPrinting__02345754(s32 tag_id, struct item *item)
{
SetPreprocessorArgsIdVal(a, a | 0x40000);
SubstitutePlaceholderItemTags(a, b, &ov29_023531A4);
SetPreprocessorArgsIdVal(tag_id, tag_id | 0x40000);
SubstitutePlaceholderItemTags(tag_id, item, &ov29_023531A4);
}

View File

@@ -1,22 +1,15 @@
#include "overlay_29_0234AFFC.h"
#include "main_0200C4FC.h"
#include "overlay_29_0234B024.h"
struct unk_023537CC {
bool8 field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u8 *field_0x4;
};
extern struct unk_023537CC MESSAGE_LOG_INFO;
extern struct message_log_info MESSAGE_LOG_INFO;
void ov29_0234AFFC(u8 value)
{
MESSAGE_LOG_INFO.field_0x4[0xCED] = value;
MESSAGE_LOG_INFO.alert_box_info->field_0xced = value;
}
void ov29_0234B010(u8 value)
{
MESSAGE_LOG_INFO.field_0x4[0xCEE] = value;
MESSAGE_LOG_INFO.alert_box_info->field_0xcee = value;
}

View File

@@ -1,62 +1,52 @@
#include "overlay_29_0234B024.h"
#include "dungeon_mode.h"
extern char *GetSize0x80Buffer(void);
extern void GetName(char *buffer, struct entity *entity, s32 a);
#include "main_0200C4FC.h"
extern struct message_log_info MESSAGE_LOG_INFO;
extern char *GetSize0x80Buffer(void);
extern void GetName(char *dst, enum monster_id monster_id, char color_id);
extern void InitPreprocessorArgs(struct preprocessor_args *args);
struct unk_023537CC {
bool8 field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u8 *field_0x4;
};
extern struct unk_023537CC MESSAGE_LOG_INFO;
void SetMessageLogGroupStartFlag(bool8 flag)
void SetMessageLogGroupStartFlag(bool8 should_start_group)
{
MESSAGE_LOG_INFO.field_0x0 = flag;
MESSAGE_LOG_INFO.should_start_group = should_start_group;
}
struct preprocessor_args* GetMessageLogPreprocessorArgs(void)
{
return ((struct preprocessor_args *) (MESSAGE_LOG_INFO.field_0x4 + 0xC9C));
return &MESSAGE_LOG_INFO.alert_box_info->preprocessor_args;
}
void InitMessageLogPreprocessorArgs(void)
{
InitPreprocessorArgs(((struct preprocessor_args *) (MESSAGE_LOG_INFO.field_0x4 + 0xC9C)));
InitPreprocessorArgs(&MESSAGE_LOG_INFO.alert_box_info->preprocessor_args);
}
void SetMessageLogPreprocessorArgsFlagVal(s32 idx, u32 val)
void SetMessageLogPreprocessorArgsFlagVal(s32 pos, u32 val)
{
((struct preprocessor_args *) (MESSAGE_LOG_INFO.field_0x4 + 0xC9C))->flag_vals[idx] = val;
MESSAGE_LOG_INFO.alert_box_info->preprocessor_args.flag_vals[pos] = val;
}
void SetPreprocessorArgsIdVal(s32 idx, u32 val)
void SetPreprocessorArgsIdVal(s32 pos, u32 val)
{
((struct preprocessor_args *) (MESSAGE_LOG_INFO.field_0x4 + 0xC9C))->id_vals[idx] = val;
MESSAGE_LOG_INFO.alert_box_info->preprocessor_args.id_vals[pos] = val;
}
void SetMessageLogPreprocessorArgsNumberVal(s32 idx, s32 val)
void SetMessageLogPreprocessorArgsNumberVal(s32 pos, s32 val)
{
((struct preprocessor_args *) (MESSAGE_LOG_INFO.field_0x4 + 0xC9C))->number_vals[idx] = val;
MESSAGE_LOG_INFO.alert_box_info->preprocessor_args.number_vals[pos] = val;
}
void SetMessageLogPreprocessorArgsString(s32 idx, char *str)
void SetMessageLogPreprocessorArgsString(s32 pos, char *string)
{
((struct preprocessor_args *) (MESSAGE_LOG_INFO.field_0x4 + 0xC9C))->strings[idx] = str;
MESSAGE_LOG_INFO.alert_box_info->preprocessor_args.strings[pos] = string;
}
void SetMessageLogPreprocessorArgsStringToName(s32 idx, struct entity* entity)
void SetMessageLogPreprocessorArgsStringToName(u8 pos, enum monster_id monster_id)
{
char *buffer = GetSize0x80Buffer();
GetName(buffer, entity, 0x4E);
((struct preprocessor_args *) (MESSAGE_LOG_INFO.field_0x4 + 0xC9C))->strings[idx] = buffer;
GetName(buffer, monster_id, 0x4E);
MESSAGE_LOG_INFO.alert_box_info->preprocessor_args.strings[pos] = buffer;
}

View File

@@ -1,22 +1,15 @@
#include "overlay_29_0234B104.h"
#include "main_0200C4FC.h"
#include "overlay_29_0234B024.h"
struct unk_023537CC {
bool8 field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u8 *field_0x4;
};
extern struct message_log_info MESSAGE_LOG_INFO;
extern struct unk_023537CC MESSAGE_LOG_INFO;
void SetMessageLogPreprocessorArgsSpeakerId(u32 speaker_id)
void SetMessageLogPreprocessorArgsSpeakerId(u32 monster_id)
{
((struct preprocessor_args *) (MESSAGE_LOG_INFO.field_0x4 + 0xC9C))->speaker_id = speaker_id;
MESSAGE_LOG_INFO.alert_box_info->preprocessor_args.speaker_id = monster_id;
}
void SetMessageLogPreprocessorArgsSpeakerId0x30000(u32 speaker_id)
void SetMessageLogPreprocessorArgsSpeakerId0x30000(u32 team_index)
{
((struct preprocessor_args *) (MESSAGE_LOG_INFO.field_0x4 + 0xC9C))->speaker_id = speaker_id | 0x30000;
MESSAGE_LOG_INFO.alert_box_info->preprocessor_args.speaker_id = team_index | 0x30000;
}

View File

@@ -1,50 +1,34 @@
#include "overlay_29_0234BA54.h"
#include "overlay_29_0234B024.h"
extern void ov29_022E0B60(s32 a);
extern void UnkMapRelatedFunc(u32 a, u32 b);
extern void ov29_0233A248(s32 a);
extern void sub_0204833C(void);
extern s32 sub_02048360(void);
extern void sub_02048240(s32 a);
extern void sub_02048150(s32 a);
extern void sub_02048134(s32 a);
extern void sub_020480CC(s32 a);
extern void sub_0204804C(s32 a);
extern void sub_02047FFC(s32 a);
extern void InitPortraitParams(struct unk_0234BAC0 *p);
extern void AllowPortraitDefault(struct unk_0234BAC0 *p, s32 a);
extern struct unk_023537CC MESSAGE_LOG_INFO;
extern struct message_log_info MESSAGE_LOG_INFO;
extern u16 DUNGEON_BUTTON_INPUT[8];
extern void WaitUntilAlertBoxTextIsLoaded(u32 a);
extern void ov29_022E0B60(s32 a);
extern void UnkMapRelatedFunc(u32 switch_case, u32 param_2);
extern void ov29_0233A248(s32 a);
extern void sub_0204833C(void);
extern s32 sub_02048360(void);
extern void sub_02048240(s32 a);
extern void sub_02048150(s32 a);
extern void sub_02048134(s32 a);
extern void sub_020480CC(s32 a);
extern void sub_0204804C(s32 a);
extern void sub_02047FFC(s32 a);
extern void InitPortraitParams(portrait_params *portrait);
extern void AllowPortraitDefault(portrait_params *portrait, bool32 allow);
extern void WaitUntilAlertBoxTextIsLoaded(u32 param_1);
extern void AdvanceFrame(u32 param_1);
extern void AdvanceFrame(u32 a);
void WaitUntilAlertBoxPauseIsOver(u32 a)
void WaitUntilAlertBoxPauseIsOver(u32 param_1)
{
u8 *p;
struct alert_box_info *alert_box_info = MESSAGE_LOG_INFO.alert_box_info;
s32 i;
p = MESSAGE_LOG_INFO.field_0x4;
WaitUntilAlertBoxTextIsLoaded(a);
p += 0xC00;
WaitUntilAlertBoxTextIsLoaded(param_1);
for (i = 0; i < 0xF0; i++) {
if (*(s16 *) &p[0x90] < 0xB4) {
for (i = 0; i < 240; i++) {
if (alert_box_info->frames_until_close < 180) {
return;
}
@@ -52,26 +36,26 @@ void WaitUntilAlertBoxPauseIsOver(u32 a)
return;
}
if (DUNGEON_BUTTON_INPUT[1] & 0xF0) {
if (DUNGEON_BUTTON_INPUT[1] & 240) {
return;
}
AdvanceFrame(a);
AdvanceFrame(param_1);
}
}
void InitPortraitDungeon(struct unk_0234BAC0 *p, s16 a, u8 b)
void InitPortraitDungeon(portrait_params *portrait, enum monster_id monster_id, u8 emotion)
{
InitPortraitParams(p);
p->field_0x0 = a;
p->field_0x2 = b;
p->field_0x3 = 0;
p->field_0x4 = 2;
p->field_0x8 = 9;
p->field_0xC = 0;
p->field_0xD = 0;
p->field_0xE = 0;
AllowPortraitDefault(p, 1);
InitPortraitParams(portrait);
portrait->monster_id = monster_id;
portrait->portrait_emotion = emotion;
portrait->layout_idx = 0;
portrait->offset_x = 2;
portrait->offset_y = 9;
portrait->try_flip = FALSE;
portrait->has_flip = FALSE;
portrait->hw_flip = FALSE;
AllowPortraitDefault(portrait, 1);
}
void ov29_0234BB10(void)
@@ -104,13 +88,13 @@ void ov29_0234BB50(s32 a)
sub_02048240(a);
}
s32 OpenMessageLog(s32 a, s32 b)
s32 OpenMessageLog(s32 param_1, s32 param_2)
{
s32 r;
UnkMapRelatedFunc(6, 0);
if (a == 0) {
if (param_1 == 0) {
ov29_0233A248(0);
}
@@ -125,7 +109,7 @@ s32 OpenMessageLog(s32 a, s32 b)
AdvanceFrame(0x62);
if (b != 0) {
if (param_2 != 0) {
UnkMapRelatedFunc(0, 0);
}

View File

@@ -19,7 +19,7 @@
#define INFATUATED_MESSAGE (0xC2C + HAS_STATUS_THAT_PREVENTS_ACTING_OFFSET)
#define BIDE_MESSAGE (0xC2D + HAS_STATUS_THAT_PREVENTS_ACTING_OFFSET)
extern void SubstitutePlaceholderStringTags(s32 slot, struct entity *entity, u32 param_3);
extern void SubstitutePlaceholderStringTags(s32 string_id, struct entity *entity, u32 param_3);
extern void LogMessageByIdWithPopupCheckUser(struct entity *user, u32 message_id);
bool8 HasStatusThatPreventsActing(struct entity *monster)