Proto d'une expression : ObjSPtr obj1 et ObjSPtr obj2 ?

Bonjour 4ian,

double ArrayShowerObject::ExpGetRowObject( const RuntimeScene & scene, ObjectsConcerned & objectsConcerned, ObjSPtr obj1, ObjSPtr obj2, const ExpressionInstruction & exprInstruction );

je voudrais savoir à quoi sert les deux ObjSPtr ?

L’obj1 est (éventuellement) l’objet concerné par la condition/action en cours d’exécution.
Il est donc logiquement à prendre en priorité si jamais ton expression demande une liste d’objets, en faisant comme ceci :

[code]ObjList list = objectsConcerned.Pick( exprInstruction.parameters[1].GetAsObjectIdentifier() ); //Je recupère une liste d’objet

if ( !list.empty() )
{
object = list[0]; //On prend le premier objet de la liste par défaut.

ObjList::iterator iter = find(list.begin(), list.end(), obj1);
if ( iter != list.end() )
   object = *iter; //Si jamais dans la liste on trouve obj1, on va le prendre en priorité, vu que c'est lui qui est "concerné" par l'action ou la condition

//Faire ce qu'on veut avec object.

}
[/code]

Exemple : Faire =MonObjet.Variable(Puissance) à la position X de MonObjet.
Ici, on s’attend à ce que MonObjet.Variable(Puissance) soit la variable de MonObjet qui est actuellement entrain d’être manipulé par l’action.

Enfin, c’est vraiment utile quand une expression a besoin de récupérer une liste d’objets, c’est à dire pas souvent : La plupart du temps, on utilise des expressions membres d’objets, et c’est Game Develop qui gère ça en interne, de cette façon.

Obj2 c’est pareil pour un objet “secondaire”. En pratique, aucun condition ou action ne déclare un objet comme “objet secondaire”. C’est plus une relique qu’autre chose ce paramètre.