Klar, ganz ohne den Objekt-Pointer geht es auch nicht. Hab ich ja auch nicht behauptet.
Aber ich sags gerne nochmal: man braucht nur
ein (1) Objekt, nämlich das im aktuellen Raum. Ich muss nämlich anders als bei den Hotspots nicht zwischen den beiden Räumen unterscheiden.
In dem Moment, in dem ich das Tür-Objekt ansprechen muss (um die Türgrafik zu ändern),
weiß ich ja bereits, um welche Tür es geht (this). Door.Init() setzt das Tür-Objekt der Tür im aktuellen Raum, und Click() schaltet es dann ein oder aus.
Anders bei den Hotspots, bei denen ich eine eindeutige Kombination Hotspot/Raumnummer haben muss, um vom Hotspot eindeutig auf die richtige Tür zu kommen.
(Kann gut sein, dass ich immer noch einen Denkfehler drin habe. Sehe ihn nur nicht.)
Die Hotspots werden übrigens genauso wenig vordefiniert; eine Tür hat erst beide Hotspots gesetzt, sobald man einmal durchgegangen ist. Reicht aber auch.
Übrigens fand ich es erst etwas unpraktisch, dass die Türverbindungen alle in einer langen Liste an einem Fleck gesetzt werden; andererseits habe ich festgestellt, dass ich nur dann mein nächstes kleines Projekt durchziehen kann, dass diesmal hoffentlich auch beendet wird
Ich hab nämlich nochmal Maniac Mansion Begins gespielt, und die Lauforgien sind wirklich extrem nervtötend. Deswegen wollte ich ein Kartenmodul schreiben, mit dem man direkt in einen erreichbaren(!) Raum springen kann. Auch Spezialfälle sind dabei vorgesehen (z.B. der Goblin als Türöffner), und es klappt soweit schon ganz gut, braucht aber noch ein bisschen.