> Do you know which ones?


The parameter block is used in expressions represented in XML as:

 

CEL_OPERATION_PARAM

 

CEL_OPERATION_CALL_I

CEL_OPERATION_FOR

CEL_OPERATION_FORBAG

CEL_OPERATION_FORI

CEL_OPERATION_IF

 

CEL_OPERATION_INHERITPARAMS

 

 

The first of these may be the dynamic parameters (@param) forwarded by specific 
triggers. I am not sure if this could be referring to any other parameters, or 
are only dynamic parameters (@param) evaluated inside a cel expression? If it 
is, this should never be asked for and if so would be caught by the error 
handling in the execute method.

 

The next group of operations that use it, merely push the params onto a stack 
and then call the method on a subtree. I am thinking this is of no concern as 
it is not actually calling a method from the parameter block.

 

The final one assigns the parameter block to another name that is later passed 
to a number of methods:

 

SendMessage(...)

pc->PerformAction(...)

 

and is methods from the newly named parameter block are used inside the 
expression evaluation in CEL_OPERATION_ACTIONPARAM.

 


> I think the only thing that should be filled up when the trigger fires
> are the trigger parameters (for example parameters from messages for the
> message trigger), which are forwarded to the reward expressions (can be
> caught with @parameter). In this case, that kind of expression doesn't
> make sense, for the rest (like $this), i guess they are filled up
> sooner, or you have to fill them up sonner yourself, or else that
> parameter block doesn't apply in this case, i'm not totally sure... if
> you need more details i can look up the code, but i think with this
> notions should be enough for you.

 

My understanding is that the $ parameters are put into a celParams (previously 
celQuestParams) and passed to the reward/trigger/seqop factories. The 
celParameterBlocks are, as you said, filled with dynamic parameters (@) inside 
the triggers and then passed to the rewards when they execute. But it appears 
that these dynamic parameters (@) are all that is inside the parameter block 
when passed to the rewards.

What I am struggling to understand is, that a refrence to a parameter is 
assigned by the method GetParameter using the celParams form of parameters and 
later that refrence is used to get a value for the parameter using the 
parameters Get method and the parameter block but the parameter block and the 
celParams parameters appear to have no link.

 

Kind Regards,
Sam


_________________________________________________________________
Windows Live Messenger: Happy 10-Year Anniversary—get free winks and emoticons.
http://clk.atdmt.com/UKM/go/157562755/direct/01/
------------------------------------------------------------------------------
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
_______________________________________________
Cel-main mailing list
Cel-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cel-main

Reply via email to