Fehler bei gezueckten, unsichtbaren Waffen behoben

Unsichtbare Waffen, die gezueckt sind, loesten einen Fehler in der Ausgabe
von "ausruestung -k" aus. Zur Behebung wurde die Ausgabe der Waffen
umgestellt, so dass nun auch Waffen des Typs WT_HANDS angezeigt werden.
Allerdings fuehren solche Waffen zu einer seltsamen Anzeige in der grafischen
Ausgabe. Das bleibt fuer den Moment so, weil dieser Fall aktuell ohnehin nur
bei einem selten benutzten Objekt in einer einzelnen Gilde auftrat.

Weiterhin loesten Waffen, deren P_NAME ein Array enthaelt, einen Laufzeit-
fehler aus, weil P_NAME direkt abgefragt wurde. Stattdessen wird nun die
lfun name() verwendet.

Change-Id: I5e2ec6c486aab909f8135d9cf328719807bea82e
diff --git a/std/player/invmaster/invmaster.c b/std/player/invmaster/invmaster.c
index 06ccda0..5b6d599 100644
--- a/std/player/invmaster/invmaster.c
+++ b/std/player/invmaster/invmaster.c
@@ -143,7 +143,7 @@
   string text, *buff;
   
   text=regreplace(item->QueryProp(P_SHORT)
-                ||item->QueryProp(P_NAME)
+                ||item->name(RAW)
                 ||"<?>",
                 "^(Ein Paar|Ein|Eine|Der|Die|Das) ","",0);
                 
@@ -378,7 +378,7 @@
 		       WT_MISC  : "Irgendwas",
 		       WT_MAGIC : "Artefakt",
 		       WT_AXE   : "Axt",
-	       WT_RANGED_WEAPON : "Fernwaffe"
+	         WT_RANGED_WEAPON : "Fernwaffe"
 		       ]);
 
 string SimpleInv(object player) {
@@ -392,7 +392,7 @@
     if (!objectp(ob)) continue;
       int idx = member(armour_order, ob->QueryProp(P_ARMOUR_TYPE));	      
       if (idx>=0)
-        list[idx]=ob->QueryProp(P_SHORT);
+        list[idx]=ob->QueryProp(P_SHORT)||ob->name(RAW);
   }
 
   // AT_MISC (letztes Element in list und armour_order) weglassen.
@@ -401,12 +401,23 @@
   }
 
   object ob=ob=player->QueryProp(P_WEAPON);
-  if (objectp(ob)) {
-    result+=sprintf("%-20s %-57s\n",
-		    (ob->QueryProp(P_NR_HANDS)==1 ? "Einhand-":"Zweihand-")
-		    +weapon_names[ob->QueryProp(P_WEAPON_TYPE)],
-		    ob->QueryProp(P_SHORT));
-  } else result+="Keine Waffe\n";
+  if (objectp(ob)) 
+  {
+    string waffentyp;
+    if ( ob->QueryProp(P_WEAPON_TYPE)!=WT_HANDS ) 
+    { 
+      waffentyp = (ob->QueryProp(P_NR_HANDS)==1 ? "Einhand-":"Zweihand-")
+		               +weapon_names[ob->QueryProp(P_WEAPON_TYPE)];
+    }
+    else
+    {
+      waffentyp = "Waffe";
+    }
+    result+=sprintf("%-20s %-57s\n", waffentyp,
+		    ob->QueryProp(P_SHORT)||ob->name(RAW));
+  } 
+  else 
+    result+="Keine Waffe\n";
 
   return result;
 }