Commit Graph

3264 Commits

Author SHA1 Message Date
Le Philousophe
1d6b27d64b DIRECTOR: Avoid duplicated data when not necessary 2021-06-13 14:17:06 +02:00
Cameron Cawley
5e304c9274 DIRECTOR: Fix compilation on platforms with dynamic detection 2021-06-13 14:17:06 +02:00
ysj1173886760
37a181f3db DIRECTOR: fix indent problem, and for custom target file name, we won't save it since we didn't use it. 2021-06-13 14:15:45 +02:00
ysj1173886760
073db5b715 DIRECTOR: resolve conflicts and remove warnings 2021-06-13 14:15:45 +02:00
ysj1173886760
6e3551049c DIRECTOR: pass extra info in fallback detection 2021-06-13 14:15:45 +02:00
ysj1173886760
7af3a3f84c ENGINES: introduce ADDectedGameExtraInfo to ADGameDetector, add extra info as parameter for fallback detect. 2021-06-13 14:15:45 +02:00
ysj1173886760
5ff5787cbf DIRECTOR: fix incorrect code of detection in director 2021-06-13 14:15:45 +02:00
ysj1173886760
ada288626d DIRECTOR: change customTargetList to hashmap 2021-06-13 14:15:45 +02:00
ysj1173886760
e1d047ca88 DIRECTOR: add comments for detect custom targets in director 2021-06-13 14:15:45 +02:00
ysj1173886760
55d1fd2042 DIRECTOR: add custom targets detect to director 2021-06-13 14:15:45 +02:00
ysj1173886760
9ef28b2acb DIRECTOR: remove 2 offsets when we are creating cast members to avoid keep replacing widget 2021-06-13 00:41:26 +02:00
ysj1173886760
3693c938e1 DIRECTOR: initialize _selEnd and _selStart when we creating text cast members 2021-06-13 00:41:26 +02:00
ysj1173886760
9f01b08a1b DIRECTOR: wrap up calculating pure text dims of mactext to getTextOnlyDimensions 2021-06-13 00:41:26 +02:00
ysj1173886760
b0c3ee3e25 DIRECTOR: use _initialRect to create text cast member 2021-06-13 00:41:26 +02:00
ysj1173886760
9f4be107a3 DIRECTOR: subtract offsets when we creating text cast member 2021-06-13 00:41:26 +02:00
djsrv
dc95314c1a DIRECTOR: LINGO: Add delete tests 2021-06-10 11:52:52 -04:00
djsrv
a2d35bbdf3 DIRECTOR: LINGO: Temporarily disable evaluation in c_eval 2021-06-10 11:52:36 -04:00
djsrv
e3f75a9bc4 DIRECTOR: LINGO: Implement b_delete/cb_delete 2021-06-10 11:51:50 -04:00
djsrv
b5767a793c DIRECTOR: LINGO: Ignore non-existent chunks in b_hilite 2021-06-10 10:58:27 -04:00
djsrv
5e1a0d5ddc DIRECTOR: LINGO: Use Common::isSpace to detect word boundaries 2021-06-10 10:58:27 -04:00
djsrv
85a2bf6d7d DIRECTOR: LINGO: Implement b_hilite/c_hilite 2021-06-10 10:58:27 -04:00
djsrv
eee17da97a DIRECTOR: Add Score::getSpriteIdByMemberId 2021-06-10 10:57:19 -04:00
ysj1173886760
3332517243 DIRECTOR: move selStart and selEnd from Lingo to Movie 2021-06-10 13:58:41 +02:00
ysj1173886760
3c7844e5a2 GRAPHICS: MACGUI: fix the behaviour when we set the editable text member active 2021-06-10 13:58:41 +02:00
ysj1173886760
0f7e7bd462 GRAPHICS: MACGUI: disable the ability of setting active in setEditable. currently, director will only set the first editable text widget to active 2021-06-10 13:58:41 +02:00
ysj1173886760
dea9455a96 GRAPHICS: MACGUI: introduce two variable to lingo, _selEnd and _selStart, which has default value -1. selEnd and selStart specify the selection area every time you activated the mactext 2021-06-10 13:58:41 +02:00
Eugene Sandulenko
17b125b479
JANITORIAL: Fix indentation 2021-06-09 21:51:08 +02:00
trembyle
5094f0734d DIRECTOR: Fix directory globs
Correct the list to match their actual depth in directory structure
2021-06-09 21:49:28 +02:00
trembyle
dca227aa7e DIRECTOR: Add more detection entries
And fix one typo under Explorapedia
2021-06-09 21:49:28 +02:00
trembyle
bb84be66c9 DIRECTOR: Expose subdirectory list from detection
Clean up `director.cpp` by iterating over an exposed subdirectory
list from `detection.cpp`, rather than maintain similar data in two
places.
2021-06-09 21:49:28 +02:00
trembyle
9f3e3bc734 DIRECTOR: Add subdirectory matching
Add subdirectories to match in both detection and runtime
2021-06-09 21:49:28 +02:00
trembyle
fe2060309f DIRECTOR: Add detection entries
Huge increase in the number of detection entries. This adds
thousands of lines to the detection tables. Unfortunately due to
the new grouping and organization, this cannot easily be broken up
into atomic commits. Future updates will smaller and easier to see
individual changes.
2021-06-09 21:49:28 +02:00
trembyle
435b4d65f9 DIRECTOR: Add new detection macros
To reduce line count and enhance readability of detection tables,
add new macros for multiple file detection. Also allow additional
platforms for FM Towns and Pippin.
2021-06-09 21:49:28 +02:00
trembyle
7ba650d5bd DIRECTOR: Move game descriptions to detection_tables.h
The list will soon be getting very long and would require much
scrolling to view code in detection.cpp if not moved.
2021-06-09 21:49:28 +02:00
djsrv
12565cb272 DIRECTOR: LINGO: Fix the number of chunks
Deleted these lines by accident...
2021-06-08 22:19:38 -04:00
djsrv
35e68aece3 DIRECTOR: LINGO: Fix chunk refs with start < 1 2021-06-08 21:20:19 -04:00
djsrv
b073fe1fea DIRECTOR: LINGO: Fix char bound check 2021-06-08 21:00:12 -04:00
djsrv
f747445e15 DIRECTOR: LINGO: Implement kTEAString properties 2021-06-08 20:06:29 -04:00
djsrv
ce30bcb0d7 DIRECTOR: LINGO: Use chunk refs in b_numberof/lastof
For consistency.
2021-06-08 20:06:29 -04:00
djsrv
e50ea9b06e DIRECTOR: LINGO: Rework chunk references 2021-06-08 20:06:28 -04:00
djsrv
5378369652 DIRECTOR: Add consts 2021-06-08 20:06:28 -04:00
djsrv
9c6165554f DIRECTOR: LINGO: Add LC::readChunkRef 2021-06-08 20:06:28 -04:00
djsrv
1043519df5 DIRECTOR: Avoid drawing previous frame
The previous frame was getting drawn if video was playing. Only render
if we need to keep waiting before switching the frame.
2021-06-07 18:31:55 -04:00
djsrv
ff7943d576 DIRECTOR: Make loadArchive return false if no VWCF 2021-06-07 15:06:00 -04:00
djsrv
ed8ca876e3 DIRECTOR: Use version from VWCF for loading 2021-06-07 14:48:48 -04:00
djsrv
d91e3d5148 DIRECTOR: Move humanVersion to util.cpp 2021-06-07 14:48:48 -04:00
djsrv
d6b6cc6f18 DIRECTOR: Create FileVersion enum 2021-06-07 14:48:48 -04:00
djsrv
98656b492e DIRECTOR: Remove version check for autohilite flag
Even though this flag was added in D3, we cannot tell the difference
between D2 movies and early D3 movies. It should always be false in D2
movies anyway.
2021-06-07 10:35:51 -04:00
djsrv
fbbe79e048 DIRECTOR: Don't hilite moveable sprites in D4 2021-06-07 10:34:13 -04:00
Roland van Laar
a7f16ffbe1 DIRECTOR: allow setting of video casts to castNum
The game Majestic dynamically sets the castNum to video casts and expects them to play directly.
Videos were also stopped erroneously. Video stoppage is assumed when
movieRate is 0. The comment als indicated that it was probably broken
for D4.

