move orb effects 3

This commit is contained in:
DizzyEggg
2025-10-06 13:54:44 +02:00
parent 1c0b0731e2
commit 5320c7444a
11 changed files with 35 additions and 25 deletions

View File

@@ -7,8 +7,6 @@
void SetChargeStatusTarget(Entity *pokemon, Entity *target, u8 newStatus, Move *move, const u8 *message);
void sub_8079764(Entity * pokemon);
void CounterStatusTarget(Entity * pokemon, Entity * target, u8 newStatus);
void SafeguardStatusTarget(Entity * pokemon, Entity * target);
void MistStatusTarget(Entity * pokemon, Entity * target);

View File

@@ -0,0 +1,11 @@
#ifndef GUARD_MOVE_ORB_EFFECTS_3_H
#define GUARD_MOVE_ORB_EFFECTS_3_H
#include "structs/dungeon_entity.h"
#include "structs/str_moves.h"
void SetChargeStatusTarget(Entity *pokemon, Entity *target, u8 newStatus, Move *move, const u8 *message);
void sub_8079764(Entity * pokemon);
#endif

View File

@@ -39,6 +39,7 @@
#include "dungeon_map_access.h"
#include "warp_target.h"
#include "move_orb_effects_1.h"
#include "move_orb_effects_3.h"
void sub_8075BA4(Entity *param_1, u8 param_2);
void sub_804178C(u8 param_1);

View File

@@ -28,6 +28,7 @@
#include "dungeon_pos_data.h"
#include "dungeon_music.h"
#include "dungeon_mon_spawn.h"
#include "move_orb_effects_3.h"
static EWRAM_DATA s32 sNewAtkStats[2] = {0, 0};
static EWRAM_DATA s32 sNewDefStats[2] = {0, 0};

View File

@@ -34,6 +34,7 @@
#include "sprite.h"
#include "move_orb_actions_4.h"
#include "move_orb_effects_2.h"
#include "move_orb_effects_3.h"
#include "weather.h"
#include "targeting_flags.h"
#include "pokemon_types.h"

View File

