mirror of
https://github.com/ptitSeb/Serious-Engine
synced 2024-11-22 10:20:26 +01:00
Merge pull request #56 from DanielGibson/fix-null-crashes
Fix crashes from this!=NULL removal
This commit is contained in:
commit
570f166b26
|
@ -615,7 +615,7 @@ CAnimObject::CAnimObject(void)
|
||||||
/* Destructor. */
|
/* Destructor. */
|
||||||
CAnimObject::~CAnimObject(void)
|
CAnimObject::~CAnimObject(void)
|
||||||
{
|
{
|
||||||
ao_AnimData->RemReference();
|
if(ao_AnimData != NULL) ao_AnimData->RemReference();
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy from another object of same class
|
// copy from another object of same class
|
||||||
|
@ -818,9 +818,9 @@ BOOL CAnimObject::IsUpToDate(const CUpdateable &ud) const
|
||||||
void CAnimObject::SetData(CAnimData *pAD)
|
void CAnimObject::SetData(CAnimData *pAD)
|
||||||
{
|
{
|
||||||
// mark new data as referenced once more
|
// mark new data as referenced once more
|
||||||
pAD->AddReference();
|
if(pAD != NULL) pAD->AddReference();
|
||||||
// mark old data as referenced once less
|
// mark old data as referenced once less
|
||||||
ao_AnimData->RemReference();
|
if(ao_AnimData != NULL) ao_AnimData->RemReference();
|
||||||
// remember new data
|
// remember new data
|
||||||
ao_AnimData = pAD;
|
ao_AnimData = pAD;
|
||||||
if( pAD != NULL) StartAnim( 0);
|
if( pAD != NULL) StartAnim( 0);
|
||||||
|
|
|
@ -169,7 +169,13 @@ void InitStreams(void)
|
||||||
}
|
}
|
||||||
// find eventual extension for the mod's dlls
|
// find eventual extension for the mod's dlls
|
||||||
_strModExt = "";
|
_strModExt = "";
|
||||||
|
// DG: apparently both ModEXT.txt and ModExt.txt exist in the wild.
|
||||||
|
CTFileName tmp;
|
||||||
|
if(ExpandFilePath(EFP_READ, CTString("ModEXT.txt"), tmp) != EFP_NONE) {
|
||||||
LoadStringVar(CTString("ModEXT.txt"), _strModExt);
|
LoadStringVar(CTString("ModEXT.txt"), _strModExt);
|
||||||
|
} else {
|
||||||
|
LoadStringVar(CTString("ModExt.txt"), _strModExt);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
CPrintF(TRANSV("Loading group files...\n"));
|
CPrintF(TRANSV("Loading group files...\n"));
|
||||||
|
|
|
@ -186,7 +186,7 @@ CEntity::~CEntity(void)
|
||||||
}
|
}
|
||||||
// clear entity type
|
// clear entity type
|
||||||
en_RenderType = RT_NONE;
|
en_RenderType = RT_NONE;
|
||||||
en_pecClass->RemReference();
|
if(en_pecClass != NULL) en_pecClass->RemReference();
|
||||||
en_pecClass = NULL;
|
en_pecClass = NULL;
|
||||||
|
|
||||||
en_fSpatialClassificationRadius = -1.0f;
|
en_fSpatialClassificationRadius = -1.0f;
|
||||||
|
|
|
@ -670,20 +670,20 @@ BOOL ENGINE_API IsDerivedFromClass(CEntity *pen, const char *pstrClassName);
|
||||||
|
|
||||||
// all standard smart pointer functions are here as inlines
|
// all standard smart pointer functions are here as inlines
|
||||||
inline CEntityPointer::CEntityPointer(void) : ep_pen(NULL) {};
|
inline CEntityPointer::CEntityPointer(void) : ep_pen(NULL) {};
|
||||||
inline CEntityPointer::~CEntityPointer(void) { ep_pen->RemReference(); };
|
inline CEntityPointer::~CEntityPointer(void) { if(ep_pen != NULL) ep_pen->RemReference(); };
|
||||||
inline CEntityPointer::CEntityPointer(const CEntityPointer &penOther) : ep_pen(penOther.ep_pen) {
|
inline CEntityPointer::CEntityPointer(const CEntityPointer &penOther) : ep_pen(penOther.ep_pen) {
|
||||||
ep_pen->AddReference(); };
|
if(ep_pen != NULL) ep_pen->AddReference(); };
|
||||||
inline CEntityPointer::CEntityPointer(CEntity *pen) : ep_pen(pen) {
|
inline CEntityPointer::CEntityPointer(CEntity *pen) : ep_pen(pen) {
|
||||||
ep_pen->AddReference(); };
|
if(ep_pen != NULL) ep_pen->AddReference(); };
|
||||||
inline const CEntityPointer &CEntityPointer::operator=(CEntity *pen) {
|
inline const CEntityPointer &CEntityPointer::operator=(CEntity *pen) {
|
||||||
pen->AddReference(); // must first add, then remove!
|
if(pen != NULL) pen->AddReference(); // must first add, then remove!
|
||||||
ep_pen->RemReference();
|
if(ep_pen != NULL) ep_pen->RemReference();
|
||||||
ep_pen = pen;
|
ep_pen = pen;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
inline const CEntityPointer &CEntityPointer::operator=(const CEntityPointer &penOther) {
|
inline const CEntityPointer &CEntityPointer::operator=(const CEntityPointer &penOther) {
|
||||||
penOther.ep_pen->AddReference(); // must first add, then remove!
|
if(penOther.ep_pen != NULL) penOther.ep_pen->AddReference(); // must first add, then remove!
|
||||||
ep_pen->RemReference();
|
if(ep_pen != NULL) ep_pen->RemReference();
|
||||||
ep_pen = penOther.ep_pen;
|
ep_pen = penOther.ep_pen;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -807,7 +807,7 @@ extern BOOL ProbeMode( CTimerValue tvLast)
|
||||||
extern void UncacheShadows(void)
|
extern void UncacheShadows(void)
|
||||||
{
|
{
|
||||||
// mute all sounds
|
// mute all sounds
|
||||||
_pSound->Mute();
|
if(_pSound != NULL) _pSound->Mute();
|
||||||
// prepare new saturation factors for shadowmaps
|
// prepare new saturation factors for shadowmaps
|
||||||
gfx_fSaturation = ClampDn( gfx_fSaturation, 0.0f);
|
gfx_fSaturation = ClampDn( gfx_fSaturation, 0.0f);
|
||||||
shd_fSaturation = ClampDn( shd_fSaturation, 0.0f);
|
shd_fSaturation = ClampDn( shd_fSaturation, 0.0f);
|
||||||
|
|
|
@ -240,9 +240,9 @@ void CSoundObject::Play_internal( CSoundData *pCsdLink, SLONG slFlags)
|
||||||
Stop_internal();
|
Stop_internal();
|
||||||
|
|
||||||
// mark new data as referenced once more
|
// mark new data as referenced once more
|
||||||
pCsdLink->AddReference();
|
if(pCsdLink != NULL) pCsdLink->AddReference();
|
||||||
// mark old data as referenced once less
|
// mark old data as referenced once less
|
||||||
so_pCsdLink->RemReference();
|
if(so_pCsdLink != NULL) so_pCsdLink->RemReference();
|
||||||
|
|
||||||
// store init SoundData
|
// store init SoundData
|
||||||
so_pCsdLink = pCsdLink;
|
so_pCsdLink = pCsdLink;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user