Nathanael Gentry
d7ec21cbeb
DIRECTOR: Properly discover sprite cursors
...
We canot just use getSpriteIDFromPos, as Director gets the cursor from the
topmost sprite that has a non-empty cursor.
2020-08-19 10:41:55 -04:00
djsrv
9c537a8744
DIRECTOR: Rename Stage to more general Window
...
The stage and windows are the same type of thing, but the stage only
refers to one particular window.
2020-08-04 23:54:09 -04:00
djsrv
8656c91e9d
DIRECTOR: Remove leftover old event code
2020-08-04 18:25:29 -04:00
djsrv
f4c652e76f
DIRECTOR: Return true on handled key event
2020-08-04 15:16:18 -04:00
djsrv
a7ca8a0b2c
DIRECTOR: Get rid of busy wait for click loop
2020-08-04 15:14:05 -04:00
djsrv
054b8ddeb0
DIRECTOR: Improve mouse event handling
2020-07-27 16:42:42 -04:00
djsrv
33d07334eb
DIRECTOR: Replace isFocusable with respondsToEvent
2020-07-27 12:51:51 -04:00
Eugene Sandulenko
300bea13c8
DIRECTOR: Remove unused variable
2020-07-27 00:39:40 +02:00
Scott Percival
4bfffc43a7
DIRECTOR: Move widgets from cast members to channels ( #2372 )
...
This change is required to support copies of the same cast member running in different channels.
* DIRECTOR: Move widget ownership from cast member to channel
* DIRECTOR: Cache cast dimensions from createWidget
* DIRECTOR: Add null checks for createWidget
* GRAPHICS: MACGUI: Clear active/hover WM references if the widget is destroyed
* DIRECTOR: LINGO: Re-add null check for kTheEditableText
* DIRECTOR: Avoid destroying widgets if the channel isn't dirty
* DIRECTOR: Fix dirty test
* DIRECTOR: Fix text field writeback
* DIRECTOR: Fix null cast check
* DIRECTOR: Add bbox as argument to createWidget
* DIRECTOR: Add setCast method to Channel
* DIRECTOR: Fix use-after-free in Channel::getMask
* DIRECTOR: Fix bounding box for Button sprites
* DIRECTOR: Cache widget dimensions in cast member
* DIRECTOR: Remove widget from channel if nextSprite is empty
* GRAPHICS: MACGUI: Fix MacText::splitString for empty string case
* DIRECTOR: Add null checks for movie and score in processEvents
2020-07-26 04:32:29 +00:00
djsrv
177283249e
DIRECTOR: Fix event segfaults
2020-07-24 14:10:13 -04:00
djsrv
6493e0d763
DIRECTOR: Don't switch movie in processEvent
2020-07-24 11:03:35 -04:00
djsrv
f23ef93766
DIRECTOR: Move event handling to movie
2020-07-23 20:05:49 -04:00
Nathanael Gentry
ae1af9c06a
DIRECTOR: Fix matte intersection check
...
Actually, it's not applied indiscriminately. It only take effect when there is
already a matte ink on the given sprite.
2020-07-21 23:12:54 -04:00
djsrv
a67e4bee50
DIRECTOR: Update screen in DirectorEngine::draw
2020-07-21 17:34:22 -04:00
Nathanael Gentry
6b404187fc
DIRECTOR: Move mouse position check to channel
...
This permits, for instance, only changing the cursor when we are inside a
bitmapped sprite.
2020-07-21 15:11:34 -04:00
Nathanael Gentry
5fb984e99f
DIRECTOR: Mostly implement cursor of sprite
2020-07-18 00:37:57 -04:00
Nathanael Gentry
3cb709f135
DIRECTOR: Track dragged sprite by channel
2020-07-16 09:59:05 -04:00
Eugene Sandulenko
0ea87e19c6
DIRECTOR: LINGO: Implement command/shift/alt/optonDown
2020-07-11 11:01:47 +02:00
Eugene Sandulenko
6b3cc7498c
DIRECTOR: LINGO: Implement 'the clickLoc'
2020-07-11 10:36:51 +02:00
djsrv
04f457c46b
DIRECTOR: Add _playState to Score
2020-07-09 12:20:39 -04:00
djsrv
a56f400e32
DIRECTOR: Add main stage
2020-07-08 15:19:04 -04:00
Nathanael Gentry
8a85754f25
DIRECTOR: Move Channel to its own file
2020-07-08 13:44:02 -04:00
Nathanael Gentry
bf785fc8f4
DIRECTOR: Selectively invert sprites on click
2020-07-06 11:37:35 -04:00
djsrv
509871448d
DIRECTOR: Add desktop debug flag
2020-07-03 11:03:21 -04:00
djsrv
fb39572fd5
DIRECTOR: Move _sharedCast to Movie
2020-07-01 13:24:37 -04:00
Eugene Sandulenko
1aa1fe2802
DIRECTOR: Furhter decrease of header dependency
2020-07-01 17:49:48 +02:00
djsrv
5ae6c34074
DIRECTOR: Separate Movie and Cast from Score
2020-07-01 10:50:31 -04:00
djsrv
3303ab985e
DIRECTOR: Rename cast.cpp -> castmember.cpp
2020-07-01 10:50:31 -04:00
djsrv
dfc06bbe21
DIRECTOR: LINGO: Add version checks for more events
2020-06-29 12:50:37 -04:00
djsrv
c8cf06b2a3
DIRECTOR: LINGO: Fix the clickOn
...
It should reset to 0 when a non-sprite is clicked.
2020-06-26 13:52:11 -04:00
djsrv
612104336f
DIRECTOR: LINGO: Rework event handling
...
Setup for proper event delegation. It probably needs adjustments but
it should be mostly correct for D4.
2020-06-17 20:38:49 -04:00
Nathanael Gentry
fad94268a9
DIRECTOR: Send mouse events to actionable sprites first
2020-06-17 14:28:08 -04:00
Nathanael Gentry
75210d8186
DIRECTOR: Render sprites from channel structs
...
Among other rendering issues, this fixes the annoying jittery sprites issue when
a sprite is simultaneously animated and moveable.
2020-06-17 09:07:35 -04:00
djsrv
31399a675b
DIRECTOR: Add Mac key code mappings
2020-06-16 22:43:12 -04:00
Nathanael Gentry
5711e4399a
DIRECTOR: Use WM button activation styles
2020-06-10 15:42:49 +02:00
Nathanael Gentry
f112b2b564
DIRECTOR: Implement kTheHilite
2020-06-10 15:42:49 +02:00
Nathanael Gentry
a2e230803d
DIRECTOR: Render texts and buttons with widgets
2020-06-10 15:42:49 +02:00
Scott Percival
fd02d0a9f5
DIRECTOR: Fix idle event from preventing exit
2020-06-04 00:56:10 +08:00
Scott Percival
5c337d4536
DIRECTOR: LINGO: Implement kTheClickOn
2020-05-23 22:12:33 +08:00
Scott Percival
d3c7c3cbc8
DIRECTOR: Simplify dirty sprite check
2020-05-23 21:33:51 +08:00
Nathanael Gentry
5babbb30db
DIRECTOR: Move to channel-based rendering
2020-05-17 23:21:33 +02:00
Nathanael Gentry
3fa90b4ade
DIRECTOR: Move from drawRects to bboxes
2020-05-17 23:21:33 +02:00
Scott Percival
c7eba6419d
DIRECTOR: LINGO: Buffer events during script execution
...
During execution of a Lingo script, there are certain actions which will
repaint the screen, delay, and trigger an event poll (such as calling
b_updateStage, or updating certain cast members). As part of this, Lingo
will record events (such as clicking on a cast member), but will not
process them until after the current script returns control to the engine.
2020-05-17 00:14:53 +08:00
Eugene Sandulenko
17e5b91410
DIRECTOR: Fix code formatting
2020-04-16 00:22:08 +02:00
Nathanael Gentry
f1822511d5
DIRECTOR: LINGO: Implement moveableSprite of sprite
2020-04-16 00:21:05 +02:00
Nathanael Gentry
1ce36183bd
DIRECTOR: JANITORIAL: Change spaces to tabs
2020-04-12 17:49:01 +02:00
Nathanael Gentry
9909097285
DIRECTOR: LINGO: Implement kTheLastRoll function
2020-04-12 17:49:01 +02:00
Nathanael Gentry
070b4266ed
DIRECTOR: LINGO: Implement kTheLastEvent function
2020-04-12 17:49:01 +02:00
Nathanael Gentry
0e15e2f080
DIRECTOR: LINGO: Implement kTheLastClick function
2020-04-12 17:49:01 +02:00
Nathanael Gentry
c5651d67a6
DIRECTOR: LINGO: Implement kTheLastKey function
2020-04-12 17:49:01 +02:00