InSim
0.6c
Documentation of Live for Speed InSim Protocol
|
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