Quake3World.com Forums
     Programming Discussion
        Translocator?


Post new topicReply to topic
Login | Profile | | FAQ | Search | IRC




Print view Previous topic | Next topic 
Topic Starter Topic: Translocator?

Insane Quaker
Insane Quaker
Joined: 16 Sep 2010
Posts: 391
PostPosted: 09-10-2011 11:53 PM           Profile Send private message  E-mail  Edit post Reply with quote


I got excited when I found a tutorial for a translocator at QuakeStyle Q3 modding tutorials, but when I came up to the page, I just got "SanDan has asked me to remove this".

http://quakestyle.telefragged.com/quake3/tutorial20.htm

I wonder if this tutorial can still be found within the bowels of the internet. Tried the WayBackMachine, but the earliest date in 2000 still came up with the same message. Thanks in advance.

P.S. I`m also trying to find a tutorial on implementing weapons, as I am not sure how many references a new weapon needs, i.e. what to add to the code.



_________________
EmeraldProductions
http://emeraldproductions.weebly.com/index.html


Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44132
PostPosted: 09-11-2011 01:03 AM           Profile   Send private message  E-mail  Edit post Reply with quote


Shouldn't be hard to do I think. Simplest way to start would be to modify the grenade launcher so that when a grenade explodes, it doesn't explode but instead moves the player over to the location of the grenade. Need to tweak the origin a bit so that the player doesn't end up in solids though.




Top
                 

Insane Quaker
Insane Quaker
Joined: 05 Mar 2010
Posts: 384
PostPosted: 09-11-2011 12:43 PM           Profile Send private message  E-mail  Edit post Reply with quote


Imo q3hut ( http://www.quake3hut.co.uk/q3coding/ ) is the best place to go for coding examples. Here's a translocator tutorial:

http://www.quake3hut.co.uk/q3coding/Transporter.htm

The tutorial does like Eraser said and uses the GL firing function. I'd mix in some of the portal holdable code for the tele destination, not that I've tried to do it though :)




Top
                 

Insane Quaker
Insane Quaker
Joined: 16 Sep 2010
Posts: 391
PostPosted: 09-11-2011 01:09 PM           Profile Send private message  E-mail  Edit post Reply with quote


Does it matter which version I use? I am building off the 1.32 source. (Sorry I forgot to mention earlier)

Also, how do I implement it as an entirely separate weapon, as opposed to just modifying the GL? (I know you modify g_weapons.c and define the entity, etc. but there`s probably some files I am missing.)

Sorry if it all sounds stupid as I am still relatively new to this. (Studying some C atm as well as learning about the special functions of the Q3 code)



_________________
EmeraldProductions
http://emeraldproductions.weebly.com/index.html


Last edited by EmeraldTiger on 09-11-2011 01:32 PM, edited 1 time in total.

Top
                 

Insane Quaker
Insane Quaker
Joined: 05 Mar 2010
Posts: 384
PostPosted: 09-11-2011 01:32 PM           Profile Send private message  E-mail  Edit post Reply with quote


It should all be pretty similar in different versions. I use ioquake3 and I haven't come across any problems from using code based on older Q3 code. These tutorials are pretty precise on where to put the code anyway so you can see if there are any discrepancies.

Just use the find in files feature for grenade (without case sensitivity) and work through all the entries. It's pretty straight-forward to just clone the GL code and apply that tutorial to it.




Top
                 

Insane Quaker
Insane Quaker
Joined: 16 Sep 2010
Posts: 391
PostPosted: 09-11-2011 06:34 PM           Profile Send private message  E-mail  Edit post Reply with quote


Okay, I looked up the references for the GL and just made copies of those references for the Translocator. Two of the builds succeeded, but 1 failed, which I am guessing is the build in which I added the new weapon information. The weapon has been defined though as WP_TRANSLOCATOR, and in VS08 when I click on the term and go to definition, it does take me to it, so the definitions work, just something along the lines that`s causing the errors.

I noticed a few errors that my syntax is wrong, although I have absolutely no idea why it does that, because all I did was copy and paste code, which obviously had correct syntax, so why is it being a hypocrite and saying mine has incorrect syntax? Other errors I am not sure about.

If someone could point out why my new weapon keeps spitting errors at me, I`d greatly appreciate it.

Thanks. :)

