The name of custom Things can now be specified with the $Name parameter.

This commit is contained in:
MascaraSnake 2016-04-07 00:15:35 +02:00
parent 1be3ecb922
commit c3e08eb1ef
2 changed files with 18 additions and 6 deletions

View file

@ -86,6 +86,7 @@ namespace CodeImp.DoomBuilder.SRB2
{
if (!token.StartsWith("mobjinfo[") || !token.EndsWith("]")) continue;
string objname = token.Substring(9);
string name = objname;
string sprite = DataManager.INTERNAL_PREFIX + "unknownthing";
string[] states = new string[8];
int mapThingNum = -1;
@ -118,6 +119,11 @@ namespace CodeImp.DoomBuilder.SRB2
if (finished) break;
switch (token)
{
case "$Name":
SkipWhitespace(true);
token = ReadToken();
name = token;
break;
case "$Sprite":
SkipWhitespace(true);
token = ReadToken();
@ -226,7 +232,7 @@ namespace CodeImp.DoomBuilder.SRB2
if (mapThingNum > 0)
{
SRB2Object o = new SRB2Object(objname, sprite, states, mapThingNum, radius, height);
SRB2Object o = new SRB2Object(name, sprite, states, mapThingNum, radius, height);
if (objects.ContainsKey(objname))
objects[objname] = o;
else

View file

@ -135,9 +135,10 @@ namespace CodeImp.DoomBuilder.SRB2
return true;
}*/
private bool ParseObject(string name)
private bool ParseObject(string objname)
{
if (name == null) return false;
if (objname == null) return false;
string name = objname;
string sprite = DataManager.INTERNAL_PREFIX + "unknownthing";
string[] states = new string[8];
int mapThingNum = -1;
@ -160,6 +161,11 @@ namespace CodeImp.DoomBuilder.SRB2
}
ReportError("The sprite \"" + spritename + "\" assigned by the \"$sprite\" property does not exist");
}
if (line.StartsWith("#$Name "))
{
name = line.Substring(7);
continue;
}
if (line.StartsWith("#")) continue;
line = RemoveComments(line);
string[] tokens = line.Split(new char[] { '=' });
@ -225,10 +231,10 @@ namespace CodeImp.DoomBuilder.SRB2
if (mapThingNum > 0)
{
SRB2Object o = new SRB2Object(name, sprite, states, mapThingNum, radius, height);
if (objects.ContainsKey(name))
objects[name] = o;
if (objects.ContainsKey(objname))
objects[objname] = o;
else
objects.Add(name, o);
objects.Add(objname, o);
}
return true;