gamepad button label; gamepad calibrate on startup

This commit is contained in:
minjaesong
2019-02-21 00:12:12 +09:00
parent b55fe09d9f
commit 6dcdf32627
5 changed files with 90 additions and 23 deletions

View File

@@ -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);
}

View File

@@ -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"

View File

@@ -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()
}
}
}

View File

@@ -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"]}"

View File

@@ -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