Address PR #300 review: restore field comments, de-duplicate a forward

declaration, fix case indentation

Six review comments from AnonymousRandomPerson on pret/pmd-sky#300.

Comments restored, in include/common.h (struct ground_monster's level,
level_at_first_evo, level_at_second_evo, iq and max_hp) and in
include/ground_bg.h (BmaHeader's numLayers, hasDataLayer, hasCollision). These
were not removed deliberately: each line was rewritten for a type correction and
its trailing comment went with it. Every one of those retypes is the same
character width as what it replaced, so the original column alignment is
restored verbatim.

struct team_member keeps u8 flags, with the labelled bitfield preserved as a
comment in the form struct item already uses for the same situation.

struct ground_monster; is no longer forward-declared anywhere. All three headers
that carried it - main_02055410.h, main_02056914.h and main_0205A288.h - now
include common.h instead. main_02056914.h previously had no includes at all, so
this makes it self-contained as well.

Case indentation in src/main_0203D538.c and src/overlay_29_0231CBC8.c. The
defect was wider than the two labels the review pointed at: whole regions were
de-indented, consistent with a splice artifact. overlay_29_0231CBC8.c's switch
ran at column 8, then 4, then 0, then 4; main_0203D538.c had two contiguous
blocks short by 4 and by 8. Re-indented by brace depth, so every switch in both
files is now internally consistent with its own earlier cases.

The comments in this commit were added under build-tools/precommit.py's
--allow-comments override, which exists for exactly this case: they were
requested by the upstream maintainer in review, not authored here.

Authored by Claude (Opus 5) under human direction. Proved byte-neutral rather
than argued, because two of these changes could in principle move codegen: the
eight translation units reaching any of the three edited headers, and the two
re-indented files, each compiled in the build image with the real flags
(including -W all -W pedantic -W error) before and after. All 30 objects are
byte-identical across NORTH_AMERICA, EUROPE and JAPAN.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
cecilarmitais
2026-09-20 00:59:34 -07:00
parent 222afee8cb
commit 7487d6f73d
7 changed files with 860 additions and 859 deletions

View File

@@ -32,14 +32,14 @@ struct ground_move {
struct ground_monster {
u8 is_valid; // 0x0: True if the entry is valid
u8 level;
u8 level; // 0x1: Monster level
u8 joined_at; // 0x2
u8 joined_at_floor; // 0x3: See struct monster::joined_at_floor
s16 id; // 0x4: Monster ID
u8 level_at_first_evo;
u8 level_at_second_evo;
s16 iq;
s16 max_hp;
u8 level_at_first_evo; // 0x6: Level upon first evolution, or 0 if not applicable
u8 level_at_second_evo; // 0x7: Level upon second evolution, or 0 if not applicable
s16 iq; // 0x8
s16 max_hp; // 0xA
u8 offensive_stats[2]; // 0xC: {atk, sp_atk}
u8 defensive_stats[2]; // 0xE: {def, sp_def}
s32 exp; // 0x10
@@ -54,7 +54,10 @@ struct ground_monster {
// Stores information about active team members, including those from special episodes.
// A lot of the fields seem to be analogous to fields on struct monster.
struct team_member {
// 0x0: flags: 1-byte bitfield
u8 flags;
// u8 f_is_valid : 1;
// u8 flags_unk1 : 7;
u8 is_leader; // 0x1
u8 level; // 0x2

View File

@@ -177,9 +177,9 @@ typedef struct BmaHeader
u8 mapWidthChunks;
u8 mapHeightChunks;
s16 numLayers;
s16 hasDataLayer;
s16 hasCollision;
s16 numLayers; // Number of layers in this map. Must match BPC layer size. Allowed values are only 1 or 2.
s16 hasDataLayer; // Seems to be a boolean flag (0 or 1). If >0, the Unknown Data Layer exists.
s16 hasCollision; // Number of Collision layers. 0, 1 or 2.
} BmaHeader;
typedef struct BplHeader

View File

@@ -1,10 +1,9 @@
#ifndef PMDSKY_MAIN_02055410_H
#define PMDSKY_MAIN_02055410_H
#include "common.h"
#include "util.h"
struct ground_monster;
bool8 sub_02055410(int idx);
bool8 sub_02055474(int idx);
bool8 sub_020554D8(int idx);

View File

@@ -1,7 +1,7 @@
#ifndef PMDSKY_MAIN_02056914_H
#define PMDSKY_MAIN_02056914_H
struct ground_monster;
#include "common.h"
struct ground_monster* sub_02056914(void);

View File

@@ -1,11 +1,10 @@
#ifndef PMDSKY_MAIN_0205A288_H
#define PMDSKY_MAIN_0205A288_H
#include "common.h"
#include "enums.h"
#include "util.h"
struct ground_monster;
bool8 HandleShedinjaEvolution(s16 *member_idx, enum monster_id monster_id);
s16 sub_0205A340(s16 *member_idx, struct ground_monster *src, enum monster_id monster_id);

File diff suppressed because it is too large Load Diff

View File

@@ -321,258 +321,258 @@ void ApplyItemEffect(char param_1, u8 param_2, u8 param_3,
case ITEM_BLAST_SEED:
ApplyBlastSeedEffect(attacker, defender, param_1);
break;
case ITEM_MAX_ELIXIR:
RestoreAllMovePP(attacker, defender, 999, 0);
break;
case ITEM_PROTEIN:
ApplyProteinEffect(attacker, defender, PROTEIN_STAT_BOOST);
break;
case ITEM_CALCIUM:
ApplyCalciumEffect(attacker, defender, CALCIUM_STAT_BOOST);
break;
case ITEM_IRON:
ApplyIronEffect(attacker, defender, IRON_STAT_BOOST);
break;
case ITEM_ZINC:
ApplyZincEffect(attacker, defender, ZINC_STAT_BOOST);
break;
case ITEM_GABITE_SCALE:
EndNegativeStatusConditionWrapper(attacker, defender, TRUE, FALSE);
break;
case ITEM_GOLDEN_SEED:
LevelUpItemEffect(attacker, defender, 5, 1, 1);
break;
case ITEM_VILE_SEED:
ApplyVileSeedEffect(attacker, defender);
break;
case ITEM_PURE_SEED:
TryWarp(attacker, defender, 4, 0);
break;
case ITEM_VIOLENT_SEED:
ApplyViolentSeedEffect(attacker, defender);
break;
case ITEM_VANISH_SEED:
TryInflictInvisibleStatus(attacker, defender);
break;
case ITEM_NECTAR:
BoostIQ(defender, 10, FALSE);
break;
case ITEM_APPLE:
TryIncreaseBelly(attacker, defender, 50, 5, 1);
break;
case ITEM_BIG_APPLE:
TryIncreaseBelly(attacker, defender, 100, 10, 1);
break;
case ITEM_HUGE_APPLE:
TryIncreaseBelly(attacker, defender, 999, 10, 1);
break;
case ITEM_GRIMY_FOOD:
ApplyGrimyFoodEffect(attacker, defender);
break;
case ITEM_WHITE_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_NORMAL, GUMMI_STAT_BOOST);
break;
case ITEM_RED_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_FIRE, GUMMI_STAT_BOOST);
break;
case ITEM_BLUE_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_WATER, GUMMI_STAT_BOOST);
break;
case ITEM_GRASS_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_GRASS, GUMMI_STAT_BOOST);
break;
case ITEM_YELLOW_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_ELECTRIC, GUMMI_STAT_BOOST);
break;
case ITEM_CLEAR_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_ICE, GUMMI_STAT_BOOST);
break;
case ITEM_ORANGE_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_FIGHTING, GUMMI_STAT_BOOST);
break;
case ITEM_PINK_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_POISON, GUMMI_STAT_BOOST);
break;
case ITEM_BROWN_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_GROUND, GUMMI_STAT_BOOST);
break;
case ITEM_SKY_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_FLYING, GUMMI_STAT_BOOST);
break;
case ITEM_GOLD_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_PSYCHIC, GUMMI_STAT_BOOST);
break;
case ITEM_GREEN_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_BUG, GUMMI_STAT_BOOST);
break;
case ITEM_GRAY_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_ROCK, GUMMI_STAT_BOOST);
break;
case ITEM_PURPLE_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_GHOST, GUMMI_STAT_BOOST);
break;
case ITEM_ROYAL_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_DRAGON, GUMMI_STAT_BOOST);
break;
case ITEM_BLACK_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_DARK, GUMMI_STAT_BOOST);
break;
case ITEM_SILVER_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_STEEL, GUMMI_STAT_BOOST);
break;
case ITEM_WONDER_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, 0xFF, WONDER_GUMMI_STAT_BOOST);
break;
case ITEM_UNNAMED_0x71:
TryIncreaseBelly(attacker, defender, 50, 5, 1);
break;
case ITEM_UNNAMED_0x72:
TryIncreaseBelly(attacker, defender, 10, 0, 1);
break;
case ITEM_GOLDEN_APPLE:
TryIncreaseBelly(attacker, defender, 999, 50, 1);
break;
case ITEM_KEY:
case ITEM_MAX_ELIXIR:
RestoreAllMovePP(attacker, defender, 999, 0);
break;
case ITEM_PROTEIN:
ApplyProteinEffect(attacker, defender, PROTEIN_STAT_BOOST);
break;
case ITEM_CALCIUM:
ApplyCalciumEffect(attacker, defender, CALCIUM_STAT_BOOST);
break;
case ITEM_IRON:
ApplyIronEffect(attacker, defender, IRON_STAT_BOOST);
break;
case ITEM_ZINC:
ApplyZincEffect(attacker, defender, ZINC_STAT_BOOST);
break;
case ITEM_GABITE_SCALE:
EndNegativeStatusConditionWrapper(attacker, defender, TRUE, FALSE);
break;
case ITEM_GOLDEN_SEED:
LevelUpItemEffect(attacker, defender, 5, 1, 1);
break;
case ITEM_VILE_SEED:
ApplyVileSeedEffect(attacker, defender);
break;
case ITEM_PURE_SEED:
TryWarp(attacker, defender, 4, 0);
break;
case ITEM_VIOLENT_SEED:
ApplyViolentSeedEffect(attacker, defender);
break;
case ITEM_VANISH_SEED:
TryInflictInvisibleStatus(attacker, defender);
break;
case ITEM_NECTAR:
BoostIQ(defender, 10, FALSE);
break;
case ITEM_APPLE:
TryIncreaseBelly(attacker, defender, 50, 5, 1);
break;
case ITEM_BIG_APPLE:
TryIncreaseBelly(attacker, defender, 100, 10, 1);
break;
case ITEM_HUGE_APPLE:
TryIncreaseBelly(attacker, defender, 999, 10, 1);
break;
case ITEM_GRIMY_FOOD:
ApplyGrimyFoodEffect(attacker, defender);
break;
case ITEM_WHITE_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_NORMAL, GUMMI_STAT_BOOST);
break;
case ITEM_RED_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_FIRE, GUMMI_STAT_BOOST);
break;
case ITEM_BLUE_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_WATER, GUMMI_STAT_BOOST);
break;
case ITEM_GRASS_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_GRASS, GUMMI_STAT_BOOST);
break;
case ITEM_YELLOW_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_ELECTRIC, GUMMI_STAT_BOOST);
break;
case ITEM_CLEAR_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_ICE, GUMMI_STAT_BOOST);
break;
case ITEM_ORANGE_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_FIGHTING, GUMMI_STAT_BOOST);
break;
case ITEM_PINK_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_POISON, GUMMI_STAT_BOOST);
break;
case ITEM_BROWN_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_GROUND, GUMMI_STAT_BOOST);
break;
case ITEM_SKY_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_FLYING, GUMMI_STAT_BOOST);
break;
case ITEM_GOLD_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_PSYCHIC, GUMMI_STAT_BOOST);
break;
case ITEM_GREEN_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_BUG, GUMMI_STAT_BOOST);
break;
case ITEM_GRAY_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_ROCK, GUMMI_STAT_BOOST);
break;
case ITEM_PURPLE_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_GHOST, GUMMI_STAT_BOOST);
break;
case ITEM_ROYAL_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_DRAGON, GUMMI_STAT_BOOST);
break;
case ITEM_BLACK_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_DARK, GUMMI_STAT_BOOST);
break;
case ITEM_SILVER_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, TYPE_STEEL, GUMMI_STAT_BOOST);
break;
case ITEM_WONDER_GUMMI:
ApplyGummiBoostsDungeonMode(attacker, defender, 0xFF, WONDER_GUMMI_STAT_BOOST);
break;
case ITEM_UNNAMED_0x71:
TryIncreaseBelly(attacker, defender, 50, 5, 1);
break;
case ITEM_UNNAMED_0x72:
TryIncreaseBelly(attacker, defender, 10, 0, 1);
break;
case ITEM_GOLDEN_APPLE:
TryIncreaseBelly(attacker, defender, 999, 50, 1);
break;
case ITEM_KEY:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
}
else {
ApplyKeyEffect(attacker);
}
break;
case ITEM_DROPEYE_SEED:
TryInflictDropeyeStatus(attacker, defender);
break;
case ITEM_SLIP_SEED:
if (!TryInflictSlipStatus(attacker, defender)) {
SubstitutePlaceholderStringTags(0, defender, 0);
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_C75);
}
break;
case ITEM_VIA_SEED:
ApplyViaSeedEffect(attacker, defender);
break;
case ITEM_MIX_ELIXIR:
ApplyMixElixirEffect(attacker, defender);
break;
case ITEM_OREN_BERRY:
CalcDamageFixedNoCategory(attacker, defender, OREN_BERRY_DAMAGE, 1, NULL, TYPE_NONE,
DAMAGE_SOURCE_OREN_BERRY, 0, 0, 0);
break;
case ITEM_DOUGH_SEED:
ApplyDoughSeedEffect(attacker, defender);
break;
case ITEM_GRAVELYROCK:
ApplyGravelyrockEffect(attacker, defender);
break;
case ITEM_GONE_PEBBLE:
ApplyGonePebbleEffect(attacker, defender);
break;
case ITEM_WANDER_GUMMI:
TryInflictBlinkerStatus(attacker, defender, 0, 0);
break;
case ITEM_PRIZE_TICKET:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
} else {
SubstitutePlaceholderStringTags(0, defender, 0);
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_C67);
}
break;
case ITEM_SILVER_TICKET:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
} else {
SubstitutePlaceholderStringTags(0, defender, 0);
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_C67);
}
break;
case ITEM_GOLD_TICKET:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
} else {
SubstitutePlaceholderStringTags(0, defender, 0);
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_C67);
}
break;
case ITEM_PRISM_TICKET:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
} else {
SubstitutePlaceholderStringTags(0, defender, 0);
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_C67);
}
break;
case ITEM_SKY_GIFT:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
} else {
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_C76);
}
break;
case ITEM_GRACIDEA:
ApplyGracideaEffect(attacker, defender);
break;
case ITEM_UNNAMED_0x16B:
break;
case ITEM_A_STONE:
case ITEM_B_STONE:
case ITEM_C_STONE:
case ITEM_D_STONE:
case ITEM_E_STONE:
case ITEM_F_STONE:
case ITEM_G_STONE:
case ITEM_H_STONE:
case ITEM_I_STONE:
case ITEM_J_STONE:
case ITEM_K_STONE:
case ITEM_L_STONE:
case ITEM_M_STONE:
case ITEM_N_STONE:
case ITEM_O_STONE:
case ITEM_P_STONE:
case ITEM_Q_STONE:
case ITEM_R_STONE:
case ITEM_S_STONE:
case ITEM_T_STONE:
case ITEM_U_STONE:
case ITEM_V_STONE:
case ITEM_W_STONE:
case ITEM_X_STONE:
case ITEM_Y_STONE:
case ITEM_Z_STONE:
case ITEM_EXCLAMATION_STONE:
case ITEM_QUESTION_STONE:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE,
CalcDamageFixedNoCategory(attacker, defender, ov10_022C44EC, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
}
else {
ApplyKeyEffect(attacker);
}
break;
case ITEM_DROPEYE_SEED:
TryInflictDropeyeStatus(attacker, defender);
break;
case ITEM_SLIP_SEED:
if (!TryInflictSlipStatus(attacker, defender)) {
SubstitutePlaceholderStringTags(0, defender, 0);
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_C75);
}
break;
case ITEM_VIA_SEED:
ApplyViaSeedEffect(attacker, defender);
break;
case ITEM_MIX_ELIXIR:
ApplyMixElixirEffect(attacker, defender);
break;
case ITEM_OREN_BERRY:
CalcDamageFixedNoCategory(attacker, defender, OREN_BERRY_DAMAGE, 1, NULL, TYPE_NONE,
DAMAGE_SOURCE_OREN_BERRY, 0, 0, 0);
break;
case ITEM_DOUGH_SEED:
ApplyDoughSeedEffect(attacker, defender);
break;
case ITEM_GRAVELYROCK:
ApplyGravelyrockEffect(attacker, defender);
break;
case ITEM_GONE_PEBBLE:
ApplyGonePebbleEffect(attacker, defender);
break;
case ITEM_WANDER_GUMMI:
TryInflictBlinkerStatus(attacker, defender, 0, 0);
break;
case ITEM_PRIZE_TICKET:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
} else {
SubstitutePlaceholderStringTags(0, defender, 0);
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_C67);
}
break;
case ITEM_SILVER_TICKET:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
} else {
SubstitutePlaceholderStringTags(0, defender, 0);
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_C67);
}
break;
case ITEM_GOLD_TICKET:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
} else {
SubstitutePlaceholderStringTags(0, defender, 0);
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_C67);
}
break;
case ITEM_PRISM_TICKET:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
} else {
SubstitutePlaceholderStringTags(0, defender, 0);
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_C67);
}
break;
case ITEM_SKY_GIFT:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
} else {
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_C76);
}
break;
case ITEM_GRACIDEA:
ApplyGracideaEffect(attacker, defender);
break;
case ITEM_UNNAMED_0x16B:
break;
case ITEM_A_STONE:
case ITEM_B_STONE:
case ITEM_C_STONE:
case ITEM_D_STONE:
case ITEM_E_STONE:
case ITEM_F_STONE:
case ITEM_G_STONE:
case ITEM_H_STONE:
case ITEM_I_STONE:
case ITEM_J_STONE:
case ITEM_K_STONE:
case ITEM_L_STONE:
case ITEM_M_STONE:
case ITEM_N_STONE:
case ITEM_O_STONE:
case ITEM_P_STONE:
case ITEM_Q_STONE:
case ITEM_R_STONE:
case ITEM_S_STONE:
case ITEM_T_STONE:
case ITEM_U_STONE:
case ITEM_V_STONE:
case ITEM_W_STONE:
case ITEM_X_STONE:
case ITEM_Y_STONE:
case ITEM_Z_STONE:
case ITEM_EXCLAMATION_STONE:
case ITEM_QUESTION_STONE:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C44EC, 1, &flag, TYPE_NONE,
DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
} else {
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_BE8);
}
break;
case ITEM_NOTHING:
default:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE, DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
}
else {
} else {
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_BE8);
}
break;
case ITEM_NOTHING:
default:
if (param_1) {
bool8 flag;
CalcDamageFixedNoCategory(attacker, defender, ov10_022C4558, 1, &flag, TYPE_NONE, DAMAGE_SOURCE_THROWN_ITEM, 0, 0, 0);
}
else {
LogMessageByIdWithPopupCheckUserTarget(attacker, defender, MESSAGE_BE8);
}
break;
}
}