Andreas, thanks for posting your patch. Based on the information in your
bugreport I was able to make a new patch for 39.1+cvs20050929-1.

With the attached patch, scorched3d compiles with gcc 4.0.2-4 on
Debian-amd64 sid. I haven't tested it heavily, but a few bots are now
craters. :)

-Corey
diff -aur scorched3d-39.1+cvs20050929.orig/src/client/ServerBrowser.cpp 
scorched3d-39.1+cvs20050929/src/client/ServerBrowser.cpp
--- scorched3d-39.1+cvs20050929.orig/src/client/ServerBrowser.cpp       
2003-10-21 09:58:11.000000000 -0700
+++ scorched3d-39.1+cvs20050929/src/client/ServerBrowser.cpp    2005-11-19 
00:08:45.000000000 -0800
@@ -50,7 +50,7 @@
 
 int ServerBrowser::threadFunc(void *var)
 {
-       bool lan = (bool) (int(var)==1);
+       bool lan = (bool) (long(var)==1);
        bool result = false;
        if (lan) result = instance_->serverList_.fetchLANList();
        else result = instance_->serverList_.fetchServerList();
diff -aur scorched3d-39.1+cvs20050929.orig/src/coms/NetInterface.h 
scorched3d-39.1+cvs20050929/src/coms/NetInterface.h
--- scorched3d-39.1+cvs20050929.orig/src/coms/NetInterface.h    2004-12-09 
12:56:33.000000000 -0800
+++ scorched3d-39.1+cvs20050929/src/coms/NetInterface.h 2005-11-19 
00:08:45.000000000 -0800
@@ -37,9 +37,9 @@
        virtual void setMessageHandler(NetMessageHandlerI *handler) = 0;
 
        virtual void disconnectAllClients() = 0;
-       virtual void disconnectClient(unsigned int client, bool delay = false) 
= 0;
+       virtual void disconnectClient(unsigned long client, bool delay = false) 
= 0;
        virtual void sendMessage(NetBuffer &buffer) = 0;
-       virtual void sendMessage(NetBuffer &buffer, unsigned int destination) = 
0;
+       virtual void sendMessage(NetBuffer &buffer, unsigned long destination) 
= 0;
 
        static unsigned int &getBytesIn() { return bytesIn_; }
        static unsigned int &getBytesOut() { return bytesOut_; }
diff -aur scorched3d-39.1+cvs20050929.orig/src/coms/NetLoopBack.cpp 
scorched3d-39.1+cvs20050929/src/coms/NetLoopBack.cpp
--- scorched3d-39.1+cvs20050929.orig/src/coms/NetLoopBack.cpp   2005-04-04 
15:35:25.000000000 -0700
+++ scorched3d-39.1+cvs20050929/src/coms/NetLoopBack.cpp        2005-11-19 
00:08:45.000000000 -0800
@@ -57,7 +57,7 @@
        Logger::log( "Cannot disconnect all clients, they are local!");
 }
 
-void NetLoopBack::disconnectClient(unsigned int client, bool delay)
+void NetLoopBack::disconnectClient(unsigned long client, bool delay)
 {
        Logger::log( "Cannot disconnect client %i, they are local!", client);
 }
@@ -67,7 +67,7 @@
        sendMessage(buffer, ServerLoopBackID);
 }
 
