Reduce code duplication by extracting a common class to deal with spatial partitioning of actors, and use some (cached) delegates to reduce duplication further without affecting performance too much. Speed up updates and removal of actors by caching their location so we only need to update or remove them from bins they are actually in (typically very few), compared to having to check every bin for removals which is much more work in comparison. Speed up checking for actors inside a region by checking if items are located entirely within the bin they are located in. If so, we don't need to add them to the hash-set for de-duplication purposes which is fairly expensive.
354 lines
16 KiB
XML
354 lines
16 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
|
<PropertyGroup>
|
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
|
<ProductVersion>9.0.30729</ProductVersion>
|
|
<SchemaVersion>2.0</SchemaVersion>
|
|
<ProjectGuid>{0DFB103F-2962-400F-8C6D-E2C28CCBA633}</ProjectGuid>
|
|
<OutputType>WinExe</OutputType>
|
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
<RootNamespace>OpenRA</RootNamespace>
|
|
<AssemblyName>OpenRA.Game</AssemblyName>
|
|
<FileUpgradeFlags>
|
|
</FileUpgradeFlags>
|
|
<OldToolsVersion>3.5</OldToolsVersion>
|
|
<UpgradeBackupLocation>
|
|
</UpgradeBackupLocation>
|
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
|
<ApplicationIcon>OpenRA.ico</ApplicationIcon>
|
|
<PublishUrl>publish\</PublishUrl>
|
|
<Install>true</Install>
|
|
<InstallFrom>Disk</InstallFrom>
|
|
<UpdateEnabled>false</UpdateEnabled>
|
|
<UpdateMode>Foreground</UpdateMode>
|
|
<UpdateInterval>7</UpdateInterval>
|
|
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
|
<UpdatePeriodically>false</UpdatePeriodically>
|
|
<UpdateRequired>false</UpdateRequired>
|
|
<MapFileExtensions>true</MapFileExtensions>
|
|
<ApplicationRevision>0</ApplicationRevision>
|
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
|
<UseApplicationTrust>false</UseApplicationTrust>
|
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
|
<DebugSymbols>true</DebugSymbols>
|
|
<DebugType>full</DebugType>
|
|
<OutputPath>..\</OutputPath>
|
|
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
|
<PlatformTarget>x86</PlatformTarget>
|
|
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<Reference Include="System" />
|
|
<Reference Include="System.Core" />
|
|
<Reference Include="System.Data" />
|
|
<Reference Include="System.Drawing" />
|
|
<Reference Include="System.Xml" />
|
|
<Reference Include="SharpFont">
|
|
<SpecificVersion>False</SpecificVersion>
|
|
<HintPath>..\thirdparty\SharpFont.dll</HintPath>
|
|
<Private>False</Private>
|
|
</Reference>
|
|
<Reference Include="Mono.Nat">
|
|
<SpecificVersion>False</SpecificVersion>
|
|
<Private>False</Private>
|
|
<Package>mono.nat</Package>
|
|
<HintPath>..\thirdparty\Mono.Nat.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="Eluant">
|
|
<HintPath>..\thirdparty\Eluant.dll</HintPath>
|
|
<Private>False</Private>
|
|
</Reference>
|
|
<Reference Include="ICSharpCode.SharpZipLib">
|
|
<HintPath>..\thirdparty\ICSharpCode.SharpZipLib.dll</HintPath>
|
|
<Private>False</Private>
|
|
</Reference>
|
|
<Reference Include="MaxMind.GeoIP2">
|
|
<HintPath>..\thirdparty\MaxMind.GeoIP2.dll</HintPath>
|
|
<Private>False</Private>
|
|
</Reference>
|
|
<Reference Include="MaxMind.Db">
|
|
<HintPath>..\thirdparty\MaxMind.Db.dll</HintPath>
|
|
<Private>False</Private>
|
|
</Reference>
|
|
<Reference Include="SDL2-CS">
|
|
<HintPath>..\thirdparty\SDL2-CS.dll</HintPath>
|
|
<Private>False</Private>
|
|
</Reference>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Compile Include="Activities\Activity.cs" />
|
|
<Compile Include="Activities\CallFunc.cs" />
|
|
<Compile Include="Actor.cs" />
|
|
<Compile Include="CacheStorage.cs" />
|
|
<Compile Include="FileSystem\IdxEntry.cs" />
|
|
<Compile Include="LogProxy.cs" />
|
|
<Compile Include="FileFormats\IdxReader.cs" />
|
|
<Compile Include="FileSystem\BagFile.cs" />
|
|
<Compile Include="MPos.cs" />
|
|
<Compile Include="GameRules\Warhead.cs" />
|
|
<Compile Include="Graphics\QuadRenderer.cs" />
|
|
<Compile Include="Download.cs" />
|
|
<Compile Include="Effects\AsyncAction.cs" />
|
|
<Compile Include="Effects\DelayedAction.cs" />
|
|
<Compile Include="Effects\FlashTarget.cs" />
|
|
<Compile Include="Effects\IEffect.cs" />
|
|
<Compile Include="Game.cs" />
|
|
<Compile Include="GameRules\ActorInfo.cs" />
|
|
<Compile Include="GameRules\MusicInfo.cs" />
|
|
<Compile Include="GameRules\SoundInfo.cs" />
|
|
<Compile Include="GameRules\WeaponInfo.cs" />
|
|
<Compile Include="Graphics\Animation.cs" />
|
|
<Compile Include="Graphics\AnimationWithOffset.cs" />
|
|
<Compile Include="Graphics\ChromeProvider.cs" />
|
|
<Compile Include="Graphics\CursorProvider.cs" />
|
|
<Compile Include="Graphics\CursorSequence.cs" />
|
|
<Compile Include="Graphics\HardwarePalette.cs" />
|
|
<Compile Include="Graphics\LineRenderer.cs" />
|
|
<Compile Include="Graphics\MappedImage.cs" />
|
|
<Compile Include="Graphics\Minimap.cs" />
|
|
<Compile Include="Graphics\Renderer.cs" />
|
|
<Compile Include="Graphics\SequenceProvider.cs" />
|
|
<Compile Include="Graphics\Sheet.cs" />
|
|
<Compile Include="Graphics\SheetBuilder.cs" />
|
|
<Compile Include="Graphics\Sprite.cs" />
|
|
<Compile Include="Graphics\SpriteFont.cs" />
|
|
<Compile Include="Graphics\SpriteLoader.cs" />
|
|
<Compile Include="Graphics\SpriteRenderer.cs" />
|
|
<Compile Include="Graphics\TerrainRenderer.cs" />
|
|
<Compile Include="Graphics\Util.cs" />
|
|
<Compile Include="Graphics\Viewport.cs" />
|
|
<Compile Include="Graphics\WorldRenderer.cs" />
|
|
<Compile Include="Group.cs" />
|
|
<Compile Include="IUtilityCommand.cs" />
|
|
<Compile Include="ModData.cs" />
|
|
<Compile Include="Network\Connection.cs" />
|
|
<Compile Include="Network\FrameData.cs" />
|
|
<Compile Include="Network\GameServer.cs" />
|
|
<Compile Include="Network\Handshake.cs" />
|
|
<Compile Include="Network\Order.cs" />
|
|
<Compile Include="Network\OrderIO.cs" />
|
|
<Compile Include="Network\OrderManager.cs" />
|
|
<Compile Include="Network\ReplayConnection.cs" />
|
|
<Compile Include="Network\Session.cs" />
|
|
<Compile Include="Network\SyncReport.cs" />
|
|
<Compile Include="Network\UnitOrders.cs" />
|
|
<Compile Include="ObjectCreator.cs" />
|
|
<Compile Include="Orders\GenericSelectTarget.cs" />
|
|
<Compile Include="Orders\IOrderGenerator.cs" />
|
|
<Compile Include="Orders\UnitOrderGenerator.cs" />
|
|
<Compile Include="Player.cs" />
|
|
<Compile Include="Primitives\MergedStream.cs" />
|
|
<Compile Include="Primitives\SpatiallyPartitioned.cs" />
|
|
<Compile Include="Selection.cs" />
|
|
<Compile Include="Server\Connection.cs" />
|
|
<Compile Include="Server\Exts.cs" />
|
|
<Compile Include="Server\ProtocolVersion.cs" />
|
|
<Compile Include="Server\Server.cs" />
|
|
<Compile Include="Server\ServerOrder.cs" />
|
|
<Compile Include="Server\TraitInterfaces.cs" />
|
|
<Compile Include="Support\Arguments.cs" />
|
|
<Compile Include="Support\PerfHistory.cs" />
|
|
<Compile Include="Support\Program.cs" />
|
|
<Compile Include="Sync.cs" />
|
|
<Compile Include="TraitDictionary.cs" />
|
|
<Compile Include="Traits\Armor.cs" />
|
|
<Compile Include="Traits\CreatesShroud.cs" />
|
|
<Compile Include="Traits\DrawLineToTarget.cs" />
|
|
<Compile Include="Traits\EditorAppearance.cs" />
|
|
<Compile Include="Traits\EditorTilesetFilter.cs" />
|
|
<Compile Include="Traits\Health.cs" />
|
|
<Compile Include="Traits\LintAttributes.cs" />
|
|
<Compile Include="Traits\RejectsOrders.cs" />
|
|
<Compile Include="Traits\Player\DeveloperMode.cs" />
|
|
<Compile Include="Traits\Player\PlayerResources.cs" />
|
|
<Compile Include="Traits\RevealsShroud.cs" />
|
|
<Compile Include="Traits\Selectable.cs" />
|
|
<Compile Include="Traits\SelectionDecorations.cs" />
|
|
<Compile Include="Traits\Target.cs" />
|
|
<Compile Include="Traits\TraitsInterfaces.cs" />
|
|
<Compile Include="Traits\Util.cs" />
|
|
<Compile Include="Traits\ValidateOrder.cs" />
|
|
<Compile Include="Traits\World\Country.cs" />
|
|
<Compile Include="Traits\World\ResourceType.cs" />
|
|
<Compile Include="Traits\World\ScreenShaker.cs" />
|
|
<Compile Include="Traits\World\Shroud.cs" />
|
|
<Compile Include="World.cs" />
|
|
<Compile Include="WorldUtils.cs" />
|
|
<Compile Include="Network\ReplayRecorderConnection.cs" />
|
|
<Compile Include="Traits\DebugPauseState.cs" />
|
|
<Compile Include="Network\UPnP.cs" />
|
|
<Compile Include="Graphics\Renderable.cs" />
|
|
<Compile Include="Graphics\Voxel.cs" />
|
|
<Compile Include="Graphics\VoxelRenderer.cs" />
|
|
<Compile Include="Graphics\VoxelLoader.cs" />
|
|
<Compile Include="Graphics\VoxelProvider.cs" />
|
|
<Compile Include="Traits\BodyOrientation.cs" />
|
|
<Compile Include="Graphics\VoxelAnimation.cs" />
|
|
<Compile Include="Traits\Player\FrozenActorLayer.cs" />
|
|
<Compile Include="Graphics\Theater.cs" />
|
|
<Compile Include="Traits\Player\PlayerColorPalette.cs" />
|
|
<Compile Include="Traits\Player\PlayerHighlightPalette.cs" />
|
|
<Compile Include="Traits\World\ScreenMap.cs" />
|
|
<Compile Include="Traits\World\ActorMap.cs" />
|
|
<Compile Include="Scripting\ScriptContext.cs" />
|
|
<Compile Include="Scripting\ScriptActorInterface.cs" />
|
|
<Compile Include="Scripting\ScriptObjectWrapper.cs" />
|
|
<Compile Include="Scripting\ScriptTypes.cs" />
|
|
<Compile Include="Scripting\ScriptMemberWrapper.cs" />
|
|
<Compile Include="Scripting\ScriptMemberExts.cs" />
|
|
<Compile Include="Scripting\ScriptPlayerInterface.cs" />
|
|
<Compile Include="Traits\Player\FixedColorPalette.cs" />
|
|
<Compile Include="Primitives\ReadOnlyDictionary.cs" />
|
|
<Compile Include="Primitives\ReadOnlyList.cs" />
|
|
<Compile Include="ModMetadata.cs" />
|
|
<Compile Include="GameRules\Ruleset.cs" />
|
|
<Compile Include="GameRules\RulesetCache.cs" />
|
|
<Compile Include="Support\MersenneTwister.cs" />
|
|
<Compile Include="GameInformation.cs" />
|
|
<Compile Include="Map\CellLayer.cs" />
|
|
<Compile Include="Map\CellRegion.cs" />
|
|
<Compile Include="Input\IInputHandler.cs" />
|
|
<Compile Include="Input\InputHandler.cs" />
|
|
<Compile Include="Input\Keycode.cs" />
|
|
<Compile Include="Input\Hotkey.cs" />
|
|
<Compile Include="Graphics\IGraphicsDevice.cs" />
|
|
<Compile Include="Sound\Sound.cs" />
|
|
<Compile Include="Sound\SoundDevice.cs" />
|
|
<Compile Include="Sound\OpenAlSound.cs" />
|
|
<Compile Include="Sound\NullSound.cs" />
|
|
<Compile Include="Effects\SpriteEffect.cs" />
|
|
<Compile Include="Graphics\SelectionBoxRenderable.cs" />
|
|
<Compile Include="Graphics\SelectionBarsRenderable.cs" />
|
|
<Compile Include="Graphics\TargetLineRenderable.cs" />
|
|
<Compile Include="Graphics\UISpriteRenderable.cs" />
|
|
<Compile Include="GameRules\DamageWarhead.cs" />
|
|
<Compile Include="Graphics\SoftwareCursor.cs" />
|
|
<Compile Include="Graphics\HardwareCursor.cs" />
|
|
<Compile Include="Support\PerfItem.cs" />
|
|
<Compile Include="Support\PerfSample.cs" />
|
|
<Compile Include="Graphics\SpriteRenderable.cs" />
|
|
<Compile Include="Widgets\Widget.cs" />
|
|
<Compile Include="Widgets\RootWidget.cs" />
|
|
<Compile Include="Widgets\WidgetLoader.cs" />
|
|
<Compile Include="Widgets\ChromeMetrics.cs" />
|
|
<Compile Include="Widgets\WidgetUtils.cs" />
|
|
<Compile Include="Widgets\WorldInteractionControllerWidget.cs" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Compile Include="FileSystem\D2kSoundResources.cs" />
|
|
<Compile Include="FileSystem\Folder.cs" />
|
|
<Compile Include="FileSystem\InstallShieldPackage.cs" />
|
|
<Compile Include="FileSystem\MixFile.cs" />
|
|
<Compile Include="FileSystem\Pak.cs" />
|
|
<Compile Include="FileSystem\ZipFile.cs" />
|
|
<Compile Include="FileSystem\BigFile.cs" />
|
|
<Compile Include="Map\PlayerReference.cs" />
|
|
<Compile Include="Map\SmudgeReference.cs" />
|
|
<Compile Include="Map\TileReference.cs" />
|
|
<Compile Include="Map\TileSet.cs" />
|
|
<Compile Include="FieldLoader.cs" />
|
|
<Compile Include="FieldSaver.cs" />
|
|
<Compile Include="Manifest.cs" />
|
|
<Compile Include="Graphics\Vertex.cs" />
|
|
<Compile Include="FileFormats\ImaAdpcmLoader.cs" />
|
|
<Compile Include="FileFormats\AudLoader.cs" />
|
|
<Compile Include="FileFormats\Blast.cs" />
|
|
<Compile Include="FileFormats\Blowfish.cs" />
|
|
<Compile Include="FileFormats\BlowfishKeyProvider.cs" />
|
|
<Compile Include="FileFormats\CRC32.cs" />
|
|
<Compile Include="FileFormats\Format2.cs" />
|
|
<Compile Include="FileFormats\Format40.cs" />
|
|
<Compile Include="FileFormats\Format80.cs" />
|
|
<Compile Include="FileFormats\IniFile.cs" />
|
|
<Compile Include="FileFormats\WavLoader.cs" />
|
|
<Compile Include="FileFormats\XccGlobalDatabase.cs" />
|
|
<Compile Include="FileFormats\XccLocalDatabase.cs" />
|
|
<Compile Include="FileFormats\HvaReader.cs" />
|
|
<Compile Include="FileFormats\PngLoader.cs" />
|
|
<Compile Include="FileFormats\VqaReader.cs" />
|
|
<Compile Include="FileFormats\VxlReader.cs" />
|
|
<Compile Include="Primitives\ActionQueue.cs" />
|
|
<Compile Include="Primitives\Bits.cs" />
|
|
<Compile Include="Primitives\Cache.cs" />
|
|
<Compile Include="Primitives\DisposableAction.cs" />
|
|
<Compile Include="Primitives\float2.cs" />
|
|
<Compile Include="Primitives\int2.cs" />
|
|
<Compile Include="Primitives\IObservableCollection.cs" />
|
|
<Compile Include="Primitives\ObservableCollection.cs" />
|
|
<Compile Include="Primitives\ObservableDictionary.cs" />
|
|
<Compile Include="Primitives\Pair.cs" />
|
|
<Compile Include="Primitives\PriorityQueue.cs" />
|
|
<Compile Include="Support\Log.cs" />
|
|
<Compile Include="Support\PerfTimer.cs" />
|
|
<Compile Include="Exts.cs" />
|
|
<Compile Include="MiniYaml.cs" />
|
|
<Compile Include="Platform.cs" />
|
|
<Compile Include="StreamExts.cs" />
|
|
<Compile Include="Map\Map.cs" />
|
|
<Compile Include="Map\MapCache.cs" />
|
|
<Compile Include="Map\MapPreview.cs" />
|
|
<Compile Include="Graphics\HSLColor.cs" />
|
|
<Compile Include="FileSystem\PackageEntry.cs" />
|
|
<Compile Include="CPos.cs" />
|
|
<Compile Include="CVec.cs" />
|
|
<Compile Include="WAngle.cs" />
|
|
<Compile Include="WPos.cs" />
|
|
<Compile Include="WRange.cs" />
|
|
<Compile Include="WRot.cs" />
|
|
<Compile Include="WVec.cs" />
|
|
<Compile Include="Primitives\TypeDictionary.cs" />
|
|
<Compile Include="Map\ActorInitializer.cs" />
|
|
<Compile Include="Map\ActorReference.cs" />
|
|
<Compile Include="Support\Evaluator.cs" />
|
|
<Compile Include="Settings.cs" />
|
|
<Compile Include="Graphics\PlayerColorRemap.cs" />
|
|
<Compile Include="Graphics\Palette.cs" />
|
|
<Compile Include="FileSystem\GlobalFileSystem.cs" />
|
|
<Compile Include="FileFormats\ReplayMetadata.cs" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
|
<Visible>False</Visible>
|
|
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
|
<Install>false</Install>
|
|
</BootstrapperPackage>
|
|
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
|
|
<Visible>False</Visible>
|
|
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
|
|
<Install>true</Install>
|
|
</BootstrapperPackage>
|
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
|
|
<Visible>False</Visible>
|
|
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
|
|
<Install>false</Install>
|
|
</BootstrapperPackage>
|
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
|
|
<Visible>False</Visible>
|
|
<ProductName>.NET Framework 3.5</ProductName>
|
|
<Install>false</Install>
|
|
</BootstrapperPackage>
|
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
|
<Visible>False</Visible>
|
|
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
|
<Install>false</Install>
|
|
</BootstrapperPackage>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Content Include="OpenRA.ico" />
|
|
</ItemGroup>
|
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
|
Other similar extension points exist, see Microsoft.Common.targets.
|
|
<Target Name="BeforeBuild">
|
|
</Target>
|
|
<Target Name="AfterBuild">
|
|
</Target>
|
|
-->
|
|
<ItemGroup />
|
|
</Project>
|