GithubHelp home page GithubHelp logo

dday's Introduction

D-DAY: NORMANDY S.H.A.E.F. v5.0

based on

D-DAY: NORMANDY BETA SOURCE RELEASE-4-1

This is the D-Day: Normandy source for version 4.1. It is released under the GPL, a "copyleft" license, that is included in the release as gnu.txt. Basically, you can edit and compile this source to your liking, but if you release any binaries, or any part of the source, the rest of the source, these files, and the license must all be included. Make sure you read the license to better understand the terms.

The source has been released in order to further the bug-stomping process. Should you find a bug, please use a 'diff' program to generate a patch file, or if it is small enough, just e-mail the fix to [email protected]. Please do not send the entire source file!

These are only the game, usa, and grm library source compilations.

The Win32 project files were not included in the CVS repository and as such may need some reconfiguring (mainly output paths, etc) to suit your development needs.

Should you run into any issues, please please please check out the forums at the D-Day: Normandy website before emailing Vipersoft:

http://www.planetquake.com/dday/

For more information on the linux build, see readme.linux.txt.

Additionally, an Amiga port is included in this release; see readme.amiga.txt.

dday's People

Contributors

mrg-drgn avatar texnofobix avatar inferyes avatar ed65536 avatar

Stargazers

Brandon Lopez avatar xaGe  avatar  avatar

Watchers

 avatar  avatar  avatar

dday's Issues

Chat parses %e exponents, can crash/overflow

The chat parses exponents, e.g.
"%e" becomes "8.497209e-314"
"%123e" becomes a weird line "1.486320e-313"
And stuff like
"%999999e" can potentially crash the server (Dday 5.065b). My local server doesn't crash, but says "PF_cprintf: overflow" after hanging (freezing) for about 2 seconds.

Go through warnings and clean them up