The corresponding lingo code is, where anim is a cast label.
  set the castNum of sprite 48 to cast(anim)
  updateStage()
  set the movieRate of sprite 48 to 1
  repeat while the movieRate of sprite 48
    updateStage()
  end repeat
2021-06-06 18:15:18 +02:00
djsrv
1b3501af94 DIRECTOR: Autohilite matte sprites in D3 2021-06-04 19:17:59 -04:00
djsrv
06f74a2416 DIRECTOR: Set initial values for CastMemberInfo fields 2021-06-04 19:17:59 -04:00
djsrv
b6d111a678 DIRECTOR: Lower VM version if it is wrong 2021-06-04 17:51:25 -04:00
djsrv
a58cb03c1c DIRECTOR: Improve autohilite behavior
In D3 or higher, there's an autohilite flag in the cast info.
In D2, sprites seem to autohilite only if they have matte ink.
2021-06-04 17:51:25 -04:00
djsrv
9cf248bdec DIRECTOR: Check for cast script in isActive
Either a score script or a cast script can make a sprite respond to
clicks.
2021-06-04 17:51:25 -04:00
djsrv
9db8f29708 DIRECTOR: Add CastMember::getInfo() 2021-06-04 17:51:25 -04:00
djsrv
ba9f696482 DIRECTOR: Fix APPL archives
_rifxType was getting changed before it reached the APPL conditional
before. This fixes that. I also moved APPL handling out of readMemoryMap
since it was sort of out of place there.
2021-06-04 16:47:19 -04:00
djsrv
486513c715 DIRECTOR: Skip normal loading for APPL archives again 2021-06-04 09:50:02 -04:00
Roland van Laar
0f1e9f19c3 Revert "DIRECTOR: Continue playing videos even if they are audio-only"
This codechange resulted in a video playing too fast and getting
out of sync with the audio.
The audio playback speed was normal.

