Ändere Rückgabewerte von HasAutoloader()
Die aktuellen Rückgabewerte sind problematisch, weil -1 sowohl
"fehlerhafter Aufruf" als auch "Keine Autoloadertruhe vorhanden" heißen
kann. Will man nur wissen, ob der autoloader vorhanden ist, ist "keine
Autoloadertruhe vorhanden" aber das gleiche wie "Autoloader nicht in der
Truhe", wass ein Rückgabewert von 0 ist.
Change-Id: Id2a107e7f0894ab3dffb2ca7683e97a77c4741d5
diff --git a/d/seher/haeuser/moebel/autoloadertruhe.c b/d/seher/haeuser/moebel/autoloadertruhe.c
index e83a241..48e85ea 100644
--- a/d/seher/haeuser/moebel/autoloadertruhe.c
+++ b/d/seher/haeuser/moebel/autoloadertruhe.c
@@ -1014,9 +1014,11 @@
mixed testfun() {return "bin da\n";}
public int HasAutoloader(string uuid, string loadname) {
- if (!sizeof(uuid) || !sizeof(loadname) || clonep() || !(uuid in data))
+ if (!sizeof(uuid) || !sizeof(loadname))
return -1;
+ if (clonep())
+ return -2;
- return (loadname in data[uuid]);
+ return (uuid in data && loadname in data[uuid]);
}
diff --git a/doc/sphinx/lfun/HasAutoloader.rst b/doc/sphinx/lfun/HasAutoloader.rst
index 60af858..3f29ef9 100644
--- a/doc/sphinx/lfun/HasAutoloader.rst
+++ b/doc/sphinx/lfun/HasAutoloader.rst
@@ -29,12 +29,13 @@
-------------
1
- wenn der Spieler den Autoloader eingelagert hat
+ Spieler hat den Autoloader eingelagert
0
- wenn nicht
+ Spieler hat den Autoloader nicht eingelagert odre besitzt keine Truhe
\-1
- wenn Unfug uebergeben wurde, der Spieler keine Truhe besitzt oder die
- Funktion nicht in der Blueprint aufgerufen wurde
+ Keine sinnvollen Werte uebergeben
+ \-2
+ Funktion wurde nicht an der Blueprint aufgerufen
HINWEIS
-------
@@ -43,5 +44,5 @@
werden, weil nur diese ueber alle Daten verfuegt.
-Last modified: 2023-08-27, Arathorn
+Last modified: 2025-12-10, Bugfix