From: Sean B. <sbr...@ya...> - 2005-01-19 05:22:38
|
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 |