This reverts commit 3d8523a86e.
2021-06-04 13:02:42 +02:00
djsrv
33060e14d8 DIRECTOR: Fix offsets in dumped movies 2021-06-03 15:54:53 -04:00
Scott Percival
84d2f0db8f DIRECTOR: Add sanity checks for starting/stopping video 2021-06-01 22:04:45 +08:00
Scott Percival
3d8523a86e DIRECTOR: Continue playing videos even if they are audio-only 2021-05-30 19:29:16 +08:00
Scott Percival
8836857b1b DIRECTOR: Stop playing videos after the sprite changes 2021-05-30 19:29:16 +08:00
Eugene Sandulenko
3f3a0a6886
DIRECTOR: Improved support for Mac sounds 2021-05-25 00:20:01 +02:00
ysj1173886760
e2f639111a DIRECTOR: change to a better solution when fixing the cursor 2021-05-24 22:54:24 +02:00
ysj1173886760
f5c4a1137f DIRECTOR: fix the cursor which was not blinking in warlock 2021-05-24 22:54:24 +02:00
ysj1173886760
7dfb002026 DIRECTOR: use tokenizer to replace the split 2021-05-24 22:52:01 +02:00
ysj1173886760
fdc5e88e30 DIRECTOR: modify the logic of lingo-builtin function NthFileName 2021-05-24 22:52:01 +02:00
Scott Percival
f3b166befc DIRECTOR: Adjust lingoexec debugging levels
--debuglevel=2 will show the call stack after each function call
--debuglevel=3 will show the current instruction
--debuglevel=5 will show the stack after each instruction
--debuglevel=9 will show the variables after each instruction
2021-05-24 09:08:45 +08:00
Scott Percival
ee0b6affc3 DIRECTOR: Limit SoundCastMember looping flag to v4 and up 2021-05-24 09:08:45 +08:00
Eugene Sandulenko
b19f0173c9
DIRECTOR: Added detection for Macintosh II version of L-ZONE 2021-05-23 19:57:18 +02:00
ysj1173886760
d7dfc15229 DIRECTOR: fix code style problem 2021-05-22 01:34:57 +02:00
ysj1173886760
d0ea1c5953 DIRECTOR: move debug channels to metaEngineDetection 2021-05-22 01:34:57 +02:00
djsrv
be813e2ccc DIRECTOR: Calculate DCR chunk offsets from start of ILS
Previously chunk offsets were calculated from the end of ABMP instead of
the beginning of the ILS body like they should be. I had to manually
shift the offsets by 5 bytes, which might not always be the right amount
due to the use of varints. This should always be correct.
2021-05-20 18:48:21 -04:00
Orgad Shaneh
a05e54f00c JANITORIAL: Remove trailing whitespaces 2021-05-04 11:46:30 +03:00
Scott Percival
16eb05cee8 DIRECTOR: LINGO: Allow b_puppetSound to support 2 args 2021-04-25 23:22:51 +08:00
Scott Percival
7197d470d3 Revert "DIRECTOR: Add puppet check on kTheCastNum"
This reverts commit d650738f9f.

