@@ -143,7 +143,7 @@ void MovableMan::Destroy()
143
143
{
144
144
for (std::deque<Actor *>::iterator it1 = m_Actors.begin (); it1 != m_Actors.end (); ++it1)
145
145
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)
147
147
delete (*it2);
148
148
for (std::deque<MovableObject *>::iterator it3 = m_Particles.begin (); it3 != m_Particles.end (); ++it3)
149
149
delete (*it3);
@@ -270,7 +270,7 @@ void MovableMan::PurgeAllMOs()
270
270
{
271
271
for (std::deque<Actor *>::iterator it1 = m_Actors.begin (); it1 != m_Actors.end (); ++it1)
272
272
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)
274
274
delete (*it2);
275
275
for (std::deque<MovableObject *>::iterator it3 = m_Particles.begin (); it3 != m_Particles.end (); ++it3)
276
276
delete (*it3);
@@ -885,8 +885,8 @@ void MovableMan::AddParticle(MovableObject *particleToAdd){
885
885
particleToAdd->NewFrame ();
886
886
particleToAdd->SetAge (0 );
887
887
}
888
- if (particleToAdd-> IsDevice ( )) {
889
- m_AddedItems.push_back (particleToAdd );
888
+ if (HeldDevice *particleToAddAsHeldDevice = dynamic_cast <HeldDevice *>(particleToAdd )) {
889
+ m_AddedItems.push_back (particleToAddAsHeldDevice );
890
890
} else {
891
891
m_AddedParticles.push_back (particleToAdd);
892
892
}
@@ -949,8 +949,7 @@ bool MovableMan::RemoveItem(MovableObject *pItemToRem)
949
949
950
950
if (pItemToRem)
951
951
{
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) {
954
953
if (*itr == pItemToRem)
955
954
{
956
955
m_Items.erase (itr);
@@ -961,8 +960,7 @@ bool MovableMan::RemoveItem(MovableObject *pItemToRem)
961
960
// Try the newly added items if we couldn't find it in the regular deque
962
961
if (!removed)
963
962
{
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) {
966
964
if (*itr == pItemToRem)
967
965
{
968
966
m_AddedItems.erase (itr);
@@ -1170,8 +1168,7 @@ bool MovableMan::IsDevice(const MovableObject *pMOToCheck)
1170
1168
1171
1169
if (pMOToCheck)
1172
1170
{
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) {
1175
1172
if (*itr == pMOToCheck)
1176
1173
{
1177
1174
found = true ;
@@ -1181,7 +1178,7 @@ bool MovableMan::IsDevice(const MovableObject *pMOToCheck)
1181
1178
// Try the items just added this frame
1182
1179
if (!found)
1183
1180
{
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)
1185
1182
{
1186
1183
if (*itr == pMOToCheck)
1187
1184
{
@@ -1430,14 +1427,13 @@ int MovableMan::GetAllItems(bool transferOwnership, std::list<SceneObject *> &it
1430
1427
int addedCount = 0 ;
1431
1428
1432
1429
// 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) {
1435
1431
itemList.push_back ((*iIt));
1436
1432
addedCount++;
1437
1433
}
1438
1434
1439
1435
// 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)
1441
1437
{
1442
1438
itemList.push_back ((*iIt));
1443
1439
addedCount++;
@@ -1545,8 +1541,7 @@ void MovableMan::RedrawOverlappingMOIDs(MovableObject *pOverlapsThis)
1545
1541
(*aIt)->DrawMOIDIfOverlapping (pOverlapsThis);
1546
1542
}
1547
1543
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) {
1550
1545
(*iIt)->DrawMOIDIfOverlapping (pOverlapsThis);
1551
1546
}
1552
1547
@@ -1597,8 +1592,8 @@ void MovableMan::Update()
1597
1592
// Will use some common iterators
1598
1593
std::deque<Actor *>::iterator aIt;
1599
1594
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;
1602
1597
std::deque<MovableObject *>::iterator parIt;
1603
1598
std::deque<MovableObject *>::iterator midIt;
1604
1599
@@ -1983,14 +1978,12 @@ void MovableMan::VerifyMOIDIndex()
1983
1978
}
1984
1979
1985
1980
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) {
1988
1982
RTEAssert ((*itr)->GetID () == g_NoMOID || (*itr)->GetID () < GetMOIDCount (), " MOIDIndex broken!" );
1989
1983
RTEAssert ((*itr)->GetRootID () == g_NoMOID || ((*itr)->GetRootID () >= 0 && (*itr)->GetRootID () < g_MovableMan.GetMOIDCount ()), " MOIDIndex broken!" );
1990
1984
}
1991
1985
// 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) {
1994
1987
RTEAssert ((*itr)->GetID () == g_NoMOID || (*itr)->GetID () < GetMOIDCount (), " MOIDIndex broken!" );
1995
1988
RTEAssert ((*itr)->GetRootID () == g_NoMOID || ((*itr)->GetRootID () >= 0 && (*itr)->GetRootID () < g_MovableMan.GetMOIDCount ()), " MOIDIndex broken!" );
1996
1989
}
@@ -2026,7 +2019,7 @@ void MovableMan::UpdateDrawMOIDs(BITMAP *pTargetBitmap)
2026
2019
}
2027
2020
}
2028
2021
2029
- for (MovableObject *item : m_Items) {
2022
+ for (HeldDevice *item : m_Items) {
2030
2023
if (!item->IsSetToDelete ()) {
2031
2024
item->UpdateMOID (m_MOIDIndex);
2032
2025
item->Draw (pTargetBitmap, Vector (), g_DrawMOID, true );
@@ -2060,7 +2053,7 @@ void MovableMan::Draw(BITMAP *pTargetBitmap, const Vector &targetPos)
2060
2053
for (std::deque<MovableObject *>::iterator parIt = m_Particles.begin (); parIt != m_Particles.end (); ++parIt)
2061
2054
(*parIt)->Draw (pTargetBitmap, targetPos);
2062
2055
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)
2064
2057
(*itmIt)->Draw (pTargetBitmap, targetPos);
2065
2058
2066
2059
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)
2077
2070
void MovableMan::DrawHUD (BITMAP *pTargetBitmap, const Vector &targetPos, int which, bool playerControlled)
2078
2071
{
2079
2072
// 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)
2081
2074
(*itmIt)->DrawHUD (pTargetBitmap, targetPos, which);
2082
2075
2083
2076
for (std::deque<Actor *>::reverse_iterator aIt = m_Actors.rbegin (); aIt != m_Actors.rend (); ++aIt)
0 commit comments