[src\g_arty.c:288]: (style) Redundant condition: If 'EXPR == 4', the comparison 'EXPR' is always true.
[src\g_arty.c:360] -> [src\g_arty.c:367]: (style) Variable 'check->obj_owner' is reassigned a value before the old one has been used.
[src\g_arty.c:609] -> [src\g_arty.c:617]: (style) Variable 'ent->nextthink' is reassigned a value before the old one has been used.
[src\g_arty.c:1070] -> [src\g_arty.c:1076]: (style) Variable 'ent->nextthink' is reassigned a value before the old one has been used.
[src\g_combat.c:306]: (style) Assignment of function parameter has no effect outside the function.
[src\g_combat.c:793]: (style) Redundant condition: If 'EXPR == 58', the comparison 'EXPR' is always true.
[src\g_combat.c:1650] -> [src\g_combat.c:1652]: (style) Variable 'speed' is reassigned a value before the old one has been used.
[src\g_cmds.c:343]: (style) Redundant condition: If '!EXPR', the comparison 'EXPR != 120' is always true.
[src\g_cmds.c:1354]: (style) Redundant condition: it. '!it || (it && !it->use)' is equivalent to '!it || !it->use'
[src\g_cmds.c:3015]: (style) Redundant condition: If 'EXPR == 5', the comparison 'EXPR' is always true.
[src\g_cmds.c:1354] -> [src\g_cmds.c:1356]: (warning) Either the condition '!it' is redundant or there is possible null pointer dereference: it.
[src\g_cmds.c:3259]: (style) Same expression on both sides of '||'.
[src\g_cmds.c:3056]: (error) Uninitialized variable: ammo_amount
[src\g_ents.c:426]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\g_ents.c:441]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\g_ents.c:456]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\g_ents.c:472]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\g_ents.c:524]: (warning) Found calculation inside sizeof().
[src\g_items.c:794]: (style) Redundant condition: If 'EXPR == 1', the comparison 'EXPR' is always true.
[src\g_func.c:423] -> [src\g_func.c:421]: (warning) Either the condition 'if(other)' is redundant or there is possible null pointer dereference: other.
[src\g_func.c:1146] -> [src\g_func.c:1144]: (warning) Either the condition 'if(other)' is redundant or there is possible null pointer dereference: other.
[src\g_func.c:1547] -> [src\g_func.c:1545]: (warning) Either the condition 'if(other)' is redundant or there is possible null pointer dereference: other.
[src\g_func.c:2067] -> [src\g_func.c:2065]: (warning) Either the condition 'if(other)' is redundant or there is possible null pointer dereference: other.
[src\g_func.c:476] -> [src\g_func.c:482]: (style) Variable 'tmin[2]' is reassigned a value before the old one has been used.
[src\g_maps.c:118]: (warning) fscanf() without field width limits can crash with huge input data.
[src\g_maps.c:135]: (warning) fscanf() without field width limits can crash with huge input data.
[src\g_main.c:398]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\g_main.c:435]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\g_main.c:666]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\g_main.c:702]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\g_main.c:804]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\g_main.c:712] -> [src\g_main.c:711] -> [src\g_main.c:735] -> [src\g_main.c:737] -> [src\g_main.c:340]: (warning) Either the condition 't==((void*)0)' is redundant or there is possible null pointer dereference: map.
[src\g_main.c:712] -> [src\g_main.c:711] -> [src\g_main.c:735] -> [src\g_main.c:737] -> [src\g_main.c:350]: (warning) Either the condition 't==((void*)0)' is redundant or there is possible null pointer dereference: map.
[src\g_main.c:712] -> [src\g_main.c:711] -> [src\g_main.c:735] -> [src\g_main.c:737] -> [src\g_main.c:359]: (warning) Either the condition 't==((void*)0)' is redundant or there is possible null pointer dereference: map.
[src\g_main.c:712] -> [src\g_main.c:735] -> [src\g_main.c:736]: (warning) Either the condition 't==((void*)0)' is redundant or there is possible null pointer dereference: check.
[src\g_main.c:736]: (error) Null pointer dereference
[src\g_local.h:1033] -> [src\g_main.c:942]: (style) Local variable 'range' shadows outer function
[src\g_main.c:804]: (style) Variable 'sb' is allocated memory that is never used.
[src\g_misc.c:256] -> [src\g_misc.c:264]: (style) Variable 'gib->solid' is reassigned a value before the old one has been used.
[src\g_misc.c:1798]: (warning) Redundant assignment of 'ent->s.frame' to itself.
[src\g_misc.c:1822]: (warning) Redundant assignment of 'ent->s.frame' to itself.
[src\g_misc.c:1885]: (warning) Redundant assignment of 'ent->s.frame' to itself.
[src\g_save.c:868] -> [src\g_save.c:876]: (error) Resource handle 'f' freed twice.
[src\g_spawn.c:482]: (style) Array index 'i' is used before limits check.
[src\g_spawn.c:926]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\g_spawn.c:531]: (portability) Casting between unsigned char * and float * which have an incompatible binary data representation.
[src\g_spawn.c:532]: (portability) Casting between unsigned char * and float * which have an incompatible binary data representation.
[src\g_spawn.c:533]: (portability) Casting between unsigned char * and float * which have an incompatible binary data representation.
[src\g_spawn.c:539]: (portability) Casting between unsigned char * and float * which have an incompatible binary data representation.
[src\g_spawn.c:543]: (portability) Casting between unsigned char * and float * which have an incompatible binary data representation.
[src\g_spawn.c:544]: (portability) Casting between unsigned char * and float * which have an incompatible binary data representation.
[src\g_spawn.c:545]: (portability) Casting between unsigned char * and float * which have an incompatible binary data representation.
[src\g_svcmds.c:444]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\g_svcmds.c:78] -> [src\g_svcmds.c:80]: (style) Variable 'ent->client->resp.mos' is reassigned a value before the old one has been used.
[src\g_turret.c:922]: (style) Redundant condition: If 'EXPR == 1', the comparison 'EXPR' is always true.
[src\g_turret.c:187]: (warning) Comparison of modulo result is predetermined, because it is always less than 2.
[src\g_turret.c:106] -> [src\g_turret.c:103]: (warning) Either the condition 'if(other)' is redundant or there is possible null pointer dereference: other.
[src\g_turret.c:936] -> [src\g_turret.c:956]: (style) Variable 'self->movetype' is reassigned a value before the old one has been used.
[src\g_turret.c:282]: (warning) Redundant assignment of 'shell->nextthink' to itself.
[src\g_turretx.c:859]: (style) Redundant condition: If 'EXPR == 1', the comparison 'EXPR' is always true.
[src\g_turretx.c:106] -> [src\g_turretx.c:103]: (warning) Either the condition 'if(other)' is redundant or there is possible null pointer dereference: other.
[src\g_turretx.c:263]: (warning) Redundant assignment of 'shell->nextthink' to itself.
[src\m_civilian.c:166] -> [src\m_civilian.c:183]: (style) Variable 'tr' is reassigned a value before the old one has been used.
[src\m_civilian.c:334] -> [src\m_civilian.c:381]: (style) Local variable 'e' shadows outer variable
[src\m_civilian.c:334] -> [src\m_civilian.c:381]: (style) Local variable 'nearest' shadows outer variable
[src\m_civilian.c:335] -> [src\m_civilian.c:382]: (style) Local variable 'temp_distance' shadows outer variable
[src\m_civilian.c:335] -> [src\m_civilian.c:382]: (style) Local variable 'nearest_distance' shadows outer variable
[src\g_weapon.c:586]: (style) Boolean result is used in bitwise operation. Clarify expression with parentheses.
[src\g_weapon.c:2035]: (style) Redundant condition: ent->owner. '!ent->owner || (ent->owner && !ent->owner->inuse)' is equivalent to '!ent->owner || !ent->owner->inuse'
[src\g_weapon.c:4310]: (style) Redundant condition: ent->owner->client->resp.team_on. '!A || (A && B)' is equivalent to '!A || B'
[src\g_weapon.c:1038] -> [src\g_weapon.c:1039]: (style) Variable 'underwater_bullet->think' is reassigned a value before the old one has been used.
[src\g_weapon.c:2157] -> [src\g_weapon.c:2165]: (style) Variable 'rocket->think' is reassigned a value before the old one has been used.
[src\g_weapon.c:2217] -> [src\g_weapon.c:2225]: (style) Variable 'rocket->think' is reassigned a value before the old one has been used.
[src\g_weapon.c:5021] -> [src\g_weapon.c:5027]: (style) Variable 'ent->client->kick_angles[0]' is reassigned a value before the old one has been used.
[src\g_weapon.c:5208] -> [src\g_weapon.c:5214]: (style) Variable 'ent->client->kick_angles[0]' is reassigned a value before the old one has been used.
[src\g_weapon.c:6170] -> [src\g_weapon.c:6176]: (style) Variable 'ent->client->kick_angles[0]' is reassigned a value before the old one has been used.
[src\g_weapon.c:2081]: (warning) Redundant assignment of 'rocket->nextthink' to itself.
[src\g_weapon.c:2171]: (warning) Redundant assignment of 'rocket->nextthink' to itself.
[src\g_weapon.c:2231]: (warning) Redundant assignment of 'rocket->nextthink' to itself.
[src\g_local.h:1033] -> [src\g_weapon.c:102]: (style) Local variable 'range' shadows outer function
[src\g_weapon.c:1349] -> [src\g_weapon.c:1410]: (style) Local variable 'i' shadows outer variable
[src\g_weapon.c:1349] -> [src\g_weapon.c:1465]: (style) Local variable 'i' shadows outer variable
[src\p_classes.c:171] -> [src\p_classes.c:168] -> [src\p_classes.c:42]: (warning) Either the condition '!item' is redundant or there is possible null pointer dereference: item.
[src\p_client.c:2964]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\p_client.c:3388]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\p_client.c:4648]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\p_client.c:4891]: (style) Obsolete function 'strdup' called. It is recommended to use '_strdup' instead.
[src\p_client.c:1990] -> [src\p_client.c:1999]: (style) Condition '!spot' is always true
[src\p_client.c:2039] -> [src\p_client.c:2059]: (style) Condition '!spot' is always true
[src\p_client.c:4850]: (error) Memory leak: f
[src\p_client.c:742] -> [src\p_client.c:733]: (warning) Either the condition 'self->client&&!self->ai&&attacker' is redundant or there is possible null pointer dereference: attacker.
[src\p_client.c:742] -> [src\p_client.c:734]: (warning) Either the condition 'self->client&&!self->ai&&attacker' is redundant or there is possible null pointer dereference: attacker.
[src\p_client.c:742] -> [src\p_client.c:736]: (warning) Either the condition 'self->client&&!self->ai&&attacker' is redundant or there is possible null pointer dereference: attacker.
[src\p_client.c:742] -> [src\p_client.c:737]: (warning) Either the condition 'self->client&&!self->ai&&attacker' is redundant or there is possible null pointer dereference: attacker.
[src\p_client.c:2822] -> [src\p_client.c:2815]: (warning) Either the condition 'if(ent)' is redundant or there is possible null pointer dereference: ent.
[src\p_client.c:2822] -> [src\p_client.c:2921]: (warning) Either the condition 'ent' is redundant or there is possible null pointer dereference: ent.
[src\p_client.c:2163] -> [src\p_client.c:2167]: (style) Variable 'body->svflags' is reassigned a value before the old one has been used.
[src\p_client.c:4248] -> [src\p_client.c:4250]: (style) Variable 'temp_damage' is reassigned a value before the old one has been used.
[src\p_client.c:1226] -> [src\p_client.c:1343]: (style) Local variable 'i' shadows outer variable
[src\g_local.h:1033] -> [src\p_client.c:1625]: (style) Local variable 'range' shadows outer function
[src\p_hud.c:793]: (error) Buffer is accessed out of bounds: pingstring
[src\p_hud.c:795]: (error) Buffer is accessed out of bounds: pingstring
[src\p_hud.c:801]: (error) Buffer is accessed out of bounds: pingstring
[src\p_hud.c:841]: (error) Buffer is accessed out of bounds: pingstring
[src\p_hud.c:843]: (error) Buffer is accessed out of bounds: pingstring
[src\p_hud.c:849]: (error) Buffer is accessed out of bounds: pingstring
[src\p_hud.c:180]: (style) Boolean result is used in bitwise operation. Clarify expression with parentheses.
[src\p_hud.c:1419]: (error) Undefined behavior: Variable 'string' is used as parameter and destination in sprintf().
[src\p_hud.c:1422]: (error) Undefined behavior: Variable 'string' is used as parameter and destination in sprintf().
[src\p_hud.c:1426]: (error) Undefined behavior: Variable 'string' is used as parameter and destination in sprintf().
[src\p_hud.c:1429]: (error) Undefined behavior: Variable 'string' is used as parameter and destination in sprintf().
[src\p_hud.c:1431]: (error) Undefined behavior: Variable 'string' is used as parameter and destination in sprintf().
[src\p_hud.c:1440]: (error) Undefined behavior: Variable 'string' is used as parameter and destination in sprintf().
[src\p_hud.c:1444]: (error) Undefined behavior: Variable 'string' is used as parameter and destination in sprintf().
[src\p_hud.c:1471]: (error) Undefined behavior: Variable 'string' is used as parameter and destination in sprintf().
[src\p_observer.c:267] -> [src\p_observer.c:277]: (style) Variable 'tr' is reassigned a value before the old one has been used.
[src\p_observer.c:876] -> [src\p_observer.c:887]: (style) Variable 'i' is reassigned a value before the old one has been used.
[src\p_observer.c:987] -> [src\p_observer.c:989]: (style) Variable 'ent->client->resp.mos' is reassigned a value before the old one has been used.
[src\p_weapon.c:2390]: (error) Array 'fire_frames[2]' accessed at index 2, which is out of bounds.
[src\p_weapon.c:1361]: (style) Boolean result is used in bitwise operation. Clarify expression with parentheses.
[src\p_weapon.c:1216] -> [src\p_weapon.c:1222]: (style) The if condition is the same as the previous if condition
[src\p_weapon.c:1502] -> [src\p_weapon.c:1556]: (warning) Either the condition 'surf' is redundant or there is possible null pointer dereference: surf.
[src\p_weapon.c:2053] -> [src\p_weapon.c:2048]: (warning) Either the condition 'if(ent)' is redundant or there is possible null pointer dereference: ent.
[src\p_weapon.c:922] -> [src\p_weapon.c:925]: (style) Variable 'speed' is reassigned a value before the old one has been used.
[src\p_weapon.c:2684] -> [src\p_weapon.c:2686]: (style) Variable 'ent->client->ps.gunframe' is reassigned a value before the old one has been used.
[src\p_view.c:854]: (style) Redundant condition: If 'EXPR == 8', the comparison 'EXPR' is always true.
[src\p_view.c:880] -> [src\p_view.c:884]: (style) The if condition is the same as the previous if condition
[src\p_view.c:2227] -> [src\p_view.c:2231]: (style) Variable 'client->anim_end' is reassigned a value before the old one has been used.
[src\p_view.c:2425] -> [src\p_view.c:2432]: (style) Variable 'ent->viewheight' is reassigned a value before the old one has been used.
[src\p_view.c:2869] -> [src\p_view.c:2870]: (style) Variable 'dist' is reassigned a value before the old one has been used.
[src\p_view.c:50] -> [src\p_view.c:1235]: (style) Local variable 'forward' shadows outer variable
[src\p_view.c:1625] -> [src\p_view.c:1638]: (style) Local variable 'end' shadows outer variable
[src\p_view.c:1626] -> [src\p_view.c:1639]: (style) Local variable 'tr' shadows outer variable
[src\p_view.c:50] -> [src\p_view.c:2354]: (style) Local variable 'up' shadows outer variable
[src\p_view.c:50] -> [src\p_view.c:2357]: (style) Local variable 'right' shadows outer variable
[src\p_view.c:50] -> [src\p_view.c:2688]: (style) Local variable 'forward' shadows outer variable
[src\p_view.c:2355] -> [src\p_view.c:2828]: (style) Local variable 'tr' shadows outer variable
[src\p_view.c:2353] -> [src\p_view.c:2829]: (style) Local variable 'end' shadows outer variable
[src\p_view.c:2352] -> [src\p_view.c:2829]: (style) Local variable 'start' shadows outer variable
[src\p_view.c:2354] -> [src\p_view.c:2830]: (style) Local variable 'up' shadows outer variable
[src\p_view.c:50] -> [src\p_view.c:2831]: (style) Local variable 'forward' shadows outer variable
[src\q_shared.c:1286] -> [src\q_shared.c:1288]: (warning) Opposite inner 'if' condition leads to a dead code block.
[src\q_shared.c:1332] -> [src\q_shared.c:1334]: (warning) Opposite inner 'if' condition leads to a dead code block.
[src\q_shared.c:1400] -> [src\q_shared.c:1376]: (warning) Either the condition '!value' is redundant or there is possible null pointer dereference: value.
[src\q_shared.c:1400] -> [src\q_shared.c:1388]: (warning) Either the condition '!value' is redundant or there is possible null pointer dereference: value.
[src\q_shared.c:1400] -> [src\q_shared.c:1394]: (warning) Either the condition '!value' is redundant or there is possible null pointer dereference: value.
[src\q_shared.c:266]: (portability) Casting from float * to signed int * is not portable due to different binary data representations on different platforms.
[src\q_shared.c:268]: (portability) Casting between signed int * and float * which have an incompatible binary data representation.
[src\q_shared.h:197] -> [src\q_shared.c:291]: (warning) Function 'LerpAngle' argument order different: declaration 'a1, a2, frac' definition 'a2, a1, frac'
[src\q_shared.c:313] -> [src\q_shared.c:47]: (style) Local variable 'i' shadows outer variable
[src\q_shared.c:313] -> [src\q_shared.c:163]: (style) Local variable 'i' shadows outer variable
[src\q_shared.c:313] -> [src\q_shared.c:320]: (style) Local variable 'i' shadows outer variable
[src\q_shared.c:314] -> [src\q_shared.c:323]: (style) Local variable 'corners' shadows outer variable
[src\q_shared.c:313] -> [src\q_shared.c:666]: (style) Local variable 'i' shadows outer variable
[src\q_shared.c:313] -> [src\q_shared.c:772]: (style) Local variable 'i' shadows outer variable
[src\q_shared.c:313] -> [src\q_shared.c:849]: (style) Local variable 'i' shadows outer variable
[src\q_shared.c:313] -> [src\q_shared.c:1171]: (style) Local variable 'i' shadows outer variable
[src\x_fire.c:1182] -> [src\x_fire.c:1184]: (style) Variable 'fireball->s.effects' is reassigned a value before the old one has been used.
[src\ai\ai_class_dmbot.c:1126] -> [src\ai\ai_class_dmbot.c:1264]: (warning) Either the condition 'weapon!=9' is redundant or the array 'AIWeapons[9]' is accessed at index 9, which is out of bounds.
[src\ai\ai_class_dmbot.c:1126] -> [src\ai\ai_class_dmbot.c:1270]: (warning) Either the condition 'weapon!=9' is redundant or the array 'AIWeapons[9]' is accessed at index 9, which is out of bounds.
[src\ai\ai_class_dmbot.c:1126] -> [src\ai\ai_class_dmbot.c:1275]: (warning) Either the condition 'weapon!=9' is redundant or the array 'AIWeapons[9]' is accessed at index 9, which is out of bounds.
[src\ai\ai_class_dmbot.c:438]: (style) Redundant condition: If 'EXPR == 8', the comparison 'EXPR' is always true.
[src\ai\ai_class_dmbot.c:451]: (style) Redundant condition: If 'EXPR == 8', the comparison 'EXPR' is always true.
[src\ai\ai_class_dmbot.c:984]: (style) Redundant condition: If 'EXPR == 8', the comparison 'EXPR' is always true.
[src\ai\ai_class_dmbot.c:1905] -> [src\ai\ai_class_dmbot.c:1906]: (style) Variable 'self->client->ping' is reassigned a value before the old one has been used.
[src\ai\ai_dropnodes.c:353] -> [src\ai\ai_dropnodes.c:357]: (style) Expression is always true because 'else if' condition is opposite to previous condition at line 353.
[src\ai\ai_links.c:178] -> [src\ai\ai_links.c:184]: (warning) Either the condition 'pLinks[n1].numLinks>16' is redundant or the array 'pLinks[n1].nodes[16]' is accessed at index 16, which is out of bounds.
[src\ai\ai_links.c:875] -> [src\ai\ai_links.c:914]: (style) Local variable 'link' shadows outer variable
[src\ai\ai_main.c:1027] -> [src\ai\ai_main.c:1593]: (style) Local variable 'soundfile' shadows outer variable
[src\ai\ai_main.c:1038] -> [src\ai\ai_main.c:1750]: (style) Local variable 'dist' shadows outer variable
[src\ai\ai_navigation.c:333]: (error) Array 'check[3]' accessed at index 3, which is out of bounds.
[src\ai\ai_navigation.c:336] -> [src\ai\ai_navigation.c:363]: (warning) Either the condition 'c<4' is redundant or the array 'check[3]' is accessed at index 3, which is out of bounds.
[src\g_local.h:1033] -> [src\ai\ai_navigation.c:274]: (style) Local variable 'range' shadows outer function
[src\ai\ai_weapons.c:127]: (error) Array 'AIWeapons[9]' accessed at index 9, which is out of bounds.
[src\ai\ai_weapons.c:128]: (error) Array 'AIWeapons[9]' accessed at index 9, which is out of bounds.
[src\ai\ai_weapons.c:129]: (error) Array 'AIWeapons[9]' accessed at index 9, which is out of bounds.
[src\ai\ai_weapons.c:130]: (error) Array 'AIWeapons[9]' accessed at index 9, which is out of bounds.
[src\ai\ai_weapons.c:131]: (error) Array 'AIWeapons[9]' accessed at index 9, which is out of bounds.
[src\ai\ai_weapons.c:132]: (error) Array 'AIWeapons[9]' accessed at index 9, which is out of bounds.
[src\ai\ai_weapons.c:133]: (error) Array 'AIWeapons[9]' accessed at index 9, which is out of bounds.
[src\ai\bot_spawn.c:527] -> [src\ai\bot_spawn.c:527]: (warning) Either the condition '!bot->client' is redundant or there is possible null pointer dereference: bot->client.

Long grenade throw by default?

I rarely use the short grenade throw, perhaps 1 time out of 10. I almost always go for the select grenade + mouse2 combo to select long throw, and switch back to short only if the situation demands it. On 11th of December, there were a bunch of new players from action q2, who found this situation strange, and they were often getting fragged from afar. I suspect it takes a bit to get used to. It is possible to bind the auto-select of long throw, but if the long throw is superior anyway, it could make sense to just make it the default option upon selecting grenades.

It is of course a matter of debate.

Shouts do not work

357cde9
(at least the Windows build)

  • Q2pro engine: shouts (on function keys) are not being triggered regardless of team. They are not audible. Instead, the following errors are generated in the console (a random condump). Other engines fatally crash (below)

shout: NewDDayGuy grm thanks2
PF_configstring: index 478 overflowed: 71 > 63
salute
shout: NewDDayGuy grm yes1
PF_configstring: index 479 overflowed: 68 > 63
salute
shout: NewDDayGuy grm no2
PF_configstring: index 480 overflowed: 67 > 63
flipoff
shout: NewDDayGuy grm cover3
PF_configstring: index 481 overflowed: 70 > 63
flipoff
shout: NewDDayGuy grm move1
PF_configstring: index 482 overflowed: 69 > 63
point
shout: NewDDayGuy grm left2
PF_configstring: index 483 overflowed: 69 > 63
point
shout: NewDDayGuy grm right1
PF_configstring: index 484 overflowed: 70 > 63
point
shout: NewDDayGuy grm medic
PF_configstring: index 485 overflowed: 69 > 63
grm (Team)NewDDayGuy: Medic!!
wave
shout: NewDDayGuy grm attack1
PF_configstring: index 486 overflowed: 71 > 63
grm (Team)NewDDayGuy: Attack!!
point
shout: NewDDayGuy grm shoulders2
PF_configstring: index 487 overflowed: 74 > 63
grm (Team)NewDDayGuy: Get on my shoulders!
shout: NewDDayGuy grm retreat1
PF_configstring: index 488 overflowed: 72 > 63

  • Vanilla Q2, EGL, and r1q2 engines. All crash upon trying to produce any shout with this error (F2="Yes" shout example)

SYS ERROR: Snd_FindName: Sound name too long: ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌyes1.wav

All gun magazines start with 0 or 3 rounds

357cde9
(at least both the Windows and the ARMv7 build)

  • every weapon starts with 0 or 3 rounds in a magazine, but they all seem to work well otherwise (after the first reload). So they are missing the first full clip. This also affects the bots -- the bots might not fire at you instantly (and might run past you), but will fire once they make up their mind and reload.

Make "kill" command available again

