Opened 22 months ago
Closed 22 months ago
#15310 closed defect (fixed)
STARK: Build failure in --disable-bink builds
| Reported by: | dwatteau | Owned by: | dwatteau |
|---|---|---|---|
| Priority: | normal | Component: | Engine: Stark |
| Version: | Keywords: | bink, build, binkdecoder | |
| Cc: | Game: |
Description
In current Git HEAD, the STARK engine appears to have a hard requirement on BinkDecoder:
Reproducer:
nbproc=$(getconf _NPROCESSORS_ONLN 2>/dev/null || getconf NPROCESSORS_ONLN 2>/dev/null || echo 1) ./configure --disable-all-engines --disable-detection-full --enable-engine=stark --disable-bink make -j$nbproc engines/stark/libstark.a
Result:
C++ engines/stark/visual/smacker.o
In file included from engines/stark/ui/world/fmvscreen.cpp:24:
./engines/stark/ui/world/fmvscreen.h:50:33: error: 'Path' in namespace 'Common' does not name a type
50 | void play(const Common::Path &name);
| ^~~~
engines/stark/ui/world/fmvscreen.cpp: In constructor 'Stark::FMVScreen::FMVScreen(Stark::Gfx::Driver*, Stark::Cursor*)':
engines/stark/ui/world/fmvscreen.cpp:43:43: error: invalid use of incomplete type 'class Video::BinkDecoder'
43 | _decoder = new Video::BinkDecoder();
| ^
./engines/stark/ui/world/fmvscreen.h:31:7: note: forward declaration of 'class Video::BinkDecoder'
31 | class BinkDecoder;
| ^~~~~~~~~~~
engines/stark/ui/world/fmvscreen.cpp:44:17: error: invalid use of incomplete type 'class Video::BinkDecoder'
44 | _decoder->setSoundType(Audio::Mixer::kSFXSoundType);
| ^~
./engines/stark/ui/world/fmvscreen.h:31:7: note: forward declaration of 'class Video::BinkDecoder'
31 | class BinkDecoder;
| ^~~~~~~~~~~
engines/stark/ui/world/fmvscreen.cpp:44:46: error: incomplete type 'Audio::Mixer' used in nested name specifier
44 | _decoder->setSoundType(Audio::Mixer::kSFXSoundType);
| ^~~~~~~~~~~~~
engines/stark/ui/world/fmvscreen.cpp: In destructor 'virtual Stark::FMVScreen::~FMVScreen()':
engines/stark/ui/world/fmvscreen.cpp:50:9: warning: possible problem detected in invocation of 'operator delete' [-Wdelete-incomplete]
50 | delete _decoder;
| ^~~~~~~~~~~~~~~
engines/stark/ui/world/fmvscreen.cpp:50:16: warning: invalid use of incomplete type 'class Video::BinkDecoder'
50 | delete _decoder;
| ^~~~~~~~
./engines/stark/ui/world/fmvscreen.h:31:7: note: forward declaration of 'class Video::BinkDecoder'
31 | class BinkDecoder;
| ^~~~~~~~~~~
[...]
[truncated]
I can't say whether the game really requires it (and thus bink should just be added to engines/stark/configure.engine) or if some #ifdef USE_BINK could be used to disable the videos without too much gameplay impact.
Hence why I'm not just fixing configure.engine, I'd rather ask :)
Change History (2)
comment:1 by , 22 months ago
comment:2 by , 22 months ago
| Owner: | set to |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |
I've just added "bink" to configure.engine. I don't think this engine is meant to run without a Bink decoder; it probably affects gameplay too much (but I haven't really checked that).
If someone wants to add an #ifdef USE_BINK fallback, that's probably a separate subject.

In 4b9890ca: