Hey,
I added a new type of thing to TripleA.
The problem was that IDelegates could only talk to
IGamePlayers, this leads to two problems.
The first is that 1 user interface may be associated
with multiple game players. If a delegate wanted to
send information to be displayed on the screen, he had
to send it to all GamePlayers, and the game players
would have to co-ordinate so that only one of them
showed the info on the screen. This was done by the
hacky MultiDestinationMessage (now removed). The
MultiDestination message was ignored if it had already
been processed on the given vm.
The second problem was that if you want to have an
observer, without a game player on the vm, you can
only watch game data changes and step changes. There
was no way for the delegates to convey information to
the ui other than through a IGamePlayer.
This has been fixed with a new IDisplay. An IDisplay
is meant to represent a user interface. The
delegateBridge has new methods to allow a delegate to
broadcast information to all IDisplays. When an
observer plays he will have 1 display and no game
players. When a player is playing he will have 1 or
more IGamePlayers, but only 1 IDisplay.
Game players that interact with the user will
generally be connected to a IDisplay. How they are
connected is left to the code that creates game
players (IGameLoader).
Some GamePlayers like AI's will probably not be
connected to a IDisplay.
Sean
__________________________________
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail
|