Code:
1>------ Build started: Project: game, Configuration: Release Win32 ------
2>------ Build started: Project: cgame, Configuration: Release Win32 ------
1>Compiling...
2>Compiling...
2>cg_weapons.c
1>g_weapon.c
1>g_utils.c
2>.\cg_weapons.c(638) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>.\cg_weapons.c(640) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>.\cg_weapons.c(643) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>.\cg_weapons.c(645) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>.\cg_weapons.c(648) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>.\cg_weapons.c(650) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>cg_view.c
1>.\g_utils.c(24) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_utils.c(30) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_utils.c(31) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>g_trigger.c
2>cg_syscalls.c
1>g_team.c
2>cg_snapshot.c
1>.\g_team.c(90) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
1>.\g_team.c(1094) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>g_target.c
2>cg_servercmds.c
2>.\cg_servercmds.c(218) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
2>.\cg_servercmds.c(223) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
2>.\cg_servercmds.c(231) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>g_syscalls.c
2>cg_scoreboard.c
1>g_svcmds.c
2>cg_predict.c
1>g_spawn.c
2>cg_playerstate.c
1>.\g_spawn.c(48) : warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(324) : see declaration of 'sscanf'
1>.\g_spawn.c(351) : warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(324) : see declaration of 'sscanf'
1>g_session.c
2>cg_players.c
1>.\g_session.c(69) : warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(324) : see declaration of 'sscanf'
1>g_mover.c
2>cg_marks.c
1>g_missile.c
2>cg_main.c
1>g_misc.c
1>g_mem.c
2>.\cg_main.c(404) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
2>.\cg_main.c(415) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
2>.\cg_main.c(429) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
2>.\cg_main.c(440) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
2>.\cg_main.c(691) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>.\cg_main.c(1004) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>cg_localents.c
1>g_main.c
2>cg_info.c
1>.\g_main.c(226) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
1>.\g_main.c(237) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
1>.\g_main.c(527) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
1>.\g_main.c(538) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
1>.\g_main.c(1072) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
1>g_items.c
2>cg_event.c
1>g_combat.c
2>.\cg_event.c(95) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>.\cg_event.c(218) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>.\cg_event.c(221) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
2>cg_ents.c
1>g_cmds.c
2>cg_effects.c
1>.\g_cmds.c(61) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_cmds.c(1383) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>g_client.c
2>cg_drawtools.c
1>.\g_client.c(700) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_client.c(837) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_client.c(838) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_client.c(840) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_client.c(841) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>g_bot.c
2>cg_draw.c
1>.\g_bot.c(86) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(93) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(157) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(158) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(272) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>.\g_bot.c(303) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(755) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(757) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(759) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(761) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(763) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(765) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(767) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(769) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(895) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\g_bot.c(896) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>g_arenas.c
2>cg_consolecmds.c
1>.\g_arenas.c(113) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>Generating Code...
2>bg_slidemove.c
2>Generating Code...
1>Compiling...
1>g_active.c
1>bg_slidemove.c
1>bg_pmove.c
1>bg_misc.c
1>ai_vcmd.c
1>ai_team.c
1>.\ai_team.c(171) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_team.c(1942) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>ai_main.c
1>.\ai_main.c(80) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
1>.\ai_main.c(265) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(268) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(269) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(415) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(418) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(1124) : warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(324) : see declaration of 'sscanf'
1>.\ai_main.c(1555) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(1570) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(1598) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>ai_dmq3.c
1>.\ai_dmq3.c(1377) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>.\ai_dmq3.c(1396) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>.\ai_dmq3.c(1471) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_dmq3.c(1505) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>.\ai_dmq3.c(1715) : error C2065: 'INVENTORY_TRANSLOCATOR' : undeclared identifier
1>.\ai_dmq3.c(1730) : error C2065: 'INVENTORY_DISCS' : undeclared identifier
1>.\ai_dmq3.c(3323) : error C2065: 'CHARACTERISTIC_AIM_ACCURACY_TRANSLOCATOR' : undeclared identifier
1>.\ai_dmq3.c(3324) : error C2065: 'CHARACTERISTIC_AIM_SKILL_TRANSLOCATOR' : undeclared identifier
1>.\ai_dmq3.c(3473) : error C2059: syntax error : ')'
1>.\ai_dmq3.c(3473) : error C2143: syntax error : missing ';' before '{'
1>.\ai_dmq3.c(3473) : warning C4553: '==' : operator has no effect; did you intend '='?
1>.\ai_dmq3.c(3542) : error C2143: syntax error : missing ';' before 'type'
1>.\ai_dmq3.c(3544) : error C2143: syntax error : missing ';' before 'type'
1>.\ai_dmq3.c(3545) : error C2275: 'bsp_trace_t' : illegal use of this type as an expression
1>        f:\quake iii source code\code\game\botlib.h(121) : see declaration of 'bsp_trace_t'
1>.\ai_dmq3.c(3545) : error C2146: syntax error : missing ';' before identifier 'bsptrace'
1>.\ai_dmq3.c(3545) : error C2065: 'bsptrace' : undeclared identifier
1>.\ai_dmq3.c(3547) : error C2275: 'vec3_t' : illegal use of this type as an expression
1>        f:\quake iii source code\code\game\q_shared.h(462) : see declaration of 'vec3_t'
1>.\ai_dmq3.c(3547) : error C2146: syntax error : missing ';' before identifier 'forward'
1>.\ai_dmq3.c(3547) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3547) : error C2065: 'right' : undeclared identifier
1>.\ai_dmq3.c(3547) : error C2065: 'angles' : undeclared identifier
1>.\ai_dmq3.c(3548) : error C2275: 'weaponinfo_t' : illegal use of this type as an expression
1>        f:\quake iii source code\code\game\be_ai_weap.h(67) : see declaration of 'weaponinfo_t'
1>.\ai_dmq3.c(3548) : error C2146: syntax error : missing ';' before identifier 'wi'
1>.\ai_dmq3.c(3549) : error C2275: 'bsp_trace_t' : illegal use of this type as an expression
1>        f:\quake iii source code\code\game\botlib.h(121) : see declaration of 'bsp_trace_t'
1>.\ai_dmq3.c(3549) : error C2146: syntax error : missing ';' before identifier 'trace'
1>.\ai_dmq3.c(3550) : error C2275: 'aas_entityinfo_t' : illegal use of this type as an expression
1>        f:\quake iii source code\code\game\be_aas.h(128) : see declaration of 'aas_entityinfo_t'
1>.\ai_dmq3.c(3550) : error C2146: syntax error : missing ';' before identifier 'entinfo'
1>.\ai_dmq3.c(3551) : error C2275: 'vec3_t' : illegal use of this type as an expression
1>        f:\quake iii source code\code\game\q_shared.h(462) : see declaration of 'vec3_t'
1>.\ai_dmq3.c(3551) : error C2146: syntax error : missing ';' before identifier 'mins'
1>.\ai_dmq3.c(3551) : error C2059: syntax error : '{'
1>.\ai_dmq3.c(3553) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3555) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3557) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3578) : error C2065: 'firethrottle' : undeclared identifier
1>.\ai_dmq3.c(3580) : error C2065: 'firethrottle' : undeclared identifier
1>.\ai_dmq3.c(3581) : error C2065: 'firethrottle' : undeclared identifier
1>.\ai_dmq3.c(3585) : error C2065: 'firethrottle' : undeclared identifier
1>.\ai_dmq3.c(3599) : error C2065: 'fov' : undeclared identifier
1>.\ai_dmq3.c(3601) : error C2065: 'fov' : undeclared identifier
1>.\ai_dmq3.c(3603) : error C2065: 'angles' : undeclared identifier
1>.\ai_dmq3.c(3603) : warning C4047: 'function' : 'vec_t *' differs in levels of indirection from 'int'
1>.\ai_dmq3.c(3603) : warning C4024: 'vectoangles' : different types for formal and actual parameter 2
1>.\ai_dmq3.c(3604) : error C2065: 'fov' : undeclared identifier
1>.\ai_dmq3.c(3604) : error C2065: 'angles' : undeclared identifier
1>.\ai_dmq3.c(3604) : warning C4047: 'function' : 'vec_t *' differs in levels of indirection from 'int'
1>.\ai_dmq3.c(3604) : warning C4024: 'InFieldOfVision' : different types for formal and actual parameter 3
1>.\ai_dmq3.c(3606) : error C2065: 'bsptrace' : undeclared identifier
1>.\ai_dmq3.c(3606) : warning C4133: 'function' : incompatible types - from 'int *' to 'bsp_trace_t *'
1>.\ai_dmq3.c(3607) : error C2065: 'bsptrace' : undeclared identifier
1>.\ai_dmq3.c(3607) : error C2224: left of '.fraction' must have struct/union type
1>.\ai_dmq3.c(3607) : error C2065: 'bsptrace' : undeclared identifier
1>.\ai_dmq3.c(3607) : error C2224: left of '.ent' must have struct/union type
1>.\ai_dmq3.c(3607) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3615) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3615) : warning C4047: 'function' : 'vec_t *' differs in levels of indirection from 'int'
1>.\ai_dmq3.c(3615) : warning C4024: 'AngleVectors' : different types for formal and actual parameter 2
1>.\ai_dmq3.c(3615) : error C2065: 'right' : undeclared identifier
1>.\ai_dmq3.c(3615) : warning C4047: 'function' : 'vec_t *' differs in levels of indirection from 'int'
1>.\ai_dmq3.c(3615) : warning C4024: 'AngleVectors' : different types for formal and actual parameter 3
1>.\ai_dmq3.c(3616) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3616) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3616) : error C2065: 'right' : undeclared identifier
1>.\ai_dmq3.c(3616) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3617) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3617) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3617) : error C2065: 'right' : undeclared identifier
1>.\ai_dmq3.c(3617) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3618) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3618) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3618) : error C2065: 'right' : undeclared identifier
1>.\ai_dmq3.c(3618) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3620) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3620) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3620) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3620) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3620) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3620) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3622) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3622) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3622) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3622) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3622) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3622) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3626) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3633) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3633) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3637) : error C2065: 'points' : undeclared identifier
1>.\ai_dmq3.c(3638) : error C2065: 'points' : undeclared identifier
1>ai_dmnet.c
2>Compiling...
2>bg_pmove.c
1>.\ai_dmnet.c(680) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_dmnet.c(682) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_dmnet.c(683) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>ai_cmd.c
2>bg_misc.c
1>.\ai_cmd.c(1098) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>.\ai_cmd.c(1127) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_cmd.c(1169) : warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(324) : see declaration of 'sscanf'
1>.\ai_cmd.c(1290) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>ai_chat.c
2>Generating Code...
1>.\ai_chat.c(248) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>.\ai_chat.c(571) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_chat.c(740) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_chat.c(901) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_chat.c(1173) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>Generating Code...
2>Linking...
1>Build log was saved at "file://f:\Quake III Source Code\code\game\Release\BuildLog.htm"
1>game - 74 error(s), 75 warning(s)
2>   Creating library .\Release/cgamex86.lib and object .\Release/cgamex86.exp
2>Embedding manifest...
2>Build log was saved at "file://f:\Quake III Source Code\code\cgame\Release\BuildLog.htm"
2>cgame - 0 error(s), 18 warning(s)
3>------ Build started: Project: q3_ui, Configuration: Release Win32 ------
3>Compiling...
3>ui_video.c
3>ui_teamorders.c
3>ui_team.c
3>ui_syscalls.c
3>ui_startserver.c
3>.\ui_startserver.c(186) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_startserver.c(199) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_startserver.c(1084) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_startserver.c(1142) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>ui_spskill.c
3>ui_spreset.c
3>ui_sppostgame.c
3>ui_splevel.c
3>.\ui_splevel.c(214) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_splevel.c(216) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>ui_specifyserver.c
3>.\ui_specifyserver.c(61) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>ui_sparena.c
3>ui_sound.c
3>ui_setup.c
3>ui_servers2.c
3>.\ui_servers2.c(398) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_servers2.c(414) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_servers2.c(417) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_servers2.c(742) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_servers2.c(931) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_servers2.c(936) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_servers2.c(1007) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_servers2.c(1011) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_servers2.c(1015) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_servers2.c(1019) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_servers2.c(1025) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_servers2.c(1029) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_servers2.c(1129) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>ui_serverinfo.c
3>ui_removebots.c
3>ui_qmenu.c
3>.\ui_qmenu.c(104) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_qmenu.c(108) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>ui_preferences.c
3>ui_playersettings.c
3>.\ui_playersettings.c(221) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>ui_players.c
3>.\ui_players.c(71) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_players.c(73) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_players.c(77) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_players.c(79) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>Generating Code...
3>Compiling...
3>ui_playermodel.c
3>.\ui_playermodel.c(320) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_playermodel.c(461) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>ui_options.c
3>ui_network.c
3>ui_mods.c
3>ui_mfield.c
3>ui_menu.c
3>ui_main.c
3>ui_ingame.c
3>ui_gameinfo.c
3>.\ui_gameinfo.c(101) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_gameinfo.c(108) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_gameinfo.c(175) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_gameinfo.c(176) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_gameinfo.c(362) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_gameinfo.c(363) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>ui_display.c
3>ui_demo2.c
3>.\ui_demo2.c(212) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>ui_credits.c
3>ui_controls2.c
3>.\ui_controls2.c(651) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_controls2.c(663) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_controls2.c(664) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>.\ui_controls2.c(725) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>ui_connect.c
3>ui_confirm.c
3>ui_cinematics.c
3>ui_cdkey.c
3>ui_atoms.c
3>.\ui_atoms.c(21) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
3>.\ui_atoms.c(32) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
3>        f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
3>ui_addbots.c
3>bg_misc.c
3>Generating Code...
3>Linking...
3>   Creating library .\Release/uix86.lib and object .\Release/uix86.exp
3>Embedding manifest...
3>Build log was saved at "file://f:\Quake III Source Code\code\q3_ui\Release\BuildLog.htm"
3>q3_ui - 0 error(s), 42 warning(s)
========== Build: 2 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



