YaLTeR / BunnymodXT

Speedrun and TAS tool for Half-Life & friends.
Other
199 stars 37 forks source link

CoF 1.55: 'bxt_cof_disable_save_lock' not restoring monster origin #347

Closed SmileyAG closed 1 year ago

SmileyAG commented 1 year ago

It's not a issue of BXT code, it's in game code itself, and I don't know how to fix that.

https://user-images.githubusercontent.com/58108407/195468756-f52d2ee1-3f63-41f2-9eae-3a7877fcca0a.mp4

YaLTeR commented 1 year ago

If, as you're saying, the tape recorder is an existing in-game item and has the same behavior, then I would say it's intended for the tape recorder at least.

SmileyAG commented 1 year ago

CoF 1.55 not have that bug, that seems to be start to appear when game got released in Steam, so I'll close issue.

SmileyAG commented 1 year ago

If, as you're saying, the tape recorder is an existing in-game item and has the same behavior, then I would say it's intended for the tape recorder at least.

I did a little more test and came up with the next results:

So at least for bxt_cof_disable_save_lock in CoF 1.55 that bug can be fixed, but at the moment I don't know the way of it.

SmileyAG commented 1 year ago

@YaLTeR After comparing binaries of CoF 1.0 and CoF 1.2 in IDA with BinDiff plugin, I finally figured how to fix it:

Starting from 1.2 patch, developers added a function which is named as ShiftMonsters, that called one time in CBasePlayer::PostThink, which does teleport of NPCs to their spawn positions and that's all.

So the fix that I made is just doing return; at the start of ShiftMonsters.

But you are been right about that's been intended at some point, since patch note of 1.2 version says: