Wed Dec 15 16:19:14 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.2.12

	* {include,src}: substitute cgi by ugame

	* include/osgchips: add so that Stacks can be used unmodified

Mon Dec 13 14:27:11 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/PokerBody.cpp (InitCardsOfPlayer): lighting off on cards

Sat Dec 11 12:48:43 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/scene.cpp: call shutdown instead of clean on osgal

Fri Dec 10 17:20:15 2004  Loic Dachary  <loic@gnu.org>

	* debian/po/fr.po: remove spurious newlines

Wed Dec 08 09:54:42 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.2.11

	* many fixes related to the Options argument to osgDB read/write functions for thread
	  safety.

Wed Dec 08 01:27:18 2004  Loic Dachary  <loic@gnu.org>

	* upgrade to OSG 0.9.8

Fri Dec 03 13:52:16 2004  Loic Dachary  <loic@gnu.org>

	* include/maf/animate2d.h: refactor to properly handle persistent unmapped windows

Thu Dec 02 18:13:08 2004  Loic Dachary  <loic@gnu.org>

	* include/maf/animate2d.h: MAFName2Animate is a container of MAFApplication2DAnimateAction.
	  Implement SliderInOut that slide in windows when they are mapped and slide out windows
	  that are unmapped. Implement Alpha that sets the alpha of the window.

	* examples/poker/conf/client/client.xml: /sequence/application2d specifies the 2d windows
	  management policy.

	* poker3d-interface/gui.c (gui_load_widget): search ../../poker3d-interface for interface.glade
	  for debuging

Fri Nov 26 20:02:06 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/data_exg.cpp (Visitor): fix flood of Q_BIT errors by using TextureCubeMap
	  instead of Texture2D that relies on implicit understanding from the driver that
	  a texture generation should use the same texture for a faces of a cube.

	* examples/poker/PokerBoard.cpp (PokerBoardController): change setAttribute to
	  setTextureAttribute where appropriate.

Thu Nov 25 22:06:05 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/data.cpp (MAFRepositoryData::Load): delete data if Load returns false

	* src/maf/data.cpp (MAFOSGData::Load): failing to load a osg::Group is a warning
	  instead of an error.
	
Thu Nov 25 23:04:26 2004  Loic Dachary  <loic@gnu.org>

	* debian/po/fr.po: contributed by Florent Usseil <swiip81@free.fr>

Sun Nov 21 21:03:37 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokergame.py: safeguard all sort operations with int() cast

	* examples/poker/pokergame.py (PokerChips.toint): cast to int

	* examples/poker/pokerchips.py (PokerChips.int2chips): Add critical message in
	  case money is lost because of rounding errors.

Fri Nov 19 16:30:17 2004  Loic Dachary  <loic@gnu.org>

	* test/allin.py (TestAllInCase2.test1_AllIn): test all in case involving 2 rounds

Thu Nov 18 16:37:30 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokergame.py (PokerGame.beginTurn): do NOT store a reference to the player
	  list in the history because historyReduce will modify it. Store a copy of the player list
	  instead.

	* examples/poker/pokergame.py (PokerGame.__autoPlay): always sitOut if autoplaying
	  while in blind/ante round. Remove the safeguard against multiple sitout as it
	  is included in the sitOut function already.

Tue Nov 16 00:18:31 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.2.10

	* python/underware/c_animated.cpp (Animated_stop): check animation object for null pointer

Mon Nov 15 17:09:11 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.2.9

Mon Nov 08 19:17:39 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.2.8

	* poker.spec.in from Jean-Christophe Duberga <jeanchristophe.duber@free.fr>

	* python/underware/protocol.py (CGIProtocol._handleExpected): purge
	  pending packets if the predicate holding the packets is None.
	  https://gna.org/bugs/index.php?func=detailitem&item_id=1823

	* examples/poker/PokerSeat.cpp (Init): use autotransform from 
	  client.xml instead of hardwired transform node to anchor the
	  arrow. Use seat/@anchor instead of seat/clickToSeat/@anchor
	  to build the seat anchor name (redundant & incorrect). Rework
	  the Init and kill unecessary duplication members. Make sure
	  the Geodes included in the seat are setNodeMak(0x0).

Sat Nov 06 17:39:05 2004 Loic Dachary  <loic@debian.org>

	* examples/poker/pokeranimation.py (PokerPlayer.sitout): implement
	  and document resume/suspend that are used by C++ to grab animation
	  control (for instance when dragging the chair to sit out).

	* src/maf/application.cpp (PythonCall): generalize, reduce to helper
	  that catches exceptions and takes the instance in argument. If
	  packet is null, then call with no argument.

	* examples/poker/pokerclient.py (PokerClientProtocol.publishPacket): 
	  new callback type is 'sent', called for each packet sent to
	  the server

	* examples/poker/PokerPlayer.cpp (UpdateSittingOut): remove
	  mState. Given the states we need, the mSit field is enough.
	  Only keep the updateSitin updateSitout and updateSittingOut
	  functions. The later relies on the animation id. Leave the
	  state logic to python, only deal with the performance demanding
	  pose animation.

	* examples/poker/PokerBody.h (playStandUp): always seeked
	  and do *not* launch upstand animation at the end.

	* examples/poker/PokerPlayer.cpp (UpdateSittingOut): call metho
	  sendPacketSitOut instead of generic sendPacket to notify 
	  a sitout.

	* examples/poker/pokerrenderer.py (PokerRenderer.sendPacketSitOut): 
	  notify interface when C++ side decides to sit out.

