Inside3D!
     

Compiling Quake Using Visual C++ Express Edition
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    Inside3d Forums Forum Index -> Engine Programming
View previous topic :: View next topic  
Author Message
reckless



Joined: 24 Jan 2008
Posts: 390
Location: inside tha debugger

PostPosted: Fri Apr 17, 2009 11:48 am    Post subject: Reply with quote

can btw skip the ignore libc.lib if you change projects settings to use the c++ library (shared if your project uses any dll's) (static if not) important! at best the compiler will refuse to link if you dont do it this way at worst it compiles but get errors when running the exe.

also the warnings about deprecated libraries can be turned of by adding _CRT_SECURE_NO_WARNINGS to the preprocessor defines.
not so important unless you look for error messages cause it quickly becomes a mess to read if this aint turned off.

few things i discovered hope it ads Wink
Back to top
View user's profile Send private message
Stroggos



Joined: 14 Apr 2009
Posts: 43

PostPosted: Sat Apr 18, 2009 2:51 am    Post subject: Reply with quote

Thanks i can compile now!!!! SKYBOXES!!!!!
_________________
Dont even try to port Quake 4 to the ipod
Back to top
View user's profile Send private message
Stroggos



Joined: 14 Apr 2009
Posts: 43

PostPosted: Wed Apr 22, 2009 2:54 am    Post subject: Reply with quote

THis is really easy also i found out you can apply the same method to QuakeWorld and WinQuake
_________________
Dont even try to port Quake 4 to the ipod
Back to top
View user's profile Send private message
reckless



Joined: 24 Jan 2008
Posts: 390
Location: inside tha debugger

PostPosted: Wed Apr 22, 2009 9:35 pm    Post subject: Reply with quote

can basically be used for all quake engines aye Smile except maybe Q3
not sure on this one cause it uses lcc for some of the process.
Back to top
View user's profile Send private message
ceriux



Joined: 06 Sep 2008
Posts: 969
Location: Florida, USA

PostPosted: Wed Dec 02, 2009 2:59 am    Post subject: Reply with quote

ok guys iv attempted to compile the vanilla quake engine again with no luck. this is what i have...


Code:
1>Generating Code...
1>c:\cquake\gl_draw.c(148) : warning C4715: 'Scrap_AllocBlock' : not all control paths return a value
1>Compiling resources...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>Linking...
1>gl_refrag.obj : error LNK2019: unresolved external symbol _BoxOnPlaneSide referenced in function _R_SplitEntityOnNode
1>gl_rmain.obj : error LNK2001: unresolved external symbol _BoxOnPlaneSide
1>world.obj : error LNK2001: unresolved external symbol _BoxOnPlaneSide
1>snd_mix.obj : error LNK2019: unresolved external symbol _Snd_WriteLinearBlastStereo16 referenced in function _S_TransferStereo16
1>snd_mix.obj : error LNK2019: unresolved external symbol _SND_PaintChannelFrom8 referenced in function _S_PaintChannels
1>sys_win.obj : error LNK2019: unresolved external symbol _Sys_SetFPCW referenced in function _Sys_Init
1>sys_win.obj : error LNK2019: unresolved external symbol _MaskExceptions referenced in function _Sys_Init
1>sys_win.obj : error LNK2019: unresolved external symbol _Sys_PopFPCW referenced in function _Sys_FloatTime
1>sys_win.obj : error LNK2019: unresolved external symbol _Sys_PushFPCW_SetHigh referenced in function _Sys_FloatTime
1>world.obj : error LNK2019: unresolved external symbol _SV_HullPointContents referenced in function _SV_PointContents
1>.\release_gl\glquake.exe : fatal error LNK1120: 8 unresolved externals
1>Creating browse information file...
1>Microsoft Browse Information Maintenance Utility Version 9.00.30729
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Build log was saved at "file://c:\cquake\release_gl\BuildLog.htm"
1>winquake - 11 error(s), 3 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========



edit: got it to work by right clicking the sln file after i opened it as a project/solution and clicked rebuild instead of build?
_________________
QuakeDB - Quake ModDB Group
Back to top
View user's profile Send private message Yahoo Messenger
metlslime



Joined: 05 Feb 2008
Posts: 177

PostPosted: Wed Dec 02, 2009 6:03 am    Post subject: Reply with quote

those missing symbols all appear to be functions that are implemented in ASM in the original quake source...
Back to top
View user's profile Send private message
ceriux



Joined: 06 Sep 2008
Posts: 969
Location: Florida, USA

PostPosted: Wed Dec 02, 2009 6:50 am    Post subject: Reply with quote

i got that working, but i posted on a another thread after i tried to add something if you wouldnt mind would you look at that one?
_________________
QuakeDB - Quake ModDB Group
Back to top
View user's profile Send private message Yahoo Messenger
r00k



Joined: 13 Nov 2004
Posts: 483

PostPosted: Tue Dec 08, 2009 8:27 am    Post subject: Reply with quote

I've converted my project to MSVC 2008 Express, though
in doing so I've noticed a new quirks and wondered if there's a setting or switch that's causing a problem.

for example:
this code works in MSVC v6.0
Code:

void Cmd_PrintLoc_f (void)
{
   char loc[16], ang[16];

   sprintf (loc, "'%5.1f %5.1f %5.1f'", cl_entities[cl.viewentity].origin[0], cl_entities[cl.viewentity].origin[1], cl_entities[cl.viewentity].origin[2]);   
   Con_Printf ("origin:%s\n",loc);
   sprintf (ang, "'%5.1f %5.1f %5.1f'", cl_entities[cl.viewentity].angles[0], cl_entities[cl.viewentity].angles[1], cl_entities[cl.viewentity].angles[2]);      
   Con_Printf ("angle :%s\n",ang);
}


yet compiled under 2008 it locks up the program.
Any ideas?
Back to top
View user's profile Send private message
metlslime



Joined: 05 Feb 2008
Posts: 177

PostPosted: Tue Dec 08, 2009 8:52 am    Post subject: Reply with quote

not sure this is the cause of your problem, but those buffers don't look big enough.
Back to top
View user's profile Send private message
r00k



Joined: 13 Nov 2004
Posts: 483

PostPosted: Tue Dec 08, 2009 9:03 am    Post subject: Reply with quote

Eeek! You're right! I must have modified the strings and not the variable defines! Embarassed I guess v6.0 is more lax about things like this!
BTW I removed all the asm files and so far seems to work Razz
Back to top
View user's profile Send private message
Baker



Joined: 14 Mar 2006
Posts: 1538

PostPosted: Tue Dec 08, 2009 11:54 am    Post subject: Reply with quote

r00k wrote:
Eeek! You're right! I must have modified the strings and not the variable defines! Embarassed I guess v6.0 is more lax about things like this!
BTW I removed all the asm files and so far seems to work Razz


snprintf! Not sprintf!

I globally replaced all of the sprintfs using POSIX to replace all of them.

http://forums.inside3d.com/viewtopic.php?t=1301

I noticed a lot of string buffer overflow protection in ezQuake added in 2008 and, of course, the DarkPlaces source code for years. There are a few other changes like strcat becomes strlcat.

POSIX search and replace can save hours of time doing things like the above in a split second, although writing a POSIX search and replace is a bit of work (but hey, 5 minutes to save 5 hours and guarantee no human error in 276 changes!)
Back to top
View user's profile Send private message
r00k



Joined: 13 Nov 2004
Posts: 483

PostPosted: Wed Dec 09, 2009 3:37 am    Post subject: Reply with quote

Idea: writing alias commands to the config.cfg using cvar cfg_savealias.
Now its pretty straight forward but is it practical? I would think that having aliases ready when you connect means the server wont spam you again with the alias binds, means faster connecting to play..
Back to top
View user's profile Send private message
Spike



Joined: 05 Nov 2004
Posts: 944
Location: UK

PostPosted: Wed Dec 09, 2009 3:46 am    Post subject: Reply with quote

r00k wrote:
Idea: writing alias commands to the config.cfg using cvar cfg_savealias.
Now its pretty straight forward but is it practical? I would think that having aliases ready when you connect means the server wont spam you again with the alias binds, means faster connecting to play..


Because the server won't know if you already have aliases set up.
Because you can set aliases in the mod's default.cfg file anyway, with no need to save them.
Because stuffcmd(player, "alias quit \"say omg I'm lame\"\ncfg_savealias\n") is evil.

Actually, most QW clients wipe the aliases stuffed by servers when they disconnect. It helps with gamedir changes.
_________________
What's a signature?
Back to top
View user's profile Send private message Visit poster's website
r00k



Joined: 13 Nov 2004
Posts: 483

PostPosted: Wed Dec 09, 2009 3:51 am    Post subject: Reply with quote

ya thats what i was forgettin Wink
Back to top
View user's profile Send private message
MeTcHsteekle



Joined: 15 May 2008
Posts: 397
Location: its a secret

PostPosted: Wed Dec 09, 2009 4:12 am    Post subject: Reply with quote

spike dont forget making w bind to "kill" command

MUWAHHAHAHAHAHAHAHAHAHA
_________________
bah
Back to top
View user's profile Send private message AIM Address
Display posts from previous:   
Post new topic   Reply to topic    Inside3d Forums Forum Index -> Engine Programming All times are GMT
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2004 phpBB Group