This change caused several scenes to render incorrectly (e.g. the
witches cauldron on the Chop Suey map screen).
2021-04-25 23:22:51 +08:00
Scott Percival
ca0c5c800d DIRECTOR: Fix memory leaks in SoundCastMember 2021-04-25 23:22:51 +08:00
Scott Percival
b09b54fa1b DIRECTOR: Fix memory leak in _castsInfo 2021-04-25 23:22:51 +08:00
Scott Percival
e7375f7495 DIRECTOR: Update Chop Suey engine version in detection tables 2021-04-25 23:22:51 +08:00
Scott Percival
73d9aa2a83 DIRECTOR: Add P.A.W.S. to detection tables 2021-04-25 23:22:51 +08:00
Scott Percival
83c400600d DIRECTOR: Fix the SoundCastMember looping flag 2021-04-25 23:22:51 +08:00
Scott Percival
527a093228 DIRECTOR: Fix the _videoPlayback flag
The _videoPlayback flag needs to be enabled as soon as a video starts
playing, instead of the frame after.

Fixes the morphing cloud animations in Chop Suey.
2021-04-25 23:22:51 +08:00
Scott Percival
89bfa05874 DIRECTOR: Fix video playback in 256-colour mode 2021-04-25 23:22:51 +08:00
Scott Percival
b4df4f4036 DIRECTOR: LINGO: Fix memory leak in Datum 2021-04-25 23:22:51 +08:00
Scott Percival
028fb93cf8 DIRECTOR: Fix memory leaks in DirectorSound 2021-04-25 23:22:51 +08:00
Eugene Sandulenko
5e7fe2dc57
JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
D G Turner
f002a0fc23 DIRECTOR: Fix GCC Shadowing Warnings 2021-03-28 02:33:53 +01:00
Eugene Sandulenko
7725f0ceed COMMON: Make WinResource::getVersionInfo more universal 2021-03-22 00:07:44 +01:00
Yegor Timoshenko
fbd7619ad6 DIRECTOR: implement colorQD builtin
Normally, colorQD is a TheEntity. However, "Eastern Mind: The Lost Souls
of Tong-Nou" instead uses it as a builtin with no arguments, both in Mac
and Windows versions of the game.
2021-03-03 16:27:03 +01:00
Lenny
a7776e9ef2 DIRECTOR: implement maxInteger function 2021-02-04 01:56:53 +01:00
Lenny
53fb65932c DIRECTOR: add The Simpsons Cartoon Studio WIN to detection 2021-02-04 01:56:53 +01:00
trembyle
5e7cca0cd5 DIRECTOR: Add detection for original Chinese Karma
First released in Taiwan by InterServ prior to English release.
2020-12-08 00:29:58 +01:00
Cameron Cawley
4ced49acd4 ENGINES: Changed AdvancedMetaEngine::createInstance to return a Common::Error 2020-12-04 20:57:14 +00:00
trembyle
22ea6375ed DIRECTOR: Add detection for Byron Preiss Multimedia products 2020-12-01 21:02:34 +01:00
Eugene Sandulenko
0e2cc2f661 DIRECTOR: Use AD_ENTRY2s in the detection table 2020-11-28 14:03:06 +01:00
Eugene Sandulenko
a151f5b19d DIRECTOR: Removing jewels two-minute download. We do not have a copy 2020-11-27 00:17:05 +01:00
Torbjörn Andersson
ba37c52047 JANITORIAL: Remove some unnecessary semicolons 2020-11-17 07:22:49 +01:00
Eugene Sandulenko
7ff34bc9ec PLUGINS: MetaEngineStatic -> MetaEngineDetection 2020-10-11 23:14:39 +02:00
Eugene Sandulenko
7ea6781043 PLUGINS: PLUGIN_TYPE_METAENGINE -> PLUGIN_TYPE_ENGINE_DETECTION 2020-10-11 23:12:32 +02:00
Eugene Sandulenko
03d0a7b891 DIRECTOR: Added comments 2020-10-04 22:09:11 +02:00
Eugene Sandulenko
1395a8b4e5 DIRECTOR: Process '@' in file path conversion 2020-10-04 21:56:30 +02:00
aryanrawlani28
d26bbe521c ENGINES: ALL: Finish renaming ME & AME classes
- ME -> MetaEngineStatic (static parts)
- MEC -> MetaEngine (dynamic parts)
2020-10-03 14:56:36 +02:00
aryanrawlani28
a56dc094b9 ENGINES: ALL: Move detection_enums -> detection.h
- Cleans up headers quite a bit.
2020-10-03 14:56:36 +02:00
aryanrawlani28
4f55c1b689 DIRECTOR & KYRA: MODULES: Use workarounds to skip warnings.
- When these files are included for the second time, a warning is shown that the previous recipes will be overriden.
- Use_Rules helps with a workaround to disable these warnings.
2020-10-03 14:56:36 +02:00
aryanrawlani28
29ceb07959 ENGINES: ALL: Revert detection submodule to be directly present in the engine directory
- DETECT_OBJS are present and added inside an engine's modules.mk file.
2020-10-03 14:56:36 +02:00
aryanrawlani28
f3b9477893 ENGINES: ALL: Add header guards for the new detection-header files. 2020-10-03 14:56:36 +02:00
aryanrawlani28
8189a05316 ENGINES: ALL: Adapt to changes for new plugins by defining a new detection module
For each engine:
- Make a new folder detection
- Move detection-related files inside the folder
- Add a new module "enginename/detection"
- Add DETECT_OBJS here
- Adjust the normal engine module to remove detect_objs
- Adjust every file for the new changes.
2020-10-03 14:56:36 +02:00
aryanrawlani28
7944a7b039 DIRECTOR: Split detection features & adapt to new plugins. 2020-10-03 14:56:36 +02:00
Bastien Bouclet
0f2c6cd9ea ENGINES: Change mac resource fork file detection to use the file cache
Common::MacResMan is now able to open files from a specified
Common::Archive. This is a bit hacky as dynamic_cast is used to break
the Archive encapsulation to retreive the underlying FSNode. It should
however be more correct than the previous code that assumed files were
at the root of the currently running game's path.

