package catalogs import ( "encoding/json" "os" "path/filepath" "sync" ) var _ = json.RawMessage{} var _ = sync.Mutex{} var _ = os.ReadFile var _ = filepath.Join type TimelineEntry4229938 struct { Id uint32 `json:"id"` TimelineName string `json:"timelineName"` Group string `json:"group"` PGOType int32 `json:"pGOType"` PlayerControlType int32 `json:"playerControlType"` NeedPreload bool `json:"needPreload"` PauseAI bool `json:"pauseAI"` ClosePanel bool `json:"closePanel"` BanSkip bool `json:"banSkip"` BanPause bool `json:"banPause"` BanSpeed bool `json:"banSpeed"` ProcessBlackScreen bool `json:"processBlackScreen"` SupportTeleport bool `json:"supportTeleport"` AsyncInstantiate bool `json:"asyncInstantiate"` EnableGameTimeScale bool `json:"enableGameTimeScale"` FirstFrameEvaluate int32 `json:"firstFrameEvaluate"` LinkType int32 `json:"linkType"` LoadAction int32 `json:"loadAction"` ManualGroup bool `json:"manualGroup"` Standard int32 `json:"standard"` MobileSpecial bool `json:"mobileSpecial"` UseSource bool `json:"useSource"` EdgeControl bool `json:"edgeControl"` LocalizationWaitEndType int32 `json:"localizationWaitEndType"` } // // Build-4229938 timeline/cutscene catalog. Loads all 1400+ timeline definitions // from TimelineConfig.json. Used by the admin panel to list, teleport-to and // trigger cutscene playback. // var ( TimelineCatalog4229938_cacheLock sync.RWMutex TimelineCatalog4229938_cached = false TimelineCatalog4229938_entries []any ) // LoadTimelineCatalog4229938 loads catalog records from client config directory func LoadTimelineCatalog4229938(configDir string) ([]any, error) { TimelineCatalog4229938_cacheLock.RLock() if TimelineCatalog4229938_cached { defer TimelineCatalog4229938_cacheLock.RUnlock() return TimelineCatalog4229938_entries, nil } TimelineCatalog4229938_cacheLock.RUnlock() TimelineCatalog4229938_cacheLock.Lock() defer TimelineCatalog4229938_cacheLock.Unlock() if TimelineCatalog4229938_cached { return TimelineCatalog4229938_entries, nil } filePath := filepath.Join(configDir, "TimelineCatalog.json.json") data, err := os.ReadFile(filePath) if err != nil { return nil, err } var raw struct { Records []json.RawMessage `json:"records"` } if err := json.Unmarshal(data, &raw); err != nil { return nil, err } var result []any for _, item := range raw.Records { var m map[string]any if err := json.Unmarshal(item, &m); err == nil { result = append(result, m) } } TimelineCatalog4229938_entries = result TimelineCatalog4229938_cached = true return result, nil } func TimelineCatalog4229938_TryGet(id uint32, entry TimelineEntry4229938) bool { // Catalog helper TimelineCatalog4229938_TryGet return false }