Okay, let's list all the kinds of things we want to script, this'll help me to get my head round this.
generic collectibles (guns, ammo, health, keys)
generic doors
generic scenery (barrels, destructible rubble)
switch(es) to open / close a door
switch(es) to trigger self destruct
Rob, your comment on imagelists - yes, we'd end up with many specific items in the object list in the editor, but they can reuse images, so no overhead on gfx files. And as object definition files can be per level, you only see objects for that level. But yes, for objects not visible when playing you would need an object image for the editor. Although I'm half tempted to say the editor puts the object id on the map if there's no image assigned.
Having said that, I am beginning to think that all levels should have access to a default.obj (with generics) and a level.obj (with specifics).
I am also considering the idea of a single .obj file for all levels that defines classes of objects. We then allow these objects to accept parameters (e.g. x,y, timedelay). The current object map layer then becomes a string, not an integer that defines the object class and the input parameters. For example a switch object might be object id 56, and to get it to open a door at 10,11 on the map, the object layer is now "56 10 11". Which is almost your idea for scripts attached to tiles...
As you can see, I'm still thinking!
generic collectibles (guns, ammo, health, keys)
generic doors
generic scenery (barrels, destructible rubble)
switch(es) to open / close a door
switch(es) to trigger self destruct
Rob, your comment on imagelists - yes, we'd end up with many specific items in the object list in the editor, but they can reuse images, so no overhead on gfx files. And as object definition files can be per level, you only see objects for that level. But yes, for objects not visible when playing you would need an object image for the editor. Although I'm half tempted to say the editor puts the object id on the map if there's no image assigned.
Having said that, I am beginning to think that all levels should have access to a default.obj (with generics) and a level.obj (with specifics).
I am also considering the idea of a single .obj file for all levels that defines classes of objects. We then allow these objects to accept parameters (e.g. x,y, timedelay). The current object map layer then becomes a string, not an integer that defines the object class and the input parameters. For example a switch object might be object id 56, and to get it to open a door at 10,11 on the map, the object layer is now "56 10 11". Which is almost your idea for scripts attached to tiles...
As you can see, I'm still thinking!