mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-11 22:11:51 +00:00
sounds variability + first step fix
This commit is contained in:
parent
87dd1dd6b2
commit
bfc3182ed3
4 changed files with 23 additions and 9 deletions
|
|
@ -249,6 +249,12 @@ speakerid_t audio::play(
|
||||||
int priority,
|
int priority,
|
||||||
int channel
|
int channel
|
||||||
) {
|
) {
|
||||||
|
if (!sound->variants.empty()) {
|
||||||
|
size_t index = rand() % (sound->variants.size() + 1);
|
||||||
|
if (index < sound->variants.size()) {
|
||||||
|
sound = sound->variants.at(index).get();
|
||||||
|
}
|
||||||
|
}
|
||||||
Speaker* speaker = sound->newInstance(priority, channel);
|
Speaker* speaker = sound->newInstance(priority, channel);
|
||||||
if (speaker == nullptr) {
|
if (speaker == nullptr) {
|
||||||
remove_lower_priority_speaker(priority);
|
remove_lower_priority_speaker(priority);
|
||||||
|
|
|
||||||
|
|
@ -57,3 +57,7 @@ Level* LevelController::getLevel() {
|
||||||
Player* LevelController::getPlayer() {
|
Player* LevelController::getPlayer() {
|
||||||
return player->getPlayer();
|
return player->getPlayer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PlayerController* LevelController::getPlayerController() {
|
||||||
|
return player.get();
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
class Level;
|
class Level;
|
||||||
class Player;
|
class Player;
|
||||||
|
|
||||||
/* LevelController manages other controllers */
|
/// @brief LevelController manages other controllers
|
||||||
class LevelController {
|
class LevelController {
|
||||||
EngineSettings& settings;
|
EngineSettings& settings;
|
||||||
std::unique_ptr<Level> level;
|
std::unique_ptr<Level> level;
|
||||||
|
|
@ -22,20 +22,22 @@ class LevelController {
|
||||||
public:
|
public:
|
||||||
LevelController(EngineSettings& settings, Level* level);
|
LevelController(EngineSettings& settings, Level* level);
|
||||||
|
|
||||||
/*
|
/// @param delta time elapsed since the last update
|
||||||
@param delta time elapsed since the last update
|
/// @param input is user input allowed to be handled
|
||||||
@param input is user input allowed to be handled
|
/// @param pause is world and player simulation paused
|
||||||
@param pause is world and player simulation paused
|
void update(
|
||||||
*/
|
float delta,
|
||||||
void update(float delta,
|
bool input,
|
||||||
bool input,
|
bool pause
|
||||||
bool pause);
|
);
|
||||||
|
|
||||||
void onWorldSave();
|
void onWorldSave();
|
||||||
void onWorldQuit();
|
void onWorldQuit();
|
||||||
|
|
||||||
Level* getLevel();
|
Level* getLevel();
|
||||||
Player* getPlayer();
|
Player* getPlayer();
|
||||||
|
|
||||||
|
PlayerController* getPlayerController();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LOGIC_LEVEL_CONTROLLER_H_
|
#endif // LOGIC_LEVEL_CONTROLLER_H_
|
||||||
|
|
|
||||||
|
|
@ -226,6 +226,8 @@ void PlayerController::updateFootsteps(float delta) {
|
||||||
stepsTimer = fmod(stepsTimer, M_PI);
|
stepsTimer = fmod(stepsTimer, M_PI);
|
||||||
onFootstep();
|
onFootstep();
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
stepsTimer = M_PI;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue