sounds variability + first step fix

This commit is contained in:
MihailRis 2024-03-09 02:10:19 +03:00
parent 87dd1dd6b2
commit bfc3182ed3
4 changed files with 23 additions and 9 deletions

View File

@ -249,6 +249,12 @@ speakerid_t audio::play(
int priority,
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);
if (speaker == nullptr) {
remove_lower_priority_speaker(priority);

View File

@ -57,3 +57,7 @@ Level* LevelController::getLevel() {
Player* LevelController::getPlayer() {
return player->getPlayer();
}
PlayerController* LevelController::getPlayerController() {
return player.get();
}

View File

@ -11,7 +11,7 @@
class Level;
class Player;
/* LevelController manages other controllers */
/// @brief LevelController manages other controllers
class LevelController {
EngineSettings& settings;
std::unique_ptr<Level> level;
@ -22,20 +22,22 @@ class LevelController {
public:
LevelController(EngineSettings& settings, Level* level);
/*
@param delta time elapsed since the last update
@param input is user input allowed to be handled
@param pause is world and player simulation paused
*/
void update(float delta,
bool input,
bool pause);
/// @param delta time elapsed since the last update
/// @param input is user input allowed to be handled
/// @param pause is world and player simulation paused
void update(
float delta,
bool input,
bool pause
);
void onWorldSave();
void onWorldQuit();
Level* getLevel();
Player* getPlayer();
PlayerController* getPlayerController();
};
#endif // LOGIC_LEVEL_CONTROLLER_H_

View File

@ -226,6 +226,8 @@ void PlayerController::updateFootsteps(float delta) {
stepsTimer = fmod(stepsTimer, M_PI);
onFootstep();
}
} else {
stepsTimer = M_PI;
}
}