It's impossible to issue a kill command to force a respawn.
When players get stuck their only choice is to reconnect to the server or use grenades on themselves.

features-epsilon list of updates

In the master branch as of 9f0e555 (November 2021)

  • Italian team is revised as such. Added Light Gunner with B1938/42 SMG with a 30-round magazine and standard SMG behavior and the firing rate of 600 rpm. A good model for this weapon has been bundled since the early releases of the Italian team, but code for it was removed at some point due to animation problems. Its true sight firing animation now has a code-only fix requiring no changes to the model to make it playable. Additionally, the semi-auto K43 rifle is now given to the Airborne class, and there is no special "Support Infantry" class needed. The standard Italian B1934 pistol now has 7 rounds instead of 9 to balance things out.

Still in the experimental stage:

  • Japanese team is slightly revised. The LMG Type 99 (issued to Light and Heavy Gunners) now fires at the rate of 900 rpm, same as PPSh41 in the Russian team.
  • fast_mg42 cvar (enabled = 1 by default, recommended) makes the Axis HMG (MG42) fire at the rate of 1,200 rpm, making it the fastest-firing weapon in the game. Whenever firing, the temperature of the barrel slowly increases; whenever not firing, the temperature slowly decreases to zero. If the temperature is over half of the critical temperature, smoke starts coming out, firing accuracy rapidly decreases, and warning steam sound becomes audible. If the temperature reaches or exceeds the critical temperature, the barrel of the weapon is damaged, and the ammo is reset to zero. This is an advanced version of previous attempts at a fast-firing MG42. Additional balancing changes are: the weapon now comes with two extra 250 round belts instead of five 100 round belts; in fast mode, the damage of each bullet is 22 instead of 50 (thus fast mode is slightly penalized vs slow: 44 vs 50 per server frame @ 10 Hz).
  • (disabled) unfinished 1st and 3rd person muzzle flash experiments

Compile error on x86_64

ARMv7 output (finishes)

rm -f g_ai.o g_arty.o g_cmds.o g_combat.o g_ents.o g_func.o g_items.o g_main.o g_maps.o g_misc.o g_monster.o g_objectives.o g_phys.o g_save.o g_spawn.o g_svcmds.o g_target.o g_trigger.o g_turret.o g_utils.o g_weapon.o m_actor.o m_civilian.o m_flash.o m_insane.o m_move.o p_classes.o p_client.o p_generic_wep.o p_hud.o p_menu.o p_observer.o p_trail.o p_view.o p_weapon.o q_shared.o u_entmgr.o x_fbomb.o x_fire.o usa/usa_item.o  usa/usa_spawn.o usa/usa_guninfo.o usa/usa_weapon.o usa/usa_main.o grm/grm_item.o  grm/grm_spawn.o grm/grm_guninfo.o grm/grm_weapon.o grm/grm_main.o rus/rus_item.o  rus/rus_spawn.o rus/rus_guninfo.o rus/rus_weapon.o rus/rus_main.o gbr/gbr_item.o  gbr/gbr_spawn.o gbr/gbr_guninfo.o gbr/gbr_weapon.o gbr/gbr_main.o jpn/jpn_item.o  jpn/jpn_spawn.o jpn/jpn_guninfo.o jpn/jpn_weapon.o jpn/jpn_main.o usm/usm_item.o  usm/usm_spawn.o usm/usm_guninfo.o usm/usm_weapon.o usm/usm_main.o ita/ita_item.o  ita/ita_spawn.o ita/ita_guninfo.o ita/ita_weapon.o ita/ita_main.o pol/pol_item.o  pol/pol_spawn.o pol/pol_guninfo.o pol/pol_weapon.o pol/pol_main.o ai/bot_common.o ai/bot_spawn.o ai/ai_weapons.o ai/ai_tools.o ai/ai_nodes.o ai/ai_navigation.o ai/ai_movement.o ai/ai_links.o ai/ai_items.o ai/ai_dropnodes.o ai/ai_class_dmbot.o ai/ai_class_monster_default.o ai/AStar.o ai/ai_main.o
rm -f gamearm.real.so
make clean -C gbr -f ../Makefile.country COUNTRY_CODE=gbr
make[1]: Entering directory '/home/alarm/dday/gbr'
rm -f gbr_item.o gbr_spawn.o gbr_guninfo.o gbr_weapon.o gbr_main.o
rm -f gbrarm.so
make[1]: Leaving directory '/home/alarm/dday/gbr'
make clean -C grm -f ../Makefile.country COUNTRY_CODE=grm
make[1]: Entering directory '/home/alarm/dday/grm'
rm -f grm_item.o grm_spawn.o grm_guninfo.o grm_weapon.o grm_main.o
rm -f grmarm.so
make[1]: Leaving directory '/home/alarm/dday/grm'
make clean -C ita -f ../Makefile.country COUNTRY_CODE=ita
make[1]: Entering directory '/home/alarm/dday/ita'
rm -f ita_item.o ita_spawn.o ita_guninfo.o ita_weapon.o ita_main.o
rm -f itaarm.so
make[1]: Leaving directory '/home/alarm/dday/ita'
make clean -C jpn -f ../Makefile.country COUNTRY_CODE=jpn
make[1]: Entering directory '/home/alarm/dday/jpn'
rm -f jpn_item.o jpn_spawn.o jpn_guninfo.o jpn_weapon.o jpn_main.o
rm -f jpnarm.so
make[1]: Leaving directory '/home/alarm/dday/jpn'
make clean -C pol -f ../Makefile.country COUNTRY_CODE=pol
make[1]: Entering directory '/home/alarm/dday/pol'
rm -f pol_item.o pol_spawn.o pol_guninfo.o pol_weapon.o pol_main.o
rm -f polarm.so
make[1]: Leaving directory '/home/alarm/dday/pol'
make clean -C rus -f ../Makefile.country COUNTRY_CODE=rus
make[1]: Entering directory '/home/alarm/dday/rus'
rm -f rus_item.o rus_spawn.o rus_guninfo.o rus_weapon.o rus_main.o
rm -f rusarm.so
make[1]: Leaving directory '/home/alarm/dday/rus'
make clean -C usa -f ../Makefile.country COUNTRY_CODE=usa
make[1]: Entering directory '/home/alarm/dday/usa'
rm -f usa_item.o usa_spawn.o usa_guninfo.o usa_weapon.o usa_main.o
rm -f usaarm.so
make[1]: Leaving directory '/home/alarm/dday/usa'
make clean -C usm -f ../Makefile.country COUNTRY_CODE=usm
make[1]: Entering directory '/home/alarm/dday/usm'
rm -f usm_item.o usm_spawn.o usm_guninfo.o usm_weapon.o usm_main.o
rm -f usmarm.so
make[1]: Leaving directory '/home/alarm/dday/usm'
[alarm@alarm dday]$ make
make gamearm.real.so CFLAGS="-Dstricmp=strcasecmp -g"
make[1]: Entering directory '/home/alarm/dday'
gcc -Dstricmp=strcasecmp -g -fPIC -o g_ai.o -c g_ai.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_arty.o -c g_arty.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_cmds.o -c g_cmds.c
g_cmds.c:220:15: warning: initialization of 'void (*)()' from incompatible pointer type 'qboolean (*)(edict_t *)' {aka 'enum <anonymous> (*)(struct edict_s *)'} [-Wincompatible-pointer-types]
  220 |  "scope",  2, Cmd_Scope_f,
      |               ^~~~~~~~~~~
g_cmds.c:220:15: note: (near initialization for 'id_GameCmds[28].cmdfunc')
gcc -Dstricmp=strcasecmp -g -fPIC -o g_combat.o -c g_combat.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_ents.o -c g_ents.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_func.o -c g_func.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_items.o -c g_items.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_main.o -c g_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_maps.o -c g_maps.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_misc.o -c g_misc.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_monster.o -c g_monster.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_objectives.o -c g_objectives.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_phys.o -c g_phys.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_save.o -c g_save.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_spawn.o -c g_spawn.c
g_spawn.c: In function 'ED_ParseEdict':
g_spawn.c:569:25: warning: passing argument 1 of 'COM_Parse' from incompatible pointer type [-Wincompatible-pointer-types]
  569 |   com_token = COM_Parse(&data);
      |                         ^~~~~
      |                         |
      |                         char **
In file included from g_local.h:30,
                 from g_spawn.c:28:
q_shared.h:252:7: note: expected 'const char **' but argument is of type 'char **'
  252 | char* COM_Parse(const char** data_p);
      |       ^~~~~~~~~
g_spawn.c:578:25: warning: passing argument 1 of 'COM_Parse' from incompatible pointer type [-Wincompatible-pointer-types]
  578 |   com_token = COM_Parse(&data);
      |                         ^~~~~
      |                         |
      |                         char **
In file included from g_local.h:30,
                 from g_spawn.c:28:
q_shared.h:252:7: note: expected 'const char **' but argument is of type 'char **'
  252 | char* COM_Parse(const char** data_p);
      |       ^~~~~~~~~
