fix conflicts
This commit is contained in:
@@ -30,6 +30,8 @@ using OpenRa.Network;
|
||||
using OpenRa.Support;
|
||||
using OpenRa.Traits;
|
||||
using Timer = OpenRa.Support.Timer;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.IO;
|
||||
|
||||
namespace OpenRa
|
||||
{
|
||||
@@ -285,7 +287,7 @@ namespace OpenRa
|
||||
return sp;
|
||||
}
|
||||
|
||||
internal static void DispatchMouseInput(MouseInputEvent ev, MouseEventArgs e, Keys ModifierKeys)
|
||||
public static void DispatchMouseInput(MouseInputEvent ev, MouseEventArgs e, Keys ModifierKeys)
|
||||
{
|
||||
int sync = Game.world.SyncHash();
|
||||
|
||||
@@ -302,7 +304,7 @@ namespace OpenRa
|
||||
throw new InvalidOperationException( "Desync in DispatchMouseInput" );
|
||||
}
|
||||
|
||||
internal static void HandleKeyDown( KeyEventArgs e )
|
||||
public static void HandleKeyDown( KeyEventArgs e )
|
||||
{
|
||||
int sync = Game.world.SyncHash();
|
||||
|
||||
@@ -315,7 +317,7 @@ namespace OpenRa
|
||||
throw new InvalidOperationException( "Desync in OnKeyDown" );
|
||||
}
|
||||
|
||||
internal static void HandleKeyPress( KeyPressEventArgs e )
|
||||
public static void HandleKeyPress( KeyPressEventArgs e )
|
||||
{
|
||||
int sync = Game.world.SyncHash();
|
||||
|
||||
@@ -327,5 +329,81 @@ namespace OpenRa
|
||||
if( sync != Game.world.SyncHash() )
|
||||
throw new InvalidOperationException( "Desync in OnKeyPress" );
|
||||
}
|
||||
|
||||
static Size GetResolution(Settings settings)
|
||||
{
|
||||
var desktopResolution = Screen.PrimaryScreen.Bounds.Size;
|
||||
if (Game.Settings.Width > 0 && Game.Settings.Height > 0)
|
||||
{
|
||||
desktopResolution.Width = Game.Settings.Width;
|
||||
desktopResolution.Height = Game.Settings.Height;
|
||||
}
|
||||
return new Size(
|
||||
desktopResolution.Width,
|
||||
desktopResolution.Height);
|
||||
}
|
||||
|
||||
[DllImport("user32")]
|
||||
static extern int ShowCursor([MarshalAs(UnmanagedType.Bool)] bool visible);
|
||||
|
||||
public static void PreInit(Settings settings)
|
||||
{
|
||||
while (!File.Exists("redalert.mix"))
|
||||
{
|
||||
var current = Directory.GetCurrentDirectory();
|
||||
if (Directory.GetDirectoryRoot(current) == current)
|
||||
throw new InvalidOperationException("Unable to load MIX files.");
|
||||
Directory.SetCurrentDirectory("..");
|
||||
}
|
||||
|
||||
|
||||
LoadUserSettings(settings);
|
||||
Game.LobbyInfo.GlobalSettings.Mods = Game.Settings.InitialMods;
|
||||
|
||||
// Load the default mod to access required files
|
||||
Game.LoadModPackages(new Manifest(Game.LobbyInfo.GlobalSettings.Mods));
|
||||
|
||||
UiOverlay.ShowUnitDebug = Game.Settings.UnitDebug;
|
||||
WorldRenderer.ShowUnitPaths = Game.Settings.PathDebug;
|
||||
Renderer.SheetSize = Game.Settings.SheetSize;
|
||||
|
||||
bool windowed = !Game.Settings.Fullscreen;
|
||||
var resolution = GetResolution(settings);
|
||||
renderer = new Renderer(resolution, windowed);
|
||||
resolution = renderer.Resolution;
|
||||
|
||||
var controller = new Controller(() => (Modifiers)(int)0/*ModifierKeys*/); /* a bit of insane input routing */
|
||||
|
||||
Game.Initialize(Game.Settings.Map, renderer, new int2(resolution), Game.Settings.Player, controller);
|
||||
|
||||
ShowCursor(false);
|
||||
Game.ResetTimer();
|
||||
}
|
||||
|
||||
static void LoadUserSettings(Settings settings)
|
||||
{
|
||||
Game.Settings = new UserSettings();
|
||||
var settingsFile = settings.GetValue("settings", "settings.ini");
|
||||
FileSystem.Mount("./");
|
||||
if (FileSystem.Exists(settingsFile))
|
||||
FieldLoader.Load(Game.Settings,
|
||||
new IniFile(FileSystem.Open(settingsFile)).GetSection("Settings"));
|
||||
FileSystem.UnmountAll();
|
||||
}
|
||||
|
||||
static bool quit;
|
||||
internal static void Run()
|
||||
{
|
||||
while (!quit)
|
||||
{
|
||||
Game.Tick();
|
||||
Application.DoEvents();
|
||||
}
|
||||
}
|
||||
|
||||
public static void Exit()
|
||||
{
|
||||
quit = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,15 +19,15 @@
|
||||
#endregion
|
||||
|
||||
using System.Drawing;
|
||||
using OpenRa.GlRenderer;
|
||||
using OpenRa.FileFormats.Graphics;
|
||||
|
||||
namespace OpenRa.Graphics
|
||||
{
|
||||
class LineRenderer
|
||||
{
|
||||
Renderer renderer;
|
||||
VertexBuffer<Vertex> vertexBuffer;
|
||||
IndexBuffer indexBuffer; /* kindof a waste of space, but the GPU likes indexing, oh well */
|
||||
IVertexBuffer<Vertex> vertexBuffer;
|
||||
IIndexBuffer indexBuffer; /* kindof a waste of space, but the GPU likes indexing, oh well */
|
||||
|
||||
const int linesPerBatch = 1024;
|
||||
|
||||
@@ -39,8 +39,8 @@ namespace OpenRa.Graphics
|
||||
public LineRenderer( Renderer renderer )
|
||||
{
|
||||
this.renderer = renderer;
|
||||
vertexBuffer = new VertexBuffer<Vertex>( renderer.Device, vertices.Length, Vertex.Format );
|
||||
indexBuffer = new IndexBuffer( renderer.Device, indices.Length );
|
||||
vertexBuffer = renderer.Device.CreateVertexBuffer<Vertex>(vertices.Length );
|
||||
indexBuffer = renderer.Device.CreateIndexBuffer( indices.Length );
|
||||
}
|
||||
|
||||
public void Flush()
|
||||
|
||||
@@ -18,12 +18,15 @@
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Text;
|
||||
using System.Reflection;
|
||||
using System.Windows.Forms;
|
||||
using OpenRa.FileFormats;
|
||||
using OpenRa.GlRenderer;
|
||||
using OpenRa.FileFormats.Graphics;
|
||||
using OpenRa.Support;
|
||||
using System.IO;
|
||||
|
||||
namespace OpenRa.Graphics
|
||||
{
|
||||
@@ -31,14 +34,14 @@ namespace OpenRa.Graphics
|
||||
{
|
||||
internal static int SheetSize;
|
||||
|
||||
readonly GraphicsDevice device;
|
||||
readonly IGraphicsDevice device;
|
||||
|
||||
public Shader SpriteShader { get; private set; } /* note: shared shader params */
|
||||
public Shader LineShader { get; private set; }
|
||||
public Shader RgbaSpriteShader { get; private set; }
|
||||
public Shader WorldSpriteShader { get; private set; }
|
||||
public IShader SpriteShader { get; private set; } /* note: shared shader params */
|
||||
public IShader LineShader { get; private set; }
|
||||
public IShader RgbaSpriteShader { get; private set; }
|
||||
public IShader WorldSpriteShader { get; private set; }
|
||||
|
||||
public Texture PaletteTexture;
|
||||
public ITexture PaletteTexture;
|
||||
|
||||
readonly Font fDebug, fTitle;
|
||||
|
||||
@@ -46,19 +49,16 @@ namespace OpenRa.Graphics
|
||||
SpriteRenderer rgbaRenderer;
|
||||
Sprite textSprite;
|
||||
|
||||
public Renderer(Control control, Size resolution, bool windowed)
|
||||
{
|
||||
control.ClientSize = resolution;
|
||||
device = new GraphicsDevice(control, resolution.Width, resolution.Height, windowed, false);
|
||||
public Size Resolution { get { return device.WindowSize; } }
|
||||
|
||||
SpriteShader = new Shader(device, FileSystem.Open("world-shp.fx"));
|
||||
SpriteShader.Quality = ShaderQuality.Low;
|
||||
LineShader = new Shader(device, FileSystem.Open("line.fx"));
|
||||
LineShader.Quality = ShaderQuality.High;
|
||||
RgbaSpriteShader = new Shader(device, FileSystem.Open("chrome-rgba.fx"));
|
||||
RgbaSpriteShader.Quality = ShaderQuality.High;
|
||||
WorldSpriteShader = new Shader(device, FileSystem.Open("chrome-shp.fx"));
|
||||
WorldSpriteShader.Quality = ShaderQuality.High;
|
||||
public Renderer(Size resolution, bool windowed)
|
||||
{
|
||||
device = CreateDevice( Assembly.LoadFile( Path.GetFullPath( "OpenRa.Gl.dll" ) ), resolution.Width, resolution.Height, windowed, false );
|
||||
|
||||
SpriteShader = device.CreateShader(FileSystem.Open("world-shp.fx"));
|
||||
LineShader = device.CreateShader(FileSystem.Open("line.fx"));
|
||||
RgbaSpriteShader = device.CreateShader(FileSystem.Open("chrome-rgba.fx"));
|
||||
WorldSpriteShader = device.CreateShader(FileSystem.Open("chrome-shp.fx"));
|
||||
|
||||
fDebug = new Font("Tahoma", 10, FontStyle.Regular);
|
||||
fTitle = new Font("Tahoma", 10, FontStyle.Bold);
|
||||
@@ -67,6 +67,16 @@ namespace OpenRa.Graphics
|
||||
textSprite = new Sprite(textSheet, new Rectangle(0, 0, 256, 256), TextureChannel.Alpha);
|
||||
}
|
||||
|
||||
IGraphicsDevice CreateDevice( Assembly rendererDll, int width, int height, bool fullscreen, bool vsync )
|
||||
{
|
||||
foreach( RendererAttribute r in rendererDll.GetCustomAttributes( typeof( RendererAttribute ), false ) )
|
||||
{
|
||||
return (IGraphicsDevice)r.Type.GetConstructor( new Type[] { typeof( int ), typeof( int ), typeof( bool ), typeof( bool ) } )
|
||||
.Invoke( new object[] { width, height, fullscreen, vsync } );
|
||||
}
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
Bitmap RenderTextToBitmap(string s, Font f, Color c)
|
||||
{
|
||||
Bitmap b = new Bitmap(256, 256);
|
||||
@@ -86,7 +96,7 @@ namespace OpenRa.Graphics
|
||||
return new int2(g.MeasureString(s, f).ToSize());
|
||||
}
|
||||
|
||||
public GraphicsDevice Device { get { return device; } }
|
||||
public IGraphicsDevice Device { get { return device; } }
|
||||
|
||||
public void BeginFrame(float2 r1, float2 r2, float2 scroll)
|
||||
{
|
||||
@@ -99,7 +109,7 @@ namespace OpenRa.Graphics
|
||||
SetShaderParams( WorldSpriteShader, r1, r2, scroll );
|
||||
}
|
||||
|
||||
private void SetShaderParams( Shader s, float2 r1, float2 r2, float2 scroll )
|
||||
private void SetShaderParams( IShader s, float2 r1, float2 r2, float2 scroll )
|
||||
{
|
||||
s.SetValue( "Palette", PaletteTexture );
|
||||
s.SetValue( "Scroll", scroll.X, scroll.Y );
|
||||
@@ -114,8 +124,8 @@ namespace OpenRa.Graphics
|
||||
device.Present();
|
||||
}
|
||||
|
||||
public void DrawBatch<T>(VertexBuffer<T> vertices, IndexBuffer indices,
|
||||
Range<int> vertexRange, Range<int> indexRange, Texture texture, PrimitiveType type, Shader shader)
|
||||
public void DrawBatch<T>(IVertexBuffer<T> vertices, IIndexBuffer indices,
|
||||
Range<int> vertexRange, Range<int> indexRange, ITexture texture, PrimitiveType type, IShader shader)
|
||||
where T : struct
|
||||
{
|
||||
shader.SetValue("DiffuseTexture", texture);
|
||||
@@ -129,8 +139,8 @@ namespace OpenRa.Graphics
|
||||
PerfHistory.Increment("batches", 1);
|
||||
}
|
||||
|
||||
public void DrawBatch<T>(VertexBuffer<T> vertices, IndexBuffer indices,
|
||||
int vertexPool, int numPrimitives, Texture texture, PrimitiveType type)
|
||||
public void DrawBatch<T>(IVertexBuffer<T> vertices, IIndexBuffer indices,
|
||||
int vertexPool, int numPrimitives, ITexture texture, PrimitiveType type)
|
||||
where T : struct
|
||||
{
|
||||
SpriteShader.SetValue("DiffuseTexture", texture);
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
using System.Drawing;
|
||||
using OpenRa.FileFormats;
|
||||
using OpenRa.GlRenderer;
|
||||
using OpenRa.FileFormats.Graphics;
|
||||
|
||||
namespace OpenRa.Graphics
|
||||
{
|
||||
@@ -29,7 +29,7 @@ namespace OpenRa.Graphics
|
||||
readonly Renderer renderer;
|
||||
protected readonly Bitmap bitmap;
|
||||
|
||||
Texture texture;
|
||||
ITexture texture;
|
||||
|
||||
internal Sheet(Renderer renderer, Size size)
|
||||
{
|
||||
@@ -45,10 +45,10 @@ namespace OpenRa.Graphics
|
||||
|
||||
void Resolve()
|
||||
{
|
||||
texture = new Texture(renderer.Device, bitmap);
|
||||
texture = renderer.Device.CreateTexture(bitmap);
|
||||
}
|
||||
|
||||
public Texture Texture
|
||||
public ITexture Texture
|
||||
{
|
||||
get
|
||||
{
|
||||
|
||||
@@ -18,16 +18,16 @@
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using OpenRa.GlRenderer;
|
||||
using OpenRa.FileFormats.Graphics;
|
||||
|
||||
namespace OpenRa.Graphics
|
||||
{
|
||||
class SpriteRenderer
|
||||
{
|
||||
VertexBuffer<Vertex> vertexBuffer;
|
||||
IndexBuffer indexBuffer;
|
||||
IVertexBuffer<Vertex> vertexBuffer;
|
||||
IIndexBuffer indexBuffer;
|
||||
Renderer renderer;
|
||||
Shader shader;
|
||||
IShader shader;
|
||||
|
||||
const int spritesPerBatch = 1024;
|
||||
|
||||
@@ -35,18 +35,15 @@ namespace OpenRa.Graphics
|
||||
ushort[] indices = new ushort[6 * spritesPerBatch];
|
||||
Sheet currentSheet = null;
|
||||
int sprites = 0;
|
||||
ShaderQuality quality;
|
||||
int nv = 0, ni = 0;
|
||||
|
||||
public SpriteRenderer(Renderer renderer, bool allowAlpha, Shader shader)
|
||||
public SpriteRenderer(Renderer renderer, bool allowAlpha, IShader shader)
|
||||
{
|
||||
this.renderer = renderer;
|
||||
this.shader = shader;
|
||||
|
||||
vertexBuffer = new VertexBuffer<Vertex>(renderer.Device, vertices.Length, Vertex.Format);
|
||||
indexBuffer = new IndexBuffer(renderer.Device, indices.Length);
|
||||
|
||||
quality = allowAlpha ? ShaderQuality.High : ShaderQuality.Low;
|
||||
vertexBuffer = renderer.Device.CreateVertexBuffer<Vertex>( vertices.Length );
|
||||
indexBuffer = renderer.Device.CreateIndexBuffer( indices.Length );
|
||||
}
|
||||
|
||||
public SpriteRenderer(Renderer renderer, bool allowAlpha)
|
||||
@@ -56,7 +53,6 @@ namespace OpenRa.Graphics
|
||||
{
|
||||
if (sprites > 0)
|
||||
{
|
||||
shader.Quality = quality;
|
||||
shader.SetValue( "DiffuseTexture", currentSheet.Texture );
|
||||
shader.Render(() =>
|
||||
{
|
||||
|
||||
@@ -20,14 +20,14 @@
|
||||
|
||||
using System.Drawing;
|
||||
using OpenRa.FileFormats;
|
||||
using OpenRa.GlRenderer;
|
||||
using OpenRa.FileFormats.Graphics;
|
||||
|
||||
namespace OpenRa.Graphics
|
||||
{
|
||||
class TerrainRenderer
|
||||
{
|
||||
VertexBuffer<Vertex> vertexBuffer;
|
||||
IndexBuffer indexBuffer;
|
||||
IVertexBuffer<Vertex> vertexBuffer;
|
||||
IIndexBuffer indexBuffer;
|
||||
Sheet terrainSheet;
|
||||
|
||||
Renderer renderer;
|
||||
@@ -62,10 +62,10 @@ namespace OpenRa.Graphics
|
||||
|
||||
terrainSheet = tileMapping[map.MapTiles[map.XOffset, map.YOffset]].sheet;
|
||||
|
||||
vertexBuffer = new VertexBuffer<Vertex>( renderer.Device, vertices.Length, Vertex.Format );
|
||||
vertexBuffer = renderer.Device.CreateVertexBuffer<Vertex>( vertices.Length );
|
||||
vertexBuffer.SetData( vertices );
|
||||
|
||||
indexBuffer = new IndexBuffer( renderer.Device, indices.Length );
|
||||
indexBuffer = renderer.Device.CreateIndexBuffer( indices.Length );
|
||||
indexBuffer.SetData( indices );
|
||||
|
||||
overlayRenderer = new OverlayRenderer( renderer, map );
|
||||
@@ -97,7 +97,6 @@ namespace OpenRa.Graphics
|
||||
firstRow = r.Bottom - map.YOffset;
|
||||
}
|
||||
|
||||
renderer.SpriteShader.Quality = ShaderQuality.Low;
|
||||
renderer.SpriteShader.SetValue( "DiffuseTexture", terrainSheet.Texture );
|
||||
renderer.SpriteShader.Render(() =>
|
||||
renderer.DrawBatch(vertexBuffer, indexBuffer,
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
#endregion
|
||||
|
||||
using System.Runtime.InteropServices;
|
||||
using OpenRa.GlRenderer;
|
||||
|
||||
namespace OpenRa.Graphics
|
||||
{
|
||||
@@ -35,7 +34,5 @@ namespace OpenRa.Graphics
|
||||
this.u = uv.X; this.v = uv.Y;
|
||||
this.p = pc.X; this.c = pc.Y;
|
||||
}
|
||||
|
||||
public const VertexFormat Format = VertexFormat.Position | VertexFormat.Texture2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,128 +29,129 @@ using OpenRa.Graphics;
|
||||
|
||||
namespace OpenRa
|
||||
{
|
||||
class MainWindow : Form
|
||||
{
|
||||
readonly Renderer renderer;
|
||||
//class MainWindow : Form
|
||||
//{
|
||||
// readonly Renderer renderer;
|
||||
|
||||
static Size GetResolution(Settings settings)
|
||||
{
|
||||
var desktopResolution = Screen.PrimaryScreen.Bounds.Size;
|
||||
if (Game.Settings.Width > 0 && Game.Settings.Height > 0)
|
||||
{
|
||||
desktopResolution.Width = Game.Settings.Width;
|
||||
desktopResolution.Height = Game.Settings.Height;
|
||||
}
|
||||
return new Size(
|
||||
desktopResolution.Width,
|
||||
desktopResolution.Height);
|
||||
}
|
||||
// static Size GetResolution(Settings settings)
|
||||
// {
|
||||
// var desktopResolution = Screen.PrimaryScreen.Bounds.Size;
|
||||
// if (Game.Settings.Width > 0 && Game.Settings.Height > 0)
|
||||
// {
|
||||
// desktopResolution.Width = Game.Settings.Width;
|
||||
// desktopResolution.Height = Game.Settings.Height;
|
||||
// }
|
||||
// return new Size(
|
||||
// desktopResolution.Width,
|
||||
// desktopResolution.Height);
|
||||
// }
|
||||
|
||||
[DllImport("user32")]
|
||||
static extern int ShowCursor([MarshalAs(UnmanagedType.Bool)] bool visible);
|
||||
// [DllImport("user32")]
|
||||
// static extern int ShowCursor([MarshalAs(UnmanagedType.Bool)] bool visible);
|
||||
|
||||
public MainWindow(Settings settings)
|
||||
{
|
||||
//Icon = Resources1.OpenRA;
|
||||
FormBorderStyle = FormBorderStyle.None;
|
||||
BackColor = Color.Black;
|
||||
StartPosition = FormStartPosition.Manual;
|
||||
Location = Point.Empty;
|
||||
Visible = true;
|
||||
// public MainWindow(Settings settings)
|
||||
// {
|
||||
// Icon = Resources1.OpenRA;
|
||||
// FormBorderStyle = FormBorderStyle.None;
|
||||
// BackColor = Color.Black;
|
||||
// StartPosition = FormStartPosition.Manual;
|
||||
// Location = Point.Empty;
|
||||
// Visible = true;
|
||||
>>>>>>> origin/glfw:OpenRa.Game/MainWindow.cs
|
||||
|
||||
while (!File.Exists("redalert.mix"))
|
||||
{
|
||||
var current = Directory.GetCurrentDirectory();
|
||||
if (Directory.GetDirectoryRoot(current) == current)
|
||||
throw new InvalidOperationException("Unable to load MIX files.");
|
||||
Directory.SetCurrentDirectory("..");
|
||||
}
|
||||
// while (!File.Exists("redalert.mix"))
|
||||
// {
|
||||
// var current = Directory.GetCurrentDirectory();
|
||||
// if (Directory.GetDirectoryRoot(current) == current)
|
||||
// throw new InvalidOperationException("Unable to load MIX files.");
|
||||
// Directory.SetCurrentDirectory("..");
|
||||
// }
|
||||
|
||||
|
||||
LoadUserSettings(settings);
|
||||
Game.LobbyInfo.GlobalSettings.Mods = Game.Settings.InitialMods;
|
||||
// LoadUserSettings(settings);
|
||||
// Game.LobbyInfo.GlobalSettings.Mods = Game.Settings.InitialMods;
|
||||
|
||||
// Load the default mod to access required files
|
||||
Game.LoadModPackages(new Manifest(Game.LobbyInfo.GlobalSettings.Mods));
|
||||
// // Load the default mod to access required files
|
||||
// Game.LoadModPackages(new Manifest(Game.LobbyInfo.GlobalSettings.Mods));
|
||||
|
||||
UiOverlay.ShowUnitDebug = Game.Settings.UnitDebug;
|
||||
WorldRenderer.ShowUnitPaths = Game.Settings.PathDebug;
|
||||
Renderer.SheetSize = Game.Settings.SheetSize;
|
||||
// UiOverlay.ShowUnitDebug = Game.Settings.UnitDebug;
|
||||
// WorldRenderer.ShowUnitPaths = Game.Settings.PathDebug;
|
||||
// Renderer.SheetSize = Game.Settings.SheetSize;
|
||||
|
||||
bool windowed = !Game.Settings.Fullscreen;
|
||||
renderer = new Renderer(this, GetResolution(settings), windowed);
|
||||
// bool windowed = !Game.Settings.Fullscreen;
|
||||
// renderer = new Renderer(this, GetResolution(settings), windowed);
|
||||
|
||||
var controller = new Controller(() => (Modifiers)(int)ModifierKeys); /* a bit of insane input routing */
|
||||
// var controller = new Controller(() => (Modifiers)(int)ModifierKeys); /* a bit of insane input routing */
|
||||
|
||||
Game.Initialize(Game.Settings.Map, renderer, new int2(ClientSize), Game.Settings.Player, controller);
|
||||
// Game.Initialize(Game.Settings.Map, renderer, new int2(ClientSize), Game.Settings.Player, controller);
|
||||
|
||||
ShowCursor(false);
|
||||
Game.ResetTimer();
|
||||
}
|
||||
// ShowCursor(false);
|
||||
// Game.ResetTimer();
|
||||
// }
|
||||
|
||||
static void LoadUserSettings(Settings settings)
|
||||
{
|
||||
Game.Settings = new UserSettings();
|
||||
var settingsFile = settings.GetValue("settings", "settings.ini");
|
||||
FileSystem.Mount("./");
|
||||
if (FileSystem.Exists(settingsFile))
|
||||
FieldLoader.Load(Game.Settings,
|
||||
new IniFile(FileSystem.Open(settingsFile)).GetSection("Settings"));
|
||||
FileSystem.UnmountAll();
|
||||
}
|
||||
// static void LoadUserSettings(Settings settings)
|
||||
// {
|
||||
// Game.Settings = new UserSettings();
|
||||
// var settingsFile = settings.GetValue("settings", "settings.ini");
|
||||
// FileSystem.Mount("./");
|
||||
// if (FileSystem.Exists(settingsFile))
|
||||
// FieldLoader.Load(Game.Settings,
|
||||
// new IniFile(FileSystem.Open(settingsFile)).GetSection("Settings"));
|
||||
// FileSystem.UnmountAll();
|
||||
// }
|
||||
|
||||
internal void Run()
|
||||
{
|
||||
while (Created && Visible)
|
||||
{
|
||||
Game.Tick();
|
||||
Application.DoEvents();
|
||||
}
|
||||
}
|
||||
// internal void Run()
|
||||
// {
|
||||
// while (Created && Visible)
|
||||
// {
|
||||
// Game.Tick();
|
||||
// Application.DoEvents();
|
||||
// }
|
||||
// }
|
||||
|
||||
int2 lastPos;
|
||||
// int2 lastPos;
|
||||
|
||||
protected override void OnMouseDown(MouseEventArgs e)
|
||||
{
|
||||
base.OnMouseDown(e);
|
||||
lastPos = new int2(e.Location);
|
||||
Game.DispatchMouseInput(MouseInputEvent.Down, e, ModifierKeys);
|
||||
}
|
||||
// protected override void OnMouseDown(MouseEventArgs e)
|
||||
// {
|
||||
// base.OnMouseDown(e);
|
||||
// lastPos = new int2(e.Location);
|
||||
// Game.DispatchMouseInput(MouseInputEvent.Down, e, ModifierKeys);
|
||||
// }
|
||||
|
||||
protected override void OnMouseMove(MouseEventArgs e)
|
||||
{
|
||||
base.OnMouseMove(e);
|
||||
// protected override void OnMouseMove(MouseEventArgs e)
|
||||
// {
|
||||
// base.OnMouseMove(e);
|
||||
|
||||
if (e.Button == MouseButtons.Middle || e.Button == (MouseButtons.Left | MouseButtons.Right))
|
||||
{
|
||||
int2 p = new int2(e.Location);
|
||||
Game.viewport.Scroll(lastPos - p);
|
||||
lastPos = p;
|
||||
}
|
||||
// if (e.Button == MouseButtons.Middle || e.Button == (MouseButtons.Left | MouseButtons.Right))
|
||||
// {
|
||||
// int2 p = new int2(e.Location);
|
||||
// Game.viewport.Scroll(lastPos - p);
|
||||
// lastPos = p;
|
||||
// }
|
||||
|
||||
Game.DispatchMouseInput(MouseInputEvent.Move, e, ModifierKeys);
|
||||
}
|
||||
// Game.DispatchMouseInput(MouseInputEvent.Move, e, ModifierKeys);
|
||||
// }
|
||||
|
||||
protected override void OnMouseUp(MouseEventArgs e)
|
||||
{
|
||||
base.OnMouseUp(e);
|
||||
Game.DispatchMouseInput(MouseInputEvent.Up, e, ModifierKeys);
|
||||
}
|
||||
// protected override void OnMouseUp(MouseEventArgs e)
|
||||
// {
|
||||
// base.OnMouseUp(e);
|
||||
// Game.DispatchMouseInput(MouseInputEvent.Up, e, ModifierKeys);
|
||||
// }
|
||||
|
||||
protected override void OnKeyDown(KeyEventArgs e)
|
||||
{
|
||||
base.OnKeyDown(e);
|
||||
// protected override void OnKeyDown(KeyEventArgs e)
|
||||
// {
|
||||
// base.OnKeyDown(e);
|
||||
|
||||
Game.HandleKeyDown( e );
|
||||
}
|
||||
// Game.HandleKeyDown( e );
|
||||
// }
|
||||
|
||||
protected override void OnKeyPress(KeyPressEventArgs e)
|
||||
{
|
||||
base.OnKeyPress(e);
|
||||
// protected override void OnKeyPress(KeyPressEventArgs e)
|
||||
// {
|
||||
// base.OnKeyPress(e);
|
||||
|
||||
Game.HandleKeyPress( e );
|
||||
}
|
||||
}
|
||||
// Game.HandleKeyPress( e );
|
||||
// }
|
||||
//}
|
||||
|
||||
[Flags]
|
||||
public enum MouseButton
|
||||
|
||||
@@ -166,7 +166,6 @@
|
||||
<Compile Include="Graphics\SheetBuilder.cs" />
|
||||
<Compile Include="Graphics\HardwarePalette.cs" />
|
||||
<Compile Include="MainWindow.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Support\Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
@@ -272,10 +271,6 @@
|
||||
<Project>{BDAEAB25-991E-46A7-AF1E-4F0E03358DAA}</Project>
|
||||
<Name>OpenRa.FileFormats</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\OpenRa.Gl\OpenRa.Gl.csproj">
|
||||
<Project>{67CF1A10-C5F6-48FA-B1A7-FE83BE4CE2CC}</Project>
|
||||
<Name>OpenRa.Gl</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
|
||||
|
||||
@@ -47,7 +47,8 @@ namespace OpenRa
|
||||
|
||||
static void Run( string[] args )
|
||||
{
|
||||
new MainWindow( new Settings( args ) ).Run();
|
||||
Game.PreInit( new Settings( args ) );
|
||||
Game.Run();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@ using System.Text.RegularExpressions;
|
||||
|
||||
namespace OpenRa
|
||||
{
|
||||
class Settings
|
||||
public class Settings
|
||||
{
|
||||
Dictionary<string, string> settings = new Dictionary<string, string>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user