-void NetLoopBack::sendMessage(NetBuffer &buffer, unsigned int destination)
+void NetLoopBack::sendMessage(NetBuffer &buffer, unsigned long destination)
 {
        DIALOG_ASSERT(loopback_);
        DIALOG_ASSERT(destination == ClientLoopBackID ||
diff -aur scorched3d-39.1+cvs20050929.orig/src/coms/NetLoopBack.h 
scorched3d-39.1+cvs20050929/src/coms/NetLoopBack.h
--- scorched3d-39.1+cvs20050929.orig/src/coms/NetLoopBack.h     2004-12-09 
12:56:33.000000000 -0800
+++ scorched3d-39.1+cvs20050929/src/coms/NetLoopBack.h  2005-11-19 
00:08:45.000000000 -0800
@@ -46,9 +46,9 @@
        virtual void setMessageHandler(NetMessageHandlerI *handler);
 
        virtual void disconnectAllClients();
-       virtual void disconnectClient(unsigned int client, bool delay = false);
+       virtual void disconnectClient(unsigned long client, bool delay = false);
        virtual void sendMessage(NetBuffer &buffer);
-       virtual void sendMessage(NetBuffer &buffer, unsigned int destination);
+       virtual void sendMessage(NetBuffer &buffer, unsigned long destination);
 
 protected:
        unsigned int currentId_;
diff -aur scorched3d-39.1+cvs20050929.orig/src/coms/NetServer.cpp 
scorched3d-39.1+cvs20050929/src/coms/NetServer.cpp
--- scorched3d-39.1+cvs20050929.orig/src/coms/NetServer.cpp     2005-06-10 
16:24:31.000000000 -0700
+++ scorched3d-39.1+cvs20050929/src/coms/NetServer.cpp  2005-11-19 
00:08:45.000000000 -0800
@@ -235,19 +235,19 @@
                itor++)
        {
                TCPsocket sock = (*itor).first;
-               disconnectClient((unsigned int) sock);
+               disconnectClient((unsigned long) sock);
        }
        SDL_UnlockMutex(setMutex_);
 }
 
-void NetServer::disconnectClient(unsigned int dest, bool delayed)
+void NetServer::disconnectClient(unsigned long dest, bool delayed)
 {
        TCPsocket client = (TCPsocket) dest;
        DIALOG_ASSERT(client);
 
        NetMessage *message = NetMessagePool::instance()->
                getFromPool(NetMessage::DisconnectMessage, 
-                               (unsigned int) client,
+                               (unsigned long) client,
                                getIpAddress(client));
 
        if (delayed)
@@ -264,10 +264,10 @@
 
 void NetServer::sendMessage(NetBuffer &buffer)
 {
-       sendMessage(buffer, (unsigned int) firstDestination_);
+       sendMessage(buffer, (unsigned long) firstDestination_);
 }
 
-void NetServer::sendMessage(NetBuffer &buffer, unsigned int dest)
+void NetServer::sendMessage(NetBuffer &buffer, unsigned long dest)
                                                        
 {
        TCPsocket destination = (TCPsocket) dest;
@@ -276,7 +276,7 @@
        // Get a new buffer from the pool
        NetMessage *message = NetMessagePool::instance()->
                getFromPool(NetMessage::NoMessage, 
-                               (unsigned int) destination,
+                               (unsigned long) destination,
                                getIpAddress(destination));
 
        // Add message to new buffer
@@ -305,7 +305,7 @@
        {
                NetMessagePool::instance()->addToPool(message);
                Logger::log( "Unknown sendMessage destination %i",
-                       (int) client);
+                       (long) client);
        }
        SDL_UnlockMutex(setMutex_);
 }
diff -aur scorched3d-39.1+cvs20050929.orig/src/coms/NetServer.h 
scorched3d-39.1+cvs20050929/src/coms/NetServer.h
--- scorched3d-39.1+cvs20050929.orig/src/coms/NetServer.h       2005-06-10 
16:24:31.000000000 -0700
+++ scorched3d-39.1+cvs20050929/src/coms/NetServer.h    2005-11-19 
00:06:03.000000000 -0800
@@ -42,9 +42,9 @@
        virtual void setMessageHandler(NetMessageHandlerI *handler);
 
        virtual void disconnectAllClients();
-       virtual void disconnectClient(unsigned int client, bool delayed = 
false);
+       virtual void disconnectClient(unsigned long client, bool delayed = 
false);
        virtual void sendMessage(NetBuffer &buffer);
-       virtual void sendMessage(NetBuffer &buffer, unsigned int destination);
+       virtual void sendMessage(NetBuffer &buffer, unsigned long destination);
        void setSentNotification() { sentNotification_ = true; }
 
        static unsigned int getIpAddress(TCPsocket destination);
diff -aur scorched3d-39.1+cvs20050929.orig/src/coms/NetServerProtocol.cpp 
scorched3d-39.1+cvs20050929/src/coms/NetServerProtocol.cpp
--- scorched3d-39.1+cvs20050929.orig/src/coms/NetServerProtocol.cpp     
2005-06-13 10:31:06.000000000 -0700
+++ scorched3d-39.1+cvs20050929/src/coms/NetServerProtocol.cpp  2005-11-19 
00:12:43.000000000 -0800
@@ -125,7 +125,7 @@
        // allocate the buffer memory
        NetMessage *buffer = NetMessagePool::instance()->
                getFromPool(NetMessage::BufferMessage, 
-                               (unsigned int) socket,
+                               (unsigned long) socket,
                                NetServer::getIpAddress(socket));
        buffer->getBuffer().allocate(len);
        buffer->getBuffer().setBufferUsed(len);
