From c4088ec0b1b1ea3ce359bdaed1da79da04d37845 Mon Sep 17 00:00:00 2001 From: BaritoniumGMD Date: Wed, 26 Aug 2026 17:34:42 -0500 Subject: [PATCH 1/4] Fix UFO gravity constants --- assets/scripts/core/player.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/scripts/core/player.js b/assets/scripts/core/player.js index 0ee23f03..433f4e6b 100644 --- a/assets/scripts/core/player.js +++ b/assets/scripts/core/player.js @@ -3809,8 +3809,8 @@ if (this.p.isFlying || this.p.isUfo) { _updateUfoJump(_dt) { const _ufoJump = this.p.isMini ? 13.296 : 13.742; const _ufoMini = window.ufoMiniDiv !== undefined ? window.ufoMiniDiv : 0.85; - const _ufoFastBase = window.ufoFastGrav !== undefined ? window.ufoFastGrav : 0.525; - const _ufoSlowBase = window.ufoSlowGrav !== undefined ? window.ufoSlowGrav : 0.425; + const _ufoFastBase = window.ufoFastGrav !== undefined ? window.ufoFastGrav : 0.540121; + const _ufoSlowBase = window.ufoSlowGrav !== undefined ? window.ufoSlowGrav : 0.450101; const _ufoThreshold = 3.832796; const _ufoFastGrav = this.p.isMini ? _ufoFastBase / _ufoMini : _ufoFastBase; const _ufoSlowGrav = this.p.isMini ? _ufoSlowBase / _ufoMini : _ufoSlowBase; From b908f98f52f9eb2c39853d47e82394937a42f98f Mon Sep 17 00:00:00 2001 From: BaritoniumGMD Date: Wed, 2 Sep 2026 22:11:38 -0500 Subject: [PATCH 2/4] optimization ouu shii --- assets/scripts/core/game-scene.js | 40 +++++++++++++++---------------- assets/scripts/core/level.js | 8 +++++++ index.html | 4 ++-- 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/assets/scripts/core/game-scene.js b/assets/scripts/core/game-scene.js index 9fdead19..1d65d60c 100644 --- a/assets/scripts/core/game-scene.js +++ b/assets/scripts/core/game-scene.js @@ -5097,6 +5097,7 @@ _buildSettingsPopup() { } var infotextstrings = { + "Static Colors": "Skips recoloring objects on frames where their color has not changed. Speeds up busy levels, but colors may lag behind on levels that use pulse triggers.", "Enable Portal Guide": "Enables extra indicators on portals.", "Enable Orb Guide": "Enables extra indicators on orbs.", "Practice Music Bypass": "Plays normal mode music in practice mode.", @@ -5487,6 +5488,22 @@ _buildSettingsPopup() { }; const buildPerformancePage = (container) => { + createToggle(container, column1X, startY + spacingY, "Low Detail Mode", + () => window.enableLDM, + (v) => window.enableLDM = v, + null, + 25, + true, + "Low Detail Mode" + ); + createToggle(container, column1X, startY + (spacingY * 2), "Static Colors", + () => window.optimizeColors, + (v) => window.optimizeColors = v, + null, + 25, + true, + "Static Colors" + ); createNumberInput(container, column1X, startY, "Cull Distance", () => (typeof window.cullDistance !== 'undefined' ? window.cullDistance : 3), (v) => window.cullDistance = v, @@ -5556,6 +5573,7 @@ _buildSettingsPopup() { cullDistance: window.cullDistance, settingInfoText: window.settingInfoText || {}, enableLDM: window.enableLDM, + optimizeColors: !!window.optimizeColors, }; localStorage.setItem("gd_settings", JSON.stringify(settings)); localStorage.setItem("gd_useDirectInternet", String(!!window.useDirectInternet)); @@ -5586,6 +5604,7 @@ _buildSettingsPopup() { enableOrbGuide: false, enableMiniIcon: false, enableLDM: false, + optimizeColors: false, cullDistance: 3 }; @@ -5617,6 +5636,7 @@ _buildSettingsPopup() { window.useDirectInternet = !!data.useDirectInternet; localStorage.setItem("gd_useDirectInternet", String(!!window.useDirectInternet)); window.enableLDM = !!data.enableLDM; + window.optimizeColors = !!data.optimizeColors; } _buildMacroPopup() { if (this._macroPopup) return; @@ -9599,26 +9619,6 @@ _applyMirrorEffect() { this._showwippopup(); }); - const ldmX = _0x2a115c + 160; - const ldmY = 495; - const ldmCheckOffset = -120; - const ldmTextOffset = -80; - - var ldmIsOn = window.enableLDM; - var ldmCheckTexture = ldmIsOn ? "GJ_checkOn_001.png" : "GJ_checkOff_001.png"; - var ldmCheck = this.add.image(ldmX + ldmCheckOffset, ldmY, "GJ_GameSheet03", ldmCheckTexture).setScale(0.8).setInteractive(); - var ldmTxt = this.add.bitmapText(ldmX + ldmTextOffset, ldmY, "bigFont", "Low Detail Mode", 25).setOrigin(0, 0.5); - this._helplayer.add([ldmCheck, ldmTxt]); - - this._makeBouncyButton(ldmCheck, 0.8, () => { - var current = window.enableLDM; - window.enableLDM = !current; - var newTexture = window.enableLDM ? "GJ_checkOn_001.png" : "GJ_checkOff_001.png"; - ldmCheck.setTexture("GJ_GameSheet03", newTexture); - if (this._saveSettings) { - this._saveSettings(); - } - }); const reqbtnX = _0x2a115c + 655; const reqbtnY = 495; diff --git a/assets/scripts/core/level.js b/assets/scripts/core/level.js index 087b3249..203e1a6a 100644 --- a/assets/scripts/core/level.js +++ b/assets/scripts/core/level.js @@ -3335,6 +3335,7 @@ window.LevelObject = class LevelObject { return triggered; } resetColorTriggers() { + this._lastChanHex = {}; this._colorTriggerIdx = 0; this._touchColorTriggerActivated = new Set(); } @@ -3541,6 +3542,9 @@ window.LevelObject = class LevelObject { } } updateObjectDebugIds() { + const _want = !!(window.showObjectIds && !window.enableLDM); + if (this._debugIdsShown === _want) return; + this._debugIdsShown = _want; if (window.showObjectIds && !window.enableLDM) { if (this._debugIdTextsList && this._debugIdTextsList.length > 0) { for (const idText of this._debugIdTextsList) { @@ -4263,10 +4267,14 @@ window.LevelObject = class LevelObject { } applyColorChannels(colorManager) { + const _skipStatic = !!window.optimizeColors; + if (!this._lastChanHex) this._lastChanHex = {}; for (const chId in this._colorChannelSprites) { const sprites = this._colorChannelSprites[chId]; if (!sprites || !sprites.length) continue; const hex = colorManager.getHex(parseInt(chId, 10)); + if (_skipStatic && this._lastChanHex[chId] === hex) continue; + this._lastChanHex[chId] = hex; for (const spr of sprites) { if (!spr || !spr.active) continue; if (spr._cantColor) continue; diff --git a/index.html b/index.html index 8d033615..2dc1fedc 100644 --- a/index.html +++ b/index.html @@ -40,12 +40,12 @@ - + - + - + - + - +