diff options
| author | theo3 <arisstephenson2@gmail.com> | 2020-07-14 22:38:38 -0700 |
|---|---|---|
| committer | theo3 <arisstephenson2@gmail.com> | 2020-07-14 22:38:38 -0700 |
| commit | 24f95d6313e4fd762e688cb1ab3a8cfb757da9e1 (patch) | |
| tree | 2a5afea9ee15ac6b46b01cb30268c71dbd457562 /src/object | |
| parent | 882aef9fdcf3b9688285a7a574cb691193e15abe (diff) | |
objectAF.c OK
Diffstat (limited to 'src/object')
| -rw-r--r-- | src/object/objectAF.c | 56 |
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 |
