torcs - 1.2.2

src/interfaces/raceman.h

Go to the documentation of this file.
00001 /***************************************************************************
00002 
00003     file                 : raceman.h
00004     created              : Sun Jan 30 22:59:17 CET 2000
00005     copyright            : (C) 2000,2002 by Eric Espie
00006     email                : torcs@free.fr
00007     version              : $Id: raceman.h,v 1.24 2003/12/06 16:30:41 torcs Exp $
00008 
00009  ***************************************************************************/
00010 
00011 /***************************************************************************
00012  *                                                                         *
00013  *   This program is free software; you can redistribute it and/or modify  *
00014  *   it under the terms of the GNU General Public License as published by  *
00015  *   the Free Software Foundation; either version 2 of the License, or     *
00016  *   (at your option) any later version.                                   *
00017  *                                                                         *
00018  ***************************************************************************/
00019  
00027 #ifndef _RACEMANV1_H_
00028 #define _RACEMANV1_H_
00029 
00030 #include <tgf.h>
00031 #include <car.h>
00032 #include <track.h>
00033 #include <graphic.h>
00034 #include <simu.h>
00035 
00036 #define RCM_IDENT 0
00037 
00038 struct RmInfo;
00039 
00040 typedef int (*tfRmRunState) (struct RmInfo *);
00041 
00042 #define RM_SYNC                 0x00000001
00043 #define RM_ASYNC                0x00000002
00044 
00045 #define RM_END_RACE             0x00000010
00046 #define RM_CONTINUE_RACE        0x00000020
00047 
00048 #define RM_NEXT_STEP            0x00000100
00049 #define RM_NEXT_RACE            0x00000200
00050 #define RM_NEXT_EVENT           0x00000400
00051 
00052 #define RM_ACTIVGAMESCR         0x01000000
00053 #define RM_QUIT                 0x40000000
00054 
00055 
00056 #define RCM_MAX_DT_SIMU         0.002
00057 #define RCM_MAX_DT_ROBOTS       0.02
00058 
00060 typedef struct {
00061     int                 ncars;          
00062     int                 totLaps;        
00063     int                 state;
00064 #define RM_RACE_RUNNING         0X00000001
00065 #define RM_RACE_FINISHING       0X00000002
00066 #define RM_RACE_ENDED           0X00000004
00067 #define RM_RACE_STARTING        0X00000008
00068 #define RM_RACE_PRESTART        0X00000010
00069 #define RM_RACE_PAUSED          0X40000000
00070     int                 type;           
00071 #define RM_TYPE_PRACTICE        0 /* Please keep the order */
00072 #define RM_TYPE_QUALIF          1
00073 #define RM_TYPE_RACE            2
00074     int                 maxDammage;
00075     unsigned long       fps;
00076 } tRaceAdmInfo;
00077 
00078 #define _ncars          raceInfo.ncars
00079 #define _totLaps        raceInfo.totLaps
00080 #define _raceState      raceInfo.state
00081 #define _raceType       raceInfo.type
00082 #define _maxDammage     raceInfo.maxDammage
00083 
00085 typedef struct Situation {
00086     tRaceAdmInfo        raceInfo;
00087     double              deltaTime;
00088     double              currentTime;    
00089     int                 nbPlayers;      
00090     tCarElt             **cars;         
00091 } tSituation;
00092 
00094 typedef struct 
00095 {
00096     tTrackItf   trackItf;
00097     tGraphicItf graphicItf;
00098     tSimItf     simItf;
00099 } tRaceModIft;
00100 
00101 #define RE_STATE_CONFIG                 0
00102 #define RE_STATE_EVENT_INIT             1
00103 #define RE_STATE_PRE_RACE               3
00104 #define RE_STATE_RACE_START             5
00105 #define RE_STATE_RACE                   6
00106 #define RE_STATE_RACE_STOP              7
00107 #define RE_STATE_RACE_END               8
00108 #define RE_STATE_POST_RACE              9
00109 #define RE_STATE_EVENT_SHUTDOWN         11
00110 #define RE_STATE_SHUTDOWN               12
00111 #define RE_STATE_ERROR                  13
00112 #define RE_STATE_EXIT                   14
00113 
00115 typedef struct 
00116 {
00117     tTrkLocPos  prevTrkPos;
00118     tdble       sTime;
00119     int         lapFlag;
00120     char        *raceMsg;
00121     double      totalPitTime;
00122     double      startPitTime;
00123     tdble       topSpd;
00124     tdble       botSpd;
00125     tdble       fuel;
00126 } tReCarInfo;
00127 
00131 typedef struct
00132 {
00133     int                 state;
00134     void                *param;
00135     tRaceModIft         itf;
00136     void                *gameScreen;
00137     void                *menuScreen;
00138     char                *filename;
00139     char                *name;
00140     char                *raceName;
00141     tReCarInfo          *carInfo;
00142     double              curTime;
00143     double              lastTime;
00144     double              timeMult;
00145     int                 running;
00146 #define RM_DISP_MODE_NORMAL     0
00147 #define RM_DISP_MODE_CAPTURE    1
00148 #define RM_DISP_MODE_NONE       2
00149     int                 displayMode;
00150     int                 refreshDisplay;
00151 } tRaceEngineInfo;
00152 
00153 #define _reState        raceEngineInfo.state
00154 #define _reParam        raceEngineInfo.param
00155 #define _reRacemanItf   raceEngineInfo.itf.racemanItf
00156 #define _reTrackItf     raceEngineInfo.itf.trackItf
00157 #define _reGraphicItf   raceEngineInfo.itf.graphicItf
00158 #define _reSimItf       raceEngineInfo.itf.simItf
00159 #define _reGameScreen   raceEngineInfo.gameScreen
00160 #define _reMenuScreen   raceEngineInfo.menuScreen
00161 #define _reFilename     raceEngineInfo.filename
00162 #define _reName         raceEngineInfo.name
00163 #define _reRaceName     raceEngineInfo.raceName
00164 #define _reCarInfo      raceEngineInfo.carInfo
00165 #define _reCurTime      raceEngineInfo.curTime
00166 #define _reTimeMult     raceEngineInfo.timeMult
00167 #define _reRunning      raceEngineInfo.running
00168 #define _reLastTime     raceEngineInfo.lastTime
00169 #define _displayMode    raceEngineInfo.displayMode
00170 #define _refreshDisplay raceEngineInfo.refreshDisplay
00171 
00172 #define RM_PNST_DRIVETHROUGH    0x00000001
00173 #define RM_PNST_STOPANDGO       0x00000002
00174 #define RM_PNST_STOPANDGO_OK    0x00000004
00175 #define RM_PNST_SPD             0x00010000
00176 #define RM_PNST_STNGO           0x00020000
00177 
00178 typedef struct RmCarRules
00179 {
00180     int                 ruleState;
00181 } tRmCarRules;
00182 
00183 typedef struct RmMovieCapture
00184 {
00185     int         enabled;
00186     int         state;
00187     double      deltaSimu;
00188     double      deltaFrame;
00189     double      lastFrame;
00190     char        *outputBase;
00191     int         currentCapture;
00192     int         currentFrame;
00193 } tRmMovieCapture;
00194 
00195 
00199 typedef struct RmInfo
00200 {
00201     tCarElt             *carList;       
00202     tSituation          *s;             
00203     tTrack              *track;         
00204     void                *params;        
00205     void                *results;       
00206     tModList            **modList;      
00207     tRmCarRules         *rules;         
00208     tRaceEngineInfo     raceEngineInfo;
00209     tRmMovieCapture     movieCapture;
00210 } tRmInfo;
00211 
00212 /*
00213  * Parameters name definitions for Race Managers
00214  */
00215 #define RM_SECT_HEADER          "Header"
00216 #define RM_SECT_DRIVERS         "Drivers"
00217 #define RM_SECT_STARTINGGRID    "Starting Grid"
00218 #define RM_SECT_RACES           "Races"
00219 #define RM_SECT_TRACKS          "Tracks"
00220 #define RM_SECT_CONF            "Configuration"
00221 #define RM_SECT_OPTIONS         "Options"
00222 #define RM_SECT_POINTS          "Points"
00223 
00224 #define RM_SECT_DRIVERS_RACING  "Drivers Start List"
00225 
00226 #define RM_ATTR_CUR_CONF        "current configuration"
00227 #define RM_ATTR_START_ORDER     "starting order"
00228 #define RM_ATTR_ALLOW_RESTART   "restart"
00229 #define RM_ATTR_MUST_COMPLETE   "must complete"
00230 #define RM_ATTR_SPLASH_MENU     "splash menu"
00231 #define RM_ATTR_DISP_START_GRID "display starting grid"
00232 
00233 #define RM_ATTR_MAXNUM          "maximum number"
00234 #define RM_ATTR_MAX_DRV         "maximum drivers"
00235 #define RM_ATTR_CAR             "car"
00236 
00237 #define RM_ATTR_PRIO            "priority"
00238 #define RM_ATTR_NAME            "name"
00239 #define RM_ATTR_DRVNAME         "driver name"
00240 #define RM_ATTR_CATEGORY        "category"
00241 #define RM_ATTR_DESCR           "description"
00242 #define RM_ATTR_BGIMG           "menu image"
00243 #define RM_ATTR_RUNIMG          "run image"
00244 #define RM_ATTR_STARTIMG        "start image"
00245 
00246 #define RM_ATTR_MODULE          "module"
00247 #define RM_ATTR_IDX             "idx"
00248 #define RM_ATTR_FOCUSED         "focused module"
00249 #define RM_ATTR_FOCUSEDIDX      "focused idx"
00250 #define RM_ATTR_DISPMODE        "display mode"
00251 #define RM_ATTR_DISPRES         "display results"
00252 
00253 #define RM_ATTR_TIMESTEP        "time step"
00254 
00255 #define RM_ATTR_TYPE            "type"
00256 #define RM_ATTR_RACE            "race"
00257 #define RM_ATTR_ROWS            "rows"
00258 #define RM_ATTR_TOSTART         "distance to start"
00259 #define RM_ATTR_COLDIST         "distance between columns"
00260 #define RM_ATTR_COLOFFSET       "offset within a column"
00261 #define RM_ATTR_INITSPEED       "initial speed"
00262 #define RM_ATTR_INITHEIGHT      "initial height"
00263 #define RM_ATTR_SHOW_RACE       "show race"
00264 #define RM_ATTR_MAX_DMG         "maximum dammage"
00265 #define RM_ATTR_DISTANCE        "distance"
00266 #define RM_ATTR_LAPS            "laps"
00267 #define RM_ATTR_QUAL_LAPS       "Qualification laps"
00268 #define RM_ATTR_POLE            "pole position side"
00269 
00270 #define RM_ATTR_POINTS          "points"
00271 
00272 #define RM_VAL_TRACKSEL         "track select"
00273 #define RM_VAL_DRVSEL           "drivers select"
00274 #define RM_VAL_RACECONF         "race config"
00275 #define RM_VAL_CONFRACELEN      "race length"
00276 #define RM_VAL_CONFDISPMODE     "display mode"
00277 
00278 #define RM_VAL_DRV_LIST_ORDER   "drivers list"
00279 #define RM_VAL_LAST_RACE_ORDER  "last race"
00280 #define RM_VAL_LAST_RACE_RORDER "last race reversed"
00281 
00282 #define RM_VAL_RACE             "race"
00283 #define RM_VAL_QUALIF           "qualifications"
00284 #define RM_VAL_PRACTICE         "practice"
00285 
00286 #define RM_VAL_YES              "yes"
00287 #define RM_VAL_NO               "no"
00288 
00289 #define RM_VAL_VISIBLE          "normal"
00290 #define RM_VAL_INVISIBLE        "results only"
00291 
00292 
00293 #define RM_SECT_MOVIE_CAPTURE   "Movie Capture"
00294 
00295 #define RM_ATT_CAPTURE_ENABLE   "enable capture"
00296 #define RM_ATT_CAPTURE_FPS      "fps"
00297 #define RM_ATT_CAPTURE_OUT_DIR  "output directory"
00298 
00299 /* RESULTS */
00300 
00301 #define RE_SECT_HEADER          "Header"
00302 #define RE_ATTR_DATE            "date"
00303 #define RE_ATTR_TYPE            "race"
00304 
00305 #define RE_SECT_CURRENT         "Current"
00306 #define RE_ATTR_CUR_RACE        "current race"
00307 #define RE_ATTR_CUR_TRACK       "current track"
00308 #define RE_ATTR_CUR_DRIVER      "current driver"
00309 
00310 #define RE_SECT_DRIVERS         "Drivers"
00311 #define RE_SECT_DRIVER          "Driver"
00312 #define RE_ATTR_DLL_NAME        "dll name"
00313 #define RE_ATTR_INDEX           "index"
00314 
00315 #define RE_SECT_STANDINGS       "Standings"
00316 
00317 #define RE_SECT_RESULTS         "Results"
00318 #define RE_SECT_STARTINGGRID    "Starting Grid"
00319 
00320 #define RE_SECT_QUALIF          "Qualifications"
00321 
00322 #define RE_SECT_FINAL           "Final"
00323 
00324 #define RE_SECT_RANK            "Rank"          
00325 
00326 #define RE_ATTR_NAME            "name"
00327 #define RE_ATTR_CAR             "car"
00328 #define RE_ATTR_MODULE          "module"
00329 #define RE_ATTR_IDX             "idx"
00330 #define RE_ATTR_LAPS            "laps"
00331 #define RE_ATTR_BEST_LAP_TIME   "best lap time"
00332 #define RE_ATTR_TIME            "time"
00333 #define RE_ATTR_TOP_SPEED       "top speed"
00334 #define RE_ATTR_BOT_SPEED       "bottom speed"
00335 #define RE_ATTR_DAMMAGES        "dammages"
00336 #define RE_ATTR_NB_PIT_STOPS    "pits stops"
00337 #define RE_ATTR_POINTS          "points"
00338 
00339 #endif /* _RACEMANV1_H_ */ 
00340 
00341 
00342 

Generated at Thu Feb 26 21:52:27 2004 for torcs by doxygen 1.3.3 written by Dimitri van Heesch, © 1997-1999
TORCS © Eric Espié 1999, 2002.