mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-05-02 06:51:01 +00:00
Fixed: ZScript: scale property should be expanded into xscale and yscale; Fixed: if actor's Spawn state starts with TNT1, first non-TNT1 frame will be used
This commit is contained in:
parent
87fdd67fd6
commit
55b24eef39
6 changed files with 47 additions and 10 deletions
|
@ -30,6 +30,6 @@ using CodeImp.DoomBuilder;
|
||||||
// Build Number
|
// Build Number
|
||||||
// Revision
|
// Revision
|
||||||
//
|
//
|
||||||
[assembly: AssemblyVersion("2.3.0.2833")]
|
[assembly: AssemblyVersion("2.3.0.2834")]
|
||||||
[assembly: NeutralResourcesLanguageAttribute("en")]
|
[assembly: NeutralResourcesLanguageAttribute("en")]
|
||||||
[assembly: AssemblyHash("a1dc4bb")]
|
[assembly: AssemblyHash("87fdd67")]
|
||||||
|
|
|
@ -45,7 +45,7 @@ namespace CodeImp.DoomBuilder.ZDoom
|
||||||
parser.DataStream.Seek(-(lasttoken.Length + 1), SeekOrigin.Current);
|
parser.DataStream.Seek(-(lasttoken.Length + 1), SeekOrigin.Current);
|
||||||
|
|
||||||
// Done here
|
// Done here
|
||||||
return;
|
goto endofallthings;
|
||||||
}
|
}
|
||||||
//mxd. Start of inner scope?
|
//mxd. Start of inner scope?
|
||||||
else if (token == "{")
|
else if (token == "{")
|
||||||
|
@ -69,7 +69,7 @@ namespace CodeImp.DoomBuilder.ZDoom
|
||||||
parser.DataStream.Seek(-1, SeekOrigin.Current);
|
parser.DataStream.Seek(-1, SeekOrigin.Current);
|
||||||
|
|
||||||
// Done here
|
// Done here
|
||||||
return;
|
goto endofallthings;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -97,7 +97,7 @@ namespace CodeImp.DoomBuilder.ZDoom
|
||||||
parser.DataStream.Seek(-(token.Length + 1), SeekOrigin.Current);
|
parser.DataStream.Seek(-(token.Length + 1), SeekOrigin.Current);
|
||||||
|
|
||||||
// Done here
|
// Done here
|
||||||
return;
|
goto endofallthings;
|
||||||
}
|
}
|
||||||
|
|
||||||
// No first sprite yet?
|
// No first sprite yet?
|
||||||
|
@ -158,7 +158,11 @@ namespace CodeImp.DoomBuilder.ZDoom
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!parser.NextTokenIs(")")) return;
|
if (!parser.NextTokenIs(")"))
|
||||||
|
{
|
||||||
|
parser.ReportError("Expected closing parenthesis in Light()");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//mxd. Inner scope start. Step back and reparse using parent loop
|
//mxd. Inner scope start. Step back and reparse using parent loop
|
||||||
else if (t == "{")
|
else if (t == "{")
|
||||||
|
@ -191,7 +195,7 @@ namespace CodeImp.DoomBuilder.ZDoom
|
||||||
parser.DataStream.Seek(-1, SeekOrigin.Current);
|
parser.DataStream.Seek(-1, SeekOrigin.Current);
|
||||||
|
|
||||||
// Done here
|
// Done here
|
||||||
return;
|
goto endofallthings;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read next token
|
// Read next token
|
||||||
|
@ -202,6 +206,11 @@ namespace CodeImp.DoomBuilder.ZDoom
|
||||||
|
|
||||||
lasttoken = token;
|
lasttoken = token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// return
|
||||||
|
endofallthings:
|
||||||
|
|
||||||
|
TrimLeft();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -71,6 +71,24 @@ namespace CodeImp.DoomBuilder.ZDoom
|
||||||
|
|
||||||
#region ================== Methods
|
#region ================== Methods
|
||||||
|
|
||||||
|
// This removes useless images from the start of the state (TNT1)
|
||||||
|
protected void TrimLeft() // :)
|
||||||
|
{
|
||||||
|
// postprocess: if there are only TNT1 sprites, do nothing. however, if there were normal sprites as well, use these.
|
||||||
|
int firstNonEmpty = -1;
|
||||||
|
for (int i = 0; i < sprites.Count; i++)
|
||||||
|
{
|
||||||
|
if (!sprites[i].Sprite.StartsWith("TNT1"))
|
||||||
|
{
|
||||||
|
firstNonEmpty = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (firstNonEmpty > 0)
|
||||||
|
sprites.RemoveRange(0, firstNonEmpty);
|
||||||
|
}
|
||||||
|
|
||||||
// This finds the first valid sprite and returns it
|
// This finds the first valid sprite and returns it
|
||||||
public FrameInfo GetSprite(int index)
|
public FrameInfo GetSprite(int index)
|
||||||
{
|
{
|
||||||
|
|
|
@ -118,7 +118,15 @@ namespace CodeImp.DoomBuilder.ZDoom
|
||||||
|
|
||||||
//parser.LogWarning(string.Format("{0} = [{1}]", propertyname, string.Join(", ", propertyvalues.ToArray())));
|
//parser.LogWarning(string.Format("{0} = [{1}]", propertyname, string.Join(", ", propertyvalues.ToArray())));
|
||||||
// set property
|
// set property
|
||||||
|
// translate "scale" to x and y scale
|
||||||
|
if (propertyname == "scale")
|
||||||
|
{
|
||||||
|
props["xscale"] = props["yscale"] = propertyvalues;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
props[propertyname] = propertyvalues;
|
props[propertyname] = propertyvalues;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,7 +82,7 @@ namespace CodeImp.DoomBuilder.ZDoom
|
||||||
if (token.Type == ZScriptTokenType.CloseCurly)
|
if (token.Type == ZScriptTokenType.CloseCurly)
|
||||||
{
|
{
|
||||||
stream.Position--;
|
stream.Position--;
|
||||||
return; // done
|
break; // done
|
||||||
}
|
}
|
||||||
else if (token.Type == ZScriptTokenType.Identifier)
|
else if (token.Type == ZScriptTokenType.Identifier)
|
||||||
{
|
{
|
||||||
|
@ -299,6 +299,8 @@ namespace CodeImp.DoomBuilder.ZDoom
|
||||||
} // if identifier
|
} // if identifier
|
||||||
} // frame parsing loop (inner)
|
} // frame parsing loop (inner)
|
||||||
} // state parsing loop (outer)
|
} // state parsing loop (outer)
|
||||||
|
|
||||||
|
TrimLeft();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,5 +29,5 @@ using System.Resources;
|
||||||
// Build Number
|
// Build Number
|
||||||
// Revision
|
// Revision
|
||||||
//
|
//
|
||||||
[assembly: AssemblyVersion("2.3.0.2833")]
|
[assembly: AssemblyVersion("2.3.0.2834")]
|
||||||
[assembly: NeutralResourcesLanguageAttribute("en")]
|
[assembly: NeutralResourcesLanguageAttribute("en")]
|
||||||
|
|
Loading…
Reference in a new issue