diff options
author | Thomas Winwood <twwinwood@gmail.com> | 2018-06-18 15:13:35 +0100 |
---|---|---|
committer | Thomas Winwood <twwinwood@gmail.com> | 2018-06-18 15:13:35 +0100 |
commit | 3237628ea71fdf645160481e62ed52a5579c3d74 (patch) | |
tree | 10e03197d3e638954b602931feb7e814103ed74a | |
parent | a08baefa117414a69afa7dcff41c740c1ae59715 (diff) |
Decompile sub_80DDDF0
-rw-r--r-- | asm/ghost.s | 67 | ||||
-rw-r--r-- | src/ghost.c | 16 |
2 files changed, 16 insertions, 67 deletions
diff --git a/asm/ghost.s b/asm/ghost.s index 2e1b27cd4..d04599b70 100644 --- a/asm/ghost.s +++ b/asm/ghost.s @@ -7,73 +7,6 @@ @ ghost - thumb_func_start sub_80DDDF0 -sub_80DDDF0: @ 80DDDF0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _080DDE68 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - bl GetAnimBattlerSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078E70 - adds r0, r4, 0 - movs r1, 0x80 - movs r2, 0x80 - movs r3, 0 - bl obj_id_set_rotscale - ldr r1, _080DDE6C @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r1, _080DDE70 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x80 - strh r1, [r0, 0x8] - ldr r1, _080DDE74 @ =gBattleAnimArgs - ldrh r1, [r1] - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - movs r1, 0x10 - strh r1, [r0, 0xE] - ldr r1, _080DDE78 @ =sub_80DDE7C - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DDE68: .4byte REG_BLDCNT -_080DDE6C: .4byte gSprites -_080DDE70: .4byte gTasks -_080DDE74: .4byte gBattleAnimArgs -_080DDE78: .4byte sub_80DDE7C - thumb_func_end sub_80DDDF0 - thumb_func_start sub_80DDE7C sub_80DDE7C: @ 80DDE7C push {lr} diff --git a/src/ghost.c b/src/ghost.c index a78ac7de3..6591ad5af 100644 --- a/src/ghost.c +++ b/src/ghost.c @@ -12,6 +12,7 @@ void sub_80DDBD8(struct Sprite *); void sub_80DDC4C(struct Sprite *); void sub_80DDCC8(struct Sprite *); void sub_80DDD78(struct Sprite *); +void sub_80DDE7C(u8 taskId); void sub_80DDB6C(struct Sprite *sprite) { InitAnimSpritePos(sprite, 1); @@ -135,4 +136,19 @@ void sub_80DDD78(struct Sprite *sprite) { if (sprite->data[7] == 0x3D) { DestroyAnimSprite(sprite); } +} + +void sub_80DDDF0(u8 r5) { + u8 r4; + REG_BLDCNT = 0x3F40; + REG_BLDALPHA = 0x1000; + r4 = GetAnimBattlerSpriteId(0); + sub_8078E70(r4, 1); + obj_id_set_rotscale(r4, 0x80, 0x80, 0); + gSprites[r4].invisible = FALSE; + gTasks[r5].data[0] = 0x80; + gTasks[r5].data[1] = *gBattleAnimArgs; + gTasks[r5].data[2] = 0; + gTasks[r5].data[3] = 0x10; + gTasks[r5].func = &sub_80DDE7C; }
\ No newline at end of file |