[Scummvm-devel] Broken Sword 2.5 engine

Max Horn max at quendi.de
Wed Oct 13 13:07:04 CEST 2010


Some remarks:

1) Communication on this engine was not too good, at least as I remember experiencing it -- but maybe I missed something? As I recall it, a discussion on whether to merge it was started in August, some concerns were voiced, but never addressed. Then the discussion died away, silence. Then suddenly it hits trunk.
In retrospect, it seems the "should we merge this?" discussion was not very serious :/. And I am quite unhappy that we now have a full copy of LUA sitting in our repository, despite explicit concerns about it.


2) This engine is currently not being tested by buildbot, as neither libpng nor libtheora are installed for most of the cross compilers. I hope that it will be easy to install them at least for the Debian port; in any case, it would be great if "somebody" (resp. each maintainer) could take care of installing these libs, at least for ports where it might make sense.

[Side note: And then somebody might want to look into updating buildbot from 0.7.12 to 0.8.1p1 ;). And then there was that idea of tracking the size of the resulting binaries...]


3) I removed int64_t / uint64t, and restricted the usage of int64 / uint64 to gfx/framecounter.h/.cpp (which got rid of bs_stdint.h). However, we still should get rid of that. Looks to me as if using Audio::Timestamp for that would be the natural solution. Since I don't know this engine and can't test it (and don't have the time anyway), I'll leave this to somebody else.


4) The following warnings are generated on my system (note that I use -Werror, which is why those show up as errors). I hope the Sword 2.5 engine devs will address them shortly:

$ make -k 
    C++      engines/sword25/gfx/animationtemplateregistry.o
cc1plus: warnings being treated as errors
engines/sword25/gfx/animationtemplateregistry.cpp: In static member function ‘static void Sword25::AnimationTemplateRegistry::__static_initialization_and_destruction_0(int, int)’:
engines/sword25/gfx/animationtemplateregistry.cpp:44: warning: ‘Sword25::AnimationTemplateRegistry::_instancePtr’ requires global construction
engines/sword25/gfx/animationtemplateregistry.cpp:44: warning: ‘Sword25::AnimationTemplateRegistry::_instancePtr’ requires global destruction
make: *** [engines/sword25/gfx/animationtemplateregistry.o] Error 1
    C++      engines/sword25/gfx/graphicengine.o
cc1plus: warnings being treated as errors
engines/sword25/gfx/graphicengine.cpp: In function ‘void __static_initialization_and_destruction_0(int, int)’:
engines/sword25/gfx/graphicengine.cpp:66: warning: ‘<unnamed>::PNG_EXTENSION’ requires global construction
engines/sword25/gfx/graphicengine.cpp:66: warning: ‘<unnamed>::PNG_EXTENSION’ requires global destruction
engines/sword25/gfx/graphicengine.cpp:67: warning: ‘<unnamed>::PNG_S_EXTENSION’ requires global construction
engines/sword25/gfx/graphicengine.cpp:67: warning: ‘<unnamed>::PNG_S_EXTENSION’ requires global destruction
engines/sword25/gfx/graphicengine.cpp:68: warning: ‘<unnamed>::ANI_EXTENSION’ requires global construction
engines/sword25/gfx/graphicengine.cpp:68: warning: ‘<unnamed>::ANI_EXTENSION’ requires global destruction
engines/sword25/gfx/graphicengine.cpp:69: warning: ‘<unnamed>::FNT_EXTENSION’ requires global construction
engines/sword25/gfx/graphicengine.cpp:69: warning: ‘<unnamed>::FNT_EXTENSION’ requires global destruction
engines/sword25/gfx/graphicengine.cpp:70: warning: ‘<unnamed>::SWF_EXTENSION’ requires global construction
engines/sword25/gfx/graphicengine.cpp:70: warning: ‘<unnamed>::SWF_EXTENSION’ requires global destruction
engines/sword25/gfx/graphicengine.cpp:71: warning: ‘<unnamed>::B25S_EXTENSION’ requires global construction
engines/sword25/gfx/graphicengine.cpp:71: warning: ‘<unnamed>::B25S_EXTENSION’ requires global destruction
make: *** [engines/sword25/gfx/graphicengine.o] Error 1
    C++      engines/sword25/gfx/graphicengine_script.o
