4558 Commits

Author SHA1 Message Date
elasota
e280186a8c ALL: VS warning cleanup 2022-12-25 16:31:57 +01:00
Eugene Sandulenko
edca65670d
DIRECTOR: JANITORIAL: Added namespace comment 2022-12-25 10:02:06 +01:00
Walter Agazzi
ca9f4e9739 DIRECTOR: Various fixes for D4 entries (F)
* Fix filesizes / director versions
* Improve detection of Ultimate FLW (win)
* Add win version of The fish who could wish
2022-12-21 18:12:29 +01:00
Walter Agazzi
c36986a5e4 DIRECTOR: Various fixes for D4 entries (E)
* Fix filesizes / director versions
* Improve detection of Elmo's preschool
* Add mac version of Explorers (PT)
2022-12-21 18:12:29 +01:00
Misty De Meo
d86fb3bf6e
DIRECTOR: rodneyfs full version 2022-12-20 11:18:12 -08:00
Walter Agazzi
ead0ae6a47 DIRECTOR: Fix filesize/version for D4 entries (D)
+ minor changes
2022-12-16 15:49:29 +01:00
Walter Agazzi
07bdb88235 DIRECTOR: Various fixes for D4 entries (C)
* Fix various filesizes / director versions
* Set proper tail checksum for Connections
* Minor additions
2022-12-16 15:49:29 +01:00
Vladimir Serbinenko
af7d9cb850 COMMON: Move punycode_*codepath to path.cpp
This allows to reduce access to DIR_SEPARATOR from outside of Common::Path
2022-12-14 05:08:46 +01:00
Walter Agazzi
4c456edac0 DIRECTOR: Add detection for Babylon 5 Guide
TRAC #13961
2022-12-13 20:45:39 +01:00
Walter Agazzi
887ec47e95 DIRECTOR: Fix detection for Jewels of the Oracle (DE)
Trac #13112
2022-12-13 19:15:52 +01:00
Misty De Meo
4f7628467a
DIRECTOR: add reinedesneiges 2022-12-12 18:05:00 -08:00
Walter Agazzi
acff0a7cc7 DIRECTOR: Restore blam2 whitespace 2022-12-13 01:08:37 +01:00
Walter Agazzi
52ad6517ee DIRECTOR: Filesize/version fixes for D4 entries (A-B) 2022-12-12 23:40:10 +01:00
Cameron Cawley
28d7b361ea COMMON: Move more file format code into common/formats 2022-12-11 22:33:23 +01:00
Walter Agazzi
84412c8441 DIRECTOR: Improve detection for some entries
* Easy Cooking Italian
* The Ultimate Einstein
* Encarta 95 Demo
* Family Album Creator Demo
* Felix Cartoon Toolbox
* FPRP: Baxter Birthday
* FPRP: Yolanda Yellsalot
* Frankensten TTEOTM
* Towa Tei Future Promo (JAP)

Disabled Journeyman (JAP) detection
2022-12-11 18:04:15 +01:00
Eugene Sandulenko
b33e2b76d4
DIRECTOR: Implement proper string comparison
Director is full of surprises.

This fixes fortune teller input in the Panic Park demo
2022-12-10 17:45:59 +01:00
Eugene Sandulenko
e657e060e0
DIRECTOR: Fix potential race condition
If sound is ended during execution, we may refer to the freed memory
2022-12-09 01:26:32 +01:00
Scott Percival
689d08a396 DIRECTOR: Add changes from code review 2022-12-09 01:10:57 +01:00
Scott Percival
2674b628c4 DIRECTOR: Free frozen lingo states in window destructor 2022-12-09 01:10:57 +01:00
Scott Percival
7714e09382 DIRECTOR: LINGO: Remove duplicate insert in b_addProp
Previously, all property list inserts would happen twice, causing
widespread mayhem. Property lists are allowed to have duplicate keys,
which may have disguised the impact of this bug.

Fixes lots of voice clips playing twice in DEVO Presents: Adventures
of the Smart Patrol.
2022-12-09 01:10:57 +01:00
Scott Percival
94c064e84b DIRECTOR: LINGO: Add b_deleteOne
This function is available undocumented in Director 4. It is properly
documented in Director 5.

Used by DEVO Presents: Adventures of the Smart Patrol
2022-12-09 01:10:57 +01:00
Scott Percival
93373b0795 DIRECTOR: Allow Lingo::pushContext to set me handle to null
It's possible to call a method designed for a me object with any
nonsense in the first argument. By design, this should look up the
clean function handler in the script context instead of the one in the
offspring object. However the "me" handle needs to be nulled out,
or else accessing properties will leak through from the previous
object.

Fixes saving games in DEVO Presents: Adventures of the Smart Patrol.
2022-12-09 01:10:57 +01:00
Scott Percival
f84d643e95 DIRECTOR: LINGO: Freeze state when score stops
If the play state for the score stops for whatever reason, Lingo will
attempt to bail early so the movie can switch over. Freeze the state so
that we can pick up execution where we left off.

Fixes the location/time announcements in DEVO Presents: Adventures of
the Smart Patrol.
2022-12-09 01:10:57 +01:00
Scott Percival
65b341b5c1 DIRECTOR: LINGO: Fix LC::negateData to work on a copy
Fixes scene switching in DEVO Presents: Adventures of the Smart Patrol.
2022-12-09 01:10:57 +01:00
Scott Percival
7a8d4bfeb9 DIRECTOR: LINGO: Add func_goto* logs to kDebugLingoExec 2022-12-09 01:10:57 +01:00
Scott Percival
7c975eff43 DIRECTOR: LINGO: Adjust freezing/thawing behaviour 2022-12-09 01:10:57 +01:00
Scott Percival
225460f875 DIRECTOR: LINGO: Refactor SpaceMgr XObj, add LLink support 2022-12-09 01:10:57 +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
Scott Percival
3ea7f10467 DIRECTOR: Freeze LingoState instead of using callstack
Previously, the Lingo state would be frozen by persisting the frames on
the bottom of the callstack with a special flag. This required extra
logic to determine whether or not the callstack was intended to be empty
after execution finished, with some complex edge cases.

