start adding particle/hitmark enums + some d_cc_s

This commit is contained in:
LagoLunatic
2023-12-30 00:50:19 -05:00
parent 5b3810dba9
commit 82b429b72f
18 changed files with 135 additions and 79 deletions
+24 -17
View File
@@ -8,6 +8,7 @@
#include "SSystem/SComponent/c_cc_d.h"
#include "f_pc/f_pc_manager.h"
#include "d/d_particle_name.h"
enum dCcG_At_SPrm {
G_AT_SPRM_NO_CON_HIT = 0x01,
@@ -30,9 +31,13 @@ enum dCcG_Co_SPrm {
enum dCcD_hitSe {};
enum CcG_At_HitMark {
/* 0xD */ G_AT_MARK_NORMAL_HIT = dPa_name::ID_COMMON_NORMAL_HIT,
/* 0xF */ G_AT_MARK_BIG_HIT = dPa_name::ID_COMMON_BIG_HIT,
};
enum CcG_Tg_HitMark {
CcG_Tg_UNK_MARK_6 = 6,
CcG_Tg_UNK_MARK_8 = 8,
/* 0xC */ G_TG_MARK_PURPLE_HIT = dPa_name::ID_COMMON_PURPLE_HIT,
};
enum dCcG_At_Spl {};
@@ -106,7 +111,7 @@ public:
unsigned int GetAtOldApid() { return mAtOldApid; }
unsigned int GetTgOldApid() { return mTgOldApid; }
bool ChkNoActor() { return field_0x1C & 1; }
bool ChkNoneActorPerfTblId() { return field_0x08 == 0xFFFF; }
bool ChkNoneActorPerfTblId() { return mActorPerfTblId == 0xFFFF; }
dCcG_At_Spl GetAtSpl() { return (dCcG_At_Spl)mAtSpl; }
void SetAtSpl(dCcG_At_Spl spl) { mAtSpl = spl; }
dCcG_Tg_Spl GetTgSpl() { return (dCcG_Tg_Spl)mTgSpl; }
@@ -117,7 +122,7 @@ public:
/* 0x04 */ u8 mAtSpl;
/* 0x05 */ u8 mTgSpl;
/* 0x06 */ u8 mRoomId;
/* 0x08 */ u16 field_0x08;
/* 0x08 */ u16 mActorPerfTblId;
/* 0x0C */ int mAtApid;
/* 0x10 */ int mAtOldApid;
/* 0x14 */ int mTgApid;
@@ -217,7 +222,7 @@ public:
void SetHitMark(u8 mark) { mHitMark = mark; }
void SetSe(u8 se) { mSe = se; }
void SetMtrl(u8 mtrl) { mMtrl = mtrl; }
void SetAtSpl(dCcG_At_Spl spl) { mSpl = spl; }
void SetSpl(dCcG_At_Spl spl) { mSpl = spl; }
u8 GetSe() { return mSe; }
u8 GetSpl() { return mSpl; }
u8 GetMtrl() { return mMtrl; }
@@ -251,6 +256,7 @@ public:
void SetHitMark(CcG_Tg_HitMark mark) { mHitMark = mark; }
s16* GetShieldFrontRangeYAngle() { return mShieldFrontRangeYAngle; }
u8 GetSpl() { return mSpl; }
void SetSpl(dCcG_Tg_Spl spl) { mSpl = spl; }
u8 GetHitMark() { return mHitMark; }
void SetRVec(cXyz& vec) { mRVec = vec; }
cXyz* GetVecP() { return &mVec; }
@@ -313,14 +319,21 @@ public:
void SetAtVec(cXyz& vec) { mGObjAt.SetVec(vec); }
void SetTgVec(cXyz& vec) { mGObjTg.SetVec(vec); }
bool ChkAtNoMass() { return mGObjAt.ChkSPrm(G_AT_SPRM_NO_MASS); }
bool ChkAtNoHitMark() { return mGObjAt.ChkSPrm(G_AT_SPRM_NO_HIT_MARK); }
void OnAtNoHitMark() { mGObjAt.OnSPrm(G_AT_SPRM_NO_HIT_MARK); }
void OffAtNoHitMark() { mGObjAt.OffSPrm(G_AT_SPRM_NO_HIT_MARK); }
bool ChkTgNoHitMark() { return mGObjTg.ChkSPrm(G_TG_SPRM_NO_HIT_MARK); }
void OnTgNoHitMark() { mGObjTg.OnSPrm(G_TG_SPRM_NO_HIT_MARK); }
void OffTgNoHitMark() { mGObjTg.OffSPrm(G_TG_SPRM_NO_HIT_MARK); }
bool ChkAtNoConHit() { return mGObjAt.ChkSPrm(G_AT_SPRM_NO_CON_HIT); }
void OnAtNoConHit() { mGObjAt.OnSPrm(G_AT_SPRM_NO_CON_HIT); }
void OffAtNoConHit() { mGObjAt.OffSPrm(G_AT_SPRM_NO_CON_HIT); }
bool ChkTgNoConHit() { return mGObjTg.ChkSPrm(G_TG_SPRM_NO_CON_HIT); }
void OnTgNoConHit() { mGObjTg.OnSPrm(G_TG_SPRM_NO_CON_HIT); }
int GetAtHitMark() { return mGObjAt.GetHitMark(); }
int GetTgHitMark() { return mGObjTg.GetHitMark(); }
void SetAtHitMark(u8 mark) { mGObjAt.SetHitMark(mark); }
void SetTgHitMark(CcG_Tg_HitMark mark) { mGObjTg.SetHitMark(mark); }
void SetAtSe(u8 se) { mGObjAt.SetSe(se); }
void SetTgSe(u8 se) { mGObjTg.SetSe(se); }
void SetAtMtrl(u8 mtrl) { mGObjAt.SetMtrl(mtrl); }
@@ -329,27 +342,26 @@ public:
cXyz* GetAtVecP() { return mGObjAt.GetVecP(); }
cXyz* GetTgVecP() { return mGObjTg.GetVecP(); }
cXyz* GetTgRVecP() { return mGObjTg.GetRVecP(); }
void SetAtSpl(dCcG_At_Spl spl) { mGObjAt.SetAtSpl(spl); }
dCcG_At_Spl GetAtSpl() { return (dCcG_At_Spl)mGObjAt.GetSpl(); }
void SetAtSpl(dCcG_At_Spl spl) { mGObjAt.SetSpl(spl); }
dCcG_Tg_Spl GetTgSpl() { return (dCcG_Tg_Spl)mGObjTg.GetSpl(); }
void SetTgSpl(dCcG_Tg_Spl spl) { mGObjTg.SetSpl(spl); }
void SetAtHitCallback(dCcD_HitCallback callback) { mGObjAt.SetHitCallback(callback); }
void SetTgHitCallback(dCcD_HitCallback callback) { mGObjTg.SetHitCallback(callback); }
void SetCoHitCallback(dCcD_HitCallback callback) { mGObjCo.SetHitCallback(callback); }
u8 GetAtSe() { return mGObjAt.GetSe(); }
dCcG_At_Spl GetAtSpl() { return (dCcG_At_Spl)mGObjAt.GetSpl(); }
u8 GetAtMtrl() { return mGObjAt.GetMtrl(); }
u8 GetTgMtrl() { return mGObjTg.GetMtrl(); }
fopAc_ac_c* GetTgHitAc() { return mGObjTg.GetAc(); }
void SetTgShieldFrontRangeYAngle(s16* angle) { mGObjTg.SetShieldFrontRangeYAngle(angle); }
void SetTgHitMark(CcG_Tg_HitMark mark) { mGObjTg.SetHitMark(mark); }
bool ChkTgShield() { return mGObjTg.ChkSPrm(G_TG_SPRM_SHIELD); }
void OnTgShield() { mGObjTg.OnSPrm(G_TG_SPRM_SHIELD); }
void OffTgShield() { mGObjTg.OffSPrm(G_TG_SPRM_SHIELD); }
bool ChkTgShieldFrontRange() { return mGObjTg.ChkSPrm(G_TG_SPRM_SHIELD_FRONT_RANGE); }
void OnTgShieldFrontRange() { mGObjTg.OnSPrm(G_TG_SPRM_SHIELD_FRONT_RANGE); }
void OffTgShieldFrontRange() { mGObjTg.OffSPrm(G_TG_SPRM_SHIELD_FRONT_RANGE); }
s16* GetTgShieldFrontRangeYAngle() { return mGObjTg.GetShieldFrontRangeYAngle(); }
bool ChkTgShield() { return mGObjTg.ChkSPrm(G_TG_SPRM_SHIELD); }
bool ChkTgShieldFrontRange() { return mGObjTg.ChkSPrm(G_TG_SPRM_SHIELD_FRONT_RANGE); }
bool ChkAtNoConHit() { return mGObjAt.ChkSPrm(G_AT_SPRM_NO_CON_HIT); }
bool ChkAtStopNoConHit() { return mGObjAt.ChkSPrm(G_AT_SPRM_STOP_NO_CON_HIT); }
bool ChkTgNoConHit() { return mGObjTg.ChkSPrm(G_TG_SPRM_NO_CON_HIT); }
bool ChkCoAtLasso() { return mGObjCo.ChkSPrm(G_CO_SPRM_AT_LASSO); }
bool ChkCoTgLasso() { return mGObjCo.ChkSPrm(G_CO_SPRM_TG_LASSO); }
dCcD_HitCallback GetCoHitCallback() { return mGObjCo.GetHitCallback(); }
@@ -367,11 +379,6 @@ public:
bool ChkCoHitNoActor() { return mGObjCo.ChkRPrm(1); }
bool ChkAtHitNoActor() { return mGObjAt.ChkRPrm(2); }
bool ChkTgHitNoActor() { return mGObjTg.ChkRPrm(1); }
bool ChkAtNoHitMark() { return mGObjAt.ChkSPrm(G_AT_SPRM_NO_HIT_MARK); }
bool ChkTgNoHitMark() { return mGObjTg.ChkSPrm(G_TG_SPRM_NO_HIT_MARK); }
dCcG_Tg_Spl GetTgSpl() { return (dCcG_Tg_Spl)mGObjTg.GetSpl(); }
int GetTgHitMark() { return mGObjTg.GetHitMark(); }
int GetAtHitMark() { return mGObjAt.GetHitMark(); }
bool ChkAtEffCounter() { return mGObjAt.ChkEffCounter(); }
bool ChkTgEffCounter() { return mGObjTg.ChkEffCounter(); }
void ClrAtEffCounter() { mGObjAt.ClrEffCounter(); }
+1
View File
@@ -393,6 +393,7 @@ void dKy_instant_timechg(f32);
void dKy_instant_rainchg();
SND_INFLUENCE * dKy_Sound_get();
void dKy_Sound_set(cXyz i_pos, int param_1, unsigned int i_actorID, int param_3);
void dKy_SordFlush_set(cXyz hitPos, int lightType);
void dKy_itudemo_se();
void dKy_actor_addcol_set(s16, s16, s16, f32);
void dKy_actor_addcol_amb_set(s16, s16, s16, f32);
+1
View File
@@ -6,6 +6,7 @@
#include "JSystem/JGeometry.h"
#include "JSystem/JParticle/JPAParticle.h"
#include "JSystem/JParticle/JPAEmitter.h"
#include "d/d_particle_name.h"
#include "f_pc/f_pc_node.h"
#include "m_Do/m_Do_ext.h"
+14
View File
@@ -4,6 +4,20 @@
#include "dolphin/types.h"
namespace dPa_name {
enum {
ID_COMMON_SMOKE_DEBRIS = 0x2008,
ID_COMMON_SMOKE_CLOUD = 0x2009,
ID_COMMON_SMOKE_CIRCLE = 0x200A,
ID_COMMON_LIGHT_FLASH = 0xB,
ID_COMMON_PURPLE_HIT = 0xC,
ID_COMMON_NORMAL_HIT = 0xD,
ID_COMMON_BIG_HIT = 0xF,
ID_COMMON_FUSE_SPARKS = 0x11,
ID_COMMON_LIGHT_EXPLOSION = 0x272,
ID_COMMON_STARS_SPIN = 0x27A,
ID_COMMON_STARS_BLOW = 0x27B,
};
enum {
ID_SCENE_END = 0x8466,
};
+4 -4
View File
@@ -88,7 +88,7 @@ dCcD_SrcCyl cc_cyl_src = {
/* SrcGObjAt Mtrl */ 0,
/* SrcGObjAt SPrm */ 0,
/* SrcGObjTg Se */ 0x05,
/* SrcGObjTg HitMark */ 0x0C,
/* SrcGObjTg HitMark */ G_TG_MARK_PURPLE_HIT,
/* SrcGObjTg Spl */ 0,
/* SrcGObjTg Mtrl */ 0,
/* SrcGObjTg SPrm */ G_TG_SPRM_SHIELD | G_TG_SPRM_NO_CON_HIT,
@@ -119,7 +119,7 @@ BOOL enemy_ice(enemyice* ei) {
if (ei->mLightShrinkTimer == 1) { // Just started dying to light arrows.
ei->mLightShrinkTimer++;
dComIfGp_particle_set(0x272, &pos, NULL, &particleScale);
dComIfGp_particle_set(dPa_name::ID_COMMON_LIGHT_EXPLOSION, &pos, NULL, &particleScale);
ac->mTevStr.mFogColor.b = 0xFF;
ac->mTevStr.mFogColor.g = 0xFF;
ac->mTevStr.mFogColor.r = 0xFF;
@@ -331,7 +331,7 @@ BOOL enemy_ice(enemyice* ei) {
dComIfGp_particle_set(0x10, &pos);
csXyz angle(0, fopAcM_searchPlayerAngleY(ac), 0);
particleScale.setall(2.0f);
dComIfGp_particle_set(0xD, &pos, &angle, &particleScale);
dComIfGp_particle_set(dPa_name::ID_COMMON_NORMAL_HIT, &pos, &angle, &particleScale);
dScnPly_ply_c::setPauseTimer(8);
}
@@ -591,7 +591,7 @@ void enemy_fire_remove(enemyfire* ef) {
/* 8001D428-8001D48C .text enemy_piyo_set__FP10fopAc_ac_c */
void enemy_piyo_set(fopAc_ac_c* enemy) {
// Creates the rotating stars particle for when an enemy is stunned.
dComIfGp_particle_set(0x27A, &enemy->mAttentionInfo.mPosition);
dComIfGp_particle_set(dPa_name::ID_COMMON_STARS_SPIN, &enemy->mAttentionInfo.mPosition);
}
/* 8001D48C-8001D890 .text wall_angle_get__FP10fopAc_ac_cs */
+5 -5
View File
@@ -268,9 +268,9 @@ static BOOL medama_atari_check(am_class* i_this) {
cc_at_check(i_this, &atInfo);
i_this->mMaxHealth = 10;
i_this->mHealth = 10;
dComIfGp_particle_set(0x27B, &i_this->mAttentionInfo.mPosition);
dComIfGp_particle_set(dPa_name::ID_COMMON_STARS_BLOW, &i_this->mAttentionInfo.mPosition);
} else {
dComIfGp_particle_set(0xC, &hitPos);
dComIfGp_particle_set(dPa_name::ID_COMMON_PURPLE_HIT, &hitPos);
}
fopAcM_seStart(i_this, JA_SE_LK_MS_WEP_HIT, 0x42);
}
@@ -319,7 +319,7 @@ static BOOL medama_atari_check(am_class* i_this) {
}
break;
default:
dComIfGp_particle_set(0xC, &hitPos);
dComIfGp_particle_set(dPa_name::ID_COMMON_PURPLE_HIT, &hitPos);
fopAcM_seStart(i_this, JA_SE_LK_MS_WEP_HIT, 0x42);
break;
}
@@ -1330,7 +1330,7 @@ static s32 daAM_Create(fopAc_ac_c* i_actor) {
/* SrcGObjAt Mtrl */ 0,
/* SrcGObjAt SPrm */ 0,
/* SrcGObjTg Se */ 0,
/* SrcGObjTg HitMark */ 0x0C,
/* SrcGObjTg HitMark */ G_TG_MARK_PURPLE_HIT,
/* SrcGObjTg Spl */ 0,
/* SrcGObjTg Mtrl */ 0,
/* SrcGObjTg SPrm */ G_TG_SPRM_SHIELD | G_TG_SPRM_NO_CON_HIT,
@@ -1362,7 +1362,7 @@ static s32 daAM_Create(fopAc_ac_c* i_actor) {
/* SrcGObjAt Mtrl */ 0,
/* SrcGObjAt SPrm */ 0,
/* SrcGObjTg Se */ 0,
/* SrcGObjTg HitMark */ 0x0C,
/* SrcGObjTg HitMark */ G_TG_MARK_PURPLE_HIT,
/* SrcGObjTg Spl */ 0,
/* SrcGObjTg Mtrl */ 0,
/* SrcGObjTg SPrm */ G_TG_SPRM_SHIELD | G_TG_SPRM_NO_CON_HIT,
+6 -6
View File
@@ -175,9 +175,9 @@ static BOOL medama_atari_check(am2_class* i_this) {
atInfo.pParticlePos = NULL;
cc_at_check(i_this, &atInfo);
i_this->mHealth = origHealth;
dComIfGp_particle_set(0x27B, &i_this->mAttentionInfo.mPosition);
dComIfGp_particle_set(dPa_name::ID_COMMON_STARS_BLOW, &i_this->mAttentionInfo.mPosition);
} else {
dComIfGp_particle_set(0xC, &hitPos);
dComIfGp_particle_set(dPa_name::ID_COMMON_PURPLE_HIT, &hitPos);
}
fopAcM_seStart(i_this, JA_SE_LK_MS_WEP_HIT, 0x42);
}
@@ -315,9 +315,9 @@ static BOOL week_atari_check(am2_class* i_this) {
if (hitType == 1) {
dComIfGp_particle_set(0x10, &hitPos);
cXyz particleScale(2.0f, 2.0f, 2.0f);
dComIfGp_particle_set(0xF, &hitPos, &player->shape_angle, &particleScale);
dComIfGp_particle_set(dPa_name::ID_COMMON_BIG_HIT, &hitPos, &player->shape_angle, &particleScale);
} else {
dComIfGp_particle_set(0xD, &hitPos, &player->shape_angle);
dComIfGp_particle_set(dPa_name::ID_COMMON_NORMAL_HIT, &hitPos, &player->shape_angle);
}
i_this->mAction = ACTION_ITAI;
@@ -1441,7 +1441,7 @@ static s32 daAM2_Create(fopAc_ac_c* i_actor) {
/* SrcGObjAt Mtrl */ 0,
/* SrcGObjAt SPrm */ 0,
/* SrcGObjTg Se */ 0,
/* SrcGObjTg HitMark */ 0x0C,
/* SrcGObjTg HitMark */ G_TG_MARK_PURPLE_HIT,
/* SrcGObjTg Spl */ 0,
/* SrcGObjTg Mtrl */ 0,
/* SrcGObjTg SPrm */ G_TG_SPRM_SHIELD | G_TG_SPRM_NO_CON_HIT,
@@ -1473,7 +1473,7 @@ static s32 daAM2_Create(fopAc_ac_c* i_actor) {
/* SrcGObjAt Mtrl */ 0,
/* SrcGObjAt SPrm */ 0,
/* SrcGObjTg Se */ 0,
/* SrcGObjTg HitMark */ 0x0C,
/* SrcGObjTg HitMark */ G_TG_MARK_PURPLE_HIT,
/* SrcGObjTg Spl */ 0,
/* SrcGObjTg Mtrl */ 0,
/* SrcGObjTg SPrm */ G_TG_SPRM_SHIELD | G_TG_SPRM_NO_CON_HIT,
+2 -2
View File
@@ -34,7 +34,7 @@ const dCcD_SrcCps daArrow_c::m_at_cps_src = {
/* SrcObjTg SPrm */ 0,
/* SrcObjCo SPrm */ 0,
/* SrcGObjAt Se */ 0x07,
/* SrcGObjAt HitMark */ 0x0D,
/* SrcGObjAt HitMark */ G_AT_MARK_NORMAL_HIT,
/* SrcGObjAt Spl */ 0,
/* SrcGObjAt Mtrl */ 0,
/* SrcGObjAt SPrm */ 0,
@@ -836,7 +836,7 @@ BOOL daArrow_c::procMove() {
csXyz temp9;
cM3d_CalcVecZAngle(triPla->mNormal, &temp9);
dComIfGp_particle_setP1(0xC, &field_0x6a8, &temp9);
dComIfGp_particle_setP1(dPa_name::ID_COMMON_PURPLE_HIT, &field_0x6a8, &temp9);
fopAcM_seStartCurrent(this, JA_SE_LK_ARROW_REBOUND, mtrlSndId);
} else {
fopAcM_seStartCurrent(this, JA_SE_LK_ARROW_HIT, mtrlSndId);
+6 -6
View File
@@ -196,7 +196,7 @@ bool daArrow_Iceeff_c::_execute() {
daArrow_c* arrow = static_cast<daArrow_c*>(fopAcM_SearchByID(mParentPcId));
if(field_0xA38 == 0) {
if(arrow == 0) {
dComIfGp_particle_setP1(0x55, &current.pos, &current.angle, 0);
dComIfGp_particle_setP1(0x55, &current.pos, &current.angle);
fopAcM_delete(this);
return true;
@@ -219,7 +219,7 @@ bool daArrow_Iceeff_c::_execute() {
field_0xA30++;
}
else {
dComIfGp_particle_setP1(0x55, &current.pos, &current.angle, 0);
dComIfGp_particle_setP1(0x55, &current.pos, &current.angle);
fopAcM_seStartCurrent(this, JA_SE_OBJ_MINI_ICE_BREAK, 0);
fopAcM_delete(arrow);
fopAcM_delete(this);
@@ -234,7 +234,7 @@ bool daArrow_Iceeff_c::_execute() {
csXyz angle;
angle.set(-0x4000, 0, 0);
JPABaseEmitter* ptcl = dComIfGp_particle_setP1(0x29E, &current.pos, &angle, 0);
JPABaseEmitter* ptcl = dComIfGp_particle_setP1(0x29E, &current.pos, &angle);
if(ptcl) {
JGeometry::TVec3<f32> scale(0.5f, 0.5f, 0.5f);
ptcl->setGlobalScale(scale);
@@ -258,14 +258,14 @@ bool daArrow_Iceeff_c::_execute() {
}
if(field_0xA30 == 0x23) {
JPABaseEmitter* ptcl = dComIfGp_particle_setSingleRipple(0x3D, &current.pos, 0, &ripple_scale);
JPABaseEmitter* ptcl = dComIfGp_particle_setSingleRipple(0x3D, &current.pos, NULL, &ripple_scale);
if(ptcl) {
JGeometry::TVec3<f32> scale(0.67f, 0.67f, 1.0f);
ptcl->setGlobalParticleScale(scale);
}
}
else if(field_0xA30 == 0x28) {
JPABaseEmitter* ptcl = dComIfGp_particle_setP1(0x55, &current.pos, 0, 0);
JPABaseEmitter* ptcl = dComIfGp_particle_setP1(0x55, &current.pos);
if(ptcl) {
ptcl->setAwayFromCenterSpeed(25.0f);
ptcl->setAwayFromAxisSpeed(5.0f);
@@ -276,7 +276,7 @@ bool daArrow_Iceeff_c::_execute() {
ptcl->setGlobalParticleScale(scale2);
}
dComIfGp_particle_setSingleRipple(0x3F, &current.pos, 0, &ripple_scale);
dComIfGp_particle_setSingleRipple(0x3F, &current.pos, NULL, &ripple_scale);
fopAcM_seStartCurrent(this, JA_SE_OBJ_MINI_ICE_BREAK, 0);
field_0xA3C = 0;
+5 -5
View File
@@ -145,23 +145,23 @@ void daArrow_Lighteff_c::CreateInit() {
if(field_0x2E8 == 1) {
if(field_0x2F4.getEmitter() == 0) {
dComIfGp_particle_setP1(0x299, &field_0x29C, &current.angle, 0, 0xFF, &field_0x2F4);
dComIfGp_particle_setP1(0x299, &field_0x29C, &current.angle, NULL, 0xFF, &field_0x2F4);
}
}
else if(field_0x2E8 == 2) {
if(field_0x2F4.getEmitter() == 0) {
dComIfGp_particle_setP1(0x29C, &field_0x29C, &current.angle, 0, 0xFF, &field_0x2F4);
dComIfGp_particle_setP1(0x29C, &field_0x29C, &current.angle, NULL, 0xFF, &field_0x2F4);
}
if(field_0x308.getEmitter() == 0) {
dComIfGp_particle_setP1(0x29D, &field_0x29C, &current.angle, 0, 0xFF, &field_0x308);
dComIfGp_particle_setP1(0x29D, &field_0x29C, &current.angle, NULL, 0xFF, &field_0x308);
}
}
else if(field_0x2E8 == 3) {
if(field_0x2F4.getEmitter() == 0) {
dComIfGp_particle_setP1(0x29F, &field_0x29C, &current.angle, 0, 0xFF, &field_0x2F4);
dComIfGp_particle_setP1(0x29F, &field_0x29C, &current.angle, NULL, 0xFF, &field_0x2F4);
}
if(field_0x308.getEmitter() == 0) {
dComIfGp_particle_setP1(0x2A0, &field_0x29C, &current.angle, 0, 0xFF, &field_0x308);
dComIfGp_particle_setP1(0x2A0, &field_0x29C, &current.angle, NULL, 0xFF, &field_0x308);
}
}
+6 -6
View File
@@ -701,10 +701,10 @@ namespace daBomb2 {
}
void Act_c::eff_explode_normal(const csXyz* rotation) {
dComIfGp_particle_setP1(0xB, &current.pos, rotation, &mScale, 0xFF, 0, -1, 0, 0, 0);
dComIfGp_particle_setBombSmoke(0x2009, &current.pos, 0, &mScale, 0xFF);
dComIfGp_particle_setBombSmoke(0x200A, &current.pos, 0, &mScale, 0xFF);
dComIfGp_particle_setToonP1(0x2008, &current.pos, 0, &mScale, 0xFF, 0, -1, 0, 0, 0);
dComIfGp_particle_setP1(dPa_name::ID_COMMON_LIGHT_FLASH, &current.pos, rotation, &mScale);
dComIfGp_particle_setBombSmoke(dPa_name::ID_COMMON_SMOKE_CLOUD, &current.pos, NULL, &mScale);
dComIfGp_particle_setBombSmoke(dPa_name::ID_COMMON_SMOKE_CIRCLE, &current.pos, NULL, &mScale);
dComIfGp_particle_setToonP1(dPa_name::ID_COMMON_SMOKE_DEBRIS, &current.pos, NULL, &mScale);
}
void Act_c::eff_explode_water() {
@@ -733,8 +733,8 @@ namespace daBomb2 {
field_0x6CC = field_0x6C0;
field_0x6D8 = field_0x6C0;
dComIfGp_particle_setP1(0x11, &field_0x6C0, 0, &mScale, 0xFF, &mSparks, -1, 0, 0, 0);
dComIfGp_particle_setToonP1(0x2012, &field_0x6C0, 0, &mScale, 0xDC, &mSmoke, -1, 0, 0, 0);
dComIfGp_particle_setP1(dPa_name::ID_COMMON_FUSE_SPARKS, &field_0x6C0, NULL, &mScale, 0xFF, &mSparks);
dComIfGp_particle_setToonP1(0x2012, &field_0x6C0, NULL, &mScale, 0xDC, &mSmoke);
mSmoke.setOldPosP(&field_0x6CC, &field_0x6D8);
}
}
+11 -11
View File
@@ -637,7 +637,7 @@ void daBomb_c::makeFireEffect(cXyz& pos, csXyz& rotation) {
rotation.x = rotation.x + 0x4000;
rotation.z = rotation.z;
dComIfGp_particle_setBombSmoke(0x200A, &pos, &rotation, &scale);
dComIfGp_particle_setBombSmoke(dPa_name::ID_COMMON_SMOKE_CIRCLE, &pos, &rotation, &scale);
dComIfGp_getVibration().StartShock(7, -0x21, cXyz(0.0f, 1.0f, 0.0f));
}
@@ -673,8 +673,8 @@ void daBomb_c::setFuseEffect() {
mFusePos2 = mFusePos;
mFusePos3 = mFusePos;
dComIfGp_particle_setP1(0x11, &mFusePos, 0, &mScale, 0xFF, &mSparks, -1, 0, 0, 0);
dComIfGp_particle_setToonP1(0x2012, &mFusePos, 0, &mScale, 0xDC, &mSmoke, -1, 0, 0, 0);
dComIfGp_particle_setP1(dPa_name::ID_COMMON_FUSE_SPARKS, &mFusePos, NULL, &mScale, 0xFF, &mSparks);
dComIfGp_particle_setToonP1(0x2012, &mFusePos, NULL, &mScale, 0xDC, &mSmoke);
mSmoke.field_0x0C = &mFusePos2;
mSmoke.field_0x10 = &mFusePos3;
mSmoke.field_0x04 = 0x14;
@@ -682,27 +682,27 @@ void daBomb_c::setFuseEffect() {
}
void daBomb_c::eff_explode_normal(const csXyz* rotation) {
dComIfGp_particle_setP1(0xB, &current.pos, rotation, &mScale, 0xFF, 0, -1, 0, 0, 0);
dComIfGp_particle_setBombSmoke(0x2009, &current.pos, 0, &mScale);
dComIfGp_particle_setBombSmoke(0x200A, &current.pos, 0, &mScale);
dComIfGp_particle_setToonP1(0x2008, &current.pos, 0, &mScale, 0xFF, 0, -1, 0, 0, 0);
dComIfGp_particle_setP1(dPa_name::ID_COMMON_LIGHT_FLASH, &current.pos, rotation, &mScale);
dComIfGp_particle_setBombSmoke(dPa_name::ID_COMMON_SMOKE_CLOUD, &current.pos, NULL, &mScale);
dComIfGp_particle_setBombSmoke(dPa_name::ID_COMMON_SMOKE_CIRCLE, &current.pos, NULL, &mScale);
dComIfGp_particle_setToonP1(dPa_name::ID_COMMON_SMOKE_DEBRIS, &current.pos, NULL, &mScale);
}
void daBomb_c::eff_explode_cheap(const csXyz* rotation) {
JPABaseEmitter* emitter = dComIfGp_particle_setP1(0xB, &current.pos, rotation, &mScale, 0xFF, 0, -1, 0, 0, 0);
JPABaseEmitter* emitter = dComIfGp_particle_setP1(dPa_name::ID_COMMON_LIGHT_FLASH, &current.pos, rotation, &mScale);
if(emitter) {
emitter->mLifeTime = 0xC;
JGeometry::TVec3<f32> vec(0.5f, 0.67f, 1.0f);
emitter->setGlobalParticleScale(vec);
}
dComIfGp_particle_setBombSmoke(0x232A, &current.pos, 0, &mScale);
emitter = dComIfGp_particle_setBombSmoke(0x200A, &current.pos, 0, &mScale);
dComIfGp_particle_setBombSmoke(0x232A, &current.pos, NULL, &mScale);
emitter = dComIfGp_particle_setBombSmoke(dPa_name::ID_COMMON_SMOKE_CIRCLE, &current.pos, NULL, &mScale);
if(emitter) {
emitter->mLifeTime = 0x46;
}
emitter = dComIfGp_particle_setToonP1(0x2008, &current.pos, 0, &mScale, 0xFF, 0, -1, 0, 0, 0);
emitter = dComIfGp_particle_setToonP1(dPa_name::ID_COMMON_SMOKE_DEBRIS, &current.pos, NULL, &mScale);
if(emitter) {
emitter->mLifeTime = 0x46;
emitter->mInitialVelAxis = 25.0f;
+6 -6
View File
@@ -75,15 +75,15 @@ void set_disappear(disappear_class* i_this, float scale) {
case 0xB:
case 0xC:
case 0xD:
dComIfGp_particle_set(0x14, &i_this->current.pos, 0, &particleScale);
dComIfGp_particle_set(0x14, &i_this->current.pos, NULL, &particleScale);
case 3:
dComIfGp_particle_set(0x13, &i_this->current.pos, 0, &particleScale);
dComIfGp_particle_setStripes(0x15, &i_this->current.pos, 0, &particleScale, 0xFF, 0x96);
dComIfGp_particle_set(0x16, &i_this->current.pos, 0, &particleScale);
dComIfGp_particle_set(0x13, &i_this->current.pos, NULL, &particleScale);
dComIfGp_particle_setStripes(0x15, &i_this->current.pos, NULL, &particleScale, 0xFF, 0x96);
dComIfGp_particle_set(0x16, &i_this->current.pos, NULL, &particleScale);
break;
case 1:
dComIfGp_particle_set(0x13, &i_this->current.pos, 0, &particleScale);
dComIfGp_particle_set(0x16, &i_this->current.pos, 0, &particleScale);
dComIfGp_particle_set(0x13, &i_this->current.pos, NULL, &particleScale);
dComIfGp_particle_set(0x16, &i_this->current.pos, NULL, &particleScale);
break;
case 4:
dComIfGp_particle_set(0x043C, &i_this->current.pos);
+1 -1
View File
@@ -343,7 +343,7 @@ int daObjTpost_c::getMsgXY() {
col.b = g_regHIO.mChild[12].mShortRegs[2] + 0x80;
mDoMtx_stack_c::copy(mMorf->getModel()->mpNodeMtx[2]);
mDoMtx_stack_c::multVec(&pos, &pos);
dComIfGp_particle_set(0x57, &pos, &shape_angle, &scale, 0xFF, 0, -1, &col);
dComIfGp_particle_set(0x57, &pos, &shape_angle, &scale, 0xFF, NULL, -1, &col);
break;
case 0x98:
+3 -3
View File
@@ -1870,7 +1870,7 @@ static dCcD_SrcCyl l_cyl_src = {
/* SrcGObjAt Mtrl */ 0,
/* SrcGObjAt SPrm */ 0,
/* SrcGObjTg Se */ 0x25,
/* SrcGObjTg HitMark */ 0x0C,
/* SrcGObjTg HitMark */ G_TG_MARK_PURPLE_HIT,
/* SrcGObjTg Spl */ 0,
/* SrcGObjTg Mtrl */ 0,
/* SrcGObjTg SPrm */ 0,
@@ -1925,7 +1925,7 @@ static dCcD_SrcCyl l_at_cyl_src = {
/* SrcObjTg SPrm */ 0,
/* SrcObjCo SPrm */ 0,
/* SrcGObjAt Se */ 0,
/* SrcGObjAt HitMark */ 0x0F,
/* SrcGObjAt HitMark */ G_AT_MARK_BIG_HIT,
/* SrcGObjAt Spl */ 0x01,
/* SrcGObjAt Mtrl */ 0,
/* SrcGObjAt SPrm */ 0,
@@ -1955,7 +1955,7 @@ static dCcD_SrcCps l_at_cps_src = {
/* SrcObjTg SPrm */ 0,
/* SrcObjCo SPrm */ 0,
/* SrcGObjAt Se */ 0x01,
/* SrcGObjAt HitMark */ 0x0D,
/* SrcGObjAt HitMark */ G_AT_MARK_NORMAL_HIT,
/* SrcGObjAt Spl */ 0,
/* SrcGObjAt Mtrl */ 0,
/* SrcGObjAt SPrm */ 0,
+3 -3
View File
@@ -645,7 +645,7 @@ bool daRd_c::checkTgHit() {
}
break;
case AT_TYPE_GRAPPLING_HOOK:
dComIfGp_particle_set(0x27B, &mAttentionInfo.mPosition);
dComIfGp_particle_set(dPa_name::ID_COMMON_STARS_BLOW, &mAttentionInfo.mPosition);
fopAcM_seStart(this, JA_SE_LK_W_WEP_HIT, 0x44);
mHitType = 0xE;
r29 = false;
@@ -662,14 +662,14 @@ bool daRd_c::checkTgHit() {
if (mHitType == 1 || mHitType == 7 || mHitType == 8 || mHealth <= 0) {
dComIfGp_particle_set(0x10, mCyl.GetTgHitPosP());
cXyz scale(2.0f, 2.0f, 2.0f);
dComIfGp_particle_set(0xF, temp, &player->shape_angle, &scale);
dComIfGp_particle_set(dPa_name::ID_COMMON_BIG_HIT, temp, &player->shape_angle, &scale);
if (mHealth <= 0) {
modeProcInit(MODE_DEATH);
} else {
modeProcInit(MODE_DAMAGE);
}
} else {
dComIfGp_particle_set(0xD, temp, &player->shape_angle);
dComIfGp_particle_set(dPa_name::ID_COMMON_NORMAL_HIT, temp, &player->shape_angle);
modeProcInit(MODE_DAMAGE);
}
} else if (mHitType == 0xE) {
+2 -2
View File
@@ -32,7 +32,7 @@ dCcD_GStts::dCcD_GStts() {
mAtSpl = 0;
mTgSpl = 0;
mRoomId = 0;
field_0x08 = -1;
mActorPerfTblId = -1;
mAtApid = -1;
mAtOldApid = -1;
mTgApid = -1;
@@ -45,7 +45,7 @@ void dCcD_GStts::Ct() {
mAtSpl = 0;
mTgSpl = 0;
mRoomId = 0;
field_0x08 = -1;
mActorPerfTblId = -1;
mAtApid = -1;
mAtOldApid = -1;
mTgApid = -1;
+35 -2
View File
@@ -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 */