ManaPlus
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 
30 
32 
34 
36 
37 #include "debug.h"
38 
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 
57 {
58 }
59 
61 {
62  if (!mSFXEffect.empty())
64 }
65 
67 {
68  if (!mMessage.empty() &&
69  localChatTab != nullptr)
70  {
75  }
76 }
77 
79 {
80  if (particleEngine == nullptr || mStartParticleEffect.empty())
81  return nullptr;
83 }
84 
86 {
87  if (particleEngine == nullptr || mParticleEffect.empty())
88  return nullptr;
89  return particleEngine->addEffect(mParticleEffect, 0, 0, 0);
90 }
91 
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 }
ChatTab * localChatTab
Definition: chattab.cpp:62
static AnimatedSprite * load(const std::string &filename, const int variant)
void chatLog(std::string line, ChatMsgTypeT own, const IgnoreRecord ignoreRecord, const TryRemoveColors tryRemoveColors)
Definition: chattab.cpp:111
std::string getStringValue(const std::string &key) const
Particle * addEffect(const std::string &particleEffectFile, const int pixelX, const int pixelY, const int rotation)
void playSfx(const std::string &path, const int x, const int y) const
Particle * getParticle() const
std::string mIcon
Definition: statuseffect.h:81
std::string getAction() const
AnimatedSprite * getIcon() const
std::string mSFXEffect
Definition: statuseffect.h:78
std::string mMessage
Definition: statuseffect.h:77
std::string mStartParticleEffect
Definition: statuseffect.h:79
void deliverMessage() const
std::string mParticleEffect
Definition: statuseffect.h:80
void playSFX() const
std::string mAction
Definition: statuseffect.h:82
Particle * getStartParticle() const
Configuration paths
const bool IgnoreRecord_false
Definition: ignorerecord.h:30
static const std::string INVALID
Definition: spriteaction.h:72
ParticleEngine * particleEngine
SoundManager soundManager
std::string pathJoin(std::string str1, const std::string &str2)
const bool TryRemoveColors_true