int ret[x] erstellt einen Array mit x Elementen, von ret[0] bis ret[x-1], deswegen sollte es heissen: while(c<AGS_MAX...
ret[c]=a; sollte aus der inneren while-Schleife raus, es wird sonst eventuell unnötig mehrfach ausgeführt.
Ist kein Muss, man sollte sich aber sauberes programmieren angewöhnen. Du wirst im Spiel sicher keine 300 Items haben, die der player alle 5x dabei hat, aber sauber ist besser.
Gerade dann würde ich einfach einen zweiten Char nehmen. Der braucht ja nichtmal ne eigene View. Du lässt seinen starting room einfach auf -1.Für den Fall, dass es nur einen Char gibt und der der PC ist (und alle anderen bloß Objekte)