Hi! (As always nudge me in other media if I'm not responsive here; thanks @Misadventure!)
Several things:
My fork is designed for change a variety of things for the sorts of games I was working on. There are two pertinent branches; 'mechanipus' which is more or less the 'master' type branch containing all of the various changes, and 'mechanipus-rebased-vs-git_dev' which is a rebased (change collected and minimized set of diffs) version vs one of Brazil's dev branches.
In this rebased one, all the main patches are separated out as major functional changes covering the bits people find separately interesting:
https://github.com/lashtear/tinymux/commits/mechanipus-rebased-vs-git_dev shows the commit history for that resulting branch, with them always re-ordered so my customizations are at the end (independent of chronology). You can click on any of the hash-ids to see patch data for that change.
Or, in command line form:
git clone https://github.com/lashtear/tinymux.git
cd tinymux
git checkout mechanipus-rebased-vs-git_dev
git log --abbrev-commit --sparse --decorate --pretty=oneline
Which will give you a display something like:
Hash-Id |
Commit comment |
25c302a9 |
(HEAD -> mechanipus-rebased-vs-git_dev, origin/mechanipus-rebased-vs-git_dev, mechanipus-rebased-vs-git_brazil) Add a basic .gitignore file |
65416020 |
Change bare 'think' to not alter idle() time |
6b19bbb9 |
Cause command lookups on master room objects to consider parents |
2af2f13b |
Try 64000 char lbufs for the Reach. Change the Boyer-Moore-Horspool implementation to account for larger LBUF_SIZE |
5fd60802 |
use BLIND on rooms to really silence messages |
In your case, you are only interested in that last one there. Hot damn I'm a markdown badass.
git show 5fd60802
Which will give you
commit 5fd6080286dc36fe7ba6673a208dbfb445a6d056
Author: Emily Backes <lucca@accela.net>
Date: Wed Sep 28 22:46:09 2011 -0700
use BLIND on rooms to really silence messages
* Covers X goes home.
* Covers connected/disconnected/partially disconnected.
* Works even with REALITY_LEVELS configured.
This is for quiet rooms and character freezers, and allegedly breaks
other games that use BLIND rooms for some other purpose.
Based on 37c8fcf06b34f57ad9f06b060acdcbe37521cc32 but with changes to
REALITY_LEVELS support.
diff --git a/mux/game/text/help.txt b/mux/game/text/help.txt
index af4df527..1cb90c5f 100644
--- a/mux/game/text/help.txt
+++ b/mux/game/text/help.txt
@@ -5021,10 +5021,15 @@ BLIND
FLAG: BLIND(B)
- This flag suppresses the '<who> has arrived.' and '<who> has left.' messages.
- When set on a player, the messages caused by their movement are suppressed.
- When set on a location, the messages for everyone entering or leaving that
- location are suppressed.
+ When set on an object that can move, the '<object> has arrived.',
+ '<object> has left.', and '<object> goes home' messages that would normally
+ be generated and delivered to the new and old locations are suppressed.
+
+ When set on an object with location, the '<object> has arrived.',
+ '<object> has left.', '<object> goes home', '<player> has connected.',
+ '<player> has disconnected.', and '<player> has partially disconnected.'
+ messages are that would normally be generated and delivered to everyone at
+ that location are suppressed.
This flag can only be set by Wizards.
diff --git a/mux/src/move.cpp b/mux/src/move.cpp
index eb481dac..901107a7 100644
--- a/mux/src/move.cpp
+++ b/mux/src/move.cpp
@@ -676,7 +676,9 @@ void do_move(dbref executor, dbref caller, dbref enactor, int eval, int key, UTF
if ( (loc = Location(executor)) != NOTHING
&& !Dark(executor)
- && !Dark(loc))
+ && !Dark(loc)
+ && !Blind(executor)
+ && !Blind(loc))
{
// Tell all
//
diff --git a/mux/src/netcommon.cpp b/mux/src/netcommon.cpp
index d389d5a1..1b0a60ee 100644
--- a/mux/src/netcommon.cpp
+++ b/mux/src/netcommon.cpp
@@ -1058,25 +1058,15 @@ static void announce_connect(dbref player, DESC *d)
int key = MSG_INV;
if ( loc != NOTHING
&& !( Hidden(player)
- && Can_Hide(player)))
+ && Can_Hide(player))
+ && !Blind(loc))
{
key |= (MSG_NBR | MSG_NBR_EXITS | MSG_LOC | MSG_FWDLIST);
}
dbref temp = mudstate.curr_enactor;
mudstate.curr_enactor = player;
-#ifdef REALITY_LVLS
- if (NOTHING == loc)
- {
- notify_check(player, player, buf, key);
- }
- else
- {
- notify_except_rlevel(loc, player, player, buf, 0);
- }
-#else
notify_check(player, player, buf, key);
-#endif // REALITY_LVLS
atr_pget_str_LEN(buf, player, A_ACONNECT, &aowner, &aflags, &nLen);
CLinearTimeAbsolute lta;
dbref zone, obj;
@@ -1206,22 +1196,12 @@ void announce_disconnect(dbref player, DESC *d, const UTF8 *reason)
key = MSG_INV;
if ( loc != NOTHING
&& !( Hidden(player)
- && Can_Hide(player)))
+ && Can_Hide(player))
+ && !Blind(loc))
{
key |= (MSG_NBR | MSG_NBR_EXITS | MSG_LOC | MSG_FWDLIST);
}
-#ifdef REALITY_LVLS
- if (NOTHING == loc)
- {
- notify_check(player, player, buf, key);
- }
- else
- {
- notify_except_rlevel(loc, player, player, buf, 0);
- }
-#else
notify_check(player, player, buf, key);
-#endif // REALITY_LVLS
if (mudconf.have_mailer)
{
@@ -1354,22 +1334,12 @@ void announce_disconnect(dbref player, DESC *d, const UTF8 *reason)
key = MSG_INV;
if ( loc != NOTHING
&& !( Hidden(player)
- && Can_Hide(player)))
+ && Can_Hide(player))
+ && !Blind(loc))
{
key |= (MSG_NBR | MSG_NBR_EXITS | MSG_LOC | MSG_FWDLIST);
}
-#ifdef REALITY_LVLS
- if (NOTHING == loc)
- {
- notify_check(player, player, mbuf, key);
- }
- else
- {
- notify_except_rlevel(loc, player, player, mbuf, 0);
- }
-#else
notify_check(player, player, mbuf, key);
-#endif // REALITY_LVLS
raw_broadcast(MONITOR, T("GAME: %s has partially disconnected."),
Moniker(player));
free_mbuf(mbuf);
If you aren't using my fork (which now has a few other rather invasive changes)-- then THAT patch there is your best bet.
Quick explanation: Brazil got the ifdefs for reality_lvls wrong and the result is it emits a bunch of extra messages if your game is built with them. He disagreed, and cited incompatibility with other game(s)-- likely Firan, but I haven't talked to anyone on that side and didn't immediately see what the conflict would be. In any case, the patch is certainly compatible with new games that want this behavior, so there it is.