Hi,
I'm the Fedora package maintainer of funguloids. While still hoping that
someone had already ported funguloids to 1.9, google found this bug,
but alas no patch was available.
So I've written a patch myself. Which I've attached to this mail to avoid you
guys doing double work.
Regards,
Hans
--- funguloids/configure.ac 2014-06-08 17:51:44.423179835 +0200
+++ funguloids.new/configure.ac 2014-06-08 14:52:54.384959442 +0200
@@ -31,7 +31,7 @@
AC_CHECK_HEADERS([stdlib.h string.h sys/param.h wchar.h])
# OGRE ----------------------------------------------------
-PKG_CHECK_MODULES(OGRE, [OGRE >= 1.4])
+PKG_CHECK_MODULES(OGRE, [OGRE >= 1.9 OGRE-Overlay >= 1.9])
AC_SUBST(OGRE_CFLAGS)
AC_SUBST(OGRE_LIBS)
--- funguloids/include/game.h 2007-04-20 13:19:40.000000000 +0200
+++ funguloids.new/include/game.h 2014-06-08 14:52:54.385959417 +0200
@@ -27,6 +27,9 @@
#define GAME_H
#include "ogreapp.h"
+#include <Overlay/OgreOverlay.h>
+#include <Overlay/OgreOverlayManager.h>
+
#include "menu.h"
#include "SimpleIni.h"
--- funguloids/include/menu.h 2007-03-11 16:37:32.000000000 +0100
+++ funguloids.new/include/menu.h 2014-06-08 14:52:54.385959417 +0200
@@ -27,7 +27,8 @@
#define MENU_H
#include "ogreapp.h"
-#include <OgreTextAreaOverlayElement.h>
+#include <Overlay/OgreOverlay.h>
+#include <Overlay/OgreTextAreaOverlayElement.h>
class HiscoreList;
--- funguloids/include/mpakogre.h 2014-06-08 17:51:44.448178885 +0200
+++ funguloids.new/include/mpakogre.h 2014-06-08 14:52:54.385959417 +0200
@@ -79,7 +79,7 @@
virtual ~MPakArchiveFactory() {}
const String &getType(void) const;
- Archive *createInstance(const String &name) {
+ Archive *createInstance(const String &name, bool readOnly) {
return new MPakArchive(name, "MPK");
}
--- funguloids/include/ogreapp.h 2007-03-11 16:35:44.000000000 +0100
+++ funguloids.new/include/ogreapp.h 2014-06-08 17:48:54.510790299 +0200
@@ -28,6 +28,9 @@
#include <Ogre.h>
#include <OgreConfigFile.h>
+#include <Overlay/OgreOverlay.h>
+#include <Overlay/OgreOverlaySystem.h>
+
#include "ogrelistener.h"
using namespace Ogre;
@@ -39,6 +42,7 @@
OgreApplication() {
mFrameListener = 0;
mRoot = 0;
+ mOverlaySystem = 0;
}
virtual ~OgreApplication();
@@ -65,6 +69,7 @@
protected:
Root *mRoot;
+ OverlaySystem* mOverlaySystem;
Camera *mCamera;
SceneManager *mSceneMgr;
RenderWindow *mWindow;
--- funguloids/include/ogrelistener.h 2007-03-11 16:29:00.000000000 +0100
+++ funguloids.new/include/ogrelistener.h 2014-06-08 14:52:54.386959392 +0200
@@ -29,6 +29,7 @@
#include <Ogre.h>
#include <OgreStringConverter.h>
#include <OgreException.h>
+#include <Overlay/OgreOverlay.h>
#include "input.h"
--- funguloids/include/player.h 2007-04-16 01:31:39.000000000 +0200
+++ funguloids.new/include/player.h 2014-06-08 14:52:54.386959392 +0200
@@ -27,7 +27,8 @@
#define PLAYER_H
#include <Ogre.h>
-#include <OgreTextAreaOverlayElement.h>
+#include <Overlay/OgreOverlay.h>
+#include <Overlay/OgreTextAreaOverlayElement.h>
#include "movingobject.h"
#include "mushroom.h"
#include "soundsystem.h"
--- funguloids/include/soundsystem.h 2007-04-24 19:30:32.000000000 +0200
+++ funguloids.new/include/soundsystem.h 2014-06-08 14:52:54.386959392 +0200
@@ -66,7 +66,7 @@
if(!grp)
OGRE_EXCEPT(Exception::ERR_ITEM_NOT_FOUND, "Cannot locate a resource group called 'General'", "ResourceGroupManager::openResource");
- OGRE_LOCK_MUTEX(grp->OGRE_AUTO_MUTEX_NAME) // lock group mutex
+ OGRE_LOCK_MUTEX(grp->OGRE_AUTO_MUTEX_NAME); // lock group mutex
ResourceLocationIndex::iterator rit = grp->resourceIndexCaseSensitive.find(filename);
if(rit != grp->resourceIndexCaseSensitive.end()) {
// Found in the index
--- funguloids/src/hiscore.cpp 2007-05-04 12:56:12.000000000 +0200
+++ funguloids.new/src/hiscore.cpp 2014-06-08 17:47:39.772663131 +0200
@@ -28,7 +28,7 @@
#include <stdio.h>
#include "game.h"
#include "hiscore.h"
-#include <OgreTextAreaOverlayElement.h>
+#include <Overlay/OgreTextAreaOverlayElement.h>
// Global high score list
HiscoreList hiscoreList;
--- funguloids/src/menu.cpp 2007-05-04 12:53:37.000000000 +0200
+++ funguloids.new/src/menu.cpp 2014-06-08 17:47:39.772663131 +0200
@@ -28,7 +28,6 @@
#include "objectsystem.h"
#include "soundsystem.h"
#include "hiscore.h"
-#include <OgreTextAreaOverlayElement.h>
// Version string
--- funguloids/src/ogreapp.cpp 2014-06-08 17:51:44.431179531 +0200
+++ funguloids.new/src/ogreapp.cpp 2014-06-08 17:51:13.035451662 +0200
@@ -72,6 +72,8 @@
OGRE_CONFIG_AND_LOG_PATH + "Ogre.log"
);
+ mOverlaySystem = new OverlaySystem();
+
ConfigFile cfg;
cfg.load(String(OGRE_PLUGINS_AND_RESOURCES_PATH) + "plugins.cfg");
String pluginDir = cfg.getSetting("PluginFolder");
@@ -161,6 +163,9 @@
if(mFrameListener)
delete mFrameListener;
+ if (mOverlaySystem)
+ delete mOverlaySystem;
+
if(mRoot)
delete mRoot;
--- funguloids/src/scriptsystem.cpp 2014-06-08 17:51:44.455178619 +0200
+++ funguloids.new/src/scriptsystem.cpp 2014-06-08 17:47:39.772663131 +0200
@@ -67,7 +67,7 @@
if(!grp)
OGRE_EXCEPT(Exception::ERR_ITEM_NOT_FOUND, "Cannot locate a resource group called 'General'", "ResourceGroupManager::openResource");
- OGRE_LOCK_MUTEX(grp->OGRE_AUTO_MUTEX_NAME) // lock group mutex
+ OGRE_LOCK_MUTEX(grp->OGRE_AUTO_MUTEX_NAME); // lock group mutex
ResourceLocationIndex::iterator rit = grp->resourceIndexCaseSensitive.find(filename);
if(rit != grp->resourceIndexCaseSensitive.end()) {
// Found in the index
--- funguloids/src/game.cpp~ 2007-05-04 12:56:29.000000000 +0200
+++ funguloids/src/game.cpp 2014-06-08 20:35:50.365150966 +0200
@@ -206,6 +206,8 @@ void GameApplication::createScene() {
// Create the menus and go to the title screen
mMenu = new Menu(mSceneMgr);
mMenu->setMenu("TitleScreen");
+
+ mSceneMgr->addRenderQueueListener(mOverlaySystem);
}