void GlobalCameraManager::resetCameraAngles(const cmd::ArgumentList& args) { CamWndPtr camWnd = getActiveCamWnd(); if (camWnd != NULL) { Vector3 angles; angles[CAMERA_ROLL] = angles[CAMERA_PITCH] = 0; angles[CAMERA_YAW] = 22.5 * floor((camWnd->getCameraAngles()[CAMERA_YAW]+11)/22.5); camWnd->setCameraAngles(angles); } }
void MapPosition::store(const cmd::ArgumentList& args) { rMessage() << "Storing map position #" << _index << std::endl; CamWndPtr camwnd = GlobalCamera().getActiveCamWnd(); if (camwnd != NULL) { _position = camwnd->getCameraOrigin(); _angle = camwnd->getCameraAngles(); // Tag the map as modified GlobalMap().setModified(true); } else { rError() << "MapPosition: Warning: Couldn't find Camera." << std::endl; } }
/* greebo: Saves the current camera position/angles to worldspawn */ void Map::saveCameraPosition() { const std::string keyLastCamPos = GlobalRegistry().get(RKEY_LAST_CAM_POSITION); const std::string keyLastCamAngle = GlobalRegistry().get(RKEY_LAST_CAM_ANGLE); if (m_world_node != NULL) { // Retrieve the entity from the worldspawn node Entity* worldspawn = Node_getEntity(m_world_node); assert(worldspawn != NULL); // This must succeed CamWndPtr camWnd = GlobalCamera().getActiveCamWnd(); if (camWnd == NULL) return; worldspawn->setKeyValue(keyLastCamPos, string::to_string(camWnd->getCameraOrigin())); worldspawn->setKeyValue(keyLastCamAngle, string::to_string(camWnd->getCameraAngles())); } }