generated from sigonasr2/CPlusPlusProjectTemplate
parent
b88c08261f
commit
5e81a2ce8f
@ -0,0 +1,438 @@ |
||||
# Created by https://www.toptal.com/developers/gitignore/api/visualstudio,c++ |
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=visualstudio,c++ |
||||
|
||||
### C++ ### |
||||
# Prerequisites |
||||
*.d |
||||
*.ini |
||||
|
||||
# Compiled Object files |
||||
*.slo |
||||
*.lo |
||||
*.o |
||||
*.obj |
||||
|
||||
# Precompiled Headers |
||||
*.gch |
||||
*.pch |
||||
|
||||
# Compiled Dynamic libraries |
||||
*.so |
||||
*.dylib |
||||
*.dll |
||||
|
||||
# Fortran module files |
||||
*.mod |
||||
*.smod |
||||
|
||||
# Compiled Static libraries |
||||
*.lai |
||||
*.la |
||||
*.a |
||||
*.lib |
||||
|
||||
# Executables |
||||
*.exe |
||||
*.out |
||||
*.app |
||||
|
||||
### VisualStudio ### |
||||
## Ignore Visual Studio temporary files, build results, and |
||||
## files generated by popular Visual Studio add-ons. |
||||
## |
||||
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore |
||||
|
||||
# User-specific files |
||||
*.rsuser |
||||
*.suo |
||||
*.user |
||||
*.userosscache |
||||
*.sln.docstates |
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio) |
||||
*.userprefs |
||||
|
||||
# Mono auto generated files |
||||
mono_crash.* |
||||
|
||||
# Build results |
||||
[Dd]ebug/ |
||||
[Dd]ebugPublic/ |
||||
[Rr]elease/ |
||||
[Rr]eleases/ |
||||
x64/ |
||||
x86/ |
||||
[Ww][Ii][Nn]32/ |
||||
[Aa][Rr][Mm]/ |
||||
[Aa][Rr][Mm]64/ |
||||
bld/ |
||||
[Bb]in/ |
||||
[Oo]bj/ |
||||
[Ll]og/ |
||||
[Ll]ogs/ |
||||
|
||||
# Visual Studio 2015/2017 cache/options directory |
||||
.vs/ |
||||
# Uncomment if you have tasks that create the project's static files in wwwroot |
||||
#wwwroot/ |
||||
|
||||
# Visual Studio 2017 auto generated files |
||||
Generated\ Files/ |
||||
|
||||
# MSTest test Results |
||||
[Tt]est[Rr]esult*/ |
||||
[Bb]uild[Ll]og.* |
||||
|
||||
# NUnit |
||||
*.VisualState.xml |
||||
TestResult.xml |
||||
nunit-*.xml |
||||
|
||||
# Build Results of an ATL Project |
||||
[Dd]ebugPS/ |
||||
[Rr]eleasePS/ |
||||
dlldata.c |
||||
|
||||
# Benchmark Results |
||||
BenchmarkDotNet.Artifacts/ |
||||
|
||||
# .NET Core |
||||
project.lock.json |
||||
project.fragment.lock.json |
||||
artifacts/ |
||||
|
||||
# ASP.NET Scaffolding |
||||
ScaffoldingReadMe.txt |
||||
|
||||
# StyleCop |
||||
StyleCopReport.xml |
||||
|
||||
# Files built by Visual Studio |
||||
*_i.c |
||||
*_p.c |
||||
*_h.h |
||||
*.ilk |
||||
*.meta |
||||
*.iobj |
||||
*.pdb |
||||
*.ipdb |
||||
*.pgc |
||||
*.pgd |
||||
*.rsp |
||||
*.sbr |
||||
*.tlb |
||||
*.tli |
||||
*.tlh |
||||
*.tmp |
||||
*.tmp_proj |
||||
*_wpftmp.csproj |
||||
*.log |
||||
*.tlog |
||||
*.vspscc |
||||
*.vssscc |
||||
.builds |
||||
*.pidb |
||||
*.svclog |
||||
*.scc |
||||
|
||||
# Chutzpah Test files |
||||
_Chutzpah* |
||||
|
||||
# Visual C++ cache files |
||||
ipch/ |
||||
*.aps |
||||
*.ncb |
||||
*.opendb |
||||
*.opensdf |
||||
*.sdf |
||||
*.cachefile |
||||
*.VC.db |
||||
*.VC.VC.opendb |
||||
|
||||
# Visual Studio profiler |
||||
*.psess |
||||
*.vsp |
||||
*.vspx |
||||
*.sap |
||||
|
||||
# Visual Studio Trace Files |
||||
*.e2e |
||||
|
||||
# TFS 2012 Local Workspace |
||||
$tf/ |
||||
|
||||
# Guidance Automation Toolkit |
||||
*.gpState |
||||
|
||||
# ReSharper is a .NET coding add-in |
||||
_ReSharper*/ |
||||
*.[Rr]e[Ss]harper |
||||
*.DotSettings.user |
||||
|
||||
# TeamCity is a build add-in |
||||
_TeamCity* |
||||
|
||||
# DotCover is a Code Coverage Tool |
||||
*.dotCover |
||||
|
||||
# AxoCover is a Code Coverage Tool |
||||
.axoCover/* |
||||
!.axoCover/settings.json |
||||
|
||||
# Coverlet is a free, cross platform Code Coverage Tool |
||||
coverage*.json |
||||
coverage*.xml |
||||
coverage*.info |
||||
|
||||
# Visual Studio code coverage results |
||||
*.coverage |
||||
*.coveragexml |
||||
|
||||
# NCrunch |
||||
_NCrunch_* |
||||
.*crunch*.local.xml |
||||
nCrunchTemp_* |
||||
|
||||
# MightyMoose |
||||
*.mm.* |
||||
AutoTest.Net/ |
||||
|
||||
# Web workbench (sass) |
||||
.sass-cache/ |
||||
|
||||
# Installshield output folder |
||||
[Ee]xpress/ |
||||
|
||||
# DocProject is a documentation generator add-in |
||||
DocProject/buildhelp/ |
||||
DocProject/Help/*.HxT |
||||
DocProject/Help/*.HxC |
||||
DocProject/Help/*.hhc |
||||
DocProject/Help/*.hhk |
||||
DocProject/Help/*.hhp |
||||
DocProject/Help/Html2 |
||||
DocProject/Help/html |
||||
|
||||
# Click-Once directory |
||||
publish/ |
||||
|
||||
# Publish Web Output |
||||
*.[Pp]ublish.xml |
||||
*.azurePubxml |
||||
# Note: Comment the next line if you want to checkin your web deploy settings, |
||||
# but database connection strings (with potential passwords) will be unencrypted |
||||
*.pubxml |
||||
*.publishproj |
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to |
||||
# checkin your Azure Web App publish settings, but sensitive information contained |
||||
# in these scripts will be unencrypted |
||||
PublishScripts/ |
||||
|
||||
# NuGet Packages |
||||
*.nupkg |
||||
# NuGet Symbol Packages |
||||
*.snupkg |
||||
# The packages folder can be ignored because of Package Restore |
||||
**/[Pp]ackages/* |
||||
# except build/, which is used as an MSBuild target. |
||||
!**/[Pp]ackages/build/ |
||||
# Uncomment if necessary however generally it will be regenerated when needed |
||||
#!**/[Pp]ackages/repositories.config |
||||
# NuGet v3's project.json files produces more ignorable files |
||||
*.nuget.props |
||||
*.nuget.targets |
||||
|
||||
# Microsoft Azure Build Output |
||||
csx/ |
||||
*.build.csdef |
||||
|
||||
# Microsoft Azure Emulator |
||||
ecf/ |
||||
rcf/ |
||||
|
||||
# Windows Store app package directories and files |
||||
AppPackages/ |
||||
BundleArtifacts/ |
||||
Package.StoreAssociation.xml |
||||
_pkginfo.txt |
||||
*.appx |
||||
*.appxbundle |
||||
*.appxupload |
||||
|
||||
# Visual Studio cache files |
||||
# files ending in .cache can be ignored |
||||
*.[Cc]ache |
||||
# but keep track of directories ending in .cache |
||||
!?*.[Cc]ache/ |
||||
|
||||
# Others |
||||
ClientBin/ |
||||
~$* |
||||
*~ |
||||
*.dbmdl |
||||
*.dbproj.schemaview |
||||
*.jfm |
||||
*.pfx |
||||
*.publishsettings |
||||
orleans.codegen.cs |
||||
|
||||
# Including strong name files can present a security risk |
||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424) |
||||
#*.snk |
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components |
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) |
||||
#bower_components/ |
||||
|
||||
# RIA/Silverlight projects |
||||
Generated_Code/ |
||||
|
||||
# Backup & report files from converting an old project file |
||||
# to a newer Visual Studio version. Backup files are not needed, |
||||
# because we have git ;-) |
||||
_UpgradeReport_Files/ |
||||
Backup*/ |
||||
UpgradeLog*.XML |
||||
UpgradeLog*.htm |
||||
ServiceFabricBackup/ |
||||
*.rptproj.bak |
||||
|
||||
# SQL Server files |
||||
*.mdf |
||||
*.ldf |
||||
*.ndf |
||||
|
||||
# Business Intelligence projects |
||||
*.rdl.data |
||||
*.bim.layout |
||||
*.bim_*.settings |
||||
*.rptproj.rsuser |
||||
*- [Bb]ackup.rdl |
||||
*- [Bb]ackup ([0-9]).rdl |
||||
*- [Bb]ackup ([0-9][0-9]).rdl |
||||
|
||||
# Microsoft Fakes |
||||
FakesAssemblies/ |
||||
|
||||
# GhostDoc plugin setting file |
||||
*.GhostDoc.xml |
||||
|
||||
# Node.js Tools for Visual Studio |
||||
.ntvs_analysis.dat |
||||
node_modules/ |
||||
|
||||
# Visual Studio 6 build log |
||||
*.plg |
||||
|
||||
# Visual Studio 6 workspace options file |
||||
*.opt |
||||
|
||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) |
||||
*.vbw |
||||
|
||||
# Visual Studio 6 auto-generated project file (contains which files were open etc.) |
||||
*.vbp |
||||
|
||||
# Visual Studio 6 workspace and project file (working project files containing files to include in project) |
||||
*.dsw |
||||
*.dsp |
||||
|
||||
# Visual Studio 6 technical files |
||||
|
||||
# Visual Studio LightSwitch build output |
||||
**/*.HTMLClient/GeneratedArtifacts |
||||
**/*.DesktopClient/GeneratedArtifacts |
||||
**/*.DesktopClient/ModelManifest.xml |
||||
**/*.Server/GeneratedArtifacts |
||||
**/*.Server/ModelManifest.xml |
||||
_Pvt_Extensions |
||||
|
||||
# Paket dependency manager |
||||
.paket/paket.exe |
||||
paket-files/ |
||||
|
||||
# FAKE - F# Make |
||||
.fake/ |
||||
|
||||
# CodeRush personal settings |
||||
.cr/personal |
||||
|
||||
# Python Tools for Visual Studio (PTVS) |
||||
__pycache__/ |
||||
*.pyc |
||||
|
||||
# Cake - Uncomment if you are using it |
||||
# tools/** |
||||
# !tools/packages.config |
||||
|
||||
# Tabs Studio |
||||
*.tss |
||||
|
||||
# Telerik's JustMock configuration file |
||||
*.jmconfig |
||||
|
||||
# BizTalk build output |
||||
*.btp.cs |
||||
*.btm.cs |
||||
*.odx.cs |
||||
*.xsd.cs |
||||
|
||||
# OpenCover UI analysis results |
||||
OpenCover/ |
||||
|
||||
# Azure Stream Analytics local run output |
||||
ASALocalRun/ |
||||
|
||||
# MSBuild Binary and Structured Log |
||||
*.binlog |
||||
|
||||
# NVidia Nsight GPU debugger configuration file |
||||
*.nvuser |
||||
|
||||
# MFractors (Xamarin productivity tool) working folder |
||||
.mfractor/ |
||||
|
||||
# Local History for Visual Studio |
||||
.localhistory/ |
||||
|
||||
# Visual Studio History (VSHistory) files |
||||
.vshistory/ |
||||
|
||||
# BeatPulse healthcheck temp database |
||||
healthchecksdb |
||||
|
||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017 |
||||
MigrationBackup/ |
||||
|
||||
# Ionide (cross platform F# VS Code tools) working folder |
||||
.ionide/ |
||||
|
||||
# Fody - auto-generated XML schema |
||||
FodyWeavers.xsd |
||||
|
||||
# VS Code files for those working on multiple tools |
||||
.vscode/* |
||||
!.vscode/settings.json |
||||
!.vscode/tasks.json |
||||
!.vscode/launch.json |
||||
!.vscode/extensions.json |
||||
*.code-workspace |
||||
|
||||
# Local History for Visual Studio Code |
||||
.history/ |
||||
|
||||
# Windows Installer files from build outputs |
||||
*.cab |
||||
*.msi |
||||
*.msix |
||||
*.msm |
||||
*.msp |
||||
|
||||
# JetBrains Rider |
||||
*.sln.iml |
||||
|
||||
### VisualStudio Patch ### |
||||
# Additional files built by Visual Studio |
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/visualstudio,c++ |
@ -0,0 +1,44 @@ |
||||
#pragma region License |
||||
/*
|
||||
License (OLC-3) |
||||
~~~~~~~~~~~~~~~ |
||||
|
||||
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com> |
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, |
||||
are permitted provided that the following conditions are met: |
||||
|
||||
1. Redistributions or derivations of source code must retain the above copyright |
||||
notice, this list of conditions and the following disclaimer. |
||||
|
||||
2. Redistributions or derivative works in binary form must reproduce the above |
||||
copyright notice. This list of conditions and the following disclaimer must be |
||||
reproduced in the documentation and/or other materials provided with the distribution. |
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may |
||||
be used to endorse or promote products derived from this software without specific |
||||
prior written permission. |
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY |
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT |
||||
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
||||
INCIDENTAL, SPECIAL, EXEMPLARY, 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 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 ADVISED OF THE POSSIBILITY OF |
||||
SUCH DAMAGE. |
||||
|
||||
Portions of this software are copyright © 2024 The FreeType |
||||
Project (www.freetype.org). Please see LICENSE_FT.txt for more information. |
||||
All rights reserved. |
||||
*/ |
||||
#pragma endregion |
||||
#pragma once |
||||
#include "olcUTIL_Geometry2D.h" |
||||
|
||||
using namespace olc; |
||||
#include <array> |
||||
|
||||
using Quadrilateral=std::array<vf2d,4>; |
@ -0,0 +1,171 @@ |
||||
#pragma region License |
||||
/*
|
||||
License (OLC-3) |
||||
~~~~~~~~~~~~~~~ |
||||
|
||||
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com> |
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, |
||||
are permitted provided that the following conditions are met: |
||||
|
||||
1. Redistributions or derivations of source code must retain the above copyright |
||||
notice, this list of conditions and the following disclaimer. |
||||
|
||||
2. Redistributions or derivative works in binary form must reproduce the above |
||||
copyright notice. This list of conditions and the following disclaimer must be |
||||
reproduced in the documentation and/or other materials provided with the distribution. |
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may |
||||
be used to endorse or promote products derived from this software without specific |
||||
prior written permission. |
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY |
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT |
||||
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
||||
INCIDENTAL, SPECIAL, EXEMPLARY, 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 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 ADVISED OF THE POSSIBILITY OF |
||||
SUCH DAMAGE. |
||||
|
||||
Portions of this software are copyright © 2024 The FreeType |
||||
Project (www.freetype.org). Please see LICENSE_FT.txt for more information. |
||||
All rights reserved. |
||||
*/ |
||||
#pragma endregion |
||||
#pragma once |
||||
#include <sstream> |
||||
#include <map> |
||||
#include <unordered_map> |
||||
#include <fstream> |
||||
|
||||
#include "olcUTIL_Geometry2D.h" |
||||
#include "Tileset.h" |
||||
|
||||
using namespace olc; |
||||
using namespace olc::utils; |
||||
|
||||
class TSXParser{ |
||||
public: |
||||
inline Tileset&GetData(){ |
||||
return parsedTilesetInfo; |
||||
} |
||||
private: |
||||
Tileset parsedTilesetInfo; |
||||
int previousTagID; |
||||
inline void ParseTag(std::string tag){ |
||||
XMLTag newTag; |
||||
//First character is a '<' so we discard it.
|
||||
tag.erase(0,1); tag.erase(tag.length()-1,1); //Erase the first and last characters in the tag. Now parse by spaces.
|
||||
std::stringstream s(tag); //Turn it into a string stream to now parse into individual whitespaces.
|
||||
std::string data; |
||||
while (s.good()) { |
||||
int quotationMarkCount=0; |
||||
bool pastEquals=false; |
||||
data=""; |
||||
bool valid=false; |
||||
while(s.good()){ |
||||
int character=s.get(); |
||||
if(character=='"'){ |
||||
quotationMarkCount++; |
||||
} |
||||
if(character==' '&"ationMarkCount%2==0){ |
||||
valid=true; |
||||
break; |
||||
} |
||||
data+=character; |
||||
if(pastEquals&"ationMarkCount%2==0){ |
||||
valid=true; |
||||
break; |
||||
} |
||||
if(character=='='&"ationMarkCount%2==0){ |
||||
pastEquals=true; |
||||
} |
||||
} |
||||
if(valid&&data.length()>0){ |
||||
if (newTag.tag.length()==0) { //Tag's empty, so first line is the tag.
|
||||
newTag.tag=data; |
||||
} else { |
||||
std::string key = data.substr(0,data.find("=")); |
||||
std::string value = data.substr(data.find("=")+1,std::string::npos); |
||||
|
||||
//Strip Quotation marks.
|
||||
value = value.substr(1,std::string::npos); |
||||
value = value.substr(0,value.length()-1); |
||||
|
||||
newTag.data[key]=value; |
||||
} |
||||
} |
||||
} |
||||
|
||||
if (newTag.tag=="tileset") { |
||||
parsedTilesetInfo.tilewidth=stoi(newTag.data["tilewidth"]); |
||||
parsedTilesetInfo.tileheight=stoi(newTag.data["tileheight"]); |
||||
parsedTilesetInfo.columns=stoi(newTag.data["columns"]); |
||||
} else |
||||
if (newTag.tag=="image") { |
||||
parsedTilesetInfo.ImageData=newTag; |
||||
parsedTilesetInfo.filename=newTag.GetString("source"); |
||||
parsedTilesetInfo.imagewidth=newTag.GetInteger("width"); |
||||
parsedTilesetInfo.imageheight=newTag.GetInteger("height"); |
||||
} else |
||||
if (newTag.tag=="property"){ |
||||
if(newTag.data["name"]=="Name"){ |
||||
std::string objectName=newTag.data["value"]; |
||||
parsedTilesetInfo.objects[objectName].AddTile(parsedTilesetInfo,previousTagID); |
||||
} |
||||
} else |
||||
if (newTag.tag=="tile"){ |
||||
previousTagID=newTag.GetInteger("id"); |
||||
} |
||||
}; |
||||
public: |
||||
inline TSXParser(std::string file) |
||||
:previousTagID(-1){ |
||||
std::ifstream f(file,std::ios::in); |
||||
|
||||
std::string accumulator=""; |
||||
|
||||
while (f.good()) { |
||||
std::string data; |
||||
f>>data; |
||||
if (data.empty()) continue; |
||||
|
||||
if (accumulator.length()>0) { |
||||
accumulator+=" "+data; |
||||
//Check if it ends with '>'
|
||||
if (data[data.length()-1]=='>') { |
||||
ParseTag(accumulator); |
||||
accumulator=""; |
||||
} |
||||
} else |
||||
if (data[0]=='<') { |
||||
//Beginning of XML tag.
|
||||
accumulator=data; |
||||
if(accumulator.length()>1&&accumulator.at(1)=='/'){ |
||||
accumulator=""; //Restart because this is an end tag.
|
||||
} |
||||
if(accumulator.length()>1&&accumulator.find('>')!=std::string::npos){ |
||||
accumulator=""; //Restart because this tag has nothing in it!
|
||||
} |
||||
} |
||||
} |
||||
} |
||||
}; |
||||
|
||||
//#define TSX_PARSER_SETUP
|
||||
|
||||
std::ostream&operator<<(std::ostream& os, Tileset& rhs){ |
||||
os<<rhs.ImageData.FormatTagData(rhs.ImageData.data)<<"\n"; |
||||
return os; |
||||
} |
||||
|
||||
|
||||
std::ostream& operator << (std::ostream& os, XMLTag& rhs){
|
||||
os <<
|
||||
rhs.tag <<"\n"<<
|
||||
rhs.FormatTagData(rhs.data) <<"\n"; |
||||
return os; |
||||
} |
@ -0,0 +1,175 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<ItemGroup Label="ProjectConfigurations"> |
||||
<ProjectConfiguration Include="Debug|Win32"> |
||||
<Configuration>Debug</Configuration> |
||||
<Platform>Win32</Platform> |
||||
</ProjectConfiguration> |
||||
<ProjectConfiguration Include="Release|Win32"> |
||||
<Configuration>Release</Configuration> |
||||
<Platform>Win32</Platform> |
||||
</ProjectConfiguration> |
||||
<ProjectConfiguration Include="Debug|x64"> |
||||
<Configuration>Debug</Configuration> |
||||
<Platform>x64</Platform> |
||||
</ProjectConfiguration> |
||||
<ProjectConfiguration Include="Release|x64"> |
||||
<Configuration>Release</Configuration> |
||||
<Platform>x64</Platform> |
||||
</ProjectConfiguration> |
||||
</ItemGroup> |
||||
<PropertyGroup Label="Globals"> |
||||
<VCProjectVersion>17.0</VCProjectVersion> |
||||
<Keyword>Win32Proj</Keyword> |
||||
<ProjectGuid>{1dce7e68-f810-4183-83f3-233a8ee41027}</ProjectGuid> |
||||
<RootNamespace>TiledCollisionEditor</RootNamespace> |
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> |
||||
</PropertyGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> |
||||
<ConfigurationType>Application</ConfigurationType> |
||||
<UseDebugLibraries>true</UseDebugLibraries> |
||||
<PlatformToolset>v143</PlatformToolset> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> |
||||
<ConfigurationType>Application</ConfigurationType> |
||||
<UseDebugLibraries>false</UseDebugLibraries> |
||||
<PlatformToolset>v143</PlatformToolset> |
||||
<WholeProgramOptimization>true</WholeProgramOptimization> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> |
||||
<ConfigurationType>Application</ConfigurationType> |
||||
<UseDebugLibraries>true</UseDebugLibraries> |
||||
<PlatformToolset>v143</PlatformToolset> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> |
||||
<ConfigurationType>Application</ConfigurationType> |
||||
<UseDebugLibraries>false</UseDebugLibraries> |
||||
<PlatformToolset>v143</PlatformToolset> |
||||
<WholeProgramOptimization>true</WholeProgramOptimization> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
</PropertyGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> |
||||
<ImportGroup Label="ExtensionSettings"> |
||||
</ImportGroup> |
||||
<ImportGroup Label="Shared"> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
</ImportGroup> |
||||
<PropertyGroup Label="UserMacros" /> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<ClCompile> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<SDLCheck>true</SDLCheck> |
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<ConformanceMode>true</ConformanceMode> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Console</SubSystem> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<ClCompile> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||
<SDLCheck>true</SDLCheck> |
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<ConformanceMode>true</ConformanceMode> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Console</SubSystem> |
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||
<OptimizeReferences>true</OptimizeReferences> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
||||
<ClCompile> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<SDLCheck>true</SDLCheck> |
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<ConformanceMode>true</ConformanceMode> |
||||
<LanguageStandard>stdcpp17</LanguageStandard> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Console</SubSystem> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
||||
<ClCompile> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||
<SDLCheck>true</SDLCheck> |
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<ConformanceMode>true</ConformanceMode> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Console</SubSystem> |
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||
<OptimizeReferences>true</OptimizeReferences> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemGroup> |
||||
<ClInclude Include="olcPGEX_QuickGUI.h"> |
||||
<SubType> |
||||
</SubType> |
||||
</ClInclude> |
||||
<ClInclude Include="olcPGEX_TransformedView.h" /> |
||||
<ClInclude Include="olcUTIL_Camera2D.h" /> |
||||
<ClInclude Include="olcUTIL_Geometry2D.h" /> |
||||
<ClInclude Include="pixelGameEngine.h" /> |
||||
<ClInclude Include="Quadrilateral.h"> |
||||
<SubType> |
||||
</SubType> |
||||
</ClInclude> |
||||
<ClInclude Include="Tileset.h"> |
||||
<SubType> |
||||
</SubType> |
||||
</ClInclude> |
||||
<ClInclude Include="TilesetObject.h"> |
||||
<SubType> |
||||
</SubType> |
||||
</ClInclude> |
||||
<ClInclude Include="TSXParser.h"> |
||||
<SubType> |
||||
</SubType> |
||||
</ClInclude> |
||||
<ClInclude Include="XMLTag.h"> |
||||
<SubType> |
||||
</SubType> |
||||
</ClInclude> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ClCompile Include="main.cpp" /> |
||||
<ClCompile Include="pixelGameEngine.cpp" /> |
||||
<ClCompile Include="TilesetObject.cpp"> |
||||
<SubType> |
||||
</SubType> |
||||
</ClCompile> |
||||
<ClCompile Include="XMLTag.cpp"> |
||||
<SubType> |
||||
</SubType> |
||||
</ClCompile> |
||||
</ItemGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
||||
<ImportGroup Label="ExtensionTargets"> |
||||
</ImportGroup> |
||||
</Project> |
@ -0,0 +1,810 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<tileset version="1.10" tiledversion="1.10.2" name="Basic Tileset" tilewidth="16" tileheight="16" tilecount="864" columns="32"> |
||||
<transformations hflip="1" vflip="1" rotate="0" preferuntransformed="0"/> |
||||
<image source="tilemap-3-normal.png" width="512" height="432"/> |
||||
<tile id="3" type="Object"> |
||||
<properties> |
||||
<property name="Name" value="Stop Sign"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="4" type="Object"> |
||||
<properties> |
||||
<property name="Name" value="Stop Sign"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="8" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="9" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="10" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="11" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="12" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="13" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="14" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="15" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="16" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="17" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="18" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="19" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="20" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="21" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="22" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="23" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="24" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="35" type="Object"> |
||||
<properties> |
||||
<property name="Name" value="Stop Sign"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="36" type="Object"> |
||||
<properties> |
||||
<property name="Name" value="Stop Sign"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="40" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="41" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="42" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="43" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="44" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="45" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="46" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="47" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="48" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="49" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="50" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="51" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="52" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="53" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="54" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="55" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="56" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="67" type="Object"> |
||||
<properties> |
||||
<property name="Name" value="Stop Sign"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="68" type="Object"> |
||||
<properties> |
||||
<property name="Name" value="Stop Sign"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="72" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="73" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="74" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="75" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="76" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="77" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="78" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="79" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="80" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="81" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="82" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="83" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="84" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="85" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="86" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="87" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="88" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="99" type="Object"> |
||||
<properties> |
||||
<property name="Name" value="Stop Sign"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="100" type="Object"> |
||||
<properties> |
||||
<property name="Name" value="Stop Sign"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="104" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="105" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="106" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="107" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="108" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="109" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="110" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="111" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="112" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="113" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="114" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="115" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="116" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="117" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="118" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="119" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="120" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="136" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="137" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="138" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="139" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="140" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="141" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="142" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="143" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="144" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="145" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="146" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="147" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="148" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="149" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="150" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="151" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="152" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="168" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="169" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="170" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="171" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="172" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="173" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="174" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="175" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="176" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="177" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="178" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="179" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="180" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="181" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="182" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="183" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="184" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="200" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="201" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="202" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="203" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="204" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="205" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="206" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="207" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="208" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="209" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="210" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="211" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="212" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="213" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="214" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="215" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="216" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="232" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="233" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="234" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="235" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="236" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="237" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="238" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="239" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="240" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="241" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="242" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="243" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="244" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="245" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="246" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="247" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="248" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="264" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="265" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="266" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="267" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="268" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="269" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="270" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="271" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="272" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="273" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="274" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="275" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="276" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="277" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="278" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="279" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
<tile id="280" type="PerspectiveObject"> |
||||
<properties> |
||||
<property name="Name" value="BlueHouse1"/> |
||||
</properties> |
||||
</tile> |
||||
</tileset> |
After Width: | Height: | Size: 13 KiB |
@ -0,0 +1,53 @@ |
||||
#pragma region License |
||||
/*
|
||||
License (OLC-3) |
||||
~~~~~~~~~~~~~~~ |
||||
|
||||
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com> |
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, |
||||
are permitted provided that the following conditions are met: |
||||
|
||||
1. Redistributions or derivations of source code must retain the above copyright |
||||
notice, this list of conditions and the following disclaimer. |
||||
|
||||
2. Redistributions or derivative works in binary form must reproduce the above |
||||
copyright notice. This list of conditions and the following disclaimer must be |
||||
reproduced in the documentation and/or other materials provided with the distribution. |
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may |
||||
be used to endorse or promote products derived from this software without specific |
||||
prior written permission. |
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY |
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT |
||||
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
||||
INCIDENTAL, SPECIAL, EXEMPLARY, 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 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 ADVISED OF THE POSSIBILITY OF |
||||
SUCH DAMAGE. |
||||
|
||||
Portions of this software are copyright © 2024 The FreeType |
||||
Project (www.freetype.org). Please see LICENSE_FT.txt for more information. |
||||
All rights reserved. |
||||
*/ |
||||
#pragma endregion |
||||
#pragma once |
||||
#include <unordered_map> |
||||
#include "XMLTag.h" |
||||
#include "TilesetObject.h" |
||||
#include "pixelGameEngine.h" |
||||
|
||||
struct Tileset{ |
||||
std::string filename; |
||||
std::unordered_map<std::string,TilesetObject>objects; |
||||
XMLTag ImageData; |
||||
int tilewidth=0,tileheight=0; |
||||
int imagewidth=0,imageheight=0; |
||||
int columns=0; |
||||
bool isTerrain=false; |
||||
friend std::ostream& operator << (std::ostream& os, Tileset& rhs); |
||||
}; |
@ -0,0 +1,78 @@ |
||||
#pragma region License |
||||
/*
|
||||
License (OLC-3) |
||||
~~~~~~~~~~~~~~~ |
||||
|
||||
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com> |
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, |
||||
are permitted provided that the following conditions are met: |
||||
|
||||
1. Redistributions or derivations of source code must retain the above copyright |
||||
notice, this list of conditions and the following disclaimer. |
||||
|
||||
2. Redistributions or derivative works in binary form must reproduce the above |
||||
copyright notice. This list of conditions and the following disclaimer must be |
||||
reproduced in the documentation and/or other materials provided with the distribution. |
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may |
||||
be used to endorse or promote products derived from this software without specific |
||||
prior written permission. |
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY |
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT |
||||
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
||||
INCIDENTAL, SPECIAL, EXEMPLARY, 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 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 ADVISED OF THE POSSIBILITY OF |
||||
SUCH DAMAGE. |
||||
|
||||
Portions of this software are copyright © 2024 The FreeType |
||||
Project (www.freetype.org). Please see LICENSE_FT.txt for more information. |
||||
All rights reserved. |
||||
*/ |
||||
#pragma endregion |
||||
|
||||
#include "TilesetObject.h" |
||||
#include "Tileset.h" |
||||
|
||||
void TilesetObject::AddTile(const Tileset&tileset,int tileID){ |
||||
if(bounds.size==vi2d{1,1}){ |
||||
int tileX=tileID%tileset.columns; |
||||
int tileY=tileID/tileset.columns; |
||||
bounds={vi2d{tileX,tileY}*tileset.tilewidth,{tileset.tilewidth,tileset.tileheight}}; |
||||
upperLeftTileId=tileID; |
||||
}else{ |
||||
int tileX=tileID%tileset.columns; |
||||
int tileY=tileID/tileset.columns; |
||||
int textureX=tileX*tileset.tilewidth; |
||||
int textureY=tileY*tileset.tileheight; |
||||
int minX=bounds.pos.x; |
||||
int minY=bounds.pos.y; |
||||
int maxX=bounds.pos.x+bounds.size.x; |
||||
int maxY=bounds.pos.y+bounds.size.y; |
||||
|
||||
if(textureX<minX){ |
||||
minX=textureX; |
||||
} |
||||
if(textureX+tileset.tilewidth>maxX){ |
||||
maxX=textureX+tileset.tilewidth; |
||||
} |
||||
if(textureY<minY){ |
||||
minY=textureY; |
||||
} |
||||
if(textureY+tileset.tileheight>maxY){ |
||||
maxY=textureY+tileset.tileheight; |
||||
} |
||||
bounds={{minX,minY},{maxX-minX,maxY-minY}}; |
||||
|
||||
int minTileX=minX/tileset.tilewidth; |
||||
int minTileY=minY/tileset.tileheight; |
||||
|
||||
int upperLeftTileId=minTileY*tileset.columns+minTileX; |
||||
this->upperLeftTileId=upperLeftTileId; |
||||
} |
||||
} |
@ -0,0 +1,55 @@ |
||||
#pragma region License |
||||
/*
|
||||
License (OLC-3) |
||||
~~~~~~~~~~~~~~~ |
||||
|
||||
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com> |
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, |
||||
are permitted provided that the following conditions are met: |
||||
|
||||
1. Redistributions or derivations of source code must retain the above copyright |
||||
notice, this list of conditions and the following disclaimer. |
||||
|
||||
2. Redistributions or derivative works in binary form must reproduce the above |
||||
copyright notice. This list of conditions and the following disclaimer must be |
||||
reproduced in the documentation and/or other materials provided with the distribution. |
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may |
||||
be used to endorse or promote products derived from this software without specific |
||||
prior written permission. |
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY |
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT |
||||
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
||||
INCIDENTAL, SPECIAL, EXEMPLARY, 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 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 ADVISED OF THE POSSIBILITY OF |
||||
SUCH DAMAGE. |
||||
|
||||
Portions of this software are copyright © 2024 The FreeType |
||||
Project (www.freetype.org). Please see LICENSE_FT.txt for more information. |
||||
All rights reserved. |
||||
*/ |
||||
#pragma endregion |
||||
#pragma once |
||||
#include <string> |
||||
#include "Quadrilateral.h" |
||||
|
||||
using namespace olc::utils; |
||||
|
||||
class Tileset; |
||||
|
||||
class TilesetObject{ |
||||
public: |
||||
std::string name; |
||||
int upperLeftTileId; |
||||
bool perspectiveObj=false; |
||||
bool facingLeft=true; |
||||
geom2d::rect<int>bounds; |
||||
std::vector<Quadrilateral>collisionTiles; |
||||
void AddTile(const Tileset&tileset,int tileID); |
||||
}; |
@ -0,0 +1,74 @@ |
||||
#pragma region License |
||||
/*
|
||||
License (OLC-3) |
||||
~~~~~~~~~~~~~~~ |
||||
|
||||
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com> |
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, |
||||
are permitted provided that the following conditions are met: |
||||
|
||||
1. Redistributions or derivations of source code must retain the above copyright |
||||
notice, this list of conditions and the following disclaimer. |
||||
|
||||
2. Redistributions or derivative works in binary form must reproduce the above |
||||
copyright notice. This list of conditions and the following disclaimer must be |
||||
reproduced in the documentation and/or other materials provided with the distribution. |
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may |
||||
be used to endorse or promote products derived from this software without specific |
||||
prior written permission. |
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY |
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT |
||||
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
||||
INCIDENTAL, SPECIAL, EXEMPLARY, 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 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 ADVISED OF THE POSSIBILITY OF |
||||
SUCH DAMAGE. |
||||
|
||||
Portions of this software are copyright © 2024 The FreeType |
||||
Project (www.freetype.org). Please see LICENSE_FT.txt for more information. |
||||
All rights reserved. |
||||
*/ |
||||
#pragma endregion |
||||
#include "XMLTag.h" |
||||
|
||||
const std::string XMLTag::FormatTagData(std::map<std::string,std::string>tiles){ |
||||
std::string displayStr=""; |
||||
for (std::map<std::string,std::string>::iterator it=data.begin();it!=data.end();it++) { |
||||
displayStr+=" "+it->first+": "+it->second+"\n"; |
||||
} |
||||
return displayStr; |
||||
} |
||||
|
||||
std::string XMLTag::str(){ |
||||
return tag+"\n"; |
||||
} |
||||
|
||||
int XMLTag::GetInteger(std::string dataTag){ |
||||
return std::stoi(data[dataTag]); |
||||
} |
||||
|
||||
float XMLTag::GetFloat(std::string dataTag){ |
||||
return std::stof(data[dataTag]); |
||||
} |
||||
|
||||
double XMLTag::GetDouble(std::string dataTag){ |
||||
return std::stod(data[dataTag]); |
||||
} |
||||
|
||||
bool XMLTag::GetBool(std::string dataTag){ |
||||
if (data[dataTag]=="0"||data[dataTag]=="false") { |
||||
return false; |
||||
} else { |
||||
return true; |
||||
} |
||||
} |
||||
|
||||
std::string XMLTag::GetString(std::string dataTag){ |
||||
return data[dataTag]; |
||||
} |
@ -0,0 +1,53 @@ |
||||
#pragma region License |
||||
/*
|
||||
License (OLC-3) |
||||
~~~~~~~~~~~~~~~ |
||||
|
||||
Copyright 2024 Joshua Sigona <sigonasr2@gmail.com> |
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, |
||||
are permitted provided that the following conditions are met: |
||||
|
||||
1. Redistributions or derivations of source code must retain the above copyright |
||||
notice, this list of conditions and the following disclaimer. |
||||
|
||||
2. Redistributions or derivative works in binary form must reproduce the above |
||||
copyright notice. This list of conditions and the following disclaimer must be |
||||
reproduced in the documentation and/or other materials provided with the distribution. |
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may |
||||
be used to endorse or promote products derived from this software without specific |
||||
prior written permission. |
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY |
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT |
||||
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
||||
INCIDENTAL, SPECIAL, EXEMPLARY, 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 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 ADVISED OF THE POSSIBILITY OF |
||||
SUCH DAMAGE. |
||||
|
||||
Portions of this software are copyright © 2024 The FreeType |
||||
Project (www.freetype.org). Please see LICENSE_FT.txt for more information. |
||||
All rights reserved. |
||||
*/ |
||||
#pragma endregion |
||||
#pragma once |
||||
#include <string> |
||||
#include <map> |
||||
|
||||
struct XMLTag{ |
||||
std::string tag; |
||||
std::map<std::string,std::string> data; |
||||
const std::string FormatTagData(std::map<std::string,std::string>tiles); |
||||
friend std::ostream& operator << (std::ostream& os, XMLTag& rhs); |
||||
std::string str(); |
||||
int GetInteger(std::string dataTag); |
||||
float GetFloat(std::string dataTag); |
||||
double GetDouble(std::string dataTag); |
||||
bool GetBool(std::string dataTag); |
||||
std::string GetString(std::string dataTag); |
||||
}; |
@ -0,0 +1,50 @@ |
||||
#include "TSXParser.h" |
||||
#include "olcPGEX_TransformedView.h" |
||||
#include "olcUTIL_Camera2D.h" |
||||
#include "olcPGEX_QuickGUI.h" |
||||
|
||||
using namespace olc; |
||||
using namespace olc::utils; |
||||
|
||||
const std::string TILESET_DIR="./Tiles/"; |
||||
|
||||
class TiledCollisionEditor : public olc::PixelGameEngine |
||||
{ |
||||
std::unordered_map<std::string,Tileset>tilesets; |
||||
std::unordered_map<std::string,Renderable>images; |
||||
|
||||
public: |
||||
TiledCollisionEditor() |
||||
{ |
||||
sAppName = "TiledCollisionEditor"; |
||||
} |
||||
|
||||
public: |
||||
bool OnUserCreate() override |
||||
{ |
||||
std::string tilesetFilename=TILESET_DIR+"Basic Tileset.tsx"; |
||||
Tileset&tileset=tilesets[tilesetFilename]=TSXParser{tilesetFilename}.GetData(); |
||||
|
||||
Renderable&tilesetImg=images[tilesetFilename]; |
||||
tilesetImg.Load(TILESET_DIR+tileset.filename); |
||||
return true; |
||||
} |
||||
|
||||
bool OnUserUpdate(float fElapsedTime) override |
||||
{ |
||||
Clear(VERY_DARK_BLUE); |
||||
for(auto&[tilesetName,tileset]:tilesets){ |
||||
DrawDecal({0,0},images[tilesetName].Decal()); |
||||
} |
||||
return true; |
||||
} |
||||
}; |
||||
|
||||
int main() |
||||
{
|
||||
TiledCollisionEditor demo; |
||||
if (demo.Construct(640, 180, 4, 4)) |
||||
demo.Start(); |
||||
|
||||
return 0; |
||||
} |
File diff suppressed because it is too large
Load Diff
@ -1,56 +0,0 @@ |
||||
#include "olcUTIL_Geometry2D.h" |
||||
#include "pixelGameEngine.h" |
||||
#include "olcPGEX_TransformedView.h" |
||||
#include "olcUTIL_Camera2D.h" |
||||
|
||||
using namespace olc; |
||||
|
||||
#define WIDTH 640 |
||||
#define HEIGHT 480 |
||||
|
||||
class TiledCollisionEditor : public olc::PixelGameEngine |
||||
{ |
||||
|
||||
|
||||
public: |
||||
TiledCollisionEditor() |
||||
{ |
||||
sAppName = "TiledCollisionEditor"; |
||||
} |
||||
|
||||
public: |
||||
bool OnUserCreate() override |
||||
{ |
||||
return true; |
||||
} |
||||
|
||||
bool OnUserUpdate(float fElapsedTime) override |
||||
{ |
||||
return true; |
||||
} |
||||
|
||||
bool OnUserDestroy()override{ |
||||
return true; |
||||
} |
||||
}; |
||||
|
||||
enum Direction{ |
||||
RIGHT, |
||||
DOWN, |
||||
LEFT, |
||||
UP |
||||
}; |
||||
|
||||
struct Data{ |
||||
int x,y; |
||||
}; |
||||
|
||||
|
||||
int main() |
||||
{
|
||||
TiledCollisionEditor demo; |
||||
if (demo.Construct(640, 480, 4, 4)) |
||||
demo.Start(); |
||||
|
||||
return 0; |
||||
} |
Loading…
Reference in new issue