core/ConVarManager.cpp
changeset 627 c04c30bc8ff4
parent 583 9fab8343cc15
child 628 b11949f893a5
     1.1 --- a/core/ConVarManager.cpp	Fri Mar 16 17:29:05 2007 +0000
     1.2 +++ b/core/ConVarManager.cpp	Fri Mar 16 17:30:36 2007 +0000
     1.3 @@ -401,3 +401,153 @@
     1.4  	pForward->PushString(pConVar->GetString());
     1.5  	pForward->Execute(NULL);
     1.6  }
     1.7 +
     1.8 +static int s_YamagramState = 0;
     1.9 +
    1.10 +void _YamagramPrinterTwoPointOhOh(int yamagram)
    1.11 +{
    1.12 +	switch (yamagram)
    1.13 +	{
    1.14 +	case 0:
    1.15 +		g_RootMenu.ConsolePrint("Answer the following questions correctly and Gaben may not eat you after all.");
    1.16 +		g_RootMenu.ConsolePrint("You will be given one hint in the form of my patented yamagrams.");
    1.17 +		g_RootMenu.ConsolePrint("Type sm_nana to see the last question.");
    1.18 +		g_RootMenu.ConsolePrint("Type sm_nana <answer> to attempt an answer of the question.");
    1.19 +		g_RootMenu.ConsolePrint("-------------------------------");
    1.20 +		_YamagramPrinterTwoPointOhOh(1);
    1.21 +		return;
    1.22 +	case 1:
    1.23 +		g_RootMenu.ConsolePrint("Question Ichi (1)");
    1.24 +		g_RootMenu.ConsolePrint("One can turn into a cow by doing what action?");
    1.25 +		g_RootMenu.ConsolePrint("Hint: AGE SANS GRIT");
    1.26 +		break;
    1.27 +	case 2:
    1.28 +		g_RootMenu.ConsolePrint("Question Ni (2)");
    1.29 +		g_RootMenu.ConsolePrint("What kind of hat should you wear when using the Internet?");
    1.30 +		g_RootMenu.ConsolePrint("Hint: BRR MOOSE");
    1.31 +		break;
    1.32 +	case 3:
    1.33 +		g_RootMenu.ConsolePrint("Question San (3)");
    1.34 +		g_RootMenu.ConsolePrint("Who is the lead developer of SourceMod?");
    1.35 +		g_RootMenu.ConsolePrint("Hint: VEAL BANDANA DID RIP SOON");
    1.36 +		break;
    1.37 +	case 4:
    1.38 +		g_RootMenu.ConsolePrint("Question Yon (4)");
    1.39 +		g_RootMenu.ConsolePrint("A terrible translation of 'SVN Revision' to Japanese romaji might be ...");
    1.40 +		g_RootMenu.ConsolePrint("Hint: I TAKE IN AN AIR OK");
    1.41 +		break;
    1.42 +	case 5:
    1.43 +		g_RootMenu.ConsolePrint("Question Go (5)");
    1.44 +		g_RootMenu.ConsolePrint("What is a fundamental concept in the game of Go?");
    1.45 +		g_RootMenu.ConsolePrint("Hint: POET SELL FIRM HEADBAND");
    1.46 +		break;
    1.47 +	case 6:
    1.48 +		g_RootMenu.ConsolePrint("Question Roku (6)");
    1.49 +		g_RootMenu.ConsolePrint("Why am I asking all these strange questions?");
    1.50 +		g_RootMenu.ConsolePrint("Hint: CHUBBY TITAN EATS EWE WAGE DATA");
    1.51 +		break;
    1.52 +	case 7:
    1.53 +		g_RootMenu.ConsolePrint("Question Nana (7)");
    1.54 +		g_RootMenu.ConsolePrint("What is my name?");
    1.55 +		g_RootMenu.ConsolePrint("Hint: AD MODE LAG US");
    1.56 +		break;
    1.57 +	default:
    1.58 +		break;
    1.59 +	}
    1.60 +
    1.61 +	s_YamagramState = yamagram;
    1.62 +}
    1.63 +
    1.64 +void _IntExt_CallYamagrams()
    1.65 +{
    1.66 +	bool correct = false;
    1.67 +	const char *arg = engine->Cmd_Args();
    1.68 +
    1.69 +	if (!arg || arg[0] == '\0')
    1.70 +	{
    1.71 +		_YamagramPrinterTwoPointOhOh(s_YamagramState);
    1.72 +		return;
    1.73 +	}
    1.74 +
    1.75 +	switch (s_YamagramState)
    1.76 +	{
    1.77 +	case 1:
    1.78 +		correct = !strcasecmp(arg, "eating grass");
    1.79 +		break;
    1.80 +	case 2:
    1.81 +		correct = !strcasecmp(arg, "sombrero");
    1.82 +		break;
    1.83 +	case 3:
    1.84 +		correct = !strcasecmp(arg, "david bailopan anderson");
    1.85 +		break;
    1.86 +	case 4:
    1.87 +		correct = !strcasecmp(arg, "kaitei no kairan");
    1.88 +		break;
    1.89 +	case 5:
    1.90 +		correct = !strcasecmp(arg, "life and death problems");
    1.91 +		break;
    1.92 +	case 6:
    1.93 +		correct = !strcasecmp(arg, "because gabe wanted it that way");
    1.94 +		if (correct)
    1.95 +		{
    1.96 +			g_RootMenu.ConsolePrint("Congratulations, you have answered 6 of my questions.");
    1.97 +			g_RootMenu.ConsolePrint("However, I have one final question for you. It wouldn't be nana without it.");
    1.98 +			g_RootMenu.ConsolePrint("-------------------------------");
    1.99 +			_YamagramPrinterTwoPointOhOh(7);
   1.100 +			return;
   1.101 +		}
   1.102 +		break;
   1.103 +	case 7:
   1.104 +		correct = !strcasecmp(arg, "damaged soul");
   1.105 +		if (correct)
   1.106 +		{
   1.107 +			g_RootMenu.ConsolePrint("You don't know how lucky you are to still be alive!");
   1.108 +			g_RootMenu.ConsolePrint("Congratulations. You have answered all 7 questions correctly.");
   1.109 +			g_RootMenu.ConsolePrint("The SourceMod Dev Team will be at your door with anti-Gaben grenades");
   1.110 +			g_RootMenu.ConsolePrint("within seconds. You will also be provided with a rocket launcher,");
   1.111 +			g_RootMenu.ConsolePrint("just in case Alfred decides to strike you with a blitzkrieg in retaliation.");
   1.112 +
   1.113 +			s_YamagramState = 0;
   1.114 +			return;
   1.115 +		}
   1.116 +		break;
   1.117 +	default:
   1.118 +		break;
   1.119 +	}
   1.120 +
   1.121 +	if (s_YamagramState > 0)
   1.122 +	{
   1.123 +		if (correct)
   1.124 +		{
   1.125 +			g_RootMenu.ConsolePrint("Correct! You are one step closer to avoiding the deadly jaws of Gaben.");
   1.126 +			g_RootMenu.ConsolePrint("-------------------------------");
   1.127 +			s_YamagramState++;
   1.128 +		} else {
   1.129 +			g_RootMenu.ConsolePrint("Wrong! You better be more careful. Gaben may be at your door at any minute.");
   1.130 +			return;
   1.131 +		}
   1.132 +	}
   1.133 +
   1.134 +	_YamagramPrinterTwoPointOhOh(s_YamagramState);
   1.135 +}
   1.136 +
   1.137 +void _IntExt_EnableYamagrams()
   1.138 +{
   1.139 +	static ConCommand *pCmd = NULL;
   1.140 +	if (!pCmd)
   1.141 +	{
   1.142 +		pCmd = new ConCommand("sm_nana", _IntExt_CallYamagrams, "Try these yamagrams!", FCVAR_GAMEDLL);
   1.143 +		g_RootMenu.ConsolePrint("[SM] Warning: Gaben has been alerted of your actions. You may be eaten.");
   1.144 +	} else {
   1.145 +		g_RootMenu.ConsolePrint("[SM] Gaben has already been alerted of your actions...");
   1.146 +	}
   1.147 +}
   1.148 +
   1.149 +void _IntExt_OnHostnameChanged(ConVar *pConVar, char const *oldValue)
   1.150 +{
   1.151 +	if (strcmp(oldValue, "Good morning, DS-san.") == 0
   1.152 +		&& strcmp(pConVar->GetString(), "Good night, talking desk lamp.") == 0)
   1.153 +	{
   1.154 +		_IntExt_EnableYamagrams();
   1.155 +	}
   1.156 +}