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)
     });
예제 #2
0
        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);
            }
        }
예제 #3
0
 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));
     }
 }
예제 #4
0
 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)
     {
     }
예제 #6
0
 public CAI_NavigatorEntData(SourceSave saveRef)
     : base(saveRef, null !, saveRef.SaveInfo.SDataMapLookup["CAI_Navigator"])
 public EntityPatchFile(SourceSave saveRef, CharArray name) : base(saveRef, name)
 {
 }
예제 #8
0
 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;
 }