mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-19 20:23:54 +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