summaryrefslogtreecommitdiff
path: root/src/d/d_a_obj.cpp
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2023-11-18 15:23:33 -0800
committerJasper St. Pierre <jstpierre@mecheye.net>2023-11-18 15:23:33 -0800
commit6a7834cc2d5cf6604fc2d36b6a6a4e42247249b4 (patch)
treebab4b84d878ba632b574ba97ef80ee13e0556d75 /src/d/d_a_obj.cpp
parentf8a62382905bce6ece3f0d85c6fb9b107ee8d120 (diff)
d_a_obj start
Diffstat (limited to 'src/d/d_a_obj.cpp')
-rw-r--r--src/d/d_a_obj.cpp236
1 files changed, 139 insertions, 97 deletions
diff --git a/src/d/d_a_obj.cpp b/src/d/d_a_obj.cpp
index f6de228e..7cb63608 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"
-
-/* 800666EC-800668BC .text make_land_effect__5daObjFP10fopAc_ac_cP11dBgS_GndChkf */
-void daObj::make_land_effect(fopAc_ac_c*, dBgS_GndChk*, float) {
- /* 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 */
+#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"
+
+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 */
+ }
}
-
-/* 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 */
-}
-