diff --git a/scripts/pages/zoning/zoning.ts b/scripts/pages/zoning/zoning.ts index d44f3db6..ff0e3da8 100644 --- a/scripts/pages/zoning/zoning.ts +++ b/scripts/pages/zoning/zoning.ts @@ -1,3 +1,62 @@ +/***************************************************************************************** */ + +interface Region extends JsonObject { + points: number[][]; + bottom: number; + height: number; + teleDestTargetname: string; // mutually exclusive to other two teleport fields + teleDestPos: number[]; // TODO: This below are required if region is part of a volume used by stafe or major checkpoint zone + teleDestYaw: number; // See convo in mom red 25/09/23 02:00 GMT + safeHeight: number; +} + +interface Zone extends JsonObject { + regions: Region[]; + filtername: string; +} + +interface Segment extends JsonObject { + limitStartGroundSpeed: boolean; + checkpointsRequired: boolean; + checkpointsOrdered: boolean; + checkpoints: Zone[]; + cancel: Zone[]; + name: string; +} + +interface TrackZones extends JsonObject { + segments: Segment[]; + end: Zone; +} + +interface MainTrack extends JsonObject { + zones: TrackZones; + stagesEndAtStageStarts: boolean; +} + +interface BonusTrack extends JsonObject { + zones: TrackZones; + defragFlags: number; +} + +interface MapTracks extends JsonObject { + main: MainTrack; + bonuses: BonusTrack[]; +} + +interface ZoneDef extends JsonObject { + formatVersion: number; + dataTimestamp: number; + maxVelocity: number; + tracks: MapTracks; +} + +interface EntityList { + filter: string[]; + teleport: string[]; +} +/**************************************************************************************************************/ + /** * Zoning UI logic */ diff --git a/scripts/types b/scripts/types index 2b9c1fe8..fa6e57b7 160000 --- a/scripts/types +++ b/scripts/types @@ -1 +1 @@ -Subproject commit 2b9c1fe8a879f6856e902d905d93c4a4a23dd948 +Subproject commit fa6e57b7cc3d72d178d3dae70569839c65d6a3b8