1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-22 06:52:03 +00:00

Cleanup z_collision_check 1 (#1427)

* Cleanup `z_collision_check.c` and structs

* Revert `other*` names to master, split to other pr

* WIP/experimental: `ColliderCylinderElement`

* Revert "WIP/experimental: `ColliderCylinderElement`"

This reverts commit cfc8c32ace.

* ac/atHitInfo -> HitElem

* rename some collider elements to "elem" (instead of item, info, hurtbox...)

* cut down on more "hitbox" usage

* name all `ColliderElement*` temps properly

* rearrange colcheck structs

* add collider shape name descriptions

* reword collider shape descriptions

* jntsph first again

---------

Co-authored-by: fig02 <fig02srl@gmail.com>
This commit is contained in:
Dragorn421 2024-01-11 16:30:47 +01:00 committed by GitHub
parent f02d012ce7
commit 1a8772e540
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
93 changed files with 1725 additions and 1601 deletions

View file

@ -304,8 +304,8 @@ void EnDh_Attack(EnDh* this, PlayState* play) {
Animation_Change(&this->skelAnime, &object_dh_Anim_004658, -1.0f, this->skelAnime.curFrame, 0.0f, ANIMMODE_ONCE,
-4.0f);
this->actionState = 4;
this->collider2.base.atFlags = this->collider2.elements[0].info.toucherFlags = AT_NONE; // also TOUCH_NONE
this->collider2.elements[0].info.toucher.dmgFlags = this->collider2.elements[0].info.toucher.damage = 0;
this->collider2.base.atFlags = this->collider2.elements[0].base.toucherFlags = AT_NONE; // also TOUCH_NONE
this->collider2.elements[0].base.toucher.dmgFlags = this->collider2.elements[0].base.toucher.damage = 0;
}
switch (this->actionState) {
case 1:
@ -318,16 +318,16 @@ void EnDh_Attack(EnDh* this, PlayState* play) {
break;
case 2:
if (this->skelAnime.curFrame >= 4.0f) {
this->collider2.base.atFlags = this->collider2.elements[0].info.toucherFlags =
this->collider2.base.atFlags = this->collider2.elements[0].base.toucherFlags =
AT_ON | AT_TYPE_ENEMY; // also TOUCH_ON | TOUCH_SFX_WOOD
this->collider2.elements[0].info.toucher.dmgFlags = DMG_DEFAULT;
this->collider2.elements[0].info.toucher.damage = 8;
this->collider2.elements[0].base.toucher.dmgFlags = DMG_DEFAULT;
this->collider2.elements[0].base.toucher.damage = 8;
}
if (this->collider2.base.atFlags & AT_BOUNCED) {
this->collider2.base.atFlags &= ~(AT_HIT | AT_BOUNCED);
this->collider2.base.atFlags = this->collider2.elements[0].info.toucherFlags =
this->collider2.base.atFlags = this->collider2.elements[0].base.toucherFlags =
AT_NONE; // also TOUCH_NONE
this->collider2.elements[0].info.toucher.dmgFlags = this->collider2.elements[0].info.toucher.damage = 0;
this->collider2.elements[0].base.toucher.dmgFlags = this->collider2.elements[0].base.toucher.damage = 0;
this->actionState++;
} else if (this->collider2.base.atFlags & AT_HIT) {
this->collider2.base.atFlags &= ~AT_HIT;
@ -343,9 +343,9 @@ void EnDh_Attack(EnDh* this, PlayState* play) {
Animation_Change(&this->skelAnime, &object_dh_Anim_004658, -1.0f,
Animation_GetLastFrame(&object_dh_Anim_004658), 0.0f, ANIMMODE_ONCE, -4.0f);
this->actionState++;
this->collider2.base.atFlags = this->collider2.elements[0].info.toucherFlags =
this->collider2.base.atFlags = this->collider2.elements[0].base.toucherFlags =
AT_NONE; // also TOUCH_NONE
this->collider2.elements[0].info.toucher.dmgFlags = this->collider2.elements[0].info.toucher.damage = 0;
this->collider2.elements[0].base.toucher.dmgFlags = this->collider2.elements[0].base.toucher.damage = 0;
}
break;
case 5:
@ -374,10 +374,10 @@ void EnDh_Burrow(EnDh* this, PlayState* play) {
case 0:
this->actionState++;
this->drawDirtWave++;
this->collider1.base.atFlags = this->collider1.info.toucherFlags =
this->collider1.base.atFlags = this->collider1.elem.toucherFlags =
AT_ON | AT_TYPE_ENEMY; // also TOUCH_ON | TOUCH_SFX_WOOD
this->collider1.info.toucher.dmgFlags = DMG_DEFAULT;
this->collider1.info.toucher.damage = 4;
this->collider1.elem.toucher.dmgFlags = DMG_DEFAULT;
this->collider1.elem.toucher.damage = 4;
FALLTHROUGH;
case 1:
this->dirtWavePhase += 0x47E;
@ -393,8 +393,8 @@ void EnDh_Burrow(EnDh* this, PlayState* play) {
case 2:
this->drawDirtWave = false;
this->collider1.dim.radius = 35;
this->collider1.base.atFlags = this->collider1.info.toucherFlags = AT_NONE; // Also TOUCH_NONE
this->collider1.info.toucher.dmgFlags = this->collider1.info.toucher.damage = 0;
this->collider1.base.atFlags = this->collider1.elem.toucherFlags = AT_NONE; // Also TOUCH_NONE
this->collider1.elem.toucher.dmgFlags = this->collider1.elem.toucher.damage = 0;
EnDh_SetupWait(this);
break;
}
@ -477,8 +477,8 @@ void EnDh_CollisionCheck(EnDh* this, PlayState* play) {
if ((this->collider2.base.acFlags & AC_HIT) && !this->retreat) {
this->collider2.base.acFlags &= ~AC_HIT;
if ((this->actor.colChkInfo.damageEffect != 0) && (this->actor.colChkInfo.damageEffect != 6)) {
this->collider2.base.atFlags = this->collider2.elements[0].info.toucherFlags = AT_NONE; // also TOUCH_NONE
this->collider2.elements[0].info.toucher.dmgFlags = this->collider2.elements[0].info.toucher.damage = 0;
this->collider2.base.atFlags = this->collider2.elements[0].base.toucherFlags = AT_NONE; // also TOUCH_NONE
this->collider2.elements[0].base.toucher.dmgFlags = this->collider2.elements[0].base.toucher.damage = 0;
if (player->unk_844 != 0) {
this->unk_258 = player->unk_845;
}