True, but if you are going to make it a completely new concept rather than an extended version, you might want it to be on it's own/not backwards compatible.
Removing the compatibility, you could create whole new source file formats, with function blocks and such. You could make it structured, so it doesn't just start at the top, it starts at a "room100:init() {}" block or something.
I think a great thing for it would be to have something like:
---
room:init()
{
/* which would actually be treated as "room.pic.load()"
* or "this.pic.load()", but since it's in the room block,
* it's not needed */
pic.load();
pic.draw();
pic.discard();
set.horizon(37);
statusline.off();
input.prevent();
setControl(PROGRAM);
pic.show();
screen.display(10,1," Intro/Opening screen");
}
room:doit()
{
if(have.key() || ctlJOYSTICK) {
menu.enable();
screen.lines.clear(22, 24);
ego.motion.stop();
DISABLE_GAME_FUNCTIONS = FALSE;
room.changeTo(aNameOfAnotherRoom); // ie. "room002" or "kitchen"
}
// onExit()
room.exit()
{
screen.print("BYE!")
}
Well, those are my ideas

dO with them what you wish!