summaryrefslogtreecommitdiff
path: root/src/ghost.c
diff options
context:
space:
mode:
authorThomas Winwood <twwinwood@gmail.com>2018-06-18 00:49:11 +0100
committerThomas Winwood <twwinwood@gmail.com>2018-06-18 00:49:11 +0100
commitba16882b301fa964207257648b2522bec6458341 (patch)
treef1ea3a842a1272a469ad3cd5830333be3d24b529 /src/ghost.c
parent1ebc745b7fc598feb758dbe5b32d5716a474fa37 (diff)
Decompile sub_80DDBD8
Diffstat (limited to 'src/ghost.c')
-rw-r--r--src/ghost.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/ghost.c b/src/ghost.c
index 07a9061c6..6c3f11f61 100644
--- a/src/ghost.c
+++ b/src/ghost.c
@@ -1,10 +1,15 @@
#include "global.h"
#include "rom_8077ABC.h"
+#include "sound.h"
+#include "trig.h"
extern s16 gBattleAnimArgs[];
extern u8 gAnimBankTarget;
+extern u8 gUnknown_0202F7D2;
void sub_80DDBD8(struct Sprite *);
+void sub_80DDC4C(struct Sprite *);
+void sub_80DDCC8(struct Sprite *);
void sub_80DDB6C(struct Sprite *sprite) {
InitAnimSpritePos(sprite, 1);
@@ -18,4 +23,26 @@ void sub_80DDB6C(struct Sprite *sprite) {
sprite->data[6] = 0x10;
REG_BLDCNT = 0x3F40;
REG_BLDALPHA = sprite->data[6];
+}
+
+void sub_80DDBD8(struct Sprite *sprite) {
+ s16 r0;
+ s16 r2;
+ sub_80DDCC8(sprite);
+ if (TranslateAnimSpriteByDeltas(sprite)) {
+ sprite->callback = sub_80DDC4C;
+ return;
+ }
+ sprite->pos2.x += Sin(sprite->data[5], 10);
+ sprite->pos2.y += Cos(sprite->data[5], 15);
+ r2 = sprite->data[5];
+ sprite->data[5] = (sprite->data[5] + 5) & 0xFF;
+ r0 = sprite->data[5];
+ if (r2 != 0) {
+ if (r2 <= 0xC4)
+ return;
+ }
+ if (r0 <= 0)
+ return;
+ PlaySE12WithPanning(0xC4, gUnknown_0202F7D2);
} \ No newline at end of file