From 8816244ec329acdd5eb64e0518e69ae77df1cd75 Mon Sep 17 00:00:00 2001 From: Petr Pudlak Date: Sat, 16 Aug 2014 14:26:16 +0200 Subject: Add the ability for humans to heal their team members The medkit handling is moved to a new function G_UseMedkit. If there is a human within a given range that is either more wounded than the player, or poisoned, the medkit is applied to him (see G_NeedsMedkit). The range and the breadth of the action is configurable by cvars. The original patch was used on a server, but this port wasn't tested (only that it compiles). --- src/cgame/cg_event.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/cgame') diff --git a/src/cgame/cg_event.c b/src/cgame/cg_event.c index 2baf545..aa84609 100644 --- a/src/cgame/cg_event.c +++ b/src/cgame/cg_event.c @@ -1228,6 +1228,31 @@ void CG_EntityEvent( centity_t *cent, vec3_t position ) break; case EV_MEDKIT_USED: + // the parameter is the healer's entity number + { + const int healerNum = es->eventParm; + const char *configstring; + const char *name; + + if( healerNum != clientNum ) + { + if( healerNum == cg.clientNum ) + { + configstring = CG_ConfigString( clientNum + CS_PLAYERS ); + // isolate the player's name + name = Info_ValueForKey( configstring, "n" ); + + CG_Printf( S_COLOR_CYAN "You bandaged " S_COLOR_WHITE "%s" S_COLOR_CYAN "'s wounds.\n", name ); + } else if( clientNum == cg.clientNum ) + { + configstring = CG_ConfigString( healerNum + CS_PLAYERS ); + // isolate the player's name + name = Info_ValueForKey( configstring, "n" ); + + CG_Printf( S_COLOR_WHITE "%s" S_COLOR_CYAN " bandaged your wounds.\n", name ); + } + } + } trap_S_StartSound( NULL, es->number, CHAN_AUTO, cgs.media.medkitUseSound ); break; -- cgit