mirror of
https://github.com/id-Software/quake2-rerelease-dll.git
synced 2025-03-14 12:20:45 +00:00
Some basic messaging cleanup
This commit is contained in:
parent
f45d9e195a
commit
6dc95aed23
3 changed files with 65 additions and 45 deletions
|
@ -964,7 +964,7 @@ void GetAmmo( edict_t *ent, char *buf )
|
|||
{
|
||||
int ammo;
|
||||
|
||||
if( IS_ALIVE(ent) && ent->client->weapon )
|
||||
if( IS_ALIVE(ent) && ent->client->pers.weapon )
|
||||
{
|
||||
switch( ent->client->pers.weapon->id )
|
||||
{
|
||||
|
@ -1055,3 +1055,38 @@ void GetNearbyTeammates( edict_t *self, char *buf )
|
|||
Q_strncatz( buf, nearby_teammates[l]->client->pers.netname, PARSE_BUFSIZE );
|
||||
}
|
||||
}
|
||||
|
||||
// Messaging adjectives/pronouns
|
||||
// Borrowed from https://github.com/VortexQuake2/Vortex, thank you!
|
||||
|
||||
char *GetPossesiveAdjective(edict_t *ent) {
|
||||
int gender = ent->client->pers.gender;
|
||||
char *info;
|
||||
|
||||
switch( gender ) {
|
||||
case GENDER_MALE:
|
||||
return "his";
|
||||
case GENDER_FEMALE:
|
||||
return "her";
|
||||
case GENDER_NEUTRAL:
|
||||
return "its";
|
||||
default:
|
||||
return "their";
|
||||
}
|
||||
}
|
||||
|
||||
char *GetReflexivePronoun(edict_t *ent) {
|
||||
int gender = ent->client->pers.gender;
|
||||
char *info;
|
||||
|
||||
switch( gender ) {
|
||||
case GENDER_MALE:
|
||||
return "himself";
|
||||
case GENDER_FEMALE:
|
||||
return "herself";
|
||||
case GENDER_NEUTRAL:
|
||||
return "itself";
|
||||
default:
|
||||
return "themselves";
|
||||
}
|
||||
}
|
|
@ -1649,6 +1649,10 @@ extern int locOfDeath;
|
|||
extern int stopAP;
|
||||
|
||||
void TransparentListSet (solid_t solid_type);
|
||||
|
||||
char *GetPossesiveAdjective(edict_t *ent);
|
||||
char *GetReflexivePronoun(edict_t *ent);
|
||||
|
||||
// Action Add end
|
||||
|
||||
extern edict_t *g_edicts;
|
||||
|
@ -2815,6 +2819,7 @@ struct client_persistant_t
|
|||
|
||||
// Action Add
|
||||
|
||||
gender_t gender; // For message pronouns, etc.
|
||||
gitem_t *chosenItem; // item for teamplay
|
||||
gitem_t *chosenWeapon; // weapon for teamplay
|
||||
int32_t mk23_mode; // firing mode, semi or auto
|
||||
|
@ -2857,8 +2862,6 @@ struct client_respawn_t
|
|||
// ZOID
|
||||
|
||||
// Action Add
|
||||
// Number of team kills this game
|
||||
gender_t gender;
|
||||
int32_t team_kills;
|
||||
int32_t team_wounds;
|
||||
|
||||
|
|
|
@ -515,91 +515,73 @@ void ClientObituary(edict_t *self, edict_t *inflictor, edict_t *attacker, mod_t
|
|||
{
|
||||
switch (mod.id) {
|
||||
case MOD_HELD_GRENADE:
|
||||
message = "tried to put the pin back in";
|
||||
snprintf(message, sizeof(message), "%s tried to put the pin back in", self->client->pers.netname);
|
||||
break;
|
||||
case MOD_HG_SPLASH:
|
||||
if (self->client->pers.gender == GENDER_MALE)
|
||||
message = "didn't throw his grenade far enough";
|
||||
else if (self->client->pers.gender == GENDER_FEMALE)
|
||||
message = "didn't throw her grenade far enough";
|
||||
else
|
||||
message = "didn't throw its grenade far enough";
|
||||
snprintf(message, sizeof(message), "%s didn't throw %s grenade far enough", self->client->pers.netname, GetPossesiveAdjective(self));
|
||||
break;
|
||||
case MOD_G_SPLASH:
|
||||
if (self->client->pers.gender == GENDER_MALE)
|
||||
message = "tripped on his own grenade";
|
||||
else if (self->client->pers.gender == GENDER_FEMALE)
|
||||
message = "tripped on her own grenade";
|
||||
else
|
||||
message = "tripped on its own grenade";
|
||||
snprintf(message, sizeof(message), "%s tripped on %s own grenade", self->client->pers.netname, GetPossesiveAdjective(self));
|
||||
break;
|
||||
default:
|
||||
if (self->client->pers.gender == GENDER_MALE)
|
||||
message = "killed himself";
|
||||
else if (self->client->pers.gender == GENDER_FEMALE)
|
||||
message = "killed herself";
|
||||
else
|
||||
message = "killed itself";
|
||||
snprintf(message, sizeof(message), "%s killed %s", self->client->pers.netname, GetReflexivePronoun(self));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!message) {
|
||||
switch (mod) {
|
||||
switch (mod.id) {
|
||||
case MOD_BREAKINGGLASS:
|
||||
if( self->client->push_timeout > 40 )
|
||||
special_message = "was thrown through a window by";
|
||||
snprintf(special_message, sizeof(special_message), "%s was thrown through a window by %s",
|
||||
self->client->pers.netname, attacker->client->pers.netname);
|
||||
message = "ate too much glass";
|
||||
break;
|
||||
case MOD_SUICIDE:
|
||||
message = "is done with the world";
|
||||
snprintf(message, sizeof(message), "%s is done with the world", self->client->pers.netname);
|
||||
break;
|
||||
case MOD_FALLING:
|
||||
if( self->client->push_timeout )
|
||||
special_message = "was taught how to fly by";
|
||||
snprintf(special_message, sizeof(special_message), "%s was taught how to fly by %s", self->client->pers.netname, attacker->client->pers.netname);
|
||||
//message = "hit the ground hard, real hard";
|
||||
if (self->client->pers.gender == GENDER_MALE)
|
||||
message = "plummets to his death";
|
||||
else if (self->client->pers.gender == GENDER_FEMALE)
|
||||
message = "plummets to her death";
|
||||
else
|
||||
message = "plummets to its death";
|
||||
snprintf(message, sizeof(message), "%s plummets to %s death", self->client->pers.netname, GetPossesiveAdjective(self));
|
||||
break;
|
||||
case MOD_CRUSH:
|
||||
message = "was flattened";
|
||||
snprintf(message, sizeof(message), "%s was flattened", self->client->pers.netname);
|
||||
break;
|
||||
case MOD_WATER:
|
||||
message = "sank like a rock";
|
||||
snprintf(message, sizeof(message), "%s sank like a rock", self->client->pers.netname);
|
||||
break;
|
||||
case MOD_SLIME:
|
||||
if( self->client->push_timeout )
|
||||
special_message = "melted thanks to";
|
||||
message = "melted";
|
||||
snprintf(special_message, sizeof(special_message), "%s melted thanks to %s", self->client->pers.netname, attacker->client->pers.netname);
|
||||
snprintf(message, sizeof(message), "%s melted", self->client->pers.netname);
|
||||
break;
|
||||
case MOD_LAVA:
|
||||
if( self->client->push_timeout )
|
||||
special_message = "was drop-kicked into the lava by";
|
||||
message = "does a back flip into the lava";
|
||||
snprintf(special_message, sizeof(special_message), "%s was drop-kicked into the lava by %s", self->client->pers.netname, attacker->client->pers.netname);
|
||||
snprintf(message, sizeof(message), "%s does a back flip into the lava", self->client->pers.netname);
|
||||
break;
|
||||
case MOD_EXPLOSIVE:
|
||||
case MOD_BARREL:
|
||||
message = "blew up";
|
||||
snprintf(message, sizeof(message), "%s blew up", self->client->pers.netname);
|
||||
break;
|
||||
case MOD_EXIT:
|
||||
message = "found a way out";
|
||||
snprintf(message, sizeof(message), "%s found a way out", self->client->pers.netname);
|
||||
break;
|
||||
case MOD_TARGET_LASER:
|
||||
message = "saw the light";
|
||||
snprintf(message, sizeof(message), "%s saw the light", self->client->pers.netname);
|
||||
break;
|
||||
case MOD_TARGET_BLASTER:
|
||||
snprintf(message, sizeof(message), "%s got blasted", self->client->pers.netname);
|
||||
message = "got blasted";
|
||||
break;
|
||||
case MOD_BOMB:
|
||||
case MOD_SPLASH:
|
||||
case MOD_TRIGGER_HURT:
|
||||
if( self->client->push_timeout )
|
||||
special_message = "was shoved off the edge by";
|
||||
message = "was in the wrong place";
|
||||
snprintf(special_message, sizeof(special_message), "%s was shoved off the edge by %s", self->client->pers.netname, attacker->client->pers.netname);
|
||||
snprintf(message, sizeof(message), "%s was in the wrong place", self->client->pers.netname);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -626,7 +608,7 @@ void ClientObituary(edict_t *self, edict_t *inflictor, edict_t *attacker, mod_t
|
|||
//MODIFIED FOR FF -FB
|
||||
if (OnSameTeam(self, self->client->attacker))
|
||||
{
|
||||
if (!DMFLAGS(DF_NO_FRIENDLY_FIRE) && (!teamplay->value || team_round_going || !ff_afterround->value)) {
|
||||
if (!g_friendly_fire->integer && (!teamplay->value || team_round_going || !ff_afterround->value)) {
|
||||
self->enemy = self->client->attacker;
|
||||
Add_TeamKill(self->client->attacker);
|
||||
Subtract_Frag(self->client->attacker); //attacker->client->resp.score--;
|
||||
|
@ -672,7 +654,7 @@ void ClientObituary(edict_t *self, edict_t *inflictor, edict_t *attacker, mod_t
|
|||
self->enemy = attacker;
|
||||
if (attacker && attacker->client)
|
||||
{
|
||||
switch (mod) {
|
||||
switch (mod.id) {
|
||||
case MOD_MK23: // zucc
|
||||
switch (loc) {
|
||||
case LOC_HDAM:
|
||||
|
|
Loading…
Reference in a new issue