ソースを参照

Process Urho threat level first to avoid message spam when he kills you and other stuff is also happening.

Lasse Öörni 11 年 前
コミット
dd77e395b8
1 ファイル変更18 行追加17 行削除
  1. 18 17
      Source/Samples/26_ConsoleInput/ConsoleInput.cpp

+ 18 - 17
Source/Samples/26_ConsoleInput/ConsoleInput.cpp

@@ -128,7 +128,23 @@ void ConsoleInput::EndGame(const String& message)
 
 void ConsoleInput::Advance()
 {
-    ++numTurns_;
+    if (urhoThreat_ > 0)
+    {
+        ++urhoThreat_;
+        if (urhoThreat_ > 3)
+        {
+            EndGame("Urho has eaten you!\n");
+            return;
+        }
+    }
+    else if (urhoThreat_ < 0)
+        ++urhoThreat_;
+    if (urhoThreat_ == 0 && Random() < 0.2f)
+        ++urhoThreat_;
+    
+    if (urhoThreat_ > 0)
+        Print(urhoThreatLevels[urhoThreat_ - 1] + ".\n");
+    
     if ((numTurns_ & 3) == 0 && !eatenLastTurn_)
     {
         ++hunger_;
@@ -154,22 +170,7 @@ void ConsoleInput::Advance()
         foodAvailable_ = true;
     }
     
-    if (urhoThreat_ > 0)
-    {
-        ++urhoThreat_;
-        if (urhoThreat_ > 3)
-        {
-            EndGame("Urho has eaten you!\n");
-            return;
-        }
-    }
-    else if (urhoThreat_ < 0)
-        ++urhoThreat_;
-    if (urhoThreat_ == 0 && Random() < 0.2f)
-        ++urhoThreat_;
-    
-    if (urhoThreat_ > 0)
-        Print(urhoThreatLevels[urhoThreat_ - 1] + ".\n");
+    ++numTurns_;
 }
 
 void ConsoleInput::HandleInput(const String& input)