mirror of
				https://github.com/TES3MP/openmw-tes3mp.git
				synced 2025-11-04 01:56:47 +00:00 
			
		
		
		
	Merge pull request #437 from TES3MP/0.6.3 while resolving conflicts
This commit is contained in:
		
						commit
						7083cb0359
					
				
					 19 changed files with 121 additions and 67 deletions
				
			
		| 
						 | 
					@ -23,6 +23,7 @@ bool Launcher::AdvancedPage::loadSettings()
 | 
				
			||||||
    loadSettingBool(showEnchantChanceCheckBox, "show enchant chance", "Game");
 | 
					    loadSettingBool(showEnchantChanceCheckBox, "show enchant chance", "Game");
 | 
				
			||||||
    loadSettingBool(showMeleeInfoCheckBox, "show melee info", "Game");
 | 
					    loadSettingBool(showMeleeInfoCheckBox, "show melee info", "Game");
 | 
				
			||||||
    loadSettingBool(showProjectileDamageCheckBox, "show projectile damage", "Game");
 | 
					    loadSettingBool(showProjectileDamageCheckBox, "show projectile damage", "Game");
 | 
				
			||||||
 | 
					    loadSettingBool(rebalanceSoulGemValuesCheckBox, "rebalance soul gem values", "Game");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Expected values are (0, 1, 2, 3)
 | 
					    // Expected values are (0, 1, 2, 3)
 | 
				
			||||||
    int showOwnedIndex = mEngineSettings.getInt("show owned", "Game");
 | 
					    int showOwnedIndex = mEngineSettings.getInt("show owned", "Game");
 | 
				
			||||||
