spotte reaktiviert, SV-Funktion umgebaut
Der Moerder darf nun wieder einmal das Opfer verpotten,
der SV erlaubt das Senden auf -moerder genau einmal.
Change-Id: I025c0cc31061bc16a60a6c6f640d27786b6b8bb3
diff --git a/std/corpse.c b/std/corpse.c
index 008cb85..54497a9 100644
--- a/std/corpse.c
+++ b/std/corpse.c
@@ -30,6 +30,7 @@
#include <wizlevels.h>
#include <living/life.h>
#include "/secure/scoremaster.h"
+#include "/p/daemon/channel.h"
#define CORPSE_OBJ "/std/corpse.c"
#define PILE_OBJ "/std/pile.c"
@@ -79,12 +80,18 @@
}
}
+// Gerufen vom CHANNELD, um festzustellen, wer was auf -moerder tun darf.
public int ch_check_access(string ch, object user, string cmd)
{
- // sich selber fuer alles erlauben
+ // sich selber fuer alles erlauben (und dieses Objekt wird
+ // nur fuer -moerder gefragt).
if (user==this_object())
return 1;
-
+ // Der Moerder darf einmal verspotten, d.h. eine Meldunge auf der Ebene
+ // senden (das Kommando setzt gespottet dabei).
+ if (user==moerder && !gespottet && cmd == C_SEND)
+ return 1;
+ // Rest soll der Standard-SV entscheiden
return channel_supervisor::ch_check_access(ch, user, cmd);
}