Match sub_0802D33C

This commit is contained in:
Tal Hayon 2022-07-25 19:38:22 +03:00
parent 28aa812484
commit c0014dbcf6
2 changed files with 11 additions and 63 deletions

View File

@ -1,45 +0,0 @@
.syntax unified
push {r4, r5, r6, r7, lr}
adds r0, #0x84
ldr r6, [r0]
movs r4, #0
adds r7, r6, #0
adds r7, #0x3c
adds r5, r7, #0
_0802D34A:
ldm r5!, {r0}
bl DeleteEntity
adds r4, #1
cmp r4, #3
bls _0802D34A
lsls r1, r4, #2
adds r1, r7, r1
ldr r0, [r1]
adds r0, #0x45
movs r3, #0
strb r3, [r0]
ldr r1, [r1]
adds r1, #0x6d
ldrb r2, [r1]
movs r0, #1
orrs r0, r2
strb r0, [r1]
ldr r0, [r6, #0x50]
adds r0, #0x45
strb r3, [r0]
ldr r0, [r6, #0x50]
strb r3, [r0, #0xb]
ldr r3, [r6, #0x50]
ldrb r2, [r3, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #2
rsbs r0, r0, #0
ands r1, r0
subs r0, #2
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x18]
bl DeleteThisEntity
pop {r4, r5, r6, r7, pc}
.syntax divided

View File

@ -223,28 +223,21 @@ void sub_0802D258(GleerokEntity* this) {
sub_0802E768(this->unk_84);
}
NONMATCH("asm/non_matching/gleerok/sub_0802D33C.inc", void sub_0802D33C(GleerokEntity* this)) {
u8* unk_84 = (u8*)this->unk_84;
u8* ptr = unk_84;
u8* ptr2;
u32 i = 0;
ptr += 0x3c;
ptr2 = ptr;
void sub_0802D33C(GleerokEntity* this) {
Gleerok_HeapStruct* unk_84 = this->unk_84;
u32 i;
do {
DeleteEntity(*(Entity**)ptr);
ptr += 4;
} while (i < 4);
for (i = 0; i < 4; i++) {
DeleteEntity(unk_84->entities[i]);
}
ptr2 += (i << 2);
*(u32*)((*(u8**)ptr2) + 0x45) = 0;
*((*(u8**)ptr2) + 0x6d) |= 1;
((Entity*)(*(u8**)(unk_84 + 0x50)))->health = 0;
((Entity*)(*(u8**)(unk_84 + 0x50)))->type2 = 0;
((Entity*)(*(u8**)(unk_84 + 0x50)))->spriteSettings.draw &= ~1;
unk_84->entities[i]->health = 0;
((GenericEntity*)unk_84->entities[i])->field_0x6c.HALF.HI |= 1;
unk_84->ent2->health = 0;
unk_84->ent2->type2 = 0;
unk_84->ent2->spriteSettings.draw &= ~1;
DeleteThisEntity();
}
END_NONMATCH
void Gleerok_OnTick(GleerokEntity* this) {
gUnk_080CD7B8[super->action](this);