through sub_811D178
This commit is contained in:
@@ -5,229 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_811D018
|
||||
sub_811D018: @ 811D018
|
||||
push {r4,lr}
|
||||
lsls r0, 16
|
||||
lsrs r3, r0, 16
|
||||
movs r2, 0
|
||||
ldr r4, _0811D044 @ =gUnknown_8459634
|
||||
_0811D022:
|
||||
adds r1, r4, 0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, r3
|
||||
beq _0811D04C
|
||||
adds r4, r1, 0x4
|
||||
adds r2, 0x1
|
||||
cmp r2, 0x1
|
||||
bls _0811D022
|
||||
ldr r1, _0811D048 @ =0xfffffedf
|
||||
adds r0, r3, r1
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x39
|
||||
bls _0811D050
|
||||
movs r0, 0
|
||||
b _0811D052
|
||||
.align 2, 0
|
||||
_0811D044: .4byte gUnknown_8459634
|
||||
_0811D048: .4byte 0xfffffedf
|
||||
_0811D04C:
|
||||
ldrh r0, [r4, 0x2]
|
||||
b _0811D052
|
||||
_0811D050:
|
||||
movs r0, 0x4
|
||||
_0811D052:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_811D018
|
||||
|
||||
thumb_func_start sub_811D058
|
||||
sub_811D058: @ 811D058
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
adds r1, r0, 0
|
||||
cmp r0, 0x64
|
||||
bhi _0811D068
|
||||
movs r0, 0
|
||||
b _0811D07A
|
||||
_0811D068:
|
||||
cmp r0, 0x96
|
||||
bhi _0811D070
|
||||
movs r0, 0x1
|
||||
b _0811D07A
|
||||
_0811D070:
|
||||
cmp r1, 0xC8
|
||||
bls _0811D078
|
||||
movs r0, 0x3
|
||||
b _0811D07A
|
||||
_0811D078:
|
||||
movs r0, 0x2
|
||||
_0811D07A:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_811D058
|
||||
|
||||
thumb_func_start sub_811D080
|
||||
sub_811D080: @ 811D080
|
||||
push {lr}
|
||||
ldr r0, _0811D090 @ =gUnknown_203B094
|
||||
ldrb r0, [r0]
|
||||
movs r1, 0
|
||||
bl GetWordTaskArg
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0811D090: .4byte gUnknown_203B094
|
||||
thumb_func_end sub_811D080
|
||||
|
||||
thumb_func_start sub_811D094
|
||||
sub_811D094: @ 811D094
|
||||
push {lr}
|
||||
bl sub_811D080
|
||||
ldr r1, _0811D0A4 @ =gUnknown_203B098
|
||||
str r0, [r1]
|
||||
adds r0, 0x8
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0811D0A4: .4byte gUnknown_203B098
|
||||
thumb_func_end sub_811D094
|
||||
|
||||
thumb_func_start sub_811D0A8
|
||||
sub_811D0A8: @ 811D0A8
|
||||
push {lr}
|
||||
bl sub_811D080
|
||||
adds r0, 0xA8
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_811D0A8
|
||||
|
||||
thumb_func_start sub_811D0B4
|
||||
sub_811D0B4: @ 811D0B4
|
||||
push {lr}
|
||||
bl sub_811D080
|
||||
adds r0, 0x96
|
||||
ldrh r0, [r0]
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_811D0B4
|
||||
|
||||
thumb_func_start sub_811D0C4
|
||||
sub_811D0C4: @ 811D0C4
|
||||
push {lr}
|
||||
bl sub_811D080
|
||||
adds r0, 0x77
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_811D0C4
|
||||
|
||||
thumb_func_start sub_811D0D0
|
||||
sub_811D0D0: @ 811D0D0
|
||||
push {lr}
|
||||
bl sub_811D080
|
||||
adds r0, 0x84
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_811D0D0
|
||||
|
||||
thumb_func_start sub_811D0DC
|
||||
sub_811D0DC: @ 811D0DC
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl sub_811D080
|
||||
adds r1, r0, 0
|
||||
adds r1, 0x6C
|
||||
adds r0, r4, 0
|
||||
bl StringCopy
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_811D0DC
|
||||
|
||||
thumb_func_start sub_811D0F4
|
||||
sub_811D0F4: @ 811D0F4
|
||||
push {lr}
|
||||
bl sub_811D080
|
||||
adds r0, 0x6C
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_811D0F4
|
||||
|
||||
thumb_func_start sub_811D100
|
||||
sub_811D100: @ 811D100
|
||||
push {lr}
|
||||
bl sub_811D080
|
||||
adds r0, 0x98
|
||||
ldrb r0, [r0]
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_811D100
|
||||
|
||||
thumb_func_start sub_811D110
|
||||
sub_811D110: @ 811D110
|
||||
push {lr}
|
||||
bl sub_811D080
|
||||
adds r0, 0x94
|
||||
ldrh r0, [r0]
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_811D110
|
||||
|
||||
thumb_func_start sub_811D120
|
||||
sub_811D120: @ 811D120
|
||||
push {lr}
|
||||
bl sub_811D080
|
||||
adds r0, 0xA0
|
||||
ldr r0, [r0]
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_811D120
|
||||
|
||||
thumb_func_start BufferMonStatsToTaskData
|
||||
BufferMonStatsToTaskData: @ 811D130
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
movs r1, 0x3A
|
||||
bl GetMonData
|
||||
strh r0, [r5]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3B
|
||||
bl GetMonData
|
||||
strh r0, [r5, 0x2]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3C
|
||||
bl GetMonData
|
||||
strh r0, [r5, 0x4]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3D
|
||||
bl GetMonData
|
||||
strh r0, [r5, 0x6]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3E
|
||||
bl GetMonData
|
||||
strh r0, [r5, 0x8]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3F
|
||||
bl GetMonData
|
||||
strh r0, [r5, 0xA]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end BufferMonStatsToTaskData
|
||||
|
||||
thumb_func_start sub_811D178
|
||||
sub_811D178: @ 811D178
|
||||
ldr r0, _0811D180 @ =gUnknown_203B090
|
||||
ldr r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0811D180: .4byte gUnknown_203B090
|
||||
thumb_func_end sub_811D178
|
||||
|
||||
thumb_func_start sub_811D184
|
||||
sub_811D184: @ 811D184
|
||||
push {r4,r5,lr}
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnknown_8459634:: @ 8459634 data16 2x2
|
||||
.2byte 0x0044, 0x0000
|
||||
.2byte 0x000d, 0x0001
|
||||
|
||||
gUnknown_845963C:: @ 845963C gbapal
|
||||
.incbin "graphics/pokemon_special_anim/unk_845963C.gbapal"
|
||||
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
#ifndef GUARD_POKEMON_SPECIAL_ANIM_INTERNAL_H
|
||||
#define GUARD_POKEMON_SPECIAL_ANIM_INTERNAL_H
|
||||
|
||||
#include "pokemon_special_anim.h"
|
||||
|
||||
struct PokemonSpecialAnim
|
||||
{
|
||||
/*0x0000*/ u8 filler_0000[0x4];
|
||||
/*0x0004*/ MainCallback savedCallback;
|
||||
/*0x0008*/ struct Pokemon pokemon;
|
||||
/*0x006c*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
|
||||
/*0x0077*/ u8 nameOfMoveForgotten[13];
|
||||
/*0x0084*/ u8 nameOfMoveToTeach[13];
|
||||
/*0x0091*/ bool8 cancelDisabled;
|
||||
/*0x0092*/ u16 state;
|
||||
/*0x0094*/ u16 species;
|
||||
/*0x0096*/ u16 itemId;
|
||||
/*0x0098*/ u16 animType;
|
||||
/*0x009a*/ u16 slotId;
|
||||
/*0x009c*/ u16 closeness;
|
||||
/*0x009e*/ u16 field_009e;
|
||||
/*0x00a0*/ u32 personality;
|
||||
/*0x00a4*/ u32 field_00a4;
|
||||
/*0x00a8*/ u8 field_00a8[0x2834];
|
||||
}; // size=0x28dc
|
||||
|
||||
void sub_811D184(u8 *buffer, u16 animType);
|
||||
bool8 sub_811D280(void);
|
||||
void sub_811D29C(void);
|
||||
void sub_811D2A8(void);
|
||||
void sub_811D2D0(void);
|
||||
void sub_811D2EC(u8 a0);
|
||||
void sub_811D4D4(void);
|
||||
bool8 sub_811D4EC(void);
|
||||
void sub_811D4FC(void);
|
||||
bool8 sub_811D530(void);
|
||||
void sub_811D5A0(void);
|
||||
void sub_811D5B0(void);
|
||||
bool8 sub_811D5C0(void);
|
||||
void sub_811D6EC(void);
|
||||
bool8 sub_811D6FC(void);
|
||||
bool8 sub_811D754(void);
|
||||
void sub_811D830(u8 a0);
|
||||
void sub_811D948(u8 closeness);
|
||||
bool8 sub_811D9A8(void);
|
||||
void sub_811DC54(u16 itemId, u8 closeness, u8 a2);
|
||||
void sub_811DCF0(u16 itemId);
|
||||
bool8 sub_811DD90(void);
|
||||
void sub_811E040(void);
|
||||
|
||||
#endif //GUARD_POKEMON_SPECIAL_ANIM_INTERNAL_H
|
||||
+112
-44
@@ -2,36 +2,18 @@
|
||||
#include "gflib.h"
|
||||
#include "data.h"
|
||||
#include "party_menu.h"
|
||||
#include "pokemon_special_anim_internal.h"
|
||||
#include "item_use.h"
|
||||
#include "task.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/items.h"
|
||||
|
||||
// Functions related to the special anims Pokemon
|
||||
// make when using an item on them in the field.
|
||||
|
||||
struct PokemonSpecialAnim
|
||||
{
|
||||
/*0x0000*/ u8 filler_0000[0x4];
|
||||
/*0x0004*/ MainCallback savedCallback;
|
||||
/*0x0008*/ struct Pokemon pokemon;
|
||||
/*0x006c*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
|
||||
/*0x0077*/ u8 nameOfMoveForgotten[13];
|
||||
/*0x0084*/ u8 nameOfMoveToTeach[13];
|
||||
/*0x0091*/ bool8 cancelDisabled;
|
||||
/*0x0092*/ u16 state;
|
||||
/*0x0094*/ u16 species;
|
||||
/*0x0096*/ u16 itemId;
|
||||
/*0x0098*/ u16 animType;
|
||||
/*0x009a*/ u16 slotId;
|
||||
/*0x009c*/ u16 closeness;
|
||||
/*0x009e*/ u16 field_009e;
|
||||
/*0x00a0*/ u32 personality;
|
||||
/*0x00a4*/ u32 field_00a4;
|
||||
/*0x00a8*/ u8 field_00a8[0x2834];
|
||||
}; // size=0x28dc
|
||||
|
||||
EWRAM_DATA bool32 gUnknown_203B090 = FALSE;
|
||||
EWRAM_DATA u8 gUnknown_203B094 = 0;
|
||||
EWRAM_DATA struct PokemonSpecialAnim * gUnknown_203B098 = NULL;
|
||||
|
||||
struct PokemonSpecialAnim * sub_811C5D4(u8 slotId, u16 itemId, MainCallback callback);
|
||||
void sub_811C748(struct PokemonSpecialAnim * ptr);
|
||||
@@ -45,29 +27,6 @@ void sub_811CE4C(u8 taskId);
|
||||
void sub_811CF88(u8 taskId);
|
||||
u8 sub_811D058(u16 friendship);
|
||||
u16 sub_811D018(u16 itemId);
|
||||
void sub_811D184(u8 *buffer, u16 animType);
|
||||
bool8 sub_811D280(void);
|
||||
void sub_811D29C(void);
|
||||
void sub_811D2A8(void);
|
||||
void sub_811D2D0(void);
|
||||
void sub_811D2EC(u8 a0);
|
||||
void sub_811D4D4(void);
|
||||
bool8 sub_811D4EC(void);
|
||||
void sub_811D4FC(void);
|
||||
bool8 sub_811D530(void);
|
||||
void sub_811D5A0(void);
|
||||
void sub_811D5B0(void);
|
||||
bool8 sub_811D5C0(void);
|
||||
void sub_811D6EC(void);
|
||||
bool8 sub_811D6FC(void);
|
||||
bool8 sub_811D754(void);
|
||||
void sub_811D830(u8 a0);
|
||||
void sub_811D948(u8 closeness);
|
||||
bool8 sub_811D9A8(void);
|
||||
void sub_811DC54(u16 itemId, u8 closeness, u8 a2);
|
||||
void sub_811DCF0(u16 itemId);
|
||||
bool8 sub_811DD90(void);
|
||||
void sub_811E040(void);
|
||||
|
||||
void sub_811C540(u8 slotId, u16 itemId, MainCallback callback)
|
||||
{
|
||||
@@ -638,3 +597,112 @@ void sub_811CF88(u8 taskId)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const struct {
|
||||
u16 itemId;
|
||||
u16 animType;
|
||||
} gUnknown_8459634[2] = {
|
||||
{ITEM_RARE_CANDY, 0},
|
||||
{ITEM_POTION, 1}
|
||||
};
|
||||
|
||||
u16 sub_811D018(u16 itemId)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < NELEMS(gUnknown_8459634); i++)
|
||||
{
|
||||
if (gUnknown_8459634[i].itemId == itemId)
|
||||
return gUnknown_8459634[i].animType;
|
||||
}
|
||||
|
||||
if (itemId >= ITEM_TM01 && itemId <= ITEM_HM08)
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 sub_811D058(u16 friendship)
|
||||
{
|
||||
if (friendship <= 100)
|
||||
return 0;
|
||||
else if (friendship <= 150)
|
||||
return 1;
|
||||
else if (friendship <= 200)
|
||||
return 2;
|
||||
else
|
||||
return 3;
|
||||
}
|
||||
|
||||
struct PokemonSpecialAnim * sub_811D080(void)
|
||||
{
|
||||
return (void *)GetWordTaskArg(gUnknown_203B094, 0);
|
||||
}
|
||||
|
||||
struct Pokemon * sub_811D094(void)
|
||||
{
|
||||
gUnknown_203B098 = sub_811D080();
|
||||
return &gUnknown_203B098->pokemon;
|
||||
}
|
||||
|
||||
u8 *sub_811D0A8(void)
|
||||
{
|
||||
return sub_811D080()->field_00a8;
|
||||
}
|
||||
|
||||
u16 sub_811D0B4(void)
|
||||
{
|
||||
return sub_811D080()->itemId;
|
||||
}
|
||||
|
||||
u8 *sub_811D0C4(void)
|
||||
{
|
||||
return sub_811D080()->nameOfMoveForgotten;
|
||||
}
|
||||
|
||||
u8 *sub_811D0D0(void)
|
||||
{
|
||||
return sub_811D080()->nameOfMoveToTeach;
|
||||
}
|
||||
|
||||
u8 *sub_811D0DC(u8 *dest)
|
||||
{
|
||||
return StringCopy(dest, sub_811D080()->nickname);
|
||||
}
|
||||
|
||||
u8 *sub_811D0F4(void)
|
||||
{
|
||||
return sub_811D080()->nickname;
|
||||
}
|
||||
|
||||
u8 sub_811D100(void)
|
||||
{
|
||||
return sub_811D080()->animType;
|
||||
}
|
||||
|
||||
u16 sub_811D110(void)
|
||||
{
|
||||
return sub_811D080()->species;
|
||||
}
|
||||
|
||||
u32 sub_811D120(void)
|
||||
{
|
||||
return sub_811D080()->personality;
|
||||
}
|
||||
|
||||
void BufferMonStatsToTaskData(struct Pokemon * pokemon, u16 *data)
|
||||
{
|
||||
data[0] = GetMonData(pokemon, MON_DATA_MAX_HP);
|
||||
data[1] = GetMonData(pokemon, MON_DATA_ATK);
|
||||
data[2] = GetMonData(pokemon, MON_DATA_DEF);
|
||||
data[3] = GetMonData(pokemon, MON_DATA_SPEED);
|
||||
data[4] = GetMonData(pokemon, MON_DATA_SPATK);
|
||||
data[5] = GetMonData(pokemon, MON_DATA_SPDEF);
|
||||
}
|
||||
|
||||
bool32 sub_811D178(void)
|
||||
{
|
||||
return gUnknown_203B090;
|
||||
}
|
||||
|
||||
+1
-11
@@ -261,18 +261,8 @@ gPlayerAvatar: @ 2037078
|
||||
.include "src/rfu_union_tool.o"
|
||||
.align 2
|
||||
.include "src/union_room_battle.o"
|
||||
|
||||
.align 2
|
||||
@ .include "src/pokemon_special_anim.o"
|
||||
gUnknown_203B090: @ 203B090
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B094: @ 203B094
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B098: @ 203B098
|
||||
.space 0x4
|
||||
|
||||
.include "src/pokemon_special_anim.o"
|
||||
.align 2
|
||||
.include "src/party_menu.o"
|
||||
.align 2
|
||||
|
||||
Reference in New Issue
Block a user