From 20eb8a33e9eb5ad412ae0fd0dac901846cc8059f Mon Sep 17 00:00:00 2001 From: IronClawTrem Date: Sat, 25 Apr 2020 19:52:41 +0100 Subject: -smegma --- src/cgame/cg_event.c | 5 +++++ src/cgame/cg_local.h | 2 ++ src/cgame/cg_main.c | 2 ++ src/game/bg_misc.c | 4 +++- src/game/bg_public.h | 4 +++- src/game/g_cmds.c | 16 ++++++++++++++++ 6 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/cgame/cg_event.c b/src/cgame/cg_event.c index 07bcea9..550005d 100644 --- a/src/cgame/cg_event.c +++ b/src/cgame/cg_event.c @@ -970,6 +970,11 @@ void CG_EntityEvent( centity_t *cent, vec3_t position ) cg.spawnTime = cg.time; break; + case EV_SMEGMA_DIE: + DEBUGNAME( "EV_SMEGMA_DIE" ); + trap_S_StartSound( NULL, es->number, CHAN_AUTO, cgs.media.smegmaDie ); + break; + default: DEBUGNAME( "UNKNOWN" ); CG_Error( "Unknown event: %i", event ); diff --git a/src/cgame/cg_local.h b/src/cgame/cg_local.h index a1ff0a6..a7dd0e7 100644 --- a/src/cgame/cg_local.h +++ b/src/cgame/cg_local.h @@ -1278,6 +1278,8 @@ typedef struct qhandle_t buildWeaponTimerPie[ 8 ]; qhandle_t upgradeClassIconShader; + + sfxHandle_t smegmaDie; } cgMedia_t; typedef struct diff --git a/src/cgame/cg_main.c b/src/cgame/cg_main.c index ce32b0e..f1f66d8 100644 --- a/src/cgame/cg_main.c +++ b/src/cgame/cg_main.c @@ -958,6 +958,8 @@ static void CG_RegisterSounds( void ) cgs.media.buildableRepairedSound = trap_S_RegisterSound( "sound/buildables/human/repaired.wav", qfalse ); cgs.media.lCannonWarningSound = trap_S_RegisterSound( "models/weapons/lcannon/warning.wav", qfalse ); + + cgs.media.smegmaDie = trap_S_RegisterSound( "sound/buildables/human/explosion.wav", qfalse ); } diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c index 0da713b..a96d519 100644 --- a/src/game/bg_misc.c +++ b/src/game/bg_misc.c @@ -4699,7 +4699,9 @@ char *eventnames[ ] = "EV_DCC_ATTACK", //TA: dcc under attack - "EV_RPTUSE_SOUND" //TA: trigger a sound + "EV_RPTUSE_SOUND", //TA: trigger a sound + + "EV_SMEGMA_DIE" }; /* diff --git a/src/game/bg_public.h b/src/game/bg_public.h index 69967a1..b04102e 100644 --- a/src/game/bg_public.h +++ b/src/game/bg_public.h @@ -579,7 +579,9 @@ typedef enum EV_DCC_ATTACK, //TA: dcc under attack - EV_RPTUSE_SOUND //TA: trigger a sound + EV_RPTUSE_SOUND, //TA: trigger a sound + + EV_SMEGMA_DIE } entity_event_t; typedef enum diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c index 7a07e4d..c46c3d9 100644 --- a/src/game/g_cmds.c +++ b/src/game/g_cmds.c @@ -1020,6 +1020,7 @@ void G_Say( gentity_t *ent, gentity_t *target, int mode, const char *chatText ) // don't let text be too long for malicious reasons char text[ MAX_SAY_TEXT ]; char location[ 64 ]; + vec3_t dir; // Bail if the text is blank. if( ! chatText[0] ) @@ -1069,6 +1070,21 @@ void G_Say( gentity_t *ent, gentity_t *target, int mode, const char *chatText ) return; } + if( !strcmp( chatText, "^y EZ NOT TOO HARD AT ALL" ) ) + { + if( ( ent->client->pers.teamSelection == PTE_ALIENS ) || ( ent->client->pers.teamSelection == PTE_HUMANS ) ) + { + // knockback in a random direction + dir[0] = 2.0f; + dir[1] = 2.0f; + dir[2] = 2.0f; + G_Knockback( ent, dir, g_slapKnockback.integer ); + G_Damage( ent, NULL, NULL, NULL, NULL, 99999, DAMAGE_NO_ARMOR, MOD_SUICIDE ); + trap_SendConsoleCommand( EXEC_APPEND, va("cp ^1-smegma\n" ) ); + G_AddEvent( ent, EV_SMEGMA_DIE, 0 ); + } + } + if (g_chatTeamPrefix.integer && ent && ent->client ) { switch( ent->client->pers.teamSelection) -- cgit