Merge pull request #287 from nonmatch/patch-23

Match sub_0803A188
This commit is contained in:
notyourav 2022-01-11 19:56:16 -08:00 committed by GitHub
commit 3ba9461b08
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 118 deletions

View File

@ -1,105 +0,0 @@
.syntax unified
push {r4, r5, lr}
adds r4, r0, #0
ldrb r3, [r4, #0xa]
cmp r3, #1
bhi _0803A23E
ldrb r0, [r4, #0xc]
cmp r0, #0x2b
beq _0803A210
adds r0, r4, #0
adds r0, #0x3d
movs r1, #0
ldrsb r1, [r0, r1]
adds r5, r0, #0
cmp r1, #0
ble _0803A23E
adds r0, #4
ldrb r0, [r0]
cmp r0, #0x95
beq _0803A1B2
cmp r0, #0x8e
bne _0803A23E
_0803A1B2:
movs r0, #0x28
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldr r2, [r4, #0x50]
adds r0, r2, #0
adds r0, #0x7d
ldrb r1, [r0]
cmp r3, #0
bne _0803A1CE
movs r0, #1
b _0803A1D0
_0803A1CE:
movs r0, #2
_0803A1D0:
orrs r1, r0
adds r0, r2, #0
adds r0, #0x7d
strb r1, [r0]
adds r0, #3
ldrb r2, [r0]
ldrb r1, [r4, #0xa]
adds r3, r0, #0
cmp r1, #0
bne _0803A1E8
movs r0, #1
b _0803A1EA
_0803A1E8:
movs r0, #2
_0803A1EA:
orrs r0, r2
strb r0, [r3]
ldr r2, [r4, #0x54]
ldrb r1, [r5]
adds r0, r2, #0
adds r0, #0x3d
strb r1, [r0]
ldr r2, [r4, #0x74]
ldrb r1, [r5]
adds r0, r2, #0
adds r0, #0x3d
strb r1, [r0]
ldr r0, _0803A20C @ =0x00000127
bl SoundReq
b _0803A23E
.align 2, 0
_0803A20C: .4byte 0x00000127
_0803A210:
ldr r2, [r4, #0x54]
adds r3, r4, #0
adds r3, #0x3d
ldrb r1, [r3]
adds r0, r2, #0
adds r0, #0x3d
strb r1, [r0]
ldr r2, [r4, #0x74]
ldrb r1, [r3]
adds r0, r2, #0
adds r0, #0x3d
strb r1, [r0]
adds r0, r4, #0
movs r1, #0x18
bl InitializeAnimation
ldr r0, [r4, #0x54]
movs r1, #9
bl InitAnimationForceUpdate
ldr r0, _0803A248 @ =0x00000127
bl SoundReq
_0803A23E:
ldr r1, _0803A24C @ =gUnk_080CFC14
adds r0, r4, #0
bl sub_0804AA30
pop {r4, r5, pc}
.align 2, 0
_0803A248: .4byte 0x00000127
_0803A24C: .4byte gUnk_080CFC14
.syntax divided

View File

@ -137,27 +137,28 @@ void sub_0803A170(Entity* this) {
gUnk_080CFC2C[this->type](this);
}
NONMATCH("asm/non_matching/mazaal/sub_0803A188.inc", void sub_0803A188(Entity* this)) {
Entity* pEVar3;
Entity* entity74;
void sub_0803A188(Entity* this) {
Entity* ent;
if (this->type < 2) {
if (this->action != 0x2b) {
if ((0 < this->iframes) && ((this->bitfield == 0x95 || (this->bitfield == 0x8e)))) {
this->action = 0x28;
COLLISION_OFF(this);
pEVar3 = this->parent;
pEVar3->field_0x7c.BYTES.byte1 = pEVar3->field_0x7c.BYTES.byte1 | (this->type == 0 ? 1 : 2);
pEVar3->field_0x80.HALF.LO = (this->type == 0 ? 1 : 2) | pEVar3->field_0x80.HALF.LO;
this->child->iframes = this->iframes;
entity74 = *(Entity**)&this->field_0x74;
entity74->iframes = this->iframes;
ent = this->parent;
ent->field_0x7c.BYTES.byte1 = ent->field_0x7c.BYTES.byte1 | (this->type == 0 ? 1 : 2);
ent->field_0x80.HALF.LO = (this->type == 0 ? 1 : 2) | ent->field_0x80.HALF.LO;
ent = this->child;
ent->iframes = this->iframes;
ent = (*(Entity**)&this->field_0x74);
ent->iframes = this->iframes;
SoundReq(SFX_BOSS_HIT);
}
} else {
this->child->iframes = this->iframes;
entity74 = *(Entity**)&this->field_0x74;
entity74->iframes = this->iframes;
ent = this->child;
ent->iframes = this->iframes;
ent = (*(Entity**)&this->field_0x74);
ent->iframes = this->iframes;
InitializeAnimation(this, 0x18);
InitAnimationForceUpdate(this->child, 9);
SoundReq(SFX_BOSS_HIT);
@ -165,7 +166,6 @@ NONMATCH("asm/non_matching/mazaal/sub_0803A188.inc", void sub_0803A188(Entity* t
}
sub_0804AA30(this, gUnk_080CFC14);
}
END_NONMATCH
void nullsub_167(Entity* this) {
}