diff options
| author | 21aslade <andrewmslade@gmail.com> | 2020-06-15 16:23:10 -0600 |
|---|---|---|
| committer | 21aslade <andrewmslade@gmail.com> | 2020-06-15 16:23:10 -0600 |
| commit | 06f2cd289d3b00b47d15d8f3c596024bd136a952 (patch) | |
| tree | 38b369f54723f70d511d0b5da80ae614a61ede7e /src | |
| parent | a54ec31a5664728b6a5d65f713809d86ccaf7fbc (diff) | |
Two functions in townMinish.c OK
Also created npc.h and format.sh'd various files.
A third function is outlined in townMinish.c, but currently
non-matching.
Diffstat (limited to 'src')
| -rw-r--r-- | src/enemy.c | 2 | ||||
| -rw-r--r-- | src/object1C.c | 2 | ||||
| -rw-r--r-- | src/object1D.c | 2 | ||||
| -rw-r--r-- | src/objectA8.c | 2 | ||||
| -rw-r--r-- | src/smallPesto.c | 2 | ||||
| -rw-r--r-- | src/townMinish.c | 84 |
6 files changed, 89 insertions, 5 deletions
diff --git a/src/enemy.c b/src/enemy.c index a1179c95..e2f621ae 100644 --- a/src/enemy.c +++ b/src/enemy.c @@ -108,4 +108,4 @@ void (*const gEnemyFunctions[])(Entity* ent) = { TreeItem, Enemy66 }; -// clang-format on
\ No newline at end of file +// clang-format on diff --git a/src/object1C.c b/src/object1C.c index 333420b6..a72ec3b2 100644 --- a/src/object1C.c +++ b/src/object1C.c @@ -16,4 +16,4 @@ void Object1C(Entity *this) this->parent->field_0x20 &= ~(1 << this->entityType.parameter2); DeleteThisEntity(); } -}
\ No newline at end of file +} diff --git a/src/object1D.c b/src/object1D.c index a31c355a..e7294703 100644 --- a/src/object1D.c +++ b/src/object1D.c @@ -15,4 +15,4 @@ void sub_080874F8(Entity* this) DeleteThisEntity(); } -void nullsub_117(){}
\ No newline at end of file +void nullsub_117(){} diff --git a/src/objectA8.c b/src/objectA8.c index b1fdc6a7..9cdcd5c0 100644 --- a/src/objectA8.c +++ b/src/objectA8.c @@ -33,4 +33,4 @@ void ObjectA8(Entity *this) } gUnk_08124824[this->action](this); sub_08080CB4(this); -}
\ No newline at end of file +} diff --git a/src/smallPesto.c b/src/smallPesto.c index 0fe534a2..1dde39d2 100644 --- a/src/smallPesto.c +++ b/src/smallPesto.c @@ -66,4 +66,4 @@ void sub_08031704(Entity *this) { sub_0804A720(this); sub_080317F8(this); -}
\ No newline at end of file +} diff --git a/src/townMinish.c b/src/townMinish.c new file mode 100644 index 00000000..14a87904 --- /dev/null +++ b/src/townMinish.c @@ -0,0 +1,84 @@ +#include "global.h" +#include "entity.h" +#include "npc.h" + +extern void InitializeAnimation(Entity *, u32); + +extern void sub_0806ED78(Entity *); + +extern void (*gUnk_081126E8[])(); +extern void sub_0806ACC4(Entity *); + +extern u32 sub_0806FDEC(Entity *, SpriteLoadThing *); +extern SpriteLoadThing gUnk_08112674[]; + +void sub_0806ABC8(Entity *this) +{ + if ((this->flags & 2) == 0) { + (*gUnk_081126E8[this->action])(this); + sub_0806ED78(this); + } + else { + sub_0806ACC4(this); + } +} + +void sub_0806ABFC(Entity *this) +{ + u8 animationState; + + SpriteLoadThing* spriteLoadThing = &gUnk_08112674[this->entityType.parameter1 << 2]; + if (!sub_0806FDEC(this, spriteLoadThing)) + { + return; + } + + InitializeAnimation(this, 2); + this->action = 1; + this->field_0x6a.HALF.LO = this->parameter3; + + this->animationState = this->field_0x6a.HALF.LO << 1; + animationState = this->animationState; + this->field_0x69 = animationState << 2; + + this->parameter3 = 0; +} + +// Not matching yet, not 100% sure it's functionally identical +/*void sub_0806AC3C(Entity *this) { + if (this->field_0x58 <= 3) { + s32 unk; + u8 field_0x69; + + Entity *link = &gLinkEntity; + if (sub_080041A0(this, link, 0x18, 0x18)) { + unk = sub_080045C4(this, link) & (u8)0x1e; + } + else { + unk = this->animationState << 2; + } + + field_0x69 = this->field_0x69; + + if (unk != field_0x69) { + s32 temp; + + if (((unk - field_0x69) & 0x1f) <= 0xf) { + field_0x69--; + } + else { + field_0x69++; + } + + temp = field_0x69; + this->field_0x69 = temp & 0x1f; + } + + if (!(this->field_0x69 & 7)) { + this->animationState = sub_0806F5B0(this->field_0x69); + UpdateSprite(this, (this->animationState >> 1) ^ 2); + } + } + + sub_080042B8(this); +}*/ |