g_spawn.c: In function 'SpawnEntities':
g_spawn.c:698:25: warning: passing argument 1 of 'COM_Parse' from incompatible pointer type [-Wincompatible-pointer-types]
  698 |   com_token = COM_Parse(&entities);
      |                         ^~~~~~~~~
      |                         |
      |                         char **
In file included from g_local.h:30,
                 from g_spawn.c:28:
q_shared.h:252:7: note: expected 'const char **' but argument is of type 'char **'
  252 | char* COM_Parse(const char** data_p);
      |       ^~~~~~~~~
g_spawn.c: In function 'SpawnEntities2':
g_spawn.c:1022:25: warning: passing argument 1 of 'COM_Parse' from incompatible pointer type [-Wincompatible-pointer-types]
 1022 |   com_token = COM_Parse(&entities);
      |                         ^~~~~~~~~
      |                         |
      |                         char **
In file included from g_local.h:30,
                 from g_spawn.c:28:
q_shared.h:252:7: note: expected 'const char **' but argument is of type 'char **'
  252 | char* COM_Parse(const char** data_p);
      |       ^~~~~~~~~
gcc -Dstricmp=strcasecmp -g -fPIC -o g_svcmds.o -c g_svcmds.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_target.o -c g_target.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_trigger.o -c g_trigger.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_turret.o -c g_turret.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_utils.o -c g_utils.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_weapon.o -c g_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o m_actor.o -c m_actor.c
gcc -Dstricmp=strcasecmp -g -fPIC -o m_civilian.o -c m_civilian.c
gcc -Dstricmp=strcasecmp -g -fPIC -o m_flash.o -c m_flash.c
gcc -Dstricmp=strcasecmp -g -fPIC -o m_insane.o -c m_insane.c
gcc -Dstricmp=strcasecmp -g -fPIC -o m_move.o -c m_move.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_classes.o -c p_classes.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_client.o -c p_client.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_generic_wep.o -c p_generic_wep.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_hud.o -c p_hud.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_menu.o -c p_menu.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_observer.o -c p_observer.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_trail.o -c p_trail.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_view.o -c p_view.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_weapon.o -c p_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o q_shared.o -c q_shared.c
gcc -Dstricmp=strcasecmp -g -fPIC -o u_entmgr.o -c u_entmgr.c
gcc -Dstricmp=strcasecmp -g -fPIC -o x_fbomb.o -c x_fbomb.c
gcc -Dstricmp=strcasecmp -g -fPIC -o x_fire.o -c x_fire.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usa/usa_item.o -c usa/usa_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usa/usa_spawn.o -c usa/usa_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usa/usa_guninfo.o -c usa/usa_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usa/usa_weapon.o -c usa/usa_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usa/usa_main.o -c usa/usa_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o grm/grm_item.o -c grm/grm_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o grm/grm_spawn.o -c grm/grm_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o grm/grm_guninfo.o -c grm/grm_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o grm/grm_weapon.o -c grm/grm_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o grm/grm_main.o -c grm/grm_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o rus/rus_item.o -c rus/rus_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o rus/rus_spawn.o -c rus/rus_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o rus/rus_guninfo.o -c rus/rus_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o rus/rus_weapon.o -c rus/rus_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o rus/rus_main.o -c rus/rus_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o gbr/gbr_item.o -c gbr/gbr_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o gbr/gbr_spawn.o -c gbr/gbr_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o gbr/gbr_guninfo.o -c gbr/gbr_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o gbr/gbr_weapon.o -c gbr/gbr_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o gbr/gbr_main.o -c gbr/gbr_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o jpn/jpn_item.o -c jpn/jpn_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o jpn/jpn_spawn.o -c jpn/jpn_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o jpn/jpn_guninfo.o -c jpn/jpn_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o jpn/jpn_weapon.o -c jpn/jpn_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o jpn/jpn_main.o -c jpn/jpn_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usm/usm_item.o -c usm/usm_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usm/usm_spawn.o -c usm/usm_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usm/usm_guninfo.o -c usm/usm_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usm/usm_weapon.o -c usm/usm_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usm/usm_main.o -c usm/usm_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ita/ita_item.o -c ita/ita_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ita/ita_spawn.o -c ita/ita_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ita/ita_guninfo.o -c ita/ita_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ita/ita_weapon.o -c ita/ita_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ita/ita_main.o -c ita/ita_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o pol/pol_item.o -c pol/pol_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o pol/pol_spawn.o -c pol/pol_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o pol/pol_guninfo.o -c pol/pol_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o pol/pol_weapon.o -c pol/pol_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o pol/pol_main.o -c pol/pol_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/bot_common.o -c ai/bot_common.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/bot_spawn.o -c ai/bot_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_weapons.o -c ai/ai_weapons.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_tools.o -c ai/ai_tools.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_nodes.o -c ai/ai_nodes.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_navigation.o -c ai/ai_navigation.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_movement.o -c ai/ai_movement.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_links.o -c ai/ai_links.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_items.o -c ai/ai_items.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_dropnodes.o -c ai/ai_dropnodes.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_class_dmbot.o -c ai/ai_class_dmbot.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_class_monster_default.o -c ai/ai_class_monster_default.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/AStar.o -c ai/AStar.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_main.o -c ai/ai_main.c
make gbrarm.so -C gbr -f ../Makefile.country COUNTRY_CODE=gbr
make[2]: Entering directory '/home/alarm/dday/gbr'
gcc -Dstricmp=strcasecmp -g -shared -o gbrarm.so gbr_item.o gbr_spawn.o gbr_guninfo.o gbr_weapon.o gbr_main.o 
make[2]: Leaving directory '/home/alarm/dday/gbr'
make grmarm.so -C grm -f ../Makefile.country COUNTRY_CODE=grm
make[2]: Entering directory '/home/alarm/dday/grm'
gcc -Dstricmp=strcasecmp -g -shared -o grmarm.so grm_item.o grm_spawn.o grm_guninfo.o grm_weapon.o grm_main.o 
make[2]: Leaving directory '/home/alarm/dday/grm'
make itaarm.so -C ita -f ../Makefile.country COUNTRY_CODE=ita
make[2]: Entering directory '/home/alarm/dday/ita'
gcc -Dstricmp=strcasecmp -g -shared -o itaarm.so ita_item.o ita_spawn.o ita_guninfo.o ita_weapon.o ita_main.o 
make[2]: Leaving directory '/home/alarm/dday/ita'
make jpnarm.so -C jpn -f ../Makefile.country COUNTRY_CODE=jpn
make[2]: Entering directory '/home/alarm/dday/jpn'
gcc -Dstricmp=strcasecmp -g -shared -o jpnarm.so jpn_item.o jpn_spawn.o jpn_guninfo.o jpn_weapon.o jpn_main.o 
make[2]: Leaving directory '/home/alarm/dday/jpn'
make polarm.so -C pol -f ../Makefile.country COUNTRY_CODE=pol
make[2]: Entering directory '/home/alarm/dday/pol'
gcc -Dstricmp=strcasecmp -g -shared -o polarm.so pol_item.o pol_spawn.o pol_guninfo.o pol_weapon.o pol_main.o 
make[2]: Leaving directory '/home/alarm/dday/pol'
make rusarm.so -C rus -f ../Makefile.country COUNTRY_CODE=rus
make[2]: Entering directory '/home/alarm/dday/rus'
gcc -Dstricmp=strcasecmp -g -shared -o rusarm.so rus_item.o rus_spawn.o rus_guninfo.o rus_weapon.o rus_main.o 
make[2]: Leaving directory '/home/alarm/dday/rus'
make usaarm.so -C usa -f ../Makefile.country COUNTRY_CODE=usa
make[2]: Entering directory '/home/alarm/dday/usa'
gcc -Dstricmp=strcasecmp -g -shared -o usaarm.so usa_item.o usa_spawn.o usa_guninfo.o usa_weapon.o usa_main.o 
make[2]: Leaving directory '/home/alarm/dday/usa'
make usmarm.so -C usm -f ../Makefile.country COUNTRY_CODE=usm
make[2]: Entering directory '/home/alarm/dday/usm'
gcc -Dstricmp=strcasecmp -g -shared -o usmarm.so usm_item.o usm_spawn.o usm_guninfo.o usm_weapon.o usm_main.o 
make[2]: Leaving directory '/home/alarm/dday/usm'
make aiarm.so -C ai
make[2]: Entering directory '/home/alarm/dday/ai'
gcc -Dstricmp=strcasecmp -g -shared -o aiarm.so bot_common.o bot_spawn.o ai_weapons.o ai_tools.o ai_nodes.o ai_navigation.o ai_movement.o ai_links.o ai_items.o ai_dropnodes.o ai_class_dmbot.o ai_class_monster_default.o AStar.o ai_main.o -ldl -lm
make[2]: Leaving directory '/home/alarm/dday/ai'
gcc -Dstricmp=strcasecmp -g -shared -o gamearm.real.so g_ai.o g_arty.o g_cmds.o g_combat.o g_ents.o g_func.o g_items.o g_main.o g_maps.o g_misc.o g_monster.o g_objectives.o g_phys.o g_save.o g_spawn.o g_svcmds.o g_target.o g_trigger.o g_turret.o g_utils.o g_weapon.o m_actor.o m_civilian.o m_flash.o m_insane.o m_move.o p_classes.o p_client.o p_generic_wep.o p_hud.o p_menu.o p_observer.o p_trail.o p_view.o p_weapon.o q_shared.o u_entmgr.o x_fbomb.o x_fire.o usa/usa_item.o  usa/usa_spawn.o usa/usa_guninfo.o usa/usa_weapon.o usa/usa_main.o grm/grm_item.o  grm/grm_spawn.o grm/grm_guninfo.o grm/grm_weapon.o grm/grm_main.o rus/rus_item.o  rus/rus_spawn.o rus/rus_guninfo.o rus/rus_weapon.o rus/rus_main.o gbr/gbr_item.o  gbr/gbr_spawn.o gbr/gbr_guninfo.o gbr/gbr_weapon.o gbr/gbr_main.o jpn/jpn_item.o  jpn/jpn_spawn.o jpn/jpn_guninfo.o jpn/jpn_weapon.o jpn/jpn_main.o usm/usm_item.o  usm/usm_spawn.o usm/usm_guninfo.o usm/usm_weapon.o usm/usm_main.o ita/ita_item.o  ita/ita_spawn.o ita/ita_guninfo.o ita/ita_weapon.o ita/ita_main.o pol/pol_item.o  pol/pol_spawn.o pol/pol_guninfo.o pol/pol_weapon.o pol/pol_main.o ai/bot_common.o ai/bot_spawn.o ai/ai_weapons.o ai/ai_tools.o ai/ai_nodes.o ai/ai_navigation.o ai/ai_movement.o ai/ai_links.o ai/ai_items.o ai/ai_dropnodes.o ai/ai_class_dmbot.o ai/ai_class_monster_default.o ai/AStar.o ai/ai_main.o -ldl -lm
/usr/bin/ld: warning: size of symbol `grmitems' changed from 2052 in g_ents.o to 1620 in grm/grm_item.o
/usr/bin/ld: warning: size of symbol `gbritems' changed from 2052 in g_ents.o to 1728 in gbr/gbr_item.o
make[1]: Leaving directory '/home/alarm/dday'

