Opened 4 months ago
Closed 3 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 , 3 months ago
comment:2 by , 3 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: