const char* CameraDirector::GetModeName() { int m = GetCameraMode(); if (m != CameraDirector::MODE_VIRTUAL) { return get_camera_mode_name(m); } else if (instance) { if (instance->virt_az > 30*DEGREES && instance->virt_az < 100*DEGREES) return "RIGHT"; else if (instance->virt_az >= 100*DEGREES) return "RIGHT-AFT"; else if (instance->virt_az < -30*DEGREES && instance->virt_az > -100*DEGREES) return "LEFT"; else if (instance->virt_az <= -100*DEGREES) return "LEFT-AFT"; else if (instance->virt_el > 15*DEGREES) return "UP"; else if (instance->virt_el < -15*DEGREES) return "DOWN"; return get_camera_mode_name(m); } return ""; }
void set_camera_mode (camera *raw, camera_modes mode, int auto_edit) { ASSERT (raw); /* if ((mode >= 0) && (mode < NUM_CAMERA_MODES)) { debug_log ("Setting camera mode to %s", camera_mode_names[mode]); }*/ // Jabberwock 031009 - Satellite view - only satellite view for sites if (get_local_entity_type (raw->external_view_entity) == ENTITY_TYPE_KEYSITE) { mode = CAMERA_MODE_SATELLITE; auto_edit = 0; } // Jabberwock 031009 ends if (auto_edit) { if (!raw->auto_edit) { set_status_message (get_trans ("Auto-action camera"), STATUS_MESSAGE_TYPE_CAMERA); } } else { const char *s; s = get_camera_mode_name (mode); if (s) { set_status_message (get_trans (s), STATUS_MESSAGE_TYPE_CAMERA); } } switch (mode) { //////////////////////////////////////// case CAMERA_MODE_CHASE: //////////////////////////////////////// { reset_chase_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_END_OF_MISSION: //////////////////////////////////////// { reset_end_of_mission_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_DROP: //////////////////////////////////////// { reset_drop_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_STATIC: //////////////////////////////////////// { reset_static_camera (raw); break; } // Jabberwock 031009 Satellite view case CAMERA_MODE_SATELLITE: //////////////////////////////////////// { reset_satellite_camera (raw); break; } // Jabberwock 031009 ends //////////////////////////////////////// case CAMERA_MODE_EJECT: //////////////////////////////////////// { reset_eject_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_FLY_BY: //////////////////////////////////////// { reset_fly_by_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_CINEMATIC: //////////////////////////////////////// { reset_cinematic_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_BUILDING: //////////////////////////////////////// { reset_building_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_WEAPON: //////////////////////////////////////// { if (weapon_camera_valid (raw)) { reset_weapon_camera (raw); } else { mode = CAMERA_MODE_CHASE; reset_chase_camera (raw); } break; } //////////////////////////////////////// case CAMERA_MODE_WEAPON_EXPLOSION: //////////////////////////////////////// { reset_weapon_explosion_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_DEBRIEFING: //////////////////////////////////////// { if (debriefing_camera_valid (raw)) { reset_debriefing_camera (raw); } else { mode = CAMERA_MODE_CHASE; reset_chase_camera (raw); } break; } //////////////////////////////////////// case CAMERA_MODE_RECOGNITION_GUIDE_TOP_VIEW: //////////////////////////////////////// { if (recognition_guide_top_view_camera_valid (raw)) { reset_recognition_guide_top_view_camera (raw); } else { mode = CAMERA_MODE_CHASE; reset_chase_camera (raw); } break; } //////////////////////////////////////// case CAMERA_MODE_RECOGNITION_GUIDE_SIDE_VIEW: //////////////////////////////////////// { if (recognition_guide_side_view_camera_valid (raw)) { reset_recognition_guide_side_view_camera (raw); } else { mode = CAMERA_MODE_CHASE; reset_chase_camera (raw); } break; } //////////////////////////////////////// case CAMERA_MODE_RECOGNITION_GUIDE_FRONT_VIEW: //////////////////////////////////////// { if (recognition_guide_front_view_camera_valid (raw)) { reset_recognition_guide_front_view_camera (raw); } else { mode = CAMERA_MODE_CHASE; reset_chase_camera (raw); } break; } //////////////////////////////////////// case CAMERA_MODE_RECOGNITION_GUIDE_3D_VIEW: //////////////////////////////////////// { if (recognition_guide_3d_view_camera_valid (raw)) { reset_recognition_guide_3d_view_camera (raw); } else { mode = CAMERA_MODE_CHASE; reset_chase_camera (raw); } break; } //////////////////////////////////////// case CAMERA_MODE_FREE: //////////////////////////////////////// { { mode = CAMERA_MODE_FREE; reset_free_camera (raw); } break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal ("Invalid camera mode = %d", mode); break; } } raw->camera_mode = mode; raw->auto_edit = auto_edit; }
void set_camera_mode (camera *raw, camera_modes mode, int auto_edit) { ASSERT (raw); if ((mode >= 0) && (mode < NUM_CAMERA_MODES)) { debug_log ("Setting camera mode to %s", camera_mode_names[mode]); } if (auto_edit) { if (!raw->auto_edit) { set_status_message (get_trans ("Auto-action camera"), STATUS_MESSAGE_TYPE_CAMERA); } } else { char *s; s = get_camera_mode_name (mode); if (s) { set_status_message (get_trans (s), STATUS_MESSAGE_TYPE_CAMERA); } } switch (mode) { //////////////////////////////////////// case CAMERA_MODE_CHASE: //////////////////////////////////////// { reset_chase_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_END_OF_MISSION: //////////////////////////////////////// { reset_end_of_mission_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_DROP: //////////////////////////////////////// { reset_drop_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_STATIC: //////////////////////////////////////// { reset_static_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_EJECT: //////////////////////////////////////// { reset_eject_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_FLY_BY: //////////////////////////////////////// { reset_fly_by_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_CINEMATIC: //////////////////////////////////////// { reset_cinematic_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_BUILDING: //////////////////////////////////////// { reset_building_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_WEAPON: //////////////////////////////////////// { if (weapon_camera_valid (raw)) { reset_weapon_camera (raw); } else { mode = CAMERA_MODE_CHASE; reset_chase_camera (raw); } break; } //////////////////////////////////////// case CAMERA_MODE_WEAPON_EXPLOSION: //////////////////////////////////////// { reset_weapon_explosion_camera (raw); break; } //////////////////////////////////////// case CAMERA_MODE_DEBRIEFING: //////////////////////////////////////// { if (debriefing_camera_valid (raw)) { reset_debriefing_camera (raw); } else { mode = CAMERA_MODE_CHASE; reset_chase_camera (raw); } break; } //////////////////////////////////////// case CAMERA_MODE_RECOGNITION_GUIDE_TOP_VIEW: //////////////////////////////////////// { if (recognition_guide_top_view_camera_valid (raw)) { reset_recognition_guide_top_view_camera (raw); } else { mode = CAMERA_MODE_CHASE; reset_chase_camera (raw); } break; } //////////////////////////////////////// case CAMERA_MODE_RECOGNITION_GUIDE_SIDE_VIEW: //////////////////////////////////////// { if (recognition_guide_side_view_camera_valid (raw)) { reset_recognition_guide_side_view_camera (raw); } else { mode = CAMERA_MODE_CHASE; reset_chase_camera (raw); } break; } //////////////////////////////////////// case CAMERA_MODE_RECOGNITION_GUIDE_FRONT_VIEW: //////////////////////////////////////// { if (recognition_guide_front_view_camera_valid (raw)) { reset_recognition_guide_front_view_camera (raw); } else { mode = CAMERA_MODE_CHASE; reset_chase_camera (raw); } break; } //////////////////////////////////////// case CAMERA_MODE_RECOGNITION_GUIDE_3D_VIEW: //////////////////////////////////////// { if (recognition_guide_3d_view_camera_valid (raw)) { reset_recognition_guide_3d_view_camera (raw); } else { mode = CAMERA_MODE_CHASE; reset_chase_camera (raw); } break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal ("Invalid camera mode = %d", mode); break; } } raw->camera_mode = mode; raw->auto_edit = auto_edit; }