Skip to content

Commit 605ce9d

Browse files
committed
Added a "defaults" button to reset the inputs back to default values.
1 parent d78e498 commit 605ce9d

File tree

6 files changed

+216
-19
lines changed

6 files changed

+216
-19
lines changed

main/src/com/miloshpetrov/sol2/GameOptions.java

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,25 @@ public class GameOptions {
1414
public static final int CONTROL_MIXED = 1;
1515
public static final int CONTROL_MOUSE = 2;
1616
public static final int CONTROL_CONTROLLER = 3;
17+
public static final String DEFAULT_MOUSE_UP = "W";
18+
public static final String DEFAULT_MOUSE_DOWN = "S";
19+
public static final String DEFAULT_UP = "Up";
20+
public static final String DEFAULT_DOWN = "Down";
21+
public static final String DEFAULT_LEFT = "Left";
22+
public static final String DEFAULT_RIGHT = "Right";
23+
public static final String DEFAULT_SHOOT = "Space";
24+
public static final String DEFAULT_SHOOT2 = "L-Ctrl";
25+
public static final String DEFAULT_ABILITY = "L-Shift";
26+
public static final String DEFAULT_ESCAPE = "Escape";
27+
public static final String DEFAULT_MAP = "Tab";
28+
public static final String DEFAULT_INVENTORY = "I";
29+
public static final String DEFAULT_TALK = "T";
30+
public static final String DEFAULT_PAUSE = "P";
31+
public static final String DEFAULT_DROP = "D";
32+
public static final String DEFAULT_SELL = "S";
33+
public static final String DEFAULT_BUY = "B";
34+
public static final String DEFAULT_CHANGE_SHIP = "C";
35+
public static final String DEFAULT_HIRE_SHIP = "H";
1736

1837
public int x;
1938
public int y;
@@ -63,25 +82,25 @@ public GameOptions(boolean mobile, SolFileReader reader) {
6382
fullscreen = r.b("fullscreen", false);
6483
controlType = mobile ? CONTROL_KB : r.i("controlType", CONTROL_MIXED);
6584
volMul = r.f("vol", 1);
66-
keyUpMouseName = r.s("keyUpMouse", "W");
67-
keyDownMouseName = r.s("keyDownMouse", "S");
68-
keyUpName = r.s("keyUp", "Up");
69-
keyDownName = r.s("keyDown", "Down");
70-
keyLeftName = r.s("keyLeft", "Left");
71-
keyRightName = r.s("keyRight", "Right");
72-
keyShootName = r.s("keyShoot", "Space");
73-
keyShoot2Name = r.s("keyShoot2", "L-Ctrl");
74-
keyAbilityName = r.s("keyAbility", "L-Shift");
75-
keyEscapeName = r.s("keyEscape", "Escape");
76-
keyMapName = r.s("keyMap", "Tab");
77-
keyInventoryName = r.s("keyInventory", "I");
78-
keyTalkName = r.s("keyTalk", "T");
79-
keyPauseName = r.s("keyPause", "P");
80-
keyDropName = r.s("keyDrop", "D");
81-
keySellMenuName = r.s("keySellMenu", "S");
82-
keyBuyMenuName = r.s("keyBuyMenu", "B");
83-
keyChangeShipMenuName = r.s("keyChangeShipMenu", "C");
84-
keyHireShipMenuName = r.s("keyHireShipMenu", "H");
85+
keyUpMouseName = r.s("keyUpMouse", DEFAULT_MOUSE_UP);
86+
keyDownMouseName = r.s("keyDownMouse", DEFAULT_MOUSE_DOWN);
87+
keyUpName = r.s("keyUp", DEFAULT_UP);
88+
keyDownName = r.s("keyDown", DEFAULT_DOWN);
89+
keyLeftName = r.s("keyLeft", DEFAULT_LEFT);
90+
keyRightName = r.s("keyRight", DEFAULT_RIGHT);
91+
keyShootName = r.s("keyShoot", DEFAULT_SHOOT);
92+
keyShoot2Name = r.s("keyShoot2", DEFAULT_SHOOT2);
93+
keyAbilityName = r.s("keyAbility", DEFAULT_ABILITY);
94+
keyEscapeName = r.s("keyEscape", DEFAULT_ESCAPE);
95+
keyMapName = r.s("keyMap", DEFAULT_MAP);
96+
keyInventoryName = r.s("keyInventory", DEFAULT_INVENTORY);
97+
keyTalkName = r.s("keyTalk", DEFAULT_TALK);
98+
keyPauseName = r.s("keyPause", DEFAULT_PAUSE);
99+
keyDropName = r.s("keyDrop", DEFAULT_DROP);
100+
keySellMenuName = r.s("keySellMenu", DEFAULT_SELL);
101+
keyBuyMenuName = r.s("keyBuyMenu", DEFAULT_BUY);
102+
keyChangeShipMenuName = r.s("keyChangeShipMenu", DEFAULT_CHANGE_SHIP);
103+
keyHireShipMenuName = r.s("keyHireShipMenu", DEFAULT_HIRE_SHIP);
85104
controllerAxisShoot = r.i("controllerAxisShoot", 1);
86105
controllerAxisShoot2 = r.i("controllerAxisShoot2", 0);
87106
controllerAxisAbility = r.i("controllerAxisAbility", -1);

main/src/com/miloshpetrov/sol2/menu/InputMapControllerScreen.java

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,48 @@ public void save(GameOptions gameOptions) {
7272
gameOptions.save();
7373
}
7474

75+
@Override
76+
public void resetToDefaults(GameOptions gameOptions) {
77+
int index = 0;
78+
79+
// This needs to be in the same order the list is initialised
80+
InputConfigItem item = itemsList.get(index);
81+
item.setInputKey(GameOptions.DEFAULT_PAUSE);
82+
itemsList.set(index++, item);
83+
84+
item = itemsList.get(index);
85+
item.setInputKey(GameOptions.DEFAULT_MAP);
86+
itemsList.set(index++, item);
87+
88+
item = itemsList.get(index);
89+
item.setInputKey(GameOptions.DEFAULT_INVENTORY);
90+
itemsList.set(index++, item);
91+
92+
item = itemsList.get(index);
93+
item.setInputKey(GameOptions.DEFAULT_DROP);
94+
itemsList.set(index++, item);
95+
96+
item = itemsList.get(index);
97+
item.setInputKey(GameOptions.DEFAULT_TALK);
98+
itemsList.set(index++, item);
99+
100+
item = itemsList.get(index);
101+
item.setInputKey(GameOptions.DEFAULT_SELL);
102+
itemsList.set(index++, item);
103+
104+
item = itemsList.get(index);
105+
item.setInputKey(GameOptions.DEFAULT_BUY);
106+
itemsList.set(index++, item);
107+
108+
item = itemsList.get(index);
109+
item.setInputKey(GameOptions.DEFAULT_CHANGE_SHIP);
110+
itemsList.set(index++, item);
111+
112+
item = itemsList.get(index);
113+
item.setInputKey(GameOptions.DEFAULT_HIRE_SHIP);
114+
itemsList.set(index++, item);
115+
}
116+
75117
@Override
76118
public List<SolUiControl> getControls() {
77119
return controls;

main/src/com/miloshpetrov/sol2/menu/InputMapKeyboardScreen.java

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,76 @@ public void save(GameOptions gameOptions) {
9393
gameOptions.save();
9494
}
9595

96+
@Override
97+
public void resetToDefaults(GameOptions gameOptions) {
98+
int index = 0;
99+
100+
// This needs to be in the same order the list is initialised
101+
InputConfigItem item = itemsList.get(index);
102+
item.setInputKey(GameOptions.DEFAULT_UP);
103+
itemsList.set(index++, item);
104+
105+
item = itemsList.get(index);
106+
item.setInputKey(GameOptions.DEFAULT_DOWN);
107+
itemsList.set(index++, item);
108+
109+
item = itemsList.get(index);
110+
item.setInputKey(GameOptions.DEFAULT_LEFT);
111+
itemsList.set(index++, item);
112+
113+
item = itemsList.get(index);
114+
item.setInputKey(GameOptions.DEFAULT_RIGHT);
115+
itemsList.set(index++, item);
116+
117+
item = itemsList.get(index);
118+
item.setInputKey(GameOptions.DEFAULT_SHOOT);
119+
itemsList.set(index++, item);
120+
121+
item = itemsList.get(index);
122+
item.setInputKey(GameOptions.DEFAULT_SHOOT2);
123+
itemsList.set(index++, item);
124+
125+
item = itemsList.get(index);
126+
item.setInputKey(GameOptions.DEFAULT_ABILITY);
127+
itemsList.set(index++, item);
128+
129+
item = itemsList.get(index);
130+
item.setInputKey(GameOptions.DEFAULT_PAUSE);
131+
itemsList.set(index++, item);
132+
133+
item = itemsList.get(index);
134+
item.setInputKey(GameOptions.DEFAULT_MAP);
135+
itemsList.set(index++, item);
136+
137+
item = itemsList.get(index);
138+
item.setInputKey(GameOptions.DEFAULT_INVENTORY);
139+
itemsList.set(index++, item);
140+
141+
item = itemsList.get(index);
142+
item.setInputKey(GameOptions.DEFAULT_DROP);
143+
itemsList.set(index++, item);
144+
145+
item = itemsList.get(index);
146+
item.setInputKey(GameOptions.DEFAULT_TALK);
147+
itemsList.set(index++, item);
148+
149+
item = itemsList.get(index);
150+
item.setInputKey(GameOptions.DEFAULT_SELL);
151+
itemsList.set(index++, item);
152+
153+
item = itemsList.get(index);
154+
item.setInputKey(GameOptions.DEFAULT_BUY);
155+
itemsList.set(index++, item);
156+
157+
item = itemsList.get(index);
158+
item.setInputKey(GameOptions.DEFAULT_CHANGE_SHIP);
159+
itemsList.set(index++, item);
160+
161+
item = itemsList.get(index);
162+
item.setInputKey(GameOptions.DEFAULT_HIRE_SHIP);
163+
itemsList.set(index++, item);
164+
}
165+
96166
@Override
97167
public List<SolUiControl> getControls() {
98168
return controls;

main/src/com/miloshpetrov/sol2/menu/InputMapMixedScreen.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,56 @@ public void save(GameOptions gameOptions) {
8080
gameOptions.save();
8181
}
8282

83+
@Override
84+
public void resetToDefaults(GameOptions gameOptions) {
85+
int index = 0;
86+
87+
// This needs to be in the same order the list is initialised
88+
InputConfigItem item = itemsList.get(index);
89+
item.setInputKey(GameOptions.DEFAULT_MOUSE_UP);
90+
itemsList.set(index++, item);
91+
92+
item = itemsList.get(index);
93+
item.setInputKey(GameOptions.DEFAULT_MOUSE_DOWN);
94+
itemsList.set(index++, item);
95+
96+
item = itemsList.get(index);
97+
item.setInputKey(GameOptions.DEFAULT_PAUSE);
98+
itemsList.set(index++, item);
99+
100+
item = itemsList.get(index);
101+
item.setInputKey(GameOptions.DEFAULT_MAP);
102+
itemsList.set(index++, item);
103+
104+
item = itemsList.get(index);
105+
item.setInputKey(GameOptions.DEFAULT_INVENTORY);
106+
itemsList.set(index++, item);
107+
108+
item = itemsList.get(index);
109+
item.setInputKey(GameOptions.DEFAULT_DROP);
110+
itemsList.set(index++, item);
111+
112+
item = itemsList.get(index);
113+
item.setInputKey(GameOptions.DEFAULT_TALK);
114+
itemsList.set(index++, item);
115+
116+
item = itemsList.get(index);
117+
item.setInputKey(GameOptions.DEFAULT_SELL);
118+
itemsList.set(index++, item);
119+
120+
item = itemsList.get(index);
121+
item.setInputKey(GameOptions.DEFAULT_BUY);
122+
itemsList.set(index++, item);
123+
124+
item = itemsList.get(index);
125+
item.setInputKey(GameOptions.DEFAULT_CHANGE_SHIP);
126+
itemsList.set(index++, item);
127+
128+
item = itemsList.get(index);
129+
item.setInputKey(GameOptions.DEFAULT_HIRE_SHIP);
130+
itemsList.set(index++, item);
131+
}
132+
83133
@Override
84134
public List<SolUiControl> getControls() {
85135
return controls;

main/src/com/miloshpetrov/sol2/menu/InputMapOperations.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,10 @@ public interface InputMapOperations extends SolUiScreen {
4343
* @param gameOptions The options object that contains the key mapping
4444
*/
4545
void save(GameOptions gameOptions);
46+
47+
/**
48+
* Reset the input mappings back to the defaults
49+
* @param gameOptions The options object that contains the key mapping
50+
*/
51+
void resetToDefaults(GameOptions gameOptions);
4652
}

main/src/com/miloshpetrov/sol2/menu/InputMapScreen.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public class InputMapScreen implements SolUiScreen {
3131
private final Vector2 myDetailHeaderPos;
3232
private final SolUiControl cancelCtrl;
3333
private final SolUiControl saveCtrl;
34+
private final SolUiControl defaultsCtrl;
3435
private final SolUiControl upCtrl;
3536
private final SolUiControl downCtrl;
3637

@@ -104,6 +105,10 @@ public InputMapScreen(float r, GameOptions gameOptions) {
104105
saveCtrl.setDisplayName("Save");
105106
controls.add(saveCtrl);
106107

108+
defaultsCtrl = new SolUiControl(itemCtrl(1), true);
109+
defaultsCtrl.setDisplayName("Defaults");
110+
controls.add(defaultsCtrl);
111+
107112
upCtrl = new SolUiControl(null, true, gameOptions.getKeyUp());
108113
controls.add(upCtrl);
109114
downCtrl = new SolUiControl(null, true, gameOptions.getKeyDown());
@@ -144,6 +149,11 @@ public void updateCustom(SolApplication cmp, SolInputManager.Ptr[] ptrs, boolean
144149
return;
145150
}
146151

152+
// Defaults - Reset the input keys back to their default values
153+
if (defaultsCtrl.isJustOff()) {
154+
myOperations.resetToDefaults(gameOptions);
155+
}
156+
147157
// Selected Item Control
148158
List<InputConfigItem> itemsList = myOperations.getItems(gameOptions);
149159
int groupCount = itemsList.size();

0 commit comments

Comments
 (0)