From 01d538f9b113e34755bdacb68254463804f0b7b8 Mon Sep 17 00:00:00 2001 From: div0 Date: Wed, 28 Jun 2006 17:31:53 +0000 Subject: [PATCH] centerprints now are managed independently per line git-svn-id: svn://svn.icculus.org/nexuiz/trunk@1687 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/arena.qc | 10 ++++------ data/qcsrc/server/cl_client.qc | 6 +++--- data/qcsrc/server/cl_weapons.qc | 10 ++++++++-- data/qcsrc/server/ctf.qc | 4 ++-- data/qcsrc/server/defs.qh | 1 + data/qcsrc/server/g_damage.qc | 27 ++++++++++++++------------- data/qcsrc/server/g_triggers.qc | 12 ++++++------ data/qcsrc/server/g_world.qc | 1 + data/qcsrc/server/miscfunctions.qc | 1 + data/qcsrc/server/progs.src | 3 +++ data/qcsrc/server/t_items.qc | 3 ++- data/qcsrc/server/t_plats.qc | 4 ++-- data/qcsrc/server/teamplay.qc | 14 ++++++++------ data/qcsrc/server/w_nex.qc | 23 ++++++++++++----------- 14 files changed, 67 insertions(+), 52 deletions(-) diff --git a/data/qcsrc/server/arena.qc b/data/qcsrc/server/arena.qc index 196ad017d..cc11ad73d 100644 --- a/data/qcsrc/server/arena.qc +++ b/data/qcsrc/server/arena.qc @@ -126,18 +126,16 @@ void Arena_Warmup() if(time < warmup && self.spawned) { if(champion) - msg = strcat(msg, "The Champion is ", champion.netname, "^7\n\n\n"); + centermsg_set(CENTERMSG_ARENACHAMP, strcat("The Champion is ", champion.netname)); if(f) - msg = strcat(msg, "Round will start in ", ftos(f)); + centermsg_set(CENTERMSG_ARENATIMER, strcat("Round will start in ", ftos(f))); else { if(self.spawned) - msg = strcat(msg, "^1Fight!"); + centermsg_set(CENTERMSG_ARENATIMER, "^1Fight!"); } - centerprint(self, msg); - if(self.spawned) self.movetype = MOVETYPE_NONE; @@ -149,7 +147,7 @@ void Arena_Warmup() else if(self.movetype == MOVETYPE_NONE) { self.movetype = MOVETYPE_WALK; - centerprint(self, "\n"); + centermsg_reset(); } } diff --git a/data/qcsrc/server/cl_client.qc b/data/qcsrc/server/cl_client.qc index b67a33e29..4a88099c3 100644 --- a/data/qcsrc/server/cl_client.qc +++ b/data/qcsrc/server/cl_client.qc @@ -1361,7 +1361,7 @@ void PlayerPreThink (void) //sprint(self, "distance: ", ftos(self.lms_traveled_distance), "\n"); if(self.lms_traveled_distance < cvar("g_lms_campcheck_distance")) { - centerprint(self, cvar_string("g_lms_campcheck_message")); + centermsg_set(CENTERMSG_CAMP, cvar_string("g_lms_campcheck_message")); // FIXME KadaverJack: gibbing player here causes playermodel to bounce around, instead of eye.md3 // I wasn't able to find out WHY that happens, so I put a workaround in place that shall prevent players from being gibbed :( Damage(self, self, self, bound(0, cvar("g_lms_campcheck_damage"), self.health + self.armorvalue * cvar("g_balance_armor_blockpercent") + 5), DEATH_CAMP, self.origin, '0 0 0'); @@ -1484,7 +1484,7 @@ void PlayerPreThink (void) PutClientInServer(); if(self.flags & !FL_NOTARGET) bprint (strcat("^4", self.netname, "^4 is playing now\n")); - centerprint(self,""); + centermsg_reset(); return; } else { self.flags = self.flags & !FL_JUMPRELEASED; @@ -1517,7 +1517,7 @@ void PlayerPreThink (void) if(cvar("g_campaign")) campaign_bots_may_start = 1; PutClientInServer(); - centerprint(self,""); + centermsg_reset(); return; } else { self.flags = self.flags & !FL_JUMPRELEASED; diff --git a/data/qcsrc/server/cl_weapons.qc b/data/qcsrc/server/cl_weapons.qc index 8aea6bb23..1dd444d9e 100644 --- a/data/qcsrc/server/cl_weapons.qc +++ b/data/qcsrc/server/cl_weapons.qc @@ -395,13 +395,19 @@ void Nixnex_GiveCurrentWeapon() if(dt >= 1 && dt <= 5) self.nixnex_lastinfotime = -42; else - centerprint(self, strcat("\n\n^2Active weapon: ^3", W_Name(nixnex_weapon), "\n")); + { + centermsg_free(CENTERMSG_NIXNEXCOUNT); + centermsg_set(CENTERMSG_NIXNEX, strcat("^2Active weapon: ^3", W_Name(nixnex_weapon))); + } } if(self.nixnex_lastinfotime != dt) { self.nixnex_lastinfotime = dt; // initial value 0 should count as "not seen" if(dt >= 1 && dt <= 5) - centerprint(self, strcat("^3", ftos(dt), "^2 seconds until weapon change...\n\nNext weapon: ^3", W_Name(nixnex_nextweapon), "\n")); + { + centermsg_set(CENTERMSG_NIXNEXCOUNT, strcat("^3", ftos(dt), "^2 seconds until weapon change...")); + centermsg_set(CENTERMSG_NIXNEX, strcat("Next weapon: ^3", W_Name(nixnex_nextweapon))); + } } if(cvar("g_use_ammunition") && time > self.nixnex_nextincr) diff --git a/data/qcsrc/server/ctf.qc b/data/qcsrc/server/ctf.qc index ba261190a..f459de800 100644 --- a/data/qcsrc/server/ctf.qc +++ b/data/qcsrc/server/ctf.qc @@ -274,7 +274,7 @@ void() FlagTouch = player = find(world, classname, "player"); while(player) { - if(player.team == self.team) centerprint(player, "The enemy got your flag! Retrieve it!"); + if(player.team == self.team) centermsg_setfor(player, CENTERMSG_CTF, "The enemy got your flag! Retrieve it!"); player = find(player, classname, "player"); } @@ -311,7 +311,7 @@ void() FlagTouch = player = find(world, classname, "player"); while(player) { - if(player.team == self.team) centerprint(player, "The enemy got your flag! Retrieve it!"); + if(player.team == self.team) centermsg_setfor(player, CENTERMSG_CTF, "The enemy got your flag! Retrieve it!"); player = find(player, classname, "player"); } } diff --git a/data/qcsrc/server/defs.qh b/data/qcsrc/server/defs.qh index ccb438f04..51610a22a 100644 --- a/data/qcsrc/server/defs.qh +++ b/data/qcsrc/server/defs.qh @@ -255,6 +255,7 @@ float default_player_alpha; .float() customizeentityforclient; .float cvar_cl_playerdetailreduction; .float cvar_cl_nogibs; +.float cvar_scr_centertime; #ifdef ALLOW_VARIABLE_LOD .float modelindex_lod0; diff --git a/data/qcsrc/server/g_damage.qc b/data/qcsrc/server/g_damage.qc index c5392d87e..673d81f70 100644 --- a/data/qcsrc/server/g_damage.qc +++ b/data/qcsrc/server/g_damage.qc @@ -106,11 +106,12 @@ void Obituary (entity attacker, entity targ, float deathtype) m = strcat(m, "^6Pink Team"); else if (targ.team == 13) m = strcat(m, "^3Yellow Team"); - centerprint(targ, m); + centermsg_setfor(targ, CENTERMSG_TEAMCHANGE, m); } else if (deathtype == DEATH_AUTOTEAMCHANGE) { - m = "You have been moved into a different team to improve team balance\nYou are now on: "; + centermsg_setfor(targ, CENTERMSG_TEAMCHANGE, "You have been moved into a different team to improve team balance"); + m = "You are now on: "; if (targ.team == 5) m = strcat(m, "^1Red Team"); else if (targ.team == 14) @@ -119,17 +120,17 @@ void Obituary (entity attacker, entity targ, float deathtype) m = strcat(m, "^6Pink Team"); else if (targ.team == 13) m = strcat(m, "^3Yellow Team"); - centerprint(targ, m); + centermsg_setfor(targ, CENTERMSG_TEAMCHANGE2, m); return; } else if (deathtype == DEATH_CAMP) - centerprint(targ, strcat("^1Die camper!\n\n\n")); + centermsg_setfor(targ, CENTERMSG_DEATH, "^1Die camper!"); else if (deathtype == DEATH_NOAMMO) - centerprint(targ, strcat("^1You were killed for running out of ammo...\n\n\n")); + centermsg_setfor(targ, CENTERMSG_DEATH, "^1You were killed for running out of ammo..."); else if (deathtype == DEATH_ROT) - centerprint(targ, strcat("^1You grew too old without taking your medcine\n\n\n")); + centermsg_setfor(targ, CENTERMSG_DEATH, "^1You grew too old without taking your medcine"); else - centerprint(targ, strcat("^1You killed your own dumb self!\n\n\n")); + centermsg_setfor(targ, CENTERMSG_DEATH, "^1You killed your own dumb self!"); if (deathtype == IT_GRENADE_LAUNCHER) bprint ("^1",s, "^1 detonated\n"); @@ -161,7 +162,7 @@ void Obituary (entity attacker, entity targ, float deathtype) } else if (teamplay && attacker.team == targ.team) { - centerprint(attacker, strcat("^1Moron! You fragged a teammate!\n\n\n")); + centermsg_setfor(attacker, CENTERMSG_DEATH, "^1Moron! You fragged a teammate!"); bprint ("^1", attacker.netname, "^1 mows down a teammate\n"); GiveFrags(attacker, targ, -1); //attacker.frags = attacker.frags - 1; @@ -184,8 +185,8 @@ void Obituary (entity attacker, entity targ, float deathtype) bprint("^1",attacker.netname, "^1 drew first blood", "\n"); } - centerprint(attacker, strcat("^4You fragged ^7", s, "\n\n\n")); - centerprint(targ, strcat("^1You were fragged by ^7", attacker.netname, "\n\n\n")); + centermsg_setfor(attacker, CENTERMSG_KILL, strcat("^4You fragged ^7", s)); + centermsg_setfor(targ, CENTERMSG_DEATH, strcat("^1You were fragged by ^7", attacker.netname)); if (deathtype == IT_LASER) bprint ("^1",s, "^1 was blasted by ", attacker.netname, "\n"); @@ -272,7 +273,7 @@ void Obituary (entity attacker, entity targ, float deathtype) } else { - centerprint(targ, strcat("^1Watch your step!\n\n\n")); + centermsg_setfor(targ, CENTERMSG_DEATH, "^1Watch your step!"); if (deathtype == DEATH_HURTTRIGGER && attacker.message != "") bprint ("^1",s, "^1 ", attacker.message, "\n"); else if (deathtype == DEATH_DROWN) @@ -360,7 +361,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float if (targ.extralives && (deathtype == IT_NEX) && damage) { targ.extralives -= 1; - centerprint(targ, strcat("^3Remaining extra lives: ",ftos(targ.extralives),"\n")); + centermsg_setfor(targ, CENTERMSG_MINSTAGIB, strcat("^3Remaining extra lives: ",ftos(targ.extralives))); damage = 0; targ.armorvalue = targ.extralives; if(clienttype(targ) == CLIENTTYPE_REAL) stuffcmd(targ, "play2 misc/hit.wav\n"); @@ -376,7 +377,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float if (targ != attacker) { if (targ.classname == "player") - centerprint(attacker, "Secondary fire inflicts no damage!\n"); + centermsg_setfor(attacker, CENTERMSG_MINSTAGIB, "Secondary fire inflicts no damage!\n"); damage = 0; force = '0 0 0'; attacker = targ; diff --git a/data/qcsrc/server/g_triggers.qc b/data/qcsrc/server/g_triggers.qc index 2d5dfc108..a8e3e7567 100644 --- a/data/qcsrc/server/g_triggers.qc +++ b/data/qcsrc/server/g_triggers.qc @@ -54,7 +54,7 @@ void() SUB_UseTargets = // if (activator.classname == "player" && self.message != "") { - centerprint (activator, self.message); + centermsg_setfor (activator, CENTERMSG_TRIGGER, self.message); if (!self.noise) sound (activator, CHAN_VOICE, "misc/talk.wav", 1, ATTN_NORM); } @@ -307,20 +307,20 @@ void() counter_use = && (self.spawnflags & SPAWNFLAG_NOMESSAGE) == 0) { if (self.count >= 4) - centerprint (activator, "There are more to go..."); + centermsg_setfor (activator, CENTERMSG_TRIGGER, "There are more to go..."); else if (self.count == 3) - centerprint (activator, "Only 3 more to go..."); + centermsg_setfor (activator, CENTERMSG_TRIGGER, "Only 3 more to go..."); else if (self.count == 2) - centerprint (activator, "Only 2 more to go..."); + centermsg_setfor (activator, CENTERMSG_TRIGGER, "Only 2 more to go..."); else - centerprint (activator, "Only 1 more to go..."); + centermsg_setfor (activator, CENTERMSG_TRIGGER, "Only 1 more to go..."); } return; } if (activator.classname == "player" && (self.spawnflags & SPAWNFLAG_NOMESSAGE) == 0) - centerprint(activator, "Sequence completed!"); + centermsg_setfor(activator, CENTERMSG_TRIGGER, "Sequence completed!"); self.enemy = activator; multi_trigger (); }; diff --git a/data/qcsrc/server/g_world.qc b/data/qcsrc/server/g_world.qc index f97ea63c0..f93fae299 100644 --- a/data/qcsrc/server/g_world.qc +++ b/data/qcsrc/server/g_world.qc @@ -830,6 +830,7 @@ void() CheckRules_Player = // fixme: don't check players; instead check dom_team and ctf_team entities // (div0: and that in CheckRules_World please) + centermsg_check(); }; float checkrules_oneminutewarning; diff --git a/data/qcsrc/server/miscfunctions.qc b/data/qcsrc/server/miscfunctions.qc index 2e2899e15..b7ec72013 100644 --- a/data/qcsrc/server/miscfunctions.qc +++ b/data/qcsrc/server/miscfunctions.qc @@ -396,6 +396,7 @@ void GetCvars(float f) { GetCvars_handleFloat(f, cvar_cl_playerdetailreduction, "cl_playerdetailreduction"); GetCvars_handleFloat(f, cvar_cl_nogibs, "cl_nogibs"); + GetCvars_handleFloat(f, cvar_scr_centertime, "scr_centertime"); } float fexists(string f) diff --git a/data/qcsrc/server/progs.src b/data/qcsrc/server/progs.src index 50d8293c2..ff8871c50 100644 --- a/data/qcsrc/server/progs.src +++ b/data/qcsrc/server/progs.src @@ -8,6 +8,7 @@ defs.qh // Should rename this, it has fields and globals extensions.qh campaign.qh +centermsg.qh ../common/campaign_common.qh ../common/util.qh ../common/util.qc @@ -79,3 +80,5 @@ clientcommands.qc campaign.qc ../common/campaign_file.qc ../common/campaign_setup.qc + +centermsg.qc diff --git a/data/qcsrc/server/t_items.qc b/data/qcsrc/server/t_items.qc index e64a0b9a2..8f1fd2af6 100644 --- a/data/qcsrc/server/t_items.qc +++ b/data/qcsrc/server/t_items.qc @@ -53,7 +53,8 @@ void Item_Touch (void) if (self.ammo_cells) { // play some cool sounds ;) - centerprint(other, "\n"); + centermsg_freefor(other, CENTERMSG_MINSTAGIB); + centermsg_freefor(other, CENTERMSG_MINSTAGIB2); if(other.health <= 5) stuffcmd(other, "play2 announcer/robotic/lastsecond.ogg\n"); else if(other.health < 50) diff --git a/data/qcsrc/server/t_plats.qc b/data/qcsrc/server/t_plats.qc index 7f38b18a4..de5b56d18 100644 --- a/data/qcsrc/server/t_plats.qc +++ b/data/qcsrc/server/t_plats.qc @@ -815,7 +815,7 @@ void() door_touch = if (self.owner.message != "") { if (other.flags & FL_CLIENT) - centerprint (other, self.owner.message); + centermsg_setfor (other, CENTERMSG_TRIGGER, self.owner.message); sound (other, CHAN_VOICE, "misc/talk.wav", 1, ATTN_NORM); } }; @@ -1203,7 +1203,7 @@ void() secret_touch = if (self.message) { if (other.flags & FL_CLIENT) - centerprint (other, self.message); + centermsg_setfor (other, CENTERMSG_TRIGGER, self.message); sound (other, CHAN_BODY, "misc/talk.wav", 1, ATTN_NORM); } }; diff --git a/data/qcsrc/server/teamplay.qc b/data/qcsrc/server/teamplay.qc index 8e6133394..705291d76 100644 --- a/data/qcsrc/server/teamplay.qc +++ b/data/qcsrc/server/teamplay.qc @@ -313,16 +313,16 @@ void PrintWelcomeMessage(entity pl) if(self.classname == "observer") { if(cvar("g_lms") && self.frags <= 0 && self.frags > -666) - return centerprint(self, strcat(newlines, "^1You have no more lives left\nwait for next round\n\n\n^7press attack to spectate other players")); + return centermsg_setall(strcat(newlines, "^1You have no more lives left\nwait for next round\n\n\n^7press attack to spectate other players")); else if(cvar("g_lms") && self.frags == -666) - return centerprint(self, strcat(newlines, "^1Match has already begun\nwait for next round\n\n\n^7press attack to spectate other players")); + return centermsg_setall(strcat(newlines, "^1Match has already begun\nwait for next round\n\n\n^7press attack to spectate other players")); } else if(self.classname == "spectator") { if ((cvar("g_lms") && self.frags < 1) || cvar("g_arena")) - return centerprint(self, strcat(newlines, "spectating ", self.enemy.netname, "\n\n\n^7press attack for next player\npress attack2 for free fly mode")); + return centermsg_setall(strcat(newlines, "spectating ", self.enemy.netname, "\n\n\n^7press attack for next player\npress attack2 for free fly mode")); else - return centerprint(self, strcat(newlines, "spectating ", self.enemy.netname, "\n\n\n^7press jump to play\n^7press attack for next player\npress attack2 for free fly mode")); + return centermsg_setall(strcat(newlines, "spectating ", self.enemy.netname, "\n\n\n^7press jump to play\n^7press attack for next player\npress attack2 for free fly mode")); } @@ -331,7 +331,7 @@ void PrintWelcomeMessage(entity pl) if(cvar("g_campaign")) { - centerprint(pl, campaign_message); + centermsg_setallfor(pl, campaign_message); return; } @@ -405,7 +405,7 @@ void PrintWelcomeMessage(entity pl) s = strzone(s); - centerprint(pl, s); + centermsg_setallfor(pl, s); //sprint(pl, s); strunzone(s); @@ -1048,6 +1048,7 @@ void ShufflePlayerOutOfTeam (float source_team) if(selected.deadflag == DEAD_NO) Damage(selected, selected, selected, 100000, DEATH_AUTOTEAMCHANGE, selected.origin, '0 0 0'); + /* m = "You have been moved into a different team to improve team balance\nYou are now on: "; if (selected.team == 5) m = strcat(m, "^1Red Team"); @@ -1058,6 +1059,7 @@ void ShufflePlayerOutOfTeam (float source_team) else if (selected.team == 13) m = strcat(m, "^3Yellow Team"); centerprint(selected, m); + */ } // part of g_balance_teams_force diff --git a/data/qcsrc/server/w_nex.qc b/data/qcsrc/server/w_nex.qc index f70955648..299eab0da 100644 --- a/data/qcsrc/server/w_nex.qc +++ b/data/qcsrc/server/w_nex.qc @@ -67,67 +67,68 @@ void minstagib_ammocheck (void) { if (self.health == 5) { - centerprint(self, "you're dead now...\n"); + centermsg_set(CENTERMSG_MINSTAGIB, "you're dead now..."); Damage(self, self, self, 5, DEATH_NOAMMO, self.origin, '0 0 0'); stuffcmd(self, "play2 announcer/robotic/terminated.ogg\n"); } if (self.health == 10) { - centerprint(self, "^11^7 second left to find some ammo\n"); + centermsg_set(CENTERMSG_MINSTAGIB, "^11^7 second left to find some ammo"); Damage(self, self, self, 5, DEATH_NOAMMO, self.origin, '0 0 0'); stuffcmd(self, "play2 announcer/robotic/1.ogg\n"); } if (self.health == 20) { - centerprint(self, "^12^7 seconds left to find some ammo\n"); + centermsg_set(CENTERMSG_MINSTAGIB, "^12^7 seconds left to find some ammo"); Damage(self, self, self, 10, DEATH_NOAMMO, self.origin, '0 0 0'); stuffcmd(self, "play2 announcer/robotic/2.ogg\n"); } if (self.health == 30) { - centerprint(self, "^13^7 seconds left to find some ammo\n"); + centermsg_set(CENTERMSG_MINSTAGIB, "^13^7 seconds left to find some ammo"); Damage(self, self, self, 10, DEATH_NOAMMO, self.origin, '0 0 0'); stuffcmd(self, "play2 announcer/robotic/3.ogg\n"); } if (self.health == 40) { - centerprint(self, "^14^7 seconds left to find some ammo\n"); + centermsg_set(CENTERMSG_MINSTAGIB, "^14^7 seconds left to find some ammo"); Damage(self, self, self, 10, DEATH_NOAMMO, self.origin, '0 0 0'); stuffcmd(self, "play2 announcer/robotic/4.ogg\n"); } if (self.health == 50) { - centerprint(self, "^15^7 seconds left to find some ammo\n"); + centermsg_set(CENTERMSG_MINSTAGIB, "^15^7 seconds left to find some ammo"); Damage(self, self, self, 10, DEATH_NOAMMO, self.origin, '0 0 0'); stuffcmd(self, "play2 announcer/robotic/5.ogg\n"); } if (self.health == 60) { - centerprint(self, "^36^7 seconds left to find some ammo\n"); + centermsg_set(CENTERMSG_MINSTAGIB, "^36^7 seconds left to find some ammo"); Damage(self, self, self, 10, DEATH_NOAMMO, self.origin, '0 0 0'); stuffcmd(self, "play2 announcer/robotic/6.ogg\n"); } if (self.health == 70) { - centerprint(self, "^37^7 seconds left to find some ammo\n"); + centermsg_set(CENTERMSG_MINSTAGIB, "^37^7 seconds left to find some ammo"); Damage(self, self, self, 10, DEATH_NOAMMO, self.origin, '0 0 0'); stuffcmd(self, "play2 announcer/robotic/7.ogg\n"); } if (self.health == 80) { - centerprint(self, "^38^7 seconds left to find some ammo\n"); + centermsg_set(CENTERMSG_MINSTAGIB, "^38^7 seconds left to find some ammo"); Damage(self, self, self, 10, DEATH_NOAMMO, self.origin, '0 0 0'); stuffcmd(self, "play2 announcer/robotic/8.ogg\n"); } if (self.health == 90) { - centerprint(self, "^39^7 seconds left to find some ammo\n"); + centermsg_set(CENTERMSG_MINSTAGIB, "^39^7 seconds left to find some ammo"); Damage(self, self, self, 10, DEATH_NOAMMO, self.origin, '0 0 0'); stuffcmd(self, "play2 announcer/robotic/9.ogg\n"); } if (self.health == 100) { - centerprint(self, "get some ammo or\nyou'll be dead in ^310^7 seconds..."); + centermsg_set(CENTERMSG_MINSTAGIB, "get some ammo or"); + centermsg_set(CENTERMSG_MINSTAGIB2, "you'll be dead in ^310^7 seconds..."); Damage(self, self, self, 10, DEATH_NOAMMO, self.origin, '0 0 0'); stuffcmd(self, "play2 announcer/robotic/10.ogg\n"); } -- 2.39.2