ManaPlus
src
statuseffect.cpp
Go to the documentation of this file.
1
/*
2
* The ManaPlus Client
3
* Copyright (C) 2008-2009 The Mana World Development Team
4
* Copyright (C) 2009-2010 The Mana Developers
5
* Copyright (C) 2011-2019 The ManaPlus Developers
6
* Copyright (C) 2019-2021 Andrei Karas
7
*
8
* This file is part of The ManaPlus Client.
9
*
10
* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation; either version 2 of the License, or
13
* any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the GNU General Public License
21
* along with this program. If not, see <http://www.gnu.org/licenses/>.
22
*/
23
24
#include "
statuseffect.h
"
25
26
#include "
configuration.h
"
27
#include "
soundmanager.h
"
28
29
#include "
const/resources/spriteaction.h
"
30
31
#include "
gui/widgets/tabs/chat/chattab.h
"
32
33
#include "
particle/particleengine.h
"
34
35
#include "
resources/sprite/animatedsprite.h
"
36
37
#include "
debug.h
"
38
39
StatusEffect::StatusEffect
() :
40
mMessage(),
41
mSFXEffect(),
42
mStartParticleEffect(),
43
mParticleEffect(),
44
mIcon
(),
45
mAction(),
46
mName(),
47
mIsPersistent(false),
48
mIsPoison(false),
49
mIsCart(false),
50
mIsRiding(false),
51
mIsTrickDead(false),
52
mIsPostDelay(false)
53
{
54
}
55
56
StatusEffect::~StatusEffect
()
57
{
58
}
59
60
void
StatusEffect::playSFX
()
const
61
{
62
if
(!
mSFXEffect
.empty())
63
soundManager
.
playSfx
(
mSFXEffect
, 0, 0);
64
}
65
66
void
StatusEffect::deliverMessage
()
const
67
{
68
if
(!
mMessage
.empty() &&
69
localChatTab
!=
nullptr
)
70
{
71
localChatTab
->
chatLog
(
mMessage
,
72
ChatMsgType::BY_SERVER
,
73
IgnoreRecord_false
,
74
TryRemoveColors_true
);
75
}
76
}
77
78
Particle
*
StatusEffect::getStartParticle
()
const
79
{
80
if
(
particleEngine
==
nullptr
||
mStartParticleEffect
.empty())
81
return
nullptr
;
82
return
particleEngine
->
addEffect
(
mStartParticleEffect
, 0, 0, 0);
83
}
84
85
Particle
*
StatusEffect::getParticle
()
const
86
{
87
if
(
particleEngine
==
nullptr
||
mParticleEffect
.empty())
88
return
nullptr
;
89
return
particleEngine
->
addEffect
(
mParticleEffect
, 0, 0, 0);
90
}
91
92
AnimatedSprite
*
StatusEffect::getIcon
()
const
93
{
94
if
(
mIcon
.empty())
95
{
96
return
nullptr
;
97
}
98
return
AnimatedSprite::load
(
99
pathJoin
(
paths
.
getStringValue
(
"sprites"
),
mIcon
),
100
0);
101
}
102
103
std::string
StatusEffect::getAction
()
const
104
{
105
if
(
mAction
.empty())
106
return
SpriteAction::INVALID
;
107
return
mAction
;
108
}
animatedsprite.h
localChatTab
ChatTab * localChatTab
Definition:
chattab.cpp:62
chattab.h
AnimatedSprite
Definition:
animatedsprite.h:37
AnimatedSprite::load
static AnimatedSprite * load(const std::string &filename, const int variant)
Definition:
animatedsprite.cpp:72
ChatTab::chatLog
void chatLog(std::string line, ChatMsgTypeT own, const IgnoreRecord ignoreRecord, const TryRemoveColors tryRemoveColors)
Definition:
chattab.cpp:111
Configuration::getStringValue
std::string getStringValue(const std::string &key) const
Definition:
configuration.cpp:488
ParticleEngine::addEffect
Particle * addEffect(const std::string &particleEffectFile, const int pixelX, const int pixelY, const int rotation)
Definition:
particleengine.cpp:130
Particle
Definition:
particle.h:46
SoundManager::playSfx
void playSfx(const std::string &path, const int x, const int y) const
Definition:
soundmanager.cpp:463
StatusEffect::getParticle
Particle * getParticle() const
Definition:
statuseffect.cpp:85
StatusEffect::mIcon
std::string mIcon
Definition:
statuseffect.h:81
StatusEffect::getAction
std::string getAction() const
Definition:
statuseffect.cpp:103
StatusEffect::getIcon
AnimatedSprite * getIcon() const
Definition:
statuseffect.cpp:92
StatusEffect::mSFXEffect
std::string mSFXEffect
Definition:
statuseffect.h:78
StatusEffect::mMessage
std::string mMessage
Definition:
statuseffect.h:77
StatusEffect::mStartParticleEffect
std::string mStartParticleEffect
Definition:
statuseffect.h:79
StatusEffect::StatusEffect
StatusEffect()
Definition:
statuseffect.cpp:39
StatusEffect::~StatusEffect
~StatusEffect()
Definition:
statuseffect.cpp:56
StatusEffect::deliverMessage
void deliverMessage() const
Definition:
statuseffect.cpp:66
StatusEffect::mParticleEffect
std::string mParticleEffect
Definition:
statuseffect.h:80
StatusEffect::playSFX
void playSFX() const
Definition:
statuseffect.cpp:60
StatusEffect::mAction
std::string mAction
Definition:
statuseffect.h:82
StatusEffect::getStartParticle
Particle * getStartParticle() const
Definition:
statuseffect.cpp:78
paths
Configuration paths
Definition:
configuration.cpp:56
configuration.h
debug.h
IgnoreRecord_false
const bool IgnoreRecord_false
Definition:
ignorerecord.h:30
ChatMsgType::BY_SERVER
@ BY_SERVER
Definition:
chatmsgtype.h:35
SpriteAction::INVALID
static const std::string INVALID
Definition:
spriteaction.h:72
anonymous_namespace{windowmanager.cpp}::mIcon
SDL_Surface * mIcon(0)
particleEngine
ParticleEngine * particleEngine
Definition:
particleengine.cpp:42
particleengine.h
soundManager
SoundManager soundManager
Definition:
soundmanager.cpp:55
soundmanager.h
spriteaction.h
statuseffect.h
pathJoin
std::string pathJoin(std::string str1, const std::string &str2)
Definition:
stringutils.cpp:1037
TryRemoveColors_true
const bool TryRemoveColors_true
Definition:
tryremovecolors.h:30
Generated on Wed Mar 17 2021 19:19:10 for ManaPlus by
1.9.1