/*********************************************************** * * * camera.h * * * * * LPGE 1997 * * * * Copyright (C) 1997 Sony Computer Entertainment Inc. * * All Rights Reserved * * * ***********************************************************/ #ifndef CAMERA_H_INCLUDED /**************************************************************************** constants and externed globals ****************************************************************************/ // ship view modes #define VIEW_FIXED_BEHIND_ABOVE_OBJECT 1 #define VIEW_FIXED_BEHIND_BELOW_OBJECT 2 #define VIEW_LOCAL_TO_OBJECT 3 #define VIEW_CIRCLES_OBJECT_CLOSE_IN 4 #define VIEW_CIRCLES_OBJECT 5 #define VIEW_CIRCLES_OBJECT_TWISTING 6 #define VIEW_CIRCLES_OBJECT_FAR_AWAY 7 #define VIEW_CIRCLES_OBJECT_FAR_AWAY_TWISTING 8 #define VIEW_CIRCLES_OBJECT_CHANGING_ORBITAL_PLANE 9 #define VIEW_OBJECT_IN_FIRST_OVAL_ORBIT 10 #define VIEW_OBJECT_IN_SECOND_OVAL_ORBIT 11 #define VIEW_OBJECT_IN_THIRD_OVAL_ORBIT 12 #define VIEW_OBJECT_IN_FOURTH_OVAL_ORBIT 13 #define VIEW_OBJECT_IN_CARDINAL_FLYBY 14 #define VIEW_OBJECT_IN_STATIC_FLYBY 15 #define VIEW_BY_HEAD_ON_FLYBY 16 #define VIEW_OBJECT_IN_FIRST_MOVING_FLYBY 17 #define VIEW_OBJECT_IN_SECOND_MOVING_FLYBY 18 #define VIEW_OBJECT_IN_THIRD_MOVING_FLYBY 19 #define VIEW_OBJECT_IN_FOURTH_MOVING_FLYBY 20 #define VIEW_BY_FIRST_CUBOID_VIEWER 21 #define VIEW_BY_SECOND_CUBOID_VIEWER 22 #define VIEW_BY_THIRD_CUBOID_VIEWER 23 #define VIEW_BY_FIRST_SPHERICAL_VIEWER 24 #define VIEW_BY_SECOND_SPHERICAL_VIEWER 25 #define VIEW_BY_THIRD_SPHERICAL_VIEWER 26 #define VIEW_BY_FOURTH_SPHERICAL_VIEWER 27 #define VIEW_BY_FIRST_HELICAL_VIEWER 28 #define VIEW_BY_SECOND_HELICAL_VIEWER 29 #define VIEW_BY_THIRD_HELICAL_VIEWER 30 #define VIEW_BY_FOURTH_HELICAL_VIEWER 31 #define VIEW_BY_FIRST_CUBOID_CIRCLING_VIEWER 32 #define VIEW_BY_SECOND_CUBOID_CIRCLING_VIEWER 33 #define VIEW_BY_HEAD_ON_STATIC_SHOT 34 #define VIEW_BY_OFF_CENTRE_STATIC_SHOT 35 #define VIEW_LOCAL_LOOKING_BACKWARDS 36 #define VIEW_FIXED_EXTERNAL_AHEAD_OF_OBJECT 37 #define VIEW_FIXED_EXTERNAL_BEHIND_OBJECT 38 #define VIEW_FIXED_EXTERNAL_LEFT_OF_OBJECT 39 #define VIEW_FIXED_EXTERNAL_RIGHT_OF_OBJECT 40 #define VIEW_FIXED_EXTERNAL_ABOVE_OBJECT 41 #define VIEW_FIXED_EXTERNAL_BELOW_OBJECT 42 #define VIEW_BY_FIRST_LAZY_ROTATION_VIEW 43 #define VIEW_BY_SECOND_LAZY_ROTATION_VIEW 44 #define VIEW_BY_THIRD_LAZY_ROTATION_VIEW 45 // two poor ones #define VIEW_CIRCLES_BEHIND_OBJECT 46 #define VIEW_SWIVELS_BEHIND_OBJECT 47 #define VIEW_BY_FIRST_DIRECTORS_CUT 48 #define VIEW_BY_SECOND_DIRECTORS_CUT 49 #define VIEW_BY_THIRD_DIRECTORS_CUT 50 #define VIEW_BY_FOURTH_DIRECTORS_CUT 51 // two extra-poor #define VIEW_FROM_SPLINE_DISTANCE_BEHIND_OBJECT 52 #define VIEW_FROM_SPLINE_PATH_BEHIND_OBJECT 53 #define VIEW_BY_FIRST_SPIRAL_VIEWER 54 // ENSURE THAT THIS is accurate total of the number of those above // excluding those too poor to include #define NUMBER_OF_SHIP_VIEW_MODES 51 #define NUMBER_OF_DECENT_VIEW_MODES 46 #define BASE_VIEW_MODE (VIEW_FIXED_BEHIND_ABOVE_OBJECT) // best playable subset #define NUMBER_OF_PLAYER_VIEW_MODES 3 #define BASE_PLAYER_VIEW_MODE (VIEW_FIXED_BEHIND_ABOVE_OBJECT) // in frames #define LOOK_BEHIND_DURATION 20 // summary constants // NEED CHECKING as in synch with the main list above #define NUMBER_CIRCLING_MODES 6 #define NUMBER_OVAL_ORBIT_MODES 4 #define NUMBER_FLYBY_MODES 7 #define NUMBER_CUBOID_MODES 3 #define NUMBER_SPHERICAL_MODES 4 #define NUMBER_HELICAL_MODES 4 #define NUMBER_CUBOID_CIRCLING_MODES 2 #define NUMBER_STATIC_SHOT_MODES 2 #define NUMBER_EXTERNAL_MODES 6 #define NUMBER_LAZY_ROTATION_MODES 3 #define NUMBER_DIRECTOR_MODES 4 extern int FramesSinceViewLastSet; #define VIEW_FORWARDS 1 #define VIEW_SIDEWAYS 2 #define VIEW_BACKWARDS 3 extern int IntroViewDurationInSeconds; /**************************************************************************** prototypes ****************************************************************************/ void SetCoreViewParameters (void); void SetViewInSystem (void); int ViewModeProhibitsDrawing (ObjectHandler *object); void SetViewPointSection (int sectionID); void SetViewPositionKnowingCloseToViewShip (void); void SetNewViewShip (ObjectHandler *newViewShip); void SetViewByViewMode (int viewMode); void HandleTheView (void); void UpdateViewMode (int viewMode); void PrintViewMode (void); void PrintViewInWords (int viewMode); int ViewModeIsShipViewMode (int viewMode); void MakeCameraFreeFromTilt (void); void ConvertViewFromLocalToWorldBasedSystem (void); void CopyReferenceView (GsRVIEW2 *from, GsRVIEW2 *to); void CopyMatrixView (GsVIEW2 *from, GsVIEW2 *to); void HandleIntroView (int framesSinceStart); #include "camera2.h" #define CAMERA_H_INCLUDED 1 #endif