diff --git a/polymer/eduke32/source/config.c b/polymer/eduke32/source/config.c index 153af6ced..793ffc436 100644 --- a/polymer/eduke32/source/config.c +++ b/polymer/eduke32/source/config.c @@ -237,6 +237,7 @@ void CONFIG_SetDefaults( void ) ud.statusbarmode = 0; ud.autovote = 0; ud.automsg = 0; + ud.idplayers = 1; ShowOpponentWeapons = 0; Bstrcpy(ud.rtsname, "DUKE.RTS"); @@ -622,6 +623,7 @@ void CONFIG_ReadSetup( void ) SCRIPT_GetNumber( scripthandle, "Misc", "StatusBarMode",&ud.statusbarmode); SCRIPT_GetNumber( scripthandle, "Misc", "AutoVote",&ud.autovote); SCRIPT_GetNumber( scripthandle, "Misc", "AutoMsg",&ud.automsg); + SCRIPT_GetNumber( scripthandle, "Misc", "IDPlayers",&ud.automsg); dummy = useprecache; SCRIPT_GetNumber( scripthandle, "Misc", "UsePrecache",&dummy); useprecache = dummy != 0; @@ -720,6 +722,7 @@ void CONFIG_WriteSetup( void ) SCRIPT_PutNumber( scripthandle, "Misc", "Crosshairs",ud.crosshair,false,false); SCRIPT_PutNumber( scripthandle, "Misc", "DemoCams",ud.democams,false,false); SCRIPT_PutNumber( scripthandle, "Misc", "Executions",ud.executions,false,false); + SCRIPT_PutNumber( scripthandle, "Misc", "IDPlayers",ud.idplayers,false,false); SCRIPT_PutNumber( scripthandle, "Misc", "MPMessageDisplayTime",ud.msgdisptime,false,false); SCRIPT_PutNumber( scripthandle, "Misc", "RunMode",RunMode,false,false); SCRIPT_PutNumber( scripthandle, "Misc", "ShowFPS",ud.tickrate,false,false); diff --git a/polymer/eduke32/source/duke3d.h b/polymer/eduke32/source/duke3d.h index 4f92371c7..0f840b96b 100644 --- a/polymer/eduke32/source/duke3d.h +++ b/polymer/eduke32/source/duke3d.h @@ -340,7 +340,7 @@ struct user_defs { int32 runkey_mode,statusbarscale,mouseaiming,weaponswitch,drawweapon; // JBF 20031125 int32 brightskins,democams,color,pcolor[MAXPLAYERS],msgdisptime,statusbarmode; - int32 m_noexits,noexits,autovote,automsg; + int32 m_noexits,noexits,autovote,automsg,idplayers; int32 entered_name,screen_tilting,shadows,fta_on,executions,auto_run; int32 coords,tickrate,levelstats,m_coop,coop,screen_size,lockout,crosshair; diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index d7580f2d5..a9aa25782 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -2128,7 +2128,7 @@ void operatefta(void) } else k = 0; - if (ps[screenpeek].ftq == 115 || ps[screenpeek].ftq == 116) + if (ps[screenpeek].ftq == 115 || ps[screenpeek].ftq == 116 || ps[screenpeek].ftq == 117) { k = quotebot-8; /* for(i=0;i>1))<<16,100L<<16,ud.crosshair>1?65536L>>(ud.crosshair-1):65536L,0,CROSSHAIR,0,0,2+1,windowx1,windowy1,windowx2,windowy2); + + if(ud.idplayers) + { + long sx,sy,sz; + short sect,hw,hs; + + hitscan(ps[screenpeek].posx,ps[screenpeek].posy,ps[screenpeek].posz,ps[screenpeek].cursectnum, + sintable[(ps[screenpeek].ang+512)&2047], + sintable[ps[screenpeek].ang&2047], + (100-ps[screenpeek].horiz-ps[screenpeek].horizoff)<<11,§,&hw,&hs,&sx,&sy,&sz,CLIPMASK1); + + if(sprite[hs].picnum == APLAYER) + { + if(ps[screenpeek].fta == 0 || ps[screenpeek].ftq == 117) + { + Bsprintf(fta_quotes[117],"%s",&ud.user_name[sprite[hs].yvel][0]); + ps[screenpeek].fta = 12; + ps[screenpeek].ftq = 117; + } else ps[screenpeek].fta--; + } + } } if(ps[myconnectindex].gm&MODE_TYPE) typemode(); diff --git a/polymer/eduke32/source/gamedef.c b/polymer/eduke32/source/gamedef.c index ff478d245..529b5b5dc 100644 --- a/polymer/eduke32/source/gamedef.c +++ b/polymer/eduke32/source/gamedef.c @@ -807,6 +807,7 @@ LABELS userdefslabels[]= { { "noexits", USERDEFS_NOEXITS, 0, 0 }, { "autovote", USERDEFS_AUTOVOTE, 0, 0 }, { "automsg", USERDEFS_AUTOMSG, 0, 0 }, + { "idplayers", USERDEFS_IDPLAYERS, 0, 0 }, { "", -1, 0, 0 } // END OF LIST }; @@ -5831,6 +5832,66 @@ void loadefs(char *filenam) for(i=0;i<128;i++) if(fta_quotes[i] == NULL) fta_quotes[i] = Bcalloc(MAXQUOTELEN,sizeof(char)); + { + char *ppdeathstrings[] = { + "%^2%s WAS KICKED TO THE CURB BY %s", + "%^2%s WAS PICKED OFF BY %s", + "%^2%s TOOK %s'S SHOT TO THE FACE", + "%^2%s DANCED THE CHAINGUN CHA-CHA WITH %s", + "%^2%s TRIED TO MAKE A BONG OUT OF %s'S ROCKET", + "%^2%s EXPLODED. BLAME %s!", + "%^2%s FELT THE EFFECTS OF %s'S CORPORATE DOWNSIZING", + "%^2%s WAS TOO COOL FOR %s", + "%^2%s EXPANDED HIS HORIZONS WITH HELP FROM %s", + "%^2%s THINKS %s SHOULD CHECK HIS GLASSES", + + "%^2%s TOOK %s'S BOOT TO THE HEAD", + "%^2%s FELL VICTIM TO %s's MAGIC AUTOAIMING PISTOL", + "%^2%s WAS CHASED OFF OF %s'S PORCH", + "%^2%s COULDN'T DANCE FAST ENOUGH FOR %s", + "%^2%s TRIED TO OUTRUN %s'S ROCKET", + "%^2%s FINALLY FOUND %s'S HIDDEN WMDS", + "%^2%s SHOULDN'T HAVE DELETED ALL THE VIAGRA SPAM FROM %s", + "%^2%s HAD TO SIT AND LISTEN TO %s QUOTE TERMINATOR 2 AGAIN", + "%^2%s BECAME A STICKY FILM ON %s'S BOOTS", + "%^2%s WISHES %s HAD PRACTICED BEFORE PLAYING", + + "%^2%s WAS WALKED ALL OVER BY %s", + "%^2%s WAS PICKED OFF BY %s", + "%^2%s MASQUERADED AS QUAIL FOR VICE PRESIDENT %s", + "%^2%s HELPED %s RE-ENACT SCARFACE", + "%^2%s BECAME THE SALSA FOR %s'S CHIPS", + "%^2%s WONDERS WHY %s HATES FREEDOM", + "%^2%s'S HEIGHT DROPPED FASTER THAN %s'S ENRON STOCK", + "%^2%s WENT TO PIECES. %s, HOW COULD YOU?", + "%^2%s EXPANDED HIS HORIZONS WITH HELP FROM %s", + "%^2%s WANTS TO KNOW WHY %s IS EVEN PLAYING COOP", + }; + + char *podeathstrings[] = { + "%^2%s KILLED HIMSELF. WHAT A TOOL!", + "%^2%s TRIED TO LEAVE", + "%^2%s GOT FRAGGED BY A MONSTER. IT WAS PROBABLY A LIZTROOP." + }; + + for(i=0;i<(signed int)(sizeof(ppdeathstrings)/sizeof(ppdeathstrings[0]));i++) + { + if(fta_quotes[i+16300] == NULL) + { + fta_quotes[i+16300] = Bcalloc(MAXQUOTELEN,sizeof(char)); + Bstrcpy(fta_quotes[i+16300],ppdeathstrings[i]); + } + } + + for(i=0;i<(signed int)(sizeof(podeathstrings)/sizeof(podeathstrings[0]));i++) + { + if(fta_quotes[i+16350] == NULL) + { + fta_quotes[i+16350] = Bcalloc(MAXQUOTELEN,sizeof(char)); + Bstrcpy(fta_quotes[i+16350],podeathstrings[i]); + } + } + } } } diff --git a/polymer/eduke32/source/gamedef.h b/polymer/eduke32/source/gamedef.h index 5c8527659..17a1429ab 100644 --- a/polymer/eduke32/source/gamedef.h +++ b/polymer/eduke32/source/gamedef.h @@ -289,7 +289,8 @@ enum userdefslabels { USERDEFS_M_NOEXITS, USERDEFS_NOEXITS, USERDEFS_AUTOVOTE, - USERDEFS_AUTOMSG + USERDEFS_AUTOMSG, + USERDEFS_IDPLAYERS }; enum sectorlabels { diff --git a/polymer/eduke32/source/gameexec.c b/polymer/eduke32/source/gameexec.c index 2b8d5c9c5..41d893543 100644 --- a/polymer/eduke32/source/gameexec.c +++ b/polymer/eduke32/source/gameexec.c @@ -652,6 +652,13 @@ void DoUserDef(char bSet, long lLabelID, long lVar2, short sActor, short sPlayer SetGameVarID((int)lVar2, ud.automsg, sActor, sPlayer); break; + case USERDEFS_IDPLAYERS: + if(bSet) + ud.idplayers = lValue; + else + SetGameVarID((int)lVar2, ud.idplayers, sActor, sPlayer); + break; + default: break; } diff --git a/polymer/eduke32/source/menus.c b/polymer/eduke32/source/menus.c index 5460c13fa..647767ce4 100644 --- a/polymer/eduke32/source/menus.c +++ b/polymer/eduke32/source/menus.c @@ -196,7 +196,7 @@ static int probe_(int type,int x,int y,int i,int n) int probe(int x,int y,int i,int n) { return probe_(0,x,y,i,n); } int probesm(int x,int y,int i,int n) { return probe_(1,x,y,i,n); } -int menutext(int x,int y,short s,short p,char *t) +int menutext_(int x,int y,short s,short p,char *t) { short i, ac, centre; @@ -311,6 +311,11 @@ int menutext(int x,int y,short s,short p,char *t) return (x); } +int menutext(int x,int y,short s,short p,char *t) +{ + return(menutext_(x,y,s,p,strip_color_codes(t))); +} + static void bar_(int type, int x,int y,short *p,short dainc,char damodify,short s, short pa) { short xloc; @@ -2317,7 +2322,7 @@ cheat_for_port_credits: "-", "Automatic voting", "Send MP messages to all", - "-", + "Display other player IDs", "-", "-", "-", @@ -2375,7 +2380,10 @@ cheat_for_port_credits: case 4: if (x==io) ud.automsg = 1-ud.automsg; modval(0,1,(int *)&ud.automsg,1,probey==io); gametextpal(d,yy, ud.automsg ? "On" : "Off", MENUHIGHLIGHT(io), 0); break; - case 5: if (x==io) cmenu(200); break; + case 5: if (x==io) ud.idplayers = 1-ud.idplayers; + modval(0,1,(int *)&ud.idplayers,1,probey==io); + gametextpal(d,yy, ud.idplayers ? "On" : "Off", MENUHIGHLIGHT(io), 0); break; + case 6: if (x==io) cmenu(200); break; default: break; } gametextpal(c,yy, opts[ii], enabled?MENUHIGHLIGHT(io):15, 2); diff --git a/polymer/eduke32/source/osdcmds.c b/polymer/eduke32/source/osdcmds.c index 6ea7a9118..8a2389e84 100644 --- a/polymer/eduke32/source/osdcmds.c +++ b/polymer/eduke32/source/osdcmds.c @@ -444,6 +444,8 @@ struct cvarmappings { { "cl_democams", "cl_democams: enable/disable demo playback cameras", (void*)&ud.democams, CVAR_BOOL, 0, 0, 1 }, { "cl_drawweapon", "cl_drawweapon: enable/disable weapon drawing", (void*)&ud.drawweapon, CVAR_INT, 0, 0, 2 }, + { "cl_idplayers", "cl_idplayers: enable/disable name display when aiming at opponents", (void*)&ud.idplayers, CVAR_BOOL, 0, 0, 1 }, + { "cl_messagetime", "cl_messagetime: length of time to display multiplayer chat messages\n", (void*)&ud.msgdisptime, CVAR_INT, 0, 0, 3600 }, { "cl_showcoords", "cl_showcoords: show your position in the game world", (void*)&ud.coords, CVAR_BOOL, 0, 0, 1 }, diff --git a/polymer/eduke32/source/player.c b/polymer/eduke32/source/player.c index 0f3b35db3..6db1cb479 100644 --- a/polymer/eduke32/source/player.c +++ b/polymer/eduke32/source/player.c @@ -3448,41 +3448,6 @@ void processinput(short snum) { if(p->frag_ps != snum) { - char *s[] = { - "%^2%s WAS KICKED TO THE CURB BY %s", - "%^2%s WAS PICKED OFF BY %s", - "%^2%s TOOK %s'S SHOT TO THE FACE", - "%^2%s DANCED THE CHAINGUN CHA-CHA WITH %s", - "%^2%s TRIED TO MAKE A BONG OUT OF %s'S ROCKET", - "%^2%s EXPLODED. BLAME %s!", - "%^2%s FELT THE EFFECTS OF %s'S CORPORATE DOWNSIZING", - "%^2%s WAS TOO COOL FOR %s", - "%^2%s EXPANDED HIS HORIZONS WITH HELP FROM %s", - "%^2%s THINKS %s SHOULD CHECK HIS GLASSES", - - "%^2%s TOOK %s'S BOOT TO THE HEAD", - "%^2%s FELL VICTIM TO %s's MAGIC AUTOAIMING PISTOL", - "%^2%s WAS CHASED OFF OF %s'S PORCH", - "%^2%s COULDN'T DANCE FAST ENOUGH FOR %s", - "%^2%s TRIED TO OUTRUN %s'S ROCKET", - "%^2%s FINALLY FOUND %s'S HIDDEN WMDS", - "%^2%s SHOULDN'T HAVE DELETED ALL THE VIAGRA SPAM FROM %s", - "%^2%s HAD TO SIT AND LISTEN TO %s QUOTE TERMINATOR 2 AGAIN", - "%^2%s INFLATED FASTER THAN GASOLINE PRICES AND %s POCKETED THE PROFIT", - "%^2%s WISHES %s HAD PRACTICED BEFORE PLAYING", - - "%^2%s WAS WALKED ALL OVER BY %s", - "%^2%s WAS PICKED OFF BY %s", - "%^2%s MASQUERADED AS QUAIL FOR VICE PRESIDENT %s", - "%^2%s HELPED %s RE-ENACT SCARFACE", - "%^2%s BECAME THE SALSA FOR %s'S CHIPS", - "%^2%s WONDERS WHY %s HATES FREEDOM", - "%^2%s'S HEIGHT DROPPED FASTER THAN %s'S ENRON STOCK", - "%^2%s WENT TO PIECES. %s, HOW COULD YOU?", - "%^2%s EXPANDED HIS HORIZONS WITH HELP FROM %s", - "%^2%s WONDERS IF %s WILL EVER KILL ENEMIES, NOT TEAMMATES", - }; - ps[p->frag_ps].frag++; frags[p->frag_ps][snum]++; @@ -3535,7 +3500,7 @@ void processinput(short snum) Bstrcpy(name1,strip_color_codes(&ud.user_name[snum][0])); Bstrcpy(name2,strip_color_codes(&ud.user_name[p->frag_ps][0])); - Bsprintf(tempbuf,s[i+(mulscale(krand(), 3, 16)*10)],name1,name2); + Bsprintf(tempbuf,fta_quotes[16300+i+(mulscale(krand(), 3, 16)*10)],name1,name2); if(ScreenWidth >= 640) adduserquote(tempbuf); else OSD_Printf("%s\n",strip_color_codes(tempbuf)); @@ -3543,12 +3508,6 @@ void processinput(short snum) } else { - char *s[] = { - "%^2%s KILLED HIMSELF. WHAT A TOOL!", - "%^2%s TRIED TO LEAVE", - "%^2%s GOT FRAGGED BY A MONSTER. IT WAS PROBABLY A LIZTROOP." - }; - p->fraggedself++; if(badguypic(sprite[p->wackedbyactor].picnum)) @@ -3557,7 +3516,7 @@ void processinput(short snum) i = 1; else i = 0; - Bsprintf(tempbuf,s[i],strip_color_codes(&ud.user_name[snum][0])); + Bsprintf(tempbuf,fta_quotes[16350+i],strip_color_codes(&ud.user_name[snum][0])); adduserquote(tempbuf); }