x86_64 output (exits unfinished)

dennisf@ranger ~/temp/dday (git)-[master] % make clean
rm -f g_ai.o g_arty.o g_cmds.o g_combat.o g_ents.o g_func.o g_items.o g_main.o g_maps.o g_misc.o g_monster.o g_objectives.o g_phys.o g_save.o g_spawn.o g_svcmds.o g_target.o g_trigger.o g_turret.o g_utils.o g_weapon.o m_actor.o m_civilian.o m_flash.o m_insane.o m_move.o p_classes.o p_client.o p_generic_wep.o p_hud.o p_menu.o p_observer.o p_trail.o p_view.o p_weapon.o q_shared.o u_entmgr.o x_fbomb.o x_fire.o usa/usa_item.o  usa/usa_spawn.o usa/usa_guninfo.o usa/usa_weapon.o usa/usa_main.o grm/grm_item.o  grm/grm_spawn.o grm/grm_guninfo.o grm/grm_weapon.o grm/grm_main.o rus/rus_item.o  rus/rus_spawn.o rus/rus_guninfo.o rus/rus_weapon.o rus/rus_main.o gbr/gbr_item.o  gbr/gbr_spawn.o gbr/gbr_guninfo.o gbr/gbr_weapon.o gbr/gbr_main.o jpn/jpn_item.o  jpn/jpn_spawn.o jpn/jpn_guninfo.o jpn/jpn_weapon.o jpn/jpn_main.o usm/usm_item.o  usm/usm_spawn.o usm/usm_guninfo.o usm/usm_weapon.o usm/usm_main.o ita/ita_item.o  ita/ita_spawn.o ita/ita_guninfo.o ita/ita_weapon.o ita/ita_main.o pol/pol_item.o  pol/pol_spawn.o pol/pol_guninfo.o pol/pol_weapon.o pol/pol_main.o ai/bot_common.o ai/bot_spawn.o ai/ai_weapons.o ai/ai_tools.o ai/ai_nodes.o ai/ai_navigation.o ai/ai_movement.o ai/ai_links.o ai/ai_items.o ai/ai_dropnodes.o ai/ai_class_dmbot.o ai/ai_class_monster_default.o ai/AStar.o ai/ai_main.o
rm -f gamex86_64.real.so
make clean -C gbr -f ../Makefile.country COUNTRY_CODE=gbr
make[1]: Entering directory '/home/dennisf/temp/dday/gbr'
rm -f gbr_item.o gbr_spawn.o gbr_guninfo.o gbr_weapon.o gbr_main.o
rm -f gbrx86_64.so
make[1]: Leaving directory '/home/dennisf/temp/dday/gbr'
make clean -C grm -f ../Makefile.country COUNTRY_CODE=grm
make[1]: Entering directory '/home/dennisf/temp/dday/grm'
rm -f grm_item.o grm_spawn.o grm_guninfo.o grm_weapon.o grm_main.o
rm -f grmx86_64.so
make[1]: Leaving directory '/home/dennisf/temp/dday/grm'
make clean -C ita -f ../Makefile.country COUNTRY_CODE=ita
make[1]: Entering directory '/home/dennisf/temp/dday/ita'
rm -f ita_item.o ita_spawn.o ita_guninfo.o ita_weapon.o ita_main.o
rm -f itax86_64.so
make[1]: Leaving directory '/home/dennisf/temp/dday/ita'
make clean -C jpn -f ../Makefile.country COUNTRY_CODE=jpn
make[1]: Entering directory '/home/dennisf/temp/dday/jpn'
rm -f jpn_item.o jpn_spawn.o jpn_guninfo.o jpn_weapon.o jpn_main.o
rm -f jpnx86_64.so
make[1]: Leaving directory '/home/dennisf/temp/dday/jpn'
make clean -C pol -f ../Makefile.country COUNTRY_CODE=pol
make[1]: Entering directory '/home/dennisf/temp/dday/pol'
rm -f pol_item.o pol_spawn.o pol_guninfo.o pol_weapon.o pol_main.o
rm -f polx86_64.so
make[1]: Leaving directory '/home/dennisf/temp/dday/pol'
make clean -C rus -f ../Makefile.country COUNTRY_CODE=rus
make[1]: Entering directory '/home/dennisf/temp/dday/rus'
rm -f rus_item.o rus_spawn.o rus_guninfo.o rus_weapon.o rus_main.o
rm -f rusx86_64.so
make[1]: Leaving directory '/home/dennisf/temp/dday/rus'
make clean -C usa -f ../Makefile.country COUNTRY_CODE=usa
make[1]: Entering directory '/home/dennisf/temp/dday/usa'
rm -f usa_item.o usa_spawn.o usa_guninfo.o usa_weapon.o usa_main.o
rm -f usax86_64.so
make[1]: Leaving directory '/home/dennisf/temp/dday/usa'
make clean -C usm -f ../Makefile.country COUNTRY_CODE=usm
make[1]: Entering directory '/home/dennisf/temp/dday/usm'
rm -f usm_item.o usm_spawn.o usm_guninfo.o usm_weapon.o usm_main.o
rm -f usmx86_64.so
make[1]: Leaving directory '/home/dennisf/temp/dday/usm'
dennisf@ranger ~/temp/dday (git)-[master] % make
make gamex86_64.real.so CFLAGS="-Dstricmp=strcasecmp -g"
make[1]: Entering directory '/home/dennisf/temp/dday'
gcc -Dstricmp=strcasecmp -g -fPIC -o g_ai.o -c g_ai.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_arty.o -c g_arty.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_cmds.o -c g_cmds.c
g_cmds.c:220:15: warning: initialization of ‘void (*)()’ from incompatible pointer type ‘qboolean (*)(edict_t *)’ {aka ‘qboolean (*)(struct edict_s *)’} [-Wincompatible-pointer-types]
  220 |  "scope",  2, Cmd_Scope_f,
      |               ^~~~~~~~~~~
g_cmds.c:220:15: note: (near initialization for ‘id_GameCmds[28].cmdfunc’)
gcc -Dstricmp=strcasecmp -g -fPIC -o g_combat.o -c g_combat.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_ents.o -c g_ents.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_func.o -c g_func.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_items.o -c g_items.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_main.o -c g_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_maps.o -c g_maps.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_misc.o -c g_misc.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_monster.o -c g_monster.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_objectives.o -c g_objectives.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_phys.o -c g_phys.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_save.o -c g_save.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_spawn.o -c g_spawn.c
g_spawn.c: In function ‘ED_ParseEdict’:
g_spawn.c:569:25: warning: passing argument 1 of ‘COM_Parse’ from incompatible pointer type [-Wincompatible-pointer-types]
  569 |   com_token = COM_Parse(&data);
      |                         ^~~~~
      |                         |
      |                         char **
In file included from g_local.h:30,
                 from g_spawn.c:28:
