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; }