@@ -362,7 +362,7 @@ bool CRenderWareSA::ReplaceModel(RpClump* pNew, unsigned short usModelID, DWORD
362
362
if (pModelInfo)
363
363
{
364
364
RpClump* pOldClump = (RpClump*)pModelInfo->GetRwObject ();
365
- if (!DoContainTheSameGeometry (pNew, pOldClump, NULL ))
365
+ if (pOldClump != pNew && !DoContainTheSameGeometry (pNew, pOldClump, NULL ))
366
366
{
367
367
if (pModelInfo->IsVehicle ())
368
368
{
@@ -392,11 +392,10 @@ bool CRenderWareSA::ReplaceModel(RpClump* pNew, unsigned short usModelID, DWORD
392
392
CBaseModelInfoSAInterface* pModelInfoInterface = pModelInfo->GetInterface ();
393
393
CBaseModelInfo_SetClump (pModelInfoInterface, pNewClone);
394
394
RpClumpDestroy (pOldClump);
395
- return true ;
396
395
}
397
396
}
398
397
399
- return false ;
398
+ return true ;
400
399
}
401
400
402
401
// Replaces a vehicle model
@@ -501,7 +500,7 @@ bool CRenderWareSA::ReplaceAllAtomicsInModel(RpClump* pNew, unsigned short usMod
501
500
{
502
501
RpAtomic* pOldAtomic = (RpAtomic*)pModelInfo->GetRwObject ();
503
502
504
- if (!DoContainTheSameGeometry (pNew, NULL , pOldAtomic))
503
+ if (reinterpret_cast <RpClump*>(pOldAtomic) != pNew && !DoContainTheSameGeometry (pNew, NULL , pOldAtomic))
505
504
{
506
505
// Clone the clump that's to be replaced (FUNC_AtomicsReplacer removes the atomics from the source clump)
507
506
RpClump* pCopy = RpClumpClone (pNew);
@@ -516,11 +515,10 @@ bool CRenderWareSA::ReplaceAllAtomicsInModel(RpClump* pNew, unsigned short usMod
516
515
517
516
// Get rid of the now empty copied clump
518
517
RpClumpDestroy (pCopy);
519
- return true ;
520
518
}
521
519
}
522
520
523
- return false ;
521
+ return true ;
524
522
}
525
523
526
524
// Replaces all atomics in a vehicle
0 commit comments