merged plugin system into trunk
|
@ -1,16 +1,34 @@
|
||||||
|
|
||||||
shortcuts
|
shortcuts
|
||||||
{
|
{
|
||||||
closemap = 0;
|
builder_closemap = 0;
|
||||||
configuration = 116;
|
builder_configuration = 117;
|
||||||
newmap = 131150;
|
builder_newmap = 131150;
|
||||||
openmap = 131151;
|
builder_openmap = 131151;
|
||||||
scrolleast = 39;
|
builder_scrolleast = 39;
|
||||||
scrollnorth = 38;
|
builder_scrollnorth = 38;
|
||||||
scrollsouth = 40;
|
builder_scrollsouth = 40;
|
||||||
scrollwest = 37;
|
builder_scrollwest = 37;
|
||||||
zoomin = 65530;
|
builder_zoomin = 65530;
|
||||||
zoomout = 65531;
|
builder_zoomout = 65531;
|
||||||
|
builder_preferences = 116;
|
||||||
|
builder_savemap = 0;
|
||||||
|
builder_savemapas = 0;
|
||||||
|
builder_savemapinto = 0;
|
||||||
|
builder_mapoptions = 113;
|
||||||
|
builder_reloadresources = 119;
|
||||||
|
builder_testaction = 123;
|
||||||
|
builder_cancelmode = 27;
|
||||||
|
builder_gridsetup = 71;
|
||||||
|
builder_undo = 131162;
|
||||||
|
builder_redo = 131161;
|
||||||
|
builder_togglesnap = 0;
|
||||||
|
builder_clearselection = 67;
|
||||||
|
builder_toggleautomerge = 0;
|
||||||
|
buildermodes_thingsmode = 84;
|
||||||
|
buildermodes_linedefsmode = 76;
|
||||||
|
buildermodes_verticesmode = 86;
|
||||||
|
buildermodes_sectorsmode = 83;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@ Microsoft Visual Studio Solution File, Format Version 9.00
|
||||||
# Visual Studio 2005
|
# Visual Studio 2005
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Builder", "Source\Builder.csproj", "{818B3D10-F791-4C3F-9AF5-BB2D0079B63C}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Builder", "Source\Builder.csproj", "{818B3D10-F791-4C3F-9AF5-BB2D0079B63C}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BuilderModes", "Source\BuilderModes\BuilderModes.csproj", "{B42D5AA0-F9A6-4234-9C4B-A05B11A64851}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
@ -13,6 +15,10 @@ Global
|
||||||
{818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|Any CPU.Build.0 = Release|Any CPU
|
{818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B42D5AA0-F9A6-4234-9C4B-A05B11A64851}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
BIN
Resources/Icons/WAuthor.png
Normal file
After Width: | Height: | Size: 601 B |
|
@ -69,16 +69,13 @@
|
||||||
<Compile Include="Data\SimpleTextureImage.cs" />
|
<Compile Include="Data\SimpleTextureImage.cs" />
|
||||||
<Compile Include="Data\SpriteImage.cs" />
|
<Compile Include="Data\SpriteImage.cs" />
|
||||||
<Compile Include="Data\TextureImage.cs" />
|
<Compile Include="Data\TextureImage.cs" />
|
||||||
<Compile Include="Editing\DragVerticesMode.cs" />
|
|
||||||
<Compile Include="Editing\EditMode.cs" />
|
<Compile Include="Editing\EditMode.cs" />
|
||||||
|
<Compile Include="Editing\EditModeAttribute.cs" />
|
||||||
|
<Compile Include="Editing\EditModeInfo.cs" />
|
||||||
<Compile Include="Editing\GridSetup.cs" />
|
<Compile Include="Editing\GridSetup.cs" />
|
||||||
<Compile Include="Editing\LinedefsMode.cs" />
|
|
||||||
<Compile Include="Editing\SectorsMode.cs" />
|
|
||||||
<Compile Include="Editing\ThingsMode.cs" />
|
|
||||||
<Compile Include="Editing\UndoGroup.cs" />
|
<Compile Include="Editing\UndoGroup.cs" />
|
||||||
<Compile Include="Editing\UndoManager.cs" />
|
<Compile Include="Editing\UndoManager.cs" />
|
||||||
<Compile Include="Editing\UndoSnapshot.cs" />
|
<Compile Include="Editing\UndoSnapshot.cs" />
|
||||||
<Compile Include="Editing\VerticesMode.cs" />
|
|
||||||
<Compile Include="Editing\ClassicMode.cs" />
|
<Compile Include="Editing\ClassicMode.cs" />
|
||||||
<Compile Include="Controls\ActionDelegate.cs" />
|
<Compile Include="Controls\ActionDelegate.cs" />
|
||||||
<Compile Include="Controls\Action.cs" />
|
<Compile Include="Controls\Action.cs" />
|
||||||
|
@ -169,6 +166,7 @@
|
||||||
<Compile Include="Interface\ImageSelectorControl.Designer.cs">
|
<Compile Include="Interface\ImageSelectorControl.Designer.cs">
|
||||||
<DependentUpon>ImageSelectorControl.cs</DependentUpon>
|
<DependentUpon>ImageSelectorControl.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Interface\IMainForm.cs" />
|
||||||
<Compile Include="Interface\LinedefEditForm.cs">
|
<Compile Include="Interface\LinedefEditForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -278,6 +276,8 @@
|
||||||
<Compile Include="Map\SidedefPart.cs" />
|
<Compile Include="Map\SidedefPart.cs" />
|
||||||
<Compile Include="Map\Thing.cs" />
|
<Compile Include="Map\Thing.cs" />
|
||||||
<Compile Include="Map\Vertex.cs" />
|
<Compile Include="Map\Vertex.cs" />
|
||||||
|
<Compile Include="Plugins\Plugin.cs" />
|
||||||
|
<Compile Include="Plugins\PluginManager.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Properties\Resources.Designer.cs">
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
|
@ -292,6 +292,8 @@
|
||||||
<Compile Include="Rendering\D3DShader.cs" />
|
<Compile Include="Rendering\D3DShader.cs" />
|
||||||
<Compile Include="Rendering\FlatVertex.cs" />
|
<Compile Include="Rendering\FlatVertex.cs" />
|
||||||
<Compile Include="Rendering\ID3DResource.cs" />
|
<Compile Include="Rendering\ID3DResource.cs" />
|
||||||
|
<Compile Include="Rendering\IRenderer2D.cs" />
|
||||||
|
<Compile Include="Rendering\IRenderer3D.cs" />
|
||||||
<Compile Include="Rendering\PixelColor.cs" />
|
<Compile Include="Rendering\PixelColor.cs" />
|
||||||
<Compile Include="Rendering\PixelColorBlock.cs" />
|
<Compile Include="Rendering\PixelColorBlock.cs" />
|
||||||
<Compile Include="Rendering\Plotter.cs" />
|
<Compile Include="Rendering\Plotter.cs" />
|
||||||
|
@ -349,13 +351,9 @@
|
||||||
<None Include="Resources\Grid2.png" />
|
<None Include="Resources\Grid2.png" />
|
||||||
<None Include="Resources\Hourglass.png" />
|
<None Include="Resources\Hourglass.png" />
|
||||||
<None Include="Resources\Filter.png" />
|
<None Include="Resources\Filter.png" />
|
||||||
<None Include="Resources\ThingsMode.png" />
|
|
||||||
<None Include="Resources\Status1.png" />
|
<None Include="Resources\Status1.png" />
|
||||||
<None Include="Resources\Status2.png" />
|
<None Include="Resources\Status2.png" />
|
||||||
<None Include="Resources\Status0.png" />
|
<None Include="Resources\Status0.png" />
|
||||||
<None Include="Resources\VerticesMode.png" />
|
|
||||||
<None Include="Resources\SectorsMode.png" />
|
|
||||||
<None Include="Resources\LinesMode.png" />
|
|
||||||
<None Include="Resources\ColorPick.png" />
|
<None Include="Resources\ColorPick.png" />
|
||||||
<None Include="Resources\Zoom.png" />
|
<None Include="Resources\Zoom.png" />
|
||||||
<None Include="Resources\Properties.png" />
|
<None Include="Resources\Properties.png" />
|
||||||
|
|
80
Source/BuilderModes/BuilderModes.csproj
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProductVersion>8.0.50727</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{B42D5AA0-F9A6-4234-9C4B-A05B11A64851}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>CodeImp.DoomBuilder.BuilderModes</RootNamespace>
|
||||||
|
<AssemblyName>BuilderModes</AssemblyName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\..\Build\Plugins\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\..\Build\Plugins\</OutputPath>
|
||||||
|
<DefineConstants>
|
||||||
|
</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Editing\DragVerticesMode.cs" />
|
||||||
|
<Compile Include="Editing\LinedefsMode.cs" />
|
||||||
|
<Compile Include="Editing\WAuthorMode.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Editing\SectorsMode.cs" />
|
||||||
|
<Compile Include="Editing\ThingsMode.cs" />
|
||||||
|
<Compile Include="Editing\VerticesMode.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Builder.csproj">
|
||||||
|
<Project>{818B3D10-F791-4C3F-9AF5-BB2D0079B63C}</Project>
|
||||||
|
<Name>Builder</Name>
|
||||||
|
<Private>False</Private>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Resources\Actions.cfg" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Resources\ThingsMode.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Resources\VerticesMode.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Resources\LinesMode.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Resources\SectorsMode.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Resources\WAuthor.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
|
@ -30,6 +30,7 @@ using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Rendering;
|
using CodeImp.DoomBuilder.Rendering;
|
||||||
using CodeImp.DoomBuilder.Geometry;
|
using CodeImp.DoomBuilder.Geometry;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using CodeImp.DoomBuilder.Editing;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -37,8 +38,9 @@ using System.Drawing;
|
||||||
// This mode if for quickly dragging vertices without a layer.
|
// This mode if for quickly dragging vertices without a layer.
|
||||||
// The geometry is merged and the mode returns to VerticesMode when the mouse is released.
|
// The geometry is merged and the mode returns to VerticesMode when the mouse is released.
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Editing
|
namespace CodeImp.DoomBuilder.BuilderModes.Editing
|
||||||
{
|
{
|
||||||
|
[EditMode]
|
||||||
public class DragVerticesMode : ClassicMode
|
public class DragVerticesMode : ClassicMode
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
@ -77,6 +79,9 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
|
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
|
||||||
|
// Just keep the vertices mode button checked
|
||||||
|
public override string EditModeButtonName { get { return typeof(VerticesMode).Name; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
@ -116,7 +121,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public override void Dispose()
|
public override void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
@ -219,9 +224,6 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
public override void Engage()
|
public override void Engage()
|
||||||
{
|
{
|
||||||
base.Engage();
|
base.Engage();
|
||||||
|
|
||||||
// Check vertices button on main window
|
|
||||||
General.MainWindow.SetVerticesChecked(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disenagaging
|
// Disenagaging
|
||||||
|
@ -256,10 +258,9 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hide highlight info
|
// Hide highlight info
|
||||||
General.MainWindow.HideInfo();
|
General.Interface.HideInfo();
|
||||||
|
|
||||||
// Uncheck vertices button on main window
|
// Done
|
||||||
General.MainWindow.SetVerticesChecked(false);
|
|
||||||
Cursor.Current = Cursors.Default;
|
Cursor.Current = Cursors.Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -287,8 +288,8 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
// This updates the dragging
|
// This updates the dragging
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
snaptogrid = General.MainWindow.ShiftState ^ General.MainWindow.SnapToGrid;
|
snaptogrid = General.Interface.ShiftState ^ General.Interface.SnapToGrid;
|
||||||
snaptonearest = General.MainWindow.CtrlState;
|
snaptonearest = General.Interface.CtrlState;
|
||||||
|
|
||||||
// Move selected geometry
|
// Move selected geometry
|
||||||
if(MoveGeometryRelative(mousemappos - dragstartmappos, snaptogrid, snaptonearest))
|
if(MoveGeometryRelative(mousemappos - dragstartmappos, snaptogrid, snaptonearest))
|
||||||
|
@ -297,7 +298,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
General.Map.Map.Update();
|
General.Map.Map.Update();
|
||||||
|
|
||||||
// Redraw
|
// Redraw
|
||||||
General.MainWindow.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -325,16 +326,16 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
public override void KeyUp(KeyEventArgs e)
|
public override void KeyUp(KeyEventArgs e)
|
||||||
{
|
{
|
||||||
base.KeyUp(e);
|
base.KeyUp(e);
|
||||||
if(snaptogrid != General.MainWindow.ShiftState ^ General.MainWindow.SnapToGrid) Update();
|
if(snaptogrid != General.Interface.ShiftState ^ General.Interface.SnapToGrid) Update();
|
||||||
if(snaptonearest != General.MainWindow.CtrlState) Update();
|
if(snaptonearest != General.Interface.CtrlState) Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
// When a key is pressed
|
// When a key is pressed
|
||||||
public override void KeyDown(KeyEventArgs e)
|
public override void KeyDown(KeyEventArgs e)
|
||||||
{
|
{
|
||||||
base.KeyDown(e);
|
base.KeyDown(e);
|
||||||
if(snaptogrid != General.MainWindow.ShiftState ^ General.MainWindow.SnapToGrid) Update();
|
if(snaptogrid != General.Interface.ShiftState ^ General.Interface.SnapToGrid) Update();
|
||||||
if(snaptonearest != General.MainWindow.CtrlState) Update();
|
if(snaptonearest != General.Interface.CtrlState) Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
|
@ -29,11 +29,16 @@ using CodeImp.DoomBuilder.IO;
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Rendering;
|
using CodeImp.DoomBuilder.Rendering;
|
||||||
using CodeImp.DoomBuilder.Geometry;
|
using CodeImp.DoomBuilder.Geometry;
|
||||||
|
using CodeImp.DoomBuilder.Editing;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Editing
|
namespace CodeImp.DoomBuilder.BuilderModes.Editing
|
||||||
{
|
{
|
||||||
|
[EditMode(SwitchAction = "linedefsmode",
|
||||||
|
ButtonDesc = "Linedefs Mode",
|
||||||
|
ButtonImage = "LinesMode.png",
|
||||||
|
ButtonOrder = int.MinValue + 1)]
|
||||||
public class LinedefsMode : ClassicMode
|
public class LinedefsMode : ClassicMode
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
@ -60,7 +65,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public override void Dispose()
|
public override void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
@ -90,9 +95,6 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
public override void Engage()
|
public override void Engage()
|
||||||
{
|
{
|
||||||
base.Engage();
|
base.Engage();
|
||||||
|
|
||||||
// Check linedefs button on main window
|
|
||||||
General.MainWindow.SetLinedefsChecked(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mode disengages
|
// Mode disengages
|
||||||
|
@ -117,10 +119,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hide highlight info
|
// Hide highlight info
|
||||||
General.MainWindow.HideInfo();
|
General.Interface.HideInfo();
|
||||||
|
|
||||||
// Uncheck linedefs button on main window
|
|
||||||
General.MainWindow.SetLinedefsChecked(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This redraws the display
|
// This redraws the display
|
||||||
|
@ -179,9 +178,9 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
|
|
||||||
// Show highlight info
|
// Show highlight info
|
||||||
if((highlighted != null) && !highlighted.IsDisposed)
|
if((highlighted != null) && !highlighted.IsDisposed)
|
||||||
General.MainWindow.ShowLinedefInfo(highlighted);
|
General.Interface.ShowLinedefInfo(highlighted);
|
||||||
else
|
else
|
||||||
General.MainWindow.HideInfo();
|
General.Interface.HideInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mouse moves
|
// Mouse moves
|
||||||
|
@ -242,7 +241,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
// Make this the only selection
|
// Make this the only selection
|
||||||
General.Map.Map.ClearSelectedLinedefs();
|
General.Map.Map.ClearSelectedLinedefs();
|
||||||
highlighted.Selected = true;
|
highlighted.Selected = true;
|
||||||
General.MainWindow.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update display
|
// Update display
|
||||||
|
@ -286,13 +285,13 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
if(selected.Count > 0)
|
if(selected.Count > 0)
|
||||||
{
|
{
|
||||||
// Show line edit dialog
|
// Show line edit dialog
|
||||||
LinedefEditForm.EditLinedefs(General.MainWindow, selected);
|
General.Interface.ShowEditLinedefs(selected);
|
||||||
|
|
||||||
// When a single line was selected, deselect it now
|
// When a single line was selected, deselect it now
|
||||||
if(selected.Count == 1) General.Map.Map.ClearSelectedLinedefs();
|
if(selected.Count == 1) General.Map.Map.ClearSelectedLinedefs();
|
||||||
|
|
||||||
// Update entire display
|
// Update entire display
|
||||||
General.MainWindow.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -29,11 +29,16 @@ using CodeImp.DoomBuilder.IO;
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Rendering;
|
using CodeImp.DoomBuilder.Rendering;
|
||||||
using CodeImp.DoomBuilder.Geometry;
|
using CodeImp.DoomBuilder.Geometry;
|
||||||
|
using CodeImp.DoomBuilder.Editing;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Editing
|
namespace CodeImp.DoomBuilder.BuilderModes.Editing
|
||||||
{
|
{
|
||||||
|
[EditMode(SwitchAction = "sectorsmode",
|
||||||
|
ButtonDesc = "Sectors Mode",
|
||||||
|
ButtonImage = "SectorsMode.png",
|
||||||
|
ButtonOrder = int.MinValue + 2)]
|
||||||
public class SectorsMode : ClassicMode
|
public class SectorsMode : ClassicMode
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
@ -58,7 +63,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public override void Dispose()
|
public override void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
@ -88,9 +93,6 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
public override void Engage()
|
public override void Engage()
|
||||||
{
|
{
|
||||||
base.Engage();
|
base.Engage();
|
||||||
|
|
||||||
// Check sectors button on main window
|
|
||||||
General.MainWindow.SetSectorsChecked(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mode disengages
|
// Mode disengages
|
||||||
|
@ -115,10 +117,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hide highlight info
|
// Hide highlight info
|
||||||
General.MainWindow.HideInfo();
|
General.Interface.HideInfo();
|
||||||
|
|
||||||
// Uncheck sectors button on main window
|
|
||||||
General.MainWindow.SetSectorsChecked(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This redraws the display
|
// This redraws the display
|
||||||
|
@ -181,9 +180,9 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
|
|
||||||
// Show highlight info
|
// Show highlight info
|
||||||
if((highlighted != null) && !highlighted.IsDisposed)
|
if((highlighted != null) && !highlighted.IsDisposed)
|
||||||
General.MainWindow.ShowSectorInfo(highlighted);
|
General.Interface.ShowSectorInfo(highlighted);
|
||||||
else
|
else
|
||||||
General.MainWindow.HideInfo();
|
General.Interface.HideInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mouse moves
|
// Mouse moves
|
|
@ -29,11 +29,16 @@ using CodeImp.DoomBuilder.IO;
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Rendering;
|
using CodeImp.DoomBuilder.Rendering;
|
||||||
using CodeImp.DoomBuilder.Geometry;
|
using CodeImp.DoomBuilder.Geometry;
|
||||||
|
using CodeImp.DoomBuilder.Editing;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Editing
|
namespace CodeImp.DoomBuilder.BuilderModes.Editing
|
||||||
{
|
{
|
||||||
|
[EditMode(SwitchAction = "thingsmode",
|
||||||
|
ButtonDesc = "Things Mode",
|
||||||
|
ButtonImage = "ThingsMode.png",
|
||||||
|
ButtonOrder = int.MinValue + 3)]
|
||||||
public class ThingsMode : ClassicMode
|
public class ThingsMode : ClassicMode
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
@ -60,7 +65,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public override void Dispose()
|
public override void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
@ -90,9 +95,6 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
public override void Engage()
|
public override void Engage()
|
||||||
{
|
{
|
||||||
base.Engage();
|
base.Engage();
|
||||||
|
|
||||||
// Check things button on main window
|
|
||||||
General.MainWindow.SetThingsChecked(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mode disengages
|
// Mode disengages
|
||||||
|
@ -101,10 +103,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
base.Disengage();
|
base.Disengage();
|
||||||
|
|
||||||
// Hide highlight info
|
// Hide highlight info
|
||||||
General.MainWindow.HideInfo();
|
General.Interface.HideInfo();
|
||||||
|
|
||||||
// Uncheck things button on main window
|
|
||||||
General.MainWindow.SetThingsChecked(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This redraws the display
|
// This redraws the display
|
||||||
|
@ -153,9 +152,9 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
|
|
||||||
// Show highlight info
|
// Show highlight info
|
||||||
if((highlighted != null) && !highlighted.IsDisposed)
|
if((highlighted != null) && !highlighted.IsDisposed)
|
||||||
General.MainWindow.ShowThingInfo(highlighted);
|
General.Interface.ShowThingInfo(highlighted);
|
||||||
else
|
else
|
||||||
General.MainWindow.HideInfo();
|
General.Interface.HideInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mouse moves
|
// Mouse moves
|
||||||
|
@ -214,7 +213,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
// Make this the only selection
|
// Make this the only selection
|
||||||
General.Map.Map.ClearSelectedThings();
|
General.Map.Map.ClearSelectedThings();
|
||||||
highlighted.Selected = true;
|
highlighted.Selected = true;
|
||||||
General.MainWindow.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update display
|
// Update display
|
||||||
|
@ -259,7 +258,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
if(selected.Count == 1) General.Map.Map.ClearSelectedThings();
|
if(selected.Count == 1) General.Map.Map.ClearSelectedThings();
|
||||||
|
|
||||||
// Update entire display
|
// Update entire display
|
||||||
General.MainWindow.RedrawDisplay();
|
General.Interface.RedrawDisplay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -29,11 +29,16 @@ using CodeImp.DoomBuilder.IO;
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Rendering;
|
using CodeImp.DoomBuilder.Rendering;
|
||||||
using CodeImp.DoomBuilder.Geometry;
|
using CodeImp.DoomBuilder.Geometry;
|
||||||
|
using CodeImp.DoomBuilder.Editing;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Editing
|
namespace CodeImp.DoomBuilder.BuilderModes.Editing
|
||||||
{
|
{
|
||||||
|
[EditMode(SwitchAction = "verticesmode",
|
||||||
|
ButtonDesc = "Vertices Mode",
|
||||||
|
ButtonImage = "VerticesMode.png",
|
||||||
|
ButtonOrder = int.MinValue + 0)]
|
||||||
public class VerticesMode : ClassicMode
|
public class VerticesMode : ClassicMode
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
@ -60,7 +65,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public override void Dispose()
|
public override void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
@ -90,9 +95,6 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
public override void Engage()
|
public override void Engage()
|
||||||
{
|
{
|
||||||
base.Engage();
|
base.Engage();
|
||||||
|
|
||||||
// Check vertices button on main window
|
|
||||||
General.MainWindow.SetVerticesChecked(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mode disengages
|
// Mode disengages
|
||||||
|
@ -117,10 +119,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hide highlight info
|
// Hide highlight info
|
||||||
General.MainWindow.HideInfo();
|
General.Interface.HideInfo();
|
||||||
|
|
||||||
// Uncheck vertices button on main window
|
|
||||||
General.MainWindow.SetVerticesChecked(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This redraws the display
|
// This redraws the display
|
||||||
|
@ -169,9 +168,9 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
|
|
||||||
// Show highlight info
|
// Show highlight info
|
||||||
if((highlighted != null) && !highlighted.IsDisposed)
|
if((highlighted != null) && !highlighted.IsDisposed)
|
||||||
General.MainWindow.ShowVertexInfo(highlighted);
|
General.Interface.ShowVertexInfo(highlighted);
|
||||||
else
|
else
|
||||||
General.MainWindow.HideInfo();
|
General.Interface.HideInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mouse moves
|
// Mouse moves
|
353
Source/BuilderModes/Editing/WAuthorMode.cs
Normal file
|
@ -0,0 +1,353 @@
|
||||||
|
|
||||||
|
#region ================== Copyright (c) 2007 Pascal vd Heiden
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
|
||||||
|
* This program is released under GNU General Public License
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Namespaces
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
using CodeImp.DoomBuilder.Interface;
|
||||||
|
using CodeImp.DoomBuilder.IO;
|
||||||
|
using CodeImp.DoomBuilder.Map;
|
||||||
|
using CodeImp.DoomBuilder.Rendering;
|
||||||
|
using CodeImp.DoomBuilder.Geometry;
|
||||||
|
using CodeImp.DoomBuilder.Editing;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
namespace CodeImp.DoomBuilder.BuilderModes.Editing
|
||||||
|
{
|
||||||
|
[EditMode(SwitchAction = "wauthormode",
|
||||||
|
ButtonDesc = "WadAuthor Mode",
|
||||||
|
ButtonImage = "WAuthor.png",
|
||||||
|
ButtonOrder = int.MinValue + 4,
|
||||||
|
ConfigSpecific = true)]
|
||||||
|
public class WAuthorMode : ClassicMode
|
||||||
|
{
|
||||||
|
#region ================== Constants
|
||||||
|
|
||||||
|
protected const float LINEDEF_HIGHLIGHT_RANGE = 10f;
|
||||||
|
protected const float VERTEX_HIGHLIGHT_RANGE = 8f;
|
||||||
|
protected const float THING_HIGHLIGHT_RANGE = 2f;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Variables
|
||||||
|
|
||||||
|
// Highlighted item
|
||||||
|
protected object highlighted;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Properties
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
|
// Constructor
|
||||||
|
public WAuthorMode()
|
||||||
|
{
|
||||||
|
// Initialize
|
||||||
|
|
||||||
|
// We have no destructor
|
||||||
|
GC.SuppressFinalize(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disposer
|
||||||
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
// Not already disposed?
|
||||||
|
if(!isdisposed)
|
||||||
|
{
|
||||||
|
// Clean up
|
||||||
|
|
||||||
|
// Dispose base
|
||||||
|
base.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Methods
|
||||||
|
|
||||||
|
// Cancel mode
|
||||||
|
public override void Cancel()
|
||||||
|
{
|
||||||
|
base.Cancel();
|
||||||
|
|
||||||
|
// Return to this mode
|
||||||
|
General.Map.ChangeMode(new WAuthorMode());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mode engages
|
||||||
|
public override void Engage()
|
||||||
|
{
|
||||||
|
base.Engage();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mode disengages
|
||||||
|
public override void Disengage()
|
||||||
|
{
|
||||||
|
base.Disengage();
|
||||||
|
|
||||||
|
// Clear selected vertices
|
||||||
|
General.Map.Map.ClearAllSelected();
|
||||||
|
|
||||||
|
// Hide highlight info
|
||||||
|
General.Interface.HideInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
// This redraws the display
|
||||||
|
public unsafe override void RedrawDisplay()
|
||||||
|
{
|
||||||
|
// Start with a clear display
|
||||||
|
if(renderer.Start(true, true))
|
||||||
|
{
|
||||||
|
// Render things
|
||||||
|
renderer.SetThingsRenderOrder(true);
|
||||||
|
renderer.RenderThingSet(General.Map.Map.Things);
|
||||||
|
|
||||||
|
// Render lines and vertices
|
||||||
|
renderer.RenderLinedefSet(General.Map.Map.Linedefs);
|
||||||
|
renderer.RenderVerticesSet(General.Map.Map.Vertices);
|
||||||
|
|
||||||
|
// Render highlighted item
|
||||||
|
if(highlighted != null) DrawHighlight(true);
|
||||||
|
|
||||||
|
// Done
|
||||||
|
renderer.Finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// This draws the highlighted item
|
||||||
|
protected void DrawHighlight(bool highlightcolor)
|
||||||
|
{
|
||||||
|
// With highlight color
|
||||||
|
if(highlightcolor)
|
||||||
|
{
|
||||||
|
// Vertex
|
||||||
|
if(highlighted is Vertex)
|
||||||
|
{
|
||||||
|
if((highlighted as Vertex).IsDisposed) return;
|
||||||
|
renderer.RenderVertex(highlighted as Vertex, ColorCollection.HIGHLIGHT);
|
||||||
|
}
|
||||||
|
// Linedef
|
||||||
|
else if(highlighted is Linedef)
|
||||||
|
{
|
||||||
|
if((highlighted as Linedef).IsDisposed) return;
|
||||||
|
renderer.RenderLinedef((highlighted as Linedef), General.Colors.Highlight);
|
||||||
|
renderer.RenderVertex((highlighted as Linedef).Start, renderer.DetermineVertexColor((highlighted as Linedef).Start));
|
||||||
|
renderer.RenderVertex((highlighted as Linedef).End, renderer.DetermineVertexColor((highlighted as Linedef).End));
|
||||||
|
}
|
||||||
|
// Sector
|
||||||
|
else if(highlighted is Sector)
|
||||||
|
{
|
||||||
|
if((highlighted as Sector).IsDisposed) return;
|
||||||
|
renderer.RenderSector((highlighted as Sector), General.Colors.Highlight);
|
||||||
|
}
|
||||||
|
// Thing
|
||||||
|
else if(highlighted is Thing)
|
||||||
|
{
|
||||||
|
if((highlighted as Thing).IsDisposed) return;
|
||||||
|
renderer.RenderThing((highlighted as Thing), General.Colors.Highlight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// With original color
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Vertex
|
||||||
|
if(highlighted is Vertex)
|
||||||
|
{
|
||||||
|
if((highlighted as Vertex).IsDisposed) return;
|
||||||
|
renderer.RenderVertex(highlighted as Vertex, renderer.DetermineVertexColor(highlighted as Vertex));
|
||||||
|
}
|
||||||
|
// Linedef
|
||||||
|
else if(highlighted is Linedef)
|
||||||
|
{
|
||||||
|
if((highlighted as Linedef).IsDisposed) return;
|
||||||
|
renderer.RenderLinedef((highlighted as Linedef), renderer.DetermineLinedefColor((highlighted as Linedef)));
|
||||||
|
renderer.RenderVertex((highlighted as Linedef).Start, renderer.DetermineVertexColor((highlighted as Linedef).Start));
|
||||||
|
renderer.RenderVertex((highlighted as Linedef).End, renderer.DetermineVertexColor((highlighted as Linedef).End));
|
||||||
|
}
|
||||||
|
// Sector
|
||||||
|
else if(highlighted is Sector)
|
||||||
|
{
|
||||||
|
if((highlighted as Sector).IsDisposed) return;
|
||||||
|
renderer.RenderSector((highlighted as Sector));
|
||||||
|
}
|
||||||
|
// Thing
|
||||||
|
else if(highlighted is Thing)
|
||||||
|
{
|
||||||
|
if((highlighted as Thing).IsDisposed) return;
|
||||||
|
renderer.RenderThing((highlighted as Thing), renderer.DetermineThingColor((highlighted as Thing)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// This highlights a new item
|
||||||
|
protected void Highlight(object h)
|
||||||
|
{
|
||||||
|
// Changes?
|
||||||
|
if(highlighted != h)
|
||||||
|
{
|
||||||
|
// Update display
|
||||||
|
if(renderer.Start(false, false))
|
||||||
|
{
|
||||||
|
// Undraw previous highlight
|
||||||
|
if(highlighted != null) DrawHighlight(false);
|
||||||
|
|
||||||
|
// Set new highlight
|
||||||
|
highlighted = h;
|
||||||
|
|
||||||
|
// Render highlighted item
|
||||||
|
if(highlighted != null) DrawHighlight(true);
|
||||||
|
|
||||||
|
// Done
|
||||||
|
renderer.Finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hide info
|
||||||
|
General.Interface.HideInfo();
|
||||||
|
|
||||||
|
// Anything highlighted?
|
||||||
|
if(highlighted != null)
|
||||||
|
{
|
||||||
|
// Show highlight info
|
||||||
|
if(highlighted is Vertex)
|
||||||
|
General.Interface.ShowVertexInfo(highlighted as Vertex);
|
||||||
|
else if(highlighted is Linedef)
|
||||||
|
General.Interface.ShowLinedefInfo(highlighted as Linedef);
|
||||||
|
else if(highlighted is Sector)
|
||||||
|
General.Interface.ShowSectorInfo(highlighted as Sector);
|
||||||
|
else if(highlighted is Thing)
|
||||||
|
General.Interface.ShowThingInfo(highlighted as Thing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mouse moves
|
||||||
|
public override void MouseMove(MouseEventArgs e)
|
||||||
|
{
|
||||||
|
base.MouseMove(e);
|
||||||
|
|
||||||
|
// Not holding any buttons?
|
||||||
|
if(e.Button == MouseButtons.None)
|
||||||
|
{
|
||||||
|
// Find the nearest items within highlight range
|
||||||
|
Vertex v = General.Map.Map.NearestVertexSquareRange(mousemappos, VERTEX_HIGHLIGHT_RANGE / renderer.Scale);
|
||||||
|
Thing t = General.Map.Map.NearestThingSquareRange(mousemappos, THING_HIGHLIGHT_RANGE / renderer.Scale);
|
||||||
|
Linedef l = General.Map.Map.NearestLinedef(mousemappos);
|
||||||
|
Sector s;
|
||||||
|
|
||||||
|
// Check on which side of the linedef the mouse is
|
||||||
|
float side = l.SideOfLine(mousemappos);
|
||||||
|
if(side > 0)
|
||||||
|
{
|
||||||
|
// Is there a sidedef here?
|
||||||
|
if(l.Back != null) s = l.Back.Sector;
|
||||||
|
else s = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Is there a sidedef here?
|
||||||
|
if(l.Front != null) s = l.Front.Sector;
|
||||||
|
else s = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Both a vertex and thing in range?
|
||||||
|
if((v != null) && (t != null))
|
||||||
|
{
|
||||||
|
// Highlight closest
|
||||||
|
float vd = v.DistanceToSq(mousemappos);
|
||||||
|
float td = t.DistanceToSq(mousemappos);
|
||||||
|
if(vd < td) Highlight(v); else Highlight(t);
|
||||||
|
}
|
||||||
|
// Vertex in range?
|
||||||
|
else if(v != null)
|
||||||
|
{
|
||||||
|
// Highlight vertex
|
||||||
|
Highlight(v);
|
||||||
|
}
|
||||||
|
// Thing in range?
|
||||||
|
else if(t != null)
|
||||||
|
{
|
||||||
|
// Highlight thing
|
||||||
|
Highlight(t);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Linedef within in range?
|
||||||
|
float ld = l.DistanceTo(mousemappos, true);
|
||||||
|
if(ld < (LINEDEF_HIGHLIGHT_RANGE / renderer.Scale))
|
||||||
|
{
|
||||||
|
// Highlight line
|
||||||
|
Highlight(l);
|
||||||
|
}
|
||||||
|
// Mouse inside a sector?
|
||||||
|
else if(s != null)
|
||||||
|
{
|
||||||
|
// Highlight sector
|
||||||
|
Highlight(s);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Highlight nothing
|
||||||
|
Highlight(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Maybe i'll finish this later, or not even include this mode at all, not sure yet.
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Mouse leaves
|
||||||
|
public override void MouseLeave(EventArgs e)
|
||||||
|
{
|
||||||
|
base.MouseLeave(e);
|
||||||
|
|
||||||
|
// Highlight nothing
|
||||||
|
Highlight(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mouse button pressed
|
||||||
|
public override void MouseDown(MouseEventArgs e)
|
||||||
|
{
|
||||||
|
base.MouseDown(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mouse released
|
||||||
|
public override void MouseUp(MouseEventArgs e)
|
||||||
|
{
|
||||||
|
base.MouseUp(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mouse wants to drag
|
||||||
|
protected override void DragStart(MouseEventArgs e)
|
||||||
|
{
|
||||||
|
base.DragStart(e);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
33
Source/BuilderModes/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("Builder Modes")]
|
||||||
|
[assembly: AssemblyDescription("Doom Builder Editing Modes")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("CodeImp")]
|
||||||
|
[assembly: AssemblyProduct("Doom Builder")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2007")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("30d96659-77e7-4921-a52f-a854c1a36b7d")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
[assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.*")]
|
51
Source/BuilderModes/Resources/Actions.cfg
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/******************************************\
|
||||||
|
Doom Builder Actions Configuration
|
||||||
|
\******************************************/
|
||||||
|
|
||||||
|
// This just defines which actions there are and what description they have
|
||||||
|
// The source code will bind to these actions with delegates (function pointers)
|
||||||
|
|
||||||
|
verticesmode
|
||||||
|
{
|
||||||
|
title = "Edit: Vertices Mode";
|
||||||
|
description = "Switches to vertices editing mode.";
|
||||||
|
allowkeys = true;
|
||||||
|
allowmouse = true;
|
||||||
|
allowscroll = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
linedefsmode
|
||||||
|
{
|
||||||
|
title = "Edit: Linedefs Mode";
|
||||||
|
description = "Switches to linedefs editing mode.";
|
||||||
|
allowkeys = true;
|
||||||
|
allowmouse = true;
|
||||||
|
allowscroll = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
sectorsmode
|
||||||
|
{
|
||||||
|
title = "Edit: Sectors Mode";
|
||||||
|
description = "Switches to sectors editing mode.";
|
||||||
|
allowkeys = true;
|
||||||
|
allowmouse = true;
|
||||||
|
allowscroll = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
thingsmode
|
||||||
|
{
|
||||||
|
title = "Edit: Things Mode";
|
||||||
|
description = "Switches to things editing mode.";
|
||||||
|
allowkeys = true;
|
||||||
|
allowmouse = true;
|
||||||
|
allowscroll = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
wauthormode
|
||||||
|
{
|
||||||
|
title = "Edit: WadAuthor Mode";
|
||||||
|
description = "Switches to Wad Author editing mode.";
|
||||||
|
allowkeys = true;
|
||||||
|
allowmouse = true;
|
||||||
|
allowscroll = true;
|
||||||
|
}
|
Before Width: | Height: | Size: 300 B After Width: | Height: | Size: 300 B |
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 337 B |
BIN
Source/BuilderModes/Resources/ThingsMode.png
Normal file
After Width: | Height: | Size: 938 B |
Before Width: | Height: | Size: 212 B After Width: | Height: | Size: 212 B |
BIN
Source/BuilderModes/Resources/WAuthor.png
Normal file
After Width: | Height: | Size: 601 B |
|
@ -30,7 +30,7 @@ using System.Diagnostics;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Config
|
namespace CodeImp.DoomBuilder.Config
|
||||||
{
|
{
|
||||||
public class CompilerInfo
|
internal class CompilerInfo
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ using System.IO;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Config
|
namespace CodeImp.DoomBuilder.Config
|
||||||
{
|
{
|
||||||
public class ConfigurationInfo : IComparable<ConfigurationInfo>
|
internal class ConfigurationInfo : IComparable<ConfigurationInfo>
|
||||||
{
|
{
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public GameConfiguration(Configuration cfg)
|
internal GameConfiguration(Configuration cfg)
|
||||||
{
|
{
|
||||||
// Initialize
|
// Initialize
|
||||||
this.cfg = cfg;
|
this.cfg = cfg;
|
||||||
|
@ -393,6 +393,12 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This checks if a specific edit mode class is listed
|
||||||
|
public bool IsEditModeSpecified(string classname)
|
||||||
|
{
|
||||||
|
return cfg.SettingExists("additionalmodes." + classname.ToString(CultureInfo.InvariantCulture));
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public GeneralActionBit(int index, string title)
|
internal GeneralActionBit(int index, string title)
|
||||||
{
|
{
|
||||||
// Initialize
|
// Initialize
|
||||||
this.index = index;
|
this.index = index;
|
||||||
|
|
|
@ -7,7 +7,7 @@ using CodeImp.DoomBuilder.IO;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Config
|
namespace CodeImp.DoomBuilder.Config
|
||||||
{
|
{
|
||||||
public class GeneralActionCategory : IDisposable
|
public class GeneralActionCategory
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public GeneralActionCategory(string name, Configuration cfg)
|
internal GeneralActionCategory(string name, Configuration cfg)
|
||||||
{
|
{
|
||||||
IDictionary opts;
|
IDictionary opts;
|
||||||
|
|
||||||
|
@ -67,8 +67,8 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public void Dispose()
|
internal void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
if(!isdisposed)
|
if(!isdisposed)
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public GeneralActionOption(string cat, string name, IDictionary bitslist)
|
internal GeneralActionOption(string cat, string name, IDictionary bitslist)
|
||||||
{
|
{
|
||||||
int index;
|
int index;
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ using CodeImp.DoomBuilder.Rendering;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Config
|
namespace CodeImp.DoomBuilder.Config
|
||||||
{
|
{
|
||||||
public class LinedefActionCategory : IDisposable, IComparable<LinedefActionCategory>
|
public class LinedefActionCategory : IComparable<LinedefActionCategory>
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public LinedefActionCategory(string name)
|
internal LinedefActionCategory(string name)
|
||||||
{
|
{
|
||||||
// Initialize
|
// Initialize
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
@ -72,8 +72,8 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public void Dispose()
|
internal void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
if(!isdisposed)
|
if(!isdisposed)
|
||||||
|
@ -91,7 +91,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
#region ================== Methods
|
#region ================== Methods
|
||||||
|
|
||||||
// This adds an action to this category
|
// This adds an action to this category
|
||||||
public void Add(LinedefActionInfo a)
|
internal void Add(LinedefActionInfo a)
|
||||||
{
|
{
|
||||||
// Make it so.
|
// Make it so.
|
||||||
actions.Add(a);
|
actions.Add(a);
|
||||||
|
|
|
@ -68,7 +68,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public LinedefActionInfo(int index, string desc)
|
internal LinedefActionInfo(int index, string desc)
|
||||||
{
|
{
|
||||||
string[] parts;
|
string[] parts;
|
||||||
int p = 0;
|
int p = 0;
|
||||||
|
@ -103,7 +103,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
}
|
}
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public LinedefActionInfo(int index, Configuration cfg)
|
internal LinedefActionInfo(int index, Configuration cfg)
|
||||||
{
|
{
|
||||||
string actionsetting = "linedeftypes." + index.ToString(CultureInfo.InvariantCulture);
|
string actionsetting = "linedeftypes." + index.ToString(CultureInfo.InvariantCulture);
|
||||||
string desc;
|
string desc;
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public LinedefActivateInfo(int index, string title)
|
internal LinedefActivateInfo(int index, string title)
|
||||||
{
|
{
|
||||||
// Initialize
|
// Initialize
|
||||||
this.index = index;
|
this.index = index;
|
||||||
|
|
|
@ -31,7 +31,7 @@ using System.Windows.Forms;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Config
|
namespace CodeImp.DoomBuilder.Config
|
||||||
{
|
{
|
||||||
public class NodebuilderInfo : IComparable<NodebuilderInfo>
|
internal class NodebuilderInfo : IComparable<NodebuilderInfo>
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
|
|
@ -51,17 +51,17 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
|
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
|
||||||
public Configuration Config { get { return cfg; } }
|
internal Configuration Config { get { return cfg; } }
|
||||||
public int UndoLevels { get { return undolevels; } set { undolevels = value; } }
|
public int UndoLevels { get { return undolevels; } internal set { undolevels = value; } }
|
||||||
public bool BlackBrowsers { get { return blackbrowsers; } set { blackbrowsers = value; } }
|
public bool BlackBrowsers { get { return blackbrowsers; } internal set { blackbrowsers = value; } }
|
||||||
public float StitchDistance { get { return stitchdistance; } set { stitchdistance = value; } }
|
public float StitchDistance { get { return stitchdistance; } internal set { stitchdistance = value; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public ProgramConfiguration()
|
internal ProgramConfiguration()
|
||||||
{
|
{
|
||||||
// We have no destructor
|
// We have no destructor
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
|
@ -72,7 +72,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
#region ================== Loading / Saving
|
#region ================== Loading / Saving
|
||||||
|
|
||||||
// This loads the program configuration
|
// This loads the program configuration
|
||||||
public bool Load(string cfgfilepathname, string defaultfilepathname)
|
internal bool Load(string cfgfilepathname, string defaultfilepathname)
|
||||||
{
|
{
|
||||||
// First parse it
|
// First parse it
|
||||||
if(Read(cfgfilepathname, defaultfilepathname))
|
if(Read(cfgfilepathname, defaultfilepathname))
|
||||||
|
@ -93,7 +93,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
}
|
}
|
||||||
|
|
||||||
// This saves the program configuration
|
// This saves the program configuration
|
||||||
public void Save(string filepathname)
|
internal void Save(string filepathname)
|
||||||
{
|
{
|
||||||
// Write the cache variables
|
// Write the cache variables
|
||||||
cfg.WriteSetting("blackbrowsers", blackbrowsers);
|
cfg.WriteSetting("blackbrowsers", blackbrowsers);
|
||||||
|
@ -171,8 +171,8 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
public IDictionary ReadSetting(string setting, IDictionary defaultsetting) { return cfg.ReadSetting(setting, defaultsetting); }
|
public IDictionary ReadSetting(string setting, IDictionary defaultsetting) { return cfg.ReadSetting(setting, defaultsetting); }
|
||||||
|
|
||||||
// WriteSetting
|
// WriteSetting
|
||||||
public bool WriteSetting(string setting, object settingvalue) { return cfg.WriteSetting(setting, settingvalue); }
|
internal bool WriteSetting(string setting, object settingvalue) { return cfg.WriteSetting(setting, settingvalue); }
|
||||||
public bool WriteSetting(string setting, object settingvalue, string pathseperator) { return cfg.WriteSetting(setting, settingvalue, pathseperator); }
|
internal bool WriteSetting(string setting, object settingvalue, string pathseperator) { return cfg.WriteSetting(setting, settingvalue, pathseperator); }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ using CodeImp.DoomBuilder.Rendering;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Config
|
namespace CodeImp.DoomBuilder.Config
|
||||||
{
|
{
|
||||||
public class ThingCategory : IDisposable
|
public class ThingCategory
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public ThingCategory(Configuration cfg, string name)
|
internal ThingCategory(Configuration cfg, string name)
|
||||||
{
|
{
|
||||||
IDictionary dic;
|
IDictionary dic;
|
||||||
int index;
|
int index;
|
||||||
|
@ -136,7 +136,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disposer
|
// Disposer
|
||||||
public void Dispose()
|
internal void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
if(!isdisposed)
|
if(!isdisposed)
|
||||||
|
@ -154,7 +154,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
#region ================== Methods
|
#region ================== Methods
|
||||||
|
|
||||||
// This adds a thing to the category
|
// This adds a thing to the category
|
||||||
public void AddThing(ThingTypeInfo t)
|
internal void AddThing(ThingTypeInfo t)
|
||||||
{
|
{
|
||||||
// Add
|
// Add
|
||||||
things.Add(t);
|
things.Add(t);
|
||||||
|
|
|
@ -75,7 +75,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public ThingTypeInfo(int index)
|
internal ThingTypeInfo(int index)
|
||||||
{
|
{
|
||||||
// Initialize
|
// Initialize
|
||||||
this.index = index;
|
this.index = index;
|
||||||
|
@ -98,7 +98,7 @@ namespace CodeImp.DoomBuilder.Config
|
||||||
}
|
}
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public ThingTypeInfo(ThingCategory cat, int index, Configuration cfg)
|
internal ThingTypeInfo(ThingCategory cat, int index, Configuration cfg)
|
||||||
{
|
{
|
||||||
string key = index.ToString(CultureInfo.InvariantCulture);
|
string key = index.ToString(CultureInfo.InvariantCulture);
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ using System.Windows.Forms;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Controls
|
namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
public class Action
|
internal class Action
|
||||||
{
|
{
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,13 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
|
|
||||||
// The action to bind to
|
// The action to bind to
|
||||||
private string action;
|
private string action;
|
||||||
|
private bool baseaction;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Properties
|
||||||
|
|
||||||
|
public bool BaseAction { get { return baseaction; } set { baseaction = value; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -44,21 +51,52 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
// Initialize
|
// Initialize
|
||||||
this.action = action;
|
this.action = action;
|
||||||
|
this.baseaction = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Methods
|
||||||
|
|
||||||
|
// This makes the proper name
|
||||||
|
public string GetFullActionName(Assembly asm)
|
||||||
|
{
|
||||||
|
string asmname;
|
||||||
|
|
||||||
|
if(baseaction)
|
||||||
|
asmname = General.ThisAssembly.GetName().Name.ToLowerInvariant();
|
||||||
|
else
|
||||||
|
asmname = asm.GetName().Name.ToLowerInvariant();
|
||||||
|
|
||||||
|
return asmname + "_" + action;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Static Methods
|
#region ================== Static Methods
|
||||||
|
|
||||||
|
// This makes the proper name
|
||||||
|
public string GetFullActionName(Assembly asm, bool baseaction, string actionname)
|
||||||
|
{
|
||||||
|
string asmname;
|
||||||
|
|
||||||
|
if(baseaction)
|
||||||
|
asmname = General.ThisAssembly.GetName().Name.ToLowerInvariant();
|
||||||
|
else
|
||||||
|
asmname = asm.GetName().Name.ToLowerInvariant();
|
||||||
|
|
||||||
|
return asmname + "_" + actionname;
|
||||||
|
}
|
||||||
|
|
||||||
// This binds all methods marked with this attribute
|
// This binds all methods marked with this attribute
|
||||||
public static void BindMethods(Type type)
|
internal static void BindMethods(Type type)
|
||||||
{
|
{
|
||||||
// Bind static methods
|
// Bind static methods
|
||||||
BindMethods(null, type);
|
BindMethods(null, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This binds all methods marked with this attribute
|
// This binds all methods marked with this attribute
|
||||||
public static void BindMethods(object obj)
|
internal static void BindMethods(object obj)
|
||||||
{
|
{
|
||||||
// Bind instance methods
|
// Bind instance methods
|
||||||
BindMethods(obj, obj.GetType());
|
BindMethods(obj, obj.GetType());
|
||||||
|
@ -70,6 +108,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
MethodInfo[] methods;
|
MethodInfo[] methods;
|
||||||
ActionAttribute[] attrs;
|
ActionAttribute[] attrs;
|
||||||
ActionDelegate del;
|
ActionDelegate del;
|
||||||
|
string actionname;
|
||||||
|
|
||||||
if(obj == null)
|
if(obj == null)
|
||||||
General.WriteLogLine("Binding static action methods for class " + type.Name + "...");
|
General.WriteLogLine("Binding static action methods for class " + type.Name + "...");
|
||||||
|
@ -77,7 +116,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
General.WriteLogLine("Binding action methods for " + type.Name + " object...");
|
General.WriteLogLine("Binding action methods for " + type.Name + " object...");
|
||||||
|
|
||||||
// Go for all methods on obj
|
// Go for all methods on obj
|
||||||
methods = type.GetMethods();
|
methods = type.GetMethods(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);
|
||||||
foreach(MethodInfo m in methods)
|
foreach(MethodInfo m in methods)
|
||||||
{
|
{
|
||||||
// Check if the method has this attribute
|
// Check if the method has this attribute
|
||||||
|
@ -89,24 +128,42 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
// Create a delegate for this method
|
// Create a delegate for this method
|
||||||
del = (ActionDelegate)Delegate.CreateDelegate(typeof(ActionDelegate), obj, m);
|
del = (ActionDelegate)Delegate.CreateDelegate(typeof(ActionDelegate), obj, m);
|
||||||
|
|
||||||
|
// Make proper name
|
||||||
|
actionname = a.GetFullActionName(type.Assembly);
|
||||||
|
|
||||||
// Bind method to action
|
// Bind method to action
|
||||||
if(General.Actions.Exists(a.action))
|
if(General.Actions.Exists(actionname))
|
||||||
General.Actions[a.action].Bind(del);
|
General.Actions[actionname].Bind(del);
|
||||||
else
|
else
|
||||||
throw new ArgumentException("Could not bind " + m.ReflectedType.Name + "." + m.Name + " to action \"" + a.action + "\", that action does not exist! Refer to, or edit Actions.cfg for all available application actions.");
|
throw new ArgumentException("Could not bind " + m.ReflectedType.Name + "." + m.Name + " to action \"" + actionname + "\", that action does not exist! Refer to, or edit Actions.cfg for all available application actions.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This binds a delegate manually
|
||||||
|
internal static void BindDelegate(Assembly asm, ActionDelegate d, ActionAttribute a)
|
||||||
|
{
|
||||||
|
string actionname;
|
||||||
|
|
||||||
|
// Make proper name
|
||||||
|
actionname = a.GetFullActionName(asm);
|
||||||
|
|
||||||
|
// Bind delegate to action
|
||||||
|
if(General.Actions.Exists(actionname))
|
||||||
|
General.Actions[actionname].Bind(d);
|
||||||
|
else
|
||||||
|
throw new ArgumentException("Could not bind delegate for " + d.Method.Name + " to action \"" + actionname + "\", that action does not exist! Refer to, or edit Actions.cfg for all available application actions.");
|
||||||
|
}
|
||||||
|
|
||||||
// This unbinds all methods marked with this attribute
|
// This unbinds all methods marked with this attribute
|
||||||
public static void UnbindMethods(Type type)
|
internal static void UnbindMethods(Type type)
|
||||||
{
|
{
|
||||||
// Unbind static methods
|
// Unbind static methods
|
||||||
UnbindMethods(null, type);
|
UnbindMethods(null, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This unbinds all methods marked with this attribute
|
// This unbinds all methods marked with this attribute
|
||||||
public static void UnbindMethods(object obj)
|
internal static void UnbindMethods(object obj)
|
||||||
{
|
{
|
||||||
// Unbind instance methods
|
// Unbind instance methods
|
||||||
UnbindMethods(obj, obj.GetType());
|
UnbindMethods(obj, obj.GetType());
|
||||||
|
@ -118,6 +175,7 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
MethodInfo[] methods;
|
MethodInfo[] methods;
|
||||||
ActionAttribute[] attrs;
|
ActionAttribute[] attrs;
|
||||||
ActionDelegate del;
|
ActionDelegate del;
|
||||||
|
string actionname;
|
||||||
|
|
||||||
if(obj == null)
|
if(obj == null)
|
||||||
General.WriteLogLine("Unbinding static action methods for class " + type.Name + "...");
|
General.WriteLogLine("Unbinding static action methods for class " + type.Name + "...");
|
||||||
|
@ -137,12 +195,27 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
// Create a delegate for this method
|
// Create a delegate for this method
|
||||||
del = (ActionDelegate)Delegate.CreateDelegate(typeof(ActionDelegate), obj, m);
|
del = (ActionDelegate)Delegate.CreateDelegate(typeof(ActionDelegate), obj, m);
|
||||||
|
|
||||||
|
// Make proper name
|
||||||
|
actionname = a.GetFullActionName(type.Assembly);
|
||||||
|
|
||||||
// Unbind method from action
|
// Unbind method from action
|
||||||
General.Actions[a.action].Unbind(del);
|
General.Actions[actionname].Unbind(del);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This unbinds a delegate manually
|
||||||
|
internal static void UnbindDelegate(Assembly asm, ActionDelegate d, ActionAttribute a)
|
||||||
|
{
|
||||||
|
string actionname;
|
||||||
|
|
||||||
|
// Make proper name
|
||||||
|
actionname = a.GetFullActionName(asm);
|
||||||
|
|
||||||
|
// Unbind delegate to action
|
||||||
|
General.Actions[actionname].Unbind(d);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,5 +26,5 @@ using System.Text;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Controls
|
namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
public delegate void ActionDelegate();
|
internal delegate void ActionDelegate();
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,15 +25,18 @@ using CodeImp.DoomBuilder.Properties;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using CodeImp.DoomBuilder.IO;
|
using CodeImp.DoomBuilder.IO;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Controls
|
namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
public class ActionManager : IDisposable
|
internal class ActionManager
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
private const string ACTIONS_RESOURCE = "Actions.cfg";
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
@ -62,14 +65,14 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
General.WriteLogLine("Starting action manager...");
|
General.WriteLogLine("Starting action manager...");
|
||||||
actions = new Dictionary<string, Action>();
|
actions = new Dictionary<string, Action>();
|
||||||
|
|
||||||
// Load all actions
|
// Load all actions in this assembly
|
||||||
LoadActions();
|
LoadActions(General.ThisAssembly);
|
||||||
|
|
||||||
// We have no destructor
|
// We have no destructor
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
@ -86,42 +89,70 @@ namespace CodeImp.DoomBuilder.Controls
|
||||||
|
|
||||||
#region ================== Actions
|
#region ================== Actions
|
||||||
|
|
||||||
// This loads all actions
|
// This loads all actions from an assembly
|
||||||
private void LoadActions()
|
public void LoadActions(Assembly asm)
|
||||||
{
|
{
|
||||||
Stream actionsdata;
|
Stream actionsdata;
|
||||||
StreamReader actionsreader;
|
StreamReader actionsreader;
|
||||||
Configuration cfg;
|
Configuration cfg;
|
||||||
string name, title, desc;
|
string name, title, desc;
|
||||||
bool amouse, akeys, ascroll;
|
bool amouse, akeys, ascroll;
|
||||||
int key;
|
string[] resnames;
|
||||||
|
AssemblyName asmname = asm.GetName();
|
||||||
|
|
||||||
// Get a stream from the resource
|
// Find a resource named Actions.cfg
|
||||||
actionsdata = General.ThisAssembly.GetManifestResourceStream("CodeImp.DoomBuilder.Resources.Actions.cfg");
|
resnames = asm.GetManifestResourceNames();
|
||||||
actionsreader = new StreamReader(actionsdata, Encoding.ASCII);
|
foreach(string rn in resnames)
|
||||||
|
|
||||||
// Load configuration from stream
|
|
||||||
cfg = new Configuration();
|
|
||||||
cfg.InputConfiguration(actionsreader.ReadToEnd());
|
|
||||||
|
|
||||||
// Done with the resource
|
|
||||||
actionsreader.Dispose();
|
|
||||||
actionsdata.Dispose();
|
|
||||||
|
|
||||||
// Go for all objects in the configuration
|
|
||||||
foreach(DictionaryEntry a in cfg.Root)
|
|
||||||
{
|
{
|
||||||
// Get action properties
|
// Found one?
|
||||||
name = a.Key.ToString();
|
if(rn.EndsWith(ACTIONS_RESOURCE, StringComparison.InvariantCultureIgnoreCase))
|
||||||
title = cfg.ReadSetting(name + ".title", "[" + name + "]");
|
{
|
||||||
desc = cfg.ReadSetting(name + ".description", "");
|
// Get a stream from the resource
|
||||||
key = General.Settings.ReadSetting("shortcuts." + name, 0);
|
actionsdata = asm.GetManifestResourceStream(rn);
|
||||||
akeys = cfg.ReadSetting(name + ".allowkeys", false);
|
actionsreader = new StreamReader(actionsdata, Encoding.ASCII);
|
||||||
amouse = cfg.ReadSetting(name + ".allowmouse", false);
|
|
||||||
ascroll = cfg.ReadSetting(name + ".allowscroll", false);
|
// Load configuration from stream
|
||||||
|
cfg = new Configuration();
|
||||||
|
cfg.InputConfiguration(actionsreader.ReadToEnd());
|
||||||
|
|
||||||
|
// Done with the resource
|
||||||
|
actionsreader.Dispose();
|
||||||
|
actionsdata.Dispose();
|
||||||
|
|
||||||
|
// Go for all objects in the configuration
|
||||||
|
foreach(DictionaryEntry a in cfg.Root)
|
||||||
|
{
|
||||||
|
// Get action properties
|
||||||
|
name = asmname.Name.ToLowerInvariant() + "_" + a.Key.ToString();
|
||||||
|
title = cfg.ReadSetting(a.Key + ".title", "[" + name + "]");
|
||||||
|
desc = cfg.ReadSetting(a.Key + ".description", "");
|
||||||
|
akeys = cfg.ReadSetting(a.Key + ".allowkeys", false);
|
||||||
|
amouse = cfg.ReadSetting(a.Key + ".allowmouse", false);
|
||||||
|
ascroll = cfg.ReadSetting(a.Key + ".allowscroll", false);
|
||||||
|
|
||||||
|
// Create an action
|
||||||
|
CreateAction(name, title, desc, akeys, amouse, ascroll);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// This manually creates an action
|
||||||
|
private void CreateAction(string name, string title, string desc, bool allowkeys, bool allowmouse, bool allowscroll)
|
||||||
|
{
|
||||||
|
// Action does not exist yet?
|
||||||
|
if(!actions.ContainsKey(name))
|
||||||
|
{
|
||||||
|
// Read the key from configuration
|
||||||
|
int key = General.Settings.ReadSetting("shortcuts." + name, 0);
|
||||||
|
|
||||||
// Create an action
|
// Create an action
|
||||||
actions.Add(name, new Action(name, title, desc, key, akeys, amouse, ascroll));
|
actions.Add(name, new Action(name, title, desc, key, allowkeys, allowmouse, allowscroll));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Action already exists!
|
||||||
|
General.WriteLogLine("WARNING: Action '" + name + "' already exists. Action names must be unique!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,37 @@
|
||||||
|
|
||||||
|
#region ================== Copyright (c) 2007 Pascal vd Heiden
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
|
||||||
|
* This program is released under GNU General Public License
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Namespaces
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.ComponentModel;
|
||||||
|
using System.Drawing;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using CodeImp.DoomBuilder.Properties;
|
||||||
|
using System.IO;
|
||||||
|
using CodeImp.DoomBuilder.IO;
|
||||||
|
using System.Collections;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Controls
|
namespace CodeImp.DoomBuilder.Controls
|
||||||
{
|
{
|
||||||
public struct KeyControl
|
internal struct KeyControl
|
||||||
{
|
{
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ using System.Text;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public struct DataLocation : IComparable<DataLocation>, IComparable, IEquatable<DataLocation>
|
internal struct DataLocation : IComparable<DataLocation>, IComparable, IEquatable<DataLocation>
|
||||||
{
|
{
|
||||||
// Constants
|
// Constants
|
||||||
public const int RESOURCE_WAD = 0;
|
public const int RESOURCE_WAD = 0;
|
||||||
|
|
|
@ -1,3 +1,21 @@
|
||||||
|
|
||||||
|
#region ================== Copyright (c) 2007 Pascal vd Heiden
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
|
||||||
|
* This program is released under GNU General Public License
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Namespaces
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
@ -6,9 +24,11 @@ using System.Text;
|
||||||
using CodeImp.DoomBuilder.IO;
|
using CodeImp.DoomBuilder.IO;
|
||||||
using System.Collections.Specialized;
|
using System.Collections.Specialized;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public sealed class DataLocationList : List<DataLocation>
|
internal sealed class DataLocationList : List<DataLocation>
|
||||||
{
|
{
|
||||||
#region ================== Constructors
|
#region ================== Constructors
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ using System.Threading;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public sealed class DataManager : IDisposable
|
public sealed class DataManager
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
@ -82,14 +82,14 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public DataManager()
|
internal DataManager()
|
||||||
{
|
{
|
||||||
// We have no destructor
|
// We have no destructor
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disposer
|
// Disposer
|
||||||
public void Dispose()
|
internal void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
if(!isdisposed)
|
if(!isdisposed)
|
||||||
|
@ -107,7 +107,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
#region ================== Loading / Unloading
|
#region ================== Loading / Unloading
|
||||||
|
|
||||||
// This loads all data resources
|
// This loads all data resources
|
||||||
public void Load(DataLocationList configlist, DataLocationList maplist, DataLocation maplocation)
|
internal void Load(DataLocationList configlist, DataLocationList maplist, DataLocation maplocation)
|
||||||
{
|
{
|
||||||
DataLocationList all = DataLocationList.Combined(configlist, maplist);
|
DataLocationList all = DataLocationList.Combined(configlist, maplist);
|
||||||
all.Add(maplocation);
|
all.Add(maplocation);
|
||||||
|
@ -115,14 +115,14 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
|
|
||||||
// This loads all data resources
|
// This loads all data resources
|
||||||
public void Load(DataLocationList configlist, DataLocationList maplist)
|
internal void Load(DataLocationList configlist, DataLocationList maplist)
|
||||||
{
|
{
|
||||||
DataLocationList all = DataLocationList.Combined(configlist, maplist);
|
DataLocationList all = DataLocationList.Combined(configlist, maplist);
|
||||||
Load(all);
|
Load(all);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This loads all data resources
|
// This loads all data resources
|
||||||
public void Load(DataLocationList locations)
|
internal void Load(DataLocationList locations)
|
||||||
{
|
{
|
||||||
DataReader c;
|
DataReader c;
|
||||||
|
|
||||||
|
@ -191,7 +191,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
|
|
||||||
// This unloads all data
|
// This unloads all data
|
||||||
public void Unload()
|
internal void Unload()
|
||||||
{
|
{
|
||||||
// Stop background loader
|
// Stop background loader
|
||||||
StopBackgroundLoader();
|
StopBackgroundLoader();
|
||||||
|
@ -212,7 +212,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
#region ================== Suspend / Resume
|
#region ================== Suspend / Resume
|
||||||
|
|
||||||
// This suspends data resources
|
// This suspends data resources
|
||||||
public void Suspend()
|
internal void Suspend()
|
||||||
{
|
{
|
||||||
// Stop background loader
|
// Stop background loader
|
||||||
StopBackgroundLoader();
|
StopBackgroundLoader();
|
||||||
|
@ -227,7 +227,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
|
|
||||||
// This resumes data resources
|
// This resumes data resources
|
||||||
public void Resume()
|
internal void Resume()
|
||||||
{
|
{
|
||||||
// Go for all containers
|
// Go for all containers
|
||||||
foreach(DataReader d in containers)
|
foreach(DataReader d in containers)
|
||||||
|
@ -425,7 +425,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
|
|
||||||
// This returns a specific patch stream
|
// This returns a specific patch stream
|
||||||
public Stream GetPatchData(string pname)
|
internal Stream GetPatchData(string pname)
|
||||||
{
|
{
|
||||||
Stream patch;
|
Stream patch;
|
||||||
|
|
||||||
|
@ -539,7 +539,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
|
|
||||||
// This returns a specific flat stream
|
// This returns a specific flat stream
|
||||||
public Stream GetFlatData(string pname)
|
internal Stream GetFlatData(string pname)
|
||||||
{
|
{
|
||||||
Stream flat;
|
Stream flat;
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ using CodeImp.DoomBuilder.Rendering;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public abstract class DataReader : IDisposable
|
internal abstract class DataReader
|
||||||
{
|
{
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ using CodeImp.DoomBuilder.IO;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public sealed class DirectoryReader : DataReader
|
internal sealed class DirectoryReader : DataReader
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,36 @@
|
||||||
|
|
||||||
|
#region ================== Copyright (c) 2007 Pascal vd Heiden
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
|
||||||
|
* This program is released under GNU General Public License
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Namespaces
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using CodeImp.DoomBuilder.IO;
|
using CodeImp.DoomBuilder.IO;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public sealed class FlatImage : ImageData
|
internal sealed class FlatImage : ImageData
|
||||||
{
|
{
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ using System.Windows.Forms;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public abstract unsafe class ImageData : IDisposable
|
public abstract unsafe class ImageData
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
|
|
||||||
// This creates the 2D pixel data
|
// This creates the 2D pixel data
|
||||||
public virtual void CreatePixelData()
|
internal virtual void CreatePixelData()
|
||||||
{
|
{
|
||||||
BitmapData bmpdata;
|
BitmapData bmpdata;
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
|
|
||||||
// This creates the Direct3D texture
|
// This creates the Direct3D texture
|
||||||
public virtual void CreateTexture()
|
internal virtual void CreateTexture()
|
||||||
{
|
{
|
||||||
MemoryStream memstream;
|
MemoryStream memstream;
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
}
|
}
|
||||||
|
|
||||||
// This destroys the Direct3D texture
|
// This destroys the Direct3D texture
|
||||||
public void ReleaseTexture()
|
internal void ReleaseTexture()
|
||||||
{
|
{
|
||||||
lock(this)
|
lock(this)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,7 +29,7 @@ using CodeImp.DoomBuilder.IO;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public static class ImageDataFormat
|
internal static class ImageDataFormat
|
||||||
{
|
{
|
||||||
// Input guess formats
|
// Input guess formats
|
||||||
public const int UNKNOWN = 0; // No clue.
|
public const int UNKNOWN = 0; // No clue.
|
||||||
|
|
|
@ -53,8 +53,8 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
|
|
||||||
// Dont do anything
|
// Dont do anything
|
||||||
public override void LoadImage() { bitmap = CodeImp.DoomBuilder.Properties.Resources.UnknownImage; }
|
public override void LoadImage() { bitmap = CodeImp.DoomBuilder.Properties.Resources.UnknownImage; }
|
||||||
public override void CreatePixelData() { }
|
internal override void CreatePixelData() { }
|
||||||
public override void CreateTexture() { }
|
internal override void CreateTexture() { }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@ using ICSharpCode.SharpZipLib.Zip;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public sealed class PK3Reader : DataReader
|
internal sealed class PK3Reader : DataReader
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ using CodeImp.DoomBuilder.IO;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public sealed class PatchNames
|
internal sealed class PatchNames
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,37 @@
|
||||||
|
|
||||||
|
#region ================== Copyright (c) 2007 Pascal vd Heiden
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
|
||||||
|
* This program is released under GNU General Public License
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Namespaces
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.IO;
|
using System.Drawing;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using CodeImp.DoomBuilder.Rendering;
|
||||||
using CodeImp.DoomBuilder.IO;
|
using CodeImp.DoomBuilder.IO;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public sealed class SpriteImage : ImageData
|
internal sealed class SpriteImage : ImageData
|
||||||
{
|
{
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ using System.IO;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public sealed unsafe class TextureImage : ImageData
|
internal sealed unsafe class TextureImage : ImageData
|
||||||
{
|
{
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ using CodeImp.DoomBuilder.IO;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public struct TexturePatch
|
internal struct TexturePatch
|
||||||
{
|
{
|
||||||
public string lumpname;
|
public string lumpname;
|
||||||
public int x;
|
public int x;
|
||||||
|
|
|
@ -30,7 +30,7 @@ using CodeImp.DoomBuilder.IO;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Data
|
namespace CodeImp.DoomBuilder.Data
|
||||||
{
|
{
|
||||||
public sealed class WADReader : DataReader
|
internal sealed class WADReader : DataReader
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ namespace CodeImp.DoomBuilder.Data
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public override void Dispose()
|
public override void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
|
|
@ -51,7 +51,8 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
protected bool cancelled;
|
protected bool cancelled;
|
||||||
|
|
||||||
// Graphics
|
// Graphics
|
||||||
protected Renderer2D renderer;
|
protected IRenderer2D renderer;
|
||||||
|
private Renderer2D renderer2d;
|
||||||
|
|
||||||
// Mouse status
|
// Mouse status
|
||||||
protected Vector2D mousepos;
|
protected Vector2D mousepos;
|
||||||
|
@ -75,9 +76,10 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
{
|
{
|
||||||
// Initialize
|
// Initialize
|
||||||
this.renderer = General.Map.Renderer2D;
|
this.renderer = General.Map.Renderer2D;
|
||||||
|
this.renderer2d = (Renderer2D)General.Map.Renderer2D;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public override void Dispose()
|
public override void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
@ -95,39 +97,39 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
#region ================== Scroll / Zoom
|
#region ================== Scroll / Zoom
|
||||||
|
|
||||||
// This scrolls the view north
|
// This scrolls the view north
|
||||||
[Action("scrollnorth")]
|
[Action("scrollnorth", BaseAction = true)]
|
||||||
public virtual void ScrollNorth()
|
public virtual void ScrollNorth()
|
||||||
{
|
{
|
||||||
// Scroll
|
// Scroll
|
||||||
ScrollBy(0f, 100f / renderer.Scale);
|
ScrollBy(0f, 100f / renderer2d.Scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This scrolls the view south
|
// This scrolls the view south
|
||||||
[Action("scrollsouth")]
|
[Action("scrollsouth", BaseAction = true)]
|
||||||
public virtual void ScrollSouth()
|
public virtual void ScrollSouth()
|
||||||
{
|
{
|
||||||
// Scroll
|
// Scroll
|
||||||
ScrollBy(0f, -100f / renderer.Scale);
|
ScrollBy(0f, -100f / renderer2d.Scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This scrolls the view west
|
// This scrolls the view west
|
||||||
[Action("scrollwest")]
|
[Action("scrollwest", BaseAction = true)]
|
||||||
public virtual void ScrollWest()
|
public virtual void ScrollWest()
|
||||||
{
|
{
|
||||||
// Scroll
|
// Scroll
|
||||||
ScrollBy(-100f / renderer.Scale, 0f);
|
ScrollBy(-100f / renderer2d.Scale, 0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This scrolls the view east
|
// This scrolls the view east
|
||||||
[Action("scrolleast")]
|
[Action("scrolleast", BaseAction = true)]
|
||||||
public virtual void ScrollEast()
|
public virtual void ScrollEast()
|
||||||
{
|
{
|
||||||
// Scroll
|
// Scroll
|
||||||
ScrollBy(100f / renderer.Scale, 0f);
|
ScrollBy(100f / renderer2d.Scale, 0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This zooms in
|
// This zooms in
|
||||||
[Action("zoomin")]
|
[Action("zoomin", BaseAction = true)]
|
||||||
public virtual void ZoomIn()
|
public virtual void ZoomIn()
|
||||||
{
|
{
|
||||||
// Zoom
|
// Zoom
|
||||||
|
@ -135,7 +137,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
}
|
}
|
||||||
|
|
||||||
// This zooms out
|
// This zooms out
|
||||||
[Action("zoomout")]
|
[Action("zoomout", BaseAction = true)]
|
||||||
public virtual void ZoomOut()
|
public virtual void ZoomOut()
|
||||||
{
|
{
|
||||||
// Zoom
|
// Zoom
|
||||||
|
@ -146,14 +148,14 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
private void ScrollBy(float deltax, float deltay)
|
private void ScrollBy(float deltax, float deltay)
|
||||||
{
|
{
|
||||||
// Scroll now
|
// Scroll now
|
||||||
renderer.PositionView(renderer.OffsetX + deltax, renderer.OffsetY + deltay);
|
renderer2d.PositionView(renderer2d.OffsetX + deltax, renderer2d.OffsetY + deltay);
|
||||||
this.ViewChanged();
|
this.ViewChanged();
|
||||||
|
|
||||||
// Redraw
|
// Redraw
|
||||||
General.MainWindow.RedrawDisplay();
|
General.MainWindow.RedrawDisplay();
|
||||||
|
|
||||||
// Determine new unprojected mouse coordinates
|
// Determine new unprojected mouse coordinates
|
||||||
mousemappos = renderer.GetMapCoordinates(mousepos);
|
mousemappos = renderer2d.GetMapCoordinates(mousepos);
|
||||||
General.MainWindow.UpdateCoordinates(mousemappos);
|
General.MainWindow.UpdateCoordinates(mousemappos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,7 +166,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
float newscale;
|
float newscale;
|
||||||
|
|
||||||
// This will be the new zoom scale
|
// This will be the new zoom scale
|
||||||
newscale = renderer.Scale * deltaz;
|
newscale = renderer2d.Scale * deltaz;
|
||||||
|
|
||||||
// Limit scale
|
// Limit scale
|
||||||
if(newscale > SCALE_MAX) newscale = SCALE_MAX;
|
if(newscale > SCALE_MAX) newscale = SCALE_MAX;
|
||||||
|
@ -187,11 +189,11 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate view position difference
|
// Calculate view position difference
|
||||||
diff = ((clientsize / newscale) - (clientsize / renderer.Scale)) * zoompos;
|
diff = ((clientsize / newscale) - (clientsize / renderer2d.Scale)) * zoompos;
|
||||||
|
|
||||||
// Zoom now
|
// Zoom now
|
||||||
renderer.PositionView(renderer.OffsetX - diff.x, renderer.OffsetY + diff.y);
|
renderer2d.PositionView(renderer2d.OffsetX - diff.x, renderer2d.OffsetY + diff.y);
|
||||||
renderer.ScaleView(newscale);
|
renderer2d.ScaleView(newscale);
|
||||||
this.ViewChanged();
|
this.ViewChanged();
|
||||||
|
|
||||||
// Redraw
|
// Redraw
|
||||||
|
@ -206,7 +208,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
public void SetZoom(float newscale)
|
public void SetZoom(float newscale)
|
||||||
{
|
{
|
||||||
// Zoom now
|
// Zoom now
|
||||||
renderer.ScaleView(newscale);
|
renderer2d.ScaleView(newscale);
|
||||||
this.ViewChanged();
|
this.ViewChanged();
|
||||||
|
|
||||||
// Redraw
|
// Redraw
|
||||||
|
@ -251,8 +253,8 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
if(scalew < scaleh) scale = scalew; else scale = scaleh;
|
if(scalew < scaleh) scale = scalew; else scale = scaleh;
|
||||||
|
|
||||||
// Change the view to see the whole map
|
// Change the view to see the whole map
|
||||||
renderer.ScaleView(scale);
|
renderer2d.ScaleView(scale);
|
||||||
renderer.PositionView(left + (right - left) * 0.5f, top + (bottom - top) * 0.5f);
|
renderer2d.PositionView(left + (right - left) * 0.5f, top + (bottom - top) * 0.5f);
|
||||||
this.ViewChanged();
|
this.ViewChanged();
|
||||||
|
|
||||||
// Redraw
|
// Redraw
|
||||||
|
@ -296,7 +298,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
// Record last position
|
// Record last position
|
||||||
mouseinside = true;
|
mouseinside = true;
|
||||||
mousepos = new Vector2D(e.X, e.Y);
|
mousepos = new Vector2D(e.X, e.Y);
|
||||||
mousemappos = renderer.GetMapCoordinates(mousepos);
|
mousemappos = renderer2d.GetMapCoordinates(mousepos);
|
||||||
mousebuttons = e.Button;
|
mousebuttons = e.Button;
|
||||||
|
|
||||||
// Update labels in main window
|
// Update labels in main window
|
||||||
|
@ -370,7 +372,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
// This just refreshes the display
|
// This just refreshes the display
|
||||||
public override void RefreshDisplay()
|
public override void RefreshDisplay()
|
||||||
{
|
{
|
||||||
renderer.Present();
|
renderer2d.Present();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -378,7 +380,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
#region ================== Methods
|
#region ================== Methods
|
||||||
|
|
||||||
// Override cancel method to bind it with its action
|
// Override cancel method to bind it with its action
|
||||||
[Action("cancelmode")]
|
[Action("cancelmode", BaseAction = true)]
|
||||||
public override void Cancel()
|
public override void Cancel()
|
||||||
{
|
{
|
||||||
cancelled = true;
|
cancelled = true;
|
||||||
|
|
|
@ -35,7 +35,7 @@ using CodeImp.DoomBuilder.Controls;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Editing
|
namespace CodeImp.DoomBuilder.Editing
|
||||||
{
|
{
|
||||||
public abstract class EditMode : IDisposable
|
public abstract class EditMode
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
@ -56,6 +56,10 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
|
|
||||||
public bool IsDisposed { get { return isdisposed; } }
|
public bool IsDisposed { get { return isdisposed; } }
|
||||||
|
|
||||||
|
// Unless overriden, this returns the name of this mode
|
||||||
|
// for checking the appropriate button on the toolbar.
|
||||||
|
public virtual string EditModeButtonName { get { return GetType().Name; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
@ -67,7 +71,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public virtual void Dispose()
|
public virtual void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
|
68
Source/Editing/EditModeAttribute.cs
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
|
||||||
|
#region ================== Copyright (c) 2007 Pascal vd Heiden
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
|
||||||
|
* This program is released under GNU General Public License
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Namespaces
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
namespace CodeImp.DoomBuilder.Editing
|
||||||
|
{
|
||||||
|
[AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = true)]
|
||||||
|
public class EditModeAttribute : Attribute
|
||||||
|
{
|
||||||
|
#region ================== Variables
|
||||||
|
|
||||||
|
// Properties
|
||||||
|
private string switchaction;
|
||||||
|
private string buttonimage;
|
||||||
|
private string buttondesc;
|
||||||
|
private int buttonorder;
|
||||||
|
private bool configspecific;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Properties
|
||||||
|
|
||||||
|
public string SwitchAction { get { return switchaction; } set { switchaction = value; } }
|
||||||
|
public string ButtonImage { get { return buttonimage; } set { buttonimage = value; } }
|
||||||
|
public string ButtonDesc { get { return buttondesc; } set { buttondesc = value; } }
|
||||||
|
public int ButtonOrder { get { return buttonorder; } set { buttonorder = value; } }
|
||||||
|
public bool ConfigSpecific { get { return configspecific; } set { configspecific = value; } }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
|
// Constructor
|
||||||
|
public EditModeAttribute()
|
||||||
|
{
|
||||||
|
// Initialize
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Methods
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
171
Source/Editing/EditModeInfo.cs
Normal file
|
@ -0,0 +1,171 @@
|
||||||
|
|
||||||
|
#region ================== Copyright (c) 2007 Pascal vd Heiden
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
|
||||||
|
* This program is released under GNU General Public License
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Namespaces
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
using CodeImp.DoomBuilder.Controls;
|
||||||
|
using CodeImp.DoomBuilder.Plugins;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
namespace CodeImp.DoomBuilder.Editing
|
||||||
|
{
|
||||||
|
internal class EditModeInfo : IComparable<EditModeInfo>
|
||||||
|
{
|
||||||
|
#region ================== Constants
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Variables
|
||||||
|
|
||||||
|
// Mode type
|
||||||
|
private Plugin plugin;
|
||||||
|
private Type type;
|
||||||
|
private bool configspecific;
|
||||||
|
|
||||||
|
// Mode switching
|
||||||
|
private ActionAttribute switchactionattr = null;
|
||||||
|
private ActionDelegate switchactiondel = null;
|
||||||
|
|
||||||
|
// Mode button
|
||||||
|
private Stream buttonimagestream = null;
|
||||||
|
private Image buttonimage = null;
|
||||||
|
private string buttondesc = null;
|
||||||
|
private int buttonorder = int.MaxValue;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Properties
|
||||||
|
|
||||||
|
public Plugin Plugin { get { return plugin; } }
|
||||||
|
public Type Type { get { return type; } }
|
||||||
|
public ActionAttribute SwitchAction { get { return switchactionattr; } }
|
||||||
|
public Image ButtonImage { get { return buttonimage; } }
|
||||||
|
public string ButtonDesc { get { return buttondesc; } }
|
||||||
|
public bool ConfigSpecific { get { return configspecific; } }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
|
// Constructor
|
||||||
|
public EditModeInfo(Plugin plugin, Type type, EditModeAttribute attr)
|
||||||
|
{
|
||||||
|
// Initialize
|
||||||
|
this.plugin = plugin;
|
||||||
|
this.type = type;
|
||||||
|
this.configspecific = attr.ConfigSpecific;
|
||||||
|
|
||||||
|
// Make switch action info
|
||||||
|
if((attr.SwitchAction != null) && (attr.SwitchAction.Length > 0))
|
||||||
|
{
|
||||||
|
switchactionattr = new ActionAttribute(attr.SwitchAction);
|
||||||
|
switchactiondel = new ActionDelegate(SwitchToMode);
|
||||||
|
|
||||||
|
// Bind switch action
|
||||||
|
ActionAttribute.BindDelegate(plugin.Assembly, switchactiondel, switchactionattr);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make button info
|
||||||
|
if((attr.ButtonImage != null) && (attr.ButtonDesc != null))
|
||||||
|
{
|
||||||
|
buttonimagestream = plugin.FindResource(attr.ButtonImage);
|
||||||
|
if(buttonimagestream != null)
|
||||||
|
{
|
||||||
|
buttonimage = Image.FromStream(buttonimagestream);
|
||||||
|
buttondesc = attr.ButtonDesc;
|
||||||
|
buttonorder = attr.ButtonOrder;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// We have no destructor
|
||||||
|
GC.SuppressFinalize(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disposer
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
// Unbind switch action
|
||||||
|
if(switchactiondel != null) ActionAttribute.UnbindDelegate(plugin.Assembly, switchactiondel, switchactionattr);
|
||||||
|
buttonimage.Dispose();
|
||||||
|
buttonimagestream.Dispose();
|
||||||
|
|
||||||
|
// Clean up
|
||||||
|
plugin = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Methods
|
||||||
|
|
||||||
|
// This switches to the mode
|
||||||
|
public void SwitchToMode()
|
||||||
|
{
|
||||||
|
EditMode newmode;
|
||||||
|
|
||||||
|
// Only when a map is opened
|
||||||
|
if(General.Map != null)
|
||||||
|
{
|
||||||
|
// Create instance
|
||||||
|
newmode = plugin.CreateObject<EditMode>(type);
|
||||||
|
|
||||||
|
// Switch mode
|
||||||
|
General.Map.ChangeMode(newmode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// This switches to the mode with arguments
|
||||||
|
public void SwitchToMode(object[] args)
|
||||||
|
{
|
||||||
|
EditMode newmode;
|
||||||
|
|
||||||
|
// Only when a map is opened
|
||||||
|
if(General.Map != null)
|
||||||
|
{
|
||||||
|
// Create instance
|
||||||
|
newmode = plugin.CreateObjectA<EditMode>(type, args);
|
||||||
|
|
||||||
|
// Switch mode
|
||||||
|
General.Map.ChangeMode(newmode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// String representation
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return type.Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compare by button order
|
||||||
|
public int CompareTo(EditModeInfo other)
|
||||||
|
{
|
||||||
|
if(this.buttonorder > other.buttonorder) return 1;
|
||||||
|
else if(this.buttonorder < other.buttonorder) return -1;
|
||||||
|
else return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,12 +1,40 @@
|
||||||
|
|
||||||
|
#region ================== Copyright (c) 2007 Pascal vd Heiden
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
|
||||||
|
* This program is released under GNU General Public License
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Namespaces
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
using CodeImp.DoomBuilder.Interface;
|
||||||
|
using CodeImp.DoomBuilder.IO;
|
||||||
|
using CodeImp.DoomBuilder.Map;
|
||||||
|
using CodeImp.DoomBuilder.Rendering;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using CodeImp.DoomBuilder.Controls;
|
||||||
using CodeImp.DoomBuilder.Data;
|
using CodeImp.DoomBuilder.Data;
|
||||||
using SlimDX.Direct3D9;
|
|
||||||
using CodeImp.DoomBuilder.Geometry;
|
using CodeImp.DoomBuilder.Geometry;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Editing
|
namespace CodeImp.DoomBuilder.Editing
|
||||||
{
|
{
|
||||||
public class GridSetup
|
public class GridSetup
|
||||||
|
@ -39,18 +67,18 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
|
|
||||||
public int GridSize { get { return gridsize; } }
|
public int GridSize { get { return gridsize; } }
|
||||||
public float GridSizeF { get { return gridsizef; } }
|
public float GridSizeF { get { return gridsizef; } }
|
||||||
public string BackgroundName { get { return background; } }
|
internal string BackgroundName { get { return background; } }
|
||||||
public int BackgroundSource { get { return backsource; } }
|
internal int BackgroundSource { get { return backsource; } }
|
||||||
public ImageData Background { get { return backimage; } }
|
internal ImageData Background { get { return backimage; } }
|
||||||
public int BackgroundX { get { return backoffsetx; } }
|
internal int BackgroundX { get { return backoffsetx; } }
|
||||||
public int BackgroundY { get { return backoffsety; } }
|
internal int BackgroundY { get { return backoffsety; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public GridSetup()
|
internal GridSetup()
|
||||||
{
|
{
|
||||||
// Initialize
|
// Initialize
|
||||||
SetGridSize(DEFAULT_GRID_SIZE);
|
SetGridSize(DEFAULT_GRID_SIZE);
|
||||||
|
@ -64,7 +92,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
#region ================== Methods
|
#region ================== Methods
|
||||||
|
|
||||||
// This sets the grid size
|
// This sets the grid size
|
||||||
public void SetGridSize(int size)
|
internal void SetGridSize(int size)
|
||||||
{
|
{
|
||||||
// Change grid
|
// Change grid
|
||||||
this.gridsize = size;
|
this.gridsize = size;
|
||||||
|
@ -76,7 +104,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
}
|
}
|
||||||
|
|
||||||
// This sets the background
|
// This sets the background
|
||||||
public void SetBackground(string name, int source)
|
internal void SetBackground(string name, int source)
|
||||||
{
|
{
|
||||||
// Set background
|
// Set background
|
||||||
if(name == null) name = "";
|
if(name == null) name = "";
|
||||||
|
@ -88,7 +116,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
}
|
}
|
||||||
|
|
||||||
// This sets the background offset
|
// This sets the background offset
|
||||||
public void SetBackgroundOffset(int offsetx, int offsety)
|
internal void SetBackgroundOffset(int offsetx, int offsety)
|
||||||
{
|
{
|
||||||
// Set background offset
|
// Set background offset
|
||||||
this.backoffsetx = offsetx;
|
this.backoffsetx = offsetx;
|
||||||
|
@ -96,7 +124,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
}
|
}
|
||||||
|
|
||||||
// This finds and links the background image
|
// This finds and links the background image
|
||||||
public void LinkBackground()
|
internal void LinkBackground()
|
||||||
{
|
{
|
||||||
// From textures?
|
// From textures?
|
||||||
if(backsource == SOURCE_TEXTURES)
|
if(backsource == SOURCE_TEXTURES)
|
||||||
|
|
|
@ -35,7 +35,7 @@ using CodeImp.DoomBuilder.Controls;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Editing
|
namespace CodeImp.DoomBuilder.Editing
|
||||||
{
|
{
|
||||||
public class UndoManager : IDisposable
|
public class UndoManager
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
@ -61,8 +61,8 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
|
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
|
||||||
public UndoSnapshot NextUndo { get { if(undos.Count > 0) return undos[0]; else return null; } }
|
internal UndoSnapshot NextUndo { get { if(undos.Count > 0) return undos[0]; else return null; } }
|
||||||
public UndoSnapshot NextRedo { get { if(redos.Count > 0) return redos[0]; else return null; } }
|
internal UndoSnapshot NextRedo { get { if(redos.Count > 0) return redos[0]; else return null; } }
|
||||||
public bool IsDisposed { get { return isdisposed; } }
|
public bool IsDisposed { get { return isdisposed; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -70,7 +70,7 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public UndoManager()
|
internal UndoManager()
|
||||||
{
|
{
|
||||||
// Initialize
|
// Initialize
|
||||||
ticketid = 1;
|
ticketid = 1;
|
||||||
|
@ -84,8 +84,8 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public void Dispose()
|
internal void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
if(!isdisposed)
|
if(!isdisposed)
|
||||||
|
|
|
@ -35,7 +35,7 @@ using CodeImp.DoomBuilder.Controls;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Editing
|
namespace CodeImp.DoomBuilder.Editing
|
||||||
{
|
{
|
||||||
public class UndoSnapshot
|
internal class UndoSnapshot
|
||||||
{
|
{
|
||||||
public MapSet map;
|
public MapSet map;
|
||||||
public string description;
|
public string description;
|
||||||
|
|
|
@ -28,7 +28,7 @@ using System.Diagnostics;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder
|
namespace CodeImp.DoomBuilder
|
||||||
{
|
{
|
||||||
public class Clock : IDisposable
|
public class Clock
|
||||||
{
|
{
|
||||||
#region ================== Declarations
|
#region ================== Declarations
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ namespace CodeImp.DoomBuilder
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
|
|
@ -35,6 +35,7 @@ using CodeImp.DoomBuilder.Rendering;
|
||||||
using CodeImp.DoomBuilder.Config;
|
using CodeImp.DoomBuilder.Config;
|
||||||
using SlimDX.Direct3D9;
|
using SlimDX.Direct3D9;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using CodeImp.DoomBuilder.Plugins;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -45,37 +46,37 @@ namespace CodeImp.DoomBuilder
|
||||||
#region ================== API Declarations
|
#region ================== API Declarations
|
||||||
|
|
||||||
//[DllImport("user32.dll")]
|
//[DllImport("user32.dll")]
|
||||||
//public static extern bool LockWindowUpdate(IntPtr hwnd);
|
//internal static extern bool LockWindowUpdate(IntPtr hwnd);
|
||||||
|
|
||||||
[DllImport("kernel32.dll", EntryPoint="RtlZeroMemory", SetLastError=false)]
|
[DllImport("kernel32.dll", EntryPoint="RtlZeroMemory", SetLastError=false)]
|
||||||
public static extern void ZeroMemory(IntPtr dest, int size);
|
internal static extern void ZeroMemory(IntPtr dest, int size);
|
||||||
|
|
||||||
[DllImport("kernel32.dll", EntryPoint = "RtlMoveMemory", SetLastError = false)]
|
[DllImport("kernel32.dll", EntryPoint = "RtlMoveMemory", SetLastError = false)]
|
||||||
public static extern unsafe void CopyMemory(void* dst, void* src, UIntPtr length);
|
internal static extern unsafe void CopyMemory(void* dst, void* src, UIntPtr length);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
// Memory APIs
|
// Memory APIs
|
||||||
public const uint MEM_COMMIT = 0x1000;
|
internal const uint MEM_COMMIT = 0x1000;
|
||||||
public const uint MEM_RESERVE = 0x2000;
|
internal const uint MEM_RESERVE = 0x2000;
|
||||||
public const uint MEM_DECOMMIT = 0x4000;
|
internal const uint MEM_DECOMMIT = 0x4000;
|
||||||
public const uint MEM_RELEASE = 0x8000;
|
internal const uint MEM_RELEASE = 0x8000;
|
||||||
public const uint MEM_RESET = 0x80000;
|
internal const uint MEM_RESET = 0x80000;
|
||||||
public const uint MEM_TOP_DOWN = 0x100000;
|
internal const uint MEM_TOP_DOWN = 0x100000;
|
||||||
public const uint MEM_PHYSICAL = 0x400000;
|
internal const uint MEM_PHYSICAL = 0x400000;
|
||||||
public const uint PAGE_NOACCESS = 0x01;
|
internal const uint PAGE_NOACCESS = 0x01;
|
||||||
public const uint PAGE_READONLY = 0x02;
|
internal const uint PAGE_READONLY = 0x02;
|
||||||
public const uint PAGE_READWRITE = 0x04;
|
internal const uint PAGE_READWRITE = 0x04;
|
||||||
public const uint PAGE_WRITECOPY = 0x08;
|
internal const uint PAGE_WRITECOPY = 0x08;
|
||||||
public const uint PAGE_EXECUTE = 0x10;
|
internal const uint PAGE_EXECUTE = 0x10;
|
||||||
public const uint PAGE_EXECUTE_READ = 0x20;
|
internal const uint PAGE_EXECUTE_READ = 0x20;
|
||||||
public const uint PAGE_EXECUTE_READWRITE = 0x40;
|
internal const uint PAGE_EXECUTE_READWRITE = 0x40;
|
||||||
public const uint PAGE_EXECUTE_WRITECOPY = 0x80;
|
internal const uint PAGE_EXECUTE_WRITECOPY = 0x80;
|
||||||
public const uint PAGE_GUARD = 0x100;
|
internal const uint PAGE_GUARD = 0x100;
|
||||||
public const uint PAGE_NOCACHE = 0x200;
|
internal const uint PAGE_NOCACHE = 0x200;
|
||||||
public const uint PAGE_WRITECOMBINE = 0x400;
|
internal const uint PAGE_WRITECOMBINE = 0x400;
|
||||||
|
|
||||||
// Files and Folders
|
// Files and Folders
|
||||||
private const string SETTINGS_FILE = "Builder.cfg";
|
private const string SETTINGS_FILE = "Builder.cfg";
|
||||||
|
@ -83,6 +84,7 @@ namespace CodeImp.DoomBuilder
|
||||||
private const string LOG_FILE = "Builder.log";
|
private const string LOG_FILE = "Builder.log";
|
||||||
private const string GAME_CONFIGS_DIR = "Configurations";
|
private const string GAME_CONFIGS_DIR = "Configurations";
|
||||||
private const string COMPILERS_DIR = "Compilers";
|
private const string COMPILERS_DIR = "Compilers";
|
||||||
|
private const string PLUGINS_DIR = "Plugins";
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -95,6 +97,7 @@ namespace CodeImp.DoomBuilder
|
||||||
private static string temppath;
|
private static string temppath;
|
||||||
private static string configspath;
|
private static string configspath;
|
||||||
private static string compilerspath;
|
private static string compilerspath;
|
||||||
|
private static string pluginspath;
|
||||||
|
|
||||||
// Main objects
|
// Main objects
|
||||||
private static Assembly thisasm;
|
private static Assembly thisasm;
|
||||||
|
@ -102,6 +105,7 @@ namespace CodeImp.DoomBuilder
|
||||||
private static ProgramConfiguration settings;
|
private static ProgramConfiguration settings;
|
||||||
private static MapManager map;
|
private static MapManager map;
|
||||||
private static ActionManager actions;
|
private static ActionManager actions;
|
||||||
|
private static PluginManager plugins;
|
||||||
private static ColorCollection colors;
|
private static ColorCollection colors;
|
||||||
private static Clock clock;
|
private static Clock clock;
|
||||||
|
|
||||||
|
@ -114,19 +118,22 @@ namespace CodeImp.DoomBuilder
|
||||||
|
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
|
||||||
public static Assembly ThisAssembly { get { return thisasm; } }
|
internal static Assembly ThisAssembly { get { return thisasm; } }
|
||||||
public static string AppPath { get { return apppath; } }
|
public static string AppPath { get { return apppath; } }
|
||||||
public static string TempPath { get { return temppath; } }
|
public static string TempPath { get { return temppath; } }
|
||||||
public static string ConfigsPath { get { return configspath; } }
|
public static string ConfigsPath { get { return configspath; } }
|
||||||
public static string CompilersPath { get { return compilerspath; } }
|
public static string CompilersPath { get { return compilerspath; } }
|
||||||
public static MainForm MainWindow { get { return mainwindow; } }
|
public static string PluginsPath { get { return pluginspath; } }
|
||||||
|
internal static MainForm MainWindow { get { return mainwindow; } }
|
||||||
|
public static IMainForm Interface { get { return mainwindow; } }
|
||||||
public static ProgramConfiguration Settings { get { return settings; } }
|
public static ProgramConfiguration Settings { get { return settings; } }
|
||||||
public static ColorCollection Colors { get { return colors; } }
|
public static ColorCollection Colors { get { return colors; } }
|
||||||
public static List<ConfigurationInfo> Configs { get { return configs; } }
|
internal static List<ConfigurationInfo> Configs { get { return configs; } }
|
||||||
public static List<NodebuilderInfo> Nodebuilders { get { return nodebuilders; } }
|
internal static List<NodebuilderInfo> Nodebuilders { get { return nodebuilders; } }
|
||||||
public static List<CompilerInfo> Compilers { get { return compilers; } }
|
internal static List<CompilerInfo> Compilers { get { return compilers; } }
|
||||||
public static MapManager Map { get { return map; } }
|
public static MapManager Map { get { return map; } }
|
||||||
public static ActionManager Actions { get { return actions; } }
|
internal static ActionManager Actions { get { return actions; } }
|
||||||
|
internal static PluginManager Plugins { get { return plugins; } }
|
||||||
public static Clock Clock { get { return clock; } }
|
public static Clock Clock { get { return clock; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -134,7 +141,7 @@ namespace CodeImp.DoomBuilder
|
||||||
#region ================== Configurations
|
#region ================== Configurations
|
||||||
|
|
||||||
// This returns the game configuration info by filename
|
// This returns the game configuration info by filename
|
||||||
public static ConfigurationInfo GetConfigurationInfo(string filename)
|
internal static ConfigurationInfo GetConfigurationInfo(string filename)
|
||||||
{
|
{
|
||||||
// Go for all config infos
|
// Go for all config infos
|
||||||
foreach(ConfigurationInfo ci in configs)
|
foreach(ConfigurationInfo ci in configs)
|
||||||
|
@ -153,7 +160,7 @@ namespace CodeImp.DoomBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
// This loads and returns a game configuration
|
// This loads and returns a game configuration
|
||||||
public static Configuration LoadGameConfiguration(string filename)
|
internal static Configuration LoadGameConfiguration(string filename)
|
||||||
{
|
{
|
||||||
Configuration cfg;
|
Configuration cfg;
|
||||||
|
|
||||||
|
@ -347,7 +354,7 @@ namespace CodeImp.DoomBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
// This returns a nodebuilder by name
|
// This returns a nodebuilder by name
|
||||||
public static NodebuilderInfo GetNodebuilderByName(string name)
|
internal static NodebuilderInfo GetNodebuilderByName(string name)
|
||||||
{
|
{
|
||||||
// Go for all nodebuilders
|
// Go for all nodebuilders
|
||||||
foreach(NodebuilderInfo n in nodebuilders)
|
foreach(NodebuilderInfo n in nodebuilders)
|
||||||
|
@ -366,7 +373,7 @@ namespace CodeImp.DoomBuilder
|
||||||
|
|
||||||
// Main program entry
|
// Main program entry
|
||||||
[STAThread]
|
[STAThread]
|
||||||
public static void Main(string[] args)
|
internal static void Main(string[] args)
|
||||||
{
|
{
|
||||||
Uri localpath;
|
Uri localpath;
|
||||||
Version thisversion;
|
Version thisversion;
|
||||||
|
@ -388,6 +395,7 @@ namespace CodeImp.DoomBuilder
|
||||||
settingspath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), SETTINGS_DIR);
|
settingspath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), SETTINGS_DIR);
|
||||||
configspath = Path.Combine(apppath, GAME_CONFIGS_DIR);
|
configspath = Path.Combine(apppath, GAME_CONFIGS_DIR);
|
||||||
compilerspath = Path.Combine(apppath, COMPILERS_DIR);
|
compilerspath = Path.Combine(apppath, COMPILERS_DIR);
|
||||||
|
pluginspath = Path.Combine(apppath, PLUGINS_DIR);
|
||||||
logfile = Path.Combine(settingspath, LOG_FILE);
|
logfile = Path.Combine(settingspath, LOG_FILE);
|
||||||
|
|
||||||
// Make program settings directory if missing
|
// Make program settings directory if missing
|
||||||
|
@ -401,6 +409,7 @@ namespace CodeImp.DoomBuilder
|
||||||
General.WriteLogLine("Local settings path: " + settingspath);
|
General.WriteLogLine("Local settings path: " + settingspath);
|
||||||
General.WriteLogLine("Configurations path: " + configspath);
|
General.WriteLogLine("Configurations path: " + configspath);
|
||||||
General.WriteLogLine("Compilers path: " + compilerspath);
|
General.WriteLogLine("Compilers path: " + compilerspath);
|
||||||
|
General.WriteLogLine("Plugins path: " + pluginspath);
|
||||||
|
|
||||||
// Load configuration
|
// Load configuration
|
||||||
General.WriteLogLine("Loading program configuration...");
|
General.WriteLogLine("Loading program configuration...");
|
||||||
|
@ -428,6 +437,10 @@ namespace CodeImp.DoomBuilder
|
||||||
General.WriteLogLine("Starting Direct3D graphics driver...");
|
General.WriteLogLine("Starting Direct3D graphics driver...");
|
||||||
Direct3D.Initialize();
|
Direct3D.Initialize();
|
||||||
|
|
||||||
|
// Load plugin manager
|
||||||
|
General.WriteLogLine("Loading plugins...");
|
||||||
|
plugins = new PluginManager();
|
||||||
|
|
||||||
// Load game configurations
|
// Load game configurations
|
||||||
General.WriteLogLine("Loading game configurations...");
|
General.WriteLogLine("Loading game configurations...");
|
||||||
LoadAllGameConfigurations();
|
LoadAllGameConfigurations();
|
||||||
|
@ -465,7 +478,7 @@ namespace CodeImp.DoomBuilder
|
||||||
#region ================== Terminate
|
#region ================== Terminate
|
||||||
|
|
||||||
// This terminates the program
|
// This terminates the program
|
||||||
public static void Terminate(bool properexit)
|
internal static void Terminate(bool properexit)
|
||||||
{
|
{
|
||||||
// Terminate properly?
|
// Terminate properly?
|
||||||
if(properexit)
|
if(properexit)
|
||||||
|
@ -481,6 +494,7 @@ namespace CodeImp.DoomBuilder
|
||||||
mainwindow.Dispose();
|
mainwindow.Dispose();
|
||||||
actions.Dispose();
|
actions.Dispose();
|
||||||
clock.Dispose();
|
clock.Dispose();
|
||||||
|
plugins.Dispose();
|
||||||
Direct3D.Terminate();
|
Direct3D.Terminate();
|
||||||
|
|
||||||
// Save colors
|
// Save colors
|
||||||
|
@ -514,7 +528,7 @@ namespace CodeImp.DoomBuilder
|
||||||
|
|
||||||
// This creates a new map
|
// This creates a new map
|
||||||
[Action("newmap")]
|
[Action("newmap")]
|
||||||
public static void NewMap()
|
internal static void NewMap()
|
||||||
{
|
{
|
||||||
MapOptions newoptions = new MapOptions();
|
MapOptions newoptions = new MapOptions();
|
||||||
MapOptionsForm optionswindow;
|
MapOptionsForm optionswindow;
|
||||||
|
@ -562,7 +576,7 @@ namespace CodeImp.DoomBuilder
|
||||||
|
|
||||||
// This closes the current map
|
// This closes the current map
|
||||||
[Action("closemap")]
|
[Action("closemap")]
|
||||||
public static void CloseMap()
|
internal static void CloseMap()
|
||||||
{
|
{
|
||||||
// Ask the user to save changes (if any)
|
// Ask the user to save changes (if any)
|
||||||
if(General.AskSaveMap())
|
if(General.AskSaveMap())
|
||||||
|
@ -589,7 +603,7 @@ namespace CodeImp.DoomBuilder
|
||||||
|
|
||||||
// This loads a map from file
|
// This loads a map from file
|
||||||
[Action("openmap")]
|
[Action("openmap")]
|
||||||
public static void OpenMap()
|
internal static void OpenMap()
|
||||||
{
|
{
|
||||||
OpenFileDialog openfile;
|
OpenFileDialog openfile;
|
||||||
|
|
||||||
|
@ -612,7 +626,7 @@ namespace CodeImp.DoomBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
// This opens the specified file
|
// This opens the specified file
|
||||||
public static void OpenMapFile(string filename)
|
internal static void OpenMapFile(string filename)
|
||||||
{
|
{
|
||||||
OpenMapOptionsForm openmapwindow;
|
OpenMapOptionsForm openmapwindow;
|
||||||
|
|
||||||
|
@ -660,7 +674,7 @@ namespace CodeImp.DoomBuilder
|
||||||
|
|
||||||
// This saves the current map
|
// This saves the current map
|
||||||
[Action("savemap")]
|
[Action("savemap")]
|
||||||
public static void SaveMap()
|
internal static void SaveMap()
|
||||||
{
|
{
|
||||||
// Check if a wad file is known
|
// Check if a wad file is known
|
||||||
if(map.FilePathName == "")
|
if(map.FilePathName == "")
|
||||||
|
@ -690,7 +704,7 @@ namespace CodeImp.DoomBuilder
|
||||||
|
|
||||||
// This saves the current map as a different file
|
// This saves the current map as a different file
|
||||||
[Action("savemapas")]
|
[Action("savemapas")]
|
||||||
public static void SaveMapAs()
|
internal static void SaveMapAs()
|
||||||
{
|
{
|
||||||
SaveFileDialog savefile;
|
SaveFileDialog savefile;
|
||||||
|
|
||||||
|
@ -724,7 +738,7 @@ namespace CodeImp.DoomBuilder
|
||||||
|
|
||||||
// This asks to save the map if needed
|
// This asks to save the map if needed
|
||||||
// Returns false when action was cancelled
|
// Returns false when action was cancelled
|
||||||
public static bool AskSaveMap()
|
internal static bool AskSaveMap()
|
||||||
{
|
{
|
||||||
DialogResult result;
|
DialogResult result;
|
||||||
|
|
||||||
|
@ -800,13 +814,13 @@ namespace CodeImp.DoomBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert bool to integer
|
// Convert bool to integer
|
||||||
public static int Bool2Int(bool v)
|
internal static int Bool2Int(bool v)
|
||||||
{
|
{
|
||||||
if(v) return 1; else return 0;
|
if(v) return 1; else return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert integer to bool
|
// Convert integer to bool
|
||||||
public static bool Int2Bool(int v)
|
internal static bool Int2Bool(int v)
|
||||||
{
|
{
|
||||||
return (v != 0);
|
return (v != 0);
|
||||||
}
|
}
|
||||||
|
@ -864,7 +878,7 @@ namespace CodeImp.DoomBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
// This returns a unique temp filename
|
// This returns a unique temp filename
|
||||||
public static string MakeTempFilename(string tempdir)
|
internal static string MakeTempFilename(string tempdir)
|
||||||
{
|
{
|
||||||
string filename;
|
string filename;
|
||||||
string chars = "abcdefghijklmnopqrstuvwxyz1234567890";
|
string chars = "abcdefghijklmnopqrstuvwxyz1234567890";
|
||||||
|
@ -886,7 +900,7 @@ namespace CodeImp.DoomBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
// This returns a unique temp directory name
|
// This returns a unique temp directory name
|
||||||
public static string MakeTempDirname()
|
internal static string MakeTempDirname()
|
||||||
{
|
{
|
||||||
string dirname;
|
string dirname;
|
||||||
string chars = "abcdefghijklmnopqrstuvwxyz1234567890";
|
string chars = "abcdefghijklmnopqrstuvwxyz1234567890";
|
||||||
|
@ -977,7 +991,7 @@ namespace CodeImp.DoomBuilder
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
[Action("testaction")]
|
[Action("testaction")]
|
||||||
public static void TestAction()
|
internal static void TestAction()
|
||||||
{
|
{
|
||||||
TextureBrowserForm t = new TextureBrowserForm();
|
TextureBrowserForm t = new TextureBrowserForm();
|
||||||
t.ShowDialog(mainwindow);
|
t.ShowDialog(mainwindow);
|
||||||
|
|
|
@ -24,21 +24,22 @@ using System.Text;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Diagnostics;
|
||||||
using CodeImp.DoomBuilder.Interface;
|
using CodeImp.DoomBuilder.Interface;
|
||||||
using CodeImp.DoomBuilder.IO;
|
using CodeImp.DoomBuilder.IO;
|
||||||
using CodeImp.DoomBuilder.Map;
|
using CodeImp.DoomBuilder.Map;
|
||||||
using CodeImp.DoomBuilder.Editing;
|
using CodeImp.DoomBuilder.Editing;
|
||||||
using System.Diagnostics;
|
|
||||||
using CodeImp.DoomBuilder.Rendering;
|
using CodeImp.DoomBuilder.Rendering;
|
||||||
using CodeImp.DoomBuilder.Data;
|
using CodeImp.DoomBuilder.Data;
|
||||||
using CodeImp.DoomBuilder.Controls;
|
using CodeImp.DoomBuilder.Controls;
|
||||||
using CodeImp.DoomBuilder.Config;
|
using CodeImp.DoomBuilder.Config;
|
||||||
|
using CodeImp.DoomBuilder.Plugins;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder
|
namespace CodeImp.DoomBuilder
|
||||||
{
|
{
|
||||||
public class MapManager : IDisposable
|
public class MapManager
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
@ -89,16 +90,16 @@ namespace CodeImp.DoomBuilder
|
||||||
public string FilePathName { get { return filepathname; } }
|
public string FilePathName { get { return filepathname; } }
|
||||||
public string FileTitle { get { return filetitle; } }
|
public string FileTitle { get { return filetitle; } }
|
||||||
public string TempPath { get { return temppath; } }
|
public string TempPath { get { return temppath; } }
|
||||||
public MapOptions Options { get { return options; } }
|
internal MapOptions Options { get { return options; } }
|
||||||
public MapSet Map { get { return map; } }
|
public MapSet Map { get { return map; } }
|
||||||
public EditMode Mode { get { return mode; } }
|
public EditMode Mode { get { return mode; } }
|
||||||
public EditMode NewMode { get { return newmode; } }
|
public EditMode NewMode { get { return newmode; } }
|
||||||
public DataManager Data { get { return data; } }
|
public DataManager Data { get { return data; } }
|
||||||
public bool IsChanged { get { return changed; } set { changed |= value; } }
|
public bool IsChanged { get { return changed; } set { changed |= value; } }
|
||||||
public bool IsDisposed { get { return isdisposed; } }
|
public bool IsDisposed { get { return isdisposed; } }
|
||||||
public D3DDevice Graphics { get { return graphics; } }
|
internal D3DDevice Graphics { get { return graphics; } }
|
||||||
public Renderer2D Renderer2D { get { return renderer2d; } }
|
public IRenderer2D Renderer2D { get { return renderer2d; } }
|
||||||
public Renderer3D Renderer3D { get { return renderer3d; } }
|
public IRenderer3D Renderer3D { get { return renderer3d; } }
|
||||||
public GameConfiguration Config { get { return config; } }
|
public GameConfiguration Config { get { return config; } }
|
||||||
public GridSetup Grid { get { return grid; } }
|
public GridSetup Grid { get { return grid; } }
|
||||||
public UndoManager UndoRedo { get { return undoredo; } }
|
public UndoManager UndoRedo { get { return undoredo; } }
|
||||||
|
@ -109,7 +110,7 @@ namespace CodeImp.DoomBuilder
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public MapManager()
|
internal MapManager()
|
||||||
{
|
{
|
||||||
// We have no destructor
|
// We have no destructor
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
|
@ -117,17 +118,16 @@ namespace CodeImp.DoomBuilder
|
||||||
// Basic objects
|
// Basic objects
|
||||||
grid = new GridSetup();
|
grid = new GridSetup();
|
||||||
undoredo = new UndoManager();
|
undoredo = new UndoManager();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public void Dispose()
|
internal void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
if(!isdisposed)
|
if(!isdisposed)
|
||||||
{
|
{
|
||||||
// Change to no mode
|
// Change to no mode
|
||||||
ChangeMode(null);
|
ChangeMode((EditMode)null);
|
||||||
|
|
||||||
// Unbind any methods
|
// Unbind any methods
|
||||||
ActionAttribute.UnbindMethods(this);
|
ActionAttribute.UnbindMethods(this);
|
||||||
|
@ -168,7 +168,7 @@ namespace CodeImp.DoomBuilder
|
||||||
#region ================== New / Open
|
#region ================== New / Open
|
||||||
|
|
||||||
// Initializes for a new map
|
// Initializes for a new map
|
||||||
public bool InitializeNewMap(MapOptions options)
|
internal bool InitializeNewMap(MapOptions options)
|
||||||
{
|
{
|
||||||
string tempfile;
|
string tempfile;
|
||||||
|
|
||||||
|
@ -198,6 +198,7 @@ namespace CodeImp.DoomBuilder
|
||||||
General.WriteLogLine("Loading game configuration...");
|
General.WriteLogLine("Loading game configuration...");
|
||||||
configinfo = General.GetConfigurationInfo(options.ConfigFile);
|
configinfo = General.GetConfigurationInfo(options.ConfigFile);
|
||||||
config = new GameConfiguration(General.LoadGameConfiguration(options.ConfigFile));
|
config = new GameConfiguration(General.LoadGameConfiguration(options.ConfigFile));
|
||||||
|
General.Plugins.GameConfigurationChanged();
|
||||||
|
|
||||||
// Create map data
|
// Create map data
|
||||||
map = new MapSet();
|
map = new MapSet();
|
||||||
|
@ -226,7 +227,7 @@ namespace CodeImp.DoomBuilder
|
||||||
ActionAttribute.BindMethods(this);
|
ActionAttribute.BindMethods(this);
|
||||||
|
|
||||||
// Set default mode
|
// Set default mode
|
||||||
ChangeMode(new VerticesMode());
|
ChangeMode("VerticesMode");
|
||||||
|
|
||||||
// Success
|
// Success
|
||||||
General.WriteLogLine("Map creation done");
|
General.WriteLogLine("Map creation done");
|
||||||
|
@ -234,7 +235,7 @@ namespace CodeImp.DoomBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initializes for an existing map
|
// Initializes for an existing map
|
||||||
public bool InitializeOpenMap(string filepathname, MapOptions options)
|
internal bool InitializeOpenMap(string filepathname, MapOptions options)
|
||||||
{
|
{
|
||||||
WAD mapwad;
|
WAD mapwad;
|
||||||
string tempfile;
|
string tempfile;
|
||||||
|
@ -266,6 +267,7 @@ namespace CodeImp.DoomBuilder
|
||||||
General.WriteLogLine("Loading game configuration...");
|
General.WriteLogLine("Loading game configuration...");
|
||||||
configinfo = General.GetConfigurationInfo(options.ConfigFile);
|
configinfo = General.GetConfigurationInfo(options.ConfigFile);
|
||||||
config = new GameConfiguration(General.LoadGameConfiguration(options.ConfigFile));
|
config = new GameConfiguration(General.LoadGameConfiguration(options.ConfigFile));
|
||||||
|
General.Plugins.GameConfigurationChanged();
|
||||||
|
|
||||||
// Create map data
|
// Create map data
|
||||||
map = new MapSet();
|
map = new MapSet();
|
||||||
|
@ -312,7 +314,7 @@ namespace CodeImp.DoomBuilder
|
||||||
ActionAttribute.BindMethods(this);
|
ActionAttribute.BindMethods(this);
|
||||||
|
|
||||||
// Set default mode
|
// Set default mode
|
||||||
ChangeMode(new VerticesMode());
|
ChangeMode("VerticesMode");
|
||||||
|
|
||||||
// Center map in screen
|
// Center map in screen
|
||||||
(General.Map.Mode as ClassicMode).CenterInScreen();
|
(General.Map.Mode as ClassicMode).CenterInScreen();
|
||||||
|
@ -327,7 +329,7 @@ namespace CodeImp.DoomBuilder
|
||||||
#region ================== Save
|
#region ================== Save
|
||||||
|
|
||||||
// Initializes for an existing map
|
// Initializes for an existing map
|
||||||
public bool SaveMap(string newfilepathname, int savemode)
|
internal bool SaveMap(string newfilepathname, int savemode)
|
||||||
{
|
{
|
||||||
MapSet outputset;
|
MapSet outputset;
|
||||||
string nodebuildername, oldstatus, settingsfile;
|
string nodebuildername, oldstatus, settingsfile;
|
||||||
|
@ -757,7 +759,7 @@ namespace CodeImp.DoomBuilder
|
||||||
|
|
||||||
// This finds a lump within the range of known lump names
|
// This finds a lump within the range of known lump names
|
||||||
// Returns -1 when the lump cannot be found
|
// Returns -1 when the lump cannot be found
|
||||||
public static int FindSpecificLump(WAD source, string lumpname, int mapheaderindex, string mapheadername, IDictionary maplumps)
|
internal static int FindSpecificLump(WAD source, string lumpname, int mapheaderindex, string mapheadername, IDictionary maplumps)
|
||||||
{
|
{
|
||||||
// Use the configured map lump names to find the specific lump within range,
|
// Use the configured map lump names to find the specific lump within range,
|
||||||
// because when an unknown lump is met, this search must stop.
|
// because when an unknown lump is met, this search must stop.
|
||||||
|
@ -793,7 +795,7 @@ namespace CodeImp.DoomBuilder
|
||||||
|
|
||||||
// This removes a specific lump and returns the position where the lump was removed
|
// This removes a specific lump and returns the position where the lump was removed
|
||||||
// Returns -1 when the lump could not be found
|
// Returns -1 when the lump could not be found
|
||||||
public static int RemoveSpecificLump(WAD source, string lumpname, int mapheaderindex, string mapheadername, IDictionary maplumps)
|
internal static int RemoveSpecificLump(WAD source, string lumpname, int mapheaderindex, string mapheadername, IDictionary maplumps)
|
||||||
{
|
{
|
||||||
int lumpindex;
|
int lumpindex;
|
||||||
|
|
||||||
|
@ -846,6 +848,12 @@ namespace CodeImp.DoomBuilder
|
||||||
// Apply new mode
|
// Apply new mode
|
||||||
mode = newmode;
|
mode = newmode;
|
||||||
|
|
||||||
|
// Check appropriate button on interface
|
||||||
|
if(newmode != null)
|
||||||
|
General.MainWindow.CheckEditModeButton(newmode.EditModeButtonName);
|
||||||
|
else
|
||||||
|
General.MainWindow.CheckEditModeButton("");
|
||||||
|
|
||||||
// Engage new mode
|
// Engage new mode
|
||||||
if(newmode != null) newmode.Engage();
|
if(newmode != null) newmode.Engage();
|
||||||
|
|
||||||
|
@ -859,36 +867,11 @@ namespace CodeImp.DoomBuilder
|
||||||
General.MainWindow.RedrawDisplay();
|
General.MainWindow.RedrawDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
// This switches to vertices mode
|
// This changes mode by class name and optionally with arguments
|
||||||
[Action("verticesmode")]
|
public void ChangeMode(string classname, params object[] args)
|
||||||
public void SwitchVerticesMode()
|
|
||||||
{
|
{
|
||||||
// Change to vertices mode
|
EditModeInfo emi = General.Plugins.GetEditModeInfo(classname);
|
||||||
ChangeMode(new VerticesMode());
|
if(emi != null) emi.SwitchToMode(args);
|
||||||
}
|
|
||||||
|
|
||||||
// This switches to linedefs mode
|
|
||||||
[Action("linedefsmode")]
|
|
||||||
public void SwitchLinedefsMode()
|
|
||||||
{
|
|
||||||
// Change to linedefs mode
|
|
||||||
ChangeMode(new LinedefsMode());
|
|
||||||
}
|
|
||||||
|
|
||||||
// This switches to sectors mode
|
|
||||||
[Action("sectorsmode")]
|
|
||||||
public void SwitchSectorsMode()
|
|
||||||
{
|
|
||||||
// Change to sectors mode
|
|
||||||
ChangeMode(new SectorsMode());
|
|
||||||
}
|
|
||||||
|
|
||||||
// This switches to things mode
|
|
||||||
[Action("thingsmode")]
|
|
||||||
public void SwitchThingsMode()
|
|
||||||
{
|
|
||||||
// Change to things mode
|
|
||||||
ChangeMode(new ThingsMode());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -907,7 +890,7 @@ namespace CodeImp.DoomBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
// This sets a new mapset for editing
|
// This sets a new mapset for editing
|
||||||
public void ChangeMapSet(MapSet newmap)
|
internal void ChangeMapSet(MapSet newmap)
|
||||||
{
|
{
|
||||||
// Can't have a selection in an old map set
|
// Can't have a selection in an old map set
|
||||||
map.ClearAllSelected();
|
map.ClearAllSelected();
|
||||||
|
@ -920,7 +903,7 @@ namespace CodeImp.DoomBuilder
|
||||||
|
|
||||||
// This reloads resources
|
// This reloads resources
|
||||||
[Action("reloadresources")]
|
[Action("reloadresources")]
|
||||||
public void ReloadResources()
|
internal void ReloadResources()
|
||||||
{
|
{
|
||||||
DataLocation maplocation;
|
DataLocation maplocation;
|
||||||
string oldstatus;
|
string oldstatus;
|
||||||
|
@ -945,6 +928,7 @@ namespace CodeImp.DoomBuilder
|
||||||
General.WriteLogLine("Reloading game configuration...");
|
General.WriteLogLine("Reloading game configuration...");
|
||||||
configinfo = General.GetConfigurationInfo(options.ConfigFile);
|
configinfo = General.GetConfigurationInfo(options.ConfigFile);
|
||||||
config = new GameConfiguration(General.LoadGameConfiguration(options.ConfigFile));
|
config = new GameConfiguration(General.LoadGameConfiguration(options.ConfigFile));
|
||||||
|
General.Plugins.GameConfigurationChanged();
|
||||||
|
|
||||||
// Reload data resources
|
// Reload data resources
|
||||||
General.WriteLogLine("Reloading data resources...");
|
General.WriteLogLine("Reloading data resources...");
|
||||||
|
@ -965,7 +949,7 @@ namespace CodeImp.DoomBuilder
|
||||||
|
|
||||||
// Game Configuration action
|
// Game Configuration action
|
||||||
[Action("mapoptions")]
|
[Action("mapoptions")]
|
||||||
public void ShowMapOptions()
|
internal void ShowMapOptions()
|
||||||
{
|
{
|
||||||
// Show map options dialog
|
// Show map options dialog
|
||||||
MapOptionsForm optionsform = new MapOptionsForm(options);
|
MapOptionsForm optionsform = new MapOptionsForm(options);
|
||||||
|
|
|
@ -27,7 +27,7 @@ using System.IO;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.IO
|
namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
public class ClippedStream : Stream
|
internal class ClippedStream : Stream
|
||||||
{
|
{
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ namespace CodeImp.DoomBuilder.IO
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public new void Dispose()
|
public new void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
|
|
@ -33,7 +33,7 @@ using System.Drawing.Imaging;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.IO
|
namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
public unsafe class DoomFlatReader : IImageReader
|
internal unsafe class DoomFlatReader : IImageReader
|
||||||
{
|
{
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ using CodeImp.DoomBuilder.Geometry;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.IO
|
namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
public class DoomMapSetIO : MapSetIO
|
internal class DoomMapSetIO : MapSetIO
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ using System.Drawing.Imaging;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.IO
|
namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
public unsafe class DoomPictureReader : IImageReader
|
internal unsafe class DoomPictureReader : IImageReader
|
||||||
{
|
{
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ using System.Drawing.Imaging;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.IO
|
namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
public unsafe class FileImageReader : IImageReader
|
internal unsafe class FileImageReader : IImageReader
|
||||||
{
|
{
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ using CodeImp.DoomBuilder.Geometry;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.IO
|
namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
public class HexenMapSetIO : MapSetIO
|
internal class HexenMapSetIO : MapSetIO
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ using System.Drawing.Imaging;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.IO
|
namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
public unsafe interface IImageReader
|
internal unsafe interface IImageReader
|
||||||
{
|
{
|
||||||
// Methods
|
// Methods
|
||||||
Bitmap ReadAsBitmap(Stream stream);
|
Bitmap ReadAsBitmap(Stream stream);
|
||||||
|
|
|
@ -27,7 +27,7 @@ using System.IO;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.IO
|
namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
public class Lump : IDisposable
|
internal class Lump
|
||||||
{
|
{
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ namespace CodeImp.DoomBuilder.IO
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
|
|
@ -30,7 +30,7 @@ using System.Diagnostics;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.IO
|
namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
public abstract class MapSetIO
|
internal abstract class MapSetIO
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ using System.Drawing.Imaging;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.IO
|
namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
public unsafe class UnknownImageReader : IImageReader
|
internal unsafe class UnknownImageReader : IImageReader
|
||||||
{
|
{
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ using System.IO;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.IO
|
namespace CodeImp.DoomBuilder.IO
|
||||||
{
|
{
|
||||||
public class WAD : IDisposable
|
internal class WAD
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ namespace CodeImp.DoomBuilder.IO
|
||||||
this.Dispose();
|
this.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
// Not already disposed?
|
// Not already disposed?
|
||||||
|
|
|
@ -29,7 +29,7 @@ using System.Diagnostics;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class AboutForm : DelayedForm
|
internal partial class AboutForm : DelayedForm
|
||||||
{
|
{
|
||||||
// Constructor
|
// Constructor
|
||||||
public AboutForm()
|
public AboutForm()
|
||||||
|
|
|
@ -34,7 +34,7 @@ using CodeImp.DoomBuilder.IO;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class ActionBrowserForm : DelayedForm
|
internal partial class ActionBrowserForm : DelayedForm
|
||||||
{
|
{
|
||||||
// Constants
|
// Constants
|
||||||
private const int MAX_OPTIONS = 8;
|
private const int MAX_OPTIONS = 8;
|
||||||
|
|
|
@ -30,7 +30,7 @@ using CodeImp.DoomBuilder.Config;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class ActionSelectorControl : UserControl
|
internal partial class ActionSelectorControl : UserControl
|
||||||
{
|
{
|
||||||
// Events
|
// Events
|
||||||
public event EventHandler ValueChanges;
|
public event EventHandler ValueChanges;
|
||||||
|
|
|
@ -32,7 +32,7 @@ using CodeImp.DoomBuilder.Editing;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public class AutoSelectTextbox : TextBox
|
internal class AutoSelectTextbox : TextBox
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ using System.Drawing.Drawing2D;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class CheckboxArrayControl : UserControl
|
internal partial class CheckboxArrayControl : UserControl
|
||||||
{
|
{
|
||||||
// Constants
|
// Constants
|
||||||
private const int SPACING_Y = 1;
|
private const int SPACING_Y = 1;
|
||||||
|
|
|
@ -30,7 +30,7 @@ using CodeImp.DoomBuilder.Rendering;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class ColorControl : UserControl
|
internal partial class ColorControl : UserControl
|
||||||
{
|
{
|
||||||
// Constructor
|
// Constructor
|
||||||
public ColorControl()
|
public ColorControl()
|
||||||
|
|
|
@ -32,7 +32,7 @@ using CodeImp.DoomBuilder.Config;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class ConfigForm : DelayedForm
|
internal partial class ConfigForm : DelayedForm
|
||||||
{
|
{
|
||||||
// Constructor
|
// Constructor
|
||||||
public ConfigForm()
|
public ConfigForm()
|
||||||
|
|
|
@ -33,7 +33,7 @@ using CodeImp.DoomBuilder.Map;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class FlatBrowserForm : DelayedForm
|
internal partial class FlatBrowserForm : DelayedForm
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
private string selectedname;
|
private string selectedname;
|
||||||
|
|
|
@ -37,7 +37,7 @@ using CodeImp.DoomBuilder.Map;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public class FlatSelectorControl : ImageSelectorControl
|
internal class FlatSelectorControl : ImageSelectorControl
|
||||||
{
|
{
|
||||||
// Setup
|
// Setup
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
|
|
|
@ -33,7 +33,7 @@ using CodeImp.DoomBuilder.Editing;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class GridSetupForm : DelayedForm
|
internal partial class GridSetupForm : DelayedForm
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
private string backgroundname;
|
private string backgroundname;
|
||||||
|
|
63
Source/Interface/IMainForm.cs
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
|
||||||
|
#region ================== Copyright (c) 2007 Pascal vd Heiden
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
|
||||||
|
* This program is released under GNU General Public License
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Namespaces
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using CodeImp.DoomBuilder.Map;
|
||||||
|
using SlimDX.Direct3D;
|
||||||
|
using SlimDX.Direct3D9;
|
||||||
|
using SlimDX;
|
||||||
|
using CodeImp.DoomBuilder.Geometry;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using CodeImp.DoomBuilder.Data;
|
||||||
|
using CodeImp.DoomBuilder.Editing;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
|
{
|
||||||
|
public interface IMainForm
|
||||||
|
{
|
||||||
|
// Properties
|
||||||
|
bool AltState { get; }
|
||||||
|
bool CtrlState { get; }
|
||||||
|
bool ShiftState { get; }
|
||||||
|
bool MouseInDisplay { get; }
|
||||||
|
bool AutoMerge { get; }
|
||||||
|
bool SnapToGrid { get; }
|
||||||
|
|
||||||
|
// Methods
|
||||||
|
void DisplayReady();
|
||||||
|
void DisplayStatus(string status);
|
||||||
|
void RedrawDisplay();
|
||||||
|
void ShowEditLinedefs(ICollection<Linedef> lines);
|
||||||
|
void ShowLinedefInfo(Linedef l);
|
||||||
|
void ShowSectorInfo(Sector s);
|
||||||
|
void ShowThingInfo(Thing t);
|
||||||
|
void ShowVertexInfo(Vertex v);
|
||||||
|
void HideInfo();
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,7 +36,7 @@ using System.Drawing.Drawing2D;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class ImageBrowserControl : UserControl
|
internal partial class ImageBrowserControl : UserControl
|
||||||
{
|
{
|
||||||
#region ================== Delegates / Events
|
#region ================== Delegates / Events
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ using System.Drawing.Drawing2D;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public abstract partial class ImageSelectorControl : UserControl
|
internal abstract partial class ImageSelectorControl : UserControl
|
||||||
{
|
{
|
||||||
// Properties
|
// Properties
|
||||||
public string TextureName { get { return name.Text; } set { name.Text = value; } }
|
public string TextureName { get { return name.Text; } set { name.Text = value; } }
|
||||||
|
|
|
@ -33,7 +33,7 @@ using CodeImp.DoomBuilder.Editing;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class LinedefEditForm : DelayedForm
|
internal partial class LinedefEditForm : DelayedForm
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
private ICollection<Linedef> lines;
|
private ICollection<Linedef> lines;
|
||||||
|
@ -201,16 +201,6 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This shows the dialog to edit lines
|
|
||||||
public static void EditLinedefs(IWin32Window owner, ICollection<Linedef> lines)
|
|
||||||
{
|
|
||||||
// Show line edit dialog
|
|
||||||
LinedefEditForm f = new LinedefEditForm();
|
|
||||||
f.Setup(lines);
|
|
||||||
f.ShowDialog(owner);
|
|
||||||
f.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Front side (un)checked
|
// Front side (un)checked
|
||||||
private void frontside_CheckStateChanged(object sender, EventArgs e)
|
private void frontside_CheckStateChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,7 +31,7 @@ using CodeImp.DoomBuilder.Map;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class LinedefInfoPanel : UserControl
|
internal partial class LinedefInfoPanel : UserControl
|
||||||
{
|
{
|
||||||
// Constructor
|
// Constructor
|
||||||
public LinedefInfoPanel()
|
public LinedefInfoPanel()
|
||||||
|
|
188
Source/Interface/MainForm.Designer.cs
generated
|
@ -35,16 +35,16 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
||||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator9;
|
System.Windows.Forms.ToolStripSeparator toolStripSeparator9;
|
||||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
|
|
||||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
|
System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
|
||||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
|
|
||||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator7;
|
|
||||||
System.Windows.Forms.ToolStripSeparator toolStripMenuItem5;
|
|
||||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator10;
|
System.Windows.Forms.ToolStripSeparator toolStripSeparator10;
|
||||||
System.Windows.Forms.ToolStripSeparator toolStripMenuItem4;
|
System.Windows.Forms.ToolStripSeparator toolStripMenuItem4;
|
||||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||||
System.Windows.Forms.ToolStripSeparator toolStripSeparator11;
|
System.Windows.Forms.ToolStripSeparator toolStripSeparator11;
|
||||||
|
System.Windows.Forms.ToolStripSeparator toolstripSeperator1;
|
||||||
|
System.Windows.Forms.ToolStripSeparator toolstripSeperator6;
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||||
|
this.itemeditmodesseperator = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.buttoneditmodesseperator = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.poscommalabel = new System.Windows.Forms.ToolStripStatusLabel();
|
this.poscommalabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
this.menumain = new System.Windows.Forms.MenuStrip();
|
this.menumain = new System.Windows.Forms.MenuStrip();
|
||||||
this.menufile = new System.Windows.Forms.ToolStripMenuItem();
|
this.menufile = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
@ -59,11 +59,8 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
this.menuedit = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuedit = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.itemundo = new System.Windows.Forms.ToolStripMenuItem();
|
this.itemundo = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.itemredo = new System.Windows.Forms.ToolStripMenuItem();
|
this.itemredo = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.itemverticesmode = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.itemlinedefsmode = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.itemsectorsmode = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.itemthingsmode = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.itemsnaptogrid = new System.Windows.Forms.ToolStripMenuItem();
|
this.itemsnaptogrid = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.itemautomerge = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.itemmapoptions = new System.Windows.Forms.ToolStripMenuItem();
|
this.itemmapoptions = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menutools = new System.Windows.Forms.ToolStripMenuItem();
|
this.menutools = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.itemreloadresources = new System.Windows.Forms.ToolStripMenuItem();
|
this.itemreloadresources = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
@ -78,10 +75,6 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
this.buttonmapoptions = new System.Windows.Forms.ToolStripButton();
|
this.buttonmapoptions = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonundo = new System.Windows.Forms.ToolStripButton();
|
this.buttonundo = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonredo = new System.Windows.Forms.ToolStripButton();
|
this.buttonredo = new System.Windows.Forms.ToolStripButton();
|
||||||
this.buttonverticesmode = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.buttonlinedefsmode = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.buttonsectorsmode = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.buttonthingsmode = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.buttonthingsfilter = new System.Windows.Forms.ToolStripButton();
|
this.buttonthingsfilter = new System.Windows.Forms.ToolStripButton();
|
||||||
this.thingfilters = new System.Windows.Forms.ToolStripComboBox();
|
this.thingfilters = new System.Windows.Forms.ToolStripComboBox();
|
||||||
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
@ -119,22 +112,19 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
this.linedefinfo = new CodeImp.DoomBuilder.Interface.LinedefInfoPanel();
|
this.linedefinfo = new CodeImp.DoomBuilder.Interface.LinedefInfoPanel();
|
||||||
this.redrawtimer = new System.Windows.Forms.Timer(this.components);
|
this.redrawtimer = new System.Windows.Forms.Timer(this.components);
|
||||||
this.display = new CodeImp.DoomBuilder.Interface.RenderTargetControl();
|
this.display = new CodeImp.DoomBuilder.Interface.RenderTargetControl();
|
||||||
this.itemautomerge = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
toolstripSeperator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
toolstripSeperator6 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.menumain.SuspendLayout();
|
this.menumain.SuspendLayout();
|
||||||
this.toolbar.SuspendLayout();
|
this.toolbar.SuspendLayout();
|
||||||
this.statusbar.SuspendLayout();
|
this.statusbar.SuspendLayout();
|
||||||
|
@ -173,10 +163,10 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
toolStripSeparator9.Name = "toolStripSeparator9";
|
toolStripSeparator9.Name = "toolStripSeparator9";
|
||||||
toolStripSeparator9.Size = new System.Drawing.Size(6, 23);
|
toolStripSeparator9.Size = new System.Drawing.Size(6, 23);
|
||||||
//
|
//
|
||||||
// toolStripSeparator6
|
// itemeditmodesseperator
|
||||||
//
|
//
|
||||||
toolStripSeparator6.Name = "toolStripSeparator6";
|
this.itemeditmodesseperator.Name = "itemeditmodesseperator";
|
||||||
toolStripSeparator6.Size = new System.Drawing.Size(162, 6);
|
this.itemeditmodesseperator.Size = new System.Drawing.Size(162, 6);
|
||||||
//
|
//
|
||||||
// toolStripSeparator3
|
// toolStripSeparator3
|
||||||
//
|
//
|
||||||
|
@ -184,22 +174,11 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
toolStripSeparator3.Name = "toolStripSeparator3";
|
toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
toolStripSeparator3.Size = new System.Drawing.Size(6, 25);
|
toolStripSeparator3.Size = new System.Drawing.Size(6, 25);
|
||||||
//
|
//
|
||||||
// toolStripSeparator5
|
// buttoneditmodesseperator
|
||||||
//
|
//
|
||||||
toolStripSeparator5.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
|
this.buttoneditmodesseperator.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
|
||||||
toolStripSeparator5.Name = "toolStripSeparator5";
|
this.buttoneditmodesseperator.Name = "buttoneditmodesseperator";
|
||||||
toolStripSeparator5.Size = new System.Drawing.Size(6, 25);
|
this.buttoneditmodesseperator.Size = new System.Drawing.Size(6, 25);
|
||||||
//
|
|
||||||
// toolStripSeparator7
|
|
||||||
//
|
|
||||||
toolStripSeparator7.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
|
|
||||||
toolStripSeparator7.Name = "toolStripSeparator7";
|
|
||||||
toolStripSeparator7.Size = new System.Drawing.Size(6, 25);
|
|
||||||
//
|
|
||||||
// toolStripMenuItem5
|
|
||||||
//
|
|
||||||
toolStripMenuItem5.Name = "toolStripMenuItem5";
|
|
||||||
toolStripMenuItem5.Size = new System.Drawing.Size(162, 6);
|
|
||||||
//
|
//
|
||||||
// toolStripSeparator10
|
// toolStripSeparator10
|
||||||
//
|
//
|
||||||
|
@ -222,6 +201,17 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
toolStripSeparator11.Name = "toolStripSeparator11";
|
toolStripSeparator11.Name = "toolStripSeparator11";
|
||||||
toolStripSeparator11.Size = new System.Drawing.Size(162, 6);
|
toolStripSeparator11.Size = new System.Drawing.Size(162, 6);
|
||||||
//
|
//
|
||||||
|
// toolstripSeperator1
|
||||||
|
//
|
||||||
|
toolstripSeperator1.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
|
||||||
|
toolstripSeperator1.Name = "toolstripSeperator1";
|
||||||
|
toolstripSeperator1.Size = new System.Drawing.Size(6, 25);
|
||||||
|
//
|
||||||
|
// toolstripSeperator6
|
||||||
|
//
|
||||||
|
toolstripSeperator6.Name = "toolstripSeperator6";
|
||||||
|
toolstripSeperator6.Size = new System.Drawing.Size(162, 6);
|
||||||
|
//
|
||||||
// poscommalabel
|
// poscommalabel
|
||||||
//
|
//
|
||||||
this.poscommalabel.Name = "poscommalabel";
|
this.poscommalabel.Name = "poscommalabel";
|
||||||
|
@ -329,12 +319,8 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
this.menuedit.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.menuedit.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.itemundo,
|
this.itemundo,
|
||||||
this.itemredo,
|
this.itemredo,
|
||||||
toolStripMenuItem5,
|
toolstripSeperator6,
|
||||||
this.itemverticesmode,
|
this.itemeditmodesseperator,
|
||||||
this.itemlinedefsmode,
|
|
||||||
this.itemsectorsmode,
|
|
||||||
this.itemthingsmode,
|
|
||||||
toolStripSeparator6,
|
|
||||||
this.itemsnaptogrid,
|
this.itemsnaptogrid,
|
||||||
this.itemautomerge,
|
this.itemautomerge,
|
||||||
toolStripSeparator11,
|
toolStripSeparator11,
|
||||||
|
@ -361,42 +347,6 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
this.itemredo.Text = "Redo";
|
this.itemredo.Text = "Redo";
|
||||||
this.itemredo.Click += new System.EventHandler(this.InvokeTaggedAction);
|
this.itemredo.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
//
|
//
|
||||||
// itemverticesmode
|
|
||||||
//
|
|
||||||
this.itemverticesmode.Image = global::CodeImp.DoomBuilder.Properties.Resources.VerticesMode;
|
|
||||||
this.itemverticesmode.Name = "itemverticesmode";
|
|
||||||
this.itemverticesmode.Size = new System.Drawing.Size(165, 22);
|
|
||||||
this.itemverticesmode.Tag = "verticesmode";
|
|
||||||
this.itemverticesmode.Text = "Vertices Mode";
|
|
||||||
this.itemverticesmode.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// itemlinedefsmode
|
|
||||||
//
|
|
||||||
this.itemlinedefsmode.Image = global::CodeImp.DoomBuilder.Properties.Resources.LinesMode;
|
|
||||||
this.itemlinedefsmode.Name = "itemlinedefsmode";
|
|
||||||
this.itemlinedefsmode.Size = new System.Drawing.Size(165, 22);
|
|
||||||
this.itemlinedefsmode.Tag = "linedefsmode";
|
|
||||||
this.itemlinedefsmode.Text = "Linedefs Mode";
|
|
||||||
this.itemlinedefsmode.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// itemsectorsmode
|
|
||||||
//
|
|
||||||
this.itemsectorsmode.Image = global::CodeImp.DoomBuilder.Properties.Resources.SectorsMode;
|
|
||||||
this.itemsectorsmode.Name = "itemsectorsmode";
|
|
||||||
this.itemsectorsmode.Size = new System.Drawing.Size(165, 22);
|
|
||||||
this.itemsectorsmode.Tag = "sectorsmode";
|
|
||||||
this.itemsectorsmode.Text = "Sectors Mode";
|
|
||||||
this.itemsectorsmode.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// itemthingsmode
|
|
||||||
//
|
|
||||||
this.itemthingsmode.Image = global::CodeImp.DoomBuilder.Properties.Resources.ThingsMode;
|
|
||||||
this.itemthingsmode.Name = "itemthingsmode";
|
|
||||||
this.itemthingsmode.Size = new System.Drawing.Size(165, 22);
|
|
||||||
this.itemthingsmode.Tag = "thingsmode";
|
|
||||||
this.itemthingsmode.Text = "Things Mode";
|
|
||||||
this.itemthingsmode.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// itemsnaptogrid
|
// itemsnaptogrid
|
||||||
//
|
//
|
||||||
this.itemsnaptogrid.Checked = true;
|
this.itemsnaptogrid.Checked = true;
|
||||||
|
@ -408,6 +358,17 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
this.itemsnaptogrid.Text = "Snap to Grid";
|
this.itemsnaptogrid.Text = "Snap to Grid";
|
||||||
this.itemsnaptogrid.Click += new System.EventHandler(this.InvokeTaggedAction);
|
this.itemsnaptogrid.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
//
|
//
|
||||||
|
// itemautomerge
|
||||||
|
//
|
||||||
|
this.itemautomerge.Checked = true;
|
||||||
|
this.itemautomerge.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
this.itemautomerge.Image = global::CodeImp.DoomBuilder.Properties.Resources.mergegeometry2;
|
||||||
|
this.itemautomerge.Name = "itemautomerge";
|
||||||
|
this.itemautomerge.Size = new System.Drawing.Size(165, 22);
|
||||||
|
this.itemautomerge.Tag = "toggleautomerge";
|
||||||
|
this.itemautomerge.Text = "Merge Geometry";
|
||||||
|
this.itemautomerge.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
|
//
|
||||||
// itemmapoptions
|
// itemmapoptions
|
||||||
//
|
//
|
||||||
this.itemmapoptions.Image = global::CodeImp.DoomBuilder.Properties.Resources.Properties;
|
this.itemmapoptions.Image = global::CodeImp.DoomBuilder.Properties.Resources.Properties;
|
||||||
|
@ -479,12 +440,8 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
toolStripSeparator10,
|
toolStripSeparator10,
|
||||||
this.buttonundo,
|
this.buttonundo,
|
||||||
this.buttonredo,
|
this.buttonredo,
|
||||||
toolStripSeparator5,
|
toolstripSeperator1,
|
||||||
this.buttonverticesmode,
|
this.buttoneditmodesseperator,
|
||||||
this.buttonlinedefsmode,
|
|
||||||
this.buttonsectorsmode,
|
|
||||||
this.buttonthingsmode,
|
|
||||||
toolStripSeparator7,
|
|
||||||
this.buttonthingsfilter,
|
this.buttonthingsfilter,
|
||||||
this.thingfilters,
|
this.thingfilters,
|
||||||
this.toolStripSeparator8,
|
this.toolStripSeparator8,
|
||||||
|
@ -561,50 +518,6 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
this.buttonredo.Text = "Redo";
|
this.buttonredo.Text = "Redo";
|
||||||
this.buttonredo.Click += new System.EventHandler(this.InvokeTaggedAction);
|
this.buttonredo.Click += new System.EventHandler(this.InvokeTaggedAction);
|
||||||
//
|
//
|
||||||
// buttonverticesmode
|
|
||||||
//
|
|
||||||
this.buttonverticesmode.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonverticesmode.Image = global::CodeImp.DoomBuilder.Properties.Resources.VerticesMode;
|
|
||||||
this.buttonverticesmode.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonverticesmode.Name = "buttonverticesmode";
|
|
||||||
this.buttonverticesmode.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonverticesmode.Tag = "verticesmode";
|
|
||||||
this.buttonverticesmode.Text = "Vertices Mode";
|
|
||||||
this.buttonverticesmode.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttonlinedefsmode
|
|
||||||
//
|
|
||||||
this.buttonlinedefsmode.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonlinedefsmode.Image = global::CodeImp.DoomBuilder.Properties.Resources.LinesMode;
|
|
||||||
this.buttonlinedefsmode.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonlinedefsmode.Name = "buttonlinedefsmode";
|
|
||||||
this.buttonlinedefsmode.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonlinedefsmode.Tag = "linedefsmode";
|
|
||||||
this.buttonlinedefsmode.Text = "Linedefs Mode";
|
|
||||||
this.buttonlinedefsmode.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttonsectorsmode
|
|
||||||
//
|
|
||||||
this.buttonsectorsmode.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonsectorsmode.Image = global::CodeImp.DoomBuilder.Properties.Resources.SectorsMode;
|
|
||||||
this.buttonsectorsmode.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonsectorsmode.Name = "buttonsectorsmode";
|
|
||||||
this.buttonsectorsmode.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonsectorsmode.Tag = "sectorsmode";
|
|
||||||
this.buttonsectorsmode.Text = "Sectors Mode";
|
|
||||||
this.buttonsectorsmode.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttonthingsmode
|
|
||||||
//
|
|
||||||
this.buttonthingsmode.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
|
||||||
this.buttonthingsmode.Image = global::CodeImp.DoomBuilder.Properties.Resources.ThingsMode;
|
|
||||||
this.buttonthingsmode.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.buttonthingsmode.Name = "buttonthingsmode";
|
|
||||||
this.buttonthingsmode.Size = new System.Drawing.Size(23, 22);
|
|
||||||
this.buttonthingsmode.Tag = "thingsmode";
|
|
||||||
this.buttonthingsmode.Text = "Things Mode";
|
|
||||||
this.buttonthingsmode.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// buttonthingsfilter
|
// buttonthingsfilter
|
||||||
//
|
//
|
||||||
this.buttonthingsfilter.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
this.buttonthingsfilter.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
@ -987,17 +900,6 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
this.display.Paint += new System.Windows.Forms.PaintEventHandler(this.display_Paint);
|
this.display.Paint += new System.Windows.Forms.PaintEventHandler(this.display_Paint);
|
||||||
this.display.MouseUp += new System.Windows.Forms.MouseEventHandler(this.display_MouseUp);
|
this.display.MouseUp += new System.Windows.Forms.MouseEventHandler(this.display_MouseUp);
|
||||||
//
|
//
|
||||||
// itemautomerge
|
|
||||||
//
|
|
||||||
this.itemautomerge.Checked = true;
|
|
||||||
this.itemautomerge.CheckState = System.Windows.Forms.CheckState.Checked;
|
|
||||||
this.itemautomerge.Image = global::CodeImp.DoomBuilder.Properties.Resources.mergegeometry2;
|
|
||||||
this.itemautomerge.Name = "itemautomerge";
|
|
||||||
this.itemautomerge.Size = new System.Drawing.Size(165, 22);
|
|
||||||
this.itemautomerge.Tag = "toggleautomerge";
|
|
||||||
this.itemautomerge.Text = "Merge Geometry";
|
|
||||||
this.itemautomerge.Click += new System.EventHandler(this.InvokeTaggedAction);
|
|
||||||
//
|
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||||
|
@ -1074,14 +976,6 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
private System.Windows.Forms.ToolStripMenuItem itemmapoptions;
|
private System.Windows.Forms.ToolStripMenuItem itemmapoptions;
|
||||||
private System.Windows.Forms.ToolStripButton buttonmapoptions;
|
private System.Windows.Forms.ToolStripButton buttonmapoptions;
|
||||||
private System.Windows.Forms.ToolStripMenuItem itemreloadresources;
|
private System.Windows.Forms.ToolStripMenuItem itemreloadresources;
|
||||||
private System.Windows.Forms.ToolStripButton buttonverticesmode;
|
|
||||||
private System.Windows.Forms.ToolStripButton buttonlinedefsmode;
|
|
||||||
private System.Windows.Forms.ToolStripButton buttonsectorsmode;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem itemverticesmode;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem itemlinedefsmode;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem itemsectorsmode;
|
|
||||||
private System.Windows.Forms.ToolStripButton buttonthingsmode;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem itemthingsmode;
|
|
||||||
private LinedefInfoPanel linedefinfo;
|
private LinedefInfoPanel linedefinfo;
|
||||||
private VertexInfoPanel vertexinfo;
|
private VertexInfoPanel vertexinfo;
|
||||||
private SectorInfoPanel sectorinfo;
|
private SectorInfoPanel sectorinfo;
|
||||||
|
@ -1110,5 +1004,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
private System.Windows.Forms.ToolStripMenuItem itemsnaptogrid;
|
private System.Windows.Forms.ToolStripMenuItem itemsnaptogrid;
|
||||||
private System.Windows.Forms.ToolStripButton buttonautomerge;
|
private System.Windows.Forms.ToolStripButton buttonautomerge;
|
||||||
private System.Windows.Forms.ToolStripMenuItem itemautomerge;
|
private System.Windows.Forms.ToolStripMenuItem itemautomerge;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator buttoneditmodesseperator;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator itemeditmodesseperator;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -35,7 +35,7 @@ using CodeImp.DoomBuilder.Map;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class MainForm : DelayedForm
|
public partial class MainForm : DelayedForm, IMainForm
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
@ -67,6 +67,9 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
// Recent files
|
// Recent files
|
||||||
private ToolStripMenuItem[] recentitems;
|
private ToolStripMenuItem[] recentitems;
|
||||||
|
|
||||||
|
// Edit modes
|
||||||
|
private List<ToolStripItem> editmodeitems;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ================== Properties
|
#region ================== Properties
|
||||||
|
@ -75,7 +78,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
public bool CtrlState { get { return ctrl; } }
|
public bool CtrlState { get { return ctrl; } }
|
||||||
public bool AltState { get { return alt; } }
|
public bool AltState { get { return alt; } }
|
||||||
public bool MouseInDisplay { get { return mouseinside; } }
|
public bool MouseInDisplay { get { return mouseinside; } }
|
||||||
public RenderTargetControl Display { get { return display; } }
|
internal RenderTargetControl Display { get { return display; } }
|
||||||
public bool SnapToGrid { get { return buttonsnaptogrid.Checked; } }
|
public bool SnapToGrid { get { return buttonsnaptogrid.Checked; } }
|
||||||
public bool AutoMerge { get { return buttonautomerge.Checked; } }
|
public bool AutoMerge { get { return buttonautomerge.Checked; } }
|
||||||
|
|
||||||
|
@ -84,10 +87,11 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
#region ================== Constructor / Disposer
|
#region ================== Constructor / Disposer
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public MainForm()
|
internal MainForm()
|
||||||
{
|
{
|
||||||
// Setup controls
|
// Setup controls
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
editmodeitems = new List<ToolStripItem>();
|
||||||
|
|
||||||
// Visual Studio IDE doesn't let me set these in the designer :(
|
// Visual Studio IDE doesn't let me set these in the designer :(
|
||||||
buttonzoom.Font = menufile.Font;
|
buttonzoom.Font = menufile.Font;
|
||||||
|
@ -117,7 +121,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
#region ================== General
|
#region ================== General
|
||||||
|
|
||||||
// This updates all menus for the current status
|
// This updates all menus for the current status
|
||||||
public void UpdateInterface()
|
internal void UpdateInterface()
|
||||||
{
|
{
|
||||||
// Map opened?
|
// Map opened?
|
||||||
if(General.Map != null)
|
if(General.Map != null)
|
||||||
|
@ -138,13 +142,17 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
UpdateFileMenu();
|
UpdateFileMenu();
|
||||||
UpdateEditMenu();
|
UpdateEditMenu();
|
||||||
UpdateToolsMenu();
|
UpdateToolsMenu();
|
||||||
|
UpdateEditModeItems();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generic event that invokes the tagged action
|
// Generic event that invokes the tagged action
|
||||||
private void InvokeTaggedAction(object sender, EventArgs e)
|
private void InvokeTaggedAction(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
string asmname;
|
||||||
|
|
||||||
this.Update();
|
this.Update();
|
||||||
General.Actions[(sender as ToolStripItem).Tag.ToString()].Invoke();
|
asmname = General.ThisAssembly.GetName().Name.ToLowerInvariant();
|
||||||
|
General.Actions[asmname + "_" + (sender as ToolStripItem).Tag.ToString()].Invoke();
|
||||||
this.Update();
|
this.Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,7 +278,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
// This returns the current status text
|
// This returns the current status text
|
||||||
public string GetCurrentSatus()
|
internal string GetCurrentSatus()
|
||||||
{
|
{
|
||||||
return statuslabel.Text;
|
return statuslabel.Text;
|
||||||
}
|
}
|
||||||
|
@ -298,7 +306,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
// This updates the status icon
|
// This updates the status icon
|
||||||
public void UpdateStatusIcon()
|
internal void UpdateStatusIcon()
|
||||||
{
|
{
|
||||||
// From another thread?
|
// From another thread?
|
||||||
if(statusbar.InvokeRequired)
|
if(statusbar.InvokeRequired)
|
||||||
|
@ -342,7 +350,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
// This changes coordinates display
|
// This changes coordinates display
|
||||||
public void UpdateCoordinates(Vector2D coords)
|
internal void UpdateCoordinates(Vector2D coords)
|
||||||
{
|
{
|
||||||
// X position
|
// X position
|
||||||
if(float.IsNaN(coords.x))
|
if(float.IsNaN(coords.x))
|
||||||
|
@ -361,7 +369,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
// This changes zoom display
|
// This changes zoom display
|
||||||
public void UpdateZoom(float scale)
|
internal void UpdateZoom(float scale)
|
||||||
{
|
{
|
||||||
// Update scale label
|
// Update scale label
|
||||||
if(float.IsNaN(scale))
|
if(float.IsNaN(scale))
|
||||||
|
@ -409,7 +417,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
// This changes grid display
|
// This changes grid display
|
||||||
public void UpdateGrid(int gridsize)
|
internal void UpdateGrid(int gridsize)
|
||||||
{
|
{
|
||||||
// Update grid label
|
// Update grid label
|
||||||
if(gridsize == 0)
|
if(gridsize == 0)
|
||||||
|
@ -454,7 +462,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
|
|
||||||
// This shows the grid setup dialog
|
// This shows the grid setup dialog
|
||||||
[Action("gridsetup")]
|
[Action("gridsetup")]
|
||||||
public void ShowGridSetup()
|
internal void ShowGridSetup()
|
||||||
{
|
{
|
||||||
// Only when a map is open
|
// Only when a map is open
|
||||||
if(General.Map == null) return;
|
if(General.Map == null) return;
|
||||||
|
@ -473,10 +481,102 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Toolbar
|
||||||
|
|
||||||
|
// This enables or disables all editing mode items
|
||||||
|
private void UpdateEditModeItems()
|
||||||
|
{
|
||||||
|
// Enable/disable all items
|
||||||
|
foreach(ToolStripItem i in editmodeitems) i.Enabled = (General.Map != null);
|
||||||
|
}
|
||||||
|
|
||||||
|
// This checks one of the edit mode items (and unchecks all others)
|
||||||
|
internal void CheckEditModeButton(string modeclassname)
|
||||||
|
{
|
||||||
|
// Go for all items
|
||||||
|
foreach(ToolStripItem i in editmodeitems)
|
||||||
|
{
|
||||||
|
// Check what type it is
|
||||||
|
if(i is ToolStripMenuItem)
|
||||||
|
{
|
||||||
|
// Check if mode type matches with given name
|
||||||
|
(i as ToolStripMenuItem).Checked = ((i.Tag as EditModeInfo).Type.Name == modeclassname);
|
||||||
|
}
|
||||||
|
else if(i is ToolStripButton)
|
||||||
|
{
|
||||||
|
// Check if mode type matches with given name
|
||||||
|
(i as ToolStripButton).Checked = ((i.Tag as EditModeInfo).Type.Name == modeclassname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// This removes the config-specific editing mode buttons
|
||||||
|
internal void RemoveSpecificEditModeButtons()
|
||||||
|
{
|
||||||
|
bool removed;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
// Go for all items
|
||||||
|
removed = false;
|
||||||
|
foreach(ToolStripItem i in editmodeitems)
|
||||||
|
{
|
||||||
|
// Only remove the button if it is for a config-specific editing mode
|
||||||
|
if((i.Tag as EditModeInfo).ConfigSpecific)
|
||||||
|
{
|
||||||
|
// Remove it and restart
|
||||||
|
editmodeitems.Remove(i);
|
||||||
|
toolbar.Items.Remove(i);
|
||||||
|
menuedit.DropDownItems.Remove(i);
|
||||||
|
removed = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while(removed);
|
||||||
|
}
|
||||||
|
|
||||||
|
// This adds an editing mode button to the toolbar and edit menu
|
||||||
|
internal void AddEditModeButton(EditModeInfo modeinfo)
|
||||||
|
{
|
||||||
|
ToolStripItem item;
|
||||||
|
int index;
|
||||||
|
|
||||||
|
// Create a button
|
||||||
|
index = toolbar.Items.IndexOf(buttoneditmodesseperator);
|
||||||
|
item = new ToolStripButton(modeinfo.ButtonDesc, modeinfo.ButtonImage, new EventHandler(EditModeButtonHandler));
|
||||||
|
item.DisplayStyle = ToolStripItemDisplayStyle.Image;
|
||||||
|
item.Tag = modeinfo;
|
||||||
|
item.Enabled = (General.Map != null);
|
||||||
|
toolbar.Items.Insert(index, item);
|
||||||
|
editmodeitems.Add(item);
|
||||||
|
|
||||||
|
// Create menu item
|
||||||
|
index = menuedit.DropDownItems.IndexOf(itemeditmodesseperator);
|
||||||
|
item = new ToolStripMenuItem(modeinfo.ButtonDesc, modeinfo.ButtonImage, new EventHandler(EditModeButtonHandler));
|
||||||
|
item.Tag = modeinfo;
|
||||||
|
item.Enabled = (General.Map != null);
|
||||||
|
menuedit.DropDownItems.Insert(index, item);
|
||||||
|
editmodeitems.Add(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
// This handles edit mode button clicks
|
||||||
|
private void EditModeButtonHandler(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
EditModeInfo modeinfo;
|
||||||
|
|
||||||
|
this.Update();
|
||||||
|
modeinfo = (EditModeInfo)((sender as ToolStripItem).Tag);
|
||||||
|
General.Actions[modeinfo.SwitchAction.GetFullActionName(modeinfo.Plugin.Assembly)].Invoke();
|
||||||
|
this.Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region ================== Display
|
#region ================== Display
|
||||||
|
|
||||||
// This shows the splash screen on display
|
// This shows the splash screen on display
|
||||||
public void ShowSplashDisplay()
|
internal void ShowSplashDisplay()
|
||||||
{
|
{
|
||||||
// Change display to show splash logo
|
// Change display to show splash logo
|
||||||
display.SetSplashLogoDisplay();
|
display.SetSplashLogoDisplay();
|
||||||
|
@ -484,7 +584,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
// This clears the display
|
// This clears the display
|
||||||
public void ClearDisplay()
|
internal void ClearDisplay()
|
||||||
{
|
{
|
||||||
// Clear the display
|
// Clear the display
|
||||||
display.SetManualRendering();
|
display.SetManualRendering();
|
||||||
|
@ -636,7 +736,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
#region ================== Menus
|
#region ================== Menus
|
||||||
|
|
||||||
// Public method to apply shortcut keys
|
// Public method to apply shortcut keys
|
||||||
public void ApplyShortcutKeys()
|
internal void ApplyShortcutKeys()
|
||||||
{
|
{
|
||||||
// Apply shortcut keys to menus
|
// Apply shortcut keys to menus
|
||||||
ApplyShortcutKeys(menumain.Items);
|
ApplyShortcutKeys(menumain.Items);
|
||||||
|
@ -753,7 +853,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
// This adds a recent file to the list
|
// This adds a recent file to the list
|
||||||
public void AddRecentFile(string filename)
|
internal void AddRecentFile(string filename)
|
||||||
{
|
{
|
||||||
int movedownto = MAX_RECENT_FILES - 1;
|
int movedownto = MAX_RECENT_FILES - 1;
|
||||||
|
|
||||||
|
@ -838,34 +938,6 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
|
|
||||||
#region ================== Edit Menu
|
#region ================== Edit Menu
|
||||||
|
|
||||||
// This sets the status of the vertices button
|
|
||||||
public void SetVerticesChecked(bool value)
|
|
||||||
{
|
|
||||||
itemverticesmode.Checked = value;
|
|
||||||
buttonverticesmode.Checked = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This sets the status of the linedefs button
|
|
||||||
public void SetLinedefsChecked(bool value)
|
|
||||||
{
|
|
||||||
itemlinedefsmode.Checked = value;
|
|
||||||
buttonlinedefsmode.Checked = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This sets the status of the sectors button
|
|
||||||
public void SetSectorsChecked(bool value)
|
|
||||||
{
|
|
||||||
itemsectorsmode.Checked = value;
|
|
||||||
buttonsectorsmode.Checked = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This sets the status of the things button
|
|
||||||
public void SetThingsChecked(bool value)
|
|
||||||
{
|
|
||||||
itemthingsmode.Checked = value;
|
|
||||||
buttonthingsmode.Checked = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This sets up the edit menu
|
// This sets up the edit menu
|
||||||
private void UpdateEditMenu()
|
private void UpdateEditMenu()
|
||||||
{
|
{
|
||||||
|
@ -876,10 +948,6 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
itemundo.Enabled = (General.Map != null) && (General.Map.UndoRedo.NextUndo != null);
|
itemundo.Enabled = (General.Map != null) && (General.Map.UndoRedo.NextUndo != null);
|
||||||
itemredo.Enabled = (General.Map != null) && (General.Map.UndoRedo.NextRedo != null);
|
itemredo.Enabled = (General.Map != null) && (General.Map.UndoRedo.NextRedo != null);
|
||||||
itemmapoptions.Enabled = (General.Map != null);
|
itemmapoptions.Enabled = (General.Map != null);
|
||||||
itemverticesmode.Enabled = (General.Map != null);
|
|
||||||
itemlinedefsmode.Enabled = (General.Map != null);
|
|
||||||
itemsectorsmode.Enabled = (General.Map != null);
|
|
||||||
itemthingsmode.Enabled = (General.Map != null);
|
|
||||||
itemsnaptogrid.Enabled = (General.Map != null);
|
itemsnaptogrid.Enabled = (General.Map != null);
|
||||||
itemautomerge.Enabled = (General.Map != null);
|
itemautomerge.Enabled = (General.Map != null);
|
||||||
|
|
||||||
|
@ -897,10 +965,6 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
|
|
||||||
// Toolbar icons
|
// Toolbar icons
|
||||||
buttonmapoptions.Enabled = (General.Map != null);
|
buttonmapoptions.Enabled = (General.Map != null);
|
||||||
buttonverticesmode.Enabled = (General.Map != null);
|
|
||||||
buttonlinedefsmode.Enabled = (General.Map != null);
|
|
||||||
buttonsectorsmode.Enabled = (General.Map != null);
|
|
||||||
buttonthingsmode.Enabled = (General.Map != null);
|
|
||||||
buttonundo.Enabled = itemundo.Enabled;
|
buttonundo.Enabled = itemundo.Enabled;
|
||||||
buttonredo.Enabled = itemredo.Enabled;
|
buttonredo.Enabled = itemredo.Enabled;
|
||||||
buttonundo.ToolTipText = itemundo.Text;
|
buttonundo.ToolTipText = itemundo.Text;
|
||||||
|
@ -911,7 +975,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
|
|
||||||
// Action to toggle snap to grid
|
// Action to toggle snap to grid
|
||||||
[Action("togglesnap")]
|
[Action("togglesnap")]
|
||||||
public void ToggleSnapToGrid()
|
internal void ToggleSnapToGrid()
|
||||||
{
|
{
|
||||||
buttonsnaptogrid.Checked = !buttonsnaptogrid.Checked;
|
buttonsnaptogrid.Checked = !buttonsnaptogrid.Checked;
|
||||||
itemsnaptogrid.Checked = buttonsnaptogrid.Checked;
|
itemsnaptogrid.Checked = buttonsnaptogrid.Checked;
|
||||||
|
@ -919,7 +983,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
|
|
||||||
// Action to toggle auto merge
|
// Action to toggle auto merge
|
||||||
[Action("toggleautomerge")]
|
[Action("toggleautomerge")]
|
||||||
public void ToggleAutoMerge()
|
internal void ToggleAutoMerge()
|
||||||
{
|
{
|
||||||
buttonautomerge.Checked = !buttonautomerge.Checked;
|
buttonautomerge.Checked = !buttonautomerge.Checked;
|
||||||
itemautomerge.Checked = buttonautomerge.Checked;
|
itemautomerge.Checked = buttonautomerge.Checked;
|
||||||
|
@ -954,7 +1018,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
|
|
||||||
// Game Configuration action
|
// Game Configuration action
|
||||||
[Action("configuration")]
|
[Action("configuration")]
|
||||||
public void ShowConfiguration()
|
internal void ShowConfiguration()
|
||||||
{
|
{
|
||||||
// Show configuration dialog
|
// Show configuration dialog
|
||||||
ConfigForm cfgform = new ConfigForm();
|
ConfigForm cfgform = new ConfigForm();
|
||||||
|
@ -976,7 +1040,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
|
|
||||||
// Preferences action
|
// Preferences action
|
||||||
[Action("preferences")]
|
[Action("preferences")]
|
||||||
public void ShowPreferences()
|
internal void ShowPreferences()
|
||||||
{
|
{
|
||||||
// Show preferences dialog
|
// Show preferences dialog
|
||||||
PreferencesForm prefform = new PreferencesForm();
|
PreferencesForm prefform = new PreferencesForm();
|
||||||
|
@ -1023,5 +1087,19 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
public void ShowThingInfo(Thing t) { thinginfo.ShowInfo(t); }
|
public void ShowThingInfo(Thing t) { thinginfo.ShowInfo(t); }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region ================== Dialogs
|
||||||
|
|
||||||
|
// This shows the dialog to edit lines
|
||||||
|
public void ShowEditLinedefs(ICollection<Linedef> lines)
|
||||||
|
{
|
||||||
|
// Show line edit dialog
|
||||||
|
LinedefEditForm f = new LinedefEditForm();
|
||||||
|
f.Setup(lines);
|
||||||
|
f.ShowDialog(this);
|
||||||
|
f.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -135,21 +135,9 @@
|
||||||
<metadata name="toolStripSeparator9.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="toolStripSeparator9.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="toolStripSeparator6.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>False</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="toolStripSeparator3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="toolStripSeparator3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="toolStripSeparator5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>False</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="toolStripSeparator7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>False</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="toolStripMenuItem5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>False</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="toolStripSeparator10.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="toolStripSeparator10.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -162,6 +150,12 @@
|
||||||
<metadata name="toolStripSeparator11.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="toolStripSeparator11.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="toolstripSeperator1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="toolstripSeperator6.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
<metadata name="menumain.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="menumain.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
|
|
@ -32,7 +32,7 @@ using CodeImp.DoomBuilder.Config;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class MapOptionsForm : DelayedForm
|
internal partial class MapOptionsForm : DelayedForm
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
private MapOptions options;
|
private MapOptions options;
|
||||||
|
|
|
@ -34,7 +34,7 @@ using CodeImp.DoomBuilder.Config;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class OpenMapOptionsForm : DelayedForm
|
internal partial class OpenMapOptionsForm : DelayedForm
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
private Configuration mapsettings;
|
private Configuration mapsettings;
|
||||||
|
|
|
@ -30,7 +30,7 @@ using CodeImp.DoomBuilder.Controls;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class PreferencesForm : DelayedForm
|
internal partial class PreferencesForm : DelayedForm
|
||||||
{
|
{
|
||||||
#region ================== Variables
|
#region ================== Variables
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ using CodeImp.DoomBuilder.Editing;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public class RenderTargetControl : Panel
|
internal class RenderTargetControl : Panel
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ namespace CodeImp.DoomBuilder.Interface
|
||||||
this.SetStyle(ControlStyles.FixedHeight, true);
|
this.SetStyle(ControlStyles.FixedHeight, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diposer
|
// Disposer
|
||||||
protected override void Dispose(bool disposing)
|
protected override void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
// Clean up
|
// Clean up
|
||||||
|
|
2
Source/Interface/ResourceListEditor.Designer.cs
generated
|
@ -1,6 +1,6 @@
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class ResourceListEditor
|
partial class ResourceListEditor
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Required designer variable.
|
/// Required designer variable.
|
||||||
|
|
|
@ -29,7 +29,7 @@ using CodeImp.DoomBuilder.Data;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class ResourceListEditor : UserControl
|
internal partial class ResourceListEditor : UserControl
|
||||||
{
|
{
|
||||||
#region ================== Delegates / Events
|
#region ================== Delegates / Events
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ using CodeImp.DoomBuilder.Editing;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public class ResourceListView : ListView
|
internal class ResourceListView : ListView
|
||||||
{
|
{
|
||||||
#region ================== Constants
|
#region ================== Constants
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ using CodeImp.DoomBuilder.Data;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class ResourceOptionsForm : DelayedForm
|
internal partial class ResourceOptionsForm : DelayedForm
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
private DataLocation res;
|
private DataLocation res;
|
||||||
|
|
|
@ -31,7 +31,7 @@ using CodeImp.DoomBuilder.Map;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class SectorInfoPanel : UserControl
|
internal partial class SectorInfoPanel : UserControl
|
||||||
{
|
{
|
||||||
// Constructor
|
// Constructor
|
||||||
public SectorInfoPanel()
|
public SectorInfoPanel()
|
||||||
|
|
|
@ -33,7 +33,7 @@ using CodeImp.DoomBuilder.Map;
|
||||||
|
|
||||||
namespace CodeImp.DoomBuilder.Interface
|
namespace CodeImp.DoomBuilder.Interface
|
||||||
{
|
{
|
||||||
public partial class TextureBrowserForm : DelayedForm
|
internal partial class TextureBrowserForm : DelayedForm
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
private string selectedname;
|
private string selectedname;
|
||||||
|
|