_________________
EmeraldProductions
http://emeraldproductions.weebly.com/index.html


Top
                 

Immortal
Immortal
Joined: 12 Mar 2005
Posts: 2205
PostPosted: 09-11-2011 07:29 PM           Profile   Send private message  E-mail  Edit post Reply with quote


When working on fixing errors in C always start with the first one.

It doesn't seem like the ai code knows about your new weapon code.

Code:
1>.\ai_dmq3.c(1715) : error C2065: 'INVENTORY_TRANSLOCATOR' : undeclared identifier
1>.\ai_dmq3.c(1730) : error C2065: 'INVENTORY_DISCS' : undeclared identifier
1>.\ai_dmq3.c(3323) : error C2065: 'CHARACTERISTIC_AIM_ACCURACY_TRANSLOCATOR' : undeclared identifier
1>.\ai_dmq3.c(3324) : error C2065: 'CHARACTERISTIC_AIM_SKILL_TRANSLOCATOR' : undeclared identifier




Top
                 

Insane Quaker
Insane Quaker
Joined: 16 Sep 2010
Posts: 391
PostPosted: 09-11-2011 08:30 PM           Profile Send private message  E-mail  Edit post Reply with quote


Thank you for letting me know Silicone. I added the definitions for the AI now and they work. (i.e you will be taken to them if you click on the translocator identifiers) However, when I went to build again, I got another batch of errors, which seems completely unrelated to what I am doing. It spits out syntax errors, (once again, this is copy-pasted code which already had correct syntax) and claims that many existing, unchanged functions / identifiers are undefined. (For example, it says "forward" is undeclared... I didn`t even touch it)

It seems to me that my VS08 is spitting false positives at me because I honestly do not see why these errors occur, as they involve things I didn`t fool around with. Will I have to manually fix each error one-by-one (I dread that), or is there a way to make VS08 not give these errors?

Thanks for any help in advance.

Quote:
1>------ Build started: Project: game, Configuration: Release Win32 ------
1>Compiling...
1>ai_vcmd.c
1>ai_main.c
1>.\ai_main.c(80) : warning C4996: 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : see declaration of 'vsprintf'
1>.\ai_main.c(265) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(268) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(269) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(415) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(418) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(1124) : warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(324) : see declaration of 'sscanf'
1>.\ai_main.c(1555) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(1570) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_main.c(1598) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>ai_dmq3.c
1>.\ai_dmq3.c(1377) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>.\ai_dmq3.c(1396) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>.\ai_dmq3.c(1471) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_dmq3.c(1505) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>.\ai_dmq3.c(3473) : error C2059: syntax error : ')'
1>.\ai_dmq3.c(3473) : error C2143: syntax error : missing ';' before '{'
1>.\ai_dmq3.c(3473) : warning C4553: '==' : operator has no effect; did you intend '='?
1>.\ai_dmq3.c(3542) : error C2143: syntax error : missing ';' before 'type'
1>.\ai_dmq3.c(3544) : error C2143: syntax error : missing ';' before 'type'
1>.\ai_dmq3.c(3545) : error C2275: 'bsp_trace_t' : illegal use of this type as an expression
1> f:\quake iii source code\code\game\botlib.h(121) : see declaration of 'bsp_trace_t'
1>.\ai_dmq3.c(3545) : error C2146: syntax error : missing ';' before identifier 'bsptrace'
1>.\ai_dmq3.c(3545) : error C2065: 'bsptrace' : undeclared identifier
1>.\ai_dmq3.c(3547) : error C2275: 'vec3_t' : illegal use of this type as an expression
1> f:\quake iii source code\code\game\q_shared.h(462) : see declaration of 'vec3_t'
1>.\ai_dmq3.c(3547) : error C2146: syntax error : missing ';' before identifier 'forward'
1>.\ai_dmq3.c(3547) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3547) : error C2065: 'right' : undeclared identifier
1>.\ai_dmq3.c(3547) : error C2065: 'angles' : undeclared identifier
1>.\ai_dmq3.c(3548) : error C2275: 'weaponinfo_t' : illegal use of this type as an expression
1> f:\quake iii source code\code\game\be_ai_weap.h(67) : see declaration of 'weaponinfo_t'
1>.\ai_dmq3.c(3548) : error C2146: syntax error : missing ';' before identifier 'wi'
1>.\ai_dmq3.c(3549) : error C2275: 'bsp_trace_t' : illegal use of this type as an expression
1> f:\quake iii source code\code\game\botlib.h(121) : see declaration of 'bsp_trace_t'
1>.\ai_dmq3.c(3549) : error C2146: syntax error : missing ';' before identifier 'trace'
1>.\ai_dmq3.c(3550) : error C2275: 'aas_entityinfo_t' : illegal use of this type as an expression
1> f:\quake iii source code\code\game\be_aas.h(128) : see declaration of 'aas_entityinfo_t'
1>.\ai_dmq3.c(3550) : error C2146: syntax error : missing ';' before identifier 'entinfo'
1>.\ai_dmq3.c(3551) : error C2275: 'vec3_t' : illegal use of this type as an expression
1> f:\quake iii source code\code\game\q_shared.h(462) : see declaration of 'vec3_t'
1>.\ai_dmq3.c(3551) : error C2146: syntax error : missing ';' before identifier 'mins'
1>.\ai_dmq3.c(3551) : error C2059: syntax error : '{'
1>.\ai_dmq3.c(3553) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3555) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3557) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3578) : error C2065: 'firethrottle' : undeclared identifier
1>.\ai_dmq3.c(3580) : error C2065: 'firethrottle' : undeclared identifier
1>.\ai_dmq3.c(3581) : error C2065: 'firethrottle' : undeclared identifier
1>.\ai_dmq3.c(3585) : error C2065: 'firethrottle' : undeclared identifier
1>.\ai_dmq3.c(3599) : error C2065: 'fov' : undeclared identifier
1>.\ai_dmq3.c(3601) : error C2065: 'fov' : undeclared identifier
1>.\ai_dmq3.c(3603) : error C2065: 'angles' : undeclared identifier
1>.\ai_dmq3.c(3603) : warning C4047: 'function' : 'vec_t *' differs in levels of indirection from 'int'
1>.\ai_dmq3.c(3603) : warning C4024: 'vectoangles' : different types for formal and actual parameter 2
1>.\ai_dmq3.c(3604) : error C2065: 'fov' : undeclared identifier
1>.\ai_dmq3.c(3604) : error C2065: 'angles' : undeclared identifier
1>.\ai_dmq3.c(3604) : warning C4047: 'function' : 'vec_t *' differs in levels of indirection from 'int'
1>.\ai_dmq3.c(3604) : warning C4024: 'InFieldOfVision' : different types for formal and actual parameter 3
1>.\ai_dmq3.c(3606) : error C2065: 'bsptrace' : undeclared identifier
1>.\ai_dmq3.c(3606) : warning C4133: 'function' : incompatible types - from 'int *' to 'bsp_trace_t *'
1>.\ai_dmq3.c(3607) : error C2065: 'bsptrace' : undeclared identifier
1>.\ai_dmq3.c(3607) : error C2224: left of '.fraction' must have struct/union type
1>.\ai_dmq3.c(3607) : error C2065: 'bsptrace' : undeclared identifier
1>.\ai_dmq3.c(3607) : error C2224: left of '.ent' must have struct/union type
1>.\ai_dmq3.c(3607) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3615) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3615) : warning C4047: 'function' : 'vec_t *' differs in levels of indirection from 'int'
1>.\ai_dmq3.c(3615) : warning C4024: 'AngleVectors' : different types for formal and actual parameter 2
1>.\ai_dmq3.c(3615) : error C2065: 'right' : undeclared identifier
1>.\ai_dmq3.c(3615) : warning C4047: 'function' : 'vec_t *' differs in levels of indirection from 'int'
1>.\ai_dmq3.c(3615) : warning C4024: 'AngleVectors' : different types for formal and actual parameter 3
1>.\ai_dmq3.c(3616) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3616) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3616) : error C2065: 'right' : undeclared identifier
1>.\ai_dmq3.c(3616) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3617) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3617) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3617) : error C2065: 'right' : undeclared identifier
1>.\ai_dmq3.c(3617) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3618) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3618) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3618) : error C2065: 'right' : undeclared identifier
1>.\ai_dmq3.c(3618) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3620) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3620) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3620) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3620) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3620) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3620) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3622) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3622) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3622) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3622) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3622) : error C2065: 'forward' : undeclared identifier
1>.\ai_dmq3.c(3622) : error C2109: subscript requires array or pointer type
1>.\ai_dmq3.c(3626) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3633) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3633) : error C2065: 'attackentity' : undeclared identifier
1>.\ai_dmq3.c(3637) : error C2065: 'points' : undeclared identifier
1>.\ai_dmq3.c(3638) : error C2065: 'points' : undeclared identifier
1>ai_dmnet.c
1>.\ai_dmnet.c(680) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_dmnet.c(682) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_dmnet.c(683) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>ai_cmd.c
1>.\ai_cmd.c(1098) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>.\ai_cmd.c(1127) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_cmd.c(1169) : warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\stdio.h(324) : see declaration of 'sscanf'
1>.\ai_cmd.c(1290) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>ai_chat.c
1>.\ai_chat.c(248) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> f:\Quake 2 Folder\Microsoft Visual Studio 9.0\VC\include\string.h(157) : see declaration of 'strncpy'
1>.\ai_chat.c(571) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_chat.c(740) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_chat.c(901) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>.\ai_chat.c(1173) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>Generating Code...
1>Build log was saved at "file://f:\Quake III Source Code\code\game\Release\BuildLog.htm"
1>game - 70 error(s), 36 warning(s)
========== Build: 0 succeeded, 1 failed, 2 up-to-date, 0 skipped ==========



