Commit Graph
423 Commits
Author SHA1 Message Date
Scott Percival d683688a55 DIRECTOR: Fix redraw when changing the stageColor
Previously, there was a workaround which would set score->_nextFrame to
the current frame. This meant that setting the stageColor in an
exitFrame handler would loop that single frame and softlock the movie.
The new approach re-renders the sprites and window inline, as we do
in several other spots.

Fixes frame progressions in Yaken Rodem.
2023-01-10 13:41:53 +01:00
Scott Percival 30e9d330df DIRECTOR: Implement the paramCount
At first glance it would seem we could use funcSym.nargs for this,
except it is fixed to the number of args in the function definition.
We also can't derive it from the argument list that is sent through,
as it is truncated/padded with VOIDs. To keep things simple, track
paramCount as part of CFrame.
2022-12-09 01:10:57 +01:00
eientei 0504d2c859 DIRECTOR: Fix Gestalt IDs 25 and 27 being mixed 2022-12-01 01:18:11 +01:00
Scott Percival 665a76536e DIRECTOR: Fix setter for "the rect of sprite"
Normally you can only change the width and height of a sprite when the
sprite is a puppet, and the stretch flag is set. Apparently for shapes,
all that's required is the puppet flag.

Fixes the mouse cursor bounding box in DEVO Presents: Adventures of the
Smart Patrol.
2022-11-18 16:28:05 +01:00
Scott Percival bd3b24d437 DIRECTOR: Add bpentity command to debugger 2022-10-22 19:53:22 +02:00
Scott Percival 9c3de4c269 DIRECTOR: Make "the pathName" return an absolute path
In Director, Lingo calls to fetch "the pathName" would provide an absolute
path, including the volume. getCurrentPath() originally provided a
relative path, which meant root level would return "". There is at least
one title that checks "the pathName" isn't blank as part of the content
detection routine. Given that from an internal perspective,
getCurrentPath() is always an absolute path from the game root, we can
add a fake drive letter for Windows at the front.

Fixes loading in DEVO Presents: Adventures of the Smart Patrol.
2022-10-22 19:53:22 +02:00
Roland van Laar 92b746c59c DIRECTOR: LINGO: Fix derefence befe null check
If movie is there is a check earlier in the function.
Meaning, it's guarenteed to exist at this point.

Fixes COVERITY: 1498918
2022-10-08 10:37:24 +02:00
Roland van Laar 2d58f23c39 DIRECTOR: use variables instead of repeated gets
Refactor repeated getCurrentMovie en getScores calls to one per
function.
2022-10-07 13:17:41 +02:00
Roland van Laar d4bc98d121 DIRECTOR: LINGO: switch to use datum constructor
The datum constructor is overloaded and handles setting the type.
Instead of setting the type by hand we leverage the constructor.

The in this commit are mainly for Datums of type int.
2022-09-21 12:14:35 +02:00
Scott Percival 8f88c8a19a DIRECTOR: Make Lingo::setTheSprite coerce sprite IDs
Fixes parts not hiding after being selected on the face
selection screen in Eastern Mind.
2022-09-12 15:52:18 +02:00
Scott Percival 7ee474f070 DIRECTOR: LINGO: Add missing color transforms
Internally, ScummVM refers to palette indices in a reverse order
compared to the Director runtime. As such, any script-based reading or
writing of color indices needs to be transformed to match this.