@@ -161,7 +161,7 @@
        // Allocate a new buffer
        NetMessage *newMessage = NetMessagePool::instance()->
                getFromPool(NetMessage::BufferMessage, 
-                               (unsigned int) socket,
+                               (unsigned long) socket,
                                NetServer::getIpAddress(socket));
        NetBuffer &newBuffer = newMessage->getBuffer();
        newBuffer.allocate(destLen);
@@ -291,7 +291,7 @@
        // allocate the buffer memory
        NetMessage *netBuffer = NetMessagePool::instance()->
                getFromPool(NetMessage::BufferMessage,
-                               (unsigned int) socket,
+                               (unsigned long) socket,
                                NetServer::getIpAddress(socket));
        netBuffer->getBuffer().reset();
 
@@ -354,7 +354,7 @@
        // allocate the buffer memory
        NetMessage *netBuffer = NetMessagePool::instance()->
                getFromPool(NetMessage::BufferMessage,
-                               (unsigned int) socket,
+                               (unsigned long) socket,
                                NetServer::getIpAddress(socket));
        netBuffer->getBuffer().reset();
 
diff -aur scorched3d-39.1+cvs20050929.orig/src/coms/NetServerRead.cpp 
scorched3d-39.1+cvs20050929/src/coms/NetServerRead.cpp
--- scorched3d-39.1+cvs20050929.orig/src/coms/NetServerRead.cpp 2005-06-10 
16:24:31.000000000 -0700
+++ scorched3d-39.1+cvs20050929/src/coms/NetServerRead.cpp      2005-11-19 
00:15:58.000000000 -0800
@@ -64,7 +64,7 @@
        // Send the player connected notification
        NetMessage *message = NetMessagePool::instance()->
                getFromPool(NetMessage::ConnectMessage, 
-               (unsigned int) socket_,
+               (unsigned long) socket_,
                NetServer::getIpAddress(socket_));
        messageHandler_->addMessage(message);
 
@@ -96,7 +96,7 @@
                sentDisconnect_ = true;
                NetMessage *message = NetMessagePool::instance()->
                        getFromPool(NetMessage::DisconnectMessage, 
-                               (unsigned int) socket_,
+                               (unsigned long) socket_,
                                NetServer::getIpAddress(socket_));
                messageHandler_->addMessage(message);
        }
@@ -191,7 +191,7 @@
                        Logger::log( 
                                "Warning: %s net loop took %.2f seconds, client 
%i", 
                                (send?"Send":"Recv"),
-                               timeDiff, (unsigned int) socket_);
+                               timeDiff, (unsigned long) socket_);
                }
        }
 
@@ -201,7 +201,7 @@
                sentDisconnect_ = true;
                NetMessage *message = NetMessagePool::instance()->
                        getFromPool(NetMessage::DisconnectMessage, 
-                               (unsigned int) socket_,
+                               (unsigned long) socket_,
                                NetServer::getIpAddress(socket_));
                messageHandler_->addMessage(message);
        }
@@ -276,7 +276,7 @@
                {
                        NetMessage *notification = NetMessagePool::instance()->
                                getFromPool(NetMessage::SentMessage,
-                                       (unsigned int) socket_,
+                                       (unsigned long) socket_,
                                        NetServer::getIpAddress(socket_));
                        messageHandler_->addMessage(notification);
                }
