Skip to content

Commit f2da2b6

Browse files
authored
tweak(drawable): Set correct model tint color after loading a save game (#2025)
1 parent 409fed2 commit f2da2b6

File tree

2 files changed

+30
-6
lines changed

2 files changed

+30
-6
lines changed

Generals/Code/GameEngine/Source/GameClient/Drawable.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4248,13 +4248,18 @@ void Drawable::xferDrawableModules( Xfer *xfer )
42484248
* during the module xfer (CBD)
42494249
* 4: Added m_ambientSoundEnabled flag
42504250
* 5: save full mtx, not pos+orient.
4251+
* 6: TheSuperHackers @bugfix Removed m_prevTintStatus because loading its value is unnecessary and undesirable
42514252
*/
42524253
// ------------------------------------------------------------------------------------------------
42534254
void Drawable::xfer( Xfer *xfer )
42544255
{
42554256

42564257
// version
4258+
#if RETAIL_COMPATIBLE_XFER_SAVE
42574259
const XferVersion currentVersion = 5;
4260+
#else
4261+
const XferVersion currentVersion = 6;
4262+
#endif
42584263
XferVersion version = currentVersion;
42594264
xfer->xferVersion( &version, currentVersion );
42604265

@@ -4414,8 +4419,15 @@ void Drawable::xfer( Xfer *xfer )
44144419
// tint status
44154420
xfer->xferUnsignedInt( &m_tintStatus );
44164421

4417-
// prev tint status
4418-
xfer->xferUnsignedInt( &m_prevTintStatus );
4422+
if (version <= 5)
4423+
{
4424+
// prev tint status
4425+
xfer->xferUnsignedInt( &m_prevTintStatus );
4426+
4427+
// TheSuperHackers @bugfix Caball009 21/12/2025 Trigger tinting after loading a save game.
4428+
if (xfer->getXferMode() == XFER_LOAD)
4429+
m_prevTintStatus = 0;
4430+
}
44194431

44204432
// fading mode
44214433
xfer->xferUser( &m_fadeMode, sizeof( FadingMode ) );

GeneralsMD/Code/GameEngine/Source/GameClient/Drawable.cpp

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4904,15 +4904,20 @@ void Drawable::xferDrawableModules( Xfer *xfer )
49044904
* during the module xfer (CBD)
49054905
* 4: Added m_ambientSoundEnabled flag
49064906
* 5: save full mtx, not pos+orient.
4907-
* 6: Added m_ambientSoundEnabledFromScript flag
4908-
* 7: Save the customize ambient sound info
4907+
* 6: Added m_ambientSoundEnabledFromScript flag
4908+
* 7: Save the customize ambient sound info
4909+
* 8: TheSuperHackers @bugfix Removed m_prevTintStatus because loading its value is unnecessary and undesirable
49094910
*/
49104911
// ------------------------------------------------------------------------------------------------
49114912
void Drawable::xfer( Xfer *xfer )
49124913
{
49134914

49144915
// version
4916+
#if RETAIL_COMPATIBLE_XFER_SAVE
49154917
const XferVersion currentVersion = 7;
4918+
#else
4919+
const XferVersion currentVersion = 8;
4920+
#endif
49164921
XferVersion version = currentVersion;
49174922
xfer->xferVersion( &version, currentVersion );
49184923

@@ -5072,8 +5077,15 @@ void Drawable::xfer( Xfer *xfer )
50725077
// tint status
50735078
xfer->xferUnsignedInt( &m_tintStatus );
50745079

5075-
// prev tint status
5076-
xfer->xferUnsignedInt( &m_prevTintStatus );
5080+
if (version <= 7)
5081+
{
5082+
// prev tint status
5083+
xfer->xferUnsignedInt( &m_prevTintStatus );
5084+
5085+
// TheSuperHackers @bugfix Caball009 21/12/2025 Trigger tinting after loading a save game.
5086+
if (xfer->getXferMode() == XFER_LOAD)
5087+
m_prevTintStatus = 0;
5088+
}
50775089

50785090
// fading mode
50795091
xfer->xferUser( &m_fadeMode, sizeof( FadingMode ) );

0 commit comments

Comments
 (0)