mirror of https://github.com/zeldaret/tmc.git
tektiteGolden.c OK
This commit is contained in:
parent
3dc1506bcb
commit
f2aeda134d
|
|
@ -1,189 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_08038048
|
||||
sub_08038048: @ 0x08038048
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #2
|
||||
bl UpdateAnimationVariableFrames
|
||||
adds r0, r4, #0
|
||||
bl sub_080AEF88
|
||||
movs r0, #0x36
|
||||
ldrsh r6, [r4, r0]
|
||||
bl Random
|
||||
adds r5, r0, #0
|
||||
movs r0, #0xf
|
||||
ands r5, r0
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #6
|
||||
adds r0, r4, #0
|
||||
bl sub_080044EC
|
||||
cmp r0, #1
|
||||
bne _08038088
|
||||
movs r0, #0
|
||||
movs r1, #3
|
||||
strb r1, [r4, #0xc]
|
||||
strb r0, [r4, #0xd]
|
||||
movs r0, #0x14
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
b _0803810C
|
||||
_08038088:
|
||||
ldrh r0, [r4, #0x2a]
|
||||
cmp r0, #0
|
||||
beq _08038098
|
||||
adds r1, r0, #0
|
||||
adds r0, r4, #0
|
||||
bl sub_0800417E
|
||||
b _080380B0
|
||||
_08038098:
|
||||
adds r0, r4, #0
|
||||
bl sub_080002B8
|
||||
movs r1, #0xf0
|
||||
ands r1, r0
|
||||
cmp r1, #0x50
|
||||
bne _080380B0
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r0, #0x10
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
_080380B0:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080380C8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x10
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
bl sub_08038168
|
||||
_080380C8:
|
||||
ldrb r0, [r4, #0xd]
|
||||
cmp r0, #0
|
||||
bne _080380E2
|
||||
movs r1, #0x36
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r6, r0
|
||||
bge _080380E2
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl InitializeAnimation
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
_080380E2:
|
||||
movs r0, #0xc
|
||||
rsbs r0, r0, #0
|
||||
cmp r6, r0
|
||||
bge _080380F6
|
||||
ldrb r2, [r4, #0x19]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
movs r2, #0x40
|
||||
b _08038100
|
||||
_080380F6:
|
||||
ldrb r2, [r4, #0x19]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
movs r2, #0x80
|
||||
_08038100:
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x19]
|
||||
ldrb r0, [r4, #0x1b]
|
||||
ands r1, r0
|
||||
orrs r1, r2
|
||||
strb r1, [r4, #0x1b]
|
||||
_0803810C:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08038110
|
||||
sub_08038110: @ 0x08038110
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #2
|
||||
bl UpdateAnimationVariableFrames
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08038164
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x80
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #4
|
||||
bhi _08038150
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0xe0
|
||||
lsls r0, r0, #0xa
|
||||
str r0, [r4, #0x20]
|
||||
adds r0, r4, #0
|
||||
bl sub_08038168
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimation
|
||||
b _08038164
|
||||
_08038150:
|
||||
movs r0, #0
|
||||
movs r1, #1
|
||||
strb r1, [r4, #0xc]
|
||||
strb r0, [r2]
|
||||
movs r0, #0xc0
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
_08038164:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08038168
|
||||
sub_08038168: @ 0x08038168
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08049FA0
|
||||
cmp r0, #0
|
||||
bne _0803817E
|
||||
adds r0, r4, #0
|
||||
bl sub_08049EE4
|
||||
strb r0, [r4, #0x15]
|
||||
b _080381AA
|
||||
_0803817E:
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08049FDC
|
||||
cmp r0, #0
|
||||
beq _08038196
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08049F84
|
||||
strb r0, [r4, #0x15]
|
||||
b _080381AA
|
||||
_08038196:
|
||||
bl Random
|
||||
movs r1, #0xf
|
||||
ands r1, r0
|
||||
adds r1, #0x18
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r1, r1, r0
|
||||
movs r0, #0x1f
|
||||
ands r1, r0
|
||||
strb r1, [r4, #0x15]
|
||||
_080381AA:
|
||||
pop {r4, pc}
|
||||
|
|
@ -251,4 +251,8 @@ extern u32 sub_08079F8C(void);
|
|||
extern void sub_080787CC(Entity*);
|
||||
extern void sub_080526F8(s32);
|
||||
extern int sub_0807CF28(u32, SaveFile*);
|
||||
extern u32 sub_080044EC(Entity*, u32);
|
||||
extern u32 sub_080002B8(Entity*);
|
||||
extern u32 sub_08049F84(Entity*, u32);
|
||||
|
||||
#endif
|
||||
|
|
@ -391,7 +391,6 @@ SECTIONS {
|
|||
asm/gibdo.o(.text);
|
||||
asm/octorokGolden.o(.text);
|
||||
src/enemy/tektiteGolden.o(.text);
|
||||
asm/tektiteGolden.o(.text);
|
||||
asm/ropeGolden.o(.text);
|
||||
asm/cloudPiranha.o(.text);
|
||||
asm/scissorsBeetle.o(.text);
|
||||
|
|
|
|||
|
|
@ -9,19 +9,16 @@ extern void sub_08038168(Entity*);
|
|||
extern void (*const gUnk_080CF4A0)(Entity*);
|
||||
extern void (*const gUnk_080CF4B8[])(Entity*);
|
||||
|
||||
void TektiteGolden(Entity *this)
|
||||
{
|
||||
void TektiteGolden(Entity* this) {
|
||||
EnemyFunctionHandler(this, &gUnk_080CF4A0);
|
||||
SetChildOffset(this, 0, 1, -0x10);
|
||||
}
|
||||
|
||||
void sub_08037EE8(Entity* this)
|
||||
{
|
||||
void sub_08037EE8(Entity* this) {
|
||||
gUnk_080CF4B8[this->action](this);
|
||||
}
|
||||
|
||||
void sub_08037F00(Entity *this)
|
||||
{
|
||||
void sub_08037F00(Entity* this) {
|
||||
u32 uVar1;
|
||||
|
||||
if (this->field_0x43 != 0) {
|
||||
|
|
@ -37,8 +34,7 @@ void sub_08037F00(Entity *this)
|
|||
uVar1 = this->height.HALF.HI;
|
||||
if (uVar1 != 0) {
|
||||
this->field_0x20 >>= 2;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
this->field_0x20 = uVar1;
|
||||
}
|
||||
|
||||
|
|
@ -46,8 +42,7 @@ void sub_08037F00(Entity *this)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_08037F58(Entity *this)
|
||||
{
|
||||
void sub_08037F58(Entity* this) {
|
||||
u32 uVar1;
|
||||
|
||||
if ((this->field_0x3a & 2) == 0) {
|
||||
|
|
@ -55,23 +50,20 @@ void sub_08037F58(Entity *this)
|
|||
}
|
||||
if ((this->entityType).form != 0) {
|
||||
uVar1 = 0x59;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
uVar1 = 0x58;
|
||||
}
|
||||
CreateDeathFx(this, 0xff, uVar1);
|
||||
}
|
||||
|
||||
void sub_08037F84(Entity *this)
|
||||
{
|
||||
void sub_08037F84(Entity* this) {
|
||||
sub_08001242();
|
||||
if (this->height.HALF.HI != 0) {
|
||||
sub_08003FC4(this, 0x3000);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08037FA0(Entity *this)
|
||||
{
|
||||
void sub_08037FA0(Entity* this) {
|
||||
|
||||
if (CheckGlobalFlag(this->entityType.parameter)) {
|
||||
DeleteThisEntity();
|
||||
|
|
@ -85,13 +77,11 @@ void sub_08037FA0(Entity *this)
|
|||
InitializeAnimation(this, 0);
|
||||
}
|
||||
|
||||
void sub_08037Fe0(Entity *this)
|
||||
{
|
||||
void sub_08037Fe0(Entity* this) {
|
||||
UpdateAnimationVariableFrames(this, 2);
|
||||
if (this->actionDelay != 0) {
|
||||
this->actionDelay--;
|
||||
}
|
||||
else if (this->field_0xf != 0) {
|
||||
} else if (this->field_0xf != 0) {
|
||||
if ((this->frames.b.f3) != 0) {
|
||||
this->action = 2;
|
||||
this->actionDelay = 6;
|
||||
|
|
@ -100,9 +90,79 @@ void sub_08037Fe0(Entity *this)
|
|||
sub_08038168(this);
|
||||
InitializeAnimation(this, 2);
|
||||
}
|
||||
}
|
||||
else if ((this->frames.b.f3) != 0) {
|
||||
} else if ((this->frames.b.f3) != 0) {
|
||||
this->field_0xf = 0x40;
|
||||
InitializeAnimation(this, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08038048(Entity* this) {
|
||||
s32 temp;
|
||||
u32 rand;
|
||||
|
||||
UpdateAnimationVariableFrames(this, 2);
|
||||
sub_080AEF88(this);
|
||||
temp = this->height.HALF.HI;
|
||||
rand = Random() & 0xf;
|
||||
|
||||
if (sub_080044EC(this, 0x3000) == 1) {
|
||||
this->action = 3;
|
||||
this->previousActionFlag = 0;
|
||||
this->actionDelay = 0x14;
|
||||
InitializeAnimation(this, 3);
|
||||
return;
|
||||
} else if (this->collisions != 0) {
|
||||
sub_0800417E(this, this->collisions);
|
||||
} else if ((sub_080002B8(this) & 0xf0) == 0x50) {
|
||||
this->direction = (this->direction + 0x10) & 0x1f;
|
||||
}
|
||||
|
||||
if (--this->actionDelay == 0) {
|
||||
this->actionDelay = rand + 0x10;
|
||||
sub_08038168(this);
|
||||
}
|
||||
|
||||
if ((this->previousActionFlag == 0) && (temp < this->height.HALF.HI)) {
|
||||
InitializeAnimation(this, 4);
|
||||
this->previousActionFlag = 1;
|
||||
}
|
||||
|
||||
if (temp < -0xc) {
|
||||
this->spriteRendering.b3 = 1;
|
||||
this->spriteOrientation.flipY = 1;
|
||||
} else {
|
||||
this->spriteRendering.b3 = 2;
|
||||
this->spriteOrientation.flipY = 2;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08038110(Entity* this) {
|
||||
UpdateAnimationVariableFrames(this, 2);
|
||||
if ((this->frames.b.f3) != 0) {
|
||||
if (this->field_0x80.HALF.LO < 5) {
|
||||
this->action = 2;
|
||||
this->actionDelay = 8;
|
||||
this->field_0x20 = 0x38000;
|
||||
sub_08038168(this);
|
||||
InitializeAnimation(this, 2);
|
||||
} else {
|
||||
this->action = 1;
|
||||
this->field_0x80.HALF.LO = 0;
|
||||
this->actionDelay = 0xc0;
|
||||
InitializeAnimation(this, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08038168(Entity* this) {
|
||||
u32 temp;
|
||||
|
||||
if (sub_08049FA0(this) == 0) {
|
||||
this->direction = sub_08049EE4(this);
|
||||
} else if (sub_08049FDC(this, 1) != 0) {
|
||||
this->direction = sub_08049F84(this, 1);
|
||||
} else {
|
||||
temp = (Random() & 0xf) + 0x18;
|
||||
this->direction = (temp + this->direction) & 0x1f;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue