SetLockedOut was creating empty ExtraTerminalState data for Terminals, overriding the Hack Difficulty set on their base forms. Both SetLockedOut and GetLockedOut were only checking for and setting ExtraLock data on Doors without considering they might be inheriting it from their teleport doors. All changes made by SetLockedOut also needed to be marked for the game to handle them correctly on save/load.
I'm not 100% sure on the 0x80000000 flag for ExtraTerminalState, but it's used in some game code and it works so ¯\(ツ)\/¯.
SetLockedOut
was creating emptyExtraTerminalState
data for Terminals, overriding the Hack Difficulty set on their base forms. BothSetLockedOut
andGetLockedOut
were only checking for and settingExtraLock
data on Doors without considering they might be inheriting it from their teleport doors. All changes made bySetLockedOut
also needed to be marked for the game to handle them correctly on save/load.I'm not 100% sure on the
0x80000000
flag forExtraTerminalState
, but it's used in some game code and it works so ¯\(ツ)\/¯.