netpanzer-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[netPanzer-CVS] netpanzer/src/NetPanzer/Interfaces PowerUpInter...


From: Matthias Braun
Subject: [netPanzer-CVS] netpanzer/src/NetPanzer/Interfaces PowerUpInter...
Date: Thu, 06 Nov 2003 15:27:19 -0500

CVSROOT:        /cvsroot/netpanzer
Module name:    netpanzer
Branch:         
Changes by:     Matthias Braun <address@hidden> 03/11/06 15:27:19

Modified files:
        src/NetPanzer/Interfaces: PowerUpInterface.cpp 
                                  PowerUpInterface.hpp 

Log message:
        -eleminated usage of DoubleLinkList template in PowerupInterface (using
        std::vector now)

Patches:
Index: netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.cpp
diff -u netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.cpp:1.10 
netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.cpp:1.11
--- netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.cpp:1.10        Sat Oct 
 4 10:44:38 2003
+++ netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.cpp     Thu Nov  6 
15:27:18 2003
@@ -37,6 +37,7 @@
 
 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;
@@ -53,103 +54,37 @@
                                       _powerup_enemy_radar
                                     };
 
-PowerUpList::PowerUpList( void )
-        : LinkListSingleTemplate< PowerUp >()
+PowerUpList::PowerUpList()
+    : id_counter(0)
 {
-    id_counter = 0;
-    item_count = 0;
 }
 
 PowerUpList::~PowerUpList( )
 {
-}
-
-void PowerUpList::add( PowerUp *powerup )
-{
-    powerup->powerup_state.ID = id_counter;
-
-    id_counter++;
-
-    addRear( powerup );
-
-    item_count++;
-}
-
-void PowerUpList::insert( PowerUp *powerup )
-{
-    addRear( powerup );
-
-    item_count++;
-}
-
-PowerUp * PowerUpList::get( int ID )
-{
-    PowerUp *powerup_ptr = 0;
-
-    powerup_ptr = front;
-
-    while( powerup_ptr != 0 ) {
-        if ( powerup_ptr->powerup_state.ID == ID ) {
-            return( powerup_ptr );
-        }
-
-        powerup_ptr = powerup_ptr->next;
+    iterator i;
+    for(i=begin(); i!=end(); i++) {
+        delete *i;
     }
-
-    return( 0 );
 }
 
-PowerUp * PowerUpList::remove( int ID )
+PowerUp* PowerUpList::find(int ID)
 {
-    PowerUp *powerup_ptr;
-
-    if ( front == 0 )
-        return( 0 );
-
-    powerup_ptr = front;
-
-    if ( powerup_ptr->powerup_state.ID == ID ) {
-        item_count--;
-        return( removeFront() );
-    }
-
-    while( powerup_ptr->next != 0 ) {
-        if ( powerup_ptr->next->powerup_state.ID == ID ) {
-            item_count--;
-            return( removeAfter( powerup_ptr ) );
-        }
-
-        powerup_ptr = powerup_ptr->next;
+    for(iterator i=begin(); i!=end(); i++) {
+        PowerUp* powerup = *i;
+        if(powerup->powerup_state.ID == ID)
+            return powerup;
     }
 
     return( 0 );
 }
 
-void PowerUpList::reset( void )
-{
-    deallocate();
-    item_count = 0;
-    id_counter = 0;
-}
-
-void PowerUpInterface::setPowerUpLimits( unsigned long map_size_x, unsigned 
long map_size_y )
+void PowerUpInterface::setPowerUpLimits(unsigned long map_size_x,
+        unsigned long map_size_y )
 {
     int active_players;
-    //lua_Object spawn_bound_upper, spawn_bound_lower;
-    //lua_Object powerup_limit;
 
     active_players = PlayerInterface::getActivePlayerCount();
 
-    //lua_pushnumber( (double) map_size_x );
-    //lua_pushnumber( (double) map_size_y );
-    //lua_pushnumber( (double) active_players );
-    //lua_pushnumber( (double) power_up_regen_time_upper_bound );
-    //lua_pushnumber( (double) power_up_regen_time_lower_bound );
-    //lua_callfunction( lua_getglobal("PowerUpSetLimits") );
-    //powerup_limit = lua_getresult(1);
-    //spawn_bound_upper  = lua_getresult(2);
-    //spawn_bound_lower  = lua_getresult(3);
-
     int player_factor = int(( 0.10 ) * active_players);
     int power_up_limit = int( ( 0.0000625 ) * ( (map_size_x * map_size_y) ) );
     power_up_limit = power_up_limit + (power_up_limit * player_factor);
@@ -159,7 +94,7 @@
     power_up_regen_time_lower_bound =  60;
 }
 
-void PowerUpInterface::generatePowerUp( void )
+void PowerUpInterface::generatePowerUp()
 {
     unsigned long map_size_x, map_size_y;
     PowerUp *power_up = 0;
@@ -167,7 +102,7 @@
     PowerUpCreateMesg create_mesg;
     iXY loc;
 
-    if( (powerup_list.getItemCount() < power_up_limit) ) {
+    if( (powerup_list.size() < (size_t) power_up_limit) ) {
         map_size_x = MapInterface::getMapXsize();
         map_size_y = MapInterface::getMapYsize();
 
@@ -201,7 +136,8 @@
             return;
         }
 
-        powerup_list.add( power_up );
+        power_up->powerup_state.ID = powerupids++;
+        powerup_list.push_back(power_up);
 
         create_mesg.set( power_up->powerup_state.map_loc,
                          power_up->powerup_state.ID,
@@ -218,7 +154,6 @@
 
         setPowerUpLimits( map_size_x, map_size_y );
     }
-
 }
 
 void PowerUpInterface::initialize( void )
@@ -232,16 +167,6 @@
 
     ENEMY_RADAR_POWERUP_ANIM.setTo( BONUS_POWERUP_ANIM );
     ENEMY_RADAR_POWERUP_ANIM_SHADOW.setTo( BONUS_POWERUP_ANIM_SHADOW );
-
-    srand( (unsigned)time( 0 ) );
-    /*
-    mathlib_open();
-    lua_return = lua_dofile( "powerups/UnitPowerUp.lua" ); 
-    assert( lua_return == 0 );
-    lua_return = lua_dofile( "powerups/PowerUp.lua" ); 
-    assert( lua_return == 0 );
-    */
-    //resetLogic();
 }
 
 void PowerUpInterface::resetLogic( void )
@@ -252,7 +177,7 @@
         return;
     }
 
-    powerup_list.reset();
+    powerup_list.clear();
 
     map_size_x = MapInterface::getMapXsize();
     map_size_y = MapInterface::getMapYsize();
@@ -268,60 +193,44 @@
     }
 }
 
