public static EmbeddedStateFile CreateFromName(SourceSave saveRef, CharArray fileName) { return(fileName.Str.Substring(fileName.Str.Length - 3, 3) switch { "hl1" => new SaveGameStateFile(saveRef, fileName), "hl2" => new ClientStateFile(saveRef, fileName), "hl3" => new EntityPatchFile(saveRef, fileName), _ => new UnknownStateFile(saveRef, fileName) });
public static bool CreateFromHeader(SourceSave saveRef, SaveGameHeader header, out SaveStateBlock block) { switch (header) { case ETableHeader eTableHeader: block = new EntitySaveStateBlock(saveRef, eTableHeader); return(true); case PhysicsInfoHeader physHeader: block = new PhysSaveStateRestoreHandler(saveRef, physHeader); return(true); default: block = null !; return(false); } }
public static ParsedEntData CreateFromName(SourceSave saveRef, ParsedDataMap headerInfo, DataMap entMap) { // order of these checks matters if (entMap.InheritsFrom("CBasePlayer")) { return(new CBasePlayerEntData(saveRef, headerInfo, entMap)); } else if (entMap.InheritsFrom("CAI_BaseNPC")) { return(new CAI_BaseNpcEntData(saveRef, headerInfo, entMap)); } else if (entMap.InheritsFrom("CBaseEntity")) { return(new CBaseEntityParsedEntData(saveRef, headerInfo, entMap)); } else { return(new ParsedEntData(saveRef, headerInfo, entMap)); } }
public ClientStateFile(SourceSave saveRef, CharArray name) : base(saveRef, name) { }
public class CBasePlayerEntData : CBaseEntityParsedEntData { // todo any other classes along the way that do stuff? public CBasePlayerEntData(SourceSave saveRef, ParsedDataMap headerInfo, DataMap classMap) : base(saveRef, headerInfo, classMap) { }
public CAI_NavigatorEntData(SourceSave saveRef) : base(saveRef, null !, saveRef.SaveInfo.SDataMapLookup["CAI_Navigator"])
public EntityPatchFile(SourceSave saveRef, CharArray name) : base(saveRef, name) { }
public ParsedEntData(SourceSave saveRef, ParsedDataMap headerInfo, DataMap classMap) : base(saveRef) { HeaderInfo = headerInfo; ClassMap = classMap; }
public SaveGameStateFile(SourceSave saveRef, CharArray name) : base(saveRef, name) { }
public CAI_BaseNpcEntData(SourceSave saveRef, ParsedDataMap headerInfo, DataMap classMap) : base(saveRef, headerInfo, classMap) { }
public EmbeddedStateFile(SourceSave saveRef, CharArray name) : base(saveRef) { Name = name; }