On 09/05/09 13:22, Torsten Dreyer wrote:

> Looks like this is a chicken-egg problem:
> 
> The chicken:
> The model class in multiplayer.nas listens on the 
> property /ai/models/model-added and checks for all models the 
> property "valid" to be true.
> 
> The egg:
> When AIManager attaches a model, it first loads the model by calling 
> model->init();
> FGAIBase::init() calls FGAIBase::load3DModel() which calls 
> FGAIBase::initModel() which sets property /ai/models/model-added. (This 
> triggers the chicken, but "valid" is not yet set to true)
> _AFTER_ model->init() in AIManager::atach() is finished, the property "valid" 
> in the /ai/models/multiplayer[n] is set to true.
> 
> This causes new latest addition to the multiplayer list to be ignored.
> 
> I think the behaviour of FGAIBase and AIManager is correct to set the "valid" 
> property to true after the initialization is complete. 
> I also think that the check for "valid" in the model class in multiplayer.nas 
> is required to stay there.
> 
> I have just commited a patch for multiplayer.nas that ignores the "valid" 
> flag 
> for the latest pilot that has joined.
> 
> Please check if this solves the problem.

The conventional technique for dealing with such 
problems is to have three states: 
  00  invalid
  01  incipient, i.e. usable for some purposes
  10  fully_valid, i.e. usable for all purposes

Initialization routines typically require incipient or
fully_valid, while other routines typically insist on
fully_valid.

This is less risky and more maintainable than simply
ignoring the valid flag.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to