Advertisement
Hird194

syntax error, unexpected TOKEN_ENTRY, expecting '{' or ';',

Oct 23rd, 2018
502
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.19 KB | None | 0 0
  1. /*
  2. Copyright © CD Projekt RED 2015
  3. */
  4.  
  5.  
  6.  
  7.  
  8.  
  9. state MeditationWaiting in W3PlayerWitcher extends MeditationBase
  10. {
  11. private const var TARGET_HOURS_PER_MINUTE : float;
  12. private const var BLEND_TIME_SECONDS_REAL : float;
  13.  
  14. private var storedHoursPerMinute : float;
  15. private var waitStartTime : GameTime;
  16. private var requestedTargetTime : GameTime;
  17. private var abortRequested : bool;
  18.  
  19. default TARGET_HOURS_PER_MINUTE = 320.0;
  20. default BLEND_TIME_SECONDS_REAL = 2;
  21.  
  22. event OnEnterState( prevStateName : name )
  23. {
  24. var requestedTargetHour : int;
  25. var fastForward : CGameFastForwardSystem;
  26.  
  27. fastForward = theGame.GetFastForwardSystem();
  28. fastForward.BeginFastForward();
  29.  
  30. virtual_parent.LockEntryFunction( true );
  31.  
  32. storedHoursPerMinute = theGame.GetHoursPerMinute();
  33. waitStartTime = theGame.GetGameTime();
  34. requestedTargetHour = virtual_parent.GetWaitTargetHour();
  35.  
  36. if(requestedTargetHour > GameTimeHours(waitStartTime))
  37. requestedTargetTime = GameTimeCreate(GameTimeDays(waitStartTime), requestedTargetHour, 0, 0);
  38. else
  39. requestedTargetTime = GameTimeCreate(GameTimeDays(waitStartTime) + 1, requestedTargetHour, 0, 0);
  40.  
  41.  
  42. FactsSet('MeditationWaitStartDay', GameTimeDays(waitStartTime));
  43. FactsSet('MeditationWaitStartHour', GameTimeHours(waitStartTime));
  44. FactsSet('MeditationStarted', 1);
  45.  
  46. virtual_parent.LockEntryFunction( false );
  47.  
  48. Loop_StupidNameCollision();
  49. }
  50.  
  51. event OnLeaveState( nextStateName : name )
  52. {
  53. var fastForward : CGameFastForwardSystem;
  54.  
  55. fastForward = theGame.GetFastForwardSystem();
  56. fastForward.AllowFastForwardSelfCompletion();
  57.  
  58. FactsSet('MeditationStarted', 0);
  59. theGame.SetHoursPerMinute(storedHoursPerMinute);
  60.  
  61. if(abortRequested)
  62. {
  63. LatentMeditationWaitingAbort();
  64. }
  65.  
  66. super.OnLeaveState(nextStateName);
  67. }
  68.  
  69. entry function LatentMeditationWaitingAbort()
  70. {
  71. var medd : W3PlayerWitcherStateMeditation;
  72.  
  73. medd = (W3PlayerWitcherStateMeditation)thePlayer.GetState('Meditation');
  74. medd.StopMeditation();
  75. }
  76.  
  77. private entry function Loop_StupidNameCollision()
  78. {
  79. var blendInTime : float;
  80.  
  81. blendInTime = BlendIn();
  82.  
  83. if(!abortRequested)
  84. KeepWaiting(theGame.GetGameTime() - waitStartTime);
  85.  
  86. BlendOut(2 * BLEND_TIME_SECONDS_REAL - blendInTime);
  87.  
  88.  
  89.  
  90.  
  91. theGame.SetHoursPerMinute(storedHoursPerMinute);
  92.  
  93.  
  94.  
  95. if(!abortRequested)
  96. theGame.SetGameTime(requestedTargetTime, false);
  97.  
  98.  
  99. GetWitcherPlayer().MeditationRestoring( FinalHack_GetSimulateBuffTime() );
  100. GetWitcherPlayer().MeditationRestoring( GetSimulateBuffTime() );
  101. //GetWitcherPlayer().MeditationRestoring( FinalHack_GetSimulateBuffTime() ); //Shaedhen - Darker Nights
  102. thePlayer.OnMeditateStopDN( FinalHack_GetSimulateBuffTime() ); //Shaedhen - Darker Nights
  103.  
  104.  
  105. abortRequested = false;
  106. virtual_parent.PopState();
  107. virtual_parent.PushState('Meditation');
  108. }
  109.  
  110.  
  111. private latent function BlendIn() : float
  112. {
  113. var blendStartTime, currentEngineTime : EngineTime;
  114. var totalBlendTimeSecsReal, blendedHPM : float;
  115. var halfMeditationTime : GameTime;
  116.  
  117. blendStartTime = theGame.GetEngineTime();
  118.  
  119.  
  120. halfMeditationTime = waitStartTime + GameTimeCreateFromGameSeconds( (GameTimeToSeconds(requestedTargetTime) - GameTimeToSeconds(waitStartTime)) / 2);
  121.  
  122. while(true)
  123. {
  124. currentEngineTime = theGame.GetEngineTime();
  125. totalBlendTimeSecsReal = EngineTimeToFloat(currentEngineTime - blendStartTime);
  126.  
  127.  
  128. if(totalBlendTimeSecsReal >= BLEND_TIME_SECONDS_REAL || theGame.GetGameTime() >= halfMeditationTime || abortRequested)
  129. break;
  130.  
  131. blendedHPM = storedHoursPerMinute + (TARGET_HOURS_PER_MINUTE - storedHoursPerMinute) * totalBlendTimeSecsReal / BLEND_TIME_SECONDS_REAL;
  132. blendedHPM = MinF(TARGET_HOURS_PER_MINUTE, blendedHPM);
  133.  
  134. theGame.SetHoursPerMinute(blendedHPM);
  135.  
  136. SleepOneFrame();
  137. }
  138.  
  139. return totalBlendTimeSecsReal;
  140. }
  141.  
  142.  
  143. private latent function BlendOut(estimatedBlendTimeReal : float)
  144. {
  145. var blendStartTime, currentEngineTime : EngineTime;
  146. var totalBlendTimeSecsReal, blendedHPM : float;
  147. var currentGameTime : GameTime;
  148.  
  149. blendStartTime = theGame.GetEngineTime();
  150.  
  151. while(true)
  152. {
  153. currentGameTime = theGame.GetGameTime();
  154. currentEngineTime = theGame.GetEngineTime();
  155. totalBlendTimeSecsReal = EngineTimeToFloat(currentEngineTime - blendStartTime);
  156.  
  157.  
  158. if(currentGameTime >= requestedTargetTime)
  159. break;
  160.  
  161.  
  162. if(abortRequested)
  163. blendedHPM = TARGET_HOURS_PER_MINUTE - 4 * (TARGET_HOURS_PER_MINUTE - storedHoursPerMinute) * totalBlendTimeSecsReal / estimatedBlendTimeReal;
  164. else
  165. blendedHPM = TARGET_HOURS_PER_MINUTE - (TARGET_HOURS_PER_MINUTE - storedHoursPerMinute) * totalBlendTimeSecsReal / estimatedBlendTimeReal;
  166.  
  167. blendedHPM = MaxF(storedHoursPerMinute, blendedHPM);
  168.  
  169.  
  170. if(blendedHPM == storedHoursPerMinute)
  171. break;
  172.  
  173. theGame.SetHoursPerMinute(blendedHPM);
  174.  
  175. SleepOneFrame();
  176. }
  177. }
  178.  
  179.  
  180. private latent function KeepWaiting(blendTime : GameTime)
  181. {
  182. var currentTime : GameTime;
  183. var commonMenuRef : CR4CommonMenu;
  184.  
  185. while(true)
  186. {
  187. currentTime = theGame.GetGameTime();
  188.  
  189.  
  190. if((currentTime + blendTime > requestedTargetTime) || abortRequested)
  191. break;
  192.  
  193. if ( thePlayer.IsThreatened() )
  194. {
  195. commonMenuRef = theGame.GetGuiManager().GetCommonMenu();
  196. if (commonMenuRef)
  197. {
  198. commonMenuRef.CloseMenu();
  199. }
  200. }
  201.  
  202. SleepOneFrame();
  203. }
  204. }
  205.  
  206.  
  207. public function RequestWaitStop()
  208. {
  209. abortRequested = true;
  210. }
  211.  
  212.  
  213. public function StopRequested(optional closeUI : bool)
  214. {
  215. var medd : W3PlayerWitcherStateMeditation;
  216.  
  217.  
  218. RequestWaitStop();
  219.  
  220.  
  221. medd = (W3PlayerWitcherStateMeditation)(thePlayer.GetState('Meditation'));
  222. medd.StopRequested(closeUI);
  223. }
  224.  
  225.  
  226. private final function GetSimulateBuffTime() : float
  227. {
  228. var passedSecondsInGameTime, passedSecondsInRealTime : float;
  229.  
  230. passedSecondsInGameTime = GameTimeToSeconds(theGame.GetGameTime() - waitStartTime);
  231. passedSecondsInRealTime = ConvertGameSecondsToRealTimeSeconds(passedSecondsInGameTime);
  232.  
  233. return passedSecondsInRealTime;
  234. }
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement