R
ich hab das bei mir in der art von webpages realisiert. wenn man zu einem anderen bereich moechte, dann gibt es eine verlinkung dafuer. jede "page" hat ein lifecycle, sie wird initialisiert, danach laeuft sie und am ende, wird sie terminiert bevor die naechste "page" geladen wird.
in pseudocode etwa
autoptr<Module> Module;
std::string ModuleName("Index");
std::string LastModuleName;
while(ModuleName!="")
{
if(ModuleName!=LastModuleName)
{
Module.Release();
Module.Load(ModuleName);
Module.Init();
}
LastModuleName = ModuleName;
ModuleName = Module.Run();//placebo fuer rendering,update,logic,input etc. was man sonst hier machen wuerde...
}
Module.Release();
parameter uebergabe usw. laeuft dabei mittels einer statemaschine ala
std::mapstd::string,std::string g_DB;
das schoene ist, dass ich zum ablegen eines savegames nur die g_DB speichern muss. da ich ja zum zurueckspringen aus dem savemenue wieder den alten zustand herstellen muss, muss ich mir eh alles wichtige dort ablegen und genau die selben daten kann ich dann nach dem laden haben.
bei mir ist auch jedes fenster/dialog eines menues eine 'page', somit ist das mainmenue eine ansammlung von 'pages'.
rapso->greets();