_________________
EmeraldProductions
http://emeraldproductions.weebly.com/index.html


Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44132
PostPosted: 09-11-2011 11:20 PM           Profile   Send private message  E-mail  Edit post Reply with quote


It complains about a lot of missing ; characters. Might want to look into those first.

The thing with this compiler is that often if you have one thing wrong, it suddenly starts complaining about a whole lot of other things being undefined because you're whole code structure is basically messed up by something like missing parenthesis or something and the syntax checker can't make head or tails out of it anymore.




Top
                 

Insane Quaker
Insane Quaker
Joined: 16 Sep 2010
Posts: 391
PostPosted: 09-11-2011 11:38 PM           Profile Send private message  E-mail  Edit post Reply with quote


Okay, I finally got it working again. I found out my error was in this portion of code:

Code:
(wi.number == WP_BFG ||
            wi.number == WP_ROCKET_LAUNCHER ||
            wi.number == WP_GRENADE_LAUNCHER ||
            wi.number == WP_TRANSLOCATOR) {


Apparently I copied the wi.number == WP_GRENADE_LAUNCHER || and used it for the translocator. What I did not realize was that since it was the last item in the series, it used different characters at the end. So basically, the body of the if statement would essentially end itself twice.

Lesson learned folks - don`t ever copy the last statement in a function. Bad things will happen. Copy something in between the beginning and the end. Oh, and listen to your parents and eat your veggies.

Thank you for your help, I am learning so much and I`m excited about this experience.



_________________
EmeraldProductions
http://emeraldproductions.weebly.com/index.html


Top
                 

Insane Quaker
Insane Quaker
Joined: 16 Sep 2010
Posts: 391
PostPosted: 09-12-2011 12:04 AM           Profile Send private message  E-mail  Edit post Reply with quote


Wait, hold on. I just made a big mistake. It has something to do with the inventory, but I`m not sure what I did to cause it.

When I load up a game of my mod with q3dm1 (like in Eraser`s tutorial), thing seems normal at first. Then I find out that I`ve created a monster. Seeing lightning gun ammo in a map that never had it before, then a box of GL ammo as well. All non-ammo items were still in their proper positions.

Now I tried testing out to see if the translocator worked. Well, it certainly did something when I typed /give translocator in the console. But it didn`t give me a super happy fun toy like I wanted so badly, but all I got was this crappy box of shells that actually did not give shells (just showed up on HUD) and a grenade launcher. Then I /give discs but it gave me a medkit icon without actually giving me a medkit. Then I decided to randomly give myself a Quad Damage, and find out that I completely screwed up the inventory. Although I behave like I was given a Quad, it says I was given a Haste power-up, with the icon, text, announcer sound and all.

