From 2d4ac6288dab1b12997c54cdc93d71ac5d0be8fc Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 10 Nov 2011 22:56:13 +0000
Subject: Alter commit 3758306 to allow region name to be substituted within a
region console prompt
This is to allow broader subsitution in the future. Currently, the only substitions are \R (for region name) and \\ (for a single backslash)
e.g. "Region (\R) " is the current and continuing default prompt
This renames custom_prompt in [Startup] to ConsolePrompt
---
OpenSim/Region/Application/OpenSim.cs | 31 ++++++++++++++++++++++++++++---
bin/OpenSim.ini.example | 14 ++++++++------
bin/OpenSimDefaults.ini | 7 +++++++
3 files changed, 43 insertions(+), 9 deletions(-)
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index 9fe284f..beb75a8 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -31,6 +31,7 @@ using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text;
+using System.Text.RegularExpressions;
using System.Timers;
using log4net;
using Nini.Config;
@@ -56,7 +57,16 @@ namespace OpenSim
protected bool m_gui = false;
protected string m_consoleType = "local";
protected uint m_consolePort = 0;
- protected string m_custom_prompt;
+
+ ///
+ /// Prompt to use for simulator command line.
+ ///
+ private string m_consolePrompt;
+
+ ///
+ /// Regex for parsing out special characters in the prompt.
+ ///
+ private Regex m_consolePromptRegex = new Regex(@"([^\\])\\(\w)", RegexOptions.Compiled);
private string m_timedScript = "disabled";
private Timer m_scriptTimer;
@@ -111,7 +121,7 @@ namespace OpenSim
Util.FireAndForgetMethod = asyncCallMethod;
stpMaxThreads = startupConfig.GetInt("MaxPoolThreads", 15);
- m_custom_prompt = startupConfig.GetString("custom_prompt", "Region");
+ m_consolePrompt = startupConfig.GetString("console_prompt", @"Region (\R) ");
}
if (Util.FireAndForgetMethod == FireAndForgetMethod.SmartThreadPool)
@@ -835,7 +845,22 @@ namespace OpenSim
string regionName = (m_sceneManager.CurrentScene == null ? "root" : m_sceneManager.CurrentScene.RegionInfo.RegionName);
MainConsole.Instance.Output(String.Format("Currently selected region is {0}", regionName));
- m_console.DefaultPrompt = String.Format("{0} ({1}) ", m_custom_prompt, regionName);
+
+// m_log.DebugFormat("Original prompt is {0}", m_consolePrompt);
+ string prompt = m_consolePrompt;
+
+ // Replace "\R" with the region name
+ // Replace "\\" with "\"
+ prompt = m_consolePromptRegex.Replace(prompt, m =>
+ {
+// m_log.DebugFormat("Matched {0}", m.Groups[2].Value);
+ if (m.Groups[2].Value == "R")
+ return m.Groups[1].Value + regionName;
+ else
+ return m.Groups[0].Value;
+ });
+
+ m_console.DefaultPrompt = prompt;
m_console.ConsoleScene = m_sceneManager.CurrentScene;
}
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index c5205db..253b24d 100755
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -36,6 +36,14 @@
[Startup]
+ ;# {ConsolePrompt} {} {ConsolePrompt} {} "Region (\R) "
+ ;; Console prompt
+ ;; Certain special characters can be used to customize the prompt
+ ;; Currently, these are
+ ;; \R - substitute region name
+ ;; \\ - substitute \
+ ; ConsolePrompt = "Region (\R) "
+
;# {save_crashes} {} {Save crashes to disk?} {true false} false
;; Set this to true if you want to log crashes to disk
;; this can be useful when submitting bug reports.
@@ -230,12 +238,6 @@
;; by scripts have changed.
; DeleteScriptsOnStartup = true
- ;; Custom prompt
- ;; This value replaces the word "Region" in console prompt
- ;; (usualy "Region (regionName) # "
- ;; Useful only if you have to monitor serveral servers
- ; custom_prompt = "MyServer1"
-
[SMTP]
;; The SMTP server enabled the email module to send email to external
;; destinations.
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini
index 7ea710e..2c5fbf5 100644
--- a/bin/OpenSimDefaults.ini
+++ b/bin/OpenSimDefaults.ini
@@ -3,6 +3,13 @@
[Startup]
+ ; Console prompt
+ ; Certain special characters can be used to customize the prompt
+ ; Currently, these are
+ ; \R - substitute region name
+ ; \\ - substtitue \
+ ConsolePrompt = "Region (\R) "
+
; Set this to true if you want to log crashes to disk
; this can be useful when submitting bug reports.
; However, this will only log crashes within OpenSimulator that cause the entire program to exit
--
cgit v1.1
From f5abae5ac67caefdc305cfa8551dfa749bf8b5c7 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 10 Nov 2011 22:34:54 +0100
Subject: Implement nudging support for strafing motion
---
OpenSim/Region/Framework/Scenes/ScenePresence.cs | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index fc5141f..e662492 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1509,7 +1509,8 @@ namespace OpenSim.Region.Framework.Scenes
if ((MovementFlag & (byte)(uint)DCF) == 0)
{
- if (DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_FORWARD_NUDGE || DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_BACKWARD_NUDGE)
+ if (DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_FORWARD_NUDGE || DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_BACKWARD_NUDGE ||
+ DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_LEFT_NUDGE || DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_RIGHT_NUDGE)
{
MovementFlag |= (byte)nudgehack;
}
@@ -1522,7 +1523,8 @@ namespace OpenSim.Region.Framework.Scenes
else
{
if ((MovementFlag & (byte)(uint)DCF) != 0 ||
- ((DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_FORWARD_NUDGE || DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_BACKWARD_NUDGE)
+ ((DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_FORWARD_NUDGE || DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_BACKWARD_NUDGE ||
+ DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_LEFT_NUDGE || DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_RIGHT_NUDGE)
&& ((MovementFlag & (byte)nudgehack) == nudgehack))
) // This or is for Nudge forward
{
--
cgit v1.1