summaryrefslogtreecommitdiff
path: root/src/c
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2023-07-16 22:09:21 +0300
committerGitHub <noreply@github.com>2023-07-16 13:09:21 -0600
commit0b12611fea47ac9aa298fec779a57d9e86eb9751 (patch)
tree9eaaa1b44e3d18332678d012eea85c55202f8ca3 /src/c
parentfe7fbf37db6bd57efa63d8a2e4499b9163947533 (diff)
dMsgScrnTree_c OK, Some JGeometry work (#370)
* Minor work on c_damagereaction and JGeomtry * dMsgScrnTree_c OK * dMsgScrnExplain_c OK
Diffstat (limited to 'src/c')
-rw-r--r--src/c/c_damagereaction.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/c/c_damagereaction.cpp b/src/c/c_damagereaction.cpp
index 8116bd5d95..656c272dac 100644
--- a/src/c/c_damagereaction.cpp
+++ b/src/c/c_damagereaction.cpp
@@ -71,17 +71,25 @@ SECTION_SDATA2 static f64 lit_3736 = 4503599627370496.0 /* cast u32 to float */;
/* 8001817C-800182A4 012ABC 0128+00 1/0 0/0 0/0 .text
* execute__24JPTraceParticleCallBack4FP14JPABaseEmitterP15JPABaseParticle */
+// Matches with TVec3<f32> ctors
#ifdef NONMATCHING
void JPTraceParticleCallBack4::execute(JPABaseEmitter* param_0, JPABaseParticle* param_1) {
- int age = param_1->getAge();
+ u32 age = param_1->getAge();
if (age != 0) {
- JGeometry::TVec3<f32> vec1;
- JGeometry::TVec3<f32> vec2;
+ Vec* user_work = (Vec*)param_0->getUserWork();
+ f32 fVar1 = (25.0f - age) / 25.0f;
+ if (fVar1 < 0.0f) {
+ fVar1 = 0.0f;
+ }
+ JGeometry::TVec3<f32> vec1(user_work[age]);
+ vec1.scale(0.3f * fVar1);
+ JGeometry::TVec3<f32> vec2(user_work[0]);
+ vec2.scale(0.5f * fVar1);
JGeometry::TVec3<f32> vec3;
- void* user_work = param_0->getUserWork();
- user_work[age*0x0C];
- param_1->setOffsetPosition(param_1->getOffsetPosition() + )
+ param_1->getOffsetPosition(vec3);
+ vec3.add(vec1 + vec2);
+ param_1->setOffsetPosition(vec3);
}
}
#else
@@ -129,6 +137,10 @@ SECTION_DATA extern void* __vt__24JPTraceParticleCallBack4[5] = {
/* 80018328-80018388 012C68 0060+00 2/1 0/0 0/0 .text __dt__24JPTraceParticleCallBack4Fv
*/
+// Needs JPAParticleCallBack inheritance and function order issues in the file
+#ifdef NONMATCHING
+JPTraceParticleCallBack4::~JPTraceParticleCallBack4() {}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -137,7 +149,7 @@ asm JPTraceParticleCallBack4::~JPTraceParticleCallBack4() {
#include "asm/c/c_damagereaction/__dt__24JPTraceParticleCallBack4Fv.s"
}
#pragma pop
-
+#endif
/* ############################################################################################## */
/* 803A357C-803A3590 00069C 0014+00 1/1 3/3 0/0 .data __vt__19JPAParticleCallBack */
SECTION_DATA extern void* __vt__19JPAParticleCallBack[5] = {