Jump to content
Eternal Lands Official Forums
Zep

Cal3D

Recommended Posts

After serching 18 pages of thread, I figured its a good idea contain all the info for Cal3D in a single post :P

 

Decided to drop all the packs made so far, In favor of 1 pack that contains all the stuff you need to test the cal3d gear, And latest client.

If you grab this, Then you dont need to get anything else.

17Mb of Gear, For you to extract over your existing EL directory

 

Indervidual Packages and Other Stuff....

The defines for the cal3d gear. c/o Rouge and Roja.

Cal 3d Bzip2

(WARNING: Contains the NEW maps, So copy over your old ones)

 

A windows executable from Learner, also contains the cal3d.dll.

http://www.other-life.com/downloads/elc-cal3d.zip

Another windows executable from Learner - use this if the client complains about a missing vorbis.dll file:

http://www.other-life.com/downloads/elc-P2-MMX.zip

 

Mikemans executable. (With major debuging code)

MikeMans Ready to go Client

 

Wytters Charictor Creation interface files. (not cal3d related)

http://wytter.tfm.ro/elc/newchar.zip

For those who get an error about ./books and xmls

 

Developers from here on down.....

 

Cal3D has been added to the main cvs. So you could also just update you checkouts =)

If you need a version without it, See the STABLE_ELC_20050706-BRANCH_PRE_CAL3D branch On Berlios

 

Before you start your uber compile, To see the fluffys hop,

Better nab Cal3d for your compiler from...

Cal3D Sourceforge Downloads

****NOTES FOR WINDOWS*****,

Drop the cal3d_wrapper from dev-c++, And do the following...

****BUILDING THE CAL3D.DLL*****

1)You need to change that line in platform.h like Learner did

2)You need to do something similar in cal3d_wrapper.h

3)I've made a "decls.h" file and included it in every .cpp file

 

Anyway, here are all the sources(and the .dev) that I used to build it:

http://mman.tfm.ro/CAL3D_LIB.zip

 

One note, I needed to copy all the .h files into my Dev-Cpp/Include/Cal3D dir because that's where it looks to find them. If all goes well, you'll get cal3d.dll and libcal3d.a

 

****BUILDING THE CAL3D_WRAPPER_ELC.DLL*****

I've uploaded the .cpp and .dev file, just build it and make sure it links to libcal3d.a you just created before.

http://mman.tfm.ro/CALWRAP_LIB.zip

If all goes well, you'll get cal3d_wrapper_elc.dll and libcal3d_wrapper_elc.a

 

****BUILDING THE CLIENT*****

There are some changes that I made in cal.c and cal.h. Here they are:

http://mman.tfm.ro/ELC_UPDATE.zip

Then, build the project and make sure that is linked to cal3d.a and libcal3d_wrapper_elc.a you created in the previous steps.

 

If all goes well, you'll get the executable. Put it in the Eternal lands dir, alongside with the 2 .dlls we made, and run it. Make sure you extracted the very first zip listed here in the correct location.

 

Note:

We use Cal3D 0.10.0 for the skeletal animations.

http://prdownloads.sourceforge.net/cal3d/c...ar.bz2?download

 

For those lazy Gentoo users :blink: here's an ebuild:

http://wytter.tfm.ro/elc/eternal-lands-1.0.2.ebuild

 

Bugs:

 

Post rendering/animation bugs here: http://www.eternal-lands.com/forum/index.php?showtopic=16127

Post compiling problems here: http://www.eternal-lands.com/forum/index.php?showtopic=16180

Edited by Zep

Share this post


Link to post
Share on other sites

um..I'm not sure that that zip contains the latest models and .def files. If you see bugs in it then..that may be why.

Share this post


Link to post
Share on other sites

np, Wy said it may be a good idea to make the above post, And update it, As new files become public.

Rogue is aparently doing an updated tar.bz2 also.

Share this post


Link to post
Share on other sites

Wow I am gonna look like a proper noob for this post.. flames welcome, just not here ok :)

 

Here goes:

How do I get that mess they call Cal3D 0.whatever.0.10.0 into the right directories in dev-c++ (I don't mean how do I extract, just what goes where and do I have to chant a mantra to get a cal3D DLL?)

 

If anyone out there is using dev-c++ and has a working Cal3D setup, would they mind doing the following for me..

 

open a command prompt

cd to your dev-cpp directory

dir /s>c:\devcpp.txt

close the command prompt

 

email the devcpp.txt file to me gregoryfenton@gmail.com or PM me it via the forums if it will fit (probably not but you never know)

 

If someone could do that, I would be in a much better place to figure out what to do with Cal3D, and maybe figure the rest out for myself.

Share this post


Link to post
Share on other sites

heh, im having a hard time figuring out what exactly needs to be compiled.

im guessing that the wrapper have to be compiled as a standalone dll or something but im getting linker errors left right and center.

 

hopefully im able to figure it out ;)

