diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/cgame/cg_event.c | 5 | ||||
| -rw-r--r-- | src/cgame/cg_local.h | 2 | ||||
| -rw-r--r-- | src/cgame/cg_main.c | 2 | ||||
| -rw-r--r-- | src/game/bg_misc.c | 4 | ||||
| -rw-r--r-- | src/game/bg_public.h | 4 | ||||
| -rw-r--r-- | 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)  | 
