summaryrefslogtreecommitdiff
path: root/src/intro.c
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2017-01-05 17:53:06 -0600
committercamthesaxman <cameronghall@cox.net>2017-01-05 17:53:06 -0600
commit9dc9c657b489ae4d5b983ea0cbd12a8e77803dbf (patch)
treeea9b1fb8597ccb97f58700a01cbb5ec2ef868b8e /src/intro.c
parente7ea49dc389fde77b9f515c4fc3bebc3fa37b1d1 (diff)
decompile up to sub_813D908
Diffstat (limited to 'src/intro.c')
-rw-r--r--src/intro.c95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/intro.c b/src/intro.c
index 1c695c6b7..cf371c8ee 100644
--- a/src/intro.c
+++ b/src/intro.c
@@ -1350,3 +1350,98 @@ u8 sub_813D584(u16 a, s16 b, u16 c, u16 d, u16 e, u8 f)
return oldSpriteId;
}
+
+void sub_813D788(struct Sprite *sprite)
+{
+ switch (sprite->data0)
+ {
+ case 0:
+ StartSpriteAnimIfDifferent(sprite, 0);
+ sprite->pos1.x--;
+ break;
+ case 1:
+ StartSpriteAnimIfDifferent(sprite, 0);
+ if (gIntroFrameCounter & 7)
+ return;
+ sprite->pos1.x++;
+ break;
+ case 2:
+ StartSpriteAnimIfDifferent(sprite, 2);
+ if (sprite->pos1.x <= 0x78 || (gIntroFrameCounter & 7))
+ sprite->pos1.x++;
+ break;
+ case 3:
+ StartSpriteAnimIfDifferent(sprite, 3);
+ break;
+ case 4:
+ StartSpriteAnimIfDifferent(sprite, 0);
+ if (sprite->pos1.x > -32)
+ sprite->pos1.x -= 2;
+ break;
+ }
+ if (gIntroFrameCounter & 7)
+ return;
+ if (sprite->pos2.y != 0)
+ {
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ switch (Random() & 3)
+ {
+ case 0:
+ sprite->pos2.y = -1;
+ break;
+ case 1:
+ sprite->pos2.y = 1;
+ break;
+ case 2:
+ case 3:
+ sprite->pos2.y = 0;
+ break;
+ }
+ }
+}
+
+void sub_813D880(struct Sprite *sprite)
+{
+ switch (sprite->data0)
+ {
+ case 0:
+ break;
+ case 1:
+ if (sprite->pos2.x + sprite->pos1.x < 0x130)
+ sprite->pos2.x += 8;
+ else
+ sprite->data0 = 2;
+ break;
+ case 2:
+ if (sprite->pos2.x + sprite->pos1.x > 0x78)
+ sprite->pos2.x -= 1;
+ else
+ sprite->data0 = 3;
+ break;
+ case 3:
+ if (sprite->pos2.x > 0)
+ sprite->pos2.x -= 2;
+ break;
+ }
+ sprite->pos2.y = Sin((u8)sprite->data1, 8) - gUnknown_0203935A;
+ sprite->data1 += 4;
+}
+
+void sub_813D908(struct Sprite *sprite)
+{
+ if (gTasks[sprite->data0].data[0] == 0)
+ {
+ sprite->invisible = TRUE;
+ }
+ else if (gTasks[sprite->data0].data[0] != 4)
+ {
+ sprite->invisible = FALSE;
+ }
+ else
+ {
+ DestroySprite(sprite);
+ }
+}