diff --git a/Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DozerAIUpdate.cpp b/Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DozerAIUpdate.cpp index 449cc779518..5dae573b054 100644 --- a/Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DozerAIUpdate.cpp +++ b/Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DozerAIUpdate.cpp @@ -1074,7 +1074,12 @@ StateReturnType DozerPrimaryIdleState::update( void ) // if( ai->isIdle() && !m_isMarkedAsIdle && !dozer->isEffectivelyDead()) { - m_idlePlayerNumber = dozer->getControllingPlayer()->getPlayerIndex(); + Player *controllingPlayer = dozer->getControllingPlayer(); + if( !controllingPlayer ) + { + return STATE_FAILURE; + } + m_idlePlayerNumber = controllingPlayer->getPlayerIndex(); TheInGameUI->addIdleWorker(getMachineOwner()); m_isMarkedAsIdle = TRUE; getMachineOwner()->setWeaponSetFlag(WEAPONSET_MINE_CLEARING_DETAIL);//maybe go clear some mines, if I feel like it diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DozerAIUpdate.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DozerAIUpdate.cpp index 59263b50e3c..3b82c70b491 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DozerAIUpdate.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DozerAIUpdate.cpp @@ -1079,7 +1079,12 @@ StateReturnType DozerPrimaryIdleState::update( void ) // if( ai->isIdle() && !m_isMarkedAsIdle && !dozer->isEffectivelyDead()) { - m_idlePlayerNumber = dozer->getControllingPlayer()->getPlayerIndex(); + Player *controllingPlayer = dozer->getControllingPlayer(); + if( !controllingPlayer ) + { + return STATE_FAILURE; + } + m_idlePlayerNumber = controllingPlayer->getPlayerIndex(); TheInGameUI->addIdleWorker(getMachineOwner()); m_isMarkedAsIdle = TRUE; getMachineOwner()->setWeaponSetFlag(WEAPONSET_MINE_CLEARING_DETAIL);//maybe go clear some mines, if I feel like it