From 6a7834cc2d5cf6604fc2d36b6a6a4e42247249b4 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Sat, 18 Nov 2023 15:23:33 -0800 Subject: [PATCH] d_a_obj start --- src/d/d_a_obj.cpp | 234 +++++++++++++++++++++++++++------------------- 1 file changed, 138 insertions(+), 96 deletions(-) diff --git a/src/d/d_a_obj.cpp b/src/d/d_a_obj.cpp index f6de228e7..7cb636080 100644 --- a/src/d/d_a_obj.cpp +++ b/src/d/d_a_obj.cpp @@ -3,101 +3,143 @@ // Translation Unit: d_a_obj.cpp // -#include "d_a_obj.h" -#include "dolphin/types.h" +#include "d/d_a_obj.h" +#include "d/d_bg_s_gnd_chk.h" +#include "d/d_com_inf_game.h" +#include "d/d_procname.h" +#include "m_Do/m_Do_mtx.h" +#include "JSystem/JParticle/JPAEmitter.h" -/* 800666EC-800668BC .text make_land_effect__5daObjFP10fopAc_ac_cP11dBgS_GndChkf */ -void daObj::make_land_effect(fopAc_ac_c*, dBgS_GndChk*, float) { - /* Nonmatching */ +namespace daObj { + /* 800666EC-800668BC .text make_land_effect__5daObjFP10fopAc_ac_cP11dBgS_GndChkf */ + void make_land_effect(fopAc_ac_c* ac, dBgS_GndChk* chk, f32 scale) { + /* Nonmatching */ + switch (dComIfG_Bgsp()->GetAttributeCode(*chk)) { + case 19: + { + cXyz scaleV; + scaleV.setall(scale * 0.85f); + JPABaseEmitter* pEmtr = dComIfGp_particle_set(0x23, &ac->current.pos, NULL, &scaleV); + if (pEmtr != NULL) { + pEmtr->setRate(50.0f); + pEmtr->setMaxFrame(1); + pEmtr->setSpread(1.0f); + pEmtr->setDirectionalSpeed(12.0f); + } + } + break; + case 4: + { + cXyz scaleV; + scaleV.setall(scale); + JPABaseEmitter* pEmtr = dComIfGp_particle_set(0x24, &ac->current.pos, NULL, &scaleV); + if (pEmtr != NULL) { + pEmtr->setLifeTime(20); + pEmtr->setRate(50.0f); + pEmtr->setMaxFrame(1); + pEmtr->setSpread(1.0f); + pEmtr->setDirectionalSpeed(20.0f); + pEmtr->setGlobalTranslation(cXyz(0.0f, 5.0f, 0.0f)); + } + } + break; + case 5: + case 10: + case 15: + case 27: + break; + default: + { + cXyz scaleV; + scaleV.setall(scale); + scaleV *= (5.0f / 3.0f); + fopAcM_create(PROC_Obj_Eff, 3, ac->getPositionP(), -1, NULL, &scaleV, 0xFF, NULL); + } + break; + } + } + + /* 800668BC-800669E8 .text get_wind_spd__5daObjFP10fopAc_ac_cf */ + void get_wind_spd(fopAc_ac_c*, f32) { + /* Nonmatching */ + } + + /* 800669E8-80066B0C .text get_path_spd__5daObjFR13cBgS_PolyInfof */ + void get_path_spd(cBgS_PolyInfo&, f32) { + /* Nonmatching */ + } + + /* 80066B0C-80066B3C .text posMoveF_stream__5daObjFP10fopAc_ac_cPC4cXyzPC4cXyzff */ + void posMoveF_stream(fopAc_ac_c*, const cXyz*, const cXyz*, f32, f32) { + /* Nonmatching */ + } + + namespace { + /* 80066B3C-80066C38 .text posMoveF_resist_acc__Q25daObj21@unnamed@d_a_obj_cpp@FP4cXyzPC10fopAc_ac_cPC4cXyzff */ + void posMoveF_resist_acc(cXyz*, const fopAc_ac_c*, const cXyz*, f32, f32) { + /* Nonmatching */ + } + + /* 80066C38-80066D6C .text posMoveF_grade_acc__Q25daObj21@unnamed@d_a_obj_cpp@FP4cXyzPC10fopAc_ac_cPC4cXyzffPC4cXyzPC4cXyz */ + void posMoveF_grade_acc(cXyz*, const fopAc_ac_c*, const cXyz*, f32, f32, const cXyz*, const cXyz*) { + /* Nonmatching */ + } + } + + /* 80066D6C-8006700C .text posMoveF_grade__5daObjFP10fopAc_ac_cPC4cXyzPC4cXyzffPC4cXyzffPC4cXyz */ + void posMoveF_grade(fopAc_ac_c*, const cXyz*, const cXyz*, f32, f32, const cXyz*, f32, f32, const cXyz*) { + /* Nonmatching */ + } + + /* 8006700C-800671D4 .text quat_rotBaseY__5daObjFP10QuaternionRC4cXyz */ + void quat_rotBaseY(Quaternion*, const cXyz&) { + /* Nonmatching */ + } + + /* 800671D4-8006737C .text quat_rotBaseY2__5daObjFP10QuaternionRC4cXyz */ + void quat_rotBaseY2(Quaternion*, const cXyz&) { + /* Nonmatching */ + } + + /* 8006737C-80067524 .text quat_rotBaseZ__5daObjFP10QuaternionRC4cXyz */ + void quat_rotBaseZ(Quaternion*, const cXyz&) { + /* Nonmatching */ + } + + /* 80067524-800676EC .text quat_rotVec__5daObjFP10QuaternionRC4cXyzRC4cXyz */ + void quat_rotVec(Quaternion*, const cXyz&, const cXyz&) { + /* Nonmatching */ + } + + /* 800676EC-80067734 .text SetCurrentRoomNo__5daObjFP10fopAc_ac_cP11dBgS_GndChk */ + void SetCurrentRoomNo(fopAc_ac_c* ac, dBgS_GndChk* chk) { + s32 roomId = dComIfG_Bgsp()->GetRoomId(*chk); + if (roomId >= 0) + fopAcM_SetRoomNo(ac, roomId); + } + + /* 80067734-800678A8 .text HitSeStart__5daObjFPC4cXyziPC12dCcD_GObjInfUl */ + void HitSeStart(const cXyz*, int, const dCcD_GObjInf*, unsigned long) { + /* Nonmatching */ + } + + /* 800678A8-800679FC .text HitEff_sub_kikuzu__5daObjFPC4cXyzPC4cXyzPC12dKy_tevstr_c */ + void HitEff_sub_kikuzu(const cXyz*, const cXyz*, const dKy_tevstr_c*) { + /* Nonmatching */ + } + + /* 800679FC-80067AE0 .text HitEff_kikuzu__5daObjFPC10fopAc_ac_cPC8dCcD_Cyl */ + void HitEff_kikuzu(const fopAc_ac_c*, const dCcD_Cyl*) { + /* Nonmatching */ + } + + /* 80067AF0-80067C40 .text HitEff_hibana__5daObjFPC4cXyzPC4cXyz */ + void HitEff_hibana(const cXyz*, const cXyz*) { + /* Nonmatching */ + } + + /* 80067C40-80067D1C .text HitEff_hibana__5daObjFPC10fopAc_ac_cPC8dCcD_Cyl */ + void HitEff_hibana(const fopAc_ac_c*, const dCcD_Cyl*) { + /* Nonmatching */ + } } - -/* 800668BC-800669E8 .text get_wind_spd__5daObjFP10fopAc_ac_cf */ -void daObj::get_wind_spd(fopAc_ac_c*, float) { - /* Nonmatching */ -} - -/* 800669E8-80066B0C .text get_path_spd__5daObjFR13cBgS_PolyInfof */ -void daObj::get_path_spd(cBgS_PolyInfo&, float) { - /* Nonmatching */ -} - -/* 80066B0C-80066B3C .text posMoveF_stream__5daObjFP10fopAc_ac_cPC4cXyzPC4cXyzff */ -void daObj::posMoveF_stream(fopAc_ac_c*, const cXyz*, const cXyz*, float, float) { - /* Nonmatching */ -} - -/* 80066B3C-80066C38 .text posMoveF_resist_acc__Q25daObj21@unnamed@d_a_obj_cpp@FP4cXyzPC10fopAc_ac_cPC4cXyzff */ -void daObj::@unnamed@d_a_obj_cpp@::posMoveF_resist_acc(cXyz*, const fopAc_ac_c*, const cXyz*, float, float) { - /* Nonmatching */ -} - -/* 80066C38-80066D6C .text posMoveF_grade_acc__Q25daObj21@unnamed@d_a_obj_cpp@FP4cXyzPC10fopAc_ac_cPC4cXyzffPC4cXyzPC4cXyz */ -void daObj::@unnamed@d_a_obj_cpp@::posMoveF_grade_acc(cXyz*, const fopAc_ac_c*, const cXyz*, float, float, const cXyz*, const cXyz*) { - /* Nonmatching */ -} - -/* 80066D6C-8006700C .text posMoveF_grade__5daObjFP10fopAc_ac_cPC4cXyzPC4cXyzffPC4cXyzffPC4cXyz */ -void daObj::posMoveF_grade(fopAc_ac_c*, const cXyz*, const cXyz*, float, float, const cXyz*, float, float, const cXyz*) { - /* Nonmatching */ -} - -/* 8006700C-800671D4 .text quat_rotBaseY__5daObjFP10QuaternionRC4cXyz */ -void daObj::quat_rotBaseY(Quaternion*, const cXyz&) { - /* Nonmatching */ -} - -/* 800671D4-8006737C .text quat_rotBaseY2__5daObjFP10QuaternionRC4cXyz */ -void daObj::quat_rotBaseY2(Quaternion*, const cXyz&) { - /* Nonmatching */ -} - -/* 8006737C-80067524 .text quat_rotBaseZ__5daObjFP10QuaternionRC4cXyz */ -void daObj::quat_rotBaseZ(Quaternion*, const cXyz&) { - /* Nonmatching */ -} - -/* 80067524-800676EC .text quat_rotVec__5daObjFP10QuaternionRC4cXyzRC4cXyz */ -void daObj::quat_rotVec(Quaternion*, const cXyz&, const cXyz&) { - /* Nonmatching */ -} - -/* 800676EC-80067734 .text SetCurrentRoomNo__5daObjFP10fopAc_ac_cP11dBgS_GndChk */ -void daObj::SetCurrentRoomNo(fopAc_ac_c*, dBgS_GndChk*) { - /* Nonmatching */ -} - -/* 80067734-800678A8 .text HitSeStart__5daObjFPC4cXyziPC12dCcD_GObjInfUl */ -void daObj::HitSeStart(const cXyz*, int, const dCcD_GObjInf*, unsigned long) { - /* Nonmatching */ -} - -/* 800678A8-800679FC .text HitEff_sub_kikuzu__5daObjFPC4cXyzPC4cXyzPC12dKy_tevstr_c */ -void daObj::HitEff_sub_kikuzu(const cXyz*, const cXyz*, const dKy_tevstr_c*) { - /* Nonmatching */ -} - -/* 800679FC-80067AE0 .text HitEff_kikuzu__5daObjFPC10fopAc_ac_cPC8dCcD_Cyl */ -void daObj::HitEff_kikuzu(const fopAc_ac_c*, const dCcD_Cyl*) { - /* Nonmatching */ -} - -/* 80067AE0-80067AE8 .text GetCoCP__12cCcD_CylAttrFv */ -void cCcD_CylAttr::GetCoCP() { - /* Nonmatching */ -} - -/* 80067AE8-80067AF0 .text GetCoCP__12cCcD_SphAttrFv */ -void cCcD_SphAttr::GetCoCP() { - /* Nonmatching */ -} - -/* 80067AF0-80067C40 .text HitEff_hibana__5daObjFPC4cXyzPC4cXyz */ -void daObj::HitEff_hibana(const cXyz*, const cXyz*) { - /* Nonmatching */ -} - -/* 80067C40-80067D1C .text HitEff_hibana__5daObjFPC10fopAc_ac_cPC8dCcD_Cyl */ -void daObj::HitEff_hibana(const fopAc_ac_c*, const dCcD_Cyl*) { - /* Nonmatching */ -} -