diff --git a/.editorconfig b/.editorconfig
index 9c5b6896..f749e4af 100755
--- a/.editorconfig
+++ b/.editorconfig
@@ -23,7 +23,7 @@ indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true
-[src/{endian,gsl,rapidjson,rectpack2D}/**]
+[src/{endian,rapidjson}/**]
indent_size = unset
indent_style = unset
insert_final_newline = unset
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 6699b601..6d4432e8 100755
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -9,7 +9,7 @@ on:
jobs:
build_linux:
name: linux build
- runs-on: ubuntu-18.04
+ runs-on: ubuntu-20.04
steps:
- name: Checkout DGEngine
uses: actions/checkout@v2
@@ -30,8 +30,8 @@ jobs:
git clone -q --depth=1 --branch=2.5.x https://github.com/SFML/SFML.git /home/runner/work/DGEngine/DGEngine/sfml > /dev/null
git -C /home/runner/work/DGEngine/DGEngine/sfml pull > /dev/null
cd /home/runner/work/DGEngine/DGEngine/sfml
- export CC=/usr/bin/gcc-9
- export CXX=/usr/bin/g++-9
+ export CC=/usr/bin/gcc-10
+ export CXX=/usr/bin/g++-10
cmake /home/runner/work/DGEngine/DGEngine/sfml/CMakeLists.txt
sudo make install
@@ -43,8 +43,8 @@ jobs:
- name: CMake + make DGEngine
run: |
- export CC=/usr/bin/gcc-9
- export CXX=/usr/bin/g++-9
+ export CC=/usr/bin/gcc-10
+ export CXX=/usr/bin/g++-10
cmake CMakeLists.txt
make
@@ -62,24 +62,17 @@ jobs:
path: C:/vcpkg/installed
key: cache-windows
- - name: Checkout physfs
- if: steps.cache-windows.outputs.cache-hit != 'true'
- uses: actions/checkout@v2
- with:
- repository: dgengin/physfs
- path: physfs
-
- name: Install dependencies
if: steps.cache-windows.outputs.cache-hit != 'true'
- run: vcpkg install physfs:x86-windows-static sfml:x86-windows-static --overlay-ports=D:/a/DGEngine/DGEngine/physfs/vcpkg-port
+ run: vcpkg install physfs:x86-windows-static sfml:x86-windows-static --overlay-ports=D:/a/DGEngine/DGEngine/vcpkg/ports
- name: Setup MSBuild
- uses: microsoft/setup-msbuild@v1.0.0
+ uses: microsoft/setup-msbuild@v1.0.2
- name: MSBuild DGEngine
run: |
vcpkg integrate install
- msbuild DGEngine.vcxproj /p:Configuration="Release Static NoMovie" /p:Platform=Win32
+ msbuild Project.vcxproj /p:Configuration="Release Static NoMovie" /p:Platform=Win32
- name: Create DGEngine.zip
run: 7z a DGEngine.zip "./Release Static NoMovie/DGEngine.exe" LICENSE.* main.json gamefiles*
diff --git a/.gitignore b/.gitignore
index dcb070b8..d8d22709 100755
--- a/.gitignore
+++ b/.gitignore
@@ -28,7 +28,6 @@
/Debug NoDiabloFormatSupport
/Debug NoMovie
/DGEngine
-/DGEngine.dir
/DIABDAT
/DIABDAT.*
/FFMPEG*
@@ -47,10 +46,12 @@
/Makefile
/obj
/PhysicsFS
+/portable
+/Project.dir
/Release
/Release NoMovie
/Release Static
/Release Static NoMovie
/sfeMovie
/SFML
-/Win32
+/x64
diff --git a/BUILD.txt b/BUILD.txt
index c43ee14d..0b9b9559 100755
--- a/BUILD.txt
+++ b/BUILD.txt
@@ -28,7 +28,7 @@ USE_SFML_MOVIE_STUB which uses a stub class that does nothing instead.
Linux
-To compile in Linux (Ubuntu), you need gcc or clang with C++17 support
+To compile in Linux (Ubuntu), you need gcc or clang with C++20 support
and to have both PhysicsFS >= 2.1 and SFML >= 2.5 installed.
sudo apt install libphysfs-dev
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 47225a50..4e00c7cc 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.8.0 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.12.4 FATAL_ERROR)
project(DGEngine)
@@ -31,6 +31,7 @@ set(SOURCE_FILES
src/Anchor.h
src/Animation.cpp
src/Animation.h
+ src/AnimationInfo.h
src/AnimationType.h
src/AudioSource.h
src/BaseAnimation.cpp
@@ -62,14 +63,21 @@ set(SOURCE_FILES
src/EventManager.h
src/FadeInOut.cpp
src/FadeInOut.h
+ src/FileBytes.h
src/FileUtils.cpp
src/FileUtils.h
src/Font.h
+ src/Formula.cpp
+ src/Formula.h
+ src/Formulas.h
src/FreeTypeFont.h
src/Game.cpp
src/Game.h
+ src/GameConstants.h
src/GameUtils.cpp
src/GameUtils.h
+ src/GameUtilsGame.cpp
+ src/GameUtilsGame.h
src/IfCondition.cpp
src/IfCondition.h
src/IgnoreResource.h
@@ -85,8 +93,6 @@ set(SOURCE_FILES
src/LoadingScreen.h
src/Menu.cpp
src/Menu.h
- src/Min.cpp
- src/Min.h
src/Movie2.cpp
src/Movie2.h
src/Palette.cpp
@@ -104,8 +110,11 @@ set(SOURCE_FILES
src/ResourceManager.h
src/Scrollable.cpp
src/Scrollable.h
+ src/Shader.h
src/ShaderManager.cpp
src/ShaderManager.h
+ src/Shape.cpp
+ src/Shape.h
src/StreamReader.h
src/StringButton.cpp
src/StringButton.h
@@ -165,9 +174,6 @@ set(SOURCE_FILES
src/Game/ColorLevelLayer.cpp
src/Game/ColorLevelLayer.h
src/Game/FlagsVector.h
- src/Game/Formula.cpp
- src/Game/Formula.h
- src/Game/Formulas.h
src/Game/fsa.h
src/Game/GameHashes.h
src/Game/GameProperties.cpp
@@ -197,12 +203,12 @@ set(SOURCE_FILES
src/Game/LevelSurface.h
src/Game/LightMap.h
src/Game/LightSource.h
- src/Game/Number.h
- src/Game/PairXY.h
src/Game/PathFinder.cpp
src/Game/PathFinder.h
src/Game/Player.cpp
src/Game/Player.h
+ src/Game/PlayerAI.cpp
+ src/Game/PlayerAI.h
src/Game/PlayerClass.cpp
src/Game/PlayerClass.h
src/Game/Quest.cpp
@@ -236,6 +242,8 @@ set(SOURCE_FILES
src/Json/JsonUtils.h
src/Parser/ParseAction.cpp
src/Parser/ParseAction.h
+ src/Parser/ParseActionGame.cpp
+ src/Parser/ParseActionGame.h
src/Parser/ParseAnimation.cpp
src/Parser/ParseAnimation.h
src/Parser/ParseAudio.cpp
@@ -256,6 +264,10 @@ set(SOURCE_FILES
src/Parser/ParseEvent.h
src/Parser/ParseFile.cpp
src/Parser/ParseFile.h
+ src/Parser/ParseFileBytes.cpp
+ src/Parser/ParseFileBytes.h
+ src/Parser/ParseFileGame.cpp
+ src/Parser/ParseFileGame.h
src/Parser/ParseFont.cpp
src/Parser/ParseFont.h
src/Parser/ParseIcon.cpp
@@ -264,10 +276,10 @@ set(SOURCE_FILES
src/Parser/ParseImage.h
src/Parser/ParseImageContainer.cpp
src/Parser/ParseImageContainer.h
+ src/Parser/ParseInputEvent.cpp
+ src/Parser/ParseInputEvent.h
src/Parser/ParseInputText.cpp
src/Parser/ParseInputText.h
- src/Parser/ParseKeyboard.cpp
- src/Parser/ParseKeyboard.h
src/Parser/ParseLoadingScreen.cpp
src/Parser/ParseLoadingScreen.h
src/Parser/ParseMenu.cpp
@@ -284,6 +296,8 @@ set(SOURCE_FILES
src/Parser/ParsePanel.h
src/Parser/ParsePredicate.cpp
src/Parser/ParsePredicate.h
+ src/Parser/ParsePredicateGame.cpp
+ src/Parser/ParsePredicateGame.h
src/Parser/Parser.cpp
src/Parser/Parser.h
src/Parser/ParseRectangle.cpp
@@ -291,6 +305,10 @@ set(SOURCE_FILES
src/Parser/ParserProperties.h
src/Parser/ParseScrollable.cpp
src/Parser/ParseScrollable.h
+ src/Parser/ParseShader.cpp
+ src/Parser/ParseShader.h
+ src/Parser/ParseShape.cpp
+ src/Parser/ParseShape.h
src/Parser/ParseSound.cpp
src/Parser/ParseSound.h
src/Parser/ParseText.cpp
@@ -323,6 +341,10 @@ set(SOURCE_FILES
src/Parser/Game/ParseSpell.h
src/Parser/Utils/ParseUtils.cpp
src/Parser/Utils/ParseUtils.h
+ src/Parser/Utils/ParseUtilsGameKey.cpp
+ src/Parser/Utils/ParseUtilsGameKey.h
+ src/Parser/Utils/ParseUtilsGameVal.cpp
+ src/Parser/Utils/ParseUtilsGameVal.h
src/Parser/Utils/ParseUtilsIdx.cpp
src/Parser/Utils/ParseUtilsIdx.h
src/Parser/Utils/ParseUtilsKey.cpp
@@ -336,6 +358,9 @@ set(SOURCE_FILES
src/Predicates/PredPlayer.h
src/SFML/CompositeSprite.cpp
src/SFML/CompositeSprite.h
+ src/SFML/dr_wav.h
+ src/SFML/GradientCircle.cpp
+ src/SFML/GradientCircle.h
src/SFML/Image2.h
src/SFML/Music2.cpp
src/SFML/Music2.h
@@ -349,8 +374,12 @@ set(SOURCE_FILES
src/SFML/Text2.h
src/SFML/VertexArray2.cpp
src/SFML/VertexArray2.h
+ src/SFML/VertexShape.cpp
+ src/SFML/VertexShape.h
src/SFML/View2.cpp
src/SFML/View2.h
+ src/SFML/Wave2.cpp
+ src/SFML/Wave2.h
src/TexturePacks/BitmapFontTexturePack.cpp
src/TexturePacks/BitmapFontTexturePack.h
src/TexturePacks/CachedTexturePack.cpp
@@ -373,8 +402,11 @@ set(SOURCE_FILES
src/Utils/Helper2D.h
src/Utils/iterator_tpl.h
src/Utils/LRUCache.h
+ src/Utils/Number.h
src/Utils/NumberVector.h
+ src/Utils/PairXY.h
src/Utils/ReverseIterable.h
+ src/Utils/UnorderedStringMap.h
src/Utils/Utils.cpp
src/Utils/Utils.h
)
@@ -406,6 +438,8 @@ if(DGENGINE_DIABLO_FORMAT_SUPPORT)
SET(SOURCE_FILES ${SOURCE_FILES}
src/DS1.cpp
src/DS1.h
+ src/Min.cpp
+ src/Min.h
src/Game/LevelHelper.cpp
src/Game/LevelHelper.h
src/ImageContainers/CELImageContainer.cpp
@@ -429,22 +463,13 @@ endif()
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
-target_link_libraries(${PROJECT_NAME} stdc++fs)
-
if(FFmpeg_FOUND)
include_directories(${FFmpeg_INCLUDES})
target_link_libraries(${PROJECT_NAME} ${FFmpeg_LIBRARIES})
endif()
-if(PHYSFS_FOUND)
- include_directories(${PHYSFS_INCLUDE_DIRS})
- target_link_libraries(${PROJECT_NAME} ${PHYSFS_LIBRARY})
-endif()
-
-if(SFML_FOUND)
- include_directories(${SFML_INCLUDE_DIR})
- target_link_libraries(${PROJECT_NAME} ${SFML_LIBRARIES})
-endif()
+include_directories(${PHYSFS_INCLUDE_DIRS} ${SFML_INCLUDE_DIR})
+target_link_libraries(${PROJECT_NAME} ${PHYSFS_LIBRARY} ${SFML_LIBRARIES})
-set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 17)
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 20)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
diff --git a/DGEngine.sln b/DGEngine.sln
index 9cd17fd7..3993e3af 100755
--- a/DGEngine.sln
+++ b/DGEngine.sln
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.28922.388
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DGEngine", "DGEngine.vcxproj", "{B30255A6-E921-4847-9FB1-26842AB465A4}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DGEngine", "Project.vcxproj", "{B30255A6-E921-4847-9FB1-26842AB465A4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/LICENSE.Zlib.txt b/LICENSE.Zlib.txt
index f156f4f0..937d6059 100755
--- a/LICENSE.Zlib.txt
+++ b/LICENSE.Zlib.txt
@@ -1,4 +1,4 @@
-Copyright (c) 2016 DGEngine
+Copyright (c) 2020 DGEngine
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
diff --git a/LICENSE.txt b/LICENSE.txt
index 143365bf..cd49959c 100755
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,7 +1,7 @@
DGEngine is dual licensed.
if you use diablo file formats support (CEL/CL2/COF/DC6/DCC)
-the license is GPL3. if you don't use these formats, the license if zLib.
+the license is GPL3. if you don't use these formats, the license is zLib.
DGEngine used parts of another project called freeablo (CEL decoding)
licensed under GPL3. The project's author has granted permission to use
@@ -46,10 +46,6 @@ endian uses the BSD license.
https://github.com/steinwurf/endian
-GSL: Guideline Support Library uses the MIT license.
-
-https://github.com/Microsoft/GSL
-
The Liberation Serif Regular font uses the SIL Open Font License.
http://scripts.sil.org/OFL
@@ -65,11 +61,7 @@ https://icculus.org/physfs/
RapidJSON uses the MIT license.
-https://github.com/miloyip/rapidjson/
-
-rectpack2D uses the MIT license.
-
-https://github.com/TeamHypersomnia/rectpack2D
+https://github.com/Tencent/rapidjson
Simple Iterator Template implementation by VinÃcius Garcia uses the MIT license.
@@ -91,6 +83,10 @@ SFML uses the zlib/png license.
https://github.com/SFML/SFML
+dr_wav uses the MIT-0 license.
+
+https://github.com/mackron/dr_libs
+
Other SFML code snippets were taken from the wiki
and should have a permissive license.
diff --git a/DGEngine.vcxproj b/Project.vcxproj
old mode 100755
new mode 100644
similarity index 78%
rename from DGEngine.vcxproj
rename to Project.vcxproj
index c5cd5dca..c9814271
--- a/DGEngine.vcxproj
+++ b/Project.vcxproj
@@ -86,29 +86,35 @@
-
+
+ true
+
+
+
-
-
+
+ true
+
+
@@ -122,11 +128,21 @@
-
-
-
-
-
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
@@ -135,7 +151,9 @@
-
+
+ true
+
@@ -150,6 +168,7 @@
+
@@ -160,12 +179,14 @@
+
+
+
-
@@ -174,15 +195,20 @@
+
+
+
+
+
@@ -192,70 +218,53 @@
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
+
+
+
+
@@ -312,6 +321,7 @@
+
@@ -321,18 +331,23 @@
-
+
+ true
+
+
+
+
+
+
-
-
@@ -343,7 +358,9 @@
-
+
+ true
+
@@ -352,10 +369,9 @@
-
-
+
@@ -372,11 +388,21 @@
-
-
-
-
-
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
@@ -397,6 +423,7 @@
+
@@ -407,12 +434,14 @@
+
+
+
-
@@ -421,16 +450,21 @@
+
+
+
+
+
@@ -443,76 +477,49 @@
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
- true
- true
- true
- true
- true
- true
+ true
+ true
+ true
@@ -525,12 +532,16 @@
-
+
+ true
+
+
+
@@ -538,8 +549,12 @@
+
+
+
+
@@ -563,8 +578,11 @@
+
+
+
@@ -577,10 +595,6 @@
DGEngine
DGEngine
10.0
- x86-windows-static
- x64-windows-static
- x86-windows-static
- x64-windows-static
@@ -758,64 +772,73 @@
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
NativeRecommendedRules.ruleset
true
true
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
NativeRecommendedRules.ruleset
true
true
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
- DGEngine.dir\$(Platform)\$(Configuration)\
+ Project.dir\$(Platform)\$(Configuration)\
+
+
+ true
+
+
+ true
+
+
+ true
@@ -823,11 +846,11 @@
true
.\src;%(AdditionalIncludeDirectories)
Level3
- stdcpp17
+ stdcpplatest
4250;4996
true
true
- %(PreprocessorDefinitions)
+ _HAS_CXX17;_HAS_CXX20;%(PreprocessorDefinitions)
DebugFastLink
@@ -839,11 +862,11 @@
true
.\src;%(AdditionalIncludeDirectories)
Level3
- stdcpp17
+ stdcpplatest
4250;4996
true
true
- %(PreprocessorDefinitions)
+ _HAS_CXX17;_HAS_CXX20;%(PreprocessorDefinitions)
DebugFastLink
@@ -855,7 +878,7 @@
true
.\src;%(AdditionalIncludeDirectories)
Level3
- stdcpp17
+ stdcpplatest
4250;4996
true
NO_DIABLO_FORMAT_SUPPORT;%(PreprocessorDefinitions)
@@ -871,7 +894,7 @@
true
.\src;%(AdditionalIncludeDirectories)
Level3
- stdcpp17
+ stdcpplatest
4250;4996
true
NO_DIABLO_FORMAT_SUPPORT;%(PreprocessorDefinitions)
@@ -887,7 +910,7 @@
true
.\src;%(AdditionalIncludeDirectories)
Level3
- stdcpp17
+ stdcpplatest
4250;4996
true
true
@@ -903,7 +926,7 @@
true
.\src;%(AdditionalIncludeDirectories)
Level3
- stdcpp17
+ stdcpplatest
4250;4996
true
true
@@ -920,7 +943,7 @@
true
.\src;%(AdditionalIncludeDirectories)
USE_SFML_MOVIE_STUB;%(PreprocessorDefinitions)
- stdcpp17
+ stdcpplatest
4250;4996
true
true
@@ -936,7 +959,7 @@
true
.\src;%(AdditionalIncludeDirectories)
USE_SFML_MOVIE_STUB;%(PreprocessorDefinitions)
- stdcpp17
+ stdcpplatest
4250;4996
true
true
@@ -954,7 +977,7 @@
USE_SFML_MOVIE_STUB;%(PreprocessorDefinitions)
-Xclang "-std=c++17" %(AdditionalOptions)
false
- stdcpp17
+ stdcpplatest
true
true
@@ -972,7 +995,7 @@
USE_SFML_MOVIE_STUB;%(PreprocessorDefinitions)
-Xclang "-std=c++17" %(AdditionalOptions)
false
- stdcpp17
+ stdcpplatest
true
true
@@ -990,7 +1013,7 @@
true
.\src;%(AdditionalIncludeDirectories)
AnySuitable
- stdcpp17
+ stdcpplatest
4250;4996
true
true
@@ -1010,7 +1033,7 @@
true
.\src;%(AdditionalIncludeDirectories)
AnySuitable
- stdcpp17
+ stdcpplatest
4250;4996
true
true
@@ -1031,7 +1054,7 @@
.\src;%(AdditionalIncludeDirectories)
AnySuitable
USE_SFML_MOVIE_STUB;%(PreprocessorDefinitions)
- stdcpp17
+ stdcpplatest
4250;4996
true
true
@@ -1052,7 +1075,7 @@
.\src;%(AdditionalIncludeDirectories)
AnySuitable
USE_SFML_MOVIE_STUB;%(PreprocessorDefinitions)
- stdcpp17
+ stdcpplatest
4250;4996
true
true
@@ -1073,7 +1096,7 @@
.\src;%(AdditionalIncludeDirectories)
SFML_STATIC;%(PreprocessorDefinitions)
AnySuitable
- stdcpp17
+ stdcpplatest
4250;4996
true
true
@@ -1096,7 +1119,7 @@
.\src;%(AdditionalIncludeDirectories)
SFML_STATIC;%(PreprocessorDefinitions)
AnySuitable
- stdcpp17
+ stdcpplatest
4250;4996
true
true
@@ -1119,7 +1142,7 @@
.\src;%(AdditionalIncludeDirectories)
SFML_STATIC;USE_SFML_MOVIE_STUB;%(PreprocessorDefinitions)
AnySuitable
- stdcpp17
+ stdcpplatest
4250;4996
true
true
@@ -1142,7 +1165,7 @@
.\src;%(AdditionalIncludeDirectories)
SFML_STATIC;USE_SFML_MOVIE_STUB;%(PreprocessorDefinitions)
AnySuitable
- stdcpp17
+ stdcpplatest
4250;4996
true
true
diff --git a/android/.gitignore b/android/.gitignore
deleted file mode 100755
index 73dab535..00000000
--- a/android/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-/bin
-/build.xml
-/libs
-/local.properties
-/obj
-/proguard-project.txt
-/project.properties
diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml
deleted file mode 100755
index 16cdf9da..00000000
--- a/android/AndroidManifest.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/android/BUILD.txt b/android/BUILD.txt
deleted file mode 100755
index 9741da55..00000000
--- a/android/BUILD.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-The Android install instructions are based on the SFML Android
-build instructions located at:
-https://github.com/SFML/SFML/wiki/Tutorial:-Building-SFML-for-Android
-
-This project is based on the SFML Android example that comes with SFML.
-If you are able to build SFML's Android example, you will be able to build
-this project as well.
-
-Use a recent Android NDK as this project uses C++17.
-
-Copy all the files inside the /src folder to the /android/jni folder.
-
-You need physfs for Android. You can use this one:
-https://github.com/dgengin/physfs
-Follow the BUILD.txt instructions in the android folder.
-
-Movie playback is not supported on Android. The preprocessor
-define USE_SFML_MOVIE_STUB is used to use a stub class that does nothing
-when atempting to play a video.
-
-The Android port, for now, reads the files from the root of the sdcard.
-You need DIABDAT.MPQ (or folder/zip) and the contents of the gamefiles
-folder in a zip.
-Note: make sure gamefiles.zip has main.json at the root of the archive.
-MPQ files are only supported if you use the above physfs version.
-
-adb push DIABDAT.MPQ /sdcard/DIABDAT.MPQ
-adb push gamefiles.zip /sdcard/gamefiles.zip
-
-For quick reference, here are the commands to build the project:
-
-android update project --target "android-23" --path .
-ndk-build
-ant debug
-
-adb install bin/NativeActivity-debug.apk
diff --git a/android/jni/.gitignore b/android/jni/.gitignore
deleted file mode 100755
index a524e6c1..00000000
--- a/android/jni/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-*
-!.gitignore
-!Android.mk
-!Application.mk
diff --git a/android/jni/Android.mk b/android/jni/Android.mk
deleted file mode 100755
index deaf587c..00000000
--- a/android/jni/Android.mk
+++ /dev/null
@@ -1,388 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_CPP_FEATURES += exceptions
-LOCAL_CFLAGS := -DUSE_SFML_MOVIE_STUB
-
-LOCAL_MODULE := dgengine
-
-LOCAL_SRC_FILES := Main.cpp
-LOCAL_SRC_FILES += Alignment.h
-LOCAL_SRC_FILES += Anchor.h
-LOCAL_SRC_FILES += Animation.cpp
-LOCAL_SRC_FILES += Animation.h
-LOCAL_SRC_FILES += AnimationType.h
-LOCAL_SRC_FILES += AudioSource.h
-LOCAL_SRC_FILES += BaseAnimation.cpp
-LOCAL_SRC_FILES += BaseAnimation.h
-LOCAL_SRC_FILES += BindableText.cpp
-LOCAL_SRC_FILES += BindableText.h
-LOCAL_SRC_FILES += BitmapButton.cpp
-LOCAL_SRC_FILES += BitmapButton.h
-LOCAL_SRC_FILES += BitmapFont.cpp
-LOCAL_SRC_FILES += BitmapFont.h
-LOCAL_SRC_FILES += BitmapText.cpp
-LOCAL_SRC_FILES += BitmapText.h
-LOCAL_SRC_FILES += BlendMode.h
-LOCAL_SRC_FILES += Button.cpp
-LOCAL_SRC_FILES += Button.h
-LOCAL_SRC_FILES += CachedImagePack.cpp
-LOCAL_SRC_FILES += CachedImagePack.h
-LOCAL_SRC_FILES += Circle.cpp
-LOCAL_SRC_FILES += Circle.h
-LOCAL_SRC_FILES += CmdLineUtils.cpp
-LOCAL_SRC_FILES += CmdLineUtils.h
-LOCAL_SRC_FILES += CompositeTexture.cpp
-LOCAL_SRC_FILES += CompositeTexture.h
-LOCAL_SRC_FILES += DrawableText.h
-LOCAL_SRC_FILES += DS1.cpp
-LOCAL_SRC_FILES += DS1.h
-LOCAL_SRC_FILES += Dun.cpp
-LOCAL_SRC_FILES += Dun.h
-LOCAL_SRC_FILES += Event.cpp
-LOCAL_SRC_FILES += Event.h
-LOCAL_SRC_FILES += EventManager.h
-LOCAL_SRC_FILES += FadeInOut.cpp
-LOCAL_SRC_FILES += FadeInOut.h
-LOCAL_SRC_FILES += FileUtils.cpp
-LOCAL_SRC_FILES += FileUtils.h
-LOCAL_SRC_FILES += Font.h
-LOCAL_SRC_FILES += FreeTypeFont.h
-LOCAL_SRC_FILES += Game.cpp
-LOCAL_SRC_FILES += Game.h
-LOCAL_SRC_FILES += GameUtils.cpp
-LOCAL_SRC_FILES += GameUtils.h
-LOCAL_SRC_FILES += IfCondition.cpp
-LOCAL_SRC_FILES += IfCondition.h
-LOCAL_SRC_FILES += IgnoreResource.h
-LOCAL_SRC_FILES += Image.cpp
-LOCAL_SRC_FILES += Image.h
-LOCAL_SRC_FILES += ImageUtils.cpp
-LOCAL_SRC_FILES += ImageUtils.h
-LOCAL_SRC_FILES += InputEvent.cpp
-LOCAL_SRC_FILES += InputEvent.h
-LOCAL_SRC_FILES += InputText.cpp
-LOCAL_SRC_FILES += InputText.h
-LOCAL_SRC_FILES += LoadingScreen.cpp
-LOCAL_SRC_FILES += LoadingScreen.h
-LOCAL_SRC_FILES += Menu.cpp
-LOCAL_SRC_FILES += Menu.h
-LOCAL_SRC_FILES += Min.cpp
-LOCAL_SRC_FILES += Min.h
-LOCAL_SRC_FILES += Movie2.cpp
-LOCAL_SRC_FILES += Movie2.h
-LOCAL_SRC_FILES += Palette.cpp
-LOCAL_SRC_FILES += Palette.h
-LOCAL_SRC_FILES += Panel.cpp
-LOCAL_SRC_FILES += Panel.h
-LOCAL_SRC_FILES += Pcx.cpp
-LOCAL_SRC_FILES += Pcx.h
-LOCAL_SRC_FILES += PhysFSStream.cpp
-LOCAL_SRC_FILES += PhysFSStream.h
-LOCAL_SRC_FILES += Queryable.h
-LOCAL_SRC_FILES += Rectangle.cpp
-LOCAL_SRC_FILES += Rectangle.h
-LOCAL_SRC_FILES += ResourceManager.cpp
-LOCAL_SRC_FILES += ResourceManager.h
-LOCAL_SRC_FILES += Scrollable.cpp
-LOCAL_SRC_FILES += Scrollable.h
-LOCAL_SRC_FILES += ShaderManager.cpp
-LOCAL_SRC_FILES += ShaderManager.h
-LOCAL_SRC_FILES += StreamReader.h
-LOCAL_SRC_FILES += StringButton.cpp
-LOCAL_SRC_FILES += StringButton.h
-LOCAL_SRC_FILES += StringText.cpp
-LOCAL_SRC_FILES += StringText.h
-LOCAL_SRC_FILES += Text.cpp
-LOCAL_SRC_FILES += Text.h
-LOCAL_SRC_FILES += TextureInfo.h
-LOCAL_SRC_FILES += TextUtils.cpp
-LOCAL_SRC_FILES += TextUtils.h
-LOCAL_SRC_FILES += TileSet.cpp
-LOCAL_SRC_FILES += TileSet.h
-LOCAL_SRC_FILES += UIObject.cpp
-LOCAL_SRC_FILES += UIObject.h
-LOCAL_SRC_FILES += Variable.cpp
-LOCAL_SRC_FILES += Variable.h
-LOCAL_SRC_FILES += VarOrPredicate.h
-LOCAL_SRC_FILES += Actions/ActAction.h
-LOCAL_SRC_FILES += Actions/ActAnimation.h
-LOCAL_SRC_FILES += Actions/ActAudio.h
-LOCAL_SRC_FILES += Actions/ActButton.h
-LOCAL_SRC_FILES += Actions/ActCondition.h
-LOCAL_SRC_FILES += Actions/ActCursor.h
-LOCAL_SRC_FILES += Actions/ActDrawable.h
-LOCAL_SRC_FILES += Actions/ActEvent.h
-LOCAL_SRC_FILES += Actions/ActFade.h
-LOCAL_SRC_FILES += Actions/ActFocus.h
-LOCAL_SRC_FILES += Actions/ActFont.h
-LOCAL_SRC_FILES += Actions/ActGame.h
-LOCAL_SRC_FILES += Actions/ActImage.h
-LOCAL_SRC_FILES += Actions/ActInputText.h
-LOCAL_SRC_FILES += Actions/ActIO.h
-LOCAL_SRC_FILES += Actions/Action.h
-LOCAL_SRC_FILES += Actions/ActiontList.h
-LOCAL_SRC_FILES += Actions/ActItem.h
-LOCAL_SRC_FILES += Actions/ActLevel.h
-LOCAL_SRC_FILES += Actions/ActLevelObject.h
-LOCAL_SRC_FILES += Actions/ActLoad.h
-LOCAL_SRC_FILES += Actions/ActLoadingScreen.h
-LOCAL_SRC_FILES += Actions/ActMenu.h
-LOCAL_SRC_FILES += Actions/ActMount.h
-LOCAL_SRC_FILES += Actions/ActMovie.h
-LOCAL_SRC_FILES += Actions/ActPalette.h
-LOCAL_SRC_FILES += Actions/ActPlayer.h
-LOCAL_SRC_FILES += Actions/ActQuest.h
-LOCAL_SRC_FILES += Actions/ActRandom.h
-LOCAL_SRC_FILES += Actions/ActResource.h
-LOCAL_SRC_FILES += Actions/ActScrollable.h
-LOCAL_SRC_FILES += Actions/ActShader.h
-LOCAL_SRC_FILES += Actions/ActSound.h
-LOCAL_SRC_FILES += Actions/ActText.h
-LOCAL_SRC_FILES += Actions/ActVariable.h
-LOCAL_SRC_FILES += Actions/ActVisibility.h
-LOCAL_SRC_FILES += Game/Classifier.cpp
-LOCAL_SRC_FILES += Game/Classifier.h
-LOCAL_SRC_FILES += Game/Classifiers.h
-LOCAL_SRC_FILES += Game/ColorLevelLayer.cpp
-LOCAL_SRC_FILES += Game/ColorLevelLayer.h
-LOCAL_SRC_FILES += Game/FlagsVector.h
-LOCAL_SRC_FILES += Game/Formula.cpp
-LOCAL_SRC_FILES += Game/Formula.h
-LOCAL_SRC_FILES += Game/Formulas.h
-LOCAL_SRC_FILES += Game/fsa.h
-LOCAL_SRC_FILES += Game/GameHashes.h
-LOCAL_SRC_FILES += Game/GameProperties.cpp
-LOCAL_SRC_FILES += Game/GameProperties.h
-LOCAL_SRC_FILES += Game/Inventories.h
-LOCAL_SRC_FILES += Game/Inventory.cpp
-LOCAL_SRC_FILES += Game/Inventory.h
-LOCAL_SRC_FILES += Game/Item.cpp
-LOCAL_SRC_FILES += Game/Item.h
-LOCAL_SRC_FILES += Game/ItemClass.cpp
-LOCAL_SRC_FILES += Game/ItemClass.h
-LOCAL_SRC_FILES += Game/ItemLocation.h
-LOCAL_SRC_FILES += Game/Level.cpp
-LOCAL_SRC_FILES += Game/Level.h
-LOCAL_SRC_FILES += Game/LevelCell.cpp
-LOCAL_SRC_FILES += Game/LevelCell.h
-LOCAL_SRC_FILES += Game/LevelFlags.h
-LOCAL_SRC_FILES += Game/LevelHelper.cpp
-LOCAL_SRC_FILES += Game/LevelHelper.h
-LOCAL_SRC_FILES += Game/LevelLayer.h
-LOCAL_SRC_FILES += Game/LevelMap.cpp
-LOCAL_SRC_FILES += Game/LevelMap.h
-LOCAL_SRC_FILES += Game/LevelObject.cpp
-LOCAL_SRC_FILES += Game/LevelObject.h
-LOCAL_SRC_FILES += Game/LevelObjectClass.cpp
-LOCAL_SRC_FILES += Game/LevelObjectClass.h
-LOCAL_SRC_FILES += Game/LevelObjectClassDefaults.h
-LOCAL_SRC_FILES += Game/LevelSurface.cpp
-LOCAL_SRC_FILES += Game/LevelSurface.h
-LOCAL_SRC_FILES += Game/LightMap.h
-LOCAL_SRC_FILES += Game/LightSource.h
-LOCAL_SRC_FILES += Game/Number.h
-LOCAL_SRC_FILES += Game/PairXY.h
-LOCAL_SRC_FILES += Game/PathFinder.cpp
-LOCAL_SRC_FILES += Game/PathFinder.h
-LOCAL_SRC_FILES += Game/Player.cpp
-LOCAL_SRC_FILES += Game/Player.h
-LOCAL_SRC_FILES += Game/PlayerClass.cpp
-LOCAL_SRC_FILES += Game/PlayerClass.h
-LOCAL_SRC_FILES += Game/Quest.cpp
-LOCAL_SRC_FILES += Game/Quest.h
-LOCAL_SRC_FILES += Game/SimpleLevelObject.cpp
-LOCAL_SRC_FILES += Game/SimpleLevelObject.h
-LOCAL_SRC_FILES += Game/SimpleLevelObjectClass.h
-LOCAL_SRC_FILES += Game/Spell.cpp
-LOCAL_SRC_FILES += Game/Spell.h
-LOCAL_SRC_FILES += Game/TextureLevelLayer.cpp
-LOCAL_SRC_FILES += Game/TextureLevelLayer.h
-LOCAL_SRC_FILES += Game/TilesetLevelLayer.cpp
-LOCAL_SRC_FILES += Game/TilesetLevelLayer.h
-LOCAL_SRC_FILES += Game/stlastar.h
-LOCAL_SRC_FILES += Game/Save/SaveItem.cpp
-LOCAL_SRC_FILES += Game/Save/SaveItem.h
-LOCAL_SRC_FILES += Game/Save/SaveLevel.cpp
-LOCAL_SRC_FILES += Game/Save/SaveLevel.h
-LOCAL_SRC_FILES += Game/Save/SavePlayer.cpp
-LOCAL_SRC_FILES += Game/Save/SavePlayer.h
-LOCAL_SRC_FILES += Game/Save/SaveProperties.h
-LOCAL_SRC_FILES += Game/Save/SaveSimpleLevelObject.cpp
-LOCAL_SRC_FILES += Game/Save/SaveSimpleLevelObject.h
-LOCAL_SRC_FILES += Game/Save/SaveUtils.cpp
-LOCAL_SRC_FILES += Game/Save/SaveUtils.h
-LOCAL_SRC_FILES += ImageContainers/CELImageContainer.cpp
-LOCAL_SRC_FILES += ImageContainers/CELImageContainer.h
-LOCAL_SRC_FILES += ImageContainers/CL2ImageContainer.cpp
-LOCAL_SRC_FILES += ImageContainers/CL2ImageContainer.h
-LOCAL_SRC_FILES += ImageContainers/DC6ImageContainer.cpp
-LOCAL_SRC_FILES += ImageContainers/DC6ImageContainer.h
-LOCAL_SRC_FILES += ImageContainers/DCCImageContainer.cpp
-LOCAL_SRC_FILES += ImageContainers/DCCImageContainer.h
-LOCAL_SRC_FILES += ImageContainers/DT1ImageContainer.cpp
-LOCAL_SRC_FILES += ImageContainers/DT1ImageContainer.h
-LOCAL_SRC_FILES += ImageContainers/ImageContainer.h
-LOCAL_SRC_FILES += ImageContainers/SimpleImageContainer.cpp
-LOCAL_SRC_FILES += ImageContainers/SimpleImageContainer.h
-LOCAL_SRC_FILES += Json/JsonParser.h
-LOCAL_SRC_FILES += Json/JsonUtils.cpp
-LOCAL_SRC_FILES += Json/JsonUtils.h
-LOCAL_SRC_FILES += Parser/ParseAction.cpp
-LOCAL_SRC_FILES += Parser/ParseAction.h
-LOCAL_SRC_FILES += Parser/ParseAnimation.cpp
-LOCAL_SRC_FILES += Parser/ParseAnimation.h
-LOCAL_SRC_FILES += Parser/ParseAudio.cpp
-LOCAL_SRC_FILES += Parser/ParseAudio.h
-LOCAL_SRC_FILES += Parser/ParseAudioCommon.cpp
-LOCAL_SRC_FILES += Parser/ParseAudioCommon.h
-LOCAL_SRC_FILES += Parser/ParseButton.cpp
-LOCAL_SRC_FILES += Parser/ParseButton.h
-LOCAL_SRC_FILES += Parser/ParseCircle.cpp
-LOCAL_SRC_FILES += Parser/ParseCircle.h
-LOCAL_SRC_FILES += Parser/ParseCompositeTexture.cpp
-LOCAL_SRC_FILES += Parser/ParseCompositeTexture.h
-LOCAL_SRC_FILES += Parser/ParseCondition.cpp
-LOCAL_SRC_FILES += Parser/ParseCondition.h
-LOCAL_SRC_FILES += Parser/ParseCursor.cpp
-LOCAL_SRC_FILES += Parser/ParseCursor.h
-LOCAL_SRC_FILES += Parser/ParseEvent.cpp
-LOCAL_SRC_FILES += Parser/ParseEvent.h
-LOCAL_SRC_FILES += Parser/ParseFile.cpp
-LOCAL_SRC_FILES += Parser/ParseFile.h
-LOCAL_SRC_FILES += Parser/ParseFont.cpp
-LOCAL_SRC_FILES += Parser/ParseFont.h
-LOCAL_SRC_FILES += Parser/ParseIcon.cpp
-LOCAL_SRC_FILES += Parser/ParseIcon.h
-LOCAL_SRC_FILES += Parser/ParseImage.cpp
-LOCAL_SRC_FILES += Parser/ParseImage.h
-LOCAL_SRC_FILES += Parser/ParseImageContainer.cpp
-LOCAL_SRC_FILES += Parser/ParseImageContainer.h
-LOCAL_SRC_FILES += Parser/ParseInputText.cpp
-LOCAL_SRC_FILES += Parser/ParseInputText.h
-LOCAL_SRC_FILES += Parser/ParseKeyboard.cpp
-LOCAL_SRC_FILES += Parser/ParseKeyboard.h
-LOCAL_SRC_FILES += Parser/ParseLoadingScreen.cpp
-LOCAL_SRC_FILES += Parser/ParseLoadingScreen.h
-LOCAL_SRC_FILES += Parser/ParseMenu.cpp
-LOCAL_SRC_FILES += Parser/ParseMenu.h
-LOCAL_SRC_FILES += Parser/ParseMenuButton.cpp
-LOCAL_SRC_FILES += Parser/ParseMenuButton.h
-LOCAL_SRC_FILES += Parser/ParseMountFile.cpp
-LOCAL_SRC_FILES += Parser/ParseMountFile.h
-LOCAL_SRC_FILES += Parser/ParseMovie.cpp
-LOCAL_SRC_FILES += Parser/ParseMovie.h
-LOCAL_SRC_FILES += Parser/ParsePalette.cpp
-LOCAL_SRC_FILES += Parser/ParsePalette.h
-LOCAL_SRC_FILES += Parser/ParsePanel.cpp
-LOCAL_SRC_FILES += Parser/ParsePanel.h
-LOCAL_SRC_FILES += Parser/ParsePredicate.cpp
-LOCAL_SRC_FILES += Parser/ParsePredicate.h
-LOCAL_SRC_FILES += Parser/Parser.cpp
-LOCAL_SRC_FILES += Parser/Parser.h
-LOCAL_SRC_FILES += Parser/ParseRectangle.cpp
-LOCAL_SRC_FILES += Parser/ParseRectangle.h
-LOCAL_SRC_FILES += Parser/ParserProperties.h
-LOCAL_SRC_FILES += Parser/ParseScrollable.cpp
-LOCAL_SRC_FILES += Parser/ParseScrollable.h
-LOCAL_SRC_FILES += Parser/ParseSound.cpp
-LOCAL_SRC_FILES += Parser/ParseSound.h
-LOCAL_SRC_FILES += Parser/ParseText.cpp
-LOCAL_SRC_FILES += Parser/ParseText.h
-LOCAL_SRC_FILES += Parser/ParseTexture.cpp
-LOCAL_SRC_FILES += Parser/ParseTexture.h
-LOCAL_SRC_FILES += Parser/ParseTexturePack.cpp
-LOCAL_SRC_FILES += Parser/ParseTexturePack.h
-LOCAL_SRC_FILES += Parser/ParseVariable.cpp
-LOCAL_SRC_FILES += Parser/ParseVariable.h
-LOCAL_SRC_FILES += Parser/Game/ParseClassifier.cpp
-LOCAL_SRC_FILES += Parser/Game/ParseClassifier.h
-LOCAL_SRC_FILES += Parser/Game/ParseItem.cpp
-LOCAL_SRC_FILES += Parser/Game/ParseItem.h
-LOCAL_SRC_FILES += Parser/Game/ParseItemClass.cpp
-LOCAL_SRC_FILES += Parser/Game/ParseItemClass.h
-LOCAL_SRC_FILES += Parser/Game/ParseLevel.cpp
-LOCAL_SRC_FILES += Parser/Game/ParseLevel.h
-LOCAL_SRC_FILES += Parser/Game/ParseLevelObject.cpp
-LOCAL_SRC_FILES += Parser/Game/ParseLevelObject.h
-LOCAL_SRC_FILES += Parser/Game/ParseLevelObjectClass.cpp
-LOCAL_SRC_FILES += Parser/Game/ParseLevelObjectClass.h
-LOCAL_SRC_FILES += Parser/Game/ParsePlayer.cpp
-LOCAL_SRC_FILES += Parser/Game/ParsePlayer.h
-LOCAL_SRC_FILES += Parser/Game/ParsePlayerClass.cpp
-LOCAL_SRC_FILES += Parser/Game/ParsePlayerClass.h
-LOCAL_SRC_FILES += Parser/Game/ParseQuest.cpp
-LOCAL_SRC_FILES += Parser/Game/ParseQuest.h
-LOCAL_SRC_FILES += Parser/Game/ParseSpell.cpp
-LOCAL_SRC_FILES += Parser/Game/ParseSpell.h
-LOCAL_SRC_FILES += Parser/Utils/ParseUtils.cpp
-LOCAL_SRC_FILES += Parser/Utils/ParseUtils.h
-LOCAL_SRC_FILES += Parser/Utils/ParseUtilsIdx.cpp
-LOCAL_SRC_FILES += Parser/Utils/ParseUtilsIdx.h
-LOCAL_SRC_FILES += Parser/Utils/ParseUtilsKey.cpp
-LOCAL_SRC_FILES += Parser/Utils/ParseUtilsKey.h
-LOCAL_SRC_FILES += Parser/Utils/ParseUtilsVal.cpp
-LOCAL_SRC_FILES += Parser/Utils/ParseUtilsVal.h
-LOCAL_SRC_FILES += Predicates/Predicate.h
-LOCAL_SRC_FILES += Predicates/PredIO.h
-LOCAL_SRC_FILES += Predicates/PredItem.h
-LOCAL_SRC_FILES += Predicates/PredLevelObject.h
-LOCAL_SRC_FILES += Predicates/PredPlayer.h
-LOCAL_SRC_FILES += SFML/CompositeSprite.cpp
-LOCAL_SRC_FILES += SFML/CompositeSprite.h
-LOCAL_SRC_FILES += SFML/Image2.h
-LOCAL_SRC_FILES += SFML/Music2.cpp
-LOCAL_SRC_FILES += SFML/Music2.h
-LOCAL_SRC_FILES += SFML/MusicLoops.cpp
-LOCAL_SRC_FILES += SFML/MusicLoops.h
-LOCAL_SRC_FILES += SFML/SFMLUtils.cpp
-LOCAL_SRC_FILES += SFML/SFMLUtils.h
-LOCAL_SRC_FILES += SFML/Sprite2.cpp
-LOCAL_SRC_FILES += SFML/Sprite2.h
-LOCAL_SRC_FILES += SFML/Text2.cpp
-LOCAL_SRC_FILES += SFML/Text2.h
-LOCAL_SRC_FILES += SFML/VertexArray2.cpp
-LOCAL_SRC_FILES += SFML/VertexArray2.h
-LOCAL_SRC_FILES += SFML/View2.cpp
-LOCAL_SRC_FILES += SFML/View2.h
-LOCAL_SRC_FILES += TexturePacks/BitmapFontTexturePack.cpp
-LOCAL_SRC_FILES += TexturePacks/BitmapFontTexturePack.h
-LOCAL_SRC_FILES += TexturePacks/CachedTexturePack.cpp
-LOCAL_SRC_FILES += TexturePacks/CachedTexturePack.h
-LOCAL_SRC_FILES += TexturePacks/IndexedTexturePack.cpp
-LOCAL_SRC_FILES += TexturePacks/IndexedTexturePack.h
-LOCAL_SRC_FILES += TexturePacks/RectTexturePack.cpp
-LOCAL_SRC_FILES += TexturePacks/RectTexturePack.h
-LOCAL_SRC_FILES += TexturePacks/SimpleTexturePack.cpp
-LOCAL_SRC_FILES += TexturePacks/SimpleTexturePack.h
-LOCAL_SRC_FILES += TexturePacks/StackedTexturePack.cpp
-LOCAL_SRC_FILES += TexturePacks/StackedTexturePack.h
-LOCAL_SRC_FILES += TexturePacks/TexturePack.cpp
-LOCAL_SRC_FILES += TexturePacks/TexturePack.h
-LOCAL_SRC_FILES += Utils/EasedValue.h
-LOCAL_SRC_FILES += Utils/EasingFunctions.h
-LOCAL_SRC_FILES += Utils/ElapsedTime.h
-LOCAL_SRC_FILES += Utils/FixedArray.h
-LOCAL_SRC_FILES += Utils/FixedMap.h
-LOCAL_SRC_FILES += Utils/Helper2D.h
-LOCAL_SRC_FILES += Utils/iterator_tpl.h
-LOCAL_SRC_FILES += Utils/LRUCache.h
-LOCAL_SRC_FILES += Utils/NumberVector.h
-LOCAL_SRC_FILES += Utils/ReverseIterable.h
-LOCAL_SRC_FILES += Utils/Utils.cpp
-LOCAL_SRC_FILES += Utils/Utils.h
-
-LOCAL_SHARED_LIBRARIES := sfml-system
-LOCAL_SHARED_LIBRARIES += sfml-window
-LOCAL_SHARED_LIBRARIES += sfml-graphics
-LOCAL_SHARED_LIBRARIES += sfml-audio
-LOCAL_SHARED_LIBRARIES += sfml-network
-LOCAL_SHARED_LIBRARIES += libphysfs
-LOCAL_SHARED_LIBRARIES += libc++_shared
-LOCAL_WHOLE_STATIC_LIBRARIES := sfml-main
-
-include $(BUILD_SHARED_LIBRARY)
-
-$(call import-module,sfml)
-$(call import-module,physfs)
diff --git a/android/jni/Application.mk b/android/jni/Application.mk
deleted file mode 100755
index bb327ed7..00000000
--- a/android/jni/Application.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-NDK_TOOLCHAIN_VERSION := 4.9
-NDK_TOOLCHAIN_VERSION := clang
-APP_PLATFORM := android-14
-APP_STL := c++_shared
-APP_CPPFLAGS := -std=c++17
-APP_CPPFLAGS += -frtti
-APP_ABI := x86
-APP_MODULES := sfml-activity dgengine
diff --git a/android/res/drawable-mdpi/logo.png b/android/res/drawable-mdpi/logo.png
deleted file mode 100755
index 87786889..00000000
Binary files a/android/res/drawable-mdpi/logo.png and /dev/null differ
diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml
deleted file mode 100755
index bf47e45e..00000000
--- a/android/res/values/strings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- DGEngine
-
diff --git a/gamefilesd/level/afterLevelLoad.json b/gamefilesd/level/afterLevelLoad.json
index 1b694b61..b7ef758c 100755
--- a/gamefilesd/level/afterLevelLoad.json
+++ b/gamefilesd/level/afterLevelLoad.json
@@ -29,6 +29,7 @@
"param2": 0,
"then": { "name": "audio.stop", "id": "main" },
"else": { "name": "audio.play", "id": "main" }
- }
+ },
+ { "name": "drawable.visible", "id": "txtZoom", "visible": false }
]
}
\ No newline at end of file
diff --git a/gamefilesd/level/data/l1/l1_big.json b/gamefilesd/level/data/l1/l1_big.json
deleted file mode 100755
index a15705de..00000000
--- a/gamefilesd/level/data/l1/l1_big.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "texture": [
- {
- "id": "l1_back_big",
- "file": "level/data/l1/l1_back_big.png"
- },
- {
- "id": "l1_front_big",
- "file": "level/data/l1/l1_front_big.png"
- }
- ],
- "texturePack": [
- {
- "id": "l1_back_big",
- "texture": "l1_back_big",
- "frames": [16, 34],
- "direction": "horizontal",
- "offset": [0, 0]
- },
- {
- "id": "l1_front_big",
- "texture": "l1_front_big",
- "frames": [34, 14],
- "direction": "horizontal",
- "offset": [0, -256]
- }
- ]
-}
\ No newline at end of file
diff --git a/gamefilesd/level/data/l1/l1s.json b/gamefilesd/level/data/l1/l1s.json
deleted file mode 100755
index 1da87477..00000000
--- a/gamefilesd/level/data/l1/l1s.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "texturePack": {
- "id": "l1s",
- "file": "levels/l1data/l1s.cel",
- "imageContainer": "l1s",
- "palette": "{1}",
- "offset": [0, -128],
- "textureIndexes": [
- [10, 1],
- [11, 0],
- [70, 0],
- [210, 0],
- [248, 1],
- [254, 3],
- [258, 4],
- [320, 0],
- [324, 1],
- [330, 1],
- [340, 0],
- [343, 1],
- [392, 6],
- [394, 7],
- [407, 6],
- [417, 0],
- [420, 1]
- ]
- }
-}
\ No newline at end of file
diff --git a/gamefilesd/level/data/l2/l2s.json b/gamefilesd/level/data/l2/l2s.json
deleted file mode 100755
index 3b938afe..00000000
--- a/gamefilesd/level/data/l2/l2s.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "texturePack": [
- {
- "id": "l2s",
- "file": "levels/l2data/l2s.cel",
- "imageContainer": "l2s",
- "palette": "{1}",
- "offset": [0, -128],
- "rects": [
- { "index": 0, "rect": [0, 0, 64, 160], "offset": [32, 16] },
- { "index": 1, "rect": [0, 0, 64, 160], "offset": [32, 16] },
- { "index": 2, "rect": [0, 0, 64, 160] },
- { "index": 3, "rect": [0, 0, 64, 160] },
- { "index": 4, "rect": [0, 0, 64, 160] },
- { "index": 5, "rect": [0, 0, 64, 160] },
- { "index": 0, "rect": [0, 0, 64, 160], "offset": [-64, 32] },
- { "index": 1, "rect": [0, 0, 64, 160], "offset": [-64, 32] },
- { "index": 2, "rect": [0, 0, 64, 160], "offset": [64, 32] },
- { "index": 3, "rect": [0, 0, 64, 160], "offset": [64, 32] },
- { "index": 1, "rect": [0, 0, 64, 160], "offset": [0, 32] }
- ],
- "textureIndexes": [
- [12, 4],
- [16, 5],
- [130, 7],
- [131, 6],
- [133, 8],
- [134, 9],
- [137, 8],
- [138, 9],
- [140, 8],
- [142, 8],
- [145, 2],
- [146, 3],
- [153, 1],
- [155, 0],
- [516, 10],
- [550, 4]
- ]
- },
- {
- "id": "l2s_2",
- "imageContainer": "l2s",
- "palette": "{1}",
- "offset": [0, -128],
- "rects": [
- { "index": 1, "rect": [0, 0, 64, 160], "offset": [-64, 32] }
- ],
- "textureIndexes": [
- [137, 0]
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/gamefilesd/level/default/catacombs.json b/gamefilesd/level/default/catacombs.json
index c1cd6ed0..83f57227 100755
--- a/gamefilesd/level/default/catacombs.json
+++ b/gamefilesd/level/default/catacombs.json
@@ -13,19 +13,86 @@
}
}
},
- "load": ["level/data/l2/l2s.json", "level"],
+ "imageContainer": [
+ { "file": "levels/l2data/l2.cel" },
+ { "file": "levels/l2data/l2s.cel" }
+ ],
+ "texturePack": [
+ {
+ "id": "l2",
+ "imageContainer": "l2",
+ "palette": "level",
+ "min": "levels/l2data/l2.min",
+ "minBlocks": 10
+ },
+ {
+ "id": "l2_top",
+ "imageContainer": "l2",
+ "palette": "level",
+ "min": "levels/l2data/l2.min",
+ "minBlocks": 10,
+ "topTiles": true
+ },
+ {
+ "id": "l2s",
+ "imageContainer": "l2s",
+ "palette": "level",
+ "offset": [0, -128],
+ "rects": [
+ { "index": 0, "rect": [0, 0, 64, 160], "offset": [32, 16] },
+ { "index": 1, "rect": [0, 0, 64, 160], "offset": [32, 16] },
+ { "index": 2, "rect": [0, 0, 64, 160] },
+ { "index": 3, "rect": [0, 0, 64, 160] },
+ { "index": 4, "rect": [0, 0, 64, 160] },
+ { "index": 5, "rect": [0, 0, 64, 160] },
+ { "index": 0, "rect": [0, 0, 64, 160], "offset": [-64, 32] },
+ { "index": 1, "rect": [0, 0, 64, 160], "offset": [-64, 32] },
+ { "index": 2, "rect": [0, 0, 64, 160], "offset": [64, 32] },
+ { "index": 3, "rect": [0, 0, 64, 160], "offset": [64, 32] },
+ { "index": 1, "rect": [0, 0, 64, 160], "offset": [0, 32] }
+ ],
+ "textureIndexes": [
+ [12, 4],
+ [16, 5],
+ [130, 7],
+ [131, 6],
+ [133, 8],
+ [134, 9],
+ [137, 8],
+ [138, 9],
+ [140, 8],
+ [142, 8],
+ [145, 2],
+ [146, 3],
+ [153, 1],
+ [155, 0],
+ [516, 10],
+ [550, 4]
+ ]
+ },
+ {
+ "id": "l2s_2",
+ "imageContainer": "l2s",
+ "palette": "level",
+ "offset": [0, -128],
+ "rects": [
+ { "index": 1, "rect": [0, 0, 64, 160], "offset": [-64, 32] }
+ ],
+ "textureIndexes": [
+ [137, 0]
+ ]
+ }
+ ],
"level": {
"id": "level",
- "palette": "level",
- "file": "levels/l2data/l2.cel",
"layers": [
+ { "index": 0, "texturePack": "l2" },
+ { "index": 0, "texturePack": "l2_top" },
{ "index": 0, "texturePack": "l2s" },
{ "index": 0, "texturePack": "l2s_2" }
],
"outOfBoundsTile": 11,
"til": "levels/l2data/l2.til",
- "min": "levels/l2data/l2.min",
- "minBlocks": 10,
"flags": "levels/l2data/l2.sol",
"defaultLight": 255
}
diff --git a/gamefilesd/level/default/caves.json b/gamefilesd/level/default/caves.json
index e4e7d8c5..fca5aac9 100755
--- a/gamefilesd/level/default/caves.json
+++ b/gamefilesd/level/default/caves.json
@@ -22,14 +22,34 @@
"id": "colorCycle",
"fromId": "level"
},
+ "imageContainer": {
+ "file": "levels/l3data/l3.cel"
+ },
+ "texturePack": [
+ {
+ "id": "l3",
+ "imageContainer": "l3",
+ "palette": "level",
+ "min": "levels/l3data/l3.min",
+ "minBlocks": 10
+ },
+ {
+ "id": "l3_top",
+ "imageContainer": "l3",
+ "palette": "level",
+ "min": "levels/l3data/l3.min",
+ "minBlocks": 10,
+ "topTiles": true
+ }
+ ],
"level": {
"id": "level",
- "palette": "level",
- "file": "levels/l3data/l3.cel",
+ "layers": [
+ { "index": 0, "texturePack": "l3" },
+ { "index": 0, "texturePack": "l3_top" }
+ ],
"outOfBoundsTile": 7,
"til": "levels/l3data/l3.til",
- "min": "levels/l3data/l3.min",
- "minBlocks": 10,
"flags": "levels/l3data/l3.sol",
"defaultLight": 255,
"lightMap": "level/data/l3/lightMap.txt"
diff --git a/gamefilesd/level/default/dungeon.json b/gamefilesd/level/default/dungeon.json
index 176c16f3..f5a89d70 100755
--- a/gamefilesd/level/default/dungeon.json
+++ b/gamefilesd/level/default/dungeon.json
@@ -13,16 +13,61 @@
}
}
},
- "load": ["level/data/l1/l1s.json", "level"],
+ "imageContainer": [
+ { "file": "levels/l1data/l1.cel" },
+ { "file": "levels/l1data/l1s.cel" }
+ ],
+ "texturePack": [
+ {
+ "id": "l1",
+ "imageContainer": "l1",
+ "palette": "level",
+ "min": "levels/l1data/l1.min",
+ "minBlocks": 10
+ },
+ {
+ "id": "l1_top",
+ "imageContainer": "l1",
+ "palette": "level",
+ "min": "levels/l1data/l1.min",
+ "minBlocks": 10,
+ "topTiles": true
+ },
+ {
+ "id": "l1s",
+ "imageContainer": "l1s",
+ "palette": "level",
+ "offset": [0, -128],
+ "textureIndexes": [
+ [10, 1],
+ [11, 0],
+ [70, 0],
+ [210, 0],
+ [248, 1],
+ [254, 3],
+ [258, 4],
+ [320, 0],
+ [324, 1],
+ [330, 1],
+ [340, 0],
+ [343, 1],
+ [392, 6],
+ [394, 7],
+ [407, 6],
+ [417, 0],
+ [420, 1]
+ ]
+ }
+ ],
"level": {
"id": "level",
- "palette": "level",
- "file": "levels/l1data/l1.cel",
- "layers": { "index": 0, "texturePack": "l1s" },
+ "layers": [
+ { "index": 0, "texturePack": "l1" },
+ { "index": 0, "texturePack": "l1s" },
+ { "index": 0, "texturePack": "l1_top" }
+ ],
"outOfBoundsTile": 21,
"til": "levels/l1data/l1.til",
- "min": "levels/l1data/l1.min",
- "minBlocks": 10,
"flags": "levels/l1data/l1.sol",
"defaultLight": 255
}
diff --git a/gamefilesd/level/default/dungeon_big.json b/gamefilesd/level/default/dungeon_big.json
deleted file mode 100755
index fb65fde3..00000000
--- a/gamefilesd/level/default/dungeon_big.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "load": "level/data/l1/l1_big.json",
- "level": {
- "id": "level",
- "layers": [
- { "index": 0, "texturePack": "l1_back_big" },
- { "index": 0, "texturePack": "l1_front_big" }
- ],
- "tileSize": [128, 64],
- "til": "levels/l1data/l1.til",
- "flags": "levels/l1data/l1.sol",
- "defaultLight": 255
- }
-}
\ No newline at end of file
diff --git a/gamefilesd/level/default/hell.json b/gamefilesd/level/default/hell.json
index e80a7a56..d8f84b45 100755
--- a/gamefilesd/level/default/hell.json
+++ b/gamefilesd/level/default/hell.json
@@ -22,14 +22,34 @@
"id": "colorCycle",
"fromId": "level"
},
+ "imageContainer": {
+ "file": "levels/l4data/l4.cel"
+ },
+ "texturePack": [
+ {
+ "id": "l4",
+ "imageContainer": "l4",
+ "palette": "level",
+ "min": "levels/l4data/l4.min",
+ "minBlocks": 16
+ },
+ {
+ "id": "l4_top",
+ "imageContainer": "l4",
+ "palette": "level",
+ "min": "levels/l4data/l4.min",
+ "minBlocks": 16,
+ "topTiles": true
+ }
+ ],
"level": {
"id": "level",
- "palette": "level",
- "file": "levels/l4data/l4.cel",
+ "layers": [
+ { "index": 0, "texturePack": "l4" },
+ { "index": 0, "texturePack": "l4_top" }
+ ],
"outOfBoundsTile": 19,
"til": "levels/l4data/l4.til",
- "min": "levels/l4data/l4.min",
- "minBlocks": 16,
"flags": "levels/l4data/l4.sol",
"defaultLight": 255
}
diff --git a/gamefilesd/level/default/town.json b/gamefilesd/level/default/town.json
index 1c0b634b..b2ef7d39 100755
--- a/gamefilesd/level/default/town.json
+++ b/gamefilesd/level/default/town.json
@@ -13,13 +13,33 @@
}
}
},
+ "imageContainer": {
+ "file": "levels/towndata/town.cel"
+ },
+ "texturePack": [
+ {
+ "id": "town",
+ "imageContainer": "town",
+ "palette": "level",
+ "min": "levels/towndata/town.min",
+ "minBlocks": 16
+ },
+ {
+ "id": "town_top",
+ "imageContainer": "town",
+ "palette": "level",
+ "min": "levels/towndata/town.min",
+ "minBlocks": 16,
+ "topTiles": true
+ }
+ ],
"level": {
"id": "level",
- "palette": "level",
- "file": "levels/towndata/town.cel",
+ "layers": [
+ { "index": 0, "texturePack": "town" },
+ { "index": 0, "texturePack": "town_top" }
+ ],
"til": "levels/towndata/town.til",
- "min": "levels/towndata/town.min",
- "minBlocks": 16,
"flags": "levels/towndata/town.sol",
"defaultLight": 255
}
diff --git a/gamefilesd/level/keys.json b/gamefilesd/level/keys.json
index d0357d46..c81e152b 100755
--- a/gamefilesd/level/keys.json
+++ b/gamefilesd/level/keys.json
@@ -1,36 +1,24 @@
{
- "keyboard": [
+ "inputEvent": [
{
- "compositeKey": ["up", "left"],
- "action": { "name": "player.walk", "player": "hero", "direction": "BackLeft" }
+ "key": "up",
+ "event": "level.up"
},
{
- "compositeKey": ["up", "right"],
- "action": { "name": "player.walk", "player": "hero", "direction": "BackRight" }
+ "key": "down",
+ "event": "level.down"
},
{
- "compositeKey": ["down", "left"],
- "action": { "name": "player.walk", "player": "hero", "direction": "FrontLeft" }
+ "key": "left",
+ "event": "level.left"
},
{
- "compositeKey": ["down", "right"],
- "action": { "name": "player.walk", "player": "hero", "direction": "FrontRight" }
+ "key": "right",
+ "event": "level.right"
},
{
- "compositeKey": "up",
- "action": { "name": "player.walk", "player": "hero", "direction": "back" }
- },
- {
- "compositeKey": "down",
- "action": { "name": "player.walk", "player": "hero", "direction": "front" }
- },
- {
- "compositeKey": "left",
- "action": { "name": "player.walk", "player": "hero", "direction": "left" }
- },
- {
- "compositeKey": "right",
- "action": { "name": "player.walk", "player": "hero", "direction": "right" }
+ "key": "rshift",
+ "event": "level.doAction"
}
]
}
\ No newline at end of file
diff --git a/gamefilesd/level/map/l1/monsters2.json b/gamefilesd/level/map/l1/monsters2.json
index 9afa3c36..3f4d6e37 100755
--- a/gamefilesd/level/map/l1/monsters2.json
+++ b/gamefilesd/level/map/l1/monsters2.json
@@ -3,6 +3,6 @@
"class": "scavenger",
"mapPosition": [80, 70],
"direction": "front",
- "AI": true
+ "AI": 5
}
}
\ No newline at end of file
diff --git a/gamefilesd/level/map/town/playerTextureFiles.json b/gamefilesd/level/map/town/playerTextureFiles.json
index c4b087a9..6f144c00 100755
--- a/gamefilesd/level/map/town/playerTextureFiles.json
+++ b/gamefilesd/level/map/town/playerTextureFiles.json
@@ -1,53 +1,65 @@
{
+ "imageContainer": [
+ { "file": "towners/animals/cow.cel" },
+ { "file": "towners/strytell/strytell.cel" },
+ { "file": "towners/butch/deadguy.cel" },
+ { "file": "towners/healer/healer.cel" },
+ { "file": "towners/twnf/twnfn.cel" },
+ { "file": "towners/smith/smithn.cel" },
+ { "file": "towners/townboy/pegkid1.cel" },
+ { "file": "towners/drunk/twndrunk.cel" },
+ { "file": "towners/townwmn1/witch.cel" },
+ { "file": "towners/townwmn1/wmnn.cel" }
+ ],
"texturePack": [
{
+ "id": "cow",
"imageContainer": "cow",
- "file": "towners/animals/cow.cel",
"palette": "town"
},
{
+ "id": "strytell",
"imageContainer": "strytell",
- "file": "towners/strytell/strytell.cel",
"palette": "town"
},
{
+ "id": "deadguy",
"imageContainer": "deadguy",
- "file": "towners/butch/deadguy.cel",
"palette": "town"
},
{
+ "id": "healer",
"imageContainer": "healer",
- "file": "towners/healer/healer.cel",
"palette": "town"
},
{
+ "id": "twnfn",
"imageContainer": "twnfn",
- "file": "towners/twnf/twnfn.cel",
"palette": "town"
},
{
+ "id": "smithn",
"imageContainer": "smithn",
- "file": "towners/smith/smithn.cel",
"palette": "town"
},
{
+ "id": "pegkid1",
"imageContainer": "pegkid1",
- "file": "towners/townboy/pegkid1.cel",
"palette": "town"
},
{
+ "id": "twndrunk",
"imageContainer": "twndrunk",
- "file": "towners/drunk/twndrunk.cel",
"palette": "town"
},
{
+ "id": "witch",
"imageContainer": "witch",
- "file": "towners/townwmn1/witch.cel",
"palette": "town"
},
{
+ "id": "wmnn",
"imageContainer": "wmnn",
- "file": "towners/townwmn1/wmnn.cel",
"palette": "town"
}
]
diff --git a/gamefilesd/level/map/town/playerTextureFilesBeta.json b/gamefilesd/level/map/town/playerTextureFilesBeta.json
index 4c82ef25..8fdd6315 100755
--- a/gamefilesd/level/map/town/playerTextureFilesBeta.json
+++ b/gamefilesd/level/map/town/playerTextureFilesBeta.json
@@ -1,48 +1,59 @@
{
+ "imageContainer": [
+ { "file": "towners/animals/cow.cel" },
+ { "file": "towners/strytell/strytell.cel" },
+ { "file": "towners/butch/deadguy.cel" },
+ { "file": "towners/healer/healer.cel" },
+ { "file": "towners/twnf/twnfn.cel" },
+ { "file": "towners/smith/smithn.cel" },
+ { "file": "towners/townboy/pegkid1.cel" },
+ { "file": "towners/drunk/twndrunk.cel" },
+ { "file": "towners/townwmn1/wmnn.cel" }
+ ],
"texturePack": [
{
+ "id": "cow",
"imageContainer": "cow",
- "file": "towners/animals/cow.cel",
"palette": "town"
},
{
+ "id": "strytell",
"imageContainer": "strytell",
- "file": "towners/strytell/strytell.cel",
"palette": "town"
},
{
- "imageContainer": "butch",
- "file": "towners/butch/deadguy.cel",
+ "id": "deadguy",
+ "imageContainer": "deadguy",
"palette": "town"
},
{
+ "id": "healer",
"imageContainer": "healer",
- "file": "towners/healer/healer.cel",
"palette": "town"
},
{
+ "id": "twnfn",
"imageContainer": "twnfn",
- "file": "towners/twnf/twnfn.cel",
"palette": "town"
},
{
+ "id": "smithn",
"imageContainer": "smithn",
- "file": "towners/smith/smithn.cel",
"palette": "town"
},
{
+ "id": "pegkid1",
"imageContainer": "pegkid1",
- "file": "towners/townboy/pegkid1.cel",
"palette": "town"
},
{
+ "id": "twndrunk",
"imageContainer": "twndrunk",
- "file": "towners/drunk/twndrunk.cel",
"palette": "town"
},
{
+ "id": "wmnn",
"imageContainer": "wmnn",
- "file": "towners/townwmn1/wmnn.cel",
"palette": "town"
},
{
diff --git a/gamefilesd/level/player/Rogue/class.json b/gamefilesd/level/player/Rogue/class.json
index 54e117f5..528ee8f9 100755
--- a/gamefilesd/level/player/Rogue/class.json
+++ b/gamefilesd/level/player/Rogue/class.json
@@ -92,10 +92,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefilesd/level/player/Sorceror/class.json b/gamefilesd/level/player/Sorceror/class.json
index 74a237ac..41ecdfcf 100755
--- a/gamefilesd/level/player/Sorceror/class.json
+++ b/gamefilesd/level/player/Sorceror/class.json
@@ -92,10 +92,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefilesd/level/player/Warrior/class.json b/gamefilesd/level/player/Warrior/class.json
index c7585a6c..8ed9ef9c 100755
--- a/gamefilesd/level/player/Warrior/class.json
+++ b/gamefilesd/level/player/Warrior/class.json
@@ -92,10 +92,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefilesd/level/saveGame.json b/gamefilesd/level/saveGame.json
index 4737a6fe..fc2fda21 100755
--- a/gamefilesd/level/saveGame.json
+++ b/gamefilesd/level/saveGame.json
@@ -3,8 +3,10 @@
{
"name": "level.save",
"file": "%tempDir%/level/map/%currentLevel.path%/level2.json",
- "saveCurrentPlayer": true,
- "saveQuests": true
+ "properties": {
+ "saveCurrentPlayer": true,
+ "saveQuests": true
+ }
},
{
"name": "file.copy",
diff --git a/gamefilesd/res/actions.json b/gamefilesd/res/actions.json
index aea33600..3c45a853 100755
--- a/gamefilesd/res/actions.json
+++ b/gamefilesd/res/actions.json
@@ -1,5 +1,15 @@
{
"action": [
+ {
+ "name": "action.set",
+ "id": "focusSound",
+ "action": { "name": "sound.play", "id": "titlemov" }
+ },
+ {
+ "name": "action.set",
+ "id": "selectSound",
+ "action": { "name": "sound.play", "id": "titlslct" }
+ },
{
"name": "action.set",
"id": "focus.click",
diff --git a/gamefilesd/res/fonts.json b/gamefilesd/res/fonts.json
index 421413b7..cd43eeb5 100755
--- a/gamefilesd/res/fonts.json
+++ b/gamefilesd/res/fonts.json
@@ -1,93 +1,168 @@
{
- "font": [
+ "texture": [
{
"id": "font16g",
"file": "ui_art/font16g.pcx",
- "charSizeFile": "ui_art/font16.bin",
- "rows": 16,
- "cols": 16,
"split": "vertical",
"pieces": 16,
- "direction": "vertical",
"mask": "0x00FF00"
},
{
"id": "font16s",
"file": "ui_art/font16s.pcx",
- "charSizeFile": "ui_art/font16.bin",
- "rows": 16,
- "cols": 16,
"split": "vertical",
"pieces": 16,
- "direction": "vertical",
"mask": "0x00FF00"
},
{
"id": "font24g",
- "texture": "font24g",
"file": "ui_art/font24g.pcx",
- "charSizeFile": "ui_art/font24.bin",
- "rows": 16,
- "cols": 16,
"split": "vertical",
"pieces": 16,
- "direction": "vertical",
"mask": "0x00FF00"
},
{
"id": "font24s",
"file": "ui_art/font24s.pcx",
- "charSizeFile": "ui_art/font24.bin",
- "rows": 16,
- "cols": 16,
"split": "vertical",
"pieces": 16,
- "direction": "vertical",
"mask": "0x00FF00"
},
{
"id": "font30g",
"file": "ui_art/font30g.pcx",
- "charSizeFile": "ui_art/font30.bin",
- "rows": 16,
- "cols": 16,
"split": "vertical",
"pieces": 16,
- "direction": "vertical",
"mask": "0x00FF00"
},
{
"id": "font30s",
"file": "ui_art/font30s.pcx",
- "charSizeFile": "ui_art/font30.bin",
- "rows": 16,
- "cols": 16,
"split": "vertical",
"pieces": 16,
- "direction": "vertical",
"mask": "0x00FF00"
},
{
"id": "font42g",
"file": "ui_art/font42g.pcx",
- "charSizeFile": "ui_art/font42.bin",
- "rows": 16,
- "cols": 16,
"split": "vertical",
"pieces": 16,
- "direction": "vertical",
"mask": "0x00FF00"
},
{
"id": "font42y",
"file": "ui_art/font42y.pcx",
- "charSizeFile": "ui_art/font42.bin",
- "rows": 16,
- "cols": 16,
"split": "vertical",
"pieces": 16,
- "direction": "vertical",
"mask": "0x00FF00"
}
+ ],
+ "texturePack": [
+ {
+ "id": "font16g",
+ "font": true,
+ "texture": "font16g",
+ "charSizeFile": "ui_art/font16.bin",
+ "rows": 16,
+ "cols": 16,
+ "direction": "vertical"
+ },
+ {
+ "id": "font16s",
+ "font": true,
+ "texture": "font16s",
+ "charSizeFile": "ui_art/font16.bin",
+ "rows": 16,
+ "cols": 16,
+ "direction": "vertical"
+ },
+ {
+ "id": "font24g",
+ "font": true,
+ "texture": "font24g",
+ "charSizeFile": "ui_art/font24.bin",
+ "rows": 16,
+ "cols": 16,
+ "direction": "vertical"
+ },
+ {
+ "id": "font24s",
+ "font": true,
+ "texture": "font24s",
+ "charSizeFile": "ui_art/font24.bin",
+ "rows": 16,
+ "cols": 16,
+ "direction": "vertical"
+ },
+ {
+ "id": "font30g",
+ "font": true,
+ "texture": "font30g",
+ "charSizeFile": "ui_art/font30.bin",
+ "rows": 16,
+ "cols": 16,
+ "direction": "vertical"
+ },
+ {
+ "id": "font30s",
+ "font": true,
+ "texture": "font30s",
+ "charSizeFile": "ui_art/font30.bin",
+ "rows": 16,
+ "cols": 16,
+ "direction": "vertical"
+ },
+ {
+ "id": "font42g",
+ "font": true,
+ "texture": "font42g",
+ "charSizeFile": "ui_art/font42.bin",
+ "rows": 16,
+ "cols": 16,
+ "direction": "vertical"
+ },
+ {
+ "id": "font42y",
+ "font": true,
+ "texture": "font42y",
+ "charSizeFile": "ui_art/font42.bin",
+ "rows": 16,
+ "cols": 16,
+ "direction": "vertical"
+ }
+ ],
+ "font": [
+ {
+ "id": "font16g",
+ "texturePack": "font16g"
+ },
+ {
+ "id": "font16s",
+ "texturePack": "font16s"
+ },
+ {
+ "id": "font24g",
+ "texturePack": "font24g"
+ },
+ {
+ "id": "font24s",
+ "texturePack": "font24s"
+ },
+ {
+ "id": "font30g",
+ "texturePack": "font30g"
+ },
+ {
+ "id": "font30s",
+ "texturePack": "font30s"
+ },
+ {
+ "id": "font42g",
+ "texturePack": "font42g"
+ },
+ {
+ "id": "font42y",
+ "texturePack": "font42y"
+ }
]
}
\ No newline at end of file
diff --git a/gamefilesd/res/level/actions/beltItem.json b/gamefilesd/res/level/actions/beltItem.json
index e05acfe3..c98ac018 100755
--- a/gamefilesd/res/level/actions/beltItem.json
+++ b/gamefilesd/res/level/actions/beltItem.json
@@ -8,7 +8,7 @@
"param1": "%currentLevel.currentPlayer.hasItem.{2}.{3}%",
"param2": true,
"then": [
- { "name": "image.setTexture", "id": "img{1}", "query": "currentLevel.currentPlayer.item.{2}.{3}", "resetRect": false },
+ { "name": "image.setTexture", "id": "img{1}", "query": "currentLevel.currentPlayer.item.{2}.{3}", "index": 1 },
{
"name": "if.equal",
"param1": "%currentLevel.currentPlayer.canUseItem.{2}.{3}%",
diff --git a/gamefilesd/res/level/actions/bodyItem.json b/gamefilesd/res/level/actions/bodyItem.json
index 678abdc8..05f2aed6 100755
--- a/gamefilesd/res/level/actions/bodyItem.json
+++ b/gamefilesd/res/level/actions/bodyItem.json
@@ -4,7 +4,7 @@
"id": "update{1}Item",
"replaceVars": true,
"action": [
- { "name": "image.setTexture", "id": "img{1}", "query": "currentLevel.currentPlayer.item.body.{1}" },
+ { "name": "image.setTexture", "id": "img{1}", "query": "currentLevel.currentPlayer.item.body.{1}", "index": 1 },
{
"name": "if.equal",
"param1": "%currentLevel.currentPlayer.canUseItem.body.{1}%",
diff --git a/gamefilesd/res/level/actions/msgBox.json b/gamefilesd/res/level/actions/msgBox.json
index 748e9ae7..425c2d5c 100755
--- a/gamefilesd/res/level/actions/msgBox.json
+++ b/gamefilesd/res/level/actions/msgBox.json
@@ -12,7 +12,7 @@
"name": "loadJson",
"json": {
"action": { "name": "resource.add", "id": "msgBox" },
- "keyboard": { "key": "esc", "action": "closeMsgBox" },
+ "inputEvent": { "key": "esc", "action": "closeMsgBox" },
"action": [
{ "name": "drawable.visible", "id": "msgBox", "visible": true },
{ "name": "game.draw" }
diff --git a/gamefilesd/res/level/actions/playerBodyHands.json b/gamefilesd/res/level/actions/playerBodyHands.json
index e6db2673..2486215f 100755
--- a/gamefilesd/res/level/actions/playerBodyHands.json
+++ b/gamefilesd/res/level/actions/playerBodyHands.json
@@ -5,7 +5,7 @@
"id": "updateLeftHandItem",
"replaceVars": true,
"action": [
- { "name": "image.setTexture", "id": "imgLeftHand", "query": "currentLevel.currentPlayer.item.body.LeftHand" },
+ { "name": "image.setTexture", "id": "imgLeftHand", "query": "currentLevel.currentPlayer.item.body.LeftHand", "index": 1 },
{
"name": "if.equal",
"param1": "%currentLevel.currentPlayer.canUseItem.body.LeftHand%",
@@ -46,7 +46,7 @@
"id": "updateRightHandItem",
"replaceVars": true,
"action": [
- { "name": "image.setTexture", "id": "imgRightHand", "query": "currentLevel.currentPlayer.item.body.RightHand" },
+ { "name": "image.setTexture", "id": "imgRightHand", "query": "currentLevel.currentPlayer.item.body.RightHand", "index": 1 },
{
"name": "if.equal",
"param1": "%currentLevel.currentPlayer.canUseItem.body.RightHand%",
diff --git a/gamefilesd/res/level/actions/stashClick.json b/gamefilesd/res/level/actions/stashClick.json
index 8294b8ab..b2011068 100755
--- a/gamefilesd/res/level/actions/stashClick.json
+++ b/gamefilesd/res/level/actions/stashClick.json
@@ -15,7 +15,7 @@
"param1": "%currentLevel.currentPlayer.hasSelectedItem%",
"param2": true,
"then": "updateSelectedItem",
- "else": "updateStash|$.game.var.stashPosX + 1||$.game.var.stashPosY + 1|Text"
+ "else": "updateStash|$.#stashPosX + 1||$.#stashPosY + 1|Text"
}
]
}
diff --git a/gamefilesd/res/level/actions/stashItem.json b/gamefilesd/res/level/actions/stashItem.json
index 7488c63e..860f1158 100755
--- a/gamefilesd/res/level/actions/stashItem.json
+++ b/gamefilesd/res/level/actions/stashItem.json
@@ -24,7 +24,8 @@
{
"name": "image.setTexture",
"id": "img{1}",
- "query": "currentLevel.currentPlayer.item.{2}.{3}"
+ "query": "currentLevel.currentPlayer.item.{2}.{3}",
+ "index": 1
},
{
"name": "if.equal",
diff --git a/gamefilesd/res/level/fonts.json b/gamefilesd/res/level/fonts.json
index f75def31..0bbc171a 100755
--- a/gamefilesd/res/level/fonts.json
+++ b/gamefilesd/res/level/fonts.json
@@ -1,18 +1,47 @@
{
- "texture": {
- "id": "smaltext",
- "file": "ctrlpan/smaltext.cel",
- "palette": "town",
- "indexed": true,
- "charMapFile": "res/level/smaltextCharMap.bin"
- },
- "texturePack": {
- "id": "smaltext",
- "font": true,
- "texture": "smaltext",
- "charSizeFile": "res/level/smaltextSize.bin",
- "palette": "town"
- },
+ "texture": [
+ {
+ "id": "smaltext",
+ "file": "ctrlpan/smaltext.cel",
+ "indexed": true,
+ "charMapFile": "res/level/smaltextCharMap.bin"
+ },
+ {
+ "id": "medtexts",
+ "file": "data/medtexts.cel",
+ "indexed": true,
+ "charMapFile": "res/level/medtextsCharMap.bin"
+ },
+ {
+ "id": "bigtgold",
+ "file": "data/bigtgold.cel",
+ "indexed": true,
+ "charMapFile": "res/level/bigtgoldCharMap.bin"
+ }
+ ],
+ "texturePack": [
+ {
+ "id": "smaltext",
+ "font": true,
+ "texture": "smaltext",
+ "palette": "town",
+ "charSizeFile": "res/level/smaltextSize.bin"
+ },
+ {
+ "id": "medtexts",
+ "font": true,
+ "texture": "medtexts",
+ "palette": "town",
+ "charSizeFile": "res/level/medtextsSize.bin"
+ },
+ {
+ "id": "bigtgold",
+ "font": true,
+ "texture": "bigtgold",
+ "palette": "town",
+ "charSizeFile": "res/level/bigtgoldSize.bin"
+ }
+ ],
"font": [
{
"id": "smaltext",
@@ -42,17 +71,11 @@
},
{
"id": "medtexts",
- "palette": "town",
- "file": "data/medtexts.cel",
- "charMapFile": "res/level/medtextsCharMap.bin",
- "charSizeFile": "res/level/medtextsSize.bin"
+ "texturePack": "medtexts"
},
{
"id": "bigtgold",
- "palette": "town",
- "file": "data/bigtgold.cel",
- "charMapFile": "res/level/bigtgoldCharMap.bin",
- "charSizeFile": "res/level/bigtgoldSize.bin"
+ "texturePack": "bigtgold"
}
]
}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/README.txt b/gamefilesd/res/shaders/game/README.txt
new file mode 100644
index 00000000..2d6813db
--- /dev/null
+++ b/gamefilesd/res/shaders/game/README.txt
@@ -0,0 +1,3 @@
+The scaling shaders came from the FS-UAE project (GPL v2 license).
+
+https://github.com/FrodeSolheim/fs-uae
diff --git a/gamefilesd/res/shaders/game/grain.json b/gamefilesd/res/shaders/game/grain.json
new file mode 100644
index 00000000..d3793f2a
--- /dev/null
+++ b/gamefilesd/res/shaders/game/grain.json
@@ -0,0 +1,8 @@
+{
+ "shader": {
+ "id": "grain",
+ "fragmentFile": "res/shaders/game/grain.frag",
+ "uniforms": ["elapsedTime", "fade", "gamma"],
+ "setShader": "game"
+ }
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/grayscale.json b/gamefilesd/res/shaders/game/grayscale.json
new file mode 100644
index 00000000..60cb35ca
--- /dev/null
+++ b/gamefilesd/res/shaders/game/grayscale.json
@@ -0,0 +1,8 @@
+{
+ "shader": {
+ "id": "grayscale",
+ "fragmentFile": "res/shaders/game/grayscale.frag",
+ "uniforms": ["fade", "gamma"],
+ "setShader": "game"
+ }
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/heavybloom.frag b/gamefilesd/res/shaders/game/heavybloom.frag
new file mode 100644
index 00000000..3e136c72
--- /dev/null
+++ b/gamefilesd/res/shaders/game/heavybloom.frag
@@ -0,0 +1,30 @@
+uniform sampler2D texture;
+#define glarebasesize 0.42
+#define power 0.65 // 0.50 is good
+
+uniform vec2 textureSize;
+
+void main()
+{
+ vec4 sum = vec4(0.0);
+ vec4 bum = vec4(0.0);
+ vec2 texcoord = vec2(gl_TexCoord[0]);
+ int j;
+ int i;
+
+ vec2 glaresize = vec2(glarebasesize) / textureSize;
+
+ for(i = -2; i < 5; i++)
+ {
+ for (j = -1; j < 1; j++)
+ {
+ sum += texture2D(texture, texcoord + vec2(-i, j)*glaresize) * power;
+ bum += texture2D(texture, texcoord + vec2(j, i)*glaresize) * power;
+ }
+ }
+
+ if (texture2D(texture, texcoord).r < 2.0)
+ {
+ gl_FragColor = sum*sum*sum*0.001+bum*bum*bum*0.0080 + texture2D(texture, texcoord);
+ }
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/heavybloom.json b/gamefilesd/res/shaders/game/heavybloom.json
new file mode 100644
index 00000000..7b36bb0b
--- /dev/null
+++ b/gamefilesd/res/shaders/game/heavybloom.json
@@ -0,0 +1,9 @@
+{
+ "shader": {
+ "id": "heavybloom",
+ "fragmentFile": "res/shaders/game/heavybloom.frag",
+ "vertexFile": "res/shaders/game/heavybloom.vert",
+ "uniforms": "textureSize",
+ "setShader": "game"
+ }
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/heavybloom.vert b/gamefilesd/res/shaders/game/heavybloom.vert
new file mode 100644
index 00000000..2f8cbdca
--- /dev/null
+++ b/gamefilesd/res/shaders/game/heavybloom.vert
@@ -0,0 +1,5 @@
+void main()
+{
+ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+ gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/lanczos6tap.frag b/gamefilesd/res/shaders/game/lanczos6tap.frag
new file mode 100644
index 00000000..7dde3e24
--- /dev/null
+++ b/gamefilesd/res/shaders/game/lanczos6tap.frag
@@ -0,0 +1,76 @@
+#define FIX(c) max(abs(c), 1e-5);
+
+uniform sampler2D texture;
+uniform vec2 textureSize;
+uniform vec4 fade;
+uniform float gamma;
+
+vec3 Gamma(vec3 value, float param)
+{
+ return vec3(pow(abs(value.r), param), pow(abs(value.g), param), pow(abs(value.b), param));
+}
+
+const float PI = 3.1415926535897932384626433832795;
+
+vec3 weight3(float x)
+{
+ const float radius = 3.0;
+ vec3 sample = FIX(2.0 * PI * vec3(x - 1.5, x - 0.5, x + 0.5));
+
+ // Lanczos3. Note: we normalize outside this function, so no point in multiplying by radius.
+ return /*radius **/ sin(sample) * sin(sample / radius) / (sample * sample);
+}
+
+vec3 pixel(float xpos, float ypos)
+{
+ return texture2D(texture, vec2(xpos, ypos)).rgb;
+}
+
+vec3 line(float ypos, vec3 xpos1, vec3 xpos2, vec3 linetaps1, vec3 linetaps2)
+{
+ return
+ pixel(xpos1.r, ypos) * linetaps1.r +
+ pixel(xpos1.g, ypos) * linetaps2.r +
+ pixel(xpos1.b, ypos) * linetaps1.g +
+ pixel(xpos2.r, ypos) * linetaps2.g +
+ pixel(xpos2.g, ypos) * linetaps1.b +
+ pixel(xpos2.b, ypos) * linetaps2.b;
+}
+
+void main()
+{
+ vec2 stepxy = 1.0 / textureSize.xy;
+ vec2 pos = gl_TexCoord[0].xy + stepxy * 0.5;
+ vec2 f = fract(pos / stepxy);
+
+ vec3 linetaps1 = weight3(0.5 - f.x * 0.5);
+ vec3 linetaps2 = weight3(1.0 - f.x * 0.5);
+ vec3 columntaps1 = weight3(0.5 - f.y * 0.5);
+ vec3 columntaps2 = weight3(1.0 - f.y * 0.5);
+
+ // make sure all taps added together is exactly 1.0, otherwise some
+ // (very small) distortion can occur
+ float suml = dot(linetaps1, vec3(1.0)) + dot(linetaps2, vec3(1.0));
+ float sumc = dot(columntaps1, vec3(1.0)) + dot(columntaps2, vec3(1.0));
+ linetaps1 /= suml;
+ linetaps2 /= suml;
+ columntaps1 /= sumc;
+ columntaps2 /= sumc;
+
+ vec2 xystart = (-2.5 - f) * stepxy + pos;
+ vec3 xpos1 = vec3(xystart.x, xystart.x + stepxy.x, xystart.x + stepxy.x * 2.0);
+ vec3 xpos2 = vec3(xystart.x + stepxy.x * 3.0, xystart.x + stepxy.x * 4.0, xystart.x + stepxy.x * 5.0);
+
+ gl_FragColor = vec4(
+ line(xystart.y , xpos1, xpos2, linetaps1, linetaps2) * columntaps1.r +
+ line(xystart.y + stepxy.y , xpos1, xpos2, linetaps1, linetaps2) * columntaps2.r +
+ line(xystart.y + stepxy.y * 2.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.g +
+ line(xystart.y + stepxy.y * 3.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.g +
+ line(xystart.y + stepxy.y * 4.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.b +
+ line(xystart.y + stepxy.y * 5.0, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.b,
+ 1.0);
+
+ float gamma2 = 1.0 - (0.007 * gamma);
+ gl_FragColor.xyz = Gamma(gl_FragColor.xyz - fade.xyz, gamma2);
+ gl_FragColor.a = gl_FragColor.a - fade.a;
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/lanczos6tap.json b/gamefilesd/res/shaders/game/lanczos6tap.json
new file mode 100644
index 00000000..75517608
--- /dev/null
+++ b/gamefilesd/res/shaders/game/lanczos6tap.json
@@ -0,0 +1,9 @@
+{
+ "shader": {
+ "id": "lanczos6tap",
+ "fragmentFile": "res/shaders/game/lanczos6tap.frag",
+ "vertexFile": "res/shaders/game/lanczos6tap.vert",
+ "uniforms": ["fade", "gamma", "textureSize"],
+ "setShader": "game"
+ }
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/lanczos6tap.vert b/gamefilesd/res/shaders/game/lanczos6tap.vert
new file mode 100644
index 00000000..2f8cbdca
--- /dev/null
+++ b/gamefilesd/res/shaders/game/lanczos6tap.vert
@@ -0,0 +1,5 @@
+void main()
+{
+ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+ gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/pixelateFade.json b/gamefilesd/res/shaders/game/pixelateFade.json
new file mode 100644
index 00000000..4b924894
--- /dev/null
+++ b/gamefilesd/res/shaders/game/pixelateFade.json
@@ -0,0 +1,8 @@
+{
+ "shader": {
+ "id": "pixelateFade",
+ "fragmentFile": "res/shaders/game/pixelateFade.frag",
+ "uniforms": ["fade", "gamma"],
+ "setShader": "game"
+ }
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/scale4xhq.frag b/gamefilesd/res/shaders/game/scale4xhq.frag
new file mode 100644
index 00000000..deb0e0db
--- /dev/null
+++ b/gamefilesd/res/shaders/game/scale4xhq.frag
@@ -0,0 +1,61 @@
+uniform sampler2D texture;
+uniform vec4 fade;
+uniform float gamma;
+
+vec3 Gamma(vec3 value, float param)
+{
+ return vec3(pow(abs(value.r), param), pow(abs(value.g), param), pow(abs(value.b), param));
+}
+
+const float mx = 1.00; // start smoothing wt.
+const float k = -1.10; // wt. decrease factor
+const float max_w = 0.75; // max filter weigth
+const float min_w = 0.03; // min filter weigth
+const float lum_add = 0.33; // effects smoothing
+
+void main()
+{
+ vec3 c = texture2D(texture, gl_TexCoord[0].xy).xyz;
+ vec3 i1 = texture2D(texture, gl_TexCoord[1].xy).xyz;
+ vec3 i2 = texture2D(texture, gl_TexCoord[2].xy).xyz;
+ vec3 i3 = texture2D(texture, gl_TexCoord[3].xy).xyz;
+ vec3 i4 = texture2D(texture, gl_TexCoord[4].xy).xyz;
+ vec3 o1 = texture2D(texture, gl_TexCoord[5].xy).xyz;
+ vec3 o3 = texture2D(texture, gl_TexCoord[6].xy).xyz;
+ vec3 o2 = texture2D(texture, gl_TexCoord[5].zw).xyz;
+ vec3 o4 = texture2D(texture, gl_TexCoord[6].zw).xyz;
+ vec3 s1 = texture2D(texture, gl_TexCoord[1].zw).xyz;
+ vec3 s2 = texture2D(texture, gl_TexCoord[2].zw).xyz;
+ vec3 s3 = texture2D(texture, gl_TexCoord[3].zw).xyz;
+ vec3 s4 = texture2D(texture, gl_TexCoord[4].zw).xyz;
+ vec3 dt = vec3(1.0,1.0,1.0);
+
+ float ko1=dot(abs(o1-c),dt);
+ float ko2=dot(abs(o2-c),dt);
+ float ko3=dot(abs(o3-c),dt);
+ float ko4=dot(abs(o4-c),dt);
+
+ float k1=min(dot(abs(i1-i3),dt),max(ko1,ko3));
+ float k2=min(dot(abs(i2-i4),dt),max(ko2,ko4));
+
+ float w1 = k2; if(ko3= 0.5) { f.x = 1.0 - f.x; siggn.x = -1.0; }
+ if (f.y >= 0.5) { f.y = 1.0 - f.y; siggn.y = -1.0; }
+
+ float x = OGLInvSize.x;
+ float y = OGLInvSize.y;
+
+ vec2 dx = vec2( x, 0.0)*siggn.x;
+ vec2 dy = vec2( 0.0, y)*siggn.y;
+ vec2 x2 = vec2( 2.0*x , 0.0)*siggn.x;
+ vec2 y2 = vec2( 0.0 , 2.0*y)*siggn.y;
+ vec4 xy = vec4( x, y,-x,-y)*siggn.xyxy;
+ vec4 zw = vec4( 2.0*x , y,-2.0*x ,-y)*siggn.xyxy;
+ vec4 wz = vec4( x, 2.0*y ,-x,-2.0*y )*siggn.xyxy;
+
+ vec3 src[25];
+
+ src[ 6] = texture2D(texture, TexCoord_0 + xy.zw ).xyz;
+ src[ 7] = texture2D(texture, TexCoord_0 -dy ).xyz;
+ src[ 8] = texture2D(texture, TexCoord_0 + xy.xw ).xyz;
+ src[ 5] = texture2D(texture, TexCoord_0 - dx ).xyz;
+ src[ 0] = texture2D(texture, TexCoord_0 ).xyz;
+ src[ 1] = texture2D(texture, TexCoord_0 + dx ).xyz;
+ src[ 4] = texture2D(texture, TexCoord_0 + xy.zy ).xyz;
+ src[ 3] = texture2D(texture, TexCoord_0 +dy ).xyz;
+ src[ 2] = texture2D(texture, TexCoord_0 + xy.xy ).xyz;
+ src[21] = texture2D(texture, TexCoord_0 + wz.zw ).xyz;
+ src[23] = texture2D(texture, TexCoord_0 + wz.xw ).xyz;
+ src[19] = texture2D(texture, TexCoord_0 + zw.zw ).xyz;
+ src[17] = texture2D(texture, TexCoord_0 + zw.zy ).xyz;
+ src[ 9] = texture2D(texture, TexCoord_0 + zw.xw ).xyz;
+ src[11] = texture2D(texture, TexCoord_0 + zw.xy ).xyz;
+ src[15] = texture2D(texture, TexCoord_0 + wz.zy ).xyz;
+ src[13] = texture2D(texture, TexCoord_0 + wz.xy ).xyz;
+ src[22] = texture2D(texture, TexCoord_0 - y2 ).xyz;
+ src[18] = texture2D(texture, TexCoord_0 - x2 ).xyz;
+ src[14] = texture2D(texture, TexCoord_0 + y2 ).xyz;
+ src[10] = texture2D(texture, TexCoord_0 + x2 ).xyz;
+
+ float v[9];
+ v[0] = reduce(src[0]);
+ v[1] = reduce(src[1]);
+ v[2] = reduce(src[2]);
+ v[3] = reduce(src[3]);
+ v[4] = reduce(src[4]);
+ v[5] = reduce(src[5]);
+ v[6] = reduce(src[6]);
+ v[7] = reduce(src[7]);
+ v[8] = reduce(src[8]);
+
+ ivec4 blendResult = ivec4(BLEND_NONE);
+
+ // Preprocess corners
+ // Pixel Tap Mapping: --|--|--|--|--
+ // --|--|07|08|--
+ // --|05|00|01|10
+ // --|04|03|02|11
+ // --|--|14|13|--
+ // Corner (1, 1)
+ if ( !((v[0] == v[1] && v[3] == v[2]) || (v[0] == v[3] && v[1] == v[2])) )
+ {
+ float dist_03_01 = DistYCbCr(src[ 4], src[ 0]) + DistYCbCr(src[ 0], src[ 8]) + DistYCbCr(src[14], src[ 2]) + DistYCbCr(src[ 2], src[10]) + (4.0 * DistYCbCr(src[ 3], src[ 1]));
+ float dist_00_02 = DistYCbCr(src[ 5], src[ 3]) + DistYCbCr(src[ 3], src[13]) + DistYCbCr(src[ 7], src[ 1]) + DistYCbCr(src[ 1], src[11]) + (4.0 * DistYCbCr(src[ 0], src[ 2]));
+ bool dominantGradient = (DOMINANT_DIRECTION_THRESHOLD * dist_03_01) < dist_00_02;
+ blendResult[2] = ((dist_03_01 < dist_00_02) && (v[0] != v[1]) && (v[0] != v[3])) ? ((dominantGradient) ? BLEND_DOMINANT : BLEND_NORMAL) : BLEND_NONE;
+ }
+
+ // Pixel Tap Mapping: --|--|--|--|--
+ // --|06|07|--|--
+ // 18|05|00|01|--
+ // 17|04|03|02|--
+ // --|15|14|--|--
+ // Corner (0, 1)
+ if ( !((v[5] == v[0] && v[4] == v[3]) || (v[5] == v[4] && v[0] == v[3])) )
+ {
+ float dist_04_00 = DistYCbCr(src[17], src[ 5]) + DistYCbCr(src[ 5], src[ 7]) + DistYCbCr(src[15], src[ 3]) + DistYCbCr(src[ 3], src[ 1]) + (4.0 * DistYCbCr(src[ 4], src[ 0]));
+ float dist_05_03 = DistYCbCr(src[18], src[ 4]) + DistYCbCr(src[ 4], src[14]) + DistYCbCr(src[ 6], src[ 0]) + DistYCbCr(src[ 0], src[ 2]) + (4.0 * DistYCbCr(src[ 5], src[ 3]));
+ bool dominantGradient = (DOMINANT_DIRECTION_THRESHOLD * dist_05_03) < dist_04_00;
+ blendResult[3] = ((dist_04_00 > dist_05_03) && (v[0] != v[5]) && (v[0] != v[3])) ? ((dominantGradient) ? BLEND_DOMINANT : BLEND_NORMAL) : BLEND_NONE;
+ }
+
+ // Pixel Tap Mapping: --|--|22|23|--
+ // --|06|07|08|09
+ // --|05|00|01|10
+ // --|--|03|02|--
+ // --|--|--|--|--
+ // Corner (1, 0)
+ if ( !((v[7] == v[8] && v[0] == v[1]) || (v[7] == v[0] && v[8] == v[1])) )
+ {
+ float dist_00_08 = DistYCbCr(src[ 5], src[ 7]) + DistYCbCr(src[ 7], src[23]) + DistYCbCr(src[ 3], src[ 1]) + DistYCbCr(src[ 1], src[ 9]) + (4.0 * DistYCbCr(src[ 0], src[ 8]));
+ float dist_07_01 = DistYCbCr(src[ 6], src[ 0]) + DistYCbCr(src[ 0], src[ 2]) + DistYCbCr(src[22], src[ 8]) + DistYCbCr(src[ 8], src[10]) + (4.0 * DistYCbCr(src[ 7], src[ 1]));
+ bool dominantGradient = (DOMINANT_DIRECTION_THRESHOLD * dist_07_01) < dist_00_08;
+ blendResult[1] = ((dist_00_08 > dist_07_01) && (v[0] != v[7]) && (v[0] != v[1])) ? ((dominantGradient) ? BLEND_DOMINANT : BLEND_NORMAL) : BLEND_NONE;
+ }
+
+ // Pixel Tap Mapping: --|21|22|--|--
+ // 19|06|07|08|--
+ // 18|05|00|01|--
+ // --|04|03|--|--
+ // --|--|--|--|--
+ // Corner (0, 0)
+ if ( !((v[6] == v[7] && v[5] == v[0]) || (v[6] == v[5] && v[7] == v[0])) )
+ {
+ float dist_05_07 = DistYCbCr(src[18], src[ 6]) + DistYCbCr(src[ 6], src[22]) + DistYCbCr(src[ 4], src[ 0]) + DistYCbCr(src[ 0], src[ 8]) + (4.0 * DistYCbCr(src[ 5], src[ 7]));
+ float dist_06_00 = DistYCbCr(src[19], src[ 5]) + DistYCbCr(src[ 5], src[ 3]) + DistYCbCr(src[21], src[ 7]) + DistYCbCr(src[ 7], src[ 1]) + (4.0 * DistYCbCr(src[ 6], src[ 0]));
+ bool dominantGradient = (DOMINANT_DIRECTION_THRESHOLD * dist_05_07) < dist_06_00;
+ blendResult[0] = ((dist_05_07 < dist_06_00) && (v[0] != v[5]) && (v[0] != v[7])) ? ((dominantGradient) ? BLEND_DOMINANT : BLEND_NORMAL) : BLEND_NONE;
+ }
+
+ vec3 dst[16];
+ dst[ 0] = src[0];
+ dst[ 5] = src[0];
+ dst[ 6] = src[0];
+ dst[ 7] = src[0];
+
+ // Scale pixel
+ if (IsBlendingNeeded(blendResult))
+ {
+ float dist_01_04 = DistYCbCr(src[7], src[2]);
+ float dist_03_08 = DistYCbCr(src[1], src[6]);
+ bool haveShallowLine = (STEEP_DIRECTION_THRESHOLD * dist_01_04 <= dist_03_08) && (v[0] != v[2]) && (v[3] != v[2]);
+ bool haveSteepLine = (STEEP_DIRECTION_THRESHOLD * dist_03_08 <= dist_01_04) && (v[0] != v[6]) && (v[5] != v[6]);
+ bool needBlend = (blendResult[1] != BLEND_NONE);
+ bool doLineBlend = ( blendResult[1] >= BLEND_DOMINANT ||
+ !((blendResult[0] != BLEND_NONE && !IsPixEqual(src[0], src[2])) ||
+ (blendResult[2] != BLEND_NONE && !IsPixEqual(src[0], src[6])) ||
+ (IsPixEqual(src[2], src[1]) && IsPixEqual(src[1], src[8]) && IsPixEqual(src[8], src[7]) && IsPixEqual(src[7], src[6]) && !IsPixEqual(src[0], src[8])) ) );
+
+ vec3 blendPix = ( DistYCbCr(src[0], src[7]) <= DistYCbCr(src[0], src[1]) ) ? src[7] : src[1];
+ dst[ 6] = mix(dst[ 6], blendPix, (needBlend && doLineBlend && haveSteepLine) ? 0.25 : 0.00);
+ dst[ 7] = mix(dst[ 7], blendPix, (needBlend && doLineBlend && haveSteepLine) ? 0.75 : 0.00);
+
+ dist_01_04 = DistYCbCr(src[5], src[8]);
+ dist_03_08 = DistYCbCr(src[7], src[4]);
+ haveShallowLine = (STEEP_DIRECTION_THRESHOLD * dist_01_04 <= dist_03_08) && (v[0] != v[8]) && (v[1] != v[8]);
+ haveSteepLine = (STEEP_DIRECTION_THRESHOLD * dist_03_08 <= dist_01_04) && (v[0] != v[4]) && (v[3] != v[4]);
+ needBlend = (blendResult[0] != BLEND_NONE);
+ doLineBlend = ( blendResult[0] >= BLEND_DOMINANT ||
+ !((blendResult[3] != BLEND_NONE && !IsPixEqual(src[0], src[8])) ||
+ (blendResult[1] != BLEND_NONE && !IsPixEqual(src[0], src[4])) ||
+ (IsPixEqual(src[8], src[7]) && IsPixEqual(src[7], src[6]) && IsPixEqual(src[6], src[5]) && IsPixEqual(src[5], src[4]) && !IsPixEqual(src[0], src[6])) ) );
+
+ blendPix = ( DistYCbCr(src[0], src[5]) <= DistYCbCr(src[0], src[7]) ) ? src[5] : src[7];
+ dst[ 0] = mix(dst[ 0], blendPix, (needBlend && doLineBlend) ? ((haveShallowLine) ? ((haveSteepLine) ? 1.0/3.0 : 0.25) : ((haveSteepLine) ? 0.25 : 0.00)) : 0.00);
+ dst[ 5] = mix(dst[ 5], blendPix, (needBlend) ? ((doLineBlend) ? ((haveSteepLine) ? 1.00 : ((haveShallowLine) ? 0.75 : 0.50)) : 0.08677704501) : 0.00);
+ dst[ 6] = mix(dst[ 6], blendPix, (needBlend) ? ((doLineBlend) ? 1.00 : 0.6848532563) : 0.00);
+ dst[ 7] = mix(dst[ 7], blendPix, (needBlend) ? ((doLineBlend) ? ((haveShallowLine) ? 1.00 : ((haveSteepLine) ? 0.75 : 0.50)) : 0.08677704501) : 0.00);
+
+ dist_01_04 = DistYCbCr(src[3], src[6]);
+ dist_03_08 = DistYCbCr(src[5], src[2]);
+ haveShallowLine = (STEEP_DIRECTION_THRESHOLD * dist_01_04 <= dist_03_08) && (v[0] != v[6]) && (v[7] != v[6]);
+ haveSteepLine = (STEEP_DIRECTION_THRESHOLD * dist_03_08 <= dist_01_04) && (v[0] != v[2]) && (v[1] != v[2]);
+ needBlend = (blendResult[3] != BLEND_NONE);
+ doLineBlend = ( blendResult[3] >= BLEND_DOMINANT ||
+ !((blendResult[2] != BLEND_NONE && !IsPixEqual(src[0], src[6])) ||
+ (blendResult[0] != BLEND_NONE && !IsPixEqual(src[0], src[2])) ||
+ (IsPixEqual(src[6], src[5]) && IsPixEqual(src[5], src[4]) && IsPixEqual(src[4], src[3]) && IsPixEqual(src[3], src[2]) && !IsPixEqual(src[0], src[4])) ) );
+
+ blendPix = ( DistYCbCr(src[0], src[3]) <= DistYCbCr(src[0], src[5]) ) ? src[3] : src[5];
+ dst[ 5] = mix(dst[ 5], blendPix, (needBlend && doLineBlend && haveShallowLine) ? 0.75 : 0.00);
+ dst[ 6] = mix(dst[ 6], blendPix, (needBlend && doLineBlend && haveShallowLine) ? 0.25 : 0.00);
+ }
+
+ vec3 res;
+
+ f = step(0.25, f);
+ res = mix( mix(dst[6], dst[7], f.x), mix(dst[5], dst[0], f.x), f.y );
+
+ float gamma2 = 1.0 - (0.007 * gamma);
+ gl_FragColor.xyz = Gamma(res - fade.xyz, gamma2);
+ gl_FragColor.a = 1.0 - fade.a;
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/xbrz4x.json b/gamefilesd/res/shaders/game/xbrz4x.json
new file mode 100644
index 00000000..f63b3d0c
--- /dev/null
+++ b/gamefilesd/res/shaders/game/xbrz4x.json
@@ -0,0 +1,9 @@
+{
+ "shader": {
+ "id": "xbrz4x",
+ "fragmentFile": "res/shaders/game/xbrz4x.frag",
+ "vertexFile": "res/shaders/game/xbrz4x.vert",
+ "uniforms": ["fade", "gamma", "textureSize"],
+ "setShader": "game"
+ }
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/xbrz4x.vert b/gamefilesd/res/shaders/game/xbrz4x.vert
new file mode 100644
index 00000000..2f8cbdca
--- /dev/null
+++ b/gamefilesd/res/shaders/game/xbrz4x.vert
@@ -0,0 +1,5 @@
+void main()
+{
+ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+ gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/xbrz6x.frag b/gamefilesd/res/shaders/game/xbrz6x.frag
new file mode 100644
index 00000000..b9f00110
--- /dev/null
+++ b/gamefilesd/res/shaders/game/xbrz6x.frag
@@ -0,0 +1,245 @@
+uniform sampler2D texture;
+uniform vec2 textureSize;
+uniform vec4 fade;
+uniform float gamma;
+
+vec3 Gamma(vec3 value, float param)
+{
+ return vec3(pow(abs(value.r), param), pow(abs(value.g), param), pow(abs(value.b), param));
+}
+
+const vec3 dtt = vec3(65536.0,255.0,1.0);
+const vec3 Y = vec3(0.299, 0.587, 0.114);
+
+const float one_third = 1.0 / 6.0;
+const float two_third = 2.0 / 6.0;
+
+#define BLEND_NONE 0
+#define BLEND_NORMAL 1
+#define BLEND_DOMINANT 2
+#define LUMINANCE_WEIGHT 1.0
+#define EQUAL_COLOR_TOLERANCE 30.0/255.0
+#define STEEP_DIRECTION_THRESHOLD 2.2
+#define DOMINANT_DIRECTION_THRESHOLD 3.6
+
+float reduce(vec3 color)
+{
+ return dot(color, dtt);
+}
+
+float DistYCbCr(const vec3 pixA, const vec3 pixB)
+{
+ return dot(abs(pixA-pixB), Y);
+}
+
+bool IsPixEqual(const vec3 pixA, const vec3 pixB)
+{
+ return (DistYCbCr(pixA, pixB) < EQUAL_COLOR_TOLERANCE);
+}
+
+bool IsBlendingNeeded(const ivec4 blend)
+{
+ return any(notEqual(blend, ivec4(BLEND_NONE)));
+}
+
+// Output Pixel Mapping: 20|21|22|23|24|25
+// 19|06|07|08|09|26
+// 18|05|00|01|10|27
+// 17|04|03|02|11|28
+// 16|15|14|13|12|29
+// 35|34|33|32|31|30
+
+void main()
+{
+ vec2 OGLInvSize = vec2(1.0)/textureSize;
+ vec2 f = fract(gl_TexCoord[0].xy*textureSize);
+ vec2 TexCoord_0 = gl_TexCoord[0].xy-f*OGLInvSize + 0.5*OGLInvSize;
+
+ vec2 siggn = vec2(1.0,1.0);
+
+ if (f.x >= 0.5) { f.x = 1.0 - f.x; siggn.x = -1.0; }
+ if (f.y >= 0.5) { f.y = 1.0 - f.y; siggn.y = -1.0; }
+
+ float x = OGLInvSize.x;
+ float y = OGLInvSize.y;
+
+ vec2 dx = vec2( x, 0.0)*siggn.x;
+ vec2 dy = vec2( 0.0, y)*siggn.y;
+ vec2 x2 = vec2( 2.0*x , 0.0)*siggn.x;
+ vec2 y2 = vec2( 0.0 , 2.0*y)*siggn.y;
+ vec4 xy = vec4( x, y,-x,-y)*siggn.xyxy;
+ vec4 zw = vec4( 2.0*x , y,-2.0*x ,-y)*siggn.xyxy;
+ vec4 wz = vec4( x, 2.0*y ,-x,-2.0*y )*siggn.xyxy;
+
+ vec3 src[25];
+
+ src[ 6] = texture2D(texture, TexCoord_0 + xy.zw ).xyz;
+ src[ 7] = texture2D(texture, TexCoord_0 -dy ).xyz;
+ src[ 8] = texture2D(texture, TexCoord_0 + xy.xw ).xyz;
+ src[ 5] = texture2D(texture, TexCoord_0 - dx ).xyz;
+ src[ 0] = texture2D(texture, TexCoord_0 ).xyz;
+ src[ 1] = texture2D(texture, TexCoord_0 + dx ).xyz;
+ src[ 4] = texture2D(texture, TexCoord_0 + xy.zy ).xyz;
+ src[ 3] = texture2D(texture, TexCoord_0 +dy ).xyz;
+ src[ 2] = texture2D(texture, TexCoord_0 + xy.xy ).xyz;
+ src[21] = texture2D(texture, TexCoord_0 + wz.zw ).xyz;
+ src[23] = texture2D(texture, TexCoord_0 + wz.xw ).xyz;
+ src[19] = texture2D(texture, TexCoord_0 + zw.zw ).xyz;
+ src[17] = texture2D(texture, TexCoord_0 + zw.zy ).xyz;
+ src[ 9] = texture2D(texture, TexCoord_0 + zw.xw ).xyz;
+ src[11] = texture2D(texture, TexCoord_0 + zw.xy ).xyz;
+ src[15] = texture2D(texture, TexCoord_0 + wz.zy ).xyz;
+ src[13] = texture2D(texture, TexCoord_0 + wz.xy ).xyz;
+ src[22] = texture2D(texture, TexCoord_0 - y2 ).xyz;
+ src[18] = texture2D(texture, TexCoord_0 - x2 ).xyz;
+ src[14] = texture2D(texture, TexCoord_0 + y2 ).xyz;
+ src[10] = texture2D(texture, TexCoord_0 + x2 ).xyz;
+
+ float v[9];
+ v[0] = reduce(src[0]);
+ v[1] = reduce(src[1]);
+ v[2] = reduce(src[2]);
+ v[3] = reduce(src[3]);
+ v[4] = reduce(src[4]);
+ v[5] = reduce(src[5]);
+ v[6] = reduce(src[6]);
+ v[7] = reduce(src[7]);
+ v[8] = reduce(src[8]);
+
+ ivec4 blendResult = ivec4(BLEND_NONE);
+
+ // Preprocess corners
+ // Pixel Tap Mapping: --|--|--|--|--
+ // --|--|07|08|--
+ // --|05|00|01|10
+ // --|04|03|02|11
+ // --|--|14|13|--
+ // Corner (1, 1)
+ if ( !((v[0] == v[1] && v[3] == v[2]) || (v[0] == v[3] && v[1] == v[2])) )
+ {
+ float dist_03_01 = DistYCbCr(src[ 4], src[ 0]) + DistYCbCr(src[ 0], src[ 8]) + DistYCbCr(src[14], src[ 2]) + DistYCbCr(src[ 2], src[10]) + (4.0 * DistYCbCr(src[ 3], src[ 1]));
+ float dist_00_02 = DistYCbCr(src[ 5], src[ 3]) + DistYCbCr(src[ 3], src[13]) + DistYCbCr(src[ 7], src[ 1]) + DistYCbCr(src[ 1], src[11]) + (4.0 * DistYCbCr(src[ 0], src[ 2]));
+ bool dominantGradient = (DOMINANT_DIRECTION_THRESHOLD * dist_03_01) < dist_00_02;
+ blendResult[2] = ((dist_03_01 < dist_00_02) && (v[0] != v[1]) && (v[0] != v[3])) ? ((dominantGradient) ? BLEND_DOMINANT : BLEND_NORMAL) : BLEND_NONE;
+ }
+
+ // Pixel Tap Mapping: --|--|--|--|--
+ // --|06|07|--|--
+ // 18|05|00|01|--
+ // 17|04|03|02|--
+ // --|15|14|--|--
+ // Corner (0, 1)
+ if ( !((v[5] == v[0] && v[4] == v[3]) || (v[5] == v[4] && v[0] == v[3])) )
+ {
+ float dist_04_00 = DistYCbCr(src[17], src[ 5]) + DistYCbCr(src[ 5], src[ 7]) + DistYCbCr(src[15], src[ 3]) + DistYCbCr(src[ 3], src[ 1]) + (4.0 * DistYCbCr(src[ 4], src[ 0]));
+ float dist_05_03 = DistYCbCr(src[18], src[ 4]) + DistYCbCr(src[ 4], src[14]) + DistYCbCr(src[ 6], src[ 0]) + DistYCbCr(src[ 0], src[ 2]) + (4.0 * DistYCbCr(src[ 5], src[ 3]));
+ bool dominantGradient = (DOMINANT_DIRECTION_THRESHOLD * dist_05_03) < dist_04_00;
+ blendResult[3] = ((dist_04_00 > dist_05_03) && (v[0] != v[5]) && (v[0] != v[3])) ? ((dominantGradient) ? BLEND_DOMINANT : BLEND_NORMAL) : BLEND_NONE;
+ }
+
+ // Pixel Tap Mapping: --|--|22|23|--
+ // --|06|07|08|09
+ // --|05|00|01|10
+ // --|--|03|02|--
+ // --|--|--|--|--
+ // Corner (1, 0)
+ if ( !((v[7] == v[8] && v[0] == v[1]) || (v[7] == v[0] && v[8] == v[1])) )
+ {
+ float dist_00_08 = DistYCbCr(src[ 5], src[ 7]) + DistYCbCr(src[ 7], src[23]) + DistYCbCr(src[ 3], src[ 1]) + DistYCbCr(src[ 1], src[ 9]) + (4.0 * DistYCbCr(src[ 0], src[ 8]));
+ float dist_07_01 = DistYCbCr(src[ 6], src[ 0]) + DistYCbCr(src[ 0], src[ 2]) + DistYCbCr(src[22], src[ 8]) + DistYCbCr(src[ 8], src[10]) + (4.0 * DistYCbCr(src[ 7], src[ 1]));
+ bool dominantGradient = (DOMINANT_DIRECTION_THRESHOLD * dist_07_01) < dist_00_08;
+ blendResult[1] = ((dist_00_08 > dist_07_01) && (v[0] != v[7]) && (v[0] != v[1])) ? ((dominantGradient) ? BLEND_DOMINANT : BLEND_NORMAL) : BLEND_NONE;
+ }
+
+ // Pixel Tap Mapping: --|21|22|--|--
+ // 19|06|07|08|--
+ // 18|05|00|01|--
+ // --|04|03|--|--
+ // --|--|--|--|--
+ // Corner (0, 0)
+ if ( !((v[6] == v[7] && v[5] == v[0]) || (v[6] == v[5] && v[7] == v[0])) )
+ {
+ float dist_05_07 = DistYCbCr(src[18], src[ 6]) + DistYCbCr(src[ 6], src[22]) + DistYCbCr(src[ 4], src[ 0]) + DistYCbCr(src[ 0], src[ 8]) + (4.0 * DistYCbCr(src[ 5], src[ 7]));
+ float dist_06_00 = DistYCbCr(src[19], src[ 5]) + DistYCbCr(src[ 5], src[ 3]) + DistYCbCr(src[21], src[ 7]) + DistYCbCr(src[ 7], src[ 1]) + (4.0 * DistYCbCr(src[ 6], src[ 0]));
+ bool dominantGradient = (DOMINANT_DIRECTION_THRESHOLD * dist_05_07) < dist_06_00;
+ blendResult[0] = ((dist_05_07 < dist_06_00) && (v[0] != v[5]) && (v[0] != v[7])) ? ((dominantGradient) ? BLEND_DOMINANT : BLEND_NORMAL) : BLEND_NONE;
+ }
+
+ vec3 dst[36];
+ dst[ 0] = src[0];
+ dst[ 5] = src[0];
+ dst[ 6] = src[0];
+ dst[ 7] = src[0];
+ dst[18] = src[0];
+ dst[19] = src[0];
+ dst[20] = src[0];
+ dst[21] = src[0];
+ dst[22] = src[0];
+
+ // Scale pixel
+ if (IsBlendingNeeded(blendResult))
+ {
+ float dist_01_04 = DistYCbCr(src[7], src[2]);
+ float dist_03_08 = DistYCbCr(src[1], src[6]);
+ bool haveShallowLine = (STEEP_DIRECTION_THRESHOLD * dist_01_04 <= dist_03_08) && (v[0] != v[2]) && (v[3] != v[2]);
+ bool haveSteepLine = (STEEP_DIRECTION_THRESHOLD * dist_03_08 <= dist_01_04) && (v[0] != v[6]) && (v[5] != v[6]);
+ bool needBlend = (blendResult[1] != BLEND_NONE);
+ bool doLineBlend = ( blendResult[1] >= BLEND_DOMINANT ||
+ !((blendResult[0] != BLEND_NONE && !IsPixEqual(src[0], src[2])) ||
+ (blendResult[2] != BLEND_NONE && !IsPixEqual(src[0], src[6])) ||
+ (IsPixEqual(src[2], src[1]) && IsPixEqual(src[1], src[8]) && IsPixEqual(src[8], src[7]) && IsPixEqual(src[7], src[6]) && !IsPixEqual(src[0], src[8])) ) );
+
+ vec3 blendPix = ( DistYCbCr(src[0], src[7]) <= DistYCbCr(src[0], src[1]) ) ? src[7] : src[1];
+ dst[ 7] = mix(dst[ 7], blendPix, (needBlend && doLineBlend && haveSteepLine) ? 0.250 : 0.000);
+ dst[20] = mix(dst[20], blendPix, (needBlend && doLineBlend && haveSteepLine) ? 0.250 : 0.000);
+ dst[21] = mix(dst[21], blendPix, (needBlend && doLineBlend && haveSteepLine) ? 0.750 : 0.000);
+ dst[22] = mix(dst[22], blendPix, (needBlend && doLineBlend && haveSteepLine) ? 1.000 : 0.000);
+
+ dist_01_04 = DistYCbCr(src[5], src[8]);
+ dist_03_08 = DistYCbCr(src[7], src[4]);
+ haveShallowLine = (STEEP_DIRECTION_THRESHOLD * dist_01_04 <= dist_03_08) && (v[0] != v[8]) && (v[1] != v[8]);
+ haveSteepLine = (STEEP_DIRECTION_THRESHOLD * dist_03_08 <= dist_01_04) && (v[0] != v[4]) && (v[3] != v[4]);
+ needBlend = (blendResult[0] != BLEND_NONE);
+ doLineBlend = ( blendResult[0] >= BLEND_DOMINANT ||
+ !((blendResult[3] != BLEND_NONE && !IsPixEqual(src[0], src[8])) ||
+ (blendResult[1] != BLEND_NONE && !IsPixEqual(src[0], src[4])) ||
+ (IsPixEqual(src[8], src[7]) && IsPixEqual(src[7], src[6]) && IsPixEqual(src[6], src[5]) && IsPixEqual(src[5], src[4]) && !IsPixEqual(src[0], src[6])) ) );
+
+ blendPix = ( DistYCbCr(src[0], src[5]) <= DistYCbCr(src[0], src[7]) ) ? src[5] : src[7];
+ dst[ 5] = mix(dst[ 5], blendPix, (needBlend && doLineBlend) ? ((haveSteepLine) ? 0.750 : ((haveShallowLine) ? 0.250 : 0.000)) : 0.000);
+ dst[ 6] = mix(dst[ 6], blendPix, (needBlend && doLineBlend) ? ((!haveShallowLine && !haveSteepLine) ? 0.500 : 1.000) : 0.000);
+ dst[ 7] = mix(dst[ 7], blendPix, (needBlend && doLineBlend) ? ((haveShallowLine) ? 0.750 : ((haveSteepLine) ? 0.250 : 0.000)) : 0.000);
+ dst[18] = mix(dst[18], blendPix, (needBlend) ? ((doLineBlend) ? ((haveSteepLine) ? 1.000 : ((haveShallowLine) ? 0.750 : 0.500)) : 0.05652034508) : 0.000);
+ dst[19] = mix(dst[19], blendPix, (needBlend) ? ((doLineBlend) ? 1.000 : 0.4236372243) : 0.000);
+ dst[20] = mix(dst[20], blendPix, (needBlend) ? ((doLineBlend) ? 1.000 : 0.9711013910) : 0.000);
+ dst[21] = mix(dst[21], blendPix, (needBlend) ? ((doLineBlend) ? 1.000 : 0.4236372243) : 0.000);
+ dst[22] = mix(dst[22], blendPix, (needBlend) ? ((doLineBlend) ? ((haveShallowLine) ? 1.000 : ((haveSteepLine) ? 0.750 : 0.500)) : 0.05652034508) : 0.000);
+
+ dist_01_04 = DistYCbCr(src[3], src[6]);
+ dist_03_08 = DistYCbCr(src[5], src[2]);
+ haveShallowLine = (STEEP_DIRECTION_THRESHOLD * dist_01_04 <= dist_03_08) && (v[0] != v[6]) && (v[7] != v[6]);
+ haveSteepLine = (STEEP_DIRECTION_THRESHOLD * dist_03_08 <= dist_01_04) && (v[0] != v[2]) && (v[1] != v[2]);
+ needBlend = (blendResult[3] != BLEND_NONE);
+ doLineBlend = ( blendResult[3] >= BLEND_DOMINANT ||
+ !((blendResult[2] != BLEND_NONE && !IsPixEqual(src[0], src[6])) ||
+ (blendResult[0] != BLEND_NONE && !IsPixEqual(src[0], src[2])) ||
+ (IsPixEqual(src[6], src[5]) && IsPixEqual(src[5], src[4]) && IsPixEqual(src[4], src[3]) && IsPixEqual(src[3], src[2]) && !IsPixEqual(src[0], src[4])) ) );
+
+ blendPix = ( DistYCbCr(src[0], src[3]) <= DistYCbCr(src[0], src[5]) ) ? src[3] : src[5];
+ dst[ 5] = mix(dst[ 5], blendPix, (needBlend && doLineBlend && haveShallowLine) ? 0.250 : 0.000);
+ dst[18] = mix(dst[18], blendPix, (needBlend && doLineBlend && haveShallowLine) ? 1.000 : 0.000);
+ dst[19] = mix(dst[19], blendPix, (needBlend && doLineBlend && haveShallowLine) ? 0.750 : 0.000);
+ dst[20] = mix(dst[20], blendPix, (needBlend && doLineBlend && haveShallowLine) ? 0.250 : 0.000);
+ }
+
+ vec3 res;
+
+ res = mix( mix( dst[20], mix(dst[21], dst[22], step(two_third, f.x)), step(one_third, f.x)),
+ mix( mix( dst[19], mix(dst[6], dst[7], step(two_third, f.x)), step(one_third, f.x)),
+ mix( dst[18], mix(dst[5], dst[0], step(two_third, f.x)), step(one_third, f.x)), step(two_third, f.y)),
+ step(one_third, f.y));
+
+ float gamma2 = 1.0 - (0.007 * gamma);
+ gl_FragColor.xyz = Gamma(res - fade.xyz, gamma2);
+ gl_FragColor.a = 1.0 - fade.a;
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/xbrz6x.json b/gamefilesd/res/shaders/game/xbrz6x.json
new file mode 100644
index 00000000..d18eeac3
--- /dev/null
+++ b/gamefilesd/res/shaders/game/xbrz6x.json
@@ -0,0 +1,9 @@
+{
+ "shader": {
+ "id": "xbrz6x",
+ "fragmentFile": "res/shaders/game/xbrz6x.frag",
+ "vertexFile": "res/shaders/game/xbrz6x.vert",
+ "uniforms": ["fade", "gamma", "textureSize"],
+ "setShader": "game"
+ }
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/game/xbrz6x.vert b/gamefilesd/res/shaders/game/xbrz6x.vert
new file mode 100644
index 00000000..2f8cbdca
--- /dev/null
+++ b/gamefilesd/res/shaders/game/xbrz6x.vert
@@ -0,0 +1,5 @@
+void main()
+{
+ gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+ gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
+}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/level/default.frag b/gamefilesd/res/shaders/level/default.frag
index 8accc06a..6b1a98cd 100755
--- a/gamefilesd/res/shaders/level/default.frag
+++ b/gamefilesd/res/shaders/level/default.frag
@@ -1,35 +1,14 @@
#version 110
uniform sampler2D texture;
-uniform vec4 visibleRect;
-uniform int numberOfLights;
-uniform float lights[512];
uniform float defaultLight;
-uniform float lightRadius;
-uniform float elapsedTime;
void main()
{
- float light = 1.0 - defaultLight;
-
- if (numberOfLights > 0 && light > 0.0)
- {
- for(int i = 0; i < numberOfLights; i += 4)
- {
- vec2 coord = vec2(gl_TexCoord[0].x, 1.0 - gl_TexCoord[0].y);
- vec2 pixelPos = visibleRect.xy + (visibleRect.zw * coord);
- float dist = distance(pixelPos, vec2(lights[i], lights[i+1]));
- dist = clamp(dist / lightRadius, 0.0, lights[i+3]) / lights[i+3];
- light = clamp(dist, 0.0, light);
- if (light == 0.0)
- {
- break;
- }
- }
- }
-
vec4 pixel = texture2D(texture, gl_TexCoord[0].xy);
- pixel.r = pixel.r - light;
- pixel.g = pixel.g - light;
- pixel.b = pixel.b - light;
+ float light = min(pixel.a, defaultLight);
+ pixel.r = max(pixel.r - light, 0.0);
+ pixel.g = max(pixel.g - light, 0.0);
+ pixel.b = max(pixel.b - light, 0.0);
+ pixel.a = 1.0;
gl_FragColor = pixel;
}
\ No newline at end of file
diff --git a/gamefilesd/res/shaders/sprite/highlight.frag b/gamefilesd/res/shaders/sprite/highlight.frag
index 71812144..298a86d4 100755
--- a/gamefilesd/res/shaders/sprite/highlight.frag
+++ b/gamefilesd/res/shaders/sprite/highlight.frag
@@ -1,7 +1,6 @@
#version 110
uniform sampler2D palette;
uniform sampler2D texture;
-uniform vec2 pixelSize;
uniform vec4 outline;
uniform vec4 ignore;
uniform bool hasPalette;
diff --git a/gamefilesd/res/shaders/sprite/highlight.json b/gamefilesd/res/shaders/sprite/highlight.json
new file mode 100644
index 00000000..49819475
--- /dev/null
+++ b/gamefilesd/res/shaders/sprite/highlight.json
@@ -0,0 +1,8 @@
+{
+ "shader": {
+ "id": "highlight",
+ "fragmentFile": "res/shaders/sprite/highlight.frag",
+ "uniforms": ["palette", "outline"],
+ "setShader": "sprite"
+ }
+}
\ No newline at end of file
diff --git a/gamefilesd/towners/adria/buy/listItems.json b/gamefilesd/towners/adria/buy/listItems.json
index 809c4cfa..32b23fe8 100755
--- a/gamefilesd/towners/adria/buy/listItems.json
+++ b/gamefilesd/towners/adria/buy/listItems.json
@@ -3,7 +3,7 @@
"load": "ui/level/panel/big/lowerSeparator.json",
"load": "ui/level/panel/big/scrollbar.json",
"load": "towners/common/loadMenuButtons.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "tab",
"shift": true,
diff --git a/gamefilesd/towners/adria/panel.json b/gamefilesd/towners/adria/panel.json
index 26ba4bdb..9f05e30e 100755
--- a/gamefilesd/towners/adria/panel.json
+++ b/gamefilesd/towners/adria/panel.json
@@ -5,7 +5,7 @@
{ "name": "game.clearPlayingSounds" }
],
"load": "ui/level/char/disableKeys.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "back", "playSound": false }
diff --git a/gamefilesd/towners/adria/recharge/listItems.json b/gamefilesd/towners/adria/recharge/listItems.json
index 24fd1f00..b5273842 100755
--- a/gamefilesd/towners/adria/recharge/listItems.json
+++ b/gamefilesd/towners/adria/recharge/listItems.json
@@ -3,7 +3,7 @@
"load": "ui/level/panel/big/lowerSeparator.json",
"load": "ui/level/panel/big/scrollbar.json",
"load": "towners/common/loadMenuButtons.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "tab",
"shift": true,
diff --git a/gamefilesd/towners/adria/sell/listItems.json b/gamefilesd/towners/adria/sell/listItems.json
index 3e84ae3c..709b4c31 100755
--- a/gamefilesd/towners/adria/sell/listItems.json
+++ b/gamefilesd/towners/adria/sell/listItems.json
@@ -3,7 +3,7 @@
"load": "ui/level/panel/big/lowerSeparator.json",
"load": "ui/level/panel/big/scrollbar.json",
"load": "towners/common/loadMenuButtons.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "tab",
"shift": true,
diff --git a/gamefilesd/towners/cain/identify/listItems.json b/gamefilesd/towners/cain/identify/listItems.json
index dd2d0d23..aed2a02a 100755
--- a/gamefilesd/towners/cain/identify/listItems.json
+++ b/gamefilesd/towners/cain/identify/listItems.json
@@ -3,7 +3,7 @@
"load": "ui/level/panel/big/lowerSeparator.json",
"load": "ui/level/panel/big/scrollbar.json",
"load": "towners/common/loadMenuButtons.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "tab",
"shift": true,
diff --git a/gamefilesd/towners/cain/panel.json b/gamefilesd/towners/cain/panel.json
index 8651c300..2451089f 100755
--- a/gamefilesd/towners/cain/panel.json
+++ b/gamefilesd/towners/cain/panel.json
@@ -5,7 +5,7 @@
{ "name": "game.clearPlayingSounds" }
],
"load": "ui/level/char/disableKeys.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "back", "playSound": false }
diff --git a/gamefilesd/towners/common/loadQuest.json b/gamefilesd/towners/common/loadQuest.json
index 87a18a22..9050bfc5 100755
--- a/gamefilesd/towners/common/loadQuest.json
+++ b/gamefilesd/towners/common/loadQuest.json
@@ -11,6 +11,6 @@
{ "name": "load", "file": "{1}" }
]
},
- { "name": "sound.play", "id": "titlslct" }
+ "selectSound"
]
}
\ No newline at end of file
diff --git a/gamefilesd/towners/common/loadRandom.json b/gamefilesd/towners/common/loadRandom.json
index 94e6dfad..0e531bf0 100755
--- a/gamefilesd/towners/common/loadRandom.json
+++ b/gamefilesd/towners/common/loadRandom.json
@@ -1,7 +1,7 @@
{
"action": [
{ "name": "game.clearPlayingSounds" },
- { "name": "sound.play", "id": "titlslct" },
+ "selectSound",
{ "name": "resource.ignore", "id": "userPanel", "ignore": true },
{ "name": "resource.ignore", "id": "userPanelTalk", "ignore": true },
{ "name": "loadRandom", "file": "texts/{1}/gossip" }
diff --git a/gamefilesd/towners/farnham/panel.json b/gamefilesd/towners/farnham/panel.json
index a3677920..46f0dba8 100755
--- a/gamefilesd/towners/farnham/panel.json
+++ b/gamefilesd/towners/farnham/panel.json
@@ -5,7 +5,7 @@
{ "name": "game.clearPlayingSounds" }
],
"load": "ui/level/char/disableKeys.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "back", "playSound": false }
diff --git a/gamefilesd/towners/gillian/panel.json b/gamefilesd/towners/gillian/panel.json
index f1a26855..6f82e36f 100755
--- a/gamefilesd/towners/gillian/panel.json
+++ b/gamefilesd/towners/gillian/panel.json
@@ -5,7 +5,7 @@
{ "name": "game.clearPlayingSounds" }
],
"load": "ui/level/char/disableKeys.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "back", "playSound": false }
diff --git a/gamefilesd/towners/griswold/buy/listItems.json b/gamefilesd/towners/griswold/buy/listItems.json
index c3a30815..d9920e37 100755
--- a/gamefilesd/towners/griswold/buy/listItems.json
+++ b/gamefilesd/towners/griswold/buy/listItems.json
@@ -3,7 +3,7 @@
"load": "ui/level/panel/big/lowerSeparator.json",
"load": "ui/level/panel/big/scrollbar.json",
"load": "towners/common/loadMenuButtons.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "tab",
"shift": true,
diff --git a/gamefilesd/towners/griswold/buyPremium/listItems.json b/gamefilesd/towners/griswold/buyPremium/listItems.json
index c1c8fdea..cdb037b4 100755
--- a/gamefilesd/towners/griswold/buyPremium/listItems.json
+++ b/gamefilesd/towners/griswold/buyPremium/listItems.json
@@ -3,7 +3,7 @@
"load": "ui/level/panel/big/lowerSeparator.json",
"load": "ui/level/panel/big/scrollbar.json",
"load": "towners/common/loadMenuButtons.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "tab",
"shift": true,
diff --git a/gamefilesd/towners/griswold/panel.json b/gamefilesd/towners/griswold/panel.json
index 5dc16e80..91ba7436 100755
--- a/gamefilesd/towners/griswold/panel.json
+++ b/gamefilesd/towners/griswold/panel.json
@@ -5,7 +5,7 @@
{ "name": "game.clearPlayingSounds" }
],
"load": "ui/level/char/disableKeys.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "back", "playSound": false }
diff --git a/gamefilesd/towners/griswold/repair/listItems.json b/gamefilesd/towners/griswold/repair/listItems.json
index b8ce4e7d..d690a296 100755
--- a/gamefilesd/towners/griswold/repair/listItems.json
+++ b/gamefilesd/towners/griswold/repair/listItems.json
@@ -3,7 +3,7 @@
"load": "ui/level/panel/big/lowerSeparator.json",
"load": "ui/level/panel/big/scrollbar.json",
"load": "towners/common/loadMenuButtons.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "tab",
"shift": true,
diff --git a/gamefilesd/towners/griswold/sell/listItems.json b/gamefilesd/towners/griswold/sell/listItems.json
index 1c9d7fba..ddd2c31b 100755
--- a/gamefilesd/towners/griswold/sell/listItems.json
+++ b/gamefilesd/towners/griswold/sell/listItems.json
@@ -3,7 +3,7 @@
"load": "ui/level/panel/big/lowerSeparator.json",
"load": "ui/level/panel/big/scrollbar.json",
"load": "towners/common/loadMenuButtons.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "tab",
"shift": true,
diff --git a/gamefilesd/towners/ogden/panel.json b/gamefilesd/towners/ogden/panel.json
index 4e975400..82809b80 100755
--- a/gamefilesd/towners/ogden/panel.json
+++ b/gamefilesd/towners/ogden/panel.json
@@ -5,7 +5,7 @@
{ "name": "game.clearPlayingSounds" }
],
"load": "ui/level/char/disableKeys.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "back", "playSound": false }
diff --git a/gamefilesd/towners/pepin/buy/listItems.json b/gamefilesd/towners/pepin/buy/listItems.json
index a7892388..7d6bad87 100755
--- a/gamefilesd/towners/pepin/buy/listItems.json
+++ b/gamefilesd/towners/pepin/buy/listItems.json
@@ -3,7 +3,7 @@
"load": "ui/level/panel/big/lowerSeparator.json",
"load": "ui/level/panel/big/scrollbar.json",
"load": "towners/common/loadMenuButtons.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "tab",
"shift": true,
diff --git a/gamefilesd/towners/pepin/panel.json b/gamefilesd/towners/pepin/panel.json
index 39e49f3e..a43a0184 100755
--- a/gamefilesd/towners/pepin/panel.json
+++ b/gamefilesd/towners/pepin/panel.json
@@ -5,7 +5,7 @@
{ "name": "game.clearPlayingSounds" }
],
"load": "ui/level/char/disableKeys.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "back", "playSound": false }
diff --git a/gamefilesd/towners/wirt/buy/listItems.json b/gamefilesd/towners/wirt/buy/listItems.json
index 75135a33..35f2674e 100755
--- a/gamefilesd/towners/wirt/buy/listItems.json
+++ b/gamefilesd/towners/wirt/buy/listItems.json
@@ -1,7 +1,7 @@
{
"load": "ui/level/panel/big/upperSeparator.json",
"load": "ui/level/panel/big/lowerSeparator.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "tab",
"shift": true,
diff --git a/gamefilesd/towners/wirt/panel.json b/gamefilesd/towners/wirt/panel.json
index 6bf04bcb..c44a2ce9 100755
--- a/gamefilesd/towners/wirt/panel.json
+++ b/gamefilesd/towners/wirt/panel.json
@@ -5,7 +5,7 @@
{ "name": "game.clearPlayingSounds" }
],
"load": "ui/level/char/disableKeys.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "back", "playSound": false }
diff --git a/gamefilesd/ui/credits.json b/gamefilesd/ui/credits.json
index cf166b01..bd7d394e 100755
--- a/gamefilesd/ui/credits.json
+++ b/gamefilesd/ui/credits.json
@@ -5,7 +5,7 @@
"ignorePrevious": true
},
"cursor": null,
- "keyboard": {
+ "inputEvent": {
"key": ["enter", "esc", " "],
"action": { "name": "button.click", "id": "back" }
},
diff --git a/gamefilesd/ui/dataMissing.json b/gamefilesd/ui/dataMissing.json
index 8ad8fcd3..12b342c0 100755
--- a/gamefilesd/ui/dataMissing.json
+++ b/gamefilesd/ui/dataMissing.json
@@ -1,5 +1,5 @@
{
- "keyboard": {
+ "inputEvent": {
"key": ["enter", " ", "esc"],
"action": { "name": "game.close" }
},
diff --git a/gamefilesd/ui/gameInfo.json b/gamefilesd/ui/gameInfo.json
index aade6970..32368b57 100755
--- a/gamefilesd/ui/gameInfo.json
+++ b/gamefilesd/ui/gameInfo.json
@@ -15,7 +15,7 @@
"action": { "name": "drawable.anchorToFocused", "id": "pent2", "anchor": "right", "offset": [10, 0] }
}
],
- "keyboard": [
+ "inputEvent": [
{
"key": ["enter", " "],
"action": "focus.click"
diff --git a/gamefilesd/ui/level/char/disableKeys.json b/gamefilesd/ui/level/char/disableKeys.json
index e1bb1597..621070cf 100755
--- a/gamefilesd/ui/level/char/disableKeys.json
+++ b/gamefilesd/ui/level/char/disableKeys.json
@@ -1,15 +1,8 @@
{
- "keyboard": [
+ "inputEvent": [
{ "key": ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], "action": null },
{ "key": ["enter", " ", "up", "w", "down", "s", "tab", "left", "a", "right", "d"], "action": null },
{ "key": ["b", "c", "f", "g", "i", "q", "z"], "action": null },
- { "compositeKey": ["up", "left"], "action": null },
- { "compositeKey": ["up", "right"], "action": null },
- { "compositeKey": ["down", "left"], "action": null },
- { "compositeKey": ["down", "right"], "action": null },
- { "compositeKey": "up", "action": null },
- { "compositeKey": "down", "action": null },
- { "compositeKey": "left", "action": null },
- { "compositeKey": "right", "action": null }
+ { "key": ["up", "down", "left", "right", "rshift"], "event": null }
]
}
\ No newline at end of file
diff --git a/gamefilesd/ui/level/char/panel.json b/gamefilesd/ui/level/char/panel.json
index d041a605..02d1c9b7 100755
--- a/gamefilesd/ui/level/char/panel.json
+++ b/gamefilesd/ui/level/char/panel.json
@@ -412,7 +412,7 @@
"horizontalSpaceOffset": 2,
"verticalAlign": "center"
},
- "keyboard": [
+ "inputEvent": [
{ "key": "+", "action": "automapZoomIn" },
{ "key": "-", "action": "automapZoomOut" },
{ "key": "1", "action": "useBelt1Item" },
diff --git a/gamefilesd/ui/level/char/panelQuests.json b/gamefilesd/ui/level/char/panelQuests.json
index 0f743996..e9d6ef66 100755
--- a/gamefilesd/ui/level/char/panelQuests.json
+++ b/gamefilesd/ui/level/char/panelQuests.json
@@ -12,7 +12,7 @@
"action": { "name": "drawable.anchorToFocused", "id": "pent2", "anchor": "right", "offset": [6, 1] }
}
],
- "keyboard": [
+ "inputEvent": [
{
"key": ["enter", " "],
"action": "focus.click"
@@ -77,7 +77,7 @@
{ "name": "resource.bringToFront", "id": "removeGold" }
]
},
- { "name": "sound.play", "id": "titlslct" }
+ "selectSound"
],
"onFocus": [
"anchorLeftPentagram",
diff --git a/gamefilesd/ui/level/char/removeGold.json b/gamefilesd/ui/level/char/removeGold.json
index c7e641b9..d0568323 100755
--- a/gamefilesd/ui/level/char/removeGold.json
+++ b/gamefilesd/ui/level/char/removeGold.json
@@ -4,7 +4,7 @@
{ "name": "resource.add", "id": "removeGold" }
],
"load": "ui/level/char/disableKeys.json",
- "keyboard": [
+ "inputEvent": [
{
"key": "enter",
"action": { "name": "inputText.click", "id": "goldQuantity" }
diff --git a/gamefilesd/ui/level/menu/common.json b/gamefilesd/ui/level/menu/common.json
index ff47a3bb..8ced6313 100755
--- a/gamefilesd/ui/level/menu/common.json
+++ b/gamefilesd/ui/level/menu/common.json
@@ -14,7 +14,7 @@
}
],
"load": "ui/level/char/disableKeys.json",
- "keyboard": [
+ "inputEvent": [
{
"key": ["enter", " "],
"action": "focus.click"
@@ -42,10 +42,12 @@
"file": "data/diabsmal.cel",
"palette": "town"
},
+ "imageContainer": {
+ "file": "data/PentSpin.cel"
+ },
"texturePack": {
"id": "PentSpin",
"imageContainer": "PentSpin",
- "file": "data/PentSpin.cel",
"palette": "town"
},
"image": {
diff --git a/gamefilesd/ui/level/menu/game2.json b/gamefilesd/ui/level/menu/game2.json
index 07d94d83..a698146b 100755
--- a/gamefilesd/ui/level/menu/game2.json
+++ b/gamefilesd/ui/level/menu/game2.json
@@ -93,7 +93,7 @@
]
}
],
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateAudioDownKeyboardShortcut"
@@ -234,7 +234,7 @@
{ "name": "drawable.anchor", "id": "pent2", "idAnchor": "optbar1", "anchor": "right" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateAudioDownKeyboardShortcut"
@@ -264,7 +264,7 @@
{ "name": "drawable.anchor", "id": "pent2", "idAnchor": "optbar2", "anchor": "right" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateSoundDownKeyboardShortcut"
@@ -294,7 +294,7 @@
{ "name": "drawable.anchor", "id": "pent2", "idAnchor": "optbar3", "anchor": "right" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateGammaDownKeyboardShortcut"
diff --git a/gamefilesd/ui/level/showText.json b/gamefilesd/ui/level/showText.json
index edee6eee..17b2f2f3 100755
--- a/gamefilesd/ui/level/showText.json
+++ b/gamefilesd/ui/level/showText.json
@@ -4,7 +4,7 @@
"id": "{1}"
},
"load": "ui/level/char/disableKeys.json",
- "keyboard": {
+ "inputEvent": {
"key": ["enter", "esc", " "],
"action": { "name": "button.click", "id": "textWallButton" }
},
diff --git a/gamefilesd/ui/level/viewMap.json b/gamefilesd/ui/level/viewMap.json
index fe25ccc1..5f5bb6e3 100755
--- a/gamefilesd/ui/level/viewMap.json
+++ b/gamefilesd/ui/level/viewMap.json
@@ -22,7 +22,7 @@
{ "name": "image.setTexture", "id": "mapImage", "texture": "{1}", "resetRect": true },
{ "name": "drawable.visible", "id": "mapImage", "visible": true }
],
- "keyboard": {
+ "inputEvent": {
"key": "any",
"action": { "name": "button.click", "id": "viewMapButton" }
},
diff --git a/gamefilesd/ui/mainMenu.json b/gamefilesd/ui/mainMenu.json
index a27a7ea9..57456fc1 100755
--- a/gamefilesd/ui/mainMenu.json
+++ b/gamefilesd/ui/mainMenu.json
@@ -42,7 +42,7 @@
"loop": true,
"play": true
},
- "keyboard": [
+ "inputEvent": [
{
"key": ["enter", " "],
"action": "focus.click"
@@ -75,23 +75,31 @@
}
}
],
- "texture": {
- "id": "mainmenu",
- "file": "ui_art/mainmenu.pcx"
- },
+ "texture": [
+ {
+ "id": "mainmenu",
+ "file": "ui_art/mainmenu.pcx"
+ },
+ {
+ "id": "smlogo",
+ "file": "ui_art/smlogo.pcx",
+ "mask": "0x00FF00"
+ },
+ {
+ "id": "focus42",
+ "file": "ui_art/focus42.pcx",
+ "mask": "0x00FF00"
+ }
+ ],
"texturePack": [
{
"id": "smlogo",
"texture": "smlogo",
- "file": "ui_art/smlogo.pcx",
- "mask": "0x00FF00",
"frames": 15
},
{
"id": "focus42",
"texture": "focus42",
- "file": "ui_art/focus42.pcx",
- "mask": "0x00FF00",
"frames": 8
}
],
diff --git a/gamefilesd/ui/mods.json b/gamefilesd/ui/mods.json
index 3f4b8fac..1b4225ce 100755
--- a/gamefilesd/ui/mods.json
+++ b/gamefilesd/ui/mods.json
@@ -6,7 +6,7 @@
"loadMainMenuImg",
"loadLogoImg"
],
- "keyboard": {
+ "inputEvent": {
"key": "esc",
"action": { "name": "button.click", "id": "back" }
},
diff --git a/gamefilesd/ui/playVideo.json b/gamefilesd/ui/playVideo.json
index a6b41b11..e4a9b92e 100755
--- a/gamefilesd/ui/playVideo.json
+++ b/gamefilesd/ui/playVideo.json
@@ -10,7 +10,7 @@
}
],
"cursor": null,
- "keyboard": {
+ "inputEvent": {
"key": ["enter", "esc", " "],
"action": { "name": "button.click", "id": "background" }
},
diff --git a/gamefilesd/ui/saveSettings.json b/gamefilesd/ui/saveSettings.json
index 08e28003..5c0587a9 100755
--- a/gamefilesd/ui/saveSettings.json
+++ b/gamefilesd/ui/saveSettings.json
@@ -3,6 +3,6 @@
"name": "file.copy",
"file": "ui/settingsFile.json",
"writeFile": "settings.json",
- "replaceVars": "value"
+ "replace": "value"
}
}
\ No newline at end of file
diff --git a/gamefilesd/ui/settings.json b/gamefilesd/ui/settings.json
index 1630a72c..79760f21 100755
--- a/gamefilesd/ui/settings.json
+++ b/gamefilesd/ui/settings.json
@@ -5,7 +5,7 @@
"loadMainMenuImg",
"loadLogoImg"
],
- "keyboard": [
+ "inputEvent": [
{
"key": ["enter", " "],
"action": "focus.click"
diff --git a/gamefilesd/ui/settingsShaders.json b/gamefilesd/ui/settingsShaders.json
index b5371661..ac4b2db6 100755
--- a/gamefilesd/ui/settingsShaders.json
+++ b/gamefilesd/ui/settingsShaders.json
@@ -5,7 +5,7 @@
"loadMainMenuImg",
"loadLogoImg"
],
- "keyboard": [
+ "inputEvent": [
{
"key": ["enter", " "],
"action": "focus.click"
@@ -61,22 +61,62 @@
"case": [
{
"value": "Game Shader: Default",
- "action": { "name": "text.setText", "id": "gameShader", "text": "Game Shader: Grain" }
+ "action": [
+ { "name": "load", "file": "res/shaders/game/grayscale.json" },
+ { "name": "text.setText", "id": "gameShader", "text": "Game Shader: Grayscale" }
+ ]
+ },
+ {
+ "value": "Game Shader: Grayscale",
+ "action": [
+ { "name": "load", "file": "res/shaders/game/grain.json" },
+ { "name": "text.setText", "id": "gameShader", "text": "Game Shader: Grain" }
+ ]
},
{
"value": "Game Shader: Grain",
- "action": { "name": "text.setText", "id": "gameShader", "text": "Game Shader: Warp" }
+ "action": [
+ { "name": "load", "file": "res/shaders/game/warp.json" },
+ { "name": "text.setText", "id": "gameShader", "text": "Game Shader: Warp" }
+ ]
},
{
"value": "Game Shader: Warp",
- "action": { "name": "text.setText", "id": "gameShader", "text": "Game Shader: Swirl" }
+ "action": [
+ { "name": "load", "file": "res/shaders/game/swirl.json" },
+ { "name": "text.setText", "id": "gameShader", "text": "Game Shader: Swirl" }
+ ]
},
{
"value": "Game Shader: Swirl",
- "action": { "name": "text.setText", "id": "gameShader", "text": "Game Shader: Default" }
+ "action": [
+ { "name": "load", "file": "res/shaders/game/lanczos6tap.json" },
+ { "name": "text.setText", "id": "gameShader", "text": "Game Shader: lanczos" }
+ ]
+ },
+ {
+ "value": "Game Shader: lanczos",
+ "action": [
+ { "name": "load", "file": "res/shaders/game/scale4xhq.json" },
+ { "name": "text.setText", "id": "gameShader", "text": "Game Shader: scale4xhq" }
+ ]
+ },
+ {
+ "value": "Game Shader: scale4xhq",
+ "action": [
+ { "name": "load", "file": "res/shaders/game/xbrz4x.json" },
+ { "name": "text.setText", "id": "gameShader", "text": "Game Shader: xbrz4x" }
+ ]
+ },
+ {
+ "value": "Game Shader: xbrz4x",
+ "action": [
+ { "name": "game.setShader", "shader": "game", "gameShader": "game" },
+ { "name": "text.setText", "id": "gameShader", "text": "Game Shader: Default" }
+ ]
}
],
- "default": { "name": "text.setText", "id": "gameShader", "text": "Game Shader: Default" }
+ "default": "Game Shader: xbrz4x"
},
"onFocus": "anchorPentagrams"
},
@@ -96,10 +136,16 @@
"case": [
{
"value": "Sprite Shader: Default",
- "action": { "name": "text.setText", "id": "spriteShader", "text": "Sprite Shader: Highlight" }
+ "action": [
+ { "name": "load", "file": "res/shaders/sptite/highlight.json" },
+ { "name": "text.setText", "id": "spriteShader", "text": "Sprite Shader: Highlight" }
+ ]
}
],
- "default": { "name": "text.setText", "id": "spriteShader", "text": "Sprite Shader: Default" }
+ "default": [
+ { "name": "game.setShader", "shader": "sprite", "gameShader": "sprite" },
+ { "name": "text.setText", "id": "spriteShader", "text": "Sprite Shader: Default" }
+ ]
},
"onFocus": "anchorPentagrams"
},
@@ -119,30 +165,48 @@
"case": [
{
"value": "Max Lights: 128",
- "action": { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 0" }
+ "action": [
+ { "name": "game.setProperty", "property": "maxLights", "value": 0 },
+ { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 0" }
+ ]
},
{
"value": "Max Lights: 0",
- "action": { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 2" }
+ "action": [
+ { "name": "game.setProperty", "property": "maxLights", "value": 2 },
+ { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 2" }
+ ]
},
{
"value": "Max Lights: 2",
- "action": { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 4" }
+ "action": [
+ { "name": "game.setProperty", "property": "maxLights", "value": 4 },
+ { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 4" }
+ ]
},
{
"value": "Max Lights: 4",
- "action": { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 16" }
+ "action": [
+ { "name": "game.setProperty", "property": "maxLights", "value": 16 },
+ { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 16" }
+ ]
},
{
"value": "Max Lights: 16",
- "action": { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 64" }
+ "action": [
+ { "name": "game.setProperty", "property": "maxLights", "value": 64 },
+ { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 64" }
+ ]
},
{
"value": "Max Lights: 64",
- "action": { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 128" }
+ "action": [
+ { "name": "game.setProperty", "property": "maxLights", "value": 128 },
+ { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 128" }
+ ]
}
],
- "default": { "name": "text.setText", "id": "maxLights", "text": "Max Lights: 128" }
+ "default": "Max Lights: 64"
},
"onFocus": "anchorPentagrams"
},
@@ -159,107 +223,6 @@
"onClick": {
"name": "game.fadeOut",
"action": [
- {
- "name": "switch",
- "param": "%gameShader.text%",
- "case": [
- {
- "value": "Game Shader: Grain",
- "action": [
- {
- "name": "if.equal",
- "param1": "%game.hasShader.grain%",
- "param2": false,
- "then": {
- "name": "shader.load",
- "id": "grain",
- "fragmentFile": "res/shaders/game/grain.frag"
- }
- },
- { "name": "game.setShader", "shader": "grain", "gameShader": "game" }
- ]
- },
- {
- "value": "Game Shader: Swirl",
- "action": [
- {
- "name": "if.equal",
- "param1": "%game.hasShader.swirl%",
- "param2": false,
- "then": {
- "name": "shader.load",
- "id": "swirl",
- "fragmentFile": "res/shaders/game/swirl.frag"
- }
- },
- { "name": "game.setShader", "shader": "swirl", "gameShader": "game" }
- ]
- },
- {
- "value": "Game Shader: Warp",
- "action": [
- {
- "name": "if.equal",
- "param1": "%game.hasShader.warp%",
- "param2": false,
- "then": {
- "name": "shader.load",
- "id": "warp",
- "fragmentFile": "res/shaders/game/warp.frag"
- }
- },
- { "name": "game.setShader", "shader": "warp", "gameShader": "game" }
- ]
- }
- ],
- "default": { "name": "game.setShader", "shader": "game", "gameShader": "game" }
- },
- {
- "name": "switch",
- "param": "%spriteShader.text%",
- "case": [
- {
- "value": "Sprite Shader: Highlight",
- "action": [
- {
- "name": "if.equal",
- "param1": "%game.hasShader.highlight%",
- "param2": false,
- "then": {
- "name": "shader.load",
- "id": "highlight",
- "fragmentFile": "res/shaders/sprite/highlight.frag"
- }
- },
- { "name": "game.setShader", "shader": "highlight", "gameShader": "sprite" }
- ]
- }
- ],
- "default": { "name": "game.setShader", "shader": "sprite", "gameShader": "sprite" }
- },
- {
- "name": "switch",
- "param": "%maxLights.text%",
- "case": [
- {
- "value": "Max Lights: 0",
- "action": { "name": "game.setProperty", "property": "maxLights", "value": 0 }
- },
- {
- "value": "Max Lights: 2",
- "action": { "name": "game.setProperty", "property": "maxLights", "value": 2 }
- },
- {
- "value": "Max Lights: 4",
- "action": { "name": "game.setProperty", "property": "maxLights", "value": 4 }
- },
- {
- "value": "Max Lights: 16",
- "action": { "name": "game.setProperty", "property": "maxLights", "value": 16 }
- }
- ],
- "default": { "name": "game.setProperty", "property": "maxLights", "value": 64 }
- },
{ "name": "resource.pop" },
{ "name": "game.fadeIn" }
]
@@ -267,5 +230,10 @@
"onFocus": "anchorPentagrams"
}
],
- "action": "anchorPentagrams"
+ "action": [
+ { "name": "game.setShader", "shader": "game", "gameShader": "game" },
+ { "name": "game.setShader", "shader": "sprite", "gameShader": "sprite" },
+ { "name": "game.setProperty", "property": "maxLights", "value": 128 },
+ "anchorPentagrams"
+ ]
}
\ No newline at end of file
diff --git a/gamefilesd/ui/singlePlayer/delete.json b/gamefilesd/ui/singlePlayer/delete.json
index 2f2e238d..20378943 100755
--- a/gamefilesd/ui/singlePlayer/delete.json
+++ b/gamefilesd/ui/singlePlayer/delete.json
@@ -5,7 +5,7 @@
{ "name": "text.setText", "id": "label1", "text": "Delete Single Player Hero" },
{ "name": "text.setText", "id": "label2", "text": "Select Hero" }
],
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "no" }
diff --git a/gamefilesd/ui/singlePlayer/main.json b/gamefilesd/ui/singlePlayer/main.json
index 321d8f7b..e9c6e05b 100755
--- a/gamefilesd/ui/singlePlayer/main.json
+++ b/gamefilesd/ui/singlePlayer/main.json
@@ -3,7 +3,7 @@
{ "name": "resource.add", "id": "singlePlayer", "ignorePrevious": true },
{ "name": "game.fadeIn" }
],
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "cancel" }
diff --git a/gamefilesd/ui/singlePlayer/newHero.json b/gamefilesd/ui/singlePlayer/newHero.json
index 93f46f85..6b45d19e 100755
--- a/gamefilesd/ui/singlePlayer/newHero.json
+++ b/gamefilesd/ui/singlePlayer/newHero.json
@@ -34,7 +34,7 @@
"position": [424, 285],
"anchor": "none",
"onClick": [
- { "name": "sound.play", "id": "titlemov" },
+ "focusSound",
{ "name": "variable.set", "key": "charClass", "value": "Warrior" },
{ "name": "load", "file": "ui/singlePlayer/setPlayerImage.json" },
{ "name": "text.setText", "id": "txtLevel", "text": "1" },
@@ -56,7 +56,7 @@
"position": [424, 318],
"anchor": "none",
"onClick": [
- { "name": "sound.play", "id": "titlemov" },
+ "focusSound",
{ "name": "variable.set", "key": "charClass", "value": "Rogue" },
{ "name": "load", "file": "ui/singlePlayer/setPlayerImage.json" },
{ "name": "text.setText", "id": "txtLevel", "text": "1" },
@@ -78,7 +78,7 @@
"position": [424, 352],
"anchor": "none",
"onClick": [
- { "name": "sound.play", "id": "titlemov" },
+ "focusSound",
{ "name": "variable.set", "key": "charClass", "value": "Sorceror" },
{ "name": "load", "file": "ui/singlePlayer/setPlayerImage.json" },
{ "name": "text.setText", "id": "txtLevel", "text": "1" },
diff --git a/gamefilesd/ui/singlePlayer/newName.json b/gamefilesd/ui/singlePlayer/newName.json
index b36b689e..fd2d6cf2 100755
--- a/gamefilesd/ui/singlePlayer/newName.json
+++ b/gamefilesd/ui/singlePlayer/newName.json
@@ -37,7 +37,7 @@
"animation": {
"id": "caret",
"texturePack": "caret",
- "position": [310, 318],
+ "position": [308, 318],
"anchor": "none",
"refresh": 0.5
},
diff --git a/gamefilesd/ui/singlePlayer/newNameExists.json b/gamefilesd/ui/singlePlayer/newNameExists.json
index 58e61035..8c933449 100755
--- a/gamefilesd/ui/singlePlayer/newNameExists.json
+++ b/gamefilesd/ui/singlePlayer/newNameExists.json
@@ -4,7 +4,7 @@
"id": "singlePlayerNameExists",
"ignorePrevious": "update"
},
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "no" }
diff --git a/gamefilesd/ui/singlePlayer/newNameTooShort.json b/gamefilesd/ui/singlePlayer/newNameTooShort.json
index d050c326..648729f0 100755
--- a/gamefilesd/ui/singlePlayer/newNameTooShort.json
+++ b/gamefilesd/ui/singlePlayer/newNameTooShort.json
@@ -2,7 +2,7 @@
"action": [
{ "name": "resource.add", "id": "singlePlayerGameNewNameTooShort" }
],
- "keyboard": {
+ "inputEvent": {
"key": "esc",
"action": { "name": "button.click", "id": "ok" }
},
diff --git a/gamefilesd/ui/singlePlayer/select.json b/gamefilesd/ui/singlePlayer/select.json
index 1f4f605b..22865ad3 100755
--- a/gamefilesd/ui/singlePlayer/select.json
+++ b/gamefilesd/ui/singlePlayer/select.json
@@ -14,7 +14,7 @@
"action": { "name": "menu.moveScrollbar", "idMenu": "menuLoadGame", "idScrollbar": "sb_thumb", "idAnchorTo": "btnDrag", "range": 133 }
}
],
- "keyboard": {
+ "inputEvent": {
"key": "delete",
"action": { "name": "button.click", "id": "delete" }
},
@@ -228,7 +228,7 @@
{ "name": "button.enable", "id": "btnDown" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["up", "w"],
"action": [
diff --git a/gamefilesd/ui/splashScreen.json b/gamefilesd/ui/splashScreen.json
index 0e670ec8..c5d6bc0d 100755
--- a/gamefilesd/ui/splashScreen.json
+++ b/gamefilesd/ui/splashScreen.json
@@ -3,7 +3,7 @@
"name": "resource.add",
"id": "splashScreen"
},
- "keyboard": {
+ "inputEvent": {
"key": ["enter", "esc", " "],
"action": { "name": "button.click", "id": "skip" }
},
diff --git a/gamefilesd2/level/default/d2/act1/catacombs.json b/gamefilesd2/level/default/d2/act1/catacombs.json
index d9071fad..85cf0e88 100755
--- a/gamefilesd2/level/default/d2/act1/catacombs.json
+++ b/gamefilesd2/level/default/d2/act1/catacombs.json
@@ -13,46 +13,69 @@
}
}
},
+ "imageContainer": [
+ {
+ "id": "andariel",
+ "file": "data/global/tiles/ACT1/CATACOMB/andariel.dt1"
+ },
+ {
+ "id": "basewalls",
+ "file": "data/global/tiles/ACT1/CATACOMB/basewalls.dt1"
+ },
+ {
+ "id": "catacombs2",
+ "file": "data/global/tiles/ACT1/CATACOMB/Catacombs2.dt1"
+ },
+ {
+ "id": "floor",
+ "file": "data/global/tiles/ACT1/CATACOMB/floor.dt1"
+ },
+ {
+ "id": "upstr",
+ "file": "data/global/tiles/ACT1/CATACOMB/upstr.dt1"
+ },
+ {
+ "id": "cathstr",
+ "file": "data/global/tiles/ACT1/CATACOMB/cathstr.dt1"
+ },
+ {
+ "id": "dwnstr",
+ "file": "data/global/tiles/ACT1/CATACOMB/dwnstr.dt1"
+ }
+ ],
"texturePack": [
{
"id": "andariel",
- "file": "data/global/tiles/ACT1/CATACOMB/andariel.dt1",
"imageContainer": "andariel",
"palette": "level"
},
{
"id": "basewalls",
- "file": "data/global/tiles/ACT1/CATACOMB/basewalls.dt1",
"imageContainer": "basewalls",
"palette": "level"
},
{
"id": "catacombs2",
- "file": "data/global/tiles/ACT1/CATACOMB/Catacombs2.dt1",
"imageContainer": "catacombs2",
"palette": "level"
},
{
"id": "floor",
- "file": "data/global/tiles/ACT1/CATACOMB/floor.dt1",
"imageContainer": "floor",
"palette": "level"
},
{
"id": "upstr",
- "file": "data/global/tiles/ACT1/CATACOMB/upstr.dt1",
"imageContainer": "upstr",
"palette": "level"
},
{
"id": "cathstr",
- "file": "data/global/tiles/ACT1/CATACOMB/cathstr.dt1",
"imageContainer": "cathstr",
"palette": "level"
},
{
"id": "dwnstr",
- "file": "data/global/tiles/ACT1/CATACOMB/dwnstr.dt1",
"imageContainer": "dwnstr",
"palette": "level"
},
diff --git a/gamefilesd2/level/default/d2/act1/town.json b/gamefilesd2/level/default/d2/act1/town.json
index e7e34ec8..fad2d76f 100755
--- a/gamefilesd2/level/default/d2/act1/town.json
+++ b/gamefilesd2/level/default/d2/act1/town.json
@@ -13,52 +13,78 @@
}
}
},
+ "imageContainer": [
+ {
+ "id": "treegroups",
+ "file": "data/global/tiles/ACT1/OUTDOORS/treegroups.dt1"
+ },
+ {
+ "id": "stonewall",
+ "file": "data/global/tiles/ACT1/OUTDOORS/stonewall.dt1"
+ },
+ {
+ "id": "floor",
+ "file": "data/global/tiles/ACT1/TOWN/floor.dt1"
+ },
+ {
+ "id": "warp",
+ "file": "data/global/tiles/ACT1/BARRACKS/warp.dt1"
+ },
+ {
+ "id": "river",
+ "file": "data/global/tiles/ACT1/OUTDOORS/river.dt1"
+ },
+ {
+ "id": "objects",
+ "file": "data/global/tiles/ACT1/TOWN/objects.dt1"
+ },
+ {
+ "id": "fence",
+ "file": "data/global/tiles/ACT1/TOWN/fence.dt1"
+ },
+ {
+ "id": "objects2",
+ "file": "data/global/tiles/ACT1/OUTDOORS/objects.dt1"
+ }
+ ],
"texturePack": [
{
"id": "treegroups",
- "file": "data/global/tiles/ACT1/OUTDOORS/treegroups.dt1",
"imageContainer": "treegroups",
"palette": "level"
},
{
"id": "stonewall",
- "file": "data/global/tiles/ACT1/OUTDOORS/stonewall.dt1",
"imageContainer": "stonewall",
"palette": "level"
},
{
"id": "floor",
- "file": "data/global/tiles/ACT1/TOWN/floor.dt1",
"imageContainer": "floor",
"palette": "level"
},
{
"id": "warp",
- "file": "data/global/tiles/ACT1/BARRACKS/warp.dt1",
"imageContainer": "warp",
"palette": "level"
},
{
"id": "river",
- "file": "data/global/tiles/ACT1/OUTDOORS/river.dt1",
"imageContainer": "river",
"palette": "level"
},
{
"id": "objects",
- "file": "data/global/tiles/ACT1/TOWN/objects.dt1",
"imageContainer": "objects",
"palette": "level"
},
{
"id": "fence",
- "file": "data/global/tiles/ACT1/TOWN/fence.dt1",
"imageContainer": "fence",
"palette": "level"
},
{
"id": "objects2",
- "file": "data/global/tiles/ACT1/OUTDOORS/objects.dt1",
"imageContainer": "objects2",
"palette": "level"
},
diff --git a/gamefilesd2/level/default/d2/act2/town.json b/gamefilesd2/level/default/d2/act2/town.json
index a11aa88d..a7ae5be5 100755
--- a/gamefilesd2/level/default/d2/act2/town.json
+++ b/gamefilesd2/level/default/d2/act2/town.json
@@ -13,88 +13,132 @@
}
}
},
+ "imageContainer": [
+ {
+ "id": "warp",
+ "file": "data/global/tiles/ACT1/BARRACKS/warp.dt1"
+ },
+ {
+ "id": "mesa",
+ "file": "data/global/tiles/ACT2/Outdoors/mesa.dt1"
+ },
+ {
+ "id": "palm",
+ "file": "data/global/tiles/ACT2/Outdoors/palm.dt1"
+ },
+ {
+ "id": "palace",
+ "file": "data/global/tiles/ACT2/palace/palace.dt1"
+ },
+ {
+ "id": "build",
+ "file": "data/global/tiles/ACT2/Town/build.dt1"
+ },
+ {
+ "id": "canal",
+ "file": "data/global/tiles/ACT2/Town/canal.dt1"
+ },
+ {
+ "id": "curbs",
+ "file": "data/global/tiles/ACT2/Town/curbs.dt1"
+ },
+ {
+ "id": "gate",
+ "file": "data/global/tiles/ACT2/Town/gate.dt1"
+ },
+ {
+ "id": "ground",
+ "file": "data/global/tiles/ACT2/Town/ground.dt1"
+ },
+ {
+ "id": "guard",
+ "file": "data/global/tiles/ACT2/Town/guard.dt1"
+ },
+ {
+ "id": "shop",
+ "file": "data/global/tiles/ACT2/Town/shop.dt1"
+ },
+ {
+ "id": "tavern",
+ "file": "data/global/tiles/ACT2/Town/tavern.dt1"
+ },
+ {
+ "id": "wagon",
+ "file": "data/global/tiles/ACT2/Town/wagon.dt1"
+ },
+ {
+ "id": "walls",
+ "file": "data/global/tiles/ACT2/Town/walls.dt1"
+ }
+ ],
"texturePack": [
{
"id": "warp",
- "file": "data/global/tiles/ACT1/BARRACKS/warp.dt1",
"imageContainer": "warp",
"palette": "level"
},
{
"id": "mesa",
- "file": "data/global/tiles/ACT2/Outdoors/mesa.dt1",
"imageContainer": "mesa",
"palette": "level"
},
{
"id": "palm",
- "file": "data/global/tiles/ACT2/Outdoors/palm.dt1",
"imageContainer": "palm",
"palette": "level"
},
{
"id": "palace",
- "file": "data/global/tiles/ACT2/palace/palace.dt1",
"imageContainer": "palace",
"palette": "level"
},
{
"id": "build",
- "file": "data/global/tiles/ACT2/Town/build.dt1",
"imageContainer": "build",
"palette": "level"
},
{
"id": "canal",
- "file": "data/global/tiles/ACT2/Town/canal.dt1",
"imageContainer": "canal",
"palette": "level"
},
{
"id": "curbs",
- "file": "data/global/tiles/ACT2/Town/curbs.dt1",
"imageContainer": "curbs",
"palette": "level"
},
{
"id": "gate",
- "file": "data/global/tiles/ACT2/Town/gate.dt1",
"imageContainer": "gate",
"palette": "level"
},
{
"id": "ground",
- "file": "data/global/tiles/ACT2/Town/ground.dt1",
"imageContainer": "ground",
"palette": "level"
},
{
"id": "guard",
- "file": "data/global/tiles/ACT2/Town/guard.dt1",
"imageContainer": "guard",
"palette": "level"
},
{
"id": "shop",
- "file": "data/global/tiles/ACT2/Town/shop.dt1",
"imageContainer": "shop",
"palette": "level"
},
{
"id": "tavern",
- "file": "data/global/tiles/ACT2/Town/tavern.dt1",
"imageContainer": "tavern",
"palette": "level"
},
{
"id": "wagon",
- "file": "data/global/tiles/ACT2/Town/wagon.dt1",
"imageContainer": "wagon",
"palette": "level"
},
{
"id": "walls",
- "file": "data/global/tiles/ACT2/Town/walls.dt1",
"imageContainer": "walls",
"palette": "level"
},
diff --git a/gamefilesd2/level/default/d2/act4/lava.json b/gamefilesd2/level/default/d2/act4/lava.json
index aa216d11..dcbe5d7a 100755
--- a/gamefilesd2/level/default/d2/act4/lava.json
+++ b/gamefilesd2/level/default/d2/act4/lava.json
@@ -13,46 +13,69 @@
}
}
},
+ "imageContainer": [
+ {
+ "id": "floor",
+ "file": "data/global/tiles/ACT4/Lava/floor.dt1"
+ },
+ {
+ "id": "floornew",
+ "file": "data/global/tiles/ACT4/Lava/floornew.dt1"
+ },
+ {
+ "id": "walls",
+ "file": "data/global/tiles/ACT4/Lava/walls.dt1"
+ },
+ {
+ "id": "intwalls",
+ "file": "data/global/tiles/ACT4/Lava/intwalls.dt1"
+ },
+ {
+ "id": "extwalls",
+ "file": "data/global/tiles/ACT4/Lava/extwalls.dt1"
+ },
+ {
+ "id": "specials",
+ "file": "data/global/tiles/ACT4/Lava/specials.dt1"
+ },
+ {
+ "id": "rocks",
+ "file": "data/global/tiles/ACT4/Lava/rocks.dt1"
+ }
+ ],
"texturePack": [
{
"id": "floor",
- "file": "data/global/tiles/ACT4/Lava/floor.dt1",
"imageContainer": "floor",
"palette": "level"
},
{
"id": "floornew",
- "file": "data/global/tiles/ACT4/Lava/floornew.dt1",
"imageContainer": "floornew",
"palette": "level"
},
{
"id": "walls",
- "file": "data/global/tiles/ACT4/Lava/walls.dt1",
"imageContainer": "walls",
"palette": "level"
},
{
"id": "intwalls",
- "file": "data/global/tiles/ACT4/Lava/intwalls.dt1",
"imageContainer": "intwalls",
"palette": "level"
},
{
"id": "extwalls",
- "file": "data/global/tiles/ACT4/Lava/extwalls.dt1",
"imageContainer": "extwalls",
"palette": "level"
},
{
"id": "specials",
- "file": "data/global/tiles/ACT4/Lava/specials.dt1",
"imageContainer": "specials",
"palette": "level"
},
{
"id": "rocks",
- "file": "data/global/tiles/ACT4/Lava/rocks.dt1",
"imageContainer": "rocks",
"palette": "level"
},
diff --git a/gamefilesd2/level/map/town/playerTextureFiles.json b/gamefilesd2/level/map/town/playerTextureFiles.json
index 62d5d9c5..e049098b 100755
--- a/gamefilesd2/level/map/town/playerTextureFiles.json
+++ b/gamefilesd2/level/map/town/playerTextureFiles.json
@@ -1,69 +1,119 @@
{
+ "imageContainer": [
+ {
+ "imageContainer": "cow",
+ "file": "towners/animals/cow.cel"
+ },
+ {
+ "imageContainer": "MPLALITNUHTH",
+ "file": "data/global/monsters/MP/LA/MPLALITNUHTH.DC6"
+ },
+ {
+ "imageContainer": "MPRALITNUHTH",
+ "file": "data/global/monsters/MP/RA/MPRALITNUHTH.DC6"
+ },
+ {
+ "imageContainer": "MPTRLITNUHTH",
+ "file": "data/global/monsters/MP/TR/MPTRLITNUHTH.DC6"
+ },
+ {
+ "imageContainer": "deadguy",
+ "file": "towners/butch/deadguy.cel"
+ },
+ {
+ "imageContainer": "healer",
+ "file": "towners/healer/healer.cel"
+ },
+ {
+ "imageContainer": "twnfn",
+ "file": "towners/twnf/twnfn.cel"
+ },
+ {
+ "imageContainer": "smithn",
+ "file": "towners/smith/smithn.cel"
+ },
+ {
+ "imageContainer": "pegkid1",
+ "file": "towners/townboy/pegkid1.cel"
+ },
+ {
+ "imageContainer": "twndrunk",
+ "file": "towners/drunk/twndrunk.cel"
+ },
+ {
+ "imageContainer": "witch",
+ "file": "towners/townwmn1/witch.cel"
+ },
+ {
+ "imageContainer": "wmnn",
+ "file": "towners/townwmn1/wmnn.cel"
+ }
+ ],
"texturePack": [
{
+ "id": "cow",
"imageContainer": "cow",
- "file": "towners/animals/cow.cel",
"palette": "town"
},
{
+ "id": "MPLALITNUHTH",
"imageContainer": "MPLALITNUHTH",
- "file": "data/global/monsters/MP/LA/MPLALITNUHTH.DC6",
"palette": "units",
"useOffsets": true,
"normalizeDirections": true
},
{
+ "id": "MPRALITNUHTH",
"imageContainer": "MPRALITNUHTH",
- "file": "data/global/monsters/MP/RA/MPRALITNUHTH.DC6",
"palette": "units",
"useOffsets": true,
"normalizeDirections": true
},
{
+ "id": "MPTRLITNUHTH",
"imageContainer": "MPTRLITNUHTH",
- "file": "data/global/monsters/MP/TR/MPTRLITNUHTH.DC6",
"palette": "units",
"useOffsets": true,
"normalizeDirections": true
},
{
+ "id": "deadguy",
"imageContainer": "deadguy",
- "file": "towners/butch/deadguy.cel",
"palette": "town"
},
{
+ "id": "healer",
"imageContainer": "healer",
- "file": "towners/healer/healer.cel",
"palette": "town"
},
{
+ "id": "twnfn",
"imageContainer": "twnfn",
- "file": "towners/twnf/twnfn.cel",
"palette": "town"
},
{
+ "id": "smithn",
"imageContainer": "smithn",
- "file": "towners/smith/smithn.cel",
"palette": "town"
},
{
+ "id": "pegkid1",
"imageContainer": "pegkid1",
- "file": "towners/townboy/pegkid1.cel",
"palette": "town"
},
{
+ "id": "twndrunk",
"imageContainer": "twndrunk",
- "file": "towners/drunk/twndrunk.cel",
"palette": "town"
},
{
+ "id": "witch",
"imageContainer": "witch",
- "file": "towners/townwmn1/witch.cel",
"palette": "town"
},
{
+ "id": "wmnn",
"imageContainer": "wmnn",
- "file": "towners/townwmn1/wmnn.cel",
"palette": "town"
}
],
diff --git a/gamefilesd2/level/player/Amazon/class.json b/gamefilesd2/level/player/Amazon/class.json
index a8d123a0..1a0b9f15 100755
--- a/gamefilesd2/level/player/Amazon/class.json
+++ b/gamefilesd2/level/player/Amazon/class.json
@@ -80,10 +80,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefilesd2/level/player/Barbarian/class.json b/gamefilesd2/level/player/Barbarian/class.json
index d5f9eb2b..f898279d 100755
--- a/gamefilesd2/level/player/Barbarian/class.json
+++ b/gamefilesd2/level/player/Barbarian/class.json
@@ -80,10 +80,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefilesd2/level/player/Necromancer/class.json b/gamefilesd2/level/player/Necromancer/class.json
index b1865184..de4df096 100755
--- a/gamefilesd2/level/player/Necromancer/class.json
+++ b/gamefilesd2/level/player/Necromancer/class.json
@@ -80,10 +80,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefilesd2/level/player/Paladin/class.json b/gamefilesd2/level/player/Paladin/class.json
index b6a9dfcf..566dc174 100755
--- a/gamefilesd2/level/player/Paladin/class.json
+++ b/gamefilesd2/level/player/Paladin/class.json
@@ -80,10 +80,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefilesd2/level/player/Sorceress/class.json b/gamefilesd2/level/player/Sorceress/class.json
index b94f67a8..282bbc6d 100755
--- a/gamefilesd2/level/player/Sorceress/class.json
+++ b/gamefilesd2/level/player/Sorceress/class.json
@@ -80,10 +80,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefilesd2/level/player/loadDCCTexture.json b/gamefilesd2/level/player/loadDCCTexture.json
index beb38c7a..492f86df 100755
--- a/gamefilesd2/level/player/loadDCCTexture.json
+++ b/gamefilesd2/level/player/loadDCCTexture.json
@@ -1,7 +1,11 @@
{
+ "imageContainer": {
+ "id": "{3}",
+ "file": "data/global/CHARS/{1}/{2}.dcc"
+ },
"texturePack": {
+ "id": "{3}",
"imageContainer": "{3}",
- "file": "data/global/CHARS/{1}/{2}.dcc",
"palette": "units",
"normalizeDirections": true
}
diff --git a/gamefilesd2/loadingScreens/d2.json b/gamefilesd2/loadingScreens/d2.json
index 46c08d50..ea1956f5 100755
--- a/gamefilesd2/loadingScreens/d2.json
+++ b/gamefilesd2/loadingScreens/d2.json
@@ -1,10 +1,13 @@
{
"action": { "name": "resource.add", "id": "loadingScreen" },
- "texturePack": {
+ "imageContainer": {
"id": "loadingscreen",
"file": "data/global/ui/Loading/loadingscreen.dc6",
+ "stitch": false
+ },
+ "texturePack": {
+ "id": "loadingscreen",
"imageContainer": "loadingscreen",
- "stitch": false,
"palette": "loading"
},
"loadingScreen": {
diff --git a/gamefilesd2/res/fonts.json b/gamefilesd2/res/fonts.json
index 2e5940e6..52e4aafa 100755
--- a/gamefilesd2/res/fonts.json
+++ b/gamefilesd2/res/fonts.json
@@ -107,8 +107,7 @@
"charSizeFile": "data/local/font/LATIN/font6.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 7,
- "frames": [16, 16],
+ "newLine": 7,
"direction": "horizontal"
},
{
@@ -118,8 +117,7 @@
"charSizeFile": "data/local/font/LATIN/font8.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 14,
- "frames": [16, 16],
+ "newLine": 14,
"direction": "horizontal"
},
{
@@ -129,8 +127,7 @@
"charSizeFile": "data/local/font/LATIN/font16.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 10,
- "frames": [16, 16],
+ "newLine": 10,
"direction": "horizontal"
},
{
@@ -140,8 +137,7 @@
"charSizeFile": "data/local/font/LATIN/font24.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 24,
- "frames": [16, 16],
+ "newLine": 24,
"direction": "horizontal"
},
{
@@ -151,8 +147,7 @@
"charSizeFile": "data/local/font/LATIN/font30.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 30,
- "frames": [16, 16],
+ "newLine": 30,
"direction": "horizontal"
},
{
@@ -162,8 +157,7 @@
"charSizeFile": "data/local/font/LATIN/font42.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 42,
- "frames": [16, 16],
+ "newLine": 42,
"direction": "horizontal"
},
{
@@ -173,8 +167,7 @@
"charSizeFile": "data/local/font/LATIN/fontexocet8.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 13,
- "frames": [16, 16],
+ "newLine": 13,
"direction": "horizontal"
},
{
@@ -184,8 +177,7 @@
"charSizeFile": "data/local/font/LATIN/fontexocet10.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 10,
- "frames": [16, 16],
+ "newLine": 10,
"direction": "horizontal"
},
{
@@ -195,8 +187,7 @@
"charSizeFile": "data/local/font/LATIN/fontformal10.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 15,
- "frames": [16, 16],
+ "newLine": 15,
"direction": "horizontal"
},
{
@@ -206,8 +197,7 @@
"charSizeFile": "data/local/font/LATIN/fontformal11.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 16,
- "frames": [16, 16],
+ "newLine": 16,
"direction": "horizontal"
},
{
@@ -217,8 +207,7 @@
"charSizeFile": "data/local/font/LATIN/fontformal12.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 20,
- "frames": [16, 16],
+ "newLine": 20,
"direction": "horizontal"
},
{
@@ -228,8 +217,7 @@
"charSizeFile": "data/local/font/LATIN/fontingamechat.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 15,
- "frames": [16, 16],
+ "newLine": 15,
"direction": "horizontal"
},
{
@@ -239,8 +227,7 @@
"charSizeFile": "data/local/font/LATIN/fontridiculous.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 7,
- "frames": [16, 16],
+ "newLine": 7,
"direction": "horizontal"
},
{
@@ -250,8 +237,7 @@
"charSizeFile": "data/local/font/LATIN/ReallyTheLastSucker.tbl",
"charSizeFileStart": 15,
"charSizeFileSkip": 14,
- "charNewLineSize": 7,
- "frames": [16, 16],
+ "newLine": 7,
"direction": "horizontal"
}
],
diff --git a/gamefilesd2/res/shaders/sprite/diablo2.frag b/gamefilesd2/res/shaders/sprite/diablo2.frag
index faac8726..042c5cdb 100755
--- a/gamefilesd2/res/shaders/sprite/diablo2.frag
+++ b/gamefilesd2/res/shaders/sprite/diablo2.frag
@@ -1,10 +1,8 @@
#version 110
uniform sampler2D palette;
uniform sampler2D texture;
-uniform vec2 pixelSize;
uniform vec4 outline;
uniform vec4 ignore;
-uniform vec4 light;
uniform bool hasPalette;
void main()
@@ -27,9 +25,5 @@ void main()
pixel.g = min(pixel.g + 0.1, 1.0);
pixel.b = min(pixel.b + 0.1, 1.0);
}
- else
- {
- pixel = pixel - light;
- }
gl_FragColor = pixel;
}
\ No newline at end of file
diff --git a/gamefilesd2/res/shaders/sprite/diablo2.json b/gamefilesd2/res/shaders/sprite/diablo2.json
new file mode 100644
index 00000000..a40dfc08
--- /dev/null
+++ b/gamefilesd2/res/shaders/sprite/diablo2.json
@@ -0,0 +1,8 @@
+{
+ "shader": {
+ "id": "diablo2",
+ "fragmentFile": "res/shaders/sprite/diablo2.frag",
+ "uniforms": ["palette", "outline"],
+ "setShader": "sprite"
+ }
+}
\ No newline at end of file
diff --git a/gamefilesd2/ui/cinematics.json b/gamefilesd2/ui/cinematics.json
index a55e5bda..5d4d6576 100755
--- a/gamefilesd2/ui/cinematics.json
+++ b/gamefilesd2/ui/cinematics.json
@@ -4,7 +4,7 @@
"loadMainMenuImg",
"loadLogoImg"
],
- "keyboard": {
+ "inputEvent": {
"key": "esc",
"action": { "name": "button.click", "id": "back" }
},
diff --git a/gamefilesd2/ui/credits.json b/gamefilesd2/ui/credits.json
index f31ffde2..d6f8c754 100755
--- a/gamefilesd2/ui/credits.json
+++ b/gamefilesd2/ui/credits.json
@@ -4,7 +4,7 @@
"id": "credits",
"ignorePrevious": true
},
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "back" }
diff --git a/gamefilesd2/ui/creditsLeft.txt b/gamefilesd2/ui/creditsLeft.txt
index dc22380a..4d99ca48 100755
--- a/gamefilesd2/ui/creditsLeft.txt
+++ b/gamefilesd2/ui/creditsLeft.txt
@@ -243,7 +243,7 @@ Deam Bristow
Jim Killeen
Castulo Guerra
Ed Trotta
-Jennifer Smithee
+Jennifer Smithee
Fredrick Bloggs
Bernie Wilkens
Carrie Gordon
diff --git a/gamefilesd2/ui/creditsRight.txt b/gamefilesd2/ui/creditsRight.txt
index 556f092c..20a03d7b 100755
--- a/gamefilesd2/ui/creditsRight.txt
+++ b/gamefilesd2/ui/creditsRight.txt
@@ -431,7 +431,7 @@ Christina Shenk
Erica Juhn
Kelly Regier
Renee Schneider
-Myra Rivero
+Myra Rivero
Brother John Keck
Mike McBrine
Zeno Dickson
diff --git a/gamefilesd2/ui/loadMain2.json b/gamefilesd2/ui/loadMain2.json
index d5162463..6df7d963 100755
--- a/gamefilesd2/ui/loadMain2.json
+++ b/gamefilesd2/ui/loadMain2.json
@@ -1,7 +1,4 @@
{
- "action": [
- { "name": "shader.load", "id": "diablo2", "fragmentFile": "res/shaders/sprite/diablo2.frag" },
- { "name": "game.setShader", "shader": "diablo2", "gameShader": "sprite" }
- ],
+ "load": "res/shaders/sprite/diablo2.json",
"load": "ui/loadMain.json"
}
\ No newline at end of file
diff --git a/gamefilesd2/ui/mainMenu.json b/gamefilesd2/ui/mainMenu.json
index 2385d607..42657304 100755
--- a/gamefilesd2/ui/mainMenu.json
+++ b/gamefilesd2/ui/mainMenu.json
@@ -5,7 +5,7 @@
"param2": false,
"then": { "name": "load", "file": "ui/mainMenuBase.json" }
},
- "keyboard": [
+ "inputEvent": [
{
"key": ["enter", " "],
"action": { "name": "button.click", "id": "btnSinglePlayer" }
@@ -38,108 +38,140 @@
}
}
],
+ "imageContainer": [
+ {
+ "file": "data/global/ui/CharSelect/ShortButtonBlank.dc6"
+ },
+ {
+ "file": "data/global/ui/FrontEnd/MediumButtonBlank.dc6"
+ },
+ {
+ "file": "data/global/ui/FrontEnd/WideButtonBlank.dc6"
+ },
+ {
+ "file": "data/global/ui/FrontEnd/ts01a.DC6",
+ "useOffsets": true
+ },
+ {
+ "file": "data/global/ui/FrontEnd/ts02a.DC6",
+ "useOffsets": true
+ },
+ {
+ "file": "data/global/ui/FrontEnd/ts03a.DC6",
+ "useOffsets": true
+ },
+ {
+ "file": "data/global/ui/FrontEnd/ts04a.DC6",
+ "useOffsets": true
+ },
+ {
+ "file": "data/global/ui/FrontEnd/ts05b.DC6",
+ "useOffsets": true
+ },
+ {
+ "file": "data/global/ui/FrontEnd/ts06b.DC6",
+ "useOffsets": true
+ },
+ {
+ "file": "data/global/ui/FrontEnd/ts07b.DC6",
+ "useOffsets": true
+ },
+ {
+ "file": "data/global/ui/FrontEnd/ts08b.DC6",
+ "useOffsets": true
+ },
+ {
+ "file": "data/global/ui/FrontEnd/ts09b.DC6",
+ "useOffsets": true
+ },
+ {
+ "file": "data/global/ui/FrontEnd/ts10b.DC6",
+ "useOffsets": true
+ },
+ {
+ "file": "data/global/ui/FrontEnd/ts11b.DC6",
+ "useOffsets": true
+ },
+ {
+ "file": "data/global/ui/FrontEnd/ts12b.DC6",
+ "useOffsets": true
+ }
+ ],
"texturePack": [
{
"id": "ShortButtonBlank",
- "file": "data/global/ui/CharSelect/ShortButtonBlank.dc6",
"imageContainer": "ShortButtonBlank",
"palette": "units"
},
{
"id": "MediumButtonBlank",
- "file": "data/global/ui/FrontEnd/MediumButtonBlank.dc6",
"imageContainer": "MediumButtonBlank",
"palette": "units"
},
{
"id": "WideButtonBlank",
- "file": "data/global/ui/FrontEnd/WideButtonBlank.dc6",
"imageContainer": "WideButtonBlank",
"palette": "units"
},
{
"id": "ts01a",
- "file": "data/global/ui/FrontEnd/ts01a.DC6",
"imageContainer": "ts01a",
- "palette": "sky",
- "useOffsets": true
+ "palette": "sky"
},
{
"id": "ts02a",
- "file": "data/global/ui/FrontEnd/ts02a.DC6",
"imageContainer": "ts02a",
- "palette": "sky",
- "useOffsets": true
+ "palette": "sky"
},
{
"id": "ts03a",
- "file": "data/global/ui/FrontEnd/ts03a.DC6",
"imageContainer": "ts03a",
- "palette": "sky",
- "useOffsets": true
+ "palette": "sky"
},
{
"id": "ts04a",
- "file": "data/global/ui/FrontEnd/ts04a.DC6",
"imageContainer": "ts04a",
- "palette": "sky",
- "useOffsets": true
+ "palette": "sky"
},
{
"id": "ts05b",
- "file": "data/global/ui/FrontEnd/ts05b.DC6",
"imageContainer": "ts05b",
- "palette": "sky",
- "useOffsets": true
+ "palette": "sky"
},
{
"id": "ts06b",
- "file": "data/global/ui/FrontEnd/ts06b.DC6",
"imageContainer": "ts06b",
- "palette": "sky",
- "useOffsets": true
+ "palette": "sky"
},
{
"id": "ts07b",
- "file": "data/global/ui/FrontEnd/ts07b.DC6",
"imageContainer": "ts07b",
- "palette": "sky",
- "useOffsets": true
+ "palette": "sky"
},
{
"id": "ts08b",
- "file": "data/global/ui/FrontEnd/ts08b.DC6",
"imageContainer": "ts08b",
- "palette": "sky",
- "useOffsets": true
+ "palette": "sky"
},
{
"id": "ts09b",
- "file": "data/global/ui/FrontEnd/ts09b.DC6",
"imageContainer": "ts09b",
- "palette": "sky",
- "useOffsets": true
+ "palette": "sky"
},
{
"id": "ts10b",
- "file": "data/global/ui/FrontEnd/ts10b.DC6",
"imageContainer": "ts10b",
- "palette": "sky",
- "useOffsets": true
+ "palette": "sky"
},
{
"id": "ts11b",
- "file": "data/global/ui/FrontEnd/ts11b.DC6",
"imageContainer": "ts11b",
- "palette": "sky",
- "useOffsets": true
+ "palette": "sky"
},
{
"id": "ts12b",
- "file": "data/global/ui/FrontEnd/ts12b.DC6",
"imageContainer": "ts12b",
- "palette": "sky",
- "useOffsets": true
+ "palette": "sky"
}
],
"cursor": {
diff --git a/gamefilesd2/ui/mainMenuBase.json b/gamefilesd2/ui/mainMenuBase.json
index a735b7f5..11312344 100755
--- a/gamefilesd2/ui/mainMenuBase.json
+++ b/gamefilesd2/ui/mainMenuBase.json
@@ -124,45 +124,57 @@
"loop": true,
"play": true
},
- "texturePack": [
+ "imageContainer": [
{
- "id": "D2logoBlackLeft",
"file": "data/global/ui/FrontEnd/D2logoBlackLeft.DC6",
- "imageContainer": "D2logoBlackLeft",
- "palette": "units",
"useOffsets": true
},
{
- "id": "D2logoBlackRight",
"file": "data/global/ui/FrontEnd/D2logoBlackRight.DC6",
- "imageContainer": "D2logoBlackRight",
- "palette": "units",
"useOffsets": true
},
{
- "id": "D2logoFireLeft",
"file": "data/global/ui/FrontEnd/D2logoFireLeft.DC6",
- "imageContainer": "D2logoFireLeft",
- "palette": "units",
"useOffsets": true,
"blendMode": "add"
},
{
- "id": "D2logoFireRight",
"file": "data/global/ui/FrontEnd/D2logoFireRight.DC6",
- "imageContainer": "D2logoFireRight",
- "palette": "units",
"useOffsets": true,
"blendMode": "add"
},
{
- "id": "focus42",
"file": "data/global/ui/CURSOR/focus42.DC6",
- "imageContainer": "focus42",
- "palette": "units",
"frames": 8
}
],
+ "texturePack": [
+ {
+ "id": "D2logoBlackLeft",
+ "imageContainer": "D2logoBlackLeft",
+ "palette": "units"
+ },
+ {
+ "id": "D2logoBlackRight",
+ "imageContainer": "D2logoBlackRight",
+ "palette": "units"
+ },
+ {
+ "id": "D2logoFireLeft",
+ "imageContainer": "D2logoFireLeft",
+ "palette": "units"
+ },
+ {
+ "id": "D2logoFireRight",
+ "imageContainer": "D2logoFireRight",
+ "palette": "units"
+ },
+ {
+ "id": "focus42",
+ "imageContainer": "focus42",
+ "palette": "units"
+ }
+ ],
"compositeTexture": {
"id": "D2logo",
"texturePacks": [
diff --git a/gamefilesd2/ui/singlePlayer/delete.json b/gamefilesd2/ui/singlePlayer/delete.json
index 2f2e238d..20378943 100755
--- a/gamefilesd2/ui/singlePlayer/delete.json
+++ b/gamefilesd2/ui/singlePlayer/delete.json
@@ -5,7 +5,7 @@
{ "name": "text.setText", "id": "label1", "text": "Delete Single Player Hero" },
{ "name": "text.setText", "id": "label2", "text": "Select Hero" }
],
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "no" }
diff --git a/gamefilesd2/ui/singlePlayer/main.json b/gamefilesd2/ui/singlePlayer/main.json
index ac087cc1..3b4af37f 100755
--- a/gamefilesd2/ui/singlePlayer/main.json
+++ b/gamefilesd2/ui/singlePlayer/main.json
@@ -3,7 +3,7 @@
{ "name": "resource.add", "id": "singlePlayer", "ignorePrevious": true },
{ "name": "game.fadeIn" }
],
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "cancel" }
diff --git a/gamefilesd2/ui/singlePlayer/newHero.json b/gamefilesd2/ui/singlePlayer/newHero.json
index ee1fb9d1..58f71447 100755
--- a/gamefilesd2/ui/singlePlayer/newHero.json
+++ b/gamefilesd2/ui/singlePlayer/newHero.json
@@ -304,263 +304,341 @@
"palette": "fechar"
}
],
- "texturePack": [
+ "imageContainer": [
{
- "id": "fire",
"file": "data/global/ui/FrontEnd/fire.DC6",
- "imageContainer": "fire",
- "palette": "fechar",
"useOffsets": true,
"blendMode": "add"
},
{
- "id": "AMBW",
"file": "data/global/ui/FrontEnd/amazon/AMBW.DC6",
- "imageContainer": "AMBW",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "AMFW",
"file": "data/global/ui/FrontEnd/amazon/AMFW.DC6",
- "imageContainer": "AMFW",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "AMFWs",
"file": "data/global/ui/FrontEnd/amazon/AMFWs.DC6",
- "imageContainer": "AMFWs",
- "palette": "fechar",
"useOffsets": true,
"blendMode": "add"
},
{
- "id": "AMNU1",
"file": "data/global/ui/FrontEnd/amazon/AMNU1.DC6",
- "imageContainer": "AMNU1",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "AMNU2",
"file": "data/global/ui/FrontEnd/amazon/AMNU2.DC6",
- "imageContainer": "AMNU2",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "AMNU3",
"file": "data/global/ui/FrontEnd/amazon/AMNU3.DC6",
- "imageContainer": "AMNU3",
- "palette": "fechar",
"useOffsets": true
},
{
"id": "BABW",
"file": "data/global/ui/FrontEnd/barbarian/babw.DC6",
- "imageContainer": "BABW",
- "palette": "fechar",
"useOffsets": true
},
{
"id": "BAFW",
"file": "data/global/ui/FrontEnd/barbarian/bafw.DC6",
- "imageContainer": "BAFW",
- "palette": "fechar",
"useOffsets": true
},
{
"id": "BAFWs",
"file": "data/global/ui/FrontEnd/barbarian/BAFWs.DC6",
- "imageContainer": "BAFWs",
- "palette": "fechar",
"useOffsets": true,
"blendMode": "add"
},
{
"id": "BANU1",
"file": "data/global/ui/FrontEnd/barbarian/banu1.DC6",
- "imageContainer": "BANU1",
- "palette": "fechar",
"useOffsets": true
},
{
"id": "BANU2",
"file": "data/global/ui/FrontEnd/barbarian/banu2.DC6",
- "imageContainer": "BANU2",
- "palette": "fechar",
"useOffsets": true
},
{
"id": "BANU3",
"file": "data/global/ui/FrontEnd/barbarian/banu3.DC6",
- "imageContainer": "BANU3",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "NEBW",
"file": "data/global/ui/FrontEnd/necromancer/NEBW.DC6",
- "imageContainer": "NEBW",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "NEBWs",
"file": "data/global/ui/FrontEnd/necromancer/NEBWs.DC6",
- "imageContainer": "NEBWs",
- "palette": "fechar",
"useOffsets": true,
"blendMode": "add"
},
{
- "id": "NEFW",
"file": "data/global/ui/FrontEnd/necromancer/NEFW.DC6",
- "imageContainer": "NEFW",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "NEFWs",
"file": "data/global/ui/FrontEnd/necromancer/NEFWs.DC6",
- "imageContainer": "NEFWs",
- "palette": "fechar",
"useOffsets": true,
"blendMode": "add"
},
{
- "id": "NENU1",
"file": "data/global/ui/FrontEnd/necromancer/NENU1.DC6",
- "imageContainer": "NENU1",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "NENU2",
"file": "data/global/ui/FrontEnd/necromancer/NENU2.DC6",
- "imageContainer": "NENU2",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "NENU3",
"file": "data/global/ui/FrontEnd/necromancer/NENU3.DC6",
- "imageContainer": "NENU3",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "NENU3s",
"file": "data/global/ui/FrontEnd/necromancer/NENU3s.DC6",
- "imageContainer": "NENU3s",
- "palette": "fechar",
"useOffsets": true,
"blendMode": "add"
},
{
- "id": "PABW",
"file": "data/global/ui/FrontEnd/paladin/PABW.DC6",
- "imageContainer": "PABW",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "PAFW",
"file": "data/global/ui/FrontEnd/paladin/PAFW.DC6",
- "imageContainer": "PAFW",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "PAFWs",
"file": "data/global/ui/FrontEnd/paladin/PAFWs.DC6",
- "imageContainer": "PAFWs",
- "palette": "fechar",
"useOffsets": true,
"blendMode": "add"
},
{
- "id": "PANU1",
"file": "data/global/ui/FrontEnd/paladin/PANU1.DC6",
- "imageContainer": "PANU1",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "PANU2",
"file": "data/global/ui/FrontEnd/paladin/PANU2.DC6",
- "imageContainer": "PANU2",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "PANU3",
"file": "data/global/ui/FrontEnd/paladin/PANU3.DC6",
- "imageContainer": "PANU3",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "SOBW",
"file": "data/global/ui/FrontEnd/sorceress/SOBW.DC6",
- "imageContainer": "SOBW",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "SOBWs",
"file": "data/global/ui/FrontEnd/sorceress/SOBWs.DC6",
- "imageContainer": "SOBWs",
- "palette": "fechar",
"useOffsets": true,
"blendMode": "add"
},
{
- "id": "SOFW",
"file": "data/global/ui/FrontEnd/sorceress/SOFW.DC6",
- "imageContainer": "SOFW",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "SOFWs",
"file": "data/global/ui/FrontEnd/sorceress/SOFWs.DC6",
- "imageContainer": "SOFWs",
- "palette": "fechar",
"useOffsets": true,
"blendMode": "add"
},
{
- "id": "SONU1",
"file": "data/global/ui/FrontEnd/sorceress/SONU1.DC6",
- "imageContainer": "SONU1",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "SONU2",
"file": "data/global/ui/FrontEnd/sorceress/SONU2.DC6",
- "imageContainer": "SONU2",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "SONU3",
"file": "data/global/ui/FrontEnd/sorceress/SONU3.DC6",
- "imageContainer": "SONU3",
- "palette": "fechar",
"useOffsets": true
},
{
- "id": "SONU3s",
"file": "data/global/ui/FrontEnd/sorceress/SONU3s.DC6",
- "imageContainer": "SONU3s",
- "palette": "fechar",
"useOffsets": true,
"blendMode": "add"
}
],
+ "texturePack": [
+ {
+ "id": "fire",
+ "imageContainer": "fire",
+ "palette": "fechar"
+ },
+ {
+ "id": "AMBW",
+ "imageContainer": "AMBW",
+ "palette": "fechar"
+ },
+ {
+ "id": "AMFW",
+ "imageContainer": "AMFW",
+ "palette": "fechar"
+ },
+ {
+ "id": "AMFWs",
+ "imageContainer": "AMFWs",
+ "palette": "fechar"
+ },
+ {
+ "id": "AMNU1",
+ "imageContainer": "AMNU1",
+ "palette": "fechar"
+ },
+ {
+ "id": "AMNU2",
+ "imageContainer": "AMNU2",
+ "palette": "fechar"
+ },
+ {
+ "id": "AMNU3",
+ "imageContainer": "AMNU3",
+ "palette": "fechar"
+ },
+ {
+ "id": "BABW",
+ "imageContainer": "BABW",
+ "palette": "fechar"
+ },
+ {
+ "id": "BAFW",
+ "imageContainer": "BAFW",
+ "palette": "fechar"
+ },
+ {
+ "id": "BAFWs",
+ "imageContainer": "BAFWs",
+ "palette": "fechar"
+ },
+ {
+ "id": "BANU1",
+ "imageContainer": "BANU1",
+ "palette": "fechar"
+ },
+ {
+ "id": "BANU2",
+ "imageContainer": "BANU2",
+ "palette": "fechar"
+ },
+ {
+ "id": "BANU3",
+ "imageContainer": "BANU3",
+ "palette": "fechar"
+ },
+ {
+ "id": "NEBW",
+ "imageContainer": "NEBW",
+ "palette": "fechar"
+ },
+ {
+ "id": "NEBWs",
+ "imageContainer": "NEBWs",
+ "palette": "fechar"
+ },
+ {
+ "id": "NEFW",
+ "imageContainer": "NEFW",
+ "palette": "fechar"
+ },
+ {
+ "id": "NEFWs",
+ "imageContainer": "NEFWs",
+ "palette": "fechar"
+ },
+ {
+ "id": "NENU1",
+ "imageContainer": "NENU1",
+ "palette": "fechar"
+ },
+ {
+ "id": "NENU2",
+ "imageContainer": "NENU2",
+ "palette": "fechar"
+ },
+ {
+ "id": "NENU3",
+ "imageContainer": "NENU3",
+ "palette": "fechar"
+ },
+ {
+ "id": "NENU3s",
+ "imageContainer": "NENU3s",
+ "palette": "fechar"
+ },
+ {
+ "id": "PABW",
+ "imageContainer": "PABW",
+ "palette": "fechar"
+ },
+ {
+ "id": "PAFW",
+ "imageContainer": "PAFW",
+ "palette": "fechar"
+ },
+ {
+ "id": "PAFWs",
+ "imageContainer": "PAFWs",
+ "palette": "fechar"
+ },
+ {
+ "id": "PANU1",
+ "imageContainer": "PANU1",
+ "palette": "fechar"
+ },
+ {
+ "id": "PANU2",
+ "imageContainer": "PANU2",
+ "palette": "fechar"
+ },
+ {
+ "id": "PANU3",
+ "imageContainer": "PANU3",
+ "palette": "fechar"
+ },
+ {
+ "id": "SOBW",
+ "imageContainer": "SOBW",
+ "palette": "fechar"
+ },
+ {
+ "id": "SOBWs",
+ "imageContainer": "SOBWs",
+ "palette": "fechar"
+ },
+ {
+ "id": "SOFW",
+ "imageContainer": "SOFW",
+ "palette": "fechar"
+ },
+ {
+ "id": "SOFWs",
+ "imageContainer": "SOFWs",
+ "palette": "fechar"
+ },
+ {
+ "id": "SONU1",
+ "imageContainer": "SONU1",
+ "palette": "fechar"
+ },
+ {
+ "id": "SONU2",
+ "imageContainer": "SONU2",
+ "palette": "fechar"
+ },
+ {
+ "id": "SONU3",
+ "imageContainer": "SONU3",
+ "palette": "fechar"
+ },
+ {
+ "id": "SONU3s",
+ "imageContainer": "SONU3s",
+ "palette": "fechar"
+ }
+ ],
"compositeTexture": [
{
"id": "AMFW",
diff --git a/gamefilesd2/ui/singlePlayer/newNameExists.json b/gamefilesd2/ui/singlePlayer/newNameExists.json
index e74e4d58..5f3bd218 100755
--- a/gamefilesd2/ui/singlePlayer/newNameExists.json
+++ b/gamefilesd2/ui/singlePlayer/newNameExists.json
@@ -3,7 +3,7 @@
"name": "resource.add",
"id": "singlePlayerNameExists"
},
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "no" }
diff --git a/gamefilesd2/ui/singlePlayer/newNameTooShort.json b/gamefilesd2/ui/singlePlayer/newNameTooShort.json
index 0439ff3b..31d13263 100755
--- a/gamefilesd2/ui/singlePlayer/newNameTooShort.json
+++ b/gamefilesd2/ui/singlePlayer/newNameTooShort.json
@@ -3,7 +3,7 @@
"name": "resource.add",
"id": "singlePlayerGameNewNameTooShort"
},
- "keyboard": {
+ "inputEvent": {
"key": "esc",
"action": { "name": "button.click", "id": "ok" }
},
diff --git a/gamefilesd2/ui/singlePlayer/select.json b/gamefilesd2/ui/singlePlayer/select.json
index 1f4f605b..22865ad3 100755
--- a/gamefilesd2/ui/singlePlayer/select.json
+++ b/gamefilesd2/ui/singlePlayer/select.json
@@ -14,7 +14,7 @@
"action": { "name": "menu.moveScrollbar", "idMenu": "menuLoadGame", "idScrollbar": "sb_thumb", "idAnchorTo": "btnDrag", "range": 133 }
}
],
- "keyboard": {
+ "inputEvent": {
"key": "delete",
"action": { "name": "button.click", "id": "delete" }
},
@@ -228,7 +228,7 @@
{ "name": "button.enable", "id": "btnDown" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["up", "w"],
"action": [
diff --git a/gamefilesd2/ui/splashScreen.json b/gamefilesd2/ui/splashScreen.json
index 125c8ac2..ee3ec891 100755
--- a/gamefilesd2/ui/splashScreen.json
+++ b/gamefilesd2/ui/splashScreen.json
@@ -4,7 +4,7 @@
"name": "resource.add",
"id": "splashScreen"
},
- "keyboard": {
+ "inputEvent": {
"key": ["enter", "esc", " "],
"action": { "name": "button.click", "id": "skip" }
},
diff --git a/gamefilesdex/level/default/town_fog.json b/gamefilesdex/level/default/town_fog.json
index 246e5e36..8689cfd0 100755
--- a/gamefilesdex/level/default/town_fog.json
+++ b/gamefilesdex/level/default/town_fog.json
@@ -1,35 +1,54 @@
{
"action": {
"name": "if.equal",
- "param1": "%game.hasPalette.town%",
+ "param1": "%game.hasPalette.level%",
"param2": false,
"then": {
"name": "loadJson",
"json": {
"palette": {
- "id": "town",
+ "id": "level",
"file": "levels/towndata/town.pal"
}
}
}
},
+ "imageContainer": {
+ "file": "levels/towndata/town.cel"
+ },
"texture": {
- "id": "fog",
"file": "images/parallax/fog.png"
},
+ "texturePack": [
+ {
+ "id": "town",
+ "imageContainer": "town",
+ "palette": "level",
+ "min": "levels/towndata/town.min",
+ "minBlocks": 16
+ },
+ {
+ "id": "town_top",
+ "imageContainer": "town",
+ "palette": "level",
+ "min": "levels/towndata/town.min",
+ "minBlocks": 16,
+ "topTiles": true
+ }
+ ],
"level": {
"id": "level",
- "palette": "town",
- "file": "levels/towndata/town.cel",
- "layers": {
- "texture": "fog",
- "parallaxSpeed": 0.01,
- "parallaxFixedSpeed": [0.2, -0.25],
- "parallaxUpdate": 30
- },
+ "layers": [
+ { "index": 0, "texturePack": "town" },
+ { "index": 0, "texturePack": "town_top" },
+ {
+ "texture": "fog",
+ "parallaxSpeed": 0.01,
+ "parallaxFixedSpeed": [0.2, -0.25],
+ "parallaxUpdate": 30
+ }
+ ],
"til": "levels/towndata/town.til",
- "min": "levels/towndata/town.min",
- "minBlocks": 16,
"flags": "levels/towndata/town.sol",
"defaultLight": 220
}
diff --git a/gamefilesdex/level/default/town_hf_fog.json b/gamefilesdex/level/default/town_hf_fog.json
index 14be81d3..31ca40d8 100755
--- a/gamefilesdex/level/default/town_hf_fog.json
+++ b/gamefilesdex/level/default/town_hf_fog.json
@@ -1,35 +1,55 @@
{
"action": {
"name": "if.equal",
- "param1": "%game.hasPalette.town%",
+ "param1": "%game.hasPalette.level%",
"param2": false,
"then": {
"name": "loadJson",
"json": {
"palette": {
- "id": "town",
+ "id": "level",
"file": "levels/towndata/town.pal"
}
}
}
},
+ "imageContainer": {
+ "id": "town",
+ "file": "Nlevels/TownData/Town.CEL"
+ },
"texture": {
- "id": "fog",
"file": "images/parallax/fog.png"
},
+ "texturePack": [
+ {
+ "id": "town",
+ "imageContainer": "town",
+ "palette": "level",
+ "min": "Nlevels/TownData/Town.MIN",
+ "minBlocks": 16
+ },
+ {
+ "id": "town_top",
+ "imageContainer": "town",
+ "palette": "level",
+ "min": "Nlevels/TownData/Town.MIN",
+ "minBlocks": 16,
+ "topTiles": true
+ }
+ ],
"level": {
"id": "level",
- "palette": "town",
- "file": "Nlevels/TownData/Town.CEL",
- "layers": {
- "texture": "fog",
- "parallaxSpeed": 0.01,
- "parallaxFixedSpeed": [0.2, -0.25],
- "parallaxUpdate": 30
- },
+ "layers": [
+ { "index": 0, "texturePack": "town" },
+ { "index": 0, "texturePack": "town_top" },
+ {
+ "texture": "fog",
+ "parallaxSpeed": 0.01,
+ "parallaxFixedSpeed": [0.2, -0.25],
+ "parallaxUpdate": 30
+ }
+ ],
"til": "Nlevels/TownData/Town.TIL",
- "min": "Nlevels/TownData/Town.MIN",
- "minBlocks": 16,
"flags": "Nlevels/TownData/Town.SOL",
"defaultLight": 220
}
diff --git a/gamefilesdex/level/loadBaseLevel.json b/gamefilesdex/level/loadBaseLevel.json
new file mode 100644
index 00000000..a6e737d2
--- /dev/null
+++ b/gamefilesdex/level/loadBaseLevel.json
@@ -0,0 +1,72 @@
+{
+ "level": {
+ "id": "level",
+ "anchor": "all",
+ "size": [640, 400],
+ "lightRadius": 64,
+ "automapPlayerDirectionIndex": 1024,
+ "playerClassClearIndex": 1,
+ "playerClearIndex": 1,
+ "onHoverEnter": "levelHoverAction",
+ "onHoverLeave": "clearPanelText",
+ "onLeftClick": "levelLeftClickAction",
+ "onRightClick": "levelRightClickAction",
+ "onScrollDown": "levelScrollDownAction",
+ "onScrollUp": "levelScrollUpAction",
+ "experiencePoints": [
+ 2000,
+ 4620,
+ 8040,
+ 12489,
+ 18258,
+ 25712,
+ 35309,
+ 47622,
+ 63364,
+ 83419,
+ 108879,
+ 141086,
+ 181683,
+ 231075,
+ 313656,
+ 424067,
+ 571190,
+ 766569,
+ 1025154,
+ 1366227,
+ 1814568,
+ 2401895,
+ 3168651,
+ 4166200,
+ 5459523,
+ 7130496,
+ 9281874,
+ 12042092,
+ 15571031,
+ 20066900,
+ 25774405,
+ 32994399,
+ 42095202,
+ 53525811,
+ 67831218,
+ 85670061,
+ 107834823,
+ 135274799,
+ 169122009,
+ 210720231,
+ 261657253,
+ 323800420,
+ 399335440,
+ 490808349,
+ 601170414,
+ 733825617,
+ 892680222,
+ 1082908612,
+ 1310707109,
+ 1583495809
+ ]
+ },
+ "load": "level/loadBaseLevel2.json",
+ "load": "level/keys.json",
+ "load": "ui/level/char/panel.json"
+}
\ No newline at end of file
diff --git a/gamefilesdex/ui/level/char/panel.json b/gamefilesdex/ui/level/char/panel.json
index 112dccaf..bd9c239a 100755
--- a/gamefilesdex/ui/level/char/panel.json
+++ b/gamefilesdex/ui/level/char/panel.json
@@ -13,6 +13,17 @@
},
{ "name": "resource.add", "id": "levelOverlay" }
],
+ "shape": {
+ "id": "fadingBottom",
+ "type": "triangleFan",
+ "anchor": ["bottom", "left", "right"],
+ "vertices": [
+ { "position": [0, 352], "color": "0x00000000" },
+ { "position": [640, 352], "color": "0x00000000" },
+ { "position": [640, 400], "color": "0x000000" },
+ { "position": [0, 400], "color": "0x000000" }
+ ]
+ },
"text": {
"id": "txtLevelUp",
"font": "smaltext",
@@ -24,19 +35,30 @@
"visible": false,
"text": "Level Up"
},
- "button": {
- "id": "btnLevelUp",
- "texture": "charbut",
- "textureRect": [0, 22, 41, 22],
- "position": [40, 314],
- "anchor": "bottom",
- "captureInputEvents": true,
- "clickUp": true,
- "visible": false,
- "onClick": { "name": "button.click", "id": "char" },
- "onClickIn": { "name": "image.setTextureRect", "id": "btnLevelUp", "rect": [0, 44, 41, 22] },
- "onClickOut": { "name": "image.setTextureRect", "id": "btnLevelUp", "rect": [0, 22, 41, 22] }
- },
+ "button": [
+ {
+ "id": "btnLevelUp",
+ "texture": "charbut",
+ "textureRect": [0, 22, 41, 22],
+ "position": [40, 314],
+ "anchor": "bottom",
+ "captureInputEvents": true,
+ "clickUp": true,
+ "visible": false,
+ "onClick": { "name": "button.click", "id": "char" },
+ "onClickIn": { "name": "image.setTextureRect", "id": "btnLevelUp", "rect": [0, 44, 41, 22] },
+ "onClickOut": { "name": "image.setTextureRect", "id": "btnLevelUp", "rect": [0, 22, 41, 22] }
+ },
+ {
+ "id": "panel8",
+ "texture": "panel8",
+ "textureRect": [0, 15, 640, 129],
+ "position": [0, 351],
+ "anchor": "bottom",
+ "captureInputEvents": true,
+ "onRightClick": "rightClickLevel"
+ }
+ ],
"image": [
{
"id": "itemInfoBk",
@@ -107,18 +129,16 @@
"visible": false
}
],
- "button": [
- {
- "id": "questPanel",
- "texture": "quest",
- "anchor": "left",
- "captureInputEvents": true,
- "visible": false,
- "onHoverEnter": "clearLevelHoverActions",
- "onHoverLeave": "setLevelHoverActions",
- "onRightClick": "rightClickLevel"
- }
- ],
+ "button": {
+ "id": "questPanel",
+ "texture": "quest",
+ "anchor": "left",
+ "captureInputEvents": true,
+ "visible": false,
+ "onHoverEnter": "clearLevelHoverActions",
+ "onHoverLeave": "setLevelHoverActions",
+ "onRightClick": "rightClickLevel"
+ },
"load": "ui/level/char/panelCharacter.json",
"load": "ui/level/char/panelInventory.json",
"load": "ui/level/char/panelSpellBook.json",
@@ -130,14 +150,6 @@
"anchor": "none",
"visible": false
},
- {
- "id": "panel8",
- "texture": "panel8",
- "position": [0, 351],
- "textureRect": [0, 15, 640, 129],
- "anchor": "bottom",
- "onRightClick": "rightClickLevel"
- },
{
"id": "lifeOrbFull",
"texture": "panel8",
@@ -413,7 +425,7 @@
"horizontalSpaceOffset": 2,
"verticalAlign": "center"
},
- "keyboard": [
+ "inputEvent": [
{ "key": "+", "action": "automapZoomIn" },
{ "key": "-", "action": "automapZoomOut" },
{ "key": "1", "action": "useBelt1Item" },
diff --git a/gamefilesdex/ui/loadMain2.json b/gamefilesdex/ui/loadMain2.json
index 0f81f572..4615df6c 100755
--- a/gamefilesdex/ui/loadMain2.json
+++ b/gamefilesdex/ui/loadMain2.json
@@ -1,10 +1,6 @@
{
- "action": [
- { "name": "shader.load", "id": "warp", "fragmentFile": "res/shaders/game/warp.frag" },
- { "name": "shader.load", "id": "highlight", "fragmentFile": "res/shaders/sprite/highlight.frag" },
- { "name": "game.setShader", "shader": "warp", "gameShader": "game" },
- { "name": "game.setShader", "shader": "highlight", "gameShader": "sprite" },
- { "name": "variable.set", "key": "jog", "value": true }
- ],
+ "action": { "name": "variable.set", "key": "jog", "value": true },
+ "load": "res/shaders/game/warp.json",
+ "load": "res/shaders/sprite/highlight.json",
"load": "ui/loadMain.json"
}
\ No newline at end of file
diff --git a/gamefilesdex/ui/mainMenu.json b/gamefilesdex/ui/mainMenu.json
index dd7bd531..0416b1d7 100755
--- a/gamefilesdex/ui/mainMenu.json
+++ b/gamefilesdex/ui/mainMenu.json
@@ -53,7 +53,7 @@
"loop": true,
"play": true
},
- "keyboard": [
+ "inputEvent": [
{
"key": ["enter", " "],
"action": "focus.click"
@@ -86,23 +86,31 @@
}
}
],
- "texture": {
- "id": "mainmenu",
- "file": "ui_art/title.pcx"
- },
+ "texture": [
+ {
+ "id": "mainmenu",
+ "file": "ui_art/title.pcx"
+ },
+ {
+ "id": "smlogo",
+ "file": "ui_art/smlogo.pcx",
+ "mask": "0x00FF00"
+ },
+ {
+ "id": "focus42",
+ "file": "ui_art/focus42.pcx",
+ "mask": "0x00FF00"
+ }
+ ],
"texturePack": [
{
"id": "smlogo",
"texture": "smlogo",
- "file": "ui_art/smlogo.pcx",
- "mask": "0x00FF00",
"frames": 15
},
{
"id": "focus42",
"texture": "focus42",
- "file": "ui_art/focus42.pcx",
- "mask": "0x00FF00",
"frames": 8
}
],
diff --git a/gamefilesflare/level/item/inventoryTextures.json b/gamefilesflare/level/item/inventoryTextures.json
index 08e84ff2..c05255dc 100755
--- a/gamefilesflare/level/item/inventoryTextures.json
+++ b/gamefilesflare/level/item/inventoryTextures.json
@@ -1,11 +1,9 @@
{
"texturePack": {
"id": "itemIcons",
- "texture": {
- "id": "icons",
- "frames": [8, 32],
- "direction": "horizontal"
- },
+ "texture": "icons",
+ "frames": [8, 32],
+ "direction": "horizontal",
"textureIndexes": [
[11, 65],
[12, 72],
diff --git a/gamefilesflare/level/player/Rogue/class.json b/gamefilesflare/level/player/Rogue/class.json
index 0acda941..05dd1547 100755
--- a/gamefilesflare/level/player/Rogue/class.json
+++ b/gamefilesflare/level/player/Rogue/class.json
@@ -80,10 +80,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefilesflare/level/player/Sorceror/class.json b/gamefilesflare/level/player/Sorceror/class.json
index 691c560d..86337105 100755
--- a/gamefilesflare/level/player/Sorceror/class.json
+++ b/gamefilesflare/level/player/Sorceror/class.json
@@ -80,10 +80,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefilesflare/level/player/Warrior/class.json b/gamefilesflare/level/player/Warrior/class.json
index 8ac2f5a7..d5ccbc38 100755
--- a/gamefilesflare/level/player/Warrior/class.json
+++ b/gamefilesflare/level/player/Warrior/class.json
@@ -80,10 +80,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefilesflare/level/player/data/enemies/skeleton.json b/gamefilesflare/level/player/data/enemies/skeleton.json
index c0c69c7e..f70dacfa 100755
--- a/gamefilesflare/level/player/data/enemies/skeleton.json
+++ b/gamefilesflare/level/player/data/enemies/skeleton.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "skeleton",
+ "file": "images/enemies/skeleton.png"
+ },
"texturePack": {
"id": "skeleton",
- "texture": {
- "id": "skeleton",
- "file": "images/enemies/skeleton.png"
- },
+ "texture": "skeleton",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/battle_axe.json b/gamefilesflare/level/player/data/female/battle_axe.json
index 0dc47dd1..13c46e64 100755
--- a/gamefilesflare/level/player/data/female/battle_axe.json
+++ b/gamefilesflare/level/player/data/female/battle_axe.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_battle_axe",
+ "file": "images/avatar/female/battle_axe.png"
+ },
"texturePack": {
"id": "f_battle_axe",
- "texture": {
- "id": "f_battle_axe",
- "file": "images/avatar/female/battle_axe.png"
- },
+ "texture": "f_battle_axe",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/buckler.json b/gamefilesflare/level/player/data/female/buckler.json
index 1fbe3952..dc707f25 100755
--- a/gamefilesflare/level/player/data/female/buckler.json
+++ b/gamefilesflare/level/player/data/female/buckler.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_buckler",
+ "file": "images/avatar/female/buckler.png"
+ },
"texturePack": {
"id": "f_buckler",
- "texture": {
- "id": "f_buckler",
- "file": "images/avatar/female/buckler.png"
- },
+ "texture": "f_buckler",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/chain_boots.json b/gamefilesflare/level/player/data/female/chain_boots.json
index 8e857e14..48851089 100755
--- a/gamefilesflare/level/player/data/female/chain_boots.json
+++ b/gamefilesflare/level/player/data/female/chain_boots.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_chain_boots",
+ "file": "images/avatar/female/chain_boots.png"
+ },
"texturePack": {
"id": "f_chain_boots",
- "texture": {
- "id": "f_chain_boots",
- "file": "images/avatar/female/chain_boots.png"
- },
+ "texture": "f_chain_boots",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/chain_coif.json b/gamefilesflare/level/player/data/female/chain_coif.json
index 1df346b6..2f93e596 100755
--- a/gamefilesflare/level/player/data/female/chain_coif.json
+++ b/gamefilesflare/level/player/data/female/chain_coif.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_chain_coif",
+ "file": "images/avatar/female/chain_coif.png"
+ },
"texturePack": {
"id": "f_chain_coif",
- "texture": {
- "id": "f_chain_coif",
- "file": "images/avatar/female/chain_coif.png"
- },
+ "texture": "f_chain_coif",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/chain_cuirass.json b/gamefilesflare/level/player/data/female/chain_cuirass.json
index 678d3bd7..ad333d90 100755
--- a/gamefilesflare/level/player/data/female/chain_cuirass.json
+++ b/gamefilesflare/level/player/data/female/chain_cuirass.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_chain_cuirass",
+ "file": "images/avatar/female/chain_cuirass.png"
+ },
"texturePack": {
"id": "f_chain_cuirass",
- "texture": {
- "id": "f_chain_cuirass",
- "file": "images/avatar/female/chain_cuirass.png"
- },
+ "texture": "f_chain_cuirass",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/chain_gloves.json b/gamefilesflare/level/player/data/female/chain_gloves.json
index cace49e1..1d321757 100755
--- a/gamefilesflare/level/player/data/female/chain_gloves.json
+++ b/gamefilesflare/level/player/data/female/chain_gloves.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_chain_gloves",
+ "file": "images/avatar/female/chain_gloves.png"
+ },
"texturePack": {
"id": "f_chain_gloves",
- "texture": {
- "id": "f_chain_gloves",
- "file": "images/avatar/female/chain_gloves.png"
- },
+ "texture": "f_chain_gloves",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/chain_greaves.json b/gamefilesflare/level/player/data/female/chain_greaves.json
index b826e269..a5a8747c 100755
--- a/gamefilesflare/level/player/data/female/chain_greaves.json
+++ b/gamefilesflare/level/player/data/female/chain_greaves.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_chain_greaves",
+ "file": "images/avatar/female/chain_greaves.png"
+ },
"texturePack": {
"id": "f_chain_greaves",
- "texture": {
- "id": "f_chain_greaves",
- "file": "images/avatar/female/chain_greaves.png"
- },
+ "texture": "f_chain_greaves",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/cloth_gloves.json b/gamefilesflare/level/player/data/female/cloth_gloves.json
index 79343b18..1f32f181 100755
--- a/gamefilesflare/level/player/data/female/cloth_gloves.json
+++ b/gamefilesflare/level/player/data/female/cloth_gloves.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_cloth_gloves",
+ "file": "images/avatar/female/cloth_gloves.png"
+ },
"texturePack": {
"id": "f_cloth_gloves",
- "texture": {
- "id": "f_cloth_gloves",
- "file": "images/avatar/female/cloth_gloves.png"
- },
+ "texture": "f_cloth_gloves",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/cloth_pants.json b/gamefilesflare/level/player/data/female/cloth_pants.json
index 3307bbf4..fbed4357 100755
--- a/gamefilesflare/level/player/data/female/cloth_pants.json
+++ b/gamefilesflare/level/player/data/female/cloth_pants.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_cloth_pants",
+ "file": "images/avatar/female/cloth_pants.png"
+ },
"texturePack": {
"id": "f_cloth_pants",
- "texture": {
- "id": "f_cloth_pants",
- "file": "images/avatar/female/cloth_pants.png"
- },
+ "texture": "f_cloth_pants",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/cloth_sandals.json b/gamefilesflare/level/player/data/female/cloth_sandals.json
index 711c5785..01021468 100755
--- a/gamefilesflare/level/player/data/female/cloth_sandals.json
+++ b/gamefilesflare/level/player/data/female/cloth_sandals.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_cloth_sandals",
+ "file": "images/avatar/female/cloth_sandals.png"
+ },
"texturePack": {
"id": "f_cloth_sandals",
- "texture": {
- "id": "f_cloth_sandals",
- "file": "images/avatar/female/cloth_sandals.png"
- },
+ "texture": "f_cloth_sandals",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/cloth_shirt.json b/gamefilesflare/level/player/data/female/cloth_shirt.json
index 0303efb2..9e44be22 100755
--- a/gamefilesflare/level/player/data/female/cloth_shirt.json
+++ b/gamefilesflare/level/player/data/female/cloth_shirt.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_cloth_shirt",
+ "file": "images/avatar/female/cloth_shirt.png"
+ },
"texturePack": {
"id": "f_cloth_shirt",
- "texture": {
- "id": "f_cloth_shirt",
- "file": "images/avatar/female/cloth_shirt.png"
- },
+ "texture": "f_cloth_shirt",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/clothes.json b/gamefilesflare/level/player/data/female/clothes.json
index c965261e..12117939 100755
--- a/gamefilesflare/level/player/data/female/clothes.json
+++ b/gamefilesflare/level/player/data/female/clothes.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_clothes",
+ "file": "images/avatar/female/clothes.png"
+ },
"texturePack": {
"id": "f_clothes",
- "texture": {
- "id": "f_clothes",
- "file": "images/avatar/female/clothes.png"
- },
+ "texture": "f_clothes",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/club.json b/gamefilesflare/level/player/data/female/club.json
index 0a9fbe92..0212adc0 100755
--- a/gamefilesflare/level/player/data/female/club.json
+++ b/gamefilesflare/level/player/data/female/club.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_club",
+ "file": "images/avatar/female/club.png"
+ },
"texturePack": {
"id": "f_club",
- "texture": {
- "id": "f_club",
- "file": "images/avatar/female/club.png"
- },
+ "texture": "f_club",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/dagger.json b/gamefilesflare/level/player/data/female/dagger.json
index ab5ed5cd..dfcd8a54 100755
--- a/gamefilesflare/level/player/data/female/dagger.json
+++ b/gamefilesflare/level/player/data/female/dagger.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_dagger",
+ "file": "images/avatar/female/dagger.png"
+ },
"texturePack": {
"id": "f_dagger",
- "texture": {
- "id": "f_dagger",
- "file": "images/avatar/female/dagger.png"
- },
+ "texture": "f_dagger",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/default_chest.json b/gamefilesflare/level/player/data/female/default_chest.json
index 88fe1954..d8ec726b 100755
--- a/gamefilesflare/level/player/data/female/default_chest.json
+++ b/gamefilesflare/level/player/data/female/default_chest.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_default_chest",
+ "file": "images/avatar/female/default_chest.png"
+ },
"texturePack": {
"id": "f_default_chest",
- "texture": {
- "id": "f_default_chest",
- "file": "images/avatar/female/default_chest.png"
- },
+ "texture": "f_default_chest",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/default_feet.json b/gamefilesflare/level/player/data/female/default_feet.json
index e164e0e4..d8473ae1 100755
--- a/gamefilesflare/level/player/data/female/default_feet.json
+++ b/gamefilesflare/level/player/data/female/default_feet.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_default_feet",
+ "file": "images/avatar/female/default_feet.png"
+ },
"texturePack": {
"id": "f_default_feet",
- "texture": {
- "id": "f_default_feet",
- "file": "images/avatar/female/default_feet.png"
- },
+ "texture": "f_default_feet",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/default_hands.json b/gamefilesflare/level/player/data/female/default_hands.json
index 342dea65..4f71fc0a 100755
--- a/gamefilesflare/level/player/data/female/default_hands.json
+++ b/gamefilesflare/level/player/data/female/default_hands.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_default_hands",
+ "file": "images/avatar/female/default_hands.png"
+ },
"texturePack": {
"id": "f_default_hands",
- "texture": {
- "id": "f_default_hands",
- "file": "images/avatar/female/default_hands.png"
- },
+ "texture": "f_default_hands",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/default_legs.json b/gamefilesflare/level/player/data/female/default_legs.json
index 2e25c31d..5626997f 100755
--- a/gamefilesflare/level/player/data/female/default_legs.json
+++ b/gamefilesflare/level/player/data/female/default_legs.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_default_legs",
+ "file": "images/avatar/female/default_legs.png"
+ },
"texturePack": {
"id": "f_default_legs",
- "texture": {
- "id": "f_default_legs",
- "file": "images/avatar/female/default_legs.png"
- },
+ "texture": "f_default_legs",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/greatbow.json b/gamefilesflare/level/player/data/female/greatbow.json
index ae048668..c5e7c551 100755
--- a/gamefilesflare/level/player/data/female/greatbow.json
+++ b/gamefilesflare/level/player/data/female/greatbow.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_greatbow",
+ "file": "images/avatar/female/greatbow.png"
+ },
"texturePack": {
"id": "f_greatbow",
- "texture": {
- "id": "f_greatbow",
- "file": "images/avatar/female/greatbow.png"
- },
+ "texture": "f_greatbow",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/greatstaff.json b/gamefilesflare/level/player/data/female/greatstaff.json
index f440b92f..c311caf2 100755
--- a/gamefilesflare/level/player/data/female/greatstaff.json
+++ b/gamefilesflare/level/player/data/female/greatstaff.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_greatstaff",
+ "file": "images/avatar/female/greatstaff.png"
+ },
"texturePack": {
"id": "f_greatstaff",
- "texture": {
- "id": "f_greatstaff",
- "file": "images/avatar/female/greatstaff.png"
- },
+ "texture": "f_greatstaff",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/greatsword.json b/gamefilesflare/level/player/data/female/greatsword.json
index a2a3fb92..15194173 100755
--- a/gamefilesflare/level/player/data/female/greatsword.json
+++ b/gamefilesflare/level/player/data/female/greatsword.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_greatsword",
+ "file": "images/avatar/female/greatsword.png"
+ },
"texturePack": {
"id": "f_greatsword",
- "texture": {
- "id": "f_greatsword",
- "file": "images/avatar/female/greatsword.png"
- },
+ "texture": "f_greatsword",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/hand_axe.json b/gamefilesflare/level/player/data/female/hand_axe.json
index c8857bb7..c81ab16e 100755
--- a/gamefilesflare/level/player/data/female/hand_axe.json
+++ b/gamefilesflare/level/player/data/female/hand_axe.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_hand_axe",
+ "file": "images/avatar/female/hand_axe.png"
+ },
"texturePack": {
"id": "f_hand_axe",
- "texture": {
- "id": "f_hand_axe",
- "file": "images/avatar/female/hand_axe.png"
- },
+ "texture": "f_hand_axe",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/head_long.json b/gamefilesflare/level/player/data/female/head_long.json
index aa6b329c..a656d04a 100755
--- a/gamefilesflare/level/player/data/female/head_long.json
+++ b/gamefilesflare/level/player/data/female/head_long.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_head_long",
+ "file": "images/avatar/female/head_long.png"
+ },
"texturePack": {
"id": "f_head_long",
- "texture": {
- "id": "f_head_long",
- "file": "images/avatar/female/head_long.png"
- },
+ "texture": "f_head_long",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/infantry_axe.json b/gamefilesflare/level/player/data/female/infantry_axe.json
index cabba8cd..6826140d 100755
--- a/gamefilesflare/level/player/data/female/infantry_axe.json
+++ b/gamefilesflare/level/player/data/female/infantry_axe.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_infantry_axe",
+ "file": "images/avatar/female/infantry_axe.png"
+ },
"texturePack": {
"id": "f_infantry_axe",
- "texture": {
- "id": "f_infantry_axe",
- "file": "images/avatar/female/infantry_axe.png"
- },
+ "texture": "f_infantry_axe",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/iron_buckler.json b/gamefilesflare/level/player/data/female/iron_buckler.json
index 27012605..de81d4af 100755
--- a/gamefilesflare/level/player/data/female/iron_buckler.json
+++ b/gamefilesflare/level/player/data/female/iron_buckler.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_iron_buckler",
+ "file": "images/avatar/female/iron_buckler.png"
+ },
"texturePack": {
"id": "f_iron_buckler",
- "texture": {
- "id": "f_iron_buckler",
- "file": "images/avatar/female/iron_buckler.png"
- },
+ "texture": "f_iron_buckler",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/leather_armor.json b/gamefilesflare/level/player/data/female/leather_armor.json
index 903f6389..148c52ad 100755
--- a/gamefilesflare/level/player/data/female/leather_armor.json
+++ b/gamefilesflare/level/player/data/female/leather_armor.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_leather_armor",
+ "file": "images/avatar/female/leather_armor.png"
+ },
"texturePack": {
"id": "f_leather_armor",
- "texture": {
- "id": "f_leather_armor",
- "file": "images/avatar/female/leather_armor.png"
- },
+ "texture": "f_leather_armor",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/leather_boots.json b/gamefilesflare/level/player/data/female/leather_boots.json
index 56a0d7c7..7b382323 100755
--- a/gamefilesflare/level/player/data/female/leather_boots.json
+++ b/gamefilesflare/level/player/data/female/leather_boots.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_leather_boots",
+ "file": "images/avatar/female/leather_boots.png"
+ },
"texturePack": {
"id": "f_leather_boots",
- "texture": {
- "id": "f_leather_boots",
- "file": "images/avatar/female/leather_boots.png"
- },
+ "texture": "f_leather_boots",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/leather_chest.json b/gamefilesflare/level/player/data/female/leather_chest.json
index 7fbd338a..d58c8faa 100755
--- a/gamefilesflare/level/player/data/female/leather_chest.json
+++ b/gamefilesflare/level/player/data/female/leather_chest.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_leather_chest",
+ "file": "images/avatar/female/leather_chest.png"
+ },
"texturePack": {
"id": "f_leather_chest",
- "texture": {
- "id": "f_leather_chest",
- "file": "images/avatar/female/leather_chest.png"
- },
+ "texture": "f_leather_chest",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/leather_gloves.json b/gamefilesflare/level/player/data/female/leather_gloves.json
index ba037e3d..0e983bde 100755
--- a/gamefilesflare/level/player/data/female/leather_gloves.json
+++ b/gamefilesflare/level/player/data/female/leather_gloves.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_leather_gloves",
+ "file": "images/avatar/female/leather_gloves.png"
+ },
"texturePack": {
"id": "f_leather_gloves",
- "texture": {
- "id": "f_leather_gloves",
- "file": "images/avatar/female/leather_gloves.png"
- },
+ "texture": "f_leather_gloves",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/leather_hood.json b/gamefilesflare/level/player/data/female/leather_hood.json
index f749818b..d4257d07 100755
--- a/gamefilesflare/level/player/data/female/leather_hood.json
+++ b/gamefilesflare/level/player/data/female/leather_hood.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_leather_hood",
+ "file": "images/avatar/female/leather_hood.png"
+ },
"texturePack": {
"id": "f_leather_hood",
- "texture": {
- "id": "f_leather_hood",
- "file": "images/avatar/female/leather_hood.png"
- },
+ "texture": "f_leather_hood",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/leather_pants.json b/gamefilesflare/level/player/data/female/leather_pants.json
index 9dd6799c..79ac0318 100755
--- a/gamefilesflare/level/player/data/female/leather_pants.json
+++ b/gamefilesflare/level/player/data/female/leather_pants.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_leather_pants",
+ "file": "images/avatar/female/leather_pants.png"
+ },
"texturePack": {
"id": "f_leather_pants",
- "texture": {
- "id": "f_leather_pants",
- "file": "images/avatar/female/leather_pants.png"
- },
+ "texture": "f_leather_pants",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/longbow.json b/gamefilesflare/level/player/data/female/longbow.json
index fd2e4271..06313cec 100755
--- a/gamefilesflare/level/player/data/female/longbow.json
+++ b/gamefilesflare/level/player/data/female/longbow.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_longbow",
+ "file": "images/avatar/female/longbow.png"
+ },
"texturePack": {
"id": "f_longbow",
- "texture": {
- "id": "f_longbow",
- "file": "images/avatar/female/longbow.png"
- },
+ "texture": "f_longbow",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/longsword.json b/gamefilesflare/level/player/data/female/longsword.json
index 9316f098..074863da 100755
--- a/gamefilesflare/level/player/data/female/longsword.json
+++ b/gamefilesflare/level/player/data/female/longsword.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_longsword",
+ "file": "images/avatar/female/longsword.png"
+ },
"texturePack": {
"id": "f_longsword",
- "texture": {
- "id": "f_longsword",
- "file": "images/avatar/female/longsword.png"
- },
+ "texture": "f_longsword",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mace.json b/gamefilesflare/level/player/data/female/mace.json
index 5ef7d82d..c2aa58b1 100755
--- a/gamefilesflare/level/player/data/female/mace.json
+++ b/gamefilesflare/level/player/data/female/mace.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mace",
+ "file": "images/avatar/female/mace.png"
+ },
"texturePack": {
"id": "f_mace",
- "texture": {
- "id": "f_mace",
- "file": "images/avatar/female/mace.png"
- },
+ "texture": "f_mace",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_boots.json b/gamefilesflare/level/player/data/female/mage_boots.json
index 153a063b..1c0de2a3 100755
--- a/gamefilesflare/level/player/data/female/mage_boots.json
+++ b/gamefilesflare/level/player/data/female/mage_boots.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_boots",
+ "file": "images/avatar/female/mage_boots.png"
+ },
"texturePack": {
"id": "f_mage_boots",
- "texture": {
- "id": "f_mage_boots",
- "file": "images/avatar/female/mage_boots.png"
- },
+ "texture": "f_mage_boots",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_boots_alt1.json b/gamefilesflare/level/player/data/female/mage_boots_alt1.json
index f0743067..090d34d4 100755
--- a/gamefilesflare/level/player/data/female/mage_boots_alt1.json
+++ b/gamefilesflare/level/player/data/female/mage_boots_alt1.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_boots_alt1",
+ "file": "images/avatar/female/mage_boots_alt1.png"
+ },
"texturePack": {
"id": "f_mage_boots_alt1",
- "texture": {
- "id": "f_mage_boots_alt1",
- "file": "images/avatar/female/mage_boots_alt1.png"
- },
+ "texture": "f_mage_boots_alt1",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_boots_alt2.json b/gamefilesflare/level/player/data/female/mage_boots_alt2.json
index 3e9abd15..deb3ed81 100755
--- a/gamefilesflare/level/player/data/female/mage_boots_alt2.json
+++ b/gamefilesflare/level/player/data/female/mage_boots_alt2.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_boots_alt2",
+ "file": "images/avatar/female/mage_boots_alt2.png"
+ },
"texturePack": {
"id": "f_mage_boots_alt2",
- "texture": {
- "id": "f_mage_boots_alt2",
- "file": "images/avatar/female/mage_boots_alt2.png"
- },
+ "texture": "f_mage_boots_alt2",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_hood.json b/gamefilesflare/level/player/data/female/mage_hood.json
index b6d80fab..7cb7a925 100755
--- a/gamefilesflare/level/player/data/female/mage_hood.json
+++ b/gamefilesflare/level/player/data/female/mage_hood.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_hood",
+ "file": "images/avatar/female/mage_hood.png"
+ },
"texturePack": {
"id": "f_mage_hood",
- "texture": {
- "id": "f_mage_hood",
- "file": "images/avatar/female/mage_hood.png"
- },
+ "texture": "f_mage_hood",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_hood_alt1.json b/gamefilesflare/level/player/data/female/mage_hood_alt1.json
index 63fe80b4..78d7eeed 100755
--- a/gamefilesflare/level/player/data/female/mage_hood_alt1.json
+++ b/gamefilesflare/level/player/data/female/mage_hood_alt1.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_hood_alt1",
+ "file": "images/avatar/female/mage_hood_alt1.png"
+ },
"texturePack": {
"id": "f_mage_hood_alt1",
- "texture": {
- "id": "f_mage_hood_alt1",
- "file": "images/avatar/female/mage_hood_alt1.png"
- },
+ "texture": "f_mage_hood_alt1",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_hood_alt2.json b/gamefilesflare/level/player/data/female/mage_hood_alt2.json
index cae33118..9879f1dc 100755
--- a/gamefilesflare/level/player/data/female/mage_hood_alt2.json
+++ b/gamefilesflare/level/player/data/female/mage_hood_alt2.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_hood_alt2",
+ "file": "images/avatar/female/mage_hood_alt2.png"
+ },
"texturePack": {
"id": "f_mage_hood_alt2",
- "texture": {
- "id": "f_mage_hood_alt2",
- "file": "images/avatar/female/mage_hood_alt2.png"
- },
+ "texture": "f_mage_hood_alt2",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_skirt.json b/gamefilesflare/level/player/data/female/mage_skirt.json
index 8362f630..684f72aa 100755
--- a/gamefilesflare/level/player/data/female/mage_skirt.json
+++ b/gamefilesflare/level/player/data/female/mage_skirt.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_skirt",
+ "file": "images/avatar/female/mage_skirt.png"
+ },
"texturePack": {
"id": "f_mage_skirt",
- "texture": {
- "id": "f_mage_skirt",
- "file": "images/avatar/female/mage_skirt.png"
- },
+ "texture": "f_mage_skirt",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_skirt_alt1.json b/gamefilesflare/level/player/data/female/mage_skirt_alt1.json
index d8d9412a..11932e7e 100755
--- a/gamefilesflare/level/player/data/female/mage_skirt_alt1.json
+++ b/gamefilesflare/level/player/data/female/mage_skirt_alt1.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_skirt_alt1",
+ "file": "images/avatar/female/mage_skirt_alt1.png"
+ },
"texturePack": {
"id": "f_mage_skirt_alt1",
- "texture": {
- "id": "f_mage_skirt_alt1",
- "file": "images/avatar/female/mage_skirt_alt1.png"
- },
+ "texture": "f_mage_skirt_alt1",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_skirt_alt2.json b/gamefilesflare/level/player/data/female/mage_skirt_alt2.json
index f5ba2050..ed7072b2 100755
--- a/gamefilesflare/level/player/data/female/mage_skirt_alt2.json
+++ b/gamefilesflare/level/player/data/female/mage_skirt_alt2.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_skirt_alt2",
+ "file": "images/avatar/female/mage_skirt_alt2.png"
+ },
"texturePack": {
"id": "f_mage_skirt_alt2",
- "texture": {
- "id": "f_mage_skirt_alt2",
- "file": "images/avatar/female/mage_skirt_alt2.png"
- },
+ "texture": "f_mage_skirt_alt2",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_sleeves.json b/gamefilesflare/level/player/data/female/mage_sleeves.json
index 3d281e76..40739d98 100755
--- a/gamefilesflare/level/player/data/female/mage_sleeves.json
+++ b/gamefilesflare/level/player/data/female/mage_sleeves.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_sleeves",
+ "file": "images/avatar/female/mage_sleeves.png"
+ },
"texturePack": {
"id": "f_mage_sleeves",
- "texture": {
- "id": "f_mage_sleeves",
- "file": "images/avatar/female/mage_sleeves.png"
- },
+ "texture": "f_mage_sleeves",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_sleeves_alt1.json b/gamefilesflare/level/player/data/female/mage_sleeves_alt1.json
index 77edeee8..7ef416ff 100755
--- a/gamefilesflare/level/player/data/female/mage_sleeves_alt1.json
+++ b/gamefilesflare/level/player/data/female/mage_sleeves_alt1.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_sleeves_alt1",
+ "file": "images/avatar/female/mage_sleeves_alt1.png"
+ },
"texturePack": {
"id": "f_mage_sleeves_alt1",
- "texture": {
- "id": "f_mage_sleeves_alt1",
- "file": "images/avatar/female/mage_sleeves_alt1.png"
- },
+ "texture": "f_mage_sleeves_alt1",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_sleeves_alt2.json b/gamefilesflare/level/player/data/female/mage_sleeves_alt2.json
index 828bd55d..4f909f1a 100755
--- a/gamefilesflare/level/player/data/female/mage_sleeves_alt2.json
+++ b/gamefilesflare/level/player/data/female/mage_sleeves_alt2.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_sleeves_alt2",
+ "file": "images/avatar/female/mage_sleeves_alt2.png"
+ },
"texturePack": {
"id": "f_mage_sleeves_alt2",
- "texture": {
- "id": "f_mage_sleeves_alt2",
- "file": "images/avatar/female/mage_sleeves_alt2.png"
- },
+ "texture": "f_mage_sleeves_alt2",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_vest.json b/gamefilesflare/level/player/data/female/mage_vest.json
index d9697325..180a9508 100755
--- a/gamefilesflare/level/player/data/female/mage_vest.json
+++ b/gamefilesflare/level/player/data/female/mage_vest.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_vest",
+ "file": "images/avatar/female/mage_vest.png"
+ },
"texturePack": {
"id": "f_mage_vest",
- "texture": {
- "id": "f_mage_vest",
- "file": "images/avatar/female/mage_vest.png"
- },
+ "texture": "f_mage_vest",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_vest_alt1.json b/gamefilesflare/level/player/data/female/mage_vest_alt1.json
index 039e42b6..186f8aa6 100755
--- a/gamefilesflare/level/player/data/female/mage_vest_alt1.json
+++ b/gamefilesflare/level/player/data/female/mage_vest_alt1.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_vest_alt1",
+ "file": "images/avatar/female/mage_vest_alt1.png"
+ },
"texturePack": {
"id": "f_mage_vest_alt1",
- "texture": {
- "id": "f_mage_vest_alt1",
- "file": "images/avatar/female/mage_vest_alt1.png"
- },
+ "texture": "f_mage_vest_alt1",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/mage_vest_alt2.json b/gamefilesflare/level/player/data/female/mage_vest_alt2.json
index 5c688861..b52ad0d8 100755
--- a/gamefilesflare/level/player/data/female/mage_vest_alt2.json
+++ b/gamefilesflare/level/player/data/female/mage_vest_alt2.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_mage_vest_alt2",
+ "file": "images/avatar/female/mage_vest_alt2.png"
+ },
"texturePack": {
"id": "f_mage_vest_alt2",
- "texture": {
- "id": "f_mage_vest_alt2",
- "file": "images/avatar/female/mage_vest_alt2.png"
- },
+ "texture": "f_mage_vest_alt2",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/maul.json b/gamefilesflare/level/player/data/female/maul.json
index 09afdc62..d720d620 100755
--- a/gamefilesflare/level/player/data/female/maul.json
+++ b/gamefilesflare/level/player/data/female/maul.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_maul",
+ "file": "images/avatar/female/maul.png"
+ },
"texturePack": {
"id": "f_maul",
- "texture": {
- "id": "f_maul",
- "file": "images/avatar/female/maul.png"
- },
+ "texture": "f_maul",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/plate_boots.json b/gamefilesflare/level/player/data/female/plate_boots.json
index 3cfce485..5d76b845 100755
--- a/gamefilesflare/level/player/data/female/plate_boots.json
+++ b/gamefilesflare/level/player/data/female/plate_boots.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_plate_boots",
+ "file": "images/avatar/female/plate_boots.png"
+ },
"texturePack": {
"id": "f_plate_boots",
- "texture": {
- "id": "f_plate_boots",
- "file": "images/avatar/female/plate_boots.png"
- },
+ "texture": "f_plate_boots",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/plate_cuirass.json b/gamefilesflare/level/player/data/female/plate_cuirass.json
index d7578b55..2b2b6990 100755
--- a/gamefilesflare/level/player/data/female/plate_cuirass.json
+++ b/gamefilesflare/level/player/data/female/plate_cuirass.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_plate_cuirass",
+ "file": "images/avatar/female/plate_cuirass.png"
+ },
"texturePack": {
"id": "f_plate_cuirass",
- "texture": {
- "id": "f_plate_cuirass",
- "file": "images/avatar/female/plate_cuirass.png"
- },
+ "texture": "f_plate_cuirass",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/plate_gauntlets.json b/gamefilesflare/level/player/data/female/plate_gauntlets.json
index d0747d04..548d3015 100755
--- a/gamefilesflare/level/player/data/female/plate_gauntlets.json
+++ b/gamefilesflare/level/player/data/female/plate_gauntlets.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_plate_gauntlets",
+ "file": "images/avatar/female/plate_gauntlets.png"
+ },
"texturePack": {
"id": "f_plate_gauntlets",
- "texture": {
- "id": "f_plate_gauntlets",
- "file": "images/avatar/female/plate_gauntlets.png"
- },
+ "texture": "f_plate_gauntlets",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/plate_greaves.json b/gamefilesflare/level/player/data/female/plate_greaves.json
index 3113bf49..3b6f2f9e 100755
--- a/gamefilesflare/level/player/data/female/plate_greaves.json
+++ b/gamefilesflare/level/player/data/female/plate_greaves.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_plate_greaves",
+ "file": "images/avatar/female/plate_greaves.png"
+ },
"texturePack": {
"id": "f_plate_greaves",
- "texture": {
- "id": "f_plate_greaves",
- "file": "images/avatar/female/plate_greaves.png"
- },
+ "texture": "f_plate_greaves",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/plate_helm.json b/gamefilesflare/level/player/data/female/plate_helm.json
index 2b3b8ce1..a3cf671d 100755
--- a/gamefilesflare/level/player/data/female/plate_helm.json
+++ b/gamefilesflare/level/player/data/female/plate_helm.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_plate_helm",
+ "file": "images/avatar/female/plate_helm.png"
+ },
"texturePack": {
"id": "f_plate_helm",
- "texture": {
- "id": "f_plate_helm",
- "file": "images/avatar/female/plate_helm.png"
- },
+ "texture": "f_plate_helm",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/reinforced_club.json b/gamefilesflare/level/player/data/female/reinforced_club.json
index 1b895c7d..2b99289c 100755
--- a/gamefilesflare/level/player/data/female/reinforced_club.json
+++ b/gamefilesflare/level/player/data/female/reinforced_club.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_reinforced_club",
+ "file": "images/avatar/female/reinforced_club.png"
+ },
"texturePack": {
"id": "f_reinforced_club",
- "texture": {
- "id": "f_reinforced_club",
- "file": "images/avatar/female/reinforced_club.png"
- },
+ "texture": "f_reinforced_club",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/rod.json b/gamefilesflare/level/player/data/female/rod.json
index f8e0d901..79fadabf 100755
--- a/gamefilesflare/level/player/data/female/rod.json
+++ b/gamefilesflare/level/player/data/female/rod.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_rod",
+ "file": "images/avatar/female/rod.png"
+ },
"texturePack": {
"id": "f_rod",
- "texture": {
- "id": "f_rod",
- "file": "images/avatar/female/rod.png"
- },
+ "texture": "f_rod",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/shield.json b/gamefilesflare/level/player/data/female/shield.json
index e1bfacf3..429bb73d 100755
--- a/gamefilesflare/level/player/data/female/shield.json
+++ b/gamefilesflare/level/player/data/female/shield.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_shield",
+ "file": "images/avatar/female/shield.png"
+ },
"texturePack": {
"id": "f_shield",
- "texture": {
- "id": "f_shield",
- "file": "images/avatar/female/shield.png"
- },
+ "texture": "f_shield",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/shortbow.json b/gamefilesflare/level/player/data/female/shortbow.json
index 0471da00..70bb79d2 100755
--- a/gamefilesflare/level/player/data/female/shortbow.json
+++ b/gamefilesflare/level/player/data/female/shortbow.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_shortbow",
+ "file": "images/avatar/female/shortbow.png"
+ },
"texturePack": {
"id": "f_shortbow",
- "texture": {
- "id": "f_shortbow",
- "file": "images/avatar/female/shortbow.png"
- },
+ "texture": "f_shortbow",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/shortsword.json b/gamefilesflare/level/player/data/female/shortsword.json
index cf622af8..c64e9d4c 100755
--- a/gamefilesflare/level/player/data/female/shortsword.json
+++ b/gamefilesflare/level/player/data/female/shortsword.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_shortsword",
+ "file": "images/avatar/female/shortsword.png"
+ },
"texturePack": {
"id": "f_shortsword",
- "texture": {
- "id": "f_shortsword",
- "file": "images/avatar/female/shortsword.png"
- },
+ "texture": "f_shortsword",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/slingshot.json b/gamefilesflare/level/player/data/female/slingshot.json
index d7e41892..62eb6c3a 100755
--- a/gamefilesflare/level/player/data/female/slingshot.json
+++ b/gamefilesflare/level/player/data/female/slingshot.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_slingshot",
+ "file": "images/avatar/female/slingshot.png"
+ },
"texturePack": {
"id": "f_slingshot",
- "texture": {
- "id": "f_slingshot",
- "file": "images/avatar/female/slingshot.png"
- },
+ "texture": "f_slingshot",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/smith_hammer.json b/gamefilesflare/level/player/data/female/smith_hammer.json
index 65ba6f36..39e4ef8a 100755
--- a/gamefilesflare/level/player/data/female/smith_hammer.json
+++ b/gamefilesflare/level/player/data/female/smith_hammer.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_smith_hammer",
+ "file": "images/avatar/female/smith_hammer.png"
+ },
"texturePack": {
"id": "f_smith_hammer",
- "texture": {
- "id": "f_smith_hammer",
- "file": "images/avatar/female/smith_hammer.png"
- },
+ "texture": "f_smith_hammer",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/staff.json b/gamefilesflare/level/player/data/female/staff.json
index 0e01bc72..c7214fc5 100755
--- a/gamefilesflare/level/player/data/female/staff.json
+++ b/gamefilesflare/level/player/data/female/staff.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_staff",
+ "file": "images/avatar/female/staff.png"
+ },
"texturePack": {
"id": "f_staff",
- "texture": {
- "id": "f_staff",
- "file": "images/avatar/female/staff.png"
- },
+ "texture": "f_staff",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/steel_armor.json b/gamefilesflare/level/player/data/female/steel_armor.json
index b48bb8dc..7292ac62 100755
--- a/gamefilesflare/level/player/data/female/steel_armor.json
+++ b/gamefilesflare/level/player/data/female/steel_armor.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_steel_armor",
+ "file": "images/avatar/female/steel_armor.png"
+ },
"texturePack": {
"id": "f_steel_armor",
- "texture": {
- "id": "f_steel_armor",
- "file": "images/avatar/female/steel_armor.png"
- },
+ "texture": "f_steel_armor",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/wand.json b/gamefilesflare/level/player/data/female/wand.json
index c2f156a1..bd6a0d27 100755
--- a/gamefilesflare/level/player/data/female/wand.json
+++ b/gamefilesflare/level/player/data/female/wand.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_wand",
+ "file": "images/avatar/female/wand.png"
+ },
"texturePack": {
"id": "f_wand",
- "texture": {
- "id": "f_wand",
- "file": "images/avatar/female/wand.png"
- },
+ "texture": "f_wand",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/war_hammer.json b/gamefilesflare/level/player/data/female/war_hammer.json
index 52bc4e4e..7585fded 100755
--- a/gamefilesflare/level/player/data/female/war_hammer.json
+++ b/gamefilesflare/level/player/data/female/war_hammer.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_war_hammer",
+ "file": "images/avatar/female/war_hammer.png"
+ },
"texturePack": {
"id": "f_war_hammer",
- "texture": {
- "id": "f_war_hammer",
- "file": "images/avatar/female/war_hammer.png"
- },
+ "texture": "f_war_hammer",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/female/zweihander.json b/gamefilesflare/level/player/data/female/zweihander.json
index 71721692..19d8b4a5 100755
--- a/gamefilesflare/level/player/data/female/zweihander.json
+++ b/gamefilesflare/level/player/data/female/zweihander.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "f_zweihander",
+ "file": "images/avatar/female/zweihander.png"
+ },
"texturePack": {
"id": "f_zweihander",
- "texture": {
- "id": "f_zweihander",
- "file": "images/avatar/female/zweihander.png"
- },
+ "texture": "f_zweihander",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/battle_axe.json b/gamefilesflare/level/player/data/male/battle_axe.json
index 1b962372..edc6fe49 100755
--- a/gamefilesflare/level/player/data/male/battle_axe.json
+++ b/gamefilesflare/level/player/data/male/battle_axe.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_battle_axe",
+ "file": "images/avatar/male/battle_axe.png"
+ },
"texturePack": {
"id": "m_battle_axe",
- "texture": {
- "id": "m_battle_axe",
- "file": "images/avatar/male/battle_axe.png"
- },
+ "texture": "m_battle_axe",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/buckler.json b/gamefilesflare/level/player/data/male/buckler.json
index 214de50b..ef7c2824 100755
--- a/gamefilesflare/level/player/data/male/buckler.json
+++ b/gamefilesflare/level/player/data/male/buckler.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_buckler",
+ "file": "images/avatar/male/buckler.png"
+ },
"texturePack": {
"id": "m_buckler",
- "texture": {
- "id": "m_buckler",
- "file": "images/avatar/male/buckler.png"
- },
+ "texture": "m_buckler",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/chain_boots.json b/gamefilesflare/level/player/data/male/chain_boots.json
index 746bf115..3707373a 100755
--- a/gamefilesflare/level/player/data/male/chain_boots.json
+++ b/gamefilesflare/level/player/data/male/chain_boots.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_chain_boots",
+ "file": "images/avatar/male/chain_boots.png"
+ },
"texturePack": {
"id": "m_chain_boots",
- "texture": {
- "id": "m_chain_boots",
- "file": "images/avatar/male/chain_boots.png"
- },
+ "texture": "m_chain_boots",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/chain_coif.json b/gamefilesflare/level/player/data/male/chain_coif.json
index a23a3365..e95504b9 100755
--- a/gamefilesflare/level/player/data/male/chain_coif.json
+++ b/gamefilesflare/level/player/data/male/chain_coif.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_chain_coif",
+ "file": "images/avatar/male/chain_coif.png"
+ },
"texturePack": {
"id": "m_chain_coif",
- "texture": {
- "id": "m_chain_coif",
- "file": "images/avatar/male/chain_coif.png"
- },
+ "texture": "m_chain_coif",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/chain_cuirass.json b/gamefilesflare/level/player/data/male/chain_cuirass.json
index f72c9d74..b21a1fba 100755
--- a/gamefilesflare/level/player/data/male/chain_cuirass.json
+++ b/gamefilesflare/level/player/data/male/chain_cuirass.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_chain_cuirass",
+ "file": "images/avatar/male/chain_cuirass.png"
+ },
"texturePack": {
"id": "m_chain_cuirass",
- "texture": {
- "id": "m_chain_cuirass",
- "file": "images/avatar/male/chain_cuirass.png"
- },
+ "texture": "m_chain_cuirass",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/chain_gloves.json b/gamefilesflare/level/player/data/male/chain_gloves.json
index 6ffe7c7c..9ca81992 100755
--- a/gamefilesflare/level/player/data/male/chain_gloves.json
+++ b/gamefilesflare/level/player/data/male/chain_gloves.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_chain_gloves",
+ "file": "images/avatar/male/chain_gloves.png"
+ },
"texturePack": {
"id": "m_chain_gloves",
- "texture": {
- "id": "m_chain_gloves",
- "file": "images/avatar/male/chain_gloves.png"
- },
+ "texture": "m_chain_gloves",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/chain_greaves.json b/gamefilesflare/level/player/data/male/chain_greaves.json
index aac27252..323aff2a 100755
--- a/gamefilesflare/level/player/data/male/chain_greaves.json
+++ b/gamefilesflare/level/player/data/male/chain_greaves.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_chain_greaves",
+ "file": "images/avatar/male/chain_greaves.png"
+ },
"texturePack": {
"id": "m_chain_greaves",
- "texture": {
- "id": "m_chain_greaves",
- "file": "images/avatar/male/chain_greaves.png"
- },
+ "texture": "m_chain_greaves",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/cloth_gloves.json b/gamefilesflare/level/player/data/male/cloth_gloves.json
index 1db2618a..bbc930cd 100755
--- a/gamefilesflare/level/player/data/male/cloth_gloves.json
+++ b/gamefilesflare/level/player/data/male/cloth_gloves.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_cloth_gloves",
+ "file": "images/avatar/male/cloth_gloves.png"
+ },
"texturePack": {
"id": "m_cloth_gloves",
- "texture": {
- "id": "m_cloth_gloves",
- "file": "images/avatar/male/cloth_gloves.png"
- },
+ "texture": "m_cloth_gloves",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/cloth_pants.json b/gamefilesflare/level/player/data/male/cloth_pants.json
index 6405b76d..0880bced 100755
--- a/gamefilesflare/level/player/data/male/cloth_pants.json
+++ b/gamefilesflare/level/player/data/male/cloth_pants.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_cloth_pants",
+ "file": "images/avatar/male/cloth_pants.png"
+ },
"texturePack": {
"id": "m_cloth_pants",
- "texture": {
- "id": "m_cloth_pants",
- "file": "images/avatar/male/cloth_pants.png"
- },
+ "texture": "m_cloth_pants",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/cloth_sandals.json b/gamefilesflare/level/player/data/male/cloth_sandals.json
index 5369d231..ad6c1be4 100755
--- a/gamefilesflare/level/player/data/male/cloth_sandals.json
+++ b/gamefilesflare/level/player/data/male/cloth_sandals.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_cloth_sandals",
+ "file": "images/avatar/male/cloth_sandals.png"
+ },
"texturePack": {
"id": "m_cloth_sandals",
- "texture": {
- "id": "m_cloth_sandals",
- "file": "images/avatar/male/cloth_sandals.png"
- },
+ "texture": "m_cloth_sandals",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/cloth_shirt.json b/gamefilesflare/level/player/data/male/cloth_shirt.json
index ddeb3c25..c1490d54 100755
--- a/gamefilesflare/level/player/data/male/cloth_shirt.json
+++ b/gamefilesflare/level/player/data/male/cloth_shirt.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_cloth_shirt",
+ "file": "images/avatar/male/cloth_shirt.png"
+ },
"texturePack": {
"id": "m_cloth_shirt",
- "texture": {
- "id": "m_cloth_shirt",
- "file": "images/avatar/male/cloth_shirt.png"
- },
+ "texture": "m_cloth_shirt",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/clothes.json b/gamefilesflare/level/player/data/male/clothes.json
index fa66955f..5fedc42f 100755
--- a/gamefilesflare/level/player/data/male/clothes.json
+++ b/gamefilesflare/level/player/data/male/clothes.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_clothes",
+ "file": "images/avatar/male/clothes.png"
+ },
"texturePack": {
"id": "m_clothes",
- "texture": {
- "id": "m_clothes",
- "file": "images/avatar/male/clothes.png"
- },
+ "texture": "m_clothes",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/club.json b/gamefilesflare/level/player/data/male/club.json
index 557d0989..51c60b2b 100755
--- a/gamefilesflare/level/player/data/male/club.json
+++ b/gamefilesflare/level/player/data/male/club.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_club",
+ "file": "images/avatar/male/club.png"
+ },
"texturePack": {
"id": "m_club",
- "texture": {
- "id": "m_club",
- "file": "images/avatar/male/club.png"
- },
+ "texture": "m_club",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/dagger.json b/gamefilesflare/level/player/data/male/dagger.json
index 36033766..d290ceb8 100755
--- a/gamefilesflare/level/player/data/male/dagger.json
+++ b/gamefilesflare/level/player/data/male/dagger.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_dagger",
+ "file": "images/avatar/male/dagger.png"
+ },
"texturePack": {
"id": "m_dagger",
- "texture": {
- "id": "m_dagger",
- "file": "images/avatar/male/dagger.png"
- },
+ "texture": "m_dagger",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/default_chest.json b/gamefilesflare/level/player/data/male/default_chest.json
index 05997ecc..d87772ce 100755
--- a/gamefilesflare/level/player/data/male/default_chest.json
+++ b/gamefilesflare/level/player/data/male/default_chest.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_default_chest",
+ "file": "images/avatar/male/default_chest.png"
+ },
"texturePack": {
"id": "m_default_chest",
- "texture": {
- "id": "m_default_chest",
- "file": "images/avatar/male/default_chest.png"
- },
+ "texture": "m_default_chest",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/default_feet.json b/gamefilesflare/level/player/data/male/default_feet.json
index b2026884..7e9d8610 100755
--- a/gamefilesflare/level/player/data/male/default_feet.json
+++ b/gamefilesflare/level/player/data/male/default_feet.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_default_feet",
+ "file": "images/avatar/male/default_feet.png"
+ },
"texturePack": {
"id": "m_default_feet",
- "texture": {
- "id": "m_default_feet",
- "file": "images/avatar/male/default_feet.png"
- },
+ "texture": "m_default_feet",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/default_hands.json b/gamefilesflare/level/player/data/male/default_hands.json
index 0383b7cf..25a41e56 100755
--- a/gamefilesflare/level/player/data/male/default_hands.json
+++ b/gamefilesflare/level/player/data/male/default_hands.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_default_hands",
+ "file": "images/avatar/male/default_hands.png"
+ },
"texturePack": {
"id": "m_default_hands",
- "texture": {
- "id": "m_default_hands",
- "file": "images/avatar/male/default_hands.png"
- },
+ "texture": "m_default_hands",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/default_legs.json b/gamefilesflare/level/player/data/male/default_legs.json
index fd69375b..25808a78 100755
--- a/gamefilesflare/level/player/data/male/default_legs.json
+++ b/gamefilesflare/level/player/data/male/default_legs.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_default_legs",
+ "file": "images/avatar/male/default_legs.png"
+ },
"texturePack": {
"id": "m_default_legs",
- "texture": {
- "id": "m_default_legs",
- "file": "images/avatar/male/default_legs.png"
- },
+ "texture": "m_default_legs",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/greatbow.json b/gamefilesflare/level/player/data/male/greatbow.json
index 5cacaa32..69c82087 100755
--- a/gamefilesflare/level/player/data/male/greatbow.json
+++ b/gamefilesflare/level/player/data/male/greatbow.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_greatbow",
+ "file": "images/avatar/male/greatbow.png"
+ },
"texturePack": {
"id": "m_greatbow",
- "texture": {
- "id": "m_greatbow",
- "file": "images/avatar/male/greatbow.png"
- },
+ "texture": "m_greatbow",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/greatstaff.json b/gamefilesflare/level/player/data/male/greatstaff.json
index adcc33f4..336d9955 100755
--- a/gamefilesflare/level/player/data/male/greatstaff.json
+++ b/gamefilesflare/level/player/data/male/greatstaff.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_greatstaff",
+ "file": "images/avatar/male/greatstaff.png"
+ },
"texturePack": {
"id": "m_greatstaff",
- "texture": {
- "id": "m_greatstaff",
- "file": "images/avatar/male/greatstaff.png"
- },
+ "texture": "m_greatstaff",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/greatsword.json b/gamefilesflare/level/player/data/male/greatsword.json
index 06916fa6..d190cffc 100755
--- a/gamefilesflare/level/player/data/male/greatsword.json
+++ b/gamefilesflare/level/player/data/male/greatsword.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_greatsword",
+ "file": "images/avatar/male/greatsword.png"
+ },
"texturePack": {
"id": "m_greatsword",
- "texture": {
- "id": "m_greatsword",
- "file": "images/avatar/male/greatsword.png"
- },
+ "texture": "m_greatsword",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/hand_axe.json b/gamefilesflare/level/player/data/male/hand_axe.json
index a3169bd9..a725e95c 100755
--- a/gamefilesflare/level/player/data/male/hand_axe.json
+++ b/gamefilesflare/level/player/data/male/hand_axe.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_hand_axe",
+ "file": "images/avatar/male/hand_axe.png"
+ },
"texturePack": {
"id": "m_hand_axe",
- "texture": {
- "id": "m_hand_axe",
- "file": "images/avatar/male/hand_axe.png"
- },
+ "texture": "m_hand_axe",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/head_bald.json b/gamefilesflare/level/player/data/male/head_bald.json
index 625590bc..739a8e0b 100755
--- a/gamefilesflare/level/player/data/male/head_bald.json
+++ b/gamefilesflare/level/player/data/male/head_bald.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_head_bald",
+ "file": "images/avatar/male/head_bald.png"
+ },
"texturePack": {
"id": "m_head_bald",
- "texture": {
- "id": "m_head_bald",
- "file": "images/avatar/male/head_bald.png"
- },
+ "texture": "m_head_bald",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/head_short.json b/gamefilesflare/level/player/data/male/head_short.json
index e5327d0e..ef4ea3b0 100755
--- a/gamefilesflare/level/player/data/male/head_short.json
+++ b/gamefilesflare/level/player/data/male/head_short.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_head_short",
+ "file": "images/avatar/male/head_short.png"
+ },
"texturePack": {
"id": "m_head_short",
- "texture": {
- "id": "m_head_short",
- "file": "images/avatar/male/head_short.png"
- },
+ "texture": "m_head_short",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/infantry_axe.json b/gamefilesflare/level/player/data/male/infantry_axe.json
index 5a57cba7..7a0574ab 100755
--- a/gamefilesflare/level/player/data/male/infantry_axe.json
+++ b/gamefilesflare/level/player/data/male/infantry_axe.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_infantry_axe",
+ "file": "images/avatar/male/infantry_axe.png"
+ },
"texturePack": {
"id": "m_infantry_axe",
- "texture": {
- "id": "m_infantry_axe",
- "file": "images/avatar/male/infantry_axe.png"
- },
+ "texture": "m_infantry_axe",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/iron_buckler.json b/gamefilesflare/level/player/data/male/iron_buckler.json
index f98e80ef..bf87fefa 100755
--- a/gamefilesflare/level/player/data/male/iron_buckler.json
+++ b/gamefilesflare/level/player/data/male/iron_buckler.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_iron_buckler",
+ "file": "images/avatar/male/iron_buckler.png"
+ },
"texturePack": {
"id": "m_iron_buckler",
- "texture": {
- "id": "m_iron_buckler",
- "file": "images/avatar/male/iron_buckler.png"
- },
+ "texture": "m_iron_buckler",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/leather_armor.json b/gamefilesflare/level/player/data/male/leather_armor.json
index 9152ff91..e51d7bfe 100755
--- a/gamefilesflare/level/player/data/male/leather_armor.json
+++ b/gamefilesflare/level/player/data/male/leather_armor.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_leather_armor",
+ "file": "images/avatar/male/leather_armor.png"
+ },
"texturePack": {
"id": "m_leather_armor",
- "texture": {
- "id": "m_leather_armor",
- "file": "images/avatar/male/leather_armor.png"
- },
+ "texture": "m_leather_armor",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/leather_boots.json b/gamefilesflare/level/player/data/male/leather_boots.json
index 963bf4c6..2e654ef0 100755
--- a/gamefilesflare/level/player/data/male/leather_boots.json
+++ b/gamefilesflare/level/player/data/male/leather_boots.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_leather_boots",
+ "file": "images/avatar/male/leather_boots.png"
+ },
"texturePack": {
"id": "m_leather_boots",
- "texture": {
- "id": "m_leather_boots",
- "file": "images/avatar/male/leather_boots.png"
- },
+ "texture": "m_leather_boots",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/leather_chest.json b/gamefilesflare/level/player/data/male/leather_chest.json
index 8a71762a..8ca21253 100755
--- a/gamefilesflare/level/player/data/male/leather_chest.json
+++ b/gamefilesflare/level/player/data/male/leather_chest.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_leather_chest",
+ "file": "images/avatar/male/leather_chest.png"
+ },
"texturePack": {
"id": "m_leather_chest",
- "texture": {
- "id": "m_leather_chest",
- "file": "images/avatar/male/leather_chest.png"
- },
+ "texture": "m_leather_chest",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/leather_gloves.json b/gamefilesflare/level/player/data/male/leather_gloves.json
index a2931c8d..2defb529 100755
--- a/gamefilesflare/level/player/data/male/leather_gloves.json
+++ b/gamefilesflare/level/player/data/male/leather_gloves.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_leather_gloves",
+ "file": "images/avatar/male/leather_gloves.png"
+ },
"texturePack": {
"id": "m_leather_gloves",
- "texture": {
- "id": "m_leather_gloves",
- "file": "images/avatar/male/leather_gloves.png"
- },
+ "texture": "m_leather_gloves",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/leather_hood.json b/gamefilesflare/level/player/data/male/leather_hood.json
index 6a8b089f..0a982074 100755
--- a/gamefilesflare/level/player/data/male/leather_hood.json
+++ b/gamefilesflare/level/player/data/male/leather_hood.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_leather_hood",
+ "file": "images/avatar/male/leather_hood.png"
+ },
"texturePack": {
"id": "m_leather_hood",
- "texture": {
- "id": "m_leather_hood",
- "file": "images/avatar/male/leather_hood.png"
- },
+ "texture": "m_leather_hood",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/leather_pants.json b/gamefilesflare/level/player/data/male/leather_pants.json
index e8dcfafe..8d71f2ec 100755
--- a/gamefilesflare/level/player/data/male/leather_pants.json
+++ b/gamefilesflare/level/player/data/male/leather_pants.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_leather_pants",
+ "file": "images/avatar/male/leather_pants.png"
+ },
"texturePack": {
"id": "m_leather_pants",
- "texture": {
- "id": "m_leather_pants",
- "file": "images/avatar/male/leather_pants.png"
- },
+ "texture": "m_leather_pants",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/longbow.json b/gamefilesflare/level/player/data/male/longbow.json
index aa65320f..2bb62de0 100755
--- a/gamefilesflare/level/player/data/male/longbow.json
+++ b/gamefilesflare/level/player/data/male/longbow.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_longbow",
+ "file": "images/avatar/male/longbow.png"
+ },
"texturePack": {
"id": "m_longbow",
- "texture": {
- "id": "m_longbow",
- "file": "images/avatar/male/longbow.png"
- },
+ "texture": "m_longbow",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/longsword.json b/gamefilesflare/level/player/data/male/longsword.json
index 873fe40c..142b8238 100755
--- a/gamefilesflare/level/player/data/male/longsword.json
+++ b/gamefilesflare/level/player/data/male/longsword.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_longsword",
+ "file": "images/avatar/male/longsword.png"
+ },
"texturePack": {
"id": "m_longsword",
- "texture": {
- "id": "m_longsword",
- "file": "images/avatar/male/longsword.png"
- },
+ "texture": "m_longsword",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mace.json b/gamefilesflare/level/player/data/male/mace.json
index 0f9b7c6c..bed5a62b 100755
--- a/gamefilesflare/level/player/data/male/mace.json
+++ b/gamefilesflare/level/player/data/male/mace.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mace",
+ "file": "images/avatar/male/mace.png"
+ },
"texturePack": {
"id": "m_mace",
- "texture": {
- "id": "m_mace",
- "file": "images/avatar/male/mace.png"
- },
+ "texture": "m_mace",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_boots.json b/gamefilesflare/level/player/data/male/mage_boots.json
index 7447c405..70bc9a4f 100755
--- a/gamefilesflare/level/player/data/male/mage_boots.json
+++ b/gamefilesflare/level/player/data/male/mage_boots.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_boots",
+ "file": "images/avatar/male/mage_boots.png"
+ },
"texturePack": {
"id": "m_mage_boots",
- "texture": {
- "id": "m_mage_boots",
- "file": "images/avatar/male/mage_boots.png"
- },
+ "texture": "m_mage_boots",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_boots_alt1.json b/gamefilesflare/level/player/data/male/mage_boots_alt1.json
index 94f1366e..7433ba62 100755
--- a/gamefilesflare/level/player/data/male/mage_boots_alt1.json
+++ b/gamefilesflare/level/player/data/male/mage_boots_alt1.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_boots_alt1",
+ "file": "images/avatar/male/mage_boots_alt1.png"
+ },
"texturePack": {
"id": "m_mage_boots_alt1",
- "texture": {
- "id": "m_mage_boots_alt1",
- "file": "images/avatar/male/mage_boots_alt1.png"
- },
+ "texture": "m_mage_boots_alt1",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_boots_alt2.json b/gamefilesflare/level/player/data/male/mage_boots_alt2.json
index b64122c0..a0c83934 100755
--- a/gamefilesflare/level/player/data/male/mage_boots_alt2.json
+++ b/gamefilesflare/level/player/data/male/mage_boots_alt2.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_boots_alt2",
+ "file": "images/avatar/male/mage_boots_alt2.png"
+ },
"texturePack": {
"id": "m_mage_boots_alt2",
- "texture": {
- "id": "m_mage_boots_alt2",
- "file": "images/avatar/male/mage_boots_alt2.png"
- },
+ "texture": "m_mage_boots_alt2",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_hood.json b/gamefilesflare/level/player/data/male/mage_hood.json
index 2737ba8c..a12c61aa 100755
--- a/gamefilesflare/level/player/data/male/mage_hood.json
+++ b/gamefilesflare/level/player/data/male/mage_hood.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_hood",
+ "file": "images/avatar/male/mage_hood.png"
+ },
"texturePack": {
"id": "m_mage_hood",
- "texture": {
- "id": "m_mage_hood",
- "file": "images/avatar/male/mage_hood.png"
- },
+ "texture": "m_mage_hood",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_hood_alt1.json b/gamefilesflare/level/player/data/male/mage_hood_alt1.json
index f9d5b60c..d2fb81e7 100755
--- a/gamefilesflare/level/player/data/male/mage_hood_alt1.json
+++ b/gamefilesflare/level/player/data/male/mage_hood_alt1.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_hood_alt1",
+ "file": "images/avatar/male/mage_hood_alt1.png"
+ },
"texturePack": {
"id": "m_mage_hood_alt1",
- "texture": {
- "id": "m_mage_hood_alt1",
- "file": "images/avatar/male/mage_hood_alt1.png"
- },
+ "texture": "m_mage_hood_alt1",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_hood_alt2.json b/gamefilesflare/level/player/data/male/mage_hood_alt2.json
index ec623707..6a553c78 100755
--- a/gamefilesflare/level/player/data/male/mage_hood_alt2.json
+++ b/gamefilesflare/level/player/data/male/mage_hood_alt2.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_hood_alt2",
+ "file": "images/avatar/male/mage_hood_alt2.png"
+ },
"texturePack": {
"id": "m_mage_hood_alt2",
- "texture": {
- "id": "m_mage_hood_alt2",
- "file": "images/avatar/male/mage_hood_alt2.png"
- },
+ "texture": "m_mage_hood_alt2",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_skirt.json b/gamefilesflare/level/player/data/male/mage_skirt.json
index 38ffb533..f9f72e24 100755
--- a/gamefilesflare/level/player/data/male/mage_skirt.json
+++ b/gamefilesflare/level/player/data/male/mage_skirt.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_skirt",
+ "file": "images/avatar/male/mage_skirt.png"
+ },
"texturePack": {
"id": "m_mage_skirt",
- "texture": {
- "id": "m_mage_skirt",
- "file": "images/avatar/male/mage_skirt.png"
- },
+ "texture": "m_mage_skirt",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_skirt_alt1.json b/gamefilesflare/level/player/data/male/mage_skirt_alt1.json
index 78995463..4c89a17f 100755
--- a/gamefilesflare/level/player/data/male/mage_skirt_alt1.json
+++ b/gamefilesflare/level/player/data/male/mage_skirt_alt1.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_skirt_alt1",
+ "file": "images/avatar/male/mage_skirt_alt1.png"
+ },
"texturePack": {
"id": "m_mage_skirt_alt1",
- "texture": {
- "id": "m_mage_skirt_alt1",
- "file": "images/avatar/male/mage_skirt_alt1.png"
- },
+ "texture": "m_mage_skirt_alt1",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_skirt_alt2.json b/gamefilesflare/level/player/data/male/mage_skirt_alt2.json
index 439551d2..d1a055b7 100755
--- a/gamefilesflare/level/player/data/male/mage_skirt_alt2.json
+++ b/gamefilesflare/level/player/data/male/mage_skirt_alt2.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_skirt_alt2",
+ "file": "images/avatar/male/mage_skirt_alt2.png"
+ },
"texturePack": {
"id": "m_mage_skirt_alt2",
- "texture": {
- "id": "m_mage_skirt_alt2",
- "file": "images/avatar/male/mage_skirt_alt2.png"
- },
+ "texture": "m_mage_skirt_alt2",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_sleeves.json b/gamefilesflare/level/player/data/male/mage_sleeves.json
index 3341fae5..59f078cd 100755
--- a/gamefilesflare/level/player/data/male/mage_sleeves.json
+++ b/gamefilesflare/level/player/data/male/mage_sleeves.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_sleeves",
+ "file": "images/avatar/male/mage_sleeves.png"
+ },
"texturePack": {
"id": "m_mage_sleeves",
- "texture": {
- "id": "m_mage_sleeves",
- "file": "images/avatar/male/mage_sleeves.png"
- },
+ "texture": "m_mage_sleeves",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_sleeves_alt1.json b/gamefilesflare/level/player/data/male/mage_sleeves_alt1.json
index dd38d4b7..fc828731 100755
--- a/gamefilesflare/level/player/data/male/mage_sleeves_alt1.json
+++ b/gamefilesflare/level/player/data/male/mage_sleeves_alt1.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_sleeves_alt1",
+ "file": "images/avatar/male/mage_sleeves_alt1.png"
+ },
"texturePack": {
"id": "m_mage_sleeves_alt1",
- "texture": {
- "id": "m_mage_sleeves_alt1",
- "file": "images/avatar/male/mage_sleeves_alt1.png"
- },
+ "texture": "m_mage_sleeves_alt1",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_sleeves_alt2.json b/gamefilesflare/level/player/data/male/mage_sleeves_alt2.json
index e85dcfc5..04a346bb 100755
--- a/gamefilesflare/level/player/data/male/mage_sleeves_alt2.json
+++ b/gamefilesflare/level/player/data/male/mage_sleeves_alt2.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_sleeves_alt2",
+ "file": "images/avatar/male/mage_sleeves_alt2.png"
+ },
"texturePack": {
"id": "m_mage_sleeves_alt2",
- "texture": {
- "id": "m_mage_sleeves_alt2",
- "file": "images/avatar/male/mage_sleeves_alt2.png"
- },
+ "texture": "m_mage_sleeves_alt2",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_vest.json b/gamefilesflare/level/player/data/male/mage_vest.json
index 3544a29b..3d454390 100755
--- a/gamefilesflare/level/player/data/male/mage_vest.json
+++ b/gamefilesflare/level/player/data/male/mage_vest.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_vest",
+ "file": "images/avatar/male/mage_vest.png"
+ },
"texturePack": {
"id": "m_mage_vest",
- "texture": {
- "id": "m_mage_vest",
- "file": "images/avatar/male/mage_vest.png"
- },
+ "texture": "m_mage_vest",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_vest_alt1.json b/gamefilesflare/level/player/data/male/mage_vest_alt1.json
index dddc0f89..46eed09e 100755
--- a/gamefilesflare/level/player/data/male/mage_vest_alt1.json
+++ b/gamefilesflare/level/player/data/male/mage_vest_alt1.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_vest_alt1",
+ "file": "images/avatar/male/mage_vest_alt1.png"
+ },
"texturePack": {
"id": "m_mage_vest_alt1",
- "texture": {
- "id": "m_mage_vest_alt1",
- "file": "images/avatar/male/mage_vest_alt1.png"
- },
+ "texture": "m_mage_vest_alt1",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/mage_vest_alt2.json b/gamefilesflare/level/player/data/male/mage_vest_alt2.json
index 9ae615f6..a1686405 100755
--- a/gamefilesflare/level/player/data/male/mage_vest_alt2.json
+++ b/gamefilesflare/level/player/data/male/mage_vest_alt2.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_mage_vest_alt2",
+ "file": "images/avatar/male/mage_vest_alt2.png"
+ },
"texturePack": {
"id": "m_mage_vest_alt2",
- "texture": {
- "id": "m_mage_vest_alt2",
- "file": "images/avatar/male/mage_vest_alt2.png"
- },
+ "texture": "m_mage_vest_alt2",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/maul.json b/gamefilesflare/level/player/data/male/maul.json
index d64aaa0a..0116f310 100755
--- a/gamefilesflare/level/player/data/male/maul.json
+++ b/gamefilesflare/level/player/data/male/maul.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_maul",
+ "file": "images/avatar/male/maul.png"
+ },
"texturePack": {
"id": "m_maul",
- "texture": {
- "id": "m_maul",
- "file": "images/avatar/male/maul.png"
- },
+ "texture": "m_maul",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/plate_boots.json b/gamefilesflare/level/player/data/male/plate_boots.json
index cf7d23a0..a6da65e8 100755
--- a/gamefilesflare/level/player/data/male/plate_boots.json
+++ b/gamefilesflare/level/player/data/male/plate_boots.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_plate_boots",
+ "file": "images/avatar/male/plate_boots.png"
+ },
"texturePack": {
"id": "m_plate_boots",
- "texture": {
- "id": "m_plate_boots",
- "file": "images/avatar/male/plate_boots.png"
- },
+ "texture": "m_plate_boots",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/plate_cuirass.json b/gamefilesflare/level/player/data/male/plate_cuirass.json
index e1d026da..98fba39b 100755
--- a/gamefilesflare/level/player/data/male/plate_cuirass.json
+++ b/gamefilesflare/level/player/data/male/plate_cuirass.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_plate_cuirass",
+ "file": "images/avatar/male/plate_cuirass.png"
+ },
"texturePack": {
"id": "m_plate_cuirass",
- "texture": {
- "id": "m_plate_cuirass",
- "file": "images/avatar/male/plate_cuirass.png"
- },
+ "texture": "m_plate_cuirass",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/plate_gauntlets.json b/gamefilesflare/level/player/data/male/plate_gauntlets.json
index 784d6318..88a7de67 100755
--- a/gamefilesflare/level/player/data/male/plate_gauntlets.json
+++ b/gamefilesflare/level/player/data/male/plate_gauntlets.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_plate_gauntlets",
+ "file": "images/avatar/male/plate_gauntlets.png"
+ },
"texturePack": {
"id": "m_plate_gauntlets",
- "texture": {
- "id": "m_plate_gauntlets",
- "file": "images/avatar/male/plate_gauntlets.png"
- },
+ "texture": "m_plate_gauntlets",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/plate_greaves.json b/gamefilesflare/level/player/data/male/plate_greaves.json
index c3d622bd..57409691 100755
--- a/gamefilesflare/level/player/data/male/plate_greaves.json
+++ b/gamefilesflare/level/player/data/male/plate_greaves.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_plate_greaves",
+ "file": "images/avatar/male/plate_greaves.png"
+ },
"texturePack": {
"id": "m_plate_greaves",
- "texture": {
- "id": "m_plate_greaves",
- "file": "images/avatar/male/plate_greaves.png"
- },
+ "texture": "m_plate_greaves",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/plate_helm.json b/gamefilesflare/level/player/data/male/plate_helm.json
index 46093895..8203775a 100755
--- a/gamefilesflare/level/player/data/male/plate_helm.json
+++ b/gamefilesflare/level/player/data/male/plate_helm.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_plate_helm",
+ "file": "images/avatar/male/plate_helm.png"
+ },
"texturePack": {
"id": "m_plate_helm",
- "texture": {
- "id": "m_plate_helm",
- "file": "images/avatar/male/plate_helm.png"
- },
+ "texture": "m_plate_helm",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/reinforced_club.json b/gamefilesflare/level/player/data/male/reinforced_club.json
index b76e9369..9b3995e7 100755
--- a/gamefilesflare/level/player/data/male/reinforced_club.json
+++ b/gamefilesflare/level/player/data/male/reinforced_club.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_reinforced_club",
+ "file": "images/avatar/male/reinforced_club.png"
+ },
"texturePack": {
"id": "m_reinforced_club",
- "texture": {
- "id": "m_reinforced_club",
- "file": "images/avatar/male/reinforced_club.png"
- },
+ "texture": "m_reinforced_club",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/rod.json b/gamefilesflare/level/player/data/male/rod.json
index d21a2393..b11e4723 100755
--- a/gamefilesflare/level/player/data/male/rod.json
+++ b/gamefilesflare/level/player/data/male/rod.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_rod",
+ "file": "images/avatar/male/rod.png"
+ },
"texturePack": {
"id": "m_rod",
- "texture": {
- "id": "m_rod",
- "file": "images/avatar/male/rod.png"
- },
+ "texture": "m_rod",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/shield.json b/gamefilesflare/level/player/data/male/shield.json
index 50b66a40..53f9e366 100755
--- a/gamefilesflare/level/player/data/male/shield.json
+++ b/gamefilesflare/level/player/data/male/shield.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_shield",
+ "file": "images/avatar/male/shield.png"
+ },
"texturePack": {
"id": "m_shield",
- "texture": {
- "id": "m_shield",
- "file": "images/avatar/male/shield.png"
- },
+ "texture": "m_shield",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/shortbow.json b/gamefilesflare/level/player/data/male/shortbow.json
index dd76adda..e542183e 100755
--- a/gamefilesflare/level/player/data/male/shortbow.json
+++ b/gamefilesflare/level/player/data/male/shortbow.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_shortbow",
+ "file": "images/avatar/male/shortbow.png"
+ },
"texturePack": {
"id": "m_shortbow",
- "texture": {
- "id": "m_shortbow",
- "file": "images/avatar/male/shortbow.png"
- },
+ "texture": "m_shortbow",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/shortsword.json b/gamefilesflare/level/player/data/male/shortsword.json
index 45d26c72..1e5dd19b 100755
--- a/gamefilesflare/level/player/data/male/shortsword.json
+++ b/gamefilesflare/level/player/data/male/shortsword.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_shortsword",
+ "file": "images/avatar/male/shortsword.png"
+ },
"texturePack": {
"id": "m_shortsword",
- "texture": {
- "id": "m_shortsword",
- "file": "images/avatar/male/shortsword.png"
- },
+ "texture": "m_shortsword",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/slingshot.json b/gamefilesflare/level/player/data/male/slingshot.json
index f51600db..24eea941 100755
--- a/gamefilesflare/level/player/data/male/slingshot.json
+++ b/gamefilesflare/level/player/data/male/slingshot.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_slingshot",
+ "file": "images/avatar/male/slingshot.png"
+ },
"texturePack": {
"id": "m_slingshot",
- "texture": {
- "id": "m_slingshot",
- "file": "images/avatar/male/slingshot.png"
- },
+ "texture": "m_slingshot",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/smith_hammer.json b/gamefilesflare/level/player/data/male/smith_hammer.json
index fdf007b7..0a8747fe 100755
--- a/gamefilesflare/level/player/data/male/smith_hammer.json
+++ b/gamefilesflare/level/player/data/male/smith_hammer.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_smith_hammer",
+ "file": "images/avatar/male/smith_hammer.png"
+ },
"texturePack": {
"id": "m_smith_hammer",
- "texture": {
- "id": "m_smith_hammer",
- "file": "images/avatar/male/smith_hammer.png"
- },
+ "texture": "m_smith_hammer",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/staff.json b/gamefilesflare/level/player/data/male/staff.json
index 0b15beae..4703abc6 100755
--- a/gamefilesflare/level/player/data/male/staff.json
+++ b/gamefilesflare/level/player/data/male/staff.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_staff",
+ "file": "images/avatar/male/staff.png"
+ },
"texturePack": {
"id": "m_staff",
- "texture": {
- "id": "m_staff",
- "file": "images/avatar/male/staff.png"
- },
+ "texture": "m_staff",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/steel_armor.json b/gamefilesflare/level/player/data/male/steel_armor.json
index 40bb4b8e..37fa0967 100755
--- a/gamefilesflare/level/player/data/male/steel_armor.json
+++ b/gamefilesflare/level/player/data/male/steel_armor.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_steel_armor",
+ "file": "images/avatar/male/steel_armor.png"
+ },
"texturePack": {
"id": "m_steel_armor",
- "texture": {
- "id": "m_steel_armor",
- "file": "images/avatar/male/steel_armor.png"
- },
+ "texture": "m_steel_armor",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/wand.json b/gamefilesflare/level/player/data/male/wand.json
index 43db16bb..e452572d 100755
--- a/gamefilesflare/level/player/data/male/wand.json
+++ b/gamefilesflare/level/player/data/male/wand.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_wand",
+ "file": "images/avatar/male/wand.png"
+ },
"texturePack": {
"id": "m_wand",
- "texture": {
- "id": "m_wand",
- "file": "images/avatar/male/wand.png"
- },
+ "texture": "m_wand",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/war_hammer.json b/gamefilesflare/level/player/data/male/war_hammer.json
index 93fc1c02..27211db7 100755
--- a/gamefilesflare/level/player/data/male/war_hammer.json
+++ b/gamefilesflare/level/player/data/male/war_hammer.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_war_hammer",
+ "file": "images/avatar/male/war_hammer.png"
+ },
"texturePack": {
"id": "m_war_hammer",
- "texture": {
- "id": "m_war_hammer",
- "file": "images/avatar/male/war_hammer.png"
- },
+ "texture": "m_war_hammer",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/level/player/data/male/zweihander.json b/gamefilesflare/level/player/data/male/zweihander.json
index b186d204..65d4c7c5 100755
--- a/gamefilesflare/level/player/data/male/zweihander.json
+++ b/gamefilesflare/level/player/data/male/zweihander.json
@@ -1,10 +1,11 @@
{
+ "texture": {
+ "id": "m_zweihander",
+ "file": "images/avatar/male/zweihander.png"
+ },
"texturePack": {
"id": "m_zweihander",
- "texture": {
- "id": "m_zweihander",
- "file": "images/avatar/male/zweihander.png"
- },
+ "texture": "m_zweihander",
"invertOffsets": true,
"absoluteOffsets": true,
"rects": [
diff --git a/gamefilesflare/res/level/actions/stashClick.json b/gamefilesflare/res/level/actions/stashClick.json
index 21b73a51..dc1927cb 100755
--- a/gamefilesflare/res/level/actions/stashClick.json
+++ b/gamefilesflare/res/level/actions/stashClick.json
@@ -15,7 +15,7 @@
"param1": "%currentLevel.currentPlayer.hasSelectedItem%",
"param2": true,
"then": "updateSelectedItem",
- "else": "updateStash|$.game.var.stashPosX + 1||$.game.var.stashPosY + 1|Text"
+ "else": "updateStash|$.#stashPosX + 1||$.#stashPosY + 1|Text"
}
]
}
diff --git a/gamefilesflare/ui/credits.json b/gamefilesflare/ui/credits.json
index 85121aad..e6f65b99 100755
--- a/gamefilesflare/ui/credits.json
+++ b/gamefilesflare/ui/credits.json
@@ -4,7 +4,7 @@
"id": "credits",
"ignorePrevious": true
},
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "back" }
diff --git a/gamefilesflare/ui/dataMissing.json b/gamefilesflare/ui/dataMissing.json
index 85e9af5b..48820416 100755
--- a/gamefilesflare/ui/dataMissing.json
+++ b/gamefilesflare/ui/dataMissing.json
@@ -1,5 +1,5 @@
{
- "keyboard": {
+ "inputEvent": {
"key": ["enter", " ", "esc"],
"action": { "name": "game.close" }
},
diff --git a/gamefilesflare/ui/level/char/panel.json b/gamefilesflare/ui/level/char/panel.json
index 936a81ef..e65732d7 100755
--- a/gamefilesflare/ui/level/char/panel.json
+++ b/gamefilesflare/ui/level/char/panel.json
@@ -462,7 +462,7 @@
"horizontalSpaceOffset": 2,
"verticalAlign": "center"
},
- "keyboard": [
+ "inputEvent": [
{ "key": "+", "action": "automapZoomIn" },
{ "key": "-", "action": "automapZoomOut" },
{ "key": "1", "action": "useBelt1Item" },
diff --git a/gamefilesflare/ui/level/menu/common.json b/gamefilesflare/ui/level/menu/common.json
index f8bcbf20..c1268552 100755
--- a/gamefilesflare/ui/level/menu/common.json
+++ b/gamefilesflare/ui/level/menu/common.json
@@ -14,7 +14,7 @@
}
],
"load": "ui/level/char/disableKeys.json",
- "keyboard": [
+ "inputEvent": [
{
"key": ["enter", " "],
"action": "focus.click"
diff --git a/gamefilesflare/ui/level/menu/game2.json b/gamefilesflare/ui/level/menu/game2.json
index e92bafe1..f27f2f9c 100755
--- a/gamefilesflare/ui/level/menu/game2.json
+++ b/gamefilesflare/ui/level/menu/game2.json
@@ -93,7 +93,7 @@
]
}
],
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateAudioDownKeyboardShortcut"
@@ -238,7 +238,7 @@
{ "name": "drawable.anchor", "id": "pent2", "idAnchor": "optbar1", "anchor": "right" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateAudioDownKeyboardShortcut"
@@ -268,7 +268,7 @@
{ "name": "drawable.anchor", "id": "pent2", "idAnchor": "optbar2", "anchor": "right" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateSoundDownKeyboardShortcut"
@@ -298,7 +298,7 @@
{ "name": "drawable.anchor", "id": "pent2", "idAnchor": "optbar3", "anchor": "right" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateGammaDownKeyboardShortcut"
diff --git a/gamefilesflare/ui/loadMain2.json b/gamefilesflare/ui/loadMain2.json
index 26042321..f2c82707 100755
--- a/gamefilesflare/ui/loadMain2.json
+++ b/gamefilesflare/ui/loadMain2.json
@@ -1,7 +1,4 @@
{
- "action": [
- { "name": "shader.load", "id": "highlight", "fragmentFile": "res/shaders/sprite/highlight.frag" },
- { "name": "game.setShader", "shader": "highlight", "gameShader": "sprite" }
- ],
+ "load": "res/shaders/sprite/highlight.json",
"load": "ui/loadMain.json"
}
\ No newline at end of file
diff --git a/gamefilesflare/ui/mainMenu.json b/gamefilesflare/ui/mainMenu.json
index 95bbdf01..b81eea6e 100755
--- a/gamefilesflare/ui/mainMenu.json
+++ b/gamefilesflare/ui/mainMenu.json
@@ -58,7 +58,7 @@
"loop": true,
"play": true
},
- "keyboard": [
+ "inputEvent": [
{
"key": ["enter", " "],
"action": "focus.click"
diff --git a/gamefilesflare/ui/singlePlayer/main.json b/gamefilesflare/ui/singlePlayer/main.json
index f6230133..1e078e77 100755
--- a/gamefilesflare/ui/singlePlayer/main.json
+++ b/gamefilesflare/ui/singlePlayer/main.json
@@ -3,7 +3,7 @@
{ "name": "resource.add", "id": "singlePlayer", "ignorePrevious": true },
{ "name": "game.fadeIn" }
],
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "cancel" }
diff --git a/gamefilesflare/ui/singlePlayer/select.json b/gamefilesflare/ui/singlePlayer/select.json
index d00790f7..b3f46f24 100755
--- a/gamefilesflare/ui/singlePlayer/select.json
+++ b/gamefilesflare/ui/singlePlayer/select.json
@@ -14,7 +14,7 @@
"action": { "name": "menu.moveScrollbar", "idMenu": "menuLoadGame", "idScrollbar": "sb_thumb", "idAnchorTo": "btnDrag", "range": 133 }
}
],
- "keyboard": {
+ "inputEvent": {
"key": "delete",
"action": { "name": "button.click", "id": "delete" }
},
@@ -229,7 +229,7 @@
{ "name": "button.enable", "id": "btnDown" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["up", "w"],
"action": [
diff --git a/gamefileshf/level/data/l5/l5s.json b/gamefileshf/level/data/l5/l5s.json
deleted file mode 100755
index 2a8bc236..00000000
--- a/gamefileshf/level/data/l5/l5s.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "texturePack": {
- "id": "l5s",
- "file": "Nlevels/L5Data/L5S.CEL",
- "imageContainer": "l5s",
- "palette": "{1}",
- "textureIndexes": [
- [9999, 0],
- ]
- }
-}
\ No newline at end of file
diff --git a/gamefileshf/level/default/crypt.json b/gamefileshf/level/default/crypt.json
index 904d81a5..d6f0af05 100755
--- a/gamefileshf/level/default/crypt.json
+++ b/gamefileshf/level/default/crypt.json
@@ -23,15 +23,36 @@
"fromId": "level"
},
"load": ["level/data/l5/l5s.json", "level"],
+ "imageContainer": {
+ "id": "l5",
+ "file": "Nlevels/L5Data/L5.CEL"
+ },
+ "texturePack": [
+ {
+ "id": "l5",
+ "imageContainer": "l5",
+ "palette": "level",
+ "min": "Nlevels/L5Data/L5.MIN",
+ "minBlocks": 10
+ },
+ {
+ "id": "l5_top",
+ "imageContainer": "l5",
+ "palette": "level",
+ "min": "Nlevels/L5Data/L5.MIN",
+ "minBlocks": 10,
+ "topTiles": true
+ }
+ ],
"level": {
"id": "level",
- "palette": "level",
- "file": "Nlevels/L5Data/L5.CEL",
- "layers": { "index": 0, "texturePack": "l5s" },
+ "layers": [
+ { "index": 0, "texturePack": "l5" },
+ { "index": 0, "texturePack": "l5_top" },
+ { "index": 0, "texturePack": "l5s" }
+ ],
"outOfBoundsTile": 21,
"til": "Nlevels/L5Data/L5.TIL",
- "min": "Nlevels/L5Data/L5.MIN",
- "minBlocks": 10,
"flags": "Nlevels/L5Data/L5.SOL",
"defaultLight": 255
}
diff --git a/gamefileshf/level/default/nest.json b/gamefileshf/level/default/nest.json
index 1f88790f..5280f62a 100755
--- a/gamefileshf/level/default/nest.json
+++ b/gamefileshf/level/default/nest.json
@@ -22,14 +22,35 @@
"id": "colorCycle",
"fromId": "level"
},
+ "imageContainer": {
+ "id": "l6",
+ "file": "Nlevels/L6Data/L6.CEL"
+ },
+ "texturePack": [
+ {
+ "id": "l6",
+ "imageContainer": "l6",
+ "palette": "level",
+ "min": "Nlevels/L6Data/L6.MIN",
+ "minBlocks": 10
+ },
+ {
+ "id": "l6_top",
+ "imageContainer": "l6",
+ "palette": "level",
+ "min": "Nlevels/L6Data/L6.MIN",
+ "minBlocks": 10,
+ "topTiles": true
+ }
+ ],
"level": {
"id": "level",
- "palette": "level",
- "file": "Nlevels/L6Data/L6.CEL",
+ "layers": [
+ { "index": 0, "texturePack": "l6" },
+ { "index": 0, "texturePack": "l6_top" }
+ ],
"outOfBoundsTile": 7,
"til": "Nlevels/L6Data/L6.TIL",
- "min": "Nlevels/L6Data/L6.MIN",
- "minBlocks": 10,
"flags": "Nlevels/L6Data/L6.SOL",
"defaultLight": 255
}
diff --git a/gamefileshf/level/default/town_hf.json b/gamefileshf/level/default/town_hf.json
index 321a072d..3bb17e7a 100755
--- a/gamefileshf/level/default/town_hf.json
+++ b/gamefileshf/level/default/town_hf.json
@@ -13,13 +13,34 @@
}
}
},
+ "imageContainer": {
+ "id": "town",
+ "file": "Nlevels/TownData/Town.CEL"
+ },
+ "texturePack": [
+ {
+ "id": "town",
+ "imageContainer": "town",
+ "palette": "level",
+ "min": "Nlevels/TownData/Town.MIN",
+ "minBlocks": 16
+ },
+ {
+ "id": "town_top",
+ "imageContainer": "town",
+ "palette": "level",
+ "min": "Nlevels/TownData/Town.MIN",
+ "minBlocks": 16,
+ "topTiles": true
+ }
+ ],
"level": {
"id": "level",
- "palette": "level",
- "file": "Nlevels/TownData/Town.CEL",
+ "layers": [
+ { "index": 0, "texturePack": "town" },
+ { "index": 0, "texturePack": "town_top" }
+ ],
"til": "Nlevels/TownData/Town.TIL",
- "min": "Nlevels/TownData/Town.MIN",
- "minBlocks": 16,
"flags": "Nlevels/TownData/Town.SOL",
"defaultLight": 255
}
diff --git a/gamefileshf/level/player/Barbarian/class.json b/gamefileshf/level/player/Barbarian/class.json
index a2964dac..c7a650d3 100755
--- a/gamefileshf/level/player/Barbarian/class.json
+++ b/gamefileshf/level/player/Barbarian/class.json
@@ -95,10 +95,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefileshf/level/player/Bard/class.json b/gamefileshf/level/player/Bard/class.json
index c5ea717f..9b6ce1db 100755
--- a/gamefileshf/level/player/Bard/class.json
+++ b/gamefileshf/level/player/Bard/class.json
@@ -92,10 +92,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefileshf/level/player/Monk/class.json b/gamefileshf/level/player/Monk/class.json
index e1740064..55efaf09 100755
--- a/gamefileshf/level/player/Monk/class.json
+++ b/gamefileshf/level/player/Monk/class.json
@@ -92,10 +92,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefileshf/level/player/Sorceror/class.json b/gamefileshf/level/player/Sorceror/class.json
index e5455bf9..8612b488 100755
--- a/gamefileshf/level/player/Sorceror/class.json
+++ b/gamefileshf/level/player/Sorceror/class.json
@@ -92,10 +92,8 @@
"levelChange": "updateCharPoints"
},
"sounds": [
- { "index": 0, "id": "walk" },
- { "index": 1, "id": "die" }
- ],
- "walkSound": 0,
- "dieSound": 1
+ { "id": "walk", "sound": "walk" },
+ { "id": "die", "sound": "die" }
+ ]
}
}
\ No newline at end of file
diff --git a/gamefileshf/ui/betaNotSupported.json b/gamefileshf/ui/betaNotSupported.json
index 0adebb23..1153f920 100755
--- a/gamefileshf/ui/betaNotSupported.json
+++ b/gamefileshf/ui/betaNotSupported.json
@@ -1,5 +1,5 @@
{
- "keyboard": {
+ "inputEvent": {
"key": ["enter", " ", "esc"],
"action": { "name": "game.close" }
},
diff --git a/gamefileshf/ui/dataMissing.json b/gamefileshf/ui/dataMissing.json
index da511d42..0bef0bcf 100755
--- a/gamefileshf/ui/dataMissing.json
+++ b/gamefileshf/ui/dataMissing.json
@@ -1,5 +1,5 @@
{
- "keyboard": {
+ "inputEvent": {
"key": ["enter", " ", "esc"],
"action": { "name": "game.close" }
},
diff --git a/gamefileshf/ui/level/menu/common.json b/gamefileshf/ui/level/menu/common.json
index c18b16c4..edd8ad20 100755
--- a/gamefileshf/ui/level/menu/common.json
+++ b/gamefileshf/ui/level/menu/common.json
@@ -14,7 +14,7 @@
}
],
"load": "ui/level/char/disableKeys.json",
- "keyboard": [
+ "inputEvent": [
{
"key": ["enter", " "],
"action": "focus.click"
@@ -37,17 +37,24 @@
"action": { "name": "button.click", "id": "menu" }
}
],
+ "imageContainer": [
+ {
+ "id": "hf_logo3",
+ "file": "data/hf_logo3.CEL"
+ },
+ {
+ "file": "data/PentSpin.cel"
+ }
+ ],
"texturePack": [
{
"id": "hf_logo3",
"imageContainer": "hf_logo3",
- "file": "data/hf_logo3.CEL",
"palette": "town"
},
{
"id": "PentSpin",
"imageContainer": "PentSpin",
- "file": "data/PentSpin.cel",
"palette": "town"
}
],
diff --git a/gamefileshf/ui/level/menu/game2.json b/gamefileshf/ui/level/menu/game2.json
index 5624aadb..a266150d 100755
--- a/gamefileshf/ui/level/menu/game2.json
+++ b/gamefileshf/ui/level/menu/game2.json
@@ -52,7 +52,7 @@
{ "name": "drawable.anchor", "id": "option4", "idAnchor": "optbar4", "anchor": "left", "offset": [29, 0] }
]
},
- { "name": "load", "file": "level/player/updateSpeed.json" }
+ "updatePlayerSpeed"
]
},
{
@@ -120,7 +120,7 @@
]
}
],
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateAudioDownKeyboardShortcut"
@@ -299,7 +299,7 @@
{ "name": "drawable.anchor", "id": "pent2", "idAnchor": "optbar1", "anchor": "right" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateAudioDownKeyboardShortcut"
@@ -329,7 +329,7 @@
{ "name": "drawable.anchor", "id": "pent2", "idAnchor": "optbar2", "anchor": "right" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateSoundDownKeyboardShortcut"
@@ -359,7 +359,7 @@
{ "name": "drawable.anchor", "id": "pent2", "idAnchor": "optbar3", "anchor": "right" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateGammaDownKeyboardShortcut"
@@ -389,7 +389,7 @@
{ "name": "drawable.anchor", "id": "pent2", "idAnchor": "optbar4", "anchor": "right" },
{ "name": "loadJson",
"json": {
- "keyboard": [
+ "inputEvent": [
{
"key": ["a", "left"],
"action": "updateJogLeftKeyboardShortcut"
diff --git a/gamefileshf/ui/mainMenu.json b/gamefileshf/ui/mainMenu.json
index d6a39395..f64d0f9c 100755
--- a/gamefileshf/ui/mainMenu.json
+++ b/gamefileshf/ui/mainMenu.json
@@ -42,7 +42,7 @@
"loop": true,
"play": true
},
- "keyboard": [
+ "inputEvent": [
{
"key": ["enter", " "],
"action": "focus.click"
@@ -75,23 +75,31 @@
}
}
],
- "texture": {
- "id": "mainmenu",
- "file": "ui_art/mainmenu.pcx"
- },
+ "texture": [
+ {
+ "id": "mainmenu",
+ "file": "ui_art/mainmenu.pcx"
+ },
+ {
+ "id": "smlogo",
+ "file": "ui_art/hf_logo2.pcx",
+ "mask": "0x000000"
+ },
+ {
+ "id": "focus42",
+ "file": "ui_art/focus42.pcx",
+ "mask": "0x00FF00"
+ }
+ ],
"texturePack": [
{
"id": "smlogo",
"texture": "smlogo",
- "file": "ui_art/hf_logo2.pcx",
- "mask": "0x000000",
"frames": 16
},
{
"id": "focus42",
"texture": "focus42",
- "file": "ui_art/focus42.pcx",
- "mask": "0x00FF00",
"frames": 8
}
],
diff --git a/gamefileshf/ui/singlePlayer/main.json b/gamefileshf/ui/singlePlayer/main.json
index 82b9911e..447fee48 100755
--- a/gamefileshf/ui/singlePlayer/main.json
+++ b/gamefileshf/ui/singlePlayer/main.json
@@ -3,7 +3,7 @@
{ "name": "resource.add", "id": "singlePlayer", "ignorePrevious": true },
{ "name": "game.fadeIn" }
],
- "keyboard": [
+ "inputEvent": [
{
"key": "esc",
"action": { "name": "button.click", "id": "cancel" }
diff --git a/gamefileshf/ui/singlePlayer/newHero.json b/gamefileshf/ui/singlePlayer/newHero.json
index 2c6858a4..3c0d828b 100755
--- a/gamefileshf/ui/singlePlayer/newHero.json
+++ b/gamefileshf/ui/singlePlayer/newHero.json
@@ -34,7 +34,7 @@
"position": [424, 256],
"anchor": "none",
"onClick": [
- { "name": "sound.play", "id": "titlemov" },
+ "focusSound",
{ "name": "variable.set", "key": "charClass", "value": "Warrior" },
{ "name": "load", "file": "ui/singlePlayer/setPlayerImage.json" },
{ "name": "text.setText", "id": "txtLevel", "text": "1" },
@@ -56,7 +56,7 @@
"position": [425, 282],
"anchor": "none",
"onClick": [
- { "name": "sound.play", "id": "titlemov" },
+ "focusSound",
{ "name": "variable.set", "key": "charClass", "value": "Rogue" },
{ "name": "load", "file": "ui/singlePlayer/setPlayerImage.json" },
{ "name": "text.setText", "id": "txtLevel", "text": "1" },
@@ -78,7 +78,7 @@
"position": [424, 308],
"anchor": "none",
"onClick": [
- { "name": "sound.play", "id": "titlemov" },
+ "focusSound",
{ "name": "variable.set", "key": "charClass", "value": "Sorceror" },
{ "name": "load", "file": "ui/singlePlayer/setPlayerImage.json" },
{ "name": "text.setText", "id": "txtLevel", "text": "1" },
@@ -100,7 +100,7 @@
"position": [424, 334],
"anchor": "none",
"onClick": [
- { "name": "sound.play", "id": "titlemov" },
+ "focusSound",
{ "name": "variable.set", "key": "charClass", "value": "Monk" },
{ "name": "load", "file": "ui/singlePlayer/setPlayerImage.json" },
{ "name": "text.setText", "id": "txtLevel", "text": "1" },
@@ -122,7 +122,7 @@
"position": [424, 363],
"anchor": "none",
"onClick": [
- { "name": "sound.play", "id": "titlemov" },
+ "focusSound",
{ "name": "variable.set", "key": "charClass", "value": "Bard" },
{ "name": "load", "file": "ui/singlePlayer/setPlayerImage.json" },
{ "name": "text.setText", "id": "txtLevel", "text": "1" },
@@ -144,7 +144,7 @@
"position": [424, 387],
"anchor": "none",
"onClick": [
- { "name": "sound.play", "id": "titlemov" },
+ "focusSound",
{ "name": "variable.set", "key": "charClass", "value": "Barbarian" },
{ "name": "load", "file": "ui/singlePlayer/setPlayerImage.json" },
{ "name": "text.setText", "id": "txtLevel", "text": "1" },
diff --git a/gamefileshf/ui/splashScreen2.json b/gamefileshf/ui/splashScreen.json
old mode 100755
new mode 100644
similarity index 93%
rename from gamefileshf/ui/splashScreen2.json
rename to gamefileshf/ui/splashScreen.json
index 153f338c..c4dbb8a7
--- a/gamefileshf/ui/splashScreen2.json
+++ b/gamefileshf/ui/splashScreen.json
@@ -3,16 +3,18 @@
"name": "resource.add",
"id": "splashScreen"
},
- "keyboard": {
+ "inputEvent": {
"key": ["enter", "esc", " "],
"action": { "name": "button.click", "id": "skip" }
},
- "texturePack": {
- "id": "hf_logo1",
- "imageContainer": "hf_logo1",
+ "imageContainer": {
"file": "ui_art/hf_logo1.pcx",
"frames": 16
},
+ "texturePack": {
+ "id": "hf_logo1",
+ "imageContainer": "hf_logo1"
+ },
"animation": {
"id": "title",
"texturePack": "hf_logo1",
diff --git a/gamefileshf/ui/support.json b/gamefileshf/ui/support.json
index b419f058..c2009bcf 100755
--- a/gamefileshf/ui/support.json
+++ b/gamefileshf/ui/support.json
@@ -5,7 +5,7 @@
"ignorePrevious": true
},
"cursor": null,
- "keyboard": {
+ "inputEvent": {
"key": ["enter", "esc", " "],
"action": { "name": "button.click", "id": "back" }
},
diff --git a/src/Actions/ActAction.h b/src/Actions/ActAction.h
index 306c4296..ed78ab6f 100755
--- a/src/Actions/ActAction.h
+++ b/src/Actions/ActAction.h
@@ -3,7 +3,6 @@
#include "Action.h"
#include "Game.h"
#include
-#include
class ActActionSet : public Action
{
@@ -12,7 +11,7 @@ class ActActionSet : public Action
std::shared_ptr action;
public:
- ActActionSet(const std::string& key_, const std::shared_ptr& action_)
+ ActActionSet(const std::string_view key_, const std::shared_ptr& action_)
: key(key_), action(action_) {}
bool execute(Game& game) override
diff --git a/src/Actions/ActAnimation.h b/src/Actions/ActAnimation.h
index 80161ac5..2413b281 100755
--- a/src/Actions/ActAnimation.h
+++ b/src/Actions/ActAnimation.h
@@ -9,9 +9,11 @@ class ActAnimationPause : public Action
private:
std::string id;
bool pause;
+ bool reset;
public:
- ActAnimationPause(const std::string& id_, bool pause_) : id(id_), pause(pause_) {}
+ ActAnimationPause(const std::string_view id_, bool pause_, bool reset_)
+ : id(id_), pause(pause_), reset(reset_) {}
bool execute(Game& game) override
{
@@ -19,6 +21,11 @@ class ActAnimationPause : public Action
if (animation != nullptr)
{
animation->Pause(pause);
+ if (reset == true)
+ {
+ animation->reset();
+ animation->updateTexture();
+ }
}
return true;
}
@@ -37,8 +44,8 @@ class ActAnimationSetAnimation : public Action
bool setCompositeTexture;
public:
- ActAnimationSetAnimation(const std::string& id_,
- const std::string& idTexturePack_, int32_t groupIdx_, int32_t directionIdx_,
+ ActAnimationSetAnimation(const std::string_view id_,
+ const std::string_view idTexturePack_, int32_t groupIdx_, int32_t directionIdx_,
sf::Time refresh_, bool resetAnimation_, bool updateAnimationType_,
bool setCompositeTexture_) : id(id_), idTexturePack(idTexturePack_),
groupIdx(groupIdx_), directionIdx(directionIdx_), refresh(refresh_),
@@ -100,7 +107,7 @@ class ActAnimationSetRefresh : public Action
sf::Time refresh;
public:
- ActAnimationSetRefresh(const std::string& id_, sf::Time refresh_)
+ ActAnimationSetRefresh(const std::string_view id_, sf::Time refresh_)
: id(id_), refresh(refresh_) {}
bool execute(Game& game) override
diff --git a/src/Actions/ActAudio.h b/src/Actions/ActAudio.h
index c0cbba8f..d498f314 100755
--- a/src/Actions/ActAudio.h
+++ b/src/Actions/ActAudio.h
@@ -2,7 +2,21 @@
#include "Action.h"
#include "Game.h"
-#include
+
+class ActAudioDelete : public Action
+{
+private:
+ std::string id;
+
+public:
+ ActAudioDelete(const std::string_view id_) : id(id_) {}
+
+ bool execute(Game& game) override
+ {
+ game.Resources().deleteSong(id);
+ return true;
+ }
+};
class ActAudioPause : public Action
{
@@ -10,7 +24,7 @@ class ActAudioPause : public Action
std::string id;
public:
- ActAudioPause(const std::string& id_) : id(id_) {}
+ ActAudioPause(const std::string_view id_) : id(id_) {}
bool execute(Game& game) override
{
@@ -43,7 +57,7 @@ class ActAudioPlay : public Action
bool hasLoop{ false };
public:
- ActAudioPlay(const std::string& id_, const Variable& volume_,
+ ActAudioPlay(const std::string_view id_, const Variable& volume_,
bool clear_) : id(id_), volume(volume_), clear(clear_) {}
void setLoop(bool loop_) noexcept
@@ -71,7 +85,7 @@ class ActAudioPlay : public Action
song->setLoop(true);
}
}
- auto vol = game.getVarOrProp(volume, game.SoundVolume());
+ auto vol = game.getVarOrProp(volume, game.MusicVolume());
song->setVolume((float)vol);
if (song->getStatus() != sf::Music::Playing ||
@@ -108,7 +122,7 @@ class ActAudioSeek : public Action
sf::Time time;
public:
- ActAudioSeek(const std::string& id_, const sf::Time& time_) : id(id_), time(time_) {}
+ ActAudioSeek(const std::string_view id_, sf::Time time_) : id(id_), time(time_) {}
bool execute(Game& game) override
{
@@ -128,7 +142,7 @@ class ActAudioSetVolume : public Action
Variable volume;
public:
- ActAudioSetVolume(const std::string& id_, const Variable& volume_)
+ ActAudioSetVolume(const std::string_view id_, const Variable& volume_)
: id(id_), volume(volume_) {}
bool execute(Game& game) override
@@ -153,7 +167,7 @@ class ActAudioStop : public Action
std::string id;
public:
- ActAudioStop(const std::string& id_) : id(id_) {}
+ ActAudioStop(const std::string_view id_) : id(id_) {}
bool execute(Game& game) override
{
diff --git a/src/Actions/ActButton.h b/src/Actions/ActButton.h
index 9b2bd940..7268f685 100755
--- a/src/Actions/ActButton.h
+++ b/src/Actions/ActButton.h
@@ -3,7 +3,6 @@
#include "Action.h"
#include "Button.h"
#include "Game.h"
-#include
class ActButtonClick : public Action
{
@@ -12,7 +11,7 @@ class ActButtonClick : public Action
bool playSound;
public:
- ActButtonClick(const std::string& id_, bool playSound_)
+ ActButtonClick(const std::string_view id_, bool playSound_)
: id(id_), playSound(playSound_) {}
bool execute(Game& game) override
@@ -33,7 +32,7 @@ class ActButtonEnable : public Action
bool enable;
public:
- ActButtonEnable(const std::string& id_, bool enable_)
+ ActButtonEnable(const std::string_view id_, bool enable_)
: id(id_), enable(enable_) {}
bool execute(Game& game) noexcept override
@@ -47,6 +46,27 @@ class ActButtonEnable : public Action
}
};
+class ActButtonRightClick : public Action
+{
+private:
+ std::string id;
+ bool playSound;
+
+public:
+ ActButtonRightClick(const std::string_view id_, bool playSound_)
+ : id(id_), playSound(playSound_) {}
+
+ bool execute(Game& game) override
+ {
+ auto button = game.Resources().getDrawable