Thu Nov 04 18:07:57 2004 Loic Dachary  <loic@debian.org>

	* cal3d/animationalt.cpp (update): compare length to 
	  m_cumulatedTime and not modifiedTime and replace >
	  with >= so that it does not always stop (thus ignoring
	  fade_out) when WANT_TO_STOP is set.

	* configure.in: switch to c++ after c tests otherwise some of
	  them fail

	* include/maf/regex.h (struct re_pattern_buffer): provide GNU
	  regex although regex is Posix
	  (http://www.mekensleep.org/docs/susv3/basedefs/regex.h.html) to
	  accomodate operating systems claiming to implement industry
	  standards without actually doing it.
 
	* examples/poker/PokerPlayer.cpp (SetSeatId): set the name of the
	  seat node to "self" if player is our own player or "player" if
	  not.

	* src/maf/scene.cpp (Pick): call handle hit of the registered
	  callback (RegisterPickCallback) if the path matches. The
	  match is done on a substring of the path and cached in
	  mPickCache for speed.

	* include/maf/scene.h (MAFSceneModel): Path2VisionController
	  mPath2VisionController is a map of controllers to be called
	  whenever a node with a given path is hit. 

	* include/maf/scene.h (MAFSceneController): RegisterPickCallback
	  maps a node path to a vision controller.
	
	* include/maf/application.h (MAFApplication): HeaderGetProperties
	  now based on HeaderGetPropertiesList which returns a list of 
	  the maps found instead of the last one.

	* include/maf/vision.h (MAFVisionController): HandleHit 
	  now has a MAFHit argument instead of osgUtil::Hit

	* include/maf/hit.h: wrapper around osgUtil::Hit that contains
	  the string of the node path.
	
	* src/maf/scene.cpp: Build a string representing the path of
	  the matching node.

Wed Nov 03 22:35:08 2004  Johan Euphrosine  <euphro_j@epitech.net>

	* examples/poker/pokerchat.py (PokerChat.chat2type): 
	added /trigger chat association

	* examples/poker/pokerrenderer.py (PokerRenderer._handleConnection):
	added chat /trigger filtering

	* examples/poker/pokeranimation.py
	(PokerAnimationScheduler.handleChat): 
	bound /trigger to animation
	
Tue Nov 02 20:19:23 2004  Loic Dachary  <loic@debian.org>

	* examples/poker/pokerserver.py (PokerServer._handleConnection): 
	  truncate relay chat messages to 128 chars. 
	
	* examples/poker/poker3d.py (PokerClientFactory.__init__):
	self.chat_config mapped to /sequence/chat

	* examples/poker/conf/gaim/prefs.xml: add 
	  /gaim/gtk/conversations/chat/max_chars

	* examples/poker/conf/client/client.xml: add /sequence/chat

	* examples/poker/pokerrenderer.py (PokerRenderer.chatFormatMessage): 
	  all messages displayed in bubbles are formated using this function
	
	* poker3d-interface/interface.glade: limit text size to 40 chars
	  in gaim-poker3d, add
	  gaim/src/gtkconv.c:gtk_entry_set_max_length(gtkconv->entrybox, 40)


Wed Nov 03 19:41:47 2004  Henry PRCHEUR  <henry@precheur.org>

	* src/cgi/text.cpp (*) complete refactoring of the text system

	* src/maf/data.cpp (MAFLoadFont/MAFLoadImage) helpers to load
	font/image with caching from osg.

	* example/poker/PokerChipsStack.cpp
	* example/poker/PokerBubble.cpp switched to new text handling
	system

Wed Nov 03 10:49:30 2004  Loic Dachary  <loic@debian.org>

	* Release 0.2.7

	* Missing updates in previous release.
	
Tue Nov 02 14:40:52 2004  Loic Dachary  <loic@debian.org>

	* Release 0.2.6

	* examples/poker/conf/client/poker.client.xml: faster game, default to fullscreen

	* examples/poker/pokerchips.py (PokerChips.limitTokens): rework to
	  get rid of iterative (cpu consuming algorithm). Also fixes 
	  pathological case with negative chips values (the overall amount
	  was correct).

	* examples/poker/pokerchips.py (PokerChips.__init__): missing call
	  to limitTokens
	
	* examples/poker/pokerchips.py (PokerChips.int2chips): rework to
	  get rid of iterative (cpu consuming algorithm)

	* test/chips.py: update and add test with 30 stack max

	* examples/poker/pokerchips.py: set MAX_TOKENS_PER_STACK to 30
	  https://gna.org/bugs/?func=detailitem&item_id=1806

Mon Nov 01 11:25:07 2004  Loic Dachary  <loic@debian.org>

	* Makefile.am: poker3d target to build the Debian compliant
	  source tarbal.

Sun Oct 31 23:33:46 2004  Loic Dachary  <loic@debian.org>

	* python/underware/protocol.py (CGIProtocol._handleExpected): 
	  if a packet type is not known, skip to the next based on the
	  length provided in the header. The old way was to skip the header
	  and look for another, which would result in desynchronized flows
	  in many cases. The length being part of the header allows us
	  to avoid this problem. 

	* examples/poker/pokerserver.py (PokerServer._handleConnection): 
	  transparently relay LOOK_CARDS packet to all players/visitors.

	* examples/poker/PokerPlayer.cpp (Update): send PacketPokerLookCard
	  packet as soon as the player starts looking at the cards.

Sun Oct 31 22:27:03 2004  Loic Dachary  <loic@debian.org>

	* compilation patches from Jean-Christophe Duberga
	  <jeanchristophe.duber@free.fr>:
	  https://gna.org/patch/?func=detailitem&item_id=248

Sun Oct 31 17:45:17 2004  Loic Dachary  <loic@debian.org>

	* examples/poker/pokeranimation.py
	(PokerAnimationScheduler.playerArrive): scheduleWaitIdle was
	incorrect, replaced by waitIdle (left room for no animation frames
	with character standing in the middle of the table).

	* examples/poker/pokeranimation.py: rework the structures.
	  The scheduler is designed for a single game. It has a map
	  of players (classes instead of simple has maps). Each player
	  handle its own animation and a local state if relevant (only
	  sitin / sitout at present). 

	* examples/poker/pokeranimation.py (PokerPlayer.foldEndCallback): 
	  add game_id in packet, remove check of the game_id against the
	  renderer. Dependencies to the renderer must be handled with
	  extreme care.

	* include/maf/application.h (MAFApplication): add IsRunning() predicate
	
	* examples/poker/Poker.cpp (PythonAccept/POKER_DISPLAY_CARD): rely
	  on the game_id field of the packet to figure out if the packet
	  was targeted to the current game.

	* examples/poker/pokerclient.py (PokerClientProtocol.getGame): 
	  convenience function for the equivalent function in the 
	  corresponding factory

	* examples/poker/PokerApplication.cpp: PythonAccept/SendPacket 
	  disabled when IsRunning() is false.

Sun Oct 31 16:08:49 2004  Loic Dachary  <loic@debian.org>

	* examples/poker/PokerApplication.cpp (SendPacket): Python/C++
	  stop talking to each other after Quit was called.

Sat Oct 30 14:32:08 2004  Loic Dachary  <loic@debian.org>

	* examples/poker/pokerpackets.py (PACKET_POKER_LOOK_CARDS): add

Fri Oct 29 20:41:51 2004  Loic Dachary  <loic@debian.org>

	* examples/poker/poker3d.py (PokerClientFactory.clientConnectionLost): notify the user 
	  when connection is lost instead of exiting abruptly.

	* src/maf/application.cpp (SplashScreen): set verbosity before splash
	  screen instead of after.

	* src/maf/window.cpp (Init): fallback strategy for GL depths (32->24->16).
	  https://gna.org/bugs/index.php?func=detailitem&item_id=1796

	* examples/poker/data/splash.xcf: source file for the splash screen
	  updated all splash screens from the new source file.

Thu Oct 28 22:52:02 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.2.5

	* osgplugins: add hdr loader

Wed Oct 27 22:52:02 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.2.4

	* configure.in: hard library dependencies issue errors if they fail, as 
	  required by Jean-Christophe Duberga <jeanchristophe.duber@free.fr> for packaging
	  purposes.

	* Merge with exg and poker3d-interface sources so as to avoid separate packages.
	  Remove hard dependency on gaim-poker3d (replaces with suggests)

Fri Oct 22 20:22:27 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.2.3	

	* examples/poker/conf/client/client.xml: shorten ogg licence file

Wed Oct 20 14:22:34 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/data/Makefile.am: extra file

Tue Oct 19 02:29:36 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.2.2

	* src/maf/data_exg.cpp, examples/poker/PokerChipsStack.cpp, examples/poker/PokerBoard.cpp: new api is setAutoRotateMode

	* configure.in: new openscenegraph package

Sat Oct 16 00:15:44 2004  root  <loic@gnu.org>

	* examples/poker/pokeranimation.py (PokerAnimationScheduler.__init__): 
	  SIT_OUT was incorrectly bound to sitIn function.

Fri Oct 15 23:44:52 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerpackets.py: PacketPokerBatchMode and
	  PacketPokerStreamMode packets.

	* examples/poker/pokeranimation.py (PokerAnimationScheduler.animationSitout): only spawn animation when in stream mode

	* examples/poker/pokerrenderer.py (PokerRenderer.handleSerial): remove
	  redundant GET_USER_INFO packet sent when receiving serial. 

	* examples/poker/PokerPlayer.cpp: restore the assert

	* examples/poker/pokerclient.py (PokerClientProtocol._handleConnection): 
	  avoid sending *many* packets by checking that the position changed
	  before infering a POSITION packet.

	* examples/poker/pokerclient.py (PokerClientProtocol.resendPackets): 
	  in resend, there is no need to add the 'visible' field to 
	  card packets. 

	* examples/poker/pokerclient.py STATE / PLAYER_CARDS: PLAYER_CARDS
	  packets are not forwarded, they are just used to update the game
	  state. PLAYER_CARDS are published only after each STATE packet
	  is received and after the DEAL_CARDS packet.

	* examples/poker/pokerrenderer.py: the redisplay function is deleted
	  because not used and redundant with the resendPacket.

Fri Oct 15 12:29:00 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.2.1

	* examples/poker/pokerinterface.py (PokerInterfaceProtocol.showTables): 
	  do not display variant.

	* examples/poker/pokeranimation.py: tableQuit / table : explicit del of the animated
	  object so that destruction is not delayed to the garbage collector (helps PokerPlayer.cpp
	  leak detection)

Thu Oct 14 23:52:20 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/PokerApplication.cpp: /settings/@fps to control
	  fps display

	* examples/poker/pokerserver.py (PokerTable.chatPlayer): do not
	  show the name in the bubble

Thu Oct 14 14:40:05 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.2.0

	* examples/poker/pokerinterface.py (PokerInterfaceProtocol.handleKeyBinding): infinite loop handling keybindings keys

	* examples/poker/PokerPlayer.cpp: remove dummies hiding the player
	  chip stack

Wed Oct 13 16:00:35 2004 Loic Dachary  <loic@gnu.org>

	* examples/poker/pokeranimation.py (PokerAnimationScheduler.setProtocol): 
	  make sure the callback is called before the render callback to avoid
	  false positive leak report.

	* examples/poker/pokerclient.py (PokerClientProtocol.publishTableQuit): 
	  when quiting the game or a game, broadcast a set of PlayerLeave and
	  TableQuit packets so that functions registered on PlayerLeave events
	  don't have to know that a TableQuit implicitly means a PlayerLeave for
	  all current players.

	* python/underware/protocol.py (CGIProtocol.ignoreIncomingData): ignore 
	  all future data

	* examples/poker/pokerclient.py (PokerClientProtocol.sendPacket): after
	  a PacketQuit is published, ignore all data coming from the server.

	* examples/poker/pokerrenderer.py (PokerRenderer.confirmQuit): PacketQuit
	  is sent from python instead of C++.

Tue Oct 12 15:57:00 2004 Loic Dachary  <loic@gnu.org>

	* examples/poker/PokerPlayerCamera.cpp: Update:
	mCameraButtonPressedDuration must be incremented *before* setting
	mCameraButtonPressed otherwise it steals the mDeltaS between
	the click event and the event that occured before it.

	* examples/poker/pokergame.py (PokerGame.callNraise): do not
	  remember last bet if the raise closes the game.

Mon Oct 11 18:55:57 2004  Loic Dachary  <loic@gnu.org>

	*  examples/poker/pokerrenderer.py: in position interface

Wed Oct 06 18:05:53 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerserver.py (PokerTable.syncChat): /server/@chat 
	  controls dealer dialog with poker3d chat protocol

	* examples/poker/pokerserver.py (PokerServerFactory.getHandSerial): 
	  use lastrowid instead of insert_id if available.
	  https://gna.org/bugs/index.php?func=detailitem&item_id=847

Tue Oct 05 18:04:37 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerclient.py: complete rework of the poker protocol, client
	  side. 

	* examples/poker/pokerpackets.py: documentation for each packet.

Tue Oct 05 17:16:04 2004  Henry PRCHEUR  <henry@precheur.org>

	* example/poker/twibber/* updated bad xml namespace who caused incompatibilties with
	jabberd 2.0s3
	* srf/maf/* changed the way intersection are done to avoid problem with newly created
	windows
	* examples/poker/poker3d.py reverted to jabber (should be configurable)

Thu Sep 30 11:00:35 2004  Loic Dachary  <loic@gnu.org>

	* python/underware/packets.py (PacketError): error description

	* examples/poker/pokerserver.py (PokerTable.private2public): do
	  *not* access the game, use the packet.

Tue Sep 28 17:33:57 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.60

	* examples/poker/PokerApplication.cpp: ChatHistory & Buddy List are bound to animate2d

Mon Sep 27 19:38:52 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/application2d.cpp (SetAnimate): generic mechanism to
	  animate windows based on their names.

Sat Sep 25 10:16:02 2004  Loic Dachary  <loic@gnu.org>

	* python/underware/c_animated.cpp: fixed inverted test (isdigit) and allow
	  -1 as an id meaning all
	  https://gna.org/task/index.php?func=detailitem&item_id=792

	* examples/poker/poker3d.py (PokerClientProtocol.updateTableInfo): human readable
	  variant and betting structure names.

	* examples/poker/PokerApplication.h (PokerApplication): kill tableinfo
	  because 2D interface does the job.

Fri Sep 24 21:26:14 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerbot.py (Bot.stopService): 
	  If the connection is still available (i.e. the bots
          were stopped because of a SIGINT signal), properly
          close it before exiting.
	  https://gna.org/bugs/index.php?func=detailitem&item_id=789

	*  tests/*: fix player addition to set auto pay blind/ante

	* examples/poker/pokergame.py (PokerGame.autoPayBlindAnte): 
	  gracefully handle the case of a game without blind or antes.
	  Convenient for test purpose if not for real.

Fri Sep 24 09:49:30 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/poker3d.py: add top menu handling
	  https://gna.org/task/?func=detailitem&item_id=775

	* examples/poker/PokerPlayer.cpp: remove dealer button, which is now handled
	  in Poker.cpp as a scene wide indicator.

	* examples/poker/PokerDealer.*: removed because obsolete

Thu Sep 23 09:49:18 2004  Loic Dachary  <loic@gnu.org>

	* include/maf/MultipleAnimationPathCallback.h: add animation path names
	* src/maf/data_exg.cpp (ParseAnimation): load animation path names

	* cal3d/scheduler.h: replace loopMax with length in seconds.

	* examples/poker/conf/client/client.xml: /player/@animated to gain control
	  over the animations for testing purposes.

Wed Sep 22 18:57:44 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/poker3d.py (PokerClientProtocol.wantToLeave): 
	  https://gna.org/bugs/?func=detailitem&item_id=757

	* examples/poker/pokergame.py (PokerGame.maxBuyIn): 
	  implement max-buy-in for all stakes

	* examples/poker/pokerinterface.py (PokerInterfaceProtocol.buyInParams):
	  buy in interface

Tue Sep 21 21:34:06 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerbot.py (Bot.stopService): switch to
	  Application/Service scheme in order to handle SIGINT properly
	  and send a QUIT packet to avoid annoying timeouts.
	  https://gna.org/bugs/index.php?func=detailitem&item_id=779

	* examples/poker/poker3d.py (PokerClientProtocol._handleConnection): 
	  set outfit *after* serial is received when in remember mode.
	  https://gna.org/bugs/index.php?func=detailitem&item_id=772

	* debian/poker3d-server.init.d (more_args): reduce sleep and stop server with
	  SIGINT

	* examples/poker/pokerchildren.py (PokerChildGaim.jabberAuthOk): callLater
	  instead of stacking contexts.

	* examples/poker/pokerchildren.py (PokerChildGaim.spawn): make sure self.auth
	  exists before continuing withe the callbacks.

Tue Sep 21 13:05:36 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.59

	* examples/poker/pokergame.py (PokerGame.sit): clear the wait_for
	  big blind flag.
	  https://gna.org/bugs/index.php?func=detailitem&item_id=730

	* examples/poker/poker3d.py (PokerClientProtocol._handleConnection): 
	  handle WAIT_FOR packet.
	
Mon Sep 20 17:44:29 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerserver.py (PokerTable.playerTimeoutTimer): 
	  AUTO_FOLD packet to provide information about the sit out status
	  of a player in tournament situation.
	  https://gna.org/bugs/index.php?func=detailitem&item_id=740

	* examples/poker/pokerbot.py (run): BotsSate to shutdown the program 
	  when none are active.
	  https://gna.org/bugs/index.php?func=detailitem&item_id=752

	* examples/poker/pokerjabber.py (PokerJabberProxyClient.elementReceived): 
	  Add dash (-) as part of the regexp for the room name.
	  https://gna.org/bugs/index.php?func=detailitem&item_id=745

	* examples/poker/conf/client/poker.client.xml: /settings/@delays
	  true/false to take in account the delays
	  https://gna.org/bugs/index.php?func=detailitem&item_id=753

	* python/underware/protocol.py (CGIProtocol.__init__): 
	  _hold_enable to enable/disable the delaying of packets

	* examples/poker/pokerserver.py (PokerServer.sitOutPlayer): broadcast a sitout
	  packet if actually stitting out.
	  https://gna.org/bugs/?func=detailitem&item_id=750

	* examples/poker/pokergame.py (PokerGame.sitOut): return true if actually
	  sitting out.

Sun Sep 19 09:41:53 2004  Loic Dachary  <loic@gnu.org>

	* Fix https://gna.org/bugs/?func=detailitem&item_id=739
	
	* examples/poker/pokergame.py (PokerPlayer): dead is the amount
	  of the blind / ante that is in the pot instead of being live.

	* examples/poker/pokerpackets.py (PacketPokerBlind.dead): default
	  for ante/blind amount and dead is 0 instead of 255

	* examples/poker/pokergame.py (PokerGame.historyReduce): reduce
	  "ante_request" as well.

	* examples/poker/pokergame.py (PokerGame.bet2pot): the pot member
	  of the player contains the amount of money that the player contributed
	  to the pot this betting round. For the first round, player.bet is
	  typically the live bet and player.pot the ante or the dead.

Sat Sep 18 10:01:01 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerserver.py: control shutdown using deferred
	  instead of signals

Fri Sep 17 10:00:40 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.58

	* examples/poker/pokerbot.py (PokerBotClient._handleConnection): bots answer
	  to blind/ante requests. Normaly not necessary except if the auto blind/ante
	  is received too late for the first turn.

Thu Sep 16 12:24:40 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.57

	* examples/poker/poker3d.py (PokerClientProtocol._handleConnection): game.cardsDealtThisRoundCount
	  to figure how many cards should be dealt. Update when changing state.

	* examples/poker/pokergame.py (PokerGame.canceled): cancel and check blind forfeit

	* examples/poker/poker3d.py (PokerClientProtocol._handleConnection): animated canceled
	  game.

	* examples/poker/pokergame.py (PokerGame.updateBlinds): assign small blind
	  when sit count (not seats count) == 2, regardless of missed blinds.

Wed Sep 15 16:49:10 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerclient.py (PokerClientFactory.unsetInterface): 
	  abort if the interface goes down.

Wed Sep 15 09:06:01 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerserver.py (PokerServer._handleConnection): wait for 
	  games to terminate before shutting down the server.

	* examples/poker/pokerinterface.py (PokerInterfaceProtocol.hideLogin): hide login

	* examples/poker/PokerShowdown.cpp: board cards are given in
	argument, no need to look for them thru display only structures.

	* examples/poker/PokerShowdown.cpp: added alpha = 1. to glow colors (otherwise
	  they are completly transparent and therefore invisible)

Fri Sep 10 11:36:32 2004  Henry PRCHEUR  <henry@precheur.org>

	* example/poker/Poker.cpp: binded TAB to show values

Thu Sep 09 10:20:55 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokergame.py (PokerGame.readableHandValue): human readable
	  hand values.

	* examples/poker/pokerserver.py (PokerTable.history2packets): round_end
	  event in history marks the end of a round.

	* examples/poker/pokerclient.py (PokerClientFactory.showServers):  if
	  there is only one server, select it by default.

	* examples/poker/poker*.py: implement blind control from user and
	  missed blind rules.
	
Tue Sep 07 19:39:33 2004  Henry PRCHEUR  <henry@precheur.org>

	* src/maf/*.cpp : buddy list now slide nicely (changed xwnc protocol)
	* src/maf/application2.cpp : fixed bugs & code cleanups

Fri Aug 27 18:42:09 2004  proppy  <euphro_j@epitech.net>

	* examples/poker/pokerinteractor.py : new interactor logic
	* examples/poker/PokerInteractor.cpp : new interactor display

Tue Aug 24 14:26:16 2004  Loic Dachary  <loic@gnu.org>
	
	* examples/poker/pokergame.py (PokerGame.beginTurn): the dealer only
	  changes if there is a blind to pay

	* examples/poker/pokergame.py (PokerPlayer): add wait for blind and
	  auto pay ante/blind flags

	* examples/poker/pokerpackets.py: BLIND and ANTE packets

Fri Aug 20 13:38:18 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerbot.py (PokerBotClient.eval): level 0 :
	random actions

Fri Aug 20 10:38:03 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokergame.py (PokerGame.updateStatsFlop): 
	  update all game statistics

Thu Aug 19 12:32:38 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerinterface.py (PokerInterfaceFactory.clearCallbacks): 
	  add chooser, auto clear callbacks

	* examples/poker/poker3d.py (PokerClientProtocol.confirmQuit): disable
	  display after quit confirmed to avoid a race condition.

	* examples/poker/pokerinterface.py (PokerInterfaceProtocol.userInfo): 
	  USER_INFO packets and display (for bankroll mainly)
	
	* examples/poker/Poker.cpp: fold showdown cards as well (for 7stud)

	* examples/poker/poker3d.py (PokerClientProtocol.handleGame): move
	  antes, if any

Wed Aug 18 13:04:33 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/poker3d.py (PokerClientProtocol.connectTable): cancel
	  packet bufferization when leaving the table

	* examples/poker/Poker.cpp (PythonAccept): POKER_TABLE : reset all
	  table info lines

Tue Aug 17 11:47:16 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/poker3d.py (PokerClientProtocol.delay): SPACE allows
	  to step in replay mode.

Mon Aug 16 14:51:36 2004   Loic Dachary  <loic@gnu.org>

	* examples/poker/poker3d.py: use delays for position, round and showdown
	  change. In poker.client.xml
          <delays position="1" round="2" showdown="5" lag="15" />

	* python/underware/protocol.py (CGIProtocol.hold): cache packets
	  when introducing a forced delay, safeguard for lags.

Mon Aug 16 14:19:53 2004  proppy  <euphro_j@epitech.net>

	* examples/poker/poker3d.py (PokerClientProtocol.connectTable): 
	set state to IDLE if back from a replay (i.e state == SWITCHING)

Mon Aug 16 11:36:29 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/poker3d.py (PokerClientProtocol.displayShowdown): no
	  need to test notFold > 1 since serial2best will only be filled if 
	  that is the case.

	* examples/poker/Poker.cpp (PythonAccept): use seats_all instead of
	  seats_left

	* examples/poker/pokergame.py (PokerGame.resetSeatsLeft): keep track
	  of all the seats in seats_all

	* examples/poker/pokergame.py (PokerGame.setSeats): update seats_left

	* examples/poker/poker3d.py (PokerClientProtocol.wantToLeave): 
	  always display the list if in state idle, even when no
	  displayed game.

Fri Aug 13 15:34:39 2004  Henry PRCHEUR  <henry@precheur.org>

	* Release 0.1.55

	* invite player to chat room when player seat in

	* weaked gaim prefs

	* fixed many many bugs :) (me, cedric, johan)

	* updated vcproj (johan)

	* added python_mywin32 (johan)

	* fix pot center behaviour (cedric)
	
Wed Aug 11 18:41:29 2004  Henry PRCHEUR  <henry@precheur.org>

	* reworked collisions, now backfaces are ignored (cedric)

	* removed several (BIG!) memleaks (cedric)

	* removed NaN errors at start-up (cedric)

	* examples/poker/pokerclient.py create ~/.poker3d directory if it does
	not exists

	* exameple/poker/pokerserver.py player are now invited in chat room
	when they seat in.
	
	* init.d script was updated

Wed Aug 5 22:41:52 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.54

Thu Aug 05 10:30:03 2004  johan euphrosine  <euphro_j@epitech.net>

	* example/poker/pokerserver.py, debian/poker3d-server-init.d:
	modified twistd command line to install pollreactor,
	instead of manually installing it in python script

Wed Aug 3 22:41:52 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerserver.py: replay a hand

Wed Jul 28 22:41:52 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokergame.py (PokerGame.distributeMoney): remember
	  the sorted list of side pots and the pot itself as it was before
	  distributing it.

	* examples/poker/pokergame.py (PokerGame.getPlayersSortedByPot): return 
	  the binding between users and the pots they can compete for.

	* examples/poker/poker3d.py (PokerClientProtocol.chipsPlayer2Bet): functions
	  to notify the display about the chips movements on the table.

	* examples/poker/pokerpackets.py: 
	  PACKET_POKER_CHIPS_{POT2PLAYER,POT_MERGE,BET2POT,PLAYER2BET} dedicated
	  to display.

	* include/maf/event.h: kill unused file

	* examples/poker/pokerpackets.py (PacketPokerPotChips): 
	  index member designate the target side pot

	* examples/poker/pokergame.py (PokerPlayer.beginTurn): remember the
	  total amount the player invested in the pot

Tue Jul 27 20:12:28 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokergame.py (PokerGame.__makeSidePots): count
	  the number of side pots

Mon Jul 26 21:10:03 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/poker{bot,server}.py: use pollreactor

	* examples/poker/pokerchildren.py (PokerChildGaim.__init__): push 
	  jabber message to level 4. Jabber verbosity control goes to 
	  pokerjabber.py

	* examples/poker/pokerjabber.py (PokerJabberProxyServerFactory.__init__): set verbose *after* calling the base class constructor

	* examples/poker/pokerbot.py (PokerBotFactory.__init__): move
	  config into pokerfactory instead of bunches of arguments

	* examples/poker/pokerjabber.py
	(PokerJabberAuthOrCreate.__init__): extrace jabber authentication
	and account creation from pokerchildren so that it can be used
	by bots for benchmarking purposes.

Mon Jul 26 12:37:13 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/poker3d.py (PokerClientProtocol.quit): prevent
	  quit confirmation boxes duplication

	* python/underware/server.py (CGIServer.auth): don't reset timer
	  if packet != LOGIN / AUTH_CANCEL

	* examples/poker/poker3d.py (PokerClientProtocol.interfaceCallbackLogin): send PacketAuthCancel if login box canceled

	* python/underware/server.py (CGIServer.auth): handle AUTH_CANCEL
	  from client

	* python/underware/packets.py (PACKET_AUTH_CANCEL): add

Fri Jul 23 14:02:36 2004  johan euphrosine  <euphro_j@epitech.net>

	* examples/poker/Poker.cpp: bound F1 to show binding

	* examples/poker/poker3d.py (showKeyBinding): defined, list of bindings, 
	and branch with interface

	* examples/poker/pokerinterface.py (showKeyBinding, buildLobbyInterfacePacket):  
	defined binding window layout, and forge interface packet	
	
Fri Jul 23 12:51:28 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/conf/server/poker.server.bench.xml: 
	* examples/poker/conf/bot/poker.bot.bench.xml: configurations to bench the server

	* examples/poker/pokerbot.py (PokerBotClient.play): use callLater for bot delays
	  so that it does not block other bots.

Fri Jul 23 11:55:29 2004  johan euphrosine  <euphro_j@epitech.net>

	* examples/poker/PokerPlayer.cpp: added sitOut animation/and state update where timeouting

Fri Jul 23 11:34:57 2004  johan euphrosine  <euphro_j@epitech.net>

	* examples/poker/PokerPlayer.cpp: fixed sitIn/sitOut bugs : dual sitin, and packet not sent,
	need to clean code

Fri Jul 23 10:20:14 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerserver.py (PokerTable.__init__): load delays for various game
	  actions

	* examples/poker/pokerserver.py (PokerTable.autoDeal): auto deal hands

	* examples/poker/pokerserver.py (PokerTable.update): replaces syncExternals

	* examples/poker/conf/server/poker.server.xml: delays

Thu Jul 22 19:04:25 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/twibber/xmppstream.py (XMPPStream.elementReceived): ignore encoding
	  when outputing debug, otherwise crashes on utf8 chars

Thu Jul 22 18:15:11 2004  johan euphrosine  <euphro_j@epitech.net>

	* examples/poker/PokerDoor.cpp (PokerDoorController): put PokerDoorController in a separate file

	* examples/poker/Poker.cpp (Poker): bound PokerDoorController to python wantToLeave

	* examples/poker/PokerSeat.cpp (PokerSeat): remove PokerDoorController from manager

	* examples/poker/poker3d.py (wantToLeave): if playerSeated: Leave else: showTablesList

Thu Jul 22 13:36:46 2004  johan euphrosine  <euphro_j@epitech.net>

	* examples/poker/PokerBubble.cpp (Init): fixed bubble lighting bug
	override GL_LIGHTING off in cgiText Geode

Thu Jul 22 13:12:50 2004  johan euphrosine  <euphro_j@epitech.net>

	* examples/poker/PokerBubble.cpp (Init): removed useless osg::Group
	using Artefact's PAT instead

Thu Jul 22 12:33:11 2004  johan euphrosine  <euphro_j@epitech.net>

	* Release 0.1.53

	* examples/poker/PokerPlayer.cpp (UpdateSittingOut): fixed dual sit in issue,
	  PacketPokerSit is not sent anymore when cancelling sit out

Wed Jul 21 23:30:39 2004  Loic Dachary  <loic@gnu.org>

	* include/maf/hit.h: remove

	* src/maf/scene.cpp (Update): picking wrongly stopped at the first visible object
	  regardless of the fact that a MAFController was registered on it.

Wed Jul 21 20:59:00 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/data.cpp: nuke the last HAVE_AMETISTA

	* examples/poker/poker3d.py (PokerClientProtocol.selectOutfits): add outfit selection.

	* examples/poker/*.py: rename pokerlobby.py into pokerinterface.py

	* examples/poker/pokerlobby.py (PokerLobbyProtocol.handleMessageBox): add callback
	  handling for message box.

	* examples/poker/poker3d.py (PokerClientProtocol.lobbyLogin): if syntax check
	  on login/password fails, print message and ask for login again.

	* python/underware/user.py (User.checkNameAndPassword): check login / password 
	  validity.

	* examples/poker/Poker.cpp (PythonAccept): loop on the number of seats provided by
	  POKER_TABLE instead of the theorical maximum number of seats (POKER_SEATS always
	  provides 10 numbers).

	* examples/poker/poker3d.py (PokerClientProtocol.handleAuth): rework the login/table list
	  sequence logic.

Tue Jul 20 17:14:51 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/poker3d.py (PokerClientProtocol.protocolEstablished): only
	  request table list of not asking for login.

	* examples/poker/PokerApplication.cpp (Load): mTableInfo becomes a simple
	  geode, each line being a different drawable.

	* include/cgi/text.h (CGITextModel): discard line management and 
	  performance bottleneck UpdateText

	* src/maf/data.cpp (GetOutfit): ignore duplicate mesh specification

Mon Jul 19 19:12:55 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/data.cpp (GetOutfit): outfit not found is not fatal.

	* src/cgi/animated.cpp (Init): revert to default outfit if desired
	  outfit is not found.

	* include/cgi/animated.h (CGIAnimatedModel): define a default outfit

	* examples/poker/PokerPlayer.cpp: map "default" to the default outfit
	  name found in client.xml

	* examples/poker/conf/client/client.xml (outfit): define default 
	  outfit name.

	* debian/control (Depends): poker3d-interface

Sun Jul 18 23:44:45 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.52

	* AUTHORS: Add Johan Euphrosine

	* include/maf/split.h (split): missing inline caused multiple
	  definitions.

	* include/maf/application.h (MAFApplication): scene moves from
	  PokerApplication to MAFApplication

	* src/maf/scene.cpp (Update): cope with the possible absence
	  of camera.

Sat Jul 17 17:17:15 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerbot.py (run): add start_game stanza : the bot
	  send PacketPokerStart at launch and when the game is finished.
	  Usefull to debug without the graphic client and flood the server.

	* include/maf/application.h (MAFApplication): SplashScreen pure virtual 

	* src/maf/window.cpp: the window may be non opengl if desired.

	* src/maf/window.cpp (Init): revert to 1024x768 if height or width are 0.
	  Safeguard if fullscreen size not available.

	* examples/poker/poker3d.py (PokerClientProtocol.deleteGames): clear
	  the table currently displayed
	
Fri Jul 16 12:07:17 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/data_exg.cpp (Visitor): use setAttributeAndModes for setting
	  the material instead of setAttribute alone.

	* examples/poker/data/player.male.cal3d: fix bugous .tga files
	
Thu Jul 15 20:44:54 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/PokerBody.cpp (DettachCardsDrawableToPlayer): cards now have a single
	  mesh for two drawable.

	* examples/poker/PokerBody.cpp (CreateCoreAnimation): set the boneId for each
	  track instead of relying on the existing boneId.

	* src/maf/data.cpp: use basename of file instead of base dir (image file
	  name is relative to material basename)

	* examples/poker/poker3d.py (PokerClientProtocol.showTables): display
	  the list of tables in metisse

	* examples/poker/pokerserver.py (PokerServer._handleConnection): when
	  attempting to login, first leave the tables.

	* examples/poker/pokerserver.py (PokerTable.destroyPlayer): only bother
	  to kick player if registered.

	* examples/poker/poker3d.py (PokerClientProtocol.redisplay): use 
	  player_info cache for redisplay

	* examples/poker/poker3d.py (PokerClientProtocol.handleGame): fill
	  player_info cache

	* examples/poker/pokerclient.py (PokerClientFactory.__init__): cache
	  for player info

	* src/maf/packets.cpp (SetMember): PyList_SetItem *steals* reference,
	  do not decref.

	* src/maf/wnc_source.cpp: fill pad to prevent valgrind warning

	* src/maf/application.cpp (PythonCall): Py_DECREF the return of CallMethod

Thu Jul 15 01:49:53 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerchildren.py (PokerChildGaim.jabberSpawnProxy): 
	  gaim can be killed/restarted 

	* examples/poker/pokerserver.py (PokerServerFactory.setPlayerInfo): 
	  expected modified rows are either 0 or 1 not just 1

	* examples/poker/Poker.cpp: F6 bound to poker3d.logout function

	* examples/poker/poker3d.py (PokerClientProtocol.logout): rework
	  state machine, implement logout

	* examples/poker/pokerserver.py (PokerServer._handleConnection): 
	  move TABLE_QUIT to if table:

	* python/underware/user.py (User.logout): reset privileges and
	  user info

	* python/underware/packets.py (PACKET_LOGOUT): packet_logout

	* python/underware/protocol.py (CGIProtocol._handleVersion): make
	  sure protocolEstablished is called when in a consistent state

	* python/underware/server.py (CGIServer.auth): packets sent when
	  a login is expected are prepended to the backlog (PLAYER_INFO
	  in pokerserver.py/poker3d.py uses this)

	* examples/poker/poker3d.py (PokerClientProtocol.handleGame): handle
	  PLAYER_INFO packet (should be added to Poker.cpp at some point)

	* python/underware/config.py (Config.saveHeader): write XML tree back
	  to file

	* python/underware/client.py (CGIClientFactory.__init__): remove spurious
	  players member

	* examples/poker/pokerchildren.py: lobby implementation for login

Tue Jul 13 15:35:09 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerchildren.py: code dealing with metisse children
	  and xwnc extracted from pokerclient.py

	* include/maf/application.h (MAFApplication): replace OnInit with
	  Init. SetHeaders as a separate function.

	* python/underware/config.py (Config.headerSet): add method
	  headerSet to alter the content of an existing xml tree

	* python/underware/c_mafapplication.cpp: 
	  run/init methods are split and initialize the window, headers and
	  reactor.

Mon Jul 12 18:01:31 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/window.cpp (Init): if width/height are 0 get the maximum
	  available width/height

Sun Jul 11 10:41:46 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.51

	* python/underware/config.py (Config.loadHeader): use xpath instead
	  of xpointer for leak fix

	* src/maf/audio.cpp (Init): handle streams/samples 

	* include/maf/data.h: kill 3ds leftovers

	* include/maf/data.h: use openalpp::SoundData so that we
	  can use streamed vorbis support from openalpp. It does not
	  work out of the box, commented out.

Sat Jul 10 15:51:47 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.50

	* src/maf/wnc_source.cpp (pointerEvent): initialize mouse event structure
	  to 0 (valgrind)

	* src/maf/data.cpp: kill useless dependency to audio.h

	* src/maf/wnc_window.cpp (updateTexture): delete remaining images instead
	  of simply clearing the vector. osg::ref_ptr the subimage so that it gets
	  deleted if not used.

	* src/maf/wnc_window.cpp (load):  delete the first texture

	* src/maf/wnc_desktop.cpp (XwncDesktop): delete _wncServer, remove useless
	  members

	* examples/poker/conf/client/client.xml: very long rfbwait in order
	  to cope with valgrind related delays

	* examples/poker/PokerApplication.cpp (class PokerTableInfo): top right
	  instead of top left to avoid conflict with the chat window

	* python/underware/config.py (Config.loadHeader): free doc and xpath
	  context when *re*loading a document

	* src/maf/data_exg.cpp (Convert): comment out tristrip + optimizer
	  because they produce bugous results.

Fri Jul 09 21:22:05 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/vision.cpp: RecursiveClearUserData, RecursiveLeakCollect, 
	  RecursiveLeakCheck defined as helpers for leak detection and
	  prevention.

	* examples/poker/PokerPlayer.cpp: scene graph debugging information
	  to detect leaks / circular references

	* examples/poker/valgrind-python.supp: add many suppressions specific
	  to poker3d

	* src/maf/scene.cpp (Init): DebugNodes visitor report nodes of the
	  scene graph that are still reachable after the scene deleted the
	  root of the scenegraph. PokerApplication.cpp is responsible to 
	  make sure no other pointer to the scene graph nodes are held by
	  the object it created before calling the destructor of the scene.

	* src/maf/packets.cpp: Py_INCREF/DECREF where appropriate to prevent
	  leaking.

	* examples/poker/PokerApplication.cpp (Load): the set is no longer
	  an orphaned controller (leaking)

	* examples/poker/PokerDebug.{cpp,h}: move to cgi/debug

	* python/underware/config.py (Config.__del__): free the xpath context
	  and the document itself

	* configure.in: USE_PROFILE activated with --with-profile instead
	  of being on by default

	* examples/poker/data/sounds/*: all sounds moved here

	* examples/poker/data/*, examples/src/maf/sound.cpp: sounds=off
	  settings is honored
	
Mon Jul 05 13:12:27 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/PokerBody.cpp (PokerBodyModel): delete 
	  mNoiseAnimation pointer when the object is deallocated

	* src/maf/data.cpp (GetList): xmlGetContent return must be
	  freed

	* src/cgi/animated.cpp (Init): outfit leak fix

Mon Jul 05 00:14:27 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.49

	* Re-package all the dependencies.

Sun Jul 04 12:08:30 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.48

	* examples/poker/pokerclient.py (PokerChildren.__init__): kill
	no_boostrap that disabled chat.

	* examples/poker/PokerPlayer.cpp: characters are always
	  displayed (mDisplayBody no longer exists). Same with 
	  animated.

	* examples/poker/PokerPlayer.cpp (Update): disable character
	collision meshes when zooming to the cards or being in first
	person mode (game mode), only keep the collision mesh of the
	cards. Activate the collision meshes when back in third person
	mode.

Fri Jul 02 14:48:41 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/PokerCamera.cpp (PokerCameraModel): mMode
	  initialized to FREE_MODE (fixes bug camera not moving unless player seated).

	* Multiplatform modifications (Sylvain Grosdemouge)

Thu Jul 01 18:31:51 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.47
	
	* src/maf/data.cpp: outfit switch implemententation

Wed Jun 23 19:01:37 2004  Loic Dachary  <loic@gnu.org>

	* {src,include}/maf/animated.{h,cpp}: rework based on major version
	  of osgcal. Use symbolic names provided by osgcal, remove all name
	  cache introduced in various classes.

	* examples/poker/player_animation.h: access to character Drawables/
	  Texture2D use the facility provided by osgCal to get them using
	  symbolic names.

	* src/maf/data.cpp: Cal3d:LoadXML experimental version (untested)

Sat Jun 19 12:47:36 2004  Loic Dachary  <loic@gnu.org>

	* cal3d/Makefile.am: dynamiccoremodel.{cpp,h} allowing mesh
	  removal.

Fri Jun 18 21:49:29 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/data.cpp: XML based cal3d configuration file

	* examples/poker/poker3d.py (PokerClientProtocol.displayShowdown): only show the
	  best hand if the player wins a given side of the pot

	* examples/poker/pokerclient.py (PokerChildren.gaimConfigureWindow): search for
	  prefs in config directories, not setting directories

	* debian/control: dependencies fixes

Fri Jun 18 16:55:37 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.46

	* examples/poker/pokerserver.py (PokerServer.sitOutPlayer): always sitOutNextTurn
	  when player asks to sit out.
	
	* examples/poker/pokergame.py (PokerGame.money2bet): sanity check money dropping
	  below zero

	* examples/poker/pokerserver.py (PokerServerFactory.getMoney): clamp to 0 and
	  report error if negative

	* examples/poker/player_animation.cpp (PlayLookAt): set y to 0 instead of z

	* configure.in: OpenGL axis migration finished

	* examples/poker/pokertournament.py (PokerTournament.run): reset tournament
	  context when respawning

	* src/maf/scene.cpp (NodeVisitor): HUD has precendence over scene, MAFCursor
	  is ignored when picking.

Thu Jun 17 18:43:27 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/scene.cpp (Pick): only hit the object closest to the screen

	* examples/poker/conf/client/client.xml: more anchors for chips

	* examples/poker/PokerChipsStack.cpp (PlaceStacks): gracefull error message
	  if no anchors left.

	* src/maf/data_exg.cpp (Visitor): handle transparency property

	* examples/poker/pokerclient.py (PokerChildren.kill): gracefully handle missing
	  jabber configuration from client settings

	* src/maf/wnc_source.cpp (start): init structure, prevent junk

	* examples/poker/PokerBezier.h (struct PokerBezier): init mLength in both classes

Thu Jun 17 01:32:22 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/PokerPlayerCamera.h: split PokerPlayer by moving camera
	  code/data to PokerPlayerCamera.{h,cpp}

	* include/maf/controller.h (Referenced): remove unused timeout facility

	* examples/poker/PokerBubble.cpp (PokerBubbleModel): use
	  billboard from graphics.

	* include/maf/vision.h: GetBoundingBox returns the bounding box
	  of an osg::Node

	* examples/poker/pokerserver.py (PokerServer._handleConnection): 
	  leave all tables when PacketQuit received.

	* examples/poker/pokergame.py (PokerGame.endTurn): a player
	  may sitOutNextTurn and also be scheduled to be removedNextTurn.
	  Do not add him twice in the sit out list.

	* examples/poker/PokerApplication.cpp (OnExit): when exiting
	  normally, send PacketPokerQuit to server.

	* examples/poker/pokerserver.py (PokerTable.playerTimeoutTimer): 
	  sitOutNextTurn only if the previous fold leads to the player
	  still participating in the turn.
	
	* src/maf/data.cpp: nuke 3DS dependency

Tue Jun 15 13:44:38 2004  Loic Dachary  <loic@gnu.org>

	* debian/poker3d.files: missing gaim/prefs.xml in distribution

	* configure.in: MAX2GL OpenGL axis always

	* examples/poker/data/* new dataset, OpenGL axis

Mon Jun 14 23:52:33 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/PokerPlayer.cpp: nuke scale parameter, not
	  used anymore.

	* examples/poker/player_animation.cpp (UpdateCardsOfPlayer): 
	  list of cards in argument instead of back reference to player
	  to get their values.

	* examples/poker/PokerPlayer.cpp: mCards becomes mHole because
	  not factorisation.

	* src/maf/scene.cpp: controllers Update are useless, kill them

	* examples/poker/pokergame.py (PokerGame.endTurn): history event
	  sitOut and leave.

	* examples/poker/pokerserver.py (PokerServerFactory.setRating): 
	  calculate ELO rating of player

	* examples/poker/pokergame.py (PokerGame.distributeMoney): showdown
	  stack contains the serials of all players who participated in
	  the game.

	* examples/poker/PokerBubble.cpp (PokerBubbleModel): use
	configuration file for font directory instead of hardwired value.

	* examples/poker/pokerserver.py
	(PokerServer.sendNewPlayerInformation): send SIT packet when new
	player joins

	* src/maf/data.cpp: report failure to get exact anchor match

Fri Jun 11 17:50:42 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/PokerApplication.cpp (Load): skip test code
	  if duplicates set to 0

	* src/maf/data_exg.cpp: rework path construction policy and
	  debug/error messages formating for clarity.

Thu Jun 10 18:22:25 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/PokerHalo.cpp (Init): renderbin hint for sort

	* examples/poker/PokerShowdown.{cpp,h}: display showdown, high and
	  low simultaneously, click to swap between the two.
	
	* examples/poker/PokerCard.cpp: do not turn cards into active
	  objects that are selectable. Callback maintains a map of
	  node->controller that assumes no node is removed/added once
	  the callback is installed.

	* src/maf/application.cpp (HeaderGetProperties): return a map
	  of attribute/value for a given node.

	* src/maf/data.cpp (GetAnchor): explain failure to get an anchor

Tue Jun 08 17:20:27 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/application.cpp: PythonAccept no longer maintains a separate 
	  fake event queue.

	* examples/poker/Poker.cpp: python call handled in PythonAccept instead of
	  Update

	* examples/poker/poker3d.py (PokerClientProtocol.handleGame): update pot
	  and player chips when state changes instead of global test with inaccurate
	  storate of the state.

	* examples/poker/pokerpackets.py (PacketPokerBestCards): add side member

	* examples/poker/poker3d.py (PokerClientProtocol.displayShowdown): 
	  use serial2best provided by PokerGame instead of recomputing it.

Tue Jun 08 00:32:58 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerserver.py (PokerTable.updateTimers): any
	  event in the game resets the player timeout.

	* examples/poker/conf/client/client.xml: default anglePixelRatio
	  20.0
	
	* examples/poker/PokerCamera.cpp (RotateFreeMode): read
	  anglePixelRatio from configuration file.

	* examples/poker/player_animation.cpp (class Noise*): honor
	  mKeepGoing flag (only one of them did honor the flag).

	* examples/poker/PokerPlayer.cpp (Update): run blink/noise
	  every 2 seconds randomly.

	* examples/poker/PokerPlayer.cpp: if sit is set (coming back
	  to an existing game), play waiting. If seat is set, play
	  sit / sitout animation, if seat is not set, just change the
	  boolean value.

	* examples/poker/poker3d.py (PokerClientProtocol.handleGame): 
	  provide POKER_START packet to C++
	
	* examples/poker/poker3d.py (PokerClientProtocol.redisplay): 
	  provide POKER_START packet to C++

	* examples/poker/Poker.cpp: handle START packet to initialize
	  cards state.

	* examples/poker/PokerPlayer.h: EndFolding replaces implicit
	  stop of fold callback hiden in ReceiveCards (because it was
	  known that ReceiveCards is called at the beginning of a turn).

Thu Jun 03 21:05:42 2004  Loic Dachary  <loic@gnu.org>

	* cal3d/scheduler.cpp (getAnimationIdsFromAnyId): implement
	  ALL to match all animation IDs

	* examples/poker/PokerDealer.cpp: animated dealer.

	* examples/poker/PokerPlayer.cpp (Update): animation for player
	  participating in the game or not participating in the game.

	* examples/poker/pokerserver.py (PokerTable.game2packets): change
	  the status of the player from seated to observer when actually
	  leaving the table.

Wed Jun 02 17:13:13 2004  Loic Dachary  <loic@gnu.org>

	* cal3d/animationalt.cpp (process): test fadeOut for fadeOut and not fadeIn

	* examples/poker/conf/engine/*limit*: update chips to new values, handle high stakes.

	* cal3d/scheduler.cpp (destroy): delete id2animation instead of activeAnimations to
	  fix animations leak.

Wed Jun 02 10:38:01 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.44

	* examples/poker/pokerserver.py (PokerTable.playerWarningTimer): call function fix

	* examples/poker/pokergame.py (PokerGame.betLimits): the minimum bet is at
	  least equal to the last bet.

Tue Jun 01 23:54:41 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/PokerPlayer.cpp: do not SetTextMessage all the time

	* examples/poker/pokerserver.py (PokerTable.playerWarningTimer):
	jabber message issued when timeout warning/notice are sent

	* examples/poker/pokerclient.py (Main.jabberCreateAccount): increase timeout to 2000

	* examples/poker/pokerclient.py (PokerChildren.gaimConfigureWindow): gaim configuration
	  file is altered by poker3d configuration file.

	* examples/poker/pokerclient.py (Main.__init__): cleaner
	  reports when failing to find configuration files

	* examples/poker/poker*.py: s/int(headerGet/headerGetInt/g

	* python/underware/config.py (Config.headerGetInt): new method

	* examples/poker/pokerserver.py (PokerJabberClient.authSuccess):
	report successfull connection even when not in verbose mode.

	* examples/poker/conf/client/client.xml: chips for 20, 250, 500,
	  1000, 2000, 5000

	* python/underware/config.py (Config.loadHeader): check ~/...
	  exists before chosing it.

Mon May 31 18:03:37 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.43

	* examples/poker/pokergame.py (PokerGame.distributeMoney): use
	  divideChips to make sure the remainder is a multiple of the smallest
	  chip value available.

Fri May 28 18:27:12 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/conf/client/poker.client.xml: 
	* src/maf/error.cpp: log level : 0 none, 1 user, 2 verbose, 3 debug

Thu May 27 00:46:44 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerclient.py: keep pid files to prevent child
	  process left overs. Restructure the personal user directory to
	  be fully in ~/.poker3d, including gaim configuration.
	
Wed May 26 22:00:32 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerserver.py (PokerTable.destroyPlayer): do not
	  destroy an empty table if the owner is still watching it.

	* src/maf/data.cpp: {Set,Get}Ametista enable/disable attempt
	  to connect to Xwnc.

	* debian/rules: Always compile with ametista support

	* examples/poker/poker{client,server}.py: jabber is optional

	* src/maf/scene.cpp: do not setUserData(0) while walking the
	  graph since it may trigger the deallocation of some nodes
	  because ArtefactControllers do a Anchor(0) when deallocated.

	* examples/poker/conf/client/poker.client.xml: <sound>on/off</sound>
	  to enable/disable the sound system.

	* src/maf/scene.cpp: SetAudio/GetAudio : enable/disable sound 
	  system. 

	* examples/poker/pokerclient.py, python/underware/c_mafapplication.cpp: 
	  signal handling (python side), Stop method to notify C++ side
	  that the game is stopped.

Tue May 25 19:14:19 2004  Loic Dachary  <loic@gnu.org>

	* src/maf/wnc_source.cpp: accept the new isroot field from
	  xwnc-0.3.0-2.

	* examples/poker/pokerclient.py: run/configure xwnc/gaim when
	  starting the game, stop them when exiting. 

	* src/maf/window.cpp (Init): honor screen size spec even in
	  fullscreen mode.  Always display available video modes.

Mon May 24 20:51:52 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/poker3d.py (PokerClientProtocol.jabberMessageReceive): hook
	  jabber proxy to notify poker3d when a message is received from the jabber
	  server.

	* examples/poker/jabberproxy.py (JabberProxyClient.elementReceived): upgrade
	  to jabberd2 / SASL authentication

	* examples/poker/pokerclient.py (PokerClient.run): jabber account is automatically
	  created based on poker3d settings.

Sun May 23 12:46:12 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokergame.py (breakGames): showdown stack computed and added in
	  history (end) for complete and precise showdown tracking.

Sat May 22 18:15:57 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokergame.py (PokerGame.getBoardAsString): cards2string
	  method for convenient external use, patch to use internally for consistency.

Fri May 21 20:13:12 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/twibber: http://www.jabberstudio.org/projects/twibber
	  CVS imported and adapted. Plugged in pokerserver.py.
	
Thu May 20 17:21:15 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/{jabberproxy,pokerjabber}.py: Jabber minidom/expat/twisted based 
	  subclassable transparent proxy

Tue May 18 00:02:58 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.42

	* examples/poker/pokerserver.py (PokerServerFactory.buyInPlayer):
	avoid miscalculation because non cached values in update order

Mon May 17 20:14:20 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerserver.py (PokerTable.joinPlayer): test isSeated on
	  game before joining instead of using the not-yet-consistent predictate 
	  isJoined (fixes bug preventing users to come back in game).

	* examples/poker/pokerbot.py: delay parameter to slow down the bots for test
	  purpose

	* src/maf/data.cpp: enable loading OGG vorbis files

	* src/maf/data.cpp: libxml2 doc must be freed with xmlFreeDoc

	* examples/poker/poker.server.xml: add database parameters

	* python/underware/server.py (CGIServerFactory.__init__): database
	  parameters provided to the constructor

Fri May 14 14:47:13 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerserver.py (PokerServer.removePlayer): the player
	  is removed if he is not playing, even if a game is running.

	* examples/poker/pokerserver.py: end entry in history has the list
	  of winners in addition to the shares of the pot and the Win packet
	  sends it instead of the list of players that have a share of the pot.

	* python/underware/config.py: nuke Script system, replace with
	  a class able to load/parse XML files.

Fri May 14 00:33:02 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.41

	* examples/poker/pokerprotocol.py: save the bet step so that
	  conversion is done properly (closes bug where betting did
	  not be the desired amount).

	* examples/poker/pokerprotocol.py: interactors are displayed
	when the user is InGame instead of Playing.

	* examples/poker/pokerserver.py (PokerServerFactory.leavePlayer): 
	data persistence based on MySQL. Money changes are reflected
	in the database as soon as it is updated in the server.

2004-05-13  gettextize  <bug-gnu-gettext@gnu.org>

	* configure.in (AM_GNU_GETTEXT_VERSION): Bump to 0.14.1.

2004-05-13  gettextize  <bug-gnu-gettext@gnu.org>

	* Makefile.am (SUBDIRS): Add m4.
	(ACLOCAL_AMFLAGS): New variable.
	(EXTRA_DIST): Add config.rpath.
	* configure.in (AC_CONFIG_FILES): Add po/Makefile.in,

Thu May 13 10:36:36 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerprotocol.py (PokerClientProtocol.updatePotChips): pot amount is in bet field, not in the money field

Wed May 12 17:51:06 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/pokerserver.py (PokerTable.joinPlayer): duplicate
	packets sent when users both in observers and seated at the table.

	* examples/poker/pokerprotocol.py
	(PokerClientProtocol.displayShowdown): It may be impossible to
	display the showdown if some winners left the game.

Wed May 12 12:51:08 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.40

	* examples/poker/poker{server,packets,protocol,tournament,bot}.py:
	  simultaneous play protocol implementation.

	* examples/poker/pokerserver.py: complete rework of the
	sit/seated/joined, closed/open/running games special cases.

Tue May 11 19:16:20 2004  Loic Dachary  <loic@gnu.org>

	* python/underware/c_mafapplication.cpp (MAFApplication_run):
	return 0 if an exception occurs so that python notices the error.

	* examples/poker/Poker.cpp: clear the card of the board when
	  switching/destroying tables.

	* examples/poker/pokerprotocol.py (PokerClientProtocol.updatePotChips): step is the highest chip value possible instead of the first available

Mon May 10 19:31:26 2004  Loic Dachary  <loic@gnu.org>

	* Release 0.1.39
	
	* examples/poker/pokertournament.py: stop reactor when tournament
	finishes. Delay destruction of the table so that the winner can
	enjoy his victory.

	* examples/poker/pokerprotocol.py: table destroy passed to underware

	* examples/poker/pokertournament.py: prevent duplicate evalution,
	  add parameter for looping tournaments.

	* examples/poker/poker.tournament-holdem-10-15-pot-limit.xml: add
	descriptions for pot limit and no limit tournaments.

Sun May 09 14:43:24 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/Poker.cpp: F3 => Get a seat, F4 => Leave the
	seat, RIGHT => next table, LEFT => previous table

Sun May 09 11:34:52 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/Poker.cpp: F1 => Sit, F2 => SitOut

Sun May 09 10:11:30 2004  Loic Dachary  <loic@gnu.org>

	* examples/poker/PokerPlayer.cpp (Loose,Win): play only if player
	participated in the game (mInGame).
