UNPKG

node-insim

Version:

An InSim library for NodeJS with TypeScript support

120 lines (119 loc) 3.46 kB
import { __decorate } from "tslib"; import { byte, stringNull, word } from '../decorators'; import { Packet } from './base'; import { PacketType } from './enums'; /** * Race STart */ export class IS_RST extends Packet { constructor() { super(...arguments); this.Size = 28; this.Type = PacketType.ISP_RST; /** 0 unless this is a reply to an {@link TINY_RST} request */ this.ReqI = 0; this.Zero = 0; /** 0 if qualifying */ this.RaceLaps = 0; /** 0 if race */ this.QualMins = 0; /** Number of players in race */ this.NumP = 0; /** * Lap timing * * Bits 6 and 7 (Timing & 0xc0): * * - 0x40: standard lap timing is being used * - 0x80: custom timing - user checkpoints have been placed * - 0xc0: no lap timing - e.g. open config with no user checkpoints * * Bits 0 and 1 (Timing & 0x03): number of checkpoints if lap timing is enabled */ this.Timing = 0; /** Short track name */ this.Track = ''; this.Weather = 0; this.Wind = 0; /** Race flags (must pit, can reset, etc.) */ this.Flags = 0; /** Total number of nodes in the path */ this.NumNodes = 0; /** Node index - finish line */ this.Finish = 0; /** Node index - split 1 */ this.Split1 = 0; /** Node index - split 2 */ this.Split2 = 0; /** Node index - split 3 */ this.Split3 = 0; } } __decorate([ byte() ], IS_RST.prototype, "Size", void 0); __decorate([ byte() ], IS_RST.prototype, "Type", void 0); __decorate([ byte() ], IS_RST.prototype, "ReqI", void 0); __decorate([ byte() ], IS_RST.prototype, "Zero", void 0); __decorate([ byte() ], IS_RST.prototype, "RaceLaps", void 0); __decorate([ byte() ], IS_RST.prototype, "QualMins", void 0); __decorate([ byte() ], IS_RST.prototype, "NumP", void 0); __decorate([ byte() ], IS_RST.prototype, "Timing", void 0); __decorate([ stringNull(6) ], IS_RST.prototype, "Track", void 0); __decorate([ byte() ], IS_RST.prototype, "Weather", void 0); __decorate([ byte() ], IS_RST.prototype, "Wind", void 0); __decorate([ word() ], IS_RST.prototype, "Flags", void 0); __decorate([ word() ], IS_RST.prototype, "NumNodes", void 0); __decorate([ word() ], IS_RST.prototype, "Finish", void 0); __decorate([ word() ], IS_RST.prototype, "Split1", void 0); __decorate([ word() ], IS_RST.prototype, "Split2", void 0); __decorate([ word() ], IS_RST.prototype, "Split3", void 0); export var RaceFlags; (function (RaceFlags) { /** Vote kick/ban allowed */ RaceFlags[RaceFlags["HOSTF_CAN_VOTE"] = 1] = "HOSTF_CAN_VOTE"; /** Guest are allowed to select tracks */ RaceFlags[RaceFlags["HOSTF_CAN_SELECT"] = 2] = "HOSTF_CAN_SELECT"; /** Mid-race join allowed */ RaceFlags[RaceFlags["HOSTF_MID_RACE"] = 32] = "HOSTF_MID_RACE"; /** Pit stop required */ RaceFlags[RaceFlags["HOSTF_MUST_PIT"] = 64] = "HOSTF_MUST_PIT"; /** Car reset allowed */ RaceFlags[RaceFlags["HOSTF_CAN_RESET"] = 128] = "HOSTF_CAN_RESET"; /** Forced cockpit view */ RaceFlags[RaceFlags["HOSTF_FCV"] = 256] = "HOSTF_FCV"; /** Cruise mode (wrong way allowed) */ RaceFlags[RaceFlags["HOSTF_CRUISE"] = 512] = "HOSTF_CRUISE"; })(RaceFlags || (RaceFlags = {}));