AdvancedDetector constructs a Common::Archive from its FileMap based
filesystem cache and uses it to detect the mac resource fork files.

This cuts the time it takes to run the detection code with all the
engines enabled as dynamic plugins on the 3DS to 30 s from 280 s.
2020-09-20 16:33:45 +02:00
Cameron Cawley
51789f8fea DIRECTOR: Show the unknown game dialog for fallback detection entries 2020-09-19 23:21:44 +02:00
Eugene Sandulenko
53c485d85b DIRECTOR: Add catchers for unprocessed chunks 2020-08-27 18:00:44 +02:00
Eugene Sandulenko
ab9be9aba3 DIRECTOR: LINGO: Remove obsolete and now unneeded file 2020-08-26 01:32:55 +02:00
Eugene Sandulenko
92bd514902 DIRECTOR: LINGO: Make sure video is rendered on 'updateStage' 2020-08-25 10:43:47 +02:00
djsrv
d7ea3450e3 DIRECTOR: LINGO: Fix birth version number 2020-08-24 21:52:58 -04:00
Eugene Sandulenko
233e0e21a8 DIRECTOR: Draw video only when it is truly changed 2020-08-24 20:53:37 +02:00
Eugene Sandulenko
e8d9dfe62b DIRECTOR: Proper implementation of 'directToStage' 2020-08-23 20:31:48 +02:00
Eugene Sandulenko
806c946fd6 DIRECTOR: Attempt to implement 'directToStage'
Not working, as it is not clear how to change priority of a channel
2020-08-23 19:46:58 +02:00
Eugene Sandulenko
564b5f104e DIRECTOR: LINGO: Play video when 'updateScreen' is called 2020-08-23 19:46:58 +02:00
Roland van Laar
ab9fe9706a DIRECTOR: LINGO: spelling fix for fallthrough
Make implicit fallthrough explicit
2020-08-23 10:08:55 +02:00
Eugene Sandulenko
b438f6fb07 DIRECTOR: Fix warnings 2020-08-23 01:23:28 +02:00
Eugene Sandulenko
9a9c32f663 DIRECTOR: LINGO: Fix warnings 2020-08-23 01:16:57 +02:00
Eugene Sandulenko
cfa0be7e35 DIRECTOR: Fix signed/unsigned comparison 2020-08-23 01:15:17 +02:00
Eugene Sandulenko
6c69c02442 DIRECTOR: LINGO: Reword b_play(), so it is simpler and works with "play done"
"play done" bytecode generates "play" without arguments
2020-08-22 19:06:35 +02:00
Eugene Sandulenko
f6f669c953 DIRECTOR: Setting loop for stopped DV should actually play it 2020-08-22 18:02:10 +02:00
Eugene Sandulenko
d1b0c5a986 DIRECTOR: Render last frame from paused or stopped videos 2020-08-22 18:02:10 +02:00
Eugene Sandulenko
f3f0816bd3 DIRECTOR: Fixed showing initial frame on stopped videos 2020-08-22 18:02:10 +02:00
Eugene Sandulenko
cc2e31a2b3 DIRECTOR: Simplify expression 2020-08-22 10:38:06 +02:00
djsrv
d50b9a8a37 DIRECTOR: LINGO: Add chunk tests 2020-08-21 21:52:54 -04:00
djsrv
5201974ec7 DIRECTOR: LINGO: Comment out bad chunk tests 2020-08-21 21:52:54 -04:00
djsrv
c147a5c979 DIRECTOR: LINGO: Implement chunk refs 2020-08-21 21:52:54 -04:00
djsrv
3bf6f79a3e DIRECTOR: Fix crash on mouse move in lingotests 2020-08-21 21:52:54 -04:00
djsrv
4c7593659b DIRECTOR: LINGO: Fix 0 indices in c_charToOf 2020-08-21 21:52:54 -04:00
Nathanael Gentry
828595c9fc DIRECTOR: Don't override shape dimensions 2020-08-21 16:52:07 -04:00
Nathanael Gentry
0bab9810c0 DIRECTOR: Fix getWidgetRect code path
This is morally equivalent to getWidgetRect, but takes into account the changes
to dimensions that MacText makes for borders and gutters and a text shadow.
Thus, these features are working again.
2020-08-21 16:34:06 -04:00
Nathanael Gentry
d650738f9f DIRECTOR: Add puppet check on kTheCastNum 2020-08-21 14:35:12 -04:00
Nathanael Gentry
5c7b8fce47 DIRECTOR: LINGO: Add GetVolume XFCN as builtin 2020-08-21 14:35:12 -04:00
djsrv
a6fc2ee3dc DIRECTOR: JANITORIAL: Add explicit int->bool casts
for sprite properties.
2020-08-21 12:58:52 -04:00
djsrv
c883a98b72 DIRECTOR: JANITORIAL: Make int->bool cast explicit 2020-08-21 12:38:42 -04:00
djsrv
8313c2cf6a DIRECTOR: LINGO: Fix unsafe int/bool comparison 2020-08-21 12:38:42 -04:00
Eugene Sandulenko
45c49b1195 DIRECTOR: Load DVs only on demand 2020-08-21 10:52:08 +02:00
Eugene Sandulenko
6372c5d845 DIRECTOR: Implemented DV looping 2020-08-21 09:37:33 +02:00
djsrv
ccfd1c8fd4 DIRECTOR: LINGO: Fix installMenu in D4 movies 2020-08-21 01:02:53 -04:00
djsrv
f2291b2c53 DIRECTOR: LINGO: Handle installMenu 0 2020-08-21 01:02:53 -04:00
djsrv
1e476e1446 DIRECTOR: LINGO: Assert cast member error in tests 2020-08-21 00:20:26 -04:00
djsrv
74bb24c2e5 DIRECTOR: LINGO: Error on missing cast member 2020-08-21 00:20:26 -04:00
djsrv
20e54db2ae DIRECTOR: LINGO: Implement errors 2020-08-21 00:20:22 -04:00
djsrv
07034e3b71 DIRECTOR: LINGO: Remove factoryCall declaration
Was unused.
2020-08-21 00:14:06 -04:00
djsrv
34393fde5e DIRECTOR: LINGO: Remove c_lazyeval 2020-08-20 23:41:51 -04:00
djsrv
f49480425d DIRECTOR: LINGO: Adjust c_eval to var changes 2020-08-20 23:41:28 -04:00
Eugene Sandulenko
e27d5ac7fc DIRECTOR: JANITORIAL: Code formatting and unified the namespace end comments 2020-08-21 00:36:19 +02:00
Eugene Sandulenko
5d41772b5e DIRECTOR: Added more comments 2020-08-21 00:36:19 +02:00
Eugene Sandulenko
54c06e8da0 DIRECTOR: JANITORIAL: Sort debug flags 2020-08-21 00:36:19 +02:00
Eugene Sandulenko
b2030d9e1c DIRECTOR: Code reshuffling for readability 2020-08-21 00:21:32 +02:00
Eugene Sandulenko
afc972f584 DIRECTOR: Split out static data from graphics.cpp
Actually, we'd better move it to director.dat file
2020-08-21 00:18:30 +02:00
trembyle
6b15081607 DIRECTOR: Add detection for more games
Fix minor version numbers for new entries. Existing entries will need
to be revised to include minor version numbers.
2020-08-20 23:53:13 +02:00
Eugene Sandulenko
3afe32c66c DIRECTOR: LINGO: Implement 'the duration of cast' 2020-08-20 23:50:34 +02:00
Eugene Sandulenko
fbbea1a01f DIRECTOR: Implement DV::setMovieRate() 2020-08-20 23:50:34 +02:00
Eugene Sandulenko
586790d987 DIRECTOR: Start Digital Videos when they appear on a channel 2020-08-20 23:50:34 +02:00
djsrv
a5948cfc37 DIRECTOR: LINGO: Evaluate field ref on pop
This simplifies handling of fields, since most of the time it should be
treated as a string. Where we actually need a raw reference, pop(false)
is used.
2020-08-20 15:53:31 -04:00
djsrv
60fe2ea32e DIRECTOR: LINGO: Eliminate lazy vars
Now normal var refs are evaluated on pop. To get the reference itself,
use pop(false)
2020-08-20 15:34:13 -04:00
Nathanael Gentry
6011d53e78 DIRECTOR: Fix typo 2020-08-20 11:07:28 -04:00
Roland van Laar
5043af356e DIRECTOR: LINGO: implement setAt beyond array size
setAt(lst, 10, 1) will set the 10th element (1 indexed) to 1.
When the array size is smaller than 10, setAt will pad the list will
pad the lst with zeros and add the 1 at the end.
2020-08-20 12:28:49 +02:00
djsrv
8078b28e10 DIRECTOR: LINGO: Rewrite b_version
It should support any version now.
2020-08-19 19:27:23 -04:00
djsrv
6db398a74d DIRECTOR: LINGO: Use findVarV4 in cb_v4assign 2020-08-19 18:55:34 -04:00
djsrv
6fe741d2af DIRECTOR: LINGO: Implement findVarV4 2020-08-19 18:55:34 -04:00
Eugene Sandulenko
6889c7e720 DIRECTOR: Do not render stopped videos 2020-08-20 00:53:23 +02:00
Nathanael Gentry
faa88c8f51 DIRECTOR: Preserve text formatting on setText 2020-08-19 16:32:45 -04:00
Nathanael Gentry
73c970421f DIRECTOR: Re-render changed cursors on new frame 2020-08-19 16:31:36 -04:00
djsrv
df7cc8e2c2 DIRECTOR: LINGO: Mark objectcall warnings BUILDBOT 2020-08-19 15:09:45 -04:00
djsrv
febf4592ba DIRECTOR: LINGO: Handle varType in cb_objectcall 2020-08-19 15:06:27 -04:00
djsrv
b95495725a DIRECTOR: LINGO: Remove unnecessary non-eval pop
cb_varrefpush no longer pushes a lazy var, so suppressing its evaluation
is no longer necessary.
2020-08-19 14:42:49 -04:00
djsrv
205a90122a DIRECTOR: LINGO: Warn on missing factory method 2020-08-19 14:31:48 -04:00
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
Nathanael Gentry
c99abbc645 DIRECTOR: Load resource files from relative paths 2020-08-19 10:41:55 -04:00
Nathanael Gentry
5583009442 DIRECTOR: Add default cursor arrow case 2020-08-19 10:41:55 -04:00
Nathanael Gentry
7d68cd7771 Revert "DIRECTOR: Do not attempt to render cursor from empty sprite"
This reverts commit 12a35cda57.
2020-08-19 10:41:55 -04:00
Nathanael Gentry
bd2c3f2bba DIRECTOR: Show ink type as decimal 2020-08-19 10:41:54 -04:00
Eugene Sandulenko
cc14dede0f DIRECTOR: More debug output to DV 2020-08-19 14:54:30 +02:00
Eugene Sandulenko
a6a809f1c3 DIRECTOR: Moved DV loading to castmember.cpp 2020-08-19 13:45:15 +02:00
Eugene Sandulenko
02cbcfcd21 DIRECTOR: LINGO: Fix crash in b_alert 2020-08-19 12:42:24 +02:00
Henrik "Henke37" Andersson
b2b4441cee DIRECTOR: Copy constructor for DirectorPlotData
It's another double free causer.
2020-08-19 12:31:34 +02:00
Henrik "Henke37" Andersson
184d54708d DIRECTOR: Assignment operator for InfoEntry struct 2020-08-19 12:31:34 +02:00
Henrik "Henke37" Andersson
3460ee1132 DIRECTOR: InfoEntry struct needs a copy constructor to avoid a double free 2020-08-19 12:31:34 +02:00
Eugene Sandulenko
7053648484 DIRECTOR: Properly set movieRate when DV ends 2020-08-18 23:39:05 +02:00
djsrv
0345a04e7a DIRECTOR: LINGO: cb_objectpush -> cb_varrefpush
The opcode isn't used just for objects.
2020-08-18 16:34:40 -04:00
djsrv
b67df72543 DIRECTOR: LINGO: Push regular var in cb_objectpush 2020-08-18 16:12:29 -04:00
djsrv
191ab2da4e DIRECTOR: LINGO: Fix cb_objectcall lazy vars
Only the first arg is treated as a lazy var.
2020-08-18 15:53:45 -04:00
djsrv
cd91e0fc2a DIRECTOR: LINGO: Push lazy var in cb_objectpush 2020-08-18 15:31:53 -04:00
djsrv
b19569eb39 DIRECTOR: LINGO: Add eval arg to Lingo::pop/peek 2020-08-18 15:27:59 -04:00
djsrv
d180343a16 DIRECTOR: LINGO: Fix varAssign/Fetch type checks 2020-08-18 15:27:59 -04:00
djsrv
799ac26520 DIRECTOR: LINGO: Fix missing method fallback 2020-08-18 15:27:59 -04:00
Roland van Laar
f071de48a3 DIRECTOR: LINGO: implement put ... after chunkexpr
The D4 lingo `put ... after chunkexpr` uses opcode 34 (0x22) for
cb_v4assign.
We convert the SYMBOL to a VAR due to cb_objectpush pushing
variables as SYMBOLS to the stack.
2020-08-18 16:10:02 +02:00
Roland van Laar
7d21a49077 DIRECTOR: LINGO: FIX Datum to castId conversion
castId is a CASTREF, which is only converted into an int
by asCastId, not asInt.
2020-08-18 14:44:16 +02:00
Eugene Sandulenko
5ec3815106 DIRECTOR: Update digital video independently from the frame tempo 2020-08-18 13:08:52 +02:00
Eugene Sandulenko
6afb2159c6 DIRECTOR: Remove obsolete video.* 2020-08-18 13:08:52 +02:00
djsrv
24042ab1e6 DIRECTOR: LINGO: Fix compiled go loop 2020-08-17 21:19:55 -04:00
djsrv
7feaa01003 DIRECTOR: LINGO: Reuse LC::call in cb_objectcall 2020-08-17 21:19:55 -04:00
djsrv
518c90ec8f DIRECTOR: LINGO: Pass me as arg to factory methods 2020-08-17 21:19:55 -04:00
djsrv
ab0d0b5ac8 DIRECTOR: LINGO: Handle null in Datum constructor 2020-08-17 21:19:55 -04:00