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;
|
u8* x;
|
||||||
if (sub_080379EC(this) == 0) {
|
if (sub_080379EC(this) == 0) {
|
||||||
ResetPlayer();
|
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;
|
gPlayerState.field_0xa = gPlayerState.field_0xa | 0x80;
|
||||||
CopyPositionAndSpriteOffset(&gPlayerEntity, this);
|
CopyPositionAndSpriteOffset(&gPlayerEntity, this);
|
||||||
UpdateAnimationSingleFrame(this);
|
UpdateAnimationSingleFrame(this);
|
||||||
x = &this->frame;
|
if ((this->frame & 0x1) != 0) {
|
||||||
if ((*x & 0x1) != 0) {
|
if (--this->field_0x7c.BYTES.byte0 == 0) {
|
||||||
if (!(--this->field_0x7c.BYTES.byte0)) {
|
|
||||||
sub_08037A58(this);
|
sub_08037A58(this);
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
*x = *x ^ 1;
|
this->frame ^= 1;
|
||||||
sub_08037B10(this);
|
sub_08037B10(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
END_NONMATCH
|
}
|
||||||
|
|
||||||
void sub_0803773C(Entity* this) {
|
void sub_0803773C(Entity* this) {
|
||||||
UpdateAnimationSingleFrame(this);
|
UpdateAnimationSingleFrame(this);
|
||||||
|
|
@ -373,12 +371,12 @@ void sub_08037B10(Entity* this) {
|
||||||
this->field_0x76.HALF.LO = 0xf0;
|
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;
|
Entity* E;
|
||||||
E = CreateObject(OBJECT_2A, 3, 0);
|
E = CreateObject(OBJECT_2A, 3, 0);
|
||||||
if (E != 0) {
|
if (E != 0) {
|
||||||
E->type2 = this->actionDelay;
|
E->type2 = this->actionDelay;
|
||||||
E->spritePriority.b0 = (E->spritePriority.b0 & 0xf8) | 3;
|
E->spritePriority.b0 = 3;
|
||||||
E->spriteOffsetX = 0;
|
E->spriteOffsetX = 0;
|
||||||
E->spriteOffsetY = 0xfc;
|
E->spriteOffsetY = 0xfc;
|
||||||
E->parent = this;
|
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);
|
E = CreateObject(OBJECT_2A, 3, 0);
|
||||||
if (E != 0) {
|
if (E != 0) {
|
||||||
E->type2 = this->actionDelay;
|
E->type2 = this->actionDelay;
|
||||||
E->spritePriority.b0 = (E->spritePriority.b0 & 0xf8) | 3;
|
E->spritePriority.b0 = 3;
|
||||||
E->spriteOffsetX = 0xfd;
|
E->spriteOffsetX = 0xfd;
|
||||||
E->spriteOffsetY = 0xf8;
|
E->spriteOffsetY = 0xf8;
|
||||||
E->parent = this;
|
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);
|
E = CreateObject(OBJECT_2A, 3, 0);
|
||||||
if (E != 0) {
|
if (E != 0) {
|
||||||
E->type2 = this->actionDelay;
|
E->type2 = this->actionDelay;
|
||||||
E->spritePriority.b0 = (E->spritePriority.b0 & 0xf8) | 3;
|
E->spritePriority.b0 = 3;
|
||||||
E->spriteOffsetX = 0x5;
|
E->spriteOffsetX = 0x5;
|
||||||
E->spriteOffsetY = 0xf5;
|
E->spriteOffsetY = 0xf5;
|
||||||
E->parent = this;
|
E->parent = this;
|
||||||
}
|
}
|
||||||
this->child = E;
|
this->child = E;
|
||||||
}
|
}
|
||||||
END_NONMATCH
|
|
||||||
|
|
||||||
NONMATCH("asm/non_matching/gibdo/sub_08037C0C.inc", void sub_08037C0C(Entity* this, Entity* that)) {
|
NONMATCH("asm/non_matching/gibdo/sub_08037C0C.inc", void sub_08037C0C(Entity* this, Entity* that)) {
|
||||||
if (this->field_0x80.HWORD != 0) {
|
if (this->field_0x80.HWORD != 0) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue