Vor 2 Stunden
(Vor 4 Stunden)siebenstreich schrieb: Es gibt für jeden Helden einen Zähler, der seine belegten Inventar-Slots zählt (hero.num_inv_slots_used im aktuellen BrightEyes). Es ist bekannt, dass dieser slot counter nicht immer korrekt aktualisiert wird. Henne hat schon eine Stelle gefixt, wo zwei Stapel gleichartiger Gegenstände zusammengeführt werden. Dabei wird ein Slot frei, aber es wurde vergessen, den counter zu erhöhen. Aber da liegt wohl noch mehr im Argen.
Ich habe deswegen gerade in relevante Code-Stellen reingeschaut und dabei gemerkt, dass mir schon die Bedeutung dieses counters nicht ganz klar ist. Es gibt zwei denkbare Varianten:So, wie der Zähler aktualisiert wird, schaut es eher nach der zweiten Variante aus. Aber schaut man sich an, wie die Information benutzt wird, nämlich z.B. um zu ermitteln, ob der Held Platz für einen neuen Gegenstand hat (der dann ja erstmal im Rucksack landet), bräuchte man den counter in der ersten Variante.
- Es werden nur die belegten Inventarslots im Rucksack (also die 16 Slots auf der linken Seite) gezählt.
- Es werden auch die 7 Slots am Körper (Kopf, Oberkörper, Hände usw.) mit einbezogen.
Weiß jemand, wie sich dieser Widerspruch auflöst? Oder haben wir es hier mit einer weiteren Kostprobe Attic'scher Programmierkunst zu tun?
Hab gerade einen Test gemacht: Diese Variable hat bei einem vollbepackten Helden den Wert 23.


