sounds variability + first step fix
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user