-
Notifications
You must be signed in to change notification settings - Fork 0
/
Mummy.cpp
90 lines (73 loc) · 1.82 KB
/
Mummy.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//
// Mummy.cpp
//
// Engine includes.
#include "EventStep.h"
#include "LogManager.h"
#include "WorldManager.h"
#include "utility.h"
// Game includes.
#include "Mummy.h"
Mummy::Mummy(Hero *p_hero) {
// Basic Mummy attributes.
m_move_countdown = 0;
m_think_countdown = 0;
setType("Mummy");
setAltitude(3);
setSpeed(0);
// Default sprite, standing.
setSprite("mummy-white");
stopAnimation(true);
// Mummy keeps track of Hero.
m_p_hero = p_hero;
// Get step events.
#ifdef DF_REGISTER_INTEREST
registerInterest(df::STEP_EVENT);
#endif
}
// Start or stop animation.
void Mummy::stopAnimation(bool stop) {
df::Animation animation = getAnimation();
if (stop) {
if (animation.getSlowdownCount() != -1) {
animation.setSlowdownCount(-1);
animation.setIndex(0);
}
} else {
if (animation.getSlowdownCount() == -1) {
animation.setSlowdownCount(0);
animation.setIndex(0);
}
}
setAnimation(animation);
}
// Handle event.
// Return 0 if ignored, else 1
int Mummy::eventHandler(const df::Event *e) {
// If we get here, we have ignored this event.
return 0;
}
// Return true if Hero is within sensing distance.
bool Mummy::senseHero() {
return false; // Can't sense.
}
// If can see Hero and can sense Hero, return direction
// else return (0,0).
df::Vector Mummy::seeHero() {
return df::Vector(0,0); // Can't see.
}
void Mummy::setMoveCountdown(int new_move_countdown) {
m_move_countdown = new_move_countdown;
}
int Mummy::getMoveCountdown() {
return m_move_countdown;
}
void Mummy::setThinkCountdown(int new_think_countdown) {
m_think_countdown = new_think_countdown;
}
int Mummy::getThinkCountdown() {
return m_think_countdown;
}
Hero *Mummy::getHero() {
return m_p_hero;
}