diff -aur scorched3d-39.1+cvs20050929.orig/src/dialogs/HelpButtonDialog.cpp 
scorched3d-39.1+cvs20050929/src/dialogs/HelpButtonDialog.cpp
--- scorched3d-39.1+cvs20050929.orig/src/dialogs/HelpButtonDialog.cpp   
2005-09-18 02:59:33.000000000 -0700
+++ scorched3d-39.1+cvs20050929/src/dialogs/HelpButtonDialog.cpp        
2005-11-19 00:08:45.000000000 -0800
@@ -160,7 +160,7 @@
 
 void HelpButtonDialog::itemSelected(GLWSelectorEntry *entry, int position)
 {
-       int data = (int) entry->getUserData();
+       long data = (long) entry->getUserData();
        if (data != -1)
        {
                int volume = int(float(data) * 12.8f);
diff -aur 
scorched3d-39.1+cvs20050929.orig/src/engine/ScorchedCollisionHandler.cpp 
scorched3d-39.1+cvs20050929/src/engine/ScorchedCollisionHandler.cpp
--- scorched3d-39.1+cvs20050929.orig/src/engine/ScorchedCollisionHandler.cpp    
2005-06-08 10:29:38.000000000 -0700
+++ scorched3d-39.1+cvs20050929/src/engine/ScorchedCollisionHandler.cpp 
2005-11-19 00:08:45.000000000 -0800
@@ -93,7 +93,7 @@
        }
 
        ShotBounce *particle = (ShotBounce *) bounceInfo->data;
-       unsigned int id = (unsigned int) otherInfo->data;
+       unsigned long id = (unsigned long) otherInfo->data;
 
        // only collide with the ground, walls or landscape,
        // or iteself
@@ -217,7 +217,7 @@
                otherInfo = (ScorchedCollisionInfo *) dGeomGetData(o1);
        }
 
