From 4d917fbceaa88a8ae596e6301412236d7c9b4d2b Mon Sep 17 00:00:00 2001
From: Cinders <cinder@cinderblocks.biz>
Date: Sun, 16 Aug 2015 21:46:48 -0600
Subject: [PATCH] Add a cheat code :O

---
 indra/newview/CMakeLists.txt                  |  1 +
 indra/newview/llcheatcodes.cpp                | 57 +++++++++++++++++++
 .../newview/skins/default/xui/en/strings.xml  |  1 +
 3 files changed, 59 insertions(+)
 create mode 100644 indra/newview/llcheatcodes.cpp

diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 3a7ffbf9a3..22dd0eafd7 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -166,6 +166,7 @@ set(viewer_SOURCE_FILES
     llchathistory.cpp
     llchatitemscontainerctrl.cpp
     llchatmsgbox.cpp
+    llcheatcodes.cpp
     llchiclet.cpp
     llchicletbar.cpp
     llclassifiedinfo.cpp
diff --git a/indra/newview/llcheatcodes.cpp b/indra/newview/llcheatcodes.cpp
new file mode 100644
index 0000000000..589ca09fb9
--- /dev/null
+++ b/indra/newview/llcheatcodes.cpp
@@ -0,0 +1,57 @@
+/**
+ * @file llcheatcodes.cpp
+ * @brief Cheatcode slurls for virtual worlds, yo.
+ *
+ * Copyright (c) 2015, Cinder Roxley <cinder@sdf.org>
+ *
+ * Permission is hereby granted, free of charge, to any person or organization
+ * obtaining a copy of the software and accompanying documentation covered by
+ * this license (the "Software") to use, reproduce, display, distribute,
+ * execute, and transmit the Software, and to prepare derivative works of the
+ * Software, and to permit third-parties to whom the Software is furnished to
+ * do so, all subject to the following:
+ *
+ * The copyright notices in the Software and this entire statement, including
+ * the above license grant, this restriction and the following disclaimer,
+ * must be included in all copies of the Software, in whole or in part, and
+ * all derivative works of the Software, unless such copies or derivative
+ * works are solely in the form of machine-executable object code generated by
+ * a source language processor.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+ * SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+ * FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#include "llviewerprecompiledheaders.h"
+#include "llcommandhandler.h"
+
+#include "llchat.h"
+#include "llfloaterimnearbychat.h"
+#include "llfloaterreg.h"
+#include "lltrans.h"
+
+class LLXyzzyHandler : public LLCommandHandler
+{
+public:
+	LLXyzzyHandler() : LLCommandHandler("xyzzy", UNTRUSTED_THROTTLE) {}
+	
+	bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web)
+	{
+		LLFloaterIMNearbyChat* nearby_chat = LLFloaterReg::findTypedInstance<LLFloaterIMNearbyChat>("nearby_chat");
+		if (nearby_chat)
+		{
+			LLChat chat(LLTrans::getString("NothingHappens"));
+			chat.mSourceType = CHAT_SOURCE_SYSTEM;
+			nearby_chat->addMessage(chat);
+		}
+		return true;
+	}
+};
+
+LLXyzzyHandler gXyzzyHandler;
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 15dfb9f4de..332776d4ef 100755
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -4232,6 +4232,7 @@ Try enclosing path to the editor with double quotes.
   <string name="Free">free</string>
   <string name="NotifyIncomingMessage">Incoming message from [NAME]...</string>
   <string name="NearbyChatTitleChannel">Nearby chat (on channel [CHANNEL])</string>
+  <string name="NothingHappens">Nothing happens</string>
   <string name="NowPlaying">Now Playing</string>
   <string name="SimulatorFeaturesTitle">SIMULATOR FEATURES</string>
   <string name="GridInfoTitle">GRID INFO</string>
-- 
GitLab