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)
109 parmList.AddObject(parm);
112inline const char *Conditional::getParm(
int number)
114 if ((number < 1) || (number > parmList.NumObjects())) {
115 gi.Error(ERR_DROP,
"Parm #%d out of range on %s condition\n", number, condition.name);
117 return parmList.ObjectAt(number).c_str();
120inline int Conditional::numParms(
void)
122 return parmList.NumObjects();
125inline void Conditional::clearCheck(
void)
130inline void Conditional::clearPrevious(
void)
135inline const char *Conditional::getName(
void)
137 return condition.name;
140inline bool Conditional::getResult(testcondition_t test,
Entity& ent)
142 if (condition.func && !checked) {
144 previous_result = result;
146 result = (ent.*condition.func)(*
this);
154 return result && !previous_result;
157 return !result && previous_result;
161 return result !=
false;
168class Expression :
public Class
172 testcondition_t test;
181 Expression(
const Expression& exp);
184 void operator=(
const Expression& exp);
187 const char *getValue(
void);
190inline void Expression::operator=(
const Expression& exp)
196 conditions.FreeObjectList();
197 for (i = 1; i <= exp.conditions.NumObjects(); i++) {
198 conditions.AddObject(exp.conditions.ObjectAt(i));
202inline const char *Expression::getValue(
void)
204 return value.c_str();
207class State :
public Class
217 movecontrol_t movetype;
218 cameratype_t cameratype;
228 int m_iActionAnimType;
234 void readNextState(
Script& script);
235 void readMoveType(
Script& script);
236 void readCamera(
Script& script);
237 void readLegs(
Script& script);
238 void readAction(
Script& script);
239 void readBehavior(
Script& script);
240 void readTime(
Script& script);
241 void readStates(
Script& script);
244 void ParseAndProcessCommand(
str command,
Entity *target);
250 int addCondition(
const char *name,
Script& script);
251 void CheckStates(
void);
253 const char *getName(
void);
257 const char *getBehaviorName(
void);
258 State *getNextState(
void);
259 movecontrol_t getMoveType(
void);
260 cameratype_t getCameraType(
void);
261 qboolean setCameraType(
str ctype);
263 const char *getBehaviorParm(
int number = 1);
264 void addBehaviorParm(
str parm);
265 int numBehaviorParms(
void);
267 float getMinTime(
void);
268 float getMaxTime(
void);
269 void ProcessEntryCommands(
Entity *target);
270 void ProcessExitCommands(
Entity *target);
275inline void State::addBehaviorParm(
str parm)
277 behaviorParmList.AddObject(parm);
280inline const char *State::getBehaviorParm(
int number)
282 return behaviorParmList.ObjectAt(number).c_str();
285inline int State::numBehaviorParms(
void)
287 return behaviorParmList.NumObjects();
290class StateMap :
public Class
307 State *FindState(
const char *name);
308 const char *Filename();
311inline const char *StateMap::Filename(
void)
313 return filename.c_str();
316inline const char *State::getName(
void)
321inline State *State::getNextState(
void)
323 return statemap.FindState(nextState.c_str());
326inline movecontrol_t State::getMoveType(
void)
331inline cameratype_t State::getCameraType(
void)
336void ClearCachedStatemaps(
void);
342 qboolean cache_only =
false
Definition characterstate.h:82
Definition container.h:85
Definition characterstate.h:169
Definition characterstate.h:291
Definition characterstate.h:208
Definition characterstate.h:76