From 696b067095bc994aea3ed88856eeff5e54017867 Mon Sep 17 00:00:00 2001
From: codeimp <codeimp@e0d998f2-2e9b-42fe-843d-47128df60a06>
Date: Sun, 2 Aug 2009 18:21:53 +0000
Subject: [PATCH] @ modified constructor usage of ResourceImage class for more
 versatile use

---
 Source/Core/Data/DataManager.cs     | 18 +++++++++---------
 Source/Core/Data/ResourceImage.cs   | 15 +++++++++++++--
 Source/Core/Rendering/D3DDevice.cs  |  2 +-
 Source/Core/Rendering/Renderer2D.cs |  2 +-
 4 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/Source/Core/Data/DataManager.cs b/Source/Core/Data/DataManager.cs
index ce8e32fc8..c828d3d81 100644
--- a/Source/Core/Data/DataManager.cs
+++ b/Source/Core/Data/DataManager.cs
@@ -147,19 +147,19 @@ namespace CodeImp.DoomBuilder.Data
 			GC.SuppressFinalize(this);
 
 			// Load special images
-			missingtexture3d = new ResourceImage("MissingTexture3D.png");
+			missingtexture3d = new ResourceImage("CodeImp.DoomBuilder.Resources.MissingTexture3D.png");
 			missingtexture3d.LoadImage();
-			unknowntexture3d = new ResourceImage("UnknownTexture3D.png");
+			unknowntexture3d = new ResourceImage("CodeImp.DoomBuilder.Resources.UnknownTexture3D.png");
 			unknowntexture3d.LoadImage();
-			hourglass3d = new ResourceImage("Hourglass3D.png");
+			hourglass3d = new ResourceImage("CodeImp.DoomBuilder.Resources.Hourglass3D.png");
 			hourglass3d.LoadImage();
-			crosshair = new ResourceImage("Crosshair.png");
+			crosshair = new ResourceImage("CodeImp.DoomBuilder.Resources.Crosshair.png");
 			crosshair.LoadImage();
-			crosshairbusy = new ResourceImage("CrosshairBusy.png");
+			crosshairbusy = new ResourceImage("CodeImp.DoomBuilder.Resources.CrosshairBusy.png");
 			crosshairbusy.LoadImage();
-			thingbox = new ResourceImage("ThingBox.png");
+			thingbox = new ResourceImage("CodeImp.DoomBuilder.Resources.ThingBox.png");
 			thingbox.LoadImage();
-			whitetexture = new ResourceImage("White.png");
+			whitetexture = new ResourceImage("CodeImp.DoomBuilder.Resources.White.png");
 			whitetexture.UseColorCorrection = false;
 			whitetexture.LoadImage();
 			whitetexture.CreateTexture();
@@ -1091,14 +1091,14 @@ namespace CodeImp.DoomBuilder.Data
 			// Add some internal resources
 			if(!internalsprites.ContainsKey("nothing"))
 			{
-				ImageData img = new ResourceImage("Nothing.png");
+				ImageData img = new ResourceImage("CodeImp.DoomBuilder.Resources.Nothing.png");
 				img.LoadImage();
 				internalsprites.Add("nothing", img);
 			}
 			
 			if(!internalsprites.ContainsKey("unknownthing"))
 			{
-				ImageData img = new ResourceImage("UnknownThing.png");
+				ImageData img = new ResourceImage("CodeImp.DoomBuilder.Resources.UnknownThing.png");
 				img.LoadImage();
 				internalsprites.Add("unknownthing", img);
 			}
diff --git a/Source/Core/Data/ResourceImage.cs b/Source/Core/Data/ResourceImage.cs
index 0e70d427e..bddef9e99 100644
--- a/Source/Core/Data/ResourceImage.cs
+++ b/Source/Core/Data/ResourceImage.cs
@@ -20,6 +20,7 @@ using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Globalization;
+using System.Reflection;
 using System.Text;
 using System.Drawing;
 using System.Drawing.Imaging;
@@ -33,16 +34,26 @@ namespace CodeImp.DoomBuilder.Data
 {
 	public class ResourceImage : ImageData
 	{
+		#region ================== Variables
+
+		// Image source
+		private Assembly assembly;
+		private string resourcename;
+
+		#endregion
+
 		#region ================== Constructor / Disposer
 
 		// Constructor
 		public ResourceImage(string resourcename)
 		{
 			// Initialize
+			this.assembly = Assembly.GetCallingAssembly();
+			this.resourcename = resourcename;
 			SetName(resourcename);
 
 			// Temporarily load resource from memory
-			Stream bitmapdata = General.ThisAssembly.GetManifestResourceStream("CodeImp.DoomBuilder.Resources." + Name);
+			Stream bitmapdata = assembly.GetManifestResourceStream(resourcename);
 			Bitmap bmp = (Bitmap)Image.FromStream(bitmapdata);
 
 			// Get width and height from image
@@ -74,7 +85,7 @@ namespace CodeImp.DoomBuilder.Data
 				// because the resources this loads are in the assembly.
 				
 				// Get resource from memory
-				bitmapdata = General.ThisAssembly.GetManifestResourceStream("CodeImp.DoomBuilder.Resources." + Name);
+				bitmapdata = assembly.GetManifestResourceStream(resourcename);
 				if(bitmap != null) bitmap.Dispose();
 				bitmap = (Bitmap)Image.FromStream(bitmapdata);
 				bitmapdata.Dispose();
diff --git a/Source/Core/Rendering/D3DDevice.cs b/Source/Core/Rendering/D3DDevice.cs
index f5d87ee49..2540e22a9 100644
--- a/Source/Core/Rendering/D3DDevice.cs
+++ b/Source/Core/Rendering/D3DDevice.cs
@@ -319,7 +319,7 @@ namespace CodeImp.DoomBuilder.Rendering
 			// Font
 			postfilter = Filter.Box;
 			font = new TextFont();
-			fonttexture = new ResourceImage("Font.png");
+			fonttexture = new ResourceImage("CodeImp.DoomBuilder.Resources.Font.png");
 			fonttexture.LoadImage();
 			fonttexture.MipMapLevels = 2;
 			fonttexture.CreateTexture();
diff --git a/Source/Core/Rendering/Renderer2D.cs b/Source/Core/Rendering/Renderer2D.cs
index 0d0de3469..9f89976cc 100644
--- a/Source/Core/Rendering/Renderer2D.cs
+++ b/Source/Core/Rendering/Renderer2D.cs
@@ -154,7 +154,7 @@ namespace CodeImp.DoomBuilder.Rendering
 			thingtexture = new ResourceImage[NUM_THING_TEXTURES];
 			for(int i = 0; i < NUM_THING_TEXTURES; i++)
 			{
-				thingtexture[i] = new ResourceImage("Thing2D_" + i.ToString(CultureInfo.InvariantCulture) + ".png");
+				thingtexture[i] = new ResourceImage("CodeImp.DoomBuilder.Resources.Thing2D_" + i.ToString(CultureInfo.InvariantCulture) + ".png");
 				thingtexture[i].UseColorCorrection = false;
 				thingtexture[i].LoadImage();
 				thingtexture[i].CreateTexture();
-- 
GitLab