Hello,
Between rev 1480 and 1481 some UI changes were introduced.
Until 1480, all worked fine. Starting with 1481, upon launching the game, the initial menu is fine but the mouse cannot be used (it's stuck in the upper-left corner) altough the menus select/deselect fine while moving the mouse.
Upon entering the first menu item, the display is completely messed up (things/opponet faces appear crowded in the upper-left corner).
I have reproduced this on the following platforms:
- Dell system, RHEL4/i686 with NVidia graphics.
- SUN Ultra 45, Solaris 10 SPARC with remote graphics (Linux).
On both platforms, I use the following cmd-line to start ioquake3:
EXEC_FLAGS="+set fs_basepath ${IOQ3_DIR} +set vm_game 1 +set vm_cgame 1 +set vm_ui 1 +set sv_pure 1 +set ttycon 0 +set com_ansiColor 0 +set r_fullscreen 0"
I haven't had time to investigate further but since this appears to be a big show-stopper, I thought I'd report it here ASAP.
Thanks,
Vincent
Rev 1487 has the same problem. However, as you mentionned, the fno-strict-aliasing fixes the issue (tested on Linux with rev1487, will test on Solaris later tonight). Is there a better fix than a compiler flag?
Thanks,
Vincent
Huge listing. :)
On Linux, I'm using this compiler:
gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-10)
On Solaris/SPARC, I'm using this compiler:
gcc (GCC) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)
Both are from the 3.4 family.. I'm not too worried about the vm_*.c stuff since I think I'm forcing the 'interpreted'VM, right? (I'm using +set vm_ui 1).
I'll try to narrow it down..
I've reverted the previous Makefile patch. -fno-strict-aliasing is on again by default. I didn't notice as my packages build with that option explicitly.
-fno-strict-aliasing could be enabled for cgame/game/ui only. unions sometimes confuse q3lcc, while it cares nothing about strict aliasing, so different code (or macros) would have to be used for gcc and q3lcc versions.
Hello, Between rev 1480 and 1481 some UI changes were introduced. Until 1480, all worked fine. Starting with 1481, upon launching the game, the initial menu is fine but the mouse cannot be used (it's stuck in the upper-left corner) altough the menus select/deselect fine while moving the mouse. Upon entering the first menu item, the display is completely messed up (things/opponet faces appear crowded in the upper-left corner). I have reproduced this on the following platforms: - Dell system, RHEL4/i686 with NVidia graphics. - SUN Ultra 45, Solaris 10 SPARC with remote graphics (Linux). On both platforms, I use the following cmd-line to start ioquake3: EXEC_FLAGS="+set fs_basepath ${IOQ3_DIR} +set vm_game 1 +set vm_cgame 1 +set vm_ui 1 +set sv_pure 1 +set ttycon 0 +set com_ansiColor 0 +set r_fullscreen 0" I haven't had time to investigate further but since this appears to be a big show-stopper, I thought I'd report it here ASAP. Thanks, VincentHere's what I used: $ svn diff SVN/icculus/ioquake3-linux Index: SVN/icculus/ioquake3-linux/trunk/Makefile =================================================================== --- SVN/icculus/ioquake3-linux/trunk/Makefile (revision 1487) +++ SVN/icculus/ioquake3-linux/trunk/Makefile (working copy) @@ -238,7 +238,7 @@ endif BASE_CFLAGS = -Wall -Wimplicit -Wstrict-prototypes \ - -pipe -DUSE_ICON $(shell sdl-config --cflags) + -pipe -DUSE_ICON $(shell sdl-config --cflags) -fno-strict-aliasing ifeq ($(USE_OPENAL),1) BASE_CFLAGS += -DUSE_OPENALYou could try fixing some of the following /potential/ bad type-punns. I'm not sure why you're getting problems on Linux; it works for me. Presumably you're using GCC? tma@abraxas:~/projects/ioq3/trunk/code$ find -iname "*.[ch]" -exec grep -inH "( *[a-zA-Z_]* *\* *) *&" {} \; ./qcommon/vm_ppc.c:1767: *(int *)&image[ programStack + 44] = args[9]; ./qcommon/vm_ppc.c:1768: *(int *)&image[ programStack + 40] = args[8]; ./qcommon/vm_ppc.c:1769: *(int *)&image[ programStack + 36] = args[7]; ./qcommon/vm_ppc.c:1770: *(int *)&image[ programStack + 32] = args[6]; ./qcommon/vm_ppc.c:1771: *(int *)&image[ programStack + 28] = args[5]; ./qcommon/vm_ppc.c:1772: *(int *)&image[ programStack + 24] = args[4]; ./qcommon/vm_ppc.c:1773: *(int *)&image[ programStack + 20] = args[3]; ./qcommon/vm_ppc.c:1774: *(int *)&image[ programStack + 16] = args[2]; ./qcommon/vm_ppc.c:1775: *(int *)&image[ programStack + 12] = args[1]; ./qcommon/vm_ppc.c:1776: *(int *)&image[ programStack + 8 ] = args[0]; ./qcommon/vm_ppc.c:1777: *(int *)&image[ programStack + 4 ] = 0; // return stack ./qcommon/vm_ppc.c:1778: *(int *)&image[ programStack ] = -1; // will terminate the loop on return ./qcommon/vm_ppc.c:1793: (int)image, vm->dataMask, *(int *)&AsmCall /* skip function pointer header */, ./qcommon/vm.c:771: r = VM_CallCompiled( vm, (int*)&callnum ); ./qcommon/vm.c:774: r = VM_CallInterpreted( vm, (int*)&callnum ); ./qcommon/vm_x86_64.c:1093: *(int *)&image[ programStack + 44] = args[9]; ./qcommon/vm_x86_64.c:1094: *(int *)&image[ programStack + 40] = args[8]; ./qcommon/vm_x86_64.c:1095: *(int *)&image[ programStack + 36] = args[7]; ./qcommon/vm_x86_64.c:1096: *(int *)&image[ programStack + 32] = args[6]; ./qcommon/vm_x86_64.c:1097: *(int *)&image[ programStack + 28] = args[5]; ./qcommon/vm_x86_64.c:1098: *(int *)&image[ programStack + 24] = args[4]; ./qcommon/vm_x86_64.c:1099: *(int *)&image[ programStack + 20] = args[3]; ./qcommon/vm_x86_64.c:1100: *(int *)&image[ programStack + 16] = args[2]; ./qcommon/vm_x86_64.c:1101: *(int *)&image[ programStack + 12] = args[1]; ./qcommon/vm_x86_64.c:1102: *(int *)&image[ programStack + 8 ] = args[0]; ./qcommon/vm_x86_64.c:1103: *(int *)&image[ programStack + 4 ] = 0x77777777; // return stack ./qcommon/vm_x86_64.c:1104: *(int *)&image[ programStack ] = -1; // will terminate the loop on return ./qcommon/vm_x86_64.c:1126: Com_Error( ERR_DROP, "opStack corrupted in compiled code (offset %ld)\n", (long int) ((void *) &stack[1] - opStack)); ./qcommon/cm_load.c:626: ((int *)&header)[i] = LittleLong ( ((int *)&header)[i]); ./qcommon/common.c:1159: return ((char *)&emptystring) + sizeof(memblock_t); ./qcommon/common.c:1163: return ((char *)&numberstring[in[0]-'0']) + sizeof(memblock_t); ./qcommon/common.c:3016:acos(*(float*) &i) == -1.#IND0 ./qcommon/q_shared.h:390:#define IS_NAN(x) (((*(int *)&x)&nanmask)==nanmask) ./qcommon/vm_x86.c:1155: *(int *)&image[ programStack + 44] = args[9]; ./qcommon/vm_x86.c:1156: *(int *)&image[ programStack + 40] = args[8]; ./qcommon/vm_x86.c:1157: *(int *)&image[ programStack + 36] = args[7]; ./qcommon/vm_x86.c:1158: *(int *)&image[ programStack + 32] = args[6]; ./qcommon/vm_x86.c:1159: *(int *)&image[ programStack + 28] = args[5]; ./qcommon/vm_x86.c:1160: *(int *)&image[ programStack + 24] = args[4]; ./qcommon/vm_x86.c:1161: *(int *)&image[ programStack + 20] = args[3]; ./qcommon/vm_x86.c:1162: *(int *)&image[ programStack + 16] = args[2]; ./qcommon/vm_x86.c:1163: *(int *)&image[ programStack + 12] = args[1]; ./qcommon/vm_x86.c:1164: *(int *)&image[ programStack + 8 ] = args[0]; ./qcommon/vm_x86.c:1165: *(int *)&image[ programStack + 4 ] = 0; // return stack ./qcommon/vm_x86.c:1166: *(int *)&image[ programStack ] = -1; // will terminate the loop on return ./qcommon/vm_powerpc.c:339: ( (void *)&(((structName *)NULL)->field) - NULL ) ./qcommon/vm_powerpc.c:2126: argPointer = (int *)&image[ programStack + 8 ]; ./qcommon/vm_powerpc.c:2143: entry = (void *)&(vm_dataAndCode->opd); ./qcommon/vm_interpreted.c:158: programStack = *(int *)&vm->dataBase[programStack+4]; ./qcommon/vm_interpreted.c:159: programCounter = *(int *)&vm->dataBase[programStack]; ./qcommon/vm_interpreted.c:366: *(int *)&image[ programStack + 44] = args[9]; ./qcommon/vm_interpreted.c:367: *(int *)&image[ programStack + 40] = args[8]; ./qcommon/vm_interpreted.c:368: *(int *)&image[ programStack + 36] = args[7]; ./qcommon/vm_interpreted.c:369: *(int *)&image[ programStack + 32] = args[6]; ./qcommon/vm_interpreted.c:370: *(int *)&image[ programStack + 28] = args[5]; ./qcommon/vm_interpreted.c:371: *(int *)&image[ programStack + 24] = args[4]; ./qcommon/vm_interpreted.c:372: *(int *)&image[ programStack + 20] = args[3]; ./qcommon/vm_interpreted.c:373: *(int *)&image[ programStack + 16] = args[2]; ./qcommon/vm_interpreted.c:374: *(int *)&image[ programStack + 12] = args[1]; ./qcommon/vm_interpreted.c:375: *(int *)&image[ programStack + 8 ] = args[0]; ./qcommon/vm_interpreted.c:376: *(int *)&image[ programStack + 4 ] = 0; // return stack ./qcommon/vm_interpreted.c:377: *(int *)&image[ programStack ] = -1; // will terminate the loop on return ./qcommon/vm_interpreted.c:451: r0 = *opStack = *(int *)&image[ r0&dataMask ]; ./qcommon/vm_interpreted.c:461: *(int *)&image[ r1&(dataMask & ~3) ] = r0; ./qcommon/vm_interpreted.c:465: *(short *)&image[ r1&(dataMask & ~1) ] = r0; ./qcommon/vm_interpreted.c:475: *(int *)&image[ codeImage[programCounter] + programStack ] = r0; ./qcommon/vm_interpreted.c:492: src = (int *)&image[ srci ]; ./qcommon/vm_interpreted.c:493: dest = (int *)&image[ desti ]; ./qcommon/vm_interpreted.c:503: *(int *)&image[ programStack ] = programCounter; ./qcommon/vm_interpreted.c:523: stomped = *(int *)&image[ programStack + 4 ]; ./qcommon/vm_interpreted.c:525: *(int *)&image[ programStack + 4 ] = -1 - programCounter; ./qcommon/vm_interpreted.c:527://VM_LogSyscalls( (int *)&image[ programStack + 4 ] ); ./qcommon/vm_interpreted.c:529: intptr_t* argptr = (intptr_t *)&image[ programStack + 4 ]; ./qcommon/vm_interpreted.c:536: argarr[i] = *(int*)&image[ programStack + 4 + 4*i ]; ./qcommon/vm_interpreted.c:546: *(int *)&image[ programStack + 4 ] = stomped; ./qcommon/vm_interpreted.c:552: programCounter = *(int *)&image[ programStack ]; ./qcommon/vm_interpreted.c:585: *(int *)&image[programStack+4] = programStack + v1; ./qcommon/vm_interpreted.c:605: programCounter = *(int *)&image[ programStack ]; ./qcommon/net_ip.c:223: ((struct sockaddr_in *)s)->sin_addr.s_addr = *(int *)&a->ip; ./qcommon/net_ip.c:244: *(int *)&a->ip = ((struct sockaddr_in *)s)->sin_addr.s_addr; ./qcommon/net_ip.c:530: net_from->port = *(short *)&net_message->data[8]; ./qcommon/net_ip.c:643: *(int *)&socksBuf[4] = ((struct sockaddr_in *)&addr)->sin_addr.s_addr; ./qcommon/net_ip.c:644: *(short *)&socksBuf[8] = ((struct sockaddr_in *)&addr)->sin_port; ./qcommon/net_ip.c:721: compareip = (byte *) &((struct sockaddr_in *) &localIP[index].addr)->sin_addr.s_addr; ./qcommon/net_ip.c:722: comparemask = (byte *) &((struct sockaddr_in *) &localIP[index].netmask)->sin_addr.s_addr; ./qcommon/net_ip.c:731: compareip = (byte *) &((struct sockaddr_in6 *) &localIP[index].addr)->sin6_addr; ./qcommon/net_ip.c:732: comparemask = (byte *) &((struct sockaddr_in6 *) &localIP[index].netmask)->sin6_addr; ./qcommon/net_ip.c:815: if( setsockopt( newsocket, SOL_SOCKET, SO_BROADCAST, (char *) &i, sizeof(i) ) == SOCKET_ERROR ) { ./qcommon/net_ip.c:842: if( bind( newsocket, (void *)&address, sizeof(address) ) == SOCKET_ERROR ) { ./qcommon/net_ip.c:894: if(setsockopt(newsocket, IPPROTO_IPV6, IPV6_V6ONLY, (char *) &i, sizeof(i)) == SOCKET_ERROR) ./qcommon/net_ip.c:922: if( bind( newsocket, (void *)&address, sizeof(address) ) == SOCKET_ERROR ) { ./qcommon/net_ip.c:999: (char *) &curgroup.ipv6mr_interface, sizeof(curgroup.ipv6mr_interface)) < 0) ./qcommon/net_ip.c:1012: if (setsockopt(multicast6_socket, IPPROTO_IPV6, IPV6_JOIN_GROUP, (char *) &curgroup, sizeof(curgroup))) ./qcommon/net_ip.c:1032: setsockopt(multicast6_socket, IPPROTO_IPV6, IPV6_LEAVE_GROUP, (char *) &curgroup, sizeof(curgroup)); ./qcommon/net_ip.c:1178: *(int *)&buf[4] = INADDR_ANY; ./qcommon/net_ip.c:1179: *(short *)&buf[8] = htons( (short)port ); // port ./qcommon/net_ip.c:1207: ((struct sockaddr_in *)&socksRelayAddr)->sin_addr.s_addr = *(int *)&buf[4]; ./qcommon/net_ip.c:1208: ((struct sockaddr_in *)&socksRelayAddr)->sin_port = *(short *)&buf[8]; ./qcommon/q_math.c:222: ( (byte *)&i )[0] = r * 255; ./qcommon/q_math.c:223: ( (byte *)&i )[1] = g * 255; ./qcommon/q_math.c:224: ( (byte *)&i )[2] = b * 255; ./qcommon/q_math.c:232: ( (byte *)&i )[0] = r * 255; ./qcommon/q_math.c:233: ( (byte *)&i )[1] = g * 255; ./qcommon/q_math.c:234: ( (byte *)&i )[2] = b * 255; ./qcommon/q_math.c:235: ( (byte *)&i )[3] = a * 255; ./jpeg-6b/jmemdos.c:472:#define FIELD_AT(spec,offset,type) (*((type *) &(spec.bytes[offset]))) ./server/sv_main.c:534: if (!Q_strncmp("connect", (char *) &msg->data[4], 7)) { ./server/sv_rankings.c:428: (void*)&s_ranked_players[index], ./server/sv_rankings.c:490: (void*)&s_ranked_players[index], ./server/sv_rankings.c:643: (void*)&s_ranked_players[index], ./server/sv_rankings.c:662: (void*)&s_ranked_players[index], ./server/sv_rankings.c:930: (void*)&(s_ranked_players[i]), ./sdl/sdl_glimp.c:629: qglGetIntegerv( GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, (GLint *)&maxAnisotropy ); ./renderer/tr_surface.c:204: *(int *)&tess.vertexColors[numv] = *(int *)p->verts[ i ].modulate; ./renderer/tr_surface.c:648: newNormalsStorePermute = vec_lvsl(0,(float *)&newXyzScaleVec); ./renderer/tr_shade_calc.c:1195: *(int *)&colors[i*4] = ambientLightInt; ./renderer/tr_animation.c:163: //v = (md4Vertex_t *)( ( byte * )&v->weights[v->numWeights] + 12 ); ./renderer/tr_animation.c:554: v = (mdrVertex_t *)&v->weights[v->numWeights]; ./renderer/tr_shade.c:438: modulatePerm = vec_lvsl(0,(float *)&modulate); ./renderer/tr_shade.c:525: modulateVec = vec_ld(0,(float *)&modulate); ./renderer/tr_shade.c:754: * ( int * )&tess.svars.colors[i] = fog->colorInt; ./renderer/tr_shade.c:845: * ( int * )&tess.svars.colors[i] = fog->colorInt; ./renderer/tr_bsp.c:353: R_ColorShiftLightingBytes( verts[i].color, (byte *)&cv->points[i][7] ); ./renderer/tr_light.c:362: ((byte *)&ent->ambientLightInt)[0] = myftol( ent->ambientLight[0] ); ./renderer/tr_light.c:363: ((byte *)&ent->ambientLightInt)[1] = myftol( ent->ambientLight[1] ); ./renderer/tr_light.c:364: ((byte *)&ent->ambientLightInt)[2] = myftol( ent->ambientLight[2] ); ./renderer/tr_light.c:365: ((byte *)&ent->ambientLightInt)[3] = 0xff; ./renderer/tr_model.c:534: cframe = (mdrCompFrame_t *) &cframe->bones[j]; ./renderer/tr_model.c:535: frame = (mdrFrame_t *) &frame->bones[j]; ./renderer/tr_model.c:888: //v = (md4Vertex_t *)( ( byte * )&v->weights[v->numWeights] + 12 ); ./renderer/tr_model.c:889: v = (md4Vertex_t *)( ( byte * )&v->weights[v->numWeights]); ./renderer/tr_image.c:360: 1 * ((byte *)&in[ ((i*2-1)&inHeightMask)*inWidth + ((j*2-1)&inWidthMask) ])[k] + ./renderer/tr_image.c:361: 2 * ((byte *)&in[ ((i*2-1)&inHeightMask)*inWidth + ((j*2)&inWidthMask) ])[k] + ./renderer/tr_image.c:362: 2 * ((byte *)&in[ ((i*2-1)&inHeightMask)*inWidth + ((j*2+1)&inWidthMask) ])[k] + ./renderer/tr_image.c:363: 1 * ((byte *)&in[ ((i*2-1)&inHeightMask)*inWidth + ((j*2+2)&inWidthMask) ])[k] + ./renderer/tr_image.c:365: 2 * ((byte *)&in[ ((i*2)&inHeightMask)*inWidth + ((j*2-1)&inWidthMask) ])[k] + ./renderer/tr_image.c:366: 4 * ((byte *)&in[ ((i*2)&inHeightMask)*inWidth + ((j*2)&inWidthMask) ])[k] + ./renderer/tr_image.c:367: 4 * ((byte *)&in[ ((i*2)&inHeightMask)*inWidth + ((j*2+1)&inWidthMask) ])[k] + ./renderer/tr_image.c:368: 2 * ((byte *)&in[ ((i*2)&inHeightMask)*inWidth + ((j*2+2)&inWidthMask) ])[k] + ./renderer/tr_image.c:370: 2 * ((byte *)&in[ ((i*2+1)&inHeightMask)*inWidth + ((j*2-1)&inWidthMask) ])[k] + ./renderer/tr_image.c:371: 4 * ((byte *)&in[ ((i*2+1)&inHeightMask)*inWidth + ((j*2)&inWidthMask) ])[k] + ./renderer/tr_image.c:372: 4 * ((byte *)&in[ ((i*2+1)&inHeightMask)*inWidth + ((j*2+1)&inWidthMask) ])[k] + ./renderer/tr_image.c:373: 2 * ((byte *)&in[ ((i*2+1)&inHeightMask)*inWidth + ((j*2+2)&inWidthMask) ])[k] + ./renderer/tr_image.c:375: 1 * ((byte *)&in[ ((i*2+2)&inHeightMask)*inWidth + ((j*2-1)&inWidthMask) ])[k] + ./renderer/tr_image.c:376: 2 * ((byte *)&in[ ((i*2+2)&inHeightMask)*inWidth + ((j*2)&inWidthMask) ])[k] + ./renderer/tr_image.c:377: 2 * ((byte *)&in[ ((i*2+2)&inHeightMask)*inWidth + ((j*2+1)&inWidthMask) ])[k] + ./renderer/tr_image.c:378: 1 * ((byte *)&in[ ((i*2+2)&inHeightMask)*inWidth + ((j*2+2)&inWidthMask) ])[k]; ./tools/asm/q3asm.c:1400: ((int *)&header)[i] = LittleLong( ((int *)&header)[i] ); ./tools/lcc/src/bytecode.c:47: unsigned *p = (unsigned *)&v.d; ./botlib/be_ai_weap.c:182: WriteStructure(fp, &projectileinfo_struct, (char *) &wc->projectileinfo[i]); ./botlib/be_ai_weap.c:187: WriteStructure(fp, &weaponinfo_struct, (char *) &wc->weaponinfo[i]); ./botlib/be_ai_weap.c:245: if (!ReadStructure(source, &weaponinfo_struct, (char *) &weaponinfo)) ./botlib/be_ai_weap.c:271: if (!ReadStructure(source, &projectileinfo_struct, (char *) &wc->projectileinfo[wc->numprojectiles])) ./q3_ui/ui_spskill.c:304: Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.art_frame ); ./q3_ui/ui_spskill.c:305: Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.art_banner ); ./q3_ui/ui_spskill.c:306: Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_baby ); ./q3_ui/ui_spskill.c:307: Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_easy ); ./q3_ui/ui_spskill.c:308: Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_medium ); ./q3_ui/ui_spskill.c:309: Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_hard ); ./q3_ui/ui_spskill.c:310: Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_nightmare ); ./q3_ui/ui_spskill.c:311: Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.art_skillPic ); ./q3_ui/ui_spskill.c:312: Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_back ); ./q3_ui/ui_spskill.c:313: Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_fight ); ./q3_ui/ui_team.c:174: Menu_AddItem( &s_teammain.menu, (void*) &s_teammain.frame ); ./q3_ui/ui_team.c:175: Menu_AddItem( &s_teammain.menu, (void*) &s_teammain.joinred ); ./q3_ui/ui_team.c:176: Menu_AddItem( &s_teammain.menu, (void*) &s_teammain.joinblue ); ./q3_ui/ui_team.c:177: Menu_AddItem( &s_teammain.menu, (void*) &s_teammain.joingame ); ./q3_ui/ui_team.c:178: Menu_AddItem( &s_teammain.menu, (void*) &s_teammain.spectate ); ./q3_ui/ui_sppostgame.c:473: Menu_AddItem( &postgameMenuInfo.menu, ( void * )&postgameMenuInfo.item_menu ); ./q3_ui/ui_sppostgame.c:474: Menu_AddItem( &postgameMenuInfo.menu, ( void * )&postgameMenuInfo.item_again ); ./q3_ui/ui_sppostgame.c:475: Menu_AddItem( &postgameMenuInfo.menu, ( void * )&postgameMenuInfo.item_next ); ./q3_ui/ui_signup.c:252: Menu_AddItem( &s_signup.menu, (void*) &s_signup.frame ); ./q3_ui/ui_signup.c:253: Menu_AddItem( &s_signup.menu, (void*) &s_signup.name ); ./q3_ui/ui_signup.c:254: Menu_AddItem( &s_signup.menu, (void*) &s_signup.name_box ); ./q3_ui/ui_signup.c:255: Menu_AddItem( &s_signup.menu, (void*) &s_signup.password ); ./q3_ui/ui_signup.c:256: Menu_AddItem( &s_signup.menu, (void*) &s_signup.password_box ); ./q3_ui/ui_signup.c:257: Menu_AddItem( &s_signup.menu, (void*) &s_signup.again ); ./q3_ui/ui_signup.c:258: Menu_AddItem( &s_signup.menu, (void*) &s_signup.again_box ); ./q3_ui/ui_signup.c:259: Menu_AddItem( &s_signup.menu, (void*) &s_signup.email ); ./q3_ui/ui_signup.c:260: Menu_AddItem( &s_signup.menu, (void*) &s_signup.email_box ); ./q3_ui/ui_signup.c:261: Menu_AddItem( &s_signup.menu, (void*) &s_signup.signup ); ./q3_ui/ui_signup.c:262: Menu_AddItem( &s_signup.menu, (void*) &s_signup.cancel ); ./q3_ui/ui_rankings.c:390: Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.frame ); ./q3_ui/ui_rankings.c:391: Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.login ); ./q3_ui/ui_rankings.c:392: Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.logout ); ./q3_ui/ui_rankings.c:393: Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.create ); ./q3_ui/ui_rankings.c:394: Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.spectate ); ./q3_ui/ui_rankings.c:395: Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.setup ); ./q3_ui/ui_rankings.c:396: Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.leave ); ./q3_ui/ui_options.c:210: Menu_AddItem( &s_options.menu, ( void * ) &s_options.banner ); ./q3_ui/ui_options.c:211: Menu_AddItem( &s_options.menu, ( void * ) &s_options.framel ); ./q3_ui/ui_options.c:212: Menu_AddItem( &s_options.menu, ( void * ) &s_options.framer ); ./q3_ui/ui_options.c:213: Menu_AddItem( &s_options.menu, ( void * ) &s_options.graphics ); ./q3_ui/ui_options.c:214: Menu_AddItem( &s_options.menu, ( void * ) &s_options.display ); ./q3_ui/ui_options.c:215: Menu_AddItem( &s_options.menu, ( void * ) &s_options.sound ); ./q3_ui/ui_options.c:216: Menu_AddItem( &s_options.menu, ( void * ) &s_options.network ); ./q3_ui/ui_options.c:217: Menu_AddItem( &s_options.menu, ( void * ) &s_options.back ); ./q3_ui/ui_video.c:1120: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.banner ); ./q3_ui/ui_video.c:1121: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.framel ); ./q3_ui/ui_video.c:1122: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.framer ); ./q3_ui/ui_video.c:1124: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.graphics ); ./q3_ui/ui_video.c:1125: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.display ); ./q3_ui/ui_video.c:1126: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.sound ); ./q3_ui/ui_video.c:1127: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.network ); ./q3_ui/ui_video.c:1129: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.list ); ./q3_ui/ui_video.c:1130: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.driver ); ./q3_ui/ui_video.c:1131: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.allow_extensions ); ./q3_ui/ui_video.c:1132: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.mode ); ./q3_ui/ui_video.c:1133: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.colordepth ); ./q3_ui/ui_video.c:1134: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.fs ); ./q3_ui/ui_video.c:1135: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.lighting ); ./q3_ui/ui_video.c:1136: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.geometry ); ./q3_ui/ui_video.c:1137: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.tq ); ./q3_ui/ui_video.c:1138: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.texturebits ); ./q3_ui/ui_video.c:1139: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.filter ); ./q3_ui/ui_video.c:1140: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.driverinfo ); ./q3_ui/ui_video.c:1142: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.back ); ./q3_ui/ui_video.c:1143: Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.apply ); ./q3_ui/ui_rankstatus.c:147: Menu_AddItem( &s_rankstatus.menu, (void*) &s_rankstatus.frame ); ./q3_ui/ui_rankstatus.c:148: Menu_AddItem( &s_rankstatus.menu, (void*) &s_rankstatus.message ); ./q3_ui/ui_rankstatus.c:149: Menu_AddItem( &s_rankstatus.menu, (void*) &s_rankstatus.ok ); ./q3_ui/ui_network.c:230: Menu_AddItem( &networkOptionsInfo.menu, ( void * ) &networkOptionsInfo.banner ); ./q3_ui/ui_network.c:231: Menu_AddItem( &networkOptionsInfo.menu, ( void * ) &networkOptionsInfo.framel ); ./q3_ui/ui_network.c:232: Menu_AddItem( &networkOptionsInfo.menu, ( void * ) &networkOptionsInfo.framer ); ./q3_ui/ui_network.c:233: Menu_AddItem( &networkOptionsInfo.menu, ( void * ) &networkOptionsInfo.graphics ); ./q3_ui/ui_network.c:234: Menu_AddItem( &networkOptionsInfo.menu, ( void * ) &networkOptionsInfo.display ); ./q3_ui/ui_network.c:235: Menu_AddItem( &networkOptionsInfo.menu, ( void * ) &networkOptionsInfo.sound ); ./q3_ui/ui_network.c:236: Menu_AddItem( &networkOptionsInfo.menu, ( void * ) &networkOptionsInfo.network ); ./q3_ui/ui_network.c:237: Menu_AddItem( &networkOptionsInfo.menu, ( void * ) &networkOptionsInfo.rate ); ./q3_ui/ui_network.c:238: Menu_AddItem( &networkOptionsInfo.menu, ( void * ) &networkOptionsInfo.back ); ./q3_ui/ui_controls2.c:282: (menucommon_s *)&s_controls.alwaysrun, ./q3_ui/ui_controls2.c:283: (menucommon_s *)&s_controls.run, ./q3_ui/ui_controls2.c:284: (menucommon_s *)&s_controls.walkforward, ./q3_ui/ui_controls2.c:285: (menucommon_s *)&s_controls.backpedal, ./q3_ui/ui_controls2.c:286: (menucommon_s *)&s_controls.stepleft, ./q3_ui/ui_controls2.c:287: (menucommon_s *)&s_controls.stepright, ./q3_ui/ui_controls2.c:288: (menucommon_s *)&s_controls.moveup, ./q3_ui/ui_controls2.c:289: (menucommon_s *)&s_controls.movedown, ./q3_ui/ui_controls2.c:290: (menucommon_s *)&s_controls.turnleft, ./q3_ui/ui_controls2.c:291: (menucommon_s *)&s_controls.turnright, ./q3_ui/ui_controls2.c:292: (menucommon_s *)&s_controls.sidestep, ./q3_ui/ui_controls2.c:297: (menucommon_s *)&s_controls.attack, ./q3_ui/ui_controls2.c:298: (menucommon_s *)&s_controls.nextweapon, ./q3_ui/ui_controls2.c:299: (menucommon_s *)&s_controls.prevweapon, ./q3_ui/ui_controls2.c:300: (menucommon_s *)&s_controls.autoswitch, ./q3_ui/ui_controls2.c:301: (menucommon_s *)&s_controls.chainsaw, ./q3_ui/ui_controls2.c:302: (menucommon_s *)&s_controls.machinegun, ./q3_ui/ui_controls2.c:303: (menucommon_s *)&s_controls.shotgun, ./q3_ui/ui_controls2.c:304: (menucommon_s *)&s_controls.grenadelauncher, ./q3_ui/ui_controls2.c:305: (menucommon_s *)&s_controls.rocketlauncher, ./q3_ui/ui_controls2.c:306: (menucommon_s *)&s_controls.lightning, ./q3_ui/ui_controls2.c:307: (menucommon_s *)&s_controls.railgun, ./q3_ui/ui_controls2.c:308: (menucommon_s *)&s_controls.plasma, ./q3_ui/ui_controls2.c:309: (menucommon_s *)&s_controls.bfg, ./q3_ui/ui_controls2.c:314: (menucommon_s *)&s_controls.sensitivity, ./q3_ui/ui_controls2.c:315: (menucommon_s *)&s_controls.smoothmouse, ./q3_ui/ui_controls2.c:316: (menucommon_s *)&s_controls.invertmouse, ./q3_ui/ui_controls2.c:317: (menucommon_s *)&s_controls.lookup, ./q3_ui/ui_controls2.c:318: (menucommon_s *)&s_controls.lookdown, ./q3_ui/ui_controls2.c:319: (menucommon_s *)&s_controls.mouselook, ./q3_ui/ui_controls2.c:320: (menucommon_s *)&s_controls.freelook, ./q3_ui/ui_controls2.c:321: (menucommon_s *)&s_controls.centerview, ./q3_ui/ui_controls2.c:322: (menucommon_s *)&s_controls.zoomview, ./q3_ui/ui_controls2.c:323: (menucommon_s *)&s_controls.joyenable, ./q3_ui/ui_controls2.c:324: (menucommon_s *)&s_controls.joythreshold, ./q3_ui/ui_controls2.c:329: (menucommon_s *)&s_controls.showscores, ./q3_ui/ui_controls2.c:330: (menucommon_s *)&s_controls.useitem, ./q3_ui/ui_controls2.c:331: (menucommon_s *)&s_controls.gesture, ./q3_ui/ui_controls2.c:332: (menucommon_s *)&s_controls.chat, ./q3_ui/ui_controls2.c:333: (menucommon_s *)&s_controls.chat2, ./q3_ui/ui_controls2.c:334: (menucommon_s *)&s_controls.chat3, ./q3_ui/ui_controls2.c:335: (menucommon_s *)&s_controls.chat4, ./q3_ui/ui_startserver.c:1469: Menu_AddItem( &s_serveroptions.menu, (void*) &s_serveroptions.punkbuster ); ./q3_ui/ui_sound.c:274: Menu_AddItem( &soundOptionsInfo.menu, ( void * ) &soundOptionsInfo.banner ); ./q3_ui/ui_sound.c:275: Menu_AddItem( &soundOptionsInfo.menu, ( void * ) &soundOptionsInfo.framel ); ./q3_ui/ui_sound.c:276: Menu_AddItem( &soundOptionsInfo.menu, ( void * ) &soundOptionsInfo.framer ); ./q3_ui/ui_sound.c:277: Menu_AddItem( &soundOptionsInfo.menu, ( void * ) &soundOptionsInfo.graphics ); ./q3_ui/ui_sound.c:278: Menu_AddItem( &soundOptionsInfo.menu, ( void * ) &soundOptionsInfo.display ); ./q3_ui/ui_sound.c:279: Menu_AddItem( &soundOptionsInfo.menu, ( void * ) &soundOptionsInfo.sound ); ./q3_ui/ui_sound.c:280: Menu_AddItem( &soundOptionsInfo.menu, ( void * ) &soundOptionsInfo.network ); ./q3_ui/ui_sound.c:281: Menu_AddItem( &soundOptionsInfo.menu, ( void * ) &soundOptionsInfo.sfxvolume ); ./q3_ui/ui_sound.c:282: Menu_AddItem( &soundOptionsInfo.menu, ( void * ) &soundOptionsInfo.musicvolume ); ./q3_ui/ui_sound.c:283: Menu_AddItem( &soundOptionsInfo.menu, ( void * ) &soundOptionsInfo.quality ); ./q3_ui/ui_sound.c:284:// Menu_AddItem( &soundOptionsInfo.menu, ( void * ) &soundOptionsInfo.a3d ); ./q3_ui/ui_sound.c:285: Menu_AddItem( &soundOptionsInfo.menu, ( void * ) &soundOptionsInfo.back ); ./q3_ui/ui_display.c:227: Menu_AddItem( &displayOptionsInfo.menu, ( void * ) &displayOptionsInfo.banner ); ./q3_ui/ui_display.c:228: Menu_AddItem( &displayOptionsInfo.menu, ( void * ) &displayOptionsInfo.framel ); ./q3_ui/ui_display.c:229: Menu_AddItem( &displayOptionsInfo.menu, ( void * ) &displayOptionsInfo.framer ); ./q3_ui/ui_display.c:230: Menu_AddItem( &displayOptionsInfo.menu, ( void * ) &displayOptionsInfo.graphics ); ./q3_ui/ui_display.c:231: Menu_AddItem( &displayOptionsInfo.menu, ( void * ) &displayOptionsInfo.display ); ./q3_ui/ui_display.c:232: Menu_AddItem( &displayOptionsInfo.menu, ( void * ) &displayOptionsInfo.sound ); ./q3_ui/ui_display.c:233: Menu_AddItem( &displayOptionsInfo.menu, ( void * ) &displayOptionsInfo.network ); ./q3_ui/ui_display.c:234: Menu_AddItem( &displayOptionsInfo.menu, ( void * ) &displayOptionsInfo.brightness ); ./q3_ui/ui_display.c:235: Menu_AddItem( &displayOptionsInfo.menu, ( void * ) &displayOptionsInfo.screensize ); ./q3_ui/ui_display.c:236: Menu_AddItem( &displayOptionsInfo.menu, ( void * ) &displayOptionsInfo.back ); ./q3_ui/ui_serverinfo.c:264: Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.banner ); ./q3_ui/ui_serverinfo.c:265: Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.framel ); ./q3_ui/ui_serverinfo.c:266: Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.framer ); ./q3_ui/ui_serverinfo.c:267: Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.add ); ./q3_ui/ui_serverinfo.c:268: Menu_AddItem( &s_serverinfo.menu, (void*) &s_serverinfo.back ); ./q3_ui/ui_connect.c:213: Menu_AddItem( &s_ingame_menu, ( void * ) &s_customize_player_action ); ./q3_ui/ui_login.c:178: Menu_AddItem( &s_login.menu, (void*) &s_login.frame ); ./q3_ui/ui_login.c:179: Menu_AddItem( &s_login.menu, (void*) &s_login.name ); ./q3_ui/ui_login.c:180: Menu_AddItem( &s_login.menu, (void*) &s_login.name_box ); ./q3_ui/ui_login.c:181: Menu_AddItem( &s_login.menu, (void*) &s_login.password ); ./q3_ui/ui_login.c:182: Menu_AddItem( &s_login.menu, (void*) &s_login.password_box ); ./q3_ui/ui_login.c:183: Menu_AddItem( &s_login.menu, (void*) &s_login.login ); ./q3_ui/ui_login.c:184: Menu_AddItem( &s_login.menu, (void*) &s_login.cancel ); ./q3_ui/ui_servers2.c:1555: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.banner ); ./q3_ui/ui_servers2.c:1557: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.master ); ./q3_ui/ui_servers2.c:1558: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.gametype ); ./q3_ui/ui_servers2.c:1559: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.sortkey ); ./q3_ui/ui_servers2.c:1560: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.showfull); ./q3_ui/ui_servers2.c:1561: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.showempty ); ./q3_ui/ui_servers2.c:1563: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.mappic ); ./q3_ui/ui_servers2.c:1564: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.list ); ./q3_ui/ui_servers2.c:1565: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.status ); ./q3_ui/ui_servers2.c:1566: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.statusbar ); ./q3_ui/ui_servers2.c:1567: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.arrows ); ./q3_ui/ui_servers2.c:1568: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.up ); ./q3_ui/ui_servers2.c:1569: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.down ); ./q3_ui/ui_servers2.c:1571: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.remove ); ./q3_ui/ui_servers2.c:1572: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.back ); ./q3_ui/ui_servers2.c:1573: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.specify ); ./q3_ui/ui_servers2.c:1574: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.refresh ); ./q3_ui/ui_servers2.c:1575: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.create ); ./q3_ui/ui_servers2.c:1576: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.go ); ./q3_ui/ui_servers2.c:1578: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.punkbuster ); ./q3_ui/ui_servers2.c:1579: Menu_AddItem( &g_arenaservers.menu, (void*) &g_arenaservers.pblogo ); ./client/cl_cin.c:450: blit8_32( (byte *)&vq8[(*data)*128], status[index], spl ); ./client/cl_cin.c:469: blit4_32( (byte *)&vq4[(*data)*32], status[index], spl ); ./client/cl_cin.c:473: blit2_32( (byte *)&vq2[(*data)*8], status[index], spl ); ./client/cl_cin.c:475: blit2_32( (byte *)&vq2[(*data)*8], status[index]+8, spl ); ./client/cl_cin.c:477: blit2_32( (byte *)&vq2[(*data)*8], status[index]+spl*2, spl ); ./client/cl_cin.c:479: blit2_32( (byte *)&vq2[(*data)*8], status[index]+spl*2+8, spl ); ./client/cl_main.c:381: (char *) &clc.voipOutgoingData[wpos+1], ./client/cl_main.c:2109: NET_OutOfBandData( NS_CLIENT, clc.serverAddress, (byte *) &data[0], i+10 ); ./client/snd_mix.c:262: ((short *)&volume_vec)[0] = leftvol; ./client/snd_mix.c:263: ((short *)&volume_vec)[1] = leftvol; ./client/snd_mix.c:264: ((short *)&volume_vec)[4] = leftvol; ./client/snd_mix.c:265: ((short *)&volume_vec)[5] = leftvol; ./client/snd_mix.c:266: ((short *)&volume_vec)[2] = rightvol; ./client/snd_mix.c:267: ((short *)&volume_vec)[3] = rightvol; ./client/snd_mix.c:268: ((short *)&volume_vec)[6] = rightvol; ./client/snd_mix.c:269: ((short *)&volume_vec)[7] = rightvol;