diff options
| author | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2023-12-30 00:50:19 -0500 |
|---|---|---|
| committer | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2023-12-30 00:50:19 -0500 |
| commit | 82b429b72f53fc0faa7ada5f84e76ff5169d129b (patch) | |
| tree | 676e2391806f3329768a954648727e6b4922a416 /src/d/d_cc_s.cpp | |
| parent | 5b3810dba91821a87b202f7c573a9e5d504c85db (diff) | |
start adding particle/hitmark enums + some d_cc_s
Diffstat (limited to 'src/d/d_cc_s.cpp')
| -rw-r--r-- | src/d/d_cc_s.cpp | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/d/d_cc_s.cpp b/src/d/d_cc_s.cpp index 36ac3bea..582b5689 100644 --- a/src/d/d_cc_s.cpp +++ b/src/d/d_cc_s.cpp @@ -5,6 +5,7 @@ #include "d/d_cc_s.h" #include "d/d_cc_d.h" +#include "d/d_com_inf_game.h" /* 800AD5B0-800AD5E4 .text Ct__4dCcSFv */ void dCcS::Ct() { @@ -58,8 +59,40 @@ void dCcS::CalcParticleAngle(dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, csXyz*) { } /* 800ADFF8-800AE308 .text ProcAtTgHitmark__4dCcSFbbP8cCcD_ObjP8cCcD_ObjP12dCcD_GObjInfP12dCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10dCcD_GSttsP10dCcD_GSttsP4cXyz */ -void dCcS::ProcAtTgHitmark(bool, bool, cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*, dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, dCcD_GStts*, dCcD_GStts*, cXyz*) { - /* Nonmatching */ +void dCcS::ProcAtTgHitmark(bool, bool, cCcD_Obj* r6, cCcD_Obj* r7, dCcD_GObjInf* atInf, dCcD_GObjInf* tgInf, + cCcD_Stts* r10, cCcD_Stts* r30, dCcD_GStts*, dCcD_GStts* r4, cXyz* pos) +{ + if (atInf->ChkAtNoHitMark()) { return; } + if (tgInf->ChkTgNoHitMark()) { return; } + if (tgInf->GetTgHitMark() == 0xFF) { return; } + if (!r4->ChkNoneActorPerfTblId()) { return; } + + if (!ChkShield(r6, r7, atInf, tgInf)) { + if (atInf->GetAtHitMark() == 0) { return; } + if (atInf->GetAtHitMark() == 1 && tgInf->GetTgHitMark() == 1) { + dComIfGp_particle_set(dPa_name::ID_COMMON_STARS_BLOW, pos); + } else { + csXyz angle; + CalcParticleAngle(atInf, r10, r30, &angle); + if (atInf->GetAtHitMark() == 0xF) { + dComIfGp_particle_set(0x10, pos); + cXyz scale; + scale.x = scale.y = scale.z = 2.0f; + dComIfGp_particle_set(dPa_name::ID_COMMON_NORMAL_HIT, pos, &angle, &scale); + } else if (atInf->GetAtHitMark() == 1) { + dComIfGp_particle_set(dPa_name::ID_COMMON_NORMAL_HIT, pos, &angle); + } else { + dComIfGp_particle_set(atInf->GetAtHitMark(), pos, &angle); + } + dKy_SordFlush_set(*pos, 1); + } + } else { + if (tgInf->GetTgHitMark() == 0) { return; } + dKy_SordFlush_set(*pos, 0); + csXyz angle; + CalcParticleAngle(atInf, r10, r30, &angle); + dComIfGp_particle_set(tgInf->GetTgHitMark(), pos, &angle); + } } /* 800AE308-800AE5AC .text SetAtTgGObjInf__4dCcSFbbP8cCcD_ObjP8cCcD_ObjP12cCcD_GObjInfP12cCcD_GObjInfP9cCcD_SttsP9cCcD_SttsP10cCcD_GSttsP10cCcD_GSttsP4cXyz */ |