Curious if anyone had this amusing and exquisite story to share as well.

Code in ai_dmq3.c:
Code:
   //weapons
   bs->inventory[INVENTORY_GAUNTLET] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_GAUNTLET)) != 0;
   bs->inventory[INVENTORY_SHOTGUN] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_SHOTGUN)) != 0;
   bs->inventory[INVENTORY_MACHINEGUN] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_MACHINEGUN)) != 0;
   bs->inventory[INVENTORY_GRENADELAUNCHER] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_GRENADE_LAUNCHER)) != 0;
   bs->inventory[INVENTORY_ROCKETLAUNCHER] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_ROCKET_LAUNCHER)) != 0;
   bs->inventory[INVENTORY_LIGHTNING] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_LIGHTNING)) != 0;
   bs->inventory[INVENTORY_RAILGUN] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_RAILGUN)) != 0;
   bs->inventory[INVENTORY_PLASMAGUN] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_PLASMAGUN)) != 0;
   bs->inventory[INVENTORY_BFG10K] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_BFG)) != 0;
   bs->inventory[INVENTORY_GRAPPLINGHOOK] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_GRAPPLING_HOOK)) != 0;
   bs->inventory[INVENTORY_TRANSLOCATOR] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_TRANSLOCATOR)) != 0;


And the inventory defs:
Code:
//weapons
#define INVENTORY_GAUNTLET         4
#define INVENTORY_SHOTGUN         5
#define INVENTORY_MACHINEGUN      6
#define INVENTORY_GRENADELAUNCHER   7
#define INVENTORY_ROCKETLAUNCHER   8
#define INVENTORY_LIGHTNING         9
#define INVENTORY_RAILGUN         10
#define INVENTORY_PLASMAGUN         11
#define INVENTORY_BFG10K         13
#define INVENTORY_GRAPPLINGHOOK      14
#define INVENTORY_NAILGUN         15
#define INVENTORY_PROXLAUNCHER      16
#define INVENTORY_CHAINGUN         17
#define INVENTORY_TRANSLOCATOR      50
//ammo
#define INVENTORY_SHELLS         18
#define INVENTORY_BULLETS         19
#define INVENTORY_GRENADES         20
#define INVENTORY_CELLS            21
#define INVENTORY_LIGHTNINGAMMO      22
#define INVENTORY_ROCKETS         23
#define INVENTORY_SLUGS            24
#define INVENTORY_BFGAMMO         25
#define INVENTORY_NAILS            26
#define INVENTORY_MINES            27
#define INVENTORY_BELT            28
#define INVENTORY_DISCS            51


I put 50 and 51 for Translocator and Discs because the last biggest number was 49 for INVENTORY_BLUECUBE. Not sure if this has anything to do with it tho.



_________________
EmeraldProductions
http://emeraldproductions.weebly.com/index.html


Top
                 

Insane Quaker
Insane Quaker
Joined: 05 Mar 2010
Posts: 384
PostPosted: 09-12-2011 12:41 AM           Profile Send private message  E-mail  Edit post Reply with quote


You shouldn't define ammo for it, so in that sense you should be using the grapple as a reference instead.

Come to think about it, it might be more complicated to code then I thought as you need a secondary fire to use it properly, which is easy to implement but creates the need for an extra bind that you won't be using for anything else.

I'll give it a try coding it tonight since I've wanted a trans for my own mod too, then if I get it right I'll post a tutorial.




Top
                 

Insane Quaker
Insane Quaker
Joined: 05 Mar 2010
Posts: 384
PostPosted: 09-12-2011 11:15 AM           Profile Send private message  E-mail  Edit post Reply with quote


Ok I got it added as another weapon that behaves just like the GL but without ammo. But then I decided to go and add (quickly, lol!) the WolfET flame thrower to my mod, and it's turning out to be so goddamn complicated but I think I almost have it right.

After I sort that out I'll try get the translocator working. I think I'll use the Use Item button for a secondary fire while it is the current weapon.

Edit: back to your ammo problem, it won't have anything to do with those 2 files because those are just for bots, so you'd just have broken bots.




Top
                 

Insane Quaker
Insane Quaker
Joined: 16 Sep 2010
Posts: 391
PostPosted: 09-12-2011 09:05 PM           Profile Send private message  E-mail  Edit post Reply with quote


Well I found out that the issue of having items be replaced with certain images could be fixed by placing the translocator at the very end of the definitions list in bg_misc.c. Unfortunately, there is one problem I still need to nip in the bud - when I attempt to give myself a translocator, it boots me to the menu with the message "Couldn`t find Weapon 11". Strange thing is, I defined the integer for WEAPONINDEX_TRANSLOCATOR already in inv.h. Does anyone know why this happens and if I am missing something? Thanks in advance.

Quote:
//
#define WEAPONINDEX_GAUNTLET 1
#define WEAPONINDEX_MACHINEGUN 2
#define WEAPONINDEX_SHOTGUN 3
#define WEAPONINDEX_GRENADE_LAUNCHER 4
#define WEAPONINDEX_ROCKET_LAUNCHER 5
#define WEAPONINDEX_LIGHTNING 6
#define WEAPONINDEX_RAILGUN 7
#define WEAPONINDEX_PLASMAGUN 8
#define WEAPONINDEX_BFG 9
#define WEAPONINDEX_GRAPPLING_HOOK 10
#define WEAPONINDEX_NAILGUN 11
#define WEAPONINDEX_PROXLAUNCHER 12
#define WEAPONINDEX_CHAINGUN 13
#define WEAPONINDEX_TRANSLOCATOR 11 // not compiling with TA code, so ignore the fact that it shares the same value as nailgun



_________________
EmeraldProductions
http://emeraldproductions.weebly.com/index.html


Top
                 

Grunt
Grunt
Joined: 25 Nov 2009
Posts: 65
PostPosted: 09-12-2011 09:25 PM           Profile Send private message  E-mail  Edit post Reply with quote


Maybe try replacing a Q3 weapon instead of a TA weapon. My logic is that if you're not compiling TA stuff, then maybe your weapon is missing something that a q3 weapon would not be missing.




Top
                 

Insane Quaker
Insane Quaker
Joined: 05 Mar 2010
Posts: 384
PostPosted: 09-13-2011 01:46 PM           Profile Send private message  E-mail  Edit post Reply with quote


