Now I think there is a bug with SetScreenState. The following works in Mac Build 1304.
Code:
Game->SetScreenState(Game->GetCurMap(), Game->GetCurScreen() + 16, ST_DOORDOWN, true);
Game->SetScreenState(Game->GetCurMap(), Game->GetCurScreen() - 16, ST_DOORUP, true);
Game->SetScreenState(Game->GetCurMap(), Game->GetCurScreen() + 1, ST_DOORRIGHT, true);
Game->SetScreenState(Game->GetCurMap(), Game->GetCurScreen() - 1, ST_DOORLEFT, true);
...at least for a while. At some point, these statements no longer function correctly. Experiementing a little, I noticed that this would work when the normal statements did not.
Code:
Game->SetScreenState(Game->GetCurMap(), Game->GetCurScreen(), ST_DOORUP, true);
The bug occurs with screens on higher Map Numbers, or possibly higher DMap Numbers (one or the other). The bug looks like SetScreenState gets offset by 16 at some point. Is this supposed to happen?