diff options
| author | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2025-08-27 20:37:31 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-27 17:37:31 -0700 |
| commit | 956e84b0e7090fde541f25319d0255c45b657b39 (patch) | |
| tree | 2feeca19517a6ae97fcf68fbbe8a0ff401879bb3 /include/SSystem | |
| parent | e09f037fa3a3e1ddecf4075c7aa0e45d52b5616b (diff) | |
Start linking some TUs on debug and PAL (#2612)
* Fix clang union handling (affects all TUs including d_camera.h)
Union members with non-trivial ctors/dtors is undefined behavior and clangd normally throws a fit and refuses to parse the whole union, but it seems to be possible to ifdef the problematic ctors out for non-mwerks compilers and explicitly tell modern compilers to use the defaults instead. Thanks to encounter for this fix.
* Link all TUs that already match on debug
In order to link TUs for debug, most functions seem to need to have their alignment set to 16 in symbols.txt. There are a few hundred functions that seem to be the exception and break when their alignment is set to 16, but I don't know the reason for this.
* Remove some fakematches (nosyminline/sym off) for weak func order in retail
* Fix clang not knowing that MSL_C++ is C++
* Link more debug TUs
* Fix missing PAL split
* Fix wrong slashes being used in includes
* RZDE01_00: Fix incorrect capitalization in config.yml
* Add RZDE01_00 to configure task
* Revert configure.py to use MatchingFor
* Fix PAL splits and symbols, link matching PAL TUs
Diffstat (limited to 'include/SSystem')
| -rw-r--r-- | include/SSystem/SComponent/c_angle.h | 16 | ||||
| -rw-r--r-- | include/SSystem/SComponent/c_xyz.h | 20 |
2 files changed, 27 insertions, 9 deletions
diff --git a/include/SSystem/SComponent/c_angle.h b/include/SSystem/SComponent/c_angle.h index fc3436c64f..af34015ee4 100644 --- a/include/SSystem/SComponent/c_angle.h +++ b/include/SSystem/SComponent/c_angle.h @@ -13,9 +13,15 @@ public: const static cSAngle _90; const static cSAngle _180; const static cSAngle _270; +#ifdef __MWERKS__ cSAngle() {} ~cSAngle() {} cSAngle(const cSAngle&); +#else + cSAngle() = default; + ~cSAngle() = default; + cSAngle(const cSAngle&) = default; +#endif cSAngle(s16); cSAngle(float); s16 Val() const { return this->mAngle; } @@ -132,17 +138,23 @@ public: cSAngle mInclination; // original: V cSAngle mAzimuth; // original: U +#ifdef __MWERKS__ cSGlobe() {} + ~cSGlobe() {} + cSGlobe(const cSGlobe&); +#else + cSGlobe() = default; + ~cSGlobe() = default; + cSGlobe(const cSGlobe&) = default; +#endif void R(f32 i_radius) { mRadius = i_radius; } void U(cSAngle const& i_azimuth) { mAzimuth = i_azimuth.Val(); } void V(cSAngle const& i_inclination) { mInclination = i_inclination.Val(); } - cSGlobe(const cSGlobe&); cSGlobe(float, short, short); cSGlobe(float, const cSAngle&, const cSAngle&); cSGlobe(const cXyz&); - ~cSGlobe() {} cSGlobe& Formal(void); void Val(const cSGlobe&); void Val(float, short, short); diff --git a/include/SSystem/SComponent/c_xyz.h b/include/SSystem/SComponent/c_xyz.h index 489769cb72..2084f8eeeb 100644 --- a/include/SSystem/SComponent/c_xyz.h +++ b/include/SSystem/SComponent/c_xyz.h @@ -13,18 +13,24 @@ struct cXyz : Vec { static const cXyz BaseXZ; static const cXyz BaseYZ; static const cXyz BaseXYZ; - /* 80009184 */ ~cXyz() {} - /* inlined */ cXyz() {} +#ifdef __MWERKS__ + cXyz() {} + ~cXyz() {} + cXyz(const cXyz& vec) { + x = vec.x; + y = vec.y; + z = vec.z; + } +#else + cXyz() = default; + ~cXyz() = default; + cXyz(const cXyz& vec) = default; +#endif cXyz(f32 x, f32 y, f32 z) { this->x = x; this->y = y; this->z = z; } - cXyz(const cXyz& vec) { - this->x = vec.x; - this->y = vec.y; - this->z = vec.z; - } cXyz(const Vec& vec) { this->x = vec.x; this->y = vec.y; |
