Re: [AD] Old patches return |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
> Sure, but any object below it won't get them. I use that for GUI
> objects that are essentially decorations on top of the active object.
> In this case, the object below must answer mouse messages, but would
> not receive them, as the decoration would be deemed to be the mouse
> messages recipient by the GUI handler.
Do these decorations need to be GUI objects at all? Can't you make them
part of the real object?
> In a general case, I think it's bad to ignore all messages (bar the
> MSG_DRAW one) for hidden objects. But it would probably break things
> to change this, so I didn't.
Hidden objects are deemed "inactive" in the docs, so I think the current code
is reasonable for internal messages. If you want to get all the messages,
use a visible object that draws nothing (I dunno whether this would really
work, though).
> > Don't forget that disabled objects must redraw themselves, so
> > they must get at least the MSG_DRAW message.
>
> They should get it. I do have disabled objects that are drawn.
You mean with your patch applied? If so, that's because object_message() is
called directly on them. But
@@ -381,7 +381,7 @@
if ((try == 2) && (&dialog[count] != active_menu_player->dialog))
continue;
- if ((force) || (!(dialog[count].flags & D_HIDDEN))) {
+ if ((force) || (!(dialog[count].flags & D_DISABLED))) {
r = object_message(&dialog[count], msg, c);
if (r != D_O_K) {
will turn dialog_message() into a no-op for them with MSG_DRAW for sure,
because 'force' is FALSE for MSG_DRAW.
> Thanks for taking the time to revisit those old posts.
Well, I should have revisited them when they were posted instead :-)
--
Eric Botcazou