mirror of https://github.com/zeldaret/tmc.git
Renamed Entity fields for knockback
SolidifiedGaming identified these while glitchhunting.
This commit is contained in:
parent
9bca0fe57f
commit
59076fccb7
|
@ -109,11 +109,11 @@ typedef struct Entity {
|
||||||
/*0x3b*/ u8 flags2;
|
/*0x3b*/ u8 flags2;
|
||||||
/*0x3c*/ u8 field_0x3c;
|
/*0x3c*/ u8 field_0x3c;
|
||||||
/*0x3d*/ s8 iframes;
|
/*0x3d*/ s8 iframes;
|
||||||
/*0x3e*/ u8 field_0x3e;
|
/*0x3e*/ u8 knockbackDirection;
|
||||||
/*0x3f*/ u8 damageType;
|
/*0x3f*/ u8 damageType;
|
||||||
/*0x40*/ u8 field_0x40;
|
/*0x40*/ u8 field_0x40;
|
||||||
/*0x41*/ u8 bitfield;
|
/*0x41*/ u8 bitfield;
|
||||||
/*0x42*/ u8 field_0x42;
|
/*0x42*/ u8 knockbackDuration;
|
||||||
/*0x43*/ u8 field_0x43;
|
/*0x43*/ u8 field_0x43;
|
||||||
/*0x44*/ u8 field_0x44;
|
/*0x44*/ u8 field_0x44;
|
||||||
/*0x45*/ u8 currentHealth;
|
/*0x45*/ u8 currentHealth;
|
||||||
|
|
|
@ -52,7 +52,7 @@ void sub_080318DC(Entity* this) {
|
||||||
|
|
||||||
if (this->bitfield != 0x80 && this->bitfield != 0x81) {
|
if (this->bitfield != 0x80 && this->bitfield != 0x81) {
|
||||||
if (this->type == 1) {
|
if (this->type == 1) {
|
||||||
if (this->action < 7 && this->field_0x42) {
|
if (this->action < 7 && this->knockbackDuration != 0) {
|
||||||
brother = this->attachedEntity;
|
brother = this->attachedEntity;
|
||||||
if (brother) {
|
if (brother) {
|
||||||
brother->parent = this->parent;
|
brother->parent = this->parent;
|
||||||
|
@ -72,7 +72,7 @@ void sub_080318DC(Entity* this) {
|
||||||
|
|
||||||
this->action = 9;
|
this->action = 9;
|
||||||
this->spritePriority.b1 = 1;
|
this->spritePriority.b1 = 1;
|
||||||
if (this->field_0x3e < 0x10) {
|
if (this->knockbackDirection < 0x10) {
|
||||||
this->spriteSettings.b.flipX = 0;
|
this->spriteSettings.b.flipX = 0;
|
||||||
} else {
|
} else {
|
||||||
this->spriteSettings.b.flipX = 1;
|
this->spriteSettings.b.flipX = 1;
|
||||||
|
@ -81,19 +81,19 @@ void sub_080318DC(Entity* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->currentHealth == 0) {
|
if (this->currentHealth == 0) {
|
||||||
this->field_0x3e = ((this->field_0x3e + (7 & Random())) - 4) & 0x1f;
|
this->knockbackDirection = ((this->knockbackDirection + (7 & Random())) - 4) & 0x1f;
|
||||||
this->field_0x42 += this->type2 * 3;
|
this->knockbackDuration += this->type2 * 3;
|
||||||
sub_08032338(this);
|
sub_08032338(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->field_0x42 && this->frames.all & 0x10) {
|
if (this->knockbackDuration != 0 && this->frames.all & 0x10) {
|
||||||
if (this->type == 0) {
|
if (this->type == 0) {
|
||||||
this->action = 8;
|
this->action = 8;
|
||||||
} else {
|
} else {
|
||||||
this->action = 9;
|
this->action = 9;
|
||||||
}
|
}
|
||||||
if (this->field_0x3e < 0x10) {
|
if (this->knockbackDirection < 0x10) {
|
||||||
this->spriteSettings.b.flipX = 0;
|
this->spriteSettings.b.flipX = 0;
|
||||||
} else {
|
} else {
|
||||||
this->spriteSettings.b.flipX = 1;
|
this->spriteSettings.b.flipX = 1;
|
||||||
|
|
|
@ -48,7 +48,7 @@ void sub_08021780(Entity* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->currentHealth == 0)
|
if (this->currentHealth == 0)
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
|
|
||||||
sub_0804AA30(this, gUnk_080CB590);
|
sub_0804AA30(this, gUnk_080CB590);
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,8 +30,8 @@ void sub_0802C688(Entity* this) {
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
if (this->field_0x82.HALF.LO) {
|
if (this->field_0x82.HALF.LO) {
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
gPlayerEntity.field_0x42 = 4;
|
gPlayerEntity.knockbackDuration = 4;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
case 0xe:
|
case 0xe:
|
||||||
|
@ -39,7 +39,7 @@ void sub_0802C688(Entity* this) {
|
||||||
case 0x15:
|
case 0x15:
|
||||||
case 0x16:
|
case 0x16:
|
||||||
this->action = 3;
|
this->action = 3;
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
sub_0802CBC4(this);
|
sub_0802CBC4(this);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ void sub_08020BB8(Entity* this) {
|
||||||
this->action = 11;
|
this->action = 11;
|
||||||
this->actionDelay = gUnk_080CAB0C[this->type];
|
this->actionDelay = gUnk_080CAB0C[this->type];
|
||||||
this->damageType = 81;
|
this->damageType = 81;
|
||||||
sub_08021218(this, 8, DirectionToAnimationState(this->field_0x3e ^ 0x10));
|
sub_08021218(this, 8, DirectionToAnimationState(this->knockbackDirection ^ 0x10));
|
||||||
sub_08021588(this);
|
sub_08021588(this);
|
||||||
sub_0804A9FC(this, 0x1c);
|
sub_0804A9FC(this, 0x1c);
|
||||||
break;
|
break;
|
||||||
|
@ -72,7 +72,7 @@ void sub_08020BB8(Entity* this) {
|
||||||
this->action = 11;
|
this->action = 11;
|
||||||
this->actionDelay = gUnk_080CAB10[this->type];
|
this->actionDelay = gUnk_080CAB10[this->type];
|
||||||
this->damageType = 81;
|
this->damageType = 81;
|
||||||
sub_08021218(this, 8, DirectionToAnimationState(this->field_0x3e ^ 0x10));
|
sub_08021218(this, 8, DirectionToAnimationState(this->knockbackDirection ^ 0x10));
|
||||||
sub_08021588(this);
|
sub_08021588(this);
|
||||||
sub_0804A9FC(this, 0x1c);
|
sub_0804A9FC(this, 0x1c);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -58,7 +58,7 @@ NONMATCH("asm/non_matching/gibdo/sub_080374A4.inc", void sub_080374A4(Entity* th
|
||||||
} else {
|
} else {
|
||||||
if ((u8)(this->action - 1) < 2) {
|
if ((u8)(this->action - 1) < 2) {
|
||||||
this->action = 1;
|
this->action = 1;
|
||||||
x = DirectionTurnAround(this->field_0x3e);
|
x = DirectionTurnAround(this->knockbackDirection);
|
||||||
this->direction = x;
|
this->direction = x;
|
||||||
this->animationState = x >> 3;
|
this->animationState = x >> 3;
|
||||||
InitAnimationForceUpdate(this, this->animationState);
|
InitAnimationForceUpdate(this, this->animationState);
|
||||||
|
@ -342,8 +342,8 @@ void sub_08037A58(Entity* this) {
|
||||||
this->damageType = 0x26;
|
this->damageType = 0x26;
|
||||||
this->flags2 |= 1;
|
this->flags2 |= 1;
|
||||||
this->iframes = 0xf4;
|
this->iframes = 0xf4;
|
||||||
this->field_0x3e = (this->animationState << 3) ^ 0x10;
|
this->knockbackDirection = DirectionFromAnimationState(this->animationState) ^ 0x10;
|
||||||
this->field_0x42 = 8;
|
this->knockbackDuration = 8;
|
||||||
this->field_0x46 = 0x180;
|
this->field_0x46 = 0x180;
|
||||||
this->field_0x76.HALF.LO = 0x3c;
|
this->field_0x76.HALF.LO = 0x3c;
|
||||||
InitAnimationForceUpdate(this, this->animationState + 0x10);
|
InitAnimationForceUpdate(this, this->animationState + 0x10);
|
||||||
|
@ -353,8 +353,8 @@ void sub_08037ACC(Entity* this) {
|
||||||
gPlayerState.flags.all &= 0xFFFFFEFF;
|
gPlayerState.flags.all &= 0xFFFFFEFF;
|
||||||
gPlayerEntity.flags |= 0x80;
|
gPlayerEntity.flags |= 0x80;
|
||||||
gPlayerEntity.iframes = 0x1e;
|
gPlayerEntity.iframes = 0x1e;
|
||||||
gPlayerEntity.field_0x3e = DirectionFromAnimationState(this->animationState);
|
gPlayerEntity.knockbackDirection = DirectionFromAnimationState(this->animationState);
|
||||||
gPlayerEntity.field_0x42 = 4;
|
gPlayerEntity.knockbackDuration = 4;
|
||||||
gPlayerEntity.field_0x46 = 0x180;
|
gPlayerEntity.field_0x46 = 0x180;
|
||||||
}
|
}
|
||||||
// Damage player maybe?
|
// Damage player maybe?
|
||||||
|
|
|
@ -48,7 +48,7 @@ void sub_0802BBC4(Entity* this) {
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
if (this->action == 4) {
|
if (this->action == 4) {
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
sub_0802C218(this);
|
sub_0802C218(this);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -39,7 +39,7 @@ void sub_080323F4(Entity* this) {
|
||||||
if (this->action != 3 && this->action != 4) {
|
if (this->action != 3 && this->action != 4) {
|
||||||
this->action = 3;
|
this->action = 3;
|
||||||
this->actionDelay = 0xC;
|
this->actionDelay = 0xC;
|
||||||
this->direction = DirectionTurnAround(this->field_0x3e);
|
this->direction = DirectionTurnAround(this->knockbackDirection);
|
||||||
InitAnimationForceUpdate(this, this->direction >> 3);
|
InitAnimationForceUpdate(this, this->direction >> 3);
|
||||||
} else if (this->bitfield == 0xCC) {
|
} else if (this->bitfield == 0xCC) {
|
||||||
if (this->field_0x43 == 0) {
|
if (this->field_0x43 == 0) {
|
||||||
|
|
|
@ -64,7 +64,7 @@ void sub_0803C784(Entity* this) {
|
||||||
Entity* fx = CreateFx(this, 2, 0);
|
Entity* fx = CreateFx(this, 2, 0);
|
||||||
|
|
||||||
if (fx != NULL) {
|
if (fx != NULL) {
|
||||||
u32 angle = (this->field_0x3e ^ 0x10) << 3;
|
u32 angle = (this->knockbackDirection ^ 0x10) << 3;
|
||||||
s32 sine;
|
s32 sine;
|
||||||
|
|
||||||
sine = gSineTable[angle];
|
sine = gSineTable[angle];
|
||||||
|
|
|
@ -24,7 +24,7 @@ void sub_0803CCD4(Entity* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_0803CCEC(Entity* this) {
|
void sub_0803CCEC(Entity* this) {
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
sub_0803CCD4(this);
|
sub_0803CCD4(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ void sub_08022BEC(Entity* this) {
|
||||||
|
|
||||||
this->field_0x7a.HALF.LO = this->currentHealth;
|
this->field_0x7a.HALF.LO = this->currentHealth;
|
||||||
this->actionDelay = 1;
|
this->actionDelay = 1;
|
||||||
this->direction = this->field_0x3e;
|
this->direction = this->knockbackDirection;
|
||||||
|
|
||||||
this->animationState = ((this->direction + 2) & 0x1c) >> 2;
|
this->animationState = ((this->direction + 2) & 0x1c) >> 2;
|
||||||
this->frameIndex = this->animationState;
|
this->frameIndex = this->animationState;
|
||||||
|
|
|
@ -234,7 +234,7 @@ void Peahat_Stunned(Entity* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->direction == 0xff)
|
if (this->direction == 0xff)
|
||||||
this->direction = this->field_0x3e;
|
this->direction = this->knockbackDirection;
|
||||||
|
|
||||||
ProcessMovement(this);
|
ProcessMovement(this);
|
||||||
GetNextFrame(this);
|
GetNextFrame(this);
|
||||||
|
|
|
@ -75,7 +75,7 @@ void sub_08025020(Entity* this) {
|
||||||
this->field_0x20 = 0;
|
this->field_0x20 = 0;
|
||||||
}
|
}
|
||||||
this->iframes = -0xc;
|
this->iframes = -0xc;
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
if (this->field_0x80.HALF.LO == 0) {
|
if (this->field_0x80.HALF.LO == 0) {
|
||||||
this->animationState = (*(Entity**)&this->field_0x4c)->direction >> 3;
|
this->animationState = (*(Entity**)&this->field_0x4c)->direction >> 3;
|
||||||
InitializeAnimation(this, this->animationState + 4);
|
InitializeAnimation(this, this->animationState + 4);
|
||||||
|
|
|
@ -51,7 +51,7 @@ void sub_08022254(Entity* this) {
|
||||||
this->action = 2;
|
this->action = 2;
|
||||||
this->flags &= ~0x80;
|
this->flags &= ~0x80;
|
||||||
this->spriteSettings.b.draw = 0;
|
this->spriteSettings.b.draw = 0;
|
||||||
this->direction = this->field_0x3e;
|
this->direction = this->knockbackDirection;
|
||||||
this->attachedEntity = ent;
|
this->attachedEntity = ent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -101,8 +101,8 @@ void sub_080223E4(Entity* this) {
|
||||||
ent->bitfield = 0x94;
|
ent->bitfield = 0x94;
|
||||||
ent->iframes = 0x10;
|
ent->iframes = 0x10;
|
||||||
#ifndef EU
|
#ifndef EU
|
||||||
ent->field_0x42 = 0xc;
|
ent->knockbackDuration = 0xc;
|
||||||
ent->field_0x3e = this->direction;
|
ent->knockbackDirection = this->direction;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,11 +54,11 @@ void sub_08020668(Entity* this) {
|
||||||
|
|
||||||
void sub_080206E0(Entity* this) {
|
void sub_080206E0(Entity* this) {
|
||||||
if (Rollobite_TryToHoleUp(this)) {
|
if (Rollobite_TryToHoleUp(this)) {
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
} else if (Rollobite_IsRolledUp(this)) {
|
} else if (Rollobite_IsRolledUp(this)) {
|
||||||
this->field_0x42--;
|
this->knockbackDuration--;
|
||||||
sub_080AE58C(this, this->field_0x3e, 10);
|
sub_080AE58C(this, this->knockbackDirection, 10);
|
||||||
sub_080AE7E8(this, this->field_0x46, this->field_0x3e, 10);
|
sub_080AE7E8(this, this->field_0x46, this->knockbackDirection, 10);
|
||||||
} else {
|
} else {
|
||||||
sub_08001324(this);
|
sub_08001324(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -379,11 +379,11 @@ bool32 sub_080288A4(Entity* this) {
|
||||||
void sub_080288C0(Entity* this) {
|
void sub_080288C0(Entity* this) {
|
||||||
Entity* ent = this->attachedEntity;
|
Entity* ent = this->attachedEntity;
|
||||||
if (ent && (ent->bitfield & 0x80)) {
|
if (ent && (ent->bitfield & 0x80)) {
|
||||||
this->field_0x3e = ent->field_0x3e;
|
this->knockbackDirection = ent->knockbackDirection;
|
||||||
this->iframes = -ent->iframes;
|
this->iframes = -ent->iframes;
|
||||||
this->field_0x46 = ent->field_0x46;
|
this->field_0x46 = ent->field_0x46;
|
||||||
this->field_0x42 = ent->field_0x42;
|
this->knockbackDuration = ent->knockbackDuration;
|
||||||
ent->field_0x42 = 0;
|
ent->knockbackDuration = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,8 +51,8 @@ void sub_0802B628(Entity* this) {
|
||||||
this->action = 6;
|
this->action = 6;
|
||||||
this->field_0x20 = 0x18000;
|
this->field_0x20 = 0x18000;
|
||||||
this->speed = 0xc0;
|
this->speed = 0xc0;
|
||||||
this->direction = this->field_0x3e;
|
this->direction = this->knockbackDirection;
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
this->iframes = -8;
|
this->iframes = -8;
|
||||||
this->damageType = 100;
|
this->damageType = 100;
|
||||||
InitializeAnimation(this, 9);
|
InitializeAnimation(this, 9);
|
||||||
|
|
|
@ -1068,7 +1068,7 @@ void sub_080409B0(Entity* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->field_0x80.HALF.HI < 3) {
|
if (this->field_0x80.HALF.HI < 3) {
|
||||||
if (this->field_0x42 != 0) {
|
if (this->knockbackDuration != 0) {
|
||||||
sub_080AF18C(this);
|
sub_080AF18C(this);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -37,9 +37,9 @@ void sub_0802A454(Entity* this) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->field_0x42)
|
if (this->knockbackDuration != 0)
|
||||||
if (this->field_0x42 > 4)
|
if (this->knockbackDuration > 4)
|
||||||
this->field_0x42 -= 4;
|
this->knockbackDuration -= 4;
|
||||||
|
|
||||||
if (this->field_0x43 != 0) {
|
if (this->field_0x43 != 0) {
|
||||||
sub_0804A9FC(this, 0x1c);
|
sub_0804A9FC(this, 0x1c);
|
||||||
|
|
|
@ -102,7 +102,7 @@ void DeleteEntity(Entity* ent) {
|
||||||
ent->spriteSettings.b.draw = 0;
|
ent->spriteSettings.b.draw = 0;
|
||||||
ent->field_0x3c = 0;
|
ent->field_0x3c = 0;
|
||||||
ent->bitfield = 0;
|
ent->bitfield = 0;
|
||||||
ent->field_0x42 = 0;
|
ent->knockbackDuration = 0;
|
||||||
ent->currentHealth = 0;
|
ent->currentHealth = 0;
|
||||||
UnlinkEntity(ent);
|
UnlinkEntity(ent);
|
||||||
ent->next = NULL;
|
ent->next = NULL;
|
||||||
|
|
|
@ -85,8 +85,8 @@ void sub_08063DC8(Entity* this) {
|
||||||
InitAnimationForceUpdate(this, this->animationState + 4);
|
InitAnimationForceUpdate(this, this->animationState + 4);
|
||||||
} else {
|
} else {
|
||||||
sub_0806EE20(this);
|
sub_0806EE20(this);
|
||||||
if (this->field_0x3e != this->animationState) {
|
if (this->knockbackDirection != this->animationState) {
|
||||||
this->animationState = this->field_0x3e;
|
this->animationState = this->knockbackDirection;
|
||||||
InitializeAnimation(this, this->animationState + 4);
|
InitializeAnimation(this, this->animationState + 4);
|
||||||
} else {
|
} else {
|
||||||
GetNextFrame(this);
|
GetNextFrame(this);
|
||||||
|
|
|
@ -67,7 +67,7 @@ void sub_0806045C(Entity* this) {
|
||||||
TextboxNoOverlapFollow(0);
|
TextboxNoOverlapFollow(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
bVar1 = this->field_0x3e;
|
bVar1 = this->knockbackDirection;
|
||||||
if (bVar1 != this->animationState) {
|
if (bVar1 != this->animationState) {
|
||||||
this->animationState = bVar1;
|
this->animationState = bVar1;
|
||||||
InitAnimationForceUpdate(this, 4 + bVar1);
|
InitAnimationForceUpdate(this, 4 + bVar1);
|
||||||
|
|
|
@ -66,8 +66,8 @@ void sub_0809CD0C(Entity* this) {
|
||||||
ModHealth(-2);
|
ModHealth(-2);
|
||||||
sub_0800449C(&gPlayerEntity, 0x7a);
|
sub_0800449C(&gPlayerEntity, 0x7a);
|
||||||
gPlayerEntity.iframes = 16;
|
gPlayerEntity.iframes = 16;
|
||||||
gPlayerEntity.field_0x3e = 16;
|
gPlayerEntity.knockbackDirection = 16;
|
||||||
gPlayerEntity.field_0x42 = 12;
|
gPlayerEntity.knockbackDuration = 12;
|
||||||
gPlayerEntity.field_0x46 = 16;
|
gPlayerEntity.field_0x46 = 16;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
34
src/player.c
34
src/player.c
|
@ -199,7 +199,7 @@ void sub_08070D38(Entity* this) {
|
||||||
this->flags &= ~0x80;
|
this->flags &= ~0x80;
|
||||||
this->direction = ((this->animationState & 0xe) << 2) ^ 0x10;
|
this->direction = ((this->animationState & 0xe) << 2) ^ 0x10;
|
||||||
this->speed = 0x100;
|
this->speed = 0x100;
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
this->subAction++;
|
this->subAction++;
|
||||||
this->actionDelay = gPlayerState.field_0x38;
|
this->actionDelay = gPlayerState.field_0x38;
|
||||||
this->spriteIndex = 1;
|
this->spriteIndex = 1;
|
||||||
|
@ -366,7 +366,7 @@ void sub_08071038(Entity* this) {
|
||||||
|
|
||||||
if (this->frames.all & 0x80) {
|
if (this->frames.all & 0x80) {
|
||||||
this->attachedEntity = 0;
|
this->attachedEntity = 0;
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
this->iframes = 248;
|
this->iframes = 248;
|
||||||
gPlayerState.jumpStatus = 0;
|
gPlayerState.jumpStatus = 0;
|
||||||
sub_080791D0();
|
sub_080791D0();
|
||||||
|
@ -465,7 +465,7 @@ void sub_08071130(Entity* this) {
|
||||||
|
|
||||||
this->subAction++;
|
this->subAction++;
|
||||||
sub_08078F60();
|
sub_08078F60();
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
SoundReq(SFX_PLY_LAND);
|
SoundReq(SFX_PLY_LAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -531,7 +531,7 @@ void sub_080712F0(Entity* this) {
|
||||||
if (temp == FALSE)
|
if (temp == FALSE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
this->iframes = 32;
|
this->iframes = 32;
|
||||||
this->spritePriority.b1 = 1;
|
this->spritePriority.b1 = 1;
|
||||||
this->spriteSettings.b.draw = FALSE;
|
this->spriteSettings.b.draw = FALSE;
|
||||||
|
@ -568,7 +568,7 @@ void PortalJumpOnUpdate(Entity* this) {
|
||||||
u16 y;
|
u16 y;
|
||||||
|
|
||||||
this->flags &= ~0x80;
|
this->flags &= ~0x80;
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
|
|
||||||
x = gArea.curPortalX;
|
x = gArea.curPortalX;
|
||||||
y = gArea.curPortalY;
|
y = gArea.curPortalY;
|
||||||
|
@ -887,7 +887,7 @@ void sub_08071B60(Entity* this) {
|
||||||
gPlayerState.pushedObject = 2;
|
gPlayerState.pushedObject = 2;
|
||||||
gPlayerState.flags.all &= ~0x1;
|
gPlayerState.flags.all &= ~0x1;
|
||||||
this->type = 0;
|
this->type = 0;
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
sub_080728AC(this);
|
sub_080728AC(this);
|
||||||
this->field_0xf = 6;
|
this->field_0xf = 6;
|
||||||
if ((gPlayerState.flags.all & 0x80) == 0) {
|
if ((gPlayerState.flags.all & 0x80) == 0) {
|
||||||
|
@ -1139,7 +1139,7 @@ void sub_08071F80(Entity* this) {
|
||||||
|
|
||||||
void sub_08072008(Entity* this) {
|
void sub_08072008(Entity* this) {
|
||||||
this->iframes = 160;
|
this->iframes = 160;
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
this->flags |= 0x80;
|
this->flags |= 0x80;
|
||||||
this->spriteOffsetX = 0;
|
this->spriteOffsetX = 0;
|
||||||
gPlayerState.flags.all &= ~(0x800 | 0x1);
|
gPlayerState.flags.all &= ~(0x800 | 0x1);
|
||||||
|
@ -1216,7 +1216,7 @@ void sub_08072168(Entity* this) {
|
||||||
gPlayerState.field_0xd = this->direction;
|
gPlayerState.field_0xd = this->direction;
|
||||||
sub_08019840();
|
sub_08019840();
|
||||||
if (--this->actionDelay == 0xff) {
|
if (--this->actionDelay == 0xff) {
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
this->flags |= 0x80;
|
this->flags |= 0x80;
|
||||||
UpdateSpriteForCollisionLayer(this);
|
UpdateSpriteForCollisionLayer(this);
|
||||||
sub_080791BC();
|
sub_080791BC();
|
||||||
|
@ -1256,7 +1256,7 @@ void sub_08072260(Entity* this) {
|
||||||
} else {
|
} else {
|
||||||
gPlayerState.field_0x8 = 0x944;
|
gPlayerState.field_0x8 = 0x944;
|
||||||
}
|
}
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
sub_080791BC();
|
sub_080791BC();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1283,7 +1283,7 @@ void sub_080722DC(Entity* this) {
|
||||||
} else {
|
} else {
|
||||||
this->spriteSettings.b.draw = 0;
|
this->spriteSettings.b.draw = 0;
|
||||||
this->subAction = 3;
|
this->subAction = 3;
|
||||||
this->field_0x42 = 10;
|
this->knockbackDuration = 10;
|
||||||
}
|
}
|
||||||
gPlayerState.flags.all |= (0x400 | 0x1);
|
gPlayerState.flags.all |= (0x400 | 0x1);
|
||||||
ResetPlayer();
|
ResetPlayer();
|
||||||
|
@ -1299,7 +1299,7 @@ void sub_08072354(Entity* this) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this->spritePriority.b1 = 0;
|
this->spritePriority.b1 = 0;
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
this->subAction = 2;
|
this->subAction = 2;
|
||||||
this->actionDelay = 0x3c;
|
this->actionDelay = 0x3c;
|
||||||
gPlayerState.field_0x8 = 0x2c1;
|
gPlayerState.field_0x8 = 0x2c1;
|
||||||
|
@ -1320,7 +1320,7 @@ void sub_080723D0(Entity* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_0807240C(Entity* this) {
|
void sub_0807240C(Entity* this) {
|
||||||
if (--this->field_0x42 == 0xff) {
|
if (--this->knockbackDuration == 0xff) {
|
||||||
this->spriteSettings.b.draw = 3;
|
this->spriteSettings.b.draw = 3;
|
||||||
this->iframes = 0x14;
|
this->iframes = 0x14;
|
||||||
gPlayerState.flags.all &= ~0x400;
|
gPlayerState.flags.all &= ~0x400;
|
||||||
|
@ -1360,7 +1360,7 @@ void PlayerRoomTransition(Entity* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_080724DC(Entity* this) {
|
void sub_080724DC(Entity* this) {
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
sub_0807A108();
|
sub_0807A108();
|
||||||
if (sub_080002B8(this) != 0x29) {
|
if (sub_080002B8(this) != 0x29) {
|
||||||
if ((gPlayerState.field_0x82[7] == 0) && (gPlayerState.swimState != 0)) {
|
if ((gPlayerState.field_0x82[7] == 0) && (gPlayerState.swimState != 0)) {
|
||||||
|
@ -1794,7 +1794,7 @@ NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(Entity* t
|
||||||
}
|
}
|
||||||
this->actionDelay = 6;
|
this->actionDelay = 6;
|
||||||
this->subAction = 3;
|
this->subAction = 3;
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
SoundReq(0x7d);
|
SoundReq(0x7d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1816,9 +1816,9 @@ void sub_08072F34(Entity* this) {
|
||||||
gPlayerState.field_0xa8 = 0x18;
|
gPlayerState.field_0xa8 = 0x18;
|
||||||
gPlayerState.field_0x10[2] = sub_0807A1E8(this, 0, 0);
|
gPlayerState.field_0x10[2] = sub_0807A1E8(this, 0, 0);
|
||||||
gUnk_0811BBE4[this->subAction](this);
|
gUnk_0811BBE4[this->subAction](this);
|
||||||
if (this->field_0x42 != 0) {
|
if (this->knockbackDuration != 0) {
|
||||||
sub_080792D8();
|
sub_080792D8();
|
||||||
if (this->field_0x42 == 0) {
|
if (this->knockbackDuration == 0) {
|
||||||
this->action = 0x1d;
|
this->action = 0x1d;
|
||||||
this->subAction = 0;
|
this->subAction = 0;
|
||||||
this->y.HALF.LO = 0;
|
this->y.HALF.LO = 0;
|
||||||
|
@ -1897,7 +1897,7 @@ void sub_08073094(Entity* this) {
|
||||||
switch (gPlayerState.field_0x10[2]) {
|
switch (gPlayerState.field_0x10[2]) {
|
||||||
case 0x2a:
|
case 0x2a:
|
||||||
case 0x2c:
|
case 0x2c:
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
gPlayerState.flags.all |= 0x20000000;
|
gPlayerState.flags.all |= 0x20000000;
|
||||||
UpdateAnimationSingleFrame(this);
|
UpdateAnimationSingleFrame(this);
|
||||||
if ((this->frames.all & 0x40) != 0) {
|
if ((this->frames.all & 0x40) != 0) {
|
||||||
|
|
|
@ -34,7 +34,7 @@ void sub_080A9334(Entity* this) {
|
||||||
if ((this->bitfield & 0x3f) != 0) {
|
if ((this->bitfield & 0x3f) != 0) {
|
||||||
ModHealth(-2);
|
ModHealth(-2);
|
||||||
sub_080A9488(this);
|
sub_080A9488(this);
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
this->iframes = 0;
|
this->iframes = 0;
|
||||||
} else {
|
} else {
|
||||||
DeleteThisEntity();
|
DeleteThisEntity();
|
||||||
|
@ -107,7 +107,7 @@ void sub_080A9488(Entity* this) {
|
||||||
this->flags &= 0x7f;
|
this->flags &= 0x7f;
|
||||||
this->actionDelay = 2;
|
this->actionDelay = 2;
|
||||||
this->field_0x20 = 0x18000;
|
this->field_0x20 = 0x18000;
|
||||||
this->animationState = (this->field_0x3e & 0x18) >> 3;
|
this->animationState = (this->knockbackDirection & 0x18) >> 3;
|
||||||
EnqueueSFX(SFX_METAL_CLINK);
|
EnqueueSFX(SFX_METAL_CLINK);
|
||||||
sub_080A94C0(this, this->animationState);
|
sub_080A94C0(this, this->animationState);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ void sub_080AB544(Entity* this) {
|
||||||
|
|
||||||
if (this->iframes < -4) {
|
if (this->iframes < -4) {
|
||||||
this->action = 2;
|
this->action = 2;
|
||||||
this->direction = this->field_0x3e;
|
this->direction = this->knockbackDirection;
|
||||||
tmp = (this->type ^ 2) << 3;
|
tmp = (this->type ^ 2) << 3;
|
||||||
if (this->direction - tmp + 1 < 3) {
|
if (this->direction - tmp + 1 < 3) {
|
||||||
this->direction = tmp;
|
this->direction = tmp;
|
||||||
|
|
|
@ -30,7 +30,7 @@ void sub_080A8470(Entity* this) {
|
||||||
}
|
}
|
||||||
DeleteEntity(this);
|
DeleteEntity(this);
|
||||||
} else {
|
} else {
|
||||||
this->direction = (this->field_0x3e + 4) & 0x18;
|
this->direction = DirectionRoundUp(this->knockbackDirection);
|
||||||
if ((u8)(this->bitfield + 0x7e) < 2) {
|
if ((u8)(this->bitfield + 0x7e) < 2) {
|
||||||
sub_080A8680(this);
|
sub_080A8680(this);
|
||||||
} else {
|
} else {
|
||||||
|
@ -74,14 +74,14 @@ void DekuSeedProjectile_Action1(Entity* this) {
|
||||||
parent = this->parent;
|
parent = this->parent;
|
||||||
if ((parent->next != NULL) && (sub_080177A0(this, parent) != 0)) {
|
if ((parent->next != NULL) && (sub_080177A0(this, parent) != 0)) {
|
||||||
this->iframes = 0x10;
|
this->iframes = 0x10;
|
||||||
this->field_0x3e = -this->direction;
|
this->knockbackDirection = -this->direction;
|
||||||
this->bitfield = -0x80;
|
this->bitfield = -0x80;
|
||||||
this->field_0x42 = 0xc;
|
this->knockbackDuration = 0xc;
|
||||||
this->field_0x46 = 0;
|
this->field_0x46 = 0;
|
||||||
parent->iframes = 0x10;
|
parent->iframes = 0x10;
|
||||||
parent->field_0x3e = this->direction;
|
parent->knockbackDirection = this->direction;
|
||||||
parent->bitfield = -0x3e;
|
parent->bitfield = -0x3e;
|
||||||
parent->field_0x42 = 0xc;
|
parent->knockbackDuration = 0xc;
|
||||||
parent->field_0x46 = 0;
|
parent->field_0x46 = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ void GuardLineOfSight(Entity* this) {
|
||||||
entity = CreateProjectile(0xc);
|
entity = CreateProjectile(0xc);
|
||||||
if (entity != NULL) {
|
if (entity != NULL) {
|
||||||
entity->type = 1;
|
entity->type = 1;
|
||||||
tmp = this->parent->field_0x3e;
|
tmp = this->parent->knockbackDirection;
|
||||||
entity->direction = (gUnk_081299C8[(this->actionDelay >> 2 & 7)] + (tmp << 3)) & 0x1f;
|
entity->direction = (gUnk_081299C8[(this->actionDelay >> 2 & 7)] + (tmp << 3)) & 0x1f;
|
||||||
entity->parent = this->parent;
|
entity->parent = this->parent;
|
||||||
CopyPosition(this, entity);
|
CopyPosition(this, entity);
|
||||||
|
|
|
@ -66,14 +66,14 @@ void sub_080A9EBC(Entity* this) {
|
||||||
default:
|
default:
|
||||||
parent = this->parent;
|
parent = this->parent;
|
||||||
parent->iframes = this->iframes;
|
parent->iframes = this->iframes;
|
||||||
parent->field_0x3e = this->field_0x3e;
|
parent->knockbackDirection = this->knockbackDirection;
|
||||||
parent->field_0x42 = this->field_0x42;
|
parent->knockbackDuration = this->knockbackDuration;
|
||||||
if (this->action == 1) {
|
if (this->action == 1) {
|
||||||
sub_080AA320(this);
|
sub_080AA320(this);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ void sub_080A832C(Entity* this) {
|
||||||
|
|
||||||
if (this->bitfield == 0x80) {
|
if (this->bitfield == 0x80) {
|
||||||
this->iframes = 0x10;
|
this->iframes = 0x10;
|
||||||
this->field_0x42 = 0xc;
|
this->knockbackDuration = 0xc;
|
||||||
this->field_0x46 = 0x180;
|
this->field_0x46 = 0x180;
|
||||||
this->parent->bitfield = this->bitfield;
|
this->parent->bitfield = this->bitfield;
|
||||||
}
|
}
|
||||||
|
@ -37,10 +37,10 @@ void sub_080A832C(Entity* this) {
|
||||||
} else {
|
} else {
|
||||||
this->parent->iframes = -tmp;
|
this->parent->iframes = -tmp;
|
||||||
}
|
}
|
||||||
this->parent->field_0x42 = this->field_0x42;
|
this->parent->knockbackDuration = this->knockbackDuration;
|
||||||
this->parent->field_0x46 = this->field_0x46;
|
this->parent->field_0x46 = this->field_0x46;
|
||||||
this->parent->field_0x3e = this->field_0x3e;
|
this->parent->knockbackDirection = this->knockbackDirection;
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MoblinSpear_Init(Entity* this) {
|
void MoblinSpear_Init(Entity* this) {
|
||||||
|
|
|
@ -84,7 +84,7 @@ void OctorokBossProjectile_Action1(Entity* this) {
|
||||||
if ((this->bitfield & 0x7f) == 0) {
|
if ((this->bitfield & 0x7f) == 0) {
|
||||||
OctorokBossProjectile_Action2(this);
|
OctorokBossProjectile_Action2(this);
|
||||||
}
|
}
|
||||||
this->direction = this->field_0x3e << 3;
|
this->direction = this->knockbackDirection << 3;
|
||||||
this->speed = 0x400;
|
this->speed = 0x400;
|
||||||
this->type2 = 1;
|
this->type2 = 1;
|
||||||
this->actionDelay = 0;
|
this->actionDelay = 0;
|
||||||
|
@ -98,9 +98,9 @@ void OctorokBossProjectile_Action1(Entity* this) {
|
||||||
this->parent->currentHealth -= 1;
|
this->parent->currentHealth -= 1;
|
||||||
this->parent->iframes = 0x1e;
|
this->parent->iframes = 0x1e;
|
||||||
if (this->parent->field_0x7c.BYTES.byte0 != 0) {
|
if (this->parent->field_0x7c.BYTES.byte0 != 0) {
|
||||||
this->parent->field_0x42 = 0x18;
|
this->parent->knockbackDuration = 0x18;
|
||||||
this->parent->field_0x46 = 0x200;
|
this->parent->field_0x46 = 0x200;
|
||||||
this->parent->field_0x3e = this->direction >> 3;
|
this->parent->knockbackDirection = this->direction >> 3;
|
||||||
}
|
}
|
||||||
SoundReq(SFX_BOSS_HIT);
|
SoundReq(SFX_BOSS_HIT);
|
||||||
OctorokBossProjectile_Action2(this);
|
OctorokBossProjectile_Action2(this);
|
||||||
|
|
|
@ -23,7 +23,7 @@ void sub_080A8064(Entity* this) {
|
||||||
if (this->bitfield == 0x80) {
|
if (this->bitfield == 0x80) {
|
||||||
DeleteEntity(this);
|
DeleteEntity(this);
|
||||||
} else {
|
} else {
|
||||||
this->direction = this->field_0x3e;
|
this->direction = this->knockbackDirection;
|
||||||
sub_080A8178(this);
|
sub_080A8178(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,8 +49,8 @@ void sub_080AAC44(Entity* this) {
|
||||||
CopyPosition(this->parent, this);
|
CopyPosition(this->parent, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this->field_0x42 != 0) {
|
if (this->knockbackDuration != 0) {
|
||||||
this->field_0x42 = 0;
|
this->knockbackDuration = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue