1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-16 10:04:28 +02:00

#23 fix AV in texture packing; fix sound fade for inventory screen

This commit is contained in:
XProger
2017-08-27 00:24:06 +03:00
parent a8879ae585
commit a8ebe9da20

View File

@@ -483,7 +483,7 @@ struct Level : IGame {
} }
// repack texture tiles // repack texture tiles
Atlas *tiles = new Atlas(level.objectTexturesCount + level.spriteTexturesCount, &level, fillCallback); Atlas *tiles = new Atlas(level.objectTexturesCount + level.spriteTexturesCount + 3, &level, fillCallback);
// add textures // add textures
int startIdx = level.version == TR::Level::VER_TR1_PSX ? 256 : 0; // skip palette color for PSX version int startIdx = level.version == TR::Level::VER_TR1_PSX ? 256 : 0; // skip palette color for PSX version
for (int i = startIdx; i < level.objectTexturesCount; i++) { for (int i = startIdx; i < level.objectTexturesCount; i++) {
@@ -754,13 +754,14 @@ struct Level : IGame {
lara->reset(TR::NO_ROOM, camera->pos, camera->angle.y, false); lara->reset(TR::NO_ROOM, camera->pos, camera->angle.y, false);
} }
#endif #endif
Sound::Sample *sndChanged = sndCurrent;
if (isTitle()) { if (isTitle()) {
sndCurrent->setVolume(0.0f, 0.5f);
Sound::reverb.setRoomSize(vec3(1.0f)); Sound::reverb.setRoomSize(vec3(1.0f));
inventory.update(); inventory.update();
return;
}
sndChanged = NULL;
} else {
params->time += Core::deltaTime; params->time += Core::deltaTime;
Controller *c = Controller::first; Controller *c = Controller::first;
@@ -771,17 +772,19 @@ struct Level : IGame {
} }
camera->update(); camera->update();
Sound::Sample *sndChanged = camera->isUnderwater() ? sndUnderwater : sndSoundtrack; if (waterCache)
waterCache->update();
Controller::clearInactive();
sndChanged = camera->isUnderwater() ? sndUnderwater : sndSoundtrack;
}
if (sndChanged != sndCurrent) { if (sndChanged != sndCurrent) {
if (sndCurrent) sndCurrent->setVolume(0.0f, 0.2f); if (sndCurrent) sndCurrent->setVolume(0.0f, 0.2f);
if (sndChanged) sndChanged->setVolume(1.0f, 0.2f); if (sndChanged) sndChanged->setVolume(1.0f, 0.2f);
sndCurrent = sndChanged; sndCurrent = sndChanged;
} }
if (waterCache)
waterCache->update();
Controller::clearInactive();
} }
void setup() { void setup() {