summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTal Hayon <talhayon1@gmail.com>2022-08-26 20:54:54 +0300
committerTal Hayon <talhayon1@gmail.com>2022-08-26 20:54:54 +0300
commit2d5ceeacd487f8966d861ce036d323a03c0a7321 (patch)
tree19816000062cadc5d675aa165c1fd986bbc09914 /src
parent487277e786a5ff3aae916d2cafde97352d324d90 (diff)
Match sub_08043B08
Diffstat (limited to 'src')
-rw-r--r--src/enemy/vaatiArm.c41
1 files changed, 39 insertions, 2 deletions
diff --git a/src/enemy/vaatiArm.c b/src/enemy/vaatiArm.c
index 40008e77..1e78d133 100644
--- a/src/enemy/vaatiArm.c
+++ b/src/enemy/vaatiArm.c
@@ -1201,9 +1201,46 @@ static void sub_08043ABC(Entity* this) {
((VaatiArm_HeapStruct*)this->myHeap)->entities[0]->spriteOffsetY--;
}
-static ASM_FUNC("asm/non_matching/vaati/sub_08043B08.inc", void sub_08043B08(Entity* this))
+void sub_08043B08(Entity* this) {
+ VaatiArm_HeapStruct1* hs1;
+ VaatiArm_HeapStruct1* hs2;
+ u32 bVar1;
+ s32 uVar6;
+
+ hs1 = &((VaatiArm_HeapStruct*)this->myHeap)->s1[this->type - 1];
+ hs2 = &((VaatiArm_HeapStruct*)this->myHeap)->s1[this->type];
+ bVar1 = gUnk_080D13B2[this->type];
+ if (((VaatiArm_HeapStruct*)this->myHeap)->entities[0]->type2 == 0) {
+ uVar6 = (s8)((hs1->unk00.HALF.HI - hs2->unk00.HALF.HI));
+ if (bVar1 < uVar6) {
+ if (uVar6 <= 0) {
+ hs2->unk00.HALF.HI = hs1->unk00.HALF.HI;
+ } else {
+ hs2->unk00.HALF.HI = hs1->unk00.HALF.HI - bVar1;
+ }
+ }
+ } else {
+ uVar6 = (s8)(hs2->unk00.HALF.HI - hs1->unk00.HALF.HI);
+ if (bVar1 < uVar6) {
+ if (uVar6 < 0) {
+ hs2->unk00.HALF.HI = hs1->unk00.HALF.HI;
+ } else {
+ hs2->unk00.HALF.HI = hs1->unk00.HALF.HI + bVar1;
+ }
+ }
+ }
+
+ uVar6 = hs1->unk04.HALF.HI - hs2->unk04.HALF.HI;
+ if ((bVar1 << 1) < uVar6 + bVar1) {
+ if (uVar6 > 0) {
+ hs2->unk04.HALF.HI = hs1->unk04.HALF.HI - bVar1;
+ } else {
+ hs2->unk04.HALF.HI = hs1->unk04.HALF.HI + bVar1;
+ }
+ }
+}
- static void sub_08043B7C(Entity* this) {
+static void sub_08043B7C(Entity* this) {
sub_08043B08(((VaatiArm_HeapStruct*)this->myHeap)->entities[1]);
sub_08043B08(((VaatiArm_HeapStruct*)this->myHeap)->entities[2]);
sub_08043B08(((VaatiArm_HeapStruct*)this->myHeap)->entities[3]);