Select ThisCmd
Case "n", "north", "e", "east", "s", "south", "w", "west"
MovePlayer(ThisCmd)
Case "u", "up"
If (Main.Player.PlayerLoc = 1) AND ((ThisCmd = "u") OR (ThisCmd = "up")) Then
If (Specials.Length = 1) AND (Specials(0) = "door") AND (Main.Maps.SurfaceDoor.DoorState <> 5) Then
Printit("The door is not open", True)
Else
MovePlayer(ThisCmd)
End If
Else
MovePlayer(ThisCmd)
End If
Case "d", "down"
i = 0 ' to be used for a match
If (Main.Player.PlayerLoc = 0) AND (Specials.length <> 0) Then
For j = 0 To Specials.length -1
If (Specials(j) = "hive") OR (Specials(j) = "beehive") _
OR (Specials(j) = "gap") OR (Specials(j) = "fissure") Then
i = -1
Printit("You cannot go that way", True)
End If
Next
End If
If i = 0 Then ' Not Player Loc 0 so nothing special to do
MovePlayer("d")
End If
...many more cases...
End Select