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 +}