Merge remote-tracking branch 'udb/master'

This commit is contained in:
spherallic 2023-09-20 21:04:54 +02:00
commit 9046f6a4f7
5 changed files with 14 additions and 5 deletions

View file

@ -65,7 +65,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
protected bool autoclosedrawing; //mxd. Finish drawing when new points and existing geometry form a closed shape
protected bool drawingautoclosed; //mxd
protected bool showguidelines; //mxd
protected bool placethingsatvertices; //sphere: place things at vertices?
protected bool placethingsatvertices;
//mxd. Map area bounds
private Line2D top, bottom, left, right;

0
Source/Plugins/BuilderModes/ClassicModes/ThingsMode.cs Executable file → Normal file
View file

View file

@ -4416,7 +4416,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
{
General.Map.VisualCamera.Position = visualThings[0].CenterV3D; //position at thing
General.Map.VisualCamera.AngleXY = t.Angle - Angle2D.PI;
General.Map.VisualCamera.AngleZ = Angle2D.PI;
if (General.Map.UDMF)
General.Map.VisualCamera.AngleZ = Angle2D.DegToRad(t.Pitch) + Angle2D.PI;
else
General.Map.VisualCamera.AngleZ = Angle2D.PI;
}
}
@ -4864,8 +4868,13 @@ namespace CodeImp.DoomBuilder.BuilderModes
foreach (Thing t in things)
{
t.Rotate(General.Map.VisualCamera.AngleXY - Angle2D.PI);
t.SetPitch((int)Angle2D.RadToDeg(General.Map.VisualCamera.AngleZ - Angle2D.PI));
if (General.Map.UDMF)
t.SetPitch((int)Angle2D.RadToDeg(General.Map.VisualCamera.AngleZ - Angle2D.PI));
((BaseVisualThing)allthings[t]).Rebuild();
General.Interface.DisplayStatus(StatusType.Action, $"Applied camera rotation and pitch to {things.Count} thing{(things.Count == 1 ? "" : "s")}.");
}
}

View file

@ -331,8 +331,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
// Determine sprite size and offset
float radius = sprite.ScaledWidth * 0.5f;
float height = sprite.ScaledHeight;
offsets.x = radius - (sprite.OffsetX == int.MinValue ? 0 : sprite.OffsetX);
offsets.y = (sprite.OffsetY == int.MinValue ? 0 : sprite.OffsetY) - height;
offsets.x = radius - (sprite.OffsetX == int.MinValue ? 0 : sprite.OffsetX) * sprite.Scale.x;
offsets.y = (sprite.OffsetY == int.MinValue ? 0 : sprite.OffsetY) * sprite.Scale.y - height;
// Scale by thing type/actor scale
// We do this after the offset x/y determination above, because that is entirely in sprite pixels space

View file