Bug #32 fixed (a little hacky)

This commit is contained in:
Alli
2010-02-04 21:58:13 +13:00
parent 7722ad17a2
commit 171ef0a77f
3 changed files with 14 additions and 5 deletions

View File

@@ -10,15 +10,22 @@ namespace OpenRa
public List<Tuple<Color, string, string>> recentLines = new List<Tuple<Color, string, string>>();
public string typing = "";
public bool isChatting = false;
public bool isChatting = true;
public void Toggle()
{
if (isChatting && typing.Length > 0)
Game.IssueOrder(Order.Chat(typing));
Game.IssueOrder(Order.Chat(typing));
typing = "";
if (Game.orderManager.GameStarted)
isChatting ^= true;
}
public void Reset()
{
typing = "";
isChatting ^= true;
isChatting = false;
}
public void TypeChar(char c)

View File

@@ -214,6 +214,7 @@ namespace OpenRa
public static void StartGame()
{
Game.chat.Reset();
var available = world.Map.SpawnPoints.ToList();
var taken = new List<int2>();
@@ -283,12 +284,12 @@ namespace OpenRa
internal static void HandleKeyPress( KeyPressEventArgs e )
{
int sync = Game.world.SyncHash();
if( e.KeyChar == '\r' )
Game.chat.Toggle();
else if( Game.chat.isChatting )
Game.chat.TypeChar( e.KeyChar );
if( sync != Game.world.SyncHash() )
throw new InvalidOperationException( "Desync in OnKeyPress" );
}

View File

@@ -56,6 +56,7 @@ namespace OpenRa.Graphics
{
world.WorldRenderer.Draw();
Game.chrome.Draw( world );
if( Game.orderManager.Connection.ConnectionState == ConnectionState.NotConnected )
Game.chrome.DrawDialog("Connection lost.");