-void PowerUpInterface::updateState( void )
+void PowerUpInterface::updateState()
 {
-    PowerUp *powerup_ptr = 0;
-
     if( gameconfig->powerups == false ) {
         return;
     }
 
-
     if ( NetworkState::status == _network_state_server ) {
         if( regen_timer.count() ) {
             generatePowerUp();
         }
     }
 
-    powerup_list.resetIterator( &powerup_ptr );
-
-    while( powerup_ptr != 0 ) {
-        if( powerup_ptr->powerup_state.life_cycle_state == 
_power_up_lifecycle_state_inactive ) {
-            int delete_id;
-            PowerUp *delete_ptr;
-
-            delete_id = powerup_ptr->powerup_state.ID;
-
-            powerup_list.incIteratorPtr( &powerup_ptr );
-
-            delete_ptr = powerup_list.remove( delete_id );
-
-            if ( delete_ptr != 0 ) {
-                delete( delete_ptr );
-            }
+    PowerUpList::iterator i;
+    for(i=powerup_list.begin(); i!=powerup_list.end(); i++) {
+        PowerUp* powerup = *i;
+
+        if(powerup->powerup_state.life_cycle_state ==
+                _power_up_lifecycle_state_inactive) {
+            delete powerup;
+            
+            powerup_list.erase(i);
+            i = powerup_list.begin();
         } else {
-            powerup_ptr->updateState();
-            powerup_list.incIteratorPtr( &powerup_ptr );
+            powerup->updateState();
         }
-
     }
-
 }
 
 void PowerUpInterface::offloadGraphics( SpriteSorter &sorter )
 {
-    PowerUp *powerup_ptr;
-
     if( gameconfig->powerups == false ) {
         return;
     }
 
-    powerup_list.resetIterator( &powerup_ptr );
-
-    while( powerup_ptr != 0 ) {
-        powerup_ptr->offloadGraphics( sorter );
-
-        powerup_list.incIteratorPtr( &powerup_ptr );
+    PowerUpList::iterator i;
+    for(i=powerup_list.begin(); i!=powerup_list.end(); i++) {
+        PowerUp* powerup = *i;
+        powerup->offloadGraphics(sorter);
     }
 }
 
@@ -332,7 +241,6 @@
 
     create_mesg = (PowerUpCreateMesg *) message;
 
-
     switch( create_mesg->type ) {
     case _powerup_bonus_units :
         power_up = new BonusUnitPowerUp( create_mesg->map_loc, 
create_mesg->type  );
@@ -353,7 +261,7 @@
 
     power_up->powerup_state.ID = create_mesg->ID;
 
-    powerup_list.insert( power_up );
+    powerup_list.push_back(power_up);
 }
 
 void PowerUpInterface::netMessagePowerUpHit( NetMessage *message )
@@ -363,7 +271,7 @@
 
     hit_mesg = (PowerUpHitMesg *) message;
 
-    power_up = powerup_list.get( hit_mesg->ID );
+    power_up = powerup_list.find( hit_mesg->ID );
 
     if (power_up != 0) {
         power_up->onHit( hit_mesg );
@@ -388,20 +296,17 @@
 
 void PowerUpInterface::syncPowerUps( PlayerID player_id )
 {
-    PowerUpCreateMesg create_mesg;
-    PowerUp *powerup_ptr;
-
-    powerup_list.resetIterator( &powerup_ptr );
+    PowerUpList::iterator i;
+    for(i=powerup_list.begin(); i!=powerup_list.end(); i++) {
+        PowerUp* powerup_ptr = *i;
 
-    while( powerup_ptr != 0 ) {
+        PowerUpCreateMesg create_mesg;
         create_mesg.set( powerup_ptr->powerup_state.map_loc,
                          powerup_ptr->powerup_state.ID,
                          powerup_ptr->powerup_state.type
                        );
 
         SERVER->sendMessage( player_id, &create_mesg, sizeof( 
PowerUpCreateMesg ), 0);
-
-        powerup_list.incIteratorPtr( &powerup_ptr );
     }
 }
 
Index: netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.hpp
diff -u netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.hpp:1.3 
netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.hpp:1.4
--- netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.hpp:1.3 Tue Sep 16 
16:16:12 2003
+++ netpanzer/src/NetPanzer/Interfaces/PowerUpInterface.hpp     Thu Nov  6 
15:27:18 2003
@@ -18,55 +18,23 @@
 #ifndef _POWERUP_INTERFACE_HPP
 #define _POWERUP_INTERFACE_HPP
 
+#include <vector>
+
 #include "PowerUp.hpp"
 #include "Timer.hpp"
-#include "LinkListSingleTemplate.hpp"
 #include "PlayerID.hpp"
 #include "NetPacket.hpp"
 
-class PowerUpList : public LinkListSingleTemplate< PowerUp >
+class PowerUpList : public std::vector<PowerUp*>
 {
 protected:
     int id_counter;
-    int item_count;
 
 public:
+    PowerUpList();
+    ~PowerUpList();
 
-    PowerUpList( void );
-    ~PowerUpList( );
-
-    void add( PowerUp *powerup );
-
-    void insert( PowerUp *powerup );
-
-    PowerUp * get( int ID );
-
-    PowerUp * remove( int ID );
-
-    int getItemCount( void )
-    {
-        return( item_count );
-    }
-
-    inline void resetIterator( PowerUp **iterator )
-    {
-        (*iterator) = front;
-    }
-
-    inline PowerUp * incIteratorPtr( PowerUp **iterator )
-    {
-        PowerUp *power_up;
-
-        if( (*iterator) != 0 ) {
-            power_up = (*iterator);
-            (*iterator) = (*iterator)->next;
-            return( power_up );
-        } else {
-            return( 0 );
-        }
-    }
-
-    void reset( void );
+    PowerUp* find(int ID);
 };
 
 class PowerUpInterface
@@ -74,6 +42,7 @@
 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;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]