Ok I've sorted out my flamethrower's issues (BTW it's from RtCW, not WolfET ;) ). With some of the code from the tutorial I linked to above, here's how to add a functional translocator to normal Q3 (bear in mind that I'm trying to adapt this from my mod which is quite different in places, and this still needs modifying to work a little better). Add the stuff in green:

Adding a Translocator the Way it's Meant to Be Done

bg_public.h:
Add an entity flag definition under the persEnum_t struct for the missile bounce:
Quote:
} persEnum_t;

// entityState_t->eFlags
#define EF_DEAD 0x00000001 // don't draw a foe marker over players with EF_DEAD
#ifdef MISSIONPACK
#define EF_TICKING 0x00000002 // used to make players play the prox mine ticking sound
#endif
#define EF_TELEPORT_BIT 0x00000004 // toggled every time the origin abruptly changes
#define EF_AWARD_EXCELLENT 0x00000008 // draw an excellent sprite
#define EF_PLAYER_EVENT 0x00000010
#define EF_BOUNCE 0x00000010 // for missiles
#define EF_BOUNCE_HALF 0x00000020 // for missiles
#define EF_AWARD_GAUNTLET 0x00000040 // draw a gauntlet sprite
#define EF_NODRAW 0x00000080 // may have an event, but no model (unspawned items)
#define EF_FIRING 0x00000100 // for lightning gun
#define EF_KAMIKAZE 0x00000200
#define EF_MOVER_STOP 0x00000400 // will push otherwise
#define EF_AWARD_CAP 0x00000800 // draw the capture sprite
#define EF_TALK 0x00001000 // draw a talk balloon
#define EF_CONNECTION 0x00002000 // draw a connection trouble sprite
#define EF_VOTED 0x00004000 // already cast a vote
#define EF_AWARD_IMPRESSIVE 0x00008000 // draw an impressive sprite
#define EF_AWARD_DEFEND 0x00010000 // draw a defend sprite
#define EF_AWARD_ASSIST 0x00020000 // draw a assist sprite
#define EF_AWARD_DENIED 0x00040000 // denied
#define EF_TEAMVOTED 0x00080000 // already cast a team vote
#define EF_BOUNCE_TRANS 0x00100000

// NOTE: may not have more than 16
typedef enum {


Search for the weapon_t struct. Add WP_TRANSLOCATOR, before WP_NUM_WEAPONS:
Quote:
typedef enum {
WP_NONE,

WP_GAUNTLET,
WP_MACHINEGUN,
WP_SHOTGUN,
WP_GRENADE_LAUNCHER,
WP_ROCKET_LAUNCHER,
WP_LIGHTNING,
WP_RAILGUN,
WP_PLASMAGUN,
WP_BFG,
WP_GRAPPLING_HOOK,
#ifdef MISSIONPACK
WP_NAILGUN,
WP_PROX_LAUNCHER,
WP_CHAINGUN,
#endif
WP_TRANSLOCATOR,

WP_NUM_WEAPONS
} weapon_t;


bg_misc.c:
Create an entity definition. Preferably right at the end of the item list, right above the 'end of list marker':
Quote:
{
"item_bluecube",
"sound/misc/am_pkup.wav",
{ "models/powerups/orb/b_orb.md3",
NULL, NULL, NULL },
/* icon */ "icons/iconh_borb",
/* pickup */ "Blue Cube",
0,
IT_TEAM,
0,
/* precache */ "",
/* sounds */ ""
},
#endif

/*QUAKED weapon_translocator (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/
{
"weapon_translocator",
"sound/misc/w_pkup.wav",
{ "models/weapons2/grenadel/grenadel.md3",
NULL, NULL, NULL},
/* icon */ "icons/iconw_trans",
/* pickup */ "Translocator",
0,
IT_WEAPON,
WP_TRANSLOCATOR,
/* precache */ "",
/* sounds */ "sound/weapons/grenade/hgrenb1a.wav sound/weapons/grenade/hgrenb2a.wav"
},


// end of list marker
{NULL}
};


g_local.h:
At the end of the gentity_s struct, add the following variables which will tell the server where to teleport the player:
Quote:
struct gentity_s {
...
vec3_t teleloc;
int istelepoint;

};

typedef enum {
CON_DISCONNECTED,
CON_CONNECTING,
CON_CONNECTED
} clientConnected_t;


Then scroll down to where it does declarations for g_missile.c and add G_ExplodeMissile under G_RunMissile:
Quote:
//
// g_missile.c
//
void G_RunMissile( gentity_t *ent );
void G_ExplodeMissile( gentity_t *ent );


Directly after that should be the entity missile firing declarations. Add fire_translocator to that:
Quote:
gentity_t *fire_blaster (gentity_t *self, vec3_t start, vec3_t aimdir);
gentity_t *fire_plasma (gentity_t *self, vec3_t start, vec3_t aimdir);
gentity_t *fire_grenade (gentity_t *self, vec3_t start, vec3_t aimdir);
gentity_t *fire_rocket (gentity_t *self, vec3_t start, vec3_t dir);
gentity_t *fire_bfg (gentity_t *self, vec3_t start, vec3_t dir);
gentity_t *fire_grapple (gentity_t *self, vec3_t start, vec3_t dir);
#ifdef MISSIONPACK
gentity_t *fire_nail( gentity_t *self, vec3_t start, vec3_t forward, vec3_t right, vec3_t up );
gentity_t *fire_prox( gentity_t *self, vec3_t start, vec3_t aimdir );
#endif
gentity_t *fire_translocator (gentity_t *self, vec3_t start, vec3_t aimdir);


g_missile.c:
Right at the top should be G_BounceMissile. Add:
Quote:
/*
================
G_BounceMissile

================
*/
void G_BounceMissile( gentity_t *ent, trace_t *trace ) {
vec3_t velocity;
float dot;
int hitTime;

// reflect the velocity on the trace plane
hitTime = level.previousTime + ( level.time - level.previousTime ) * trace->fraction;
BG_EvaluateTrajectoryDelta( &ent->s.pos, hitTime, velocity );
dot = DotProduct( velocity, trace->plane.normal );
VectorMA( velocity, -2*dot, trace->plane.normal, ent->s.pos.trDelta );

if ( ent->s.eFlags & EF_BOUNCE_HALF ) {
VectorScale( ent->s.pos.trDelta, 0.65, ent->s.pos.trDelta );
// check for stop
if ( trace->plane.normal[2] > 0.2 && VectorLength( ent->s.pos.trDelta ) < 40 ) {
G_SetOrigin( ent, trace->endpos );
return;
}
} else if ( ent->s.eFlags & EF_BOUNCE_TRANS ) {
VectorScale( ent->s.pos.trDelta, 0.65, ent->s.pos.trDelta );
G_SetOrigin( ent, trace->endpos );
ent->parent->istelepoint = 1;
VectorCopy(ent->r.currentOrigin, ent->parent->teleloc);
ent->parent->teleloc[2] += 6;
}


VectorAdd( ent->r.currentOrigin, trace->plane.normal, ent->r.currentOrigin);
VectorCopy( ent->r.currentOrigin, ent->s.pos.trBase );
ent->s.pos.trTime = level.time;
}


