join, leave, send: Argument besser benannte
Das Objekt, was die Aktion ausfuehrt, heisst jetzt nicht
mehr immer <pl>, sondern kriegt sprechendere Namen. Es
ist auch nicht immer ein Spieler.
Change-Id: Ia9632447bb59f00caa7ccda38e1e35e5ecc4df6a
diff --git a/p/daemon/channeld.c b/p/daemon/channeld.c
index a0d5107..c99448f 100644
--- a/p/daemon/channeld.c
+++ b/p/daemon/channeld.c
@@ -1028,24 +1028,25 @@
// Objekt <pl> betritt Ebene <ch>. Dies wird zugelassen, wenn <pl> die
// Berechtigung hat und noch nicht Mitglied ist. (Man kann einer Ebene nicht
// zweimal beitreten.)
-public int join(string chname, object pl)
+public int join(string chname, object joining)
{
struct channel_s ch = channels[lower_case(chname)];
/* funcall() auf Closure-Operator, um einen neuen Eintrag im Caller Stack
zu erzeugen, weil access() mit extern_call() und previous_object()
arbeitet und sichergestellt sein muss, dass das in jedem Fall das
richtige ist. */
- if (!funcall(#'access, ch, pl, C_JOIN))
+ if (!funcall(#'access, ch, joining, C_JOIN))
return E_ACCESS_DENIED;
- int res = add_member(ch, pl);
+ int res = add_member(ch, joining);
if (res != 1)
return res;
// Wenn der <pl> der urspruengliche Ersteller der Ebene und kein Spieler
// ist, wird er automatisch wieder zum Supervisor.
- if (!query_once_interactive(pl) && object_name(pl) == ch.creator)
- change_sv_object(ch, pl);
+ if (!query_once_interactive(joining)
+ && object_name(joining) == ch.creator)
+ change_sv_object(ch, joining);
return 0;
}
@@ -1057,24 +1058,24 @@
// <pl> das Verlassen auf Grund eines Banns verboten sein.
// Wenn kein Spieler mehr auf der Ebene ist, loest sie sich auf, sofern nicht
// noch ein Ebenenbesitzer eingetragen ist.
-public int leave(string chname, object pl)
+public int leave(string chname, object leaving)
{
struct channel_s ch = channels[lower_case(chname)];
ch.members -= ({0}); // kaputte Objekte erstmal raus
- if (!IsChannelMember(ch, pl))
+ if (!IsChannelMember(ch, leaving))
return E_NOT_MEMBER;
/* funcall() auf Closure-Operator, um einen neuen Eintrag im Caller Stack
zu erzeugen, weil access() mit extern_call() und previous_object()
arbeitet und sichergestellt sein muss, dass das in jedem Fall das
richtige ist. */
- if (!funcall(#'access, ch, pl, C_LEAVE))
+ if (!funcall(#'access, ch, leaving, C_LEAVE))
return E_ACCESS_DENIED;
// Dann mal den Zuhoerer raus.
- ch.members -= ({pl});
+ ch.members -= ({leaving});
// Wenn auf der Ebene jetzt noch Objekte zuhoeren, muss ggf. der SV
// wechseln.
@@ -1083,7 +1084,7 @@
// Kontrolle an jemand anderen uebergeben, wenn der Ebenensupervisor
// diese verlassen hat. change_sv_object() waehlt per Default den
// aeltesten Zuhoerer.
- if (pl == ch.supervisor)
+ if (leaving == ch.supervisor)
{
change_sv_object(ch, 0);
}
@@ -1096,7 +1097,7 @@
// Der Letzte macht das Licht aus, aber nur, wenn er nicht unsichtbar ist.
// Wenn Spieler, NPC, Clone oder Channeld als letztes die Ebene verlassen,
// wird diese zerstoert, mit Meldung.
- if (!pl->QueryProp(P_INVIS))
+ if (!leaving->QueryProp(P_INVIS))
{
// Die Zugriffskontrolle auf die Ebenen wird von der Funktion access()
// erledigt. Weil sowohl externe Aufrufe aus dem Spielerobjekt, als auch
@@ -1104,9 +1105,9 @@
// explizites call_other() auf this_object() gemacht, damit der
// Caller-Stack bei dem internen Aufruf denselben Aufbau hat wie bei
// einem externen.
- this_object()->send(CMNAME, pl,
+ this_object()->send(CMNAME, leaving,
"verlaesst als "+
- (pl->QueryProp(P_GENDER) == 1 ? "Letzter" : "Letzte")+
+ (leaving->QueryProp(P_GENDER) == 1 ? "Letzter" : "Letzte")+
" die Ebene '" + ch.name + "', worauf diese sich in "
"einem Blitz oktarinen Lichts aufloest.", MSG_EMOTE);
}
@@ -1117,7 +1118,7 @@
// Nachricht <msg> vom Typ <type> mit Absender <pl> auf der Ebene <ch> posten,
// sofern <pl> dort senden darf.
-public varargs int send(string chname, object pl, string msg, int type)
+public varargs int send(string chname, object sender, string msg, int type)
{
chname = lower_case(chname);
struct channel_s ch = channels[chname];
@@ -1125,7 +1126,7 @@
zu erzeugen, weil access() mit extern_call() und previous_object()
arbeitet und sichergestellt sein muss, dass das in jedem Fall das
richtige ist. */
- int a = funcall(#'access, ch, pl, C_SEND, msg);
+ int a = funcall(#'access, ch, sender, C_SEND, msg);
if (!a)
return E_ACCESS_DENIED;
@@ -1134,7 +1135,7 @@
// wird. access() allerdings 2 fuer "privilegierte" Objekte (z.B.
// ROOT-Objekte oder den channeld selber). Der Effekt ist, dass diese
// Objekte auf Ebenen senden duerfen, auf denen sie nicht zuhoeren.
- if (a < 2 && !IsChannelMember(ch, pl))
+ if (a < 2 && !IsChannelMember(ch, sender))
return E_NOT_MEMBER;
if (!msg || !stringp(msg) || !sizeof(msg))
@@ -1151,19 +1152,19 @@
// Die Aufrufkette ist dann wie folgt:
// Eingabe "-< xyz" => pl::ChannelParser() => send() => ChannelMessage()
(ch.members)->ChannelMessage(
- ({ ch.name, pl, msg, type}));
+ ({ ch.name, sender, msg, type}));
if (sizeof(channelH[chname]) > MAX_HIST_SIZE)
channelH[chname] = channelH[chname][1..];
channelH[chname] +=
({ ({ ch.name,
- (stringp(pl)
- ? pl
- : (pl->QueryProp(P_INVIS)
- ? "/(" + capitalize(getuid(pl)) + ")$"
+ (stringp(sender)
+ ? sender
+ : (sender->QueryProp(P_INVIS)
+ ? "/(" + capitalize(getuid(sender)) + ")$"
: "")
- + (pl->Name(WER, 2) || "<Unbekannt>")),
+ + (sender->Name(WER, 2) || "<Unbekannt>")),
msg + " <" + strftime("%a, %H:%M:%S") + ">\n",
type }) });
return (0);