q_shared.h:252:30: note: expected ‘const char **’ but argument is of type ‘char **’
  252 | char* COM_Parse(const char** data_p);
      |                 ~~~~~~~~~~~~~^~~~~~
g_spawn.c:578:25: warning: passing argument 1 of ‘COM_Parse’ from incompatible pointer type [-Wincompatible-pointer-types]
  578 |   com_token = COM_Parse(&data);
      |                         ^~~~~
      |                         |
      |                         char **
In file included from g_local.h:30,
                 from g_spawn.c:28:
q_shared.h:252:30: note: expected ‘const char **’ but argument is of type ‘char **’
  252 | char* COM_Parse(const char** data_p);
      |                 ~~~~~~~~~~~~~^~~~~~
g_spawn.c: In function ‘SpawnEntities’:
g_spawn.c:698:25: warning: passing argument 1 of ‘COM_Parse’ from incompatible pointer type [-Wincompatible-pointer-types]
  698 |   com_token = COM_Parse(&entities);
      |                         ^~~~~~~~~
      |                         |
      |                         char **
In file included from g_local.h:30,
                 from g_spawn.c:28:
q_shared.h:252:30: note: expected ‘const char **’ but argument is of type ‘char **’
  252 | char* COM_Parse(const char** data_p);
      |                 ~~~~~~~~~~~~~^~~~~~
g_spawn.c: In function ‘SpawnEntities2’:
g_spawn.c:1022:25: warning: passing argument 1 of ‘COM_Parse’ from incompatible pointer type [-Wincompatible-pointer-types]
 1022 |   com_token = COM_Parse(&entities);
      |                         ^~~~~~~~~
      |                         |
      |                         char **
In file included from g_local.h:30,
                 from g_spawn.c:28:
q_shared.h:252:30: note: expected ‘const char **’ but argument is of type ‘char **’
  252 | char* COM_Parse(const char** data_p);
      |                 ~~~~~~~~~~~~~^~~~~~
