The way OpenBank works is by looping through all 4 of the bank opening functions until one works or none of them work. ChangeCompass is only used in OpenBankGlass and this is how it changes the compass:
Simba Code:
if ChangeCompass then
begin
c := Random(2);
case WhichBank of
'feb', 'fwb', 'veb', 'ctb', 'clt', 'nab': if c = 0 then MakeCompass('N') else MakeCompass('S');
'akb', 'db', 'eb', 'vwb', 'sab', 'ynb', 'sgb', 'wgb', 'fgb': if c = 0 then MakeCompass('E') else MakeCompass('W');
'ngb': if c = 0 then MakeCompass(45) else MakeCompass(225);
end;
end;
So, depending on the bank that is passed in and the c variable that is randomized, it makes the compass angle optimized for that bank.