LucasForums

LucasForums (http://www.lucasforums.com/index.php)
-   JA Coding (http://www.lucasforums.com/forumdisplay.php?f=539)
-   -   Compiling on Visual C++ 2008 (VS08) (http://www.lucasforums.com/showthread.php?t=195833)

Cohsty243 02-16-2009 06:23 PM

Compiling on Visual C++ 2008 (VS08)
 
I found an article on the internet but i dont remember the URL. It helped with compiling on Visual C++ 2008.


To compile the Vanilla Source code for JKA in Visual C++ 2008 follow these steps:
1. Open up JKA_mp(SDK).sln, it will ask you if you want to convert, click yes.
2. Open up the file named "q_shared.h". Look for this:
Code:

float powf ( float x, int y );
3. add #undef powf above it so it looks like this:
Code:

#undef powf
float powf ( float x, int y );

4. Open up "q_math.c" and find this:
Code:

float powf ( float x, int y )
{
        float r = x;
        for ( y--; y>0; y-- )
                r = r * r;
        return r;
}

5. Add #undef powf above this one too.
Code:

#undef powf //VS2008 fix

float powf ( float x, int y )
{
        float r = x;
        for ( y--; y>0; y-- )
                r = r * r;
        return r;
}

we are doing this because Visual C++ 08 already has this function defined, so we can undefine this.

Next we need to remove all the win32 folders from our solution.
Like this:
http://i40.tinypic.com/2cmu328.jpg
Remove the win32 folder from JK2cgame, JK2game, and ui.

Don't forget to save the solution! lol.


Now when you compile you will get a lot of warnings, those can be ignored, i don't know how to get rid of those lol.

I hope this saves a lot of trouble for any new guys. this helped me a lot. I was very thankful when i found this info.

DarthDie 02-17-2009 10:50 AM

You can also download the 2005 version of the source (unless thats what your using...?) and it should fix all the errors, 2008 will upgrade the files to work in VC++ 2008.

http://files.filefront.com/JA+codemp.../fileinfo.html

nizwiz 02-17-2009 04:46 PM

Quote:

Originally Posted by Cohsty243 (Post 2590027)
... Now when you compile you will get a lot of warnings, those can be ignored, i don't know how to get rid of those lol...

Try and add this at the top of q_shared.h:
Code:

#pragma warning(disable : 4996)

BobaFettUU 02-20-2009 05:56 AM

Quote:

Next we need to remove all the win32 folders from our solution.
There isn't any need to remove the win32 folders, all they contain is the resource file which contains the version information of the dll's (which you'll see when you check the properties of the dll)

Another fix for powf is this:

Find:
Quote:

float powf ( float x, int y )
{
float r = x;
for ( y--; y>0; y-- )
r = r * r;
return r;
}
and replace it with:

Quote:

float Q_powf ( float x, int y )
{
float r = x;
for ( y--; y>0; y-- )
r = r * r;
return r;
}
Now a lil info about this powf thing: This is the power of function (ya know.. 2^4 = 2*2*2*2 = 16)

Issue is that the powf that comes with JA's SDK is a simplified and broken version of it, only accepting integer exponents above 0. <math.h> which is part of the C standard library, has a properly functioning powf, which is where you get a name clash.

Now powf is only used for the third person camera interpolation. Results of using the SDK's powf is a stiff and rough camera motion, using the real powf results in a smoothened and interpolated camera motion. So this is just a matter of what you prefer, or better yet, make a cvar to toggle between the real powf and the Q_powf.


All times are GMT -4. The time now is 09:48 PM.

Powered by vBulletin®
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LFNetwork, LLC ©2002-2011 - All rights reserved.