Big Bucket Software you like to use
Switching Scenes…
October 28th, 2005

cave Just a moment ago, it became possible to switch between scenes. Yes… this is a very good thing. Not only can it switch, but it can also switch back. Wow, how cool is that. Before I get too excited, there are a couple of slight issues that I’ll need to address before moving on…

My biggest concern for the moment is with the idea of an ItemModel. Essentially, an ItemModel has one public method (of interest to the Actor): manipulate(). When the Actor wants to use an Item, he/she manipulates it. An ItemModel may be either once-only manipulatable, or toggle-able. (Lovely words, those). Sounds good so far?

Problem now is, consider something like a hole in the floor. This is an ItemModel. You want to go down the hole in the floor, so you manipulate it. Given the situation I described above, this will mean that the hole in the floor is now in a manipulated state until you manipulate it again… hence, toggling it back to being unmanipulated. It should make logical sense to say,

Signal signal(hole_in_floor, IsManipulated, true);
Slot slot(scene, SwitchScene, "cave");
messenger.link(signal, slot);

But unfortunately, every second time the hole in the floor is manipulated, this link will not fire.

Therefore I’m going to need to give the ItemModel another kind of behaviour, that is the ‘bounce’ manipulation… or something. This would mean that when it is manipulated, it will fire of a signal to say that it was manipulated and immediately bounce back. If a lampshade were configured in this way, clicking it would cause it to flicker, for example.