freenode/#shirakumo - IRC Chatlog
Search
9:44:00
Shinmera
This is very useful for a multitude of things such as when the editor is activated, when the pause menu is opened, or when input is required
9:44:28
Shinmera
The way that's currently done is to simple remove all the event handlers from objects that are not the one requesting the pause
9:45:35
Shinmera
so for instance if you open the editor, and the editor asks for input, then once the input is done it'll restore all the event handlers, including those of non-editor entities.
10:08:07
resttime
Dunno how the engine is designed, but random idea is if design is separated into logic-render, maybe separate normal logic and pause logic into separate funcallable lambdas. Pausing is switching the lambda to call.
10:08:47
resttime
Another random idea is if objects can be grouped by "layers" which the event handlers can check the layer's flag on whether to run.
10:16:12
Shinmera
basically you have a scene, which has a list of event handlers, and a container for entities to be drawn
10:16:38
Shinmera
when an entity is entered, if it is a subject, its list of event handlers is appended to the scene's
10:17:16
Shinmera
when an event arrives at the scene (event-loop) it simply goes through the list of handlers and calls a function to deliver the event
10:18:24
Shinmera
you could of course add handling somewhere in between there to pause stuff, but that doesn't really solve my current problem of stacked pausing
10:20:10
Shinmera
I think on pause I'll simply put the current list of handlers on a stack and set a new list with only the currently "active" entities' handlers. On unpause it just pops the stack.
10:21:37
Shinmera
actually things are a bit more difficult because there are entities that should always be excluded from being paused