Danke nochmals für eure Hinweise und Ratschläge. Ich bin jetzt ein gutes Stück mit dem Ressourcenmanager vorangekommen, auch wenn er letztendlich ganz anders geworden ist, als ich ursprünglich geplant hatte.
Falls jemand mehr über das Ergebnis wissen möchte: Der Ressourcenmanager ist nun eine nichtgenerische Klasse, die eine unbestimmte Anzahl an Ressourcenkatalogen verwaltet. Jeder Ressourcenkatalog bildet jeweils eine XML-Datei ab, in der Ressourcendefinitionen gespeichert sind (Pfade zu den Ressourcen + Metainformationen). Ressourcen werden folgendermaßen geladen:
auto texture = manager.getResource<Texture>("xml/pfad/zur/ressourcendefinition", "resources.xml");
Mithilfe eines optionalen dritten Parameters können sprachabhängige Ressourcen geladen werden:
auto text = manager.createResource<Text>("mission4/anweisungen", "missions.xml", "en");
In der obigen Zeile sieht man auch die von H5 vorgeschlagene createResource-Methode. Sie dient dazu, eine Ressource zu laden, die nicht vom Manager gecacht wird.
Zu guter Letzt gibt es jetzt auch eine Referenzzählung für die Ressourcen, damit u.a. auch soetwas möglich ist:
manager.removeUnusedResources();
Dadurch bleiben Ressourcen verschont, auf die während des ganzen Spiels immer wieder zurückgegriffen wird (z.B. die Texturen für das Spielmenü).
Es sind noch nicht alle Funktionen vollständig implementiert und ein paar kleine Unschönheiten wollen noch ausgebügelt werden. Der Manager hat jetzt aber alle Features, die ich brauche; vielleicht kommen später noch Ressourcendateien hinzu, in denen die Kataloge samt zugehöriger Ressourcen gezippt sind. Aber das hat für mich eher eine Gimmick-Priorität.