ManaPlus
actor.cpp
Go to the documentation of this file.
1 /*
2  * The ManaPlus Client
3  * Copyright (C) 2010 The Mana Developers
4  * Copyright (C) 2011-2019 The ManaPlus Developers
5  * Copyright (C) 2019-2021 Andrei Karas
6  *
7  * This file is part of The ManaPlus Client.
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program. If not, see <http://www.gnu.org/licenses/>.
21  */
22 
23 #include "being/actor.h"
24 
25 #include "resources/map/map.h"
26 
27 #include "debug.h"
28 
30  mPixelX(0),
31  mPixelY(0),
32  mMap(nullptr),
33  mPos(),
34  mYDiff(0),
35  mMapActor()
36 {
37 }
38 
40 {
41  if (mMap != nullptr)
42  {
44  mMap = nullptr;
45  }
46 }
47 
48 void Actor::setMap(Map *const map)
49 {
50  // Remove Actor from potential previous map
51  if (mMap != nullptr)
53 
54  mMap = map;
55 
56  // Add Actor to potential new map
57  if (mMap != nullptr)
58  mMapActor = mMap->addActor(this);
59 }
60 
61 int Actor::getTileX() const
62 {
63  if (mMap == nullptr ||
64  mMap->getTileWidth() == 0)
65  {
66  return 0;
67  }
68 
69  return getPixelX() / mMap->getTileWidth();
70 }
71 
72 int Actor::getTileY() const
73 {
74  if (mMap == nullptr ||
75  mMap->getTileHeight() == 0)
76  {
77  return 0;
78  }
79 
80  return getPixelY() / mMap->getTileHeight();
81 }
82 
84 {
85  mPos = pos;
86  mPixelX = CAST_S32(mPos.x);
87  mPixelY = CAST_S32(mPos.y);
88 }
#define CAST_S32
Definition: cast.h:30
virtual int getPixelY() const
Definition: actor.h:93
int getPixelX() const
Definition: actor.h:87
Actor()
Definition: actor.cpp:29
virtual int getTileY() const
Definition: actor.cpp:72
virtual void setPixelPositionF(const Vector &pos)
Definition: actor.cpp:83
virtual int getTileX() const
Definition: actor.cpp:61
Actors::iterator mMapActor
Definition: actor.h:144
virtual void setMap(Map *const map)
Definition: actor.cpp:48
Map * mMap
Definition: actor.h:139
virtual ~Actor()
Definition: actor.cpp:39
Definition: map.h:75
Actors::iterator addActor(Actor *const actor)
Definition: map.cpp:822
void removeActor(const Actors::iterator &iterator)
Definition: map.cpp:829
int getTileHeight() const
Definition: map.h:184
int getTileWidth() const
Definition: map.h:178
Definition: vector.h:40
#define restrict
Definition: localconsts.h:165
#define restrict2
Definition: localconsts.h:166
#define nullptr
Definition: localconsts.h:45
std::string mMap
Definition: gamerecv.cpp:46