diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 62ca9ed685..05002ca594 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -117,6 +117,8 @@ jobs: - { sdk-version: 2017, generator: Visual Studio 16 2019, arch: x64, str: windows-x64 } - { sdk-version: 2019, generator: Visual Studio 16 2019, arch: x64, str: windows-x64 } - { sdk-version: 2020, generator: Visual Studio 16 2019, arch: x64, str: windows-x64 } + - { sdk-version: 2023, generator: Visual Studio 16 2019, arch: x64, str: windows-x64 } + - { sdk-version: 2024, generator: Visual Studio 16 2019, arch: x64, str: windows-x64 } steps: - name: Checkout Plasma diff --git a/Sources/Tools/MaxComponent/plBipedKiller.cpp b/Sources/Tools/MaxComponent/plBipedKiller.cpp index 1c2d1caf17..b053a12743 100644 --- a/Sources/Tools/MaxComponent/plBipedKiller.cpp +++ b/Sources/Tools/MaxComponent/plBipedKiller.cpp @@ -375,7 +375,7 @@ bool HasBipController(INode* node) if (!node) return false; Control* c = node->GetTMController(); - if (c && ((c->ClassID()== BIPSLAVE_CONTROL_CLASS_ID) || + if (c && ((c->ClassID()== BIPDRIVEN_CONTROL_CLASS_ID) || (c->ClassID()== BIPBODY_CONTROL_CLASS_ID) || (c->ClassID()== FOOTPRINT_CLASS_ID)) ) return true; diff --git a/Sources/Tools/MaxConvert/hsControlConverter.cpp b/Sources/Tools/MaxConvert/hsControlConverter.cpp index a1f13e9ea8..ca54fa59ad 100644 --- a/Sources/Tools/MaxConvert/hsControlConverter.cpp +++ b/Sources/Tools/MaxConvert/hsControlConverter.cpp @@ -127,7 +127,8 @@ void hsControlConverter::DeInit() class KRStatus : public KeyReduceStatus { void Init(int total) override { } - int Progress(int p) override { return KEYREDUCE_CONTINUE; } + + KeyReduceResult Progress(int p) override { return KEYREDUCE_CONTINUE; } }; void hsControlConverter::ReduceKeys(Control *control, float threshold) diff --git a/Sources/Tools/MaxConvert/plMaxLightContext.h b/Sources/Tools/MaxConvert/plMaxLightContext.h index 0dc48a6b09..ad0c5dd673 100644 --- a/Sources/Tools/MaxConvert/plMaxLightContext.h +++ b/Sources/Tools/MaxConvert/plMaxLightContext.h @@ -108,7 +108,11 @@ class plMaxLightContext : public ShadeContext void DPdUVW(Point3 dP[3],int channel=0) override { dP[0] = dP[1] = dP[2] = Point3(0,0,0); } // Bump vectors for UVW (camera space) void GetBGColor(Color &bgcol, Color& transp, BOOL fogBG=TRUE) override { bgcol.Black(); transp.Black(); } // returns Background color, bg transparency - + // these became virtual in 2023 +#if MAX_VERSION_MAJOR >= 26 + Matrix3 MatrixTo(RefFrame ito) override { return Matrix3::Identity; } + Matrix3 MatrixFrom(RefFrame ifrom) override { return Matrix3::Identity; } +#endif Point3 PointTo(const Point3& p, RefFrame ito) override { return p; } Point3 PointFrom(const Point3& p, RefFrame ifrom) override { return p; } Point3 VectorTo(const Point3& p, RefFrame ito) override { return p; } diff --git a/Sources/Tools/MaxMain/MaxCompat.h b/Sources/Tools/MaxMain/MaxCompat.h index 3156d8ebc5..91f00ef835 100644 --- a/Sources/Tools/MaxMain/MaxCompat.h +++ b/Sources/Tools/MaxMain/MaxCompat.h @@ -291,6 +291,12 @@ class plMaxObject : public plMaxAnimatable // Old versions of Max define this as an integer, not a Class_ID #define XREFOBJ_COMPAT_CLASS_ID Class_ID(0x92aab38c, 0) +// This definition is removed in later versions of the sdk +// In newer versions of the sdk Progress returns an enum value of KeyReduceResult +#if MAX_VERSION_MAJOR <= 25 +# define BIPDRIVEN_CONTROL_CLASS_ID BIPSLAVE_CONTROL_CLASS_ID + using KeyReduceResult = int; +#endif // Special 3ds Max message box support added in 2021 for HiDPI #if MAX_VERSION_MAJOR >= 23 diff --git a/cmake/Find3dsm.cmake b/cmake/Find3dsm.cmake index 0a594570da..930e46832c 100644 --- a/cmake/Find3dsm.cmake +++ b/cmake/Find3dsm.cmake @@ -5,6 +5,8 @@ if(WIN32) # Of course, 32-bit 2013 is basically impossible to find. Oh well. if(CMAKE_SIZEOF_VOID_P EQUAL 8) set(_3dsm_PATH_HINTS + ENV ADSK_3DSMAX_SDK_2024 + ENV ADSK_3DSMAX_SDK_2023 ENV ADSK_3DSMAX_SDK_2022 ENV ADSK_3DSMAX_SDK_2021 ENV ADSK_3DSMAX_SDK_2020