From aba8353eb00f9fbb4f921d8d970f62c76c9733e6 Mon Sep 17 00:00:00 2001 From: Paweł Redman Date: Wed, 1 Apr 2020 12:39:45 +0200 Subject: Corona CPs and fixups --- src/game/g_corona.c | 37 +++++++++++++++++++++++++++++++------ src/game/g_local.h | 2 ++ src/game/g_main.c | 3 +++ 3 files changed, 36 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/game/g_corona.c b/src/game/g_corona.c index f2434ee..47481ec 100644 --- a/src/game/g_corona.c +++ b/src/game/g_corona.c @@ -6,7 +6,7 @@ This file is part of shitposting, inappropriate entertainment and bad taste. #include "g_local.h" -int reference = 1585720800; // April 1, 2020 8:00:00 (local time) +int reference = 1585749600; // April 1, 2020 16:00:00 (local time) static const char *headlines[ ] = { @@ -58,9 +58,9 @@ static const char *quotes[] = "We are fully prepared to deal with this crisis.", "Our health care is fully prepared for the situation.", "Our country is in the midst of a great national trial, unlike any we have ever faced before.", - "We’re at war with a deadly virus.", + "We're at war with a deadly virus.", "Following the guidelines for the next 30 days is a matter of life and death", - "This is going to be one of the roughest 2 or 3 weeks we’ve ever had in our country.", + "This is going to be one of the roughest 2 or 3 weeks we've ever had in our country.", "We’re going to lose thousands of people.", }; int numQuotes = sizeof( quotes ) / sizeof( const char* ); @@ -83,7 +83,7 @@ void G_CoronaNewsfeed( void ) const char *name; float rate, pop, cases; - if( level.time < lastShitpost + 5000 ) + if( level.time < lastShitpost + 20000 ) { return; } @@ -98,10 +98,10 @@ void G_CoronaNewsfeed( void ) name = countries[ cindex ]; // Roll the stats (this is actually deterministic) - t0 = LCG( cindex ) % 5400 + 3600; + t0 = LCG( cindex ) % 5400 + 3600 + g_coronaShitpostDelta.integer; rate = LCG_float( cindex ); pop = 500000.0f * exp(12.0f * LCG_float( cindex + 911 ) ); - cases = exp( rate * ( time - t0 ) / 30.0f ); + cases = exp( rate * ( time - t0 ) / 10.0f ); p = rand( ) % numPeople; q = rand( ) % numQuotes; @@ -151,3 +151,28 @@ void G_CoronaNewsfeed( void ) lastShitpost = level.time; } + +static const char *warnings[ ] = { + "Wash your hands and don't touch your face.", + "Don't panic. Stay inside.", + "Avoid contact with other aliens and humans.", + "There's no need to worry.", + "You do not recognize the bodies in the water.", + "Don't pay attention to the [REDACTED]." +}; +static int numWarnings = sizeof( warnings ) / sizeof( const char* ); + +void G_CoronaWarnings( void ) +{ + static int lastShitpost = 0; + const char *warning; + + if( level.time < lastShitpost + 60000 ) + { + return; + } + + warning = warnings[ rand( ) % numWarnings ]; + trap_SendServerCommand( -1, va( "cp \"%s\"", warning ) ); + lastShitpost = level.time; +} diff --git a/src/game/g_local.h b/src/game/g_local.h index 3d96e5f..61d8e12 100644 --- a/src/game/g_local.h +++ b/src/game/g_local.h @@ -1316,6 +1316,7 @@ connectionRecord_t *G_FindConnectionForCode( int code ); // g_corona.c // void G_CoronaNewsfeed( void ); +void G_CoronaWarnings( void ); //some maxs #define MAX_FILEPATH 144 @@ -1528,6 +1529,7 @@ extern vmCvar_t g_practise; extern vmCvar_t g_covidInfectionFactor; extern vmCvar_t g_covidSeverityFactor; extern vmCvar_t g_covidDebug; +extern vmCvar_t g_coronaShitpostDelta; void trap_Printf( const char *fmt ); void trap_Error( const char *fmt ); diff --git a/src/game/g_main.c b/src/game/g_main.c index 7c19403..85fc0a0 100644 --- a/src/game/g_main.c +++ b/src/game/g_main.c @@ -251,6 +251,7 @@ vmCvar_t g_tyrantNerf; vmCvar_t g_covidInfectionFactor; vmCvar_t g_covidSeverityFactor; vmCvar_t g_covidDebug; +vmCvar_t g_coronaShitpostDelta; static cvarTable_t gameCvarTable[ ] = { @@ -482,6 +483,7 @@ static cvarTable_t gameCvarTable[ ] = { &g_covidInfectionFactor, "g_covidInfectionFactor", "1", CVAR_ARCHIVE, 0, qtrue }, { &g_covidSeverityFactor, "g_covidSeverityFactor", "1", CVAR_ARCHIVE, 0, qtrue }, { &g_covidDebug, "g_covidDebug", "0", CVAR_ARCHIVE, 0, qtrue }, + { &g_coronaShitpostDelta, "g_coronaShitpostDelta", "0", CVAR_ARCHIVE, 0, qfalse }, }; static int gameCvarTableSize = sizeof( gameCvarTable ) / sizeof( gameCvarTable[ 0 ] ); @@ -3044,5 +3046,6 @@ void G_RunFrame( int levelTime ) } G_CoronaNewsfeed( ); + G_CoronaWarnings( ); } -- cgit