3 .entity verbs_attack;
\r
6 .float(float eval) verb_call;
\r
8 .float verb_static_value;
\r
10 #define VS_CALL_NO 0
\r
11 #define VS_CALL_YES_DOING -1
\r
12 #define VS_CALL_YES_DONE -2
\r
13 #define VS_CALL_REMOVE -3
\r
15 entity verbstack_push(entity stack, float(float eval) vrb_call, float val_static, float vrb_life)
\r
21 vrb.verbstack = stack;
\r
22 vrb.verb_call = vrb_call;
\r
23 vrb.verb_static_value = val_static;
\r
27 vrb.think = SUB_Remove;
\r
28 vrb.nextthink = time + vrb_life;
\r
34 float verbstack_pop(entity stack)
\r
37 entity bestverb,oldself;
\r
38 float value,bestvalue;
\r
42 vrb = findchainentity(verbstack,stack);
\r
47 value = vrb.verb_call(TRUE);
\r
50 if(value == VS_CALL_REMOVE)
\r
55 if(value > bestvalue)
\r
68 value = bestverb.verb_call(FALSE);
\r
69 if(value == VS_CALL_REMOVE)
\r
78 entity verbstack_pull(entity stack)
\r
81 entity bestverb,oldself;
\r
82 float value,bestvalue;
\r
86 vrb = findchainentity(verbstack,stack);
\r
91 value = vrb.verb_call(TRUE);
\r
94 if(value == VS_CALL_REMOVE)
\r
99 if(value > bestvalue)
\r