mirror of
https://github.com/pret/pmd-sky.git
synced 2026-09-28 21:31:17 -05:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
1200
src/main_0203D538.c
1200
src/main_0203D538.c
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user