Fixes the coloring of the inventory in Eastern Mind.
2022-08-28 10:31:00 +00:00
Scott Percival 7c9badd57c DIRECTOR: Add debug level for sound events 2022-07-23 23:49:35 +02:00
Pragyansh Chaturvedi ab5f20f5cb DIRECTOR: LINGO: Implement offset rect Lingo builtin 2022-07-22 14:10:11 +02:00
Pragyansh Chaturvedi 1a5603c488 DIRECTOR: LINGO: Remove all occurences of _loadedCast outside of the Cast namespace 2022-07-13 18:10:49 +02:00
Eugene Sandulenko ede632424d DIRECTOR: Fix returned the selection so it does not include inserted newlines 2022-07-08 00:25:51 +02:00
Misty De Meo 3fdc914754 DIRECTOR: promote wmMode to instance variable 2022-07-06 01:47:16 +02:00
Pragyansh Chaturvedi 33d7eaad2b DIRECTOR: LINGO: Add check for existence of macmenu in Lingo::setTheEntity() 2022-07-02 23:58:15 +02:00
Pragyansh Chaturvedi fb6497a059 DIRECTOR: Fix constrainH fail build step in BUILDBOT by adding _constraint check 2022-07-02 23:58:15 +02:00
Eugene Sandulenko 62907d1d0b DIRECTOR: Warn user when traceLogFile is not writeable 2022-07-02 22:47:41 +02:00
Pragyansh Chaturvedi (r41k0u) 61ff6cf6d5 DIRECTOR: LINGO: Add check for writable file path in traceLogFile lingo property 2022-07-02 22:44:51 +02:00
Pragyansh Chaturvedi (r41k0u) d9d86b01ce DIRECTOR: LINGO: Implement traceLogFile Lingo Property 2022-07-02 22:44:51 +02:00
Pragyansh Chaturvedi (r41k0u) 1a76622434 DIRECTOR: LINGO: Implement searchCurrentFolder STUB in Lingo::getTheEntity() 2022-07-02 12:54:33 +02:00
Eugene Sandulenko 1e1703bf37 DIRECTIR: LINGO: Do not crash on 'the number of castmembers' when Shared Cast is not present 2022-06-23 01:23:58 +02:00
Eugene Sandulenko b47610210b DIRECTOR: LINGO: Accept FLOAT for 'the timeoutLapsed' 2022-06-22 01:24:47 +02:00
Pragyansh Chaturvedi (r41k0u) ad6b80009f DIRECTOR: LINGO: Implement setting of timeOutLapsed property 2022-06-22 01:13:41 +02:00
Eugene Sandulenko fc120a32d4 JANITORIAL: Fix formatting 2022-06-22 00:58:44 +02:00
Pragyansh Chaturvedi (r41k0u) d5485c7595 DIRECTOR: LINGO: Fix MacMenu::getName() to implement STUB kTheMenu 2022-06-22 00:55:14 +02:00
Pragyansh Chaturvedi (r41k0u) f83934e05b DIRECTOR: LINGO: Implement MENUREF Datum type and STUB for Menu, Menus, MenuItem and MenuItems [WIP] 2022-06-22 00:55:14 +02:00
Pragyansh Chaturvedi (r41k0u) b8fec96b8f DIRECTOR: remove kTheMenuItem STUB in setTheEntity() and get rid of c_themenuitementityassign to remove duplicacy 2022-06-22 00:55:14 +02:00
Pragyansh Chaturvedi (r41k0u) bee1564d5d DIRECTOR: LINGO: IMplement kTheScoreColor STUB in Lingo::getTheEntity() 2022-06-21 01:16:33 +02:00
Eugene Sandulenko 0444d62e1d DIRECTOR: Remove redundant variable 2022-06-21 01:15:16 +02:00
Pragyansh Chaturvedi (r41k0u) ee242176af DIRECTOR: LINGO: Implement kTheFixStageSize property STUB 2022-06-21 01:08:10 +02:00
Pragyansh Chaturvedi (r41k0u) 50ba58c7c9 DIRECTOR: LINGO: Implement the beepOn property and remove their respective STUBs 2022-06-21 01:04:30 +02:00
Pragyansh Chaturvedi (r41k0u) 826abc57d5 DIRECTOR: LINGO: Implement Number of Castmembers STUB in Lingo::getTheEntity() 2022-06-21 01:03:34 +02:00
Pragyansh Chaturvedi (r41k0u) c72a109ce0 DIRECTOR: LINGO: Implement scriptNum of sprite STUB in lingo-the.cpp 2022-06-18 23:11:39 +02:00
Pragyansh Chaturvedi (r41k0u) eb59892ce4 DIRECTOR: LINGO: Implement STUB kTheStageColor in Lingo::getTheEntity() 2022-06-06 01:13:52 +02:00
Eugene Sandulenko 7e77b6c585 DIRECTOR: LINGO: Fix crash when referencing non-existing/non-loaded DV cast 2022-06-03 12:48:14 +02:00
Eugene Sandulenko 3eb2cf61e4 DIRECTOR: LINGO: Properly implement the romanLingo 2022-05-24 00:54:04 +02:00
Pragyansh Chaturvedi (r41k0u) 520018817a DIRECTOR: Remove STUB for RightMouseUp, RightMouseDown and RomanLingo 2022-05-24 00:43:22 +02:00
Pragyansh Chaturvedi (r41k0u) 4eef4159fb DIRECTOR: Implement kThePauseState STUB in getTheEntity 2022-05-24 00:41:27 +02:00
Pragyansh Chaturvedi (r41k0u) 4b5dc5fc99 DIRECTOR: implement STUB for kTheTrace 2022-05-24 00:41:02 +02:00
Roland van Laar 32b867cf4c DIRECTOR: LINGO: fileName of non existing cast
The fileName of a non existing cast is "" in D4.
2022-04-03 13:37:59 +02:00
Roland van Laar 56d740b60f DIRECTOR: LINGO: Implement preLoadEventAbort
preLoadEventAbort is a boolean property. When true pressing keys or clicking the
mouse can or stop preloading of cast member. ScummVM doesn't preload, so
implemented as a no-op.
2022-03-19 00:18:03 +01:00
Roland van Laar 9ebd702a4c DIRECTOR: LINGO: Remove buildbot warnings
The entity STUBS that were encountered on the buildbot are all fixed
now.

This reverts commit a426853acc.
2022-03-11 23:46:36 +01:00
Roland van Laar 5ce2dffaee DIRECTOR: LINGO: implement updateMovieEnabled
updateMovieEnabled is a boolean. It's a flag to signal that the changes
in the movie need to be saved when branching to another movie.

The variable is implemented but without any side effect.
2022-03-11 23:23:44 +01:00
Roland van Laar eef834cbf4 DIRECTOR: LINGO: Implement the traceLoad property
The traceLoad property can be 0, 1, 2 or 3. It specifies how much
verbosity is shown when loading cast members.

It's a bt useless for ScummVM. We have our own verbosity mechanism.
Furthermore ScummVM loads all casts up front and unload is a no op.
2022-03-11 23:23:44 +01:00
Roland van Laar 1b2ce997b1 DIRECTOR: LINGO: implement frameScript property
The frameScript property returns the cast number of the script in the
scipt channel.
2022-03-11 22:39:01 +01:00
Roland van Laar 8d22aa3af1 DIRECTOR: LINGO: Implement the actorList property
The actorList is a global array property. Birthed scripts can be added
to it. The `stepFrame` method is called on all objects in the array on
every frame. < D4 had an executePerFrameHook for this.
2022-03-11 21:58:15 +01:00
Roland van Laar 2a1149a453 DIRECTOR: LINGO: Implement property the exitLock
In Director the exitLock prevents quitting the program when it's set to
TRUE. get and set for the exitLock is implemented.

The underlying functionality, preventing exiting a program, is not
implemented. ScummVM should always respond to a QUIT event.
2022-03-11 20:32:54 +01:00
Roland van Laar a426853acc DIRECTOR: LINGO: fail buildbot on STUBBED entities 2022-03-11 00:51:23 +01:00