public OpeningSequenceRenderer(Wad wad, DrawScreen screen, SfmlRenderer parent) { this.screen = screen; this.parent = parent; cache = new PatchCache(wad); }
public MenuRenderer(Wad wad, DrawScreen screen) { this.wad = wad; this.screen = screen; cache = new PatchCache(wad); }
public IntermissionRenderer(Wad wad, DrawScreen screen) { this.screen = screen; patches = new Patches(wad); scale = screen.Width / 320; }
public AutoMapRenderer(DrawScreen screen) { this.screen = screen; scale = screen.Width / 320; amWidth = screen.Width; amHeight = screen.Height - scale * StatusBar.Height; ppu = (float)scale / 16; }
public FinaleRenderer(CommonResource resource, DrawScreen screen) { wad = resource.Wad; flats = resource.Flats; sprites = resource.Sprites; this.screen = screen; scale = screen.Width / 320; cache = new PatchCache(wad); }
public SfmlRenderer(RenderWindow window, CommonResource resource, bool highResolution) { sfmlWindow = window; palette = resource.Palette; colors = InitColors(palette); sfmlWindowWidth = (int)window.Size.X; sfmlWindowHeight = (int)window.Size.Y; if (highResolution) { screen = new DrawScreen(resource.Wad, 640, 400); sfmlTextureWidth = 512; sfmlTextureHeight = 1024; } else { screen = new DrawScreen(resource.Wad, 320, 200); sfmlTextureWidth = 256; sfmlTextureHeight = 512; } sfmlTextureData = new byte[4 * screen.Width * screen.Height]; try { sfmlTexture = new SFML.Graphics.Texture((uint)sfmlTextureWidth, (uint)sfmlTextureHeight); sfmlSprite = new SFML.Graphics.Sprite(sfmlTexture); } catch (Exception e) { Dispose(); ExceptionDispatchInfo.Capture(e).Throw(); } sfmlSprite.Position = new Vector2f(0, 0); sfmlSprite.Rotation = 90; var scaleX = (float)sfmlWindowWidth / screen.Width; var scaleY = (float)sfmlWindowHeight / screen.Height; sfmlSprite.Scale = new Vector2f(scaleY, -scaleX); sfmlStates = new RenderStates(BlendMode.None); menu = new MenuRenderer(resource.Wad, screen); threeD = new ThreeDRenderer(resource, screen); statusBar = new StatusBarRenderer(resource.Wad, screen); intermission = new IntermissionRenderer(resource.Wad, screen); openingSequence = new OpeningSequenceRenderer(resource.Wad, screen, this); autoMap = new AutoMapRenderer(screen); }
public AutoMapRenderer(Wad wad, DrawScreen screen) { this.screen = screen; scale = screen.Width / 320; amWidth = screen.Width; amHeight = screen.Height - scale * StatusBarRenderer.Height; ppu = (float)scale / 16; markNumbers = new Patch[10]; for (var i = 0; i < markNumbers.Length; i++) { markNumbers[i] = Patch.FromWad(wad, "AMMNUM" + i); } }
public IntermissionRenderer(Wad wad, DrawScreen screen) { this.wad = wad; this.screen = screen; cache = new PatchCache(wad); minus = Patch.FromWad(wad, "WIMINUS"); numbers = new Patch[10]; for (var i = 0; i < 10; i++) { numbers[i] = Patch.FromWad(wad, "WINUM" + i); } percent = Patch.FromWad(wad, "WIPCNT"); colon = Patch.FromWad(wad, "WICOLON"); scale = screen.Width / 320; }
public SfmlRenderer(Config config, RenderWindow window, CommonResource resource) { try { Console.Write("Initialize renderer: "); this.config = config; config.video_gamescreensize = Math.Clamp(config.video_gamescreensize, 0, MaxWindowSize); config.video_gammacorrection = Math.Clamp(config.video_gammacorrection, 0, MaxGammaCorrectionLevel); sfmlWindow = window; palette = resource.Palette; sfmlWindowWidth = (int)window.Size.X; sfmlWindowHeight = (int)window.Size.Y; if (config.video_highresolution) { screen = new DrawScreen(resource.Wad, 640, 400); sfmlTextureWidth = 512; sfmlTextureHeight = 1024; } else { screen = new DrawScreen(resource.Wad, 320, 200); sfmlTextureWidth = 320; sfmlTextureHeight = 200; } sfmlTextureData = new byte[4 * screen.Width * screen.Height]; sfmlTexture = new SFML.Graphics.Texture((uint)sfmlTextureWidth, (uint)sfmlTextureHeight); sfmlSprite = new SFML.Graphics.Sprite(sfmlTexture); sfmlSprite.Position = new Vector2f(0, 0); sfmlSprite.Rotation = 90; var scaleX = (float)sfmlWindowWidth / screen.Width; var scaleY = (float)sfmlWindowHeight / screen.Height; sfmlSprite.Scale = new Vector2f(scaleY, -scaleX); sfmlStates = new RenderStates(BlendMode.None); menu = new MenuRenderer(resource.Wad, screen); threeD = new ThreeDRenderer(resource, screen, config.video_gamescreensize); statusBar = new StatusBarRenderer(resource.Wad, screen); intermission = new IntermissionRenderer(resource.Wad, screen); openingSequence = new OpeningSequenceRenderer(resource.Wad, screen, this); autoMap = new AutoMapRenderer(resource.Wad, screen); finale = new FinaleRenderer(resource, screen); pause = Patch.FromWad(resource.Wad, "M_PAUSE"); var scale = screen.Width / 320; wipeBandWidth = 2 * scale; wipeBandCount = screen.Width / wipeBandWidth + 1; wipeHeight = screen.Height / scale; wipeBuffer = new byte[screen.Data.Length]; palette.ResetColors(gammaCorrectionParameters[config.video_gammacorrection]); Console.WriteLine("OK"); } catch (Exception e) { Console.WriteLine("Failed"); Dispose(); ExceptionDispatchInfo.Throw(e); } }
public OpeningSequenceRenderer(Wad wad, DrawScreen screen, SfmlRenderer parent) { titlePic = Patch.FromWad("TITLEPIC", wad); this.screen = screen; this.parent = parent; }
public StatusBarRenderer(Wad wad, DrawScreen screen) { this.screen = screen; patches = new Patches(wad); scale = screen.Width / 320; wReady = new NumberWidget(); wReady.Patches = patches.TallNumbers; wReady.Width = ST_AMMOWIDTH; wReady.X = ST_AMMOX; wReady.Y = ST_AMMOY; wHealth = new PercentWidget(); wHealth.NumberWidget.Patches = patches.TallNumbers; wHealth.NumberWidget.Width = 3; wHealth.NumberWidget.X = ST_HEALTHX; wHealth.NumberWidget.Y = ST_HEALTHY; wHealth.Patch = patches.TallPercent; wArmor = new PercentWidget(); wArmor.NumberWidget.Patches = patches.TallNumbers; wArmor.NumberWidget.Width = 3; wArmor.NumberWidget.X = ST_ARMORX; wArmor.NumberWidget.Y = ST_ARMORY; wArmor.Patch = patches.TallPercent; wAmmo = new NumberWidget[(int)AmmoType.Count]; wMaxAmmo = new NumberWidget[(int)AmmoType.Count]; wAmmo[0] = new NumberWidget(); wAmmo[0].Patches = patches.ShortNumbers; wAmmo[0].Width = ST_AMMO0WIDTH; wAmmo[0].X = ST_AMMO0X; wAmmo[0].Y = ST_AMMO0Y; wAmmo[1] = new NumberWidget(); wAmmo[1].Patches = patches.ShortNumbers; wAmmo[1].Width = ST_AMMO1WIDTH; wAmmo[1].X = ST_AMMO1X; wAmmo[1].Y = ST_AMMO1Y; wAmmo[2] = new NumberWidget(); wAmmo[2].Patches = patches.ShortNumbers; wAmmo[2].Width = ST_AMMO2WIDTH; wAmmo[2].X = ST_AMMO2X; wAmmo[2].Y = ST_AMMO2Y; wAmmo[3] = new NumberWidget(); wAmmo[3].Patches = patches.ShortNumbers; wAmmo[3].Width = ST_AMMO3WIDTH; wAmmo[3].X = ST_AMMO3X; wAmmo[3].Y = ST_AMMO3Y; wMaxAmmo[0] = new NumberWidget(); wMaxAmmo[0].Patches = patches.ShortNumbers; wMaxAmmo[0].Width = ST_MAXAMMO0WIDTH; wMaxAmmo[0].X = ST_MAXAMMO0X; wMaxAmmo[0].Y = ST_MAXAMMO0Y; wMaxAmmo[1] = new NumberWidget(); wMaxAmmo[1].Patches = patches.ShortNumbers; wMaxAmmo[1].Width = ST_MAXAMMO1WIDTH; wMaxAmmo[1].X = ST_MAXAMMO1X; wMaxAmmo[1].Y = ST_MAXAMMO1Y; wMaxAmmo[2] = new NumberWidget(); wMaxAmmo[2].Patches = patches.ShortNumbers; wMaxAmmo[2].Width = ST_MAXAMMO2WIDTH; wMaxAmmo[2].X = ST_MAXAMMO2X; wMaxAmmo[2].Y = ST_MAXAMMO2Y; wMaxAmmo[3] = new NumberWidget(); wMaxAmmo[3].Patches = patches.ShortNumbers; wMaxAmmo[3].Width = ST_MAXAMMO3WIDTH; wMaxAmmo[3].X = ST_MAXAMMO3X; wMaxAmmo[3].Y = ST_MAXAMMO3Y; // weapons owned wArms = new MultIconWidget[6]; for (var i = 0; i < wArms.Length; i++) { wArms[i] = new MultIconWidget(); wArms[i].X = ST_ARMSX + (i % 3) * ST_ARMSXSPACE; wArms[i].Y = ST_ARMSY + (i / 3) * ST_ARMSYSPACE; wArms[i].Patches = patches.Arms[i]; } wFrags = new NumberWidget(); wFrags.Patches = patches.TallNumbers; wFrags.Width = ST_FRAGSWIDTH; wFrags.X = ST_FRAGSX; wFrags.Y = ST_FRAGSY; }
public StatusBarRenderer(Wad wad, DrawScreen screen) { this.screen = screen; patches = new Patches(wad); scale = screen.Width / 320; ready = new NumberWidget(); ready.Patches = patches.TallNumbers; ready.Width = ammoWidth; ready.X = ammoX; ready.Y = ammoY; health = new PercentWidget(); health.NumberWidget.Patches = patches.TallNumbers; health.NumberWidget.Width = 3; health.NumberWidget.X = healthX; health.NumberWidget.Y = healthY; health.Patch = patches.TallPercent; armor = new PercentWidget(); armor.NumberWidget.Patches = patches.TallNumbers; armor.NumberWidget.Width = 3; armor.NumberWidget.X = armorX; armor.NumberWidget.Y = armorY; armor.Patch = patches.TallPercent; ammo = new NumberWidget[(int)AmmoType.Count]; ammo[0] = new NumberWidget(); ammo[0].Patches = patches.ShortNumbers; ammo[0].Width = ammo0Width; ammo[0].X = ammo0X; ammo[0].Y = ammo0Y; ammo[1] = new NumberWidget(); ammo[1].Patches = patches.ShortNumbers; ammo[1].Width = ammo1Width; ammo[1].X = ammo1X; ammo[1].Y = ammo1Y; ammo[2] = new NumberWidget(); ammo[2].Patches = patches.ShortNumbers; ammo[2].Width = ammo2Width; ammo[2].X = ammo2X; ammo[2].Y = ammo2Y; ammo[3] = new NumberWidget(); ammo[3].Patches = patches.ShortNumbers; ammo[3].Width = ammo3Wdth; ammo[3].X = ammo3X; ammo[3].Y = ammo3Y; maxAmmo = new NumberWidget[(int)AmmoType.Count]; maxAmmo[0] = new NumberWidget(); maxAmmo[0].Patches = patches.ShortNumbers; maxAmmo[0].Width = maxAmmo0Width; maxAmmo[0].X = maxAmmo0X; maxAmmo[0].Y = maxAmmo0Y; maxAmmo[1] = new NumberWidget(); maxAmmo[1].Patches = patches.ShortNumbers; maxAmmo[1].Width = maxAmmo1Width; maxAmmo[1].X = maxAmmo1X; maxAmmo[1].Y = maxAmmo1Y; maxAmmo[2] = new NumberWidget(); maxAmmo[2].Patches = patches.ShortNumbers; maxAmmo[2].Width = maxAmmo2Width; maxAmmo[2].X = maxAmmo2X; maxAmmo[2].Y = maxAmmo2Y; maxAmmo[3] = new NumberWidget(); maxAmmo[3].Patches = patches.ShortNumbers; maxAmmo[3].Width = maxAmmo3Width; maxAmmo[3].X = maxAmmo3X; maxAmmo[3].Y = maxAmmo3Y; weapons = new MultIconWidget[6]; for (var i = 0; i < weapons.Length; i++) { weapons[i] = new MultIconWidget(); weapons[i].X = armsX + (i % 3) * armsSpaceX; weapons[i].Y = armsY + (i / 3) * armsSpaceY; weapons[i].Patches = patches.Arms[i]; } frags = new NumberWidget(); frags.Patches = patches.TallNumbers; frags.Width = fragsWidth; frags.X = fragsX; frags.Y = fragsY; keys = new MultIconWidget[3]; keys[0] = new MultIconWidget(); keys[0].X = key0X; keys[0].Y = key0Y; keys[0].Patches = patches.Keys; keys[1] = new MultIconWidget(); keys[1].X = key1X; keys[1].Y = key1Y; keys[1].Patches = patches.Keys; keys[2] = new MultIconWidget(); keys[2].X = key2X; keys[2].Y = key2Y; keys[2].Patches = patches.Keys; }