using props in Sound rather than setter functions; no idea if it's right, because there's no way to test

This commit is contained in:
Chris Forbes
2009-12-27 21:54:37 +13:00
parent 413cfcada6
commit 6ff4ea3717
2 changed files with 44 additions and 32 deletions

View File

@@ -82,21 +82,7 @@ namespace OpenRa.Game.Graphics
spriteRenderer.Flush(); spriteRenderer.Flush();
var selbox = Game.controller.SelectionBox; DrawBandBox();
if (selbox != null)
{
var a = selbox.Value.First;
var b = new float2(selbox.Value.Second.X - a.X, 0);
var c = new float2(0, selbox.Value.Second.Y - a.Y);
lineRenderer.DrawLine(a, a + b, Color.White, Color.White);
lineRenderer.DrawLine(a + b, a + b + c, Color.White, Color.White);
lineRenderer.DrawLine(a + b + c, a + c, Color.White, Color.White);
lineRenderer.DrawLine(a, a + c, Color.White, Color.White);
foreach (var u in Game.SelectActorsInBox(selbox.Value.First, selbox.Value.Second))
DrawSelectionBox(u, Color.Yellow, false);
}
if (Game.controller.orderGenerator != null) if (Game.controller.orderGenerator != null)
Game.controller.orderGenerator.Render(); Game.controller.orderGenerator.Render();
@@ -105,6 +91,24 @@ namespace OpenRa.Game.Graphics
spriteRenderer.Flush(); spriteRenderer.Flush();
} }
void DrawBandBox()
{
var selbox = Game.controller.SelectionBox;
if (selbox == null) return;
var a = selbox.Value.First;
var b = new float2(selbox.Value.Second.X - a.X, 0);
var c = new float2(0, selbox.Value.Second.Y - a.Y);
lineRenderer.DrawLine(a, a + b, Color.White, Color.White);
lineRenderer.DrawLine(a + b, a + b + c, Color.White, Color.White);
lineRenderer.DrawLine(a + b + c, a + c, Color.White, Color.White);
lineRenderer.DrawLine(a, a + c, Color.White, Color.White);
foreach (var u in Game.SelectActorsInBox(selbox.Value.First, selbox.Value.Second))
DrawSelectionBox(u, Color.Yellow, false);
}
public void DrawSelectionBox(Actor selectedUnit, Color c, bool drawHealthBar) public void DrawSelectionBox(Actor selectedUnit, Color c, bool drawHealthBar)
{ {
var bounds = selectedUnit.Bounds; var bounds = selectedUnit.Bounds;
@@ -133,8 +137,7 @@ namespace OpenRa.Game.Graphics
if (selectedUnit.Owner == Game.LocalPlayer) if (selectedUnit.Owner == Game.LocalPlayer)
{ {
DrawPips(selectedUnit, xY); DrawPips(selectedUnit, xY);
DrawTags(selectedUnit, DrawTags(selectedUnit, new float2(.5f * (bounds.Left + bounds.Right ), xy.Y));
new float2(.5f * (bounds.Left + bounds.Right ), xy.Y));
} }
} }

View File

@@ -10,10 +10,11 @@ namespace OpenRa.Game
static ISoundEngine soundEngine; static ISoundEngine soundEngine;
static Cache<string, ISoundSource> sounds; static Cache<string, ISoundSource> sounds;
static ISound music; static ISound music;
//TODO: read these from somewhere? //TODO: read these from somewhere?
static float soundVolume; static float soundVolume;
static float musicVolume; static float musicVolume;
static bool paused;
static ISoundSource LoadSound(string filename) static ISoundSource LoadSound(string filename)
{ {
@@ -50,25 +51,33 @@ namespace OpenRa.Game
music = soundEngine.Play2D(sound, true /* loop */, false, false); music = soundEngine.Play2D(sound, true /* loop */, false, false);
music.Volume = musicVolume; music.Volume = musicVolume;
} }
public static void Pause(bool doPause) public static bool Paused
{ {
soundEngine.SetAllSoundsPaused(doPause); get { return paused; }
set { paused = value; soundEngine.SetAllSoundsPaused(paused); }
}
public static float Volume
{
get { return soundVolume; }
set
{
soundVolume = value;
soundEngine.SoundVolume = value;
}
} }
public static void SetVolume(float vol) public static float MusicVolume
{ {
soundVolume = vol; get { return musicVolume; }
soundEngine.SoundVolume = vol; set {
musicVolume = value;
if (music != null)
music.Volume = value;
}
} }
public static void SetMusicVolume(float vol)
{
musicVolume = vol;
if (music != null)
music.Volume = vol;
}
public static void SeekMusic(uint delta) public static void SeekMusic(uint delta)
{ {
if (music != null) if (music != null)