mirror of https://github.com/zeldaret/tmc.git
Fix some gibdo nonmatching
This commit is contained in:
parent
7c082fc55a
commit
a4a05e5902
|
|
@ -1,57 +0,0 @@
|
|||
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080379EC
|
||||
cmp r0, #0
|
||||
bne _0803773A
|
||||
bl ResetPlayer
|
||||
ldr r2, _08037724 @ =gPlayerState
|
||||
ldrb r1, [r2, #0x1a]
|
||||
movs r0, #0x80
|
||||
orrs r1, r0
|
||||
strb r1, [r2, #0x1a]
|
||||
ldrb r1, [r2, #0xa]
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0xa]
|
||||
ldr r0, _08037728 @ =gPlayerEntity
|
||||
adds r1, r4, #0
|
||||
bl CopyPositionAndSpriteOffset
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x5a
|
||||
ldrb r1, [r2]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0803773A
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7c
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0803772C
|
||||
adds r0, r4, #0
|
||||
bl sub_08037A58
|
||||
b _0803773A
|
||||
.align 2, 0
|
||||
_08037724: .4byte gPlayerState
|
||||
_08037728: .4byte gPlayerEntity
|
||||
_0803772C:
|
||||
ldrb r0, [r2]
|
||||
movs r1, #1
|
||||
eors r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl sub_08037B10
|
||||
_0803773A:
|
||||
pop {r4, pc}
|
||||
|
||||
.syntax divided
|
||||
|
|
@ -1,106 +0,0 @@
|
|||
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x2a
|
||||
movs r1, #3
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0
|
||||
beq _08037B88
|
||||
ldrb r0, [r4, #0xe]
|
||||
movs r2, #0
|
||||
strb r0, [r3, #0xb]
|
||||
movs r0, #0x29
|
||||
adds r0, r0, r3
|
||||
mov ip, r0
|
||||
ldrb r1, [r0]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
mov r1, ip
|
||||
strb r0, [r1]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x62
|
||||
strb r2, [r0]
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x63
|
||||
movs r0, #0xfc
|
||||
strb r0, [r1]
|
||||
str r4, [r3, #0x50]
|
||||
_08037B88:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
str r3, [r0]
|
||||
movs r0, #0x2a
|
||||
movs r1, #3
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0
|
||||
beq _08037BCA
|
||||
ldrb r0, [r4, #0xe]
|
||||
strb r0, [r3, #0xb]
|
||||
movs r0, #0x29
|
||||
adds r0, r0, r3
|
||||
mov ip, r0
|
||||
ldrb r1, [r0]
|
||||
movs r2, #8
|
||||
rsbs r2, r2, #0
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
mov r1, ip
|
||||
strb r0, [r1]
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x62
|
||||
movs r0, #0xfd
|
||||
strb r0, [r1]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x63
|
||||
strb r2, [r0]
|
||||
str r4, [r3, #0x50]
|
||||
_08037BCA:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x84
|
||||
str r3, [r0]
|
||||
movs r0, #0x2a
|
||||
movs r1, #3
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0
|
||||
beq _08037C06
|
||||
ldrb r0, [r4, #0xe]
|
||||
strb r0, [r3, #0xb]
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x62
|
||||
movs r0, #5
|
||||
strb r0, [r1]
|
||||
adds r1, #1
|
||||
movs r0, #0xf5
|
||||
strb r0, [r1]
|
||||
str r4, [r3, #0x50]
|
||||
_08037C06:
|
||||
str r3, [r4, #0x54]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
.syntax divided
|
||||
|
|
@ -163,8 +163,8 @@ void sub_08037690(Entity* this) {
|
|||
}
|
||||
}
|
||||
}
|
||||
// Non-matching
|
||||
NONMATCH("asm/non_matching/gibdo/sub_080376D0.inc", void sub_080376D0(Entity* this)) {
|
||||
|
||||
void sub_080376D0(Entity* this) {
|
||||
u8* x;
|
||||
if (sub_080379EC(this) == 0) {
|
||||
ResetPlayer();
|
||||
|
|
@ -172,18 +172,16 @@ NONMATCH("asm/non_matching/gibdo/sub_080376D0.inc", void sub_080376D0(Entity* th
|
|||
gPlayerState.field_0xa = gPlayerState.field_0xa | 0x80;
|
||||
CopyPositionAndSpriteOffset(&gPlayerEntity, this);
|
||||
UpdateAnimationSingleFrame(this);
|
||||
x = &this->frame;
|
||||
if ((*x & 0x1) != 0) {
|
||||
if (!(--this->field_0x7c.BYTES.byte0)) {
|
||||
if ((this->frame & 0x1) != 0) {
|
||||
if (--this->field_0x7c.BYTES.byte0 == 0) {
|
||||
sub_08037A58(this);
|
||||
} else {
|
||||
this->frame ^= 1;
|
||||
sub_08037B10(this);
|
||||
}
|
||||
} else {
|
||||
*x = *x ^ 1;
|
||||
sub_08037B10(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
void sub_0803773C(Entity* this) {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
|
|
@ -373,12 +371,12 @@ void sub_08037B10(Entity* this) {
|
|||
this->field_0x76.HALF.LO = 0xf0;
|
||||
}
|
||||
}
|
||||
NONMATCH("asm/non_matching/gibdo/sub_08037B48.inc", void sub_08037B48(Entity* this)) {
|
||||
void sub_08037B48(Entity* this) {
|
||||
Entity* E;
|
||||
E = CreateObject(OBJECT_2A, 3, 0);
|
||||
if (E != 0) {
|
||||
E->type2 = this->actionDelay;
|
||||
E->spritePriority.b0 = (E->spritePriority.b0 & 0xf8) | 3;
|
||||
E->spritePriority.b0 = 3;
|
||||
E->spriteOffsetX = 0;
|
||||
E->spriteOffsetY = 0xfc;
|
||||
E->parent = this;
|
||||
|
|
@ -387,7 +385,7 @@ NONMATCH("asm/non_matching/gibdo/sub_08037B48.inc", void sub_08037B48(Entity* th
|
|||
E = CreateObject(OBJECT_2A, 3, 0);
|
||||
if (E != 0) {
|
||||
E->type2 = this->actionDelay;
|
||||
E->spritePriority.b0 = (E->spritePriority.b0 & 0xf8) | 3;
|
||||
E->spritePriority.b0 = 3;
|
||||
E->spriteOffsetX = 0xfd;
|
||||
E->spriteOffsetY = 0xf8;
|
||||
E->parent = this;
|
||||
|
|
@ -396,14 +394,13 @@ NONMATCH("asm/non_matching/gibdo/sub_08037B48.inc", void sub_08037B48(Entity* th
|
|||
E = CreateObject(OBJECT_2A, 3, 0);
|
||||
if (E != 0) {
|
||||
E->type2 = this->actionDelay;
|
||||
E->spritePriority.b0 = (E->spritePriority.b0 & 0xf8) | 3;
|
||||
E->spritePriority.b0 = 3;
|
||||
E->spriteOffsetX = 0x5;
|
||||
E->spriteOffsetY = 0xf5;
|
||||
E->parent = this;
|
||||
}
|
||||
this->child = E;
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
NONMATCH("asm/non_matching/gibdo/sub_08037C0C.inc", void sub_08037C0C(Entity* this, Entity* that)) {
|
||||
if (this->field_0x80.HWORD != 0) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue