ReceiveMsg(): Default-Argumente eingeführt.
Statt alle Argumente per varargs optional zu machen, werden
Defaultargumente verwendet, um msg_action, msg_prefix und origin mit
Defaultwerten zu versorgen.
msg_type wird per Default zu 0 initialisiert und (später) noch
geraten. Leider geht msg_type nicht als Defaultargument, da es *nach*
msg_action ausgewertet werden muss, aber in der Argumentliste leider
*vor* msg_action kommt...
Change-Id: I021e003a4d2833cac8a166d0ab11ae2b111dedb4
diff --git a/std/player/comm.c b/std/player/comm.c
index 2dbdc75..6ab51bd 100644
--- a/std/player/comm.c
+++ b/std/player/comm.c
@@ -2158,7 +2158,7 @@
return MSG_SENSE_BLOCK;
}
-public varargs int ReceiveMsg(string msg, int msg_type, string msg_action,
+public int ReceiveMsg(string msg, int msg_type, string msg_action,
string msg_prefix, object origin)
{
if (!msg) return MSG_FAILED;
@@ -2167,9 +2167,10 @@
int flags = msg_type & MSG_ALL_FLAGS;
int type = msg_type & ~flags;
- // ggf. defaults ermitteln
- origin ||= previous_object();
- msg_action ||= comm_guess_action();
+ // msg_action kommt per Defaultargument, msg_type hat per Default 0, daher
+ // ggf. auch noch den Typ raten (leider geht msg_type nicht als
+ // Defaultargument, da es *nach* msg_action ausgewertet werden muss, aber in
+ // der Argumentliste leider *vor* msg_action kommt...
type ||= comm_guess_message_type(msg_action, origin);
// Debugmeldungen nur an Magier oder Testspieler mit P_WIZ_DEBUG