protected override void OnExportRead(uint channel, INetFieldExportGroup exportGroup) { _buffer.Enqueue(new ExportGroupPlaybackEvent { Time = _currentReadTimeSeconds, Channel = channel, ExportGroup = exportGroup }); }
protected override bool ContinueParsingChannel(INetFieldExportGroup exportGroup) { switch (exportGroup) { //Always fully parse these case SupplyDropLlamaC _: case SupplyDropC _: case SafeZoneIndicatorC _: case FortPoiManager _: case GameStateC _: return(true); } switch (ParseType) { case ParseType.Minimal: return(false); default: return(true); } }
private void ExportGroupRead(uint channel, INetFieldExportGroup exportGroup) { //Used for weapon data and possibly other things if (Replay.GameInformation.NetGUIDToPathName == null) { Replay.GameInformation.NetGUIDToPathName = GuidCache.NetGuidToPathName; } switch (exportGroup) { case BaseStructure baseBuild: Replay.GameInformation.UpdateBuild(channel, baseBuild); break; case FortTeamPrivateInfo privateTeamInfo: Replay.GameInformation.UpdatePrivateTeamInfo(channel, privateTeamInfo); break; case SearchableContainer searchableContainer: Replay.GameInformation.UpdateSearchableContainer(channel, searchableContainer); break; case GameplayCueExecuted cueExecuted: //Fall damage should be in here break; case CurrentPlaylistInfo playlistInfo: Replay.GameInformation.UpdatePlaylistInfo(channel, playlistInfo); break; case SupplyDropLlamaC llama: Replay.GameInformation.UpdateLlama(channel, llama); break; case SupplyDropC supplyDrop: Replay.GameInformation.UpdateSupplyDrop(channel, supplyDrop); break; case GameStateC gameState: Replay.GameInformation.UpdateGameState(gameState); break; case FortPlayerState playerState: Replay.GameInformation.UpdatePlayerState(channel, playerState, GuidCache.NetworkGameplayTagNodeIndex); break; case PlayerPawnC playerPawn: if (ParseType >= ParseType.Normal) { Replay.GameInformation.UpdatePlayerPawn(channel, playerPawn, false); } break; case FortPickup fortPickup: if (ParseType >= ParseType.Normal) { Replay.GameInformation.UpdateFortPickup(channel, fortPickup); } break; case SafeZoneIndicatorC safeZoneIndicator: Replay.GameInformation.UpdateSafeZone(safeZoneIndicator); break; case BatchedDamage batchedDamage: Replay.GameInformation.UpdateBatchedDamage(channel, batchedDamage); break; case GameplayCue gameplayCue: gameplayCue.GameplayCueTag?.UpdateTagName(GuidCache.NetworkGameplayTagNodeIndex); Replay.GameInformation.HandleGameplayCue(channel, gameplayCue); break; case BaseWeapon weapon: Replay.GameInformation.HandleWeapon(channel, weapon); break; case FortPoiManager poiManager: Replay.GameInformation.UpdatePoiManager(poiManager, GuidCache.NetworkGameplayTagNodeIndex); break; case FortInventory inventory: Replay.GameInformation.UpdateFortInventory(channel, inventory); break; case BaseProp prop: Replay.GameInformation.UpdateContainer(channel, prop); break; case HealthSet healthSet: Replay.GameInformation.UpdateHealth(channel, healthSet, GuidCache); break; } }
protected override void OnExportRead(uint channelIndex, INetFieldExportGroup exportGroup) { // pass }
protected override bool ContinueParsingChannel(INetFieldExportGroup exportGroup) { //Parse everything return(true); }
protected override void OnExportRead(uint channel, INetFieldExportGroup exportGroup) { ++TotalPropertiesRead; #if DEBUG if (Replay.GameInformation.Channels == null) { Replay.GameInformation.Channels = Channels; } #endif //Used for weapon data and possibly other things if (Replay.GameInformation.NetGUIDToPathName == null) { Replay.GameInformation.NetGUIDToPathName = GuidCache.NetGuidToPathName; } if (Replay.GameInformation.Settings == null) { Replay.GameInformation.Settings = _fortniteSettings; } switch (exportGroup) { case AircraftC Test: break; case BaseStructure baseBuild: Replay.GameInformation.UpdateBuild(channel, baseBuild); break; case FortTeamPrivateInfo privateTeamInfo: Replay.GameInformation.UpdatePrivateTeamInfo(channel, privateTeamInfo); break; case SearchableContainer searchableContainer: Replay.GameInformation.UpdateSearchableContainer(channel, searchableContainer); break; case GameplayCueExecuted cueExecuted: //Fall damage should be in here break; case CurrentPlaylistInfo playlistInfo: Replay.GameInformation.UpdatePlaylistInfo(channel, playlistInfo); break; case SupplyDropLlamaC llama: Replay.GameInformation.UpdateLlama(channel, llama); break; case SupplyDropC supplyDrop: Replay.GameInformation.UpdateSupplyDrop(channel, supplyDrop); break; case GameStateC gameState: Replay.GameInformation.UpdateGameState(gameState); break; case FortPlayerState playerState: Replay.GameInformation.UpdatePlayerState(channel, playerState, GuidCache.NetworkGameplayTagNodeIndex); break; case PlayerPawnC playerPawn: if (ParseType >= ParseType.Normal) { Replay.GameInformation.UpdatePlayerPawn(channel, playerPawn); } break; case FortPickup fortPickup: if (ParseType >= ParseType.Normal) { if (!_fortniteSettings.IgnoreFloorLoot) { Replay.GameInformation.UpdateFortPickup(channel, fortPickup); } } break; case SafeZoneIndicatorC safeZoneIndicator: Replay.GameInformation.UpdateSafeZone(safeZoneIndicator); break; case BatchedDamage batchedDamage: if (!_fortniteSettings.IgnoreShots) { Replay.GameInformation.UpdateBatchedDamage(channel, batchedDamage); } break; case GameplayCue gameplayCue: gameplayCue.GameplayCueTag.UpdateTagName(GuidCache.NetworkGameplayTagNodeIndex); Replay.GameInformation.HandleGameplayCue(channel, gameplayCue); break; case BaseWeapon weapon: Replay.GameInformation.HandleWeapon(channel, weapon); break; case FortPoiManager poiManager: Replay.GameInformation.UpdatePoiManager(poiManager, GuidCache.NetworkGameplayTagNodeIndex); break; case FortInventory inventory: if (!_fortniteSettings.IgnoreInventory) { Replay.GameInformation.UpdateFortInventory(channel, inventory); } break; case BaseProp prop: if (!_fortniteSettings.IgnoreContainers) { Replay.GameInformation.UpdateContainer(channel, prop); } break; case HealthSet healthSet: if (!_fortniteSettings.IgnoreHealth) { Replay.GameInformation.UpdateHealth(channel, healthSet, GuidCache); } break; case BaseVehicle vehicle: Replay.GameInformation.UpdateVehicle(channel, vehicle); break; case MiniGameCreated minigame: //Multiple rounds Replay.GameInformation.MiniGameUpdate(channel, minigame, GuidCache.NetworkGameplayTagNodeIndex); break; case DebuggingExportGroup debuggingObject: break; } }