Skip to content

Commit d0a5480

Browse files
committed
Revert "Change MovableMan Items queue class from MovableObject to HeldDevice since only HeldDevices are ever included in there"
This reverts commit 9a26402.
1 parent 173a40d commit d0a5480

File tree

2 files changed

+27
-20
lines changed

2 files changed

+27
-20
lines changed

Managers/MovableMan.cpp

Lines changed: 25 additions & 18 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<HeldDevice *>::iterator it2 = m_Items.begin(); it2 != m_Items.end(); ++it2)
146+
for (std::deque<MovableObject *>::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<HeldDevice *>::iterator it2 = m_Items.begin(); it2 != m_Items.end(); ++it2)
273+
for (std::deque<MovableObject *>::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);
@@ -888,8 +888,8 @@ void MovableMan::AddParticle(MovableObject *particleToAdd){
888888
particleToAdd->NewFrame();
889889
particleToAdd->SetAge(0);
890890
}
891-
if (HeldDevice *particleToAddAsHeldDevice = dynamic_cast<HeldDevice *>(particleToAdd)) {
892-
m_AddedItems.push_back(particleToAddAsHeldDevice);
891+
if (particleToAdd->IsDevice()) {
892+
m_AddedItems.push_back(particleToAdd);
893893
} else {
894894
m_AddedParticles.push_back(particleToAdd);
895895
}
@@ -952,7 +952,8 @@ bool MovableMan::RemoveItem(MovableObject *pItemToRem)
952952

953953
if (pItemToRem)
954954
{
955-
for (std::deque<HeldDevice *>::iterator itr = m_Items.begin(); itr != m_Items.end(); ++itr) {
955+
for (std::deque<MovableObject *>::iterator itr = m_Items.begin(); itr != m_Items.end(); ++itr)
956+
{
956957
if (*itr == pItemToRem)
957958
{
958959
m_Items.erase(itr);
@@ -963,7 +964,8 @@ bool MovableMan::RemoveItem(MovableObject *pItemToRem)
963964
// Try the newly added items if we couldn't find it in the regular deque
964965
if (!removed)
965966
{
966-
for (std::deque<HeldDevice *>::iterator itr = m_AddedItems.begin(); itr != m_AddedItems.end(); ++itr) {
967+
for (std::deque<MovableObject *>::iterator itr = m_AddedItems.begin(); itr != m_AddedItems.end(); ++itr)
968+
{
967969
if (*itr == pItemToRem)
968970
{
969971
m_AddedItems.erase(itr);
@@ -1171,7 +1173,8 @@ bool MovableMan::IsDevice(const MovableObject *pMOToCheck)
11711173

11721174
if (pMOToCheck)
11731175
{
1174-
for (std::deque<HeldDevice *>::iterator itr = m_Items.begin(); !found && itr != m_Items.end(); ++itr) {
1176+
for (std::deque<MovableObject *>::iterator itr = m_Items.begin(); !found && itr != m_Items.end(); ++itr)
1177+
{
11751178
if (*itr == pMOToCheck)
11761179
{
11771180
found = true;
@@ -1181,7 +1184,7 @@ bool MovableMan::IsDevice(const MovableObject *pMOToCheck)
11811184
// Try the items just added this frame
11821185
if (!found)
11831186
{
1184-
for (std::deque<HeldDevice *>::iterator itr = m_AddedItems.begin(); !found && itr != m_AddedItems.end(); ++itr)
1187+
for (std::deque<MovableObject *>::iterator itr = m_AddedItems.begin(); !found && itr != m_AddedItems.end(); ++itr)
11851188
{
11861189
if (*itr == pMOToCheck)
11871190
{
@@ -1430,13 +1433,14 @@ int MovableMan::GetAllItems(bool transferOwnership, std::list<SceneObject *> &it
14301433
int addedCount = 0;
14311434

14321435
// Add all regular Items
1433-
for (std::deque<HeldDevice *>::iterator iIt = m_Items.begin(); iIt != m_Items.end(); ++iIt) {
1436+
for (std::deque<MovableObject *>::iterator iIt = m_Items.begin(); iIt != m_Items.end(); ++iIt)
1437+
{
14341438
itemList.push_back((*iIt));
14351439
addedCount++;
14361440
}
14371441

14381442
// Add all Items added this frame
1439-
for (std::deque<HeldDevice *>::iterator iIt = m_AddedItems.begin(); iIt != m_AddedItems.end(); ++iIt)
1443+
for (std::deque<MovableObject *>::iterator iIt = m_AddedItems.begin(); iIt != m_AddedItems.end(); ++iIt)
14401444
{
14411445
itemList.push_back((*iIt));
14421446
addedCount++;
@@ -1544,7 +1548,8 @@ void MovableMan::RedrawOverlappingMOIDs(MovableObject *pOverlapsThis)
15441548
(*aIt)->DrawMOIDIfOverlapping(pOverlapsThis);
15451549
}
15461550

1547-
for (std::deque<HeldDevice *>::iterator iIt = m_Items.begin(); iIt != m_Items.end(); ++iIt) {
1551+
for (std::deque<MovableObject *>::iterator iIt = m_Items.begin(); iIt != m_Items.end(); ++iIt)
1552+
{
15481553
(*iIt)->DrawMOIDIfOverlapping(pOverlapsThis);
15491554
}
15501555

@@ -1595,8 +1600,8 @@ void MovableMan::Update()
15951600
// Will use some common iterators
15961601
std::deque<Actor *>::iterator aIt;
15971602
std::deque<Actor *>::iterator amidIt;
1598-
std::deque<HeldDevice*>::iterator iIt;
1599-
std::deque<HeldDevice*>::iterator imidIt;
1603+
std::deque<MovableObject *>::iterator iIt;
1604+
std::deque<MovableObject *>::iterator imidIt;
16001605
std::deque<MovableObject *>::iterator parIt;
16011606
std::deque<MovableObject *>::iterator midIt;
16021607

@@ -1981,12 +1986,14 @@ void MovableMan::VerifyMOIDIndex()
19811986
}
19821987

19831988

1984-
for (std::deque<HeldDevice *>::iterator itr = m_Items.begin(); itr != m_Items.end(); ++itr) {
1989+
for (std::deque<MovableObject *>::iterator itr = m_Items.begin(); itr != m_Items.end(); ++itr)
1990+
{
19851991
RTEAssert((*itr)->GetID() == g_NoMOID || (*itr)->GetID() < GetMOIDCount(), "MOIDIndex broken!");
19861992
RTEAssert((*itr)->GetRootID() == g_NoMOID || ((*itr)->GetRootID() >= 0 && (*itr)->GetRootID() < g_MovableMan.GetMOIDCount()), "MOIDIndex broken!");
19871993
}
19881994
// Try the items just added this frame
1989-
for (std::deque<HeldDevice *>::iterator itr = m_AddedItems.begin(); itr != m_AddedItems.end(); ++itr) {
1995+
for (std::deque<MovableObject *>::iterator itr = m_AddedItems.begin(); itr != m_AddedItems.end(); ++itr)
1996+
{
19901997
RTEAssert((*itr)->GetID() == g_NoMOID || (*itr)->GetID() < GetMOIDCount(), "MOIDIndex broken!");
19911998
RTEAssert((*itr)->GetRootID() == g_NoMOID || ((*itr)->GetRootID() >= 0 && (*itr)->GetRootID() < g_MovableMan.GetMOIDCount()), "MOIDIndex broken!");
19921999
}
@@ -2022,7 +2029,7 @@ void MovableMan::UpdateDrawMOIDs(BITMAP *pTargetBitmap)
20222029
}
20232030
}
20242031

2025-
for (HeldDevice *item : m_Items) {
2032+
for (MovableObject *item : m_Items) {
20262033
if (!item->IsSetToDelete()) {
20272034
item->UpdateMOID(m_MOIDIndex);
20282035
item->Draw(pTargetBitmap, Vector(), g_DrawMOID, true);
@@ -2056,7 +2063,7 @@ void MovableMan::Draw(BITMAP *pTargetBitmap, const Vector &targetPos)
20562063
for (std::deque<MovableObject *>::iterator parIt = m_Particles.begin(); parIt != m_Particles.end(); ++parIt)
20572064
(*parIt)->Draw(pTargetBitmap, targetPos);
20582065

2059-
for (std::deque<HeldDevice *>::reverse_iterator itmIt = m_Items.rbegin(); itmIt != m_Items.rend(); ++itmIt)
2066+
for (std::deque<MovableObject *>::reverse_iterator itmIt = m_Items.rbegin(); itmIt != m_Items.rend(); ++itmIt)
20602067
(*itmIt)->Draw(pTargetBitmap, targetPos);
20612068

20622069
for (std::deque<Actor *>::reverse_iterator aIt = m_Actors.rbegin(); aIt != m_Actors.rend(); ++aIt)
@@ -2073,7 +2080,7 @@ void MovableMan::Draw(BITMAP *pTargetBitmap, const Vector &targetPos)
20732080
void MovableMan::DrawHUD(BITMAP *pTargetBitmap, const Vector &targetPos, int which, bool playerControlled)
20742081
{
20752082
// Draw HUD elements
2076-
for (std::deque<HeldDevice *>::reverse_iterator itmIt = m_Items.rbegin(); itmIt != m_Items.rend(); ++itmIt)
2083+
for (std::deque<MovableObject *>::reverse_iterator itmIt = m_Items.rbegin(); itmIt != m_Items.rend(); ++itmIt)
20772084
(*itmIt)->DrawHUD(pTargetBitmap, targetPos, which);
20782085

20792086
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<HeldDevice *> m_Items;
945+
std::deque<MovableObject *> 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<HeldDevice *> m_AddedItems;
951+
std::deque<MovableObject *> 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)