dungeon_action_handler

This commit is contained in:
DizzyEggg
2025-10-26 17:15:50 +01:00
parent 3238d7990b
commit a970083a73
35 changed files with 48 additions and 127 deletions
-6
View File
@@ -1,6 +0,0 @@
#ifndef GUARD_CODE_8066D04_H
#define GUARD_CODE_8066D04_H
void HandleSetItemAction(Entity *, bool8);
#endif // GUARD_CODE_8066D04_H
+24
View File
@@ -0,0 +1,24 @@
#ifndef GUARD_DUNGEON_ACTION_HANDLER_H
#define GUARD_DUNGEON_ACTION_HANDLER_H
#include "structs/dungeon_entity.h"
void HandlePickUpPlayerAction(Entity *entity);
void HandleSetItemAction(Entity *param_1, bool8 param_2);
void HandleUnsetItemAction(Entity *entity, bool8 enableMessage);
void HandleGiveItemAction(Entity *param_1);
void HandleTakeItemAction(Entity *param_1);
void sub_8066BD4(Entity *param_1);
void HandleUseItemAction(Entity *param_1);
void HandlePlaceItemAction(Entity *entity);
void sub_8066E14(Entity *entity);
void sub_8066FA4(Entity *entity);
void sub_8067110(Entity *entity);
void sub_80671A0(Entity *entity);
void HandleTalkFieldAction(Entity *entity);
void sub_806752C(ActionContainer *a0);
void sub_8067768(ActionContainer *a0);
void HandleUseMovePlayerAction(Entity *entity);
void sub_8067904(Entity *entity, u16 moveId);
#endif // GUARD_DUNGEON_ACTION_HANDLER_H
+2 -2
View File
@@ -232,7 +232,7 @@ SECTIONS {
src/dungeon_menu_stairs.o(.text);
src/dungeon_menu_others.o(.text);
src/dungeon_menu_recruitment.o(.text);
src/code_8066D04.o(.text);
src/dungeon_action_handler.o(.text);
src/dungeon_recruit_release_menu.o(.text);
src/dungeon_misc.o(.text);
src/dungeon_mon_spawn.o(.text);
@@ -617,7 +617,7 @@ SECTIONS {
src/dungeon_menu_stairs.o(.rodata);
src/dungeon_menu_others.o(.rodata);
src/dungeon_menu_recruitment.o(.rodata);
src/code_8066D04.o(.rodata);
src/dungeon_action_handler.o(.rodata);
src/dungeon_recruit_release_menu.o(.rodata);
src/dungeon_misc.o(.rodata);
src/dungeon_mon_spawn.o(.rodata);
+1 -16
View File
@@ -5,7 +5,7 @@
#include "dungeon_move_util.h"
#include "dungeon_vram.h"
#include "dungeon_8041AD0.h"
#include "code_8066D04.h"
#include "dungeon_action_handler.h"
#include "dungeon_message.h"
#include "constants/dungeon_action.h"
#include "constants/dungeon.h"
@@ -42,25 +42,10 @@
void sub_8075BA4(Entity *param_1, u8 param_2);
void nullsub_95(Entity *);
extern void sub_80671A0(Entity *);
extern void sub_8067110(Entity *);
void HandleUseMoveAIAction(Entity *target);
void sub_8041888(u8 param_1);
void sub_805EFB4(Entity *, u8);
void HandlePlaceItemAction(Entity *);
void HandlePickUpPlayerAction(Entity *);
void sub_8066E14(Entity * );
void sub_8066BD4(Entity*);
void HandleTalkFieldAction(Entity *);
void HandleUseMovePlayerAction(Entity *);
void HandleUseOrbAction(Entity *);
void sub_8067904(Entity *, u32);
void HandleGiveItemAction(Entity *);
void HandleTakeItemAction(Entity *);
void HandleUseItemAction(Entity *);
void sub_8066FA4(Entity *);
void HandleUnsetItemAction(Entity *,bool8);
extern u8 DisplayActions(Entity *);
void sub_806A1E8(Entity *pokemon);
void HandlePickUpAIAction(Entity *pokemon);
void HandleThrowItemAIAction(Entity *pokemon);
@@ -1,5 +1,6 @@
#include "global.h"
#include "globaldata.h"
#include "dungeon_action_handler.h"
#include "constants/dungeon.h"
#include "constants/dungeon_exit.h"
#include "constants/item.h"
@@ -8,7 +9,6 @@
#include "dungeon_tilemap.h"
#include "dungeon_8041AD0.h"
#include "dungeon_action.h"
#include "code_8066D04.h"
#include "dungeon_mon_sprite_render.h"
#include "dungeon_jobs.h"
#include "run_dungeon.h"
@@ -46,9 +46,9 @@
#include "warp_target.h"
#include "move_orb_effects_5.h"
Entity *sub_806773C(Entity *entity);
void sub_8067558(Entity *entity, Entity *targetEntity, s32 a2);
void sub_8067794(Entity *entity, Entity *targetEntity, s32 a2);
static void sub_8067558(Entity *entity, Entity *targetEntity, s32 a2);
static Entity *sub_806773C(Entity *entity);
static void sub_8067794(Entity *entity, Entity *targetEntity, s32 a2);
void HandlePickUpPlayerAction(Entity *entity)
{
@@ -98,7 +98,7 @@ void HandleSetItemAction(Entity *param_1, bool8 param_2)
}
}
void HandleUnsetItemAction(Entity *entity,bool8 enableMessage)
void HandleUnsetItemAction(Entity *entity, bool8 enableMessage)
{
Item *item;
int index;
@@ -596,7 +596,7 @@ void sub_806752C(ActionContainer *a0)
sub_8067558(GetLeader(), targetEntity, 0);
}
void sub_8067558(Entity *entity, Entity *targetEntity, s32 a2)
static void sub_8067558(Entity *entity, Entity *targetEntity, s32 a2)
{
EntityInfo *info1 = GetEntInfo(entity);
@@ -679,7 +679,7 @@ void sub_8067558(Entity *entity, Entity *targetEntity, s32 a2)
}
}
Entity *sub_806773C(Entity *entity)
static Entity *sub_806773C(Entity *entity)
{
Entity *ret = sub_80696A8(entity);
if (ret == NULL) return NULL;
@@ -695,7 +695,7 @@ void sub_8067768(ActionContainer *a0)
sub_8067794(GetLeader(), targetEntity, 0);
}
void sub_8067794(Entity *entity, Entity *targetEntity, s32 a2)
static void sub_8067794(Entity *entity, Entity *targetEntity, s32 a2)
{
const u8 *stringPtr1;
const u8 *stringPtr2;
+1 -3
View File
@@ -25,9 +25,7 @@
#include "dungeon_items.h"
#include "constants/dungeon.h"
#include "dungeon_engine.h"
extern void sub_8067110(Entity *);
extern void sub_80671A0(Entity *);
#include "dungeon_action_handler.h"
#define NUM_POTENTIAL_ROCK_TARGETS 20
#define GROUND_ITEM_TOOLBOX_INDEX 0x80
-3
View File
@@ -32,9 +32,6 @@
#include "dungeon_leveling.h"
#include "weather.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void sub_8088484(Entity *param_1);
static void ArticunoScreenFlash(void);
-3
View File
@@ -33,9 +33,6 @@
#include "weather.h"
#include "dungeon_mon_recruit.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void sub_808C8E0(Entity *entity);
static void sub_808C9B0(Entity *param_1);
-3
View File
@@ -31,9 +31,6 @@
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void DeoxysScreenFlash(void);
static void sub_808C550(void);
-3
View File
@@ -30,9 +30,6 @@
#include "dungeon_config.h"
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void EnteiScreenFlash(void);
-3
View File
@@ -32,9 +32,6 @@
#include "dungeon_tilemap.h"
#include "dungeon_leveling.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void SceneGroudonMovement(Entity * groudonEntity);
static void GroudonScreenFlash(void);
-3
View File
@@ -30,9 +30,6 @@
#include "dungeon_config.h"
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void HoOhDropInEffect(Entity * param_1);
static void HoOhScreenFlash(void);
-3
View File
@@ -34,9 +34,6 @@
#include "dungeon_mon_spawn.h"
#include "dungeon_8041AD0.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void sub_808B50C(void);
static void JirachiWish(void);
-3
View File
@@ -32,9 +32,6 @@
#include "dungeon_tilemap.h"
#include "dungeon_map.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void nullsub_99(void);
static void KyogreScreenFlash(void);
-3
View File
@@ -31,9 +31,6 @@
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void LatiosScreenFlash(void);
-3
View File
@@ -31,9 +31,6 @@
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void LugiaScreenFlash(void);
static void LugiaScreenFlash2(void);
-3
View File
@@ -30,9 +30,6 @@
#include "dungeon_config.h"
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void sub_80891F0(void);
static void sub_8089294(void);
-3
View File
@@ -30,9 +30,6 @@
#include "dungeon_config.h"
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void sub_80898F8(Entity *r0);
static void sub_8089908(Entity *r0);
-3
View File
@@ -29,9 +29,6 @@
#include "dungeon_config.h"
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void sub_8087144(void);
-3
View File
@@ -30,9 +30,6 @@
#include "dungeon_config.h"
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
void sub_808C9C4(void)
{
-3
View File
@@ -30,9 +30,6 @@
#include "dungeon_config.h"
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void MewtwoDropInEffect(Entity *mewtwoEntity);
static void MewtwoScreenFlash(void);
-3
View File
@@ -32,9 +32,6 @@
#include "dungeon_tilemap.h"
#include "dungeon_leveling.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void MoltresDropInEffect(Entity * moltresEntity);
static void MoltresScreenFlash1(s32 xArg, s32 yArg);
-3
View File
@@ -31,9 +31,6 @@
#include "dungeon_boss_dialogue.h"
#include "weather.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void RaikouScreenFlash(void);
-3
View File
@@ -31,9 +31,6 @@
#include "dungeon_boss_dialogue.h"
#include "dungeon_leveling.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void RayquazaDropInEffect(Entity *rayquazaEntity);
static void RayquazaScreenFlash(void);
-3
View File
@@ -31,9 +31,6 @@
#include "dungeon_boss_dialogue.h"
#include "dungeon_map.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void sub_808B1CC(u8 itemID);
static void SetupRegiFacingDirection(Entity *regiEntity);
-3
View File
@@ -30,9 +30,6 @@
#include "dungeon_config.h"
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void SkarmoryEntry(Entity * skarmoryEntity);
-3
View File
@@ -30,9 +30,6 @@
#include "dungeon_config.h"
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
void DummyFightDialogue(void)
{
-3
View File
@@ -30,9 +30,6 @@
#include "dungeon_config.h"
#include "dungeon_boss_dialogue.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
static void sub_808A528(Entity * param_1);
static void SuicuneScreenFlash(void);
-3
View File
@@ -31,9 +31,6 @@
#include "dungeon_boss_dialogue.h"
#include "dungeon_leveling.h"
extern void sub_8049884(void);
extern void sub_8049B8C(void);
extern void sub_8052D44(s16 *, Entity *, Entity *);
struct Zapdos1
{
-1
View File
@@ -25,7 +25,6 @@
extern s32 sub_803DA20(s16 species);
extern void sub_8049840(void);
extern void sub_80498A8(s32, s32);
extern void sub_8049B8C(void);
enum CardinalDirection
{
+1 -6
View File
@@ -18,7 +18,7 @@
#include "dungeon_vram.h"
#include "dungeon_tilemap.h"
#include "dungeon_action.h"
#include "code_8066D04.h"
#include "dungeon_action_handler.h"
#include "dungeon_mon_sprite_render.h"
#include "dungeon_action.h"
#include "dungeon_ai_movement.h"
@@ -62,19 +62,14 @@
#include "dungeon_entity_movement.h"
#include "dungeon_8041AD0.h"
extern void HandleUnsetItemAction(Entity *,bool8);
extern void TryTriggerTrap(Entity *pokemon, DungeonPos *pos, int param_3, char param_4);
void TryPointCameraToMonster(Entity *a0, u8 a1);
bool8 sub_80701A4(Entity *a0);
void ClearUnpaidFlagFromAllItems(void);
void sub_806A914(u8 a0, u8 a1, u8 a2);
u16 GetLeaderActionId(void);
void sub_80978C8(s16 a0);
void HandleTalkFieldAction(Entity *);
s32 GetTeamMemberEntityIndex(Entity *pokemon);
bool8 sub_8070F80(Entity * pokemon, s32 direction);
void sub_806752C(ActionContainer *a0);
void sub_8067768(ActionContainer *a0);
extern bool8 sub_8071A8C(Entity *pokemon);
static EWRAM_DATA bool8 sInDiagonalMode = 0;
-2
View File
@@ -31,9 +31,7 @@
#include "text_3.h"
extern s32 GetTeamMemberEntityIndex(Entity *pokemon);
extern void sub_806752C(ActionContainer *a0);
extern void ShowDungeonSummaryOrIQMenu(ActionContainer *a0, bool8 a1);
extern void sub_8067768(ActionContainer *a0);
extern bool8 sub_8071A8C(Entity *pokemon);
+11 -12
View File
@@ -3,38 +3,37 @@
#include "ground_link.h"
#include "debug.h"
#include "ground_script.h"
#include "ground_script_file.h"
#include "number_util.h"
EWRAM_INIT const struct GroundLink *gCurrentGroundLink = NULL;
extern DebugLocation gUnknown_8118798;
extern const struct GroundScriptHeader *GetGroundScript(s16 r0, DebugLocation *r1);
EWRAM_INIT static const struct GroundLink *sCurrentGroundLink = NULL;
void sub_80AD868(void)
UNUSED static void sub_80AD868(void)
{
gCurrentGroundLink = NULL;
sCurrentGroundLink = NULL;
}
void sub_80AD874(void)
UNUSED static void sub_80AD874(void)
{
gCurrentGroundLink = NULL;
sCurrentGroundLink = NULL;
}
void GroundLink_Select(s16 r0)
{
const struct GroundScriptHeader *gs = GetGroundScript(r0, DEBUG_LOC_PTR("../ground/ground_link.c", 77, "GroundLink_Select"));
gCurrentGroundLink = gs->links;
sCurrentGroundLink = gs->links;
}
const struct GroundLink *GetCurrentGroundLink(s16 r0)
UNUSED static const struct GroundLink *GetCurrentGroundLink(s16 r0)
{
u32 a = r0;
return &gCurrentGroundLink[a];
return &sCurrentGroundLink[a];
}
s32 GroundLink_GetPos(s32 _arg0, PixelPos *pos)
{
s32 arg0 = (s16)(_arg0);
const struct GroundLink *ptr = &gCurrentGroundLink[arg0];
const struct GroundLink *ptr = &sCurrentGroundLink[arg0];
SetUnkInGroundEvent(&ptr->pos, pos);
@@ -44,7 +43,7 @@ s32 GroundLink_GetPos(s32 _arg0, PixelPos *pos)
s32 GroundLink_GetArea(s32 _arg0, PixelPos *arg1, PixelPos *arg2, PixelPos *arg3)
{
s32 arg0 = (s16) _arg0;
const struct GroundLink *ptr = &gCurrentGroundLink[arg0];
const struct GroundLink *ptr = &sCurrentGroundLink[arg0];
*arg1 = *arg3;
-1
View File
@@ -71,7 +71,6 @@ extern void sub_809975C(void);
extern void sub_8099BE4(void);
extern void sub_8099744(void);
extern void WaitForNextFrameAndAdvanceRNG(void);
extern void LoadBufferedInputs(void);
extern void sub_8099750(void);
extern void nullsub_16(void);
extern void UpdateAdventureAchievements(void);
-1
View File
@@ -49,7 +49,6 @@
.space 4
.include "src/dungeon_menu_others.o"
.include "src/dungeon_menu_recruitment.o"
.include "src/code_8066D04.o"
.include "src/dungeon_recruit_release_menu.o"
.include "src/dungeon_logic.o"
.include "src/dungeon_leveling.o"