mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-03 23:26:40 +00:00 
			
		
		
		
	Merge remote-tracking branch 'upstream/master'
This commit is contained in:
		
						commit
						cabf7ff8ba
					
				
					 8 changed files with 167 additions and 150 deletions
				
			
		| 
						 | 
					@ -186,6 +186,11 @@ endif (APPLE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Fix for not visible pthreads functions for linker with glibc 2.15 
 | 
				
			||||||
 | 
					if (UNIX AND NOT APPLE)
 | 
				
			||||||
 | 
					find_package (Threads)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
find_package(OGRE REQUIRED)
 | 
					find_package(OGRE REQUIRED)
 | 
				
			||||||
find_package(Boost REQUIRED COMPONENTS system filesystem program_options thread)
 | 
					find_package(Boost REQUIRED COMPONENTS system filesystem program_options thread)
 | 
				
			||||||
find_package(OIS REQUIRED)
 | 
					find_package(OIS REQUIRED)
 | 
				
			||||||
| 
						 | 
					@ -322,7 +327,7 @@ if(DPKG_PROGRAM)
 | 
				
			||||||
    SET(CPACK_DEBIAN_PACKAGE_NAME "openmw")
 | 
					    SET(CPACK_DEBIAN_PACKAGE_NAME "openmw")
 | 
				
			||||||
    SET(CPACK_DEBIAN_PACKAGE_VERSION "${VERSION_STRING}")
 | 
					    SET(CPACK_DEBIAN_PACKAGE_VERSION "${VERSION_STRING}")
 | 
				
			||||||
    SET(CPACK_PACKAGE_EXECUTABLES "openmw;OpenMW esmtool;Esmtool omwlauncher;OMWLauncher")
 | 
					    SET(CPACK_PACKAGE_EXECUTABLES "openmw;OpenMW esmtool;Esmtool omwlauncher;OMWLauncher")
 | 
				
			||||||
    SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libogre-1.7.3 (>= 1.7.3), libbullet0 (>= 2.77),  libboost-filesystem1.46.1 (>= 1.46.1), libboost-program-options1.46.1 (>= 1.46.1), libboost-system1.46.1 (>= 1.46.1), libboost-thread1.46.1 (>= 1.46.1), libc6 (>= 2.11.2), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:4.1.1), libmpg123-0 (>= 1.12.1), libois-1.3.0 (>= 1.3.0), libopenal1 (>= 1:1.12.854), libsndfile1 (>= 1.0.23), libstdc++6 (>= 4.4.5), libuuid1 (>= 2.17.2), libqtgui4 (>= 4.7.0)")
 | 
					    SET(CPACK_DEBIAN_PACKAGE_DEPENDS "nvidia-cg-toolkit (>= 2.1),  libboost-filesystem1.46.1 (>= 1.46.1), libboost-program-options1.46.1 (>= 1.46.1), libboost-system1.46.1 (>= 1.46.1), libboost-thread1.46.1 (>= 1.46.1), libc6 (>= 2.11.2), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:4.1.1), libmpg123-0 (>= 1.12.1), libois-1.3.0 (>= 1.3.0), libopenal1 (>= 1:1.12.854), libsndfile1 (>= 1.0.23), libstdc++6 (>= 4.4.5), libuuid1 (>= 2.17.2), libqtgui4 (>= 4.7.0)")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SET(CPACK_DEBIAN_PACKAGE_SECTION "Games")
 | 
					    SET(CPACK_DEBIAN_PACKAGE_SECTION "Games")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -342,6 +347,7 @@ if(WIN32)
 | 
				
			||||||
    FILE(GLOB files "${OpenMW_BINARY_DIR}/Release/*.*")
 | 
					    FILE(GLOB files "${OpenMW_BINARY_DIR}/Release/*.*")
 | 
				
			||||||
    INSTALL(FILES ${files} DESTINATION ".")
 | 
					    INSTALL(FILES ${files} DESTINATION ".")
 | 
				
			||||||
    INSTALL(FILES "${OpenMW_BINARY_DIR}/openmw.cfg.install" DESTINATION "." RENAME "openmw.cfg")
 | 
					    INSTALL(FILES "${OpenMW_BINARY_DIR}/openmw.cfg.install" DESTINATION "." RENAME "openmw.cfg")
 | 
				
			||||||
 | 
					    INSTALL(FILES "${OpenMW_SOURCE_DIR}/readme.txt" DESTINATION ".")
 | 
				
			||||||
    INSTALL(DIRECTORY "${OpenMW_BINARY_DIR}/resources" DESTINATION ".")
 | 
					    INSTALL(DIRECTORY "${OpenMW_BINARY_DIR}/resources" DESTINATION ".")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SET(CPACK_GENERATOR "NSIS")
 | 
					    SET(CPACK_GENERATOR "NSIS")
 | 
				
			||||||
