diff options
| author | Tal Hayon <talhayon1@gmail.com> | 2022-08-26 20:54:54 +0300 |
|---|---|---|
| committer | Tal Hayon <talhayon1@gmail.com> | 2022-08-26 20:54:54 +0300 |
| commit | 2d5ceeacd487f8966d861ce036d323a03c0a7321 (patch) | |
| tree | 19816000062cadc5d675aa165c1fd986bbc09914 /src | |
| parent | 487277e786a5ff3aae916d2cafde97352d324d90 (diff) | |
Match sub_08043B08
Diffstat (limited to 'src')
| -rw-r--r-- | src/enemy/vaatiArm.c | 41 |
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]); |