cc1plus: warnings being treated as errors
engines/sword25/gfx/graphicengine_script.cpp: In function ‘void __static_initialization_and_destruction_0(int, int)’:
engines/sword25/gfx/graphicengine_script.cpp:84: warning: ‘Sword25::<unnamed>::LoopPointCallbackPtr’ requires global construction
engines/sword25/gfx/graphicengine_script.cpp:84: warning: ‘Sword25::<unnamed>::LoopPointCallbackPtr’ requires global destruction
engines/sword25/gfx/graphicengine_script.cpp:85: warning: ‘Sword25::<unnamed>::ActionCallbackPtr’ requires global construction
engines/sword25/gfx/graphicengine_script.cpp:85: warning: ‘Sword25::<unnamed>::ActionCallbackPtr’ requires global destruction
engines/sword25/gfx/graphicengine_script.cpp:96: warning: ‘Sword25::<unnamed>::Instance’ requires global construction
make: *** [engines/sword25/gfx/graphicengine_script.o] Error 1
    C++      engines/sword25/gfx/renderobjectregistry.o
cc1plus: warnings being treated as errors
engines/sword25/gfx/renderobjectregistry.cpp: In static member function ‘static void Sword25::RenderObjectRegistry::__static_initialization_and_destruction_0(int, int)’:
engines/sword25/gfx/renderobjectregistry.cpp:43: warning: ‘Sword25::RenderObjectRegistry::_instancePtr’ requires global construction
engines/sword25/gfx/renderobjectregistry.cpp:43: warning: ‘Sword25::RenderObjectRegistry::_instancePtr’ requires global destruction
make: *** [engines/sword25/gfx/renderobjectregistry.o] Error 1
    C++      engines/sword25/gfx/screenshot.o
cc1plus: warnings being treated as errors
engines/sword25/gfx/screenshot.cpp: In function ‘void Sword25::userWriteFn(png_struct*, png_byte*, png_size_t)’:
engines/sword25/gfx/screenshot.cpp:60: warning: ‘io_ptr’ is deprecated (declared at /sw/include/png.h:1112)
engines/sword25/gfx/screenshot.cpp:60: warning: ‘io_ptr’ is deprecated (declared at /sw/include/png.h:1112)
make: *** [engines/sword25/gfx/screenshot.o] Error 1
    C++      engines/sword25/gfx/image/art.o
cc1plus: warnings being treated as errors
engines/sword25/gfx/image/art.cpp: In function ‘void Sword25::art_svp_vpath_stroke_arc(Sword25::ArtVpath**, int*, int*, double, double, double, double, double, double, double, double)’:
engines/sword25/gfx/image/art.cpp:554: warning: converting to ‘int’ from ‘double’
engines/sword25/gfx/image/art.cpp:558: warning: converting to ‘int’ from ‘double’
engines/sword25/gfx/image/art.cpp: In function ‘void Sword25::render_cap(Sword25::ArtVpath**, int*, int*, Sword25::ArtVpath*, int, int, Sword25::ArtPathStrokeCapType, double, double)’:
engines/sword25/gfx/image/art.cpp:772: warning: converting to ‘int’ from ‘double’
engines/sword25/gfx/image/art.cpp: In function ‘void Sword25::art_svp_render_insert_active(int, int*, int, Sword25::artfloat*, Sword25::artfloat*)’:
engines/sword25/gfx/image/art.cpp:2284: warning: suggest a space before ‘;’ or explicit braces around empty body in ‘for’ statement
engines/sword25/gfx/image/art.cpp: In function ‘void Sword25::art_svp_render_aa_iter_step(Sword25::ArtSVPRenderAAIter*, int*, Sword25::ArtSVPRenderAAStep**, int*)’:
engines/sword25/gfx/image/art.cpp:2441: warning: suggest a space before ‘;’ or explicit braces around empty body in ‘for’ statement
engines/sword25/gfx/image/art.cpp:2494: warning: converting to ‘int’ from ‘Sword25::artfloat’
engines/sword25/gfx/image/art.cpp:2499: warning: converting to ‘int’ from ‘Sword25::artfloat’
engines/sword25/gfx/image/art.cpp:2509: warning: converting to ‘int’ from ‘Sword25::artfloat’
engines/sword25/gfx/image/art.cpp:2523: warning: converting to ‘int’ from ‘double’
engines/sword25/gfx/image/art.cpp:2533: warning: converting to ‘int’ from ‘Sword25::artfloat’
engines/sword25/gfx/image/art.cpp:2540: warning: converting to ‘int’ from ‘Sword25::artfloat’
make: *** [engines/sword25/gfx/image/art.o] Error 1
    C++      engines/sword25/gfx/image/imageloader.o
