summaryrefslogtreecommitdiff
path: root/src/object
diff options
context:
space:
mode:
authortheo3 <arisstephenson2@gmail.com>2020-07-14 22:38:38 -0700
committertheo3 <arisstephenson2@gmail.com>2020-07-14 22:38:38 -0700
commit24f95d6313e4fd762e688cb1ab3a8cfb757da9e1 (patch)
tree2a5afea9ee15ac6b46b01cb30268c71dbd457562 /src/object
parent882aef9fdcf3b9688285a7a574cb691193e15abe (diff)
objectAF.c OK
Diffstat (limited to 'src/object')
-rw-r--r--src/object/objectAF.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/object/objectAF.c b/src/object/objectAF.c
new file mode 100644
index 00000000..0415398b
--- /dev/null
+++ b/src/object/objectAF.c
@@ -0,0 +1,56 @@
+#include "global.h"
+#include "entity.h"
+
+extern void sub_080A0640(Entity*);
+extern void PositionRelative(Entity*, Entity*, s32, s32);
+extern void CopyPosition(Entity*, Entity*);
+
+extern void (*const gUnk_081248C4[])(Entity*);
+
+void ObjectAF(Entity* this) {
+ gUnk_081248C4[this->action](this);
+}
+
+void sub_080A05A4(Entity* this) {
+ if ((this->entityType).form != 2) {
+ this->action = 1;
+ this->spritePriority.b0 = 6;
+ sub_080A0640(this);
+ InitializeAnimation(this, 1);
+ } else {
+ this->action = 2;
+ this->y.HALF.HI++;
+ this->height.HALF.HI = 0;
+ this->spriteOffsetY--;
+ InitializeAnimation(this, 3);
+ }
+}
+
+void sub_080A05F4(Entity* this) {
+ if (this->parent == NULL) {
+ this->action = 2;
+ InitializeAnimation(this, 2);
+ } else {
+ if (this->parent->field_0x4 == NULL) {
+ DeleteThisEntity();
+ }
+ sub_080A0640(this);
+ GetNextFrame(this);
+ }
+}
+
+void sub_080A0624(Entity* this) {
+ GetNextFrame(this);
+ if ((this->frames.b.f3) != 0) {
+ DeleteThisEntity();
+ }
+}
+
+void sub_080A0640(Entity* this) {
+ if (this->entityType.form == 0) {
+ PositionRelative(*(Entity**)(this->parent->otherEntity + 0x4), this, 0, 0x80000);
+ } else {
+ CopyPosition(this->parent, this);
+ }
+ this->height.HALF.HI = 0;
+} \ No newline at end of file