42 MOVECONTROL_USER_MOVEANIM,
46 MOVECONTROL_ROPE_GRAB,
47 MOVECONTROL_ROPE_RELEASE,
48 MOVECONTROL_ROPE_MOVE,
49 MOVECONTROL_PICKUPENEMY,
51 MOVECONTROL_CLIMBWALL,
54 MOVECONTROL_LOOPUSEANIM,
55 MOVECONTROL_USEOBJECT,
56 MOVECONTROL_COOLOBJECT,
70#define DEFAULT_MOVETYPE MOVECONTROL_NONE
71#define DEFAULT_CAMERA CAMERA_BEHIND
81class Conditional :
public Class
85 qboolean previous_result;
89 CLASS_PROTOTYPE(Conditional);
94 bool getResult(testcondition_t test,
Entity &ent);
95 const char *getName(
void);
100 const char *getParm(
int number);
101 void addParm(
str parm);
103 void clearCheck(
void);
104 void clearPrevious(
void);
107inline void Conditional::addParm(
str parm)
110 parmList.AddObject(parm);
113inline const char *Conditional::getParm(
int number)
116 if ((number < 1) || (number > parmList.NumObjects())) {
117 gi.Error(ERR_DROP,
"Parm #%d out of range on %s condition\n", number, condition.name);
119 return parmList.ObjectAt(number).c_str();
122inline int Conditional::numParms(
void)
125 return parmList.NumObjects();
128inline void Conditional::clearCheck(
void)
134inline void Conditional::clearPrevious(
void)
140inline const char *Conditional::getName(
void)
143 return condition.name;
146inline bool Conditional::getResult(testcondition_t test,
Entity& ent)
148 if (condition.func && !checked) {
150 previous_result = result;
152 result = (ent.*condition.func)(*
this);
160 return result && !previous_result;
163 return !result && previous_result;
167 return result !=
false;
174class Expression :
public Class
178 testcondition_t test;
187 Expression(
const Expression& exp);
190 void operator=(
const Expression& exp);
193 const char *getValue(
void);
196inline void Expression::operator=(
const Expression& exp)
203 conditions.FreeObjectList();
204 for (i = 1; i <= exp.conditions.NumObjects(); i++) {
205 conditions.AddObject(exp.conditions.ObjectAt(i));
209inline const char *Expression::getValue(
void)
212 return value.c_str();
215class State :
public Class
225 movecontrol_t movetype;
226 cameratype_t cameratype;
236 int m_iActionAnimType;
242 void readNextState(
Script& script);
243 void readMoveType(
Script& script);
244 void readCamera(
Script& script);
245 void readLegs(
Script& script);
246 void readAction(
Script& script);
247 void readBehavior(
Script& script);
248 void readTime(
Script& script);
249 void readStates(
Script& script);
252 void ParseAndProcessCommand(
str command,
Entity *target);
258 int addCondition(
const char *name,
Script &script);
259 void CheckStates(
void);
261 const char *getName(
void);
265 const char *getBehaviorName(
void);
266 State *getNextState(
void);
267 movecontrol_t getMoveType(
void);
268 cameratype_t getCameraType(
void);
269 qboolean setCameraType(
str ctype);
271 const char *getBehaviorParm(
int number = 1);
272 void addBehaviorParm(
str parm);
273 int numBehaviorParms(
void);
275 float getMinTime(
void);
276 float getMaxTime(
void);
277 void ProcessEntryCommands(
Entity *target);
278 void ProcessExitCommands(
Entity *target);
283inline void State::addBehaviorParm(
str parm)
286 behaviorParmList.AddObject(parm);
289inline const char *State::getBehaviorParm(
int number)
292 return behaviorParmList.ObjectAt(number).c_str();
295inline int State::numBehaviorParms(
void)
298 return behaviorParmList.NumObjects();
301class StateMap :
public Class
318 State *FindState(
const char *name);
319 const char *Filename();
322inline const char *StateMap::Filename(
void)
325 return filename.c_str();
328inline const char *State::getName(
void)
334inline State *State::getNextState(
void)
337 return statemap.FindState(nextState.c_str());
340inline movecontrol_t State::getMoveType(
void)
346inline cameratype_t State::getCameraType(
void)
352void ClearCachedStatemaps(
void);
358 qboolean cache_only =
false
Definition characterstate.h:82
Definition container.h:85
Definition characterstate.h:175
Definition characterstate.h:302
Definition characterstate.h:216
Definition characterstate.h:76