Of course, I forgot CnC was 16-bit. IIRC, 8-bits make up one byte, 16-bits would be 2 bytes, and 32 would be 4. Makes sense now. Thank you, Nyer.
Oh, and I just realized that qword = quad-word. Obvious, but not as obvious when you don't know what a dword is.

Edit:
public class MultiString
{
public string Eng = ""; //!HACK
public string Ger = ""; //!HACK
public string Spa = ""; //!HACK
public string Fre = ""; //!HACK
public string String
{
get
{
string aaa = "";
BasicClass.Languages.ForEach(delegate(String lang)
{
string bbb = GetStringLang(lang);
if (bbb != "")
{
aaa = bbb;
}
});
if (aaa != "")
{
return GetStringLang(aaa);
}
if (BasicClass.Production)
{
return "";
}
else
{
return "*INVALID*";
}
}
}
public string GetStringLang(string lang)
{
if (lang == "Eng")
{
return Eng;
}
else if (lang == "Ger")
{
return Ger;
}
else if (lang == "Spa")
{
return Spa;
}
else if (lang == "Fre")
{
return Fre;
}
if (BasicClass.Production)
{
return "";
}
else
{
return "*INVALID*";
}
}
}That get{} construct (is that the term?) seems really handy, though admittedly I see no point in it as opposed to a procedure. However, what I really want is some way to have a list formatted like this:
"Eng" = "Hi!",
"Ger" = "Guten tag or whatever",
"Fre" = "However the heck those Fremen say hello",
"Spa" = "iHola senior!" //As you can tell, I got a D in Spanish. Mainly because I can't remember where that darn... "marky thing" goes...
And return the later part based off the former. In BYOND, you make the list like this:
var whatever = list("a" = "c","b" = "d")
and access the later part by either going:
whatever[1] //1-indexed, IIRC
or:
whatever["a"]
with it returning null whenever you try to access something that isn't there. Is there anything that easy to use in C#, or am I going to have to have 2 lists, loop through the first list hoping to find string A, and if it's there, return the string at the same position in list B? Because if not, I'll make an API for that (in the last couple of days, I've done lots of stuff under the hood, but it's mainly been stuff like making my APIs easier to use and more child-proof; defensive programming is the way to go, because you never know when you'll be reduced to the intelligence level of a garden hose).
Edit2: Are all the mouse cursors displayed from the center with the exception of the generic mouse, or is there some sort of table I'll need to mimic?
Edit3: This is what I'm getting for conquer.mix
NumFiles: 266
DataSize: 50690
But it should be 2459769 instead of 50690. Can you figure out what's wrong? This is conquer.mix, by the way.
int NumFiles = (mixfile[1] * 256) + mixfile[0];
Console.WriteLine("NumFiles: " + NumFiles);
int DataSize = (mixfile[5] * (256 * 3)) + (mixfile[4] * (256 * 2)) + (mixfile[3] * 256) + mixfile[2];
Console.WriteLine("DataSize: " + DataSize);