Problems (and fix) compiling armagetronad-0.2.7.1

Everything todo with programming goes HERE.
Post Reply
zaskar
Posts: 1
Joined: Sat Feb 11, 2006 6:50 pm

Problems (and fix) compiling armagetronad-0.2.7.1

Post by zaskar »

Hello there... First of all, English is for me a foreing language, so I hope you understand and I apologise for my mistakes. I'm writting to report some issues about compiling the source code. I've found some troubles when I tried to do it (with files armagetronad-0.2.7.1.rar.bz2 and armagetronad-0.2.7.1-gcc-4.0.tar.bz2), but finally I could and now I'm writting to warn you about the changes I had to do.

Ok, heres my environment: Slackware 10.0 and gcc 4.0.2 (compiled yesterday from the official source, that's not the version you find in slackware packages).

Here are the errors tha gcc gave me during the make process:

1)
gCycle.h:211: error: ISO C++ forbids declaration of 'gNetPlayerWall' with no type
gCycle.h:211: error: expected ';' before '*' token
gCycle.h:213: error: ISO C++ forbids declaration of 'gNetPlayerWall' with no type
gCycle.h:213: error: expected ';' before '*' token
gCycle.h:223: error: 'gNetPlayerWall' has not been declared
gCycle.h:282: error: ISO C++ forbids declaration of 'gPlayerWall' with no type
gCycle.h:282: error: expected ';' before '*' token
gCycle.h:283: error: ISO C++ forbids declaration of 'gPlayerWall' with no type
gCycle.h:283: error: expected ';' before '*' token
gWall.cpp: In member function 'void gNetPlayerWall::ReleaseData()':
gWall.cpp:1332: error: 'class gCycle' has no member named 'currentWall'
gWall.cpp:1333: error: 'class gCycle' has no member named 'currentWall'
gWall.cpp:1334: error: 'class gCycle' has no member named 'lastWall'
gWall.cpp:1335: error: 'class gCycle' has no member named 'lastWall'
gWall.cpp: In member function 'void gNetPlayerWall::BlowHole(REAL, REAL)':
gWall.cpp:1767: error: 'class gCycle' has no member named 'currentWall'

2)
../../src/engine/eGrid.h:140: error: 'eGameObject' was not declared in this scope
../../src/engine/eGrid.h:140: error: template argument 1 is invalid
../../src/engine/eGrid.h:141: error: 'eGameObject' was not declared in this scope
../../src/engine/eGrid.h:141: error: template argument 1 is invalid
../../src/engine/eGrid.h:142: error: 'eGameObject' was not declared in this scope
../../src/engine/eGrid.h:142: error: template argument 1 is invalid
../../src/engine/eGrid.h:157: error: 'eGameObject' has not been declared
../../src/engine/eGrid.h:158: error: 'eGameObject' has not been declared
../../src/engine/eGrid.h:159: error: 'eGameObject' has not been declared
../../src/engine/eGrid.h:160: error: 'eGameObject' has not been declared
../../src/engine/eGrid.h:210: error: 'eGameObject' was not declared in this scope
../../src/engine/eGrid.h:210: error: template argument 1 is invalid
../../src/engine/eGrid.h:211: error: 'eGameObject' was not declared in this scope
../../src/engine/eGrid.h:211: error: template argument 1 is invalid
../../src/engine/eGrid.h:212: error: 'eGameObject' was not declared in this scope
../../src/engine/eGrid.h:212: error: template argument 1 is invalid

3)
eVoter.cpp:402: error: ISO C++ forbids declaration of 'eMenuItemVote' with no type
eVoter.cpp:402: error: expected ';' before '*' token
eVoter.cpp: In constructor 'eVoteItem::eVoteItem()':
eVoter.cpp:80: error: class 'eVoteItem' does not have any field named 'menuItem_'
eVoter.cpp: In constructor 'eMenuItemVote::eMenuItemVote(uMenu*, eVoteItem*)':
eVoter.cpp:592: error: 'class eVoteItem' has no member named 'menuItem_'
eVoter.cpp: In destructor 'virtual eMenuItemVote::~eMenuItemVote()':
eVoter.cpp:600: error: 'class eVoteItem' has no member named 'menuItem_'
eVoter.cpp: In destructor 'virtual eVoteItem::~eVoteItem()':
eVoter.cpp:879: error: 'menuItem_' was not declared in this scope
4)
nPriorizing.h:83: error: ISO C++ forbids declaration of 'nBandwidthTaskPriorizer' with no type
nPriorizing.h:83: error: expected ';' before '*' token
nPriorizing.h: In member function 'void nBandwidthTask::Priorize()':
nPriorizing.h:59: error: 'class nBandwidthTask' has no member named 'priorizer_'

Here my solutions to them (all I had to do is to add some forward declarations for a few classes y .h files):
1)
in src/tron/gCycle.h added: class gNetPlayerWall;
in src/engine/eWall.h added: class eWallHolder;
2)
in src/engine/eGrid.h added: class eGameObject;
3)
in src/engine/eVoter.h added: class eMenuItemVote;
4)
in src/network/nPriorizing.h added: class nBandwidthTaskPriorizer;

With those lines added it works perfectly...
And another little thing... Inside the game, with the performance tip z-trick enabled the thing are not drawed or partially drawed. I'm runnign with a xfx ge-force MX 440 with lates nvidia official driver.

I hope you find this useful. It's a great game, so keep on that way.
User avatar
Lucifer
Project Developer
Posts: 8640
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Post by Lucifer »

I had those problems awhile back trying to build 0.2.7.1, but since 0.2.8 is imminent, I didn't worry about it. :)
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Z-Man
God & Project Admin
Posts: 11587
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Strange, haven't seen this one before, only the GCC complaint about binary shifts in the SDL header. I'll fix those and the other ones up in the old branch.
Post Reply