Merge branch 'master' of https://github.com/Regalis11/Barotrauma
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">ReleaseLinux</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
<ProductVersion>8.0.30703</ProductVersion>
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>Barotrauma</RootNamespace>
|
<RootNamespace>Barotrauma</RootNamespace>
|
||||||
<AssemblyName>Barotrauma</AssemblyName>
|
<AssemblyName>BarotraumaClient</AssemblyName>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
<PublishUrl>publish\</PublishUrl>
|
<PublishUrl>publish\</PublishUrl>
|
||||||
@@ -28,37 +28,47 @@
|
|||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
</PropertyGroup>
|
<ReleaseVersion>0.7.0.1</ReleaseVersion>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
<OutputPath>..\bin\Windows\Debug\</OutputPath>
|
|
||||||
<DefineConstants>TRACE;DEBUG;WINDOWS;CLIENT</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>..\bin\Windows\Release\</OutputPath>
|
|
||||||
<DefineConstants>TRACE;WINDOWS;CLIENT</DefineConstants>
|
|
||||||
<AllowedReferenceRelatedFileExtensions>
|
|
||||||
<!-- Prevent default XML and PDB files copied to output in RELEASE.
|
|
||||||
Only *.allowedextension files will be included, which doesn't exist in my case.
|
|
||||||
-->
|
|
||||||
.allowedextension
|
|
||||||
</AllowedReferenceRelatedFileExtensions>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
|
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseLinux|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\bin\ReleaseLinux\</OutputPath>
|
||||||
|
<DefineConstants>TRACE;LINUX;CLIENT</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugLinux|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\bin\DebugLinux\</OutputPath>
|
||||||
|
<DefineConstants>TRACE;LINUX;CLIENT;DEBUG</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseWindows|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\bin\ReleaseWindows\</OutputPath>
|
||||||
|
<DefineConstants>TRACE;WINDOWS;CLIENT</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugWindows|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\bin\DebugWindows\</OutputPath>
|
||||||
|
<DefineConstants>TRACE;WINDOWS;CLIENT;DEBUG</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Source\Camera.cs" />
|
<Compile Include="Source\Camera.cs" />
|
||||||
@@ -221,31 +231,30 @@
|
|||||||
<Compile Include="Source\Utils\ToolBox.cs" />
|
<Compile Include="Source\Utils\ToolBox.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="MonoGame.Framework, Version=3.6.0.1625, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Condition="$(DefineConstants.Contains('WINDOWS'))" Include="MonoGame.Framework.WindowsDX">
|
||||||
<HintPath>..\..\Libraries\NuGet\MonoGame.Framework.WindowsDX.3.6.0.1625\lib\net40\MonoGame.Framework.dll</HintPath>
|
<HintPath>..\..\Libraries\NuGet\MonoGame.Framework.WindowsDX.3.6.0.1625\lib\net40\MonoGame.Framework.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NVorbis, Version=0.8.4.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Condition="$(DefineConstants.Contains('WINDOWS'))" Include="SharpDX">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<HintPath>..\..\Libraries\NuGet\SharpDX.4.0.1\lib\net45\SharpDX.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Condition="$(DefineConstants.Contains('WINDOWS'))" Include="NVorbis">
|
||||||
<HintPath>..\..\Libraries\NuGet\NVorbis.0.8.5.0\lib\NVorbis.dll</HintPath>
|
<HintPath>..\..\Libraries\NuGet\NVorbis.0.8.5.0\lib\NVorbis.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="OpenTK, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
|
<Reference Include="OpenTK, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>..\..\Libraries\NuGet\OpenTK.2.0.0\lib\net20\OpenTK.dll</HintPath>
|
<HintPath>..\..\Libraries\NuGet\OpenTK.2.0.0\lib\net20\OpenTK.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="PresentationCore" />
|
|
||||||
<Reference Include="RestSharp">
|
|
||||||
<HintPath>..\..\Libraries\NuGet\RestSharp.105.2.3\lib\net45\RestSharp.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="SharpDX, Version=2.6.3.0, Culture=neutral, PublicKeyToken=b4dcf0f35e5521f1, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\Libraries\NuGet\MonoGame.Framework.WindowsDX.3.6.0.1625\lib\net40\SharpDX.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
<Reference Include="System.Windows.Forms" />
|
<Reference Include="System.Windows.Forms" />
|
||||||
<Reference Include="System.XML" />
|
<Reference Include="System.XML" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="RestSharp">
|
||||||
|
<HintPath>..\..\Libraries\NuGet\RestSharp.105.2.3\lib\net45\RestSharp.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Condition="$(DefineConstants.Contains('LINUX'))" Include="MonoGame.Framework.DesktopGL">
|
||||||
|
<HintPath>..\..\Libraries\NuGet\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="freetype6.dll">
|
<Content Include="freetype6.dll">
|
||||||
@@ -257,6 +266,15 @@
|
|||||||
<Content Include="wrap_oal.dll">
|
<Content Include="wrap_oal.dll">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Include="MonoGame.Framework.dll.config">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="OpenTK.dll.config">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="SharpFont.dll.config">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BootstrapperPackage Include=".NETFramework,Version=v4.0">
|
<BootstrapperPackage Include=".NETFramework,Version=v4.0">
|
||||||
@@ -281,10 +299,6 @@
|
|||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer Physics MonoGame.csproj">
|
|
||||||
<Project>{0aad36e3-51a5-4a07-ab60-5c8a66bd38b7}</Project>
|
|
||||||
<Name>Farseer Physics MonoGame</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.csproj">
|
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.csproj">
|
||||||
<Project>{3b8f9edb-6e5e-450c-abc2-ec49075d0b50}</Project>
|
<Project>{3b8f9edb-6e5e-450c-abc2-ec49075d0b50}</Project>
|
||||||
<Name>Hyper.ComponentModel</Name>
|
<Name>Hyper.ComponentModel</Name>
|
||||||
@@ -297,9 +311,12 @@
|
|||||||
<Project>{c293db32-fa42-486d-b128-5a12522fae4e}</Project>
|
<Project>{c293db32-fa42-486d-b128-5a12522fae4e}</Project>
|
||||||
<Name>SharpFont</Name>
|
<Name>SharpFont</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer Physics MonoGame.csproj">
|
||||||
|
<Project>{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}</Project>
|
||||||
|
<Name>Farseer Physics MonoGame</Name>
|
||||||
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="OpenTK.dll.config" />
|
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<dllmap dll="SDL2.dll" os="osx" target="libSDL2-2.0.0.dylib" />
|
||||||
|
<dllmap dll="soft_oal.dll" os="osx" target="libopenal.1.dylib" />
|
||||||
|
<dllmap dll="SDL2.dll" os="linux" cpu="x86" target="./x86/libSDL2-2.0.so.0" />
|
||||||
|
<dllmap dll="soft_oal.dll" os="linux" cpu="x86" target="./x86/libopenal.so.1" />
|
||||||
|
<dllmap dll="SDL2.dll" os="linux" cpu="x86-64" target="./x64/libSDL2-2.0.so.0" />
|
||||||
|
<dllmap dll="soft_oal.dll" os="linux" cpu="x86-64" target="./x64/libopenal.so.1" />
|
||||||
|
</configuration>
|
||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<dllmap dll="freetype6" os="linux" target="libfreetype.so.6" />
|
||||||
|
<dllmap dll="freetype6" os="osx" target="/Library/Frameworks/Mono.framework/Libraries/libfreetype.6.dylib" />
|
||||||
|
<dllmap dll="freetype6" os="freebsd" target="libfreetype.so.6" />
|
||||||
|
</configuration>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
using Barotrauma.Networking;
|
using Barotrauma.Networking;
|
||||||
using Barotrauma.Particles;
|
using Barotrauma.Particles;
|
||||||
using FarseerPhysics;
|
using FarseerPhysics;
|
||||||
using FarseerPhysics.Dynamics;
|
using FarseerPhysics.Dynamics;
|
||||||
@@ -290,7 +290,15 @@ namespace Barotrauma
|
|||||||
string name = Info.DisplayName;
|
string name = Info.DisplayName;
|
||||||
if (controlled == null && name != Info.Name) name += " (Disguised)";
|
if (controlled == null && name != Info.Name) name += " (Disguised)";
|
||||||
|
|
||||||
Vector2 namePos = new Vector2(pos.X, pos.Y - 110.0f - (5.0f / cam.Zoom)) - GUI.Font.MeasureString(name) * 0.5f / cam.Zoom;
|
Vector2 namePos = new Vector2(pos.X, pos.Y - 110.0f - (5.0f / cam.Zoom)) - GUI.Font.MeasureString(Info.Name) * 0.5f / cam.Zoom;
|
||||||
|
Vector2 screenSize = new Vector2(GameMain.GraphicsWidth, GameMain.GraphicsHeight);
|
||||||
|
Vector2 viewportSize = new Vector2(cam.WorldView.Width, cam.WorldView.Height);
|
||||||
|
namePos.X -= cam.WorldView.X; namePos.Y += cam.WorldView.Y;
|
||||||
|
namePos *= screenSize / viewportSize;
|
||||||
|
namePos.X = (float)Math.Floor(namePos.X); namePos.Y = (float)Math.Floor(namePos.Y);
|
||||||
|
namePos *= viewportSize / screenSize;
|
||||||
|
namePos.X += cam.WorldView.X; namePos.Y -= cam.WorldView.Y;
|
||||||
|
|
||||||
Color nameColor = Color.White;
|
Color nameColor = Color.White;
|
||||||
|
|
||||||
if (Controlled != null && TeamID != Controlled.TeamID)
|
if (Controlled != null && TeamID != Controlled.TeamID)
|
||||||
|
|||||||
@@ -145,6 +145,10 @@ namespace Barotrauma
|
|||||||
|
|
||||||
float rotation = msg.ReadFloat();
|
float rotation = msg.ReadFloat();
|
||||||
|
|
||||||
|
ReadStatus(msg);
|
||||||
|
|
||||||
|
msg.ReadPadBits();
|
||||||
|
|
||||||
int index = 0;
|
int index = 0;
|
||||||
if (GameMain.NetworkMember.Character == this)
|
if (GameMain.NetworkMember.Character == this)
|
||||||
{
|
{
|
||||||
@@ -193,9 +197,6 @@ namespace Barotrauma
|
|||||||
IsRemotePlayer = ownerID > 0;
|
IsRemotePlayer = ownerID > 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
|
||||||
ReadStatus(msg);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -190,6 +190,23 @@ namespace Barotrauma
|
|||||||
|
|
||||||
private static void InitProjectSpecific()
|
private static void InitProjectSpecific()
|
||||||
{
|
{
|
||||||
|
commands.Add(new Command("autohull", "", (string[] args) =>
|
||||||
|
{
|
||||||
|
if (Screen.Selected != GameMain.SubEditorScreen) return;
|
||||||
|
|
||||||
|
if (MapEntity.mapEntityList.Any(e => e is Hull || e is Gap))
|
||||||
|
{
|
||||||
|
ShowQuestionPrompt("This submarine already has hulls and/or gaps. This command will delete them. Do you want to continue? Y/N",
|
||||||
|
(option) => {
|
||||||
|
if (option.ToLower() == "y") GameMain.SubEditorScreen.AutoHull();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GameMain.SubEditorScreen.AutoHull();
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
commands.Add(new Command("startclient", "", (string[] args) =>
|
commands.Add(new Command("startclient", "", (string[] args) =>
|
||||||
{
|
{
|
||||||
if (args.Length == 0) return;
|
if (args.Length == 0) return;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Content;
|
using Microsoft.Xna.Framework.Content;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using System;
|
using System;
|
||||||
@@ -427,12 +427,15 @@ namespace Barotrauma
|
|||||||
ScreenOverlayColor, true);
|
ScreenOverlayColor, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GameMain.DebugDraw)
|
if (GameMain.ShowFPS || GameMain.DebugDraw)
|
||||||
{
|
{
|
||||||
DrawString(spriteBatch, new Vector2(10, 10),
|
DrawString(spriteBatch, new Vector2(10, 10),
|
||||||
"FPS: " + (int)GameMain.FrameCounter.AverageFramesPerSecond,
|
"FPS: " + (int)GameMain.FrameCounter.AverageFramesPerSecond,
|
||||||
Color.White, Color.Black * 0.5f, 0, SmallFont);
|
Color.White, Color.Black * 0.5f, 0, SmallFont);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GameMain.DebugDraw)
|
||||||
|
{
|
||||||
DrawString(spriteBatch, new Vector2(10, 25),
|
DrawString(spriteBatch, new Vector2(10, 25),
|
||||||
"Physics: " + GameMain.World.UpdateTime,
|
"Physics: " + GameMain.World.UpdateTime,
|
||||||
Color.White, Color.Black * 0.5f, 0, SmallFont);
|
Color.White, Color.Black * 0.5f, 0, SmallFont);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using EventInput;
|
using EventInput;
|
||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using System;
|
using System;
|
||||||
@@ -130,6 +130,37 @@ namespace Barotrauma
|
|||||||
get { return new Vector2(rect.Center.X, rect.Center.Y); }
|
get { return new Vector2(rect.Center.X, rect.Center.Y); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected Rectangle ClampRect(Rectangle r)
|
||||||
|
{
|
||||||
|
if (parent == null) return r;
|
||||||
|
Rectangle parentRect = parent.ClampRect(parent.rect);
|
||||||
|
if (parentRect.Width <= 0 || parentRect.Height <= 0) return Rectangle.Empty;
|
||||||
|
if (parentRect.X > r.X)
|
||||||
|
{
|
||||||
|
int diff = parentRect.X - r.X;
|
||||||
|
r.X = parentRect.X;
|
||||||
|
r.Width -= diff;
|
||||||
|
}
|
||||||
|
if (parentRect.Y > r.Y)
|
||||||
|
{
|
||||||
|
int diff = parentRect.Y - r.Y;
|
||||||
|
r.Y = parentRect.Y;
|
||||||
|
r.Height -= diff;
|
||||||
|
}
|
||||||
|
if (parentRect.X + parentRect.Width < r.X + r.Width)
|
||||||
|
{
|
||||||
|
int diff = (r.X + r.Width) - (parentRect.X + parentRect.Width);
|
||||||
|
r.Width -= diff;
|
||||||
|
}
|
||||||
|
if (parentRect.Y + parentRect.Height < r.Y + r.Height)
|
||||||
|
{
|
||||||
|
int diff = (r.Y + r.Height) - (parentRect.Y + parentRect.Height);
|
||||||
|
r.Height -= diff;
|
||||||
|
}
|
||||||
|
if (r.Width <= 0 || r.Height <= 0) return Rectangle.Empty;
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
public virtual Rectangle Rect
|
public virtual Rectangle Rect
|
||||||
{
|
{
|
||||||
get { return rect; }
|
get { return rect; }
|
||||||
@@ -162,7 +193,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public virtual Rectangle MouseRect
|
public virtual Rectangle MouseRect
|
||||||
{
|
{
|
||||||
get { return CanBeFocused ? rect : Rectangle.Empty; }
|
get { return CanBeFocused ? ClampRect(rect) : Rectangle.Empty; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public Dictionary<ComponentState, List<UISprite>> sprites;
|
public Dictionary<ComponentState, List<UISprite>> sprites;
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return rect;
|
return ClampRect(rect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public GUIMessage(string text, Color color, Vector2 position, float lifeTime, Alignment textAlignment, bool autoCenter)
|
public GUIMessage(string text, Color color, Vector2 position, float lifeTime, Alignment textAlignment, bool autoCenter)
|
||||||
{
|
{
|
||||||
coloredText = new ColoredText(text, color);
|
coloredText = new ColoredText(text, color, false);
|
||||||
pos = position;
|
pos = position;
|
||||||
this.lifeTime = lifeTime;
|
this.lifeTime = lifeTime;
|
||||||
this.Alignment = textAlignment;
|
this.Alignment = textAlignment;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
|
||||||
namespace Barotrauma
|
namespace Barotrauma
|
||||||
@@ -63,7 +63,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public override Rectangle MouseRect
|
public override Rectangle MouseRect
|
||||||
{
|
{
|
||||||
get { return box.Rect; }
|
get { return ClampRect(box.Rect); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public override ScalableFont Font
|
public override ScalableFont Font
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Barotrauma.Networking;
|
using Barotrauma.Networking;
|
||||||
using Barotrauma.Particles;
|
using Barotrauma.Particles;
|
||||||
using FarseerPhysics;
|
using FarseerPhysics;
|
||||||
using FarseerPhysics.Dynamics;
|
using FarseerPhysics.Dynamics;
|
||||||
@@ -14,6 +14,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
class GameMain : Game
|
class GameMain : Game
|
||||||
{
|
{
|
||||||
|
public static bool ShowFPS = true;
|
||||||
public static bool DebugDraw;
|
public static bool DebugDraw;
|
||||||
|
|
||||||
public static FrameCounter FrameCounter;
|
public static FrameCounter FrameCounter;
|
||||||
|
|||||||
@@ -470,7 +470,7 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
body.FarseerBody.Enabled = false;
|
body.Enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((newPosition - SimPosition).Length() > body.LinearVelocity.Length() * 2.0f)
|
if ((newPosition - SimPosition).Length() > body.LinearVelocity.Length() * 2.0f)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Barotrauma.Lights;
|
using Barotrauma.Lights;
|
||||||
using Barotrauma.Particles;
|
using Barotrauma.Particles;
|
||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using System;
|
using System;
|
||||||
@@ -76,9 +76,9 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lightSource.Range = Math.Max(size.X, size.Y) * 10.0f / 2.0f;
|
|
||||||
lightSource.Color = new Color(1.0f, 0.45f, 0.3f) * Rand.Range(0.8f, 1.0f);
|
lightSource.Color = new Color(1.0f, 0.45f, 0.3f) * Rand.Range(0.8f, 1.0f);
|
||||||
lightSource.Position = position + Vector2.UnitY * 30.0f;
|
if (Math.Abs((lightSource.Range * 0.2f) - Math.Max(size.X, size.Y)) > 1.0f) lightSource.Range = Math.Max(size.X, size.Y) * 5.0f;
|
||||||
|
if (Vector2.DistanceSquared(lightSource.Position,position) > 5.0f) lightSource.Position = position + Vector2.UnitY * 30.0f;
|
||||||
|
|
||||||
if (size.X > 256.0f)
|
if (size.X > 256.0f)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -63,6 +63,7 @@ namespace Barotrauma
|
|||||||
public void Update(float deltaTime)
|
public void Update(float deltaTime)
|
||||||
{
|
{
|
||||||
dustOffset -= Vector2.UnitY * 10.0f * deltaTime;
|
dustOffset -= Vector2.UnitY * 10.0f * deltaTime;
|
||||||
|
while (dustOffset.Y <= -1024.0f) dustOffset.Y += 1024.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static VertexPositionColorTexture[] GetColoredVertices(VertexPositionTexture[] vertices, Color color)
|
public static VertexPositionColorTexture[] GetColoredVertices(VertexPositionTexture[] vertices, Color color)
|
||||||
@@ -108,7 +109,7 @@ namespace Barotrauma
|
|||||||
Vector2 backgroundPos = cam.WorldViewCenter;
|
Vector2 backgroundPos = cam.WorldViewCenter;
|
||||||
|
|
||||||
backgroundPos.Y = -backgroundPos.Y;
|
backgroundPos.Y = -backgroundPos.Y;
|
||||||
backgroundPos /= 20.0f;
|
backgroundPos *= 0.05f;
|
||||||
|
|
||||||
if (backgroundPos.Y < 1024)
|
if (backgroundPos.Y < 1024)
|
||||||
{
|
{
|
||||||
@@ -130,35 +131,38 @@ namespace Barotrauma
|
|||||||
|
|
||||||
spriteBatch.End();
|
spriteBatch.End();
|
||||||
|
|
||||||
spriteBatch.Begin(SpriteSortMode.BackToFront,
|
spriteBatch.Begin(SpriteSortMode.Deferred,
|
||||||
BlendState.AlphaBlend,
|
BlendState.AlphaBlend,
|
||||||
SamplerState.LinearWrap, DepthStencilState.Default, null, null,
|
SamplerState.LinearWrap, DepthStencilState.Default, null, null,
|
||||||
cam.Transform);
|
cam.Transform);
|
||||||
|
|
||||||
|
Vector2 origin = new Vector2(cam.WorldView.X, -cam.WorldView.Y);
|
||||||
|
Vector2 offset = -origin + dustOffset;
|
||||||
|
while (offset.X <= -1024.0f) offset.X += 1024.0f;
|
||||||
|
while (offset.X > 0.0f) offset.X -= 1024.0f;
|
||||||
|
while (offset.Y <= -1024.0f) offset.Y += 1024.0f;
|
||||||
|
while (offset.Y > 0.0f) offset.Y -= 1024.0f;
|
||||||
|
|
||||||
if (backgroundSpriteManager != null) backgroundSpriteManager.DrawSprites(spriteBatch, cam);
|
if (backgroundSpriteManager != null) backgroundSpriteManager.DrawSprites(spriteBatch, cam);
|
||||||
if (backgroundCreatureManager != null) backgroundCreatureManager.Draw(spriteBatch);
|
if (backgroundCreatureManager != null) backgroundCreatureManager.Draw(spriteBatch);
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
float scale = 1.0f - i * 0.2f;
|
float scale = 1.0f - i * 0.2f;
|
||||||
|
float recipScale = 1.0f / scale;
|
||||||
|
|
||||||
//alpha goes from 1.0 to 0.0 when scale is in the range of 0.2-0.1
|
//alpha goes from 1.0 to 0.0 when scale is in the range of 0.5-0.25
|
||||||
float alpha = (cam.Zoom * scale) < 0.2f ? (cam.Zoom * scale - 0.1f) * 10.0f : 1.0f;
|
float alpha = (cam.Zoom * scale) < 0.5f ? (cam.Zoom * scale - 0.25f) * 40.0f : 1.0f;
|
||||||
if (alpha <= 0.0f) continue;
|
if (alpha <= 0.0f) continue;
|
||||||
|
|
||||||
Vector2 offset = (new Vector2(cam.WorldViewCenter.X, cam.WorldViewCenter.Y) + dustOffset) * scale;
|
Vector2 offsetS = offset * scale + new Vector2(cam.WorldView.Width, cam.WorldView.Height) * (1.0f - scale) * 0.5f - new Vector2(256.0f * i);
|
||||||
Vector3 origin = new Vector3(cam.WorldView.Width, cam.WorldView.Height, 0.0f) * 0.5f;
|
while (offsetS.X <= -1024.0f*scale) offsetS.X += 1024.0f*scale;
|
||||||
|
while (offsetS.X > 0.0f) offsetS.X -= 1024.0f*scale;
|
||||||
|
while (offsetS.Y <= -1024.0f*scale) offsetS.Y += 1024.0f*scale;
|
||||||
|
while (offsetS.Y > 0.0f) offsetS.Y -= 1024.0f*scale;
|
||||||
|
|
||||||
dustParticles.SourceRect = new Rectangle(
|
Rectangle srcRect = new Rectangle(0, 0, 2048, 2048);
|
||||||
(int)((offset.X - origin.X + (i * 256)) / scale),
|
dustParticles.DrawTiled(spriteBatch, origin + offsetS, new Vector2(cam.WorldView.Width - offsetS.X, cam.WorldView.Height - offsetS.Y), Vector2.Zero, srcRect, Color.White * alpha, new Vector2(scale));
|
||||||
(int)((-offset.Y - origin.Y + (i * 256)) / scale),
|
|
||||||
(int)((cam.WorldView.Width) / scale),
|
|
||||||
(int)((cam.WorldView.Height) / scale));
|
|
||||||
|
|
||||||
spriteBatch.Draw(dustParticles.Texture,
|
|
||||||
new Vector2(cam.WorldViewCenter.X, -cam.WorldViewCenter.Y),
|
|
||||||
dustParticles.SourceRect, Color.White * alpha, 0.0f,
|
|
||||||
new Vector2(cam.WorldView.Width, cam.WorldView.Height) * 0.5f / scale, scale, SpriteEffects.None, 1.0f - scale);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
spriteBatch.End();
|
spriteBatch.End();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Content;
|
using Microsoft.Xna.Framework.Content;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using System;
|
using System;
|
||||||
@@ -13,7 +13,11 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public VertexPositionTexture[] vertices = new VertexPositionTexture[DefaultBufferSize];
|
public VertexPositionTexture[] vertices = new VertexPositionTexture[DefaultBufferSize];
|
||||||
|
|
||||||
private Effect waterEffect;
|
public Effect waterEffect
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
private set;
|
||||||
|
}
|
||||||
private BasicEffect basicEffect;
|
private BasicEffect basicEffect;
|
||||||
|
|
||||||
public int PositionInBuffer = 0;
|
public int PositionInBuffer = 0;
|
||||||
@@ -93,7 +97,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
basicEffect.CurrentTechnique.Passes[0].Apply();
|
basicEffect.CurrentTechnique.Passes[0].Apply();
|
||||||
|
|
||||||
graphicsDevice.SamplerStates[0] = SamplerState.LinearWrap;
|
graphicsDevice.SamplerStates[0] = SamplerState.PointWrap;
|
||||||
graphicsDevice.DrawUserPrimitives<VertexPositionTexture>(PrimitiveType.TriangleList, vertices, 0, vertices.Length / 3);
|
graphicsDevice.DrawUserPrimitives<VertexPositionTexture>(PrimitiveType.TriangleList, vertices, 0, vertices.Length / 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -23,7 +23,17 @@ namespace Barotrauma.Lights
|
|||||||
|
|
||||||
public Color AmbientLight;
|
public Color AmbientLight;
|
||||||
|
|
||||||
RenderTarget2D lightMap, losTexture;
|
private float lightmapScale = 0.5f;
|
||||||
|
public RenderTarget2D lightMap
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
private set;
|
||||||
|
}
|
||||||
|
public RenderTarget2D losTexture
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
private set;
|
||||||
|
}
|
||||||
|
|
||||||
BasicEffect lightEffect;
|
BasicEffect lightEffect;
|
||||||
|
|
||||||
@@ -36,8 +46,9 @@ namespace Barotrauma.Lights
|
|||||||
public bool LightingEnabled = true;
|
public bool LightingEnabled = true;
|
||||||
|
|
||||||
public bool ObstructVision;
|
public bool ObstructVision;
|
||||||
|
LightSource losSource;
|
||||||
|
|
||||||
private Texture2D visionCircle;
|
private Sprite visionCircle;
|
||||||
|
|
||||||
private Dictionary<Hull, Color> hullAmbientLights;
|
private Dictionary<Hull, Color> hullAmbientLights;
|
||||||
private Dictionary<Hull, Color> smoothedHullAmbientLights;
|
private Dictionary<Hull, Color> smoothedHullAmbientLights;
|
||||||
@@ -50,21 +61,26 @@ namespace Barotrauma.Lights
|
|||||||
|
|
||||||
AmbientLight = new Color(20, 20, 20, 255);
|
AmbientLight = new Color(20, 20, 20, 255);
|
||||||
|
|
||||||
visionCircle = Sprite.LoadTexture("Content/Lights/visioncircle.png");
|
//visionCircle = Sprite.LoadTexture("Content/Lights/visioncircle.png");
|
||||||
|
visionCircle = new Sprite("Content/Lights/visioncircle.png", new Vector2(0.2f, 0.5f));
|
||||||
|
|
||||||
var pp = graphics.PresentationParameters;
|
var pp = graphics.PresentationParameters;
|
||||||
|
|
||||||
lightMap = new RenderTarget2D(graphics,
|
lightMap = new RenderTarget2D(graphics,
|
||||||
GameMain.GraphicsWidth, GameMain.GraphicsHeight, false,
|
(int)(GameMain.GraphicsWidth*lightmapScale), (int)(GameMain.GraphicsHeight*lightmapScale), false,
|
||||||
pp.BackBufferFormat, pp.DepthStencilFormat, pp.MultiSampleCount,
|
pp.BackBufferFormat, pp.DepthStencilFormat, pp.MultiSampleCount,
|
||||||
RenderTargetUsage.DiscardContents);
|
RenderTargetUsage.DiscardContents);
|
||||||
|
|
||||||
losTexture = new RenderTarget2D(graphics, GameMain.GraphicsWidth, GameMain.GraphicsHeight);
|
losTexture = new RenderTarget2D(graphics, (int)(GameMain.GraphicsWidth*lightmapScale), (int)(GameMain.GraphicsHeight*lightmapScale), false, SurfaceFormat.Alpha8, DepthFormat.None);
|
||||||
|
|
||||||
|
losSource = new LightSource(Vector2.Zero, GameMain.GraphicsWidth, Color.White, null, false);
|
||||||
|
losSource.texture = new Texture2D(graphics, 1, 1);
|
||||||
|
losSource.texture.SetData(new Color[] { Color.White });// fill the texture with white
|
||||||
|
|
||||||
if (lightEffect == null)
|
if (lightEffect == null)
|
||||||
{
|
{
|
||||||
lightEffect = new BasicEffect(GameMain.Instance.GraphicsDevice);
|
lightEffect = new BasicEffect(GameMain.Instance.GraphicsDevice);
|
||||||
lightEffect.VertexColorEnabled = false;
|
lightEffect.VertexColorEnabled = true;
|
||||||
|
|
||||||
lightEffect.TextureEnabled = true;
|
lightEffect.TextureEnabled = true;
|
||||||
lightEffect.Texture = LightSource.LightTexture;
|
lightEffect.Texture = LightSource.LightTexture;
|
||||||
@@ -142,7 +158,7 @@ namespace Barotrauma.Lights
|
|||||||
graphics.Clear(AmbientLight);
|
graphics.Clear(AmbientLight);
|
||||||
graphics.BlendState = BlendState.Additive;
|
graphics.BlendState = BlendState.Additive;
|
||||||
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive, null, null, null, null, cam.Transform);
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive, null, null, null, null, cam.Transform * Matrix.CreateScale(new Vector3(lightmapScale, lightmapScale, 1.0f)));
|
||||||
|
|
||||||
Matrix transform = cam.ShaderTransform
|
Matrix transform = cam.ShaderTransform
|
||||||
* Matrix.CreateOrthographic(GameMain.GraphicsWidth, GameMain.GraphicsHeight, -1, 1) * 0.5f;
|
* Matrix.CreateOrthographic(GameMain.GraphicsWidth, GameMain.GraphicsHeight, -1, 1) * 0.5f;
|
||||||
@@ -201,56 +217,43 @@ namespace Barotrauma.Lights
|
|||||||
|
|
||||||
public void UpdateObstructVision(GraphicsDevice graphics, SpriteBatch spriteBatch, Camera cam, Vector2 lookAtPosition)
|
public void UpdateObstructVision(GraphicsDevice graphics, SpriteBatch spriteBatch, Camera cam, Vector2 lookAtPosition)
|
||||||
{
|
{
|
||||||
if (!LosEnabled && !ObstructVision) return;
|
if (!LosEnabled || ViewTarget == null) return;
|
||||||
|
|
||||||
graphics.SetRenderTarget(losTexture);
|
graphics.SetRenderTarget(losTexture);
|
||||||
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, cam.Transform);
|
//--------------------------------------
|
||||||
|
|
||||||
|
graphics.Clear(Color.Black);
|
||||||
if (ObstructVision)
|
if (ObstructVision)
|
||||||
{
|
{
|
||||||
//graphics.Clear(Color.Black);
|
|
||||||
|
|
||||||
Vector2 diff = lookAtPosition - ViewTarget.WorldPosition;
|
Vector2 diff = lookAtPosition - ViewTarget.WorldPosition;
|
||||||
diff.Y = -diff.Y;
|
|
||||||
float rotation = MathUtils.VectorToAngle(diff);
|
float rotation = MathUtils.VectorToAngle(diff);
|
||||||
|
|
||||||
Vector2 scale = new Vector2(MathHelper.Clamp(diff.Length()/256.0f, 2.0f, 5.0f), 2.0f);
|
Vector2 scale = new Vector2(MathHelper.Clamp(diff.Length() / 256.0f, 2.0f, 5.0f), 2.0f) * 0.3f;
|
||||||
|
|
||||||
spriteBatch.Draw(visionCircle, new Vector2(ViewTarget.WorldPosition.X, -ViewTarget.WorldPosition.Y), null, Color.White, rotation,
|
visionCircle.size = new Vector2(visionCircle.SourceRect.Width * scale.X, visionCircle.SourceRect.Height * scale.Y);
|
||||||
new Vector2(LightSource.LightTexture.Width*0.2f, LightSource.LightTexture.Height/2), scale, SpriteEffects.None, 0.0f);
|
losSource.overrideLightTexture = visionCircle;
|
||||||
|
losSource.Rotation = rotation;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
graphics.Clear(Color.White);
|
losSource.overrideLightTexture = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
spriteBatch.End();
|
graphics.BlendState = BlendState.Additive;
|
||||||
|
|
||||||
//--------------------------------------
|
Vector2 pos = ViewTarget.Position;
|
||||||
|
losSource.Position = pos;
|
||||||
|
losSource.NeedsRecalculation = true;
|
||||||
|
losSource.ParentSub = ViewTarget.Submarine;
|
||||||
|
|
||||||
if (LosEnabled && ViewTarget != null)
|
Matrix transform = cam.ShaderTransform
|
||||||
{
|
* Matrix.CreateOrthographic(GameMain.GraphicsWidth, GameMain.GraphicsHeight, -1, 1) * 0.5f;
|
||||||
Vector2 pos = ViewTarget.WorldPosition;
|
|
||||||
|
|
||||||
Rectangle camView = new Rectangle(cam.WorldView.X, cam.WorldView.Y - cam.WorldView.Height, cam.WorldView.Width, cam.WorldView.Height);
|
losSource.Draw(spriteBatch, lightEffect, transform);
|
||||||
|
|
||||||
Matrix shadowTransform = cam.ShaderTransform
|
graphics.BlendState = BlendState.AlphaBlend;
|
||||||
* Matrix.CreateOrthographic(GameMain.GraphicsWidth, GameMain.GraphicsHeight, -1, 1) * 0.5f;
|
|
||||||
|
|
||||||
var convexHulls = ConvexHull.GetHullsInRange(viewTarget.Position, cam.WorldView.Width*0.75f, viewTarget.Submarine);
|
|
||||||
|
|
||||||
if (convexHulls != null)
|
|
||||||
{
|
|
||||||
foreach (ConvexHull convexHull in convexHulls)
|
|
||||||
{
|
|
||||||
if (!convexHull.Intersects(camView)) continue;
|
|
||||||
//if (!camView.Intersects(convexHull.BoundingBox)) continue;
|
|
||||||
|
|
||||||
convexHull.DrawShadows(graphics, cam, pos, shadowTransform);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
graphics.SetRenderTarget(null);
|
graphics.SetRenderTarget(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,22 +341,11 @@ namespace Barotrauma.Lights
|
|||||||
{
|
{
|
||||||
if (!LightingEnabled) return;
|
if (!LightingEnabled) return;
|
||||||
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, CustomBlendStates.Multiplicative, null, null, null, effect);
|
spriteBatch.Begin(SpriteSortMode.Deferred, CustomBlendStates.Multiplicative, null, null, null, null);
|
||||||
spriteBatch.Draw(lightMap, Vector2.Zero, Color.White);
|
spriteBatch.Draw(lightMap, new Rectangle(0,0,GameMain.GraphicsWidth,GameMain.GraphicsHeight), Color.White);
|
||||||
spriteBatch.End();
|
spriteBatch.End();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DrawLOS(SpriteBatch spriteBatch, Effect effect,bool renderingBackground)
|
|
||||||
{
|
|
||||||
if (!LosEnabled || ViewTarget == null) return;
|
|
||||||
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, renderingBackground ? CustomBlendStates.LOS : CustomBlendStates.Multiplicative, null, null, null, effect);
|
|
||||||
spriteBatch.Draw(losTexture, Vector2.Zero, Color.White);
|
|
||||||
spriteBatch.End();
|
|
||||||
|
|
||||||
if (!renderingBackground) ObstructVision = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ClearLights()
|
public void ClearLights()
|
||||||
{
|
{
|
||||||
lights.Clear();
|
lights.Clear();
|
||||||
@@ -376,16 +368,10 @@ namespace Barotrauma.Lights
|
|||||||
MultiplyWithAlpha = new BlendState();
|
MultiplyWithAlpha = new BlendState();
|
||||||
MultiplyWithAlpha.ColorDestinationBlend = MultiplyWithAlpha.AlphaDestinationBlend = Blend.One;
|
MultiplyWithAlpha.ColorDestinationBlend = MultiplyWithAlpha.AlphaDestinationBlend = Blend.One;
|
||||||
MultiplyWithAlpha.ColorSourceBlend = MultiplyWithAlpha.AlphaSourceBlend = Blend.DestinationAlpha;
|
MultiplyWithAlpha.ColorSourceBlend = MultiplyWithAlpha.AlphaSourceBlend = Blend.DestinationAlpha;
|
||||||
|
|
||||||
LOS = new BlendState();
|
|
||||||
LOS.ColorSourceBlend = LOS.AlphaSourceBlend = Blend.Zero;
|
|
||||||
LOS.ColorDestinationBlend = LOS.AlphaDestinationBlend = Blend.InverseSourceColor;
|
|
||||||
LOS.ColorBlendFunction = LOS.AlphaBlendFunction = BlendFunction.Add;
|
|
||||||
}
|
}
|
||||||
public static BlendState Multiplicative { get; private set; }
|
public static BlendState Multiplicative { get; private set; }
|
||||||
public static BlendState WriteToAlpha { get; private set; }
|
public static BlendState WriteToAlpha { get; private set; }
|
||||||
public static BlendState MultiplyWithAlpha { get; private set; }
|
public static BlendState MultiplyWithAlpha { get; private set; }
|
||||||
public static BlendState LOS { get; private set; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -17,8 +17,8 @@ namespace Barotrauma.Lights
|
|||||||
private Color color;
|
private Color color;
|
||||||
private float range;
|
private float range;
|
||||||
|
|
||||||
private Sprite overrideLightTexture;
|
public Sprite overrideLightTexture;
|
||||||
private Texture2D texture;
|
public Texture2D texture;
|
||||||
|
|
||||||
public Sprite LightSprite;
|
public Sprite LightSprite;
|
||||||
|
|
||||||
@@ -140,7 +140,7 @@ namespace Barotrauma.Lights
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public LightSource(Vector2 position, float range, Color color, Submarine submarine)
|
public LightSource(Vector2 position, float range, Color color, Submarine submarine, bool addLight=true)
|
||||||
{
|
{
|
||||||
hullsInRange = new List<ConvexHullList>();
|
hullsInRange = new List<ConvexHullList>();
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ namespace Barotrauma.Lights
|
|||||||
|
|
||||||
diffToSub = new Dictionary<Submarine, Vector2>();
|
diffToSub = new Dictionary<Submarine, Vector2>();
|
||||||
|
|
||||||
GameMain.LightManager.AddLight(this);
|
if (addLight) GameMain.LightManager.AddLight(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*public void DrawShadows(GraphicsDevice graphics, Camera cam, Matrix shadowTransform)
|
/*public void DrawShadows(GraphicsDevice graphics, Camera cam, Matrix shadowTransform)
|
||||||
@@ -322,6 +322,7 @@ namespace Barotrauma.Lights
|
|||||||
hulls.AddRange(chList.List);
|
hulls.AddRange(chList.List);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float bounds = range*2;
|
||||||
//find convexhull segments that are close enough and facing towards the light source
|
//find convexhull segments that are close enough and facing towards the light source
|
||||||
List<Segment> visibleSegments = new List<Segment>();
|
List<Segment> visibleSegments = new List<Segment>();
|
||||||
List<SegmentPoint> points = new List<SegmentPoint>();
|
List<SegmentPoint> points = new List<SegmentPoint>();
|
||||||
@@ -336,6 +337,10 @@ namespace Barotrauma.Lights
|
|||||||
{
|
{
|
||||||
points.Add(s.Start);
|
points.Add(s.Start);
|
||||||
points.Add(s.End);
|
points.Add(s.End);
|
||||||
|
if (Math.Abs(s.Start.WorldPos.X - drawPos.X) > bounds) bounds = Math.Abs(s.Start.WorldPos.X - drawPos.X);
|
||||||
|
if (Math.Abs(s.Start.WorldPos.Y - drawPos.Y) > bounds) bounds = Math.Abs(s.Start.WorldPos.Y - drawPos.Y);
|
||||||
|
if (Math.Abs(s.End.WorldPos.X - drawPos.X) > bounds) bounds = Math.Abs(s.End.WorldPos.X - drawPos.X);
|
||||||
|
if (Math.Abs(s.End.WorldPos.Y - drawPos.Y) > bounds) bounds = Math.Abs(s.End.WorldPos.Y - drawPos.Y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -344,14 +349,21 @@ namespace Barotrauma.Lights
|
|||||||
|
|
||||||
//(might be more effective to calculate if we actually need these extra points)
|
//(might be more effective to calculate if we actually need these extra points)
|
||||||
var boundaryCorners = new List<SegmentPoint> {
|
var boundaryCorners = new List<SegmentPoint> {
|
||||||
new SegmentPoint(new Vector2(drawPos.X + range*2, drawPos.Y + range*2)),
|
new SegmentPoint(new Vector2(drawPos.X + bounds, drawPos.Y + bounds)),
|
||||||
new SegmentPoint(new Vector2(drawPos.X + range*2, drawPos.Y - range*2)),
|
new SegmentPoint(new Vector2(drawPos.X + bounds, drawPos.Y - bounds)),
|
||||||
new SegmentPoint(new Vector2(drawPos.X - range*2, drawPos.Y - range*2)),
|
new SegmentPoint(new Vector2(drawPos.X - bounds, drawPos.Y - bounds)),
|
||||||
new SegmentPoint(new Vector2(drawPos.X - range*2, drawPos.Y + range*2))
|
new SegmentPoint(new Vector2(drawPos.X - bounds, drawPos.Y + bounds))
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//points.Clear();
|
||||||
points.AddRange(boundaryCorners);
|
points.AddRange(boundaryCorners);
|
||||||
|
|
||||||
|
//visibleSegments.Clear();
|
||||||
|
for (int i=0;i<4;i++)
|
||||||
|
{
|
||||||
|
visibleSegments.Add(new Segment(boundaryCorners[i], boundaryCorners[(i + 1) % 4]));
|
||||||
|
}
|
||||||
|
|
||||||
var compareCCW = new CompareSegmentPointCW(drawPos);
|
var compareCCW = new CompareSegmentPointCW(drawPos);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -368,14 +380,16 @@ namespace Barotrauma.Lights
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<Vector2> output = new List<Vector2>();
|
List<Vector2> output = new List<Vector2>();
|
||||||
|
//List<Pair<int, Vector2>> preOutput = new List<Pair<int, Vector2>>();
|
||||||
|
|
||||||
//remove points that are very close to each other
|
//remove points that are very close to each other
|
||||||
for (int i = 0; i < points.Count - 1; i++)
|
for (int i = 0; i < points.Count - 1; i++)
|
||||||
{
|
{
|
||||||
if (Math.Abs(points[i].WorldPos.X - points[i + 1].WorldPos.X) < 3 &&
|
if (Math.Abs(points[i].WorldPos.X - points[i + 1].WorldPos.X) < 6 &&
|
||||||
Math.Abs(points[i].WorldPos.Y - points[i + 1].WorldPos.Y) < 3)
|
Math.Abs(points[i].WorldPos.Y - points[i + 1].WorldPos.Y) < 6)
|
||||||
{
|
{
|
||||||
points.RemoveAt(i + 1);
|
points.RemoveAt(i + 1);
|
||||||
|
i--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -385,32 +399,52 @@ namespace Barotrauma.Lights
|
|||||||
Vector2 dirNormal = new Vector2(-dir.Y, dir.X)*3;
|
Vector2 dirNormal = new Vector2(-dir.Y, dir.X)*3;
|
||||||
|
|
||||||
//do two slightly offset raycasts to hit the segment itself and whatever's behind it
|
//do two slightly offset raycasts to hit the segment itself and whatever's behind it
|
||||||
Vector2 intersection1 = RayCast(drawPos, drawPos + dir * range * 2 - dirNormal, visibleSegments);
|
Pair<int,Vector2> intersection1 = RayCast(drawPos, drawPos + dir * bounds * 2 - dirNormal, visibleSegments);
|
||||||
Vector2 intersection2 = RayCast(drawPos, drawPos + dir * range * 2 + dirNormal, visibleSegments);
|
Pair<int,Vector2> intersection2 = RayCast(drawPos, drawPos + dir * bounds * 2 + dirNormal, visibleSegments);
|
||||||
|
|
||||||
//hit almost the same position -> only add one vertex to output
|
if (intersection1.First < 0) return new List<Vector2>();
|
||||||
if ((Math.Abs(intersection1.X - intersection2.X) < 5 &&
|
if (intersection2.First < 0) return new List<Vector2>();
|
||||||
Math.Abs(intersection1.Y - intersection2.Y) < 5))
|
Segment seg1 = visibleSegments[intersection1.First];
|
||||||
|
Segment seg2 = visibleSegments[intersection2.First];
|
||||||
|
|
||||||
|
bool isPoint1 = MathUtils.LineToPointDistance(seg1.Start.WorldPos, seg1.End.WorldPos, p.WorldPos) < 5.0f;
|
||||||
|
bool isPoint2 = MathUtils.LineToPointDistance(seg2.Start.WorldPos, seg2.End.WorldPos, p.WorldPos) < 5.0f;
|
||||||
|
|
||||||
|
//hit at the current segmentpoint -> place the segmentpoint into the list
|
||||||
|
if (isPoint1 && isPoint2)
|
||||||
{
|
{
|
||||||
output.Add(intersection1);
|
output.Add(p.WorldPos);
|
||||||
}
|
}
|
||||||
else
|
else if (intersection1.First != intersection2.First)
|
||||||
{
|
{
|
||||||
output.Add(intersection1);
|
output.Add(isPoint1 ? p.WorldPos : intersection1.Second);
|
||||||
output.Add(intersection2);
|
output.Add(isPoint2 ? p.WorldPos : intersection2.Second);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//remove points that are very close to each other
|
||||||
|
for (int i = 0; i < output.Count - 1; i++)
|
||||||
|
{
|
||||||
|
if (Math.Abs(output[i].X - output[i + 1].X) < 6 &&
|
||||||
|
Math.Abs(output[i].Y - output[i + 1].Y) < 6)
|
||||||
|
{
|
||||||
|
output.RemoveAt(i + 1);
|
||||||
|
i--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Vector2 RayCast(Vector2 rayStart, Vector2 rayEnd, List<Segment> segments)
|
private Pair<int,Vector2> RayCast(Vector2 rayStart, Vector2 rayEnd, List<Segment> segments)
|
||||||
{
|
{
|
||||||
float closestDist = 0.0f;
|
float closestDist = 0.0f;
|
||||||
Vector2? closestIntersection = null;
|
Vector2? closestIntersection = null;
|
||||||
|
int segment = -1;
|
||||||
|
|
||||||
foreach (Segment s in segments)
|
for (int i=0;i<segments.Count;i++)
|
||||||
{
|
{
|
||||||
|
Segment s = segments[i];
|
||||||
Vector2? intersection = MathUtils.GetAxisAlignedLineIntersection(rayStart, rayEnd, s.Start.WorldPos, s.End.WorldPos, s.IsHorizontal);
|
Vector2? intersection = MathUtils.GetAxisAlignedLineIntersection(rayStart, rayEnd, s.Start.WorldPos, s.End.WorldPos, s.IsHorizontal);
|
||||||
|
|
||||||
if (intersection != null)
|
if (intersection != null)
|
||||||
@@ -420,16 +454,20 @@ namespace Barotrauma.Lights
|
|||||||
{
|
{
|
||||||
closestDist = dist;
|
closestDist = dist;
|
||||||
closestIntersection = intersection;
|
closestIntersection = intersection;
|
||||||
|
segment = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return closestIntersection == null ? rayEnd : (Vector2)closestIntersection;
|
Pair<int,Vector2> retVal = new Pair<int,Vector2>();
|
||||||
|
retVal.Second = closestIntersection == null ? rayEnd : (Vector2)closestIntersection;
|
||||||
|
retVal.First = segment;
|
||||||
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CalculateLightVertices(List<Vector2> rayCastHits)
|
private void CalculateLightVertices(List<Vector2> rayCastHits)
|
||||||
{
|
{
|
||||||
List<VertexPositionTexture> vertices = new List<VertexPositionTexture>();
|
List<VertexPositionColorTexture> vertices = new List<VertexPositionColorTexture>();
|
||||||
|
|
||||||
Vector2 drawPos = position;
|
Vector2 drawPos = position;
|
||||||
if (ParentSub != null) drawPos += ParentSub.DrawPosition;
|
if (ParentSub != null) drawPos += ParentSub.DrawPosition;
|
||||||
@@ -446,16 +484,19 @@ namespace Barotrauma.Lights
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add a vertex for the center of the mesh
|
// Add a vertex for the center of the mesh
|
||||||
vertices.Add(new VertexPositionTexture(new Vector3(position.X, position.Y, 0),
|
vertices.Add(new VertexPositionColorTexture(new Vector3(position.X, position.Y, 0),
|
||||||
new Vector2(0.5f, 0.5f) + uvOffset));
|
Color.White,new Vector2(0.5f, 0.5f) + uvOffset));
|
||||||
|
|
||||||
// Add all the other encounter points as vertices
|
// Add all the other encounter points as vertices
|
||||||
// storing their world position as UV coordinates
|
// storing their world position as UV coordinates
|
||||||
foreach (Vector2 vertex in rayCastHits)
|
for (int i = 0; i < rayCastHits.Count; i++)
|
||||||
{
|
{
|
||||||
|
Vector2 vertex = rayCastHits[i];
|
||||||
|
Vector2 prevVertex = rayCastHits[i > 0 ? i - 1 : rayCastHits.Count - 1];
|
||||||
|
Vector2 nextVertex = rayCastHits[i < rayCastHits.Count - 1 ? i + 1 : 0];
|
||||||
Vector2 rawDiff = vertex - drawPos;
|
Vector2 rawDiff = vertex - drawPos;
|
||||||
Vector2 diff = rawDiff;
|
Vector2 diff = rawDiff;
|
||||||
diff /= range*2.0f;
|
diff /= range * 2.0f;
|
||||||
if (overrideLightTexture != null)
|
if (overrideLightTexture != null)
|
||||||
{
|
{
|
||||||
Vector2 originDiff = diff;
|
Vector2 originDiff = diff;
|
||||||
@@ -467,22 +508,52 @@ namespace Barotrauma.Lights
|
|||||||
diff += uvOffset;
|
diff += uvOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
vertices.Add(new VertexPositionTexture(new Vector3(position.X + rawDiff.X, position.Y + rawDiff.Y, 0),
|
Vector2 nDiff1 = vertex - nextVertex;
|
||||||
new Vector2(0.5f, 0.5f) + diff));
|
float tx = nDiff1.X; nDiff1.X = -nDiff1.Y; nDiff1.Y = tx;
|
||||||
|
nDiff1 /= Math.Max(Math.Abs(nDiff1.X), Math.Abs(nDiff1.Y));
|
||||||
|
Vector2 nDiff2 = prevVertex - vertex;
|
||||||
|
tx = nDiff2.X; nDiff2.X = -nDiff2.Y; nDiff2.Y = tx;
|
||||||
|
nDiff2 /= Math.Max(Math.Abs(nDiff2.X),Math.Abs(nDiff2.Y));
|
||||||
|
Vector2 nDiff = nDiff1 + nDiff2;
|
||||||
|
nDiff /= Math.Max(Math.Abs(nDiff.X), Math.Abs(nDiff.Y));
|
||||||
|
nDiff *= 50.0f;
|
||||||
|
if (Vector2.DistanceSquared(nDiff, rawDiff) > Vector2.DistanceSquared(-nDiff, rawDiff)) nDiff = -nDiff;
|
||||||
|
VertexPositionColorTexture fadeVert = new VertexPositionColorTexture(new Vector3(position.X + rawDiff.X + nDiff.X, position.Y + rawDiff.Y + nDiff.Y, 0),
|
||||||
|
Color.White * 0.0f, new Vector2(0.5f, 0.5f) + diff);
|
||||||
|
|
||||||
|
vertices.Add(new VertexPositionColorTexture(new Vector3(position.X + rawDiff.X, position.Y + rawDiff.Y, 0),
|
||||||
|
Color.White, new Vector2(0.5f, 0.5f) + diff));
|
||||||
|
vertices.Add(fadeVert);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compute the indices to form triangles
|
// Compute the indices to form triangles
|
||||||
List<short> indices = new List<short>();
|
List<short> indices = new List<short>();
|
||||||
for (int i = 0; i < rayCastHits.Count - 1; i++)
|
for (int i = 0; i < rayCastHits.Count-1; i++)
|
||||||
{
|
{
|
||||||
indices.Add(0);
|
indices.Add(0);
|
||||||
indices.Add((short)((i + 2) % vertices.Count));
|
indices.Add((short)((i*2 + 3) % vertices.Count));
|
||||||
indices.Add((short)((i + 1) % vertices.Count));
|
indices.Add((short)((i*2 + 1) % vertices.Count));
|
||||||
|
|
||||||
|
indices.Add((short)((i*2 + 1) % vertices.Count));
|
||||||
|
indices.Add((short)((i*2 + 3) % vertices.Count));
|
||||||
|
indices.Add((short)((i*2 + 4) % vertices.Count));
|
||||||
|
|
||||||
|
indices.Add((short)((i*2 + 2) % vertices.Count));
|
||||||
|
indices.Add((short)((i*2 + 1) % vertices.Count));
|
||||||
|
indices.Add((short)((i*2 + 4) % vertices.Count));
|
||||||
}
|
}
|
||||||
|
|
||||||
indices.Add(0);
|
indices.Add(0);
|
||||||
indices.Add((short)(1));
|
indices.Add((short)(1));
|
||||||
indices.Add((short)(vertices.Count - 1));
|
indices.Add((short)(vertices.Count - 2));
|
||||||
|
|
||||||
|
indices.Add((short)(1));
|
||||||
|
indices.Add((short)(vertices.Count-1));
|
||||||
|
indices.Add((short)(vertices.Count-2));
|
||||||
|
|
||||||
|
indices.Add((short)(1));
|
||||||
|
indices.Add((short)(2));
|
||||||
|
indices.Add((short)(vertices.Count-1));
|
||||||
|
|
||||||
vertexCount = vertices.Count;
|
vertexCount = vertices.Count;
|
||||||
indexCount = indices.Count;
|
indexCount = indices.Count;
|
||||||
@@ -491,19 +562,19 @@ namespace Barotrauma.Lights
|
|||||||
//now we just create a buffer for 64 verts and make it larger if needed
|
//now we just create a buffer for 64 verts and make it larger if needed
|
||||||
if (lightVolumeBuffer == null)
|
if (lightVolumeBuffer == null)
|
||||||
{
|
{
|
||||||
lightVolumeBuffer = new DynamicVertexBuffer(GameMain.Instance.GraphicsDevice, VertexPositionTexture.VertexDeclaration, Math.Max(64, (int)(vertexCount*1.5)), BufferUsage.None);
|
lightVolumeBuffer = new DynamicVertexBuffer(GameMain.Instance.GraphicsDevice, VertexPositionColorTexture.VertexDeclaration, Math.Max(64, (int)(vertexCount*1.5)), BufferUsage.None);
|
||||||
lightVolumeIndexBuffer = new DynamicIndexBuffer(GameMain.Instance.GraphicsDevice, typeof(short), Math.Max(64*3, (int)(indexCount * 1.5)), BufferUsage.None);
|
lightVolumeIndexBuffer = new DynamicIndexBuffer(GameMain.Instance.GraphicsDevice, typeof(short), Math.Max(64*3, (int)(indexCount * 1.5)), BufferUsage.None);
|
||||||
}
|
}
|
||||||
else if (vertexCount > lightVolumeBuffer.VertexCount)
|
else if (vertexCount > lightVolumeBuffer.VertexCount || indexCount > lightVolumeIndexBuffer.IndexCount)
|
||||||
{
|
{
|
||||||
lightVolumeBuffer.Dispose();
|
lightVolumeBuffer.Dispose();
|
||||||
lightVolumeIndexBuffer.Dispose();
|
lightVolumeIndexBuffer.Dispose();
|
||||||
|
|
||||||
lightVolumeBuffer = new DynamicVertexBuffer(GameMain.Instance.GraphicsDevice, VertexPositionTexture.VertexDeclaration, (int)(vertexCount*1.5), BufferUsage.None);
|
lightVolumeBuffer = new DynamicVertexBuffer(GameMain.Instance.GraphicsDevice, VertexPositionColorTexture.VertexDeclaration, (int)(vertexCount*1.5), BufferUsage.None);
|
||||||
lightVolumeIndexBuffer = new DynamicIndexBuffer(GameMain.Instance.GraphicsDevice, typeof(short), (int)(indexCount * 1.5), BufferUsage.None);
|
lightVolumeIndexBuffer = new DynamicIndexBuffer(GameMain.Instance.GraphicsDevice, typeof(short), (int)(indexCount * 1.5), BufferUsage.None);
|
||||||
}
|
}
|
||||||
|
|
||||||
lightVolumeBuffer.SetData<VertexPositionTexture>(vertices.ToArray());
|
lightVolumeBuffer.SetData<VertexPositionColorTexture>(vertices.ToArray());
|
||||||
lightVolumeIndexBuffer.SetData<short>(indices.ToArray());
|
lightVolumeIndexBuffer.SetData<short>(indices.ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -562,7 +633,7 @@ namespace Barotrauma.Lights
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lightEffect.Texture = LightTexture;
|
lightEffect.Texture = texture??LightTexture;
|
||||||
}
|
}
|
||||||
lightEffect.CurrentTechnique.Passes[0].Apply();
|
lightEffect.CurrentTechnique.Passes[0].Apply();
|
||||||
|
|
||||||
@@ -571,6 +642,7 @@ namespace Barotrauma.Lights
|
|||||||
|
|
||||||
GameMain.Instance.GraphicsDevice.DrawIndexedPrimitives
|
GameMain.Instance.GraphicsDevice.DrawIndexedPrimitives
|
||||||
(
|
(
|
||||||
|
//PrimitiveType.LineList, 0, 0, indexCount / 2
|
||||||
PrimitiveType.TriangleList, 0, 0, indexCount / 3
|
PrimitiveType.TriangleList, 0, 0, indexCount / 3
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -974,8 +974,14 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
private void ReadIngameUpdate(NetIncomingMessage inc)
|
private void ReadIngameUpdate(NetIncomingMessage inc)
|
||||||
{
|
{
|
||||||
|
List<IServerSerializable> entities = new List<IServerSerializable>();
|
||||||
|
|
||||||
float sendingTime = inc.ReadFloat() - inc.SenderConnection.RemoteTimeOffset;
|
float sendingTime = inc.ReadFloat() - inc.SenderConnection.RemoteTimeOffset;
|
||||||
|
|
||||||
|
ServerNetObject? prevObjHeader = null;
|
||||||
|
long prevBitPos = 0;
|
||||||
|
long prevBytePos = 0;
|
||||||
|
|
||||||
ServerNetObject objHeader;
|
ServerNetObject objHeader;
|
||||||
while ((objHeader = (ServerNetObject)inc.ReadByte()) != ServerNetObject.END_OF_MESSAGE)
|
while ((objHeader = (ServerNetObject)inc.ReadByte()) != ServerNetObject.END_OF_MESSAGE)
|
||||||
{
|
{
|
||||||
@@ -1004,15 +1010,51 @@ namespace Barotrauma.Networking
|
|||||||
break;
|
break;
|
||||||
case ServerNetObject.ENTITY_EVENT:
|
case ServerNetObject.ENTITY_EVENT:
|
||||||
case ServerNetObject.ENTITY_EVENT_INITIAL:
|
case ServerNetObject.ENTITY_EVENT_INITIAL:
|
||||||
entityEventManager.Read(objHeader, inc, sendingTime);
|
entityEventManager.Read(objHeader, inc, sendingTime, entities);
|
||||||
break;
|
break;
|
||||||
case ServerNetObject.CHAT_MESSAGE:
|
case ServerNetObject.CHAT_MESSAGE:
|
||||||
ChatMessage.ClientRead(inc);
|
ChatMessage.ClientRead(inc);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
DebugConsole.ThrowError("Error while reading update from server (unknown object header \""+objHeader+"\"!)");
|
DebugConsole.ThrowError("Error while reading update from server (unknown object header \""+objHeader+"\"!)");
|
||||||
|
if (prevObjHeader != null)
|
||||||
|
{
|
||||||
|
DebugConsole.ThrowError("Previous object type: " + prevObjHeader.ToString());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DebugConsole.ThrowError("Error occurred on the very first object!");
|
||||||
|
}
|
||||||
|
DebugConsole.ThrowError("Previous object was " + (inc.Position - prevBitPos) + " bits long (" + (inc.PositionInBytes - prevBytePos) + " bytes)");
|
||||||
|
if (prevObjHeader == ServerNetObject.ENTITY_EVENT || prevObjHeader == ServerNetObject.ENTITY_EVENT_INITIAL)
|
||||||
|
{
|
||||||
|
foreach (IServerSerializable ent in entities)
|
||||||
|
{
|
||||||
|
if (ent == null)
|
||||||
|
{
|
||||||
|
DebugConsole.ThrowError(" - NULL");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Entity e = ent as Entity;
|
||||||
|
DebugConsole.ThrowError(" - "+e.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DebugConsole.ThrowError("Writing object data to \"crashreport_object.bin\", please send this file to us at http://github.com/Regalis11/Barotrauma/issues");
|
||||||
|
|
||||||
|
FileStream fl = File.Open("crashreport_object.bin", FileMode.Create);
|
||||||
|
BinaryWriter sw = new BinaryWriter(fl);
|
||||||
|
|
||||||
|
sw.Write(inc.Data, (int)prevBytePos, (int)(inc.LengthBytes - prevBytePos));
|
||||||
|
|
||||||
|
sw.Close();
|
||||||
|
fl.Close();
|
||||||
|
|
||||||
|
throw new Exception("Error while reading update from server: please send us \"crashreport_object.bin\"!");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
prevObjHeader = objHeader;
|
||||||
|
prevBitPos = inc.Position;
|
||||||
|
prevBytePos = inc.PositionInBytes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-1
@@ -100,7 +100,7 @@ namespace Barotrauma.Networking
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Read the events from the message, ignoring ones we've already received
|
/// Read the events from the message, ignoring ones we've already received
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Read(ServerNetObject type, NetIncomingMessage msg, float sendingTime)
|
public void Read(ServerNetObject type, NetIncomingMessage msg, float sendingTime, List<IServerSerializable> entities)
|
||||||
{
|
{
|
||||||
UInt16 unreceivedEntityEventCount = 0;
|
UInt16 unreceivedEntityEventCount = 0;
|
||||||
|
|
||||||
@@ -128,6 +128,8 @@ namespace Barotrauma.Networking
|
|||||||
firstNewID = null;
|
firstNewID = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
entities.Clear();
|
||||||
|
|
||||||
UInt16 firstEventID = msg.ReadUInt16();
|
UInt16 firstEventID = msg.ReadUInt16();
|
||||||
int eventCount = msg.ReadByte();
|
int eventCount = msg.ReadByte();
|
||||||
|
|
||||||
@@ -146,6 +148,7 @@ namespace Barotrauma.Networking
|
|||||||
byte msgLength = msg.ReadByte();
|
byte msgLength = msg.ReadByte();
|
||||||
|
|
||||||
IServerSerializable entity = Entity.FindEntityByID(entityID) as IServerSerializable;
|
IServerSerializable entity = Entity.FindEntityByID(entityID) as IServerSerializable;
|
||||||
|
entities.Add(entity);
|
||||||
|
|
||||||
//skip the event if we've already received it or if the entity isn't found
|
//skip the event if we've already received it or if the entity isn't found
|
||||||
if (thisEventID != (UInt16)(lastReceivedID + 1) || entity == null)
|
if (thisEventID != (UInt16)(lastReceivedID + 1) || entity == null)
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ namespace Barotrauma.Particles
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Hull newHull = Hull.FindHull(position);
|
Hull newHull = Hull.FindHull(position,currentHull);
|
||||||
if (newHull != currentHull)
|
if (newHull != currentHull)
|
||||||
{
|
{
|
||||||
currentHull = newHull;
|
currentHull = newHull;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Content;
|
using Microsoft.Xna.Framework.Content;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using System;
|
using System;
|
||||||
@@ -14,7 +14,7 @@ namespace Barotrauma
|
|||||||
readonly RenderTarget2D renderTargetBackground;
|
readonly RenderTarget2D renderTargetBackground;
|
||||||
readonly RenderTarget2D renderTarget;
|
readonly RenderTarget2D renderTarget;
|
||||||
readonly RenderTarget2D renderTargetWater;
|
readonly RenderTarget2D renderTargetWater;
|
||||||
readonly RenderTarget2D renderTargetAir;
|
readonly RenderTarget2D renderTargetFinal;
|
||||||
|
|
||||||
private Effect damageEffect;
|
private Effect damageEffect;
|
||||||
|
|
||||||
@@ -27,9 +27,9 @@ namespace Barotrauma
|
|||||||
cam.Translate(new Vector2(-10.0f, 50.0f));
|
cam.Translate(new Vector2(-10.0f, 50.0f));
|
||||||
|
|
||||||
renderTargetBackground = new RenderTarget2D(graphics, GameMain.GraphicsWidth, GameMain.GraphicsHeight);
|
renderTargetBackground = new RenderTarget2D(graphics, GameMain.GraphicsWidth, GameMain.GraphicsHeight);
|
||||||
renderTarget = new RenderTarget2D(graphics, GameMain.GraphicsWidth, GameMain.GraphicsHeight);
|
renderTarget = new RenderTarget2D(graphics, GameMain.GraphicsWidth, GameMain.GraphicsHeight, false, SurfaceFormat.Color, DepthFormat.None, 0, RenderTargetUsage.PreserveContents);
|
||||||
renderTargetWater = new RenderTarget2D(graphics, GameMain.GraphicsWidth, GameMain.GraphicsHeight);
|
renderTargetWater = new RenderTarget2D(graphics, GameMain.GraphicsWidth, GameMain.GraphicsHeight);
|
||||||
renderTargetAir = new RenderTarget2D(graphics, GameMain.GraphicsWidth, GameMain.GraphicsHeight);
|
renderTargetFinal = new RenderTarget2D(graphics, GameMain.GraphicsWidth, GameMain.GraphicsHeight, false, SurfaceFormat.Color, DepthFormat.None);
|
||||||
|
|
||||||
|
|
||||||
#if LINUX
|
#if LINUX
|
||||||
@@ -97,7 +97,6 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public void DrawMap(GraphicsDevice graphics, SpriteBatch spriteBatch)
|
public void DrawMap(GraphicsDevice graphics, SpriteBatch spriteBatch)
|
||||||
{
|
{
|
||||||
|
|
||||||
foreach (Submarine sub in Submarine.Loaded)
|
foreach (Submarine sub in Submarine.Loaded)
|
||||||
{
|
{
|
||||||
sub.UpdateTransform();
|
sub.UpdateTransform();
|
||||||
@@ -113,197 +112,137 @@ namespace Barotrauma
|
|||||||
GameMain.LightManager.UpdateObstructVision(graphics, spriteBatch, cam, Character.Controlled.CursorWorldPosition);
|
GameMain.LightManager.UpdateObstructVision(graphics, spriteBatch, cam, Character.Controlled.CursorWorldPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
|
||||||
//1. draw the background, characters and the parts of the submarine that are behind them
|
|
||||||
//----------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
graphics.SetRenderTarget(renderTargetBackground);
|
graphics.SetRenderTarget(renderTargetBackground);
|
||||||
|
|
||||||
if (Level.Loaded == null)
|
if (Level.Loaded == null)
|
||||||
{
|
{
|
||||||
graphics.Clear(new Color(11, 18, 26, 255));
|
graphics.Clear(new Color(11, 18, 26, 255));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
//graphics.Clear(new Color(255, 255, 255, 255));
|
||||||
Level.Loaded.DrawBack(graphics, spriteBatch, cam);
|
Level.Loaded.DrawBack(graphics, spriteBatch, cam);
|
||||||
}
|
}
|
||||||
|
|
||||||
//draw structures that are in water and not part of any sub (e.g. ruins)
|
//draw alpha blended particles that are in water and behind subs
|
||||||
spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend, null, null, null, null, cam.Transform);
|
|
||||||
Submarine.DrawBack(spriteBatch, false, s => s is Structure && s.Submarine == null);
|
|
||||||
spriteBatch.End();
|
|
||||||
|
|
||||||
//draw alpha blended particles that are in water and behind subs
|
|
||||||
#if LINUX
|
#if LINUX
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, null, DepthStencilState.DepthRead, null, null, cam.Transform);
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, null, DepthStencilState.None, null, null, cam.Transform);
|
||||||
#else
|
#else
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, DepthStencilState.DepthRead, null, null, cam.Transform);
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, DepthStencilState.None, null, null, cam.Transform);
|
||||||
#endif
|
#endif
|
||||||
GameMain.ParticleManager.Draw(spriteBatch, true, false, Particles.ParticleBlendState.AlphaBlend);
|
GameMain.ParticleManager.Draw(spriteBatch, true, false, Particles.ParticleBlendState.AlphaBlend);
|
||||||
spriteBatch.End();
|
spriteBatch.End();
|
||||||
|
|
||||||
//draw additive particles that are in water and behind subs
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive, null, DepthStencilState.Default, null, null, cam.Transform);
|
|
||||||
GameMain.ParticleManager.Draw(spriteBatch, true, false, Particles.ParticleBlendState.Additive);
|
|
||||||
spriteBatch.End();
|
|
||||||
|
|
||||||
//draw submarine structures that are behind water
|
|
||||||
spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend, null, null, null, null, cam.Transform);
|
|
||||||
Submarine.DrawBack(spriteBatch, false, s => s is Structure && s.Submarine != null);
|
|
||||||
spriteBatch.End();
|
|
||||||
|
|
||||||
|
//draw additive particles that are in water and behind subs
|
||||||
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive, null, DepthStencilState.None, null, null, cam.Transform);
|
||||||
|
GameMain.ParticleManager.Draw(spriteBatch, true, false, Particles.ParticleBlendState.Additive);
|
||||||
|
spriteBatch.End();
|
||||||
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, DepthStencilState.None, null, null, cam.Transform);
|
||||||
|
Submarine.DrawBack(spriteBatch, false, s => s is Structure && ((Structure)s).ResizeVertical && ((Structure)s).ResizeHorizontal);
|
||||||
|
foreach (Structure s in Structure.WallList)
|
||||||
|
{
|
||||||
|
if ((s.ResizeVertical != s.ResizeHorizontal) && s.CastShadow)
|
||||||
|
{
|
||||||
|
GUI.DrawRectangle(spriteBatch, new Vector2(s.DrawPosition.X-s.WorldRect.Width/2,-s.DrawPosition.Y-s.WorldRect.Height/2), new Vector2(s.WorldRect.Width, s.WorldRect.Height), Color.Black, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spriteBatch.End();
|
||||||
graphics.SetRenderTarget(renderTarget);
|
graphics.SetRenderTarget(renderTarget);
|
||||||
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, DepthStencilState.None, null, null, null);
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred,
|
spriteBatch.Draw(renderTargetBackground, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.White);
|
||||||
BlendState.Opaque);
|
spriteBatch.End();
|
||||||
spriteBatch.Draw(renderTargetBackground, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.White);
|
spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend, null, DepthStencilState.None, null, null, cam.Transform);
|
||||||
spriteBatch.End();
|
Submarine.DrawBack(spriteBatch, false, s => !(s is Structure));
|
||||||
|
Submarine.DrawBack(spriteBatch, false, s => s is Structure && !(((Structure)s).ResizeVertical && ((Structure)s).ResizeHorizontal));
|
||||||
spriteBatch.Begin(SpriteSortMode.BackToFront,
|
|
||||||
BlendState.AlphaBlend,
|
|
||||||
null, null, null, null,
|
|
||||||
cam.Transform);
|
|
||||||
|
|
||||||
Submarine.DrawBack(spriteBatch, false, s => !(s is Structure));
|
|
||||||
|
|
||||||
foreach (Character c in Character.CharacterList) c.Draw(spriteBatch);
|
foreach (Character c in Character.CharacterList) c.Draw(spriteBatch);
|
||||||
|
|
||||||
spriteBatch.End();
|
spriteBatch.End();
|
||||||
|
spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend, SamplerState.LinearClamp, DepthStencilState.None, null, null, cam.Transform);
|
||||||
//----------------------------------------------------------------------------------------
|
|
||||||
//draw the rendertarget and particles that are only supposed to be drawn in water into renderTargetWater
|
|
||||||
graphics.SetRenderTarget(renderTargetWater);
|
|
||||||
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Opaque);
|
|
||||||
spriteBatch.Draw(renderTarget, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), waterColor);
|
|
||||||
spriteBatch.End();
|
|
||||||
|
|
||||||
//draw alpha blended particles that are inside a sub
|
|
||||||
#if LINUX
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, null, DepthStencilState.DepthRead, null, null, cam.Transform);
|
|
||||||
#else
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, DepthStencilState.DepthRead, null, null, cam.Transform);
|
|
||||||
#endif
|
|
||||||
GameMain.ParticleManager.Draw(spriteBatch, true, true, Particles.ParticleBlendState.AlphaBlend);
|
|
||||||
spriteBatch.End();
|
|
||||||
|
|
||||||
//draw additive particles that are inside a sub
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive, null, DepthStencilState.Default, null, null, cam.Transform);
|
|
||||||
GameMain.ParticleManager.Draw(spriteBatch, true, true, Particles.ParticleBlendState.Additive);
|
|
||||||
spriteBatch.End();
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
|
||||||
//draw the rendertarget and particles that are only supposed to be drawn in air into renderTargetAir
|
|
||||||
|
|
||||||
graphics.SetRenderTarget(renderTargetAir);
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Opaque);
|
|
||||||
spriteBatch.Draw(renderTarget, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.White);
|
|
||||||
spriteBatch.End();
|
|
||||||
|
|
||||||
//draw alpha blended particles that are not in water
|
|
||||||
#if LINUX
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, null, DepthStencilState.DepthRead, null, null, cam.Transform);
|
|
||||||
#else
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, DepthStencilState.DepthRead, null, null, cam.Transform);
|
|
||||||
#endif
|
|
||||||
GameMain.ParticleManager.Draw(spriteBatch, false, null, Particles.ParticleBlendState.AlphaBlend);
|
|
||||||
spriteBatch.End();
|
|
||||||
|
|
||||||
//draw additive particles that are not in water
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive, null, DepthStencilState.DepthRead, null, null, cam.Transform);
|
|
||||||
GameMain.ParticleManager.Draw(spriteBatch, false, null, Particles.ParticleBlendState.Additive);
|
|
||||||
spriteBatch.End();
|
|
||||||
|
|
||||||
if (Character.Controlled != null && GameMain.LightManager.LosEnabled)
|
|
||||||
{
|
|
||||||
graphics.SetRenderTarget(renderTarget);
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred,
|
|
||||||
BlendState.Opaque, null, null, null, lightBlur.Effect);
|
|
||||||
|
|
||||||
spriteBatch.Draw(renderTargetBackground, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.White);
|
|
||||||
|
|
||||||
spriteBatch.End();
|
|
||||||
|
|
||||||
spriteBatch.Begin(SpriteSortMode.BackToFront,
|
|
||||||
BlendState.AlphaBlend, SamplerState.LinearWrap,
|
|
||||||
null, null, null,
|
|
||||||
cam.Transform);
|
|
||||||
|
|
||||||
Submarine.DrawDamageable(spriteBatch, null, false);
|
|
||||||
Submarine.DrawFront(spriteBatch, false, s => s is Structure);
|
|
||||||
|
|
||||||
spriteBatch.End();
|
|
||||||
|
|
||||||
GameMain.LightManager.DrawLOS(spriteBatch, lightBlur.Effect, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
graphics.SetRenderTarget(null);
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
|
||||||
//2. pass the renderTarget to the water shader to do the water effect
|
|
||||||
//----------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Hull.renderer.RenderBack(spriteBatch, renderTargetWater);
|
|
||||||
|
|
||||||
Array.Clear(Hull.renderer.vertices, 0, Hull.renderer.vertices.Length);
|
|
||||||
Hull.renderer.PositionInBuffer = 0;
|
|
||||||
foreach (Hull hull in Hull.hullList)
|
|
||||||
{
|
|
||||||
hull.Render(graphics, cam);
|
|
||||||
}
|
|
||||||
|
|
||||||
Hull.renderer.Render(graphics, cam, renderTargetAir, Cam.ShaderTransform);
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
|
||||||
//3. draw the sections of the map that are on top of the water
|
|
||||||
//----------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
spriteBatch.Begin(SpriteSortMode.BackToFront,
|
|
||||||
BlendState.AlphaBlend, SamplerState.LinearWrap,
|
|
||||||
null, null, null,
|
|
||||||
cam.Transform);
|
|
||||||
|
|
||||||
Submarine.DrawFront(spriteBatch, false, null);
|
Submarine.DrawFront(spriteBatch, false, null);
|
||||||
|
|
||||||
spriteBatch.End();
|
spriteBatch.End();
|
||||||
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Immediate,
|
//draw the rendertarget and particles that are only supposed to be drawn in water into renderTargetWater
|
||||||
BlendState.NonPremultiplied, SamplerState.LinearWrap,
|
graphics.SetRenderTarget(renderTargetWater);
|
||||||
null, null,
|
|
||||||
damageEffect,
|
|
||||||
cam.Transform);
|
|
||||||
|
|
||||||
Submarine.DrawDamageable(spriteBatch, damageEffect, false);
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Opaque);
|
||||||
|
spriteBatch.Draw(renderTarget, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), waterColor);
|
||||||
|
spriteBatch.End();
|
||||||
|
|
||||||
spriteBatch.End();
|
//draw alpha blended particles that are inside a sub
|
||||||
|
#if LINUX
|
||||||
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, null, DepthStencilState.DepthRead, null, null, cam.Transform);
|
||||||
|
#else
|
||||||
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, DepthStencilState.DepthRead, null, null, cam.Transform);
|
||||||
|
#endif
|
||||||
|
GameMain.ParticleManager.Draw(spriteBatch, true, true, Particles.ParticleBlendState.AlphaBlend);
|
||||||
|
spriteBatch.End();
|
||||||
|
|
||||||
GameMain.LightManager.DrawLightMap(spriteBatch, lightBlur.Effect);
|
graphics.SetRenderTarget(renderTarget);
|
||||||
|
|
||||||
spriteBatch.Begin(SpriteSortMode.BackToFront,
|
//draw alpha blended particles that are not in water
|
||||||
BlendState.AlphaBlend, SamplerState.LinearWrap,
|
#if LINUX
|
||||||
null, null, null,
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, null, DepthStencilState.DepthRead, null, null, cam.Transform);
|
||||||
cam.Transform);
|
#else
|
||||||
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, DepthStencilState.DepthRead, null, null, cam.Transform);
|
||||||
|
#endif
|
||||||
|
GameMain.ParticleManager.Draw(spriteBatch, false, null, Particles.ParticleBlendState.AlphaBlend);
|
||||||
|
spriteBatch.End();
|
||||||
|
|
||||||
if (Level.Loaded != null) Level.Loaded.DrawFront(spriteBatch);
|
//draw additive particles that are not in water
|
||||||
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive, null, DepthStencilState.None, null, null, cam.Transform);
|
||||||
|
GameMain.ParticleManager.Draw(spriteBatch, false, null, Particles.ParticleBlendState.Additive);
|
||||||
|
spriteBatch.End();
|
||||||
|
|
||||||
foreach (Character c in Character.CharacterList) c.DrawFront(spriteBatch, cam);
|
graphics.SetRenderTarget(renderTargetFinal);
|
||||||
|
Hull.renderer.RenderBack(spriteBatch, renderTargetWater);
|
||||||
|
|
||||||
spriteBatch.End();
|
Array.Clear(Hull.renderer.vertices, 0, Hull.renderer.vertices.Length);
|
||||||
|
Hull.renderer.PositionInBuffer = 0;
|
||||||
|
foreach (Hull hull in Hull.hullList)
|
||||||
|
{
|
||||||
|
hull.Render(graphics, cam);
|
||||||
|
}
|
||||||
|
|
||||||
if (Character.Controlled != null && GameMain.LightManager.LosEnabled)
|
Hull.renderer.Render(graphics, cam, renderTarget, Cam.ShaderTransform);
|
||||||
{
|
|
||||||
GameMain.LightManager.DrawLOS(spriteBatch, lightBlur.Effect, false);
|
|
||||||
|
|
||||||
spriteBatch.Begin(SpriteSortMode.Immediate,
|
spriteBatch.Begin(SpriteSortMode.Immediate,
|
||||||
BlendState.AlphaBlend, SamplerState.LinearWrap, DepthStencilState.None, RasterizerState.CullNone, null);
|
BlendState.NonPremultiplied, SamplerState.LinearWrap,
|
||||||
|
null, null,
|
||||||
|
damageEffect,
|
||||||
|
cam.Transform);
|
||||||
|
Submarine.DrawDamageable(spriteBatch, damageEffect, false);
|
||||||
|
spriteBatch.End();
|
||||||
|
|
||||||
float r = Math.Min(CharacterHUD.damageOverlayTimer * 0.5f, 0.5f);
|
//draw additive particles that are inside a sub
|
||||||
spriteBatch.Draw(renderTarget, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight),
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive, null, DepthStencilState.Default, null, null, cam.Transform);
|
||||||
Color.Lerp(GameMain.LightManager.AmbientLight * 0.5f, Color.Red, r));
|
GameMain.ParticleManager.Draw(spriteBatch, true, true, Particles.ParticleBlendState.Additive);
|
||||||
|
spriteBatch.End();
|
||||||
|
if (GameMain.LightManager.LightingEnabled)
|
||||||
|
{
|
||||||
|
spriteBatch.Begin(SpriteSortMode.Deferred, Lights.CustomBlendStates.Multiplicative, null, DepthStencilState.None, null, null, null);
|
||||||
|
spriteBatch.Draw(GameMain.LightManager.lightMap, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.White);
|
||||||
|
spriteBatch.End();
|
||||||
|
}
|
||||||
|
|
||||||
spriteBatch.End();
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.LinearWrap, DepthStencilState.None, null, null, cam.Transform);
|
||||||
}
|
foreach (Character c in Character.CharacterList) c.DrawFront(spriteBatch, cam);
|
||||||
|
|
||||||
|
if (Level.Loaded != null) Level.Loaded.DrawFront(spriteBatch);
|
||||||
|
spriteBatch.End();
|
||||||
|
|
||||||
|
graphics.SetRenderTarget(null);
|
||||||
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Opaque, SamplerState.PointClamp, DepthStencilState.None, null, null, null);
|
||||||
|
if (GameMain.LightManager.LosEnabled && Character.Controlled!=null)
|
||||||
|
{
|
||||||
|
float r = Math.Min(CharacterHUD.damageOverlayTimer * 0.5f, 0.5f);
|
||||||
|
spriteBatch.Draw(renderTargetBackground, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight),
|
||||||
|
Color.Lerp(GameMain.LightManager.AmbientLight * 0.5f, Color.Red, r));
|
||||||
|
spriteBatch.End();
|
||||||
|
Hull.renderer.waterEffect.CurrentTechnique = Hull.renderer.waterEffect.Techniques["LosShader"];
|
||||||
|
Hull.renderer.waterEffect.Parameters["xLosTexture"].SetValue(GameMain.LightManager.losTexture);
|
||||||
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, SamplerState.PointClamp, DepthStencilState.None, null, Hull.renderer.waterEffect, null);
|
||||||
|
}
|
||||||
|
spriteBatch.Draw(renderTargetFinal, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.White);
|
||||||
|
spriteBatch.End();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -179,6 +179,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
private void SerializeToClipboard(ParticlePrefab prefab)
|
private void SerializeToClipboard(ParticlePrefab prefab)
|
||||||
{
|
{
|
||||||
|
#if WINDOWS
|
||||||
if (prefab == null) return;
|
if (prefab == null) return;
|
||||||
|
|
||||||
XmlWriterSettings settings = new XmlWriterSettings();
|
XmlWriterSettings settings = new XmlWriterSettings();
|
||||||
@@ -197,6 +198,7 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
|
|
||||||
Clipboard.SetText(sb.ToString());
|
Clipboard.SetText(sb.ToString());
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Update(double deltaTime)
|
public override void Update(double deltaTime)
|
||||||
|
|||||||
@@ -902,6 +902,304 @@ namespace Barotrauma
|
|||||||
previouslyUsedList.children.Insert(0, textBlock);
|
previouslyUsedList.children.Insert(0, textBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AutoHull()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < MapEntity.mapEntityList.Count; i++)
|
||||||
|
{
|
||||||
|
MapEntity h = MapEntity.mapEntityList[i];
|
||||||
|
if (h is Hull || h is Gap)
|
||||||
|
{
|
||||||
|
h.Remove();
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Vector2> wallPoints = new List<Vector2>();
|
||||||
|
Vector2 min = Vector2.Zero;
|
||||||
|
Vector2 max = Vector2.Zero;
|
||||||
|
|
||||||
|
List<MapEntity> mapEntityList = new List<MapEntity>();
|
||||||
|
|
||||||
|
foreach (MapEntity e in MapEntity.mapEntityList)
|
||||||
|
{
|
||||||
|
if (e is Item)
|
||||||
|
{
|
||||||
|
Item it = e as Item;
|
||||||
|
Door door = it.GetComponent<Door>();
|
||||||
|
if (door != null)
|
||||||
|
{
|
||||||
|
int halfW = e.WorldRect.Width / 2;
|
||||||
|
wallPoints.Add(new Vector2(e.WorldRect.X + halfW, -e.WorldRect.Y + e.WorldRect.Height));
|
||||||
|
mapEntityList.Add(it);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(e is Structure)) continue;
|
||||||
|
Structure s = e as Structure;
|
||||||
|
if (!s.HasBody) continue;
|
||||||
|
mapEntityList.Add(e);
|
||||||
|
|
||||||
|
if (e.Rect.Width > e.Rect.Height)
|
||||||
|
{
|
||||||
|
int halfH = e.WorldRect.Height / 2;
|
||||||
|
wallPoints.Add(new Vector2(e.WorldRect.X, -e.WorldRect.Y + halfH));
|
||||||
|
wallPoints.Add(new Vector2(e.WorldRect.X + e.WorldRect.Width, -e.WorldRect.Y + halfH));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int halfW = e.WorldRect.Width / 2;
|
||||||
|
wallPoints.Add(new Vector2(e.WorldRect.X + halfW, -e.WorldRect.Y));
|
||||||
|
wallPoints.Add(new Vector2(e.WorldRect.X + halfW, -e.WorldRect.Y + e.WorldRect.Height));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
min = wallPoints[0];
|
||||||
|
max = wallPoints[0];
|
||||||
|
for (int i = 0; i < wallPoints.Count; i++)
|
||||||
|
{
|
||||||
|
min.X = Math.Min(min.X, wallPoints[i].X);
|
||||||
|
min.Y = Math.Min(min.Y, wallPoints[i].Y);
|
||||||
|
max.X = Math.Max(max.X, wallPoints[i].X);
|
||||||
|
max.Y = Math.Max(max.Y, wallPoints[i].Y);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Rectangle> hullRects = new List<Rectangle>();
|
||||||
|
hullRects.Add(new Rectangle((int)min.X, (int)min.Y, (int)(max.X - min.X), (int)(max.Y - min.Y)));
|
||||||
|
foreach (Vector2 point in wallPoints)
|
||||||
|
{
|
||||||
|
MathUtils.SplitRectanglesHorizontal(hullRects, point);
|
||||||
|
MathUtils.SplitRectanglesVertical(hullRects, point);
|
||||||
|
}
|
||||||
|
|
||||||
|
hullRects.Sort((a, b) =>
|
||||||
|
{
|
||||||
|
if (a.Y < b.Y) return -1;
|
||||||
|
if (a.Y > b.Y) return 1;
|
||||||
|
if (a.X < b.X) return -1;
|
||||||
|
if (a.X > b.X) return 1;
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
for (int i = 0; i < hullRects.Count - 1; i++)
|
||||||
|
{
|
||||||
|
Rectangle rect = hullRects[i];
|
||||||
|
if (hullRects[i + 1].Y > rect.Y) continue;
|
||||||
|
|
||||||
|
Vector2 hullRPoint = new Vector2(rect.X + rect.Width - 8, rect.Y + rect.Height / 2);
|
||||||
|
Vector2 hullLPoint = new Vector2(rect.X, rect.Y + rect.Height / 2);
|
||||||
|
|
||||||
|
MapEntity container = null;
|
||||||
|
foreach (MapEntity e in mapEntityList)
|
||||||
|
{
|
||||||
|
Rectangle entRect = e.WorldRect;
|
||||||
|
entRect.Y = -entRect.Y;
|
||||||
|
if (entRect.Contains(hullRPoint))
|
||||||
|
{
|
||||||
|
if (!entRect.Contains(hullLPoint)) container = e;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (container == null)
|
||||||
|
{
|
||||||
|
rect.Width += hullRects[i + 1].Width;
|
||||||
|
hullRects[i] = rect;
|
||||||
|
hullRects.RemoveAt(i + 1);
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (MapEntity e in mapEntityList)
|
||||||
|
{
|
||||||
|
Rectangle entRect = e.WorldRect;
|
||||||
|
if (entRect.Width < entRect.Height) continue;
|
||||||
|
entRect.Y = -entRect.Y - 16;
|
||||||
|
for (int i = 0; i < hullRects.Count; i++)
|
||||||
|
{
|
||||||
|
Rectangle hullRect = hullRects[i];
|
||||||
|
if (entRect.Intersects(hullRect))
|
||||||
|
{
|
||||||
|
if (hullRect.Y < entRect.Y)
|
||||||
|
{
|
||||||
|
hullRect.Height = Math.Max((entRect.Y + 16 + entRect.Height / 2) - hullRect.Y, hullRect.Height);
|
||||||
|
hullRects[i] = hullRect;
|
||||||
|
}
|
||||||
|
else if (hullRect.Y + hullRect.Height <= entRect.Y + 16 + entRect.Height)
|
||||||
|
{
|
||||||
|
hullRects.RemoveAt(i);
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (MapEntity e in mapEntityList)
|
||||||
|
{
|
||||||
|
Rectangle entRect = e.WorldRect;
|
||||||
|
if (entRect.Width < entRect.Height) continue;
|
||||||
|
entRect.Y = -entRect.Y;
|
||||||
|
for (int i = 0; i < hullRects.Count; i++)
|
||||||
|
{
|
||||||
|
Rectangle hullRect = hullRects[i];
|
||||||
|
if (entRect.Intersects(hullRect))
|
||||||
|
{
|
||||||
|
if (hullRect.Y >= entRect.Y - 8 && hullRect.Y + hullRect.Height <= entRect.Y + entRect.Height + 8)
|
||||||
|
{
|
||||||
|
hullRects.RemoveAt(i);
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < hullRects.Count;)
|
||||||
|
{
|
||||||
|
Rectangle hullRect = hullRects[i];
|
||||||
|
Vector2 point = new Vector2(hullRect.X+2, hullRect.Y+hullRect.Height/2);
|
||||||
|
MapEntity container = null;
|
||||||
|
foreach (MapEntity e in mapEntityList)
|
||||||
|
{
|
||||||
|
Rectangle entRect = e.WorldRect;
|
||||||
|
entRect.Y = -entRect.Y;
|
||||||
|
if (entRect.Contains(point))
|
||||||
|
{
|
||||||
|
container = e;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (container == null)
|
||||||
|
{
|
||||||
|
hullRects.RemoveAt(i);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (hullRects[i].Y <= hullRect.Y)
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
if (i >= hullRects.Count) break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = hullRects.Count-1; i >= 0;)
|
||||||
|
{
|
||||||
|
Rectangle hullRect = hullRects[i];
|
||||||
|
Vector2 point = new Vector2(hullRect.X+hullRect.Width-2, hullRect.Y+hullRect.Height/2);
|
||||||
|
MapEntity container = null;
|
||||||
|
foreach (MapEntity e in mapEntityList)
|
||||||
|
{
|
||||||
|
Rectangle entRect = e.WorldRect;
|
||||||
|
entRect.Y = -entRect.Y;
|
||||||
|
if (entRect.Contains(point))
|
||||||
|
{
|
||||||
|
container = e;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (container == null)
|
||||||
|
{
|
||||||
|
hullRects.RemoveAt(i); i--;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (hullRects[i].Y >= hullRect.Y)
|
||||||
|
{
|
||||||
|
i--;
|
||||||
|
if (i < 0) break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hullRects.Sort((a, b) =>
|
||||||
|
{
|
||||||
|
if (a.X < b.X) return -1;
|
||||||
|
if (a.X > b.X) return 1;
|
||||||
|
if (a.Y < b.Y) return -1;
|
||||||
|
if (a.Y > b.Y) return 1;
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
for (int i = 0; i < hullRects.Count - 1; i++)
|
||||||
|
{
|
||||||
|
Rectangle rect = hullRects[i];
|
||||||
|
if (hullRects[i + 1].Width != rect.Width) continue;
|
||||||
|
if (hullRects[i + 1].X > rect.X) continue;
|
||||||
|
|
||||||
|
Vector2 hullBPoint = new Vector2(rect.X + rect.Width / 2, rect.Y + rect.Height - 8);
|
||||||
|
Vector2 hullUPoint = new Vector2(rect.X + rect.Width / 2, rect.Y);
|
||||||
|
|
||||||
|
MapEntity container = null;
|
||||||
|
foreach (MapEntity e in mapEntityList)
|
||||||
|
{
|
||||||
|
Rectangle entRect = e.WorldRect;
|
||||||
|
entRect.Y = -entRect.Y;
|
||||||
|
if (entRect.Contains(hullBPoint))
|
||||||
|
{
|
||||||
|
if (!entRect.Contains(hullUPoint)) container = e;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (container == null)
|
||||||
|
{
|
||||||
|
rect.Height += hullRects[i + 1].Height;
|
||||||
|
hullRects[i] = rect;
|
||||||
|
hullRects.RemoveAt(i + 1);
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < hullRects.Count;i++)
|
||||||
|
{
|
||||||
|
Rectangle rect = hullRects[i];
|
||||||
|
rect.Y -= 16;
|
||||||
|
rect.Height += 32;
|
||||||
|
hullRects[i] = rect;
|
||||||
|
}
|
||||||
|
|
||||||
|
hullRects.Sort((a, b) =>
|
||||||
|
{
|
||||||
|
if (a.Y < b.Y) return -1;
|
||||||
|
if (a.Y > b.Y) return 1;
|
||||||
|
if (a.X < b.X) return -1;
|
||||||
|
if (a.X > b.X) return 1;
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
for (int i = 0; i < hullRects.Count; i++)
|
||||||
|
{
|
||||||
|
for (int j = i+1; j < hullRects.Count; j++)
|
||||||
|
{
|
||||||
|
if (hullRects[j].Y <= hullRects[i].Y) continue;
|
||||||
|
if (hullRects[j].Intersects(hullRects[i]))
|
||||||
|
{
|
||||||
|
Rectangle rect = hullRects[i];
|
||||||
|
rect.Height = hullRects[j].Y - rect.Y;
|
||||||
|
hullRects[i] = rect;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Rectangle rect in hullRects)
|
||||||
|
{
|
||||||
|
Rectangle hullRect = rect;
|
||||||
|
hullRect.Y = -hullRect.Y;
|
||||||
|
Hull newHull = new Hull(MapEntityPrefab.Find("Hull"),
|
||||||
|
hullRect,
|
||||||
|
Submarine.MainSub);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (MapEntity e in mapEntityList)
|
||||||
|
{
|
||||||
|
if (!(e is Structure)) continue;
|
||||||
|
if (!(e as Structure).IsPlatform) continue;
|
||||||
|
|
||||||
|
Rectangle gapRect = e.WorldRect;
|
||||||
|
gapRect.Y -= 8;
|
||||||
|
gapRect.Height = 16;
|
||||||
|
Gap newGap = new Gap(MapEntityPrefab.Find("Gap"),
|
||||||
|
gapRect);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override void AddToGUIUpdateList()
|
public override void AddToGUIUpdateList()
|
||||||
{
|
{
|
||||||
if (tutorial != null) tutorial.AddToGUIUpdateList();
|
if (tutorial != null) tutorial.AddToGUIUpdateList();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@@ -186,18 +186,23 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public void DrawTiled(SpriteBatch spriteBatch, Vector2 pos, Vector2 targetSize, Vector2 startOffset, Color color)
|
public void DrawTiled(SpriteBatch spriteBatch, Vector2 pos, Vector2 targetSize, Vector2 startOffset, Color color)
|
||||||
{
|
{
|
||||||
DrawTiled(spriteBatch, pos, targetSize, startOffset, sourceRect, color);
|
DrawTiled(spriteBatch, pos, targetSize, startOffset, sourceRect, color, Vector2.One);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DrawTiled(SpriteBatch spriteBatch, Vector2 pos, Vector2 targetSize, Vector2 startOffset, Rectangle sourceRect, Color color)
|
public void DrawTiled(SpriteBatch spriteBatch, Vector2 pos, Vector2 targetSize, Vector2 startOffset, Rectangle sourceRect, Color color)
|
||||||
|
{
|
||||||
|
DrawTiled(spriteBatch, pos, targetSize, startOffset, sourceRect, color, Vector2.One);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DrawTiled(SpriteBatch spriteBatch, Vector2 pos, Vector2 targetSize, Vector2 startOffset, Rectangle sourceRect, Color color, Vector2 scale)
|
||||||
{
|
{
|
||||||
//pos.X = (int)pos.X;
|
//pos.X = (int)pos.X;
|
||||||
//pos.Y = (int)pos.Y;
|
//pos.Y = (int)pos.Y;
|
||||||
|
|
||||||
//how many times the texture needs to be drawn on the x-axis
|
//how many times the texture needs to be drawn on the x-axis
|
||||||
int xTiles = (int)Math.Ceiling((targetSize.X + startOffset.X) / sourceRect.Width);
|
int xTiles = (int)Math.Ceiling((targetSize.X + startOffset.X) / (sourceRect.Width*scale.X));
|
||||||
//how many times the texture needs to be drawn on the y-axis
|
//how many times the texture needs to be drawn on the y-axis
|
||||||
int yTiles = (int)Math.Ceiling((targetSize.Y + startOffset.Y) / sourceRect.Height);
|
int yTiles = (int)Math.Ceiling((targetSize.Y + startOffset.Y) / (sourceRect.Height*scale.Y));
|
||||||
|
|
||||||
Vector2 position = pos - startOffset;
|
Vector2 position = pos - startOffset;
|
||||||
Rectangle drawRect = sourceRect;
|
Rectangle drawRect = sourceRect;
|
||||||
@@ -211,11 +216,11 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if (x == xTiles - 1)
|
if (x == xTiles - 1)
|
||||||
{
|
{
|
||||||
drawRect.Width -= (int)((position.X + sourceRect.Width) - (pos.X + targetSize.X));
|
drawRect.Width -= (int)((position.X + sourceRect.Width*scale.X) - (pos.X + targetSize.X));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
drawRect.Width = sourceRect.Width;
|
drawRect.Width = (int)(sourceRect.Width*scale.X);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (position.X < pos.X)
|
if (position.X < pos.X)
|
||||||
@@ -234,11 +239,11 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if (y == yTiles - 1)
|
if (y == yTiles - 1)
|
||||||
{
|
{
|
||||||
drawRect.Height -= (int)((position.Y + sourceRect.Height) - (pos.Y + targetSize.Y));
|
drawRect.Height -= (int)((position.Y + sourceRect.Height*scale.Y) - (pos.Y + targetSize.Y));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
drawRect.Height = sourceRect.Height;
|
drawRect.Height = (int)(sourceRect.Height*scale.Y);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (position.Y < pos.Y)
|
if (position.Y < pos.Y)
|
||||||
@@ -252,10 +257,10 @@ namespace Barotrauma
|
|||||||
spriteBatch.Draw(texture, position,
|
spriteBatch.Draw(texture, position,
|
||||||
drawRect, color, rotation, Vector2.Zero, 1.0f, effects, depth);
|
drawRect, color, rotation, Vector2.Zero, 1.0f, effects, depth);
|
||||||
|
|
||||||
position.Y += sourceRect.Height;
|
position.Y += sourceRect.Height*scale.Y;
|
||||||
}
|
}
|
||||||
|
|
||||||
position.X += sourceRect.Width;
|
position.X += sourceRect.Width*scale.X;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Color = Microsoft.Xna.Framework.Color;
|
using Color = Microsoft.Xna.Framework.Color;
|
||||||
@@ -44,7 +44,7 @@ namespace Barotrauma
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
using (Stream fileStream = File.OpenRead(path))
|
using (Stream fileStream = File.OpenRead(path))
|
||||||
{
|
{
|
||||||
var texture = Texture2D.FromStream(_graphicsDevice, fileStream);
|
var texture = Texture2D.FromStream(_graphicsDevice, fileStream);
|
||||||
texture = PreMultiplyAlpha(texture);
|
texture = PreMultiplyAlpha(texture);
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
|
<package id="MonoGame.Framework.DesktopGL" version="3.6.0.1625" targetFramework="net45" />
|
||||||
<package id="MonoGame.Framework.WindowsDX" version="3.6.0.1625" targetFramework="net45" />
|
<package id="MonoGame.Framework.WindowsDX" version="3.6.0.1625" targetFramework="net45" />
|
||||||
<package id="NVorbis" version="0.8.5.0" targetFramework="net45" />
|
<package id="NVorbis" version="0.8.5.0" targetFramework="net45" />
|
||||||
<package id="OpenTK" version="2.0.0" targetFramework="net45" />
|
<package id="OpenTK" version="2.0.0" targetFramework="net45" />
|
||||||
<package id="RestSharp" version="105.2.3" targetFramework="net45" />
|
<package id="RestSharp" version="105.2.3" targetFramework="net45" />
|
||||||
|
<package id="SharpDX" version="4.0.1" targetFramework="net45" />
|
||||||
</packages>
|
</packages>
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">ReleaseLinux</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
<ProjectGuid>{85232B20-074D-4723-B0C6-91495391E448}</ProjectGuid>
|
<ProjectGuid>{85232B20-074D-4723-B0C6-91495391E448}</ProjectGuid>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
@@ -27,30 +27,47 @@
|
|||||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
</PropertyGroup>
|
<ReleaseVersion>0.7.0.1</ReleaseVersion>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<OutputPath>..\bin\Windows\Debug\</OutputPath>
|
|
||||||
<DefineConstants>TRACE;DEBUG;WINDOWS;SERVER</DefineConstants>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
|
||||||
<OutputPath>..\bin\Windows\Release\</OutputPath>
|
|
||||||
<DefineConstants>TRACE;WINDOWS;SERVER</DefineConstants>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
|
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseLinux|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\bin\ReleaseLinux</OutputPath>
|
||||||
|
<DefineConstants>TRACE;SERVER</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugLinux|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\bin\DebugLinux</OutputPath>
|
||||||
|
<DefineConstants>TRACE;SERVER;DEBUG</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseWindows|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\bin\ReleaseWindows</OutputPath>
|
||||||
|
<DefineConstants>TRACE;SERVER</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugWindows|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\bin\DebugWindows</OutputPath>
|
||||||
|
<DefineConstants>TRACE;SERVER;DEBUG</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="RestSharp, Version=105.2.3.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="RestSharp, Version=105.2.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
|||||||
@@ -5,14 +5,10 @@ using System.IO;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
#if WINDOWS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
namespace Barotrauma
|
namespace Barotrauma
|
||||||
{
|
{
|
||||||
#if WINDOWS || LINUX
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The main class.
|
/// The main class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -86,5 +82,4 @@ namespace Barotrauma
|
|||||||
sw.Close();
|
sw.Close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -385,7 +385,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Compares whether two <see cref="Color"/> instances are equal.
|
/// Compares whether two <see cref="Color"/> instances are equal.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="a"><see cref="Color"/> instance on the left of the equal sign.</param>
|
/// <param name="a"><see cref="Color"/> instance on the left of the equal sign.</param>
|
||||||
@@ -396,7 +396,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
return (a._packedValue == b._packedValue);
|
return (a._packedValue == b._packedValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Compares whether two <see cref="Color"/> instances are not equal.
|
/// Compares whether two <see cref="Color"/> instances are not equal.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="a"><see cref="Color"/> instance on the left of the not equal sign.</param>
|
/// <param name="a"><see cref="Color"/> instance on the left of the not equal sign.</param>
|
||||||
@@ -445,7 +445,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// AliceBlue color (R:240,G:248,B:255,A:255).
|
/// AliceBlue color (R:240,G:248,B:255,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color AliceBlue
|
public static Color AliceBlue
|
||||||
@@ -466,13 +466,13 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Aqua color (R:0,G:255,B:255,A:255).
|
/// Aqua color (R:0,G:255,B:255,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color Aqua
|
public static Color Aqua
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Aquamarine color (R:127,G:255,B:212,A:255).
|
/// Aquamarine color (R:127,G:255,B:212,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color Aquamarine
|
public static Color Aquamarine
|
||||||
@@ -484,13 +484,13 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Azure color (R:240,G:255,B:255,A:255).
|
/// Azure color (R:240,G:255,B:255,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color Azure
|
public static Color Azure
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Beige color (R:245,G:245,B:220,A:255).
|
/// Beige color (R:245,G:245,B:220,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color Beige
|
public static Color Beige
|
||||||
@@ -610,13 +610,13 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Cornsilk color (R:255,G:248,B:220,A:255).
|
/// Cornsilk color (R:255,G:248,B:220,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color Cornsilk
|
public static Color Cornsilk
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Crimson color (R:220,G:20,B:60,A:255).
|
/// Crimson color (R:220,G:20,B:60,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color Crimson
|
public static Color Crimson
|
||||||
@@ -637,13 +637,13 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// DarkBlue color (R:0,G:0,B:139,A:255).
|
/// DarkBlue color (R:0,G:0,B:139,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color DarkBlue
|
public static Color DarkBlue
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// DarkCyan color (R:0,G:139,B:139,A:255).
|
/// DarkCyan color (R:0,G:139,B:139,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color DarkCyan
|
public static Color DarkCyan
|
||||||
@@ -664,13 +664,13 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// DarkGray color (R:169,G:169,B:169,A:255).
|
/// DarkGray color (R:169,G:169,B:169,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color DarkGray
|
public static Color DarkGray
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// DarkGreen color (R:0,G:100,B:0,A:255).
|
/// DarkGreen color (R:0,G:100,B:0,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color DarkGreen
|
public static Color DarkGreen
|
||||||
@@ -733,7 +733,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// DarkSalmon color (R:233,G:150,B:122,A:255).
|
/// DarkSalmon color (R:233,G:150,B:122,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color DarkSalmon
|
public static Color DarkSalmon
|
||||||
@@ -850,7 +850,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Fuchsia color (R:255,G:0,B:255,A:255).
|
/// Fuchsia color (R:255,G:0,B:255,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color Fuchsia
|
public static Color Fuchsia
|
||||||
@@ -1496,7 +1496,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// SaddleBrown color (R:139,G:69,B:19,A:255).
|
/// SaddleBrown color (R:139,G:69,B:19,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color SaddleBrown
|
public static Color SaddleBrown
|
||||||
@@ -1532,7 +1532,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// SeaShell color (R:255,G:245,B:238,A:255).
|
/// SeaShell color (R:255,G:245,B:238,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color SeaShell
|
public static Color SeaShell
|
||||||
@@ -1541,7 +1541,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sienna color (R:160,G:82,B:45,A:255).
|
/// Sienna color (R:160,G:82,B:45,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color Sienna
|
public static Color Sienna
|
||||||
@@ -1550,7 +1550,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Silver color (R:192,G:192,B:192,A:255).
|
/// Silver color (R:192,G:192,B:192,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color Silver
|
public static Color Silver
|
||||||
@@ -1649,7 +1649,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Turquoise color (R:64,G:224,B:208,A:255).
|
/// Turquoise color (R:64,G:224,B:208,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color Turquoise
|
public static Color Turquoise
|
||||||
@@ -1670,7 +1670,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Wheat color (R:245,G:222,B:179,A:255).
|
/// Wheat color (R:245,G:222,B:179,A:255).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Color Wheat
|
public static Color Wheat
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
private set;
|
private set;
|
||||||
@@ -1722,7 +1722,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <returns>Interpolated <see cref="Color"/>.</returns>
|
/// <returns>Interpolated <see cref="Color"/>.</returns>
|
||||||
public static Color Lerp(Color value1, Color value2, Single amount)
|
public static Color Lerp(Color value1, Color value2, Single amount)
|
||||||
{
|
{
|
||||||
amount = MathHelper.Clamp(amount, 0, 1);
|
amount = MathHelper.Clamp(amount, 0, 1);
|
||||||
return new Color(
|
return new Color(
|
||||||
(int)MathHelper.Lerp(value1.R, value2.R, amount),
|
(int)MathHelper.Lerp(value1.R, value2.R, amount),
|
||||||
(int)MathHelper.Lerp(value1.G, value2.G, amount),
|
(int)MathHelper.Lerp(value1.G, value2.G, amount),
|
||||||
@@ -1730,24 +1730,24 @@ namespace Microsoft.Xna.Framework
|
|||||||
(int)MathHelper.Lerp(value1.A, value2.A, amount) );
|
(int)MathHelper.Lerp(value1.A, value2.A, amount) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Multiply <see cref="Color"/> by value.
|
/// Multiply <see cref="Color"/> by value.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="value">Source <see cref="Color"/>.</param>
|
/// <param name="value">Source <see cref="Color"/>.</param>
|
||||||
/// <param name="scale">Multiplicator.</param>
|
/// <param name="scale">Multiplicator.</param>
|
||||||
/// <returns>Multiplication result.</returns>
|
/// <returns>Multiplication result.</returns>
|
||||||
public static Color Multiply(Color value, float scale)
|
public static Color Multiply(Color value, float scale)
|
||||||
{
|
{
|
||||||
return new Color((int)(value.R * scale), (int)(value.G * scale), (int)(value.B * scale), (int)(value.A * scale));
|
return new Color((int)(value.R * scale), (int)(value.G * scale), (int)(value.B * scale), (int)(value.A * scale));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Multiply <see cref="Color"/> by value.
|
/// Multiply <see cref="Color"/> by value.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="value">Source <see cref="Color"/>.</param>
|
/// <param name="value">Source <see cref="Color"/>.</param>
|
||||||
/// <param name="scale">Multiplicator.</param>
|
/// <param name="scale">Multiplicator.</param>
|
||||||
/// <returns>Multiplication result.</returns>
|
/// <returns>Multiplication result.</returns>
|
||||||
public static Color operator *(Color value, float scale)
|
public static Color operator *(Color value, float scale)
|
||||||
{
|
{
|
||||||
return new Color((int)(value.R * scale), (int)(value.G * scale), (int)(value.B * scale), (int)(value.A * scale));
|
return new Color((int)(value.R * scale), (int)(value.G * scale), (int)(value.B * scale), (int)(value.A * scale));
|
||||||
}
|
}
|
||||||
@@ -1800,8 +1800,8 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// {R:[red] G:[green] B:[blue] A:[alpha]}
|
/// {R:[red] G:[green] B:[blue] A:[alpha]}
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns><see cref="String"/> representation of this <see cref="Color"/>.</returns>
|
/// <returns><see cref="String"/> representation of this <see cref="Color"/>.</returns>
|
||||||
public override string ToString ()
|
public override string ToString ()
|
||||||
{
|
{
|
||||||
StringBuilder sb = new StringBuilder(25);
|
StringBuilder sb = new StringBuilder(25);
|
||||||
sb.Append("{R:");
|
sb.Append("{R:");
|
||||||
sb.Append(R);
|
sb.Append(R);
|
||||||
@@ -1813,9 +1813,9 @@ namespace Microsoft.Xna.Framework
|
|||||||
sb.Append(A);
|
sb.Append(A);
|
||||||
sb.Append("}");
|
sb.Append("}");
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Translate a non-premultipled alpha <see cref="Color"/> to a <see cref="Color"/> that contains premultiplied alpha.
|
/// Translate a non-premultipled alpha <see cref="Color"/> to a <see cref="Color"/> that contains premultiplied alpha.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="vector">A <see cref="Vector4"/> representing color.</param>
|
/// <param name="vector">A <see cref="Vector4"/> representing color.</param>
|
||||||
@@ -1825,7 +1825,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
return new Color(vector.X * vector.W, vector.Y * vector.W, vector.Z * vector.W, vector.W);
|
return new Color(vector.X * vector.W, vector.Y * vector.W, vector.Z * vector.W, vector.W);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Translate a non-premultipled alpha <see cref="Color"/> to a <see cref="Color"/> that contains premultiplied alpha.
|
/// Translate a non-premultipled alpha <see cref="Color"/> to a <see cref="Color"/> that contains premultiplied alpha.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="r">Red component value.</param>
|
/// <param name="r">Red component value.</param>
|
||||||
@@ -1840,14 +1840,14 @@ namespace Microsoft.Xna.Framework
|
|||||||
|
|
||||||
#region IEquatable<Color> Members
|
#region IEquatable<Color> Members
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Compares whether current instance is equal to specified <see cref="Color"/>.
|
/// Compares whether current instance is equal to specified <see cref="Color"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="other">The <see cref="Color"/> to compare.</param>
|
/// <param name="other">The <see cref="Color"/> to compare.</param>
|
||||||
/// <returns><c>true</c> if the instances are equal; <c>false</c> otherwise.</returns>
|
/// <returns><c>true</c> if the instances are equal; <c>false</c> otherwise.</returns>
|
||||||
public bool Equals(Color other)
|
public bool Equals(Color other)
|
||||||
{
|
{
|
||||||
return this.PackedValue == other.PackedValue;
|
return this.PackedValue == other.PackedValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace Microsoft.Xna.Framework.Graphics
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// No options specified.
|
/// No options specified.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
None = 0,
|
None = 0,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Render the sprite reversed along the X axis.
|
/// Render the sprite reversed along the X axis.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -44,15 +44,15 @@ namespace Microsoft.Xna.Framework.Input
|
|||||||
/// Identifies the state of a keyboard key.
|
/// Identifies the state of a keyboard key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public enum KeyState
|
public enum KeyState
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Key is released.
|
/// Key is released.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Up,
|
Up,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Key is pressed.
|
/// Key is pressed.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Down,
|
Down,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace Microsoft.Xna.Framework.Input
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Holds the state of keystrokes by a keyboard.
|
/// Holds the state of keystrokes by a keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public struct KeyboardState
|
public struct KeyboardState
|
||||||
{
|
{
|
||||||
// Used for the common situation where GetPressedKeys will return an empty array
|
// Used for the common situation where GetPressedKeys will return an empty array
|
||||||
static Keys[] empty = new Keys[0];
|
static Keys[] empty = new Keys[0];
|
||||||
|
|||||||
@@ -7,647 +7,647 @@ namespace Microsoft.Xna.Framework.Input
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Defines the keys on a keyboard.
|
/// Defines the keys on a keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public enum Keys
|
public enum Keys
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Reserved.
|
/// Reserved.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
None = 0,
|
None = 0,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// BACKSPACE key.
|
/// BACKSPACE key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Back = 8,
|
Back = 8,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// TAB key.
|
/// TAB key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Tab = 9,
|
Tab = 9,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ENTER key.
|
/// ENTER key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Enter = 13,
|
Enter = 13,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// CAPS LOCK key.
|
/// CAPS LOCK key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
CapsLock = 20,
|
CapsLock = 20,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ESC key.
|
/// ESC key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Escape = 27,
|
Escape = 27,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// SPACEBAR key.
|
/// SPACEBAR key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Space = 32,
|
Space = 32,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// PAGE UP key.
|
/// PAGE UP key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
PageUp = 33,
|
PageUp = 33,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// PAGE DOWN key.
|
/// PAGE DOWN key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
PageDown = 34,
|
PageDown = 34,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// END key.
|
/// END key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
End = 35,
|
End = 35,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// HOME key.
|
/// HOME key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Home = 36,
|
Home = 36,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// LEFT ARROW key.
|
/// LEFT ARROW key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Left = 37,
|
Left = 37,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// UP ARROW key.
|
/// UP ARROW key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Up = 38,
|
Up = 38,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// RIGHT ARROW key.
|
/// RIGHT ARROW key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Right = 39,
|
Right = 39,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// DOWN ARROW key.
|
/// DOWN ARROW key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Down = 40,
|
Down = 40,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// SELECT key.
|
/// SELECT key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Select = 41,
|
Select = 41,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// PRINT key.
|
/// PRINT key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Print = 42,
|
Print = 42,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// EXECUTE key.
|
/// EXECUTE key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Execute = 43,
|
Execute = 43,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// PRINT SCREEN key.
|
/// PRINT SCREEN key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
PrintScreen = 44,
|
PrintScreen = 44,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// INS key.
|
/// INS key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Insert = 45,
|
Insert = 45,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// DEL key.
|
/// DEL key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Delete = 46,
|
Delete = 46,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// HELP key.
|
/// HELP key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Help = 47,
|
Help = 47,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used for miscellaneous characters; it can vary by keyboard.
|
/// Used for miscellaneous characters; it can vary by keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D0 = 48,
|
D0 = 48,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used for miscellaneous characters; it can vary by keyboard.
|
/// Used for miscellaneous characters; it can vary by keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D1 = 49,
|
D1 = 49,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used for miscellaneous characters; it can vary by keyboard.
|
/// Used for miscellaneous characters; it can vary by keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D2 = 50,
|
D2 = 50,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used for miscellaneous characters; it can vary by keyboard.
|
/// Used for miscellaneous characters; it can vary by keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D3 = 51,
|
D3 = 51,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used for miscellaneous characters; it can vary by keyboard.
|
/// Used for miscellaneous characters; it can vary by keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D4 = 52,
|
D4 = 52,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used for miscellaneous characters; it can vary by keyboard.
|
/// Used for miscellaneous characters; it can vary by keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D5 = 53,
|
D5 = 53,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used for miscellaneous characters; it can vary by keyboard.
|
/// Used for miscellaneous characters; it can vary by keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D6 = 54,
|
D6 = 54,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used for miscellaneous characters; it can vary by keyboard.
|
/// Used for miscellaneous characters; it can vary by keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D7 = 55,
|
D7 = 55,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used for miscellaneous characters; it can vary by keyboard.
|
/// Used for miscellaneous characters; it can vary by keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D8 = 56,
|
D8 = 56,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used for miscellaneous characters; it can vary by keyboard.
|
/// Used for miscellaneous characters; it can vary by keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D9 = 57,
|
D9 = 57,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A key.
|
/// A key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
A = 65,
|
A = 65,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// B key.
|
/// B key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
B = 66,
|
B = 66,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// C key.
|
/// C key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
C = 67,
|
C = 67,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// D key.
|
/// D key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D = 68,
|
D = 68,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// E key.
|
/// E key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
E = 69,
|
E = 69,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F key.
|
/// F key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F = 70,
|
F = 70,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// G key.
|
/// G key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
G = 71,
|
G = 71,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// H key.
|
/// H key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
H = 72,
|
H = 72,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// I key.
|
/// I key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
I = 73,
|
I = 73,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// J key.
|
/// J key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
J = 74,
|
J = 74,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// K key.
|
/// K key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
K = 75,
|
K = 75,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// L key.
|
/// L key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
L = 76,
|
L = 76,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// M key.
|
/// M key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
M = 77,
|
M = 77,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// N key.
|
/// N key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
N = 78,
|
N = 78,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// O key.
|
/// O key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
O = 79,
|
O = 79,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// P key.
|
/// P key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
P = 80,
|
P = 80,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Q key.
|
/// Q key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Q = 81,
|
Q = 81,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// R key.
|
/// R key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
R = 82,
|
R = 82,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// S key.
|
/// S key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
S = 83,
|
S = 83,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// T key.
|
/// T key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
T = 84,
|
T = 84,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// U key.
|
/// U key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
U = 85,
|
U = 85,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// V key.
|
/// V key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
V = 86,
|
V = 86,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// W key.
|
/// W key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
W = 87,
|
W = 87,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// X key.
|
/// X key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
X = 88,
|
X = 88,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Y key.
|
/// Y key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Y = 89,
|
Y = 89,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Z key.
|
/// Z key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Z = 90,
|
Z = 90,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Left Windows key.
|
/// Left Windows key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
LeftWindows = 91,
|
LeftWindows = 91,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Right Windows key.
|
/// Right Windows key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
RightWindows = 92,
|
RightWindows = 92,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Applications key.
|
/// Applications key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Apps = 93,
|
Apps = 93,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Computer Sleep key.
|
/// Computer Sleep key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Sleep = 95,
|
Sleep = 95,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Numeric keypad 0 key.
|
/// Numeric keypad 0 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
NumPad0 = 96,
|
NumPad0 = 96,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Numeric keypad 1 key.
|
/// Numeric keypad 1 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
NumPad1 = 97,
|
NumPad1 = 97,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Numeric keypad 2 key.
|
/// Numeric keypad 2 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
NumPad2 = 98,
|
NumPad2 = 98,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Numeric keypad 3 key.
|
/// Numeric keypad 3 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
NumPad3 = 99,
|
NumPad3 = 99,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Numeric keypad 4 key.
|
/// Numeric keypad 4 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
NumPad4 = 100,
|
NumPad4 = 100,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Numeric keypad 5 key.
|
/// Numeric keypad 5 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
NumPad5 = 101,
|
NumPad5 = 101,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Numeric keypad 6 key.
|
/// Numeric keypad 6 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
NumPad6 = 102,
|
NumPad6 = 102,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Numeric keypad 7 key.
|
/// Numeric keypad 7 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
NumPad7 = 103,
|
NumPad7 = 103,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Numeric keypad 8 key.
|
/// Numeric keypad 8 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
NumPad8 = 104,
|
NumPad8 = 104,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Numeric keypad 9 key.
|
/// Numeric keypad 9 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
NumPad9 = 105,
|
NumPad9 = 105,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Multiply key.
|
/// Multiply key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Multiply = 106,
|
Multiply = 106,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Add key.
|
/// Add key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Add = 107,
|
Add = 107,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Separator key.
|
/// Separator key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Separator = 108,
|
Separator = 108,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Subtract key.
|
/// Subtract key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Subtract = 109,
|
Subtract = 109,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Decimal key.
|
/// Decimal key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Decimal = 110,
|
Decimal = 110,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Divide key.
|
/// Divide key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Divide = 111,
|
Divide = 111,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F1 key.
|
/// F1 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F1 = 112,
|
F1 = 112,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F2 key.
|
/// F2 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F2 = 113,
|
F2 = 113,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F3 key.
|
/// F3 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F3 = 114,
|
F3 = 114,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F4 key.
|
/// F4 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F4 = 115,
|
F4 = 115,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F5 key.
|
/// F5 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F5 = 116,
|
F5 = 116,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F6 key.
|
/// F6 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F6 = 117,
|
F6 = 117,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F7 key.
|
/// F7 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F7 = 118,
|
F7 = 118,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F8 key.
|
/// F8 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F8 = 119,
|
F8 = 119,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F9 key.
|
/// F9 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F9 = 120,
|
F9 = 120,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F10 key.
|
/// F10 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F10 = 121,
|
F10 = 121,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F11 key.
|
/// F11 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F11 = 122,
|
F11 = 122,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F12 key.
|
/// F12 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F12 = 123,
|
F12 = 123,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F13 key.
|
/// F13 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F13 = 124,
|
F13 = 124,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F14 key.
|
/// F14 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F14 = 125,
|
F14 = 125,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F15 key.
|
/// F15 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F15 = 126,
|
F15 = 126,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F16 key.
|
/// F16 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F16 = 127,
|
F16 = 127,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F17 key.
|
/// F17 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F17 = 128,
|
F17 = 128,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F18 key.
|
/// F18 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F18 = 129,
|
F18 = 129,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F19 key.
|
/// F19 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F19 = 130,
|
F19 = 130,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F20 key.
|
/// F20 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F20 = 131,
|
F20 = 131,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F21 key.
|
/// F21 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F21 = 132,
|
F21 = 132,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F22 key.
|
/// F22 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F22 = 133,
|
F22 = 133,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F23 key.
|
/// F23 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F23 = 134,
|
F23 = 134,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// F24 key.
|
/// F24 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
F24 = 135,
|
F24 = 135,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// NUM LOCK key.
|
/// NUM LOCK key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
NumLock = 144,
|
NumLock = 144,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// SCROLL LOCK key.
|
/// SCROLL LOCK key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Scroll = 145,
|
Scroll = 145,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Left SHIFT key.
|
/// Left SHIFT key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
LeftShift = 160,
|
LeftShift = 160,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Right SHIFT key.
|
/// Right SHIFT key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
RightShift = 161,
|
RightShift = 161,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Left CONTROL key.
|
/// Left CONTROL key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
LeftControl = 162,
|
LeftControl = 162,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Right CONTROL key.
|
/// Right CONTROL key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
RightControl = 163,
|
RightControl = 163,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Left ALT key.
|
/// Left ALT key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
LeftAlt = 164,
|
LeftAlt = 164,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Right ALT key.
|
/// Right ALT key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
RightAlt = 165,
|
RightAlt = 165,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Browser Back key.
|
/// Browser Back key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
BrowserBack = 166,
|
BrowserBack = 166,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Browser Forward key.
|
/// Browser Forward key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
BrowserForward = 167,
|
BrowserForward = 167,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Browser Refresh key.
|
/// Browser Refresh key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
BrowserRefresh = 168,
|
BrowserRefresh = 168,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Browser Stop key.
|
/// Browser Stop key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
BrowserStop = 169,
|
BrowserStop = 169,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Browser Search key.
|
/// Browser Search key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
BrowserSearch = 170,
|
BrowserSearch = 170,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Browser Favorites key.
|
/// Browser Favorites key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
BrowserFavorites = 171,
|
BrowserFavorites = 171,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Browser Start and Home key.
|
/// Browser Start and Home key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
BrowserHome = 172,
|
BrowserHome = 172,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Volume Mute key.
|
/// Volume Mute key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
VolumeMute = 173,
|
VolumeMute = 173,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Volume Down key.
|
/// Volume Down key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
VolumeDown = 174,
|
VolumeDown = 174,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Volume Up key.
|
/// Volume Up key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
VolumeUp = 175,
|
VolumeUp = 175,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Next Track key.
|
/// Next Track key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
MediaNextTrack = 176,
|
MediaNextTrack = 176,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Previous Track key.
|
/// Previous Track key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
MediaPreviousTrack = 177,
|
MediaPreviousTrack = 177,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Stop Media key.
|
/// Stop Media key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
MediaStop = 178,
|
MediaStop = 178,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Play/Pause Media key.
|
/// Play/Pause Media key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
MediaPlayPause = 179,
|
MediaPlayPause = 179,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Start Mail key.
|
/// Start Mail key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
LaunchMail = 180,
|
LaunchMail = 180,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Select Media key.
|
/// Select Media key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
SelectMedia = 181,
|
SelectMedia = 181,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Start Application 1 key.
|
/// Start Application 1 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
LaunchApplication1 = 182,
|
LaunchApplication1 = 182,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Start Application 2 key.
|
/// Start Application 2 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
LaunchApplication2 = 183,
|
LaunchApplication2 = 183,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The OEM Semicolon key on a US standard keyboard.
|
/// The OEM Semicolon key on a US standard keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemSemicolon = 186,
|
OemSemicolon = 186,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// For any country/region, the '+' key.
|
/// For any country/region, the '+' key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemPlus = 187,
|
OemPlus = 187,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// For any country/region, the ',' key.
|
/// For any country/region, the ',' key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemComma = 188,
|
OemComma = 188,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// For any country/region, the '-' key.
|
/// For any country/region, the '-' key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemMinus = 189,
|
OemMinus = 189,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// For any country/region, the '.' key.
|
/// For any country/region, the '.' key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemPeriod = 190,
|
OemPeriod = 190,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The OEM question mark key on a US standard keyboard.
|
/// The OEM question mark key on a US standard keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemQuestion = 191,
|
OemQuestion = 191,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The OEM tilde key on a US standard keyboard.
|
/// The OEM tilde key on a US standard keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemTilde = 192,
|
OemTilde = 192,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The OEM open bracket key on a US standard keyboard.
|
/// The OEM open bracket key on a US standard keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemOpenBrackets = 219,
|
OemOpenBrackets = 219,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The OEM pipe key on a US standard keyboard.
|
/// The OEM pipe key on a US standard keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemPipe = 220,
|
OemPipe = 220,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The OEM close bracket key on a US standard keyboard.
|
/// The OEM close bracket key on a US standard keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemCloseBrackets = 221,
|
OemCloseBrackets = 221,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The OEM singled/double quote key on a US standard keyboard.
|
/// The OEM singled/double quote key on a US standard keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemQuotes = 222,
|
OemQuotes = 222,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used for miscellaneous characters; it can vary by keyboard.
|
/// Used for miscellaneous characters; it can vary by keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Oem8 = 223,
|
Oem8 = 223,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The OEM angle bracket or backslash key on the RT 102 key keyboard.
|
/// The OEM angle bracket or backslash key on the RT 102 key keyboard.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemBackslash = 226,
|
OemBackslash = 226,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// IME PROCESS key.
|
/// IME PROCESS key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
ProcessKey = 229,
|
ProcessKey = 229,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Attn key.
|
/// Attn key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Attn = 246,
|
Attn = 246,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// CrSel key.
|
/// CrSel key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Crsel = 247,
|
Crsel = 247,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ExSel key.
|
/// ExSel key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Exsel = 248,
|
Exsel = 248,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Erase EOF key.
|
/// Erase EOF key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
EraseEof = 249,
|
EraseEof = 249,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Play key.
|
/// Play key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Play = 250,
|
Play = 250,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Zoom key.
|
/// Zoom key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Zoom = 251,
|
Zoom = 251,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// PA1 key.
|
/// PA1 key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Pa1 = 253,
|
Pa1 = 253,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// CLEAR key.
|
/// CLEAR key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemClear = 254,
|
OemClear = 254,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Green ChatPad key.
|
/// Green ChatPad key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
ChatPadGreen = 0xCA,
|
ChatPadGreen = 0xCA,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Orange ChatPad key.
|
/// Orange ChatPad key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
ChatPadOrange = 0xCB,
|
ChatPadOrange = 0xCB,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// PAUSE key.
|
/// PAUSE key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Pause = 0x13,
|
Pause = 0x13,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// IME Convert key.
|
/// IME Convert key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
ImeConvert = 0x1c,
|
ImeConvert = 0x1c,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// IME NoConvert key.
|
/// IME NoConvert key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
ImeNoConvert = 0x1d,
|
ImeNoConvert = 0x1d,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Kana key on Japanese keyboards.
|
/// Kana key on Japanese keyboards.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Kana = 0x15,
|
Kana = 0x15,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Kanji key on Japanese keyboards.
|
/// Kanji key on Japanese keyboards.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Kanji = 0x19,
|
Kanji = 0x19,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// OEM Auto key.
|
/// OEM Auto key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemAuto = 0xf3,
|
OemAuto = 0xf3,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// OEM Copy key.
|
/// OEM Copy key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemCopy = 0xf2,
|
OemCopy = 0xf2,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// OEM Enlarge Window key.
|
/// OEM Enlarge Window key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
OemEnlW = 0xf4
|
OemEnlW = 0xf4
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,12 +138,12 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <returns>The result of the quaternion addition.</returns>
|
/// <returns>The result of the quaternion addition.</returns>
|
||||||
public static Quaternion Add(Quaternion quaternion1, Quaternion quaternion2)
|
public static Quaternion Add(Quaternion quaternion1, Quaternion quaternion2)
|
||||||
{
|
{
|
||||||
Quaternion quaternion;
|
Quaternion quaternion;
|
||||||
quaternion.X = quaternion1.X + quaternion2.X;
|
quaternion.X = quaternion1.X + quaternion2.X;
|
||||||
quaternion.Y = quaternion1.Y + quaternion2.Y;
|
quaternion.Y = quaternion1.Y + quaternion2.Y;
|
||||||
quaternion.Z = quaternion1.Z + quaternion2.Z;
|
quaternion.Z = quaternion1.Z + quaternion2.Z;
|
||||||
quaternion.W = quaternion1.W + quaternion2.W;
|
quaternion.W = quaternion1.W + quaternion2.W;
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -154,10 +154,10 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <param name="result">The result of the quaternion addition as an output parameter.</param>
|
/// <param name="result">The result of the quaternion addition as an output parameter.</param>
|
||||||
public static void Add(ref Quaternion quaternion1, ref Quaternion quaternion2, out Quaternion result)
|
public static void Add(ref Quaternion quaternion1, ref Quaternion quaternion2, out Quaternion result)
|
||||||
{
|
{
|
||||||
result.X = quaternion1.X + quaternion2.X;
|
result.X = quaternion1.X + quaternion2.X;
|
||||||
result.Y = quaternion1.Y + quaternion2.Y;
|
result.Y = quaternion1.Y + quaternion2.Y;
|
||||||
result.Z = quaternion1.Z + quaternion2.Z;
|
result.Z = quaternion1.Z + quaternion2.Z;
|
||||||
result.W = quaternion1.W + quaternion2.W;
|
result.W = quaternion1.W + quaternion2.W;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -171,8 +171,8 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <param name="value2">The second <see cref="Quaternion"/> to concatenate.</param>
|
/// <param name="value2">The second <see cref="Quaternion"/> to concatenate.</param>
|
||||||
/// <returns>The result of rotation of <paramref name="value1"/> followed by <paramref name="value2"/> rotation.</returns>
|
/// <returns>The result of rotation of <paramref name="value1"/> followed by <paramref name="value2"/> rotation.</returns>
|
||||||
public static Quaternion Concatenate(Quaternion value1, Quaternion value2)
|
public static Quaternion Concatenate(Quaternion value1, Quaternion value2)
|
||||||
{
|
{
|
||||||
Quaternion quaternion;
|
Quaternion quaternion;
|
||||||
|
|
||||||
float x1 = value1.X;
|
float x1 = value1.X;
|
||||||
float y1 = value1.Y;
|
float y1 = value1.Y;
|
||||||
@@ -180,17 +180,17 @@ namespace Microsoft.Xna.Framework
|
|||||||
float w1 = value1.W;
|
float w1 = value1.W;
|
||||||
|
|
||||||
float x2 = value2.X;
|
float x2 = value2.X;
|
||||||
float y2 = value2.Y;
|
float y2 = value2.Y;
|
||||||
float z2 = value2.Z;
|
float z2 = value2.Z;
|
||||||
float w2 = value2.W;
|
float w2 = value2.W;
|
||||||
|
|
||||||
quaternion.X = ((x2 * w1) + (x1 * w2)) + ((y2 * z1) - (z2 * y1));
|
quaternion.X = ((x2 * w1) + (x1 * w2)) + ((y2 * z1) - (z2 * y1));
|
||||||
quaternion.Y = ((y2 * w1) + (y1 * w2)) + ((z2 * x1) - (x2 * z1));
|
quaternion.Y = ((y2 * w1) + (y1 * w2)) + ((z2 * x1) - (x2 * z1));
|
||||||
quaternion.Z = ((z2 * w1) + (z1 * w2)) + ((x2 * y1) - (y2 * x1));
|
quaternion.Z = ((z2 * w1) + (z1 * w2)) + ((x2 * y1) - (y2 * x1));
|
||||||
quaternion.W = (w2 * w1) - (((x2 * x1) + (y2 * y1)) + (z2 * z1));
|
quaternion.W = (w2 * w1) - (((x2 * x1) + (y2 * y1)) + (z2 * z1));
|
||||||
|
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a new <see cref="Quaternion"/> that contains concatenation between two quaternion.
|
/// Creates a new <see cref="Quaternion"/> that contains concatenation between two quaternion.
|
||||||
@@ -199,7 +199,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <param name="value2">The second <see cref="Quaternion"/> to concatenate.</param>
|
/// <param name="value2">The second <see cref="Quaternion"/> to concatenate.</param>
|
||||||
/// <param name="result">The result of rotation of <paramref name="value1"/> followed by <paramref name="value2"/> rotation as an output parameter.</param>
|
/// <param name="result">The result of rotation of <paramref name="value1"/> followed by <paramref name="value2"/> rotation as an output parameter.</param>
|
||||||
public static void Concatenate(ref Quaternion value1, ref Quaternion value2, out Quaternion result)
|
public static void Concatenate(ref Quaternion value1, ref Quaternion value2, out Quaternion result)
|
||||||
{
|
{
|
||||||
float x1 = value1.X;
|
float x1 = value1.X;
|
||||||
float y1 = value1.Y;
|
float y1 = value1.Y;
|
||||||
float z1 = value1.Z;
|
float z1 = value1.Z;
|
||||||
@@ -224,11 +224,11 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// Transforms this quaternion into its conjugated version.
|
/// Transforms this quaternion into its conjugated version.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Conjugate()
|
public void Conjugate()
|
||||||
{
|
{
|
||||||
X = -X;
|
X = -X;
|
||||||
Y = -Y;
|
Y = -Y;
|
||||||
Z = -Z;
|
Z = -Z;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a new <see cref="Quaternion"/> that contains conjugated version of the specified quaternion.
|
/// Creates a new <see cref="Quaternion"/> that contains conjugated version of the specified quaternion.
|
||||||
@@ -236,9 +236,9 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <param name="value">The quaternion which values will be used to create the conjugated version.</param>
|
/// <param name="value">The quaternion which values will be used to create the conjugated version.</param>
|
||||||
/// <returns>The conjugate version of the specified quaternion.</returns>
|
/// <returns>The conjugate version of the specified quaternion.</returns>
|
||||||
public static Quaternion Conjugate(Quaternion value)
|
public static Quaternion Conjugate(Quaternion value)
|
||||||
{
|
{
|
||||||
return new Quaternion(-value.X,-value.Y,-value.Z,value.W);
|
return new Quaternion(-value.X,-value.Y,-value.Z,value.W);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a new <see cref="Quaternion"/> that contains conjugated version of the specified quaternion.
|
/// Creates a new <see cref="Quaternion"/> that contains conjugated version of the specified quaternion.
|
||||||
@@ -246,12 +246,12 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <param name="value">The quaternion which values will be used to create the conjugated version.</param>
|
/// <param name="value">The quaternion which values will be used to create the conjugated version.</param>
|
||||||
/// <param name="result">The conjugated version of the specified quaternion as an output parameter.</param>
|
/// <param name="result">The conjugated version of the specified quaternion as an output parameter.</param>
|
||||||
public static void Conjugate(ref Quaternion value, out Quaternion result)
|
public static void Conjugate(ref Quaternion value, out Quaternion result)
|
||||||
{
|
{
|
||||||
result.X = -value.X;
|
result.X = -value.X;
|
||||||
result.Y = -value.Y;
|
result.Y = -value.Y;
|
||||||
result.Z = -value.Z;
|
result.Z = -value.Z;
|
||||||
result.W = value.W;
|
result.W = value.W;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -265,10 +265,10 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <returns>The new quaternion builded from axis and angle.</returns>
|
/// <returns>The new quaternion builded from axis and angle.</returns>
|
||||||
public static Quaternion CreateFromAxisAngle(Vector3 axis, float angle)
|
public static Quaternion CreateFromAxisAngle(Vector3 axis, float angle)
|
||||||
{
|
{
|
||||||
float half = angle * 0.5f;
|
float half = angle * 0.5f;
|
||||||
float sin = (float)Math.Sin(half);
|
float sin = (float)Math.Sin(half);
|
||||||
float cos = (float)Math.Cos(half);
|
float cos = (float)Math.Cos(half);
|
||||||
return new Quaternion(axis.X * sin, axis.Y * sin, axis.Z * sin, cos);
|
return new Quaternion(axis.X * sin, axis.Y * sin, axis.Z * sin, cos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -280,12 +280,12 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static void CreateFromAxisAngle(ref Vector3 axis, float angle, out Quaternion result)
|
public static void CreateFromAxisAngle(ref Vector3 axis, float angle, out Quaternion result)
|
||||||
{
|
{
|
||||||
float half = angle * 0.5f;
|
float half = angle * 0.5f;
|
||||||
float sin = (float)Math.Sin(half);
|
float sin = (float)Math.Sin(half);
|
||||||
float cos = (float)Math.Cos(half);
|
float cos = (float)Math.Cos(half);
|
||||||
result.X = axis.X * sin;
|
result.X = axis.X * sin;
|
||||||
result.Y = axis.Y * sin;
|
result.Y = axis.Y * sin;
|
||||||
result.Z = axis.Z * sin;
|
result.Z = axis.Z * sin;
|
||||||
result.W = cos;
|
result.W = cos;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -304,51 +304,51 @@ namespace Microsoft.Xna.Framework
|
|||||||
float half;
|
float half;
|
||||||
float scale = matrix.M11 + matrix.M22 + matrix.M33;
|
float scale = matrix.M11 + matrix.M22 + matrix.M33;
|
||||||
|
|
||||||
if (scale > 0.0f)
|
if (scale > 0.0f)
|
||||||
{
|
{
|
||||||
sqrt = (float)Math.Sqrt(scale + 1.0f);
|
sqrt = (float)Math.Sqrt(scale + 1.0f);
|
||||||
quaternion.W = sqrt * 0.5f;
|
quaternion.W = sqrt * 0.5f;
|
||||||
sqrt = 0.5f / sqrt;
|
sqrt = 0.5f / sqrt;
|
||||||
|
|
||||||
quaternion.X = (matrix.M23 - matrix.M32) * sqrt;
|
quaternion.X = (matrix.M23 - matrix.M32) * sqrt;
|
||||||
quaternion.Y = (matrix.M31 - matrix.M13) * sqrt;
|
quaternion.Y = (matrix.M31 - matrix.M13) * sqrt;
|
||||||
quaternion.Z = (matrix.M12 - matrix.M21) * sqrt;
|
quaternion.Z = (matrix.M12 - matrix.M21) * sqrt;
|
||||||
|
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
if ((matrix.M11 >= matrix.M22) && (matrix.M11 >= matrix.M33))
|
if ((matrix.M11 >= matrix.M22) && (matrix.M11 >= matrix.M33))
|
||||||
{
|
{
|
||||||
sqrt = (float) Math.Sqrt(1.0f + matrix.M11 - matrix.M22 - matrix.M33);
|
sqrt = (float) Math.Sqrt(1.0f + matrix.M11 - matrix.M22 - matrix.M33);
|
||||||
half = 0.5f / sqrt;
|
half = 0.5f / sqrt;
|
||||||
|
|
||||||
quaternion.X = 0.5f * sqrt;
|
quaternion.X = 0.5f * sqrt;
|
||||||
quaternion.Y = (matrix.M12 + matrix.M21) * half;
|
quaternion.Y = (matrix.M12 + matrix.M21) * half;
|
||||||
quaternion.Z = (matrix.M13 + matrix.M31) * half;
|
quaternion.Z = (matrix.M13 + matrix.M31) * half;
|
||||||
quaternion.W = (matrix.M23 - matrix.M32) * half;
|
quaternion.W = (matrix.M23 - matrix.M32) * half;
|
||||||
|
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
if (matrix.M22 > matrix.M33)
|
if (matrix.M22 > matrix.M33)
|
||||||
{
|
{
|
||||||
sqrt = (float) Math.Sqrt(1.0f + matrix.M22 - matrix.M11 - matrix.M33);
|
sqrt = (float) Math.Sqrt(1.0f + matrix.M22 - matrix.M11 - matrix.M33);
|
||||||
half = 0.5f / sqrt;
|
half = 0.5f / sqrt;
|
||||||
|
|
||||||
quaternion.X = (matrix.M21 + matrix.M12) * half;
|
quaternion.X = (matrix.M21 + matrix.M12) * half;
|
||||||
quaternion.Y = 0.5f * sqrt;
|
quaternion.Y = 0.5f * sqrt;
|
||||||
quaternion.Z = (matrix.M32 + matrix.M23) * half;
|
quaternion.Z = (matrix.M32 + matrix.M23) * half;
|
||||||
quaternion.W = (matrix.M31 - matrix.M13) * half;
|
quaternion.W = (matrix.M31 - matrix.M13) * half;
|
||||||
|
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
sqrt = (float) Math.Sqrt(1.0f + matrix.M33 - matrix.M11 - matrix.M22);
|
sqrt = (float) Math.Sqrt(1.0f + matrix.M33 - matrix.M11 - matrix.M22);
|
||||||
half = 0.5f / sqrt;
|
half = 0.5f / sqrt;
|
||||||
|
|
||||||
quaternion.X = (matrix.M31 + matrix.M13) * half;
|
quaternion.X = (matrix.M31 + matrix.M13) * half;
|
||||||
quaternion.Y = (matrix.M32 + matrix.M23) * half;
|
quaternion.Y = (matrix.M32 + matrix.M23) * half;
|
||||||
quaternion.Z = 0.5f * sqrt;
|
quaternion.Z = 0.5f * sqrt;
|
||||||
quaternion.W = (matrix.M12 - matrix.M21) * half;
|
quaternion.W = (matrix.M12 - matrix.M21) * half;
|
||||||
|
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -417,7 +417,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <param name="roll">Roll around the z axis in radians.</param>
|
/// <param name="roll">Roll around the z axis in radians.</param>
|
||||||
/// <returns>A new quaternion from the concatenated yaw, pitch, and roll angles.</returns>
|
/// <returns>A new quaternion from the concatenated yaw, pitch, and roll angles.</returns>
|
||||||
public static Quaternion CreateFromYawPitchRoll(float yaw, float pitch, float roll)
|
public static Quaternion CreateFromYawPitchRoll(float yaw, float pitch, float roll)
|
||||||
{
|
{
|
||||||
float halfRoll = roll * 0.5f;
|
float halfRoll = roll * 0.5f;
|
||||||
float halfPitch = pitch * 0.5f;
|
float halfPitch = pitch * 0.5f;
|
||||||
float halfYaw = yaw * 0.5f;
|
float halfYaw = yaw * 0.5f;
|
||||||
@@ -442,8 +442,8 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <param name="pitch">Pitch around the x axis in radians.</param>
|
/// <param name="pitch">Pitch around the x axis in radians.</param>
|
||||||
/// <param name="roll">Roll around the z axis in radians.</param>
|
/// <param name="roll">Roll around the z axis in radians.</param>
|
||||||
/// <param name="result">A new quaternion from the concatenated yaw, pitch, and roll angles as an output parameter.</param>
|
/// <param name="result">A new quaternion from the concatenated yaw, pitch, and roll angles as an output parameter.</param>
|
||||||
public static void CreateFromYawPitchRoll(float yaw, float pitch, float roll, out Quaternion result)
|
public static void CreateFromYawPitchRoll(float yaw, float pitch, float roll, out Quaternion result)
|
||||||
{
|
{
|
||||||
float halfRoll = roll * 0.5f;
|
float halfRoll = roll * 0.5f;
|
||||||
float halfPitch = pitch * 0.5f;
|
float halfPitch = pitch * 0.5f;
|
||||||
float halfYaw = yaw * 0.5f;
|
float halfYaw = yaw * 0.5f;
|
||||||
@@ -474,25 +474,25 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion Divide(Quaternion quaternion1, Quaternion quaternion2)
|
public static Quaternion Divide(Quaternion quaternion1, Quaternion quaternion2)
|
||||||
{
|
{
|
||||||
Quaternion quaternion;
|
Quaternion quaternion;
|
||||||
float x = quaternion1.X;
|
float x = quaternion1.X;
|
||||||
float y = quaternion1.Y;
|
float y = quaternion1.Y;
|
||||||
float z = quaternion1.Z;
|
float z = quaternion1.Z;
|
||||||
float w = quaternion1.W;
|
float w = quaternion1.W;
|
||||||
float num14 = (((quaternion2.X * quaternion2.X) + (quaternion2.Y * quaternion2.Y)) + (quaternion2.Z * quaternion2.Z)) + (quaternion2.W * quaternion2.W);
|
float num14 = (((quaternion2.X * quaternion2.X) + (quaternion2.Y * quaternion2.Y)) + (quaternion2.Z * quaternion2.Z)) + (quaternion2.W * quaternion2.W);
|
||||||
float num5 = 1f / num14;
|
float num5 = 1f / num14;
|
||||||
float num4 = -quaternion2.X * num5;
|
float num4 = -quaternion2.X * num5;
|
||||||
float num3 = -quaternion2.Y * num5;
|
float num3 = -quaternion2.Y * num5;
|
||||||
float num2 = -quaternion2.Z * num5;
|
float num2 = -quaternion2.Z * num5;
|
||||||
float num = quaternion2.W * num5;
|
float num = quaternion2.W * num5;
|
||||||
float num13 = (y * num2) - (z * num3);
|
float num13 = (y * num2) - (z * num3);
|
||||||
float num12 = (z * num4) - (x * num2);
|
float num12 = (z * num4) - (x * num2);
|
||||||
float num11 = (x * num3) - (y * num4);
|
float num11 = (x * num3) - (y * num4);
|
||||||
float num10 = ((x * num4) + (y * num3)) + (z * num2);
|
float num10 = ((x * num4) + (y * num3)) + (z * num2);
|
||||||
quaternion.X = ((x * num) + (num4 * w)) + num13;
|
quaternion.X = ((x * num) + (num4 * w)) + num13;
|
||||||
quaternion.Y = ((y * num) + (num3 * w)) + num12;
|
quaternion.Y = ((y * num) + (num3 * w)) + num12;
|
||||||
quaternion.Z = ((z * num) + (num2 * w)) + num11;
|
quaternion.Z = ((z * num) + (num2 * w)) + num11;
|
||||||
quaternion.W = (w * num) - num10;
|
quaternion.W = (w * num) - num10;
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -504,23 +504,23 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static void Divide(ref Quaternion quaternion1, ref Quaternion quaternion2, out Quaternion result)
|
public static void Divide(ref Quaternion quaternion1, ref Quaternion quaternion2, out Quaternion result)
|
||||||
{
|
{
|
||||||
float x = quaternion1.X;
|
float x = quaternion1.X;
|
||||||
float y = quaternion1.Y;
|
float y = quaternion1.Y;
|
||||||
float z = quaternion1.Z;
|
float z = quaternion1.Z;
|
||||||
float w = quaternion1.W;
|
float w = quaternion1.W;
|
||||||
float num14 = (((quaternion2.X * quaternion2.X) + (quaternion2.Y * quaternion2.Y)) + (quaternion2.Z * quaternion2.Z)) + (quaternion2.W * quaternion2.W);
|
float num14 = (((quaternion2.X * quaternion2.X) + (quaternion2.Y * quaternion2.Y)) + (quaternion2.Z * quaternion2.Z)) + (quaternion2.W * quaternion2.W);
|
||||||
float num5 = 1f / num14;
|
float num5 = 1f / num14;
|
||||||
float num4 = -quaternion2.X * num5;
|
float num4 = -quaternion2.X * num5;
|
||||||
float num3 = -quaternion2.Y * num5;
|
float num3 = -quaternion2.Y * num5;
|
||||||
float num2 = -quaternion2.Z * num5;
|
float num2 = -quaternion2.Z * num5;
|
||||||
float num = quaternion2.W * num5;
|
float num = quaternion2.W * num5;
|
||||||
float num13 = (y * num2) - (z * num3);
|
float num13 = (y * num2) - (z * num3);
|
||||||
float num12 = (z * num4) - (x * num2);
|
float num12 = (z * num4) - (x * num2);
|
||||||
float num11 = (x * num3) - (y * num4);
|
float num11 = (x * num3) - (y * num4);
|
||||||
float num10 = ((x * num4) + (y * num3)) + (z * num2);
|
float num10 = ((x * num4) + (y * num3)) + (z * num2);
|
||||||
result.X = ((x * num) + (num4 * w)) + num13;
|
result.X = ((x * num) + (num4 * w)) + num13;
|
||||||
result.Y = ((y * num) + (num3 * w)) + num12;
|
result.Y = ((y * num) + (num3 * w)) + num12;
|
||||||
result.Z = ((z * num) + (num2 * w)) + num11;
|
result.Z = ((z * num) + (num2 * w)) + num11;
|
||||||
result.W = (w * num) - num10;
|
result.W = (w * num) - num10;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -572,7 +572,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <returns><c>true</c> if the instances are equal; <c>false</c> otherwise.</returns>
|
/// <returns><c>true</c> if the instances are equal; <c>false</c> otherwise.</returns>
|
||||||
public bool Equals(Quaternion other)
|
public bool Equals(Quaternion other)
|
||||||
{
|
{
|
||||||
return X == other.X &&
|
return X == other.X &&
|
||||||
Y == other.Y &&
|
Y == other.Y &&
|
||||||
Z == other.Z &&
|
Z == other.Z &&
|
||||||
W == other.W;
|
W == other.W;
|
||||||
@@ -599,13 +599,13 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion Inverse(Quaternion quaternion)
|
public static Quaternion Inverse(Quaternion quaternion)
|
||||||
{
|
{
|
||||||
Quaternion quaternion2;
|
Quaternion quaternion2;
|
||||||
float num2 = (((quaternion.X * quaternion.X) + (quaternion.Y * quaternion.Y)) + (quaternion.Z * quaternion.Z)) + (quaternion.W * quaternion.W);
|
float num2 = (((quaternion.X * quaternion.X) + (quaternion.Y * quaternion.Y)) + (quaternion.Z * quaternion.Z)) + (quaternion.W * quaternion.W);
|
||||||
float num = 1f / num2;
|
float num = 1f / num2;
|
||||||
quaternion2.X = -quaternion.X * num;
|
quaternion2.X = -quaternion.X * num;
|
||||||
quaternion2.Y = -quaternion.Y * num;
|
quaternion2.Y = -quaternion.Y * num;
|
||||||
quaternion2.Z = -quaternion.Z * num;
|
quaternion2.Z = -quaternion.Z * num;
|
||||||
quaternion2.W = quaternion.W * num;
|
quaternion2.W = quaternion.W * num;
|
||||||
return quaternion2;
|
return quaternion2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -616,11 +616,11 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static void Inverse(ref Quaternion quaternion, out Quaternion result)
|
public static void Inverse(ref Quaternion quaternion, out Quaternion result)
|
||||||
{
|
{
|
||||||
float num2 = (((quaternion.X * quaternion.X) + (quaternion.Y * quaternion.Y)) + (quaternion.Z * quaternion.Z)) + (quaternion.W * quaternion.W);
|
float num2 = (((quaternion.X * quaternion.X) + (quaternion.Y * quaternion.Y)) + (quaternion.Z * quaternion.Z)) + (quaternion.W * quaternion.W);
|
||||||
float num = 1f / num2;
|
float num = 1f / num2;
|
||||||
result.X = -quaternion.X * num;
|
result.X = -quaternion.X * num;
|
||||||
result.Y = -quaternion.Y * num;
|
result.Y = -quaternion.Y * num;
|
||||||
result.Z = -quaternion.Z * num;
|
result.Z = -quaternion.Z * num;
|
||||||
result.W = quaternion.W * num;
|
result.W = quaternion.W * num;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -631,7 +631,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <returns>The magnitude of the quaternion components.</returns>
|
/// <returns>The magnitude of the quaternion components.</returns>
|
||||||
public float Length()
|
public float Length()
|
||||||
{
|
{
|
||||||
return (float) Math.Sqrt((X * X) + (Y * Y) + (Z * Z) + (W * W));
|
return (float) Math.Sqrt((X * X) + (Y * Y) + (Z * Z) + (W * W));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -655,30 +655,30 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion Lerp(Quaternion quaternion1, Quaternion quaternion2, float amount)
|
public static Quaternion Lerp(Quaternion quaternion1, Quaternion quaternion2, float amount)
|
||||||
{
|
{
|
||||||
float num = amount;
|
float num = amount;
|
||||||
float num2 = 1f - num;
|
float num2 = 1f - num;
|
||||||
Quaternion quaternion = new Quaternion();
|
Quaternion quaternion = new Quaternion();
|
||||||
float num5 = (((quaternion1.X * quaternion2.X) + (quaternion1.Y * quaternion2.Y)) + (quaternion1.Z * quaternion2.Z)) + (quaternion1.W * quaternion2.W);
|
float num5 = (((quaternion1.X * quaternion2.X) + (quaternion1.Y * quaternion2.Y)) + (quaternion1.Z * quaternion2.Z)) + (quaternion1.W * quaternion2.W);
|
||||||
if (num5 >= 0f)
|
if (num5 >= 0f)
|
||||||
{
|
{
|
||||||
quaternion.X = (num2 * quaternion1.X) + (num * quaternion2.X);
|
quaternion.X = (num2 * quaternion1.X) + (num * quaternion2.X);
|
||||||
quaternion.Y = (num2 * quaternion1.Y) + (num * quaternion2.Y);
|
quaternion.Y = (num2 * quaternion1.Y) + (num * quaternion2.Y);
|
||||||
quaternion.Z = (num2 * quaternion1.Z) + (num * quaternion2.Z);
|
quaternion.Z = (num2 * quaternion1.Z) + (num * quaternion2.Z);
|
||||||
quaternion.W = (num2 * quaternion1.W) + (num * quaternion2.W);
|
quaternion.W = (num2 * quaternion1.W) + (num * quaternion2.W);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
quaternion.X = (num2 * quaternion1.X) - (num * quaternion2.X);
|
quaternion.X = (num2 * quaternion1.X) - (num * quaternion2.X);
|
||||||
quaternion.Y = (num2 * quaternion1.Y) - (num * quaternion2.Y);
|
quaternion.Y = (num2 * quaternion1.Y) - (num * quaternion2.Y);
|
||||||
quaternion.Z = (num2 * quaternion1.Z) - (num * quaternion2.Z);
|
quaternion.Z = (num2 * quaternion1.Z) - (num * quaternion2.Z);
|
||||||
quaternion.W = (num2 * quaternion1.W) - (num * quaternion2.W);
|
quaternion.W = (num2 * quaternion1.W) - (num * quaternion2.W);
|
||||||
}
|
}
|
||||||
float num4 = (((quaternion.X * quaternion.X) + (quaternion.Y * quaternion.Y)) + (quaternion.Z * quaternion.Z)) + (quaternion.W * quaternion.W);
|
float num4 = (((quaternion.X * quaternion.X) + (quaternion.Y * quaternion.Y)) + (quaternion.Z * quaternion.Z)) + (quaternion.W * quaternion.W);
|
||||||
float num3 = 1f / ((float) Math.Sqrt((double) num4));
|
float num3 = 1f / ((float) Math.Sqrt((double) num4));
|
||||||
quaternion.X *= num3;
|
quaternion.X *= num3;
|
||||||
quaternion.Y *= num3;
|
quaternion.Y *= num3;
|
||||||
quaternion.Z *= num3;
|
quaternion.Z *= num3;
|
||||||
quaternion.W *= num3;
|
quaternion.W *= num3;
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -691,28 +691,28 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static void Lerp(ref Quaternion quaternion1, ref Quaternion quaternion2, float amount, out Quaternion result)
|
public static void Lerp(ref Quaternion quaternion1, ref Quaternion quaternion2, float amount, out Quaternion result)
|
||||||
{
|
{
|
||||||
float num = amount;
|
float num = amount;
|
||||||
float num2 = 1f - num;
|
float num2 = 1f - num;
|
||||||
float num5 = (((quaternion1.X * quaternion2.X) + (quaternion1.Y * quaternion2.Y)) + (quaternion1.Z * quaternion2.Z)) + (quaternion1.W * quaternion2.W);
|
float num5 = (((quaternion1.X * quaternion2.X) + (quaternion1.Y * quaternion2.Y)) + (quaternion1.Z * quaternion2.Z)) + (quaternion1.W * quaternion2.W);
|
||||||
if (num5 >= 0f)
|
if (num5 >= 0f)
|
||||||
{
|
{
|
||||||
result.X = (num2 * quaternion1.X) + (num * quaternion2.X);
|
result.X = (num2 * quaternion1.X) + (num * quaternion2.X);
|
||||||
result.Y = (num2 * quaternion1.Y) + (num * quaternion2.Y);
|
result.Y = (num2 * quaternion1.Y) + (num * quaternion2.Y);
|
||||||
result.Z = (num2 * quaternion1.Z) + (num * quaternion2.Z);
|
result.Z = (num2 * quaternion1.Z) + (num * quaternion2.Z);
|
||||||
result.W = (num2 * quaternion1.W) + (num * quaternion2.W);
|
result.W = (num2 * quaternion1.W) + (num * quaternion2.W);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result.X = (num2 * quaternion1.X) - (num * quaternion2.X);
|
result.X = (num2 * quaternion1.X) - (num * quaternion2.X);
|
||||||
result.Y = (num2 * quaternion1.Y) - (num * quaternion2.Y);
|
result.Y = (num2 * quaternion1.Y) - (num * quaternion2.Y);
|
||||||
result.Z = (num2 * quaternion1.Z) - (num * quaternion2.Z);
|
result.Z = (num2 * quaternion1.Z) - (num * quaternion2.Z);
|
||||||
result.W = (num2 * quaternion1.W) - (num * quaternion2.W);
|
result.W = (num2 * quaternion1.W) - (num * quaternion2.W);
|
||||||
}
|
}
|
||||||
float num4 = (((result.X * result.X) + (result.Y * result.Y)) + (result.Z * result.Z)) + (result.W * result.W);
|
float num4 = (((result.X * result.X) + (result.Y * result.Y)) + (result.Z * result.Z)) + (result.W * result.W);
|
||||||
float num3 = 1f / ((float) Math.Sqrt((double) num4));
|
float num3 = 1f / ((float) Math.Sqrt((double) num4));
|
||||||
result.X *= num3;
|
result.X *= num3;
|
||||||
result.Y *= num3;
|
result.Y *= num3;
|
||||||
result.Z *= num3;
|
result.Z *= num3;
|
||||||
result.W *= num3;
|
result.W *= num3;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -730,33 +730,33 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion Slerp(Quaternion quaternion1, Quaternion quaternion2, float amount)
|
public static Quaternion Slerp(Quaternion quaternion1, Quaternion quaternion2, float amount)
|
||||||
{
|
{
|
||||||
float num2;
|
float num2;
|
||||||
float num3;
|
float num3;
|
||||||
Quaternion quaternion;
|
Quaternion quaternion;
|
||||||
float num = amount;
|
float num = amount;
|
||||||
float num4 = (((quaternion1.X * quaternion2.X) + (quaternion1.Y * quaternion2.Y)) + (quaternion1.Z * quaternion2.Z)) + (quaternion1.W * quaternion2.W);
|
float num4 = (((quaternion1.X * quaternion2.X) + (quaternion1.Y * quaternion2.Y)) + (quaternion1.Z * quaternion2.Z)) + (quaternion1.W * quaternion2.W);
|
||||||
bool flag = false;
|
bool flag = false;
|
||||||
if (num4 < 0f)
|
if (num4 < 0f)
|
||||||
{
|
{
|
||||||
flag = true;
|
flag = true;
|
||||||
num4 = -num4;
|
num4 = -num4;
|
||||||
}
|
}
|
||||||
if (num4 > 0.999999f)
|
if (num4 > 0.999999f)
|
||||||
{
|
{
|
||||||
num3 = 1f - num;
|
num3 = 1f - num;
|
||||||
num2 = flag ? -num : num;
|
num2 = flag ? -num : num;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
float num5 = (float) Math.Acos((double) num4);
|
float num5 = (float) Math.Acos((double) num4);
|
||||||
float num6 = (float) (1.0 / Math.Sin((double) num5));
|
float num6 = (float) (1.0 / Math.Sin((double) num5));
|
||||||
num3 = ((float) Math.Sin((double) ((1f - num) * num5))) * num6;
|
num3 = ((float) Math.Sin((double) ((1f - num) * num5))) * num6;
|
||||||
num2 = flag ? (((float) -Math.Sin((double) (num * num5))) * num6) : (((float) Math.Sin((double) (num * num5))) * num6);
|
num2 = flag ? (((float) -Math.Sin((double) (num * num5))) * num6) : (((float) Math.Sin((double) (num * num5))) * num6);
|
||||||
}
|
}
|
||||||
quaternion.X = (num3 * quaternion1.X) + (num2 * quaternion2.X);
|
quaternion.X = (num3 * quaternion1.X) + (num2 * quaternion2.X);
|
||||||
quaternion.Y = (num3 * quaternion1.Y) + (num2 * quaternion2.Y);
|
quaternion.Y = (num3 * quaternion1.Y) + (num2 * quaternion2.Y);
|
||||||
quaternion.Z = (num3 * quaternion1.Z) + (num2 * quaternion2.Z);
|
quaternion.Z = (num3 * quaternion1.Z) + (num2 * quaternion2.Z);
|
||||||
quaternion.W = (num3 * quaternion1.W) + (num2 * quaternion2.W);
|
quaternion.W = (num3 * quaternion1.W) + (num2 * quaternion2.W);
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -769,31 +769,31 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static void Slerp(ref Quaternion quaternion1, ref Quaternion quaternion2, float amount, out Quaternion result)
|
public static void Slerp(ref Quaternion quaternion1, ref Quaternion quaternion2, float amount, out Quaternion result)
|
||||||
{
|
{
|
||||||
float num2;
|
float num2;
|
||||||
float num3;
|
float num3;
|
||||||
float num = amount;
|
float num = amount;
|
||||||
float num4 = (((quaternion1.X * quaternion2.X) + (quaternion1.Y * quaternion2.Y)) + (quaternion1.Z * quaternion2.Z)) + (quaternion1.W * quaternion2.W);
|
float num4 = (((quaternion1.X * quaternion2.X) + (quaternion1.Y * quaternion2.Y)) + (quaternion1.Z * quaternion2.Z)) + (quaternion1.W * quaternion2.W);
|
||||||
bool flag = false;
|
bool flag = false;
|
||||||
if (num4 < 0f)
|
if (num4 < 0f)
|
||||||
{
|
{
|
||||||
flag = true;
|
flag = true;
|
||||||
num4 = -num4;
|
num4 = -num4;
|
||||||
}
|
}
|
||||||
if (num4 > 0.999999f)
|
if (num4 > 0.999999f)
|
||||||
{
|
{
|
||||||
num3 = 1f - num;
|
num3 = 1f - num;
|
||||||
num2 = flag ? -num : num;
|
num2 = flag ? -num : num;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
float num5 = (float) Math.Acos((double) num4);
|
float num5 = (float) Math.Acos((double) num4);
|
||||||
float num6 = (float) (1.0 / Math.Sin((double) num5));
|
float num6 = (float) (1.0 / Math.Sin((double) num5));
|
||||||
num3 = ((float) Math.Sin((double) ((1f - num) * num5))) * num6;
|
num3 = ((float) Math.Sin((double) ((1f - num) * num5))) * num6;
|
||||||
num2 = flag ? (((float) -Math.Sin((double) (num * num5))) * num6) : (((float) Math.Sin((double) (num * num5))) * num6);
|
num2 = flag ? (((float) -Math.Sin((double) (num * num5))) * num6) : (((float) Math.Sin((double) (num * num5))) * num6);
|
||||||
}
|
}
|
||||||
result.X = (num3 * quaternion1.X) + (num2 * quaternion2.X);
|
result.X = (num3 * quaternion1.X) + (num2 * quaternion2.X);
|
||||||
result.Y = (num3 * quaternion1.Y) + (num2 * quaternion2.Y);
|
result.Y = (num3 * quaternion1.Y) + (num2 * quaternion2.Y);
|
||||||
result.Z = (num3 * quaternion1.Z) + (num2 * quaternion2.Z);
|
result.Z = (num3 * quaternion1.Z) + (num2 * quaternion2.Z);
|
||||||
result.W = (num3 * quaternion1.W) + (num2 * quaternion2.W);
|
result.W = (num3 * quaternion1.W) + (num2 * quaternion2.W);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -809,11 +809,11 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion Subtract(Quaternion quaternion1, Quaternion quaternion2)
|
public static Quaternion Subtract(Quaternion quaternion1, Quaternion quaternion2)
|
||||||
{
|
{
|
||||||
Quaternion quaternion;
|
Quaternion quaternion;
|
||||||
quaternion.X = quaternion1.X - quaternion2.X;
|
quaternion.X = quaternion1.X - quaternion2.X;
|
||||||
quaternion.Y = quaternion1.Y - quaternion2.Y;
|
quaternion.Y = quaternion1.Y - quaternion2.Y;
|
||||||
quaternion.Z = quaternion1.Z - quaternion2.Z;
|
quaternion.Z = quaternion1.Z - quaternion2.Z;
|
||||||
quaternion.W = quaternion1.W - quaternion2.W;
|
quaternion.W = quaternion1.W - quaternion2.W;
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -825,9 +825,9 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static void Subtract(ref Quaternion quaternion1, ref Quaternion quaternion2, out Quaternion result)
|
public static void Subtract(ref Quaternion quaternion1, ref Quaternion quaternion2, out Quaternion result)
|
||||||
{
|
{
|
||||||
result.X = quaternion1.X - quaternion2.X;
|
result.X = quaternion1.X - quaternion2.X;
|
||||||
result.Y = quaternion1.Y - quaternion2.Y;
|
result.Y = quaternion1.Y - quaternion2.Y;
|
||||||
result.Z = quaternion1.Z - quaternion2.Z;
|
result.Z = quaternion1.Z - quaternion2.Z;
|
||||||
result.W = quaternion1.W - quaternion2.W;
|
result.W = quaternion1.W - quaternion2.W;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -843,23 +843,23 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion Multiply(Quaternion quaternion1, Quaternion quaternion2)
|
public static Quaternion Multiply(Quaternion quaternion1, Quaternion quaternion2)
|
||||||
{
|
{
|
||||||
Quaternion quaternion;
|
Quaternion quaternion;
|
||||||
float x = quaternion1.X;
|
float x = quaternion1.X;
|
||||||
float y = quaternion1.Y;
|
float y = quaternion1.Y;
|
||||||
float z = quaternion1.Z;
|
float z = quaternion1.Z;
|
||||||
float w = quaternion1.W;
|
float w = quaternion1.W;
|
||||||
float num4 = quaternion2.X;
|
float num4 = quaternion2.X;
|
||||||
float num3 = quaternion2.Y;
|
float num3 = quaternion2.Y;
|
||||||
float num2 = quaternion2.Z;
|
float num2 = quaternion2.Z;
|
||||||
float num = quaternion2.W;
|
float num = quaternion2.W;
|
||||||
float num12 = (y * num2) - (z * num3);
|
float num12 = (y * num2) - (z * num3);
|
||||||
float num11 = (z * num4) - (x * num2);
|
float num11 = (z * num4) - (x * num2);
|
||||||
float num10 = (x * num3) - (y * num4);
|
float num10 = (x * num3) - (y * num4);
|
||||||
float num9 = ((x * num4) + (y * num3)) + (z * num2);
|
float num9 = ((x * num4) + (y * num3)) + (z * num2);
|
||||||
quaternion.X = ((x * num) + (num4 * w)) + num12;
|
quaternion.X = ((x * num) + (num4 * w)) + num12;
|
||||||
quaternion.Y = ((y * num) + (num3 * w)) + num11;
|
quaternion.Y = ((y * num) + (num3 * w)) + num11;
|
||||||
quaternion.Z = ((z * num) + (num2 * w)) + num10;
|
quaternion.Z = ((z * num) + (num2 * w)) + num10;
|
||||||
quaternion.W = (w * num) - num9;
|
quaternion.W = (w * num) - num9;
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -871,11 +871,11 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion Multiply(Quaternion quaternion1, float scaleFactor)
|
public static Quaternion Multiply(Quaternion quaternion1, float scaleFactor)
|
||||||
{
|
{
|
||||||
Quaternion quaternion;
|
Quaternion quaternion;
|
||||||
quaternion.X = quaternion1.X * scaleFactor;
|
quaternion.X = quaternion1.X * scaleFactor;
|
||||||
quaternion.Y = quaternion1.Y * scaleFactor;
|
quaternion.Y = quaternion1.Y * scaleFactor;
|
||||||
quaternion.Z = quaternion1.Z * scaleFactor;
|
quaternion.Z = quaternion1.Z * scaleFactor;
|
||||||
quaternion.W = quaternion1.W * scaleFactor;
|
quaternion.W = quaternion1.W * scaleFactor;
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -887,9 +887,9 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static void Multiply(ref Quaternion quaternion1, float scaleFactor, out Quaternion result)
|
public static void Multiply(ref Quaternion quaternion1, float scaleFactor, out Quaternion result)
|
||||||
{
|
{
|
||||||
result.X = quaternion1.X * scaleFactor;
|
result.X = quaternion1.X * scaleFactor;
|
||||||
result.Y = quaternion1.Y * scaleFactor;
|
result.Y = quaternion1.Y * scaleFactor;
|
||||||
result.Z = quaternion1.Z * scaleFactor;
|
result.Z = quaternion1.Z * scaleFactor;
|
||||||
result.W = quaternion1.W * scaleFactor;
|
result.W = quaternion1.W * scaleFactor;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -901,21 +901,21 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static void Multiply(ref Quaternion quaternion1, ref Quaternion quaternion2, out Quaternion result)
|
public static void Multiply(ref Quaternion quaternion1, ref Quaternion quaternion2, out Quaternion result)
|
||||||
{
|
{
|
||||||
float x = quaternion1.X;
|
float x = quaternion1.X;
|
||||||
float y = quaternion1.Y;
|
float y = quaternion1.Y;
|
||||||
float z = quaternion1.Z;
|
float z = quaternion1.Z;
|
||||||
float w = quaternion1.W;
|
float w = quaternion1.W;
|
||||||
float num4 = quaternion2.X;
|
float num4 = quaternion2.X;
|
||||||
float num3 = quaternion2.Y;
|
float num3 = quaternion2.Y;
|
||||||
float num2 = quaternion2.Z;
|
float num2 = quaternion2.Z;
|
||||||
float num = quaternion2.W;
|
float num = quaternion2.W;
|
||||||
float num12 = (y * num2) - (z * num3);
|
float num12 = (y * num2) - (z * num3);
|
||||||
float num11 = (z * num4) - (x * num2);
|
float num11 = (z * num4) - (x * num2);
|
||||||
float num10 = (x * num3) - (y * num4);
|
float num10 = (x * num3) - (y * num4);
|
||||||
float num9 = ((x * num4) + (y * num3)) + (z * num2);
|
float num9 = ((x * num4) + (y * num3)) + (z * num2);
|
||||||
result.X = ((x * num) + (num4 * w)) + num12;
|
result.X = ((x * num) + (num4 * w)) + num12;
|
||||||
result.Y = ((y * num) + (num3 * w)) + num11;
|
result.Y = ((y * num) + (num3 * w)) + num11;
|
||||||
result.Z = ((z * num) + (num2 * w)) + num10;
|
result.Z = ((z * num) + (num2 * w)) + num10;
|
||||||
result.W = (w * num) - num9;
|
result.W = (w * num) - num9;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -929,7 +929,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <returns>The result of the quaternion negation.</returns>
|
/// <returns>The result of the quaternion negation.</returns>
|
||||||
public static Quaternion Negate(Quaternion quaternion)
|
public static Quaternion Negate(Quaternion quaternion)
|
||||||
{
|
{
|
||||||
return new Quaternion(-quaternion.X, -quaternion.Y, -quaternion.Z, -quaternion.W);
|
return new Quaternion(-quaternion.X, -quaternion.Y, -quaternion.Z, -quaternion.W);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -940,9 +940,9 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static void Negate(ref Quaternion quaternion, out Quaternion result)
|
public static void Negate(ref Quaternion quaternion, out Quaternion result)
|
||||||
{
|
{
|
||||||
result.X = -quaternion.X;
|
result.X = -quaternion.X;
|
||||||
result.Y = -quaternion.Y;
|
result.Y = -quaternion.Y;
|
||||||
result.Z = -quaternion.Z;
|
result.Z = -quaternion.Z;
|
||||||
result.W = -quaternion.W;
|
result.W = -quaternion.W;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -954,11 +954,11 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public void Normalize()
|
public void Normalize()
|
||||||
{
|
{
|
||||||
float num = 1f / ((float) Math.Sqrt((X * X) + (Y * Y) + (Z * Z) + (W * W)));
|
float num = 1f / ((float) Math.Sqrt((X * X) + (Y * Y) + (Z * Z) + (W * W)));
|
||||||
X *= num;
|
X *= num;
|
||||||
Y *= num;
|
Y *= num;
|
||||||
Z *= num;
|
Z *= num;
|
||||||
W *= num;
|
W *= num;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -969,12 +969,12 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion Normalize(Quaternion quaternion)
|
public static Quaternion Normalize(Quaternion quaternion)
|
||||||
{
|
{
|
||||||
Quaternion result;
|
Quaternion result;
|
||||||
float num = 1f / ((float) Math.Sqrt((quaternion.X * quaternion.X) + (quaternion.Y * quaternion.Y) + (quaternion.Z * quaternion.Z) + (quaternion.W * quaternion.W)));
|
float num = 1f / ((float) Math.Sqrt((quaternion.X * quaternion.X) + (quaternion.Y * quaternion.Y) + (quaternion.Z * quaternion.Z) + (quaternion.W * quaternion.W)));
|
||||||
result.X = quaternion.X * num;
|
result.X = quaternion.X * num;
|
||||||
result.Y = quaternion.Y * num;
|
result.Y = quaternion.Y * num;
|
||||||
result.Z = quaternion.Z * num;
|
result.Z = quaternion.Z * num;
|
||||||
result.W = quaternion.W * num;
|
result.W = quaternion.W * num;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -984,11 +984,11 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <param name="result">The unit length quaternion an output parameter.</param>
|
/// <param name="result">The unit length quaternion an output parameter.</param>
|
||||||
public static void Normalize(ref Quaternion quaternion, out Quaternion result)
|
public static void Normalize(ref Quaternion quaternion, out Quaternion result)
|
||||||
{
|
{
|
||||||
float num = 1f / ((float) Math.Sqrt((quaternion.X * quaternion.X) + (quaternion.Y * quaternion.Y) + (quaternion.Z * quaternion.Z) + (quaternion.W * quaternion.W)));
|
float num = 1f / ((float) Math.Sqrt((quaternion.X * quaternion.X) + (quaternion.Y * quaternion.Y) + (quaternion.Z * quaternion.Z) + (quaternion.W * quaternion.W)));
|
||||||
result.X = quaternion.X * num;
|
result.X = quaternion.X * num;
|
||||||
result.Y = quaternion.Y * num;
|
result.Y = quaternion.Y * num;
|
||||||
result.Z = quaternion.Z * num;
|
result.Z = quaternion.Z * num;
|
||||||
result.W = quaternion.W * num;
|
result.W = quaternion.W * num;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -1025,11 +1025,11 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion operator +(Quaternion quaternion1, Quaternion quaternion2)
|
public static Quaternion operator +(Quaternion quaternion1, Quaternion quaternion2)
|
||||||
{
|
{
|
||||||
Quaternion quaternion;
|
Quaternion quaternion;
|
||||||
quaternion.X = quaternion1.X + quaternion2.X;
|
quaternion.X = quaternion1.X + quaternion2.X;
|
||||||
quaternion.Y = quaternion1.Y + quaternion2.Y;
|
quaternion.Y = quaternion1.Y + quaternion2.Y;
|
||||||
quaternion.Z = quaternion1.Z + quaternion2.Z;
|
quaternion.Z = quaternion1.Z + quaternion2.Z;
|
||||||
quaternion.W = quaternion1.W + quaternion2.W;
|
quaternion.W = quaternion1.W + quaternion2.W;
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -1041,25 +1041,25 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion operator /(Quaternion quaternion1, Quaternion quaternion2)
|
public static Quaternion operator /(Quaternion quaternion1, Quaternion quaternion2)
|
||||||
{
|
{
|
||||||
Quaternion quaternion;
|
Quaternion quaternion;
|
||||||
float x = quaternion1.X;
|
float x = quaternion1.X;
|
||||||
float y = quaternion1.Y;
|
float y = quaternion1.Y;
|
||||||
float z = quaternion1.Z;
|
float z = quaternion1.Z;
|
||||||
float w = quaternion1.W;
|
float w = quaternion1.W;
|
||||||
float num14 = (((quaternion2.X * quaternion2.X) + (quaternion2.Y * quaternion2.Y)) + (quaternion2.Z * quaternion2.Z)) + (quaternion2.W * quaternion2.W);
|
float num14 = (((quaternion2.X * quaternion2.X) + (quaternion2.Y * quaternion2.Y)) + (quaternion2.Z * quaternion2.Z)) + (quaternion2.W * quaternion2.W);
|
||||||
float num5 = 1f / num14;
|
float num5 = 1f / num14;
|
||||||
float num4 = -quaternion2.X * num5;
|
float num4 = -quaternion2.X * num5;
|
||||||
float num3 = -quaternion2.Y * num5;
|
float num3 = -quaternion2.Y * num5;
|
||||||
float num2 = -quaternion2.Z * num5;
|
float num2 = -quaternion2.Z * num5;
|
||||||
float num = quaternion2.W * num5;
|
float num = quaternion2.W * num5;
|
||||||
float num13 = (y * num2) - (z * num3);
|
float num13 = (y * num2) - (z * num3);
|
||||||
float num12 = (z * num4) - (x * num2);
|
float num12 = (z * num4) - (x * num2);
|
||||||
float num11 = (x * num3) - (y * num4);
|
float num11 = (x * num3) - (y * num4);
|
||||||
float num10 = ((x * num4) + (y * num3)) + (z * num2);
|
float num10 = ((x * num4) + (y * num3)) + (z * num2);
|
||||||
quaternion.X = ((x * num) + (num4 * w)) + num13;
|
quaternion.X = ((x * num) + (num4 * w)) + num13;
|
||||||
quaternion.Y = ((y * num) + (num3 * w)) + num12;
|
quaternion.Y = ((y * num) + (num3 * w)) + num12;
|
||||||
quaternion.Z = ((z * num) + (num2 * w)) + num11;
|
quaternion.Z = ((z * num) + (num2 * w)) + num11;
|
||||||
quaternion.W = (w * num) - num10;
|
quaternion.W = (w * num) - num10;
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -1082,10 +1082,10 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static bool operator !=(Quaternion quaternion1, Quaternion quaternion2)
|
public static bool operator !=(Quaternion quaternion1, Quaternion quaternion2)
|
||||||
{
|
{
|
||||||
if (((quaternion1.X == quaternion2.X) && (quaternion1.Y == quaternion2.Y)) && (quaternion1.Z == quaternion2.Z))
|
if (((quaternion1.X == quaternion2.X) && (quaternion1.Y == quaternion2.Y)) && (quaternion1.Z == quaternion2.Z))
|
||||||
{
|
{
|
||||||
return (quaternion1.W != quaternion2.W);
|
return (quaternion1.W != quaternion2.W);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -1097,23 +1097,23 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion operator *(Quaternion quaternion1, Quaternion quaternion2)
|
public static Quaternion operator *(Quaternion quaternion1, Quaternion quaternion2)
|
||||||
{
|
{
|
||||||
Quaternion quaternion;
|
Quaternion quaternion;
|
||||||
float x = quaternion1.X;
|
float x = quaternion1.X;
|
||||||
float y = quaternion1.Y;
|
float y = quaternion1.Y;
|
||||||
float z = quaternion1.Z;
|
float z = quaternion1.Z;
|
||||||
float w = quaternion1.W;
|
float w = quaternion1.W;
|
||||||
float num4 = quaternion2.X;
|
float num4 = quaternion2.X;
|
||||||
float num3 = quaternion2.Y;
|
float num3 = quaternion2.Y;
|
||||||
float num2 = quaternion2.Z;
|
float num2 = quaternion2.Z;
|
||||||
float num = quaternion2.W;
|
float num = quaternion2.W;
|
||||||
float num12 = (y * num2) - (z * num3);
|
float num12 = (y * num2) - (z * num3);
|
||||||
float num11 = (z * num4) - (x * num2);
|
float num11 = (z * num4) - (x * num2);
|
||||||
float num10 = (x * num3) - (y * num4);
|
float num10 = (x * num3) - (y * num4);
|
||||||
float num9 = ((x * num4) + (y * num3)) + (z * num2);
|
float num9 = ((x * num4) + (y * num3)) + (z * num2);
|
||||||
quaternion.X = ((x * num) + (num4 * w)) + num12;
|
quaternion.X = ((x * num) + (num4 * w)) + num12;
|
||||||
quaternion.Y = ((y * num) + (num3 * w)) + num11;
|
quaternion.Y = ((y * num) + (num3 * w)) + num11;
|
||||||
quaternion.Z = ((z * num) + (num2 * w)) + num10;
|
quaternion.Z = ((z * num) + (num2 * w)) + num10;
|
||||||
quaternion.W = (w * num) - num9;
|
quaternion.W = (w * num) - num9;
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -1125,11 +1125,11 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion operator *(Quaternion quaternion1, float scaleFactor)
|
public static Quaternion operator *(Quaternion quaternion1, float scaleFactor)
|
||||||
{
|
{
|
||||||
Quaternion quaternion;
|
Quaternion quaternion;
|
||||||
quaternion.X = quaternion1.X * scaleFactor;
|
quaternion.X = quaternion1.X * scaleFactor;
|
||||||
quaternion.Y = quaternion1.Y * scaleFactor;
|
quaternion.Y = quaternion1.Y * scaleFactor;
|
||||||
quaternion.Z = quaternion1.Z * scaleFactor;
|
quaternion.Z = quaternion1.Z * scaleFactor;
|
||||||
quaternion.W = quaternion1.W * scaleFactor;
|
quaternion.W = quaternion1.W * scaleFactor;
|
||||||
return quaternion;
|
return quaternion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -1141,11 +1141,11 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion operator -(Quaternion quaternion1, Quaternion quaternion2)
|
public static Quaternion operator -(Quaternion quaternion1, Quaternion quaternion2)
|
||||||
{
|
{
|
||||||
Quaternion quaternion;
|
Quaternion quaternion;
|
||||||
quaternion.X = quaternion1.X - quaternion2.X;
|
quaternion.X = quaternion1.X - quaternion2.X;
|
||||||
quaternion.Y = quaternion1.Y - quaternion2.Y;
|
quaternion.Y = quaternion1.Y - quaternion2.Y;
|
||||||
quaternion.Z = quaternion1.Z - quaternion2.Z;
|
quaternion.Z = quaternion1.Z - quaternion2.Z;
|
||||||
quaternion.W = quaternion1.W - quaternion2.W;
|
quaternion.W = quaternion1.W - quaternion2.W;
|
||||||
return quaternion;
|
return quaternion;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1157,11 +1157,11 @@ namespace Microsoft.Xna.Framework
|
|||||||
public static Quaternion operator -(Quaternion quaternion)
|
public static Quaternion operator -(Quaternion quaternion)
|
||||||
{
|
{
|
||||||
Quaternion quaternion2;
|
Quaternion quaternion2;
|
||||||
quaternion2.X = -quaternion.X;
|
quaternion2.X = -quaternion.X;
|
||||||
quaternion2.Y = -quaternion.Y;
|
quaternion2.Y = -quaternion.Y;
|
||||||
quaternion2.Z = -quaternion.Z;
|
quaternion2.Z = -quaternion.Z;
|
||||||
quaternion2.W = -quaternion.W;
|
quaternion2.W = -quaternion.W;
|
||||||
return quaternion2;
|
return quaternion2;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -236,7 +236,7 @@ namespace Microsoft.Xna.Framework
|
|||||||
/// <param name="x">The x coordinate of the point to check for containment.</param>
|
/// <param name="x">The x coordinate of the point to check for containment.</param>
|
||||||
/// <param name="y">The y coordinate of the point to check for containment.</param>
|
/// <param name="y">The y coordinate of the point to check for containment.</param>
|
||||||
/// <returns><c>true</c> if the provided coordinates lie inside this <see cref="Rectangle"/>; <c>false</c> otherwise.</returns>
|
/// <returns><c>true</c> if the provided coordinates lie inside this <see cref="Rectangle"/>; <c>false</c> otherwise.</returns>
|
||||||
public bool Contains(int x, int y)
|
public bool Contains(int x, int y)
|
||||||
{
|
{
|
||||||
return ((((this.X <= x) && (x < (this.X + this.Width))) && (this.Y <= y)) && (y < (this.Y + this.Height)));
|
return ((((this.X <= x) && (x < (this.X + this.Width))) && (this.Y <= y)) && (y < (this.Y + this.Height)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<WeldedSprite texture ="door.png" sourcerect="99,0,32,188" depth="0.0" origin="0.5,0.5"/>
|
<WeldedSprite texture ="door.png" sourcerect="99,0,32,188" depth="0.0" origin="0.5,0.5"/>
|
||||||
<BrokenSprite texture ="door.png" sourcerect="133,0,58,208" depth="0.051" origin="0.5,0.0" scale="true"/>
|
<BrokenSprite texture ="door.png" sourcerect="133,0,58,208" depth="0.051" origin="0.5,0.0" scale="true"/>
|
||||||
<sound file="door.ogg" type="OnUse" range="500.0"/>
|
<sound file="door.ogg" type="OnUse" range="500.0"/>
|
||||||
<sound file="Content/Items/Tools/Crowbar.ogg" type="OnPicked" range="2000.0"/>
|
<sound file="Content/Items/Tools/crowbar.ogg" type="OnPicked" range="2000.0"/>
|
||||||
</Door>
|
</Door>
|
||||||
|
|
||||||
<AiTarget sightrange="500.0"/>
|
<AiTarget sightrange="500.0"/>
|
||||||
|
|||||||
@@ -48,8 +48,9 @@ float4 main(float4 position : SV_Position, float4 color : COLOR0, float2 texCoor
|
|||||||
float4 main2(float4 position : SV_Position, float4 color : COLOR0, float2 texCoord : TEXCOORD0) : COLOR0
|
float4 main2(float4 position : SV_Position, float4 color : COLOR0, float2 texCoord : TEXCOORD0) : COLOR0
|
||||||
{
|
{
|
||||||
float4 losColor = tex2D(LosSampler, texCoord);
|
float4 losColor = tex2D(LosSampler, texCoord);
|
||||||
|
float4 sample = tex2D(TextureSampler, texCoord);
|
||||||
|
|
||||||
float4 outColor = float4(losColor.x, losColor.y, losColor.z, color.w);
|
float4 outColor = float4(sample.x, sample.y, sample.z, losColor.x);
|
||||||
|
|
||||||
return outColor;
|
return outColor;
|
||||||
}
|
}
|
||||||
|
|||||||
Regular → Executable
BIN
Binary file not shown.
@@ -78,7 +78,7 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
|
|
||||||
//re-enable collider
|
//re-enable collider
|
||||||
if (!Collider.FarseerBody.Enabled)
|
if (!Collider.Enabled)
|
||||||
{
|
{
|
||||||
var lowestLimb = FindLowestLimb();
|
var lowestLimb = FindLowestLimb();
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ namespace Barotrauma
|
|||||||
Math.Max(lowestLimb.SimPosition.Y + (Collider.radius + Collider.height / 2), Collider.SimPosition.Y)),
|
Math.Max(lowestLimb.SimPosition.Y + (Collider.radius + Collider.height / 2), Collider.SimPosition.Y)),
|
||||||
0.0f);
|
0.0f);
|
||||||
|
|
||||||
Collider.FarseerBody.Enabled = true;
|
Collider.Enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ResetPullJoints();
|
ResetPullJoints();
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
|
|
||||||
//re-enable collider
|
//re-enable collider
|
||||||
if (!Collider.FarseerBody.Enabled)
|
if (!Collider.Enabled)
|
||||||
{
|
{
|
||||||
var lowestLimb = FindLowestLimb();
|
var lowestLimb = FindLowestLimb();
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ namespace Barotrauma
|
|||||||
Collider.Rotation);
|
Collider.Rotation);
|
||||||
|
|
||||||
Collider.FarseerBody.ResetDynamics();
|
Collider.FarseerBody.ResetDynamics();
|
||||||
Collider.FarseerBody.Enabled = true;
|
Collider.Enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (swimming)
|
if (swimming)
|
||||||
|
|||||||
@@ -1469,5 +1469,12 @@ namespace Barotrauma
|
|||||||
list.Remove(this);
|
list.Remove(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void RemoveAll()
|
||||||
|
{
|
||||||
|
for (int i = list.Count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
list[i].Remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -344,18 +344,18 @@ namespace Barotrauma
|
|||||||
if (GameMain.Client != null) return;
|
if (GameMain.Client != null) return;
|
||||||
|
|
||||||
float newHealth = MathHelper.Clamp(value, minHealth, maxHealth);
|
float newHealth = MathHelper.Clamp(value, minHealth, maxHealth);
|
||||||
if (newHealth == health) return;
|
//if (newHealth == health) return;
|
||||||
|
|
||||||
health = newHealth;
|
health = newHealth;
|
||||||
|
|
||||||
if (GameMain.Server != null)
|
/*if (GameMain.Server != null)
|
||||||
{
|
{
|
||||||
if (Math.Abs(health - lastSentHealth) > (maxHealth - minHealth) / 255.0f || Math.Sign(health) != Math.Sign(lastSentHealth))
|
if (Math.Abs(health - lastSentHealth) > (maxHealth - minHealth) / 255.0f || Math.Sign(health) != Math.Sign(lastSentHealth))
|
||||||
{
|
{
|
||||||
GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status });
|
GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status });
|
||||||
lastSentHealth = health;
|
lastSentHealth = health;
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -373,12 +373,12 @@ namespace Barotrauma
|
|||||||
if (GameMain.Client != null) return;
|
if (GameMain.Client != null) return;
|
||||||
|
|
||||||
float newBleeding = MathHelper.Clamp(value, 0.0f, 5.0f);
|
float newBleeding = MathHelper.Clamp(value, 0.0f, 5.0f);
|
||||||
if (newBleeding == bleeding) return;
|
//if (newBleeding == bleeding) return;
|
||||||
|
|
||||||
bleeding = newBleeding;
|
bleeding = newBleeding;
|
||||||
|
|
||||||
if (GameMain.Server != null)
|
/*if (GameMain.Server != null)
|
||||||
GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status });
|
GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status });*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1540,11 +1540,11 @@ namespace Barotrauma
|
|||||||
if (stunTimer > 0.0f)
|
if (stunTimer > 0.0f)
|
||||||
{
|
{
|
||||||
stunTimer -= deltaTime;
|
stunTimer -= deltaTime;
|
||||||
if (stunTimer < 0.0f && GameMain.Server != null)
|
/*if (stunTimer < 0.0f && GameMain.Server != null)
|
||||||
{
|
{
|
||||||
//stun ended -> notify clients
|
//stun ended -> notify clients
|
||||||
GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status });
|
GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status });
|
||||||
}
|
} */
|
||||||
}
|
}
|
||||||
|
|
||||||
//Skip health effects as critical health handles it differently
|
//Skip health effects as critical health handles it differently
|
||||||
@@ -1574,8 +1574,8 @@ namespace Barotrauma
|
|||||||
if (IsRagdolled)
|
if (IsRagdolled)
|
||||||
{
|
{
|
||||||
if (AnimController is HumanoidAnimController) ((HumanoidAnimController)AnimController).Crouching = false;
|
if (AnimController is HumanoidAnimController) ((HumanoidAnimController)AnimController).Crouching = false;
|
||||||
if(GameMain.Server != null)
|
/*if(GameMain.Server != null)
|
||||||
GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status });
|
GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status });*/
|
||||||
AnimController.ResetPullJoints();
|
AnimController.ResetPullJoints();
|
||||||
selectedConstruction = null;
|
selectedConstruction = null;
|
||||||
return;
|
return;
|
||||||
@@ -1821,11 +1821,11 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if ((newStun <= stunTimer && !allowStunDecrease) || !MathUtils.IsValid(newStun)) return;
|
if ((newStun <= stunTimer && !allowStunDecrease) || !MathUtils.IsValid(newStun)) return;
|
||||||
|
|
||||||
if (GameMain.Server != null &&
|
/*if (GameMain.Server != null &&
|
||||||
(Math.Sign(newStun) != Math.Sign(stunTimer) || Math.Abs(newStun - stunTimer) > 0.1f))
|
(Math.Sign(newStun) != Math.Sign(stunTimer) || Math.Abs(newStun - stunTimer) > 0.1f))
|
||||||
{
|
{
|
||||||
GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status });
|
GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status });
|
||||||
}
|
}*/
|
||||||
|
|
||||||
if (Math.Sign(newStun) != Math.Sign(stunTimer)) AnimController.ResetPullJoints();
|
if (Math.Sign(newStun) != Math.Sign(stunTimer)) AnimController.ResetPullJoints();
|
||||||
|
|
||||||
@@ -1884,11 +1884,11 @@ namespace Barotrauma
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GameMain.NetworkMember != null)
|
/*if (GameMain.NetworkMember != null)
|
||||||
{
|
{
|
||||||
if (GameMain.Server != null)
|
if (GameMain.Server != null)
|
||||||
GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status });
|
GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status });
|
||||||
}
|
}*/
|
||||||
|
|
||||||
AnimController.Frozen = false;
|
AnimController.Frozen = false;
|
||||||
|
|
||||||
|
|||||||
@@ -332,6 +332,7 @@ namespace Barotrauma
|
|||||||
inventory.ServerRead(type, msg, c);
|
inventory.ServerRead(type, msg, c);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
|
bool doingCPR = msg.ReadBoolean();
|
||||||
if (c.Character != this)
|
if (c.Character != this)
|
||||||
{
|
{
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
@@ -340,7 +341,6 @@ namespace Barotrauma
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool doingCPR = msg.ReadBoolean();
|
|
||||||
AnimController.Anim = doingCPR ? AnimController.Animation.CPR : AnimController.Animation.None;
|
AnimController.Anim = doingCPR ? AnimController.Animation.CPR : AnimController.Animation.None;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
@@ -358,7 +358,15 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
AnimController.GrabLimb = (LimbType)msg.ReadUInt16();
|
LimbType grabLimb = (LimbType)msg.ReadUInt16();
|
||||||
|
if (c.Character != this)
|
||||||
|
{
|
||||||
|
#if DEBUG
|
||||||
|
DebugConsole.Log("Received a character update message from a client who's not controlling the character");
|
||||||
|
#endif
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
AnimController.GrabLimb = grabLimb;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -384,10 +392,6 @@ namespace Barotrauma
|
|||||||
Client owner = ((Client)extraData[1]);
|
Client owner = ((Client)extraData[1]);
|
||||||
msg.Write(owner == null ? (byte)0 : owner.ID);
|
msg.Write(owner == null ? (byte)0 : owner.ID);
|
||||||
break;
|
break;
|
||||||
case NetEntityEvent.Type.Status:
|
|
||||||
msg.WriteRangedInteger(0, 2, 2);
|
|
||||||
WriteStatus(msg);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
msg.WritePadBits();
|
msg.WritePadBits();
|
||||||
}
|
}
|
||||||
@@ -474,6 +478,8 @@ namespace Barotrauma
|
|||||||
tempBuffer.Write(SimPosition.Y);
|
tempBuffer.Write(SimPosition.Y);
|
||||||
tempBuffer.Write(AnimController.Collider.Rotation);
|
tempBuffer.Write(AnimController.Collider.Rotation);
|
||||||
|
|
||||||
|
WriteStatus(tempBuffer);
|
||||||
|
|
||||||
tempBuffer.WritePadBits();
|
tempBuffer.WritePadBits();
|
||||||
|
|
||||||
msg.Write((byte)tempBuffer.LengthBytes);
|
msg.Write((byte)tempBuffer.LengthBytes);
|
||||||
|
|||||||
@@ -13,13 +13,15 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
public string Text;
|
public string Text;
|
||||||
public Color Color;
|
public Color Color;
|
||||||
|
public bool IsCommand;
|
||||||
|
|
||||||
public readonly string Time;
|
public readonly string Time;
|
||||||
|
|
||||||
public ColoredText(string text, Color color)
|
public ColoredText(string text, Color color, bool isCommand)
|
||||||
{
|
{
|
||||||
this.Text = text;
|
this.Text = text;
|
||||||
this.Color = color;
|
this.Color = color;
|
||||||
|
this.IsCommand = isCommand;
|
||||||
|
|
||||||
Time = DateTime.Now.ToString();
|
Time = DateTime.Now.ToString();
|
||||||
}
|
}
|
||||||
@@ -1303,9 +1305,14 @@ namespace Barotrauma
|
|||||||
|
|
||||||
direction = MathHelper.Clamp(direction, -1, 1);
|
direction = MathHelper.Clamp(direction, -1, 1);
|
||||||
|
|
||||||
selectedIndex += direction;
|
int i = 0;
|
||||||
if (selectedIndex < 0) selectedIndex = Messages.Count - 1;
|
do
|
||||||
selectedIndex = selectedIndex % Messages.Count;
|
{
|
||||||
|
selectedIndex += direction;
|
||||||
|
if (selectedIndex < 0) selectedIndex = Messages.Count - 1;
|
||||||
|
selectedIndex = selectedIndex % Messages.Count;
|
||||||
|
if (++i >= Messages.Count) break;
|
||||||
|
} while (!Messages[selectedIndex].IsCommand);
|
||||||
|
|
||||||
return Messages[selectedIndex].Text;
|
return Messages[selectedIndex].Text;
|
||||||
}
|
}
|
||||||
@@ -1317,7 +1324,7 @@ namespace Barotrauma
|
|||||||
#if CLIENT
|
#if CLIENT
|
||||||
activeQuestionText = null;
|
activeQuestionText = null;
|
||||||
#endif
|
#endif
|
||||||
NewMessage(command, Color.White);
|
NewMessage(command, Color.White, true);
|
||||||
//reset the variable before invoking the delegate because the method may need to activate another question
|
//reset the variable before invoking the delegate because the method may need to activate another question
|
||||||
var temp = activeQuestionCallback;
|
var temp = activeQuestionCallback;
|
||||||
activeQuestionCallback = null;
|
activeQuestionCallback = null;
|
||||||
@@ -1331,7 +1338,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if (!splitCommand[0].ToLowerInvariant().Equals("admin"))
|
if (!splitCommand[0].ToLowerInvariant().Equals("admin"))
|
||||||
{
|
{
|
||||||
NewMessage(command, Color.White);
|
NewMessage(command, Color.White, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CLIENT
|
#if CLIENT
|
||||||
@@ -1611,12 +1618,12 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void NewMessage(string msg, Color color)
|
public static void NewMessage(string msg, Color color, bool isCommand = false)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty((msg))) return;
|
if (string.IsNullOrEmpty((msg))) return;
|
||||||
|
|
||||||
#if SERVER
|
#if SERVER
|
||||||
Messages.Add(new ColoredText(msg, color));
|
Messages.Add(new ColoredText(msg, color, isCommand));
|
||||||
|
|
||||||
//TODO: REMOVE
|
//TODO: REMOVE
|
||||||
Console.ForegroundColor = XnaToConsoleColor.Convert(color);
|
Console.ForegroundColor = XnaToConsoleColor.Convert(color);
|
||||||
@@ -1631,7 +1638,7 @@ namespace Barotrauma
|
|||||||
#elif CLIENT
|
#elif CLIENT
|
||||||
lock (queuedMessages)
|
lock (queuedMessages)
|
||||||
{
|
{
|
||||||
queuedMessages.Enqueue(new ColoredText(msg, color));
|
queuedMessages.Enqueue(new ColoredText(msg, color, isCommand));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -515,6 +515,7 @@ namespace Barotrauma.Items.Components
|
|||||||
case "requireditem":
|
case "requireditem":
|
||||||
if (!overrideRequiredItems) requiredItems.Clear();
|
if (!overrideRequiredItems) requiredItems.Clear();
|
||||||
overrideRequiredItems = true;
|
overrideRequiredItems = true;
|
||||||
|
|
||||||
RelatedItem newRequiredItem = RelatedItem.Load(subElement);
|
RelatedItem newRequiredItem = RelatedItem.Load(subElement);
|
||||||
|
|
||||||
if (newRequiredItem == null) continue;
|
if (newRequiredItem == null) continue;
|
||||||
|
|||||||
@@ -1207,7 +1207,7 @@ namespace Barotrauma
|
|||||||
Color color = Color.Red;
|
Color color = Color.Red;
|
||||||
if (ic.HasRequiredSkills(character) && ic.HasRequiredItems(character, false)) color = Color.Orange;
|
if (ic.HasRequiredSkills(character) && ic.HasRequiredItems(character, false)) color = Color.Orange;
|
||||||
|
|
||||||
texts.Add(new ColoredText(ic.Msg, color));
|
texts.Add(new ColoredText(ic.Msg, color, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
return texts;
|
return texts;
|
||||||
@@ -1608,7 +1608,7 @@ namespace Barotrauma
|
|||||||
msg.Write(body.FarseerBody.Awake);
|
msg.Write(body.FarseerBody.Awake);
|
||||||
if (body.FarseerBody.Awake)
|
if (body.FarseerBody.Awake)
|
||||||
{
|
{
|
||||||
body.FarseerBody.Enabled = true;
|
body.Enabled = true;
|
||||||
msg.WriteRangedSingle(MathHelper.Clamp(body.LinearVelocity.X, -MaxVel, MaxVel), -MaxVel, MaxVel, 12);
|
msg.WriteRangedSingle(MathHelper.Clamp(body.LinearVelocity.X, -MaxVel, MaxVel), -MaxVel, MaxVel, 12);
|
||||||
msg.WriteRangedSingle(MathHelper.Clamp(body.LinearVelocity.Y, -MaxVel, MaxVel), -MaxVel, MaxVel, 12);
|
msg.WriteRangedSingle(MathHelper.Clamp(body.LinearVelocity.Y, -MaxVel, MaxVel), -MaxVel, MaxVel, 12);
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
* Created by SharpDevelop.
|
* Created by SharpDevelop.
|
||||||
* User: Burhan
|
* User: Burhan
|
||||||
* Date: 17/06/2014
|
* Date: 17/06/2014
|
||||||
@@ -8,31 +8,31 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Copyright 2011 James Humphreys. All rights reserved.
|
Copyright 2011 James Humphreys. All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification, are
|
Redistribution and use in source and binary forms, with or without modification, are
|
||||||
permitted provided that the following conditions are met:
|
permitted provided that the following conditions are met:
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this list of
|
1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
conditions and the following disclaimer.
|
conditions and the following disclaimer.
|
||||||
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright notice, this list
|
2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
of conditions and the following disclaimer in the documentation and/or other materials
|
of conditions and the following disclaimer in the documentation and/or other materials
|
||||||
provided with the distribution.
|
provided with the distribution.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY James Humphreys ``AS IS\" AND ANY EXPRESS OR IMPLIED
|
THIS SOFTWARE IS PROVIDED BY James Humphreys ``AS IS\" AND ANY EXPRESS OR IMPLIED
|
||||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
|
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
|
||||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
The views and conclusions contained in the software and documentation are those of the
|
The views and conclusions contained in the software and documentation are those of the
|
||||||
authors and should not be interpreted as representing official policies, either expressed
|
authors and should not be interpreted as representing official policies, either expressed
|
||||||
or implied, of James Humphreys.
|
or implied, of James Humphreys.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -58,63 +58,63 @@ using System.Collections.Generic;
|
|||||||
namespace Voronoi2
|
namespace Voronoi2
|
||||||
{
|
{
|
||||||
public class Point
|
public class Point
|
||||||
{
|
{
|
||||||
public double x, y;
|
public double x, y;
|
||||||
|
|
||||||
public void setPoint ( double x, double y )
|
public void setPoint ( double x, double y )
|
||||||
{
|
{
|
||||||
this.x = x;
|
this.x = x;
|
||||||
this.y = y;
|
this.y = y;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// use for sites and vertecies
|
// use for sites and vertecies
|
||||||
public class Site
|
public class Site
|
||||||
{
|
{
|
||||||
public Point coord;
|
public Point coord;
|
||||||
public int sitenbr;
|
public int sitenbr;
|
||||||
|
|
||||||
public void SetPoint(Vector2 point)
|
public void SetPoint(Vector2 point)
|
||||||
{
|
{
|
||||||
coord.setPoint(point.X, point.Y);
|
coord.setPoint(point.X, point.Y);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Site ()
|
public Site ()
|
||||||
{
|
{
|
||||||
coord = new Point();
|
coord = new Point();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Edge
|
public class Edge
|
||||||
{
|
{
|
||||||
public double a = 0, b = 0, c = 0;
|
public double a = 0, b = 0, c = 0;
|
||||||
public Site[] ep;
|
public Site[] ep;
|
||||||
public Site[] reg;
|
public Site[] reg;
|
||||||
public int edgenbr;
|
public int edgenbr;
|
||||||
|
|
||||||
public Edge ()
|
public Edge ()
|
||||||
{
|
{
|
||||||
ep = new Site[2];
|
ep = new Site[2];
|
||||||
reg = new Site[2];
|
reg = new Site[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public class Halfedge
|
public class Halfedge
|
||||||
{
|
{
|
||||||
public Halfedge ELleft, ELright;
|
public Halfedge ELleft, ELright;
|
||||||
public Edge ELedge;
|
public Edge ELedge;
|
||||||
public bool deleted;
|
public bool deleted;
|
||||||
public int ELpm;
|
public int ELpm;
|
||||||
public Site vertex;
|
public Site vertex;
|
||||||
public double ystar;
|
public double ystar;
|
||||||
public Halfedge PQnext;
|
public Halfedge PQnext;
|
||||||
|
|
||||||
public Halfedge ()
|
public Halfedge ()
|
||||||
{
|
{
|
||||||
PQnext = null;
|
PQnext = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum CellType
|
public enum CellType
|
||||||
{
|
{
|
||||||
@@ -188,10 +188,10 @@ namespace Voronoi2
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GraphEdge
|
public class GraphEdge
|
||||||
{
|
{
|
||||||
public Vector2 point1, point2;
|
public Vector2 point1, point2;
|
||||||
public Site site1, site2;
|
public Site site1, site2;
|
||||||
public VoronoiCell cell1, cell2;
|
public VoronoiCell cell1, cell2;
|
||||||
|
|
||||||
public bool isSolid;
|
public bool isSolid;
|
||||||
@@ -239,20 +239,20 @@ namespace Voronoi2
|
|||||||
|
|
||||||
return normal;
|
return normal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// للترتيب
|
// للترتيب
|
||||||
public class SiteSorterYX : IComparer<Site>
|
public class SiteSorterYX : IComparer<Site>
|
||||||
{
|
{
|
||||||
public int Compare ( Site p1, Site p2 )
|
public int Compare ( Site p1, Site p2 )
|
||||||
{
|
{
|
||||||
Point s1 = p1.coord;
|
Point s1 = p1.coord;
|
||||||
Point s2 = p2.coord;
|
Point s2 = p2.coord;
|
||||||
if ( s1.y < s2.y ) return -1;
|
if ( s1.y < s2.y ) return -1;
|
||||||
if ( s1.y > s2.y ) return 1;
|
if ( s1.y > s2.y ) return 1;
|
||||||
if ( s1.x < s2.x ) return -1;
|
if ( s1.x < s2.x ) return -1;
|
||||||
if ( s1.x > s2.x ) return 1;
|
if ( s1.x > s2.x ) return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,11 +89,11 @@ namespace Barotrauma
|
|||||||
get { return false; }
|
get { return false; }
|
||||||
}
|
}
|
||||||
|
|
||||||
protected bool ResizeHorizontal
|
public bool ResizeHorizontal
|
||||||
{
|
{
|
||||||
get { return prefab != null && prefab.ResizeHorizontal; }
|
get { return prefab != null && prefab.ResizeHorizontal; }
|
||||||
}
|
}
|
||||||
protected bool ResizeVertical
|
public bool ResizeVertical
|
||||||
{
|
{
|
||||||
get { return prefab != null && prefab.ResizeVertical; }
|
get { return prefab != null && prefab.ResizeVertical; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -848,6 +848,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
StairDirection = StairDirection == Direction.Left ? Direction.Right : Direction.Left;
|
StairDirection = StairDirection == Direction.Left ? Direction.Right : Direction.Left;
|
||||||
bodies.ForEach(b => GameMain.World.RemoveBody(b));
|
bodies.ForEach(b => GameMain.World.RemoveBody(b));
|
||||||
|
bodies.Clear();
|
||||||
|
|
||||||
CreateStairBodies();
|
CreateStairBodies();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1208,9 +1208,9 @@ namespace Barotrauma
|
|||||||
Item.ItemList.Clear();
|
Item.ItemList.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
PhysicsBody.RemoveAll();
|
Ragdoll.RemoveAll();
|
||||||
|
|
||||||
Ragdoll.list.Clear();
|
PhysicsBody.RemoveAll();
|
||||||
|
|
||||||
GameMain.World.Clear();
|
GameMain.World.Clear();
|
||||||
|
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
public static bool IsValidName(string name)
|
public static bool IsValidName(string name)
|
||||||
{
|
{
|
||||||
if (name.Contains("\n") || name.Contains("\r\n")) return false;
|
if (name.Contains("\n") || name.Contains("\r")) return false;
|
||||||
|
|
||||||
return (name.All(c =>
|
return (name.All(c =>
|
||||||
c != ';' &&
|
c != ';' &&
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ namespace Barotrauma.Networking
|
|||||||
DebugConsole.NewMessage(clName + " (" + inc.SenderConnection.RemoteEndPoint.Address.ToString() + ") couldn't join the server (invalid name)", Color.Red);
|
DebugConsole.NewMessage(clName + " (" + inc.SenderConnection.RemoteEndPoint.Address.ToString() + ") couldn't join the server (invalid name)", Color.Red);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (clName.ToLower() == Name.ToLower())
|
if (Homoglyphs.Compare(clName.ToLower(),Name.ToLower()))
|
||||||
{
|
{
|
||||||
DisconnectUnauthClient(inc, unauthClient, "That name is taken.");
|
DisconnectUnauthClient(inc, unauthClient, "That name is taken.");
|
||||||
Log(clName + " (" + inc.SenderConnection.RemoteEndPoint.Address.ToString() + ") couldn't join the server (name taken by the server)", ServerLog.MessageType.Error);
|
Log(clName + " (" + inc.SenderConnection.RemoteEndPoint.Address.ToString() + ") couldn't join the server (name taken by the server)", ServerLog.MessageType.Error);
|
||||||
|
|||||||
@@ -349,9 +349,12 @@ namespace Barotrauma.Networking
|
|||||||
{
|
{
|
||||||
clientPermissions.Clear();
|
clientPermissions.Clear();
|
||||||
|
|
||||||
if (File.Exists("Data/clientpermissions.txt") && !File.Exists(ClientPermissionsFile))
|
if (!File.Exists(ClientPermissionsFile))
|
||||||
{
|
{
|
||||||
LoadClientPermissionsOld("Data/clientpermissions.txt");
|
if (File.Exists("Data/clientpermissions.txt"))
|
||||||
|
{
|
||||||
|
LoadClientPermissionsOld("Data/clientpermissions.txt");
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Xna.Framework.Input;
|
using Microsoft.Xna.Framework.Input;
|
||||||
|
|
||||||
namespace Barotrauma
|
namespace Barotrauma
|
||||||
{
|
{
|
||||||
@@ -94,9 +94,9 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Key
|
class Key
|
||||||
{
|
{
|
||||||
private bool hit, hitQueue;
|
private bool hit, hitQueue;
|
||||||
private bool held, heldQueue;
|
private bool held, heldQueue;
|
||||||
|
|
||||||
|
|
||||||
@@ -107,22 +107,22 @@ namespace Barotrauma
|
|||||||
// get { return canBeHeld; }
|
// get { return canBeHeld; }
|
||||||
//}
|
//}
|
||||||
|
|
||||||
public Key(KeyOrMouse binding)
|
public Key(KeyOrMouse binding)
|
||||||
{
|
{
|
||||||
this.binding = binding;
|
this.binding = binding;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Hit
|
public bool Hit
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return hit;
|
return hit;
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
hit = value;
|
hit = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Held
|
public bool Held
|
||||||
{
|
{
|
||||||
@@ -141,14 +141,14 @@ namespace Barotrauma
|
|||||||
get { return binding; }
|
get { return binding; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetState()
|
public void SetState()
|
||||||
{
|
{
|
||||||
hit = binding.IsHit();
|
hit = binding.IsHit();
|
||||||
if (hit) hitQueue = true;
|
if (hit) hitQueue = true;
|
||||||
|
|
||||||
held = binding.IsDown();
|
held = binding.IsDown();
|
||||||
if (held) heldQueue = true;
|
if (held) heldQueue = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetState(bool hit, bool held)
|
public void SetState(bool hit, bool held)
|
||||||
{
|
{
|
||||||
@@ -156,12 +156,12 @@ namespace Barotrauma
|
|||||||
if (held) heldQueue = true;
|
if (held) heldQueue = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DequeueHit()
|
public bool DequeueHit()
|
||||||
{
|
{
|
||||||
bool value = hitQueue;
|
bool value = hitQueue;
|
||||||
hitQueue = false;
|
hitQueue = false;
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DequeueHeld()
|
public bool DequeueHeld()
|
||||||
{
|
{
|
||||||
@@ -187,11 +187,11 @@ namespace Barotrauma
|
|||||||
held = false;
|
held = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResetHit()
|
public void ResetHit()
|
||||||
{
|
{
|
||||||
hit = false;
|
hit = false;
|
||||||
//stateQueue = false;
|
//stateQueue = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void ResetHeld()
|
public void ResetHeld()
|
||||||
@@ -199,5 +199,5 @@ namespace Barotrauma
|
|||||||
held = false;
|
held = false;
|
||||||
//stateQueue = false;
|
//stateQueue = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -508,6 +508,52 @@ namespace Barotrauma
|
|||||||
// Return formatted number with suffix
|
// Return formatted number with suffix
|
||||||
return readable.ToString("0.# ") + suffix;
|
return readable.ToString("0.# ") + suffix;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void SplitRectanglesHorizontal(List<Rectangle> rects, Vector2 point)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < rects.Count; i++)
|
||||||
|
{
|
||||||
|
if (point.Y > rects[i].Y && point.Y < rects[i].Y + rects[i].Height)
|
||||||
|
{
|
||||||
|
Rectangle rect1 = rects[i];
|
||||||
|
Rectangle rect2 = rects[i];
|
||||||
|
|
||||||
|
rect1.Height = (int)(point.Y - rects[i].Y);
|
||||||
|
|
||||||
|
rect2.Height = rects[i].Height - rect1.Height;
|
||||||
|
rect2.Y = rect1.Y + rect1.Height;
|
||||||
|
rects[i] = rect1;
|
||||||
|
rects.Insert(i + 1, rect2); i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SplitRectanglesVertical(List<Rectangle> rects, Vector2 point)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < rects.Count; i++)
|
||||||
|
{
|
||||||
|
if (point.X>rects[i].X && point.X<rects[i].X+rects[i].Width)
|
||||||
|
{
|
||||||
|
Rectangle rect1 = rects[i];
|
||||||
|
Rectangle rect2 = rects[i];
|
||||||
|
|
||||||
|
rect1.Width = (int)(point.X-rects[i].X);
|
||||||
|
|
||||||
|
rect2.Width = rects[i].Width - rect1.Width;
|
||||||
|
rect2.X = rect1.X + rect1.Width;
|
||||||
|
rects[i] = rect1;
|
||||||
|
rects.Insert(i + 1, rect2); i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*for (int i = 0; i < rects.Count; i++)
|
||||||
|
{
|
||||||
|
if (rects[i].Width <= 0 || rects[i].Height <= 0)
|
||||||
|
{
|
||||||
|
rects.RemoveAt(i); i--;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class CompareCCW : IComparer<Vector2>
|
class CompareCCW : IComparer<Vector2>
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">ReleaseLinux</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
<ProductVersion>8.0.30703</ProductVersion>
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
@@ -9,38 +9,54 @@
|
|||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>Launcher</RootNamespace>
|
<RootNamespace>Launcher</RootNamespace>
|
||||||
<AssemblyName>Barotrauma Launcher</AssemblyName>
|
<AssemblyName>Launcher</AssemblyName>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<MonoGamePlatform>Windows</MonoGamePlatform>
|
<MonoGamePlatform>Windows</MonoGamePlatform>
|
||||||
<MonoGameContentBuilderExe>
|
<MonoGameContentBuilderExe>
|
||||||
</MonoGameContentBuilderExe>
|
</MonoGameContentBuilderExe>
|
||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
</PropertyGroup>
|
<ReleaseVersion>0.7.0.1</ReleaseVersion>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
<OutputPath>..\bin\Windows\Debug\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;TRACE;WINDOWS</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>..\bin\Windows\Release\</OutputPath>
|
|
||||||
<DefineConstants>TRACE;WINDOWS</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationIcon>Icon.ico</ApplicationIcon>
|
<ApplicationIcon>Icon.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseLinux|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\bin\ReleaseLinux</OutputPath>
|
||||||
|
<DefineConstants>TRACE;LINUX;CLIENT</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugLinux|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\bin\DebugLinux</OutputPath>
|
||||||
|
<DefineConstants>TRACE;LINUX;CLIENT;DEBUG</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseWindows|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\bin\ReleaseWindows</OutputPath>
|
||||||
|
<DefineConstants>TRACE;WINDOWS;CLIENT</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugWindows|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\bin\DebugWindows</OutputPath>
|
||||||
|
<DefineConstants>TRACE;WINDOWS;CLIENT;DEBUG</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="LauncherMain.cs" />
|
<Compile Include="LauncherMain.cs" />
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
|
|||||||
+71
-419
@@ -45,429 +45,78 @@ Global
|
|||||||
Libraries\SharpFont\Source\SharpFontShared\SharpFontShared.projitems*{c293db32-fa42-486d-b128-5a12522fae4e}*SharedItemsImports = 4
|
Libraries\SharpFont\Source\SharpFontShared\SharpFontShared.projitems*{c293db32-fa42-486d-b128-5a12522fae4e}*SharedItemsImports = 4
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Android|Any CPU = Android|Any CPU
|
DebugLinux|x86 = DebugLinux|x86
|
||||||
Android|Mixed Platforms = Android|Mixed Platforms
|
DebugWindows|x86 = DebugWindows|x86
|
||||||
Android|x86 = Android|x86
|
ReleaseLinux|x86 = ReleaseLinux|x86
|
||||||
Debug|Any CPU = Debug|Any CPU
|
ReleaseWindows|x86 = ReleaseWindows|x86
|
||||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
|
||||||
Debug|x86 = Debug|x86
|
Debug|x86 = Debug|x86
|
||||||
iOS|Any CPU = iOS|Any CPU
|
|
||||||
iOS|Mixed Platforms = iOS|Mixed Platforms
|
|
||||||
iOS|x86 = iOS|x86
|
|
||||||
Linux|Any CPU = Linux|Any CPU
|
|
||||||
Linux|Mixed Platforms = Linux|Mixed Platforms
|
|
||||||
Linux|x86 = Linux|x86
|
|
||||||
OSX|Any CPU = OSX|Any CPU
|
|
||||||
OSX|Mixed Platforms = OSX|Mixed Platforms
|
|
||||||
OSX|x86 = OSX|x86
|
|
||||||
PSM|Any CPU = PSM|Any CPU
|
|
||||||
PSM|Mixed Platforms = PSM|Mixed Platforms
|
|
||||||
PSM|x86 = PSM|x86
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
Release|Mixed Platforms = Release|Mixed Platforms
|
|
||||||
Release|x86 = Release|x86
|
Release|x86 = Release|x86
|
||||||
Windows|Any CPU = Windows|Any CPU
|
|
||||||
Windows|Mixed Platforms = Windows|Mixed Platforms
|
|
||||||
Windows|x86 = Windows|x86
|
|
||||||
Windows8|Any CPU = Windows8|Any CPU
|
|
||||||
Windows8|Mixed Platforms = Windows8|Mixed Platforms
|
|
||||||
Windows8|x86 = Windows8|x86
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Android|Any CPU.ActiveCfg = Release|x86
|
{008C0F83-E914-4966-9135-EA885059EDD8}.DebugLinux|x86.ActiveCfg = DebugLinux|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Android|Mixed Platforms.ActiveCfg = Release|x86
|
{008C0F83-E914-4966-9135-EA885059EDD8}.DebugLinux|x86.Build.0 = DebugLinux|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Android|Mixed Platforms.Build.0 = Release|x86
|
{008C0F83-E914-4966-9135-EA885059EDD8}.DebugWindows|x86.ActiveCfg = DebugWindows|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Android|x86.ActiveCfg = Release|x86
|
{008C0F83-E914-4966-9135-EA885059EDD8}.DebugWindows|x86.Build.0 = DebugWindows|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Android|x86.Build.0 = Release|x86
|
{008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Debug|Any CPU.ActiveCfg = Debug|x86
|
{008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseLinux|x86.Build.0 = ReleaseLinux|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
{008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
{008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseWindows|x86.Build.0 = ReleaseWindows|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Debug|x86.ActiveCfg = Debug|x86
|
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.DebugLinux|x86.ActiveCfg = DebugLinux|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Debug|x86.Build.0 = Debug|x86
|
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.DebugLinux|x86.Build.0 = DebugLinux|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.iOS|Any CPU.ActiveCfg = Release|x86
|
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.DebugWindows|x86.ActiveCfg = DebugWindows|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.iOS|Mixed Platforms.ActiveCfg = Release|x86
|
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.DebugWindows|x86.Build.0 = DebugWindows|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.iOS|Mixed Platforms.Build.0 = Release|x86
|
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.iOS|x86.ActiveCfg = Release|x86
|
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.ReleaseLinux|x86.Build.0 = ReleaseLinux|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.iOS|x86.Build.0 = Release|x86
|
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Linux|Any CPU.ActiveCfg = Release|x86
|
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.ReleaseWindows|x86.Build.0 = ReleaseWindows|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Linux|Mixed Platforms.ActiveCfg = Release|x86
|
{85232B20-074D-4723-B0C6-91495391E448}.DebugLinux|x86.ActiveCfg = DebugLinux|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Linux|Mixed Platforms.Build.0 = Release|x86
|
{85232B20-074D-4723-B0C6-91495391E448}.DebugLinux|x86.Build.0 = DebugLinux|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Linux|x86.ActiveCfg = Release|x86
|
{85232B20-074D-4723-B0C6-91495391E448}.DebugWindows|x86.ActiveCfg = DebugWindows|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Linux|x86.Build.0 = Release|x86
|
{85232B20-074D-4723-B0C6-91495391E448}.DebugWindows|x86.Build.0 = DebugWindows|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.OSX|Any CPU.ActiveCfg = Release|x86
|
{85232B20-074D-4723-B0C6-91495391E448}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.OSX|Mixed Platforms.ActiveCfg = Release|x86
|
{85232B20-074D-4723-B0C6-91495391E448}.ReleaseLinux|x86.Build.0 = ReleaseLinux|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.OSX|Mixed Platforms.Build.0 = Release|x86
|
{85232B20-074D-4723-B0C6-91495391E448}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.OSX|x86.ActiveCfg = Release|x86
|
{85232B20-074D-4723-B0C6-91495391E448}.ReleaseWindows|x86.Build.0 = ReleaseWindows|x86
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.OSX|x86.Build.0 = Release|x86
|
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugLinux|x86.ActiveCfg = DebugLinux|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.PSM|Any CPU.ActiveCfg = Release|x86
|
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugLinux|x86.Build.0 = DebugLinux|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.PSM|Mixed Platforms.ActiveCfg = Release|x86
|
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugWindows|x86.ActiveCfg = DebugWindows|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.PSM|Mixed Platforms.Build.0 = Release|x86
|
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugWindows|x86.Build.0 = DebugWindows|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.PSM|x86.ActiveCfg = Release|x86
|
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.PSM|x86.Build.0 = Release|x86
|
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseLinux|x86.Build.0 = ReleaseLinux|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Release|Any CPU.ActiveCfg = Release|x86
|
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseWindows|x86.Build.0 = ReleaseWindows|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Release|Mixed Platforms.Build.0 = Release|x86
|
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugLinux|x86.ActiveCfg = Debug|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Release|x86.ActiveCfg = Release|x86
|
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugLinux|x86.Build.0 = Debug|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Release|x86.Build.0 = Release|x86
|
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugWindows|x86.ActiveCfg = Debug|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Windows|Any CPU.ActiveCfg = Release|x86
|
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugWindows|x86.Build.0 = Debug|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Windows|Mixed Platforms.ActiveCfg = Release|x86
|
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseLinux|x86.ActiveCfg = Release|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Windows|Mixed Platforms.Build.0 = Release|x86
|
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseLinux|x86.Build.0 = Release|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Windows|x86.ActiveCfg = Release|x86
|
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseWindows|x86.ActiveCfg = Release|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Windows|x86.Build.0 = Release|x86
|
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseWindows|x86.Build.0 = Release|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Windows8|Any CPU.ActiveCfg = Release|x86
|
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugLinux|x86.ActiveCfg = Debug|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Windows8|Mixed Platforms.ActiveCfg = Release|x86
|
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugLinux|x86.Build.0 = Debug|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Windows8|Mixed Platforms.Build.0 = Release|x86
|
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugWindows|x86.ActiveCfg = Debug|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Windows8|x86.ActiveCfg = Release|x86
|
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugWindows|x86.Build.0 = Debug|Any CPU
|
||||||
{008C0F83-E914-4966-9135-EA885059EDD8}.Windows8|x86.Build.0 = Release|x86
|
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseLinux|x86.ActiveCfg = Release|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Android|Any CPU.ActiveCfg = Release|x86
|
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseLinux|x86.Build.0 = Release|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Android|Mixed Platforms.ActiveCfg = Release|x86
|
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseWindows|x86.ActiveCfg = Release|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Android|Mixed Platforms.Build.0 = Release|x86
|
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseWindows|x86.Build.0 = Release|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Android|x86.ActiveCfg = Release|x86
|
{C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugLinux|x86.ActiveCfg = Debug|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Android|x86.Build.0 = Release|x86
|
{C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugLinux|x86.Build.0 = Debug|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Debug|Any CPU.ActiveCfg = Debug|x86
|
{C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugWindows|x86.ActiveCfg = Debug|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
{C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugWindows|x86.Build.0 = Debug|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
{C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseLinux|x86.ActiveCfg = Release|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Debug|x86.ActiveCfg = Debug|x86
|
{C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseLinux|x86.Build.0 = Release|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Debug|x86.Build.0 = Debug|x86
|
{C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseWindows|x86.ActiveCfg = Release|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.iOS|Any CPU.ActiveCfg = Release|x86
|
{C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseWindows|x86.Build.0 = Release|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.iOS|Mixed Platforms.ActiveCfg = Release|x86
|
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugLinux|x86.ActiveCfg = Debug|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.iOS|Mixed Platforms.Build.0 = Release|x86
|
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugLinux|x86.Build.0 = Debug|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.iOS|x86.ActiveCfg = Release|x86
|
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugWindows|x86.ActiveCfg = Debug|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.iOS|x86.Build.0 = Release|x86
|
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugWindows|x86.Build.0 = Debug|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Linux|Any CPU.ActiveCfg = Release|x86
|
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseLinux|x86.ActiveCfg = Release|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Linux|Mixed Platforms.ActiveCfg = Release|x86
|
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseLinux|x86.Build.0 = Release|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Linux|Mixed Platforms.Build.0 = Release|x86
|
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseWindows|x86.ActiveCfg = Release|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Linux|x86.ActiveCfg = Release|x86
|
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseWindows|x86.Build.0 = Release|Any CPU
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Linux|x86.Build.0 = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.OSX|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.OSX|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.OSX|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.OSX|x86.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.OSX|x86.Build.0 = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.PSM|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.PSM|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.PSM|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.PSM|x86.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.PSM|x86.Build.0 = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Release|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Release|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Release|x86.Build.0 = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Windows|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Windows|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Windows|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Windows|x86.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Windows|x86.Build.0 = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Windows8|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Windows8|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Windows8|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Windows8|x86.ActiveCfg = Release|x86
|
|
||||||
{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Windows8|x86.Build.0 = Release|x86
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Android|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Android|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Android|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Android|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Android|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.iOS|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.iOS|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.iOS|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.iOS|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.iOS|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Linux|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Linux|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Linux|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Linux|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Linux|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.OSX|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.OSX|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.OSX|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.OSX|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.OSX|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.PSM|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.PSM|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.PSM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.PSM|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.PSM|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Windows|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Windows|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Windows|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Windows|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Windows|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Windows8|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Windows8|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Windows8|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Windows8|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Windows8|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Android|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Android|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Android|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Android|x86.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Android|x86.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Debug|Any CPU.ActiveCfg = Debug|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Debug|x86.ActiveCfg = Debug|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Debug|x86.Build.0 = Debug|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.iOS|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.iOS|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.iOS|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.iOS|x86.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.iOS|x86.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Linux|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Linux|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Linux|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Linux|x86.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Linux|x86.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.OSX|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.OSX|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.OSX|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.OSX|x86.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.OSX|x86.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.PSM|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.PSM|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.PSM|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.PSM|x86.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.PSM|x86.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Release|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Release|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Release|x86.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Windows|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Windows|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Windows|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Windows|x86.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Windows|x86.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Windows8|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Windows8|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Windows8|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Windows8|x86.ActiveCfg = Release|x86
|
|
||||||
{251AAFE1-F24B-4837-9128-9D04FCBFD528}.Windows8|x86.Build.0 = Release|x86
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Android|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Android|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Android|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Android|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Android|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Android|x86.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.iOS|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.iOS|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.iOS|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.iOS|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.iOS|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.iOS|x86.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Linux|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Linux|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Linux|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Linux|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Linux|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Linux|x86.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.OSX|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.OSX|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.OSX|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.OSX|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.OSX|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.OSX|x86.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.PSM|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.PSM|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.PSM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.PSM|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.PSM|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.PSM|x86.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Windows|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Windows|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Windows|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Windows|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Windows|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Windows|x86.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Windows8|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Windows8|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Windows8|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Windows8|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Windows8|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Windows8|x86.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Android|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Android|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Android|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Android|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Android|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Android|x86.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.iOS|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.iOS|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.iOS|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.iOS|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.iOS|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.iOS|x86.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Linux|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Linux|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Linux|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Linux|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Linux|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Linux|x86.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.OSX|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.OSX|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.OSX|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.OSX|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.OSX|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.OSX|x86.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.PSM|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.PSM|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.PSM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.PSM|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.PSM|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.PSM|x86.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Windows|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Windows|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Windows|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Windows|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Windows|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Windows|x86.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Windows8|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Windows8|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Windows8|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Windows8|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Windows8|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{C293DB32-FA42-486D-B128-5A12522FAE4E}.Windows8|x86.Build.0 = Release|Any CPU
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Android|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Android|Any CPU.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Android|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Android|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Android|x86.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Android|x86.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Debug|Any CPU.ActiveCfg = Debug|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Debug|x86.ActiveCfg = Debug|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Debug|x86.Build.0 = Debug|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.iOS|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.iOS|Any CPU.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.iOS|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.iOS|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.iOS|x86.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.iOS|x86.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Linux|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Linux|Any CPU.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Linux|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Linux|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Linux|x86.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Linux|x86.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.OSX|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.OSX|Any CPU.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.OSX|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.OSX|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.OSX|x86.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.OSX|x86.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.PSM|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.PSM|Any CPU.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.PSM|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.PSM|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.PSM|x86.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.PSM|x86.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Release|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Release|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Release|x86.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Windows|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Windows|Any CPU.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Windows|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Windows|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Windows|x86.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Windows|x86.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Windows8|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Windows8|Any CPU.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Windows8|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Windows8|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Windows8|x86.ActiveCfg = Release|x86
|
|
||||||
{85232B20-074D-4723-B0C6-91495391E448}.Windows8|x86.Build.0 = Release|x86
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Android|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Android|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Android|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Android|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Android|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Android|x86.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.iOS|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.iOS|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.iOS|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.iOS|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.iOS|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.iOS|x86.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Linux|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Linux|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Linux|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Linux|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Linux|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Linux|x86.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.OSX|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.OSX|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.OSX|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.OSX|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.OSX|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.OSX|x86.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.PSM|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.PSM|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.PSM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.PSM|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.PSM|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.PSM|x86.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Windows|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Windows|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Windows|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Windows|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Windows|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Windows|x86.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Windows8|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Windows8|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Windows8|Mixed Platforms.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Windows8|Mixed Platforms.Build.0 = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Windows8|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A}.Windows8|x86.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@@ -484,4 +133,7 @@ Global
|
|||||||
{561357C2-DB28-4E01-B275-6BF545F70491} = {F35DF9BF-0BED-4FEF-A51C-DD83C531882F}
|
{561357C2-DB28-4E01-B275-6BF545F70491} = {F35DF9BF-0BED-4FEF-A51C-DD83C531882F}
|
||||||
{A4610E4C-DD34-428B-BABB-779CA0B5993A} = {DE36F45F-F09E-4719-B953-00D148F7722A}
|
{A4610E4C-DD34-428B-BABB-779CA0B5993A} = {DE36F45F-F09E-4719-B953-00D148F7722A}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
GlobalSection(MonoDevelopProperties) = preSolution
|
||||||
|
version = 0.7.0.1
|
||||||
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">ReleaseWindows</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<ProductVersion>8.0.30703</ProductVersion>
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
<ProjectGuid>{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}</ProjectGuid>
|
<ProjectGuid>{0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}</ProjectGuid>
|
||||||
@@ -22,28 +22,7 @@
|
|||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
<TargetFrameworkProfile>
|
<TargetFrameworkProfile>
|
||||||
</TargetFrameworkProfile>
|
</TargetFrameworkProfile>
|
||||||
</PropertyGroup>
|
<ReleaseVersion>0.7.0.1</ReleaseVersion>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Windows\Debug\</OutputPath>
|
|
||||||
<DefineConstants>TRACE;DEBUG;WINDOWS</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\WindowsGL\Release\</OutputPath>
|
|
||||||
<DefineConstants>TRACE;WINDOWS</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
|
||||||
<DocumentationFile>bin\WindowsGL\Release\FarseerPhysics MonoGame.xml</DocumentationFile>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationIcon>
|
<ApplicationIcon>
|
||||||
@@ -52,6 +31,38 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<StartupObject />
|
<StartupObject />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseWindows|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>ReleaseWindows\</OutputPath>
|
||||||
|
<DefineConstants>TRACE;WINDOWS</DefineConstants>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseLinux|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>ReleaseLinux\</OutputPath>
|
||||||
|
<DefineConstants>TRACE;LINUX</DefineConstants>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugWindows|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<OutputPath>DebugWindows\</OutputPath>
|
||||||
|
<DefineConstants>TRACE;DEBUG;WINDOWS</DefineConstants>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugLinux|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>DebugLinux\</OutputPath>
|
||||||
|
<DefineConstants>TRACE;DEBUG;LINUX</DefineConstants>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Collision\Collision.cs" />
|
<Compile Include="Collision\Collision.cs" />
|
||||||
<Compile Include="Collision\Distance.cs" />
|
<Compile Include="Collision\Distance.cs" />
|
||||||
@@ -166,13 +177,20 @@
|
|||||||
<Compile Include="Settings.cs" />
|
<Compile Include="Settings.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="MonoGame.Framework, Version=3.5.1.1679, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>C:\Program Files (x86)\MonoGame\v3.0\Assemblies\Windows\MonoGame.Framework.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Condition="$(DefineConstants.Contains('WINDOWS'))" Include="MonoGame.Framework.WindowsDX">
|
||||||
|
<HintPath>..\NuGet\MonoGame.Framework.WindowsDX.3.6.0.1625\lib\net40\MonoGame.Framework.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Condition="$(DefineConstants.Contains('WINDOWS'))" Include="SharpDX">
|
||||||
|
<HintPath>..\NuGet\SharpDX.4.0.1\lib\net45\SharpDX.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Condition="$(DefineConstants.Contains('LINUX'))" Include="MonoGame.Framework.DesktopGL">
|
||||||
|
<HintPath>..\NuGet\MonoGame.Framework.DesktopGL.3.6.0.1625\lib\net40\MonoGame.Framework.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
|
<ReleaseVersion>0.7.0.1</ReleaseVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
@@ -67,7 +68,6 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core">
|
<Reference Include="System.Core">
|
||||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
|
<ReleaseVersion>0.7.0.1</ReleaseVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
|
<ReleaseVersion>0.7.0.1</ReleaseVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
<AssemblyName>SharpFont</AssemblyName>
|
<AssemblyName>SharpFont</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<ReleaseVersion>0.7.0.1</ReleaseVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>2e4773b7-961a-4328-9d77-9749f9071ca2</ProjectGuid>
|
<ProjectGuid>2e4773b7-961a-4328-9d77-9749f9071ca2</ProjectGuid>
|
||||||
|
<ReleaseVersion>0.7.0.1</ReleaseVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
|
||||||
|
|||||||
+1
-1
@@ -7,6 +7,6 @@
|
|||||||
<add key="Microsoft and .NET" value="true" />
|
<add key="Microsoft and .NET" value="true" />
|
||||||
</disabledPackageSources>
|
</disabledPackageSources>
|
||||||
<config>
|
<config>
|
||||||
<add key="repositoryPath" value=".\Libraries\NuGet" />
|
<add key="repositoryPath" value="Libraries/NuGet" />
|
||||||
</config>
|
</config>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
@@ -13,5 +13,9 @@ Before downloading the source code, please read the [EULA](EULA.txt).
|
|||||||
**Wiki:** http://barotrauma.gamepedia.com/Barotrauma_Wiki
|
**Wiki:** http://barotrauma.gamepedia.com/Barotrauma_Wiki
|
||||||
|
|
||||||
## Prerequisities:
|
## Prerequisities:
|
||||||
|
### Windows
|
||||||
- [Visual Studio](https://www.visualstudio.com/vs/community/) with C# 6.0 support (VS 2015 or later recommended)
|
- [Visual Studio](https://www.visualstudio.com/vs/community/) with C# 6.0 support (VS 2015 or later recommended)
|
||||||
- [MonoGame 3.6](http://www.monogame.net/downloads/)
|
### Linux
|
||||||
|
- [Mono 5.4](www.mono-project.com)
|
||||||
|
- [MonoDevelop 6](http://www.monodevelop.com/)
|
||||||
|
- *Note: See http://community.monogame.net/t/installing-monogame-3-6-on-linux/8811 to get this version of MonoDevelop if your distro's package distribution suite is outdated.*
|
||||||
|
|||||||
Reference in New Issue
Block a user