| 
						 | 
					@ -61,6 +62,7 @@ void Launcher::AdvancedPage::saveSettings()
 | 
				
			||||||
    saveSettingBool(showEnchantChanceCheckBox, "show enchant chance", "Game");
 | 
					    saveSettingBool(showEnchantChanceCheckBox, "show enchant chance", "Game");
 | 
				
			||||||
    saveSettingBool(showMeleeInfoCheckBox, "show melee info", "Game");
 | 
					    saveSettingBool(showMeleeInfoCheckBox, "show melee info", "Game");
 | 
				
			||||||
    saveSettingBool(showProjectileDamageCheckBox, "show projectile damage", "Game");
 | 
					    saveSettingBool(showProjectileDamageCheckBox, "show projectile damage", "Game");
 | 
				
			||||||
 | 
					    saveSettingBool(rebalanceSoulGemValuesCheckBox, "rebalance soul gem values", "Game");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    int showOwnedCurrentIndex = showOwnedComboBox->currentIndex();
 | 
					    int showOwnedCurrentIndex = showOwnedComboBox->currentIndex();
 | 
				
			||||||
    if (showOwnedCurrentIndex != mEngineSettings.getInt("show owned", "Game"))
 | 
					    if (showOwnedCurrentIndex != mEngineSettings.getInt("show owned", "Game"))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -261,7 +261,7 @@ LuaState::LuaState()
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    lua->set_function("setHour", [](double hour) {
 | 
					    lua->set_function("setHour", [](double hour) {
 | 
				
			||||||
        auto packet = mwmp::Networking::get().getWorldstatePacketController()->GetPacket(ID_GAME_TIME);
 | 
					        auto packet = mwmp::Networking::get().getWorldstatePacketController()->GetPacket(ID_WORLD_TIME);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        tempWorldstate.hour = hour;
 | 
					        tempWorldstate.hour = hour;
 | 
				
			||||||
        tempWorldstate.month = -1;
 | 
					        tempWorldstate.month = -1;
 | 
				
			||||||
| 
						 | 
					@ -277,7 +277,7 @@ LuaState::LuaState()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    lua->set_function("setMonth", [](int month) {
 | 
					    lua->set_function("setMonth", [](int month) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        auto packet = mwmp::Networking::get().getWorldstatePacketController()->GetPacket(ID_GAME_TIME);
 | 
					        auto packet = mwmp::Networking::get().getWorldstatePacketController()->GetPacket(ID_WORLD_TIME);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        tempWorldstate.hour = -1;
 | 
					        tempWorldstate.hour = -1;
 | 
				
			||||||
        tempWorldstate.month = month;
 | 
					        tempWorldstate.month = month;
 | 
				
			||||||
| 
						 | 
					@ -292,7 +292,7 @@ LuaState::LuaState()
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    lua->set_function("setDay", [](int day) {
 | 
					    lua->set_function("setDay", [](int day) {
 | 
				
			||||||
        auto packet = mwmp::Networking::get().getWorldstatePacketController()->GetPacket(ID_GAME_TIME);
 | 
					        auto packet = mwmp::Networking::get().getWorldstatePacketController()->GetPacket(ID_WORLD_TIME);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        tempWorldstate.hour = -1;
 | 
					        tempWorldstate.hour = -1;
 | 
				
			||||||
        tempWorldstate.month = -1;
 | 
					        tempWorldstate.month = -1;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -133,7 +133,7 @@ add_openmw_dir (mwmp/processors/object BaseObjectProcessor ProcessorConsoleComma
 | 
				
			||||||
    ProcessorScriptMemberFloat ProcessorScriptGlobalShort ProcessorScriptGlobalFloat
 | 
					    ProcessorScriptMemberFloat ProcessorScriptGlobalShort ProcessorScriptGlobalFloat
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_openmw_dir (mwmp/processors/worldstate ProcessorGameTime
 | 
					add_openmw_dir (mwmp/processors/worldstate ProcessorWorldTime
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Main executable
 | 
					# Main executable
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
#include "misc.hpp"
 | 
					#include "misc.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <components/esm/loadmisc.hpp>
 | 
					#include <components/esm/loadmisc.hpp>
 | 
				
			||||||
 | 
					#include <components/settings/settings.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../mwbase/environment.hpp"
 | 
					#include "../mwbase/environment.hpp"
 | 
				
			||||||
#include "../mwbase/world.hpp"
 | 
					#include "../mwbase/world.hpp"
 | 
				
			||||||
| 
						 | 
					@ -85,7 +86,22 @@ namespace MWClass
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            const ESM::Creature *creature = MWBase::Environment::get().getWorld()->getStore().get<ESM::Creature>().search(ref->mRef.getSoul());
 | 
					            const ESM::Creature *creature = MWBase::Environment::get().getWorld()->getStore().get<ESM::Creature>().search(ref->mRef.getSoul());
 | 
				
			||||||
            if (creature)
 | 
					            if (creature)
 | 
				
			||||||
                value *= creature->mData.mSoul;
 | 
					            {
 | 
				
			||||||
 | 
					                int soul = creature->mData.mSoul;
 | 
				
			||||||
 | 
					                if (Settings::Manager::getBool("rebalance soul gem values", "Game"))
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    // use the 'soul gem value rebalance' formula from the Morrowind Code Patch 
 | 
				
			||||||
 | 
					                    float soulValue = 0.0001 * pow(soul, 3) + 2 * soul;
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					                    // for Azura's star add the unfilled value
 | 
				
			||||||
 | 
					                    if (Misc::StringUtils::ciEqual(ptr.getCellRef().getRefId(), "Misc_SoulGem_Azura"))
 | 
				
			||||||
 | 
					                        value += soulValue;
 | 
				
			||||||
 | 
					                    else
 | 
				
			||||||
 | 
					                        value = soulValue;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else
 | 
				
			||||||
 | 
					                    value *= soul;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return value;
 | 
					        return value;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -124,7 +124,16 @@ namespace MWGui
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (int i=0; i<mDays*24; ++i)
 | 
					        for (int i=0; i<mDays*24; ++i)
 | 
				
			||||||
            MWBase::Environment::get().getMechanicsManager()->rest(true);
 | 
					            MWBase::Environment::get().getMechanicsManager()->rest(true);
 | 
				
			||||||
        MWBase::Environment::get().getWorld()->advanceTime(mDays * 24);
 | 
					
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					            Start of tes3mp change (major)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Multiplayer requires that time not get advanced here
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					        //MWBase::Environment::get().getWorld()->advanceTime(mDays * 24);
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					            End of tes3mp change (major)
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        std::set<int> skills;
 | 
					        std::set<int> skills;
 | 
				
			||||||
        for (int day=0; day<mDays; ++day)
 | 
					        for (int day=0; day<mDays; ++day)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -194,7 +194,16 @@ namespace MWGui
 | 
				
			||||||
        // advance time
 | 
					        // advance time
 | 
				
			||||||
        MWBase::Environment::get().getMechanicsManager()->rest(false);
 | 
					        MWBase::Environment::get().getMechanicsManager()->rest(false);
 | 
				
			||||||
        MWBase::Environment::get().getMechanicsManager()->rest(false);
 | 
					        MWBase::Environment::get().getMechanicsManager()->rest(false);
 | 
				
			||||||
        MWBase::Environment::get().getWorld ()->advanceTime (2);
 | 
					
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					            Start of tes3mp change (major)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Multiplayer requires that time not get advanced here
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					        //MWBase::Environment::get().getWorld ()->advanceTime (2);
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					            End of tes3mp change (major)
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        setVisible(false);
 | 
					        setVisible(false);
 | 
				
			||||||
        mProgressBar.setVisible(true);
 | 
					        mProgressBar.setVisible(true);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -177,7 +177,16 @@ namespace MWGui
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                MWBase::Environment::get().getMechanicsManager ()->rest (true);
 | 
					                MWBase::Environment::get().getMechanicsManager ()->rest (true);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            MWBase::Environment::get().getWorld()->advanceTime(hours);
 | 
					
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					                Start of tes3mp change (major)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                Multiplayer requires that time not get advanced here
 | 
				
			||||||
 | 
					            */
 | 
				
			||||||
 | 
					            //MWBase::Environment::get().getWorld()->advanceTime(hours);
 | 
				
			||||||
 | 
					            /*
 | 
				
			||||||
 | 
					                End of tes3mp change (major)
 | 
				
			||||||
 | 
					            */
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        MWBase::Environment::get().getWindowManager()->removeGuiMode(GM_Travel);
 | 
					        MWBase::Environment::get().getWindowManager()->removeGuiMode(GM_Travel);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -238,7 +238,16 @@ namespace MWGui
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        mProgressBar.setProgress(cur, total);
 | 
					        mProgressBar.setProgress(cur, total);
 | 
				
			||||||
        MWBase::Environment::get().getMechanicsManager()->rest(mSleeping);
 | 
					        MWBase::Environment::get().getMechanicsManager()->rest(mSleeping);
 | 
				
			||||||
        MWBase::Environment::get().getWorld()->advanceTime(1);
 | 
					
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					            Start of tes3mp change (major)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Multiplayer requires that time not get advanced here
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					        //MWBase::Environment::get().getWorld()->advanceTime(1);
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					            End of tes3mp change (major)
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
 | 
					        MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
 | 
				
			||||||
        if (player.getClass().getCreatureStats(player).isDead())
 | 
					        if (player.getClass().getCreatureStats(player).isDead())
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,7 +92,7 @@
 | 
				
			||||||
#include "actor/ProcessorActorTest.hpp"
 | 
					#include "actor/ProcessorActorTest.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "WorldstateProcessor.hpp"
 | 
					#include "WorldstateProcessor.hpp"
 | 
				
			||||||
#include "worldstate/ProcessorGameTime.hpp"
 | 
					#include "worldstate/ProcessorWorldTime.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using namespace mwmp;
 | 
					using namespace mwmp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -186,5 +186,5 @@ void ProcessorInitializer()
 | 
				
			||||||
    ActorProcessor::AddProcessor(new ProcessorActorStatsDynamic());
 | 
					    ActorProcessor::AddProcessor(new ProcessorActorStatsDynamic());
 | 
				
			||||||
    ActorProcessor::AddProcessor(new ProcessorActorTest());
 | 
					    ActorProcessor::AddProcessor(new ProcessorActorTest());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    WorldstateProcessor::AddProcessor(new ProcessorGameTime());
 | 
					    WorldstateProcessor::AddProcessor(new ProcessorWorldTime());
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
#ifndef OPENMW_PROCESSORGAMETIME_HPP
 | 
					#ifndef OPENMW_PROCESSORWORLDTIME_HPP
 | 
				
			||||||
#define OPENMW_PROCESSORGAMETIME_HPP
 | 
					#define OPENMW_PROCESSORWORLDTIME_HPP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <apps/openmw/mwbase/world.hpp>
 | 
					#include <apps/openmw/mwbase/world.hpp>
 | 
				
			||||||
| 
						 | 
					@ -8,12 +8,12 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace mwmp
 | 
					namespace mwmp
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    class ProcessorGameTime final : public WorldstateProcessor
 | 
					    class ProcessorWorldTime final : public WorldstateProcessor
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
    public:
 | 
					    public:
 | 
				
			||||||
        ProcessorGameTime()
 | 
					        ProcessorWorldTime()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            BPP_INIT(ID_GAME_TIME)
 | 
					            BPP_INIT(ID_WORLD_TIME)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        virtual void Do(WorldstatePacket &packet, BaseWorldstate &worldstate)
 | 
					        virtual void Do(WorldstatePacket &packet, BaseWorldstate &worldstate)
 | 
				
			||||||
| 
						 | 
					@ -34,4 +34,4 @@ namespace mwmp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //OPENMW_PROCESSORGAMETIME_HPP
 | 
					#endif //OPENMW_PROCESSORWORLDTIME_HPP
 | 
				
			||||||
| 
						 | 
					@ -198,7 +198,7 @@ add_component_dir (openmw-mp/Packets/Object
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_component_dir (openmw-mp/Packets/Worldstate
 | 
					add_component_dir (openmw-mp/Packets/Worldstate
 | 
				
			||||||
        WorldstatePacket
 | 
					        WorldstatePacket
 | 
				
			||||||
        PacketGameTime
 | 
					        PacketWorldTime
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_component_dir (fallback
 | 
					add_component_dir (fallback
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
#include "../Packets/Worldstate/PacketGameTime.hpp"
 | 
					#include "../Packets/Worldstate/PacketWorldTime.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "WorldstatePacketController.hpp"
 | 
					#include "WorldstatePacketController.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mwmp::WorldstatePacketController::WorldstatePacketController(RakNet::RakPeerInterface *peer)
 | 
					mwmp::WorldstatePacketController::WorldstatePacketController(RakNet::RakPeerInterface *peer)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    AddPacket<PacketGameTime>(&packets, peer);
 | 
					    AddPacket<PacketWorldTime>(&packets, peer);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@ enum GameMessages
 | 
				
			||||||
    ID_GUI_MESSAGEBOX,
 | 
					    ID_GUI_MESSAGEBOX,
 | 
				
			||||||
    ID_GUI_WINDOW,
 | 
					    ID_GUI_WINDOW,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ID_GAME_TIME,
 | 
					    ID_WORLD_TIME,
 | 
				
			||||||
    ID_GAME_WEATHER,
 | 
					    ID_GAME_WEATHER,
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    ID_PLAYER_BASEINFO,
 | 
					    ID_PLAYER_BASEINFO,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,17 +0,0 @@
 | 
				
			||||||
#ifndef OPENMW_PACKETGAMETIME_HPP
 | 
					 | 
				
			||||||
#define OPENMW_PACKETGAMETIME_HPP
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <components/openmw-mp/Packets/Worldstate/WorldstatePacket.hpp>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace mwmp
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    class PacketGameTime final : public WorldstatePacket
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
    public:
 | 
					 | 
				
			||||||
        PacketGameTime(RakNet::RakPeerInterface *peer);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        void Packet(RakNet::BitStream *bs, bool send) override;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif //OPENMW_PACKETGAMETIME_HPP
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,15 +1,15 @@
 | 
				
			||||||
#include "PacketGameTime.hpp"
 | 
					#include "PacketWorldTime.hpp"
 | 
				
			||||||
#include <components/openmw-mp/NetworkMessages.hpp>
 | 
					#include <components/openmw-mp/NetworkMessages.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using namespace mwmp;
 | 
					using namespace mwmp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PacketGameTime::PacketGameTime(RakNet::RakPeerInterface *peer) : WorldstatePacket(peer)
 | 
					PacketWorldTime::PacketWorldTime(RakNet::RakPeerInterface *peer) : WorldstatePacket(peer)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    packetID = ID_GAME_TIME;
 | 
					    packetID = ID_WORLD_TIME;
 | 
				
			||||||
    orderChannel = CHANNEL_SYSTEM;
 | 
					    orderChannel = CHANNEL_SYSTEM;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void PacketGameTime::Packet(RakNet::BitStream *bs, bool send)
 | 
					void PacketWorldTime::Packet(RakNet::BitStream *bs, bool send)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    WorldstatePacket::Packet(bs, send);
 | 
					    WorldstatePacket::Packet(bs, send);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										17
									
								
								components/openmw-mp/Packets/Worldstate/PacketWorldTime.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								components/openmw-mp/Packets/Worldstate/PacketWorldTime.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					#ifndef OPENMW_PACKETWORLDTIME_HPP
 | 
				
			||||||
 | 
					#define OPENMW_PACKETWORLDTIME_HPP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <components/openmw-mp/Packets/Worldstate/WorldstatePacket.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace mwmp
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    class PacketWorldTime : public WorldstatePacket
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    public:
 | 
				
			||||||
 | 
					        PacketWorldTime(RakNet::RakPeerInterface *peer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        virtual void Packet(RakNet::BitStream *bs, bool send);
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif //OPENMW_PACKETWORLDTIME_HPP
 | 
				
			||||||
| 
						 | 
					@ -189,35 +189,22 @@ public:
 | 
				
			||||||
        node->setViewDataMap(mViewDataMap);
 | 
					        node->setViewDataMap(mViewDataMap);
 | 
				
			||||||
        parent->addChild(node);
 | 
					        parent->addChild(node);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (center.x() - size > mMaxX
 | 
					        if (node->getSize() > mMinSize)
 | 
				
			||||||
                || center.x() + size < mMinX
 | 
					 | 
				
			||||||
                || center.y() - size > mMaxY
 | 
					 | 
				
			||||||
                || center.y() + size < mMinY )
 | 
					 | 
				
			||||||
            // Out of bounds of the actual terrain - this will happen because
 | 
					 | 
				
			||||||
            // we rounded the size up to the next power of two
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            // Still create and return an empty node so as to not break the assumption that each QuadTreeNode has either 4 or 0 children.
 | 
					 | 
				
			||||||
            return node;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (node->getSize() <= mMinSize)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            // We arrived at a leaf
 | 
					 | 
				
			||||||
            float minZ,maxZ;
 | 
					 | 
				
			||||||
            if (mStorage->getMinMaxHeights(size, center, minZ, maxZ))
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                float cellWorldSize = mStorage->getCellWorldSize();
 | 
					 | 
				
			||||||
                osg::BoundingBox boundingBox(osg::Vec3f((center.x()-size)*cellWorldSize, (center.y()-size)*cellWorldSize, minZ),
 | 
					 | 
				
			||||||
                                        osg::Vec3f((center.x()+size)*cellWorldSize, (center.y()+size)*cellWorldSize, maxZ));
 | 
					 | 
				
			||||||
                node->setBoundingBox(boundingBox);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            return node;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            addChildren(node);
 | 
					            addChildren(node);
 | 
				
			||||||
            return node;
 | 
					            return node;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // We arrived at a leaf
 | 
				
			||||||
 | 
					        float minZ, maxZ;
 | 
				
			||||||
 | 
					        mStorage->getMinMaxHeights(size, center, minZ, maxZ);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        float cellWorldSize = mStorage->getCellWorldSize();
 | 
				
			||||||
 | 
					        osg::BoundingBox boundingBox(osg::Vec3f((center.x()-size)*cellWorldSize, (center.y()-size)*cellWorldSize, minZ),
 | 
				
			||||||
 | 
					                                osg::Vec3f((center.x()+size)*cellWorldSize, (center.y()+size)*cellWorldSize, maxZ));
 | 
				
			||||||
 | 
					        node->setBoundingBox(boundingBox);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return node;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    osg::ref_ptr<RootNode> getRootNode()
 | 
					    osg::ref_ptr<RootNode> getRootNode()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -216,6 +216,9 @@ followers attack on sight = false
 | 
				
			||||||
# Can loot non-fighting actors during death animation
 | 
					# Can loot non-fighting actors during death animation
 | 
				
			||||||
can loot during death animation = true
 | 
					can loot during death animation = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Makes the value of filled soul gems dependent only on soul magnitude (with formula from the Morrowind Code Patch)
 | 
				
			||||||
 | 
					rebalance soul gem values = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[General]
 | 
					[General]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Anisotropy reduces distortion in textures at low angles (e.g. 0 to 16).
 | 
					# Anisotropy reduces distortion in textures at low angles (e.g. 0 to 16).
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -109,6 +109,16 @@
 | 
				
			||||||
            </property>
 | 
					            </property>
 | 
				
			||||||
           </widget>
 | 
					           </widget>
 | 
				
			||||||
          </item>
 | 
					          </item>
 | 
				
			||||||
 | 
					          <item>
 | 
				
			||||||
 | 
					           <widget class="QCheckBox" name="rebalanceSoulGemValuesCheckBox">
 | 
				
			||||||
 | 
					            <property name="toolTip">
 | 
				
			||||||
 | 
					             <string><html><head/><body><p>If this setting is true, the value of filled soul gems is dependent only on soul magnitude.</p><p>The default value is true.</p></body></html></string>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="text">
 | 
				
			||||||
 | 
					             <string>Rebalance soul gem values</string>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					           </widget>
 | 
				
			||||||
 | 
					          </item>
 | 
				
			||||||
          <item alignment="Qt::AlignLeft">
 | 
					          <item alignment="Qt::AlignLeft">
 | 
				
			||||||
           <widget class="QWidget" name="showOwnedGroup" native="true">
 | 
					           <widget class="QWidget" name="showOwnedGroup" native="true">
 | 
				
			||||||
            <property name="toolTip">
 | 
					            <property name="toolTip">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue