Skip to content

Doesn't compile against MyGUI 3.4.0

I tried building against MyGUI 3.4.0 and ended up with these errors:

In file included from /build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:1:
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.hpp:15:22: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
   15 |         typedef std::shared_ptr<FadeOp> Ptr;
      |                      ^~~~~~~~~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.hpp:7:1: note: ‘std::shared_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
    6 | #include "windowbase.hpp"
  +++ |+#include <memory>
    7 | 
In file included from /build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:1:
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.hpp:67:28: error: ‘Ptr’ is not a member of ‘MWGui::FadeOp’
   67 |         std::deque<FadeOp::Ptr> mQueue;
      |                            ^~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.hpp:67:28: error: ‘Ptr’ is not a member of ‘MWGui::FadeOp’
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.hpp:67:31: error: template argument 1 is invalid
   67 |         std::deque<FadeOp::Ptr> mQueue;
      |                               ^
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.hpp:67:31: error: template argument 2 is invalid
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp: In member function ‘void MWGui::ScreenFader::onFrameStart(float)’:
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:114:21: error: request for member ‘empty’ in ‘((MWGui::ScreenFader*)this)->MWGui::ScreenFader::mQueue’, which is of non-class type ‘int’
  114 |         if (!mQueue.empty())
      |                     ^~~~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:116:25: error: request for member ‘front’ in ‘((MWGui::ScreenFader*)this)->MWGui::ScreenFader::mQueue’, which is of non-class type ‘int’
  116 |             if (!mQueue.front()->isRunning())
      |                         ^~~~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:117:24: error: request for member ‘front’ in ‘((MWGui::ScreenFader*)this)->MWGui::ScreenFader::mQueue’, which is of non-class type ‘int’
  117 |                 mQueue.front()->start();
      |                        ^~~~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:118:20: error: request for member ‘front’ in ‘((MWGui::ScreenFader*)this)->MWGui::ScreenFader::mQueue’, which is of non-class type ‘int’
  118 |             mQueue.front()->update(dt);
      |                    ^~~~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp: In member function ‘void MWGui::ScreenFader::queue(float, float, float)’:
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:172:16: error: request for member ‘push_back’ in ‘((MWGui::ScreenFader*)this)->MWGui::ScreenFader::mQueue’, which is of non-class type ‘int’
  172 |         mQueue.push_back(FadeOp::Ptr(new FadeOp(this, time, targetAlpha, delay)));
      |                ^~~~~~~~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:172:34: error: ‘Ptr’ is not a member of ‘MWGui::FadeOp’
  172 |         mQueue.push_back(FadeOp::Ptr(new FadeOp(this, time, targetAlpha, delay)));
      |                                  ^~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp: In member function ‘bool MWGui::ScreenFader::isEmpty()’:
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:177:23: error: request for member ‘empty’ in ‘((MWGui::ScreenFader*)this)->MWGui::ScreenFader::mQueue’, which is of non-class type ‘int’
  177 |         return mQueue.empty();
      |                       ^~~~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp: In member function ‘void MWGui::ScreenFader::clearQueue()’:
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:182:16: error: request for member ‘clear’ in ‘((MWGui::ScreenFader*)this)->MWGui::ScreenFader::mQueue’, which is of non-class type ‘int’
  182 |         mQueue.clear();
      |                ^~~~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp: In member function ‘void MWGui::ScreenFader::notifyOperationFinished()’:
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:200:17: error: ‘Ptr’ is not a member of ‘MWGui::FadeOp’
  200 |         FadeOp::Ptr op = mQueue.front();
      |                 ^~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:201:16: error: request for member ‘pop_front’ in ‘((MWGui::ScreenFader*)this)->MWGui::ScreenFader::mQueue’, which is of non-class type ‘int’
  201 |         mQueue.pop_front();
      |                ^~~~~~~~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:204:20: error: request for member ‘push_back’ in ‘((MWGui::ScreenFader*)this)->MWGui::ScreenFader::mQueue’, which is of non-class type ‘int’
  204 |             mQueue.push_back(op);
      |                    ^~~~~~~~~
/build/openmw/src/openmw-openmw-0.45.0/apps/openmw/mwgui/screenfader.cpp:204:30: error: ‘op’ was not declared in this scope
  204 |             mQueue.push_back(op);
      |                              ^~

Would be cool if this built properly against the most recent MyGUI release.