From c34aee0bcca6273eac07f3c568949805867fe8a2 Mon Sep 17 00:00:00 2001 From: dgengin Date: Sat, 2 Jan 2021 14:53:58 +0000 Subject: [PATCH] - refactor game to use DGEngine core - add FileBytes resource type - add Shape UIObject - add action to delete audio - add bindWhenHidden property to BindableText - add portable mode - add rightClick actions to Button - add scale4xhq and xbrz4x shaders - add support for BitmapFontTexturePacks with more than 256 chars - add vcpkg port for physfs and sfml - add x64 to project - fix errors - load grayscale palette on error - override SFML wave implementation with one using dr_wav (faster) - refactoring to remove composite element parsing - remove android build support - remove rectpack2D - rename Keyboard to InputEvent - set default texturePack directions to 1 - setSmooth textures - support for utf8 in FileUtils - support for utf8 strings in BitmapText and StringText - update gamefiles - update to new lighting system using circles and BlendMode - use more c++20 - use string_view in parsers --- .editorconfig | 2 +- .github/workflows/main.yml | 23 +- .gitignore | 5 +- BUILD.txt | 2 +- CMakeLists.txt | 69 +- DGEngine.sln | 2 +- LICENSE.Zlib.txt | 2 +- LICENSE.txt | 16 +- DGEngine.vcxproj => Project.vcxproj | 345 +- android/.gitignore | 7 - android/AndroidManifest.xml | 26 - android/BUILD.txt | 36 - android/jni/.gitignore | 4 - android/jni/Android.mk | 388 - android/jni/Application.mk | 8 - android/res/drawable-mdpi/logo.png | Bin 2949 -> 0 bytes android/res/values/strings.xml | 4 - gamefilesd/level/afterLevelLoad.json | 3 +- gamefilesd/level/data/l1/l1_big.json | 28 - gamefilesd/level/data/l1/l1s.json | 28 - gamefilesd/level/data/l2/l2s.json | 54 - gamefilesd/level/default/catacombs.json | 77 +- gamefilesd/level/default/caves.json | 28 +- gamefilesd/level/default/dungeon.json | 57 +- gamefilesd/level/default/dungeon_big.json | 14 - gamefilesd/level/default/hell.json | 28 +- gamefilesd/level/default/town.json | 28 +- gamefilesd/level/keys.json | 34 +- gamefilesd/level/map/l1/monsters2.json | 2 +- .../level/map/town/playerTextureFiles.json | 32 +- .../map/town/playerTextureFilesBeta.json | 31 +- gamefilesd/level/player/Rogue/class.json | 8 +- gamefilesd/level/player/Sorceror/class.json | 8 +- gamefilesd/level/player/Warrior/class.json | 8 +- gamefilesd/level/saveGame.json | 6 +- gamefilesd/res/actions.json | 10 + gamefilesd/res/fonts.json | 143 +- gamefilesd/res/level/actions/beltItem.json | 2 +- gamefilesd/res/level/actions/bodyItem.json | 2 +- gamefilesd/res/level/actions/msgBox.json | 2 +- .../res/level/actions/playerBodyHands.json | 4 +- gamefilesd/res/level/actions/stashClick.json | 2 +- gamefilesd/res/level/actions/stashItem.json | 3 +- gamefilesd/res/level/fonts.json | 67 +- gamefilesd/res/shaders/game/README.txt | 3 + gamefilesd/res/shaders/game/grain.json | 8 + gamefilesd/res/shaders/game/grayscale.json | 8 + gamefilesd/res/shaders/game/heavybloom.frag | 30 + gamefilesd/res/shaders/game/heavybloom.json | 9 + gamefilesd/res/shaders/game/heavybloom.vert | 5 + gamefilesd/res/shaders/game/lanczos6tap.frag | 76 + gamefilesd/res/shaders/game/lanczos6tap.json | 9 + gamefilesd/res/shaders/game/lanczos6tap.vert | 5 + gamefilesd/res/shaders/game/pixelateFade.json | 8 + gamefilesd/res/shaders/game/scale4xhq.frag | 61 + gamefilesd/res/shaders/game/scale4xhq.json | 9 + gamefilesd/res/shaders/game/scale4xhq.vert | 24 + gamefilesd/res/shaders/game/simplebloom.frag | 30 + gamefilesd/res/shaders/game/simplebloom.json | 9 + gamefilesd/res/shaders/game/simplebloom.vert | 5 + gamefilesd/res/shaders/game/swirl.frag | 3 +- gamefilesd/res/shaders/game/swirl.json | 8 + gamefilesd/res/shaders/game/warp.frag | 1 - gamefilesd/res/shaders/game/warp.json | 8 + gamefilesd/res/shaders/game/xbrz4x.frag | 225 + gamefilesd/res/shaders/game/xbrz4x.json | 9 + gamefilesd/res/shaders/game/xbrz4x.vert | 5 + gamefilesd/res/shaders/game/xbrz6x.frag | 245 + gamefilesd/res/shaders/game/xbrz6x.json | 9 + gamefilesd/res/shaders/game/xbrz6x.vert | 5 + gamefilesd/res/shaders/level/default.frag | 31 +- gamefilesd/res/shaders/sprite/highlight.frag | 1 - gamefilesd/res/shaders/sprite/highlight.json | 8 + gamefilesd/towners/adria/buy/listItems.json | 2 +- gamefilesd/towners/adria/panel.json | 2 +- .../towners/adria/recharge/listItems.json | 2 +- gamefilesd/towners/adria/sell/listItems.json | 2 +- .../towners/cain/identify/listItems.json | 2 +- gamefilesd/towners/cain/panel.json | 2 +- gamefilesd/towners/common/loadQuest.json | 2 +- gamefilesd/towners/common/loadRandom.json | 2 +- gamefilesd/towners/farnham/panel.json | 2 +- gamefilesd/towners/gillian/panel.json | 2 +- .../towners/griswold/buy/listItems.json | 2 +- .../griswold/buyPremium/listItems.json | 2 +- gamefilesd/towners/griswold/panel.json | 2 +- .../towners/griswold/repair/listItems.json | 2 +- .../towners/griswold/sell/listItems.json | 2 +- gamefilesd/towners/ogden/panel.json | 2 +- gamefilesd/towners/pepin/buy/listItems.json | 2 +- gamefilesd/towners/pepin/panel.json | 2 +- gamefilesd/towners/wirt/buy/listItems.json | 2 +- gamefilesd/towners/wirt/panel.json | 2 +- gamefilesd/ui/credits.json | 2 +- gamefilesd/ui/dataMissing.json | 2 +- gamefilesd/ui/gameInfo.json | 2 +- gamefilesd/ui/level/char/disableKeys.json | 11 +- gamefilesd/ui/level/char/panel.json | 2 +- gamefilesd/ui/level/char/panelQuests.json | 4 +- gamefilesd/ui/level/char/removeGold.json | 2 +- gamefilesd/ui/level/menu/common.json | 6 +- gamefilesd/ui/level/menu/game2.json | 8 +- gamefilesd/ui/level/showText.json | 2 +- gamefilesd/ui/level/viewMap.json | 2 +- gamefilesd/ui/mainMenu.json | 26 +- gamefilesd/ui/mods.json | 2 +- gamefilesd/ui/playVideo.json | 2 +- gamefilesd/ui/saveSettings.json | 2 +- gamefilesd/ui/settings.json | 2 +- gamefilesd/ui/settingsShaders.json | 202 +- gamefilesd/ui/singlePlayer/delete.json | 2 +- gamefilesd/ui/singlePlayer/main.json | 2 +- gamefilesd/ui/singlePlayer/newHero.json | 6 +- gamefilesd/ui/singlePlayer/newName.json | 2 +- gamefilesd/ui/singlePlayer/newNameExists.json | 2 +- .../ui/singlePlayer/newNameTooShort.json | 2 +- gamefilesd/ui/singlePlayer/select.json | 4 +- gamefilesd/ui/splashScreen.json | 2 +- .../level/default/d2/act1/catacombs.json | 37 +- gamefilesd2/level/default/d2/act1/town.json | 42 +- gamefilesd2/level/default/d2/act2/town.json | 72 +- gamefilesd2/level/default/d2/act4/lava.json | 37 +- .../level/map/town/playerTextureFiles.json | 74 +- gamefilesd2/level/player/Amazon/class.json | 8 +- gamefilesd2/level/player/Barbarian/class.json | 8 +- .../level/player/Necromancer/class.json | 8 +- gamefilesd2/level/player/Paladin/class.json | 8 +- gamefilesd2/level/player/Sorceress/class.json | 8 +- gamefilesd2/level/player/loadDCCTexture.json | 6 +- gamefilesd2/loadingScreens/d2.json | 7 +- gamefilesd2/res/fonts.json | 42 +- gamefilesd2/res/shaders/sprite/diablo2.frag | 6 - gamefilesd2/res/shaders/sprite/diablo2.json | 8 + gamefilesd2/ui/cinematics.json | 2 +- gamefilesd2/ui/credits.json | 2 +- gamefilesd2/ui/creditsLeft.txt | 2 +- gamefilesd2/ui/creditsRight.txt | 2 +- gamefilesd2/ui/loadMain2.json | 5 +- gamefilesd2/ui/mainMenu.json | 112 +- gamefilesd2/ui/mainMenuBase.json | 44 +- gamefilesd2/ui/singlePlayer/delete.json | 2 +- gamefilesd2/ui/singlePlayer/main.json | 2 +- gamefilesd2/ui/singlePlayer/newHero.json | 278 +- .../ui/singlePlayer/newNameExists.json | 2 +- .../ui/singlePlayer/newNameTooShort.json | 2 +- gamefilesd2/ui/singlePlayer/select.json | 4 +- gamefilesd2/ui/splashScreen.json | 2 +- gamefilesdex/level/default/town_fog.json | 45 +- gamefilesdex/level/default/town_hf_fog.json | 46 +- gamefilesdex/level/loadBaseLevel.json | 72 + gamefilesdex/ui/level/char/panel.json | 80 +- gamefilesdex/ui/loadMain2.json | 10 +- gamefilesdex/ui/mainMenu.json | 26 +- .../level/item/inventoryTextures.json | 8 +- gamefilesflare/level/player/Rogue/class.json | 8 +- .../level/player/Sorceror/class.json | 8 +- .../level/player/Warrior/class.json | 8 +- .../level/player/data/enemies/skeleton.json | 9 +- .../level/player/data/female/battle_axe.json | 9 +- .../level/player/data/female/buckler.json | 9 +- .../level/player/data/female/chain_boots.json | 9 +- .../level/player/data/female/chain_coif.json | 9 +- .../player/data/female/chain_cuirass.json | 9 +- .../player/data/female/chain_gloves.json | 9 +- .../player/data/female/chain_greaves.json | 9 +- .../player/data/female/cloth_gloves.json | 9 +- .../level/player/data/female/cloth_pants.json | 9 +- .../player/data/female/cloth_sandals.json | 9 +- .../level/player/data/female/cloth_shirt.json | 9 +- .../level/player/data/female/clothes.json | 9 +- .../level/player/data/female/club.json | 9 +- .../level/player/data/female/dagger.json | 9 +- .../player/data/female/default_chest.json | 9 +- .../player/data/female/default_feet.json | 9 +- .../player/data/female/default_hands.json | 9 +- .../player/data/female/default_legs.json | 9 +- .../level/player/data/female/greatbow.json | 9 +- .../level/player/data/female/greatstaff.json | 9 +- .../level/player/data/female/greatsword.json | 9 +- .../level/player/data/female/hand_axe.json | 9 +- .../level/player/data/female/head_long.json | 9 +- .../player/data/female/infantry_axe.json | 9 +- .../player/data/female/iron_buckler.json | 9 +- .../player/data/female/leather_armor.json | 9 +- .../player/data/female/leather_boots.json | 9 +- .../player/data/female/leather_chest.json | 9 +- .../player/data/female/leather_gloves.json | 9 +- .../player/data/female/leather_hood.json | 9 +- .../player/data/female/leather_pants.json | 9 +- .../level/player/data/female/longbow.json | 9 +- .../level/player/data/female/longsword.json | 9 +- .../level/player/data/female/mace.json | 9 +- .../level/player/data/female/mage_boots.json | 9 +- .../player/data/female/mage_boots_alt1.json | 9 +- .../player/data/female/mage_boots_alt2.json | 9 +- .../level/player/data/female/mage_hood.json | 9 +- .../player/data/female/mage_hood_alt1.json | 9 +- .../player/data/female/mage_hood_alt2.json | 9 +- .../level/player/data/female/mage_skirt.json | 9 +- .../player/data/female/mage_skirt_alt1.json | 9 +- .../player/data/female/mage_skirt_alt2.json | 9 +- .../player/data/female/mage_sleeves.json | 9 +- .../player/data/female/mage_sleeves_alt1.json | 9 +- .../player/data/female/mage_sleeves_alt2.json | 9 +- .../level/player/data/female/mage_vest.json | 9 +- .../player/data/female/mage_vest_alt1.json | 9 +- .../player/data/female/mage_vest_alt2.json | 9 +- .../level/player/data/female/maul.json | 9 +- .../level/player/data/female/plate_boots.json | 9 +- .../player/data/female/plate_cuirass.json | 9 +- .../player/data/female/plate_gauntlets.json | 9 +- .../player/data/female/plate_greaves.json | 9 +- .../level/player/data/female/plate_helm.json | 9 +- .../player/data/female/reinforced_club.json | 9 +- .../level/player/data/female/rod.json | 9 +- .../level/player/data/female/shield.json | 9 +- .../level/player/data/female/shortbow.json | 9 +- .../level/player/data/female/shortsword.json | 9 +- .../level/player/data/female/slingshot.json | 9 +- .../player/data/female/smith_hammer.json | 9 +- .../level/player/data/female/staff.json | 9 +- .../level/player/data/female/steel_armor.json | 9 +- .../level/player/data/female/wand.json | 9 +- .../level/player/data/female/war_hammer.json | 9 +- .../level/player/data/female/zweihander.json | 9 +- .../level/player/data/male/battle_axe.json | 9 +- .../level/player/data/male/buckler.json | 9 +- .../level/player/data/male/chain_boots.json | 9 +- .../level/player/data/male/chain_coif.json | 9 +- .../level/player/data/male/chain_cuirass.json | 9 +- .../level/player/data/male/chain_gloves.json | 9 +- .../level/player/data/male/chain_greaves.json | 9 +- .../level/player/data/male/cloth_gloves.json | 9 +- .../level/player/data/male/cloth_pants.json | 9 +- .../level/player/data/male/cloth_sandals.json | 9 +- .../level/player/data/male/cloth_shirt.json | 9 +- .../level/player/data/male/clothes.json | 9 +- .../level/player/data/male/club.json | 9 +- .../level/player/data/male/dagger.json | 9 +- .../level/player/data/male/default_chest.json | 9 +- .../level/player/data/male/default_feet.json | 9 +- .../level/player/data/male/default_hands.json | 9 +- .../level/player/data/male/default_legs.json | 9 +- .../level/player/data/male/greatbow.json | 9 +- .../level/player/data/male/greatstaff.json | 9 +- .../level/player/data/male/greatsword.json | 9 +- .../level/player/data/male/hand_axe.json | 9 +- .../level/player/data/male/head_bald.json | 9 +- .../level/player/data/male/head_short.json | 9 +- .../level/player/data/male/infantry_axe.json | 9 +- .../level/player/data/male/iron_buckler.json | 9 +- .../level/player/data/male/leather_armor.json | 9 +- .../level/player/data/male/leather_boots.json | 9 +- .../level/player/data/male/leather_chest.json | 9 +- .../player/data/male/leather_gloves.json | 9 +- .../level/player/data/male/leather_hood.json | 9 +- .../level/player/data/male/leather_pants.json | 9 +- .../level/player/data/male/longbow.json | 9 +- .../level/player/data/male/longsword.json | 9 +- .../level/player/data/male/mace.json | 9 +- .../level/player/data/male/mage_boots.json | 9 +- .../player/data/male/mage_boots_alt1.json | 9 +- .../player/data/male/mage_boots_alt2.json | 9 +- .../level/player/data/male/mage_hood.json | 9 +- .../player/data/male/mage_hood_alt1.json | 9 +- .../player/data/male/mage_hood_alt2.json | 9 +- .../level/player/data/male/mage_skirt.json | 9 +- .../player/data/male/mage_skirt_alt1.json | 9 +- .../player/data/male/mage_skirt_alt2.json | 9 +- .../level/player/data/male/mage_sleeves.json | 9 +- .../player/data/male/mage_sleeves_alt1.json | 9 +- .../player/data/male/mage_sleeves_alt2.json | 9 +- .../level/player/data/male/mage_vest.json | 9 +- .../player/data/male/mage_vest_alt1.json | 9 +- .../player/data/male/mage_vest_alt2.json | 9 +- .../level/player/data/male/maul.json | 9 +- .../level/player/data/male/plate_boots.json | 9 +- .../level/player/data/male/plate_cuirass.json | 9 +- .../player/data/male/plate_gauntlets.json | 9 +- .../level/player/data/male/plate_greaves.json | 9 +- .../level/player/data/male/plate_helm.json | 9 +- .../player/data/male/reinforced_club.json | 9 +- .../level/player/data/male/rod.json | 9 +- .../level/player/data/male/shield.json | 9 +- .../level/player/data/male/shortbow.json | 9 +- .../level/player/data/male/shortsword.json | 9 +- .../level/player/data/male/slingshot.json | 9 +- .../level/player/data/male/smith_hammer.json | 9 +- .../level/player/data/male/staff.json | 9 +- .../level/player/data/male/steel_armor.json | 9 +- .../level/player/data/male/wand.json | 9 +- .../level/player/data/male/war_hammer.json | 9 +- .../level/player/data/male/zweihander.json | 9 +- .../res/level/actions/stashClick.json | 2 +- gamefilesflare/ui/credits.json | 2 +- gamefilesflare/ui/dataMissing.json | 2 +- gamefilesflare/ui/level/char/panel.json | 2 +- gamefilesflare/ui/level/menu/common.json | 2 +- gamefilesflare/ui/level/menu/game2.json | 8 +- gamefilesflare/ui/loadMain2.json | 5 +- gamefilesflare/ui/mainMenu.json | 2 +- gamefilesflare/ui/singlePlayer/main.json | 2 +- gamefilesflare/ui/singlePlayer/select.json | 4 +- gamefileshf/level/data/l5/l5s.json | 11 - gamefileshf/level/default/crypt.json | 31 +- gamefileshf/level/default/nest.json | 29 +- gamefileshf/level/default/town_hf.json | 29 +- gamefileshf/level/player/Barbarian/class.json | 8 +- gamefileshf/level/player/Bard/class.json | 8 +- gamefileshf/level/player/Monk/class.json | 8 +- gamefileshf/level/player/Sorceror/class.json | 8 +- gamefileshf/ui/betaNotSupported.json | 2 +- gamefileshf/ui/dataMissing.json | 2 +- gamefileshf/ui/level/menu/common.json | 13 +- gamefileshf/ui/level/menu/game2.json | 12 +- gamefileshf/ui/mainMenu.json | 26 +- gamefileshf/ui/singlePlayer/main.json | 2 +- gamefileshf/ui/singlePlayer/newHero.json | 12 +- .../{splashScreen2.json => splashScreen.json} | 10 +- gamefileshf/ui/support.json | 2 +- src/Actions/ActAction.h | 3 +- src/Actions/ActAnimation.h | 15 +- src/Actions/ActAudio.h | 28 +- src/Actions/ActButton.h | 28 +- src/Actions/ActCondition.h | 10 +- src/Actions/ActCursor.h | 5 +- src/Actions/ActDrawable.h | 65 +- src/Actions/ActEvent.h | 9 +- src/Actions/ActFade.h | 2 +- src/Actions/ActFocus.h | 19 +- src/Actions/ActFont.h | 4 +- src/Actions/ActGame.h | 6 +- src/Actions/ActIO.h | 14 +- src/Actions/ActImage.h | 62 +- src/Actions/ActInputText.h | 2 +- src/Actions/ActItem.h | 28 +- src/Actions/ActLevel.h | 81 +- src/Actions/ActLevelObject.h | 14 +- src/Actions/ActLoad.h | 19 +- src/Actions/ActMenu.h | 120 +- src/Actions/ActMount.h | 4 +- src/Actions/ActMovie.h | 5 +- src/Actions/ActPalette.h | 7 +- src/Actions/ActPlayer.h | 39 +- src/Actions/ActQuest.h | 7 +- src/Actions/ActRandom.h | 1 - src/Actions/ActResource.h | 11 +- src/Actions/ActScrollable.h | 2 +- src/Actions/ActShader.h | 53 +- src/Actions/ActSound.h | 17 +- src/Actions/ActText.h | 34 +- src/Actions/ActVariable.h | 16 +- src/Actions/ActVisibility.h | 4 +- src/Actions/ActiontList.h | 1 - src/Animation.cpp | 116 +- src/Animation.h | 44 +- src/AnimationInfo.h | 13 + src/AnimationType.h | 3 +- src/BaseAnimation.cpp | 134 +- src/BaseAnimation.h | 54 +- src/BindableText.cpp | 9 +- src/BindableText.h | 4 + src/BitmapFont.cpp | 205 +- src/BitmapFont.h | 31 +- src/BitmapText.cpp | 14 +- src/BitmapText.h | 6 +- src/Button.cpp | 25 +- src/Button.h | 3 + src/Circle.cpp | 2 +- src/Circle.h | 8 +- src/CompositeTexture.cpp | 44 +- src/CompositeTexture.h | 36 +- src/DS1.cpp | 3 - src/DS1.h | 2 - src/DrawableText.h | 2 +- src/FileBytes.h | 6 + src/FileUtils.cpp | 97 +- src/FileUtils.h | 10 +- src/{Game => }/Formula.cpp | 31 +- src/{Game => }/Formula.h | 5 + src/{Game => }/Formulas.h | 0 src/FreeTypeFont.h | 4 + src/Game.cpp | 190 +- src/Game.h | 15 +- src/Game/GameProperties.h | 2 +- src/Game/Inventory.h | 2 +- src/Game/Item.h | 2 +- src/Game/ItemClass.cpp | 5 +- src/Game/ItemClass.h | 2 +- src/Game/ItemLocation.h | 2 +- src/Game/Level.cpp | 241 +- src/Game/Level.h | 68 +- src/Game/LevelHelper.cpp | 27 +- src/Game/LevelHelper.h | 4 +- src/Game/LevelMap.cpp | 13 - src/Game/LevelMap.h | 14 +- src/Game/LevelObject.h | 4 +- src/Game/LevelSurface.cpp | 50 +- src/Game/LevelSurface.h | 31 +- src/Game/PairXY.h | 31 - src/Game/Player.cpp | 64 +- src/Game/Player.h | 40 +- src/Game/PlayerAI.cpp | 152 + src/Game/PlayerAI.h | 8 + src/Game/PlayerClass.cpp | 40 +- src/Game/PlayerClass.h | 37 +- src/Game/Save/SaveItem.cpp | 18 +- src/Game/Save/SaveItem.h | 2 +- src/Game/Save/SaveLevel.cpp | 8 +- src/Game/Save/SaveLevel.h | 5 +- src/Game/Save/SavePlayer.cpp | 25 +- src/Game/Save/SavePlayer.h | 2 +- src/Game/Save/SaveProperties.h | 11 +- src/Game/Save/SaveSimpleLevelObject.cpp | 20 +- src/Game/Save/SaveSimpleLevelObject.h | 2 +- src/Game/Save/SaveUtils.cpp | 66 + src/Game/Save/SaveUtils.h | 24 +- src/Game/SimpleLevelObject.h | 2 +- src/Game/Spell.h | 4 +- src/Game/TilesetLevelLayer.cpp | 2 +- src/Game/TilesetLevelLayer.h | 4 +- src/GameConstants.h | 10 + src/GameUtils.cpp | 325 +- src/GameUtils.h | 30 +- src/GameUtilsGame.cpp | 169 + src/GameUtilsGame.h | 29 + src/Image.cpp | 36 +- src/Image.h | 25 +- src/ImageContainers/CELImageContainer.cpp | 51 +- src/ImageContainers/CELImageContainer.h | 9 +- src/ImageContainers/CL2ImageContainer.cpp | 39 +- src/ImageContainers/CL2ImageContainer.h | 9 +- src/ImageContainers/DC6ImageContainer.cpp | 41 +- src/ImageContainers/DC6ImageContainer.h | 9 +- src/ImageContainers/DCCImageContainer.cpp | 19 +- src/ImageContainers/DCCImageContainer.h | 10 +- src/ImageContainers/DT1ImageContainer.cpp | 20 +- src/ImageContainers/DT1ImageContainer.h | 7 +- src/ImageContainers/SimpleImageContainer.cpp | 4 + src/ImageUtils.cpp | 78 +- src/ImageUtils.h | 3 - src/InputEvent.cpp | 16 - src/InputEvent.h | 9 +- src/InputText.cpp | 16 +- src/LoadingScreen.h | 3 +- src/Main.cpp | 5 - src/Menu.cpp | 133 +- src/Menu.h | 132 +- src/Min.h | 6 +- src/Palette.cpp | 61 +- src/Parser/Game/ParseClassifier.cpp | 21 +- src/Parser/Game/ParseItem.cpp | 9 +- src/Parser/Game/ParseItemClass.cpp | 107 +- src/Parser/Game/ParseLevel.cpp | 283 +- src/Parser/Game/ParseLevelObject.cpp | 11 +- src/Parser/Game/ParseLevelObjectClass.cpp | 53 +- src/Parser/Game/ParsePlayer.cpp | 47 +- src/Parser/Game/ParsePlayerClass.cpp | 136 +- src/Parser/Game/ParseQuest.cpp | 2 +- src/Parser/Game/ParseSpell.cpp | 39 +- src/Parser/ParseAction.cpp | 881 +-- src/Parser/ParseAction.h | 2 +- src/Parser/ParseActionGame.cpp | 435 ++ src/Parser/ParseActionGame.h | 11 + src/Parser/ParseAnimation.cpp | 60 +- src/Parser/ParseAnimation.h | 2 +- src/Parser/ParseAudio.cpp | 25 +- src/Parser/ParseAudioCommon.cpp | 3 +- src/Parser/ParseButton.cpp | 102 +- src/Parser/ParseCircle.cpp | 9 +- src/Parser/ParseCompositeTexture.cpp | 25 +- src/Parser/ParseCondition.cpp | 17 +- src/Parser/ParseCursor.cpp | 13 +- src/Parser/ParseEvent.cpp | 3 +- src/Parser/ParseFile.cpp | 176 +- src/Parser/ParseFile.h | 3 + src/Parser/ParseFileBytes.cpp | 64 + src/Parser/ParseFileBytes.h | 10 + src/Parser/ParseFileGame.cpp | 138 + src/Parser/ParseFileGame.h | 13 + src/Parser/ParseFont.cpp | 76 +- src/Parser/ParseIcon.cpp | 3 +- src/Parser/ParseImage.cpp | 45 +- src/Parser/ParseImageContainer.cpp | 145 +- src/Parser/ParseImageContainer.h | 8 +- src/Parser/ParseInputEvent.cpp | 140 + src/Parser/ParseInputEvent.h | 10 + src/Parser/ParseInputText.cpp | 37 +- src/Parser/ParseKeyboard.cpp | 113 - src/Parser/ParseLoadingScreen.cpp | 18 +- src/Parser/ParseMenu.cpp | 47 +- src/Parser/ParseMenuButton.cpp | 30 +- src/Parser/ParseMovie.cpp | 12 +- src/Parser/ParsePalette.cpp | 159 +- src/Parser/ParsePanel.cpp | 7 +- src/Parser/ParsePredicate.cpp | 63 +- src/Parser/ParsePredicate.h | 2 +- src/Parser/ParsePredicateGame.cpp | 69 + src/Parser/ParsePredicateGame.h | 13 + src/Parser/ParseRectangle.cpp | 9 +- src/Parser/ParseScrollable.cpp | 11 +- src/Parser/ParseShader.cpp | 81 + src/Parser/{ParseKeyboard.h => ParseShader.h} | 2 +- src/Parser/ParseShape.cpp | 69 + src/Parser/ParseShape.h | 10 + src/Parser/ParseSound.cpp | 21 +- src/Parser/ParseText.cpp | 40 +- src/Parser/ParseText.h | 7 +- src/Parser/ParseTexture.cpp | 161 +- src/Parser/ParseTexture.h | 29 - src/Parser/ParseTexturePack.cpp | 338 +- src/Parser/ParseTexturePack.h | 8 - src/Parser/ParseVariable.cpp | 64 +- src/Parser/ParseVariable.h | 5 - src/Parser/Utils/ParseUtilsGameKey.cpp | 130 + src/Parser/Utils/ParseUtilsGameKey.h | 36 + src/Parser/Utils/ParseUtilsGameVal.cpp | 153 + src/Parser/Utils/ParseUtilsGameVal.h | 29 + src/Parser/Utils/ParseUtilsKey.cpp | 153 +- src/Parser/Utils/ParseUtilsKey.h | 87 +- src/Parser/Utils/ParseUtilsVal.cpp | 251 +- src/Parser/Utils/ParseUtilsVal.h | 86 +- src/Pcx.cpp | 40 +- src/Pcx.h | 3 +- src/PhysFSStream.cpp | 28 +- src/PhysFSStream.h | 8 +- src/Queryable.h | 2 +- src/Rectangle.h | 10 +- src/ResourceManager.cpp | 198 +- src/ResourceManager.h | 146 +- src/SFML/CompositeSprite.cpp | 22 +- src/SFML/CompositeSprite.h | 10 +- src/SFML/GradientCircle.cpp | 99 + src/SFML/GradientCircle.h | 39 + src/SFML/Sprite2.cpp | 158 +- src/SFML/Sprite2.h | 11 +- src/SFML/VertexArray2.cpp | 87 +- src/SFML/VertexArray2.h | 14 +- src/SFML/VertexShape.cpp | 25 + src/SFML/VertexShape.h | 25 + src/SFML/View2.cpp | 1 + src/SFML/Wave2.cpp | 84 + src/SFML/Wave2.h | 23 + src/SFML/dr_wav.h | 6431 +++++++++++++++++ src/Shader.h | 22 + src/ShaderManager.cpp | 120 +- src/ShaderManager.h | 31 +- src/Shape.cpp | 29 + src/Shape.h | 37 + src/StringButton.cpp | 2 +- src/StringText.cpp | 41 +- src/StringText.h | 10 +- src/TextUtils.cpp | 27 +- src/TextUtils.h | 3 + src/TexturePacks/BitmapFontTexturePack.cpp | 181 +- src/TexturePacks/BitmapFontTexturePack.h | 24 +- src/TexturePacks/CachedTexturePack.cpp | 60 +- src/TexturePacks/CachedTexturePack.h | 14 +- src/TexturePacks/IndexedTexturePack.cpp | 9 + src/TexturePacks/IndexedTexturePack.h | 4 +- src/TexturePacks/RectTexturePack.cpp | 41 +- src/TexturePacks/RectTexturePack.h | 11 +- src/TexturePacks/SimpleTexturePack.cpp | 250 +- src/TexturePacks/SimpleTexturePack.h | 48 +- src/TexturePacks/StackedTexturePack.cpp | 13 + src/TexturePacks/StackedTexturePack.h | 2 + src/TexturePacks/TexturePack.cpp | 14 +- src/TexturePacks/TexturePack.h | 14 +- src/{Game => Utils}/Number.h | 0 src/Utils/PairXY.h | 86 + src/Utils/UnorderedStringMap.h | 45 + src/Utils/Utils.cpp | 75 +- src/Variable.cpp | 2 +- src/Variable.h | 2 +- src/endian/detail/stream.hpp | 26 +- src/endian/stream_reader.hpp | 12 +- src/endian/stream_writer.hpp | 6 +- src/gsl/gsl | 35 - src/gsl/gsl_algorithm | 61 - src/gsl/gsl_assert | 177 - src/gsl/gsl_byte | 203 - src/gsl/gsl_util | 175 - src/gsl/multi_span | 2293 ------ src/gsl/pointers | 294 - src/gsl/span | 793 -- src/gsl/string_span | 722 -- src/rectpack2D/best_bin_finder.h | 270 - src/rectpack2D/empty_space_allocators.h | 70 - src/rectpack2D/empty_spaces.h | 149 - src/rectpack2D/finders_interface.h | 153 - src/rectpack2D/insert_and_split.h | 135 - src/rectpack2D/rect_structs.h | 78 - vcpkg/ports/physfs/CONTROL | 6 + vcpkg/ports/physfs/portfile.cmake | 38 + vcpkg/ports/sfml/CONTROL | 6 + vcpkg/ports/sfml/portfile.cmake | 59 + vcpkg/ports/sfml/stb_include.patch | 14 + vcpkg/ports/sfml/usage | 7 + vcpkg/ports/sfml/use-system-freetype.patch | 11 + vcpkg/triplets/x64-windows-static.cmake | 7 + vcpkg/triplets/x86-windows-static.cmake | 7 + 601 files changed, 16909 insertions(+), 12702 deletions(-) rename DGEngine.vcxproj => Project.vcxproj (78%) mode change 100755 => 100644 delete mode 100755 android/.gitignore delete mode 100755 android/AndroidManifest.xml delete mode 100755 android/BUILD.txt delete mode 100755 android/jni/.gitignore delete mode 100755 android/jni/Android.mk delete mode 100755 android/jni/Application.mk delete mode 100755 android/res/drawable-mdpi/logo.png delete mode 100755 android/res/values/strings.xml delete mode 100755 gamefilesd/level/data/l1/l1_big.json delete mode 100755 gamefilesd/level/data/l1/l1s.json delete mode 100755 gamefilesd/level/data/l2/l2s.json delete mode 100755 gamefilesd/level/default/dungeon_big.json create mode 100644 gamefilesd/res/shaders/game/README.txt create mode 100644 gamefilesd/res/shaders/game/grain.json create mode 100644 gamefilesd/res/shaders/game/grayscale.json create mode 100644 gamefilesd/res/shaders/game/heavybloom.frag create mode 100644 gamefilesd/res/shaders/game/heavybloom.json create mode 100644 gamefilesd/res/shaders/game/heavybloom.vert create mode 100644 gamefilesd/res/shaders/game/lanczos6tap.frag create mode 100644 gamefilesd/res/shaders/game/lanczos6tap.json create mode 100644 gamefilesd/res/shaders/game/lanczos6tap.vert create mode 100644 gamefilesd/res/shaders/game/pixelateFade.json create mode 100644 gamefilesd/res/shaders/game/scale4xhq.frag create mode 100644 gamefilesd/res/shaders/game/scale4xhq.json create mode 100644 gamefilesd/res/shaders/game/scale4xhq.vert create mode 100644 gamefilesd/res/shaders/game/simplebloom.frag create mode 100644 gamefilesd/res/shaders/game/simplebloom.json create mode 100644 gamefilesd/res/shaders/game/simplebloom.vert create mode 100644 gamefilesd/res/shaders/game/swirl.json create mode 100644 gamefilesd/res/shaders/game/warp.json create mode 100644 gamefilesd/res/shaders/game/xbrz4x.frag create mode 100644 gamefilesd/res/shaders/game/xbrz4x.json create mode 100644 gamefilesd/res/shaders/game/xbrz4x.vert create mode 100644 gamefilesd/res/shaders/game/xbrz6x.frag create mode 100644 gamefilesd/res/shaders/game/xbrz6x.json create mode 100644 gamefilesd/res/shaders/game/xbrz6x.vert create mode 100644 gamefilesd/res/shaders/sprite/highlight.json create mode 100644 gamefilesd2/res/shaders/sprite/diablo2.json create mode 100644 gamefilesdex/level/loadBaseLevel.json delete mode 100755 gamefileshf/level/data/l5/l5s.json rename gamefileshf/ui/{splashScreen2.json => splashScreen.json} (93%) mode change 100755 => 100644 create mode 100644 src/AnimationInfo.h create mode 100644 src/FileBytes.h rename src/{Game => }/Formula.cpp (96%) mode change 100755 => 100644 rename src/{Game => }/Formula.h (98%) mode change 100755 => 100644 rename src/{Game => }/Formulas.h (100%) mode change 100755 => 100644 delete mode 100755 src/Game/PairXY.h create mode 100644 src/Game/PlayerAI.cpp create mode 100644 src/Game/PlayerAI.h create mode 100644 src/GameConstants.h create mode 100644 src/GameUtilsGame.cpp create mode 100644 src/GameUtilsGame.h create mode 100644 src/Parser/ParseActionGame.cpp create mode 100644 src/Parser/ParseActionGame.h create mode 100644 src/Parser/ParseFileBytes.cpp create mode 100644 src/Parser/ParseFileBytes.h create mode 100644 src/Parser/ParseFileGame.cpp create mode 100644 src/Parser/ParseFileGame.h create mode 100644 src/Parser/ParseInputEvent.cpp create mode 100644 src/Parser/ParseInputEvent.h delete mode 100755 src/Parser/ParseKeyboard.cpp create mode 100644 src/Parser/ParsePredicateGame.cpp create mode 100644 src/Parser/ParsePredicateGame.h create mode 100644 src/Parser/ParseShader.cpp rename src/Parser/{ParseKeyboard.h => ParseShader.h} (55%) mode change 100755 => 100644 create mode 100644 src/Parser/ParseShape.cpp create mode 100644 src/Parser/ParseShape.h create mode 100644 src/Parser/Utils/ParseUtilsGameKey.cpp create mode 100644 src/Parser/Utils/ParseUtilsGameKey.h create mode 100644 src/Parser/Utils/ParseUtilsGameVal.cpp create mode 100644 src/Parser/Utils/ParseUtilsGameVal.h create mode 100644 src/SFML/GradientCircle.cpp create mode 100644 src/SFML/GradientCircle.h create mode 100644 src/SFML/VertexShape.cpp create mode 100644 src/SFML/VertexShape.h create mode 100644 src/SFML/Wave2.cpp create mode 100644 src/SFML/Wave2.h create mode 100644 src/SFML/dr_wav.h create mode 100644 src/Shader.h create mode 100644 src/Shape.cpp create mode 100644 src/Shape.h rename src/{Game => Utils}/Number.h (100%) mode change 100755 => 100644 create mode 100644 src/Utils/PairXY.h create mode 100644 src/Utils/UnorderedStringMap.h delete mode 100755 src/gsl/gsl delete mode 100755 src/gsl/gsl_algorithm delete mode 100755 src/gsl/gsl_assert delete mode 100755 src/gsl/gsl_byte delete mode 100755 src/gsl/gsl_util delete mode 100755 src/gsl/multi_span delete mode 100755 src/gsl/pointers delete mode 100755 src/gsl/span delete mode 100755 src/gsl/string_span delete mode 100755 src/rectpack2D/best_bin_finder.h delete mode 100755 src/rectpack2D/empty_space_allocators.h delete mode 100755 src/rectpack2D/empty_spaces.h delete mode 100755 src/rectpack2D/finders_interface.h delete mode 100755 src/rectpack2D/insert_and_split.h delete mode 100755 src/rectpack2D/rect_structs.h create mode 100644 vcpkg/ports/physfs/CONTROL create mode 100644 vcpkg/ports/physfs/portfile.cmake create mode 100644 vcpkg/ports/sfml/CONTROL create mode 100644 vcpkg/ports/sfml/portfile.cmake create mode 100644 vcpkg/ports/sfml/stb_include.patch create mode 100644 vcpkg/ports/sfml/usage create mode 100644 vcpkg/ports/sfml/use-system-freetype.patch create mode 100644 vcpkg/triplets/x64-windows-static.cmake create mode 100644 vcpkg/triplets/x86-windows-static.cmake 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 87786889e898a2f72acb743545eeb4761e6deb06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2949 zcmV;03wrd4P)WdJcCO<{Q;GB7bS zH>Vzs0000b7gZcaCKsAX=7w>ZDDC{FImI>$^ZZgOG!jQRA_;{S$l9) z)fxYtbN8K)2ZV$TU?5-Kin86~7MhKu*v07B7Giq&pjJ7(qI?6bMwpNQ;YXkT| z2OF$Z>kBL(MXd#78WNCDq<4-}QYLKG;|bsP4LPi6j~K5V3Lq-fz1FfG0o9#17BgJ?@0sH5>eDgkeGUV9ZI_6k5n=6((d6CGvnI?BNrM~hN}PPHBck;Et9kVN#; zTPA&2KhhXRBwz!6ZuhjeKLyZ30GMewlz1vJXWXr@Gfxsn5g{Cr-@_64JrI(7MnQP+ zR_}-FzZU`3ZIwkj@wXYnTywvjW#EeOPaxk>HXy%KJ%U~S)zB%H)K5h3NG@^b%JJKR z!-4V6 zP2aLt1mPVb${`~3Z-&s&p$wkN?aJ2>BvSZ91OiPLU|+u3y!5dr@#K(V8x-_<%d*)H z!>Az=cbJ`xw-;mKgvXKsXp0>j)L~n!E{St>-WufCrkVR}1X@$ny#KR}trb&8C17LI z;`^Cld_{sv`y2penb)B*e=W{&&x4ESB%HU#>IN0iY7#I`DumZH2TKdqqBL`9{~5Uq zx^!@3bLF+e7Esl+H23v}#UGHsizLWNf)LYj)EAMV@)MuJA9&ca|mL zgrJ9}H0<57#dni?Kmo6wthmcCu!jiKi2x#i!G?=+e}={0-@_w~PYJ5fJqK|t(b*se z77)j>6afH`Var3M_gP$!a~l|>KD@w>d$r)M4ab(}Sqj*2vSN(@)(ax1Ac7!5hOGe0 z3fE$G&QHM1`<2NuZTZNwc@gLMBDHA+_#(9lT#mg6E-A|r$G}mZyAqY&=irtmBsfCQ zJV?sk*G^tDGfBYu6BWxy(4(f@Ly>zPZkX~iCOUtRHXs0q8aWoD2Zclw0;r7fgHtLL$FPvnsI2 z`zR#l7|=mWqz)gqJc6Lsmeil;oQVm}z*W-kB0;(F2PWG-1@rUo8!&J|I`(zFijSHfhOBj` zY)DpV0{MmdJtQi zp1{7&*DPaT;NY;CISP-;F}o5|VHg5Vo{?6)FI+dIAmXh#T$A87hiitx6*wK-lQs^3 zB?+)WP_v?{*-BJJR6d1>9)QP|n?ftfxCH)a;{XFETXU!u0D(a8h3Y_J=@-MDt_a;YzGKyc97#G%W7S>;;xF zGz9lS7pfV%l|!I9E-V2}_XA#k*7H;Am(WQM8Exd;Yi$e}2dmTfN=$=3j9D6I&xbc-mZk4wfzOk$jOhJ@0B0tD+WZ_GYTIs^Mx1e!OuQUsZ2uOY zp=d;f9Eu_skP$c&La^uTOvR!qG*yQXsk``$oXY@a48(zlaxjyZH8_@RW!sRDxf%VPIkGa z&-(UVh{_6-mG?G?Uun3$Y8>y z4#yDcjUW_^YQMR3Ut+UL2v~i2Z3CD1nfTrDhkfw%9JUnk!%0_;$qbm=`Gpmhz8d{? z=#6wFaGdd^Qa9ZGso3^3iyn9myw@XgkF~17kVIKq; zmH`ZAoN-LZoNAdq08rbwHBp9h&O~vWdtHBw<@vw^Th0yWs*w}Fetg+Z6lBd9QII3G z6P^32c<9Fhg(R;=BAGZZbBSUx2ie=!|C?fHNt@#oD;UDKJvcxLPMsB7BM|B!CX z>~vQh*8cMroC!AfEuEaJFWh+InRJ{15Bcu->-7IAQLVIp|K!{f%$htO9!ECZj&ZO{ zE-+^O@i(0j5d`Vb4Gle!b{uH<1ZP6cDL7B2^W{I?d@^+z9EyMk-S+sg zMf_P+^%4>!4V5<>W1NxQVe{D}>Eo(Z4Zj=`XQYALQC(bQQ?*%)OEV3D>43-{a-hTr voHT$(7!Va;5sA>&7;4zO?LJb56UYAn9?~*|dx4oC00000NkvXXu0mjfsdQ_O 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