Skip to content
This repository was archived by the owner on Jan 5, 2024. It is now read-only.

Commit 9a26402

Browse files
committed
Change MovableMan Items queue class from MovableObject to HeldDevice since only HeldDevices are ever included in there
1 parent d3b4f2c commit 9a26402

File tree

2 files changed

+20
-27
lines changed

2 files changed

+20
-27
lines changed

Managers/MovableMan.cpp

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ void MovableMan::Destroy()
143143
{
144144
for (std::deque<Actor *>::iterator it1 = m_Actors.begin(); it1 != m_Actors.end(); ++it1)
145145
delete (*it1);
146-
for (std::deque<MovableObject *>::iterator it2 = m_Items.begin(); it2 != m_Items.end(); ++it2)
146+
for (std::deque<HeldDevice *>::iterator it2 = m_Items.begin(); it2 != m_Items.end(); ++it2)
147147
delete (*it2);
148148
for (std::deque<MovableObject *>::iterator it3 = m_Particles.begin(); it3 != m_Particles.end(); ++it3)
149149
delete (*it3);
@@ -270,7 +270,7 @@ void MovableMan::PurgeAllMOs()
270270
{
271271
for (std::deque<Actor *>::iterator it1 = m_Actors.begin(); it1 != m_Actors.end(); ++it1)
272272
delete (*it1);
273-
for (std::deque<MovableObject *>::iterator it2 = m_Items.begin(); it2 != m_Items.end(); ++it2)
273+
for (std::deque<HeldDevice *>::iterator it2 = m_Items.begin(); it2 != m_Items.end(); ++it2)
274274
delete (*it2);
275275
for (std::deque<MovableObject *>::iterator it3 = m_Particles.begin(); it3 != m_Particles.end(); ++it3)
276276
delete (*it3);
@@ -885,8 +885,8 @@ void MovableMan::AddParticle(MovableObject *particleToAdd){
885885
particleToAdd->NewFrame();
886886
particleToAdd->SetAge(0);
887887
}
888-
if (particleToAdd->IsDevice()) {
889-
m_AddedItems.push_back(particleToAdd);
888+
if (HeldDevice *particleToAddAsHeldDevice = dynamic_cast<HeldDevice *>(particleToAdd)) {
889+
m_AddedItems.push_back(particleToAddAsHeldDevice);
890890
} else {
891891
m_AddedParticles.push_back(particleToAdd);
892892
}
@@ -949,8 +949,7 @@ bool MovableMan::RemoveItem(MovableObject *pItemToRem)
949949

950950
if (pItemToRem)
951951
{
952-
for (std::deque<MovableObject *>::iterator itr = m_Items.begin(); itr != m_Items.end(); ++itr)
953-
{
952+
for (std::deque<HeldDevice *>::iterator itr = m_Items.begin(); itr != m_Items.end(); ++itr) {
954953
if (*itr == pItemToRem)
955954
{
956955
m_Items.erase(itr);
@@ -961,8 +960,7 @@ bool MovableMan::RemoveItem(MovableObject *pItemToRem)
961960
// Try the newly added items if we couldn't find it in the regular deque
962961
if (!removed)
963962
{
964-
for (std::deque<MovableObject *>::iterator itr = m_AddedItems.begin(); itr != m_AddedItems.end(); ++itr)
965-
{
963+
for (std::deque<HeldDevice *>::iterator itr = m_AddedItems.begin(); itr != m_AddedItems.end(); ++itr) {
966964
if (*itr == pItemToRem)
967965
{
968966
m_AddedItems.erase(itr);
@@ -1170,8 +1168,7 @@ bool MovableMan::IsDevice(const MovableObject *pMOToCheck)
11701168

11711169
if (pMOToCheck)
11721170
{
1173-
for (std::deque<MovableObject *>::iterator itr = m_Items.begin(); !found && itr != m_Items.end(); ++itr)
1174-
{
1171+
for (std::deque<HeldDevice *>::iterator itr = m_Items.begin(); !found && itr != m_Items.end(); ++itr) {
11751172
if (*itr == pMOToCheck)
11761173
{
11771174
found = true;
@@ -1181,7 +1178,7 @@ bool MovableMan::IsDevice(const MovableObject *pMOToCheck)
11811178
// Try the items just added this frame
11821179
if (!found)
11831180
{
1184-
for (std::deque<MovableObject *>::iterator itr = m_AddedItems.begin(); !found && itr != m_AddedItems.end(); ++itr)
1181+
for (std::deque<HeldDevice *>::iterator itr = m_AddedItems.begin(); !found && itr != m_AddedItems.end(); ++itr)
11851182
{
11861183
if (*itr == pMOToCheck)
11871184
{
@@ -1430,14 +1427,13 @@ int MovableMan::GetAllItems(bool transferOwnership, std::list<SceneObject *> &it
14301427
int addedCount = 0;
14311428

14321429
// Add all regular Items
1433-
for (std::deque<MovableObject *>::iterator iIt = m_Items.begin(); iIt != m_Items.end(); ++iIt)
1434-
{
1430+
for (std::deque<HeldDevice *>::iterator iIt = m_Items.begin(); iIt != m_Items.end(); ++iIt) {
14351431
itemList.push_back((*iIt));
14361432
addedCount++;
14371433
}
14381434

14391435
// Add all Items added this frame
1440-
for (std::deque<MovableObject *>::iterator iIt = m_AddedItems.begin(); iIt != m_AddedItems.end(); ++iIt)
1436+
for (std::deque<HeldDevice *>::iterator iIt = m_AddedItems.begin(); iIt != m_AddedItems.end(); ++iIt)
14411437
{
14421438
itemList.push_back((*iIt));
14431439
addedCount++;
@@ -1545,8 +1541,7 @@ void MovableMan::RedrawOverlappingMOIDs(MovableObject *pOverlapsThis)
15451541
(*aIt)->DrawMOIDIfOverlapping(pOverlapsThis);
15461542
}
15471543

1548-
for (std::deque<MovableObject *>::iterator iIt = m_Items.begin(); iIt != m_Items.end(); ++iIt)
1549-
{
1544+
for (std::deque<HeldDevice *>::iterator iIt = m_Items.begin(); iIt != m_Items.end(); ++iIt) {
15501545
(*iIt)->DrawMOIDIfOverlapping(pOverlapsThis);
15511546
}
15521547

@@ -1597,8 +1592,8 @@ void MovableMan::Update()
15971592
// Will use some common iterators
15981593
std::deque<Actor *>::iterator aIt;
15991594
std::deque<Actor *>::iterator amidIt;
1600-
std::deque<MovableObject *>::iterator iIt;
1601-
std::deque<MovableObject *>::iterator imidIt;
1595+
std::deque<HeldDevice*>::iterator iIt;
1596+
std::deque<HeldDevice*>::iterator imidIt;
16021597
std::deque<MovableObject *>::iterator parIt;
16031598
std::deque<MovableObject *>::iterator midIt;
16041599

@@ -1983,14 +1978,12 @@ void MovableMan::VerifyMOIDIndex()
19831978
}
19841979

19851980

1986-
for (std::deque<MovableObject *>::iterator itr = m_Items.begin(); itr != m_Items.end(); ++itr)
1987-
{
1981+
for (std::deque<HeldDevice *>::iterator itr = m_Items.begin(); itr != m_Items.end(); ++itr) {
19881982
RTEAssert((*itr)->GetID() == g_NoMOID || (*itr)->GetID() < GetMOIDCount(), "MOIDIndex broken!");
19891983
RTEAssert((*itr)->GetRootID() == g_NoMOID || ((*itr)->GetRootID() >= 0 && (*itr)->GetRootID() < g_MovableMan.GetMOIDCount()), "MOIDIndex broken!");
19901984
}
19911985
// Try the items just added this frame
1992-
for (std::deque<MovableObject *>::iterator itr = m_AddedItems.begin(); itr != m_AddedItems.end(); ++itr)
1993-
{
1986+
for (std::deque<HeldDevice *>::iterator itr = m_AddedItems.begin(); itr != m_AddedItems.end(); ++itr) {
19941987
RTEAssert((*itr)->GetID() == g_NoMOID || (*itr)->GetID() < GetMOIDCount(), "MOIDIndex broken!");
19951988
RTEAssert((*itr)->GetRootID() == g_NoMOID || ((*itr)->GetRootID() >= 0 && (*itr)->GetRootID() < g_MovableMan.GetMOIDCount()), "MOIDIndex broken!");
19961989
}
@@ -2026,7 +2019,7 @@ void MovableMan::UpdateDrawMOIDs(BITMAP *pTargetBitmap)
20262019
}
20272020
}
20282021

2029-
for (MovableObject *item : m_Items) {
2022+
for (HeldDevice *item : m_Items) {
20302023
if (!item->IsSetToDelete()) {
20312024
item->UpdateMOID(m_MOIDIndex);
20322025
item->Draw(pTargetBitmap, Vector(), g_DrawMOID, true);
@@ -2060,7 +2053,7 @@ void MovableMan::Draw(BITMAP *pTargetBitmap, const Vector &targetPos)
20602053
for (std::deque<MovableObject *>::iterator parIt = m_Particles.begin(); parIt != m_Particles.end(); ++parIt)
20612054
(*parIt)->Draw(pTargetBitmap, targetPos);
20622055

2063-
for (std::deque<MovableObject *>::reverse_iterator itmIt = m_Items.rbegin(); itmIt != m_Items.rend(); ++itmIt)
2056+
for (std::deque<HeldDevice *>::reverse_iterator itmIt = m_Items.rbegin(); itmIt != m_Items.rend(); ++itmIt)
20642057
(*itmIt)->Draw(pTargetBitmap, targetPos);
20652058

20662059
for (std::deque<Actor *>::reverse_iterator aIt = m_Actors.rbegin(); aIt != m_Actors.rend(); ++aIt)
@@ -2077,7 +2070,7 @@ void MovableMan::Draw(BITMAP *pTargetBitmap, const Vector &targetPos)
20772070
void MovableMan::DrawHUD(BITMAP *pTargetBitmap, const Vector &targetPos, int which, bool playerControlled)
20782071
{
20792072
// Draw HUD elements
2080-
for (std::deque<MovableObject *>::reverse_iterator itmIt = m_Items.rbegin(); itmIt != m_Items.rend(); ++itmIt)
2073+
for (std::deque<HeldDevice *>::reverse_iterator itmIt = m_Items.rbegin(); itmIt != m_Items.rend(); ++itmIt)
20812074
(*itmIt)->DrawHUD(pTargetBitmap, targetPos, which);
20822075

20832076
for (std::deque<Actor *>::reverse_iterator aIt = m_Actors.rbegin(); aIt != m_Actors.rend(); ++aIt)

Managers/MovableMan.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -942,13 +942,13 @@ class MovableMan : public Singleton<MovableMan>, public Serializable {
942942
// A map to give a unique contiguous identifier per-actor. This is re-created per frame.
943943
std::unordered_map<const Actor *, int> m_ContiguousActorIDs;
944944
// List of items that are pickup-able by actors
945-
std::deque<MovableObject *> m_Items;
945+
std::deque<HeldDevice *> m_Items;
946946
// List of free, dead particles flying around
947947
std::deque<MovableObject *> m_Particles;
948948
// These are the actors/items/particles which were added during a frame.
949949
// They are moved to the containers above at the end of the frame.
950950
std::deque<Actor *> m_AddedActors;
951-
std::deque<MovableObject *> m_AddedItems;
951+
std::deque<HeldDevice *> m_AddedItems;
952952
std::deque<MovableObject *> m_AddedParticles;
953953

954954
// Roster of each team's actors, sorted by their X positions in the scene. Actors not owned here

0 commit comments

Comments
 (0)