diff options
author | Thomas Winwood <twwinwood@gmail.com> | 2018-06-17 22:42:19 +0100 |
---|---|---|
committer | Thomas Winwood <twwinwood@gmail.com> | 2018-06-17 22:44:52 +0100 |
commit | 1ebc745b7fc598feb758dbe5b32d5716a474fa37 (patch) | |
tree | 07b570bea64bdc524f26803097d67269575edb6a | |
parent | 544b5b61d42e355ef44c65dc84e53d5f73d7c0e1 (diff) |
Decompile sub_80DDB6C
-rw-r--r-- | asm/ghost.s | 50 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/ghost.c | 21 |
3 files changed, 22 insertions, 50 deletions
diff --git a/asm/ghost.s b/asm/ghost.s index 59671ec7f..55f803a42 100644 --- a/asm/ghost.s +++ b/asm/ghost.s @@ -7,56 +7,6 @@ @ ghost - thumb_func_start sub_80DDB6C -sub_80DDB6C: @ 80DDB6C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl InitAnimSpritePos - ldr r0, _080DDBC8 @ =gBattleAnimArgs - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080DDBCC @ =gAnimBankTarget - ldrb r0, [r5] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_8078BD4 - ldr r0, _080DDBD0 @ =sub_80DDBD8 - str r0, [r4, 0x1C] - movs r0, 0x10 - strh r0, [r4, 0x3A] - ldr r1, _080DDBD4 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x3A] - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DDBC8: .4byte gBattleAnimArgs -_080DDBCC: .4byte gAnimBankTarget -_080DDBD0: .4byte sub_80DDBD8 -_080DDBD4: .4byte REG_BLDCNT - thumb_func_end sub_80DDB6C - thumb_func_start sub_80DDBD8 sub_80DDBD8: @ 80DDBD8 push {r4,lr} diff --git a/ld_script.txt b/ld_script.txt index dbecbe3f1..be3885add 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -289,6 +289,7 @@ SECTIONS { src/battle/anim/bug.o(.text); src/battle/anim/rock.o(.text); src/battle/anim/ghost.o(.text); + src/ghost.o(.text); asm/ghost.o(.text); src/battle/anim/dragon.o(.text); src/battle/anim/dark.o(.text); diff --git a/src/ghost.c b/src/ghost.c new file mode 100644 index 000000000..07a9061c6 --- /dev/null +++ b/src/ghost.c @@ -0,0 +1,21 @@ +#include "global.h" +#include "rom_8077ABC.h" + +extern s16 gBattleAnimArgs[]; +extern u8 gAnimBankTarget; + +void sub_80DDBD8(struct Sprite *); + +void sub_80DDB6C(struct Sprite *sprite) { + InitAnimSpritePos(sprite, 1); + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); + sub_8078BD4(sprite); + sprite->callback = sub_80DDBD8; + sprite->data[6] = 0x10; + REG_BLDCNT = 0x3F40; + REG_BLDALPHA = sprite->data[6]; +}
\ No newline at end of file |