Look for the G_MissileImpact function, where it says check for bounce, add the entity flag we defined earlier into the if statement:
Quote:
// check for bounce
if ( !other->takedamage &&
( ent->s.eFlags & ( EF_BOUNCE | EF_BOUNCE_HALF | EF_BOUNCE_TRANS ) ) ) {
G_BounceMissile( ent, trace );
G_AddEvent( ent, EV_GRENADE_BOUNCE, 0 );
return;


Further down the file, add this after the fire_grenade entity function:
Quote:
/*
=================
fire_translocator
=================
*/
gentity_t *fire_translocator (gentity_t *self, vec3_t start, vec3_t dir) {
gentity_t *bolt;

VectorNormalize (dir);

bolt = G_Spawn();
bolt->classname = "trans";
bolt->nextthink = level.time + 30000;
bolt->think = G_ExplodeMissile;
bolt->s.eType = ET_MISSILE;
bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN;
bolt->s.weapon = WP_TRANSLOCATOR;
bolt->s.eFlags = EF_BOUNCE_TRANS;
bolt->r.ownerNum = self->s.number;
bolt->parent = self;
bolt->damage = 0;
bolt->splashDamage = 0;
bolt->splashRadius = 150;
bolt->methodOfDeath = MOD_GRAPPLE;
bolt->splashMethodOfDeath = MOD_GRAPPLE;
bolt->clipmask = MASK_SHOT;

bolt->s.pos.trType = TR_GRAVITY;
bolt->s.pos.trTime = level.time - MISSILE_PRESTEP_TIME;
VectorCopy( start, bolt->s.pos.trBase );
VectorScale( dir, 1000, bolt->s.pos.trDelta );
SnapVector( bolt->s.pos.trDelta ); // save net bandwidth

VectorCopy (start, bolt->r.currentOrigin);

return bolt;
}

//=============================================================================



g_weapon.c:
Now we need to tell the game what to do when you fire the weapon. Go to the end of all the other weapon functions and add:
Quote:
#endif

//======================================================================

/*
======================================================================
TRANSLOCATOR
======================================================================
*/

void Weapon_Translocator_Fire (gentity_t *ent) {
gentity_t *m;
gentity_t *trans = NULL;

while ((trans = G_Find (trans, FOFS(classname), "trans")) != NULL) {
if(trans->r.ownerNum == ent->s.clientNum) { //make sure its ours
ent->istelepoint = 0; // client cannot teleport
VectorClear( ent->teleloc ); // clear the teleport location
trans->think = G_ExplodeMissile;
trans->nextthink = level.time;
}
}

// extra vertical velocity
forward[2] += 0.2f;
VectorNormalize( forward );

m = fire_translocator (ent, muzzle, forward);

// VectorAdd( m->s.pos.trDelta, ent->client->ps.velocity, m->s.pos.trDelta ); // "real" physics
}

//======================================================================


/*
===============
LogAccuracyHit
===============
*/


Scoll down to FireWeapon. We want to exclude firing the translocator from contributing to one's overall accuracy:
Quote:
#endif

// track shots taken for accuracy tracking. Grapple is not a weapon and gauntet is just not tracked
if( ent->s.weapon != WP_GRAPPLING_HOOK && ent->s.weapon != WP_TRANSLOCATOR && ent->s.weapon != WP_GAUNTLET ) {
#ifdef MISSIONPACK
if( ent->s.weapon == WP_NAILGUN ) {


Further down that function we want to tell the game to use the weapon function we added above when we're using the translocator:
Quote:
// fire the specific weapon
...
case WP_GRAPPLING_HOOK:
Weapon_GrapplingHook_Fire( ent );
break;
#ifdef MISSIONPACK
case WP_NAILGUN:
Weapon_Nailgun_Fire( ent );
break;
case WP_PROX_LAUNCHER:
weapon_proxlauncher_fire( ent );
break;
case WP_CHAINGUN:
Bullet_Fire( ent, CHAINGUN_SPREAD, MACHINEGUN_DAMAGE );
break;
#endif
case WP_TRANSLOCATOR:
Weapon_Translocator_Fire( ent );
break;

default:
// FIXME G_Error( "Bad ent->s.weapon" );
break;
}
}
...


bg_pmove.c:
Under PM_Weapon, we want to add an entry to the pm->ps->weapon switch which sets the firing rate of the translocator:
Quote:
// fire weapon
PM_AddEvent( EV_FIRE_WEAPON );

switch( pm->ps->weapon ) {
default:
case WP_GAUNTLET:
addTime = 400;
break;
case WP_LIGHTNING:
addTime = 50;
break;
case WP_SHOTGUN:
addTime = 1000;
break;
case WP_MACHINEGUN:
addTime = 100;
break;
case WP_GRENADE_LAUNCHER:
addTime = 800;
break;
case WP_ROCKET_LAUNCHER:
addTime = 800;
break;
case WP_PLASMAGUN:
addTime = 100;
break;
case WP_RAILGUN:
addTime = 1500;
break;
case WP_BFG:
addTime = 200;
break;
case WP_GRAPPLING_HOOK:
addTime = 400;
break;
#ifdef MISSIONPACK
case WP_NAILGUN:
addTime = 1000;
break;
case WP_PROX_LAUNCHER:
addTime = 800;
break;
case WP_CHAINGUN:
addTime = 30;
break;
#endif
case WP_TRANSLOCATOR:
addTime = 1000;
break;

}


g_local.h:
Now let's add a cvar to allow players to spawn with the weapon, and then callvote functionality (you can apply this method to any other weapon too). Add this after g_proxMineTimeout:
Quote:
extern vmCvar_t g_enableBreath;
extern vmCvar_t g_singlePlayer;
extern vmCvar_t g_proxMineTimeout;
extern vmCvar_t g_translocator;


g_main.c:
Quote:
vmCvar_t g_enableDust;
vmCvar_t g_enableBreath;
vmCvar_t g_proxMineTimeout;
#endif
vmCvar_t g_translocator;


Quote:
{ &g_enableDust, "g_enableDust", "0", CVAR_SERVERINFO, 0, qtrue, qfalse },
{ &g_enableBreath, "g_enableBreath", "0", CVAR_SERVERINFO, 0, qtrue, qfalse },
{ &g_proxMineTimeout, "g_proxMineTimeout", "20000", 0, 0, qfalse },
#endif
{ &g_translocator, "g_translocator", "0", 0, 0, qfalse},
{ &g_smoothClients, "g_smoothClients", "1", 0, 0, qfalse},
{ &pmove_fixed, "pmove_fixed", "0", CVAR_SYSTEMINFO, 0, qfalse},


g_cmds.c:
In Cmd_CallVote_f:
Quote:
...
} else if ( !Q_stricmp( arg1, "fraglimit" ) ) {
} else if ( !Q_stricmp( arg1, "g_translocator" ) ) {
} else {
if ( g_votelimit.integer ) {
voteInvalid( ent );
} else {
trap_SendServerCommand( ent-g_entities, "print \"Invalid vote string.\n\"" );
trap_SendServerCommand( ent-g_entities, "print \"Vote commands are: map_restart, nextmap, map <mapname>, g_gametype <n>, kick <player>, clientkick <clientnum>, g_doWarmup, timelimit <time>, fraglimit <frags>, g_translocator [0/1].\n\"" ); //trans
}


Staying in g_cmds.c, we will now add a command to teleport the player to the location of the missile. First add this to the top of the file, under the #include entries:
Quote:
#include "g_local.h"

#include "../../ui/menudef.h" // for the voice chats

/*
=================
Cmd_UseItem_f
//trans
=================
*/
void Cmd_UseItem_f (gentity_t *ent) {
if ( ent->istelepoint == 1 ) {
VectorCopy( ent->teleloc, ent->client->ps.origin );
} else {
G_Printf( S_COLOR_RED "No teleportation node\n" );
}
}



Now at the end of the file, Add:
Quote:
else if (Q_stricmp (cmd, "stats") == 0)
Cmd_Stats_f( ent );
else if (Q_stricmp (cmd, "useitem") == 0)
Cmd_UseItem_f( ent );



Now to teleport the player to where you shot the missile, bind/type in console 'useitem'. I named it that as you could make it replace the +button2 button command while you're holding the translocator, thus cutting down the amount of binds you need.

g_client.c:
In the ClientSpawn function, lower down where it lists some weapons, we want to add an entry for spawning players to get the translocator when the cvar is set to 1, and then set infinite ammo for it even when a player does not have the weapon:
Quote:
client->ps.stats[STAT_WEAPONS] = ( 1 << WP_MACHINEGUN );
if ( g_gametype.integer == GT_TEAM ) {
client->ps.ammo[WP_MACHINEGUN] = 50;
} else {
client->ps.ammo[WP_MACHINEGUN] = 100;
}

if ( g_translocator.integer == 1 ) { //trans
client->ps.stats[STAT_WEAPONS] |= ( 1 << WP_TRANSLOCATOR );
}

client->ps.stats[STAT_WEAPONS] |= ( 1 << WP_GAUNTLET );
client->ps.ammo[WP_GAUNTLET] = -1;
client->ps.ammo[WP_GRAPPLING_HOOK] = -1;
client->ps.ammo[WP_TRANSLOCATOR] = -1;



Now for some bot support (well they still won't work after you do this as you'll need to edit the botfiles/* that's in the game's main pk3 in order to get them to actually work, but for now I'll leave that for you to figure out.

inv.h:
Model indices need to be listed in the same order as the item list in bg_misc.c, so with that in mind, add the translocator to the end of that:
Quote:
#define MODELINDEX_NEUTRALFLAG 52
#define MODELINDEX_REDCUBE 53
#define MODELINDEX_BLUECUBE 54
#define MODELINDEX_TRANSLOCATOR 55


Quote:
#define WEAPONINDEX_GRAPPLING_HOOK 10
#define WEAPONINDEX_NAILGUN 11
#define WEAPONINDEX_PROXLAUNCHER 12
#define WEAPONINDEX_CHAINGUN 13
#define WEAPONINDEX_TRANSLOCATOR 14


Further up the file...
Quote:
#define INVENTORY_NEUTRALFLAG 50
#define INVENTORY_REDCUBE 51
#define INVENTORY_BLUECUBE 52
#define INVENTORY_TRANSLOCATOR 53


ai_dmq3.c:
In BotUpdateInventory:
Quote:
bs->inventory[INVENTORY_BFG10K] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_BFG)) != 0;
bs->inventory[INVENTORY_GRAPPLINGHOOK] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_GRAPPLING_HOOK)) != 0;
#ifdef MISSIONPACK
bs->inventory[INVENTORY_NAILGUN] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_NAILGUN)) != 0;;
bs->inventory[INVENTORY_PROXLAUNCHER] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_PROX_LAUNCHER)) != 0;;
bs->inventory[INVENTORY_CHAINGUN] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_CHAINGUN)) != 0;;
#endif
bs->inventory[INVENTORY_TRANSLOCATOR] = (bs->cur_ps.stats[STAT_WEAPONS] & (1 << WP_TRANSLOCATOR)) != 0;
//ammo
bs->inventory[INVENTORY_SHELLS] = bs->cur_ps.ammo[WP_SHOTGUN];
bs->inventory[INVENTORY_BULLETS] = bs->cur_ps.ammo[WP_MACHINEGUN];


I hope I didn't miss something. Goddamnit that took me longer to type than to code. :olo:




Top
                 

Insane Quaker
Insane Quaker
Joined: 16 Sep 2010
Posts: 391
PostPosted: 09-13-2011 10:17 PM           Profile Send private message  E-mail  Edit post Reply with quote


I tried following the tutorial the best I could, but I recieved more errors. This time I can`t post the error list because it`s too long. And when I look at the very first error, it doesn`t seem to have anything to do with the problem. As usual.

Is there a good, free program that I can use to filter out all of the junk syntax errors that spawn from just a few mistakes, so I can actually see what the real problems are? I get 1,469 errors but most of them aren`t even real, and it gets in the way of the actual mistakes I made. In this way I probably won`t have to keep posting error results in my posts. :) Thanks in advance.

Also, does it matter how the "else if" statement in the bounce function is set up, so as long as everything in the body of else if is after the else if statement? This is how I have it set up: (your quotes shift everything to the left which messes up the code)

Code:
} else if ( ent->s.eFlags & EF_BOUNCE_TRANS ) {
           VectorScale( ent->s.pos.trDelta, 0.65, ent->s.pos.trDelta );
           G_SetOrigin( ent, trace->endpos );
           ent->parent->istelepoint = 1;
           VectorCopy(ent->r.currentOrigin, ent->parent->teleloc);
           ent->parent->teleloc[2] += 6;
}



_________________
EmeraldProductions
http://emeraldproductions.weebly.com/index.html


Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44132
PostPosted: 09-13-2011 11:18 PM           Profile   Send private message  E-mail  Edit post Reply with quote


Are you using Visual Studio? I think Visual Studio 2010 express is free and should do the job.




Top
                 

Insane Quaker
Insane Quaker
Joined: 16 Sep 2010
Posts: 391
PostPosted: 09-13-2011 11:21 PM           Profile Send private message  E-mail  Edit post Reply with quote


Eraser wrote:
Are you using Visual Studio? I think Visual Studio 2010 express is free and should do the job.

I once used VS10. I switched to 2008 since that is what your tutorial used. (Didn`t want to get confused halfway because the buttons are laid out differently, etc.)



_________________
EmeraldProductions
http://emeraldproductions.weebly.com/index.html


Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44132
PostPosted: 09-13-2011 11:38 PM           Profile   Send private message  E-mail  Edit post Reply with quote


Oh, ok, in that case don't worry yourself with the output log. Just click on "view" -> "error list". If there's a blue square around the warnings button, click it so the blue square is gone. Then it won't display warnings. Focus on the errors only. If, during compiling, an error occurs it'll appear here. In most cases you can click (maybe double click?) the error and your cursor will jump towards the bit of code that caused the error.




Top
                 

Insane Quaker
Insane Quaker
Joined: 05 Mar 2010
Posts: 384
PostPosted: 09-13-2011 11:39 PM           Profile Send private message  E-mail  Edit post Reply with quote


Yeah I first put the code in between [code] but it wouldn't show colored text, so I changed it to quotes which messed up the indenting but showed the color text. Indenting isn't necessary, just makes the code much easier to follow. I can give you a plain text version of that with all the indenting intact if you want though?

Have you tried compiling a clean copy of the Q3 source to see if that gives you errors? I'd still recommend using ioquake3 instead and compiling with MingW. It has quite a few fixes and extra features, plus you can compile the client too so you're not just limited to modding the vm's.




Top
                 

Insane Quaker
Insane Quaker
Joined: 16 Sep 2010
Posts: 391
PostPosted: 09-14-2011 12:12 AM           Profile Send private message  E-mail  Edit post Reply with quote


I filtered the warnings, so at least that trims down the list. Though, what I am looking for is a utility of some kind that can get rid of "by-product" errors which clutter up the list and prevents you from seeing the real mistakes you made.

Quote:
The thing with this compiler is that often if you have one thing wrong, it suddenly starts complaining about a whole lot of other things being undefined because you're whole code structure is basically messed up by something like missing parenthesis or something and the syntax checker can't make head or tails out of it anymore.


EDIT: In fact, I checked the errors list, compared it with MuffinMan`s code snippets and I actually found nothing that could becausing it. Also, the errors list always gives 1496 errors, and doesn`t change, which makes me think the actual mistakes are not recorded. Oh, I hope I don`t have to shuffle through all that. Seems like total insanity.



_________________
EmeraldProductions
http://emeraldproductions.weebly.com/index.html


Top
                 

Immortal
Immortal
Joined: 12 Mar 2005
Posts: 2205
PostPosted: 09-14-2011 01:21 AM           Profile   Send private message  E-mail  Edit post Reply with quote


can we get a look at the first... 20 or so errors?




Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44132
PostPosted: 09-15-2011 03:21 AM           Profile   Send private message  E-mail  Edit post Reply with quote


Here's another tutorial on creating teleporter grenades:

http://www.quake3hut.co.uk/q3coding/Transporter.htm




Top
                 

Grunt
Grunt
Joined: 25 Nov 2009
Posts: 65
PostPosted: 09-17-2011 11:45 AM           Profile Send private message  E-mail  Edit post Reply with quote


You shouldn't be trying to get the errors to stop being shown to you, you should fix them. I believe that if you are compiling the entire (io)q3, then there are many many warnings for the engine because of some IDE reasons, but you don't need to build the engine. Go into the configuration manager and uncheck everything except for Game, Cgame and UI (or q3ui if you're using that??) Then visual studio will only build Game Cgame and UI (You probably don't even need to build UI for what you're doing?)

Then imo you should track down the cause of the errors and warnings and fix them.




Top
                 
Quake3World.com | Forum Index | Programming Discussion


Post new topic Reply to topic


cron
Quake3World.com
© ZeniMax. Zenimax, QUAKE III ARENA, Id Software and associated trademarks are trademarks of the ZeniMax group of companies. All rights reserved.
This is an unofficial fan website without any affiliation with or endorsement by ZeniMax.
All views and opinions expressed are those of the author.