22 #ifndef FIFE_INSTANCE_H 23 #define FIFE_INSTANCE_H 82 virtual void onInstanceChanged(
Instance* instance, InstanceChangeInfo info) = 0;
88 virtual void onInstanceDeleted(
Instance* instance) =0;
109 const std::string& getId();
113 void setId(
const std::string& identifier=
"");
122 void setLocation(
const Location& loc);
146 void setFacingLocation(
const Location& loc);
161 void setRotation(int32_t rotation);
166 int32_t getRotation()
const;
171 int32_t getOldRotation()
const;
175 void setBlocking(
bool blocking);
179 bool isBlocking()
const;
183 void setOverrideBlocking(
bool overblock);
187 bool isOverrideBlocking()
const;
193 void callOnActionFrame(
Action* action, int32_t frame);
229 Action* getCurrentAction()
const;
235 double getMovementSpeed()
const;
248 void setActionRuntime(
uint32_t time_offset);
257 void move(
const std::string& actionName,
const Location& target,
const double speed,
const std::string& costId =
"");
263 void actOnce(
const std::string& actionName,
const Location& direction);
269 void actOnce(
const std::string& actionName, int32_t rotation);
274 void actOnce(
const std::string& actionName);
280 void actRepeat(
const std::string& actionName,
const Location& direction);
286 void actRepeat(
const std::string& actionName, int32_t rotation);
291 void actRepeat(
const std::string& actionName);
297 void say(
const std::string& text,
uint32_t duration=0);
305 void follow(
const std::string& actionName,
Instance* leader,
const double speed);
313 void follow(
const std::string& actionName,
Route* route,
const double speed);
319 void cancelMovement(
uint32_t length = 1);
323 const std::string* getSayText()
const;
330 InstanceChangeInfo update();
334 bool isActive()
const;
342 template<
typename T> T*
getVisual()
const {
return reinterpret_cast<T*
>(m_visual); }
344 void callOnTransparencyChange();
345 void callOnVisibleChange();
346 void callOnStackPositionChange();
350 void setTimeMultiplier(
float multip);
354 float getTimeMultiplier();
358 float getTotalTimeMultiplier();
372 InstanceChangeInfo getChangeInfo();
376 void onInstanceDeleted(
Instance* instance);
384 void setCellStackPosition(
uint8_t stack);
388 uint8_t getCellStackPosition();
392 bool isSpecialCost();
398 void setCost(
const std::string&
id,
double cost);
410 std::string getCostId();
418 bool isSpecialSpeed();
426 bool isMultiObject();
430 void updateMultiInstances();
434 const std::vector<Instance*>& getMultiInstances();
438 void setMainMultiInstance(
Instance* main);
455 void removeStaticColorOverlay(int32_t angle);
459 bool isStaticColorOverlay();
472 void removeColorOverlay(
const std::string& actionName, int32_t angle);
476 void addAnimationOverlay(
const std::string& actionName,
uint32_t angle, int32_t order,
const AnimationPtr& animationptr);
481 std::map<int32_t, AnimationPtr> getAnimationOverlay(
const std::string& actionName, int32_t angle);
485 void removeAnimationOverlay(
const std::string& actionName,
uint32_t angle, int32_t order);
489 void addColorOverlay(
const std::string& actionName,
uint32_t angle, int32_t order,
const OverlayColors& colors);
498 void removeColorOverlay(
const std::string& actionName, int32_t angle, int32_t order);
502 void convertToOverlays(
const std::string& actionName,
bool color);
506 bool isAnimationOverlay(
const std::string& actionName);
510 bool isColorOverlay(
const std::string& actionName);
604 void finalizeAction();
608 void initializeAction(
const std::string& actionName);
610 bool processMovement();
614 void bindTimeProvider();
616 void initializeChanges();
618 void prepareForUpdate();
621 void createOwnObject();
623 ActionVisual* getActionVisual(
const std::string& actionName,
bool create);
Timeprovider is an utility providing time management functionality You can have hierarchy of time pro...
InstanceActivity * m_activity
Action * m_action
action on previous round. NOTE: might become invalid, only used for address comparison ...
bool m_ownObject
indicates if m_object is customized
Interface class between Instance / ActionAudio and SoundEmitter.
bool m_blocking
blocking status on previous round
SoundSource * m_soundSource
sound source of action audio on previous round
Action visual contains data that is needed to visualize different actions on screen.
virtual ~InstanceActionListener()
std::vector< InstanceDeleteListener * > m_deleteListeners
listeners for deletion of the instance
bool m_blocking
instance blocking info
Base class for all fife classes Used e.g.
Location m_location
current location
virtual void onInstanceActionCancelled(Instance *instance, Action *action)=0
void setVisual(IVisual *visual)
Sets visualization to be used.
std::string m_sayText
say text on previous round
virtual void onInstanceActionFinished(Instance *instance, Action *action)=0
double m_speed
speed on previous round
IVisual * m_visual
instance visualization
int32_t m_rotation
The rotation offset of this instance.
Instance * m_mainMultiInstance
pointer to the main multi instance
std::vector< InstanceActionListener * > m_actionListeners
listeners for action related events
std::vector< InstanceChangeListener * > m_changeListeners
listeners for changes
uint32_t InstanceChangeInfo
float m_timeMultiplier
time multiplier on previous round
virtual ~InstanceDeleteListener()
virtual void onInstanceActionFrame(Instance *instance, Action *action, int32_t frame)=0
InstanceActivity gets allocated in case there is some runtime activity related to the instance...
Location m_location
location on previous round
InstanceChangeInfo m_additional
additional change info, used for visual class (transparency, visible, stackpos)
ActionInfo * m_actionInfo
action information, allocated when actions are bind
double m_cost
holds cost value
TimeProvider * m_timeProvider
time scaler for this instance
SayInfo * m_sayInfo
text to say + duration, allocated when something is said
InstanceChangeInfo m_changeInfo
bitmask stating current changes
bool m_specialCost
indicates special cost
std::string m_costId
holds cost id
std::vector< Instance * > m_multiInstances
vector that holds all multi instances
T * getVisual() const
Gets used visualization.
virtual ~InstanceChangeListener()
Location m_oldLocation
location on previous cell
Object * m_object
object where instantiated from
uint8_t m_cellStackPos
position on cell stack
int32_t m_rotation
rotation on previous round
An Instance is an "instantiation" of an Object at a Location.
bool m_overrideBlocking
allow to override the blocking property
int32_t m_oldRotation
rotation on previous round