Jump to content
Eternal Lands Official Forums
d000hg

The whole Cal3D thing...

Recommended Posts

This seems to be a tricky part of getting started, but the number of different problems people have had made it seem more sensible to start afresh...

 

The main guide stickied on this page neglects cal3D, but I've figured it's an animation library. However one thread suggested the newer version doesn't work with elc so can someone host the working version they are actually using please?

 

I've got cal3d_wrapper.c/h but no other cal3d stuff at all. I just want the headers and libs, I don't care about building it myself but I will if I have to!

 

On a side point, my MSVC project included options.c/h but these files were not there, and several .c files were listed in the project twice, meaning I had to fix them. Are these errors normal?

 

I'm a new guy working on elc (the real version not a mod or whatever) so any help helps me improve the game faster! And yes, even seasoned professional coders still get these problems installing projects and compiling them the first time!

 

Thanks.

Share this post


Link to post
Share on other sites

You need to get the Cal3D development libraries (version 0.10.0). What operating system are you using?

Share this post


Link to post
Share on other sites

You need to get the Cal3D development libraries (version 0.10.0). What operating system are you using?

I'm guessing winNT...

my MSVC project included options.c/h but these files were not there, and several .c files were listed in the project twice, meaning I had to fix them. Are these errors normal?

pretty much; the proect file is seriously out of date. remove all files and readd them again (ust going through the list and adding/removing individually also has other problems)

edit:off to find a previous post about a good MSVC start

found it. check here. ignore the stuff about unistd/etc though

 

shortened version:

 

downdload the cal3d version 0.10 source from http://cal3d.sourceforge.net/

it has MSVC project files, so just open, compile, and move the libs/headers to wherever you normally put them. I suggest making both the release and debug versions, it doesn't take much space/time, and you might want the debug version at some later date

 

loaded elc.dsw and said yes to recreate data files

removed all files from project

added all files to project (to clear any file-specific options set, which there are, and they were a pain)

set to compile as default rather than C++

for file-specific on cal3d_wrapper.cpp: added CAL3D_WRAPPER_EXPORTS to preprocessor line (right-click the file and go into its options)

you'll also want to look at the preprocessor options; some are out of date, some aren't used though they're pretty much a defacto default (project settings -> C/C++ ->preprocessor)

you'll likely need to update the list of libs to link against as well (options -> linker -> input). I'm not sure how out of date that list is

 

if you wish to have PNG screenshot option, then that requires installing another library to link against and a preprocessor define

Edited by ttlanhil

Share this post


Link to post
Share on other sites

Phew, it's complicated!

 

I'm on Win2K using VC++ 6.0.

 

Thanks for those tips - so do cal3d.c/h actually get added to my ELC project, or do I just build the cal3D lib separately and then use the headers and newly generated lib as normal from ELC? If that's the case the only really wierd thing is setting the options for the cal3d_wrapper.c/h.

 

Adding lib paths etc is easy enough, preprocessor definitions sound like a headache though. Unless somebody has a .dsp I could just borrow?!

 

Every other Windows developer uses DevC++ right? Is this free and if I had this, would it work 'out of the box'?

Share this post


Link to post
Share on other sites

Thanks for those tips - so do cal3d.c/h actually get added to my ELC project, or do I just build the cal3D lib separately and then use the headers and newly generated lib as normal from ELC? If that's the case the only really wierd thing is setting the options for the cal3d_wrapper.c/h.

you make the library seperately, and then compile EL with that lib & headers in appropriate paths. yes, the one setting for cal3d specifically is not that great.

Adding lib paths etc is easy enough, preprocessor definitions sound like a headache though. Unless somebody has a .dsp I could just borrow?!

then ignore it, ELC is the only one that should be needed, and that's already set

however, here's my defines line in case you wanna copy it (it uses many of the more advanced options, though, so crashes are probably a bit more likely)

ELC;NDEBUG;NEW_WEATHER;PNG_SCREENSHOT;WIDGETS_FIX;NEW_FRUSTUM;NETWORK_THREAD;BUG_FIX_3D_OBJECTS_MIN_MAX;NEW_TEX;OPTIONS_I18N;USE_FRAMEBUFFER;NEW_ACTOR_ANIMATION;COMMAND_BUFFER;USE_BBOX;ATI_9200_FIX

Every other Windows developer uses DevC++ right? Is this free and if I had this, would it work 'out of the box'?

no, just most of them. it should also be possible to use MinGW or cygwin, since they use gcc as well (and this is done for a crosscompile from a BSD box by at least one person)

 

with dev-cpp you may have less to do, but some steps are still there. making sure you have all libraries, chosing your defines, etc

Share this post


Link to post
Share on other sites
Guest Kuro

Hey d000gh,

 

I got the game compiling/running with VC++ .NET 2005 so it's definitely possible... Basically I just removed all the files from the project, and then added them all back again, then I defined the CAL3D_WRAPPER_EXPORTS or whatever that's called, and it worked fine. The game crashes when trying to load spider1_1 though (one of the actor defs) because the skeleton file (.csf) is missing, so for now I just fixed it by adding a check to see if "skel" is NULL on that part.

Share this post


Link to post
Share on other sites

Well I've got ELC to build now; I can't see if it plays because my dev machine currently has no internet - but it starts up as normal!

 

Is there a guide to all the #defines I might want to add to my project settings - like what they do? I'm working primarily on the sound so fancy features are not important, just a stable running version of the game.

Share this post


Link to post
Share on other sites

Is there a guide to all the #defines I might want to add to my project settings - like what they do? I'm working primarily on the sound so fancy features are not important, just a stable running version of the game.

hmm... well, I could probably explain about 2/3-3/4 if I went through the list... but more practically... if you don't know what they do or are told to use it, then use the list ent used for the release candidates.

they're somewhat new, but beleived stable(and some are about to become the default, so not using them may cause greif)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×