diff --git a/audio/asteroid-hit-1.flac b/audio/asteroid-hit-1.flac index c9925aa..ee385d0 100644 Binary files a/audio/asteroid-hit-1.flac and b/audio/asteroid-hit-1.flac differ diff --git a/audio/asteroid-hit-2.flac b/audio/asteroid-hit-2.flac index ae19a76..e28a065 100644 Binary files a/audio/asteroid-hit-2.flac and b/audio/asteroid-hit-2.flac differ diff --git a/audio/asteroid-hit-3.flac b/audio/asteroid-hit-3.flac index 67dfedf..e615535 100644 Binary files a/audio/asteroid-hit-3.flac and b/audio/asteroid-hit-3.flac differ diff --git a/audio/asteroid-hit-4.flac b/audio/asteroid-hit-4.flac index 55b6420..75e0682 100644 Binary files a/audio/asteroid-hit-4.flac and b/audio/asteroid-hit-4.flac differ diff --git a/audio/asteroid-hit-5.flac b/audio/asteroid-hit-5.flac index df4ab96..dd6fc6d 100644 Binary files a/audio/asteroid-hit-5.flac and b/audio/asteroid-hit-5.flac differ diff --git a/audio/asteroid-hit-6.flac b/audio/asteroid-hit-6.flac index a40bf00..079a740 100644 Binary files a/audio/asteroid-hit-6.flac and b/audio/asteroid-hit-6.flac differ diff --git a/audio/asteroid-hit-7.flac b/audio/asteroid-hit-7.flac index 35e785d..6d09826 100644 Binary files a/audio/asteroid-hit-7.flac and b/audio/asteroid-hit-7.flac differ diff --git a/audio/asteroid-hit-8.flac b/audio/asteroid-hit-8.flac index 5a640bf..9bdfa9f 100644 Binary files a/audio/asteroid-hit-8.flac and b/audio/asteroid-hit-8.flac differ diff --git a/audio/build.flac b/audio/build.flac index 488089a..effe2cf 100644 Binary files a/audio/build.flac and b/audio/build.flac differ diff --git a/audio/buy.flac b/audio/buy.flac index 8039406..5e059e5 100644 Binary files a/audio/buy.flac and b/audio/buy.flac differ diff --git a/audio/check-traps.flac b/audio/check-traps.flac index 7650ba7..c183c7f 100644 Binary files a/audio/check-traps.flac and b/audio/check-traps.flac differ diff --git a/audio/craft.flac b/audio/craft.flac index 148fe5f..4ce40b3 100644 Binary files a/audio/craft.flac and b/audio/craft.flac differ diff --git a/audio/crash.flac b/audio/crash.flac index 95ba4fa..b3e749a 100644 Binary files a/audio/crash.flac and b/audio/crash.flac differ diff --git a/audio/death.flac b/audio/death.flac index 57b980f..fe7e3e7 100644 Binary files a/audio/death.flac and b/audio/death.flac differ diff --git a/audio/dusty-path.flac b/audio/dusty-path.flac index 29185e1..abd5f61 100644 Binary files a/audio/dusty-path.flac and b/audio/dusty-path.flac differ diff --git a/audio/eat-meat.flac b/audio/eat-meat.flac index fe98308..63e04e6 100644 Binary files a/audio/eat-meat.flac and b/audio/eat-meat.flac differ diff --git a/audio/embark.flac b/audio/embark.flac index f95b7c0..975b55b 100644 Binary files a/audio/embark.flac and b/audio/embark.flac differ diff --git a/audio/encounter-tier-1.flac b/audio/encounter-tier-1.flac index 91cd213..72fd9b0 100644 Binary files a/audio/encounter-tier-1.flac and b/audio/encounter-tier-1.flac differ diff --git a/audio/encounter-tier-2.flac b/audio/encounter-tier-2.flac index fe7bc79..8d442fb 100644 Binary files a/audio/encounter-tier-2.flac and b/audio/encounter-tier-2.flac differ diff --git a/audio/encounter-tier-3.flac b/audio/encounter-tier-3.flac index 8d8b84b..e837c7a 100644 Binary files a/audio/encounter-tier-3.flac and b/audio/encounter-tier-3.flac differ diff --git a/audio/ending.flac b/audio/ending.flac index 263a6b0..1180439 100644 Binary files a/audio/ending.flac and b/audio/ending.flac differ diff --git a/audio/event-beast-attack.flac b/audio/event-beast-attack.flac index b373ad1..1c605ba 100644 Binary files a/audio/event-beast-attack.flac and b/audio/event-beast-attack.flac differ diff --git a/audio/event-beggar.flac b/audio/event-beggar.flac index e4b4b7a..2a2e49f 100644 Binary files a/audio/event-beggar.flac and b/audio/event-beggar.flac differ diff --git a/audio/event-hut-fire.flac b/audio/event-hut-fire.flac index 7fa6671..6116261 100644 Binary files a/audio/event-hut-fire.flac and b/audio/event-hut-fire.flac differ diff --git a/audio/event-mysterious-wanderer.flac b/audio/event-mysterious-wanderer.flac index 039711f..a29fe20 100644 Binary files a/audio/event-mysterious-wanderer.flac and b/audio/event-mysterious-wanderer.flac differ diff --git a/audio/event-noises-inside.flac b/audio/event-noises-inside.flac index 10f52fd..71f5d8a 100644 Binary files a/audio/event-noises-inside.flac and b/audio/event-noises-inside.flac differ diff --git a/audio/event-noises-outside.flac b/audio/event-noises-outside.flac index ba8abd7..753043f 100644 Binary files a/audio/event-noises-outside.flac and b/audio/event-noises-outside.flac differ diff --git a/audio/event-nomad.flac b/audio/event-nomad.flac index 2a0ccec..a320b73 100644 Binary files a/audio/event-nomad.flac and b/audio/event-nomad.flac differ diff --git a/audio/event-plague.flac b/audio/event-plague.flac index ca932bb..638aa61 100644 Binary files a/audio/event-plague.flac and b/audio/event-plague.flac differ diff --git a/audio/event-ruined-trap.flac b/audio/event-ruined-trap.flac index 6c0a793..dee4e89 100644 Binary files a/audio/event-ruined-trap.flac and b/audio/event-ruined-trap.flac differ diff --git a/audio/event-scout.flac b/audio/event-scout.flac index f805584..3ad1eb1 100644 Binary files a/audio/event-scout.flac and b/audio/event-scout.flac differ diff --git a/audio/event-shady-builder.flac b/audio/event-shady-builder.flac index 3f3a446..48aadc2 100644 Binary files a/audio/event-shady-builder.flac and b/audio/event-shady-builder.flac differ diff --git a/audio/event-sick-man.flac b/audio/event-sick-man.flac index 78edf25..6dbdab6 100644 Binary files a/audio/event-sick-man.flac and b/audio/event-sick-man.flac differ diff --git a/audio/event-sickness.flac b/audio/event-sickness.flac index 2bc3ce3..cac2f87 100644 Binary files a/audio/event-sickness.flac and b/audio/event-sickness.flac differ diff --git a/audio/event-soldier-attack.flac b/audio/event-soldier-attack.flac index 25e240a..a5930a5 100644 Binary files a/audio/event-soldier-attack.flac and b/audio/event-soldier-attack.flac differ diff --git a/audio/event-thief.flac b/audio/event-thief.flac index 3e892d3..f8f78e3 100644 Binary files a/audio/event-thief.flac and b/audio/event-thief.flac differ diff --git a/audio/event-wandering-master.flac b/audio/event-wandering-master.flac index 08b12f7..f7ce9d9 100644 Binary files a/audio/event-wandering-master.flac and b/audio/event-wandering-master.flac differ diff --git a/audio/fire-burning.flac b/audio/fire-burning.flac index 4001198..c53d21d 100644 Binary files a/audio/fire-burning.flac and b/audio/fire-burning.flac differ diff --git a/audio/fire-dead.flac b/audio/fire-dead.flac index ef908ad..70ad041 100644 Binary files a/audio/fire-dead.flac and b/audio/fire-dead.flac differ diff --git a/audio/fire-flickering.flac b/audio/fire-flickering.flac index ac4099f..7aea4fc 100644 Binary files a/audio/fire-flickering.flac and b/audio/fire-flickering.flac differ diff --git a/audio/fire-roaring.flac b/audio/fire-roaring.flac index 1bf5cfd..da7bea9 100644 Binary files a/audio/fire-roaring.flac and b/audio/fire-roaring.flac differ diff --git a/audio/fire-smoldering.flac b/audio/fire-smoldering.flac index bb05cef..d4d3edf 100644 Binary files a/audio/fire-smoldering.flac and b/audio/fire-smoldering.flac differ diff --git a/audio/footsteps-1.flac b/audio/footsteps-1.flac index 17cd3c3..24a02db 100644 Binary files a/audio/footsteps-1.flac and b/audio/footsteps-1.flac differ diff --git a/audio/footsteps-2.flac b/audio/footsteps-2.flac index bb0918c..a2b3b75 100644 Binary files a/audio/footsteps-2.flac and b/audio/footsteps-2.flac differ diff --git a/audio/footsteps-3.flac b/audio/footsteps-3.flac index a04f571..0b2f680 100644 Binary files a/audio/footsteps-3.flac and b/audio/footsteps-3.flac differ diff --git a/audio/footsteps-4.flac b/audio/footsteps-4.flac index c5d232c..d3aac9d 100644 Binary files a/audio/footsteps-4.flac and b/audio/footsteps-4.flac differ diff --git a/audio/footsteps-5.flac b/audio/footsteps-5.flac index 42046a8..ad0e8e7 100644 Binary files a/audio/footsteps-5.flac and b/audio/footsteps-5.flac differ diff --git a/audio/footsteps-6.flac b/audio/footsteps-6.flac index 5c29363..c4e87af 100644 Binary files a/audio/footsteps-6.flac and b/audio/footsteps-6.flac differ diff --git a/audio/gather-wood.flac b/audio/gather-wood.flac index 3ecb921..3193909 100644 Binary files a/audio/gather-wood.flac and b/audio/gather-wood.flac differ diff --git a/audio/landmark-battlefield.flac b/audio/landmark-battlefield.flac index 83bedae..55d44df 100644 Binary files a/audio/landmark-battlefield.flac and b/audio/landmark-battlefield.flac differ diff --git a/audio/landmark-borehole.flac b/audio/landmark-borehole.flac index 726641e..a1afdc3 100644 Binary files a/audio/landmark-borehole.flac and b/audio/landmark-borehole.flac differ diff --git a/audio/landmark-cave.flac b/audio/landmark-cave.flac index 6d2e325..e409890 100644 Binary files a/audio/landmark-cave.flac and b/audio/landmark-cave.flac differ diff --git a/audio/landmark-city.flac b/audio/landmark-city.flac index bfa8627..d7546cf 100644 Binary files a/audio/landmark-city.flac and b/audio/landmark-city.flac differ diff --git a/audio/landmark-coalmine.flac b/audio/landmark-coalmine.flac index a6f9e0a..bf49699 100644 Binary files a/audio/landmark-coalmine.flac and b/audio/landmark-coalmine.flac differ diff --git a/audio/landmark-crashed-ship.flac b/audio/landmark-crashed-ship.flac index 9252fca..69ada81 100644 Binary files a/audio/landmark-crashed-ship.flac and b/audio/landmark-crashed-ship.flac differ diff --git a/audio/landmark-destroyed-village.flac b/audio/landmark-destroyed-village.flac index 00f6153..f6e07b0 100644 Binary files a/audio/landmark-destroyed-village.flac and b/audio/landmark-destroyed-village.flac differ diff --git a/audio/landmark-friendly-outpost.flac b/audio/landmark-friendly-outpost.flac index aaded16..17a87e5 100644 Binary files a/audio/landmark-friendly-outpost.flac and b/audio/landmark-friendly-outpost.flac differ diff --git a/audio/landmark-house.flac b/audio/landmark-house.flac index 54cca37..d8713c4 100644 Binary files a/audio/landmark-house.flac and b/audio/landmark-house.flac differ diff --git a/audio/landmark-ironmine.flac b/audio/landmark-ironmine.flac index 912e66c..07225e1 100644 Binary files a/audio/landmark-ironmine.flac and b/audio/landmark-ironmine.flac differ diff --git a/audio/landmark-sulphurmine.flac b/audio/landmark-sulphurmine.flac index 76566c6..bb36b63 100644 Binary files a/audio/landmark-sulphurmine.flac and b/audio/landmark-sulphurmine.flac differ diff --git a/audio/landmark-swamp.flac b/audio/landmark-swamp.flac index 54835b1..c394458 100644 Binary files a/audio/landmark-swamp.flac and b/audio/landmark-swamp.flac differ diff --git a/audio/landmark-town.flac b/audio/landmark-town.flac index 147d28b..254f240 100644 Binary files a/audio/landmark-town.flac and b/audio/landmark-town.flac differ diff --git a/audio/large-village.flac b/audio/large-village.flac index 784cc01..bce392e 100644 Binary files a/audio/large-village.flac and b/audio/large-village.flac differ diff --git a/audio/lift-off.flac b/audio/lift-off.flac index 2d71374..5881439 100644 Binary files a/audio/lift-off.flac and b/audio/lift-off.flac differ diff --git a/audio/light-fire.flac b/audio/light-fire.flac index 41f16dc..054a397 100644 Binary files a/audio/light-fire.flac and b/audio/light-fire.flac differ diff --git a/audio/lonely-hut.flac b/audio/lonely-hut.flac index c44a55a..71fec00 100644 Binary files a/audio/lonely-hut.flac and b/audio/lonely-hut.flac differ diff --git a/audio/modest-village.flac b/audio/modest-village.flac index 5f9f5be..752f7de 100644 Binary files a/audio/modest-village.flac and b/audio/modest-village.flac differ diff --git a/audio/raucous-village.flac b/audio/raucous-village.flac index 8f25473..2fccd8a 100644 Binary files a/audio/raucous-village.flac and b/audio/raucous-village.flac differ diff --git a/audio/reinforce-hull.flac b/audio/reinforce-hull.flac index bb1afe9..2e3c534 100644 Binary files a/audio/reinforce-hull.flac and b/audio/reinforce-hull.flac differ diff --git a/audio/ship.flac b/audio/ship.flac index 8699628..4d8febf 100644 Binary files a/audio/ship.flac and b/audio/ship.flac differ diff --git a/audio/silent-forest.flac b/audio/silent-forest.flac index a08e412..5f6e855 100644 Binary files a/audio/silent-forest.flac and b/audio/silent-forest.flac differ diff --git a/audio/space.flac b/audio/space.flac index 5bbe559..1c493ee 100644 Binary files a/audio/space.flac and b/audio/space.flac differ diff --git a/audio/stoke-fire.flac b/audio/stoke-fire.flac index 1889375..592cb50 100644 Binary files a/audio/stoke-fire.flac and b/audio/stoke-fire.flac differ diff --git a/audio/tiny-village.flac b/audio/tiny-village.flac index c61671b..8cb9678 100644 Binary files a/audio/tiny-village.flac and b/audio/tiny-village.flac differ diff --git a/audio/upgrade-engine.flac b/audio/upgrade-engine.flac index 05fa516..8c52c47 100644 Binary files a/audio/upgrade-engine.flac and b/audio/upgrade-engine.flac differ diff --git a/audio/use-meds.flac b/audio/use-meds.flac index 0e63bb1..6dda518 100644 Binary files a/audio/use-meds.flac and b/audio/use-meds.flac differ diff --git a/audio/weapon-melee-1.flac b/audio/weapon-melee-1.flac index ed0c0dd..7eeb45f 100644 Binary files a/audio/weapon-melee-1.flac and b/audio/weapon-melee-1.flac differ diff --git a/audio/weapon-melee-2.flac b/audio/weapon-melee-2.flac index d203c3d..267cd37 100644 Binary files a/audio/weapon-melee-2.flac and b/audio/weapon-melee-2.flac differ diff --git a/audio/weapon-melee-3.flac b/audio/weapon-melee-3.flac index 7094f9d..02c31f8 100644 Binary files a/audio/weapon-melee-3.flac and b/audio/weapon-melee-3.flac differ diff --git a/audio/weapon-ranged-1.flac b/audio/weapon-ranged-1.flac index a12399e..b113141 100644 Binary files a/audio/weapon-ranged-1.flac and b/audio/weapon-ranged-1.flac differ diff --git a/audio/weapon-ranged-2.flac b/audio/weapon-ranged-2.flac index f813a89..d4acff4 100644 Binary files a/audio/weapon-ranged-2.flac and b/audio/weapon-ranged-2.flac differ diff --git a/audio/weapon-ranged-3.flac b/audio/weapon-ranged-3.flac index c29fb98..db490d2 100644 Binary files a/audio/weapon-ranged-3.flac and b/audio/weapon-ranged-3.flac differ diff --git a/audio/weapon-unarmed-1.flac b/audio/weapon-unarmed-1.flac index 076a74d..d27939c 100644 Binary files a/audio/weapon-unarmed-1.flac and b/audio/weapon-unarmed-1.flac differ diff --git a/audio/weapon-unarmed-2.flac b/audio/weapon-unarmed-2.flac index 45a4ad9..165b5c4 100644 Binary files a/audio/weapon-unarmed-2.flac and b/audio/weapon-unarmed-2.flac differ diff --git a/audio/weapon-unarmed-3.flac b/audio/weapon-unarmed-3.flac index 6987bbf..e7e351f 100644 Binary files a/audio/weapon-unarmed-3.flac and b/audio/weapon-unarmed-3.flac differ diff --git a/audio/world.flac b/audio/world.flac index a264b2e..d8d38c2 100644 Binary files a/audio/world.flac and b/audio/world.flac differ diff --git a/script/audio.js b/script/audio.js index 58e5cad..4b0ffc1 100644 --- a/script/audio.js +++ b/script/audio.js @@ -12,15 +12,21 @@ var AudioEngine = { _initialized: false, init: function () { AudioEngine._initAudioContext(); + // AudioEngine._preloadAudio(); // removed to save bandwidth + AudioEngine._initialized = true; + }, + _preloadAudio: function () { // start loading music and events early + // ** could be used later if we specify a better set of + // audio files to preload -- i.e. we probably don't need to load + // the later villages or events audio, and esp. not the ending for (var key in AudioLibrary) { - if ( + if ( key.toString().indexOf('MUSIC_') > -1 || key.toString().indexOf('EVENT_') > -1) { - AudioEngine.loadAudioFile(AudioLibrary[key]); + AudioEngine.loadAudioFile(AudioLibrary[key]); } } - AudioEngine._initialized = true; }, _initAudioContext: function () { AudioEngine._audioContext = new (window.AudioContext || window.webkitAudioContext); @@ -136,7 +142,9 @@ var AudioEngine = { var fadeTime = AudioEngine._audioContext.currentTime + AudioEngine.FADE_TIME * 2; // fade out event music and stop - if (AudioEngine._currentEventAudio) { + if (AudioEngine._currentEventAudio && + AudioEngine._currentEventAudio.source && + AudioEngine._currentEventAudio.source.buffer) { var currentEventGainValue = AudioEngine._currentEventAudio.envelope.gain.value; AudioEngine._currentEventAudio.envelope.gain.cancelScheduledValues(AudioEngine._audioContext.currentTime); AudioEngine._currentEventAudio.envelope.gain.setValueAtTime(currentEventGainValue, AudioEngine._audioContext.currentTime); @@ -212,10 +220,26 @@ var AudioEngine = { return AudioEngine._getMissingAudioBuffer(); } - return AudioEngine._audioContext.decodeAudioData(buffer, function (decodedData) { + var decodeAudioDataPromise = AudioEngine._audioContext.decodeAudioData(buffer, function (decodedData) { AudioEngine.AUDIO_BUFFER_CACHE[src] = decodedData; return AudioEngine.AUDIO_BUFFER_CACHE[src]; }); + + // Safari WebAudio does not return a promise based API for + // decodeAudioData, so we need to fake it if we want to play + // audio immediately on first fetch + if (decodeAudioDataPromise) { + return decodeAudioDataPromise; + } else { + return new Promise(function (resolve, reject) { + var fakePromiseId = setInterval(function() { + if (AudioEngine.AUDIO_BUFFER_CACHE[src]) { + resolve(AudioEngine.AUDIO_BUFFER_CACHE[src]); + clearInterval(fakePromiseId); + } + }, 20); + }); + } }); } }, diff --git a/script/engine.js b/script/engine.js index cb1a73c..3b17e97 100644 --- a/script/engine.js +++ b/script/engine.js @@ -104,6 +104,15 @@ Engine.loadGame(); } + // start loading music and events early + for (var key in AudioLibrary) { + if ( + key.toString().indexOf('MUSIC_') > -1 || + key.toString().indexOf('EVENT_') > -1) { + AudioEngine.loadAudioFile(AudioLibrary[key]); + } + } + $('