diff --git a/src/net/torvald/terrarum/AppLoader.java b/src/net/torvald/terrarum/AppLoader.java index bf11452a7..6f08e1273 100644 --- a/src/net/torvald/terrarum/AppLoader.java +++ b/src/net/torvald/terrarum/AppLoader.java @@ -352,6 +352,16 @@ public class AppLoader implements ApplicationListener { if (gamepad != null) { environment = RunningEnvironment.CONSOLE; + + // calibrate the sticks + /*float[] axesZeroPoints = new float[]{ + gamepad.getAxis(0), + gamepad.getAxis(1), + gamepad.getAxis(2), + gamepad.getAxis(3) + }; + setConfig("gamepadaxiszeropoints", axesZeroPoints);*/ + } else { environment = RunningEnvironment.PC; @@ -840,7 +850,7 @@ public class AppLoader implements ApplicationListener { } public static void setConfig(String key, Object value) { - gameConfig.set(key, value); + gameConfig.set(key.toLowerCase(), value); } diff --git a/src/net/torvald/terrarum/DefaultConfig.kt b/src/net/torvald/terrarum/DefaultConfig.kt index cdad3405e..a0eed89f3 100644 --- a/src/net/torvald/terrarum/DefaultConfig.kt +++ b/src/net/torvald/terrarum/DefaultConfig.kt @@ -55,10 +55,10 @@ object DefaultConfig { jsonObject.addProperty("gamepadtriggeraxis", 4) // positive: LT, negative: RT (xbox pad) jsonObject.addProperty("gamepadtriggeraxis2", 5) // just in case... (RT) - val axesZeroPoints = JsonArray(); axesZeroPoints.add(0f); axesZeroPoints.add(0f); axesZeroPoints.add(0f); axesZeroPoints.add(0f) + val axesZeroPoints = JsonArray(); axesZeroPoints.add(-0.011f); axesZeroPoints.add(-0.022f); axesZeroPoints.add(-0.033f); axesZeroPoints.add(-0.044f) jsonObject.add("gamepadaxiszeropoints", axesZeroPoints) // to accomodate shifted zero point of analog stick - jsonObject.addProperty("gamepadlabelstyle", "msxb360") // "nwii", "logitech", "sonyps", "msxb360", "generic" + jsonObject.addProperty("gamepadlabelstyle", "msxbone") // "nwii", "logitech", "sonyps", "msxb360", "msxbone" diff --git a/src/net/torvald/terrarum/Terrarum.kt b/src/net/torvald/terrarum/Terrarum.kt index 9c8bfa1a7..2320c5681 100644 --- a/src/net/torvald/terrarum/Terrarum.kt +++ b/src/net/torvald/terrarum/Terrarum.kt @@ -122,20 +122,27 @@ object Terrarum : Screen { val fontGame: GameFontBase = AppLoader.fontGame val fontSmallNumbers: TinyAlphNum = AppLoader.fontSmallNumbers - var gamepadLabelStart: Char = 0xE000.toChar() // lateinit - var gamepadLableSelect: Char = 0xE000.toChar() // lateinit - var gamepadLabelNinA: Char = 0xE000.toChar() // lateinit TODO - var gamepadLabelNinB: Char = 0xE000.toChar() // lateinit TODO - var gamepadLabelNinX: Char = 0xE000.toChar() // lateinit TODO - var gamepadLabelNinY: Char = 0xE000.toChar() // lateinit TODO - var gamepadLabelNinL: Char = 0xE000.toChar() // lateinit TODO - var gamepadLabelNinR: Char = 0xE000.toChar() // lateinit TODO - var gamepadLabelNinZL: Char = 0xE000.toChar() // lateinit TODO - var gamepadLabelNinZR: Char = 0xE000.toChar() // lateinit TODO + var gamepadLabelStart = 0xE000.toChar() // lateinit + var gamepadLabelSelect = 0xE000.toChar() // lateinit + var gamepadLabelEast = 0xE000.toChar() // lateinit + var gamepadLabelSouth = 0xE000.toChar() // lateinit + var gamepadLabelNorth = 0xE000.toChar() // lateinit + var gamepadLabelWest = 0xE000.toChar() // lateinit + var gamepadLabelLB = 0xE000.toChar() // lateinit + var gamepadLabelRB = 0xE000.toChar() // lateinit + var gamepadLabelLT = 0xE000.toChar() // lateinit + var gamepadLabelRT = 0xE000.toChar() // lateinit val gamepadLabelLEFT = 0xE068.toChar() val gamepadLabelDOWN = 0xE069.toChar() val gamepadLabelUP = 0xE06A.toChar() val gamepadLabelRIGHT = 0xE06B.toChar() + val gamepadLabelUPDOWN = 0xE072.toChar() + val gamepadLabelLEFTRIGHT = 0xE071.toChar() + val gamepadLabelDPAD = 0xE070.toChar() + val gamepadLabelLStick = 0xE044.toChar() + val gamepadLabelRStick = 0xE045.toChar() + val gamepadLabelLStickPush = 0xE046.toChar() + val gamepadLabelRStickPush = 0xE047.toChar() // 0x0 - 0xF: Game-related // 0x10 - 0x1F: Config @@ -208,21 +215,69 @@ object Terrarum : Screen { println("vendor = $processorVendor") + setGamepadButtonLabels() + + } + + private fun setGamepadButtonLabels() { gamepadLabelStart = when (getConfigString("gamepadlabelstyle")) { "nwii" -> 0xE04B.toChar() // + mark "logitech" -> 0xE05A.toChar() // number 10 + "msxbone" -> 0xE049.toChar() // trifold equal sign? else -> 0xE042.toChar() // |> mark (sonyps, msxb360, generic) } - gamepadLableSelect = when (getConfigString("gamepadlabelstyle")) { + gamepadLabelSelect = when (getConfigString("gamepadlabelstyle")) { "nwii" -> 0xE04D.toChar() // - mark "logitech" -> 0xE059.toChar() // number 9 "sonyps" -> 0xE043.toChar() // solid rectangle "msxb360" -> 0xE041.toChar() // <| mark + "msxbone" -> 0xE048.toChar() // multitask button? else -> 0xE043.toChar() // solid rectangle } - + when (getConfigString("gamepadlabelstyle")) { + "msxb360", "msxbone" -> { + gamepadLabelSouth = 0xE061.toChar() + gamepadLabelEast = 0xE062.toChar() + gamepadLabelWest = 0xE078.toChar() + gamepadLabelNorth = 0xE079.toChar() + gamepadLabelLB = 0xE06D.toChar() + gamepadLabelRB = 0xE06E.toChar() + gamepadLabelLT = 0xE06C.toChar() + gamepadLabelRT = 0xE06F.toChar() + } + "nwii" -> { + gamepadLabelSouth = 0xE062.toChar() + gamepadLabelEast = 0xE061.toChar() + gamepadLabelWest = 0xE079.toChar() + gamepadLabelNorth = 0xE078.toChar() + gamepadLabelLB = 0xE065.toChar() + gamepadLabelRB = 0xE066.toChar() + gamepadLabelLT = 0xE064.toChar() + gamepadLabelRT = 0xE067.toChar() + } + "sonyps" -> { + gamepadLabelSouth = 0xE063.toChar() + gamepadLabelEast = 0xE050.toChar() + gamepadLabelWest = 0xE073.toChar() + gamepadLabelNorth = 0xE074.toChar() + gamepadLabelLB = 0xE07B.toChar() + gamepadLabelRB = 0xE07C.toChar() + gamepadLabelLT = 0xE07A.toChar() + gamepadLabelRT = 0xE07D.toChar() + } + "logitech" -> { + gamepadLabelSouth = 0xE052.toChar() + gamepadLabelEast = 0xE053.toChar() + gamepadLabelWest = 0xE051.toChar() + gamepadLabelNorth = 0xE054.toChar() + gamepadLabelLB = 0xE055.toChar() + gamepadLabelRB = 0xE056.toChar() + gamepadLabelLT = 0xE057.toChar() + gamepadLabelRT = 0xE058.toChar() + } + } } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt index a55c51b79..7ba7cbcc6 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventory.kt @@ -142,9 +142,9 @@ package net.torvald.terrarum.modulebasegame.ui "${0xe011.toChar()}..${0xe010.toChar()} ${Lang["GAME_INVENTORY_REGISTER"]}$SP" + "${0xe034.toChar()} ${Lang["GAME_INVENTORY_DROP"]}" else - "$gamepadLabelNinY ${Lang["GAME_INVENTORY_USE"]}$SP" + + "$gamepadLabelWest ${Lang["GAME_INVENTORY_USE"]}$SP" + "${0xe011.toChar()}${0xe010.toChar()} ${Lang["GAME_INVENTORY_REGISTER"]}$SP" + - "$gamepadLabelNinA ${Lang["GAME_INVENTORY_DROP"]}" + "$gamepadLabelEast ${Lang["GAME_INVENTORY_DROP"]}" val listControlClose: String get() = if (Terrarum.environment == RunningEnvironment.PC) "${0xe037.toChar()} ${Lang["GAME_ACTION_CLOSE"]}" diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt index a5d408fea..a9370f845 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIInventoryFull.kt @@ -7,6 +7,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.glutils.ShapeRenderer import net.torvald.terrarum.* import net.torvald.terrarum.AppLoader.printdbg +import net.torvald.terrarum.Terrarum.gamepadLabelStart import net.torvald.terrarum.gameactors.ActorWBMovable import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.modulebasegame.Ingame @@ -57,20 +58,21 @@ class UIInventoryFull( "${0xe011.toChar()}..${0xe010.toChar()} ${Lang["GAME_INVENTORY_REGISTER"]}$SP" + "${0xe034.toChar()} ${Lang["GAME_INVENTORY_DROP"]}" else - "${0xe069.toChar()} ${Lang["GAME_ACTION_CLOSE"]}$SP" + - "${Terrarum.gamepadLabelNinY} ${Lang["GAME_INVENTORY_USE"]}$SP" + - "${0xe011.toChar()}${0xe010.toChar()} ${Lang["GAME_INVENTORY_REGISTER"]}$SP" + - "${Terrarum.gamepadLabelNinA} ${Lang["GAME_INVENTORY_DROP"]}" + "$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP" + + "${Terrarum.gamepadLabelLEFTRIGHT} ${"$ Section"}$SP" + + "${Terrarum.gamepadLabelWest} ${Lang["GAME_INVENTORY_USE"]}$SP" + + "${Terrarum.gamepadLabelNorth}${Terrarum.gamepadLabelLStick} ${Lang["GAME_INVENTORY_REGISTER"]}$SP" + + "${Terrarum.gamepadLabelEast} ${Lang["GAME_INVENTORY_DROP"]}" val minimapControlHelp: String get() = if (AppLoader.environment == RunningEnvironment.PC) "${0xe031.toChar()} ${Lang["GAME_ACTION_CLOSE"]}" else - "${0xe069.toChar()} ${Lang["GAME_ACTION_CLOSE"]}$SP${0xe06b.toChar()} ${Lang["GAME_INVENTORY"]}" + "$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP${0xe06b.toChar()} ${Lang["GAME_INVENTORY"]}" val gameMenuControlHelp: String get() = if (AppLoader.environment == RunningEnvironment.PC) "${0xe031.toChar()} ${Lang["GAME_ACTION_CLOSE"]}" else - "${0xe069.toChar()} ${Lang["GAME_ACTION_CLOSE"]}$SP${0xe068.toChar()} ${Lang["GAME_INVENTORY"]}" + "$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP${0xe068.toChar()} ${Lang["GAME_INVENTORY"]}" val controlHelpHeight = Terrarum.fontGame.lineHeight private var encumbrancePerc = 0f