mirror of https://github.com/zeldaret/tmc.git
A few more
This commit is contained in:
parent
2d37348cb6
commit
dbbf77d76a
|
@ -75,7 +75,7 @@ void AcroBandit_OnCollision(Entity* this) {
|
||||||
if (this->type == 1) {
|
if (this->type == 1) {
|
||||||
if (this->action < 7 && this->knockbackDuration != 0) {
|
if (this->action < 7 && this->knockbackDuration != 0) {
|
||||||
brother = this->child;
|
brother = this->child;
|
||||||
if (brother) {
|
if (brother != NULL) {
|
||||||
brother->parent = this->parent;
|
brother->parent = this->parent;
|
||||||
do {
|
do {
|
||||||
brother->action = 5;
|
brother->action = 5;
|
||||||
|
@ -181,6 +181,7 @@ void AcroBandit_Type0Action1(Entity* this) {
|
||||||
|
|
||||||
void AcroBandit_Type0Action2(Entity* this) {
|
void AcroBandit_Type0Action2(Entity* this) {
|
||||||
static const u8 actionDelays[] = { 2, 2, 2, 3, 3, 3, 3, 4 };
|
static const u8 actionDelays[] = { 2, 2, 2, 3, 3, 3, 3, 4 };
|
||||||
|
|
||||||
GetNextFrame(this);
|
GetNextFrame(this);
|
||||||
if (this->frame & 1) {
|
if (this->frame & 1) {
|
||||||
this->frame = 0;
|
this->frame = 0;
|
||||||
|
@ -318,14 +319,14 @@ void AcroBandit_Type0Action8(Entity* this) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 sub_08031E04(Entity* this) {
|
bool32 sub_08031E04(Entity* this) {
|
||||||
static const s8 gUnk_080CE5C0[] = { -32, 0, 0, 32, 32, 0, 0, 0 };
|
static const s8 gUnk_080CE5C0[] = { -32, 0, 0, 32, 32, 0, 0, 0 };
|
||||||
Entity* ent;
|
Entity* ent;
|
||||||
const s8* tmp;
|
const s8* tmp;
|
||||||
|
|
||||||
ent = sub_08049DF4(1);
|
ent = sub_08049DF4(1);
|
||||||
if (ent == NULL)
|
if (ent == NULL)
|
||||||
return 0;
|
return FALSE;
|
||||||
|
|
||||||
tmp = &gUnk_080CE5C0[this->frame & 6];
|
tmp = &gUnk_080CE5C0[this->frame & 6];
|
||||||
return EntityWithinDistance(this, ent->x.HALF.HI + tmp[0], ent->y.HALF.HI + tmp[1], 0x50);
|
return EntityWithinDistance(this, ent->x.HALF.HI + tmp[0], ent->y.HALF.HI + tmp[1], 0x50);
|
||||||
|
@ -386,6 +387,7 @@ void AcroBandit_Type1Action1(Entity* this) {
|
||||||
|
|
||||||
void AcroBandit_Type1Action2(Entity* this) {
|
void AcroBandit_Type1Action2(Entity* this) {
|
||||||
static const u16 banditGravity[] = { 0x1600, 0x1300, 0x1000, 0xD00, 0xB00 };
|
static const u16 banditGravity[] = { 0x1600, 0x1300, 0x1000, 0xD00, 0xB00 };
|
||||||
|
|
||||||
GravityUpdate(this, banditGravity[this->type2]);
|
GravityUpdate(this, banditGravity[this->type2]);
|
||||||
if (this->type2 * -0xe <= this->z.HALF.HI) {
|
if (this->type2 * -0xe <= this->z.HALF.HI) {
|
||||||
this->action = 3;
|
this->action = 3;
|
||||||
|
@ -399,7 +401,7 @@ void AcroBandit_Type1Action2(Entity* this) {
|
||||||
|
|
||||||
void AcroBandit_Type1Action3(Entity* this) {
|
void AcroBandit_Type1Action3(Entity* this) {
|
||||||
GetNextFrame(this);
|
GetNextFrame(this);
|
||||||
if ((this->frame & ANIM_DONE) && (this->parent || --this->actionDelay == 0)) {
|
if ((this->frame & ANIM_DONE) && ((this->parent != NULL) || (--this->actionDelay == 0))) {
|
||||||
this->action = 4;
|
this->action = 4;
|
||||||
this->direction = sub_08049F84(this, 1);
|
this->direction = sub_08049F84(this, 1);
|
||||||
*(u8*)&this->field_0x76 = 0;
|
*(u8*)&this->field_0x76 = 0;
|
||||||
|
@ -414,9 +416,9 @@ void AcroBandit_Type1Action3(Entity* this) {
|
||||||
void AcroBandit_Type1Action4(Entity* this) {
|
void AcroBandit_Type1Action4(Entity* this) {
|
||||||
Entity* parent;
|
Entity* parent;
|
||||||
|
|
||||||
if (sub_080322A4(this) == 0) {
|
if (!sub_080322A4(this)) {
|
||||||
parent = this->parent;
|
parent = this->parent;
|
||||||
if (parent == 0) {
|
if (parent == NULL) {
|
||||||
if (sub_08049FDC(this, 1)) {
|
if (sub_08049FDC(this, 1)) {
|
||||||
if ((++this->field_0x78.HALF.HI & 7) == 0) {
|
if ((++this->field_0x78.HALF.HI & 7) == 0) {
|
||||||
sub_08004596(this, GetFacingDirection(this, gUnk_020000B0));
|
sub_08004596(this, GetFacingDirection(this, gUnk_020000B0));
|
||||||
|
@ -538,30 +540,29 @@ void sub_08032290(Entity* this) {
|
||||||
InitializeAnimation(this, 11);
|
InitializeAnimation(this, 11);
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 sub_080322A4(Entity* this) {
|
bool32 sub_080322A4(Entity* this) {
|
||||||
if (this->child != NULL && (this->child->z.HALF.HI + 8) >= this->z.HALF.HI) {
|
if (this->child != NULL && (this->child->z.HALF.HI + 8) >= this->z.HALF.HI) {
|
||||||
if (this->z.HALF.HI) {
|
if (this->z.HALF.HI) {
|
||||||
this->action = 5;
|
this->action = 5;
|
||||||
this->z.HALF.HI = this->child->z.HALF.HI + 8;
|
this->z.HALF.HI = this->child->z.HALF.HI + 8;
|
||||||
InitializeAnimation(this, 11);
|
InitializeAnimation(this, 11);
|
||||||
return 1;
|
return TRUE;
|
||||||
} else {
|
} else {
|
||||||
sub_08032290(this);
|
sub_08032290(this);
|
||||||
return 1;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_080322E8(Entity* this) {
|
void sub_080322E8(Entity* this) {
|
||||||
u8 tmp;
|
|
||||||
if (this->field_0x78.HALF.LO) {
|
if (this->field_0x78.HALF.LO) {
|
||||||
if (--this->field_0x78.HALF.LO == 0) {
|
if (--this->field_0x78.HALF.LO == 0) {
|
||||||
u32 flipX = this->spriteSettings.flipX;
|
u32 flipX = this->spriteSettings.flipX;
|
||||||
this->spriteSettings.flipX = flipX ^ 1;
|
this->spriteSettings.flipX = flipX ^ 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
tmp = this->direction;
|
u8 tmp = this->direction;
|
||||||
if (tmp & 0xF) {
|
if (tmp & 0xF) {
|
||||||
tmp >>= 4;
|
tmp >>= 4;
|
||||||
tmp ^= 1;
|
tmp ^= 1;
|
||||||
|
|
|
@ -34,7 +34,7 @@ void MiniSlime_OnCollision(Entity* this) {
|
||||||
|
|
||||||
void MiniSlime_OnDeath(Entity* this) {
|
void MiniSlime_OnDeath(Entity* this) {
|
||||||
Entity* parent = this->parent;
|
Entity* parent = this->parent;
|
||||||
if (this != parent && parent) {
|
if ((this != parent) && (parent != NULL)) {
|
||||||
this->field_0x6c.HALF.LO &= 0x7f;
|
this->field_0x6c.HALF.LO &= 0x7f;
|
||||||
this->parent->child = this->child;
|
this->parent->child = this->child;
|
||||||
this->child->parent = this->parent;
|
this->child->parent = this->parent;
|
||||||
|
|
|
@ -380,7 +380,7 @@ bool32 sub_080288A4(Entity* this) {
|
||||||
|
|
||||||
void sub_080288C0(Entity* this) {
|
void sub_080288C0(Entity* this) {
|
||||||
Entity* ent = this->child;
|
Entity* ent = this->child;
|
||||||
if (ent && (ent->bitfield & 0x80)) {
|
if ((ent != NULL) && (ent->bitfield & 0x80)) {
|
||||||
this->knockbackDirection = ent->knockbackDirection;
|
this->knockbackDirection = ent->knockbackDirection;
|
||||||
this->iframes = -ent->iframes;
|
this->iframes = -ent->iframes;
|
||||||
this->knockbackSpeed = ent->knockbackSpeed;
|
this->knockbackSpeed = ent->knockbackSpeed;
|
||||||
|
|
|
@ -117,7 +117,7 @@ void sub_08064EE8(Entity* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fxEnt = CreateFx(this, confettiFx, 0);
|
fxEnt = CreateFx(this, confettiFx, 0);
|
||||||
if (fxEnt && bVar1 == 2) {
|
if ((fxEnt != NULL) && (bVar1 == 2)) {
|
||||||
fxEnt->spriteSettings.flipX = 1;
|
fxEnt->spriteSettings.flipX = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,11 +15,9 @@ void Book(Entity* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_0809B3C4(Entity* this) {
|
void sub_0809B3C4(Entity* this) {
|
||||||
u32 obtained;
|
u32 obtained = GetInventoryValue(this->type + ITEM_QST_BOOK1);
|
||||||
|
|
||||||
obtained = GetInventoryValue(this->type + ITEM_QST_BOOK1);
|
|
||||||
if (this->type2 != 3) {
|
if (this->type2 != 3) {
|
||||||
if (obtained) {
|
if (obtained != 0) {
|
||||||
DeleteThisEntity();
|
DeleteThisEntity();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -55,22 +53,23 @@ void sub_0809B3C4(Entity* this) {
|
||||||
case 1: {
|
case 1: {
|
||||||
u32 scroll;
|
u32 scroll;
|
||||||
u32 height;
|
u32 height;
|
||||||
|
|
||||||
this->action = 3;
|
this->action = 3;
|
||||||
scroll = (u16)gRoomControls.scroll_y - 0x10;
|
scroll = (u16)gRoomControls.scroll_y - 0x10;
|
||||||
height = (u16)this->y.HALF.HI - scroll;
|
height = (u16)this->y.HALF.HI - scroll;
|
||||||
this->z.HALF.HI -= height;
|
this->z.HALF.HI -= height;
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
case 2:
|
case 2:
|
||||||
this->action = 4;
|
this->action = 4;
|
||||||
return;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
this->action = 5;
|
this->action = 5;
|
||||||
this->subAction = 0;
|
this->subAction = 0;
|
||||||
this->spritePriority.b0 = 3;
|
this->spritePriority.b0 = 3;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +91,7 @@ void sub_0809B4A8(Entity* this) {
|
||||||
this->speed = 64;
|
this->speed = 64;
|
||||||
this->direction = 16;
|
this->direction = 16;
|
||||||
|
|
||||||
gPlayerState.pushedObject = 0x9e;
|
gPlayerState.pushedObject = TREE_THORNS;
|
||||||
gPlayerState.queued_action = PLAYER_PUSH;
|
gPlayerState.queued_action = PLAYER_PUSH;
|
||||||
gPlayerState.flags |= PL_BUSY;
|
gPlayerState.flags |= PL_BUSY;
|
||||||
|
|
||||||
|
@ -134,7 +133,7 @@ void sub_0809B56C(Entity* this) {
|
||||||
SetFlag(this->field_0x86.HWORD);
|
SetFlag(this->field_0x86.HWORD);
|
||||||
|
|
||||||
fx = CreateFx(this, FX_DEATH, 0);
|
fx = CreateFx(this, FX_DEATH, 0);
|
||||||
if (fx) {
|
if (fx != NULL) {
|
||||||
SortEntityAbove(this, fx);
|
SortEntityAbove(this, fx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -152,9 +151,8 @@ void sub_0809B5EC(Entity* this) {
|
||||||
if (this->spriteSettings.draw == 1) {
|
if (this->spriteSettings.draw == 1) {
|
||||||
switch (this->subAction) {
|
switch (this->subAction) {
|
||||||
case 0: {
|
case 0: {
|
||||||
Entity* parent;
|
Entity* parent = FindEntityByID(NPC, STURGEON, 7);
|
||||||
parent = FindEntityByID(NPC, STURGEON, 7);
|
if (parent == NULL) {
|
||||||
if (!parent) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (parent->x.HALF.HI < this->x.HALF.HI) {
|
if (parent->x.HALF.HI < this->x.HALF.HI) {
|
||||||
|
@ -170,7 +168,7 @@ void sub_0809B5EC(Entity* this) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 1: {
|
case 1: {
|
||||||
if (!this->parent || !this->parent->next) {
|
if ((this->parent == NULL) || (this->parent->next == NULL)) {
|
||||||
DeleteThisEntity();
|
DeleteThisEntity();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -206,9 +204,8 @@ void sub_0809B5EC(Entity* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 sub_0809B688(Entity* this) {
|
u32 sub_0809B688(Entity* this) {
|
||||||
u32 ret;
|
u32 ret = EntityInRectRadius(this, &gPlayerEntity, 6, 12);
|
||||||
|
|
||||||
ret = EntityInRectRadius(this, &gPlayerEntity, 6, 12);
|
|
||||||
if (ret == 1 && gPlayerState.field_0xd != 16) {
|
if (ret == 1 && gPlayerState.field_0xd != 16) {
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
|
@ -217,8 +214,7 @@ u32 sub_0809B688(Entity* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_0809B6B0(Entity* parent, Entity* this) {
|
void sub_0809B6B0(Entity* parent, Entity* this) {
|
||||||
s32 offset;
|
s32 offset = (s32)gUnk_08123D94[parent->animationState >> 1] << 16;
|
||||||
offset = (s32)gUnk_08123D94[parent->animationState >> 1] << 16;
|
|
||||||
|
|
||||||
PositionRelative(parent, this, 0, offset);
|
PositionRelative(parent, this, 0, offset);
|
||||||
|
|
||||||
|
|
|
@ -144,6 +144,7 @@ void sub_080844E0(SpecialFxObject* this) {
|
||||||
static const u8 gUnk_0811FAC8[] = { 0x03, 0x37, 0x38, 0x39 };
|
static const u8 gUnk_0811FAC8[] = { 0x03, 0x37, 0x38, 0x39 };
|
||||||
static const u8 gUnk_0811FACC[] = { 0x17, 0x3e, 0x3f, 0x40 };
|
static const u8 gUnk_0811FACC[] = { 0x17, 0x3e, 0x3f, 0x40 };
|
||||||
const struct_0811F960* ptr;
|
const struct_0811F960* ptr;
|
||||||
|
|
||||||
super->action = 1;
|
super->action = 1;
|
||||||
super->flags &= ~0x80;
|
super->flags &= ~0x80;
|
||||||
super->spriteSettings.draw = 1;
|
super->spriteSettings.draw = 1;
|
||||||
|
@ -219,7 +220,7 @@ void sub_08084680(SpecialFxObject* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_08084694(SpecialFxObject* this) {
|
void sub_08084694(SpecialFxObject* this) {
|
||||||
if (!super->parent || !super->parent->next) {
|
if ((super->parent == NULL) || (super->parent->next == NULL)) {
|
||||||
DeleteThisEntity();
|
DeleteThisEntity();
|
||||||
}
|
}
|
||||||
GetNextFrame(super);
|
GetNextFrame(super);
|
||||||
|
@ -253,12 +254,15 @@ void sub_080846B0(SpecialFxObject* this) {
|
||||||
|
|
||||||
void sub_0808471C(SpecialFxObject* this) {
|
void sub_0808471C(SpecialFxObject* this) {
|
||||||
static const s8 gUnk_0811FB08[] = { -8, -8, 8, -8, -8, 8, 8, 8 };
|
static const s8 gUnk_0811FB08[] = { -8, -8, 8, -8, -8, 8, 8, 8 };
|
||||||
|
|
||||||
GetNextFrame(super);
|
GetNextFrame(super);
|
||||||
if (super->frame & ANIM_DONE) {
|
if (super->frame & ANIM_DONE) {
|
||||||
u32 i;
|
u32 i;
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
Entity* fx = CreateFx(super, 0x24, 0);
|
Entity* fx = CreateFx(super, 0x24, 0);
|
||||||
if (fx) {
|
|
||||||
|
if (fx != NULL) {
|
||||||
const s8* ptr = &gUnk_0811FB08[2 * i];
|
const s8* ptr = &gUnk_0811FB08[2 * i];
|
||||||
fx->x.HALF.HI += ptr[0];
|
fx->x.HALF.HI += ptr[0];
|
||||||
fx->y.HALF.HI += ptr[1];
|
fx->y.HALF.HI += ptr[1];
|
||||||
|
@ -280,7 +284,7 @@ void sub_08084784(SpecialFxObject* this) {
|
||||||
|
|
||||||
void sub_08084798(SpecialFxObject* this) {
|
void sub_08084798(SpecialFxObject* this) {
|
||||||
GetNextFrame(super);
|
GetNextFrame(super);
|
||||||
if ((super->frame & ANIM_DONE) || !super->child->next) {
|
if ((super->frame & ANIM_DONE) || (super->child->next == NULL)) {
|
||||||
DeleteThisEntity();
|
DeleteThisEntity();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue