Result ResourceCoordinator::ProcessNotificationInternal(Notification ¬ification) { Result retVal = Result::Failure; if(notification.GetAction() == Action::ResourceUpdate) { _totalResources = notification.GetResourceValue(); std::stringstream ss; ss << "Total Resources: M:" << _totalResources.Minerals << " V:" << _totalResources.Vespene << " S:" << _totalResources.Supply; Logger::GetInstance().Log(ResourceCoord, ss.str()); retVal = Result::Success; } if(notification.GetAction() == Action::ResourceRequest) { retVal = RequestResources(notification.GetResourceValue()); } if(notification.GetAction() == Action::ResourceRelease) { retVal = ReleaseResources(notification.GetResourceValue()); } if(notification.GetAction() == Action::CurrentResources) { notification.SetResourceValue(GetCurrentResources()); retVal = Result::Success; } return retVal; }