mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-26 00:15:48 -05:00
more documentation and decomp function
This commit is contained in:
parent
8529cad374
commit
973cad1733
|
|
@ -5,35 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8014214
|
||||
sub_8014214:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x14
|
||||
lsls r6, r2, 16
|
||||
movs r2, 0x1
|
||||
negs r2, r2
|
||||
ldr r3, _08014244
|
||||
movs r5, 0
|
||||
str r5, [sp]
|
||||
movs r4, 0x3
|
||||
str r4, [sp, 0x4]
|
||||
str r5, [sp, 0x8]
|
||||
str r1, [sp, 0xC]
|
||||
movs r1, 0xC0
|
||||
lsls r1, 18
|
||||
orrs r1, r6
|
||||
lsrs r1, 16
|
||||
str r1, [sp, 0x10]
|
||||
movs r1, 0
|
||||
bl sub_8014248
|
||||
add sp, 0x14
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08014244: .4byte gUnknown_80D4880
|
||||
thumb_func_end sub_8014214
|
||||
|
||||
thumb_func_start sub_8014248
|
||||
sub_8014248:
|
||||
push {r4-r7,lr}
|
||||
|
|
|
|||
|
|
@ -1135,7 +1135,7 @@ _0805E1BA:
|
|||
bne _0805E1E0
|
||||
_0805E1C6:
|
||||
mov r0, r10
|
||||
bl sub_8067510
|
||||
bl HandleTalkFieldAction
|
||||
bl sub_8044B28
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
|
|
@ -3208,12 +3208,12 @@ _0805F20C: .4byte 0x00000137
|
|||
_0805F210:
|
||||
bl GetLeader
|
||||
movs r1, 0x1
|
||||
bl sub_806675C
|
||||
bl HandleSetItemAction
|
||||
b _0805F226
|
||||
_0805F21C:
|
||||
bl GetLeader
|
||||
movs r1, 0x1
|
||||
bl sub_806684C
|
||||
bl HandleUnsetItemAction
|
||||
_0805F226:
|
||||
movs r0, 0x1
|
||||
bl sub_8044C10
|
||||
|
|
|
|||
|
|
@ -851,8 +851,8 @@ _08067508: .4byte gDungeon
|
|||
_0806750C: .4byte 0x00003a08
|
||||
thumb_func_end sub_80671A0
|
||||
|
||||
thumb_func_start sub_8067510
|
||||
sub_8067510:
|
||||
thumb_func_start HandleTalkFieldAction
|
||||
HandleTalkFieldAction:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl sub_806773C
|
||||
|
|
@ -864,7 +864,7 @@ sub_8067510:
|
|||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8067510
|
||||
thumb_func_end HandleTalkFieldAction
|
||||
|
||||
thumb_func_start sub_806752C
|
||||
sub_806752C:
|
||||
|
|
@ -1289,8 +1289,8 @@ _0806787C: .4byte gAvailablePokemonNames
|
|||
_08067880: .4byte 0x0000021d
|
||||
thumb_func_end sub_8067794
|
||||
|
||||
thumb_func_start sub_8067884
|
||||
sub_8067884:
|
||||
thumb_func_start HandleUseMovePlayerAction
|
||||
HandleUseMovePlayerAction:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
adds r5, r0, 0
|
||||
|
|
@ -1351,7 +1351,7 @@ _080678F6:
|
|||
bx r0
|
||||
.align 2, 0
|
||||
_08067900: .4byte 0x00000159
|
||||
thumb_func_end sub_8067884
|
||||
thumb_func_end HandleUseMovePlayerAction
|
||||
|
||||
thumb_func_start sub_8067904
|
||||
sub_8067904:
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ extern s32 gUnknown_202E73C;
|
|||
extern s32 gUnknown_202E740;
|
||||
|
||||
extern MenuItem gUnknown_80D485C[];
|
||||
extern MenuItem gUnknown_80D4880[];
|
||||
|
||||
void sub_80140DC(void)
|
||||
{
|
||||
|
|
@ -84,3 +85,9 @@ void sub_80141E0(const u8 *text, OpenedFile **file, u16 param_3)
|
|||
{
|
||||
sub_8014248(text, 0, -1, gUnknown_80D485C, NULL, 3, 0, file, param_3 | 0x300);
|
||||
}
|
||||
|
||||
void sub_8014214(const u8 *text, OpenedFile **file, u16 param_3)
|
||||
{
|
||||
sub_8014248(text, 0, -1, gUnknown_80D4880, NULL, 3, 0, file, param_3 | 0x300);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -39,13 +39,13 @@ extern void sub_806A6E8(Entity *);
|
|||
extern void sub_8044DF0(Entity *, u32, u32);
|
||||
extern void sub_8045DB4(Position *, u32);
|
||||
|
||||
void sub_8066744(Entity *entity)
|
||||
void HandlePickUpPlayerAction(Entity *entity)
|
||||
{
|
||||
entity->info->action.unk4[0].actionUseIndex = 1;
|
||||
sub_8045DB4(&entity->pos,0);
|
||||
}
|
||||
|
||||
void sub_806675C(Entity *param_1, bool8 param_2)
|
||||
void HandleSetItemAction(Entity *param_1, bool8 param_2)
|
||||
{
|
||||
Item *item;
|
||||
Item *itemPtr;
|
||||
|
|
@ -88,7 +88,7 @@ void sub_806675C(Entity *param_1, bool8 param_2)
|
|||
}
|
||||
|
||||
|
||||
void sub_806684C(Entity *entity,bool8 enableMessage)
|
||||
void HandleUnsetItemAction(Entity *entity,bool8 enableMessage)
|
||||
{
|
||||
Item *item;
|
||||
int index;
|
||||
|
|
@ -113,7 +113,7 @@ void sub_806684C(Entity *entity,bool8 enableMessage)
|
|||
}
|
||||
|
||||
|
||||
void sub_80668D0(Entity *param_1)
|
||||
void HandleGiveItemAction(Entity *param_1)
|
||||
{
|
||||
Entity *entity;
|
||||
Item *item;
|
||||
|
|
@ -191,7 +191,7 @@ void sub_80668D0(Entity *param_1)
|
|||
}
|
||||
|
||||
|
||||
void sub_8066AC0(Entity *param_1)
|
||||
void HandleTakeItemAction(Entity *param_1)
|
||||
{
|
||||
Entity *entity;
|
||||
EntityInfo *info;
|
||||
|
|
@ -281,7 +281,7 @@ void sub_8066BD4(Entity *param_1)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_8066CF0(Entity *param_1)
|
||||
void HandleUseItemAction(Entity *param_1)
|
||||
{
|
||||
Entity *entity;
|
||||
|
||||
|
|
@ -289,7 +289,7 @@ void sub_8066CF0(Entity *param_1)
|
|||
entity->info->useHeldItem = TRUE;
|
||||
}
|
||||
|
||||
void sub_8066D04(Entity *param_1)
|
||||
void HandlePlaceItemAction(Entity *param_1)
|
||||
{
|
||||
Item *item;
|
||||
Tile *tile;
|
||||
|
|
|
|||
|
|
@ -5,17 +5,17 @@ extern void sub_8067110(Entity *);
|
|||
extern void sub_80671A0(Entity *);
|
||||
extern void sub_8073D14(Entity *);
|
||||
|
||||
void sub_8073CF0(Entity *pokemon)
|
||||
void HandleEatAIAction(Entity *pokemon)
|
||||
{
|
||||
sub_8067110(pokemon);
|
||||
}
|
||||
|
||||
void sub_8073CFC(Entity *pokemon)
|
||||
void HandleThrowItemAIAction(Entity *pokemon)
|
||||
{
|
||||
sub_80671A0(pokemon);
|
||||
}
|
||||
|
||||
void sub_8073D08(Entity *pokemon)
|
||||
void HandlePickUpAIAction(Entity *pokemon)
|
||||
{
|
||||
sub_8073D14(pokemon);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -931,7 +931,7 @@ bool8 IsTargetInRange(Entity *pokemon, Entity *targetPokemon, s32 direction, s32
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_807CABC(Entity *target)
|
||||
void HandleUseMoveAIAction(Entity *target)
|
||||
{
|
||||
EntityInfo *entityInfo;
|
||||
s32 counter;
|
||||
|
|
@ -959,7 +959,7 @@ void sub_807CABC(Entity *target)
|
|||
}
|
||||
|
||||
#if NONMATCHING // 99.09% https://decomp.me/scratch/rpwXh
|
||||
void sub_807CB3C(Entity *pokemon)
|
||||
void HandleUseOrbAction(Entity *pokemon)
|
||||
{
|
||||
bool8 r4;
|
||||
Item *item;
|
||||
|
|
@ -1058,7 +1058,7 @@ void sub_807CB3C(Entity *pokemon)
|
|||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_807CB3C(Entity *pokemon)
|
||||
void HandleUseOrbAction(Entity *pokemon)
|
||||
{
|
||||
asm_unified(
|
||||
"push {r4-r7,lr}\n"
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ void nullsub_95(Entity *);
|
|||
bool8 IsNotAttacking(Entity *, bool8);
|
||||
extern void sub_80671A0(Entity *);
|
||||
extern void sub_8067110(Entity *);
|
||||
void sub_807CABC(Entity *target);
|
||||
void HandleUseMoveAIAction(Entity *target);
|
||||
void sub_8041888(u8 param_1);
|
||||
void sub_8085140(void);
|
||||
void sub_807360C(void);
|
||||
|
|
@ -49,24 +49,24 @@ void sub_805EFB4(Entity *, u8);
|
|||
void sub_8074FB0(Entity *, u8, Position *);
|
||||
extern void SetMessageArgument(u8 *buffer, Entity *r1, u32);
|
||||
|
||||
void sub_8066D04(Entity *);
|
||||
void sub_8066744(Entity *);
|
||||
void HandlePlaceItemAction(Entity *);
|
||||
void HandlePickUpPlayerAction(Entity *);
|
||||
void sub_8066E14(Entity * );
|
||||
void sub_807348C(void);
|
||||
void sub_80732F0(void);
|
||||
void sub_807FD84(Entity *);
|
||||
void sub_8066BD4(Entity*);
|
||||
void sub_8067510(Entity *);
|
||||
void sub_8067884(Entity *);
|
||||
void HandleTalkFieldAction(Entity *);
|
||||
void HandleUseMovePlayerAction(Entity *);
|
||||
void sub_804267C(void);
|
||||
void sub_807CB3C(Entity *);
|
||||
void HandleUseOrbAction(Entity *);
|
||||
void sub_8067904(Entity *, u32);
|
||||
void sub_80668D0(Entity *);
|
||||
void sub_8066AC0(Entity *);
|
||||
void sub_8066CF0(Entity *);
|
||||
void HandleGiveItemAction(Entity *);
|
||||
void HandleTakeItemAction(Entity *);
|
||||
void HandleUseItemAction(Entity *);
|
||||
void sub_8066FA4(Entity *);
|
||||
void sub_806675C(Entity *,bool8);
|
||||
void sub_806684C(Entity *,bool8);
|
||||
void HandleSetItemAction(Entity *,bool8);
|
||||
void HandleUnsetItemAction(Entity *,bool8);
|
||||
void sub_807FE9C(Entity *,Position *,u32,u32);
|
||||
extern u8 sub_8044B28(void);
|
||||
extern u8 UseAttack(Entity *);
|
||||
|
|
@ -75,9 +75,9 @@ void sub_806A1E8(Entity *pokemon);
|
|||
extern void sub_803E46C(u32);
|
||||
extern void sub_80694C0(Entity *, s32, s32, u32);
|
||||
bool8 sub_804AE08(Position *pos);
|
||||
void sub_8073D08(Entity *pokemon);
|
||||
void sub_8073CFC(Entity *pokemon);
|
||||
void sub_8073CF0(Entity *pokemon);
|
||||
void HandlePickUpAIAction(Entity *pokemon);
|
||||
void HandleThrowItemAIAction(Entity *pokemon);
|
||||
void HandleEatAIAction(Entity *pokemon);
|
||||
bool8 sub_8044B84(void);
|
||||
void sub_8046D20(void);
|
||||
extern void sub_8074094(Entity *);
|
||||
|
|
@ -118,7 +118,7 @@ bool8 sub_8072CF4(Entity *entity)
|
|||
s32 index;
|
||||
EntityInfo *info;
|
||||
bool8 bVar14;
|
||||
Position PStack_24;
|
||||
Position pos;
|
||||
Position pos1;
|
||||
|
||||
sub_804178C(1);
|
||||
|
|
@ -210,10 +210,10 @@ bool8 sub_8072CF4(Entity *entity)
|
|||
}
|
||||
else
|
||||
{
|
||||
PStack_24.x = entity->pos.x;
|
||||
PStack_24.y = entity->pos.y;
|
||||
pos.x = entity->pos.x;
|
||||
pos.y = entity->pos.y;
|
||||
sub_80694C0(entity,pos1.x,pos1.y,0);
|
||||
sub_8074FB0(entity,(info->action).direction,&PStack_24);
|
||||
sub_8074FB0(entity,(info->action).direction,&pos);
|
||||
if (((IQSkillIsEnabled(entity, IQ_SUPER_MOBILE)) && (info->transformStatus != STATUS_MOBILE)) &&
|
||||
(!HasHeldItem(entity,ITEM_MOBILE_SCARF))) {
|
||||
sub_804AE08(&entity->pos);
|
||||
|
|
@ -224,7 +224,7 @@ bool8 sub_8072CF4(Entity *entity)
|
|||
}
|
||||
break;
|
||||
case ACTION_USE_MOVE_AI:
|
||||
sub_807CABC(entity);
|
||||
HandleUseMoveAIAction(entity);
|
||||
break;
|
||||
case ACTION_STAIRS:
|
||||
if ((gDungeon->dungeonLocation.id == DUNGEON_METEOR_CAVE) && (!gDungeon->deoxysDefeat)) {
|
||||
|
|
@ -243,34 +243,34 @@ bool8 sub_8072CF4(Entity *entity)
|
|||
sub_8067110(entity);
|
||||
break;
|
||||
case ACTION_USE_ORB:
|
||||
sub_807CB3C(entity);
|
||||
HandleUseOrbAction(entity);
|
||||
break;
|
||||
case ACTION_PICK_UP_PLAYER:
|
||||
sub_8066744(entity);
|
||||
HandlePickUpPlayerAction(entity);
|
||||
break;
|
||||
case ACTION_GIVE_ITEM:
|
||||
sub_80668D0(entity);
|
||||
HandleGiveItemAction(entity);
|
||||
break;
|
||||
case ACTION_TAKE_ITEM:
|
||||
sub_8066AC0(entity);
|
||||
HandleTakeItemAction(entity);
|
||||
break;
|
||||
case 0x3e:
|
||||
sub_8066BD4(entity); // ITEM_SWITCH_TOOLBOX (When you switch item in Toolbox)
|
||||
break;
|
||||
case ACTION_USE_ITEM:
|
||||
sub_8066CF0(entity);
|
||||
HandleUseItemAction(entity);
|
||||
break;
|
||||
case ACTION_SET_ITEM:
|
||||
sub_806675C(entity, TRUE);
|
||||
HandleSetItemAction(entity, TRUE);
|
||||
break;
|
||||
case ACTION_UNSET_ITEM:
|
||||
sub_806684C(entity, TRUE);
|
||||
HandleUnsetItemAction(entity, TRUE);
|
||||
break;
|
||||
case 0x3b:
|
||||
gDungeon->unkBC = gDungeon->teamPokemon[(info->action).unk4[0].actionUseIndex];
|
||||
break;
|
||||
case ACTION_PLACE_ITEM:
|
||||
sub_8066D04(entity);
|
||||
HandlePlaceItemAction(entity);
|
||||
break;
|
||||
case 10: // Switch with Item on Ground
|
||||
sub_8066E14(entity);
|
||||
|
|
@ -290,10 +290,10 @@ bool8 sub_8072CF4(Entity *entity)
|
|||
SendMessage(entity,*gUnknown_80FE6D4);
|
||||
break;
|
||||
case ACTION_TALK_FIELD:
|
||||
sub_8067510(entity);
|
||||
HandleTalkFieldAction(entity);
|
||||
break;
|
||||
case ACTION_USE_MOVE_PLAYER:
|
||||
sub_8067884(entity);
|
||||
HandleUseMovePlayerAction(entity);
|
||||
break;
|
||||
case ACTION_STRUGGLE:
|
||||
sub_8067904(entity, MOVE_STRUGGLE);
|
||||
|
|
@ -305,13 +305,13 @@ bool8 sub_8072CF4(Entity *entity)
|
|||
sub_807FE9C(entity,&entity->pos,0,0);
|
||||
break;
|
||||
case ACTION_PICK_UP_AI:
|
||||
sub_8073D08(entity);
|
||||
HandlePickUpAIAction(entity);
|
||||
break;
|
||||
case ACTION_EAT_AI:
|
||||
sub_8073CF0(entity);
|
||||
HandleEatAIAction(entity);
|
||||
break;
|
||||
case ACTION_THROW_ITEM_AI:
|
||||
sub_8073CFC(entity);
|
||||
HandleThrowItemAIAction(entity);
|
||||
break;
|
||||
case ACTION_SECOND_THOUGHTS:
|
||||
SetMessageArgument(gAvailablePokemonNames,entity,0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user