InSim  0.6c
Documentation of Live for Speed InSim Protocol
ispackets.h
Go to the documentation of this file.
00001 #ifndef _ISPACKETS_H_
00002 #define _ISPACKETS_H_
00003 
00004 
00730 
00731 const int INSIM_VERSION = 5;
00732 
00733 
00734 
00735 
00770 struct IS_ISI 
00771 {
00772     byte    Size;       
00773     byte    Type;       
00774     byte    ReqI;       
00775     byte    Zero;       
00776 
00777     word    UDPPort;    
00778     word    Flags;      
00779 
00780     byte    Sp0;        
00781     byte    Prefix;     
00782     word    Interval;   
00783 
00784     char    Admin[16];  
00785     char    IName[16];  
00786 };
00787 
00792 #define ISF_RES_0          1    
00793 #define ISF_RES_1          2    
00794 #define ISF_LOCAL          4    
00795 #define ISF_MSO_COLS       8    
00796 #define ISF_NLP           16    
00797 #define ISF_MCI           32    
00798 #define ISF_CON           64    
00799 #define ISF_OBH          128    
00800 #define ISF_HLV          256    
00801 #define ISF_AXM_LOAD     512    
00802 #define ISF_AXM_EDIT    1024    
00804 
00805 
00806 
00811 
00813 enum 
00814 {
00815     ISP_NONE,       
00816     ISP_ISI,        
00817     ISP_VER,        
00818     ISP_TINY,       
00819     ISP_SMALL,      
00820     ISP_STA,        
00821     ISP_SCH,        
00822     ISP_SFP,        
00823     ISP_SCC,        
00824     ISP_CPP,        
00825     ISP_ISM,        
00826     ISP_MSO,        
00827     ISP_III,        
00828     ISP_MST,        
00829     ISP_MTC,        
00830     ISP_MOD,        
00831     ISP_VTN,        
00832     ISP_RST,        
00833     ISP_NCN,        
00834     ISP_CNL,        
00835     ISP_CPR,        
00836     ISP_NPL,        
00837     ISP_PLP,        
00838     ISP_PLL,        
00839     ISP_LAP,        
00840     ISP_SPX,        
00841     ISP_PIT,        
00842     ISP_PSF,        
00843     ISP_PLA,        
00844     ISP_CCH,        
00845     ISP_PEN,        
00846     ISP_TOC,        
00847     ISP_FLG,        
00848     ISP_PFL,        
00849     ISP_FIN,        
00850     ISP_RES,        
00851     ISP_REO,        
00852     ISP_NLP,        
00853     ISP_MCI,        
00854     ISP_MSX,        
00855     ISP_MSL,        
00856     ISP_CRS,        
00857     ISP_BFN,        
00858     ISP_AXI,        
00859     ISP_AXO,        
00860     ISP_BTN,        
00861     ISP_BTC,        
00862     ISP_BTT,        
00863     ISP_RIP,        
00864     ISP_SSH,        
00865     ISP_CON,        
00866     ISP_OBH,        
00867     ISP_HLV,        
00868     ISP_PLC,        
00869     ISP_AXM,        
00870     ISP_ACR,        
00871 };
00879 
00881 
00882 enum
00883 {
00884     TINY_NONE,      
00885     TINY_VER,       
00886     TINY_CLOSE,     
00887     TINY_PING,      
00888     TINY_REPLY,     
00889     TINY_VTC,       
00890     TINY_SCP,       
00891     TINY_SST,       
00892     TINY_GTH,       
00893     TINY_MPE,       
00894     TINY_ISM,       
00895     TINY_REN,       
00896     TINY_CLR,       
00897     TINY_NCN,       
00898     TINY_NPL,       
00899     TINY_RES,       
00900     TINY_NLP,       
00901     TINY_MCI,       
00902     TINY_REO,       
00903     TINY_RST,       
00904     TINY_AXI,       
00905     TINY_AXC,       
00906     TINY_RIP,       
00907 };
00915 
00916 
00918 enum
00919 {
00920     SMALL_NONE,     
00921     SMALL_SSP,      
00922     SMALL_SSG,      
00923     SMALL_VTA,      
00924     SMALL_TMS,      
00925     SMALL_STP,      
00926     SMALL_RTP,      
00927     SMALL_NLI,      
00928 };
00936 struct IS_TINY 
00937 {
00938     byte Size;      
00939     byte Type;      
00940     byte ReqI;      
00941     byte SubT;      
00942 };
00943 
00948 struct IS_SMALL 
00949 {
00950     byte Size;      
00951     byte Type;      
00952     byte ReqI;      
00953     byte SubT;      
00954 
00955     unsigned UVal;  
00956 };
00957 
00958 
00967 struct IS_VER
00968 {
00969     byte    Size;           
00970     byte    Type;           
00971     byte    ReqI;           
00972     byte    Zero;
00973 
00974     char    Version[8];     
00975     char    Product[6];     
00976     word    InSimVer;       
00977 };
00978 
00979 
00980 
00988 struct IS_STA
00989 {
00990     byte    Size;           
00991     byte    Type;           
00992     byte    ReqI;           
00993     byte    Zero;
00994 
00995     float   ReplaySpeed;    
00996 
00997     word    Flags;          
00998     byte    InGameCam;      
00999     byte    ViewPLID;       
01000 
01001     byte    NumP;           
01002     byte    NumConns;       
01003     byte    NumFinished;    
01004     byte    RaceInProg;     
01005 
01006     byte    QualMins;
01007     byte    RaceLaps;       
01008     byte    Spare2;
01009     byte    Spare3;
01010 
01011     char    Track[6];       
01012     byte    Weather;        
01013     byte    Wind;           
01014 };
01015 
01016 
01021 
01022 #define ISS_GAME            1       
01023 #define ISS_REPLAY          2       
01024 #define ISS_PAUSED          4       
01025 #define ISS_SHIFTU          8       
01026 #define ISS_16              16      
01027 #define ISS_SHIFTU_FOLLOW   32      
01028 #define ISS_SHIFTU_NO_OPT   64      
01029 #define ISS_SHOW_2D         128     
01030 #define ISS_FRONT_END       256     
01031 #define ISS_MULTI           512     
01032 #define ISS_MPSPEEDUP       1024    
01033 #define ISS_WINDOWED        2048    
01034 #define ISS_SOUND_MUTE      4096    
01035 #define ISS_VIEW_OVERRIDE   8192    
01036 #define ISS_VISIBLE         16384   
01038 
01039 
01040 
01041 struct IS_SFP
01042 {
01043     byte    Size;       
01044     byte    Type;       
01045     byte    ReqI;       
01046     byte    Zero;
01047 
01048     word    Flag;       
01049     byte    OffOn;      
01050     byte    Sp3;        
01051 };
01052 
01053 
01063 struct IS_MOD
01064 {
01065     byte    Size;       
01066     byte    Type;       
01067     byte    ReqI;       
01068     byte    Zero;
01069 
01070     int     Bits16;     
01071     int     RR;         
01072     int     Width;      
01073     int     Height;     
01074 };
01075 
01076 
01077 
01078 
01080 
01081 struct IS_MSO
01082 {
01083     byte    Size;       
01084     byte    Type;       
01085     byte    ReqI;       
01086     byte    Zero;
01087 
01088     byte    UCID;       
01089     byte    PLID;       
01090     byte    UserType;   
01091     byte    TextStart;  
01092 
01093     char    Msg[128];
01094 };
01095 
01100 
01106 enum
01107 {
01108     MSO_SYSTEM,         
01109     MSO_USER,           
01110     MSO_PREFIX,         
01111     MSO_O,              
01112     MSO_NUM
01113 };
01121 struct IS_III
01122 {
01123     byte    Size;       
01124     byte    Type;       
01125     byte    ReqI;       
01126     byte    Zero;
01127 
01128     byte    UCID;       
01129     byte    PLID;       
01130     byte    Sp2;
01131     byte    Sp3;
01132 
01133     char    Msg[64];
01134 };
01135 
01137 struct IS_ACR 
01138 {
01139     byte    Size;       
01140     byte    Type;       
01141     byte    ReqI;       
01142     byte    Zero;
01143 
01144     byte    UCID;       
01145     byte    Admin;      
01146     byte    Result;     
01147     byte    Sp3;
01148 
01149     char    Text[64];
01150 };
01151 
01153 struct IS_MST
01154 {
01155     byte    Size;       
01156     byte    Type;       
01157     byte    ReqI;       
01158     byte    Zero;
01159 
01160     char    Msg[64];    
01161 };
01162 
01164 struct IS_MSX
01165 {
01166     byte    Size;       
01167     byte    Type;       
01168     byte    ReqI;       
01169     byte    Zero;
01170 
01171     char    Msg[96];    
01172 };
01173 
01175 struct IS_MSL
01176 {
01177     byte    Size;       
01178     byte    Type;       
01179     byte    ReqI;       
01180     byte    Sound;      
01181 
01182     char    Msg[128];   
01183 };
01184 
01186 struct IS_MTC 
01187 {
01188     byte    Size;       
01189     byte    Type;       
01190     byte    ReqI;       
01191     byte    Sound;      
01192 
01193     byte    UCID;       
01194     byte    PLID;       
01195     byte    Sp2;
01196     byte    Sp3;
01197 
01198     char    Text[TEXT_SIZE]; 
01199 };
01200 
01205 
01206 enum
01207 {
01208     SND_SILENT,
01209     SND_MESSAGE,
01210     SND_SYSMESSAGE,
01211     SND_INVALIDKEY,
01212     SND_ERROR,
01213     SND_NUM
01214 };
01218 
01219 struct IS_SCH
01220 {
01221     byte    Size;       
01222     byte    Type;       
01223     byte    ReqI;       
01224     byte    Zero;
01225 
01226     byte    CharB;      
01227     byte    Flags;      
01228     byte    Spare2;
01229     byte    Spare3;
01230 };
01231 
01232 
01234 struct IS_ISM
01235 {
01236     byte    Size;       
01237     byte    Type;       
01238     byte    ReqI;       
01239     byte    Zero;
01240 
01241     byte    Host;       
01242     byte    Sp1;
01243     byte    Sp2;
01244     byte    Sp3;
01245 
01246     char    HName[32];  
01247 };
01248 
01249 
01250 
01255 
01257 enum
01258 {
01259     VOTE_NONE,          
01260     VOTE_END,           
01261     VOTE_RESTART,       
01262     VOTE_QUALIFY,       
01263     VOTE_NUM
01264 };
01267 
01268 struct IS_VTN
01269 {
01270     byte    Size;       
01271     byte    Type;       
01272     byte    ReqI;       
01273     byte    Zero;
01274 
01275     byte    UCID;       
01276     byte    Action;     
01277     byte    Spare2;
01278     byte    Spare3;
01279 };
01280 
01305 struct IS_PLC 
01306 {
01307     byte    Size;       
01308     byte    Type;       
01309     byte    ReqI;       
01310     byte    Zero;
01311 
01312     byte    UCID;       
01313     byte    Sp1;
01314     byte    Sp2;
01315     byte    Sp3;
01316 
01317     unsigned    Cars;   
01318 };
01319 
01320 
01321 
01335 struct IS_RST
01336 {
01337     byte    Size;       
01338     byte    Type;       
01339     byte    ReqI;       
01340     byte    Zero;
01341 
01342     byte    RaceLaps;   
01343     byte    QualMins;   
01344     byte    NumP;       
01345     byte    Timing;     
01346 
01347     char    Track[6];   
01348     byte    Weather;
01349     byte    Wind;
01350 
01351     word    Flags;      
01352     word    NumNodes;   
01353     word    Finish;     
01354     word    Split1;     
01355     word    Split2;     
01356     word    Split3;     
01357 };
01358 
01360 struct IS_NCN
01361 {
01362     byte    Size;       
01363     byte    Type;       
01364     byte    ReqI;       
01365     byte    UCID;       
01366 
01367     char    UName[24];  
01368     char    PName[24];  
01369 
01370     byte    Admin;      
01371     byte    Total;      
01372     byte    Flags;      
01373     byte    Sp3;
01374 };
01375 
01377 struct IS_CNL
01378 {
01379     byte    Size;       
01380     byte    Type;       
01381     byte    ReqI;       
01382     byte    UCID;       
01383 
01384     byte    Reason;     
01385     byte    Total;      
01386     byte    Sp2;
01387     byte    Sp3;
01388 };
01389 
01391 struct IS_CPR
01392 {
01393     byte    Size;       
01394     byte    Type;       
01395     byte    ReqI;       
01396     byte    UCID;       
01397 
01398     char    PName[24];  
01399     char    Plate[8];   
01400 };
01401 
01410 struct IS_NPL
01411 {
01412     byte    Size;       
01413     byte    Type;       
01414     byte    ReqI;       
01415     byte    PLID;       
01416 
01417     byte    UCID;       
01418     byte    PType;      
01419     word    Flags;      
01420 
01421     char    PName[24];  
01422     char    Plate[8];   
01423 
01424     char    CName[4];   
01425     char    SName[16];  
01426     byte    Tyres[4];   
01427 
01428     byte    H_Mass;     
01429     byte    H_TRes;     
01430     byte    Model;      
01431     byte    Pass;       
01432 
01433     int     Spare;
01434 
01435     byte    SetF;       
01436     byte    NumP;       
01437     byte    Sp2;
01438     byte    Sp3;
01439 };
01440 
01446 #define SETF_SYMM_WHEELS    1
01447 #define SETF_TC_ENABLE      2
01448 #define SETF_ABS_ENABLE     4
01449 
01455 struct IS_PLP
01456 {
01457     byte    Size;       
01458     byte    Type;       
01459     byte    ReqI;       
01460     byte    PLID;       
01461 };
01462 
01467 struct IS_PLL
01468 {
01469     byte    Size;       
01470     byte    Type;       
01471     byte    ReqI;       
01472     byte    PLID;       
01473 };
01474 
01476 struct IS_CRS 
01477 {
01478     byte    Size;       
01479     byte    Type;       
01480     byte    ReqI;       
01481     byte    PLID;       
01482 };
01483 
01485 struct IS_LAP
01486 {
01487     byte    Size;       
01488     byte    Type;       
01489     byte    ReqI;       
01490     byte    PLID;       
01491 
01492     unsigned    LTime;  
01493     unsigned    ETime;  
01494 
01495     word    LapsDone;   
01496     word    Flags;      
01497 
01498     byte    Sp0;
01499     byte    Penalty;    
01500     byte    NumStops;   
01501     byte    Sp3;
01502 };
01503 
01505 struct IS_SPX
01506 {
01507     byte    Size;       
01508     byte    Type;       
01509     byte    ReqI;       
01510     byte    PLID;       
01511 
01512     unsigned    STime;  
01513     unsigned    ETime;  
01514 
01515     byte    Split;      
01516     byte    Penalty;    
01517     byte    NumStops;   
01518     byte    Sp3;
01519 };
01520 
01525 struct IS_PIT
01526 {
01527     byte    Size;       
01528     byte    Type;       
01529     byte    ReqI;       
01530     byte    PLID;       
01531 
01532     word    LapsDone;   
01533     word    Flags;      
01534 
01535     byte    Sp0;
01536     byte    Penalty;    
01537     byte    NumStops;   
01538     byte    Sp3;
01539 
01540     byte    Tyres[4];   
01541 
01542     unsigned    Work;   
01543     unsigned    Spare;
01544 };
01545 
01547 struct IS_PSF
01548 {
01549     byte    Size;       
01550     byte    Type;       
01551     byte    ReqI;       
01552     byte    PLID;       
01553 
01554     unsigned    STime;  
01555     unsigned    Spare;
01556 };
01557 
01559 struct IS_PLA 
01560 {
01561     byte    Size;       
01562     byte    Type;       
01563     byte    ReqI;       
01564     byte    PLID;       
01565 
01566     byte    Fact;       
01567     byte    Sp1;
01568     byte    Sp2;
01569     byte    Sp3;
01570 };
01571 
01580 struct IS_CCH
01581 {
01582     byte    Size;       
01583     byte    Type;       
01584     byte    ReqI;       
01585     byte    PLID;       
01586 
01587     byte    Camera;     
01588     byte    Sp1;
01589     byte    Sp2;
01590     byte    Sp3;
01591 };
01592 
01597 struct IS_PEN 
01598 {
01599     byte    Size;       
01600     byte    Type;       
01601     byte    ReqI;       
01602     byte    PLID;       
01603 
01604     byte    OldPen;     
01605     byte    NewPen;     
01606     byte    Reason;     
01607     byte    Sp3;
01608 };
01609 
01611 struct IS_TOC
01612 {
01613     byte    Size;       
01614     byte    Type;       
01615     byte    ReqI;       
01616     byte    PLID;       
01617 
01618     byte    OldUCID;    
01619     byte    NewUCID;    
01620     byte    Sp2;
01621     byte    Sp3;
01622 };
01623 
01628 struct IS_FLG
01629 {
01630     byte    Size;       
01631     byte    Type;       
01632     byte    ReqI;       
01633     byte    PLID;       
01634 
01635     byte    OffOn;      
01636     byte    Flag;       
01637     byte    CarBehind;  
01638     byte    Sp3;
01639 };
01640 
01645 struct IS_PFL
01646 {
01647     byte    Size;       
01648     byte    Type;       
01649     byte    ReqI;       
01650     byte    PLID;       
01651 
01652     word    Flags;      
01653     word    Spare;
01654 };
01655 
01660 struct IS_FIN 
01661 {
01662     byte    Size;       
01663     byte    Type;       
01664     byte    ReqI;       
01665     byte    PLID;       
01666 
01667     unsigned    TTime;  
01668     unsigned    BTime;  
01669 
01670     byte    SpA;
01671     byte    NumStops;   
01672     byte    Confirm;    
01673     byte    SpB;
01674 
01675     word    LapsDone;   
01676     word    Flags;      
01677 };
01678 
01683 struct IS_RES
01684 {
01685     byte    Size;       
01686     byte    Type;       
01687     byte    ReqI;       
01688     byte    PLID;       
01689 
01690     char    UName[24];  
01691     char    PName[24];  
01692     char    Plate[8];   
01693     char    CName[4];   
01694 
01695     unsigned    TTime;  
01696     unsigned    BTime;  
01697 
01698     byte    SpA;
01699     byte    NumStops;   
01700     byte    Confirm;    
01701     byte    SpB;
01702 
01703     word    LapsDone;   
01704     word    Flags;      
01705 
01706     byte    ResultNum;  
01707     byte    NumRes;     
01708     word    PSeconds;   
01709 };
01710 
01711 
01716 struct IS_REO 
01717 {
01718     byte    Size;       
01719     byte    Type;       
01720     byte    ReqI;       
01721     byte    NumP;       
01722 
01723     byte    PLID[32];   
01724 };
01725 
01726 
01731 
01733 enum
01734 {
01735     PITLANE_EXIT,       
01736     PITLANE_ENTER,      
01737     PITLANE_NO_PURPOSE, 
01738     PITLANE_DT,         
01739     PITLANE_SG,         
01740     PITLANE_NUM
01741 };
01749 
01751 enum
01752 {
01753     PSE_NOTHING,        
01754     PSE_STOP,           
01755     PSE_FR_DAM,         
01756     PSE_FR_WHL,         
01757     PSE_LE_FR_DAM,
01758     PSE_LE_FR_WHL,
01759     PSE_RI_FR_DAM,
01760     PSE_RI_FR_WHL,
01761     PSE_RE_DAM,
01762     PSE_RE_WHL,
01763     PSE_LE_RE_DAM,
01764     PSE_LE_RE_WHL,
01765     PSE_RI_RE_DAM,
01766     PSE_RI_RE_WHL,
01767     PSE_BODY_MINOR,
01768     PSE_BODY_MAJOR,
01769     PSE_SETUP,
01770     PSE_REFUEL,
01771     PSE_NUM
01772 };
01780 
01782 enum
01783 {
01784     VIEW_FOLLOW,    
01785     VIEW_HELI,      
01786     VIEW_CAM,       
01787     VIEW_DRIVER,    
01788     VIEW_CUSTOM,    
01789     VIEW_MAX
01790 };
01791 
01792 const int VIEW_ANOTHER = 255; 
01793 
01800 
01802 enum
01803 {
01804     LEAVR_DISCO,        
01805     LEAVR_TIMEOUT,      
01806     LEAVR_LOSTCONN,     
01807     LEAVR_KICKED,       
01808     LEAVR_BANNED,       
01809     LEAVR_SECURITY,     
01810     LEAVR_CPW,          
01811     LEAVR_OOS,          
01812     LEAVR_JOOS,         
01813     LEAVR_HACK,         
01814     LEAVR_NUM
01815 };
01822 
01824 enum
01825 {
01826     PENALTY_NONE,       
01827     PENALTY_DT,         
01828     PENALTY_DT_VALID,   
01829     PENALTY_SG,         
01830     PENALTY_SG_VALID,   
01831     PENALTY_30,         
01832     PENALTY_45,         
01833     PENALTY_NUM
01834 };
01841 
01843 enum
01844 {
01845     PENR_UNKNOWN,       
01846     PENR_ADMIN,         
01847     PENR_WRONG_WAY,     
01848     PENR_FALSE_START,   
01849     PENR_SPEEDING,      
01850     PENR_STOP_SHORT,    
01851     PENR_STOP_LATE,     
01852     PENR_NUM
01853 };
01860 #define PIF_SWAPSIDE        1
01861 #define PIF_RESERVED_2      2
01862 #define PIF_RESERVED_4      4
01863 #define PIF_AUTOGEARS       8
01864 #define PIF_SHIFTER         16
01865 #define PIF_RESERVED_32     32
01866 #define PIF_HELP_B          64
01867 #define PIF_AXIS_CLUTCH     128
01868 #define PIF_INPITS          256
01869 #define PIF_AUTOCLUTCH      512
01870 #define PIF_MOUSE           1024
01871 #define PIF_KB_NO_HELP      2048
01872 #define PIF_KB_STABILISED   4096
01873 #define PIF_CUSTOM_VIEW     8192
01874 
01881 
01886 enum
01887 {
01888     TYRE_R1,            
01889     TYRE_R2,            
01890     TYRE_R3,            
01891     TYRE_R4,            
01892     TYRE_ROAD_SUPER,    
01893     TYRE_ROAD_NORMAL,   
01894     TYRE_HYBRID,        
01895     TYRE_KNOBBLY,       
01896     TYRE_NUM
01897 };
01898 
01899 const int NOT_CHANGED = 255;
01907 #define CONF_MENTIONED      1
01908 #define CONF_CONFIRMED      2
01909 #define CONF_PENALTY_DT     4
01910 #define CONF_PENALTY_SG     8
01911 #define CONF_PENALTY_30     16
01912 #define CONF_PENALTY_45     32
01913 #define CONF_DID_NOT_PIT    64
01914 
01915 #define CONF_DISQ   (CONF_PENALTY_DT | CONF_PENALTY_SG | CONF_DID_NOT_PIT)
01916 #define CONF_TIME   (CONF_PENALTY_30 | CONF_PENALTY_45)
01917 
01934 
01949 
01952 
01953 struct IS_AXI 
01954 {
01955     byte    Size;       
01956     byte    Type;       
01957     byte    ReqI;       
01958     byte    Zero;
01959 
01960     byte    AXStart;    
01961     byte    NumCP;      
01962     word    NumO;       
01963 
01964     char    LName[32];  
01965 };
01966 
01968 struct IS_AXO
01969 {
01970     byte    Size;       
01971     byte    Type;       
01972     byte    ReqI;       
01973     byte    PLID;       
01974 };
01975 
01980 struct NodeLap 
01981 {
01982     word    Node;       
01983     word    Lap;        
01984     byte    PLID;       
01985     byte    Position;   
01986 };
01987 
01992 struct IS_NLP
01993 {
01994     byte    Size;       
01995     byte    Type;       
01996     byte    ReqI;       
01997     byte    NumP;       
01998 
01999     NodeLap Info[32];   
02000 };
02001 
02002 
02016 struct CompCar
02017 {
02018     word    Node;       
02019     word    Lap;        
02020     byte    PLID;       
02021     byte    Position;   
02022     byte    Info;       
02023     byte    Sp3;
02024     int     X;          
02025     int     Y;          
02026     int     Z;          
02027     word    Speed;      
02028     word    Direction;  
02029     word    Heading;    
02030     short   AngVel;     
02031 };
02032 
02037 #define CCI_BLUE        1       
02038 #define CCI_YELLOW      2       
02039 #define CCI_LAG         32      
02040 #define CCI_FIRST       64      
02041 #define CCI_LAST        128     
02043 
02044 
02048 struct IS_MCI 
02049 {
02050     byte    Size;       
02051     byte    Type;       
02052     byte    ReqI;       
02053     byte    NumC;       
02054 
02055     CompCar Info[8];    
02056 };
02057 
02059 struct CarContact
02060 {
02061     byte    PLID;
02062     byte    Info;       
02063     byte    Sp2;        
02064     char    Steer;      
02065     
02066     byte    ThrBrk;     
02067     byte    CluHan;     
02068     byte    GearSp;     
02069     byte    Speed;      
02070 
02071     byte    Direction;  
02072     byte    Heading;    
02073     char    AccelF;     
02074     char    AccelR;     
02075 
02076     short   X;          
02077     short   Y;          
02078 };
02079 
02081 struct IS_CON
02082 {
02083     byte    Size;       
02084     byte    Type;       
02085     byte    ReqI;       
02086     byte    Zero;
02087 
02088     word    SpClose;    
02089     word    Time;       
02090 
02091     CarContact  A;      
02092     CarContact  B;
02093 };
02094 
02096 struct CarContOBJ // 
02097 {
02098     byte    Direction;  
02099     byte    Heading;    
02100     byte    Speed;      
02101     byte    Sp3;
02102 
02103     short   X;          
02104     short   Y;          
02105 };
02106 
02108 struct IS_OBH 
02109 {
02110     byte    Size;       
02111     byte    Type;       
02112     byte    ReqI;       
02113     byte    PLID;       
02114 
02115     word    SpClose;    
02116     word    Time;       
02117 
02118     CarContOBJ  C;
02119 
02120     short   X;          
02121     short   Y;          
02122 
02123     byte    Sp0;
02124     byte    Sp1;
02125     byte    Index;      
02126     byte    OBHFlags;   
02127 };
02128 
02133 #define OBH_LAYOUT      1       
02134 #define OBH_CAN_MOVE    2       
02135 #define OBH_WAS_MOVING  4       
02136 #define OBH_ON_SPOT     8       
02138 
02139 
02141 struct IS_HLV
02142 {
02143     byte    Size;       
02144     byte    Type;       
02145     byte    ReqI;       
02146     byte    PLID;       
02147 
02148     byte    HLVC;       
02149     byte    Sp1;
02150     word    Time;       
02151 
02152     CarContOBJ  C;
02153 };
02154 
02156 struct ObjectInfo 
02157 {
02158     short   X;
02159     short   Y;
02160     char    Zchar;
02161     byte    Flags;
02162     byte    Index;
02163     byte    Heading;
02164 };
02165 
02167 struct IS_AXM 
02168 {
02169     byte    Size;       
02170     byte    Type;       
02171     byte    ReqI;       
02172     byte    NumO;       
02173 
02174     byte    UCID;       
02175     byte    PMOAction;  
02176     byte    PMOFlags;   
02177     byte    Sp3;
02178 
02179     ObjectInfo  Info[30];   
02180 };
02181 
02186 
02187 enum
02188 {
02189     PMO_LOADING_FILE,   
02190     PMO_ADD_OBJECTS,    
02191     PMO_DEL_OBJECTS,    
02192     PMO_CLEAR_ALL,      
02193     PMO_NUM
02194 };
02228 
02236 struct IS_SCC
02237 {
02238     byte    Size;       
02239     byte    Type;       
02240     byte    ReqI;       
02241     byte    Zero;
02242 
02243     byte    ViewPLID;   
02244     byte    InGameCam;  
02245     byte    Sp2;
02246     byte    Sp3;
02247 };
02248 
02249 
02250 
02251 
02277 struct IS_CPP
02278 {
02279     byte    Size;       
02280     byte    Type;       
02281     byte    ReqI;       
02282     byte    Zero;
02283 
02284     Vec     Pos;        
02285 
02286     word    H;          
02287     word    P;          
02288     word    R;          
02289 
02290     byte    ViewPLID;   
02291     byte    InGameCam;  
02292 
02293     float   FOV;        
02294 
02295     word    Time;       
02296     word    Flags;      
02297 };
02298 
02299 
02300 
02301 
02308 struct IS_RIP
02309 {
02310     byte    Size;       
02311     byte    Type;       
02312     byte    ReqI;       
02313     byte    Error;      
02314 
02315     byte    MPR;        
02316     byte    Paused;     
02317     byte    Options;    
02318     byte    Sp3;
02319 
02320     unsigned    CTime;  
02321     unsigned    TTime;  
02322 
02323     char    RName[64];  
02324 };
02325 
02326 
02327 
02333 
02334 enum
02335 {
02336     RIP_OK,             
02337     RIP_ALREADY,        
02338     RIP_DEDICATED,      
02339     RIP_WRONG_MODE,     
02340     RIP_NOT_REPLAY,     
02341     RIP_CORRUPTED,      
02342     RIP_NOT_FOUND,      
02343     RIP_UNLOADABLE,     
02344     RIP_DEST_OOB,       
02345     RIP_UNKNOWN,        
02346     RIP_USER,           
02347     RIP_OOS,            
02348 };
02358 #define RIPOPT_LOOP     1 
02359 #define RIPOPT_SKINS    2 
02360 #define RIPOPT_FULL_PHYS    4 
02362 
02363 
02365 struct IS_SSH
02366 {
02367     byte    Size;       
02368     byte    Type;       
02369     byte    ReqI;       
02370     byte    Error;      
02371 
02372     byte    Sp0;        
02373     byte    Sp1;        
02374     byte    Sp2;        
02375     byte    Sp3;        
02376 
02377     char    BMP[32];    
02378 };
02379 
02380 
02385 
02386 enum
02387 {
02388     SSH_OK,             
02389     SSH_DEDICATED,      
02390     SSH_CORRUPTED,      
02391     SSH_NO_SAVE,        
02392 };
02399 #define IS_X_MIN 0
02400 #define IS_X_MAX 110
02401 
02402 #define IS_Y_MIN 30
02403 #define IS_Y_MAX 170
02404 
02410 struct IS_BFN
02411 {
02412     byte    Size;       
02413     byte    Type;       
02414     byte    ReqI;       
02415     byte    SubT;       
02416 
02417     byte    UCID;       
02418     byte    ClickID;    
02419     byte    Inst;       
02420     byte    Sp3;
02421 };
02422 
02427 
02428 enum
02429 {
02430     BFN_DEL_BTN,        
02431     BFN_CLEAR,          
02432     BFN_USER_CLEAR,     
02433     BFN_REQUEST,        
02434 };
02458 struct IS_BTN 
02459 {
02460     byte    Size;       
02461     byte    Type;       
02462     byte    ReqI;       
02463     byte    UCID;       
02464     
02465     byte    ClickID;    
02466     byte    Inst;       
02467     byte    BStyle;     
02468 
02472     byte    TypeIn;     
02473     byte    L;          
02474     byte    T;          
02475     byte    W;          
02476     byte    H;          
02477 
02478     char    Text[TEXT_SIZE]; 
02479 };
02480 
02492 #define INST_ALWAYS_ON  128     
02494 
02495 
02512 #define ISB_C1          1       
02513 #define ISB_C2          2       
02514 #define ISB_C4          4       
02515 #define ISB_CLICK       8       
02516 #define ISB_LIGHT       16      
02517 #define ISB_DARK        32      
02518 #define ISB_LEFT        64      
02519 #define ISB_RIGHT       128     
02521 
02522 
02527 struct IS_BTC
02528 {
02529     byte    Size;       
02530     byte    Type;       
02531     byte    ReqI;       
02532     byte    UCID;       
02533 
02534     byte    ClickID;    
02535     byte    Inst;       
02536     byte    CFlags;     
02537     byte    Sp3;
02538 };
02539 
02544 #define ISB_LMB         1       
02545 #define ISB_RMB         2       
02546 #define ISB_CTRL        4       
02547 #define ISB_SHIFT       8       
02549 
02550 
02554 struct IS_BTT
02555 {
02556     byte    Size;       
02557     byte    Type;       
02558     byte    ReqI;       
02559     byte    UCID;       
02560 
02561     byte    ClickID;    
02562     byte    Inst;       
02563     byte    TypeIn;     
02564     byte    Sp3;
02565 
02566     char    Text[96];   
02567 };
02568 
02579 struct OutSimPack
02580 {
02581     unsigned    Time;   
02582 
02583     Vector  AngVel;     
02584     float   Heading;    
02585     float   Pitch;      
02586     float   Roll;       
02587     Vector  Accel;      
02588     Vector  Vel;        
02589     Vec     Pos;        
02590 
02591     int     ID;         
02592 };
02593 
02595 struct OutGaugePack
02596 {
02597     unsigned    Time;           
02598 
02599     char        Car[4];         
02600     word        Flags;          
02601     byte        Gear;           
02602     byte        PLID;           
02603     float       Speed;          
02604     float       RPM;            
02605     float       Turbo;          
02606     float       EngTemp;        
02607     float       Fuel;           
02608     float       OilPressure;    
02609     float       OilTemp;        
02610     unsigned    DashLights;     
02611     unsigned    ShowLights;     
02612     float       Throttle;       
02613     float       Brake;          
02614     float       Clutch;         
02615     char        Display1[16];   
02616     char        Display2[16];   
02617 
02618     int         ID;             
02619 };
02620 
02621 
02626 #define OG_SHIFT        1       
02627 #define OG_CTRL         2       
02628 #define OG_TURBO        8192    
02629 #define OG_KM           16384   
02630 #define OG_BAR          32768   
02632 
02633 
02637 enum
02638 {
02639     DL_SHIFT,           
02640     DL_FULLBEAM,        
02641     DL_HANDBRAKE,       
02642     DL_PITSPEED,        
02643     DL_TC,              
02644     DL_SIGNAL_L,        
02645     DL_SIGNAL_R,        
02646     DL_SIGNAL_ANY,      
02647     DL_OILWARN,         
02648     DL_BATTERY,         
02649     DL_ABS,             
02650     DL_SPARE,           
02651     DL_NUM
02652 };
02654 
02655 #endif
02656 
 All Data Structures Files Variables Enumerator Defines