Code Monkey home page Code Monkey logo

opendarkengine's People

Contributors

domivogt avatar gorbeh avatar volca02 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opendarkengine's Issues

Replacement of the rendering engine

After trying to force Ogre3d to do stuff the way it's needed, which has proven to be harder on every step (notably light list population for movable objects, lately), it's time to depart ways with it and implement stuff differently. Obvious choice here is not to reinvent wheel when it comes to rendering API abstractions, which should mean easier transitions to new platforms, among other things.

This change will most likely mean shift away from fixed function rendering, as well as getting rid of Ogre's VFS support that was hijacked to be used here. This project does not necessarily need a full blown scene graph implementation, although there has to be support for object attachments - f.ex. camera can be attached to sub-objects of other objects, AI often has keys or valuables on the belt, etc.

Scene management code currently present in scenemanager/ directory will be partially scrapped, partially moved back to worldrep service, that should newly be responsible for static geometry management and rendering. Note, it would be nice to allow viewpoint instances to exist, so stuff like dynamic shadows instead of pre-baked lightmaps is possible later on.

Initial amount of work can be done sideways - loading of BIN (both LGMM and LGMD) files and displaying them can be prototyped in a separate project and backported. The same is probably true for VFS management code, which should live in a fitting service (did original Dark have any service dedicated to VFS?).

Compilation error: no matching function for call 'make_pair'

Hi, I'm getting a compilation error after successfully running 'cmake' and then 'make'.
I'm on Linux 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2 (2017-06-12) x86_64 GNU/Linux and I'm using the g++ from Debian stretch: g++ (Debian 6.3.0-18) 6.3.0 20170516

Here's the error:

✘-2 ~/source/openDarkEngine [master|…229] 
14:33 $ make
[  2%] Built target meshconvert
[  3%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/dyntype/DT
/home/jtecc/source/openDarkEngine/src/base/dyntype/DTypeDef.cpp: In member funring&, const Opde::DVariant&)’:
/home/jtecc/source/openDarkEngine/src/base/dyntype/DTypeDef.cpp:76:56: error: air(const string&, const Opde::DVariant&)’
   mValMap.insert(make_pair<string, DVariant>(key, value));
                                                        ^
In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6/bits/char_traits.h:39,
                 from /usr/include/c++/6/string:40,
                 from /usr/include/c++/6/stdexcept:39,
                 from /home/jtecc/source/openDarkEngine/src/base/dyntype/DType
                 from /home/jtecc/source/openDarkEngine/src/base/dyntype/DType
/usr/include/c++/6/bits/stl_pair.h:497:5: note: candidate: template<class _T1, std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/6/bits/stl_pair.h:497:5: note:   template argument deduction/
/home/jtecc/source/openDarkEngine/src/base/dyntype/DTypeDef.cpp:76:46: note:  g {aka const std::__cxx11::basic_string<char>}’) to type ‘std::__cxx11::basic_
   mValMap.insert(make_pair<string, DVariant>(key, value));
                                              ^~~
