grass anim main function down
This commit is contained in:
+9
-107
@@ -5,106 +5,8 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start TeachyTvGrassAnimationMain
|
thumb_func_start TeachyTvGrassAnimationObjCallback
|
||||||
TeachyTvGrassAnimationMain: @ 815BAA0
|
TeachyTvGrassAnimationObjCallback: @ 815BB6C
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r9
|
|
||||||
mov r6, r8
|
|
||||||
push {r6,r7}
|
|
||||||
ldr r4, [sp, 0x1C]
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
mov r9, r0
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r6, r1, 16
|
|
||||||
lsls r2, 16
|
|
||||||
lsrs r1, r2, 16
|
|
||||||
lsls r3, 24
|
|
||||||
lsrs r7, r3, 24
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
mov r8, r4
|
|
||||||
ldr r0, _0815BB34 @ =gUnknown_203F450
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r2, _0815BB38 @ =0x00004006
|
|
||||||
adds r0, r2
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _0815BB5C
|
|
||||||
lsls r0, r6, 16
|
|
||||||
ldr r2, _0815BB3C @ =0xfff00000
|
|
||||||
adds r0, r2
|
|
||||||
asrs r0, 16
|
|
||||||
lsls r1, 16
|
|
||||||
asrs r5, r1, 16
|
|
||||||
adds r1, r5, 0
|
|
||||||
bl sub_815BC40
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0815BB5C
|
|
||||||
ldr r0, _0815BB40 @ =gUnknown_83A0010
|
|
||||||
ldr r0, [r0, 0x10]
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
adds r3, r7, 0
|
|
||||||
bl CreateSprite
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r1, r0, 4
|
|
||||||
adds r1, r0
|
|
||||||
lsls r1, 2
|
|
||||||
ldr r0, _0815BB44 @ =gSprites
|
|
||||||
adds r4, r1, r0
|
|
||||||
strh r6, [r4, 0x24]
|
|
||||||
adds r0, r5, 0
|
|
||||||
adds r0, 0x8
|
|
||||||
strh r0, [r4, 0x26]
|
|
||||||
ldr r0, _0815BB48 @ =sub_815BB6C
|
|
||||||
str r0, [r4, 0x1C]
|
|
||||||
mov r0, r9
|
|
||||||
strh r0, [r4, 0x2E]
|
|
||||||
mov r2, r8
|
|
||||||
cmp r2, 0x1
|
|
||||||
bne _0815BB4C
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x4
|
|
||||||
bl SeekSpriteAnim
|
|
||||||
ldrb r0, [r4, 0x5]
|
|
||||||
movs r1, 0xD
|
|
||||||
negs r1, r1
|
|
||||||
ands r1, r0
|
|
||||||
movs r0, 0x8
|
|
||||||
orrs r1, r0
|
|
||||||
strb r1, [r4, 0x5]
|
|
||||||
b _0815BB5C
|
|
||||||
.align 2, 0
|
|
||||||
_0815BB34: .4byte gUnknown_203F450
|
|
||||||
_0815BB38: .4byte 0x00004006
|
|
||||||
_0815BB3C: .4byte 0xfff00000
|
|
||||||
_0815BB40: .4byte gUnknown_83A0010
|
|
||||||
_0815BB44: .4byte gSprites
|
|
||||||
_0815BB48: .4byte sub_815BB6C
|
|
||||||
_0815BB4C:
|
|
||||||
ldr r1, _0815BB68 @ =gUnknown_84795B8
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl SetSubspriteTables
|
|
||||||
adds r1, r4, 0
|
|
||||||
adds r1, 0x42
|
|
||||||
movs r0, 0x40
|
|
||||||
strb r0, [r1]
|
|
||||||
_0815BB5C:
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815BB68: .4byte gUnknown_84795B8
|
|
||||||
thumb_func_end TeachyTvGrassAnimationMain
|
|
||||||
|
|
||||||
thumb_func_start sub_815BB6C
|
|
||||||
sub_815BB6C: @ 815BB6C
|
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
adds r3, r0, 0
|
adds r3, r0, 0
|
||||||
movs r0, 0x2E
|
movs r0, 0x2E
|
||||||
@@ -210,10 +112,10 @@ _0815BC3A:
|
|||||||
pop {r4,r5}
|
pop {r4,r5}
|
||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
thumb_func_end sub_815BB6C
|
thumb_func_end TeachyTvGrassAnimationObjCallback
|
||||||
|
|
||||||
thumb_func_start sub_815BC40
|
thumb_func_start TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj
|
||||||
sub_815BC40: @ 815BC40
|
TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj: @ 815BC40
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
lsls r1, 16
|
lsls r1, 16
|
||||||
lsrs r1, 16
|
lsrs r1, 16
|
||||||
@@ -253,7 +155,7 @@ _0815BC80: .4byte gUnknown_84795C8
|
|||||||
_0815BC84: .4byte gUnknown_203F450
|
_0815BC84: .4byte gUnknown_203F450
|
||||||
_0815BC88: .4byte 0x00004005
|
_0815BC88: .4byte 0x00004005
|
||||||
_0815BC8C: .4byte 0x00004004
|
_0815BC8C: .4byte 0x00004004
|
||||||
thumb_func_end sub_815BC40
|
thumb_func_end TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj
|
||||||
|
|
||||||
thumb_func_start TeachyTvPrepBattle
|
thumb_func_start TeachyTvPrepBattle
|
||||||
TeachyTvPrepBattle: @ 815BC90
|
TeachyTvPrepBattle: @ 815BC90
|
||||||
@@ -374,8 +276,8 @@ _0815BD78:
|
|||||||
bx r0
|
bx r0
|
||||||
thumb_func_end sub_815BD58
|
thumb_func_end sub_815BD58
|
||||||
|
|
||||||
thumb_func_start sub_815BD80
|
thumb_func_start TeachyTvLoadBg3Map
|
||||||
sub_815BD80: @ 815BD80
|
TeachyTvLoadBg3Map: @ 815BD80
|
||||||
push {r4-r7,lr}
|
push {r4-r7,lr}
|
||||||
mov r7, r10
|
mov r7, r10
|
||||||
mov r6, r9
|
mov r6, r9
|
||||||
@@ -594,7 +496,7 @@ _0815BF00:
|
|||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0815BF44: .4byte 0xfffffd80
|
_0815BF44: .4byte 0xfffffd80
|
||||||
thumb_func_end sub_815BD80
|
thumb_func_end TeachyTvLoadBg3Map
|
||||||
|
|
||||||
thumb_func_start sub_815BF48
|
thumb_func_start sub_815BF48
|
||||||
sub_815BF48: @ 815BF48
|
sub_815BF48: @ 815BF48
|
||||||
|
|||||||
+43
-2
@@ -55,6 +55,8 @@ extern struct ListMenuItem gUnknown_8479340;
|
|||||||
extern struct WindowTemplate gUnknown_84792F0;
|
extern struct WindowTemplate gUnknown_84792F0;
|
||||||
extern u8 gUnknown_8479590;
|
extern u8 gUnknown_8479590;
|
||||||
extern u8 gUnknown_8479390;
|
extern u8 gUnknown_8479390;
|
||||||
|
extern struct SubspriteTable gUnknown_84795B8;
|
||||||
|
extern struct SpriteTemplate *gUnknown_83A0010;
|
||||||
|
|
||||||
void C2TeachyTv();
|
void C2TeachyTv();
|
||||||
void C2TeachyTvMainCallback();
|
void C2TeachyTvMainCallback();
|
||||||
@@ -81,10 +83,12 @@ void TeachyTvBackToOptionList(u8 taskId);
|
|||||||
void TeachyTvSetupBagItemsByOptionChosen();
|
void TeachyTvSetupBagItemsByOptionChosen();
|
||||||
void TeachyTvPrepBattle(u8 taskId);
|
void TeachyTvPrepBattle(u8 taskId);
|
||||||
void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode);
|
void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode);
|
||||||
|
void TeachyTvLoadBg3Map(void *);
|
||||||
|
u8 TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(s16 x, s16 y);
|
||||||
|
void TeachyTvGrassAnimationObjCallback(struct Sprite *sprite);
|
||||||
|
|
||||||
extern void VblankHblankHandlerSetZero();
|
extern void VblankHblankHandlerSetZero();
|
||||||
extern void sub_812B1E0(u16);
|
extern void sub_812B1E0(u16);
|
||||||
extern void sub_815BD80(void *);
|
|
||||||
extern u8 ListMenuInitInternal(struct ListMenuTemplate *, u16 scrollOffset, u16 selectedRow);
|
extern u8 ListMenuInitInternal(struct ListMenuTemplate *, u16 scrollOffset, u16 selectedRow);
|
||||||
extern void sub_8055DC4();
|
extern void sub_8055DC4();
|
||||||
extern bool16 sub_80BF518(u8 textPrinterId);
|
extern bool16 sub_80BF518(u8 textPrinterId);
|
||||||
@@ -234,7 +238,7 @@ void TeachyTvLoadGraphic()
|
|||||||
LoadCompressedPalette(&gUnknown_8E86F98, 0, 0x80u);
|
LoadCompressedPalette(&gUnknown_8E86F98, 0, 0x80u);
|
||||||
LoadPalette(&src, 0, 2u);
|
LoadPalette(&src, 0, 2u);
|
||||||
LoadSpritePalette((struct SpritePalette *)&gUnknown_83A5348);
|
LoadSpritePalette((struct SpritePalette *)&gUnknown_83A5348);
|
||||||
sub_815BD80((u8 *)gUnknown_203F450 + 0x2004);
|
TeachyTvLoadBg3Map((u8 *)gUnknown_203F450 + 0x2004);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TeachyTvCreateAndRenderRbox()
|
void TeachyTvCreateAndRenderRbox()
|
||||||
@@ -881,3 +885,40 @@ void TeachyTvPostBattleFadeControl(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode)
|
||||||
|
{
|
||||||
|
u8 subprio;
|
||||||
|
int res;
|
||||||
|
struct Sprite *obj;
|
||||||
|
int objId;
|
||||||
|
struct SpriteTemplate **objTemAddr;
|
||||||
|
|
||||||
|
subprio = subpriority;
|
||||||
|
if ( ((u8*)gUnknown_203F450)[0x4006] != 1 )
|
||||||
|
{
|
||||||
|
res = TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(
|
||||||
|
(u32)((x << 16) - 0x100000) >> 16,
|
||||||
|
y);
|
||||||
|
if ( res << 24 )
|
||||||
|
{
|
||||||
|
objTemAddr = &gUnknown_83A0010;
|
||||||
|
objId = CreateSprite(*(objTemAddr+4), 0, 0, subprio);
|
||||||
|
obj = gSprites + objId;
|
||||||
|
obj->pos2.x = x;
|
||||||
|
obj->pos2.y = y + 8;
|
||||||
|
obj->callback = TeachyTvGrassAnimationObjCallback;
|
||||||
|
obj->data[0] = taskId;
|
||||||
|
if ( mode == 1 )
|
||||||
|
{
|
||||||
|
SeekSpriteAnim(obj, 4u);
|
||||||
|
obj->oam.priority = 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetSubspriteTables(obj, &gUnknown_84795B8);
|
||||||
|
obj->subspriteTableNum = 0;
|
||||||
|
obj->subspriteMode = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user