## ETPub PCR alpha hacks (etpub_pcr_ah) ## (C) 2006-2007 PatheticCockroach.com ## This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License ## Derivative works may only be done if they are distributed with their source code. ## ## The original etpub_pcr_ah source and binaries can be found around http://www.patheticcockroach.com/etserver/etpub_pcr.php ## ## Note : ETPub PCR alpha hacks are just small modifications for ETPub (http://www.etpub.org) Changed some layout to let the player know he's using etpub_pcr_ah (and what version he's using) cg_showVersions : boolean, client side 0 - don't show versions 1 - show client and server versions in the top-left corner Default : 1 ------------------------- MODIFICATION STARTS HERE src\cgame\cg_local.h (line 2513) **** AFTER // PatheticCockroach - class iconization extern vmCvar_t cg_icon4class; **** ADD // display client and server versions extern vmCvar_t cg_showVersions; src\cgame\cg_main.c (line 345) **** AFTER // PatheticCockroach - class iconization vmCvar_t cg_icon4class; **** ADD // display client and server versions vmCvar_t cg_showVersions; (line 642) **** AFTER // PatheticCockroach - class iconization { &cg_icon4class, "cg_icon4class", "1", 0 }, **** ADD // display client and server versions { &cg_showVersions, "cg_showVersions", "1", 0 }, src\cgame\cg_loadpanel.c : (line 296) **** REPLACE CG_Text_Paint_Centred_Ext( 540, y, 0.22f, 0.22f, clr3, "etpubc " ETPUBC_VERSION, 0, 0, 0, &bg_loadscreenfont1 ); **** WITH CG_Text_Paint_Centred_Ext( 540, y, 0.22f, 0.22f, clr3, "^dETPub_PCR_AH^9 rev " ETPUB_PCR_AH_REV, 0, 0, 0, &bg_loadscreenfont1 ); src\cgame\etpubc.h : (line 4) **** AFTER #define ETPUBC_VERSION "20070213" **** ADD #define ETPUB_PCR_AH_REV "66" src\cgame\cg_local.h (line 2243) **** AFTER // tjw: etpub server version int etpub; **** ADD // etpub_pcr_ah server version char etpub_pcr_ah[30]; src\cgame\cg_serevrcmds.c (line 383) **** AFTER s = Info_ValueForKey(info, "etpub"); etpub = ETPUB_VERSION(atoi(a), atoi(b), atoi(c)); **** ADD Q_strncpyz(cgs.etpub_pcr_ah, s, sizeof(cgs.etpub_pcr_ah)); src\cgame\cg_draw.c : (line 5197) **** REPLACE //bani void CG_DrawDemoRecording( void ) { char status[1024]; char demostatus[128]; char wavestatus[128]; // tjw: cl_demorecording, cl_demooffset, and cl_demofilename cvars // are always referencing garbage in OSX. // The etmain client doesn't seem to have this problem and the // game engine shows the correct values... Very strange. // BTW, this is a dirty hack. #if defined(__MACOS__) { char demorecording[2] = {"0"}; trap_Cvar_VariableStringBuffer("cl_demorecording", demorecording, sizeof(demorecording)); if(demorecording[0] == '1') { CG_Text_Paint_Ext(5, cg_recording_statusline.integer, 0.2f, 0.2f, colorWhite, "recording demo, /stoprecord to finish", 0, 0, 0, &cgs.media.font3 ); } return; } #endif if( !cl_demorecording.integer && !cl_waverecording.integer ) { return; } if( !cg_recording_statusline.integer ) { return; } if( cl_demorecording.integer ) { Com_sprintf( demostatus, sizeof( demostatus ), " demo %s: %ik ", cl_demofilename.string, cl_demooffset.integer / 1024 ); } else { strncpy( demostatus, "", sizeof( demostatus ) ); } if( cl_waverecording.integer ) { Com_sprintf( wavestatus, sizeof( demostatus ), " audio %s: %ik ", cl_wavefilename.string, cl_waveoffset.integer / 1024 ); } else { strncpy( wavestatus, "", sizeof( wavestatus ) ); } Com_sprintf( status, sizeof( status ), "RECORDING%s%s", demostatus, wavestatus ); CG_Text_Paint_Ext( 5, cg_recording_statusline.integer, 0.2f, 0.2f, colorWhite, status, 0, 0, 0, &cgs.media.font3 ); } **** WITH //bani void CG_DrawDemoRecording( void ) { char status[1024]; char demostatus[128]; char wavestatus[128]; // tjw: cl_demorecording, cl_demooffset, and cl_demofilename cvars // are always referencing garbage in OSX. // The etmain client doesn't seem to have this problem and the // game engine shows the correct values... Very strange. // BTW, this is a dirty hack. #if defined(__MACOS__) { char demorecording[2] = {"0"}; trap_Cvar_VariableStringBuffer("cl_demorecording", demorecording, sizeof(demorecording)); if(demorecording[0] == '1') { CG_Text_Paint_Ext(5, cg_recording_statusline.integer, 0.2f, 0.2f, colorWhite, "recording demo, /stoprecord to finish", 0, 0, 0, &cgs.media.font3 ); } else if (cg_showVersions.integer==1) CG_Text_Paint_Ext( 5, cg_recording_statusline.integer, 0.2f, 0.2f, colorWhite, va("^detpub_pcr_ah^9, client rev " ETPUB_PCR_AH_REV ", server %s", cgs.etpub_pcr_ah), 0, 0, 0, &cgs.media.font3 ); return; } #endif if( (!cl_demorecording.integer && !cl_waverecording.integer) || !cg_recording_statusline.integer ) { if (cg_showVersions.integer==1) CG_Text_Paint_Ext( 5, cg_recording_statusline.integer, 0.2f, 0.2f, colorWhite, va("^detpub_pcr_ah^9, client rev " ETPUB_PCR_AH_REV ", server %s", cgs.etpub_pcr_ah), 0, 0, 0, &cgs.media.font3 ); return; } if( cl_demorecording.integer ) { Com_sprintf( demostatus, sizeof( demostatus ), " demo %s: %ik ", cl_demofilename.string, cl_demooffset.integer / 1024 ); } else { strncpy( demostatus, "", sizeof( demostatus ) ); } if( cl_waverecording.integer ) { Com_sprintf( wavestatus, sizeof( demostatus ), " audio %s: %ik ", cl_wavefilename.string, cl_waveoffset.integer / 1024 ); } else { strncpy( wavestatus, "", sizeof( wavestatus ) ); } Com_sprintf( status, sizeof( status ), "RECORDING%s%s", demostatus, wavestatus ); CG_Text_Paint_Ext( 5, cg_recording_statusline.integer, 0.2f, 0.2f, colorWhite, status, 0, 0, 0, &cgs.media.font3 ); } etmain\ui\etpub_customize_config.menu (line 44) **** REPLACE SUBWINDOW( 6, 112, (SUBWINDOW_WIDTH), 36, "ETPub PCR alpha hacks" ) MULTI( 8, 128, (SUBWINDOW_WIDTH)-4, 10, "Class display:", .2, 8, "cg_icon4class", cvarFloatList { "Text" 0 "Icons" 1 }, "How player classes are reported in the scoreboard and in-game" ) **** WITH SUBWINDOW( 6, 112, (SUBWINDOW_WIDTH), 46, "ETPub PCR alpha hacks" ) MULTI( 8, 128, (SUBWINDOW_WIDTH)-4, 10, "Class display:", .2, 8, "cg_icon4class", cvarFloatList { "Text" 0 "Icons" 1 }, "How player classes are reported in the scoreboard and in-game" ) MULTI( 8, 140, (SUBWINDOW_WIDTH)-4, 10, "Display versions:", .2, 8, "cg_showVersions", cvarFloatList { "No" 0 "Yes" 1 }, "Display server and client versions at the demo recording emplacement" )