mirror of
https://github.com/isledecomp/isle.pizza.git
synced 2026-01-10 18:21:15 +00:00
Improvements
This commit is contained in:
parent
96097a01bc
commit
17eefb0be6
15
app.js
15
app.js
@ -407,6 +407,9 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
document.getElementById('config-form').querySelectorAll('input, select').forEach(element => {
|
||||
element.disabled = true;
|
||||
});
|
||||
document.querySelectorAll('.preset-btn').forEach(btn => {
|
||||
btn.disabled = true;
|
||||
});
|
||||
return null;
|
||||
}
|
||||
},
|
||||
@ -688,9 +691,12 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
const updateReloadBtn = document.getElementById('update-reload-btn');
|
||||
const updateDismissBtn = document.getElementById('update-dismiss-btn');
|
||||
|
||||
function showUpdatePopup() {
|
||||
let waitingServiceWorker = null;
|
||||
|
||||
function showUpdatePopup(waitingSW) {
|
||||
if (updatePopup) {
|
||||
updatePopup.style.display = 'flex';
|
||||
waitingServiceWorker = waitingSW;
|
||||
}
|
||||
}
|
||||
|
||||
@ -702,6 +708,9 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
|
||||
if (updateReloadBtn) {
|
||||
updateReloadBtn.addEventListener('click', () => {
|
||||
if (waitingServiceWorker) {
|
||||
waitingServiceWorker.postMessage({ type: 'SKIP_WAITING' });
|
||||
}
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
@ -782,7 +791,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
|
||||
// Check if there's already a waiting service worker (update ready)
|
||||
if (swRegistration.waiting) {
|
||||
showUpdatePopup();
|
||||
showUpdatePopup(swRegistration.waiting);
|
||||
}
|
||||
|
||||
// Listen for new service worker updates
|
||||
@ -793,7 +802,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
// When the new worker is installed and waiting, show the update popup
|
||||
// Only show if there's an existing controller (this is an update, not first install)
|
||||
if (newWorker.state === 'installed' && navigator.serviceWorker.controller) {
|
||||
showUpdatePopup();
|
||||
showUpdatePopup(newWorker);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<link rel="preload" href="isle.wasm" as="fetch" crossorigin>
|
||||
<link rel="preload" href="install.webp" as="image">
|
||||
<link rel="preload" href="island.webp" as="image">
|
||||
<link rel="preload" href="bonus.webp" as="image">
|
||||
<link rel="preload" href="bonus.webp" as="image">
|
||||
|
||||
<meta name="description"
|
||||
content="Play the classic 1997 PC game LEGO® Island directly in your web browser! This fan-made web port, built with Emscripten from the isledecomp project, brings the beloved adventure back to life.">
|
||||
@ -370,7 +370,8 @@
|
||||
|
||||
<div class="tab-panel" id="tab-manual">
|
||||
<div class="manual-container">
|
||||
<iframe src="comic.pdf" class="manual-pdf" title="LEGO Island Instruction Manual"></iframe>
|
||||
<p class="manual-description">The original 15-page instruction manual from the 1997 CD-ROM release.</p>
|
||||
<a href="comic.pdf" target="_blank" rel="noopener" class="manual-open-btn">Open Manual in New Tab</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -847,7 +848,7 @@
|
||||
</div>
|
||||
|
||||
<div class="app-footer">
|
||||
<p>Last updated: <span id="app-version">2026-01-04 22:40:07 UTC</span></p>
|
||||
<p>Last updated: <span id="app-version">2026-01-04 22:56:00 UTC</span></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
47
style.css
47
style.css
@ -400,6 +400,12 @@ body {
|
||||
transform: scale(0.98);
|
||||
}
|
||||
|
||||
.preset-btn:disabled {
|
||||
opacity: 0.5;
|
||||
cursor: not-allowed;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* Config tabs */
|
||||
.config-tabs {
|
||||
flex-grow: 1;
|
||||
@ -1035,30 +1041,35 @@ select {
|
||||
color: #FFD700;
|
||||
}
|
||||
|
||||
/* Manual PDF Section */
|
||||
/* Manual Section */
|
||||
.manual-container {
|
||||
width: 100%;
|
||||
margin-top: 15px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 15px;
|
||||
}
|
||||
|
||||
.manual-pdf {
|
||||
width: 100%;
|
||||
height: 600px;
|
||||
border: 1px solid #333;
|
||||
.manual-description {
|
||||
color: #888;
|
||||
font-size: 0.95em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.manual-open-btn {
|
||||
display: inline-block;
|
||||
padding: 12px 24px;
|
||||
background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);
|
||||
border: 1px solid #FFD700;
|
||||
border-radius: 8px;
|
||||
background-color: #1c1c1c;
|
||||
color: #FFD700;
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.manual-pdf {
|
||||
height: 450px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.manual-pdf {
|
||||
height: 350px;
|
||||
}
|
||||
.manual-open-btn:hover {
|
||||
background: linear-gradient(135deg, #333 0%, #222 100%);
|
||||
box-shadow: 0 0 10px rgba(255, 215, 0, 0.3);
|
||||
}
|
||||
|
||||
/* Voices Section */
|
||||
|
||||
2
sw.js
2
sw.js
@ -10,7 +10,7 @@ const { Strategy } = workbox.strategies;
|
||||
const { CacheableResponsePlugin } = workbox.cacheableResponse;
|
||||
const { RangeRequestsPlugin } = workbox.rangeRequests;
|
||||
|
||||
precacheAndRoute([{"revision":"0338231ebc0aff76ea0b7563cae96530","url":"index.html"},{"revision":"013ceb7d67293d532e979dde0347f3af","url":"cancel_off.webp"},{"revision":"bfc1563be018d82685716c6130529129","url":"cancel_on.webp"},{"revision":"d282c260fd35522036936bb6faf8ad21","url":"cdspin.gif"},{"revision":"3d820bf72b19bd4e437a61e75f317b83","url":"configure_off.webp"},{"revision":"e2c0c5e6aa1f7703c385a433a2d2a519","url":"configure_on.webp"},{"revision":"88e1e81c930d8e6c24dfdc7af274e812","url":"favicon.png"},{"revision":"d16b293eca457e2fb1e7ef2caca8c904","url":"favicon.svg"},{"revision":"d2b9c2e128ef1e5e4265c603b0bc3305","url":"free_stuff_off.webp"},{"revision":"cbc6a6779897f932c3a3c8dceb329804","url":"free_stuff_on.webp"},{"revision":"05fba4ef1884cbbd6afe09ea3325efc0","url":"install_off.webp"},{"revision":"11247e92082ba3d978a2e3785b0acf51","url":"install_on.webp"},{"revision":"d23ea8243c18eb217ef08fe607097824","url":"island.webp"},{"revision":"c97d78e159b8bff44d41e56d0aa20220","url":"isle.js"},{"revision":"5f174d45de1e3c5e0abdbccfd64567b6","url":"isle.wasm"},{"revision":"6d4248f1a08c218943e582673179b7be","url":"poster.pdf"},{"revision":"a6fcac24a24996545c039a1755af33ea","url":"read_me_off.webp"},{"revision":"aae783d064996b4322e23b092d97ea4a","url":"read_me_on.webp"},{"revision":"766a9e6e6d890f24cef252e81753b29d","url":"run_game_off.webp"},{"revision":"70208e00e9ea641e4c98699f74100db3","url":"run_game_on.webp"},{"revision":"0a65c71d9983c9bb1bc6a5f405fd6fd9","url":"shark.webp"},{"revision":"88c1fd032e6fc16814690712a26c1ede","url":"uninstall_off.webp"},{"revision":"0118a4aca04c5fb0a525bf00b001844e","url":"uninstall_on.webp"},{"revision":"e8a8dd113d9bbfa2a1b81bbafa7b673d","url":"app.js"},{"revision":"debda137e612dedce0d0e7f7b545588f","url":"style.css"},{"revision":"060210979e13e305510de6285e085db1","url":"manifest.json"},{"revision":"4f0172bc7007d34cebf681cc233ab57f","url":"install.webp"},{"revision":"6a70d35dadf51d2ec6e38a6202d7fb0b","url":"install.mp3"},{"revision":"eac041a0b8835bfea706d997b0b7b224","url":"downloader.js"},{"revision":"6899f72755d4e84c707b93ac54a8fb06","url":"debug.js"},{"revision":"7817b36ddda9f07797c05a0ff6cacb21","url":"debug.html"},{"revision":"4ea2aac9446188b8a588811bc593919e","url":"ogel.webp"},{"revision":"c57d24598537443c5b8276c8dd5dbdc9","url":"bonus.webp"},{"revision":"d11c8c893d5525c8842555dc2861c393","url":"callfail.webp"},{"revision":"be9a89fb567b632cf8d4661cbf8afd9e","url":"getinfo.webp"},{"revision":"fe986681f41e96631f39f3288b23e538","url":"sysinfo.webp"},{"revision":"4ec902e0b0ce60ffd9dd565c9ddf40a1","url":"send.webp"},{"revision":"81f3c8fc38b876dc2fcfeefaadad1d1b","url":"congrats.webp"},{"revision":"f906318cb87e09a819e5916676caab2e","url":"register.webp"},{"revision":"c633a7500e6f30162bf1cf4ec4e95a6d","url":"later.webp"},{"revision":"d149d5709ac00fd5e2967ab4f3d74886","url":"comic.pdf"}]);
|
||||
precacheAndRoute([{"revision":"56b3874bf39f8fd870f0d1bc208107e1","url":"index.html"},{"revision":"013ceb7d67293d532e979dde0347f3af","url":"cancel_off.webp"},{"revision":"bfc1563be018d82685716c6130529129","url":"cancel_on.webp"},{"revision":"d282c260fd35522036936bb6faf8ad21","url":"cdspin.gif"},{"revision":"3d820bf72b19bd4e437a61e75f317b83","url":"configure_off.webp"},{"revision":"e2c0c5e6aa1f7703c385a433a2d2a519","url":"configure_on.webp"},{"revision":"88e1e81c930d8e6c24dfdc7af274e812","url":"favicon.png"},{"revision":"d16b293eca457e2fb1e7ef2caca8c904","url":"favicon.svg"},{"revision":"d2b9c2e128ef1e5e4265c603b0bc3305","url":"free_stuff_off.webp"},{"revision":"cbc6a6779897f932c3a3c8dceb329804","url":"free_stuff_on.webp"},{"revision":"05fba4ef1884cbbd6afe09ea3325efc0","url":"install_off.webp"},{"revision":"11247e92082ba3d978a2e3785b0acf51","url":"install_on.webp"},{"revision":"d23ea8243c18eb217ef08fe607097824","url":"island.webp"},{"revision":"c97d78e159b8bff44d41e56d0aa20220","url":"isle.js"},{"revision":"5f174d45de1e3c5e0abdbccfd64567b6","url":"isle.wasm"},{"revision":"6d4248f1a08c218943e582673179b7be","url":"poster.pdf"},{"revision":"a6fcac24a24996545c039a1755af33ea","url":"read_me_off.webp"},{"revision":"aae783d064996b4322e23b092d97ea4a","url":"read_me_on.webp"},{"revision":"766a9e6e6d890f24cef252e81753b29d","url":"run_game_off.webp"},{"revision":"70208e00e9ea641e4c98699f74100db3","url":"run_game_on.webp"},{"revision":"0a65c71d9983c9bb1bc6a5f405fd6fd9","url":"shark.webp"},{"revision":"88c1fd032e6fc16814690712a26c1ede","url":"uninstall_off.webp"},{"revision":"0118a4aca04c5fb0a525bf00b001844e","url":"uninstall_on.webp"},{"revision":"ae9cf89bb78e59232bf16589adfb0cc9","url":"app.js"},{"revision":"3be62bbd2c9dbb1d15c423ebe8da7793","url":"style.css"},{"revision":"060210979e13e305510de6285e085db1","url":"manifest.json"},{"revision":"4f0172bc7007d34cebf681cc233ab57f","url":"install.webp"},{"revision":"6a70d35dadf51d2ec6e38a6202d7fb0b","url":"install.mp3"},{"revision":"eac041a0b8835bfea706d997b0b7b224","url":"downloader.js"},{"revision":"6899f72755d4e84c707b93ac54a8fb06","url":"debug.js"},{"revision":"7817b36ddda9f07797c05a0ff6cacb21","url":"debug.html"},{"revision":"4ea2aac9446188b8a588811bc593919e","url":"ogel.webp"},{"revision":"c57d24598537443c5b8276c8dd5dbdc9","url":"bonus.webp"},{"revision":"d11c8c893d5525c8842555dc2861c393","url":"callfail.webp"},{"revision":"be9a89fb567b632cf8d4661cbf8afd9e","url":"getinfo.webp"},{"revision":"fe986681f41e96631f39f3288b23e538","url":"sysinfo.webp"},{"revision":"4ec902e0b0ce60ffd9dd565c9ddf40a1","url":"send.webp"},{"revision":"81f3c8fc38b876dc2fcfeefaadad1d1b","url":"congrats.webp"},{"revision":"f906318cb87e09a819e5916676caab2e","url":"register.webp"},{"revision":"c633a7500e6f30162bf1cf4ec4e95a6d","url":"later.webp"},{"revision":"d149d5709ac00fd5e2967ab4f3d74886","url":"comic.pdf"}]);
|
||||
|
||||
const gameFiles = [
|
||||
"/LEGO/Scripts/CREDITS.SI", "/LEGO/Scripts/INTRO.SI", "/LEGO/Scripts/NOCD.SI", "/LEGO/Scripts/SNDANIM.SI",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user