@@ -65,8 +65,22 @@ public void SetDesiredTimeSpeed(TimeSpeed speed)
6565
6666 public int TickableId => map . uniqueID ;
6767
68+ public int GameStartAbsTick
69+ {
70+ get
71+ {
72+ if ( gameStartAbsTickMap == 0 )
73+ {
74+ gameStartAbsTickMap = Find . TickManager ? . gameStartAbsTick ?? 0 ;
75+ }
76+
77+ return gameStartAbsTickMap ;
78+ }
79+ }
80+
6881 public Map map ;
6982 public int mapTicks ;
83+ private int gameStartAbsTickMap ;
7084 private TimeSpeed timeSpeedInt ;
7185 public bool forcedNormalSpeed ;
7286 public int eventCount ;
@@ -84,9 +98,10 @@ public void SetDesiredTimeSpeed(TimeSpeed speed)
8498
8599 public Queue < ScheduledCommand > cmds = new ( ) ;
86100
87- public AsyncTimeComp ( Map map )
101+ public AsyncTimeComp ( Map map , int gameStartAbsTick = 0 )
88102 {
89103 this . map = map ;
104+ this . gameStartAbsTickMap = gameStartAbsTick ;
90105
91106 // Use the world's constant rand seed and map tile ID as our initial randState.
92107 // Only fill the seed part, leave the iterations out.
@@ -202,6 +217,8 @@ public void ExposeData()
202217 Scribe_Values . Look ( ref mapTicks , "mapTicks" ) ;
203218 Scribe_Values . Look ( ref timeSpeedInt , "timeSpeed" ) ;
204219
220+ Scribe_Values . Look ( ref gameStartAbsTickMap , "gameStartAbsTickMap" ) ;
221+
205222 Scribe_Deep . Look ( ref storyteller , "storyteller" ) ;
206223
207224 Scribe_Deep . Look ( ref storyWatcher , "storyWatcher" ) ;
@@ -400,6 +417,8 @@ void RestoreState()
400417 designator . DesignateThing ( thing ) ;
401418 designator . Finalize ( true ) ;
402419 }
420+
421+ SyncMethods . TryDirtyCurrentPawnTable ( designator ) ;
403422 }
404423 finally
405424 {
@@ -443,5 +462,4 @@ public enum DesignatorMode : byte
443462 MultiCell ,
444463 Thing
445464 }
446-
447465}
0 commit comments