finish up orb funcs

This commit is contained in:
Seth Barberee
2024-11-15 14:43:50 -08:00
parent f471b50de6
commit aad85e9c0d
9 changed files with 986 additions and 15 deletions

View File

@@ -48,7 +48,7 @@ gUnknown_810702C: @ 810702C
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
@ sub_807DF38
@ HandleExplosion
.string "pksdir0\0"
.global gUnknown_81070E8

View File

@@ -26,6 +26,8 @@ enum TerrainType
TERRAIN_TYPE_UNK_x400 = 1 << 10,
TERRAIN_TYPE_UNK_x800 = 1 << 11,
TERRAIN_TYPE_UNK_x1000 = 1 << 12,
TERRAIN_TYPE_UNK_x2000 = 1 << 13,
TERRAIN_TYPE_UNK_x4000 = 1 << 14,
TERRAIN_TYPE_UNREACHABLE_FROM_STAIRS = 1 << 15, // 0x8000
};

View File

@@ -268,7 +268,6 @@ SECTIONS {
src/dungeon_ai_attack.o(.text);
src/targeting_flags.o(.text);
src/code_807CD9C.o(.text);
asm/code_807CD9C.o(.text);
src/code_807E1A0.o(.text);
src/weather.o(.text);
asm/code_807E5AC.o(.text);

File diff suppressed because it is too large Load Diff

View File

@@ -67,7 +67,7 @@ void sub_807E1A0(Entity *pokemon,Entity *target,u8 moveType,s16 param_4,s32 para
}
}
void sub_807E254(Entity *pokemon,Entity *target)
void HandleSwitcherOrb(Entity *pokemon,Entity *target)
{
DungeonPos pokemonPos;
DungeonPos targetPos;

View File

@@ -193,8 +193,7 @@ extern void sub_806A6E8(Entity *);
extern void EndAbilityImmuneStatus(Entity *, Entity *);
extern u8 sub_806F4A4(Entity *, u32);
extern void sub_807DF38(Entity *pokemon, Entity *target, DungeonPos *pos, u32,
u8 moveType, s16);
extern void HandleExplosion(Entity *pokemon, Entity *target, DungeonPos *pos, u32, u8 moveType, s16);
extern void nullsub_92(Entity *);
extern u32 sub_8055864(Entity *pokemon, Entity *target, Move *param_3, s32 param_4, s32 param_5);
extern u8 sub_807EAA0(u32, u32);
@@ -1506,7 +1505,7 @@ bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
bool8 SelfDestructMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4)
{
sub_807DF38(pokemon, target, &target->pos, 1, GetMoveType(move), sub_8057600(move, param_4));
HandleExplosion(pokemon, target, &target->pos, 1, GetMoveType(move), sub_8057600(move, param_4));
return TRUE;
}
@@ -1849,7 +1848,7 @@ bool8 FlyMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4)
bool8 ExplosionMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4)
{
sub_807DF38(pokemon,target,&target->pos,2,GetMoveType(move),sub_8057600(move,param_4));
HandleExplosion(pokemon,target,&target->pos,2,GetMoveType(move),sub_8057600(move,param_4));
return TRUE;
}

View File

@@ -57,7 +57,7 @@ extern void HandlePounceOrbAction(Entity *, Entity *, s32);
extern s16 sub_803D970(u32);
extern bool8 sub_806AA0C(s32, u32);
extern void sub_806BB6C(Entity *, s32);
extern void sub_807E254(Entity *, Entity *, u32);
extern void HandleSwitcherOrb(Entity *, Entity *, u32);
extern u32 HandleDamagingMove(Entity *, Entity *, Move *, u32, u32);
extern void sub_806A6E8(Entity *);
extern u8 sub_8069D18(DungeonPos *);
@@ -739,7 +739,7 @@ bool8 ReboundOrbAction(Entity * pokemon, Entity * target, Move *move, s32 param_
bool8 SwitcherOrbAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
{
SetExpMultplier(GetEntInfo(pokemon));
sub_807E254(pokemon, target, 1);
HandleSwitcherOrb(pokemon, target, 1);
return TRUE;
}

View File

@@ -75,8 +75,8 @@ void sub_804225C(Entity *, DungeonPos *, u8);
void sub_8071DA4(Entity *);
void sub_806A1E8(Entity *pokemon);
u8 sub_803D6FC(void);
extern void sub_807DF38(Entity *pokemon, Entity *target, DungeonPos *pos, u32,
u8 moveType, s16);
Entity *sub_8045684(u8, DungeonPos *, u8);
extern void HandleExplosion(Entity *pokemon, Entity *target, DungeonPos *pos, u32, u8 moveType, s16);
void sub_807FC3C(DungeonPos *pos, u32 trapID, u32 param_3)
{
@@ -463,12 +463,12 @@ void HandlePoisonTrap(Entity *pokemon, Entity *target)
void HandleSelfdestructTrap(Entity *pokemon, Entity *target)
{
sub_807DF38(pokemon, target, &target->pos, 1, TYPE_NONE, 0x212);
HandleExplosion(pokemon, target, &target->pos, 1, TYPE_NONE, 0x212);
}
void HandleExplosionTrap(Entity *pokemon, Entity *target)
{
sub_807DF38(pokemon, target, &target->pos, 2, TYPE_NONE, 0x212);
HandleExplosion(pokemon, target, &target->pos, 2, TYPE_NONE, 0x212);
}
void HandleGrimyTrap(Entity *pokemon, Entity *target)

View File

@@ -255,7 +255,7 @@ gUnknown_203B43C: /* 203B43C (sub_8065FB4) */
.include "src/dungeon_ai_items.o"
gUnknown_203B444: /* 203B444 (sub_807DF38) */
gUnknown_203B444: /* 203B444 (HandleExplosion) */
.space 0xC
gLeaderPointer: /* 203B450 (xxx_dungeon_8042F6C - ReadMonster) */