summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author21aslade <andrewmslade@gmail.com>2020-06-15 16:23:10 -0600
committer21aslade <andrewmslade@gmail.com>2020-06-15 16:23:10 -0600
commit06f2cd289d3b00b47d15d8f3c596024bd136a952 (patch)
tree38b369f54723f70d511d0b5da80ae614a61ede7e /src
parenta54ec31a5664728b6a5d65f713809d86ccaf7fbc (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.c2
-rw-r--r--src/object1C.c2
-rw-r--r--src/object1D.c2
-rw-r--r--src/objectA8.c2
-rw-r--r--src/smallPesto.c2
-rw-r--r--src/townMinish.c84
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);
+}*/