Merge branch 'master' of ssh://mgg/mudlib-public
diff --git a/secure/inetd.c b/secure/inetd.c
index d015602..921a41e 100644
--- a/secure/inetd.c
+++ b/secure/inetd.c
@@ -263,17 +263,13 @@
* Decode a string from a UDP packet.
* Returns: The actual value of the argument (either int or string)
*/
-mixed decode(string arg) {
-
+string|int decode(string arg)
+{
if (sizeof(arg) && arg[0] == '$')
return arg[1..];
-#ifdef RESTRICTED_CASTS
- if (to_string(to_int(arg)) == arg)
+ else if ((arg & "0123456789") == arg)
return to_int(arg);
-#else
- if ((string)((int)arg) == arg)
- return (int)arg;
-#endif
+
return arg;
}
@@ -569,17 +565,21 @@
#endif
string encode(mixed arg) {
+ // Objektnamen mit nicht-ASCII hier ist in allen Faellen doof, wenn sie
+ // koennen auch mit Transliteration nicht mehr verlustfrei zurueck
+ // konvertiert werden...
if (objectp(arg))
- return object_name(arg);
- if (stringp(arg) && sizeof(arg) &&
- (arg[0] == '$' ||
-#ifdef RESTRICTED_CASTS
- to_string(to_int(arg)) == (string)arg))
-#else
- (string)to_int(arg) == (string)arg))
-#endif
- return "$" + arg;
- return to_string(arg);
+ arg = object_name(arg);
+ else if (!stringp(arg))
+ arg = to_string(arg);
+
+ // faengt es mit $ an oder ist es ne zahl (als string, d.h. enthaelt nur
+ // 0-9)? Dann muss nen $ davor.
+ // TODO: Mhmm. Oder vielleicht doch per RegExp?
+ if ( (arg[0] == '$') || ((arg & "0123456789") == arg))
+ arg = '$' + arg;
+
+ return arg;
}
string encode_packet(mapping data) {
diff --git a/secure/master.c b/secure/master.c
index 22d4675..a677902 100644
--- a/secure/master.c
+++ b/secure/master.c
@@ -30,7 +30,6 @@
//for limited, set_limit(), etc. Abs. Pfad noetig, da noch kein Include-Hook
#include "/sys/rtlimits.h"
#include "/sys/debug_info.h"
-#include "/sys/debug_message.h"
#include "/sys/configuration.h"
#include "/sys/regexp.h"
@@ -220,11 +219,13 @@
ReloadInsecureFile();
if (eflag) {
- write("-e angegeben -> Preloading unterdrueckt ...\n");
+ debug_message(
+ "epilog(): -e angegeben -> Preloading unterdrueckt ...\n",
+ DMSG_STAMP);
return 0;
}
- printf("Preloading gestartet: %s\n\n",ctime(time()));
+ debug_message("Preloading gestartet.\n", DMSG_STAMP);
//Files fuers Preloading und Regionen holen
files=explode_files("/std/preload_file") + explode_files("/d/preload_file");
@@ -232,9 +233,7 @@
for (i=sizeof(domains);i--;)
files+=explode_files("/d/"+domains[i]+"/preload_file");
-
- write("\n");
-
+
return files;
}
@@ -250,13 +249,12 @@
// Kein Besitzer -> Meldung ausgeben, fertig
if (!(name=creator_file(file)))
{
- printf("Kein Besitzer gefunden fuer Datei %s.\n",file);
+ debug_message(
+ sprintf("preload: Kein Besitzer gefunden fuer Datei %s.\n",file),
+ DMSG_STDOUT|DMSG_STDERR);
return;
}
- // Datei und Besitzer ausgeben
- printf("%-50s%-15s",file,name);
-
efun::configure_object(this_object(), OC_EUID, name);
// Dann mal laden .. dabei Zeit messen
@@ -269,11 +267,14 @@
err = catch(limited(#'load_object,({5000000}),file));
if (err != 0)
- printf("\nFehler beim Laden von %s:\n%s\n",file,err);
+ debug_message(sprintf("\nFehler beim Laden von %s:\n%s\n",file,err),
+ DMSG_STDOUT|DMSG_STDERR);
else
{
+ // Datei, Besitzer und Ladezeit ausgeben
zeit=apply(#'+,rusage()[0..1])-zeit;
- printf("(%2d.%:02d s)\n",zeit/1000,zeit%1000);
+ debug_message(sprintf("%-50s%-15s (%2d.%:02d s)\n",
+ file, name, zeit/1000,zeit%1000));
}
// Noch EUID zuruecksetzen
@@ -295,23 +296,21 @@
--loading_simul_efuns;
return ({SIMUL_EFUN_FILE});
}
-
- write("Failed to load simul efun " + SIMUL_EFUN_FILE + "\n");
+
debug_message("Failed to load simul efun " + SIMUL_EFUN_FILE +
- " " + err, DMSG_STDOUT | DMSG_LOGFILE);
+ " " + err, DMSG_STDOUT | DMSG_LOGFILE | DMSG_STAMP);
if (!(err=catch(SPARE_SIMUL_EFUN_FILE->start_simul_efun())) ) {
--loading_simul_efuns;
return ({SPARE_SIMUL_EFUN_FILE});
}
-
- write("Failed to load spare simul efun" + SPARE_SIMUL_EFUN_FILE + "\n");
- debug_message("Failed to load spare simul efun " + SPARE_SIMUL_EFUN_FILE +
- " " + err, DMSG_STDOUT | DMSG_LOGFILE);
-
+ debug_message("Failed to load spare simul efun " + SPARE_SIMUL_EFUN_FILE +
+ " " + err, DMSG_STDOUT | DMSG_LOGFILE | DMSG_STAMP);
+
+
efun::shutdown();
-
+
return 0;
}
diff --git a/secure/master.h b/secure/master.h
index 51f579b..242a640 100644
--- a/secure/master.h
+++ b/secure/master.h
@@ -23,7 +23,11 @@
#define P_DEFAULT_NOTIFY_FAIL "default_notify_fail"
#endif
+#include "/sys/functionlist.h"
+#include "/sys/debug_message.h"
+
#include "/secure/config.h"
+#include "/secure/wizlevels.h"
#include "/sys/userinfo.h"
#include "/sys/player/base.h"
@@ -32,10 +36,6 @@
#include "/sys/wizlist.h"
#include "/sys/daemon.h"
#include "/sys/mail.h"
-#include "/sys/driver_hook.h"
-#include "/sys/functionlist.h"
-
-#include "/secure/wizlevels.h"
//#define DEBUG(x)
#ifndef DEBUG
diff --git a/secure/master/misc.c b/secure/master/misc.c
index 8cdbb8c..9bb274f 100644
--- a/secure/master/misc.c
+++ b/secure/master/misc.c
@@ -61,7 +61,9 @@
if (!stringp(exploded[i]) || exploded[i]=="" || exploded[i][0]=='#')
exploded[i]=0;
exploded-=({0});
- printf("%-30s: %3d Objekt%s\n",file,i=sizeof(exploded),(i==1?"":"e"));
+ debug_message(
+ sprintf("%-30s: %3d Objekt%s\n",file,i=sizeof(exploded),(i==1?"":"e")),
+ DMSG_STAMP);
return exploded;
}
diff --git a/secure/master/players_deny.c b/secure/master/players_deny.c
index 6471243..20cf7cb 100644
--- a/secure/master/players_deny.c
+++ b/secure/master/players_deny.c
@@ -88,7 +88,7 @@
if ( extern_call() && call_sefun("secure_level") < ARCH_LVL )
return;
- write("Loading PLDenylists\n");
+ debug_message("Loading PLDenylists\n", DMSG_STAMP);
if (stringp(tmp=read_file(WHITELIST))) {
// savefile exists
diff --git a/secure/materialdb.c b/secure/materialdb.c
index 12dce06..11d3554 100644
--- a/secure/materialdb.c
+++ b/secure/materialdb.c
@@ -19,6 +19,8 @@
#pragma no_shadow
#pragma pedantic
+#include <debug_message.h>
+
// Die Propertydefinition reinholen
#include <language.h>
#include <thing/description.h>
@@ -27,6 +29,7 @@
#include <thing/material.h>
#include <player/description.h>
#include <rtlimits.h>
+#include <living/comm.h>
// Basisverzeichnis der Materialien
#define MAT_DIR "/doc/materials"
@@ -47,8 +50,12 @@
#define P_MEMBERS "members"
#define P_MG_FRACTIONS "mg_fractions"
-#define LOG_ERROR(x) if(find_player("raschaua")&&find_player("raschaua")->QueryProp("mdb-debug"))tell_object(find_player("raschaua"),"MDB-Error:"+x)
-#define LOG_WARN(x) if(find_player("raschaua")&&find_player("raschaua")->QueryProp("mdb-debug"))tell_object(find_player("raschaua"),"MDB-Warn:"+x)
+#define LOG_ERROR(x) if (this_player()) this_player()->ReceiveMsg(\
+ x, MT_DEBUG|MSG_DONT_IGNORE, MA_UNKNOWN, "MDB-Error: ",\
+ "MatDB")
+#define LOG_WARN(x) if (this_player()) this_player()->ReceiveMsg(\
+ x, MT_DEBUG|MSG_DONT_IGNORE, MA_UNKNOWN, "MDB-Warn: ",\
+ "MatDB")
// Prototypes:
// (Liefert den Anteil der Materialgruppe grp an mats)
@@ -370,7 +377,7 @@
mats = AllMaterials();
txt += sprintf("%@s", map(grps, #'gen_material_h_materials_grp,
&mats));
- // Übriggebliene Materialien ausgeben
+ // Uebriggebliene Materialien ausgeben
txt += "// sonstige Materialien:\n";
txt += sprintf("%@s", map(mats, #'gen_material_h_material));
return txt;
@@ -426,7 +433,7 @@
mats = AllMaterials();
txt = sprintf("%@s", map(grps, #'gen_material_list_materials_grp,
&mats));
- // Übriggebliene Materialien ausgeben
+ // Uebriggebliene Materialien ausgeben
txt += "sonstige Materialien:\n";
txt += sprintf("%@s", map(mats, #'gen_material_list_material));
write_file(fn, txt) ||
@@ -467,15 +474,23 @@
if (!stringp(fn) || !sizeof(fn))
fn = DOC_DIR("materialliste");
if (file_size(fn) >= 0) {
- printf("Datei %s existiert bereits, loesche sie\n", fn);
+ debug_message(
+ sprintf("Datei %s existiert bereits, loesche sie\n", fn),
+ DMSG_STAMP);
rm(fn);
}
- if (write_file(fn, "Material Liste\n==============\n\n")) {
+ if (write_file(fn, "Material Liste\n==============\n\n"))
+ {
dump_material(fn);
write_file(fn, gen_doc_foot("materialgruppen"));
- printf("Materialliste erfolgreich in Datei %s geschrieben\n", fn);
- } else
- printf("Konnte Liste nicht in Datei %s schreiben, Abbruch\n", fn);
+ debug_message(
+ sprintf("Materialliste erfolgreich in Datei %s geschrieben\n", fn),
+ DMSG_STAMP);
+ }
+ else
+ debug_message(
+ sprintf("Konnte Liste nicht in Datei %s schreiben, Abbruch\n", fn),
+ DMSG_STAMP);
}
}
@@ -490,15 +505,23 @@
if (!stringp(fn) || !sizeof(fn))
fn = DOC_DIR("materialgruppen");
if (file_size(fn) >= 0) {
- printf("Datei %s existiert bereits, loesche sie\n", fn);
+ debug_message(
+ sprintf("Datei %s existiert bereits, loesche sie\n", fn),
+ DMSG_STAMP);
rm(fn);
}
- if (write_file(fn, "Materialgruppen\n===============\n")) {
+ if (write_file(fn, "Materialgruppen\n===============\n"))
+ {
map(sort_array(m_indices(material_groups), #'>), #'dump_group, fn);
write_file(fn, gen_doc_foot("materialliste"));
- printf("Materialliste erfolgreich in Datei %s geschrieben\n", fn);
- } else
- printf("Konnte Liste nicht in Datei %s schreiben, Abbruch\n", fn);
+ debug_message(
+ sprintf("Materialliste erfolgreich in Datei %s geschrieben\n", fn),
+ DMSG_STAMP);
+ }
+ else
+ debug_message(
+ sprintf("Konnte Liste nicht in Datei %s schreiben, Abbruch\n", fn),
+ DMSG_STAMP);
}
}
@@ -513,14 +536,21 @@
string txt;
if (!stringp(fn) || !sizeof(fn))
fn = HEADERFILE;
- if (file_size(fn) >= 0) {
- printf("Datei %s existiert bereits, loesche sie\n", fn);
+ if (file_size(fn) >= 0)
+ {
+ debug_message(
+ sprintf("Datei %s existiert bereits, loesche sie\n", fn),
+ DMSG_STAMP);
rm(fn);
}
if (dump_material_h(fn))
- printf("Headerdatei erfolgreich in %s geschrieben\n", fn);
+ debug_message(
+ sprintf("Headerdatei erfolgreich in %s geschrieben\n", fn),
+ DMSG_STAMP);
else
- printf("Konnte Headerdatei nicht in Datei %s schreiben, Abbruch\n", fn);
+ debug_message(
+ sprintf("Konnte Headerdatei nicht in Datei %s schreiben, Abbruch\n",
+ fn), DMSG_STAMP);
}
}
diff --git a/std/living/life.c b/std/living/life.c
index 4e8490a..2d86bb5 100644
--- a/std/living/life.c
+++ b/std/living/life.c
@@ -1288,7 +1288,7 @@
if (QueryProp(P_GHOST))
return Query(P_ALCOHOL, F_VALUE);
- // nur Änderungen und Werte >=0 werden gesetzt...
+ // nur Aenderungen und Werte >=0 werden gesetzt...
n = n < 0 ? 0 : n;
int old = Query(P_ALCOHOL, F_VALUE);
if ( old == n)
@@ -1324,7 +1324,7 @@
if (QueryProp(P_GHOST))
return Query(P_DRINK, F_VALUE);
- // nur Änderungen und Werte >=0 werden gesetzt...
+ // nur Aenderungen und Werte >=0 werden gesetzt...
n = n < 0 ? 0 : n;
int old = Query(P_DRINK, F_VALUE);
if ( old == n)
@@ -1360,7 +1360,7 @@
if (QueryProp(P_GHOST))
return Query(P_FOOD, F_VALUE);
- // nur Änderungen und Werte >=0 werden gesetzt...
+ // nur Aenderungen und Werte >=0 werden gesetzt...
n = n < 0 ? 0 : n;
int old = Query(P_FOOD, F_VALUE);
if ( old == n)
diff --git a/std/player/combat.c b/std/player/combat.c
index abb5a1b..64d945c 100644
--- a/std/player/combat.c
+++ b/std/player/combat.c
@@ -204,7 +204,7 @@
return res;
}
-// Spieler koennen als Geist nicht kämpfen
+// Spieler koennen als Geist nicht kaempfen
// TODO: pruefen, ob das Setzen und Loeschen der Prop in set_ghost() nicht
// auch ausreichen wuerde. In dem Fall muesste man aber P_NO_ATTACK auch
// speichern, da P_GHOST gespeichert wird...
diff --git a/std/player/skills.c b/std/player/skills.c
index 8f6b8f0..03755da 100644
--- a/std/player/skills.c
+++ b/std/player/skills.c
@@ -236,8 +236,8 @@
log_file("WEAPON_SKILLS", sprintf("%s: Zu hoher Schaden von: "
+"TO: %O, TI: %O, PO: %O, val: %d, A_DEX: %d, A_STR: %d, "
+"P_WEAPON: %O, P_WC: %d\n", dtime(time()),
- this_object(), this_interactive(),
- previous_object(), val,
+ this_object(), this_interactive(),
+ previous_object(), val,
QueryAttribute(A_DEX),
QueryAttribute(A_STR), sinfo[P_WEAPON],
sinfo[P_WEAPON]->QueryProp(P_WC)));
@@ -245,7 +245,7 @@
}
/*
- Der zusätzliche Schaden der allgemeinen Waffenskills berechnet
+ Der zusaetzliche Schaden der allgemeinen Waffenskills berechnet
sich wie folgt:
sinfo[SI_SKILLABILITY)* (P_WC * ( X ) / 800) / MAX_ABILITY
diff --git a/std/shells/magier/upd.c b/std/shells/magier/upd.c
index f09ea9a..9c9af5f 100644
--- a/std/shells/magier/upd.c
+++ b/std/shells/magier/upd.c
@@ -116,8 +116,8 @@
{
// Schreibrechte nur pruefen, wenn echt aktualisiert werden soll.
if(!dummy && !MAY_WRITE(file))
- return (printf("upd: %s: Keine Schreibrechte!\n",file), -1);
- if(!MAY_READ(file))
+ return (printf("upd: %s: Keine Schreibrechte!\n",file), -1);
+ if(!MAY_READ(file))
return (printf("upd: %s: Keine Leserechte!\n", file), -1);
}
if (dummy) return 1;
diff --git a/std/thing/commands.c b/std/thing/commands.c
index 8f93449..72f50cd 100644
--- a/std/thing/commands.c
+++ b/std/thing/commands.c
@@ -336,19 +336,19 @@
while(j--) {
int k;
// DBG(rule[j]);
- // Regeln nicht löschen und Regel?
+ // Regeln nicht loeschen und Regel?
if(!(del_norule && pointerp(rule[j])) &&
- // nur bestimmte ID löschen und ID passt nicht?
+ // nur bestimmte ID loeschen und ID passt nicht?
!(onlyid && (!pointerp(ids) || sizeof(ids)<=j || ids[j]!=onlyid)) &&
- // Löschregel existiert und passt nicht auf Regel?
+ // Loeschregel existiert und passt nicht auf Regel?
!(delrule && (k=sizeof(rule[j]))!=sizeof(delrule))) {
- // partielles Testen einer Löschregel ...
+ // partielles Testen einer Loeschregel ...
if(delrule) {
while(k--)
if(!sizeof(rule[j][k]&delrule[k])) break;
if(k>=0) continue;
}
- // alles korrekt: Löschen!
+ // alles korrekt: Loeschen!
// (Arraybereich durch leeres Array loeschen)
flag[j..j] = allocate(0);
fun[j..j] = allocate(0);
diff --git a/sys/living/life.h b/sys/living/life.h
index 81ba3dd..3dc0311 100644
--- a/sys/living/life.h
+++ b/sys/living/life.h
@@ -53,7 +53,7 @@
// H_EFFECTS - Zu aendernde Properties fuer den Effekt
#define H_EFFECTS "effects"
-// H_CONDITIONS - Zu pruefende Properties für den Effekt (Saettigung, ...)
+// H_CONDITIONS - Zu pruefende Properties fuer den Effekt (Saettigung, ...)
#define H_CONDITIONS "conditions"
// H_DISTRIBUTION - Wie die Aenderung an HP/SP austeilen, sofort, zeitlich
// versetzt, ...
diff --git a/sys/magier.h b/sys/magier.h
index 33cd98f..f6eb3a8 100644
--- a/sys/magier.h
+++ b/sys/magier.h
@@ -102,7 +102,7 @@
#define LS_L 2 // Lange Ausgabe
#define LS_R 4 // Rueckwaerts ausgeben
#define LS_T 8 // Nach Zeit ordnen
-#define LS_S 16 // Nach Größe ordnen
+#define LS_S 16 // Nach Groesse ordnen
#define LS_U 32 // UID anzeigen
#define LS_G 64 // Gruppe anzeigen
diff --git a/sys/notify_fail.h b/sys/notify_fail.h
index 97d1786..6f0eaf5 100644
--- a/sys/notify_fail.h
+++ b/sys/notify_fail.h
@@ -8,7 +8,7 @@
#define _NOTIFY_FAIL_H_
// Prioritaeten / 'Nice levels' von notify_fail()s:
-// Wie 'nice' bin ich? Je groessere Zahl/Priorität, desto wenig lieb. ;-)
+// Wie 'nice' bin ich? Je groessere Zahl/Prioritaet, desto wenig lieb. ;-)
#define NF_NL_NONE -1 //max 'niceness', wird von allem ueberschrieben
#define NF_NL_OWN 100 //eigenes Objekt (soul verben) ueberschreiben kaum was
#define NF_NL_THING 100000
diff --git a/sys/player/fao.h b/sys/player/fao.h
index 3c016a4..c773cf1 100644
--- a/sys/player/fao.h
+++ b/sys/player/fao.h
@@ -6,9 +6,9 @@
#define FAO_MASTER "/d/ebene/miril/fraternitas/secure/faomaster" // die zentrale stelle des fao
-// die Liste der verfügbaren Portale fuer das erste portalgeschenk
+// die Liste der verfuegbaren Portale fuer das erste portalgeschenk
#define FAO_PORTALS1_LIST ({2,3,4,5,6,7,8,9,10,13,14,15,16,19,20,21,25,29,33})
-// die Liste der verfügbaren Portale fuer das zweite portalgeschenk
+// die Liste der verfuegbaren Portale fuer das zweite portalgeschenk
#define FAO_PORTALS2_LIST FAO_PORTALS1_LIST+({1,11,12,17,18,24,26,27,28,31,34,36,37,38})
// die anzahl der zu waehlenden portale fuer das erste portalgeschenk
#define FAO_PORTALS1_NUM 5