Laden/Speichern von Raeumen gefixt
Es wurde das falsche Savefile benutzt, weil QuerOwner() falsch
gerufen wurde. Es muss QueryOwner(1) benutzt werden, um die
Raumnummer am Savefile zu haben. Dieser Fehler entstand aus
der Konfusion, dass es in Raum und Haus verschiedene QueryOwner()
gibt und losa.c den falschen Prototyp inkludiert hat...
Change-Id: I659f4ddd8205ae0078d022ba7e63ce51e7de1c7d
diff --git a/d/seher/haeuser/haus.c b/d/seher/haeuser/haus.c
index d429789..c34d279 100644
--- a/d/seher/haeuser/haus.c
+++ b/d/seher/haeuser/haus.c
@@ -70,7 +70,6 @@
AddCmd( ({"beschreib", "beschreibe"}), "beschreiben");
AddCmd( ({"aender", "aendere"}), "aendern");
AddCmd( ({"klopf","klopfe"}), "klopfen");
- AddCmd("verbiete", "verbieten");
AddCmd("notiz", "merktext");
}
@@ -137,7 +136,7 @@
}
// liefert den Name des Haus-Besitzers
-string QueryOwner() { return owner; }
+varargs string QueryOwner(int withNr) { return owner; }
private int tp_ownercheck()
{
diff --git a/d/seher/haeuser/haus.h b/d/seher/haeuser/haus.h
index 84c087c..8084685 100644
--- a/d/seher/haeuser/haus.h
+++ b/d/seher/haeuser/haus.h
@@ -20,7 +20,7 @@
/*** Pfade ***/
#define HAEUSERPFAD "/d/seher/haeuser/"
-#define HAUSSAVEPATH HAEUSERPFAD+"save/"
+#define HAUSSAVEPATH "/data"+HAEUSERPFAD+"save/"
#define SPECIALPATH HAEUSERPFAD+"special/"
#define VERWALTER (HAEUSERPFAD+"hausverwalter")
#define HAUS HAEUSERPFAD+"haus"
@@ -115,7 +115,7 @@
varargs void Save(int crunched);
void Load();
-string QueryOwner();
+varargs string QueryOwner(int withNr);
varargs string SetOwner(string o, int nr);
protected void AddExitNoCheck(mixed cmd, mixed dest);
void RemoveExitNoCheck(mixed cmd);
diff --git a/d/seher/haeuser/modules/losa.c b/d/seher/haeuser/modules/losa.c
index 84cd6a5..b078f57 100644
--- a/d/seher/haeuser/modules/losa.c
+++ b/d/seher/haeuser/modules/losa.c
@@ -67,7 +67,7 @@
void
reset()
{
- if (QueryOwner() &&
+ if (QueryOwner(0) &&
!sizeof(filter(all_inventory(),#'interactive)) &&
!csaved)
Save(1);
@@ -129,7 +129,7 @@
" broken) objects in room "+
object_name(this_object()) + ".");
- save_object( HAUSSAVEPATH+QueryOwner());
+ save_object( HAUSSAVEPATH+QueryOwner(1));
Set(P_DETAILS, o1, F_VALUE);
Set(P_READ_DETAILS, o2, F_VALUE);
@@ -143,7 +143,7 @@
mixed prop;
int i;
- restore_object( HAUSSAVEPATH+QueryOwner());
+ restore_object( HAUSSAVEPATH+QueryOwner(1));
// Details und Kommandos werden beim Speichern de-dupliziert und in einem
// speziellen Format abgespeichert (s. PCrunch() im Hausverwalter). Sie
@@ -217,7 +217,7 @@
{
if (Query(H_CHEST))
this_object()->AddItem(PATH+"truhe",REFRESH_NONE,
- ([ "owner" : QueryOwner() ]));
+ ([ "owner" : QueryOwner(0) ]));
/* Das scheint nirgendwo benutzt zu werden und in allen Seherhaeusern leer zu
* sein.
mapping special = Query(H_SPECIAL, F_VALUE);
@@ -258,7 +258,7 @@
broken_furniture+=([file:data]);
log_file("seher/haeuser/autoloader_error",
dtime(time())+"\n"+
- break_string(object_name(this_object())+" ("+QueryOwner()+")",78, " FILE: ",1)+
+ break_string(object_name(this_object())+" ("+QueryOwner(1)+")",78, " FILE: ",1)+
break_string(message, 78, " MSG: ",1)+
break_string(sprintf("%O", data),78, " DATA: ",1)+"\n");