cc1plus: warnings being treated as errors
engines/sword25/gfx/image/imageloader.cpp: In static member function ‘static void Sword25::ImageLoader::__static_initialization_and_destruction_0(int, int)’:
engines/sword25/gfx/image/imageloader.cpp:43: warning: ‘Sword25::ImageLoader::_ImageLoaderList’ requires global construction
engines/sword25/gfx/image/imageloader.cpp:43: warning: ‘Sword25::ImageLoader::_ImageLoaderList’ requires global destruction
make: *** [engines/sword25/gfx/image/imageloader.o] Error 1
    C++      engines/sword25/gfx/image/pngloader.o
cc1plus: warnings being treated as errors
engines/sword25/gfx/image/pngloader.cpp: In function ‘void Sword25::png_user_read_data(png_struct*, png_byte*, png_size_t)’:
engines/sword25/gfx/image/pngloader.cpp:59: warning: ‘io_ptr’ is deprecated (declared at /sw/include/png.h:1112)
engines/sword25/gfx/image/pngloader.cpp:59: warning: ‘io_ptr’ is deprecated (declared at /sw/include/png.h:1112)
engines/sword25/gfx/image/pngloader.cpp:60: warning: ‘io_ptr’ is deprecated (declared at /sw/include/png.h:1112)
engines/sword25/gfx/image/pngloader.cpp:60: warning: ‘io_ptr’ is deprecated (declared at /sw/include/png.h:1112)
engines/sword25/gfx/image/pngloader.cpp:60: warning: ‘io_ptr’ is deprecated (declared at /sw/include/png.h:1112)
engines/sword25/gfx/image/pngloader.cpp:60: warning: ‘io_ptr’ is deprecated (declared at /sw/include/png.h:1112)
make: *** [engines/sword25/gfx/image/pngloader.o] Error 1
    C++      engines/sword25/gfx/image/vectorimagerenderer.o
cc1plus: warnings being treated as errors
engines/sword25/gfx/image/vectorimagerenderer.cpp: In function ‘int Sword25::art_vpath_len(Sword25::ArtVpath*)’:
engines/sword25/gfx/image/vectorimagerenderer.cpp:253: warning: suggest a space before ‘;’ or explicit braces around empty body in ‘for’ statement
make: *** [engines/sword25/gfx/image/vectorimagerenderer.o] Error 1
    C++      engines/sword25/input/inputengine_script.o
cc1plus: warnings being treated as errors
engines/sword25/input/inputengine_script.cpp: In function ‘void __static_initialization_and_destruction_0(int, int)’:
engines/sword25/input/inputengine_script.cpp:76: warning: ‘Sword25::<unnamed>::CharacterCallbackPtr’ requires global construction
engines/sword25/input/inputengine_script.cpp:76: warning: ‘Sword25::<unnamed>::CharacterCallbackPtr’ requires global destruction
engines/sword25/input/inputengine_script.cpp:94: warning: ‘Sword25::<unnamed>::CommandCallbackPtr’ requires global construction
engines/sword25/input/inputengine_script.cpp:94: warning: ‘Sword25::<unnamed>::CommandCallbackPtr’ requires global destruction
engines/sword25/input/inputengine_script.cpp:104: warning: ‘Sword25::<unnamed>::Instance’ requires global construction
make: *** [engines/sword25/input/inputengine_script.o] Error 1
    C++      engines/sword25/kernel/filesystemutil.o