-       unsigned int id = (unsigned int) otherInfo->data;
+       unsigned long id = (unsigned long) otherInfo->data;
        ShotProjectile *shot = (ShotProjectile *) particleInfo->data;
        shot->incLandedCounter();
        Vector particlePositionV(
diff -aur scorched3d-39.1+cvs20050929.orig/src/ode/config.h 
scorched3d-39.1+cvs20050929/src/ode/config.h
--- scorched3d-39.1+cvs20050929.orig/src/ode/config.h   2004-11-02 
01:20:35.000000000 -0800
+++ scorched3d-39.1+cvs20050929/src/ode/config.h        2005-11-19 
00:08:45.000000000 -0800
@@ -81,7 +81,7 @@
 /* an integer type that we can safely cast a pointer to and from without
  * loss of bits.
  */
-typedef unsigned int intP;
+typedef unsigned long intP;
 
 
 /* if we're compiling on a pentium, we may need to know the clock rate so
diff -aur scorched3d-39.1+cvs20050929.orig/src/scorched/SettingsDialog.cpp 
scorched3d-39.1+cvs20050929/src/scorched/SettingsDialog.cpp
--- scorched3d-39.1+cvs20050929.orig/src/scorched/SettingsDialog.cpp    
2005-09-22 08:14:28.000000000 -0700
+++ scorched3d-39.1+cvs20050929/src/scorched/SettingsDialog.cpp 2005-11-19 
00:21:23.000000000 -0800
@@ -748,44 +748,44 @@
 
        // Env
        {
-               context_.setWindForce((OptionsGame::WindForce) (int)
+               context_.setWindForce((OptionsGame::WindForce) (long)
                        SettingsEnv::IDC_COMBO_FORCE_CTRL->GetClientData(
                                
SettingsEnv::IDC_COMBO_FORCE_CTRL->GetSelection()));
 
-               context_.setWindType((OptionsGame::WindType) (int)
+               context_.setWindType((OptionsGame::WindType) (long)
                        SettingsEnv::IDC_COMBO_WINDCHANGES_CTRL->GetClientData(
                                
SettingsEnv::IDC_COMBO_WINDCHANGES_CTRL->GetSelection()));
 
-               context_.setWallType((OptionsGame::WallType) (int)
+               context_.setWallType((OptionsGame::WallType) (long)
                        SettingsEnv::IDC_COMBO_WALLTYPE_CTRL->GetClientData(
                                
SettingsEnv::IDC_COMBO_WALLTYPE_CTRL->GetSelection()));
 
-               context_.setWeapScale((OptionsGame::WeapScale) (int)
+               context_.setWeapScale((OptionsGame::WeapScale) (long)
                        SettingsEnv::IDC_COMBO_WEAPONSCALE_CTRL->GetClientData(
                                
SettingsEnv::IDC_COMBO_WEAPONSCALE_CTRL->GetSelection()));
 
-               context_.setStartArmsLevel((int) 
+               context_.setStartArmsLevel((long) 
                        
SettingsEnv::IDC_COMBO_STARTARMSLEVEL_CTRL->GetClientData(
                                
SettingsEnv::IDC_COMBO_STARTARMSLEVEL_CTRL->GetSelection()));
 
-               context_.setEndArmsLevel((int) 
+               context_.setEndArmsLevel((long) 
                        SettingsEnv::IDC_COMBO_ENDARMSLEVEL_CTRL->GetClientData(
                                
SettingsEnv::IDC_COMBO_ENDARMSLEVEL_CTRL->GetSelection()));
-               context_.setMinFallingDistance((int) 
+               context_.setMinFallingDistance((long) 
                        
SettingsEnv::IDC_COMBO_FALLINGDISTANCE_CTRL->GetClientData(
                                
SettingsEnv::IDC_COMBO_FALLINGDISTANCE_CTRL->GetSelection()));
-               context_.setMaxClimbingDistance((int) 
+               context_.setMaxClimbingDistance((long) 
                        
SettingsEnv::IDC_COMBO_CLIMBINGDISTANCE_CTRL->GetClientData(
                                
SettingsEnv::IDC_COMBO_CLIMBINGDISTANCE_CTRL->GetSelection()));
 
                context_.setGiveAllWeapons(
                        SettingsEnv::IDC_GIVEALLWEAPONS_CTRL->GetValue());
 
-               context_.setResignMode((OptionsGame::ResignType) (int)
+               context_.setResignMode((OptionsGame::ResignType) (long)
                        SettingsEnv::IDC_RESIGNENDROUND_CTRL->GetClientData(
                                
SettingsEnv::IDC_RESIGNENDROUND_CTRL->GetSelection()));
 
-               
context_.setMovementRestriction((OptionsGame::MovementRestrictionType) (int)
+               
context_.setMovementRestriction((OptionsGame::MovementRestrictionType) (long)
                        
SettingsEnv::IDC_MOVEMENTRESTRICTION_CTRL->GetClientData(
                                
SettingsEnv::IDC_MOVEMENTRESTRICTION_CTRL->GetSelection()));
        }
@@ -809,10 +809,10 @@
                int downloadSpeed = 0;
                int keepAliveTime = 0;
 
-               context_.setTurnType((OptionsGame::TurnType) (int) 
+               context_.setTurnType((OptionsGame::TurnType) (long) 
                        SettingsMain::IDC_TYPE_CTRL->GetClientData(
                                SettingsMain::IDC_TYPE_CTRL->GetSelection()));
-               context_.setTeamBallance((OptionsGame::TeamBallanceType) (int)
+               context_.setTeamBallance((OptionsGame::TeamBallanceType) (long)
                        SettingsMain::IDC_TEAMBALLANCE_CTRL->GetClientData(
                                
SettingsMain::IDC_TEAMBALLANCE_CTRL->GetSelection()));                  
                context_.setTeams((int) 
SettingsMain::IDC_TEAMS_CTRL->GetSelection() + 1);
diff -aur scorched3d-39.1+cvs20050929.orig/src/tankgraph/GLWTankTip.cpp 
scorched3d-39.1+cvs20050929/src/tankgraph/GLWTankTip.cpp
--- scorched3d-39.1+cvs20050929.orig/src/tankgraph/GLWTankTip.cpp       
2005-06-11 09:53:41.000000000 -0700
+++ scorched3d-39.1+cvs20050929/src/tankgraph/GLWTankTip.cpp    2005-11-19 
00:08:45.000000000 -0800
@@ -66,7 +66,7 @@
 
 void TankUndoMenu::itemSelected(GLWSelectorEntry *entry, int position)
 {
-       tank_->getPhysics().revertSettings((unsigned int) entry->getUserData());
+       tank_->getPhysics().revertSettings((unsigned long) 
entry->getUserData());
 }
 
 TankFuelTip::TankFuelTip(Tank *tank) : 
@@ -170,7 +170,7 @@
 void TankBatteryTip::itemSelected(GLWSelectorEntry *entry, int position)
 {
        TankAIHuman *tankAI = (TankAIHuman *) tank_->getTankAI();
-       for (int i=1; i<=(int) entry->getUserData(); i++)
+       for (int i=1; i<=(long) entry->getUserData(); i++)
        {
                if (tank_->getState().getLife() < 100.0f)
                {

Reply via email to