CActor fixes, nearly matched

This commit is contained in:
Phillip Stephens 2025-01-18 16:51:02 -08:00
parent 32a88ad894
commit 9e537083d9
7 changed files with 22 additions and 18 deletions

View File

@ -88,7 +88,7 @@ public:
return CModelFlags(*this, GetOtherFlags() | kF_DepthGreater);
}
ETrans GetTrans() const { return static_cast< ETrans >(x0_blendMode); }
char GetTrans() const { return static_cast< ETrans >(x0_blendMode); }
int GetShaderSet() const { return x1_matSetIdx; }
uint GetOtherFlags() const { return x2_flags; }
CColor GetColor() const { return x4_color; }

View File

@ -141,10 +141,10 @@ private:
rstl::pair< CAssetId, CAssetId > x44_xrayAssets;
rstl::pair< CAssetId, CAssetId > x4c_thermalAssets;
CVisorParameters x54_visor;
uchar x58_24_useGlobalRenderTime : 1;
uchar x58_25_thermalHeat : 1;
uchar x58_26_forceRenderUnsorted : 1;
uchar x58_27_noSortThermal : 1;
bool x58_24_useGlobalRenderTime : 1;
bool x58_25_thermalHeat : 1;
bool x58_26_forceRenderUnsorted : 1;
bool x58_27_noSortThermal : 1;
float x5c_fadeInTime;
float x60_fadeOutTime;
float x64_thermalMag;

View File

@ -52,7 +52,9 @@ public:
const TLockedToken< CSkinnedModel >& GetModelData() const { return xd8_modelData; }
void SetIsAnimating(bool v) { x220_24_animating = v; }
void SetParticleEffectState(const rstl::string& name, const bool active, CStateManager& mgr);
void SetParticleEffectState(const rstl::string& name, const bool active, CStateManager& mgr) {
x120_particleDB.SetParticleEffectState(name, active, mgr);
}
int GetCharacterIndex() const { return x204_charIdx; }
float GetAverageVelocity(int idx) const;

View File

@ -9,7 +9,7 @@
class CArchitectureQueue {
public:
void Push(const CArchitectureMessage& msg) { x0_queue.push_back(msg); }
void Push(const CArchitectureMessage& msg);// { x0_queue.push_back(msg); }
CArchitectureMessage Pop() {
CArchitectureMessage result = *x0_queue.begin();
x0_queue.pop_front();

View File

@ -22,11 +22,6 @@ enum EWeaponType {
};
class CWeaponMode {
EWeaponType x0_weaponType;
bool x4_24_charged : 1;
bool x4_25_comboed : 1;
bool x4_26_instantKill : 1;
public:
explicit CWeaponMode(EWeaponType type = kWT_None, const bool charged = false,
const bool comboed = false, const bool instaKill = false)
@ -52,6 +47,12 @@ public:
static CWeaponMode Power() { return CWeaponMode(kWT_Power); }
static CWeaponMode Bomb() { return CWeaponMode(kWT_Bomb); }
static CWeaponMode PowerBomb() { return CWeaponMode(kWT_PowerBomb); }
private:
EWeaponType x0_weaponType;
bool x4_24_charged : 1;
bool x4_25_comboed : 1;
bool x4_26_instantKill : 1;
};
#endif // _WEAPONTYPES

View File

@ -1,5 +1,6 @@
#include "dolphin/gx.h"
#include "dolphin/gx/GXPriv.h"
#include <math.h>
extern float cosf(float x);
extern float sqrtf(float x);

View File

@ -816,13 +816,13 @@ void CActor::SetDrawShadow(bool enabled) {
// TODO nonmatching
bool CActor::CanDrawStatic() const {
if (!GetActive() || !HasModelData() || static_cast< char >(xb4_drawFlags.GetTrans()) > 4)
if (!GetActive() || !HasModelData() || xb4_drawFlags.GetTrans() > 4) {
return false;
}
if (GetModelData()->IsNull() || GetModelData()->HasAnimation()) {
return false;
if (HasModelData() && GetAnimationData() == nullptr)
return true;
return false;
}
return true;
}
void CActor::UpdateSfxEmitters() {