Einige _get_path zu make_path_absolute geaendert.
Die uebergebenen UIDs sind eh (groesstenteils) sinnlos
gewesen und der Name ist sprechender und suggeriert
keine Nutzung einer privaten Funktion.
In beiden Faellen erfolgt keine Expansion von
Platzhaltern im Pfad.
Change-Id: I9b3752b27c65ec3d106be78fcd2976e9e057b3e0
diff --git a/std/room/exits.c b/std/room/exits.c
index b5c352b..3d8b120 100644
--- a/std/room/exits.c
+++ b/std/room/exits.c
@@ -325,21 +325,23 @@
static string _MakePath( string str )
{
- string *comp;
+ string *comp = explode( object_name(this_object()), "/" ) - ({""});
- comp = explode( object_name(this_object()), "/" ) - ({""});
-
- switch( str[0] ){
+ switch( str[0] )
+ {
case '.':
str = "/" + implode( comp[0..<2], "/" ) + "/" + str;
break;
-
+
+ // Konstruiert einen Pfad relativ zu /players/REAL_UID bzw.
+ // /d/<region>/REAL_UID/.
case '~':
str = "/" + comp[0] + "/" + (comp[0] == "d" ? comp[1] + "/" : "")
+REAL_UID(this_object()) + str[1..];
break;
}
-
- return MASTER->_get_path( str, getuid(this_object()) );
+ // macht den Pfad absolut und halbwegs "sane", loest .. im Pfad auf.
+ // Beruecksichtigt KEINE weiteren Platzhalter.
+ return master()->make_path_absolute(str);
}