The new approach is to swap out the LingoState object on the window,
meaning that an empty callstack always signifies execution has completed.
It remains to be seen if we'll need to track more than one frozen
context; for now it seems to be okay.

Fixes driving to locations in DEVO Presents: Adventures of the Smart Patrol.
2022-12-09 01:10:57 +01:00
Scott Percival
873095c87e DIRECTOR: Move current Lingo state into Window-owned struct
The previous arrangement was to copy the bits of Lingo state back and forth from
the Window object to the Lingo instance, and query the window for the
callstack. This refactor consolidates the current Lingo state into a single
struct, owned by the Window object and accessible via a pointer on the
Lingo object.
2022-12-09 01:10:57 +01:00
Eugene Sandulenko
7e69d548d7
DIRECTOR: Consider looped sounds not playing after first iteration
Fixed exit door in the7colors, where the frame had a looping
birds chirping sound together with the following Lingo:

  if the soundbusy of 2 then go to the frame

And that led to an infinite loop and inability to pass through the
opened door.

The original apparently is returning 0 in-between the sound loops
since it manually restarts the sound after its completion. We, in
contrast, are optimizing that and using LoopedAudioStream
since f48dbb43b6b6483ef2160ae3d087eb2e0f06c7e5
2022-12-08 23:14:54 +01:00
Eugene Sandulenko
3703fee378
DIRECTOR: Do not reset looping handle early
playStream() is called right after setting loopPtr, which was leading
to immediate reset of loopPtr. Thus, we were not able to control
the looping sounds
2022-12-08 23:14:54 +01:00
eientei
2904fd0c25 DIRECTOR: Fix a couple copy-paste errors in chunks.lingo 2022-12-07 23:00:01 +01:00
Walter Agazzi
aa6dc913c1 DIRECTOR: Improve detection for some entries
* Jump - the david bowie experience
* Casino!
* Circus!
* Connections (demo)
* Cookie & Ginger (Jap)
* Dan (Jap)
* Do the Reggae (jap)
* Dracula's Secret
* Casino 5-pack
* Star Wars ep. III promo
2022-12-06 15:30:03 +01:00
Walter Agazzi
f3adbd5ae9 DIRECTOR: Various fixes for D4 entries
* Fix filesizes / director version
* Add detection for abcpalsafety MAC
* Improve detection for flaschenfahrrad
2022-12-05 11:19:24 +01:00
Misty De Meo
34567e424c
DIRECTOR: add chuchutataki
Other Shock Price 500 games may be Director-based, too.
2022-12-04 18:57:56 -08:00
Vladimir Serbinenko
0670d1a16a DIRECTOR: Switch to openFileOrDataFork 2022-12-04 20:16:21 +01:00
Walter Agazzi
16dac3a89c DIRECTOR: Improve detection for some titles
* Interactive Alphabet
* Angel Gate (jap)
* America Online
* Arc of Doom
* Artrageous
* Interactive Athletics
* Lee Pipes screensaver
* Crosstown: Angeln (sw)
2022-12-04 15:41:44 +01:00
Eugene Sandulenko
d979c4d23c
DIRECTOR: Added detection for finegardening. Bugreport #13324 2022-12-04 00:22:18 +01:00
Eugene Sandulenko
09e450d44e
DIRECTOR: Added detection for jewels1-de. Bugreport #13112 2022-12-04 00:14:43 +01:00
Eugene Sandulenko
747331874f
DIRECTOR: Remove code that adds directoy paths from detection table
AdvancedDetector is doing it for us automagically
2022-12-03 23:39:47 +01:00
Walter Agazzi
23cce9a934 DIRECTOR: Add multilanguage version of Leonardo 2022-12-03 01:12:19 +01:00
Eugene Sandulenko
3af2490c60
DIRECTOR: LINGO: Narrow down member search for text and menus to TextCasts 2022-12-03 00:48:20 +01:00
Eugene Sandulenko
87e8a7bb7c
DIRECTOR: LINGO: Search sounds by name AND type 2022-12-03 00:24:18 +01:00
Eugene Sandulenko
21c77c7a65
DIRECTOR: Cache cast members by name and type 2022-12-03 00:24:18 +01:00
Eugene Sandulenko
97b7cb60fd
DIRECTOR: Added API for referring to the cast members by name and type 2022-12-03 00:24:18 +01:00
Eugene Sandulenko
41c69d087f
DIRECTOR: LINGO: Generalized resolving palette names 2022-12-03 00:24:18 +01:00
Walter Agazzi
2df7582098 DIRECTOR: Add detection for Voyeur 2 2022-12-02 22:43:10 +01:00
Walter Agazzi
7ff867bfc4 DIRECTOR: Improve detection for some D3 entries
* Victor Vector & Yondo games
* Woodstock 25 years
* Peanuts/Snoopy Y2L demos
* Snoopy Y2L
2022-12-02 15:07:27 +01:00
Walter Agazzi
bee8ea29b9 DIRECTOR: Improve detection for some D3 entries
* A-L School World (jap)
* Scissors N Stones
* RIDE
* Smithsonian's America
* Supersonic
* Star TreK Final Unity
* Ultimate Robot Toolkit
2022-12-02 15:07:27 +01:00