@@ -35,6 +35,7 @@
#include "dungeon_strings.h"
#include "dungeon_damage.h"
#include "move_util.h"
#include "move_orb_effects_3.h"
bool8 IronTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId)
{

View File

@@ -38,6 +38,7 @@
#include "dungeon_damage.h"
#include "warp_target.h"
#include "explosion.h"
#include "move_orb_effects_3.h"
extern void nullsub_92(Entity *);

View File

@@ -46,6 +46,7 @@
#include "dungeon_kecleon_shop.h"
#include "blow_away.h"
#include "warp_target.h"
#include "move_orb_effects_3.h"
static void sub_805A7D4(Entity *, Entity *, Item *, DungeonPos *);

View File

@@ -49,6 +49,7 @@
#include "drought_orb.h"
#include "switcher_orb.h"
#include "trawl_orb.h"
#include "move_orb_effects_3.h"
bool8 ProtectMoveAction(Entity * pokemon,Entity * target,Move *move, s32 itemId)
{

View File

@@ -1,5 +1,6 @@
#include "global.h"
#include "globaldata.h"
#include "move_orb_effects_3.h"
#include "dungeon_vram.h"
#include "dungeon_map_access.h"
#include "dungeon_message.h"

View File

@@ -9,19 +9,12 @@
#include "constants/dungeon_action.h"
#include "constants/status.h"
#include "dungeon_action.h"
#include "dungeon_strings.h"
#include "dungeon_ai_attack.h"
#include "dungeon_random.h"
#include "dungeon_logic.h"
#include "moves.h"
extern const char *gPtrFrozenMessage[];
extern const char *gPtrWrappedAroundMessage[];
extern const char *gPtrWrappedByMessage[];
extern const char *gPtrBideMessage[];
extern const char *gPtrPausedMessage[];
extern const char *gPtrInfatuatedMessage[];
extern u8 *gUnknown_80F95EC[];
extern char *gPtrMoveInterruptedMessage[];
#include "move_orb_effects_3.h"
bool8 HasStatusThatPreventsActing(Entity *pokemon)
{
@@ -38,13 +31,13 @@ bool8 HasStatusThatPreventsActing(Entity *pokemon)
switch (pokemonInfo->frozenClassStatus.status)
{
case STATUS_FROZEN:
LogMessageByIdWithPopupCheckUser(pokemon, *gPtrFrozenMessage);
LogMessageByIdWithPopupCheckUser(pokemon, gPtrFrozenMessage);
return TRUE;
case STATUS_WRAP:
LogMessageByIdWithPopupCheckUser(pokemon, *gPtrWrappedAroundMessage);
LogMessageByIdWithPopupCheckUser(pokemon, gPtrWrappedAroundMessage);
return TRUE;
case STATUS_WRAPPED:
LogMessageByIdWithPopupCheckUser(pokemon, *gPtrWrappedByMessage);
LogMessageByIdWithPopupCheckUser(pokemon, gPtrWrappedByMessage);
return TRUE;
case STATUS_PETRIFIED:
return TRUE;
@@ -52,15 +45,15 @@ bool8 HasStatusThatPreventsActing(Entity *pokemon)
switch (pokemonInfo->cringeClassStatus.status)
{
case STATUS_PAUSED:
LogMessageByIdWithPopupCheckUser(pokemon, *gPtrPausedMessage);
LogMessageByIdWithPopupCheckUser(pokemon, gPtrPausedMessage);
return TRUE;
case STATUS_INFATUATED:
LogMessageByIdWithPopupCheckUser(pokemon, *gPtrInfatuatedMessage);
LogMessageByIdWithPopupCheckUser(pokemon, gPtrInfatuatedMessage);
return TRUE;
}
if (pokemonInfo->bideClassStatus.status == STATUS_BIDE)
{
LogMessageByIdWithPopupCheckUser(pokemon, *gPtrBideMessage);
LogMessageByIdWithPopupCheckUser(pokemon, gPtrBideMessage);
return TRUE;
}
if (pokemonInfo->curseClassStatus.status == STATUS_DECOY)
@@ -123,20 +116,20 @@ bool8 sub_80701A4(Entity *pokemon)
case STATUS_SLEEP:
case STATUS_NIGHTMARE:
case STATUS_NAPPING:
LogMessageByIdWithPopupCheckUser(pokemon,*gUnknown_80F95EC);
LogMessageByIdWithPopupCheckUser(pokemon, gUnknown_80F95EC);
return TRUE;
}
switch(pokemonInfo->frozenClassStatus.status)
{
case STATUS_FROZEN:
LogMessageByIdWithPopupCheckUser(pokemon,*gPtrFrozenMessage);
LogMessageByIdWithPopupCheckUser(pokemon,gPtrFrozenMessage);
return TRUE;
case STATUS_WRAP:
LogMessageByIdWithPopupCheckUser(pokemon,*gPtrWrappedAroundMessage);
LogMessageByIdWithPopupCheckUser(pokemon,gPtrWrappedAroundMessage);
return TRUE;
case STATUS_WRAPPED:
LogMessageByIdWithPopupCheckUser(pokemon,*gPtrWrappedByMessage);
LogMessageByIdWithPopupCheckUser(pokemon,gPtrWrappedByMessage);
return TRUE;
case STATUS_PETRIFIED:
return TRUE;
@@ -147,10 +140,10 @@ bool8 sub_80701A4(Entity *pokemon)
flag = TRUE;
goto _0807026C;
case STATUS_PAUSED:
LogMessageByIdWithPopupCheckUser(pokemon,*gPtrPausedMessage);
LogMessageByIdWithPopupCheckUser(pokemon,gPtrPausedMessage);
return TRUE;
case STATUS_INFATUATED:
LogMessageByIdWithPopupCheckUser(pokemon,*gPtrInfatuatedMessage);
LogMessageByIdWithPopupCheckUser(pokemon,gPtrInfatuatedMessage);
return TRUE;
default:
case STATUS_NONE:
@@ -158,12 +151,12 @@ bool8 sub_80701A4(Entity *pokemon)
case 8:
_0807026C:
if (pokemonInfo->bideClassStatus.status == STATUS_BIDE) {
LogMessageByIdWithPopupCheckUser(pokemon,*gPtrBideMessage);
LogMessageByIdWithPopupCheckUser(pokemon,gPtrBideMessage);
return TRUE;
}
else if (((pokemonInfo->bideClassStatus.status != STATUS_NONE) && (pokemonInfo->bideClassStatus.status != STATUS_CHARGING)) && (pokemonInfo->bideClassStatus.status != STATUS_ENRAGED)) {
if (flag) {
LogMessageByIdWithPopupCheckUser(pokemon,*gPtrMoveInterruptedMessage);
LogMessageByIdWithPopupCheckUser(pokemon,gPtrMoveInterruptedMessage);
}
else {
for(index = 0, move = pokemonInfo->moves.moves; index < MAX_MON_MOVES; move++, index++) {