mirror of
https://git.do.srb2.org/STJr/ZoneBuilder.git
synced 2025-02-10 17:51:17 +00:00
Classic modes: fixed a problem where "test from cursor position" wasn't working correctly when there was no player 1 start in the map and the last edited thing had its argument 0 set. Fixes #603
This commit is contained in:
parent
199108ba64
commit
e13c836344
2 changed files with 36 additions and 4 deletions
|
@ -724,7 +724,10 @@ namespace CodeImp.DoomBuilder.Config
|
|||
defaultthingflags = new List<string>(setflags);
|
||||
}
|
||||
|
||||
// This applies default settings to a thing
|
||||
/// <summary>
|
||||
/// This applies the settings of the last edited thing to the given thing.
|
||||
/// </summary>
|
||||
/// <param name="t">Thing to apply the settings to</param>
|
||||
public void ApplyDefaultThingSettings(Thing t)
|
||||
{
|
||||
t.FullType = defaultthingtype;
|
||||
|
@ -742,7 +745,37 @@ namespace CodeImp.DoomBuilder.Config
|
|||
t.Args[4] = (int)tti.Args[4].DefaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Applies clean thing settings to the given thing, with the flags and aruments set in the game's config.
|
||||
/// </summary>
|
||||
/// <param name="t">Thing to apply the settings to</param>
|
||||
/// <param name="type">Optional thing type. If not set the current thing type will be used, otherwise the type will be changed and used</param>
|
||||
public void ApplyCleanThingSettings(Thing t, int type = 0)
|
||||
{
|
||||
if (type > 0)
|
||||
t.Type = type;
|
||||
|
||||
// Remove all current flags
|
||||
foreach (string flag in t.GetFlags().Keys)
|
||||
t.SetFlag(flag, false);
|
||||
|
||||
// Add default flags
|
||||
foreach(string flag in General.Map.Config.DefaultThingFlags)
|
||||
t.SetFlag(flag, true);
|
||||
|
||||
// Set default arguments
|
||||
ThingTypeInfo tti = General.Map.Data.GetThingInfoEx(t.Type);
|
||||
if (tti != null)
|
||||
{
|
||||
t.Args[0] = (int)tti.Args[0].DefaultValue;
|
||||
t.Args[1] = (int)tti.Args[1].DefaultValue;
|
||||
t.Args[2] = (int)tti.Args[2].DefaultValue;
|
||||
t.Args[3] = (int)tti.Args[3].DefaultValue;
|
||||
t.Args[4] = (int)tti.Args[4].DefaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
// This attempts to find the default drawing settings
|
||||
public void FindDefaultDrawSettings()
|
||||
{
|
||||
|
|
|
@ -760,8 +760,7 @@ namespace CodeImp.DoomBuilder.Editing
|
|||
{
|
||||
// We have to ignore property changes, otherwise the undo manager will try to record the changes
|
||||
General.Map.UndoRedo.IgnorePropChanges = true;
|
||||
General.Settings.ApplyDefaultThingSettings(start);
|
||||
start.Type = 1;
|
||||
General.Settings.ApplyCleanThingSettings(start, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue