TORCS  1.3.10
The Open Racing Car Simulator
Loading...
Searching...
No Matches
raceman.h
Go to the documentation of this file.
1/***************************************************************************
2
3 file : raceman.h
4 created : Sun Jan 30 22:59:17 CET 2000
5 copyright : (C) 2000,2002-2026 by Eric EspiƩ, Bernhard Wymann
6 email : berniw@bluewin.ch
7
8 ***************************************************************************/
9
10/***************************************************************************
11 * *
12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. *
16 * *
17 ***************************************************************************/
18
24
25#ifndef _RACEMANV1_H_
26#define _RACEMANV1_H_
27
28#include <tgf.h>
29#include <car.h>
30#include <track.h>
31#include <graphic.h>
32#include <simu.h>
33
34#define RCM_IDENT 0
35
36struct RmInfo;
37
38typedef int (*tfRmRunState) (struct RmInfo *);
39
40#define RM_SYNC 0x00000001
41#define RM_ASYNC 0x00000002
42
43#define RM_END_RACE 0x00000010
44#define RM_CONTINUE_RACE 0x00000020
45
46#define RM_NEXT_STEP 0x00000100
47#define RM_NEXT_RACE 0x00000200
48#define RM_NEXT_EVENT 0x00000400
49
50#define RM_ACTIVGAMESCR 0x01000000
51#define RM_QUIT 0x40000000
52
53
54#define RCM_MAX_DT_SIMU 0.002
55#define RCM_MAX_DT_HUMAN 0.004
56#define RCM_MAX_DT_ROBOTS 0.02
57
59typedef struct {
60 int ncars;
61 int totLaps;
62 int state;
63#define RM_RACE_RUNNING 0X00000001
64#define RM_RACE_FINISHING 0X00000002
65#define RM_RACE_ENDED 0X00000004
66#define RM_RACE_STARTING 0X00000008
67#define RM_RACE_PRESTART 0X00000010
68#define RM_RACE_PAUSED 0X40000000
69 int type;
70#define RM_TYPE_PRACTICE 0 /* Please keep the order */
71#define RM_TYPE_QUALIF 1
72#define RM_TYPE_RACE 2
74 unsigned long fps;
76
77#define _ncars raceInfo.ncars
78#define _totLaps raceInfo.totLaps
79#define _raceState raceInfo.state
80#define _raceType raceInfo.type
81#define _maxDammage raceInfo.maxDammage
82
92
100
101#define RE_STATE_CONFIG 0
102#define RE_STATE_EVENT_INIT 1
103#define RE_STATE_PRE_RACE 3
104#define RE_STATE_RACE_START 5
105#define RE_STATE_RACE 6
106#define RE_STATE_RACE_STOP 7
107#define RE_STATE_RACE_END 8
108#define RE_STATE_POST_RACE 9
109#define RE_STATE_EVENT_SHUTDOWN 11
110#define RE_STATE_SHUTDOWN 12
111#define RE_STATE_ERROR 13
112#define RE_STATE_EXIT 14
113
127
131typedef struct
132{
133 int state;
134 void *param;
138 char *filename;
139 const char *name;
140 const char *raceName;
142 double curTime;
143 double lastTime;
145 double timeMult;
147#define RM_DISP_MODE_NORMAL 0
148#define RM_DISP_MODE_CAPTURE 1
149#define RM_DISP_MODE_NONE 2
150#define RM_DISP_MODE_CONSOLE 4
154
155#define _reState raceEngineInfo.state
156#define _reParam raceEngineInfo.param
157#define _reRacemanItf raceEngineInfo.itf.racemanItf
158#define _reTrackItf raceEngineInfo.itf.trackItf
159#define _reGraphicItf raceEngineInfo.itf.graphicItf
160#define _reSimItf raceEngineInfo.itf.simItf
161#define _reGameScreen raceEngineInfo.gameScreen
162#define _reMenuScreen raceEngineInfo.menuScreen
163#define _reFilename raceEngineInfo.filename
164#define _reName raceEngineInfo.name
165#define _reRaceName raceEngineInfo.raceName
166#define _reCarInfo raceEngineInfo.carInfo
167#define _reCurTime raceEngineInfo.curTime
168#define _reTimeMult raceEngineInfo.timeMult
169#define _reRunning raceEngineInfo.running
170#define _reLastTime raceEngineInfo.lastTime
171#define _displayMode raceEngineInfo.displayMode
172#define _refreshDisplay raceEngineInfo.refreshDisplay
173
174#define RM_PNST_DRIVETHROUGH 0x00000001
175#define RM_PNST_STOPANDGO 0x00000002
176#define RM_PNST_STOPANDGO_OK 0x00000004
177#define RM_PNST_SPD 0x00010000
178#define RM_PNST_STNGO 0x00020000
179
197
198typedef struct RmCarRules
199{
202
214
215
232
233/*
234 * Parameters name definitions for Race Managers
235 */
236#define RM_SECT_HEADER "Header"
237#define RM_SECT_DRIVERS "Drivers"
238#define RM_SECT_STARTINGGRID "Starting Grid"
239#define RM_SECT_RACES "Races"
240#define RM_SECT_TRACKS "Tracks"
241#define RM_SECT_CONF "Configuration"
242#define RM_SECT_OPTIONS "Options"
243#define RM_SECT_POINTS "Points"
244
245#define RM_SECT_DRIVERS_RACING "Drivers Start List"
246
247#define RM_ATTR_CUR_CONF "current configuration"
248#define RM_ATTR_START_ORDER "starting order"
249#define RM_ATTR_ALLOW_RESTART "restart"
250#define RM_ATTR_SPLASH_MENU "splash menu"
251#define RM_ATTR_DISP_START_GRID "display starting grid"
252
253#define RM_ATTR_MAXNUM "maximum number"
254#define RM_ATTR_MAX_DRV "maximum drivers"
255#define RM_ATTR_SKILL_LEVEL_DEFAULT "skill level default"
256
257#define RM_ATTR_PRIO "priority"
258#define RM_ATTR_NAME "name"
259#define RM_ATTR_DRVNAME "driver name"
260#define RM_ATTR_CATEGORY "category"
261#define RM_ATTR_DESCR "description"
262#define RM_ATTR_BGIMG "menu image"
263#define RM_ATTR_RUNIMG "run image"
264#define RM_ATTR_STARTIMG "start image"
265
266#define RM_ATTR_MODULE "module"
267#define RM_ATTR_IDX "idx"
268#define RM_ATTR_FOCUSED "focused module"
269#define RM_ATTR_FOCUSEDIDX "focused idx"
270#define RM_ATTR_DISPMODE "display mode"
271#define RM_ATTR_DISPRES "display results"
272
273#define RM_ATTR_TYPE "type"
274#define RM_ATTR_RACE "race"
275#define RM_ATTR_ROWS "rows"
276#define RM_ATTR_TOSTART "distance to start"
277#define RM_ATTR_COLDIST "distance between columns"
278#define RM_ATTR_COLOFFSET "offset within a column"
279#define RM_ATTR_INITSPEED "initial speed"
280#define RM_ATTR_INITHEIGHT "initial height"
281#define RM_ATTR_MAX_DMG "maximum dammage"
282#define RM_ATTR_DISTANCE "distance"
283#define RM_ATTR_LAPS "laps"
284#define RM_ATTR_POLE "pole position side"
285#define RM_ATTR_CARSPERPIT "cars per pit"
286
287#define RM_ATTR_INVALIDATE_BEST_LAP_WALL_TOUCH "invalidate best lap on wall touch"
288#define RM_ATTR_INVALIDATE_BEST_LAP_CORNER_CUT "invalidate best lap on corner cutting"
289#define RM_ATTR_CORNER_CUT_TIME_PENALTY "corner cutting time penalty"
290#define RM_ATTR_DAMAGE_FACTOR "damage factor"
291#define RM_ATTR_FUEL_FACTOR "fuel consumption factor"
292#define RM_ATTR_TIRE_FACTOR "tire factor"
293#define RM_ATTR_PIT_SPEED_LIMIT "pit speed limit"
294#define RM_ATTR_REFUEL_FUEL_FLOW "refuel fuel flow"
295#define RM_ATTR_DAMAGE_REPAIR_FACTOR "damage repair factor"
296#define RM_ATTR_PITSTOP_BASE_TIME "pitstop base time"
297#define RM_ATTR_ALL_TIRES_CHANGE_TIME "all tires change time"
298
299#define RM_ATTR_POINTS "points"
300
301#define RM_VAL_TRACKSEL "track select"
302#define RM_VAL_DRVSEL "drivers select"
303#define RM_VAL_RACECONF "race config"
304#define RM_VAL_CONFRACELEN "race length"
305#define RM_VAL_CONFDISPMODE "display mode"
306
307#define RM_VAL_DRV_LIST_ORDER "drivers list"
308#define RM_VAL_LAST_RACE_ORDER "last race"
309#define RM_VAL_LAST_RACE_RORDER "last race reversed"
310
311#define RM_VAL_RACE "race"
312#define RM_VAL_QUALIF "qualifications"
313#define RM_VAL_PRACTICE "practice"
314
315#define RM_VAL_YES "yes"
316#define RM_VAL_NO "no"
317
318#define RM_VAL_VISIBLE "normal"
319#define RM_VAL_INVISIBLE "results only"
320
321
322#define RM_SECT_MOVIE_CAPTURE "Movie Capture"
323
324#define RM_ATT_CAPTURE_ENABLE "enable capture"
325#define RM_ATT_CAPTURE_FPS "fps"
326#define RM_ATT_CAPTURE_OUT_DIR "output directory"
327
328/* RESULTS */
329
330#define RE_SECT_HEADER "Header"
331#define RE_ATTR_DATE "date"
332
333#define RE_SECT_CURRENT "Current"
334#define RE_ATTR_CUR_RACE "current race"
335#define RE_ATTR_CUR_TRACK "current track"
336#define RE_ATTR_CUR_DRIVER "current driver"
337
338#define RE_ATTR_DLL_NAME "dll name"
339#define RE_ATTR_INDEX "index"
340
341#define RE_SECT_STANDINGS "Standings"
342#define RE_SECT_RESULTS "Results"
343#define RE_SECT_RANK "Rank"
344
345#define RE_ATTR_NAME "name"
346#define RE_ATTR_CAR "car"
347#define RE_ATTR_MODULE "module"
348#define RE_ATTR_IDX "idx"
349#define RE_ATTR_LAPS "laps"
350#define RE_ATTR_BEST_LAP_TIME "best lap time"
351#define RE_ATTR_TIME "time"
352#define RE_ATTR_TOP_SPEED "top speed"
353#define RE_ATTR_BOT_SPEED "bottom speed"
354#define RE_ATTR_DAMMAGES "dammages"
355#define RE_ATTR_NB_PIT_STOPS "pits stops"
356#define RE_ATTR_POINTS "points"
357#define RE_ATTR_PENALTYTIME "penaltytime"
358
359#endif /* _RACEMANV1_H_ */
360
361
362
This is the car structure.
#define RM_DRV_ROBOT
Definition car.h:123
struct CarElt tCarElt
Car structure (tCarElt).
Graphic Module Interface Definition
float tdble
Floating point type used in TORCS.
Definition tgf.h:47
struct RmInfo tRmInfo
Race Manager General Info.
struct RmMovieCapture tRmMovieCapture
int(* tfRmRunState)(struct RmInfo *)
Definition raceman.h:38
struct RmCarRules tRmCarRules
struct RmRaceRules tRmRaceRules
struct Situation tSituation
cars situation used to inform the GUI and the drivers
Simulation Module Interface Definition
int ruleState
Definition raceman.h:200
Race Manager General Info.
Definition raceman.h:220
tRmMovieCapture movieCapture
Definition raceman.h:229
tTrack * track
Current track.
Definition raceman.h:223
void * params
Raceman parameters.
Definition raceman.h:224
tRmCarRules * rules
by car rules
Definition raceman.h:227
tRaceEngineInfo raceEngineInfo
Definition raceman.h:228
void * results
Race results.
Definition raceman.h:225
tRmRaceRules raceRules
Definition raceman.h:230
tModList ** modList
drivers loaded
Definition raceman.h:226
tSituation * s
Situation during race.
Definition raceman.h:222
tCarElt * carList
List of all the cars racing.
Definition raceman.h:221
double deltaFrame
Definition raceman.h:208
const char * outputBase
Definition raceman.h:210
double deltaSimu
Definition raceman.h:207
int currentCapture
Definition raceman.h:211
double lastFrame
Definition raceman.h:209
tdble refuelFuelFlow
Definition raceman.h:191
tdble pitstopBaseTime
Definition raceman.h:193
tdble damageFactor
Definition raceman.h:190
tdble tireFactor
Definition raceman.h:194
tdble allTiresChangeTime
Definition raceman.h:195
int enabled
Definition raceman.h:188
@ CORNER_CUTTING_TIME_INVALIDATE
Definition raceman.h:183
@ CORNER_CUTTING_TIME_PENALTY
Definition raceman.h:185
@ WALL_HIT_TIME_INVALIDATE
Definition raceman.h:184
tdble damageRepairFactor
Definition raceman.h:192
tdble fuelFactor
Definition raceman.h:189
cars situation used to inform the GUI and the drivers
Definition raceman.h:84
tRaceAdmInfo raceInfo
Definition raceman.h:85
int nbPlayers
number of human player in local (splitted screen)
Definition raceman.h:88
tCarElt ** cars
list of cars
Definition raceman.h:89
double deltaTime
Legacy rbDrive delta for existing robot modules; normal robots use this value.
Definition raceman.h:86
double driveDeltaTime[RM_DRV_ROBOT+1]
rbDrive delta indexed by RM_DRV_*; index 0 is unused.
Definition raceman.h:90
double currentTime
current time in sec since the beginning of the simulation
Definition raceman.h:87
Interface Structure for Graphic Renering Module.
Definition graphic.h:156
General info on current race.
Definition raceman.h:59
int totLaps
total laps
Definition raceman.h:61
unsigned long fps
Definition raceman.h:74
int ncars
number of cars
Definition raceman.h:60
int maxDammage
Definition raceman.h:73
int type
Race type.
Definition raceman.h:69
Race Engine Information.
Definition raceman.h:132
double lastDriveTime[RM_DRV_ROBOT+1]
Last time rbDrive call indexed by RM_DRV_*; index 0 is unused.
Definition raceman.h:144
void * menuScreen
Definition raceman.h:137
tReCarInfo * carInfo
Definition raceman.h:141
double curTime
Definition raceman.h:142
const char * name
Definition raceman.h:139
const char * raceName
Definition raceman.h:140
tRaceModIft itf
Definition raceman.h:135
void * gameScreen
Definition raceman.h:136
char * filename
Definition raceman.h:138
double timeMult
Definition raceman.h:145
double lastTime
Legacy last time rbDrive call for existing robot modules.
Definition raceman.h:143
Race Engine.
Definition raceman.h:95
tSimItf simItf
Definition raceman.h:98
tTrackItf trackItf
Definition raceman.h:96
tGraphicItf graphicItf
Definition raceman.h:97
Race Engine Car Information about the race.
Definition raceman.h:116
tdble topSpd
Definition raceman.h:123
char * raceMsg
Definition raceman.h:120
tTrkLocPos prevTrkPos
Definition raceman.h:117
double totalPitTime
Definition raceman.h:121
int lapFlag
Definition raceman.h:119
tdble botSpd
Definition raceman.h:124
tdble sTime
Definition raceman.h:118
tdble fuel
Definition raceman.h:125
double startPitTime
Definition raceman.h:122
Interface Structure for Simulation.
Definition simu.h:85
Track structure.
Definition track.h:533
Interface Structure for Track Loader.
Definition track.h:634
Location on the track in local coordinates.
Definition track.h:434
struct ModList tModList
list of module interfaces
Track Structure and Track Loader Module Definition.