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);
 }
 
 

Reply via email to