gcc -Dstricmp=strcasecmp -g -fPIC -o g_svcmds.o -c g_svcmds.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_target.o -c g_target.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_trigger.o -c g_trigger.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_turret.o -c g_turret.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_utils.o -c g_utils.c
gcc -Dstricmp=strcasecmp -g -fPIC -o g_weapon.o -c g_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o m_actor.o -c m_actor.c
gcc -Dstricmp=strcasecmp -g -fPIC -o m_civilian.o -c m_civilian.c
gcc -Dstricmp=strcasecmp -g -fPIC -o m_flash.o -c m_flash.c
gcc -Dstricmp=strcasecmp -g -fPIC -o m_insane.o -c m_insane.c
gcc -Dstricmp=strcasecmp -g -fPIC -o m_move.o -c m_move.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_classes.o -c p_classes.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_client.o -c p_client.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_generic_wep.o -c p_generic_wep.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_hud.o -c p_hud.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_menu.o -c p_menu.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_observer.o -c p_observer.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_trail.o -c p_trail.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_view.o -c p_view.c
gcc -Dstricmp=strcasecmp -g -fPIC -o p_weapon.o -c p_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o q_shared.o -c q_shared.c
gcc -Dstricmp=strcasecmp -g -fPIC -o u_entmgr.o -c u_entmgr.c
gcc -Dstricmp=strcasecmp -g -fPIC -o x_fbomb.o -c x_fbomb.c
gcc -Dstricmp=strcasecmp -g -fPIC -o x_fire.o -c x_fire.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usa/usa_item.o -c usa/usa_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usa/usa_spawn.o -c usa/usa_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usa/usa_guninfo.o -c usa/usa_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usa/usa_weapon.o -c usa/usa_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usa/usa_main.o -c usa/usa_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o grm/grm_item.o -c grm/grm_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o grm/grm_spawn.o -c grm/grm_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o grm/grm_guninfo.o -c grm/grm_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o grm/grm_weapon.o -c grm/grm_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o grm/grm_main.o -c grm/grm_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o rus/rus_item.o -c rus/rus_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o rus/rus_spawn.o -c rus/rus_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o rus/rus_guninfo.o -c rus/rus_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o rus/rus_weapon.o -c rus/rus_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o rus/rus_main.o -c rus/rus_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o gbr/gbr_item.o -c gbr/gbr_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o gbr/gbr_spawn.o -c gbr/gbr_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o gbr/gbr_guninfo.o -c gbr/gbr_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o gbr/gbr_weapon.o -c gbr/gbr_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o gbr/gbr_main.o -c gbr/gbr_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o jpn/jpn_item.o -c jpn/jpn_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o jpn/jpn_spawn.o -c jpn/jpn_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o jpn/jpn_guninfo.o -c jpn/jpn_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o jpn/jpn_weapon.o -c jpn/jpn_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o jpn/jpn_main.o -c jpn/jpn_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usm/usm_item.o -c usm/usm_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usm/usm_spawn.o -c usm/usm_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usm/usm_guninfo.o -c usm/usm_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usm/usm_weapon.o -c usm/usm_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o usm/usm_main.o -c usm/usm_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ita/ita_item.o -c ita/ita_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ita/ita_spawn.o -c ita/ita_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ita/ita_guninfo.o -c ita/ita_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ita/ita_weapon.o -c ita/ita_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ita/ita_main.o -c ita/ita_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o pol/pol_item.o -c pol/pol_item.c
gcc -Dstricmp=strcasecmp -g -fPIC -o pol/pol_spawn.o -c pol/pol_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o pol/pol_guninfo.o -c pol/pol_guninfo.c
gcc -Dstricmp=strcasecmp -g -fPIC -o pol/pol_weapon.o -c pol/pol_weapon.c
gcc -Dstricmp=strcasecmp -g -fPIC -o pol/pol_main.o -c pol/pol_main.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/bot_common.o -c ai/bot_common.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/bot_spawn.o -c ai/bot_spawn.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_weapons.o -c ai/ai_weapons.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_tools.o -c ai/ai_tools.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_nodes.o -c ai/ai_nodes.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_navigation.o -c ai/ai_navigation.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_movement.o -c ai/ai_movement.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_links.o -c ai/ai_links.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_items.o -c ai/ai_items.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_dropnodes.o -c ai/ai_dropnodes.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_class_dmbot.o -c ai/ai_class_dmbot.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_class_monster_default.o -c ai/ai_class_monster_default.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/AStar.o -c ai/AStar.c
gcc -Dstricmp=strcasecmp -g -fPIC -o ai/ai_main.o -c ai/ai_main.c
make gbrx86_64.so -C gbr -f ../Makefile.country COUNTRY_CODE=gbr
make[2]: Entering directory '/home/dennisf/temp/dday/gbr'
gcc -Dstricmp=strcasecmp -g -shared -o gbrx86_64.so gbr_item.o gbr_spawn.o gbr_guninfo.o gbr_weapon.o gbr_main.o 
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1781: multiple definition of `team_list'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1781: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1800: multiple definition of `mapclasslimits'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1800: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1802: multiple definition of `usa_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1802: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1803: multiple definition of `grm_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1803: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1804: multiple definition of `rus_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1804: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1805: multiple definition of `gbr_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1805: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1806: multiple definition of `pol_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1806: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1807: multiple definition of `ita_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1807: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1808: multiple definition of `jpn_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1808: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1809: multiple definition of `usm_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1809: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1848: multiple definition of `camp_spots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1848: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1849: multiple definition of `total_camp_spots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1849: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1850: multiple definition of `num_clients'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1850: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1851: multiple definition of `qbots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1851: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1866: multiple definition of `campaign_spots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1866: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1868: multiple definition of `alliedplatoons'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1868: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1869: multiple definition of `axisplatoons'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1869: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1870: multiple definition of `alliedneedspots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1870: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1871: multiple definition of `axisneedspots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1871: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1873: multiple definition of `campaign_winner'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1873: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:1890: multiple definition of `last_maps_played'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1890: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2036: multiple definition of `no_objectives_left'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2036: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2038: multiple definition of `dropnodes'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2038: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2040: multiple definition of `allied_sandbags'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2040: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2041: multiple definition of `axis_sandbags'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2041: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2043: multiple definition of `votemaps'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2043: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2044: multiple definition of `mapvotes'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2044: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2103: multiple definition of `botchat_taunt'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2103: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2104: multiple definition of `botchat_taunt_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2104: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2105: multiple definition of `botchat_sorry'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2105: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2106: multiple definition of `botchat_sorry_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2106: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2107: multiple definition of `botchat_brag'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2107: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2108: multiple definition of `botchat_brag_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2108: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2109: multiple definition of `botchat_tked'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2109: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2110: multiple definition of `botchat_tked_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2110: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2111: multiple definition of `botchat_insult'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2111: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2112: multiple definition of `botchat_insult_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2112: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2113: multiple definition of `botchat_forgive'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2113: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2114: multiple definition of `botchat_forgive_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2114: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2115: multiple definition of `botchat_random'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2115: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2116: multiple definition of `botchat_random_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2116: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2117: multiple definition of `botchat_killed'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2117: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2118: multiple definition of `botchat_killed_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2118: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2119: multiple definition of `botchat_self'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2119: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2120: multiple definition of `botchat_self_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2120: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2122: multiple definition of `user_shouts'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2122: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_local.h:2123: multiple definition of `user_shout_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2123: first defined here
/usr/bin/ld: gbr_spawn.o:/home/dennisf/temp/dday/gbr/../g_cmds.h:86: multiple definition of `id_GameCmds'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_cmds.h:86: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1781: multiple definition of `team_list'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1781: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1800: multiple definition of `mapclasslimits'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1800: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1802: multiple definition of `usa_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1802: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1803: multiple definition of `grm_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1803: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1804: multiple definition of `rus_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1804: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1805: multiple definition of `gbr_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1805: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1806: multiple definition of `pol_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1806: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1807: multiple definition of `ita_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1807: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1808: multiple definition of `jpn_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1808: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1809: multiple definition of `usm_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1809: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1848: multiple definition of `camp_spots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1848: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1849: multiple definition of `total_camp_spots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1849: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1850: multiple definition of `num_clients'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1850: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1851: multiple definition of `qbots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1851: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1866: multiple definition of `campaign_spots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1866: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1868: multiple definition of `alliedplatoons'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1868: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1869: multiple definition of `axisplatoons'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1869: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1870: multiple definition of `alliedneedspots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1870: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1871: multiple definition of `axisneedspots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1871: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1873: multiple definition of `campaign_winner'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1873: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:1890: multiple definition of `last_maps_played'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1890: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2036: multiple definition of `no_objectives_left'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2036: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2038: multiple definition of `dropnodes'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2038: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2040: multiple definition of `allied_sandbags'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2040: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2041: multiple definition of `axis_sandbags'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2041: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2043: multiple definition of `votemaps'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2043: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2044: multiple definition of `mapvotes'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2044: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2103: multiple definition of `botchat_taunt'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2103: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2104: multiple definition of `botchat_taunt_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2104: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2105: multiple definition of `botchat_sorry'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2105: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2106: multiple definition of `botchat_sorry_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2106: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2107: multiple definition of `botchat_brag'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2107: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2108: multiple definition of `botchat_brag_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2108: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2109: multiple definition of `botchat_tked'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2109: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2110: multiple definition of `botchat_tked_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2110: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2111: multiple definition of `botchat_insult'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2111: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2112: multiple definition of `botchat_insult_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2112: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2113: multiple definition of `botchat_forgive'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2113: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2114: multiple definition of `botchat_forgive_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2114: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2115: multiple definition of `botchat_random'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2115: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2116: multiple definition of `botchat_random_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2116: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2117: multiple definition of `botchat_killed'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2117: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2118: multiple definition of `botchat_killed_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2118: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2119: multiple definition of `botchat_self'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2119: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2120: multiple definition of `botchat_self_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2120: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2122: multiple definition of `user_shouts'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2122: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_local.h:2123: multiple definition of `user_shout_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2123: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/../g_cmds.h:86: multiple definition of `id_GameCmds'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_cmds.h:86: first defined here
/usr/bin/ld: gbr_guninfo.o:/home/dennisf/temp/dday/gbr/gbr_guninfo.c:33: multiple definition of `gbrguninfo'; gbr_item.o:/home/dennisf/temp/dday/gbr/gbr_item.c:40: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1781: multiple definition of `team_list'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1781: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1800: multiple definition of `mapclasslimits'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1800: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1802: multiple definition of `usa_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1802: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1803: multiple definition of `grm_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1803: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1804: multiple definition of `rus_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1804: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1805: multiple definition of `gbr_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1805: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1806: multiple definition of `pol_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1806: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1807: multiple definition of `ita_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1807: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1808: multiple definition of `jpn_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1808: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1809: multiple definition of `usm_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1809: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1848: multiple definition of `camp_spots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1848: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1849: multiple definition of `total_camp_spots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1849: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1850: multiple definition of `num_clients'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1850: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1851: multiple definition of `qbots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1851: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1866: multiple definition of `campaign_spots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1866: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1868: multiple definition of `alliedplatoons'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1868: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1869: multiple definition of `axisplatoons'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1869: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1870: multiple definition of `alliedneedspots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1870: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1871: multiple definition of `axisneedspots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1871: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1873: multiple definition of `campaign_winner'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1873: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:1890: multiple definition of `last_maps_played'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1890: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2036: multiple definition of `no_objectives_left'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2036: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2038: multiple definition of `dropnodes'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2038: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2040: multiple definition of `allied_sandbags'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2040: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2041: multiple definition of `axis_sandbags'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2041: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2043: multiple definition of `votemaps'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2043: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2044: multiple definition of `mapvotes'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2044: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2103: multiple definition of `botchat_taunt'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2103: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2104: multiple definition of `botchat_taunt_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2104: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2105: multiple definition of `botchat_sorry'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2105: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2106: multiple definition of `botchat_sorry_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2106: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2107: multiple definition of `botchat_brag'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2107: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2108: multiple definition of `botchat_brag_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2108: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2109: multiple definition of `botchat_tked'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2109: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2110: multiple definition of `botchat_tked_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2110: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2111: multiple definition of `botchat_insult'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2111: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2112: multiple definition of `botchat_insult_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2112: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2113: multiple definition of `botchat_forgive'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2113: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2114: multiple definition of `botchat_forgive_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2114: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2115: multiple definition of `botchat_random'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2115: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2116: multiple definition of `botchat_random_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2116: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2117: multiple definition of `botchat_killed'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2117: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2118: multiple definition of `botchat_killed_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2118: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2119: multiple definition of `botchat_self'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2119: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2120: multiple definition of `botchat_self_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2120: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2122: multiple definition of `user_shouts'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2122: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_local.h:2123: multiple definition of `user_shout_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2123: first defined here
/usr/bin/ld: gbr_weapon.o:/home/dennisf/temp/dday/gbr/../g_cmds.h:86: multiple definition of `id_GameCmds'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_cmds.h:86: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1781: multiple definition of `team_list'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1781: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1800: multiple definition of `mapclasslimits'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1800: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1802: multiple definition of `usa_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1802: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1803: multiple definition of `grm_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1803: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1804: multiple definition of `rus_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1804: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1805: multiple definition of `gbr_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1805: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1806: multiple definition of `pol_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1806: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1807: multiple definition of `ita_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1807: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1808: multiple definition of `jpn_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1808: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1809: multiple definition of `usm_index'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1809: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1848: multiple definition of `camp_spots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1848: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1849: multiple definition of `total_camp_spots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1849: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1850: multiple definition of `num_clients'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1850: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1851: multiple definition of `qbots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1851: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1866: multiple definition of `campaign_spots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1866: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1868: multiple definition of `alliedplatoons'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1868: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1869: multiple definition of `axisplatoons'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1869: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1870: multiple definition of `alliedneedspots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1870: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1871: multiple definition of `axisneedspots'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1871: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1873: multiple definition of `campaign_winner'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1873: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:1890: multiple definition of `last_maps_played'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:1890: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2036: multiple definition of `no_objectives_left'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2036: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2038: multiple definition of `dropnodes'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2038: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2040: multiple definition of `allied_sandbags'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2040: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2041: multiple definition of `axis_sandbags'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2041: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2043: multiple definition of `votemaps'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2043: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2044: multiple definition of `mapvotes'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2044: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2103: multiple definition of `botchat_taunt'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2103: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2104: multiple definition of `botchat_taunt_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2104: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2105: multiple definition of `botchat_sorry'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2105: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2106: multiple definition of `botchat_sorry_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2106: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2107: multiple definition of `botchat_brag'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2107: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2108: multiple definition of `botchat_brag_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2108: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2109: multiple definition of `botchat_tked'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2109: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2110: multiple definition of `botchat_tked_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2110: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2111: multiple definition of `botchat_insult'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2111: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2112: multiple definition of `botchat_insult_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2112: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2113: multiple definition of `botchat_forgive'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2113: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2114: multiple definition of `botchat_forgive_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2114: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2115: multiple definition of `botchat_random'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2115: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2116: multiple definition of `botchat_random_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2116: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2117: multiple definition of `botchat_killed'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2117: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2118: multiple definition of `botchat_killed_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2118: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2119: multiple definition of `botchat_self'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2119: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2120: multiple definition of `botchat_self_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2120: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2122: multiple definition of `user_shouts'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2122: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_local.h:2123: multiple definition of `user_shout_count'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_local.h:2123: first defined here
/usr/bin/ld: gbr_main.o:/home/dennisf/temp/dday/gbr/../g_cmds.h:86: multiple definition of `id_GameCmds'; gbr_item.o:/home/dennisf/temp/dday/gbr/../g_cmds.h:86: first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [../Makefile.country:78: gbrx86_64.so] Error 1
make[2]: Leaving directory '/home/dennisf/temp/dday/gbr'
make[1]: *** [Makefile:125: gamex86_64.real.so] Error 2
make[1]: Leaving directory '/home/dennisf/temp/dday'
make: *** [Makefile:58: build_debug] Error 2
make  4.79s user 0.87s system 96% cpu 5.869 total

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.