[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netPanzer-CVS] netpanzer/src/NetPanzer/Interfaces PowerUpInter...
From: |
Ivo Danihelka |
Subject: |
[netPanzer-CVS] netpanzer/src/NetPanzer/Interfaces PowerUpInter... |
Date: |
Sat, 08 Nov 2003 09:22:50 -0500 |
CVSROOT: /cvsroot/netpanzer
Module name: netpanzer
Branch:
Changes by: Ivo Danihelka <address@hidden> 03/11/08 09:22:49
Modified files:
src/NetPanzer/Interfaces: PowerUpInterface.cpp
PowerUpInterface.hpp
Log message:
Fixed powerup updateState crash
Patches:
Index: netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.cpp
diff -u netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.cpp:1.11
netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.cpp:1.12
--- netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.cpp:1.11 Thu Nov
6 15:27:18 2003
+++ netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.cpp Sat Nov 8
09:22:49 2003
@@ -37,7 +37,6 @@
PowerUpList PowerUpInterface::powerup_list;
-int PowerUpInterface::powerupids = 0;
int PowerUpInterface::power_up_limit;
int PowerUpInterface::power_up_regen_time_upper_bound = 300;
int PowerUpInterface::power_up_regen_time_lower_bound = 60;
@@ -78,6 +77,13 @@
return( 0 );
}
+void PowerUpList::addWithID(PowerUp *powerup)
+{
+ powerup->powerup_state.ID = id_counter++;
+ push_back(powerup);
+}
+
+//-----------------------------------------------------------------
void PowerUpInterface::setPowerUpLimits(unsigned long map_size_x,
unsigned long map_size_y )
{
@@ -136,8 +142,7 @@
return;
}
- power_up->powerup_state.ID = powerupids++;
- powerup_list.push_back(power_up);
+ powerup_list.addWithID(power_up);
create_mesg.set( power_up->powerup_state.map_loc,
power_up->powerup_state.ID,
@@ -205,21 +210,22 @@
}
}
- PowerUpList::iterator i;
- for(i=powerup_list.begin(); i!=powerup_list.end(); i++) {
- PowerUp* powerup = *i;
+ for (PowerUpList::iterator i = powerup_list.begin();
+ i != powerup_list.end(); i++)
+ {
+ PowerUpList::iterator cur = i;
+ PowerUp* powerup = *cur;
if(powerup->powerup_state.life_cycle_state ==
_power_up_lifecycle_state_inactive) {
delete powerup;
-
- powerup_list.erase(i);
- i = powerup_list.begin();
+ --i;
+ powerup_list.erase(cur);
} else {
powerup->updateState();
}
}
-}
+ }
void PowerUpInterface::offloadGraphics( SpriteSorter &sorter )
{
Index: netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.hpp
diff -u netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.hpp:1.4
netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.hpp:1.5
--- netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.hpp:1.4 Thu Nov 6
15:27:18 2003
+++ netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.hpp Sat Nov 8
09:22:49 2003
@@ -35,6 +35,7 @@
~PowerUpList();
PowerUp* find(int ID);
+ void addWithID(PowerUp *powerup);
};
class PowerUpInterface
@@ -42,7 +43,6 @@
protected:
static PowerUpList powerup_list;
- static int powerupids;
static int power_up_limit;
static int power_up_regen_time_upper_bound;
static int power_up_regen_time_lower_bound;