Skip to content

Commit c0d96e2

Browse files
authored
Merge pull request #125 from Avalancs/develop
Add sfx and music volume to Main Menu -> Options
2 parents cb15d0d + a8306a0 commit c0d96e2

File tree

4 files changed

+66
-40
lines changed

4 files changed

+66
-40
lines changed

main/src/org/destinationsol/GameOptions.java

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -200,29 +200,34 @@ public void advanceFullscreen() {
200200
}
201201

202202
public void advanceSoundVolMul() {
203-
if (sfxVolumeMultiplier == 0) {
204-
sfxVolumeMultiplier = .33f;
205-
} else if (sfxVolumeMultiplier < .4f) {
206-
sfxVolumeMultiplier = .66f;
207-
} else if (sfxVolumeMultiplier < .7f) {
208-
sfxVolumeMultiplier = 1;
203+
if (sfxVolumeMultiplier == 0.f) {
204+
sfxVolumeMultiplier = 0.25f;
205+
} else if (sfxVolumeMultiplier == 0.25f) {
206+
sfxVolumeMultiplier = 0.5f;
207+
} else if (sfxVolumeMultiplier == 0.5f) {
208+
sfxVolumeMultiplier = 0.75f;
209+
} else if (sfxVolumeMultiplier == 0.75f) {
210+
sfxVolumeMultiplier = 1.f;
209211
} else {
210-
sfxVolumeMultiplier = 0;
212+
sfxVolumeMultiplier = 0.f;
211213
}
212214
save();
213215
}
216+
214217
public void advanceMusicVolMul() {
215-
if (musicVolumeMultiplier == 0) {
216-
musicVolumeMultiplier = .33f;
217-
} else if (musicVolumeMultiplier < .4f) {
218-
musicVolumeMultiplier = .66f;
219-
} else if (musicVolumeMultiplier < .7f) {
220-
musicVolumeMultiplier = 1;
221-
} else {
222-
musicVolumeMultiplier = 0;
223-
}
224-
save();
225-
MusicManager.getInstance().resetVolume(this);
218+
if (musicVolumeMultiplier == 0.f) {
219+
musicVolumeMultiplier = 0.25f;
220+
} else if (musicVolumeMultiplier == 0.25f) {
221+
musicVolumeMultiplier = 0.5f;
222+
} else if (musicVolumeMultiplier == 0.5f) {
223+
musicVolumeMultiplier = 0.75f;
224+
} else if(musicVolumeMultiplier == 0.75f) {
225+
musicVolumeMultiplier = 1.f;
226+
} else {
227+
musicVolumeMultiplier = 0.f;
228+
}
229+
save();
230+
MusicManager.getInstance().setVolume(musicVolumeMultiplier);
226231
}
227232

228233
/**
@@ -868,4 +873,20 @@ public int getControllerButtonDown() {
868873
public void setControllerButtonDown(int controllerButtonDown) {
869874
this.controllerButtonDown = controllerButtonDown;
870875
}
876+
877+
public String getSFXVolumeAsText() {
878+
if (sfxVolumeMultiplier == 0.f) return "Off";
879+
if (sfxVolumeMultiplier == 0.25f) return "Low";
880+
if (sfxVolumeMultiplier == 0.5f) return "Medium";
881+
if (sfxVolumeMultiplier == 0.75f) return "High";
882+
return "Max";
883+
}
884+
885+
public String getMusicVolumeAsText() {
886+
if (musicVolumeMultiplier == 0.f) return "Off";
887+
if (musicVolumeMultiplier == 0.25f) return "Low";
888+
if (musicVolumeMultiplier == 0.5f) return "Medium";
889+
if (musicVolumeMultiplier == 0.75f) return "High";
890+
return "Max";
891+
}
871892
}

main/src/org/destinationsol/game/screens/MenuScreen.java

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@ public MenuScreen(MenuLayout menuLayout, GameOptions gameOptions) {
4242
myControls = new ArrayList<SolUiControl>();
4343

4444
myDoNotSellEquippedControl = new SolUiControl(menuLayout.buttonRect(-1, -1), true);
45-
myDoNotSellEquippedControl.setDisplayName("Can't sell equipped items");
45+
myDoNotSellEquippedControl.setDisplayName("Can sell used items");
4646
myControls.add(myDoNotSellEquippedControl);
4747
mySoundVolCtrl = new SolUiControl(menuLayout.buttonRect(-1, 1), true);
48-
mySoundVolCtrl.setDisplayName("Sound Vol");
48+
mySoundVolCtrl.setDisplayName("Sound Volume");
4949
myControls.add(mySoundVolCtrl);
5050
myMusVolCtrl = new SolUiControl(menuLayout.buttonRect(-1, 0), true);
51-
myMusVolCtrl.setDisplayName("Music Vol");
51+
myMusVolCtrl.setDisplayName("Music Volume");
5252
myControls.add(myMusVolCtrl);
5353
myRespawnCtrl = new SolUiControl(menuLayout.buttonRect(-1, 2), true);
5454
myRespawnCtrl.setDisplayName("Respawn");
@@ -72,11 +72,11 @@ public void updateCustom(SolApplication cmp, SolInputManager.Ptr[] ptrs, boolean
7272
g.setPaused(true);
7373
SolInputManager im = cmp.getInputMan();
7474
GameOptions options = cmp.getOptions();
75-
mySoundVolCtrl.setDisplayName("Sound Volume: " + getSFXVolumeAsText(options));
75+
mySoundVolCtrl.setDisplayName("Sound Volume: " + options.getSFXVolumeAsText());
7676
if (mySoundVolCtrl.isJustOff()) {
7777
options.advanceSoundVolMul();
7878
}
79-
myMusVolCtrl.setDisplayName("Music Volume: " + getMusicVolumeAsText(options));
79+
myMusVolCtrl.setDisplayName("Music Volume: " + options.getMusicVolumeAsText());
8080
if(myMusVolCtrl.isJustOff()){
8181
options.advanceMusicVolMul();
8282
}
@@ -99,21 +99,6 @@ public void updateCustom(SolApplication cmp, SolInputManager.Ptr[] ptrs, boolean
9999
}
100100
}
101101

102-
private String getSFXVolumeAsText(GameOptions options) {
103-
float volMul = options.sfxVolumeMultiplier;
104-
if (volMul == 0) return "Off";
105-
else if (volMul < .4f) return "Low";
106-
else if (volMul < .7f) return "High";
107-
else {return "Max";}
108-
}
109-
private String getMusicVolumeAsText(GameOptions options)
110-
{
111-
float musMul = options.musicVolumeMultiplier;
112-
if (musMul == 0) return "Off";
113-
if (musMul < .4f) return "Low";
114-
if (musMul < .7f) return "High";
115-
return "Max";
116-
}
117102
@Override
118103
public void drawBg(UiDrawer uiDrawer, SolApplication cmp) {
119104
uiDrawer.draw(uiDrawer.filler, SolColor.UI_BG);

main/src/org/destinationsol/game/sound/MusicManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ public void StopMusic() {
108108
}
109109
}
110110

111-
public void resetVolume(GameOptions options)
111+
public void setVolume(float volumeMultiplier)
112112
{
113-
currentlyPlaying.setVolume(options.musicVolumeMultiplier);
113+
currentlyPlaying.setVolume(volumeMultiplier);
114114
}
115115
}

main/src/org/destinationsol/menu/OptionsScreen.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public class OptionsScreen implements SolUiScreen {
3333
private final SolUiControl myResoCtrl;
3434
private final SolUiControl myControlTypeCtrl;
3535
private final SolUiControl inputMapCtrl;
36+
private final SolUiControl mySoundVolCtrl;
37+
private final SolUiControl myMusVolCtrl;
3638

3739
public OptionsScreen(MenuLayout menuLayout, GameOptions gameOptions) {
3840

@@ -53,6 +55,14 @@ public OptionsScreen(MenuLayout menuLayout, GameOptions gameOptions) {
5355
myBackCtrl = new SolUiControl(menuLayout.buttonRect(-1, 4), true, gameOptions.getKeyEscape());
5456
myBackCtrl.setDisplayName("Back");
5557
myControls.add(myBackCtrl);
58+
59+
mySoundVolCtrl = new SolUiControl(menuLayout.buttonRect(-1, 0), true);
60+
mySoundVolCtrl.setDisplayName("Sound Volume");
61+
myControls.add(mySoundVolCtrl);
62+
63+
myMusVolCtrl = new SolUiControl(menuLayout.buttonRect(-1, -1), true);
64+
myMusVolCtrl.setDisplayName("Music Volume");
65+
myControls.add(myMusVolCtrl);
5666
}
5767

5868
@Override
@@ -64,6 +74,7 @@ public List<SolUiControl> getControls() {
6474
public void updateCustom(SolApplication cmp, SolInputManager.Ptr[] ptrs, boolean clickedOutside) {
6575
SolInputManager im = cmp.getInputMan();
6676
MenuScreens screens = cmp.getMenuScreens();
77+
GameOptions options = cmp.getOptions();
6778
if (myResoCtrl.isJustOff()) {
6879
im.setScreen(cmp, screens.resolutionScreen);
6980
}
@@ -92,6 +103,15 @@ public void updateCustom(SolApplication cmp, SolInputManager.Ptr[] ptrs, boolean
92103
}
93104
im.setScreen(cmp, screens.inputMapScreen);
94105
}
106+
107+
mySoundVolCtrl.setDisplayName("Sound Volume: " + options.getSFXVolumeAsText());
108+
if (mySoundVolCtrl.isJustOff()) {
109+
options.advanceSoundVolMul();
110+
}
111+
myMusVolCtrl.setDisplayName("Music Volume: " + options.getMusicVolumeAsText());
112+
if(myMusVolCtrl.isJustOff()){
113+
options.advanceMusicVolMul();
114+
}
95115
}
96116

97117
@Override

0 commit comments

Comments
 (0)