| Last change
 on this file since 357 was             326, checked in by alloc, 7 years ago | 
        
          | 
More cleanup, allocation improvements
 | 
        
          | File size:
            1.6 KB | 
      
      
| Rev | Line |  | 
|---|
| [142] | 1 | using System; | 
|---|
|  | 2 | using System.IO; | 
|---|
|  | 3 | using System.Runtime.Serialization; | 
|---|
|  | 4 | using System.Runtime.Serialization.Formatters.Binary; | 
|---|
|  | 5 |  | 
|---|
| [325] | 6 | namespace AllocsFixes.PersistentData { | 
|---|
| [143] | 7 | [Serializable] | 
|---|
| [325] | 8 | public class PersistentContainer { | 
|---|
| [144] | 9 | private Players players; | 
|---|
| [325] | 10 | [OptionalField] private Attributes attributes; | 
|---|
| [144] | 11 |  | 
|---|
|  | 12 | public Players Players { | 
|---|
|  | 13 | get { | 
|---|
| [325] | 14 | if (players == null) { | 
|---|
| [144] | 15 | players = new Players (); | 
|---|
| [325] | 16 | } | 
|---|
|  | 17 |  | 
|---|
| [144] | 18 | return players; | 
|---|
|  | 19 | } | 
|---|
|  | 20 | } | 
|---|
|  | 21 |  | 
|---|
| [325] | 22 | public Attributes Attributes { | 
|---|
| [273] | 23 | get { | 
|---|
|  | 24 | if (attributes == null) { | 
|---|
| [325] | 25 | attributes = new Attributes (); | 
|---|
| [273] | 26 | } | 
|---|
| [325] | 27 |  | 
|---|
| [273] | 28 | return attributes; | 
|---|
|  | 29 | } | 
|---|
|  | 30 | } | 
|---|
|  | 31 |  | 
|---|
| [142] | 32 | private static PersistentContainer instance; | 
|---|
|  | 33 |  | 
|---|
|  | 34 | public static PersistentContainer Instance { | 
|---|
|  | 35 | get { | 
|---|
|  | 36 | if (instance == null) { | 
|---|
|  | 37 | instance = new PersistentContainer (); | 
|---|
|  | 38 | } | 
|---|
| [325] | 39 |  | 
|---|
| [142] | 40 | return instance; | 
|---|
|  | 41 | } | 
|---|
|  | 42 | } | 
|---|
|  | 43 |  | 
|---|
| [325] | 44 | private PersistentContainer () { | 
|---|
| [142] | 45 | } | 
|---|
|  | 46 |  | 
|---|
| [325] | 47 | public void Save () { | 
|---|
| [238] | 48 | Stream stream = File.Open (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin", FileMode.Create); | 
|---|
| [142] | 49 | BinaryFormatter bFormatter = new BinaryFormatter (); | 
|---|
|  | 50 | bFormatter.Serialize (stream, this); | 
|---|
|  | 51 | stream.Close (); | 
|---|
|  | 52 | } | 
|---|
|  | 53 |  | 
|---|
| [325] | 54 | public static bool Load () { | 
|---|
| [326] | 55 | if (!File.Exists (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin")) { | 
|---|
|  | 56 | return false; | 
|---|
| [146] | 57 | } | 
|---|
| [325] | 58 |  | 
|---|
| [326] | 59 | try { | 
|---|
|  | 60 | PersistentContainer obj; | 
|---|
|  | 61 | Stream stream = File.Open (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin", FileMode.Open); | 
|---|
|  | 62 | BinaryFormatter bFormatter = new BinaryFormatter (); | 
|---|
|  | 63 | obj = (PersistentContainer) bFormatter.Deserialize (stream); | 
|---|
|  | 64 | stream.Close (); | 
|---|
|  | 65 | instance = obj; | 
|---|
|  | 66 | return true; | 
|---|
|  | 67 | } catch (Exception e) { | 
|---|
|  | 68 | Log.Error ("Exception in PersistentContainer.Load"); | 
|---|
|  | 69 | Log.Exception (e); | 
|---|
|  | 70 | } | 
|---|
|  | 71 |  | 
|---|
| [146] | 72 | return false; | 
|---|
| [142] | 73 | } | 
|---|
|  | 74 | } | 
|---|
| [325] | 75 | } | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.