Share this post


Link to post
Share on other sites
heh, im having a hard time figuring out what exactly needs to be compiled.

im guessing that the wrapper have to be compiled as a standalone dll or something but im getting linker errors left right and center.

 

hopefully im able to figure it out ;)

177413[/snapback]

Yeah that's what I said :P

Share this post


Link to post
Share on other sites

The cal3d_wrapper.cpp needs to be compiled with a C++ compiler, then added to the executable when linking.

Share this post


Link to post
Share on other sites

hmm, ok. trying to get it to compile is a test in frustrations.

should it be compiled as a dll or as a .a?

 

edit:

 

.a (static library) looks like it was the right idea.

should have tryed that from the start...

i guess i have to compile the cal3d stuff to, but into a dll this time. then copy the dll to the el folder...

Edited by duran

Share this post


Link to post
Share on other sites

Hmm, just a normal object really, on linux it's just compiled with g++, then linked as a normal object...

Share this post


Link to post
Share on other sites

heh, problem is that with dev-cpp there isnt a clean way to just output a object file. that is unless i have missunderstood the interface somehow...

 

ah, found it.

basicly build the cal3d_wrapper stuff and then add the output object file into linker section under parameters of the project options for the el client.

 

how stupid of me...

Edited by duran

Share this post


Link to post
Share on other sites

grr, the linker keeps trowing me errors like this one:

 

[Linker error] undefined reference to `CalAnimation::getCoreAnimation()'

 

related to lights.o.

 

i dont get it, i have cal3d_wrapper compiled and all so wtf is wrong?

Share this post


Link to post
Share on other sites
grr, the linker keeps trowing me errors like this one:

 

[Linker error] undefined reference to `CalAnimation::getCoreAnimation()'

 

related to lights.o.

 

i dont get it, i have cal3d_wrapper compiled and all so wtf is wrong?

177533[/snapback]

 

Im having exactly the same issues, And hastleing Wy at a million miles an hour about it lol.

Beats the crap outa me, How on earth this thing works in dev-c++ =)

I thought it was a library error, So i went and compiled it on its native msvc, All good it compiled fine, Copyed over the libs, Tryed static including them, Tryed dyanamic, All with the same results.

 

Added the wrapper.o to the linker manually, then it errors about multiple functions with the same name, So exported the object, And linked again, Same inital errors with not seeing the functions that are clearly in the wrapper.

 

Grabed another pack of smokes, And worked on it all day today, Now its 2am lol.

Share this post


Link to post
Share on other sites
Im having exactly the same issues, And hastleing Wy at a million miles an hour about it lol.

Beats the crap outa me, How on earth this thing works in dev-c++ =)

I thought it was a library error, So i went and compiled it on its native msvc, All good it compiled fine, Copyed over the libs, Tryed static including them, Tryed dyanamic, All with the same results.

 

Added the wrapper.o to the linker manually, then it errors about multiple functions with the same name, So exported the object, And linked again, Same inital errors with not seeing the functions that are clearly in the wrapper.

 

Grabed another pack of smokes, And worked on it all day today, Now its 2am lol.

177547[/snapback]

I don't think its been compiled with dev-cpp yet, and if you could email me the cal3d files you are linking in ... I'm having problems with linking and it looks like it can't find anything in the cal3d library.

Share this post


Link to post
Share on other sites
I don't think its been compiled with dev-cpp yet, and if you could email me the cal3d files you are linking in ... I'm having problems with linking and it looks like it can't find anything in the cal3d library.

177550[/snapback]

 

yeah thats what i figured when useing the dev-c++ mscv importer, the debuger showed nothing in the files, Except a couple of defines. Not nearly enough for linking, Ill email you the statics and the dynamics, both msvc and dev-c++ compiles.

Share this post


Link to post
Share on other sites

Ok guys, I haven't tried to build it with DEV-C yet, I will try it right now. Stay tuned...

 

 

-EDIT: Great, I'm in worse position that any of you... Mine don't even compile. I did everything from the guides of how to compile with Dev-C and I get those:

 

