Kentda wrote: ↑Sun Mar 12, 2023 6:30 pm
I managed to find the cause! Took me some work. I finished stage two (stage 2 had no water zones and I had no older saves) and got back to Narthex Level 5.
If you have BOTH Coordinates code AND Never Drown code "active" you get the "surface walking" glitch I mentioned. It's just purely visual, no ability to break walls or anything. It never crashed the game, I could still loot, I could still be attacked. So it wasn't a game breaker, which of course is a good thing!
I didn't test it without having the water breathing petition, but those two codes active at the same time create the glitch.
Still love the work you've done of course, just brought it up in case it was messing up other things!
Thank you for tell me, anyway, i had a big problem, i had to reinstall my windows, and i lost my save file, i will have to speedrun it using my cheats to reach where i was, i am using google drive to save my saves to the cloud now (should have done it before...) just in case it happens again. Having said that, i will try having both cheats on when i reach some water area and then try to make a fix for the "surface walking" issue.
Update1: Nevermind, i had copied my saves to my nintendo switch to test if i could load them there lol, thank god. I can continue, i already checked the cheats, the problem is solely in my coordinates cheat, the never drown cheat is working as intended like i though, now i will try to fix it.
Update2: I fixed it, the problem there is that i needed to make an altitude check otherwise the game would think you were always on the ground level, that is why it was always visually snapping to the "surface" which was the ground level. Copy the code below and replace the one in "Coordinates" to fix it.
Coordinates "surface walking" fix
[ENABLE]
aobscanmodule(Coordinates,LabyrinthOfGalleria.exe,0F BE B0 98 00 00 00)
alloc(newmem,$1000,Coordinates)
label(code)
label(return)
alloc(Coords,8)
registersymbol(Coordinates)
registersymbol(Coords)
newmem:
add rax,98
mov [Coords],rax
sub rax,98
push rcx
push rbx
push edx
mov edx,[rax+0000030C]
movsx rcx,byte ptr [rax+98]
movsx rbx,byte ptr [rax+99]
imul rcx,5
imul rbx,5
mov [rax+00000308],rcx
mov [rax+00000310],rbx
pop rcx
pop rbx
fild [rax+00000308]
fstp [rax+00000308]
fild [rax+00000310]
fstp [rax+00000310]
cmp [rax+0000030C],edx
je code
mov [rax+0000030C],edx
code:
pop edx
movsx esi,byte ptr [rax+00000098]
jmp return
Coords:
dq 0
Coordinates:
jmp newmem
nop 2
return:
[DISABLE]
Coordinates:
db 0F BE B0 98 00 00 00
unregistersymbol(*)
dealloc(*)