From 5d819aacf2a9b4054ec028bd80d4187512e1201f Mon Sep 17 00:00:00 2001 From: ImperialSympathizer <110984302+ben-lear@users.noreply.github.com> Date: Fri, 27 Sep 2024 23:48:15 -0400 Subject: [PATCH] sanitize all money when saving session data to server (#4485) * sanitize all money when saving session data to server * update money sanitization --------- Co-authored-by: ImperialSympathizer --- src/phases/game-over-phase.ts | 2 +- src/system/game-data.ts | 4 ++-- src/system/version-converter.ts | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/phases/game-over-phase.ts b/src/phases/game-over-phase.ts index b0cfa5c55e2..8ecf1478b99 100644 --- a/src/phases/game-over-phase.ts +++ b/src/phases/game-over-phase.ts @@ -238,7 +238,7 @@ export class GameOverPhase extends BattlePhase { enemyModifiers: this.scene.findModifiers(() => true, false).map(m => new PersistentModifierData(m, false)), arena: new ArenaData(this.scene.arena), pokeballCounts: this.scene.pokeballCounts, - money: this.scene.money, + money: Math.floor(this.scene.money), score: this.scene.score, waveIndex: this.scene.currentBattle.waveIndex, battleType: this.scene.currentBattle.battleType, diff --git a/src/system/game-data.ts b/src/system/game-data.ts index 63c7cb1b13a..af5e717c17b 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -957,7 +957,7 @@ export class GameData { enemyModifiers: scene.findModifiers(() => true, false).map(m => new PersistentModifierData(m, false)), arena: new ArenaData(scene.arena), pokeballCounts: scene.pokeballCounts, - money: scene.money, + money: Math.floor(scene.money), score: scene.score, waveIndex: scene.currentBattle.waveIndex, battleType: scene.currentBattle.battleType, @@ -1047,7 +1047,7 @@ export class GameData { scene.pokeballCounts = Overrides.POKEBALL_OVERRIDE.pokeballs; } - scene.money = sessionData.money || 0; + scene.money = Math.floor(sessionData.money || 0); scene.updateMoneyText(); if (scene.money > this.gameStats.highestMoney) { diff --git a/src/system/version-converter.ts b/src/system/version-converter.ts index 0591647aeaa..3a4416a975e 100644 --- a/src/system/version-converter.ts +++ b/src/system/version-converter.ts @@ -6,6 +6,10 @@ const LATEST_VERSION = "1.0.5"; export function applySessionDataPatches(data: SessionSaveData) { const curVersion = data.gameVersion; + + // Always sanitize money as a safeguard + data.money = Math.floor(data.money); + if (curVersion !== LATEST_VERSION) { switch (curVersion) { case "1.0.0":