cc1plus: warnings being treated as errors
engines/sword25/kernel/filesystemutil.cpp: In member function ‘virtual uint32 Sword25::BS_FileSystemUtilScummVM::GetFileSize(const Common::String&)’:
engines/sword25/kernel/filesystemutil.cpp:95: warning: negative integer implicitly converted to unsigned type
make: *** [engines/sword25/kernel/filesystemutil.o] Error 1
    C++      engines/sword25/kernel/kernel.o
cc1plus: warnings being treated as errors
./engines/sword25/kernel/service_ids.h: In function ‘void __static_initialization_and_destruction_0(int, int)’:
./engines/sword25/kernel/service_ids.h:61: warning: ‘Sword25::BS_SERVICE_TABLE’ requires global construction
./engines/sword25/kernel/service_ids.h:61: warning: ‘Sword25::BS_SERVICE_TABLE’ requires global destruction
make: *** [engines/sword25/kernel/kernel.o] Error 1
    C++      engines/sword25/kernel/log.o
cc1plus: warnings being treated as errors
engines/sword25/kernel/log.cpp: In static member function ‘static void Sword25::BS_Log::__static_initialization_and_destruction_0(int, int)’:
engines/sword25/kernel/log.cpp:55: warning: ‘Sword25::BS_Log::_LogListener’ requires global construction
engines/sword25/kernel/log.cpp:55: warning: ‘Sword25::BS_Log::_LogListener’ requires global destruction
make: *** [engines/sword25/kernel/log.o] Error 1
    C++      engines/sword25/kernel/outputpersistenceblock.o
engines/sword25/kernel/outputpersistenceblock.cpp: In member function ‘void Sword25::OutputPersistenceBlock::write(const void*, size_t)’:
engines/sword25/kernel/outputpersistenceblock.cpp:111: error: call of overloaded ‘write(size_t&)’ is ambiguous
engines/sword25/kernel/outputpersistenceblock.cpp:65: note: candidates are: void Sword25::OutputPersistenceBlock::write(int)
engines/sword25/kernel/outputpersistenceblock.cpp:73: note:                 void Sword25::OutputPersistenceBlock::write(uint)
engines/sword25/kernel/outputpersistenceblock.cpp:81: note:                 void Sword25::OutputPersistenceBlock::write(float)
engines/sword25/kernel/outputpersistenceblock.cpp:89: note:                 void Sword25::OutputPersistenceBlock::write(bool)
make: *** [engines/sword25/kernel/outputpersistenceblock.o] Error 1
    C++      engines/sword25/math/polygon.o
cc1plus: warnings being treated as errors
engines/sword25/math/polygon.cpp: In copy constructor ‘Sword25::Polygon::Polygon(const Sword25::Polygon&)’:
engines/sword25/math/polygon.cpp:52: warning: base class ‘class Sword25::Persistable’ should be explicitly initialized in the copy constructor
make: *** [engines/sword25/math/polygon.o] Error 1
    C++      engines/sword25/math/regionregistry.o
cc1plus: warnings being treated as errors
engines/sword25/math/regionregistry.cpp: In static member function ‘static void Sword25::RegionRegistry::__static_initialization_and_destruction_0(int, int)’:
engines/sword25/math/regionregistry.cpp:44: warning: ‘Sword25::RegionRegistry::_instancePtr’ requires global construction
engines/sword25/math/regionregistry.cpp:44: warning: ‘Sword25::RegionRegistry::_instancePtr’ requires global destruction
make: *** [engines/sword25/math/regionregistry.o] Error 1
make: Target `all' not remade because of errors.





Cheers,
Max



More information about the Scummvm-devel mailing list