mirror of
https://github.com/PrimeDecomp/prime.git
synced 2026-07-12 18:18:56 -07:00
CMorphBall & link RMathUtils (#44)
* Update tool versions * Initial CMorphBall * Cleanup CMorphBall, link RMathUtils * Rematch a couple symbols * Fix _01 DolphinCGraphics .sdata size regression
This commit is contained in:
+94
-103
File diff suppressed because it is too large
Load Diff
@@ -1060,7 +1060,7 @@ BuildDynamicLightListForWorld__13CStateManagerFv = .text:0x800457FC; // type:fun
|
||||
push_back__Q24rstl42vector<6CLight,Q24rstl17rmemory_allocator>FRC6CLight = .text:0x80045A40; // type:function size:0x7C scope:global
|
||||
fn_80045A40 = .text:0x80045ABC; // type:function size:0x28 scope:global
|
||||
__as__Q24rstl42vector<6CLight,Q24rstl17rmemory_allocator>FRCQ24rstl42vector<6CLight,Q24rstl17rmemory_allocator> = .text:0x80045AE4; // type:function size:0xD4 scope:global
|
||||
uninitialized_copy<PC6CLight,6CLight>__4rstlFPC6CLightPC6CLightP6CLight = .text:0x80045BB8; // type:function size:0x64 scope:global
|
||||
uninitialized_copy<P6CLight,6CLight>__4rstlFP6CLightP6CLightP6CLight = .text:0x80045BB8; // type:function size:0x64 scope:global
|
||||
DrawDebugStuff__13CStateManagerCFv = .text:0x80045C1C; // type:function size:0x4 scope:global
|
||||
RenderCamerasAndAreaLights__13CStateManagerCFv = .text:0x80045C20; // type:function size:0x5C scope:global
|
||||
DrawE3DeathEffect__13CStateManagerCFv = .text:0x80045C7C; // type:function size:0x164 scope:global
|
||||
@@ -1144,7 +1144,7 @@ CalculateObjectBounds__13CStateManagerFRC6CActor = .text:0x8004C99C; // type:fun
|
||||
AddObject__13CStateManagerFR7CEntity = .text:0x8004CB90; // type:function size:0x1E0 scope:global
|
||||
AddObject__13CStateManagerFP7CEntity = .text:0x8004CD70; // type:function size:0x28 scope:global
|
||||
fn_8004CD1C = .text:0x8004CD98; // type:function size:0x14 scope:global
|
||||
RayCollideWorldInternal__13CStateManagerRC9CVector3fRC9CVector3fRC15CMaterialFilterRCQ24rstl49reserved_vector<9TUniqueId,1024>RC6CActor = .text:0x8004CDAC; // type:function size:0x10C scope:global
|
||||
RayCollideWorldInternal__13CStateManagerCFRC9CVector3fRC9CVector3fRC15CMaterialFilterRCQ24rstl32reserved_vector<9TUniqueId,1024>PC6CActor = .text:0x8004CDAC; // type:function size:0x10C scope:global
|
||||
RayCollideWorld__13CStateManagerFRC9CVector3fRC9CVector3fRC15CMaterialFilterPC6CActor = .text:0x8004CEB8; // type:function size:0x130 scope:global
|
||||
RayCollideWorld__13CStateManagerCFRC9CVector3fRC9CVector3fRCQ24rstl32reserved_vector<9TUniqueId,1024>RC15CMaterialFilterPC6CActor = .text:0x8004CFE8; // type:function size:0x2C scope:global
|
||||
RayStaticIntersection__13CStateManagerCFRC9CVector3fRC9CVector3ffRC15CMaterialFilter = .text:0x8004D014; // type:function size:0x2C scope:global
|
||||
@@ -1157,8 +1157,8 @@ __dt__22CStateManagerContainerFv = .text:0x8004D780; // type:function size:0x20C
|
||||
__dt__14CCameraManagerFv = .text:0x8004D98C; // type:function size:0x1B4 scope:global
|
||||
__dt__18CFluidPlaneManagerFv = .text:0x8004DB40; // type:function size:0xF8 scope:global
|
||||
__dt__13CEnvFxManagerFv = .text:0x8004DC38; // type:function size:0x184 scope:global
|
||||
fn_8004DD40 = .text:0x8004DDBC; // type:function size:0x50 scope:global
|
||||
fn_8004DD90 = .text:0x8004DE0C; // type:function size:0x68 scope:global
|
||||
__dt__Q24rstl39reserved_vector<17CEnvFxManagerGrid,64>Fv = .text:0x8004DDBC; // type:function size:0x50 scope:global
|
||||
clear__Q24rstl39reserved_vector<17CEnvFxManagerGrid,64>Fv = .text:0x8004DE0C; // type:function size:0x68 scope:global
|
||||
fn_8004DDF8 = .text:0x8004DE74; // type:function size:0x6C scope:global
|
||||
__dt__20CActorModelParticlesFv = .text:0x8004DEE0; // type:function size:0xE8 scope:global
|
||||
fn_8004DF4C = .text:0x8004DFC8; // type:function size:0x50 scope:global
|
||||
@@ -7366,7 +7366,7 @@ fn_80148F0C = .text:0x80148F88; // type:function size:0x98 scope:global
|
||||
fn_80148FA4 = .text:0x80149020; // type:function size:0xB4 scope:global
|
||||
fn_80149058 = .text:0x801490D4; // type:function size:0x8C scope:global
|
||||
reserve__Q24rstl48vector<11CElementGen,Q24rstl17rmemory_allocator>Fi = .text:0x80149160; // type:function size:0xE8 scope:global
|
||||
uninitialized_copy<Q24rstl116pointer_iterator<11CElementGen,Q24rstl48vector<11CElementGen,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,11CElementGen>__4rstlFQ24rstl116pointer_iterator<11CElementGen,Q24rstl48vector<11CElementGen,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl116pointer_iterator<11CElementGen,Q24rstl48vector<11CElementGen,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>P11CElementGen = .text:0x80149248; // type:function size:0x68 scope:global
|
||||
uninitialized_copy<Q24rstl116pointer_iterator<11CElementGen,Q24rstl48vector<11CElementGen,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,P11CElementGen>__4rstlFQ24rstl116pointer_iterator<11CElementGen,Q24rstl48vector<11CElementGen,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl116pointer_iterator<11CElementGen,Q24rstl48vector<11CElementGen,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>P11CElementGen = .text:0x80149248; // type:function size:0x68 scope:global
|
||||
fn_80149234 = .text:0x801492B0; // type:function size:0x7C scope:global
|
||||
__dt__8CBSTauntFv = .text:0x8014932C; // type:function size:0x5C scope:global
|
||||
GetBodyStateTransition__8CBSTauntFfR15CBodyController = .text:0x80149388; // type:function size:0xD4 scope:global
|
||||
@@ -21324,7 +21324,7 @@ lbl_805A8A21 = .sdata:0x805A8A21; // type:object size:0x1 data:byte
|
||||
lbl_805A8A22 = .sdata:0x805A8A22; // type:object size:0x1 data:byte
|
||||
lbl_805A8A24 = .sdata:0x805A8A24; // type:object size:0x4 align:4 data:float
|
||||
lbl_805A8A28 = .sdata:0x805A8A28; // type:object size:0x4
|
||||
lbl_805A8A2C = .sdata:0x805A8A2C; // type:object size:0x2 data:string
|
||||
lbl_805A8A2C = .sdata:0x805A8A2C; // type:object size:0x4 data:4byte
|
||||
lbl_805A8A30 = .sdata:0x805A8A30; // type:object size:0x4
|
||||
lbl_805A8A34 = .sdata:0x805A8A34; // type:object size:0x4
|
||||
lbl_805A8A38 = .sdata:0x805A8A38; // type:object size:0x4 align:4 data:float
|
||||
@@ -23595,7 +23595,7 @@ lbl_805AB2E0 = .sdata2:0x805AB2E0; // type:object size:0x8 align:4 data:float
|
||||
@414 = .sdata2:0x805AB2F4; // type:object size:0x4 scope:local align:4 data:float
|
||||
@415 = .sdata2:0x805AB2F8; // type:object size:0x4 scope:local align:4 data:float
|
||||
@416 = .sdata2:0x805AB2FC; // type:object size:0x4 scope:local align:4 data:float
|
||||
lbl_805AB300 = .sdata2:0x805AB300; // type:object size:0x4 data:4byte
|
||||
kInvalidShadowLightIndex__12CActorLights = .sdata2:0x805AB300; // type:object size:0x4 data:4byte
|
||||
kDefaultPositionUpdateThreshold__12CActorLights = .sdata2:0x805AB304; // type:object size:0x4 align:4 data:float
|
||||
lbl_805AB308 = .sdata2:0x805AB308; // type:object size:0x4 align:4 data:float
|
||||
lbl_805AB30C = .sdata2:0x805AB30C; // type:object size:0x4 align:4 data:float
|
||||
|
||||
@@ -1100,7 +1100,7 @@ musyx/runtime/hardware.c:
|
||||
|
||||
musyx/runtime/dsp_import.c:
|
||||
.data start:0x803F4760 end:0x803F6140
|
||||
.sdata start:0x805A88C0 end:0x805A88C4
|
||||
.sdata start:0x805A88C0 end:0x805A88C8
|
||||
|
||||
musyx/runtime/hw_aramdma.c:
|
||||
.text start:0x803B4074 end:0x803B4D40
|
||||
@@ -1162,7 +1162,7 @@ Dolphin/card/CARDBios.c:
|
||||
Dolphin/card/CARDUnlock.c:
|
||||
.text start:0x803B9190 end:0x803BA3F0
|
||||
.data start:0x803F69E0 end:0x803F6B40
|
||||
.sdata start:0x805A88D0 end:0x805A88D4
|
||||
.sdata start:0x805A88D0 end:0x805A88D8
|
||||
|
||||
Dolphin/card/CARDRdwr.c:
|
||||
.text start:0x803BA3F0 end:0x803BA670
|
||||
@@ -1206,7 +1206,7 @@ Dolphin/card/CARDRename.c:
|
||||
|
||||
Dolphin/card/CARDNet.c:
|
||||
.text start:0x803BE6EC end:0x803BE7B0
|
||||
.sdata start:0x805A88D8 end:0x805A88DC
|
||||
.sdata start:0x805A88D8 end:0x805A88E0
|
||||
|
||||
Dolphin/si/SIBios.c:
|
||||
.text start:0x803BE7B0 end:0x803C0010
|
||||
@@ -1222,7 +1222,7 @@ Dolphin/si/SISamplingRate.c:
|
||||
|
||||
Dolphin/exi/EXIBios.c:
|
||||
.text start:0x803C0118 end:0x803C19F4
|
||||
.data start:0x803F6D30 end:0x803F6DFC
|
||||
.data start:0x803F6D30 end:0x803F6E00
|
||||
.bss start:0x80569B78 end:0x80569C38
|
||||
.sdata start:0x805A88E8 end:0x805A88EC
|
||||
|
||||
|
||||
@@ -14060,7 +14060,7 @@ construct<Q215CParticleSwoosh11SSwooshData>__4rstlFPvRCQ215CParticleSwoosh11SSwo
|
||||
__ct__Q215CParticleSwoosh11SSwooshDataFRCQ215CParticleSwoosh11SSwooshData = .text:0x8032F7D4; // type:function size:0xE4
|
||||
__ct__Q215CParticleSwoosh11SSwooshDataFRC9CVector3fRC9CVector3fffibRC12CTransform4fRC9CVector3fffRC6CColor = .text:0x8032F8B8; // type:function size:0xDC
|
||||
reserve__Q24rstl67vector<Q215CParticleSwoosh11SSwooshData,Q24rstl17rmemory_allocator>Fi = .text:0x8032F994; // type:function size:0xD8
|
||||
uninitialized_copy<Q24rstl154pointer_iterator<Q215CParticleSwoosh11SSwooshData,Q24rstl67vector<Q215CParticleSwoosh11SSwooshData,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,Q215CParticleSwoosh11SSwooshData>__4rstlFQ24rstl154pointer_iterator<Q215CParticleSwoosh11SSwooshData,Q24rstl67vector<Q215CParticleSwoosh11SSwooshData,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl154pointer_iterator<Q215CParticleSwoosh11SSwooshData,Q24rstl67vector<Q215CParticleSwoosh11SSwooshData,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>PQ215CParticleSwoosh11SSwooshData = .text:0x8032FA6C; // type:function size:0x68
|
||||
uninitialized_copy<Q24rstl154pointer_iterator<Q215CParticleSwoosh11SSwooshData,Q24rstl67vector<Q215CParticleSwoosh11SSwooshData,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>,PQ215CParticleSwoosh11SSwooshData>__4rstlFQ24rstl154pointer_iterator<Q215CParticleSwoosh11SSwooshData,Q24rstl67vector<Q215CParticleSwoosh11SSwooshData,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Q24rstl154pointer_iterator<Q215CParticleSwoosh11SSwooshData,Q24rstl67vector<Q215CParticleSwoosh11SSwooshData,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>PQ215CParticleSwoosh11SSwooshData = .text:0x8032FA6C; // type:function size:0x68
|
||||
CreateWPSM__26CParticleSwooshDataFactoryFP18CSwooshDescriptionR12CInputStreamP11CSimplePool = .text:0x8032FAD4; // type:function size:0x4DC
|
||||
CreateGeneratorDescription__26CParticleSwooshDataFactoryFR12CInputStreamP11CSimplePool = .text:0x8032FFB0; // type:function size:0x8C
|
||||
GetGeneratorDesc__26CParticleSwooshDataFactoryFR12CInputStreamP11CSimplePool = .text:0x8033003C; // type:function size:0x84
|
||||
|
||||
+4
-4
@@ -182,10 +182,10 @@ if not config.non_matching:
|
||||
# Tool versions
|
||||
config.binutils_tag = "2.42-1"
|
||||
config.compilers_tag = "20251118"
|
||||
config.dtk_tag = "v1.8.0"
|
||||
config.objdiff_tag = "v3.0.1"
|
||||
config.dtk_tag = "v1.8.3"
|
||||
config.objdiff_tag = "v3.7.0"
|
||||
config.sjiswrap_tag = "v1.2.2"
|
||||
config.wibo_tag = "1.0.0"
|
||||
config.wibo_tag = "1.0.3"
|
||||
|
||||
# Project
|
||||
config.config_path = Path("config") / config.version / "config.yml"
|
||||
@@ -1491,7 +1491,7 @@ config.libs = [
|
||||
Object(MatchingFor("GM8E01_00", "GM8E01_01"), "Kyoto/Math/CVector3d.cpp"),
|
||||
Object(MatchingFor("GM8E01_00", "GM8E01_01"), "Kyoto/Math/CVector3f.cpp"),
|
||||
Object(MatchingFor("GM8E01_00", "GM8E01_01"), "Kyoto/Math/CVector3i.cpp"),
|
||||
Object(NonMatching, "Kyoto/Math/RMathUtils.cpp"),
|
||||
Object(MatchingFor("GM8E01_00", "GM8E01_01"), "Kyoto/Math/RMathUtils.cpp"),
|
||||
Object(MatchingFor("GM8E01_00", "GM8E01_01"), "Kyoto/CCrc32.cpp"),
|
||||
Object(
|
||||
MatchingFor("GM8E01_00", "GM8E01_01"), "Kyoto/Alloc/CCircularBuffer.cpp"
|
||||
|
||||
@@ -11,6 +11,8 @@ class CCollidableSphere : public CCollisionPrimitive {
|
||||
public:
|
||||
CCollidableSphere(const CSphere& sphere, const CMaterialList& material)
|
||||
: CCollisionPrimitive(material), x10_sphere(sphere) {}
|
||||
CCollidableSphere(const CCollidableSphere& other)
|
||||
: CCollisionPrimitive(other), x10_sphere(other.x10_sphere) {}
|
||||
|
||||
static bool CollideMovingAABox(const CInternalCollisionStructure& collision, const CVector3f& dir,
|
||||
double& dOut, CCollisionInfo& infoOut);
|
||||
@@ -23,6 +25,7 @@ public:
|
||||
FourCC GetPrimType() const override;
|
||||
CSphere Transform(const CTransform4f& xf) const;
|
||||
const CSphere& GetSphere() const { return x10_sphere; }
|
||||
void SetSphereCenter(const CVector3f& center) { x10_sphere = CSphere(center, x10_sphere.GetRadius()); }
|
||||
~CCollidableSphere() override {}
|
||||
CRayCastResult CastRayInternal(const CInternalRayCastStructure& internalRayCast) const override;
|
||||
|
||||
|
||||
@@ -38,8 +38,6 @@ public:
|
||||
const_iterator End() const { return x0_list.end(); }
|
||||
iterator Begin() { return x0_list.begin(); }
|
||||
const_iterator Begin() const { return x0_list.begin(); }
|
||||
|
||||
CCollisionInfoList& operator=(const CCollisionInfoList& other);
|
||||
};
|
||||
|
||||
#endif // _CCOLLISIONINFOLIST
|
||||
|
||||
@@ -88,6 +88,7 @@ public:
|
||||
};
|
||||
|
||||
CCollisionPrimitive(const CMaterialList& list);
|
||||
CCollisionPrimitive(const CCollisionPrimitive& other) : x8_material(other.x8_material) {}
|
||||
|
||||
virtual uint GetTableIndex() const = 0;
|
||||
virtual void SetMaterial(const CMaterialList& other) { x8_material = other; }
|
||||
|
||||
@@ -121,6 +121,9 @@ public:
|
||||
return (other.value & value) ? true : false;
|
||||
}
|
||||
|
||||
// TODO: fake?
|
||||
u64 GetValue() const { return value; }
|
||||
|
||||
private:
|
||||
u64 value;
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ class CCollisionInfoList;
|
||||
class CVector3f;
|
||||
class CSphere;
|
||||
class CMRay;
|
||||
class CPlane;
|
||||
|
||||
namespace CollisionUtil {
|
||||
|
||||
@@ -23,7 +24,7 @@ bool TriSphereOverlap(const CSphere&, const CVector3f&, const CVector3f&, const
|
||||
bool TriSphereIntersection(const CSphere&, const CVector3f&, const CVector3f&, const CVector3f&,
|
||||
CVector3f&, CVector3f&);
|
||||
double TriPointSqrDist(const CVector3f&, const CVector3f&, const CVector3f&, const CVector3f&,
|
||||
float*, float*);
|
||||
float*, float*);
|
||||
|
||||
bool AABoxAABoxIntersection(const CAABox& left, const CAABox& right);
|
||||
bool AABoxAABoxIntersection(const CAABox& left, const CMaterialList& leftFilter,
|
||||
@@ -32,10 +33,10 @@ bool AABoxAABoxIntersection(const CAABox& left, const CMaterialList& leftFilter,
|
||||
bool AABoxSphereIntersection(const CAABox&, const CSphere&);
|
||||
float AABoxSphereIntersectionRadius(const CAABox&, const CSphere&);
|
||||
bool RayTriangleIntersection(const CVector3f&, const CVector3f&, const CVector3f*, float&);
|
||||
bool RayTriangleIntersection_Double(const CVector3f&, const CVector3f&, const CVector3f*,
|
||||
double&);
|
||||
bool RayTriangleIntersection_Double(const CVector3f&, const CVector3f&, const CVector3f*, double&);
|
||||
int RayAABoxIntersection(const CMRay& ray, const CAABox& box, float& tMin, float& tMax);
|
||||
int RayAABoxIntersection_Double(const CMRay& ray, const CAABox& box, CVector3f& dir, double& penetration);
|
||||
int RayAABoxIntersection_Double(const CMRay& ray, const CAABox& box, CVector3f& dir,
|
||||
double& penetration);
|
||||
int RayAABoxIntersection(const CMRay& ray, const CAABox& box, CVector3f& dir, float& penetration);
|
||||
bool AABox_AABox_Moving(const CAABox& left, const CAABox& right, const CVector3f& dir, double& d,
|
||||
CVector3f& point, CVector3f& normal);
|
||||
@@ -47,6 +48,8 @@ bool RaySphereIntersection_Double(const CSphere& sphere, const CVector3f& pos, c
|
||||
double& T);
|
||||
bool RaySphereIntersection(const CSphere& sphere, const CVector3f& pos, const CVector3f& dir,
|
||||
float mag, float& T, CVector3f& point);
|
||||
bool RayPlaneIntersection(const CVector3f& from, const CVector3f& to, const CPlane& plane,
|
||||
CVector3f& point);
|
||||
|
||||
// Global function defined in either CBallFilter or an unknown TU, name unknown.
|
||||
// Called by CNewFlameThrower.
|
||||
|
||||
@@ -25,7 +25,6 @@ public:
|
||||
const CColor& color, float cutoff);
|
||||
CLight(const CVector3f& pos, const CVector3f& direction, const CColor& color, float distC,
|
||||
float distL, float distQ, float angleC, float angleL, float angleQ);
|
||||
CLight(const CLight&);
|
||||
|
||||
void SetPosition(const CVector3f& pos);
|
||||
const CVector3f& GetPosition() const { return x0_pos; }
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "math.h"
|
||||
#include "float.h"
|
||||
#include "math.h"
|
||||
|
||||
#include <Kyoto/Math/CVector3f.hpp>
|
||||
|
||||
@@ -21,7 +21,11 @@ public:
|
||||
template < typename T >
|
||||
static const T& Clamp(const T& min, const T& val, const T& max);
|
||||
static float SqrtF(float v);
|
||||
static inline float Limit(float v, float h) { if (fabs(v) > h) return h * Sign(v); return v; }
|
||||
static inline float Limit(float v, float h) {
|
||||
if (fabs(v) > h)
|
||||
return h * Sign(v);
|
||||
return v;
|
||||
}
|
||||
static inline float Sign(float v) { return FastFSel(v, 1.f, -1.f); }
|
||||
#ifdef __MWERKS__
|
||||
static inline float FastFSel(register float v, register float h, register float l) {
|
||||
@@ -37,7 +41,16 @@ public:
|
||||
static inline float AbsF(float v) { return fabs(v); }
|
||||
static inline double AbsD(double v) { return fabs(v); }
|
||||
static inline int AbsI(int v) { return abs(v); }
|
||||
// WrapPi__5CMathFf weak
|
||||
static inline float WrapPi(float rad) {
|
||||
float value = FastFmod(rad, M_2PIF);
|
||||
if (value > M_PIF) {
|
||||
return value - M_2PIF;
|
||||
} else if (value < -M_PIF) {
|
||||
return value + M_2PIF;
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
// WrapTwoPi__5CMathFf weak
|
||||
template < typename T >
|
||||
static const T& Min(const T& a, const T& b);
|
||||
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
// __amu__11CQuaternionFRC11CQuaternion
|
||||
// ScalarVector__11CQuaternionFfRC9CVector3f
|
||||
// Slerp__11CQuaternionFRC11CQuaternionRC11CQuaternionf
|
||||
// ShortestRotationArc__11CQuaternionFRC9CVector3fRC9CVector3f
|
||||
static CQuaternion ShortestRotationArc(const CVector3f&, const CVector3f&);
|
||||
|
||||
// TODO: map says const CUnitVector3f&, but this matches better in CBSCover/CSamusFaceReflection
|
||||
static CQuaternion LookAt(CUnitVector3f, CUnitVector3f, const CRelAngle&);
|
||||
|
||||
@@ -66,7 +66,7 @@ public:
|
||||
virtual CVector3f GetGlobalTranslation() const override;
|
||||
virtual CVector3f GetGlobalScale() const override;
|
||||
virtual bool GetParticleEmission() const override;
|
||||
virtual CColor GetModulationColor() const override;
|
||||
virtual const CColor& GetModulationColor() const override;
|
||||
virtual bool IsSystemDeletable() const override;
|
||||
virtual rstl::optional_object< CAABox > GetBounds() const override;
|
||||
virtual int GetParticleCount() const override;
|
||||
@@ -79,6 +79,7 @@ public:
|
||||
int GetEmitterTime() const;
|
||||
int GetSystemCount();
|
||||
void EndLifetime();
|
||||
void ForceParticleCreation(int amount);
|
||||
|
||||
int GetNumActiveChildParticles() const;
|
||||
CParticleGen* GetActiveChildParticle(int index) const;
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
CVector3f GetGlobalTranslation() const override;
|
||||
CVector3f GetGlobalScale() const override;
|
||||
bool GetParticleEmission() const override;
|
||||
CColor GetModulationColor() const override;
|
||||
const CColor& GetModulationColor() const override;
|
||||
bool IsSystemDeletable() const override;
|
||||
rstl::optional_object< CAABox > GetBounds() const override;
|
||||
int GetParticleCount() const override;
|
||||
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
virtual CVector3f GetGlobalTranslation() const = 0;
|
||||
virtual CVector3f GetGlobalScale() const = 0;
|
||||
virtual bool GetParticleEmission() const = 0;
|
||||
virtual CColor GetModulationColor() const = 0;
|
||||
virtual const CColor& GetModulationColor() const = 0;
|
||||
virtual float GetGeneratorRate() const { return 1.f; }
|
||||
virtual bool IsSystemDeletable() const = 0;
|
||||
virtual rstl::optional_object< CAABox > GetBounds() const = 0;
|
||||
|
||||
@@ -66,7 +66,7 @@ public:
|
||||
CVector3f GetGlobalTranslation() const;
|
||||
CVector3f GetGlobalScale() const;
|
||||
bool GetParticleEmission() const;
|
||||
CColor GetModulationColor() const;
|
||||
const CColor& GetModulationColor() const;
|
||||
bool IsSystemDeletable() const;
|
||||
rstl::optional_object< CAABox > GetBounds() const;
|
||||
int GetParticleCount() const;
|
||||
|
||||
@@ -12,9 +12,7 @@ template < typename T, int N >
|
||||
class TReservedAverage : public rstl::reserved_vector< T, N > {
|
||||
public:
|
||||
TReservedAverage() {}
|
||||
TReservedAverage(const T& value) {
|
||||
// resize(value, N); TODO
|
||||
}
|
||||
TReservedAverage(const T& value) { this->resize(N, value); }
|
||||
void AddValue(const T& value);
|
||||
rstl::optional_object< T > GetAverage() const;
|
||||
rstl::optional_object< T > GetEntry(int idx) const;
|
||||
|
||||
@@ -38,10 +38,14 @@ public:
|
||||
uint GetActiveLightCount() const;
|
||||
|
||||
bool GetNeedsRelight() const { return x298_24_dirty == TRUE; }
|
||||
bool HasShadowLight() const { return x29c_shadowLightArrIdx != -1; }
|
||||
bool HasShadowLight() const { return x29c_shadowLightArrIdx != kInvalidShadowLightIndex; }
|
||||
const TAreaId GetAreaLightIndexForShadowLight() const { return x29c_shadowLightArrIdx; }
|
||||
uint GetShadowLightArrIndex() const { return x29c_shadowLightArrIdx; }
|
||||
int GetShadowLightIndex() const { return x2a0_shadowLightIdx; }
|
||||
const CVector3f& GetAmbientColor() const { return x288_ambientColor; }
|
||||
|
||||
void SetAmbientColor(const CColor& color);
|
||||
void SetNeedsRelight(bool v) { x298_24_dirty = v; }
|
||||
void SetCastShadows(bool v) { x298_25_castShadows = v; }
|
||||
void SetFindShadowLight(bool v) { x298_27_findShadowLight = v; }
|
||||
void SetShadowDynamicRangeThreshold(float t) { x2d0_shadowDynamicRangeThreshold = t; }
|
||||
@@ -74,7 +78,7 @@ private:
|
||||
bool x299_25_useBrightLightLag : 1;
|
||||
bool x299_26_ambientOnly : 1;
|
||||
bool x29a_findNearestDynamicLights;
|
||||
int x29c_shadowLightArrIdx;
|
||||
uint x29c_shadowLightArrIdx;
|
||||
int x2a0_shadowLightIdx;
|
||||
uint x2a4_lastUpdateFrame;
|
||||
uint x2a8_areaUpdateFramePeriod;
|
||||
@@ -87,6 +91,8 @@ private:
|
||||
float x2d4_worldLightingLevel;
|
||||
int x2d8_brightLightIdx;
|
||||
uint x2dc_brightLightLag;
|
||||
|
||||
static int kInvalidShadowLightIndex;
|
||||
};
|
||||
CHECK_SIZEOF(CActorLights, 0x2e0)
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ private:
|
||||
TToken< CGenDescription > x30_firePop;
|
||||
TToken< CGenDescription > x38_icePop;
|
||||
TToken< CElectricDescription > x40_electric;
|
||||
TToken< CTexture > x48_ashy;
|
||||
CToken x48_ashy;
|
||||
rstl::reserved_vector< Dependency, 6 > x50_dgrps;
|
||||
bool xe4_loadingDeps;
|
||||
bool xe5_justLoadedDeps;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user