Compiler: Default compiler
Executing  make...
make.exe -f "Makefile.win" all
gcc.exe -c widgets.c -o widgets.o -I"C:/Dev-Cpp/include"  -I"C:/Program Files/Microsoft Visual Studio/VC98/Include"  -DWINDOWS -Wall -DELC -DWINDOW_CHAT -DNOTEPAD -DSTORAGE   -fmessage-length=0

In file included from C:/Dev-Cpp/include/SDL_rwops.h:35,
                from C:/Dev-Cpp/include/SDL.h:37,
                from global.h:50,
                from widgets.c:1:
C:/Dev-Cpp/include/stdio.h:207: error: parse error before "__gnuc_va_list"
C:/Dev-Cpp/include/stdio.h:208: error: parse error before "__gnuc_va_list"
C:/Dev-Cpp/include/stdio.h:209: error: parse error before "__gnuc_va_list"
C:/Dev-Cpp/include/stdio.h:210: error: parse error before "__gnuc_va_list"
C:/Dev-Cpp/include/stdio.h:215: error: parse error before "__gnuc_va_list"
...

WTF is that?

 

-EDIT2: Nevermind, disregard that, I got it to compile. I'm looking into some linking errors now, I'll post when I got it to build ok.

Edited by mikeman

Share this post


Link to post
Share on other sites

Ok, I've managed to compile it properly, but with some issues:

 

The "cal3d_wrapper.cpp" and "cal3d_wrapper.h" are part of Cal3D. As in, they come with the lib(when you download it, check the source, you will see them). They are a built-in wrapper for C, but it missed some functions I needed, so I edited them and rebuilt cal3d.dll and cal3d.lib. Then I included cal3d_wrapper.h into the EL program, linked with cal3d.lib and it run ok. That's as far as MSVC6 goes.

 

Now, with Dev-C I tried to build cal3d.dll the same way, but the libcal3d.a I get is a tiny file(6KB, where cal3d.lib with MSVC6 is over 300KB) and it doesn't seem to export any symbols. I used cal3d.lib instead with the Dev-C project, and it linked ok, and the executable was fine. The problem is that I don't know how to compile Cal3D properly, I searched the internet and found some cases exactly like mine, but no answers other than "build a static lib", which is no solution because it's huge(2MB).

Share this post


Link to post
Share on other sites

now why on earth do they not ship recompiled libs for windows?

how hard can that be?

everywhere else they do so. openal, sdl, xml...

 

edit:

tryed the bombshell move, as in the static lib, and got nowhere...

basicly it adds a error about multiple declarations.

Edited by duran

Share this post


Link to post
Share on other sites

Managed to make it compile (but not link) under DevC++

To make it compile a single file as C++, go to Project, Files, click ont he file,a nd say: "compile as cpp".

Then I copied the whole /cal3d in the includes directory.

Then I had to manually edit c++config.h Had a lot of shit defiend in there that was causign the compiler to not find some undeclared functions. Just placed an #ifdef DONT_BOTHER_ME at the beginning, and an endif at the end. Or I could have just emptied the file.

Share this post


Link to post
Share on other sites

Compiled ok for me under linux. I had cal3d already installed, so the only problem that I had when compiling was some weird errors about some classes' methods not being found (easy enough to figure that a version problem was causing it). I was using a very recent build (0.11.0_pre20050518, not for a specific reason...). Downgrading to .10 solved all the problems.

Share this post


Link to post
Share on other sites

Ok, I managed to compile cal3d as a library with DevCpp (the .a is over 2mb so it should be file).

Now I get various linker errors.

Share this post


Link to post
Share on other sites

Ok, I had to link with libstdc++

Now have two undefined things, and a redefiend shit (string_old.c F:\Dev-Cpp\lib\libmoldname.a(string_old.o)(.text+0x0)

multiple definition of `strcasecmp')

Share this post


Link to post
Share on other sites

I managed to compile cal3d as a dll in dev-cpp, then header file platform.h needs tuning to account for the dev-cpp compiler in its decisions. Since I don't have a full clean compile yet, I wont post any fixes. But at link time I'm currently fighting an error with gluProject, so maybe my glu is out of date compared to features being used.

Share this post


Link to post
Share on other sites
I managed to compile cal3d as a dll in dev-cpp, then header file platform.h needs tuning to account for the dev-cpp compiler in its decisions. Since I don't have a full clean compile yet, I wont post any fixes. But at link time I'm currently fighting an error with gluProject, so maybe my glu is out of date compared to features  being used.

177744[/snapback]

Just needed to add -lglu ... now to test

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.

×