From a3be4673b18fde4913ba2b8b643b61c17a1d9a10 Mon Sep 17 00:00:00 2001 From: Aly Date: Sat, 10 Apr 2021 12:38:37 -0700 Subject: [PATCH] Fix float mode checking for arithmetic operators --- sysmodules/rosalina/source/menus/cheats.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/sysmodules/rosalina/source/menus/cheats.c b/sysmodules/rosalina/source/menus/cheats.c index 9d36768..e221e81 100755 --- a/sysmodules/rosalina/source/menus/cheats.c +++ b/sysmodules/rosalina/source/menus/cheats.c @@ -1318,6 +1318,8 @@ static u32 Cheat_ApplyCheat(const Handle processHandle, CheatDescription* const { if (cheat_state.floatMode) { + float flarg1; + memcpy(&flarg1, &arg1, sizeof(float)); u32 tmp; if (!Cheat_Read32(processHandle, arg0 & 0x00FFFFFF, &tmp)) { @@ -1325,7 +1327,7 @@ static u32 Cheat_ApplyCheat(const Handle processHandle, CheatDescription* const } float value; memcpy(&value, &tmp, sizeof(float)); - value += arg1; + value += flarg1; memcpy(&tmp, &value, sizeof(u32)); if (!Cheat_Write32(processHandle, arg0 & 0x00FFFFFF, tmp)) { @@ -1351,6 +1353,8 @@ static u32 Cheat_ApplyCheat(const Handle processHandle, CheatDescription* const { if (cheat_state.floatMode) { + float flarg1; + memcpy(&flarg1, &arg1, sizeof(float)); u32 tmp; if (!Cheat_Read32(processHandle, arg0 & 0x00FFFFFF, &tmp)) { @@ -1358,7 +1362,7 @@ static u32 Cheat_ApplyCheat(const Handle processHandle, CheatDescription* const } float value; memcpy(&value, &tmp, sizeof(float)); - value *= arg1; + value *= flarg1; memcpy(&tmp, &value, sizeof(u32)); if (!Cheat_Write32(processHandle, arg0 & 0x00FFFFFF, tmp)) { @@ -1384,6 +1388,8 @@ static u32 Cheat_ApplyCheat(const Handle processHandle, CheatDescription* const { if (cheat_state.floatMode) { + float flarg1; + memcpy(&flarg1, &arg1, sizeof(float)); u32 tmp; if (!Cheat_Read32(processHandle, arg0 & 0x00FFFFFF, &tmp)) { @@ -1391,7 +1397,7 @@ static u32 Cheat_ApplyCheat(const Handle processHandle, CheatDescription* const } float value; memcpy(&value, &tmp, sizeof(float)); - value /= arg1; + value /= flarg1; memcpy(&tmp, &value, sizeof(u32)); if (!Cheat_Write32(processHandle, arg0 & 0x00FFFFFF, tmp)) { @@ -1417,9 +1423,11 @@ static u32 Cheat_ApplyCheat(const Handle processHandle, CheatDescription* const { if (cheat_state.data1Mode) { + float flarg1; + memcpy(&flarg1, &arg1, sizeof(float)); float value; memcpy(&value, activeData(), sizeof(float)); - value *= arg1; + value *= flarg1; memcpy(activeData(), &value, sizeof(float)); } else @@ -1432,9 +1440,11 @@ static u32 Cheat_ApplyCheat(const Handle processHandle, CheatDescription* const { if (cheat_state.data1Mode) { + float flarg1; + memcpy(&flarg1, &arg1, sizeof(float)); float value; memcpy(&value, activeData(), sizeof(float)); - value /= arg1; + value /= flarg1; memcpy(activeData(), &value, sizeof(float)); } else