src/main/CMakeFiles/OpenDark.dir/build.make:254: recipe for target 'src/main/CTypeDef.cpp.o' failed
make[2]: *** [src/main/CMakeFiles/OpenDark.dir/__/base/dyntype/DTypeDef.cpp.o]
CMakeFiles/Makefile2:694: recipe for target 'src/main/CMakeFiles/OpenDark.dir/
make[1]: *** [src/main/CMakeFiles/OpenDark.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Python bindings need tests/fixes

Example: using pytest.

#0  Opde::LightAtlas::getIndex (this=0x0) at /home/volca/Projects/openDarkEngine/openDarkEngine/src/services/worldrep/LightmapAtlas.cpp:288
#1  0x00007ffff7b428c9 in Opde::LightMap::getAtlasIndex (this=<optimized out>) at /home/volca/Projects/openDarkEngine/openDarkEngine/src/services/worldrep/LightmapAtlas.cpp:587
#2  0x00007ffff7b13381 in Opde::LightsForCell::getAtlasForPolygon (this=<optimized out>, face_id=face_id@entry=0) at /home/volca/Projects/openDarkEngine/openDarkEngine/src/services/light/LightService.cpp:352
#3  0x00007ffff7b13f75 in Opde::LightService::getAtlasForCellPolygon (this=<optimized out>, cellID=<optimized out>, faceID=0) at /home/volca/Projects/openDarkEngine/openDarkEngine/src/services/light/LightService.cpp:160
#4  0x00007ffff7b49402 in Opde::WRCell::createCellGeometry (this=0x1c6b070) at /home/volca/Projects/openDarkEngine/openDarkEngine/src/services/worldrep/WRCell.cpp:426
#5  0x00007ffff7b46c6c in Opde::WorldRepService::loadFromChunk (this=this@entry=0xc67640, wrChunk=..., lightSize=<optimized out>) at /home/volca/Projects/openDarkEngine/openDarkEngine/src/services/worldrep/WorldRepService.cpp:284
#6  0x00007ffff7b4767e in Opde::WorldRepService::onDBLoad (this=0xc67640, db=..., curmask=<optimized out>) at /home/volca/Projects/openDarkEngine/openDarkEngine/src/services/worldrep/WorldRepService.cpp:126
#7  0x00007ffff7aef2a8 in Opde::DatabaseService::broadcastOnDBLoad (this=this@entry=0x912050, db=..., curmask=curmask@entry=203008) at /home/volca/Projects/openDarkEngine/openDarkEngine/src/services/database/DatabaseService.cpp:268
#8  0x00007ffff7af027f in Opde::DatabaseService::recursiveMergeLoad (this=this@entry=0x912050, filename=..., loadMask=loadMask@entry=466688) at /home/volca/Projects/openDarkEngine/openDarkEngine/src/services/database/DatabaseService.cpp:104
#9  0x00007ffff7af03ab in Opde::DatabaseService::load (this=0x912050, filename=..., loadMask=loadMask@entry=466688) at /home/volca/Projects/openDarkEngine/openDarkEngine/src/services/database/DatabaseService.cpp:73
#10 0x00007ffff7b55483 in Opde::Python::DatabaseServiceBinder::load (self=<optimized out>, args=<optimized out>) at /home/volca/Projects/openDarkEngine/openDarkEngine/src/bindings/DatabaseServiceBinder.cpp:177

Getting rid of OIS

We have an issue where the relative mouse position from OIS skips from single digit/double digit values to ~400 or more and this causes mouse look issues.

OIS seems rather dead. I propose to move to SDL 2.0 (for both input and maybe even window management).

Getting rid of ogre's overlay code

We have draw service which is capable of displaying all kinds of gui components, but is so far not used.

I'd like the console code to be redone using that, as overlays are old and cause problems (could not get it to work while porting to ogre 1.9)

File read/write handling

read/write operations using operators >> and << should be replaced with variadic template or chained calls for the sake of readability - the current usage will get read and write easily mistaken.

Refactorings

General

  • get rid of OPDELIB_EXPORT macro altogether
  • base directory is needlessly branched, which complicates include declarations in cmake. flatten that directory.
  • While we're at it, also remove obsolete files (ex. dyntype/dtypedef) - do we need Dark headers, still?
  • iterator concepts are bulky and use dynamic allocations - since users of the iterator should hold refs to services they get the iterators from, the iterators could use move semantics and/or references. No need to allocate memory so much. Also they are virtual for no good reason in most places, which forces them to use heap, too
  • huge amount of std::map uses that could be moved to unordered_map
  • typedef struct {} name is C construct - use struct name {} instead
  • Formatting of the project needs to be changed. Remove the usage of tabs, don't indent namespaces... Probably best use clang-format
  • use std::shared_ptr instead of the custom class
  • lighten the use of dynamic allocations in general
  • transition to std::vector/std::unique_ptr as appropriate for array alocations and simple allocations
  • split data loaders into data handlers and graphics adaptation code - in case this project changes to different rendering lib, the code only needs to change the latter, not the former (MBin loader, Worldrep loader - WRCell should only enable comfortable access to cell data)
  • Common listeners/callback classes: separate headers for them (don't include service headers in other service headers).
  • Maybe replace the current Callback class with std::function
  • Service registration could as well be done with lambdas or templatization, no need to implement whole factory class
  • Get rid of GameStateManager and others. Drive the whole game via services.

Property service

  • dtype/dtypedef should be removed. Implement instead with packed structs and static descriptions - do not handle unknown types at all (there's aready StructDataStorage for that)
  • PropertyChangeMsg should contain data of the property if applicable (templatize the message?)
  • ActiveProperty methods should be prefixed on... as those are basically callbacks - but we don't need that class in general - there should be virtual methods for common events in the base class, instead.
  • Template the property interface, add direct data type accessors. Do not force users to access fields by name if the type is available.
  • Don't use BitArray for object masking in save/load - use lambda to filter the objects.
  • Inject the type of data storage as a template parameter to Property. Don't force dynamic allocation there - the lifetimes of Property and datastore are bound, so should the objects (member by value).

Link service

  • Don't store links as shared pointers. Use references in the message.
  • Make template out of relation. Don't use string maps to fill it.
  • Inherit service a listener on metaprop relation. Rather than that, it could directly implement that relation - that would save some effort when inheritance changes.
  • Remove allocations from inherit service (InheritLnkPtr)

DataStorage

  • StructDataStorage - store whole stored value at once. Where inappropriate, specialize the serialization templates. Don't handle fields via string indexation. Slow ugly bad

Rendering

  • Transition to shader based rendering, remove the material overrides for transparency and other things
  • Lightmaps have atrocious packing. A lot could be improved - use exponent of 2 rounding for placement, place the largest lightmaps first (sort by size before building atlas)
  • Terrain textures could be stored in atlases based on their sizes (I think they are 2^n, so easily tiled), again reducing batching
  • Light update code is only needed for dynamic lights, static lights can be attached to cells based on light list in cell (light_indices).

Scripting

  • Re-evaluate the choice of python as the language choice
  • Could also rewrite the bindings so that they are language-agnostic, and rather describe the project in a way adding a new language in will be simple
  • Squirrel looks like an obvious choice for scripting language here, but have to look further

Invalid

  • Light propagation is wrong. The reason is it portal traversal. Should instead generalize the portal traversal code (common code to enumerate cell list given position and view direction) - use this for spotlight and omni light (omni light has to do it 6x to get all affected cells).

Note: This only would apply to dynamic lights (static lights have baked areas of influence in the WR chunk). Dynamic lights should be bounding sphere based anyway (not propagation based) to keep the original look intact.

For dynamic shadows (which would be interesting alternative to static low res lightmaps) the approach should be to generalize camera cell finding code in a base class. This will probably be done anyway since there might be no fat camera class after changing rendering engine.

Error compiling in Linux

64-bit Arch, latest version of all deps. Log:

[  1%] Building CXX object proto/PHYS_SYSTEM/CMakeFiles/readphs.dir/readphs.cpp.o
[  1%] Building CXX object src/tools/CMakeFiles/DarkFontConverter.dir/DarkFontConverter.cpp.o
[  2%] Building CXX object src/tools/CMakeFiles/meshconvert.dir/meshconvert.cpp.o
/home/jpl/game/openDarkEngine/proto/PHYS_SYSTEM/readphs.cpp: In function ‘bool readObjectPhys(FILE*, int, int)’:
/home/jpl/game/openDarkEngine/proto/PHYS_SYSTEM/readphs.cpp:475:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (subobj_types[n] != bvolume)
                       ^
[  3%] Linking CXX executable DarkFontConverter
[  4%] Linking CXX executable readphs
[  5%] Building CXX object src/main/CMakeFiles/OpenDark.dir/Root.cpp.o
[  5%] Built target readphs
[  5%] Building CXX object src/main/CMakeFiles/OpenDark.dir/CustomImageCodec.cpp.o
[  5%] Built target DarkFontConverter
[  6%] Building CXX object src/main/CMakeFiles/OpenDark.dir/ProxyArchive.cpp.o
[  7%] Linking CXX executable meshconvert
/home/jpl/game/openDarkEngine/src/main/Root.cpp:147:2: warning: #warning do this: m_pSceneMgr->addRenderQueueListener(pOverlaySystem); [-Wcpp]
 #warning do this: m_pSceneMgr->addRenderQueueListener(pOverlaySystem);
  ^
[  7%] Built target meshconvert
[  8%] Building CXX object src/main/CMakeFiles/OpenDark.dir/OgreZip.cpp.o
[  8%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/file/FileCompat.cpp.o
[  9%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/file/darkdb.cpp.o
[ 10%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/file/FileGroup.cpp.o
[ 10%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/file/File.cpp.o
/home/jpl/game/openDarkEngine/src/main/OgreZip.cpp:667:1: warning: ‘virtual void Ogre::Renderable::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreNode.h:38:0,
                 from /usr/include/OGRE/OgreSceneNode.h:33,
                 from /usr/include/OGRE/OgreSceneManager.h:37,
                 from /usr/include/OGRE/OgreSceneManagerEnumerator.h:33,
                 from /usr/include/OGRE/OgreRoot.h:36,
                 from /home/jpl/game/openDarkEngine/src/main/OgreZip.cpp:38:
/usr/include/OGRE/OgreRenderable.h:344:38: note: declared here
         OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                      ^
/home/jpl/game/openDarkEngine/src/main/OgreZip.cpp:667:1: warning: ‘virtual const Ogre::Any& Ogre::Renderable::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreNode.h:38:0,
                 from /usr/include/OGRE/OgreSceneNode.h:33,
                 from /usr/include/OGRE/OgreSceneManager.h:37,
                 from /usr/include/OGRE/OgreSceneManagerEnumerator.h:33,
                 from /usr/include/OGRE/OgreRoot.h:36,
                 from /home/jpl/game/openDarkEngine/src/main/OgreZip.cpp:38:
/usr/include/OGRE/OgreRenderable.h:349:44: note: declared here
         OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                            ^
/home/jpl/game/openDarkEngine/src/main/OgreZip.cpp:667:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreMaterial.h:33:0,
                 from /usr/include/OGRE/OgreRenderable.h:36,
                 from /usr/include/OGRE/OgreNode.h:38,
                 from /usr/include/OGRE/OgreSceneNode.h:33,
                 from /usr/include/OGRE/OgreSceneManager.h:37,
                 from /usr/include/OGRE/OgreSceneManagerEnumerator.h:33,
                 from /usr/include/OGRE/OgreRoot.h:36,
                 from /home/jpl/game/openDarkEngine/src/main/OgreZip.cpp:38:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/main/OgreZip.cpp:667:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreMaterial.h:33:0,
                 from /usr/include/OGRE/OgreRenderable.h:36,
                 from /usr/include/OGRE/OgreNode.h:38,
                 from /usr/include/OGRE/OgreSceneNode.h:33,
                 from /usr/include/OGRE/OgreSceneManager.h:37,
                 from /usr/include/OGRE/OgreSceneManagerEnumerator.h:33,
                 from /usr/include/OGRE/OgreRoot.h:36,
                 from /home/jpl/game/openDarkEngine/src/main/OgreZip.cpp:38:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
[ 11%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/RefCounted.cpp.o
[ 12%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/OpdeException.cpp.o
/home/jpl/game/openDarkEngine/src/main/Root.cpp:373:1: warning: ‘virtual void Ogre::Renderable::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreNode.h:38:0,
                 from /usr/include/OGRE/OgreSceneNode.h:33,
                 from /usr/include/OGRE/OgreSceneManager.h:37,
                 from /usr/include/OGRE/OgreSceneManagerEnumerator.h:33,
                 from /usr/include/OGRE/OgreRoot.h:36,
                 from /home/jpl/game/openDarkEngine/src/main/Root.h:42,
                 from /home/jpl/game/openDarkEngine/src/main/Root.cpp:26:
/usr/include/OGRE/OgreRenderable.h:344:38: note: declared here
         OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                      ^
/home/jpl/game/openDarkEngine/src/main/Root.cpp:373:1: warning: ‘virtual const Ogre::Any& Ogre::Renderable::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreNode.h:38:0,
                 from /usr/include/OGRE/OgreSceneNode.h:33,
                 from /usr/include/OGRE/OgreSceneManager.h:37,
                 from /usr/include/OGRE/OgreSceneManagerEnumerator.h:33,
                 from /usr/include/OGRE/OgreRoot.h:36,
                 from /home/jpl/game/openDarkEngine/src/main/Root.h:42,
                 from /home/jpl/game/openDarkEngine/src/main/Root.cpp:26:
/usr/include/OGRE/OgreRenderable.h:349:44: note: declared here
         OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                            ^
/home/jpl/game/openDarkEngine/src/main/Root.cpp:373:1: warning: ‘virtual void Ogre::Renderable::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreNode.h:38:0,
                 from /usr/include/OGRE/OgreSceneNode.h:33,
                 from /usr/include/OGRE/OgreSceneManager.h:37,
                 from /usr/include/OGRE/OgreSceneManagerEnumerator.h:33,
                 from /usr/include/OGRE/OgreRoot.h:36,
                 from /home/jpl/game/openDarkEngine/src/main/Root.h:42,
                 from /home/jpl/game/openDarkEngine/src/main/Root.cpp:26:
/usr/include/OGRE/OgreRenderable.h:344:38: note: declared here
         OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                      ^
/home/jpl/game/openDarkEngine/src/main/Root.cpp:373:1: warning: ‘virtual const Ogre::Any& Ogre::Renderable::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreNode.h:38:0,
                 from /usr/include/OGRE/OgreSceneNode.h:33,
                 from /usr/include/OGRE/OgreSceneManager.h:37,
                 from /usr/include/OGRE/OgreSceneManagerEnumerator.h:33,
                 from /usr/include/OGRE/OgreRoot.h:36,
                 from /home/jpl/game/openDarkEngine/src/main/Root.h:42,
                 from /home/jpl/game/openDarkEngine/src/main/Root.cpp:26:
/usr/include/OGRE/OgreRenderable.h:349:44: note: declared here
         OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                            ^
/home/jpl/game/openDarkEngine/src/main/Root.cpp:373:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreMaterial.h:33:0,
                 from /usr/include/OGRE/OgreRenderable.h:36,
                 from /usr/include/OGRE/OgreNode.h:38,
                 from /usr/include/OGRE/OgreSceneNode.h:33,
                 from /usr/include/OGRE/OgreSceneManager.h:37,
                 from /usr/include/OGRE/OgreSceneManagerEnumerator.h:33,
                 from /usr/include/OGRE/OgreRoot.h:36,
                 from /home/jpl/game/openDarkEngine/src/main/Root.h:42,
                 from /home/jpl/game/openDarkEngine/src/main/Root.cpp:26:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/main/Root.cpp:373:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreMaterial.h:33:0,
                 from /usr/include/OGRE/OgreRenderable.h:36,
                 from /usr/include/OGRE/OgreNode.h:38,
                 from /usr/include/OGRE/OgreSceneNode.h:33,
                 from /usr/include/OGRE/OgreSceneManager.h:37,
                 from /usr/include/OGRE/OgreSceneManagerEnumerator.h:33,
                 from /usr/include/OGRE/OgreRoot.h:36,
                 from /home/jpl/game/openDarkEngine/src/main/Root.h:42,
                 from /home/jpl/game/openDarkEngine/src/main/Root.cpp:26:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
[ 12%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/console/ConsoleCommandListener.cpp.o
[ 13%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/console/ConsoleBackend.cpp.o
[ 14%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/dyntype/DVariant.cpp.o
[ 14%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/dyntype/DataStorage.cpp.o
[ 15%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/dyntype/DTypeDef.cpp.o
[ 16%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/dyntype/Serializer.cpp.o
[ 17%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/servicemanager/OpdeService.cpp.o
[ 17%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/servicemanager/OpdeServiceManager.cpp.o
[ 18%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/logger/stdlog.cpp.o
[ 19%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/logger/filelog.cpp.o
[ 19%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/logger/OgreOpdeLogConnector.cpp.o
[ 20%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/logger/logger.cpp.o
[ 21%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/loaders/ManualBinFileLoader.cpp.o
[ 21%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/loaders/ManualFonFileLoader.cpp.o
[ 22%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/base/loaders/FonFormat.cpp.o
[ 23%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/room/Room.cpp.o
[ 23%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/room/RoomPortal.cpp.o
[ 24%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/binary/BinaryService.cpp.o
[ 25%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/config/ConfigService.cpp.o
/home/jpl/game/openDarkEngine/src/base/loaders/ManualFonFileLoader.cpp:553:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreResourceManager.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/base/loaders/ManualFonFileLoader.h:30,
                 from /home/jpl/game/openDarkEngine/src/base/loaders/ManualFonFileLoader.cpp:27:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/base/loaders/ManualFonFileLoader.cpp:553:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreResourceManager.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/base/loaders/ManualFonFileLoader.h:30,
                 from /home/jpl/game/openDarkEngine/src/base/loaders/ManualFonFileLoader.cpp:27:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
[ 25%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/database/DatabaseService.cpp.o
[ 26%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/draw/DrawBuffer.cpp.o
[ 27%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/draw/DrawCommon.cpp.o
/home/jpl/game/openDarkEngine/src/base/loaders/ManualBinFileLoader.cpp:2118:1: warning: ‘virtual void Ogre::Renderable::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreShadowCaster.h:32:0,
                 from /usr/include/OGRE/OgreMovableObject.h:37,
                 from /usr/include/OGRE/OgreLight.h:37,
                 from /home/jpl/game/openDarkEngine/src/scenemanager/DarkLight.h:32,
                 from /home/jpl/game/openDarkEngine/src/services/light/LightService.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/material/MaterialService.h:36,
                 from /home/jpl/game/openDarkEngine/src/base/loaders/ManualBinFileLoader.cpp:33:
/usr/include/OGRE/OgreRenderable.h:344:38: note: declared here
         OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                      ^
/home/jpl/game/openDarkEngine/src/base/loaders/ManualBinFileLoader.cpp:2118:1: warning: ‘virtual const Ogre::Any& Ogre::Renderable::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreShadowCaster.h:32:0,
                 from /usr/include/OGRE/OgreMovableObject.h:37,
                 from /usr/include/OGRE/OgreLight.h:37,
                 from /home/jpl/game/openDarkEngine/src/scenemanager/DarkLight.h:32,
                 from /home/jpl/game/openDarkEngine/src/services/light/LightService.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/material/MaterialService.h:36,
                 from /home/jpl/game/openDarkEngine/src/base/loaders/ManualBinFileLoader.cpp:33:
/usr/include/OGRE/OgreRenderable.h:349:44: note: declared here
         OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                            ^
/home/jpl/game/openDarkEngine/src/base/loaders/ManualBinFileLoader.cpp:2118:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreResourceManager.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/base/loaders/ManualBinFileLoader.h:30,
                 from /home/jpl/game/openDarkEngine/src/base/loaders/ManualBinFileLoader.cpp:27:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/base/loaders/ManualBinFileLoader.cpp:2118:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreResourceManager.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/base/loaders/ManualBinFileLoader.h:30,
                 from /home/jpl/game/openDarkEngine/src/base/loaders/ManualBinFileLoader.cpp:27:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/services/database/DatabaseService.cpp:360:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreResourceGroupManager.h:35:0,
                 from /home/jpl/game/openDarkEngine/src/services/database/DatabaseService.cpp:30:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/services/database/DatabaseService.cpp:360:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreResourceGroupManager.h:35:0,
                 from /home/jpl/game/openDarkEngine/src/services/database/DatabaseService.cpp:30:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
[ 27%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/draw/DrawOperation.cpp.o
/home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.cpp:341:1: warning: ‘virtual void Ogre::Renderable::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.cpp:25:
/usr/include/OGRE/OgreRenderable.h:344:38: note: declared here
         OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                      ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.cpp:341:1: warning: ‘virtual const Ogre::Any& Ogre::Renderable::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.cpp:25:
/usr/include/OGRE/OgreRenderable.h:349:44: note: declared here
         OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                            ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.cpp:341:1: warning: ‘virtual void Ogre::Renderable::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.cpp:25:
/usr/include/OGRE/OgreRenderable.h:344:38: note: declared here
         OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                      ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.cpp:341:1: warning: ‘virtual const Ogre::Any& Ogre::Renderable::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.cpp:25:
/usr/include/OGRE/OgreRenderable.h:349:44: note: declared here
         OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                            ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.cpp:341:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.cpp:25:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.cpp:341:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.cpp:25:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
[ 28%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/draw/DrawService.cpp.o
/home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.cpp:160:2: warning: ‘virtual void Ogre::Renderable::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 };
  ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.cpp:26:
/usr/include/OGRE/OgreRenderable.h:344:38: note: declared here
         OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                      ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.cpp:160:2: warning: ‘virtual const Ogre::Any& Ogre::Renderable::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 };
  ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.cpp:26:
/usr/include/OGRE/OgreRenderable.h:349:44: note: declared here
         OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                            ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.cpp:160:2: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 };
  ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.cpp:25:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.cpp:160:2: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 };
  ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.cpp:25:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
[ 29%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/draw/DrawSheet.cpp.o
[ 30%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/draw/FontDrawSource.cpp.o
/home/jpl/game/openDarkEngine/src/services/draw/DrawOperation.cpp:150:1: warning: ‘virtual void Ogre::Renderable::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawOperation.cpp:24:
/usr/include/OGRE/OgreRenderable.h:344:38: note: declared here
         OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                      ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawOperation.cpp:150:1: warning: ‘virtual const Ogre::Any& Ogre::Renderable::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawOperation.cpp:24:
/usr/include/OGRE/OgreRenderable.h:349:44: note: declared here
         OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                            ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawOperation.cpp:150:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawOperation.cpp:24:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawOperation.cpp:150:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawOperation.cpp:24:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
[ 30%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/draw/RenderedImage.cpp.o
/home/jpl/game/openDarkEngine/src/services/draw/FontDrawSource.cpp:228:2: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 };
  ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/FontDrawSource.cpp:25:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/services/draw/FontDrawSource.cpp:228:2: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 };
  ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/FontDrawSource.cpp:25:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
[ 31%] Building CXX object src/main/CMakeFiles/OpenDark.dir/__/services/draw/RenderedLabel.cpp.o
In file included from /usr/include/c++/5.2.0/algorithm:62:0,
                 from /usr/include/OGRE/OgreStdHeaders.h:71,
                 from /usr/include/OGRE/OgrePrerequisites.h:325,
                 from /usr/include/OGRE/OgreVector3.h:31,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:31,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.cpp:26:
/usr/include/c++/5.2.0/bits/stl_algo.h: In instantiation of ‘_IIter std::find_if(_IIter, _IIter, _Predicate) [with _IIter = __gnu_cxx::__normal_iterator<const char*, std::basic_string<char> >; _Predicate = Opde::IsChar]’:
/home/jpl/game/openDarkEngine/src/base/StringTokenizer.h:85:57:   required from here
/usr/include/c++/5.2.0/bits/stl_algo.h:3815:28: error: invalid initialization of non-const reference of type ‘__gnu_cxx::__ops::_Iter_pred<Opde::IsChar>&’ from an rvalue of type ‘__gnu_cxx::__ops::_Iter_pred<Opde::IsChar>’
       return std::__find_if(__first, __last,
                            ^
In file included from /usr/include/c++/5.2.0/bits/stl_algobase.h:71:0,
                 from /usr/include/c++/5.2.0/bits/char_traits.h:39,
                 from /usr/include/c++/5.2.0/string:40,
                 from /home/jpl/game/openDarkEngine/src/base/servicemanager/OpdeServiceFactory.h:31,
                 from /home/jpl/game/openDarkEngine/src/base/servicemanager/OpdeServiceManager.h:29,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:30,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.cpp:26:
/usr/include/c++/5.2.0/bits/predefined_ops.h:223:12: note:   initializing argument 1 of ‘__gnu_cxx::__ops::_Iter_pred<Opde::IsChar>::_Iter_pred(__gnu_cxx::__ops::_Iter_pred<Opde::IsChar>&)’
     struct _Iter_pred
            ^
In file included from /usr/include/c++/5.2.0/algorithm:62:0,
                 from /usr/include/OGRE/OgreStdHeaders.h:71,
                 from /usr/include/OGRE/OgrePrerequisites.h:325,
                 from /usr/include/OGRE/OgreVector3.h:31,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:31,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.cpp:26:
/usr/include/c++/5.2.0/bits/stl_algo.h:159:5: note:   initializing argument 3 of ‘_Iterator std::__find_if(_Iterator, _Iterator, _Predicate) [with _Iterator = __gnu_cxx::__normal_iterator<const char*, std::basic_string<char> >; _Predicate = __gnu_cxx::__ops::_Iter_pred<Opde::IsChar>]’
     __find_if(_Iterator __first, _Iterator __last, _Predicate __pred)
     ^
In file included from /usr/include/c++/5.2.0/bits/stl_algobase.h:71:0,
                 from /usr/include/c++/5.2.0/bits/char_traits.h:39,
                 from /usr/include/c++/5.2.0/string:40,
                 from /home/jpl/game/openDarkEngine/src/base/servicemanager/OpdeServiceFactory.h:31,
                 from /home/jpl/game/openDarkEngine/src/base/servicemanager/OpdeServiceManager.h:29,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:30,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.cpp:26:
/usr/include/c++/5.2.0/bits/predefined_ops.h: In instantiation of ‘__gnu_cxx::__ops::_Iter_pred<_Predicate> __gnu_cxx::__ops::__pred_iter(_Predicate) [with _Predicate = Opde::IsChar]’:
/usr/include/c++/5.2.0/bits/stl_algo.h:3816:37:   required from ‘_IIter std::find_if(_IIter, _IIter, _Predicate) [with _IIter = __gnu_cxx::__normal_iterator<const char*, std::basic_string<char> >; _Predicate = Opde::IsChar]’
/home/jpl/game/openDarkEngine/src/base/StringTokenizer.h:85:57:   required from here
/usr/include/c++/5.2.0/bits/predefined_ops.h:240:43: error: invalid initialization of non-const reference of type ‘__gnu_cxx::__ops::_Iter_pred<Opde::IsChar>&’ from an rvalue of type ‘__gnu_cxx::__ops::_Iter_pred<Opde::IsChar>’
     { return _Iter_pred<_Predicate>(__pred); }
                                           ^
/usr/include/c++/5.2.0/bits/predefined_ops.h:223:12: note:   initializing argument 1 of ‘__gnu_cxx::__ops::_Iter_pred<Opde::IsChar>::_Iter_pred(__gnu_cxx::__ops::_Iter_pred<Opde::IsChar>&)’
     struct _Iter_pred
            ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawService.cpp:758:1: warning: ‘virtual void Ogre::Renderable::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.cpp:26:
/usr/include/OGRE/OgreRenderable.h:344:38: note: declared here
         OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                      ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawService.cpp:758:1: warning: ‘virtual const Ogre::Any& Ogre::Renderable::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.cpp:26:
/usr/include/OGRE/OgreRenderable.h:349:44: note: declared here
         OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                            ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawService.cpp:758:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.cpp:26:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawService.cpp:758:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.cpp:26:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
src/main/CMakeFiles/OpenDark.dir/build.make:854: recipe for target 'src/main/CMakeFiles/OpenDark.dir/__/services/draw/DrawService.cpp.o' failed
make[2]: *** [src/main/CMakeFiles/OpenDark.dir/__/services/draw/DrawService.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.cpp:333:2: warning: ‘virtual void Ogre::MovableObject::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 };
  ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.cpp:24:
/usr/include/OGRE/OgreMovableObject.h:329:32: note: declared here
   OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.cpp:333:2: warning: ‘virtual const Ogre::Any& Ogre::MovableObject::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 };
  ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.cpp:24:
/usr/include/OGRE/OgreMovableObject.h:334:38: note: declared here
   OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                      ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.cpp:333:2: warning: ‘virtual void Ogre::Renderable::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 };
  ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.cpp:24:
/usr/include/OGRE/OgreRenderable.h:344:38: note: declared here
         OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                      ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.cpp:333:2: warning: ‘virtual const Ogre::Any& Ogre::Renderable::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 };
  ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.cpp:24:
/usr/include/OGRE/OgreRenderable.h:349:44: note: declared here
         OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                            ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.cpp:333:2: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 };
  ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.cpp:24:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.cpp:333:2: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 };
  ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.cpp:24:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/services/draw/RenderedImage.cpp:94:1: warning: ‘virtual void Ogre::Renderable::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/RenderedImage.cpp:25:
/usr/include/OGRE/OgreRenderable.h:344:38: note: declared here
         OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                      ^
/home/jpl/game/openDarkEngine/src/services/draw/RenderedImage.cpp:94:1: warning: ‘virtual const Ogre::Any& Ogre::Renderable::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/RenderedImage.cpp:25:
/usr/include/OGRE/OgreRenderable.h:349:44: note: declared here
         OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                            ^
/home/jpl/game/openDarkEngine/src/services/draw/RenderedImage.cpp:94:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/RenderedImage.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/RenderedImage.cpp:24:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/services/draw/RenderedImage.cpp:94:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/RenderedImage.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/RenderedImage.cpp:24:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/services/draw/RenderedLabel.cpp:170:1: warning: ‘virtual void Ogre::Renderable::setUserAny(const Ogre::Any&)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/RenderedLabel.cpp:25:
/usr/include/OGRE/OgreRenderable.h:344:38: note: declared here
         OGRE_DEPRECATED virtual void setUserAny(const Any& anything) { getUserObjectBindings().setUserAny(anything); }
                                      ^
/home/jpl/game/openDarkEngine/src/services/draw/RenderedLabel.cpp:170:1: warning: ‘virtual const Ogre::Any& Ogre::Renderable::getUserAny() const’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /home/jpl/game/openDarkEngine/src/services/draw/DrawBuffer.h:31:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawSheet.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawService.h:33,
                 from /home/jpl/game/openDarkEngine/src/services/draw/RenderedLabel.cpp:25:
/usr/include/OGRE/OgreRenderable.h:349:44: note: declared here
         OGRE_DEPRECATED virtual const Any& getUserAny(void) const { return getUserObjectBindings().getUserAny(); }
                                            ^
/home/jpl/game/openDarkEngine/src/services/draw/RenderedLabel.cpp:170:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundLoadingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawOperation.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/RenderedLabel.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/RenderedLabel.cpp:24:
/usr/include/OGRE/OgreResource.h:93:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundLoadingComplete(Resource*) {}
                                 ^
/home/jpl/game/openDarkEngine/src/services/draw/RenderedLabel.cpp:170:1: warning: ‘virtual void Ogre::Resource::Listener::backgroundPreparingComplete(Ogre::Resource*)’ is deprecated [-Wdeprecated-declarations]
 }
 ^
In file included from /usr/include/OGRE/OgreTexture.h:33:0,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawCommon.h:35,
                 from /home/jpl/game/openDarkEngine/src/services/draw/DrawOperation.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/RenderedLabel.h:28,
                 from /home/jpl/game/openDarkEngine/src/services/draw/RenderedLabel.cpp:24:
/usr/include/OGRE/OgreResource.h:99:33: note: declared here
    OGRE_DEPRECATED virtual void backgroundPreparingComplete(Resource*) {}
                                 ^
CMakeFiles/Makefile2:694: recipe for target 'src/main/CMakeFiles/OpenDark.dir/all' failed
make[1]: *** [src/main/CMakeFiles/OpenDark.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Formatting

I think we can get rid of the leading whitespace in namespaces.
I'd also like to replace tabs with spaces.
Multi-line arguments in function headers/constructors should mean the curly brace on separate line.

Migration to Ogre 2.0

I think it is inevitable, so it may as well be done in advance (In a branch for example).

Portal visibility optimizations

  • All the portals/bsp nodes should be pretty much immutable for the rendering/visibility testing. This means we would have to store all the runtime data for portals per camera, which would then allow multiple cameras (needed for shadow rendering, for example)
    • may be done by setting unique sequential portal id in DarkSceneManager, and allocating a vector of screen space portal rectangles that will fit all portals in camera code.
  • portals currently allocate memory for on-screen projection (more specifically when doing clipByPlane in clipPortal and in refreshScreenRect) and I think this should be done differently, without any allocations, directly to on-screen rect.
  • frame number as a cache validity indicator is wrong. I think globally invalidating the camera's on-screen rects of all portals once the camera moves is a better idea. Maybe a validity bool that resets once camera moves and is set again after visible cell list is determined.

Buffer overflow (1 byte) in ObjectMeshLoader ?

From sourceforge (user JFRegnault):

In file "BinFormat.h", definition of "struct ObjPolygon" indicates 1 byte for :
int8_t data
But in file "ManualBinFileLoader.cpp", the function "ObjectMeshLoader::loadPolygons()" reads 2 bytes from the stream for this field :
mFile->readElem(&op.data, 2);
Maybe the 2nd byte is immediately overriden when reading next field "type", then we'd lose the 2nd byte for "data" field ?

Completion of physics service.

Now this one is a bit harder. The physics algorithms themself should not be that hard to deduce after getting the structures right, but collision detection was originally done on BSP trees of movable objects and the contact points generated may thus differ to ones we would get from a collision detection library.

Also, the choice on the collision detection library matters. Evaluation is needed.

Frame timing spikes

I need a better tool to track down the frame timing issues (to be easily seen in t1/miss2.mis starting position for example). Something tells me it is some kind of a lazy initialization, probably avalanches of object placement/lighting calculations etc. A tool that shows that exactly is needed.

Z-Fighting water

This needs fix. We're probably seeing it because the backface cull is disabled on the poly's material.

Window size change detection

SDL has SDL_WindowEvent in SDL_Event in case the window changed size/position...

We should notify render service about the fact the window changed size, render service would then notify ogre.

OGRE.pc lacks boost_thread and boost_system libs

So for now editing the /usr/lib/pkgconfig/OGRE.pc file is needed (adding -lboost_thread -lboost_system to Libs: section)

We could enforce the dep by adding it to TARGET_LINK_LIBRARIES but I will try to fix it in the OGRE's cmake scripts and do a pull request.

camera movement speed issues

What is wrong with the frame timing? The temporary camera code is very dependent on scene complexity. Maybe using absolute time instead of relative would help.

Object lighting problems

The object lights are not as stable as they should, and often depend on the camera's position.

We also have problems with spotlights, they are not 1:1 what they were in original Dark (attenuation, direction, range, power).

Loading/Displaying skeletal animation

We have documentation/source code from community on how the animation files (skeletal animations) are stored. I think in theory ogre's animation system is compatible, with one potential problem being translation data. Dark's animation data contain translation vectors in them, so walking animation also moves the character around (if I am not mistaken, it is some time I've looked at this).

This should also enable the dead bodies to rest in peace, and not in binding poses.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.