| 
						 | 
					@ -352,6 +358,7 @@ if(WIN32)
 | 
				
			||||||
    SET(CPACK_PACKAGE_VERSION_MINOR ${OPENMW_VERSION_MINO})
 | 
					    SET(CPACK_PACKAGE_VERSION_MINOR ${OPENMW_VERSION_MINO})
 | 
				
			||||||
    SET(CPACK_PACKAGE_VERSION_PATCH ${OPENMW_VERSION_RELEASE})
 | 
					    SET(CPACK_PACKAGE_VERSION_PATCH ${OPENMW_VERSION_RELEASE})
 | 
				
			||||||
    SET(CPACK_PACKAGE_EXECUTABLES "openmw;OpenMW;esmtool;Esmtool;omwlauncher;OpenMW Launcher")
 | 
					    SET(CPACK_PACKAGE_EXECUTABLES "openmw;OpenMW;esmtool;Esmtool;omwlauncher;OpenMW Launcher")
 | 
				
			||||||
 | 
					    set(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '\$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Readme.lnk' '\$INSTDIR\\\\readme.txt'") 
 | 
				
			||||||
    SET(CPACK_PACKAGE_DESCRIPTION_FILE "${OpenMW_SOURCE_DIR}/readme.txt")
 | 
					    SET(CPACK_PACKAGE_DESCRIPTION_FILE "${OpenMW_SOURCE_DIR}/readme.txt")
 | 
				
			||||||
    SET(CPACK_RESOURCE_FILE_LICENSE "${OpenMW_SOURCE_DIR}/GPL3.txt")
 | 
					    SET(CPACK_RESOURCE_FILE_LICENSE "${OpenMW_SOURCE_DIR}/GPL3.txt")
 | 
				
			||||||
    SET(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
 | 
					    SET(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
 | 
				
			||||||
| 
						 | 
					@ -494,6 +501,7 @@ if (APPLE)
 | 
				
			||||||
    install(FILES "${OpenMW_BINARY_DIR}/openmw.cfg.install" RENAME "openmw.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
 | 
					    install(FILES "${OpenMW_BINARY_DIR}/openmw.cfg.install" RENAME "openmw.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    install(FILES "${OpenMW_BINARY_DIR}/plugins.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
 | 
					    install(FILES "${OpenMW_BINARY_DIR}/plugins.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
 | 
				
			||||||
 | 
					    install(FILES "${OpenMW_BINARY_DIR}/launcher.qss" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    set(CPACK_GENERATOR "DragNDrop")
 | 
					    set(CPACK_GENERATOR "DragNDrop")
 | 
				
			||||||
    set(CPACK_PACKAGE_VERSION ${OPENMW_VERSION})
 | 
					    set(CPACK_PACKAGE_VERSION ${OPENMW_VERSION})
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -222,10 +222,10 @@ void DataFilesPage::setupDataFiles()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        QMessageBox msgBox;
 | 
					        QMessageBox msgBox;
 | 
				
			||||||
        msgBox.setWindowTitle("Error detecting Morrowind installation");
 | 
					        msgBox.setWindowTitle("Error detecting Morrowind installation");
 | 
				
			||||||
        msgBox.setIcon(QMessageBox::Critical);
 | 
					        msgBox.setIcon(QMessageBox::Warning);
 | 
				
			||||||
        msgBox.setStandardButtons(QMessageBox::Cancel);
 | 
					        msgBox.setStandardButtons(QMessageBox::Cancel);
 | 
				
			||||||
        msgBox.setText(tr("<br><b>Could not find the Data Files location</b><br><br> \
 | 
					        msgBox.setText(tr("<br><b>Could not find the Data Files location</b><br><br> \
 | 
				
			||||||
        The directory containing the Data Files was not found.<br><br> \
 | 
					        The directory containing the data files was not found.<br><br> \
 | 
				
			||||||
        Press \"Browse...\" to specify the location manually.<br>"));
 | 
					        Press \"Browse...\" to specify the location manually.<br>"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        QAbstractButton *dirSelectButton =
 | 
					        QAbstractButton *dirSelectButton =
 | 
				
			||||||
| 
						 | 
					@ -279,6 +279,8 @@ void DataFilesPage::setupDataFiles()
 | 
				
			||||||
    const Files::MultiDirCollection &esp = fileCollections.getCollection(".esp");
 | 
					    const Files::MultiDirCollection &esp = fileCollections.getCollection(".esp");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (Files::MultiDirCollection::TIter iter(esp.begin()); iter!=esp.end(); ++iter) {
 | 
					    for (Files::MultiDirCollection::TIter iter(esp.begin()); iter!=esp.end(); ++iter) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
            ESMReader fileReader;
 | 
					            ESMReader fileReader;
 | 
				
			||||||
            QStringList availableMasters; // Will contain all found masters
 | 
					            QStringList availableMasters; // Will contain all found masters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -346,6 +348,11 @@ void DataFilesPage::setupDataFiles()
 | 
				
			||||||
                    currentItem->appendRow(child);
 | 
					                    currentItem->appendRow(child);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        } catch(std::runtime_error &e) {
 | 
				
			||||||
 | 
					            // An error occurred while reading the .esp
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    readConfig();
 | 
					    readConfig();
 | 
				
			||||||
| 
						 | 
					@ -1050,16 +1057,8 @@ void DataFilesPage::writeConfig(QString profile)
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Prepare the OpenMW config
 | 
					    // Open the OpenMW config as a QFile
 | 
				
			||||||
    QString config = QString::fromStdString((mCfgMgr.getLocalPath() / "openmw.cfg").string());
 | 
					    QFile file(QString::fromStdString((mCfgMgr.getUserPath() / "openmw.cfg").string()));
 | 
				
			||||||
    QFile file(config);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!file.exists()) {
 | 
					 | 
				
			||||||
        config = QString::fromStdString((mCfgMgr.getUserPath() / "openmw.cfg").string());
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Open the config as a QFile
 | 
					 | 
				
			||||||
    file.setFileName(config);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!file.open(QIODevice::ReadWrite | QIODevice::Text)) {
 | 
					    if (!file.open(QIODevice::ReadWrite | QIODevice::Text)) {
 | 
				
			||||||
        // File cannot be opened or created
 | 
					        // File cannot be opened or created
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,6 +92,11 @@ target_link_libraries(openmw
 | 
				
			||||||
    MyGUIOgrePlatform
 | 
					    MyGUIOgrePlatform
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Fix for not visible pthreads functions for linker with glibc 2.15 
 | 
				
			||||||
 | 
					if (UNIX AND NOT APPLE)
 | 
				
			||||||
 | 
					target_link_libraries(openmw ${CMAKE_THREAD_LIBS_INIT})
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(APPLE)
 | 
					if(APPLE)
 | 
				
			||||||
    find_library(CARBON_FRAMEWORK Carbon)
 | 
					    find_library(CARBON_FRAMEWORK Carbon)
 | 
				
			||||||
    target_link_libraries(openmw ${CARBON_FRAMEWORK})
 | 
					    target_link_libraries(openmw ${CARBON_FRAMEWORK})
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -145,8 +145,6 @@ namespace MWDialogue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bool DialogueManager::functionFilter(const MWWorld::Ptr& actor, const ESM::DialInfo& info,bool choice)
 | 
					    bool DialogueManager::functionFilter(const MWWorld::Ptr& actor, const ESM::DialInfo& info,bool choice)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        bool isAChoice = false;//is there any choice in the filters?
 | 
					 | 
				
			||||||
        bool isFunction = false;
 | 
					 | 
				
			||||||
        for (std::vector<ESM::DialInfo::SelectStruct>::const_iterator iter (info.selects.begin());
 | 
					        for (std::vector<ESM::DialInfo::SelectStruct>::const_iterator iter (info.selects.begin());
 | 
				
			||||||
            iter != info.selects.end(); ++iter)
 | 
					            iter != info.selects.end(); ++iter)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
| 
						 | 
					@ -154,7 +152,6 @@ namespace MWDialogue
 | 
				
			||||||
            char type = select.selectRule[1];
 | 
					            char type = select.selectRule[1];
 | 
				
			||||||
            if(type == '1')
 | 
					            if(type == '1')
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                isFunction = true;
 | 
					 | 
				
			||||||
                char comp = select.selectRule[4];
 | 
					                char comp = select.selectRule[4];
 | 
				
			||||||
                std::string name = select.selectRule.substr (5);
 | 
					                std::string name = select.selectRule.substr (5);
 | 
				
			||||||
                std::string function = select.selectRule.substr(2,2);
 | 
					                std::string function = select.selectRule.substr(2,2);
 | 
				
			||||||
| 
						 | 
					@ -193,7 +190,7 @@ namespace MWDialogue
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                case 50://choice
 | 
					                case 50://choice
 | 
				
			||||||
                    isAChoice = true;
 | 
					
 | 
				
			||||||
                    if(choice)
 | 
					                    if(choice)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if(!selectCompare<int,int>(comp,mChoice,select.i)) return false;
 | 
					                        if(!selectCompare<int,int>(comp,mChoice,select.i)) return false;
 | 
				
			||||||
| 
						 | 
					@ -516,7 +513,6 @@ namespace MWDialogue
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // TODO check DATAstruct
 | 
					        // TODO check DATAstruct
 | 
				
			||||||
 | 
					 | 
				
			||||||
        for (std::vector<ESM::DialInfo::SelectStruct>::const_iterator iter (info.selects.begin());
 | 
					        for (std::vector<ESM::DialInfo::SelectStruct>::const_iterator iter (info.selects.begin());
 | 
				
			||||||
            iter != info.selects.end(); ++iter)
 | 
					            iter != info.selects.end(); ++iter)
 | 
				
			||||||
            if (!isMatching (actor, *iter))
 | 
					            if (!isMatching (actor, *iter))
 | 
				
			||||||
| 
						 | 
					@ -680,7 +676,8 @@ namespace MWDialogue
 | 
				
			||||||
    void DialogueManager::updateTopics()
 | 
					    void DialogueManager::updateTopics()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        std::list<std::string> keywordList;
 | 
					        std::list<std::string> keywordList;
 | 
				
			||||||
 | 
					        int choice = mChoice;
 | 
				
			||||||
 | 
					        mChoice = -1;
 | 
				
			||||||
        actorKnownTopics.clear();
 | 
					        actorKnownTopics.clear();
 | 
				
			||||||
        MWGui::DialogueWindow* win = mEnvironment.mWindowManager->getDialogueWindow();
 | 
					        MWGui::DialogueWindow* win = mEnvironment.mWindowManager->getDialogueWindow();
 | 
				
			||||||
        ESMS::RecListT<ESM::Dialogue>::MapType dialogueList = mEnvironment.mWorld->getStore().dialogs.list;
 | 
					        ESMS::RecListT<ESM::Dialogue>::MapType dialogueList = mEnvironment.mWorld->getStore().dialogs.list;
 | 
				
			||||||
| 
						 | 
					@ -692,7 +689,7 @@ namespace MWDialogue
 | 
				
			||||||
                for (std::vector<ESM::DialInfo>::const_iterator iter (it->second.mInfo.begin());
 | 
					                for (std::vector<ESM::DialInfo>::const_iterator iter (it->second.mInfo.begin());
 | 
				
			||||||
                    iter!=it->second.mInfo.end(); ++iter)
 | 
					                    iter!=it->second.mInfo.end(); ++iter)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    if (isMatching (mActor, *iter) && functionFilter(mActor,*iter,false))
 | 
					                    if (isMatching (mActor, *iter) && functionFilter(mActor,*iter,true))
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                         actorKnownTopics.push_back(it->first);
 | 
					                         actorKnownTopics.push_back(it->first);
 | 
				
			||||||
                        //does the player know the topic?
 | 
					                        //does the player know the topic?
 | 
				
			||||||
| 
						 | 
					@ -706,6 +703,7 @@ namespace MWDialogue
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        win->setKeywords(keywordList);
 | 
					        win->setKeywords(keywordList);
 | 
				
			||||||
 | 
					        mChoice = choice;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void DialogueManager::keywordSelected(std::string keyword)
 | 
					    void DialogueManager::keywordSelected(std::string keyword)
 | 
				
			||||||
| 
						 | 
					@ -715,10 +713,9 @@ namespace MWDialogue
 | 
				
			||||||
            if(mDialogueMap.find(keyword) != mDialogueMap.end())
 | 
					            if(mDialogueMap.find(keyword) != mDialogueMap.end())
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                ESM::Dialogue ndialogue = mDialogueMap[keyword];
 | 
					                ESM::Dialogue ndialogue = mDialogueMap[keyword];
 | 
				
			||||||
                std::vector<ESM::DialInfo>::const_iterator iter;
 | 
					 | 
				
			||||||
                if(ndialogue.type == ESM::Dialogue::Topic)
 | 
					                if(ndialogue.type == ESM::Dialogue::Topic)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    for (iter  = ndialogue.mInfo.begin();
 | 
					                    for (std::vector<ESM::DialInfo>::const_iterator iter  = ndialogue.mInfo.begin();
 | 
				
			||||||
                        iter!=ndialogue.mInfo.end(); ++iter)
 | 
					                        iter!=ndialogue.mInfo.end(); ++iter)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (isMatching (mActor, *iter) && functionFilter(mActor,*iter,true))
 | 
					                        if (isMatching (mActor, *iter) && functionFilter(mActor,*iter,true))
 | 
				
			||||||
| 
						 | 
					@ -742,6 +739,7 @@ namespace MWDialogue
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        updateTopics();
 | 
					        updateTopics();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,9 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../mwworld/environment.hpp"
 | 
					#include "../mwworld/environment.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../mwgui/window_manager.hpp"
 | 
				
			||||||
 | 
					#include "../mwgui/messagebox.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace MWDialogue
 | 
					namespace MWDialogue
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    Quest& Journal::getQuest (const std::string& id)
 | 
					    Quest& Journal::getQuest (const std::string& id)
 | 
				
			||||||
| 
						 | 
					@ -34,6 +37,10 @@ namespace MWDialogue
 | 
				
			||||||
        Quest& quest = getQuest (id);
 | 
					        Quest& quest = getQuest (id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        quest.addEntry (entry, *mEnvironment.mWorld); // we are doing slicing on purpose here
 | 
					        quest.addEntry (entry, *mEnvironment.mWorld); // we are doing slicing on purpose here
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        std::vector<std::string> empty;
 | 
				
			||||||
 | 
					        std::string notification = "Your Journal has been updated.";
 | 
				
			||||||
 | 
					        mEnvironment.mWindowManager->messageBox (notification, empty);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void Journal::setJournalIndex (const std::string& id, int index)
 | 
					    void Journal::setJournalIndex (const std::string& id, int index)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,8 +57,6 @@ void MessageBoxManager::onFrame (float frameDuration)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void MessageBoxManager::createMessageBox (const std::string& message)
 | 
					void MessageBoxManager::createMessageBox (const std::string& message)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    std::cout << "MessageBox: " << message << std::endl;
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    MessageBox *box = new MessageBox(*this, message);
 | 
					    MessageBox *box = new MessageBox(*this, message);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    removeMessageBox(message.length()*mMessageBoxSpeed, box);
 | 
					    removeMessageBox(message.length()*mMessageBoxSpeed, box);
 | 
				
			||||||
| 
						 | 
					@ -387,8 +385,3 @@ int InteractiveMessageBox::readPressedButton ()
 | 
				
			||||||
    mButtonPressed = -1;
 | 
					    mButtonPressed = -1;
 | 
				
			||||||
    return pressed;
 | 
					    return pressed;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -272,6 +272,7 @@ WeatherManager::WeatherManager(MWRender::RenderingManager* rendering, Environmen
 | 
				
			||||||
    blight.mAmbientLoopSoundID = "blight";
 | 
					    blight.mAmbientLoopSoundID = "blight";
 | 
				
			||||||
    mWeatherSettings["blight"] = blight;
 | 
					    mWeatherSettings["blight"] = blight;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
    Weather snow;
 | 
					    Weather snow;
 | 
				
			||||||
    snow.mCloudTexture = "tx_bm_sky_snow.dds";
 | 
					    snow.mCloudTexture = "tx_bm_sky_snow.dds";
 | 
				
			||||||
    snow.mCloudsMaximumPercent = 1.0;
 | 
					    snow.mCloudsMaximumPercent = 1.0;
 | 
				
			||||||
| 
						 | 
					@ -328,6 +329,7 @@ WeatherManager::WeatherManager(MWRender::RenderingManager* rendering, Environmen
 | 
				
			||||||
    blizzard.mGlareView = 0;
 | 
					    blizzard.mGlareView = 0;
 | 
				
			||||||
    blizzard.mAmbientLoopSoundID = "BM Blizzard";
 | 
					    blizzard.mAmbientLoopSoundID = "BM Blizzard";
 | 
				
			||||||
    mWeatherSettings["blizzard"] = blizzard;
 | 
					    mWeatherSettings["blizzard"] = blizzard;
 | 
				
			||||||
 | 
					    */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void WeatherManager::setWeather(const String& weather, bool instant)
 | 
					void WeatherManager::setWeather(const String& weather, bool instant)
 | 
				
			||||||
| 
						 | 
					@ -509,32 +511,32 @@ void WeatherManager::update(float duration)
 | 
				
			||||||
                float thunder = region->data.thunder/255.f;
 | 
					                float thunder = region->data.thunder/255.f;
 | 
				
			||||||
                float ash = region->data.ash/255.f;
 | 
					                float ash = region->data.ash/255.f;
 | 
				
			||||||
                float blight = region->data.blight/255.f;
 | 
					                float blight = region->data.blight/255.f;
 | 
				
			||||||
                float snow = region->data.a/255.f;
 | 
					                //float snow = region->data.a/255.f;
 | 
				
			||||||
                float blizzard = region->data.b/255.f;
 | 
					                //float blizzard = region->data.b/255.f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // re-scale to 100 percent
 | 
					                // re-scale to 100 percent
 | 
				
			||||||
                const float total = clear+cloudy+foggy+overcast+rain+thunder+ash+blight+snow+blizzard;
 | 
					                const float total = clear+cloudy+foggy+overcast+rain+thunder+ash+blight;//+snow+blizzard;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                srand(time(NULL));
 | 
					                srand(time(NULL));
 | 
				
			||||||
                float random = ((rand()%100)/100.f) * total;
 | 
					                float random = ((rand()%100)/100.f) * total;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (random >= snow+blight+ash+thunder+rain+overcast+foggy+cloudy+clear)
 | 
					                //if (random > snow+blight+ash+thunder+rain+overcast+foggy+cloudy+clear)
 | 
				
			||||||
                    weather = "blizzard";
 | 
					                //    weather = "blizzard";
 | 
				
			||||||
                else if (random >= blight+ash+thunder+rain+overcast+foggy+cloudy+clear)
 | 
					                //else if (random > blight+ash+thunder+rain+overcast+foggy+cloudy+clear)
 | 
				
			||||||
                    weather = "snow";
 | 
					                //    weather = "snow";
 | 
				
			||||||
                else if (random >= ash+thunder+rain+overcast+foggy+cloudy+clear)
 | 
					                /*else*/ if (random > ash+thunder+rain+overcast+foggy+cloudy+clear)
 | 
				
			||||||
                    weather = "blight";
 | 
					                    weather = "blight";
 | 
				
			||||||
                else if (random >= thunder+rain+overcast+foggy+cloudy+clear)
 | 
					                else if (random > thunder+rain+overcast+foggy+cloudy+clear)
 | 
				
			||||||
                    weather = "ashstorm";
 | 
					                    weather = "ashstorm";
 | 
				
			||||||
                else if (random >= rain+overcast+foggy+cloudy+clear)
 | 
					                else if (random > rain+overcast+foggy+cloudy+clear)
 | 
				
			||||||
                    weather = "thunderstorm";
 | 
					                    weather = "thunderstorm";
 | 
				
			||||||
                else if (random >= overcast+foggy+cloudy+clear)
 | 
					                else if (random > overcast+foggy+cloudy+clear)
 | 
				
			||||||
                    weather = "rain";
 | 
					                    weather = "rain";
 | 
				
			||||||
                else if (random >= foggy+cloudy+clear)
 | 
					                else if (random > foggy+cloudy+clear)
 | 
				
			||||||
                    weather = "overcast";
 | 
					                    weather = "overcast";
 | 
				
			||||||
                else if (random >= cloudy+clear)
 | 
					                else if (random > cloudy+clear)
 | 
				
			||||||
                    weather = "foggy";
 | 
					                    weather = "foggy";
 | 
				
			||||||
                else if (random >= clear)
 | 
					                else if (random > clear)
 | 
				
			||||||
                    weather = "cloudy";
 | 
					                    weather = "cloudy";
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                    weather = "clear";
 | 
					                    weather = "clear";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -93,6 +93,7 @@ CREDITS
 | 
				
			||||||
Current Developers:
 | 
					Current Developers:
 | 
				
			||||||
Alexander “Ace” Olofsson
 | 
					Alexander “Ace” Olofsson
 | 
				
			||||||
athile
 | 
					athile
 | 
				
			||||||
 | 
					BrotherBrick
 | 
				
			||||||
Cris “Mirceam” Mihalache
 | 
					Cris “Mirceam” Mihalache
 | 
				
			||||||
gugus / gus
 | 
					gugus / gus
 | 
				
			||||||
Jacob “Yacoby” Essex
 | 
					Jacob “Yacoby” Essex
 | 
				
			||||||
| 
						 | 
					@ -104,6 +105,7 @@ Marc “Zini” Zinnschlag
 | 
				
			||||||
Michael “werdanith” Papageorgiou
 | 
					Michael “werdanith” Papageorgiou
 | 
				
			||||||
Nikolay “corristo” Kasyanov
 | 
					Nikolay “corristo” Kasyanov
 | 
				
			||||||
Pieter “pvdk” van der Kloet
 | 
					Pieter “pvdk” van der Kloet
 | 
				
			||||||
 | 
					Roman "Kromgart" Melnik
 | 
				
			||||||
Sebastian “swick” Wick
 | 
					Sebastian “swick” Wick
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Retired Developers:
 | 
					Retired Developers:
 | 
				
			||||||
| 
						 | 
					@ -134,12 +136,15 @@ Bug #179: Pressing space in console triggers activation
 | 
				
			||||||
Bug #186: CMake doesn't use the debug versions of Ogre libraries on Linux
 | 
					Bug #186: CMake doesn't use the debug versions of Ogre libraries on Linux
 | 
				
			||||||
Bug #189: ASCII 16 character added to console on it's activation on Mac OS X
 | 
					Bug #189: ASCII 16 character added to console on it's activation on Mac OS X
 | 
				
			||||||
Bug #190: Case Folding fails with music files
 | 
					Bug #190: Case Folding fails with music files
 | 
				
			||||||
 | 
					Bug #192: Keypresses write Text into Console no matter which gui element is active
 | 
				
			||||||
Bug #196: Collision shapes out of place
 | 
					Bug #196: Collision shapes out of place
 | 
				
			||||||
Bug #202: ESMTool doesn't not work with localised ESM files anymore
 | 
					Bug #202: ESMTool doesn't not work with localised ESM files anymore
 | 
				
			||||||
Bug #203: Torch lights only visible on short distance
 | 
					Bug #203: Torch lights only visible on short distance
 | 
				
			||||||
Bug #207: Ogre.log not written
 | 
					Bug #207: Ogre.log not written
 | 
				
			||||||
Bug #209: Sounds do not play
 | 
					Bug #209: Sounds do not play
 | 
				
			||||||
Bug #210: Ogre crash at Dren plantation
 | 
					Bug #210: Ogre crash at Dren plantation
 | 
				
			||||||
 | 
					Bug #214: Unsupported file format version
 | 
				
			||||||
 | 
					Bug #222: Launcher is writing openmw.cfg file to wrong location
 | 
				
			||||||
Feature #9: NPC Dialogue Window
 | 
					Feature #9: NPC Dialogue Window
 | 
				
			||||||
Feature #16/42: New sky/weather implementation
 | 
					Feature #16/42: New sky/weather implementation
 | 
				
			||||||
Feature #40: Fading
 | 
					Feature #40: Fading
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue