mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-16 18:19:55 +00:00
OpenMW compiles and runs w/o render window
This commit is contained in:
parent
12f27123f2
commit
4e69e7cc0f
55 changed files with 534 additions and 1286 deletions
|
@ -328,9 +328,6 @@ endif (APPLE)
|
|||
configure_file(${OpenMW_SOURCE_DIR}/files/settings-default.cfg
|
||||
"${OpenMW_BINARY_DIR}/settings-default.cfg")
|
||||
|
||||
configure_file(${OpenMW_SOURCE_DIR}/files/transparency-overrides.cfg
|
||||
"${OpenMW_BINARY_DIR}/transparency-overrides.cfg")
|
||||
|
||||
configure_file(${OpenMW_SOURCE_DIR}/files/openmw.cfg.local
|
||||
"${OpenMW_BINARY_DIR}/openmw.cfg")
|
||||
|
||||
|
@ -433,7 +430,6 @@ IF(NOT WIN32 AND NOT APPLE)
|
|||
|
||||
# Install global configuration files
|
||||
INSTALL(FILES "${OpenMW_BINARY_DIR}/settings-default.cfg" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw")
|
||||
INSTALL(FILES "${OpenMW_BINARY_DIR}/transparency-overrides.cfg" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw")
|
||||
INSTALL(FILES "${OpenMW_BINARY_DIR}/openmw.cfg.install" DESTINATION "${SYSCONFDIR}" RENAME "openmw.cfg" COMPONENT "openmw")
|
||||
INSTALL(FILES "${OpenMW_BINARY_DIR}/gamecontrollerdb.txt" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw")
|
||||
|
||||
|
@ -456,7 +452,6 @@ if(WIN32)
|
|||
"${OpenMW_SOURCE_DIR}/Docs/license/GPL3.txt"
|
||||
"${OpenMW_SOURCE_DIR}/Docs/license/DejaVu Font License.txt"
|
||||
"${OpenMW_BINARY_DIR}/settings-default.cfg"
|
||||
"${OpenMW_BINARY_DIR}/transparency-overrides.cfg"
|
||||
"${OpenMW_BINARY_DIR}/gamecontrollerdb.txt"
|
||||
"${OpenMW_BINARY_DIR}/Release/openmw.exe"
|
||||
DESTINATION ".")
|
||||
|
@ -549,7 +544,7 @@ add_subdirectory(libs/openengine)
|
|||
# Extern
|
||||
#add_subdirectory (extern/shiny)
|
||||
#add_subdirectory (extern/ogre-ffmpeg-videoplayer)
|
||||
#add_subdirectory (extern/oics)
|
||||
add_subdirectory (extern/oics)
|
||||
#add_subdirectory (extern/sdl4ogre)
|
||||
|
||||
# Components
|
||||
|
@ -714,7 +709,6 @@ if (APPLE)
|
|||
install(FILES "${OpenMW_BINARY_DIR}/openmw.cfg.install" RENAME "openmw.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
|
||||
install(FILES "${OpenMW_BINARY_DIR}/settings-default.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
|
||||
install(FILES "${OpenMW_BINARY_DIR}/gamecontrollerdb.txt" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
|
||||
install(FILES "${OpenMW_BINARY_DIR}/transparency-overrides.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
|
||||
install(FILES "${OpenMW_BINARY_DIR}/opencs.ini" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
|
||||
|
||||
set(CPACK_GENERATOR "DragNDrop")
|
||||
|
|
|
@ -20,15 +20,16 @@ set(GAME_HEADER
|
|||
source_group(game FILES ${GAME} ${GAME_HEADER})
|
||||
|
||||
add_openmw_dir (mwrender
|
||||
renderingmanager debugging sky camera animation npcanimation creatureanimation activatoranimation
|
||||
actors objects renderinginterface localmap occlusionquery water shadows
|
||||
characterpreview globalmap ripplesimulation refraction
|
||||
terrainstorage renderconst effectmanager weaponanimation
|
||||
actors objects
|
||||
# renderingmanager debugging sky camera animation npcanimation creatureanimation activatoranimation
|
||||
# renderinginterface localmap occlusionquery water shadows
|
||||
# characterpreview globalmap ripplesimulation refraction
|
||||
# terrainstorage renderconst effectmanager weaponanimation
|
||||
)
|
||||
|
||||
add_openmw_dir (mwinput
|
||||
inputmanagerimp
|
||||
)
|
||||
#add_openmw_dir (mwinput
|
||||
# inputmanagerimp
|
||||
# )
|
||||
|
||||
add_openmw_dir (mwgui
|
||||
textinput widgets race class birth review windowmanagerimp console dialogue
|
||||
|
@ -57,16 +58,18 @@ add_openmw_dir (mwscript
|
|||
)
|
||||
|
||||
add_openmw_dir (mwsound
|
||||
soundmanagerimp openal_output ffmpeg_decoder sound sound_decoder sound_output loudness libavwrapper movieaudiofactory
|
||||
soundmanagerimp openal_output ffmpeg_decoder sound sound_decoder sound_output loudness libavwrapper
|
||||
# movieaudiofactory
|
||||
)
|
||||
|
||||
add_openmw_dir (mwworld
|
||||
refdata worldimp physicssystem scene globals class action nullaction actionteleport
|
||||
refdata worldimp scene globals class action nullaction actionteleport
|
||||
containerstore actiontalk actiontake manualref player cellfunctors failedaction
|
||||
cells localscripts customdata weather inventorystore ptr actionopen actionread
|
||||
cells localscripts customdata inventorystore ptr actionopen actionread
|
||||
actionequip timestamp actionalchemy cellstore actionapply actioneat
|
||||
esmstore store recordcmp fallback actionrepair actionsoulgem livecellref actiondoor
|
||||
contentloader esmloader actiontrap cellreflist projectilemanager cellref
|
||||
contentloader esmloader actiontrap cellreflist cellref physicssystem
|
||||
# weather projectilemanager
|
||||
)
|
||||
|
||||
add_openmw_dir (mwclass
|
||||
|
@ -75,10 +78,11 @@ add_openmw_dir (mwclass
|
|||
)
|
||||
|
||||
add_openmw_dir (mwmechanics
|
||||
mechanicsmanagerimp stat character creaturestats magiceffects movement actors objects
|
||||
mechanicsmanagerimp stat creaturestats magiceffects movement
|
||||
drawstate spells activespells npcstats aipackage aisequence aipursue alchemy aiwander aitravel aifollow aiavoiddoor
|
||||
aiescort aiactivate aicombat repair enchanting pathfinding pathgrid security spellsuccess spellcasting
|
||||
disease pickpocket levelledlist combat steering obstacle autocalcspell difficultyscaling aicombataction actor summoning
|
||||
# character actors objects
|
||||
)
|
||||
|
||||
add_openmw_dir (mwstate
|
||||
|
@ -133,9 +137,7 @@ target_link_libraries(openmw
|
|||
${MYGUI_LIBRARIES}
|
||||
${SDL2_LIBRARY}
|
||||
${MYGUI_PLATFORM_LIBRARIES}
|
||||
"ogre-ffmpeg-videoplayer"
|
||||
"oics"
|
||||
"sdl4ogre"
|
||||
components
|
||||
)
|
||||
|
||||
|
|
|
@ -14,17 +14,14 @@
|
|||
|
||||
#include <components/compiler/extensions0.hpp>
|
||||
|
||||
#include <components/bsa/resources.hpp>
|
||||
#include <components/files/configurationmanager.hpp>
|
||||
#include <components/translation/translation.hpp>
|
||||
#include <components/nifoverrides/nifoverrides.hpp>
|
||||
|
||||
#include <components/nifbullet/bulletnifloader.hpp>
|
||||
#include <components/nifogre/ogrenifloader.hpp>
|
||||
|
||||
#include <components/esm/loadcell.hpp>
|
||||
|
||||
#include "mwinput/inputmanagerimp.hpp"
|
||||
//#include "mwinput/inputmanagerimp.hpp"
|
||||
|
||||
#include "mwgui/windowmanagerimp.hpp"
|
||||
|
||||
|
@ -86,12 +83,12 @@ bool OMW::Engine::frameRenderingQueued (const Ogre::FrameEvent& evt)
|
|||
mEnvironment.setFrameDuration (frametime);
|
||||
|
||||
// update input
|
||||
MWBase::Environment::get().getInputManager()->update(frametime, false);
|
||||
//MWBase::Environment::get().getInputManager()->update(frametime, false);
|
||||
|
||||
// When the window is minimized, pause everything. Currently this *has* to be here to work around a MyGUI bug.
|
||||
// If we are not currently rendering, then RenderItems will not be reused resulting in a memory leak upon changing widget textures.
|
||||
if (!mOgre->getWindow()->isActive() || !mOgre->getWindow()->isVisible())
|
||||
return true;
|
||||
//if (!mOgre->getWindow()->isActive() || !mOgre->getWindow()->isVisible())
|
||||
// return true;
|
||||
|
||||
// sound
|
||||
if (mUseSound)
|
||||
|
@ -157,11 +154,12 @@ bool OMW::Engine::frameRenderingQueued (const Ogre::FrameEvent& evt)
|
|||
if (MWBase::Environment::get().getStateManager()->getState()!=
|
||||
MWBase::StateManager::State_NoGame)
|
||||
{
|
||||
#if 0
|
||||
Ogre::RenderWindow* window = mOgre->getWindow();
|
||||
unsigned int tri, batch;
|
||||
MWBase::Environment::get().getWorld()->getTriangleBatchCount(tri, batch);
|
||||
MWBase::Environment::get().getWindowManager()->wmUpdateFps(window->getLastFPS(), tri, batch);
|
||||
|
||||
#endif
|
||||
MWBase::Environment::get().getWindowManager()->update();
|
||||
}
|
||||
}
|
||||
|
@ -210,11 +208,8 @@ OMW::Engine::Engine(Files::ConfigurationManager& configurationManager)
|
|||
|
||||
OMW::Engine::~Engine()
|
||||
{
|
||||
if (mOgre)
|
||||
mOgre->restoreWindowGammaRamp();
|
||||
mEnvironment.cleanup();
|
||||
delete mScriptContext;
|
||||
delete mOgre;
|
||||
SDL_Quit();
|
||||
}
|
||||
|
||||
|
@ -223,14 +218,10 @@ OMW::Engine::~Engine()
|
|||
|
||||
void OMW::Engine::addResourcesDirectory (const boost::filesystem::path& path)
|
||||
{
|
||||
mOgre->getRoot()->addResourceLocation (path.string(), "FileSystem",
|
||||
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, true);
|
||||
}
|
||||
|
||||
void OMW::Engine::addZipResource (const boost::filesystem::path& path)
|
||||
{
|
||||
mOgre->getRoot()->addResourceLocation (path.string(), "Zip",
|
||||
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, false);
|
||||
}
|
||||
|
||||
void OMW::Engine::enableFSStrict(bool fsStrict)
|
||||
|
@ -299,19 +290,6 @@ std::string OMW::Engine::loadSettings (Settings::Manager & settings)
|
|||
if (boost::filesystem::exists(settingspath))
|
||||
settings.loadUser(settingspath);
|
||||
|
||||
// load nif overrides
|
||||
NifOverrides::Overrides nifOverrides;
|
||||
std::string transparencyOverrides = "/transparency-overrides.cfg";
|
||||
std::string materialOverrides = "/material-overrides.cfg";
|
||||
if (boost::filesystem::exists(mCfgMgr.getLocalPath().string() + transparencyOverrides))
|
||||
nifOverrides.loadTransparencyOverrides(mCfgMgr.getLocalPath().string() + transparencyOverrides);
|
||||
else if (boost::filesystem::exists(mCfgMgr.getGlobalPath().string() + transparencyOverrides))
|
||||
nifOverrides.loadTransparencyOverrides(mCfgMgr.getGlobalPath().string() + transparencyOverrides);
|
||||
if (boost::filesystem::exists(mCfgMgr.getLocalPath().string() + materialOverrides))
|
||||
nifOverrides.loadMaterialOverrides(mCfgMgr.getLocalPath().string() + materialOverrides);
|
||||
else if (boost::filesystem::exists(mCfgMgr.getGlobalPath().string() + materialOverrides))
|
||||
nifOverrides.loadMaterialOverrides(mCfgMgr.getGlobalPath().string() + materialOverrides);
|
||||
|
||||
return settingspath;
|
||||
}
|
||||
|
||||
|
@ -330,13 +308,6 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
|
|||
#endif
|
||||
}
|
||||
|
||||
mOgre = new OEngine::Render::OgreRenderer;
|
||||
|
||||
mOgre->configure(
|
||||
mCfgMgr.getLogPath().string(),
|
||||
renderSystem,
|
||||
Settings::Manager::getString("opengl rtt mode", "Video"));
|
||||
|
||||
// This has to be added BEFORE MyGUI is initialized, as it needs
|
||||
// to find core.xml here.
|
||||
|
||||
|
@ -361,9 +332,7 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
|
|||
SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS,
|
||||
settings.getBool("minimize on focus loss", "Video") ? "1" : "0");
|
||||
|
||||
mOgre->createWindow("OpenMW", windowSettings);
|
||||
|
||||
Bsa::registerResources (mFileCollections, mArchives, true, mFSStrict);
|
||||
//Bsa::registerResources (mFileCollections, mArchives, true, mFSStrict);
|
||||
|
||||
// Create input and UI first to set up a bootstrapping environment for
|
||||
// showing a loading screen and keeping the window responsive while doing so
|
||||
|
@ -390,19 +359,17 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
|
|||
else
|
||||
gameControllerdb = ""; //if it doesn't exist, pass in an empty string
|
||||
|
||||
MWInput::InputManager* input = new MWInput::InputManager (*mOgre, *this, keybinderUser, keybinderUserExists, gameControllerdb, mGrab);
|
||||
mEnvironment.setInputManager (input);
|
||||
//MWInput::InputManager* input = new MWInput::InputManager (*mOgre, *this, keybinderUser, keybinderUserExists, gameControllerdb, mGrab);
|
||||
//mEnvironment.setInputManager (input);
|
||||
|
||||
MWGui::WindowManager* window = new MWGui::WindowManager(
|
||||
mExtensions, mOgre, mCfgMgr.getLogPath().string() + std::string("/"),
|
||||
mExtensions, NULL, mCfgMgr.getLogPath().string() + std::string("/"),
|
||||
mCfgMgr.getCachePath ().string(), mScriptConsoleMode, mTranslationDataStorage, mEncoding, mExportFonts, mFallbackMap);
|
||||
mEnvironment.setWindowManager (window);
|
||||
|
||||
// Create sound system
|
||||
mEnvironment.setSoundManager (new MWSound::SoundManager(mUseSound));
|
||||
|
||||
mOgre->setWindowGammaContrast(Settings::Manager::getFloat("gamma", "General"), Settings::Manager::getFloat("contrast", "General"));
|
||||
|
||||
if (!mSkipMenu)
|
||||
{
|
||||
std::string logo = mFallbackMap["Movies_Company_Logo"];
|
||||
|
@ -411,11 +378,11 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
|
|||
}
|
||||
|
||||
// Create the world
|
||||
mEnvironment.setWorld( new MWWorld::World (*mOgre, mFileCollections, mContentFiles,
|
||||
mEnvironment.setWorld( new MWWorld::World (mFileCollections, mContentFiles,
|
||||
mResDir, mCfgMgr.getCachePath(), mEncoder, mFallbackMap,
|
||||
mActivationDistanceOverride, mCellName, mStartupScript));
|
||||
MWBase::Environment::get().getWorld()->setupPlayer();
|
||||
input->setPlayer(&mEnvironment.getWorld()->getPlayer());
|
||||
//input->setPlayer(&mEnvironment.getWorld()->getPlayer());
|
||||
|
||||
window->initUI();
|
||||
window->renderWorldMap();
|
||||
|
@ -443,7 +410,7 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
|
|||
mEnvironment.setJournal (new MWDialogue::Journal);
|
||||
mEnvironment.setDialogueManager (new MWDialogue::DialogueManager (mExtensions, mVerboseScripts, mTranslationDataStorage));
|
||||
|
||||
mOgre->getRoot()->addFrameListener (this);
|
||||
//mOgre->getRoot()->addFrameListener (this);
|
||||
|
||||
// scripts
|
||||
if (mCompileAll)
|
||||
|
@ -473,7 +440,7 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
|
|||
void OMW::Engine::go()
|
||||
{
|
||||
assert (!mContentFiles.empty());
|
||||
assert (!mOgre);
|
||||
//assert (!mOgre);
|
||||
|
||||
Settings::Manager settings;
|
||||
std::string settingspath;
|
||||
|
@ -514,6 +481,7 @@ void OMW::Engine::go()
|
|||
}
|
||||
|
||||
// Start the main rendering loop
|
||||
/*
|
||||
Ogre::Timer timer;
|
||||
while (!MWBase::Environment::get().getStateManager()->hasQuitRequest())
|
||||
{
|
||||
|
@ -523,6 +491,8 @@ void OMW::Engine::go()
|
|||
timer.reset();
|
||||
Ogre::Root::getSingleton().renderOneFrame(dt);
|
||||
}
|
||||
*/
|
||||
|
||||
// Save user settings
|
||||
settings.saveUser(settingspath);
|
||||
|
||||
|
@ -577,7 +547,7 @@ void OMW::Engine::screenshot()
|
|||
|
||||
} while (boost::filesystem::exists(stream.str()));
|
||||
|
||||
mOgre->screenshot(stream.str(), format);
|
||||
//mOgre->screenshot(stream.str(), format);
|
||||
}
|
||||
|
||||
void OMW::Engine::setCompileAll (bool all)
|
||||
|
|
|
@ -98,7 +98,7 @@ namespace OMW
|
|||
bool mScriptBlacklistUse;
|
||||
bool mNewGame;
|
||||
|
||||
Nif::Cache mNifCache;
|
||||
//Nif::Cache mNifCache;
|
||||
|
||||
// not implemented
|
||||
Engine (const Engine&);
|
||||
|
|
|
@ -163,17 +163,17 @@ namespace MWClass
|
|||
|
||||
void Creature::insertObjectRendering (const MWWorld::Ptr& ptr, const std::string& model, MWRender::RenderingInterface& renderingInterface) const
|
||||
{
|
||||
MWWorld::LiveCellRef<ESM::Creature> *ref = ptr.get<ESM::Creature>();
|
||||
//MWWorld::LiveCellRef<ESM::Creature> *ref = ptr.get<ESM::Creature>();
|
||||
|
||||
MWRender::Actors& actors = renderingInterface.getActors();
|
||||
actors.insertCreature(ptr, model, (ref->mBase->mFlags & ESM::Creature::Weapon) != 0);
|
||||
//MWRender::Actors& actors = renderingInterface.getActors();
|
||||
//actors.insertCreature(ptr, model, (ref->mBase->mFlags & ESM::Creature::Weapon) != 0);
|
||||
}
|
||||
|
||||
void Creature::insertObject(const MWWorld::Ptr& ptr, const std::string& model, MWWorld::PhysicsSystem& physics) const
|
||||
{
|
||||
if(!model.empty())
|
||||
{
|
||||
physics.addActor(ptr, model);
|
||||
//physics.addActor(ptr, model);
|
||||
if (getCreatureStats(ptr).isDead())
|
||||
MWBase::Environment::get().getWorld()->enableActorCollision(ptr, false);
|
||||
}
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
|
||||
#include <memory>
|
||||
|
||||
#include <OgreSceneNode.h>
|
||||
|
||||
#include <openengine/misc/rng.hpp>
|
||||
|
||||
#include <components/esm/loadmgef.hpp>
|
||||
|
@ -1151,9 +1149,9 @@ namespace MWClass
|
|||
if (ptr.getClass().getNpcStats(ptr).isWerewolf()
|
||||
&& ptr.getClass().getCreatureStats(ptr).getStance(MWMechanics::CreatureStats::Stance_Run))
|
||||
{
|
||||
MWMechanics::WeaponType weaponType = MWMechanics::WeapType_None;
|
||||
MWMechanics::getActiveWeapon(ptr.getClass().getCreatureStats(ptr), ptr.getClass().getInventoryStore(ptr), &weaponType);
|
||||
if (weaponType == MWMechanics::WeapType_None)
|
||||
//MWMechanics::WeaponType weaponType = MWMechanics::WeapType_None;
|
||||
//MWMechanics::getActiveWeapon(ptr.getClass().getCreatureStats(ptr), ptr.getClass().getInventoryStore(ptr), &weaponType);
|
||||
//if (weaponType == MWMechanics::WeapType_None)
|
||||
return "";
|
||||
}
|
||||
|
||||
|
|
|
@ -183,7 +183,7 @@ namespace MWGui
|
|||
const ESM::BirthSign *birth =
|
||||
store.get<ESM::BirthSign>().find(mCurrentBirthId);
|
||||
|
||||
mBirthImage->setImageTexture(Misc::ResourceHelpers::correctTexturePath(birth->mTexture));
|
||||
//mBirthImage->setImageTexture(Misc::ResourceHelpers::correctTexturePath(birth->mTexture));
|
||||
|
||||
std::vector<std::string> abilities, powers, spells;
|
||||
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
#include <MyGUI_RotatingSkin.h>
|
||||
#include <MyGUI_Gui.h>
|
||||
|
||||
#include <OgreMath.h>
|
||||
|
||||
namespace MWGui
|
||||
{
|
||||
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
#include "formatting.hpp"
|
||||
|
||||
#include <OgreUTFString.h>
|
||||
#include <OgreResourceGroupManager.h>
|
||||
|
||||
#include <MyGUI_EditText.h>
|
||||
#include <MyGUI_Gui.h>
|
||||
#include <MyGUI_EditBox.h>
|
||||
|
@ -466,7 +463,7 @@ namespace MWGui
|
|||
MyGUI::IntCoord(left, pag.getCurrentTop(), width, mImageHeight), MyGUI::Align::Left | MyGUI::Align::Top,
|
||||
parent->getName() + MyGUI::utility::toString(parent->getChildCount()));
|
||||
|
||||
std::string image = Misc::ResourceHelpers::correctBookartPath(src, width, mImageHeight);
|
||||
std::string image;// = Misc::ResourceHelpers::correctBookartPath(src, width, mImageHeight);
|
||||
mImageBox->setImageTexture(image);
|
||||
mImageBox->setProperty("NeedMouse", "false");
|
||||
}
|
||||
|
|
|
@ -448,7 +448,7 @@ namespace MWGui
|
|||
std::string icon = effect->mIcon;
|
||||
int slashPos = icon.rfind('\\');
|
||||
icon.insert(slashPos+1, "b_");
|
||||
icon = Misc::ResourceHelpers::correctIconPath(icon);
|
||||
//icon = Misc::ResourceHelpers::correctIconPath(icon);
|
||||
|
||||
mSpellImage->setItem(MWWorld::Ptr());
|
||||
mSpellImage->setIcon(icon);
|
||||
|
|
|
@ -53,7 +53,9 @@ namespace MWGui
|
|||
, mTrading(false)
|
||||
, mLastXSize(0)
|
||||
, mLastYSize(0)
|
||||
#if 0
|
||||
, mPreview(new MWRender::InventoryPreview(MWBase::Environment::get().getWorld ()->getPlayerPtr()))
|
||||
#endif
|
||||
, mPreviewDirty(true)
|
||||
, mPreviewResize(true)
|
||||
, mDragAndDrop(dragAndDrop)
|
||||
|
@ -118,10 +120,10 @@ namespace MWGui
|
|||
MyGUI::ITexture* tex = MyGUI::RenderManager::getInstance().getTexture("CharacterPreview");
|
||||
if (tex)
|
||||
MyGUI::RenderManager::getInstance().destroyTexture(tex);
|
||||
|
||||
#if 0
|
||||
mPreview.reset(new MWRender::InventoryPreview(mPtr));
|
||||
mPreview->setup();
|
||||
|
||||
#endif
|
||||
mPreviewDirty = true;
|
||||
mPreviewResize = true;
|
||||
}
|
||||
|
@ -481,6 +483,8 @@ namespace MWGui
|
|||
|
||||
MWWorld::Ptr InventoryWindow::getAvatarSelectedItem(int x, int y)
|
||||
{
|
||||
return MWWorld::Ptr();
|
||||
#if 0
|
||||
int slot = mPreview->getSlotSelected (x, y);
|
||||
|
||||
if (slot == -1)
|
||||
|
@ -499,6 +503,7 @@ namespace MWGui
|
|||
}
|
||||
|
||||
return MWWorld::Ptr();
|
||||
#endif
|
||||
}
|
||||
|
||||
void InventoryWindow::updateEncumbranceBar()
|
||||
|
@ -526,6 +531,7 @@ namespace MWGui
|
|||
|
||||
void InventoryWindow::doRenderUpdate ()
|
||||
{
|
||||
#if 0
|
||||
mPreview->onFrame();
|
||||
|
||||
if (mPreviewResize || mPreviewDirty)
|
||||
|
@ -552,6 +558,7 @@ namespace MWGui
|
|||
|
||||
mAvatarImage->setImageTexture("CharacterPreview");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void InventoryWindow::notifyContentChanged()
|
||||
|
@ -668,6 +675,8 @@ namespace MWGui
|
|||
|
||||
void InventoryWindow::rebuildAvatar()
|
||||
{
|
||||
#if 0
|
||||
mPreview->rebuild();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ namespace MWGui
|
|||
|
||||
void ItemWidget::setIcon(const MWWorld::Ptr &ptr)
|
||||
{
|
||||
setIcon(Misc::ResourceHelpers::correctIconPath(ptr.getClass().getInventoryIcon(ptr)));
|
||||
//setIcon(Misc::ResourceHelpers::correctIconPath(ptr.getClass().getInventoryIcon(ptr)));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -212,6 +212,7 @@ namespace MWGui
|
|||
|
||||
void LocalMapBase::applyFogOfWar()
|
||||
{
|
||||
#if 0
|
||||
for (int mx=0; mx<3; ++mx)
|
||||
{
|
||||
for (int my=0; my<3; ++my)
|
||||
|
@ -225,6 +226,7 @@ namespace MWGui
|
|||
: "");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
redraw();
|
||||
}
|
||||
|
||||
|
@ -338,6 +340,7 @@ namespace MWGui
|
|||
mDoorMarkerWidgets.clear();
|
||||
|
||||
// Update the map textures
|
||||
#if 0
|
||||
for (int mx=0; mx<3; ++mx)
|
||||
{
|
||||
for (int my=0; my<3; ++my)
|
||||
|
@ -354,7 +357,7 @@ namespace MWGui
|
|||
box->setImageTexture("black.png");
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
MWBase::World* world = MWBase::Environment::get().getWorld();
|
||||
|
||||
// Retrieve the door markers we want to show
|
||||
|
@ -558,7 +561,7 @@ namespace MWGui
|
|||
, LocalMapBase(customMarkers)
|
||||
, mGlobal(false)
|
||||
, mGlobalMap(0)
|
||||
, mGlobalMapRender(0)
|
||||
//, mGlobalMapRender(0)
|
||||
, mEditNoteDialog()
|
||||
, mEventBoxGlobal(NULL)
|
||||
, mEventBoxLocal(NULL)
|
||||
|
@ -705,18 +708,19 @@ namespace MWGui
|
|||
|
||||
void MapWindow::renderGlobalMap(Loading::Listener* loadingListener)
|
||||
{
|
||||
#if 0
|
||||
mGlobalMapRender = new MWRender::GlobalMap("");
|
||||
mGlobalMapRender->render(loadingListener);
|
||||
mGlobalMap->setCanvasSize (mGlobalMapRender->getWidth(), mGlobalMapRender->getHeight());
|
||||
mGlobalMapImage->setSize(mGlobalMapRender->getWidth(), mGlobalMapRender->getHeight());
|
||||
|
||||
mGlobalMapImage->setImageTexture("GlobalMap.png");
|
||||
mGlobalMapOverlay->setImageTexture("GlobalMapOverlay");
|
||||
#endif
|
||||
}
|
||||
|
||||
MapWindow::~MapWindow()
|
||||
{
|
||||
delete mGlobalMapRender;
|
||||
//delete mGlobalMapRender;
|
||||
}
|
||||
|
||||
void MapWindow::setCellName(const std::string& cellName)
|
||||
|
@ -726,6 +730,7 @@ namespace MWGui
|
|||
|
||||
void MapWindow::addVisitedLocation(const std::string& name, int x, int y)
|
||||
{
|
||||
#if 0
|
||||
CellId cell;
|
||||
cell.first = x;
|
||||
cell.second = y;
|
||||
|
@ -752,6 +757,7 @@ namespace MWGui
|
|||
markerWidget->eventMouseDrag += MyGUI::newDelegate(this, &MapWindow::onMouseDrag);
|
||||
markerWidget->eventMouseButtonPressed += MyGUI::newDelegate(this, &MapWindow::onDragStart);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void MapWindow::cellExplored(int x, int y)
|
||||
|
@ -763,10 +769,12 @@ namespace MWGui
|
|||
{
|
||||
LocalMapBase::onFrame(dt);
|
||||
|
||||
#if 0
|
||||
for (std::vector<CellId>::iterator it = mQueuedToExplore.begin(); it != mQueuedToExplore.end(); ++it)
|
||||
{
|
||||
mGlobalMapRender->exploreCell(it->first, it->second);
|
||||
}
|
||||
#endif
|
||||
mQueuedToExplore.clear();
|
||||
|
||||
NoDrop::onFrame(dt);
|
||||
|
@ -823,12 +831,14 @@ namespace MWGui
|
|||
|
||||
void MapWindow::globalMapUpdatePlayer ()
|
||||
{
|
||||
#if 0
|
||||
// For interiors, position is set by WindowManager via setGlobalMapPlayerPosition
|
||||
if (MWBase::Environment::get().getWorld ()->isCellExterior ())
|
||||
{
|
||||
Ogre::Vector3 pos = MWBase::Environment::get().getWorld ()->getPlayerPtr().getRefData ().getBaseNode ()->_getDerivedPosition ();
|
||||
setGlobalMapPlayerPosition(pos.x, pos.y);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void MapWindow::notifyPlayerUpdate ()
|
||||
|
@ -838,6 +848,7 @@ namespace MWGui
|
|||
|
||||
void MapWindow::setGlobalMapPlayerPosition(float worldX, float worldY)
|
||||
{
|
||||
#if 0
|
||||
float x, y;
|
||||
mGlobalMapRender->worldPosToImageSpace (worldX, worldY, x, y);
|
||||
x *= mGlobalMapRender->getWidth();
|
||||
|
@ -849,6 +860,7 @@ namespace MWGui
|
|||
MyGUI::IntSize viewsize = mGlobalMap->getSize();
|
||||
MyGUI::IntPoint viewoffs(static_cast<int>(viewsize.width * 0.5f - x), static_cast<int>(viewsize.height *0.5 - y));
|
||||
mGlobalMap->setViewOffset(viewoffs);
|
||||
#endif
|
||||
}
|
||||
|
||||
void MapWindow::setGlobalMapPlayerDir(const float x, const float y)
|
||||
|
@ -863,7 +875,8 @@ namespace MWGui
|
|||
void MapWindow::clear()
|
||||
{
|
||||
mMarkers.clear();
|
||||
mGlobalMapRender->clear();
|
||||
|
||||
//mGlobalMapRender->clear();
|
||||
mChanged = true;
|
||||
|
||||
while (mEventBoxGlobal->getChildCount())
|
||||
|
@ -872,6 +885,7 @@ namespace MWGui
|
|||
|
||||
void MapWindow::write(ESM::ESMWriter &writer, Loading::Listener& progress)
|
||||
{
|
||||
#if 0
|
||||
ESM::GlobalMap map;
|
||||
mGlobalMapRender->write(map);
|
||||
|
||||
|
@ -880,10 +894,12 @@ namespace MWGui
|
|||
writer.startRecord(ESM::REC_GMAP);
|
||||
map.save(writer);
|
||||
writer.endRecord(ESM::REC_GMAP);
|
||||
#endif
|
||||
}
|
||||
|
||||
void MapWindow::readRecord(ESM::ESMReader &reader, uint32_t type)
|
||||
{
|
||||
#if 0
|
||||
if (type == ESM::REC_GMAP)
|
||||
{
|
||||
ESM::GlobalMap map;
|
||||
|
@ -898,6 +914,7 @@ namespace MWGui
|
|||
addVisitedLocation(cell->mName, it->first, it->second);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void MapWindow::setAlpha(float alpha)
|
||||
|
|
|
@ -216,7 +216,7 @@ namespace MWGui
|
|||
MyGUI::Button* mEventBoxGlobal;
|
||||
MyGUI::Button* mEventBoxLocal;
|
||||
|
||||
MWRender::GlobalMap* mGlobalMapRender;
|
||||
//MWRender::GlobalMap* mGlobalMapRender;
|
||||
|
||||
EditNoteDialog mEditNoteDialog;
|
||||
ESM::CustomMarker mEditingMarker;
|
||||
|
|
|
@ -245,7 +245,7 @@ namespace MWGui
|
|||
std::string path = effect->mIcon;
|
||||
int slashPos = path.rfind('\\');
|
||||
path.insert(slashPos+1, "b_");
|
||||
path = Misc::ResourceHelpers::correctIconPath(path);
|
||||
//path = Misc::ResourceHelpers::correctIconPath(path);
|
||||
|
||||
button->setFrame("textures\\menu_icon_select_magic.dds", MyGUI::IntCoord(2, 2, 40, 40));
|
||||
button->setIcon(path);
|
||||
|
|
|
@ -125,18 +125,19 @@ namespace MWGui
|
|||
updateSkills();
|
||||
updateSpellPowers();
|
||||
|
||||
mPreview.reset(NULL);
|
||||
//mPreview.reset(NULL);
|
||||
|
||||
mPreviewImage->setImageTexture("");
|
||||
|
||||
const std::string textureName = "CharacterHeadPreview";
|
||||
MyGUI::RenderManager::getInstance().destroyTexture(MyGUI::RenderManager::getInstance().getTexture(textureName));
|
||||
|
||||
mPreview.reset(new MWRender::RaceSelectionPreview());
|
||||
mPreview->setup();
|
||||
mPreview->update (mCurrentAngle);
|
||||
//mPreview.reset(new MWRender::RaceSelectionPreview());
|
||||
//mPreview->setup();
|
||||
//mPreview->update (mCurrentAngle);
|
||||
|
||||
const ESM::NPC proto = mPreview->getPrototype();
|
||||
//const ESM::NPC& proto = mPreview->getPrototype();
|
||||
ESM::NPC proto;
|
||||
setRaceId(proto.mRace);
|
||||
recountParts();
|
||||
|
||||
|
@ -184,7 +185,7 @@ namespace MWGui
|
|||
mPreviewImage->setImageTexture("");
|
||||
const std::string textureName = "CharacterHeadPreview";
|
||||
MyGUI::RenderManager::getInstance().destroyTexture(MyGUI::RenderManager::getInstance().getTexture(textureName));
|
||||
mPreview.reset(NULL);
|
||||
//mPreview.reset(NULL);
|
||||
}
|
||||
|
||||
// widget controls
|
||||
|
@ -204,7 +205,7 @@ namespace MWGui
|
|||
void RaceDialog::onHeadRotate(MyGUI::ScrollBar* scroll, size_t _position)
|
||||
{
|
||||
float angle = (float(_position) / (scroll->getScrollRange()-1) - 0.5f) * 3.14f * 2;
|
||||
mPreview->update (angle);
|
||||
//mPreview->update (angle);
|
||||
mPreviewDirty = true;
|
||||
mCurrentAngle = angle;
|
||||
}
|
||||
|
@ -316,7 +317,7 @@ namespace MWGui
|
|||
|
||||
void RaceDialog::updatePreview()
|
||||
{
|
||||
ESM::NPC record = mPreview->getPrototype();
|
||||
ESM::NPC record;// = mPreview->getPrototype();
|
||||
record.mRace = mCurrentRaceId;
|
||||
record.setIsMale(mGenderIndex == 0);
|
||||
|
||||
|
@ -325,7 +326,7 @@ namespace MWGui
|
|||
|
||||
try
|
||||
{
|
||||
mPreview->setPrototype(record);
|
||||
//mPreview->setPrototype(record);
|
||||
}
|
||||
catch (std::exception& e)
|
||||
{
|
||||
|
@ -337,13 +338,13 @@ namespace MWGui
|
|||
|
||||
void RaceDialog::doRenderUpdate()
|
||||
{
|
||||
if (!mPreview.get())
|
||||
//if (!mPreview.get())
|
||||
return;
|
||||
|
||||
mPreview->onFrame();
|
||||
//mPreview->onFrame();
|
||||
if (mPreviewDirty)
|
||||
{
|
||||
mPreview->render();
|
||||
//mPreview->render();
|
||||
mPreviewDirty = false;
|
||||
}
|
||||
}
|
||||
|
@ -450,6 +451,8 @@ namespace MWGui
|
|||
|
||||
const ESM::NPC& RaceDialog::getResult() const
|
||||
{
|
||||
return mPreview->getPrototype();
|
||||
static ESM::NPC result;
|
||||
return result;
|
||||
//return mPreview->getPrototype();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -108,7 +108,7 @@ namespace MWGui
|
|||
|
||||
float mCurrentAngle;
|
||||
|
||||
std::auto_ptr<MWRender::RaceSelectionPreview> mPreview;
|
||||
//std::auto_ptr<MWRender::RaceSelectionPreview> mPreview;
|
||||
|
||||
bool mPreviewDirty;
|
||||
};
|
||||
|
|
|
@ -358,7 +358,7 @@ namespace MWGui
|
|||
<< " " << hour << " " << (pm ? "#{sSaveMenuHelp05}" : "#{sSaveMenuHelp04}");
|
||||
|
||||
mInfoText->setCaptionWithReplacing(text.str());
|
||||
|
||||
#if 0
|
||||
// Decode screenshot
|
||||
std::vector<char> data = mCurrentSlot->mProfile.mScreenshot; // MemoryDataStream doesn't work with const data :(
|
||||
Ogre::DataStreamPtr stream(new Ogre::MemoryDataStream(&data[0], data.size()));
|
||||
|
@ -382,5 +382,6 @@ namespace MWGui
|
|||
texture->loadImage(image);
|
||||
|
||||
mScreenshot->setImageTexture(textureName);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -180,7 +180,7 @@ namespace MWGui
|
|||
|
||||
void EditEffectDialog::setMagicEffect (const ESM::MagicEffect *effect)
|
||||
{
|
||||
mEffectImage->setImageTexture(Misc::ResourceHelpers::correctIconPath(effect->mIcon));
|
||||
//mEffectImage->setImageTexture(Misc::ResourceHelpers::correctIconPath(effect->mIcon));
|
||||
|
||||
mEffectName->setCaptionWithReplacing("#{"+ESM::MagicEffect::effectIdToString (effect->mIndex)+"}");
|
||||
|
||||
|
|
|
@ -145,7 +145,7 @@ namespace MWGui
|
|||
("ImageBox", MyGUI::IntCoord(w,2,16,16), MyGUI::Align::Default);
|
||||
mWidgetMap[it->first] = image;
|
||||
|
||||
image->setImageTexture(Misc::ResourceHelpers::correctIconPath(effect->mIcon));
|
||||
//image->setImageTexture(Misc::ResourceHelpers::correctIconPath(effect->mIcon));
|
||||
|
||||
std::string name = ESM::MagicEffect::effectIdToString (it->first);
|
||||
|
||||
|
|
|
@ -388,7 +388,7 @@ namespace MWGui
|
|||
const int imageCaptionHPadding = (caption != "" ? 8 : 0);
|
||||
const int imageCaptionVPadding = (caption != "" ? 4 : 0);
|
||||
|
||||
std::string realImage = Misc::ResourceHelpers::correctIconPath(image);
|
||||
std::string realImage;// = Misc::ResourceHelpers::correctIconPath(image);
|
||||
|
||||
MyGUI::EditBox* captionWidget = mDynamicToolTipBox->createWidget<MyGUI::EditBox>("NormalText", MyGUI::IntCoord(0, 0, 300, 300), MyGUI::Align::Left | MyGUI::Align::Top, "ToolTipCaption");
|
||||
captionWidget->setProperty("Static", "true");
|
||||
|
@ -686,7 +686,7 @@ namespace MWGui
|
|||
|
||||
widget->setUserString("ToolTipType", "Layout");
|
||||
widget->setUserString("ToolTipLayout", "BirthSignToolTip");
|
||||
widget->setUserString("ImageTexture_BirthSignImage", Misc::ResourceHelpers::correctTexturePath(sign->mTexture));
|
||||
widget->setUserString("ImageTexture_BirthSignImage", "");//Misc::ResourceHelpers::correctTexturePath(sign->mTexture));
|
||||
std::string text;
|
||||
|
||||
text += sign->mName;
|
||||
|
@ -781,7 +781,7 @@ namespace MWGui
|
|||
std::string icon = effect->mIcon;
|
||||
int slashPos = icon.rfind('\\');
|
||||
icon.insert(slashPos+1, "b_");
|
||||
icon = Misc::ResourceHelpers::correctIconPath(icon);
|
||||
//icon = Misc::ResourceHelpers::correctIconPath(icon);
|
||||
|
||||
widget->setUserString("ToolTipType", "Layout");
|
||||
widget->setUserString("ToolTipLayout", "MagicEffectToolTip");
|
||||
|
|
|
@ -1,51 +1,51 @@
|
|||
#include "videowidget.hpp"
|
||||
|
||||
#include <extern/ogre-ffmpeg-videoplayer/videoplayer.hpp>
|
||||
//#include <extern/ogre-ffmpeg-videoplayer/videoplayer.hpp>
|
||||
|
||||
#include <MyGUI_RenderManager.h>
|
||||
|
||||
#include "../mwsound/movieaudiofactory.hpp"
|
||||
//#include "../mwsound/movieaudiofactory.hpp"
|
||||
|
||||
namespace MWGui
|
||||
{
|
||||
|
||||
VideoWidget::VideoWidget()
|
||||
{
|
||||
mPlayer.reset(new Video::VideoPlayer());
|
||||
//mPlayer.reset(new Video::VideoPlayer());
|
||||
setNeedKeyFocus(true);
|
||||
}
|
||||
|
||||
void VideoWidget::playVideo(const std::string &video)
|
||||
{
|
||||
mPlayer->setAudioFactory(new MWSound::MovieAudioFactory());
|
||||
mPlayer->playVideo(video);
|
||||
//mPlayer->setAudioFactory(new MWSound::MovieAudioFactory());
|
||||
//mPlayer->playVideo(video);
|
||||
|
||||
setImageTexture(mPlayer->getTextureName());
|
||||
//setImageTexture(mPlayer->getTextureName());
|
||||
}
|
||||
|
||||
int VideoWidget::getVideoWidth()
|
||||
{
|
||||
return mPlayer->getVideoWidth();
|
||||
return 0;//mPlayer->getVideoWidth();
|
||||
}
|
||||
|
||||
int VideoWidget::getVideoHeight()
|
||||
{
|
||||
return mPlayer->getVideoHeight();
|
||||
return 0;//mPlayer->getVideoHeight();
|
||||
}
|
||||
|
||||
bool VideoWidget::update()
|
||||
{
|
||||
return mPlayer->update();
|
||||
return 0;//mPlayer->update();
|
||||
}
|
||||
|
||||
void VideoWidget::stop()
|
||||
{
|
||||
mPlayer->close();
|
||||
//mPlayer->close();
|
||||
}
|
||||
|
||||
bool VideoWidget::hasAudioStream()
|
||||
{
|
||||
return mPlayer->hasAudioStream();
|
||||
return 0;//mPlayer->hasAudioStream();
|
||||
}
|
||||
|
||||
void VideoWidget::autoResize(bool stretch)
|
||||
|
|
|
@ -42,7 +42,7 @@ namespace MWGui
|
|||
void autoResize (bool stretch);
|
||||
|
||||
private:
|
||||
std::auto_ptr<Video::VideoPlayer> mPlayer;
|
||||
//std::auto_ptr<Video::VideoPlayer> mPlayer;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -474,7 +474,7 @@ namespace MWGui
|
|||
mTextWidget->setCaptionWithReplacing(spellLine);
|
||||
mRequestedWidth = mTextWidget->getTextSize().width + 24;
|
||||
|
||||
mImageWidget->setImageTexture(Misc::ResourceHelpers::correctIconPath(magicEffect->mIcon));
|
||||
//mImageWidget->setImageTexture(Misc::ResourceHelpers::correctIconPath(magicEffect->mIcon));
|
||||
}
|
||||
|
||||
MWSpellEffect::~MWSpellEffect()
|
||||
|
|
|
@ -19,11 +19,12 @@
|
|||
#include <MyGUI_ClipboardManager.h>
|
||||
#include <MyGUI_RenderManager.h>
|
||||
|
||||
#include <MyGUI_DummyPlatform.h>
|
||||
|
||||
#include <SDL_keyboard.h>
|
||||
#include <SDL_clipboard.h>
|
||||
|
||||
#include <openengine/ogre/renderer.hpp>
|
||||
#include <openengine/gui/manager.hpp>
|
||||
|
||||
#include <extern/sdl4ogre/sdlcursormanager.hpp>
|
||||
|
||||
|
@ -102,7 +103,7 @@ namespace MWGui
|
|||
const std::string& logpath, const std::string& cacheDir, bool consoleOnlyScripts,
|
||||
Translation::Storage& translationDataStorage, ToUTF8::FromType encoding, bool exportFonts, const std::map<std::string, std::string>& fallbackMap)
|
||||
: mConsoleOnlyScripts(consoleOnlyScripts)
|
||||
, mGuiManager(NULL)
|
||||
//, mGuiManager(NULL)
|
||||
, mRendering(ogre)
|
||||
, mHud(NULL)
|
||||
, mMap(NULL)
|
||||
|
@ -177,7 +178,13 @@ namespace MWGui
|
|||
, mFallbackMap(fallbackMap)
|
||||
{
|
||||
// Set up the GUI system
|
||||
mGuiManager = new OEngine::GUI::MyGUIManager(mRendering->getWindow(), mRendering->getScene(), false, logpath);
|
||||
//mGuiManager = new OEngine::GUI::MyGUIManager(mRendering->getWindow(), mRendering->getScene(), false, logpath);
|
||||
|
||||
MyGUI::DummyPlatform* platform = new MyGUI::DummyPlatform;
|
||||
platform->initialise(logpath);
|
||||
|
||||
MyGUI::Gui* gui = new MyGUI::Gui;
|
||||
gui->initialise("");
|
||||
|
||||
MyGUI::LanguageManager::getInstance().eventRequestTag = MyGUI::newDelegate(this, &WindowManager::onRetrieveTag);
|
||||
|
||||
|
@ -207,11 +214,11 @@ namespace MWGui
|
|||
|
||||
MyGUI::FactoryManager::getInstance().registerFactory<ResourceImageSetPointerFix>("Resource", "ResourceImageSetPointer");
|
||||
MyGUI::ResourceManager::getInstance().load("core.xml");
|
||||
|
||||
#if 0
|
||||
mLoadingScreen = new LoadingScreen(mRendering->getScene (), mRendering->getWindow ());
|
||||
|
||||
#endif
|
||||
//set up the hardware cursor manager
|
||||
mCursorManager = new SFO::SDLCursorManager();
|
||||
//mCursorManager = new SFO::SDLCursorManager();
|
||||
|
||||
MyGUI::PointerManager::getInstance().eventChangeMousePointer += MyGUI::newDelegate(this, &WindowManager::onCursorChange);
|
||||
|
||||
|
@ -219,7 +226,7 @@ namespace MWGui
|
|||
|
||||
onCursorChange(MyGUI::PointerManager::getInstance().getDefaultPointer());
|
||||
|
||||
mCursorManager->setEnabled(true);
|
||||
//mCursorManager->setEnabled(true);
|
||||
|
||||
// hide mygui's pointer
|
||||
MyGUI::PointerManager::getInstance().setVisible(false);
|
||||
|
@ -245,6 +252,7 @@ namespace MWGui
|
|||
|
||||
void WindowManager::initUI()
|
||||
{
|
||||
/*
|
||||
// Get size info from the Gui object
|
||||
int w = MyGUI::RenderManager::getInstance().getViewSize().width;
|
||||
int h = MyGUI::RenderManager::getInstance().getViewSize().height;
|
||||
|
@ -328,6 +336,7 @@ namespace MWGui
|
|||
updateVisible();
|
||||
|
||||
MWBase::Environment::get().getInputManager()->changeInputMode(false);
|
||||
*/
|
||||
}
|
||||
|
||||
void WindowManager::renderWorldMap()
|
||||
|
@ -408,11 +417,11 @@ namespace MWGui
|
|||
delete mDebugWindow;
|
||||
delete mJailScreen;
|
||||
|
||||
delete mCursorManager;
|
||||
//delete mCursorManager;
|
||||
|
||||
cleanupGarbage();
|
||||
|
||||
delete mGuiManager;
|
||||
//delete mGuiManager;
|
||||
}
|
||||
|
||||
void WindowManager::cleanupGarbage()
|
||||
|
@ -923,6 +932,7 @@ namespace MWGui
|
|||
|
||||
void WindowManager::changeCell(MWWorld::CellStore* cell)
|
||||
{
|
||||
/*
|
||||
std::string name = MWBase::Environment::get().getWorld()->getCellName (cell);
|
||||
|
||||
mMap->setCellName( name );
|
||||
|
@ -947,10 +957,12 @@ namespace MWGui
|
|||
MWBase::Environment::get().getWorld()->getPlayer().setLastKnownExteriorPosition(worldPos);
|
||||
mMap->setGlobalMapPlayerPosition(worldPos.x, worldPos.y);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void WindowManager::setActiveMap(int x, int y, bool interior)
|
||||
{
|
||||
/*
|
||||
if (!interior)
|
||||
{
|
||||
mMap->setCellPrefix("Cell");
|
||||
|
@ -959,19 +971,22 @@ namespace MWGui
|
|||
|
||||
mMap->setActiveCell(x,y, interior);
|
||||
mHud->setActiveCell(x,y, interior);
|
||||
*/
|
||||
}
|
||||
|
||||
void WindowManager::setPlayerPos(int cellX, int cellY, const float x, const float y)
|
||||
{
|
||||
mMap->setPlayerPos(cellX, cellY, x, y);
|
||||
mHud->setPlayerPos(cellX, cellY, x, y);
|
||||
//mMap->setPlayerPos(cellX, cellY, x, y);
|
||||
//mHud->setPlayerPos(cellX, cellY, x, y);
|
||||
}
|
||||
|
||||
void WindowManager::setPlayerDir(const float x, const float y)
|
||||
{
|
||||
/*
|
||||
mMap->setPlayerDir(x,y);
|
||||
mMap->setGlobalMapPlayerDir(x, y);
|
||||
mHud->setPlayerDir(x,y);
|
||||
*/
|
||||
}
|
||||
|
||||
void WindowManager::setDrowningBarVisibility(bool visible)
|
||||
|
@ -1087,7 +1102,7 @@ namespace MWGui
|
|||
void WindowManager::windowResized(int x, int y)
|
||||
{
|
||||
sizeVideo(x, y);
|
||||
mGuiManager->windowResized();
|
||||
//mGuiManager->windowResized();
|
||||
if (!mHud)
|
||||
return; // UI not initialized yet
|
||||
|
||||
|
@ -1133,6 +1148,7 @@ namespace MWGui
|
|||
|
||||
void WindowManager::onCursorChange(const std::string &name)
|
||||
{
|
||||
/*
|
||||
if(!mCursorManager->cursorChanged(name))
|
||||
return; //the cursor manager doesn't want any more info about this cursor
|
||||
//See if we can get the information we need out of the cursor resource
|
||||
|
@ -1157,6 +1173,7 @@ namespace MWGui
|
|||
mCursorManager->receiveCursorInfo(name, rotation, tex, size_x, size_y, hotspot_x, hotspot_y);
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void WindowManager::popGuiMode()
|
||||
|
@ -1266,7 +1283,7 @@ namespace MWGui
|
|||
|
||||
void WindowManager::executeInConsole (const std::string& path)
|
||||
{
|
||||
mConsole->executeFile (path);
|
||||
//mConsole->executeFile (path);
|
||||
}
|
||||
|
||||
void WindowManager::wmUpdateFps(float fps, unsigned int triangleCount, unsigned int batchCount)
|
||||
|
@ -1507,7 +1524,7 @@ namespace MWGui
|
|||
|
||||
void WindowManager::updatePlayer()
|
||||
{
|
||||
mInventoryWindow->updatePlayer();
|
||||
//mInventoryWindow->updatePlayer();
|
||||
|
||||
const MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||
if (player.getClass().getNpcStats(player).isWerewolf())
|
||||
|
@ -1540,9 +1557,22 @@ namespace MWGui
|
|||
mHud->setEnemy(enemy);
|
||||
}
|
||||
|
||||
class DummyListener : public Loading::Listener
|
||||
{
|
||||
public:
|
||||
virtual void setLabel (const std::string& label){}
|
||||
virtual void loadingOn(){}
|
||||
virtual void loadingOff(){}
|
||||
virtual void indicateProgress (){}
|
||||
virtual void setProgressRange (size_t range){}
|
||||
virtual void setProgress (size_t value){}
|
||||
virtual void increaseProgress (size_t increase = 1){}
|
||||
};
|
||||
|
||||
Loading::Listener* WindowManager::getLoadingScreen()
|
||||
{
|
||||
return mLoadingScreen;
|
||||
static DummyListener listener;
|
||||
return &listener;
|
||||
}
|
||||
|
||||
void WindowManager::startRecharge(MWWorld::Ptr soulgem)
|
||||
|
@ -1779,23 +1809,29 @@ namespace MWGui
|
|||
|
||||
void WindowManager::fadeScreenIn(const float time, bool clearQueue)
|
||||
{
|
||||
/*
|
||||
if (clearQueue)
|
||||
mScreenFader->clearQueue();
|
||||
mScreenFader->fadeOut(time);
|
||||
*/
|
||||
}
|
||||
|
||||
void WindowManager::fadeScreenOut(const float time, bool clearQueue)
|
||||
{
|
||||
/*
|
||||
if (clearQueue)
|
||||
mScreenFader->clearQueue();
|
||||
mScreenFader->fadeIn(time);
|
||||
*/
|
||||
}
|
||||
|
||||
void WindowManager::fadeScreenTo(const int percent, const float time, bool clearQueue)
|
||||
{
|
||||
/*
|
||||
if (clearQueue)
|
||||
mScreenFader->clearQueue();
|
||||
mScreenFader->fadeTo(percent, time);
|
||||
*/
|
||||
}
|
||||
|
||||
void WindowManager::setBlindness(const int percent)
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
#include "actor.hpp"
|
||||
|
||||
#include "character.hpp"
|
||||
//#include "character.hpp"
|
||||
|
||||
namespace MWMechanics
|
||||
{
|
||||
|
||||
Actor::Actor(const MWWorld::Ptr &ptr, MWRender::Animation *animation)
|
||||
{
|
||||
mCharacterController.reset(new CharacterController(ptr, animation));
|
||||
//mCharacterController.reset(new CharacterController(ptr, animation));
|
||||
}
|
||||
|
||||
void Actor::updatePtr(const MWWorld::Ptr &newPtr)
|
||||
{
|
||||
mCharacterController->updatePtr(newPtr);
|
||||
//mCharacterController->updatePtr(newPtr);
|
||||
}
|
||||
|
||||
CharacterController* Actor::getCharacterController()
|
||||
{
|
||||
return mCharacterController.get();
|
||||
return 0;//mCharacterController.get();
|
||||
}
|
||||
|
||||
AiState& Actor::getAiState()
|
||||
|
|
|
@ -16,13 +16,13 @@
|
|||
#include "../mwbase/mechanicsmanager.hpp"
|
||||
#include "../mwbase/dialoguemanager.hpp"
|
||||
|
||||
#include "../mwrender/animation.hpp"
|
||||
//#include "../mwrender/animation.hpp"
|
||||
|
||||
|
||||
#include "creaturestats.hpp"
|
||||
#include "steering.hpp"
|
||||
#include "movement.hpp"
|
||||
#include "character.hpp" // fixme: for getActiveWeapon
|
||||
//#include "character.hpp" // fixme: for getActiveWeapon
|
||||
|
||||
#include "aicombataction.hpp"
|
||||
#include "combat.hpp"
|
||||
|
@ -188,6 +188,7 @@ namespace MWMechanics
|
|||
*/
|
||||
bool AiCombat::execute (const MWWorld::Ptr& actor, AiState& state, float duration)
|
||||
{
|
||||
#if 0
|
||||
// get or create temporary storage
|
||||
AiCombatStorage& storage = state.get<AiCombatStorage>();
|
||||
|
||||
|
@ -673,7 +674,7 @@ namespace MWMechanics
|
|||
// FIXME: can fool actors to stay behind doors, etc.
|
||||
// Related to Bug#1102 and to some degree #1155 as well
|
||||
}
|
||||
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -811,6 +812,7 @@ ESM::Weapon::AttackType chooseBestAttack(const ESM::Weapon* weapon, MWMechanics:
|
|||
return attackType;
|
||||
}
|
||||
|
||||
#if 0
|
||||
void getMinMaxAttackDuration(const MWWorld::Ptr& actor, float (*fMinMaxDurations)[2])
|
||||
{
|
||||
if (!actor.getClass().hasInventoryStore(actor)) // creatures
|
||||
|
@ -873,8 +875,8 @@ void getMinMaxAttackDuration(const MWWorld::Ptr& actor, float (*fMinMaxDurations
|
|||
|
||||
fMinMaxDurations[i][1] = fMinMaxDurations[i][0] + (start1 - start2) / weapSpeed;
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
Ogre::Vector3 AimDirToMovingTarget(const MWWorld::Ptr& actor, const MWWorld::Ptr& target, const Ogre::Vector3& vLastTargetPos,
|
||||
float duration, int weapType, float strength)
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include <cassert>
|
||||
#include <cstdlib>
|
||||
#include <cmath>
|
||||
|
||||
#include <algorithm>
|
||||
#include <stdexcept>
|
||||
|
|
|
@ -269,7 +269,7 @@ namespace MWMechanics
|
|||
creatureStats.getSpells().add(*it);
|
||||
|
||||
// forced update and current value adjustments
|
||||
mActors.updateActor (ptr, 0);
|
||||
//mActors.updateActor (ptr, 0);
|
||||
|
||||
for (int i=0; i<3; ++i)
|
||||
{
|
||||
|
@ -294,22 +294,27 @@ namespace MWMechanics
|
|||
|
||||
void MechanicsManager::add(const MWWorld::Ptr& ptr)
|
||||
{
|
||||
/*
|
||||
if(ptr.getClass().isActor())
|
||||
mActors.addActor(ptr);
|
||||
else
|
||||
mObjects.addObject(ptr);
|
||||
*/
|
||||
}
|
||||
|
||||
void MechanicsManager::remove(const MWWorld::Ptr& ptr)
|
||||
{
|
||||
/*
|
||||
if(ptr == mWatched)
|
||||
mWatched = MWWorld::Ptr();
|
||||
mActors.removeActor(ptr);
|
||||
mObjects.removeObject(ptr);
|
||||
*/
|
||||
}
|
||||
|
||||
void MechanicsManager::updateCell(const MWWorld::Ptr &old, const MWWorld::Ptr &ptr)
|
||||
{
|
||||
/*
|
||||
if(old == mWatched)
|
||||
mWatched = ptr;
|
||||
|
||||
|
@ -317,13 +322,16 @@ namespace MWMechanics
|
|||
mActors.updateActor(old, ptr);
|
||||
else
|
||||
mObjects.updateObject(old, ptr);
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
void MechanicsManager::drop(const MWWorld::CellStore *cellStore)
|
||||
{
|
||||
/*
|
||||
mActors.dropActors(cellStore, mWatched);
|
||||
mObjects.dropObjects(cellStore);
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
@ -464,24 +472,24 @@ namespace MWMechanics
|
|||
|
||||
// HACK? The player has been changed, so a new Animation object may
|
||||
// have been made for them. Make sure they're properly updated.
|
||||
MWWorld::Ptr ptr = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||
mActors.removeActor(ptr);
|
||||
mActors.addActor(ptr, true);
|
||||
//MWWorld::Ptr ptr = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||
//mActors.removeActor(ptr);
|
||||
//mActors.addActor(ptr, true);
|
||||
}
|
||||
|
||||
mActors.update(duration, paused);
|
||||
mObjects.update(duration, paused);
|
||||
//mActors.update(duration, paused);
|
||||
//mObjects.update(duration, paused);
|
||||
}
|
||||
|
||||
void MechanicsManager::rest(bool sleep)
|
||||
{
|
||||
mActors.restoreDynamicStats (sleep);
|
||||
mActors.fastForwardAi();
|
||||
//mActors.restoreDynamicStats (sleep);
|
||||
//mActors.fastForwardAi();
|
||||
}
|
||||
|
||||
int MechanicsManager::getHoursToRest() const
|
||||
{
|
||||
return mActors.getHoursToRest(mWatched);
|
||||
return 0;//mActors.getHoursToRest(mWatched);
|
||||
}
|
||||
|
||||
void MechanicsManager::setPlayerName (const std::string& name)
|
||||
|
@ -671,7 +679,7 @@ namespace MWMechanics
|
|||
|
||||
int MechanicsManager::countDeaths (const std::string& id) const
|
||||
{
|
||||
return mActors.countDeaths (id);
|
||||
return 0;//mActors.countDeaths (id);
|
||||
}
|
||||
|
||||
void MechanicsManager::getPersuasionDispositionChange (const MWWorld::Ptr& npc, PersuasionType type,
|
||||
|
@ -827,35 +835,39 @@ namespace MWMechanics
|
|||
|
||||
void MechanicsManager::forceStateUpdate(const MWWorld::Ptr &ptr)
|
||||
{
|
||||
if(ptr.getClass().isActor())
|
||||
mActors.forceStateUpdate(ptr);
|
||||
//if(ptr.getClass().isActor())
|
||||
//mActors.forceStateUpdate(ptr);
|
||||
}
|
||||
|
||||
void MechanicsManager::playAnimationGroup(const MWWorld::Ptr& ptr, const std::string& groupName, int mode, int number)
|
||||
{
|
||||
/*
|
||||
if(ptr.getClass().isActor())
|
||||
mActors.playAnimationGroup(ptr, groupName, mode, number);
|
||||
else
|
||||
mObjects.playAnimationGroup(ptr, groupName, mode, number);
|
||||
*/
|
||||
}
|
||||
void MechanicsManager::skipAnimation(const MWWorld::Ptr& ptr)
|
||||
{
|
||||
/*
|
||||
if(ptr.getClass().isActor())
|
||||
mActors.skipAnimation(ptr);
|
||||
else
|
||||
mObjects.skipAnimation(ptr);
|
||||
*/
|
||||
}
|
||||
bool MechanicsManager::checkAnimationPlaying(const MWWorld::Ptr& ptr, const std::string &groupName)
|
||||
{
|
||||
if(ptr.getClass().isActor())
|
||||
return mActors.checkAnimationPlaying(ptr, groupName);
|
||||
else
|
||||
//if(ptr.getClass().isActor())
|
||||
// return mActors.checkAnimationPlaying(ptr, groupName);
|
||||
//else
|
||||
return false;
|
||||
}
|
||||
|
||||
void MechanicsManager::updateMagicEffects(const MWWorld::Ptr &ptr)
|
||||
{
|
||||
mActors.updateMagicEffects(ptr);
|
||||
//mActors.updateMagicEffects(ptr);
|
||||
}
|
||||
|
||||
bool MechanicsManager::toggleAI()
|
||||
|
@ -1050,7 +1062,7 @@ namespace MWMechanics
|
|||
const MWWorld::ESMStore& esmStore = MWBase::Environment::get().getWorld()->getStore();
|
||||
float radius = esmStore.get<ESM::GameSetting>().find("fAlarmRadius")->getFloat();
|
||||
|
||||
mActors.getObjectsInRange(from, radius, neighbors);
|
||||
//mActors.getObjectsInRange(from, radius, neighbors);
|
||||
|
||||
// victim should be considered even beyond alarm radius
|
||||
if (!victim.isEmpty() && from.squaredDistance(Ogre::Vector3(victim.getRefData().getPosition().pos)) > radius*radius)
|
||||
|
@ -1139,7 +1151,7 @@ namespace MWMechanics
|
|||
Ogre::Vector3 from = Ogre::Vector3(player.getRefData().getPosition().pos);
|
||||
float radius = esmStore.get<ESM::GameSetting>().find("fAlarmRadius")->getFloat();
|
||||
|
||||
mActors.getObjectsInRange(from, radius, neighbors);
|
||||
//mActors.getObjectsInRange(from, radius, neighbors);
|
||||
|
||||
// victim should be considered even beyond alarm radius
|
||||
if (!victim.isEmpty() && from.squaredDistance(Ogre::Vector3(victim.getRefData().getPosition().pos)) > radius*radius)
|
||||
|
@ -1394,6 +1406,7 @@ namespace MWMechanics
|
|||
// if guard starts combat with player, guards pursuing player should do the same
|
||||
if (ptr.getClass().isClass(ptr, "Guard"))
|
||||
{
|
||||
/*
|
||||
for (Actors::PtrActorMap::const_iterator iter = mActors.begin(); iter != mActors.end(); ++iter)
|
||||
{
|
||||
if (iter->first.getClass().isClass(iter->first, "Guard"))
|
||||
|
@ -1406,6 +1419,7 @@ namespace MWMechanics
|
|||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1416,27 +1430,27 @@ namespace MWMechanics
|
|||
|
||||
void MechanicsManager::getObjectsInRange(const Ogre::Vector3 &position, float radius, std::vector<MWWorld::Ptr> &objects)
|
||||
{
|
||||
mActors.getObjectsInRange(position, radius, objects);
|
||||
mObjects.getObjectsInRange(position, radius, objects);
|
||||
//mActors.getObjectsInRange(position, radius, objects);
|
||||
//mObjects.getObjectsInRange(position, radius, objects);
|
||||
}
|
||||
|
||||
void MechanicsManager::getActorsInRange(const Ogre::Vector3 &position, float radius, std::vector<MWWorld::Ptr> &objects)
|
||||
{
|
||||
mActors.getObjectsInRange(position, radius, objects);
|
||||
//mActors.getObjectsInRange(position, radius, objects);
|
||||
}
|
||||
|
||||
std::list<MWWorld::Ptr> MechanicsManager::getActorsFollowing(const MWWorld::Ptr& actor)
|
||||
{
|
||||
return mActors.getActorsFollowing(actor);
|
||||
return std::list<MWWorld::Ptr>();//mActors.getActorsFollowing(actor);
|
||||
}
|
||||
|
||||
std::list<int> MechanicsManager::getActorsFollowingIndices(const MWWorld::Ptr& actor)
|
||||
{
|
||||
return mActors.getActorsFollowingIndices(actor);
|
||||
return std::list<int>(); //mActors.getActorsFollowingIndices(actor);
|
||||
}
|
||||
|
||||
std::list<MWWorld::Ptr> MechanicsManager::getActorsFighting(const MWWorld::Ptr& actor) {
|
||||
return mActors.getActorsFighting(actor);
|
||||
return std::list<MWWorld::Ptr>();// mActors.getActorsFighting(actor);
|
||||
}
|
||||
|
||||
int MechanicsManager::countSavedGameRecords() const
|
||||
|
@ -1447,7 +1461,7 @@ namespace MWMechanics
|
|||
|
||||
void MechanicsManager::write(ESM::ESMWriter &writer, Loading::Listener &listener) const
|
||||
{
|
||||
mActors.write(writer, listener);
|
||||
//mActors.write(writer, listener);
|
||||
|
||||
ESM::StolenItems items;
|
||||
items.mStolenItems = mStolenItems;
|
||||
|
@ -1464,13 +1478,13 @@ namespace MWMechanics
|
|||
items.load(reader);
|
||||
mStolenItems = items.mStolenItems;
|
||||
}
|
||||
else
|
||||
mActors.readRecord(reader, type);
|
||||
//else
|
||||
//mActors.readRecord(reader, type);
|
||||
}
|
||||
|
||||
void MechanicsManager::clear()
|
||||
{
|
||||
mActors.clear();
|
||||
//mActors.clear();
|
||||
mStolenItems.clear();
|
||||
}
|
||||
|
||||
|
@ -1516,6 +1530,6 @@ namespace MWMechanics
|
|||
|
||||
bool MechanicsManager::isReadyToBlock(const MWWorld::Ptr &ptr) const
|
||||
{
|
||||
return mActors.isReadyToBlock(ptr);
|
||||
return 0;//mActors.isReadyToBlock(ptr);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
#include "creaturestats.hpp"
|
||||
#include "npcstats.hpp"
|
||||
#include "objects.hpp"
|
||||
#include "actors.hpp"
|
||||
//#include "objects.hpp"
|
||||
//#include "actors.hpp"
|
||||
|
||||
namespace Ogre
|
||||
{
|
||||
|
@ -32,8 +32,8 @@ namespace MWMechanics
|
|||
bool mRaceSelected;
|
||||
bool mAI;///< is AI active?
|
||||
|
||||
Objects mObjects;
|
||||
Actors mActors;
|
||||
//Objects mObjects;
|
||||
//Actors mActors;
|
||||
|
||||
typedef std::pair<std::string, bool> Owner; // < Owner id, bool isFaction >
|
||||
typedef std::map<Owner, int> OwnerMap; // < Owner, number of stolen items with this id from this owner >
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "../mwworld/cellstore.hpp"
|
||||
#include "../mwworld/esmstore.hpp"
|
||||
|
||||
#include "../mwrender/animation.hpp"
|
||||
//#include "../mwrender/animation.hpp"
|
||||
|
||||
#include "magiceffects.hpp"
|
||||
#include "npcstats.hpp"
|
||||
|
@ -419,8 +419,8 @@ namespace MWMechanics
|
|||
if (absorbed)
|
||||
{
|
||||
const ESM::Static* absorbStatic = MWBase::Environment::get().getWorld()->getStore().get<ESM::Static>().find ("VFX_Absorb");
|
||||
MWBase::Environment::get().getWorld()->getAnimation(target)->addEffect(
|
||||
"meshes\\" + absorbStatic->mModel, ESM::MagicEffect::SpellAbsorption, false, "");
|
||||
//MWBase::Environment::get().getWorld()->getAnimation(target)->addEffect(
|
||||
// "meshes\\" + absorbStatic->mModel, ESM::MagicEffect::SpellAbsorption, false, "");
|
||||
// Magicka is increased by cost of spell
|
||||
DynamicStat<float> magicka = target.getClass().getCreatureStats(target).getMagicka();
|
||||
magicka.setCurrent(magicka.getCurrent() + spell->mData.mCost);
|
||||
|
@ -467,8 +467,8 @@ namespace MWMechanics
|
|||
if (isReflected)
|
||||
{
|
||||
const ESM::Static* reflectStatic = MWBase::Environment::get().getWorld()->getStore().get<ESM::Static>().find ("VFX_Reflect");
|
||||
MWBase::Environment::get().getWorld()->getAnimation(target)->addEffect(
|
||||
"meshes\\" + reflectStatic->mModel, ESM::MagicEffect::Reflect, false, "");
|
||||
//MWBase::Environment::get().getWorld()->getAnimation(target)->addEffect(
|
||||
// "meshes\\" + reflectStatic->mModel, ESM::MagicEffect::Reflect, false, "");
|
||||
reflectedEffects.mList.push_back(*effectIt);
|
||||
magnitudeMult = 0;
|
||||
}
|
||||
|
@ -574,9 +574,9 @@ namespace MWMechanics
|
|||
// TODO: VFX are no longer active after saving/reloading the game
|
||||
bool loop = (magicEffect->mData.mFlags & ESM::MagicEffect::ContinuousVfx) != 0;
|
||||
// Note: in case of non actor, a free effect should be fine as well
|
||||
MWRender::Animation* anim = MWBase::Environment::get().getWorld()->getAnimation(target);
|
||||
if (anim)
|
||||
anim->addEffect("meshes\\" + castStatic->mModel, magicEffect->mIndex, loop, "");
|
||||
//MWRender::Animation* anim = MWBase::Environment::get().getWorld()->getAnimation(target);
|
||||
//if (anim)
|
||||
// anim->addEffect("meshes\\" + castStatic->mModel, magicEffect->mIndex, loop, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include "../mwworld/manualref.hpp"
|
||||
#include "../mwworld/inventorystore.hpp"
|
||||
|
||||
#include "../mwrender/animation.hpp"
|
||||
//#include "../mwrender/animation.hpp"
|
||||
|
||||
#include "creaturestats.hpp"
|
||||
#include "aifollow.hpp"
|
||||
|
@ -143,8 +143,9 @@ namespace MWMechanics
|
|||
summonedCreatureStats.getAiSequence().stack(package, ref.getPtr());
|
||||
int creatureActorId = summonedCreatureStats.getActorId();
|
||||
|
||||
MWWorld::Ptr placed = MWBase::Environment::get().getWorld()->safePlaceObject(ref.getPtr(),store,ipos);
|
||||
/*MWWorld::Ptr placed = */MWBase::Environment::get().getWorld()->safePlaceObject(ref.getPtr(),store,ipos);
|
||||
|
||||
/*
|
||||
MWRender::Animation* anim = MWBase::Environment::get().getWorld()->getAnimation(placed);
|
||||
if (anim)
|
||||
{
|
||||
|
@ -153,6 +154,7 @@ namespace MWMechanics
|
|||
if (fx)
|
||||
anim->addEffect("meshes\\" + fx->mModel, -1, false);
|
||||
}
|
||||
*/
|
||||
|
||||
creatureMap.insert(std::make_pair(*it, creatureActorId));
|
||||
}
|
||||
|
|
|
@ -6,13 +6,14 @@
|
|||
#include "../mwworld/ptr.hpp"
|
||||
#include "../mwworld/class.hpp"
|
||||
|
||||
#include "../mwrender/renderingmanager.hpp"
|
||||
//#include "../mwrender/renderingmanager.hpp"
|
||||
|
||||
/*
|
||||
#include "animation.hpp"
|
||||
#include "activatoranimation.hpp"
|
||||
#include "creatureanimation.hpp"
|
||||
#include "npcanimation.hpp"
|
||||
|
||||
*/
|
||||
#include "renderconst.hpp"
|
||||
|
||||
|
||||
|
@ -22,19 +23,22 @@ using namespace Ogre;
|
|||
|
||||
Actors::~Actors()
|
||||
{
|
||||
/*
|
||||
PtrAnimationMap::iterator it = mAllActors.begin();
|
||||
for(;it != mAllActors.end();++it)
|
||||
{
|
||||
delete it->second;
|
||||
it->second = NULL;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void Actors::setRootNode(Ogre::SceneNode* root)
|
||||
{ mRootNode = root; }
|
||||
//void Actors::setRootNode(Ogre::SceneNode* root)
|
||||
//{ mRootNode = root; }
|
||||
|
||||
void Actors::insertBegin(const MWWorld::Ptr &ptr)
|
||||
{
|
||||
/*
|
||||
Ogre::SceneNode* cellnode;
|
||||
CellSceneNodeMap::const_iterator celliter = mCellSceneNodes.find(ptr.getCell());
|
||||
if(celliter != mCellSceneNodes.end())
|
||||
|
@ -61,18 +65,22 @@ void Actors::insertBegin(const MWWorld::Ptr &ptr)
|
|||
|
||||
insert->setOrientation(zr);
|
||||
ptr.getRefData().setBaseNode(insert);
|
||||
*/
|
||||
}
|
||||
|
||||
void Actors::insertNPC(const MWWorld::Ptr& ptr)
|
||||
{
|
||||
/*
|
||||
insertBegin(ptr);
|
||||
NpcAnimation* anim = new NpcAnimation(ptr, ptr.getRefData().getBaseNode(), RV_Actors);
|
||||
delete mAllActors[ptr];
|
||||
mAllActors[ptr] = anim;
|
||||
mRendering->addWaterRippleEmitter (ptr);
|
||||
*/
|
||||
}
|
||||
void Actors::insertCreature (const MWWorld::Ptr& ptr, const std::string &model, bool weaponsShields)
|
||||
{
|
||||
/*
|
||||
insertBegin(ptr);
|
||||
Animation* anim = NULL;
|
||||
if (weaponsShields)
|
||||
|
@ -82,9 +90,11 @@ void Actors::insertCreature (const MWWorld::Ptr& ptr, const std::string &model,
|
|||
delete mAllActors[ptr];
|
||||
mAllActors[ptr] = anim;
|
||||
mRendering->addWaterRippleEmitter (ptr);
|
||||
*/
|
||||
}
|
||||
void Actors::insertActivator (const MWWorld::Ptr& ptr, const std::string &model, bool addLight)
|
||||
{
|
||||
/*
|
||||
insertBegin(ptr);
|
||||
ActivatorAnimation* anim = new ActivatorAnimation(ptr, model);
|
||||
|
||||
|
@ -98,10 +108,12 @@ void Actors::insertActivator (const MWWorld::Ptr& ptr, const std::string &model,
|
|||
|
||||
delete mAllActors[ptr];
|
||||
mAllActors[ptr] = anim;
|
||||
*/
|
||||
}
|
||||
|
||||
bool Actors::deleteObject (const MWWorld::Ptr& ptr)
|
||||
{
|
||||
/*
|
||||
if (mAllActors.find(ptr) == mAllActors.end())
|
||||
return false;
|
||||
|
||||
|
@ -127,12 +139,13 @@ bool Actors::deleteObject (const MWWorld::Ptr& ptr)
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
|
||||
void Actors::removeCell(MWWorld::CellStore* store)
|
||||
{
|
||||
/*
|
||||
for(PtrAnimationMap::iterator iter = mAllActors.begin();iter != mAllActors.end();)
|
||||
{
|
||||
if(iter->first.getCell() == store)
|
||||
|
@ -153,26 +166,22 @@ void Actors::removeCell(MWWorld::CellStore* store)
|
|||
|
||||
mCellSceneNodes.erase(celliter);
|
||||
}
|
||||
}
|
||||
|
||||
void Actors::update (Ogre::Camera* camera)
|
||||
{
|
||||
for(PtrAnimationMap::iterator iter = mAllActors.begin();iter != mAllActors.end(); ++iter)
|
||||
{
|
||||
iter->second->preRender(camera);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
Animation* Actors::getAnimation(const MWWorld::Ptr &ptr)
|
||||
{
|
||||
/*
|
||||
PtrAnimationMap::const_iterator iter = mAllActors.find(ptr);
|
||||
if(iter != mAllActors.end())
|
||||
return iter->second;
|
||||
*/
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void Actors::updateObjectCell(const MWWorld::Ptr &old, const MWWorld::Ptr &cur)
|
||||
{
|
||||
/*
|
||||
Ogre::SceneNode *node;
|
||||
MWWorld::CellStore *newCell = cur.getCell();
|
||||
|
||||
|
@ -196,20 +205,7 @@ void Actors::updateObjectCell(const MWWorld::Ptr &old, const MWWorld::Ptr &cur)
|
|||
}
|
||||
|
||||
mRendering->updateWaterRippleEmitterPtr (old, cur);
|
||||
}
|
||||
|
||||
void Actors::enableLights()
|
||||
{
|
||||
PtrAnimationMap::const_iterator it = mAllActors.begin();
|
||||
for(;it != mAllActors.end();++it)
|
||||
it->second->enableLights(true);
|
||||
}
|
||||
|
||||
void Actors::disableLights()
|
||||
{
|
||||
PtrAnimationMap::const_iterator it = mAllActors.begin();
|
||||
for(;it != mAllActors.end();++it)
|
||||
it->second->enableLights(false);
|
||||
*/
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,7 +1,17 @@
|
|||
#ifndef GAME_RENDER_ACTORS_H
|
||||
#define GAME_RENDER_ACTORS_H
|
||||
|
||||
#include <openengine/ogre/renderer.hpp>
|
||||
//#include <openengine/ogre/renderer.hpp>
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace OEngine
|
||||
{
|
||||
namespace Render
|
||||
{
|
||||
class OgreRenderer;
|
||||
}
|
||||
}
|
||||
|
||||
namespace MWWorld
|
||||
{
|
||||
|
@ -17,15 +27,15 @@ namespace MWRender
|
|||
|
||||
class Actors
|
||||
{
|
||||
typedef std::map<MWWorld::CellStore*,Ogre::SceneNode*> CellSceneNodeMap;
|
||||
typedef std::map<MWWorld::Ptr,Animation*> PtrAnimationMap;
|
||||
//typedef std::map<MWWorld::CellStore*,Ogre::SceneNode*> CellSceneNodeMap;
|
||||
//typedef std::map<MWWorld::Ptr,Animation*> PtrAnimationMap;
|
||||
|
||||
OEngine::Render::OgreRenderer &mRend;
|
||||
MWRender::RenderingManager* mRendering;
|
||||
Ogre::SceneNode* mRootNode;
|
||||
//Ogre::SceneNode* mRootNode;
|
||||
|
||||
CellSceneNodeMap mCellSceneNodes;
|
||||
PtrAnimationMap mAllActors;
|
||||
//CellSceneNodeMap mCellSceneNodes;
|
||||
//PtrAnimationMap mAllActors;
|
||||
|
||||
void insertBegin(const MWWorld::Ptr &ptr);
|
||||
|
||||
|
@ -33,11 +43,11 @@ namespace MWRender
|
|||
Actors(OEngine::Render::OgreRenderer& _rend, MWRender::RenderingManager* rendering)
|
||||
: mRend(_rend)
|
||||
, mRendering(rendering)
|
||||
, mRootNode(NULL)
|
||||
//, mRootNode(NULL)
|
||||
{}
|
||||
~Actors();
|
||||
|
||||
void setRootNode(Ogre::SceneNode* root);
|
||||
//void setRootNode(Ogre::SceneNode* root);
|
||||
|
||||
void insertNPC(const MWWorld::Ptr& ptr);
|
||||
void insertCreature (const MWWorld::Ptr& ptr, const std::string& model, bool weaponsShields);
|
||||
|
@ -45,13 +55,8 @@ namespace MWRender
|
|||
bool deleteObject (const MWWorld::Ptr& ptr);
|
||||
///< \return found?
|
||||
|
||||
void enableLights();
|
||||
void disableLights();
|
||||
|
||||
void removeCell(MWWorld::CellStore* store);
|
||||
|
||||
void update (Ogre::Camera* camera);
|
||||
|
||||
/// Updates containing cell for object rendering data
|
||||
void updateObjectCell(const MWWorld::Ptr &old, const MWWorld::Ptr &cur);
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include <components/esm/loadligh.hpp>
|
||||
#include <components/esm/loadstat.hpp>
|
||||
|
||||
#include <components/nifogre/ogrenifloader.hpp>
|
||||
//#include <components/nifogre/ogrenifloader.hpp>
|
||||
#include <components/settings/settings.hpp>
|
||||
|
||||
#include "../mwworld/ptr.hpp"
|
||||
|
@ -22,7 +22,7 @@
|
|||
#include "../mwworld/cellstore.hpp"
|
||||
|
||||
#include "renderconst.hpp"
|
||||
#include "animation.hpp"
|
||||
//#include "animation.hpp"
|
||||
|
||||
using namespace MWRender;
|
||||
|
||||
|
@ -76,7 +76,7 @@ void Objects::insertBegin(const MWWorld::Ptr& ptr)
|
|||
void Objects::insertModel(const MWWorld::Ptr &ptr, const std::string &mesh, bool batch)
|
||||
{
|
||||
insertBegin(ptr);
|
||||
|
||||
/*
|
||||
std::auto_ptr<ObjectAnimation> anim(new ObjectAnimation(ptr, mesh));
|
||||
|
||||
if (!mesh.empty())
|
||||
|
@ -96,70 +96,16 @@ void Objects::insertModel(const MWWorld::Ptr &ptr, const std::string &mesh, bool
|
|||
mBounds[ptr.getCell()] = Ogre::AxisAlignedBox::BOX_NULL;
|
||||
mBounds[ptr.getCell()].merge(bounds);
|
||||
|
||||
if(batch &&
|
||||
Settings::Manager::getBool("use static geometry", "Objects") &&
|
||||
anim->canBatch())
|
||||
{
|
||||
Ogre::StaticGeometry* sg = 0;
|
||||
|
||||
if (small)
|
||||
{
|
||||
if(mStaticGeometrySmall.find(ptr.getCell()) == mStaticGeometrySmall.end())
|
||||
{
|
||||
uniqueID = uniqueID+1;
|
||||
sg = mRenderer.getScene()->createStaticGeometry("sg" + Ogre::StringConverter::toString(uniqueID));
|
||||
sg->setOrigin(ptr.getRefData().getBaseNode()->getPosition());
|
||||
mStaticGeometrySmall[ptr.getCell()] = sg;
|
||||
|
||||
sg->setRenderingDistance(static_cast<Ogre::Real>(Settings::Manager::getInt("small object distance", "Viewing distance")));
|
||||
}
|
||||
else
|
||||
sg = mStaticGeometrySmall[ptr.getCell()];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(mStaticGeometry.find(ptr.getCell()) == mStaticGeometry.end())
|
||||
{
|
||||
uniqueID = uniqueID+1;
|
||||
sg = mRenderer.getScene()->createStaticGeometry("sg" + Ogre::StringConverter::toString(uniqueID));
|
||||
sg->setOrigin(ptr.getRefData().getBaseNode()->getPosition());
|
||||
mStaticGeometry[ptr.getCell()] = sg;
|
||||
}
|
||||
else
|
||||
sg = mStaticGeometry[ptr.getCell()];
|
||||
}
|
||||
|
||||
// This specifies the size of a single batch region.
|
||||
// If it is set too high:
|
||||
// - there will be problems choosing the correct lights
|
||||
// - the culling will be more inefficient
|
||||
// If it is set too low:
|
||||
// - there will be too many batches.
|
||||
if(ptr.getCell()->isExterior())
|
||||
sg->setRegionDimensions(Ogre::Vector3(2048,2048,2048));
|
||||
else
|
||||
sg->setRegionDimensions(Ogre::Vector3(1024,1024,1024));
|
||||
|
||||
sg->setVisibilityFlags(small ? RV_StaticsSmall : RV_Statics);
|
||||
|
||||
sg->setCastShadows(true);
|
||||
|
||||
sg->setRenderQueueGroup(RQG_Main);
|
||||
|
||||
anim->fillBatch(sg);
|
||||
/* TODO: We could hold on to this and just detach it from the scene graph, so if the Ptr
|
||||
* ever needs to modify we can reattach it and rebuild the StaticGeometry object without
|
||||
* it. Would require associating the Ptr with the StaticGeometry. */
|
||||
anim.reset();
|
||||
}
|
||||
}
|
||||
|
||||
if(anim.get() != NULL)
|
||||
mObjects.insert(std::make_pair(ptr, anim.release()));
|
||||
*/
|
||||
}
|
||||
|
||||
bool Objects::deleteObject (const MWWorld::Ptr& ptr)
|
||||
{
|
||||
/*
|
||||
if(!ptr.getRefData().getBaseNode())
|
||||
return true;
|
||||
|
||||
|
@ -173,13 +119,14 @@ bool Objects::deleteObject (const MWWorld::Ptr& ptr)
|
|||
ptr.getRefData().setBaseNode(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void Objects::removeCell(MWWorld::CellStore* store)
|
||||
{
|
||||
/*
|
||||
for(PtrAnimationMap::iterator iter = mObjects.begin();iter != mObjects.end();)
|
||||
{
|
||||
if(iter->first.getCell() == store)
|
||||
|
@ -216,20 +163,7 @@ void Objects::removeCell(MWWorld::CellStore* store)
|
|||
mRenderer.getScene()->destroySceneNode(cell->second);
|
||||
mCellSceneNodes.erase(cell);
|
||||
}
|
||||
}
|
||||
|
||||
void Objects::buildStaticGeometry(MWWorld::CellStore& cell)
|
||||
{
|
||||
if(mStaticGeometry.find(&cell) != mStaticGeometry.end())
|
||||
{
|
||||
Ogre::StaticGeometry* sg = mStaticGeometry[&cell];
|
||||
sg->build();
|
||||
}
|
||||
if(mStaticGeometrySmall.find(&cell) != mStaticGeometrySmall.end())
|
||||
{
|
||||
Ogre::StaticGeometry* sg = mStaticGeometrySmall[&cell];
|
||||
sg->build();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
Ogre::AxisAlignedBox Objects::getDimensions(MWWorld::CellStore* cell)
|
||||
|
@ -239,33 +173,16 @@ Ogre::AxisAlignedBox Objects::getDimensions(MWWorld::CellStore* cell)
|
|||
|
||||
void Objects::update(float dt, Ogre::Camera* camera)
|
||||
{
|
||||
/*
|
||||
PtrAnimationMap::const_iterator it = mObjects.begin();
|
||||
for(;it != mObjects.end();++it)
|
||||
it->second->runAnimation(dt);
|
||||
|
||||
it = mObjects.begin();
|
||||
for(;it != mObjects.end();++it)
|
||||
it->second->preRender(camera);
|
||||
|
||||
}
|
||||
|
||||
void Objects::rebuildStaticGeometry()
|
||||
{
|
||||
for (std::map<MWWorld::CellStore *, Ogre::StaticGeometry*>::iterator it = mStaticGeometry.begin(); it != mStaticGeometry.end(); ++it)
|
||||
{
|
||||
it->second->destroy();
|
||||
it->second->build();
|
||||
}
|
||||
|
||||
for (std::map<MWWorld::CellStore *, Ogre::StaticGeometry*>::iterator it = mStaticGeometrySmall.begin(); it != mStaticGeometrySmall.end(); ++it)
|
||||
{
|
||||
it->second->destroy();
|
||||
it->second->build();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void Objects::updateObjectCell(const MWWorld::Ptr &old, const MWWorld::Ptr &cur)
|
||||
{
|
||||
/*
|
||||
Ogre::SceneNode *node;
|
||||
MWWorld::CellStore *newCell = cur.getCell();
|
||||
|
||||
|
@ -286,13 +203,16 @@ void Objects::updateObjectCell(const MWWorld::Ptr &old, const MWWorld::Ptr &cur)
|
|||
anim->updatePtr(cur);
|
||||
mObjects[cur] = anim;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
ObjectAnimation* Objects::getAnimation(const MWWorld::Ptr &ptr)
|
||||
{
|
||||
/*
|
||||
PtrAnimationMap::const_iterator iter = mObjects.find(ptr);
|
||||
if(iter != mObjects.end())
|
||||
return iter->second;
|
||||
*/
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -55,7 +55,6 @@ public:
|
|||
///< \return found?
|
||||
|
||||
void removeCell(MWWorld::CellStore* store);
|
||||
void buildStaticGeometry(MWWorld::CellStore &cell);
|
||||
void setRootNode(Ogre::SceneNode* root);
|
||||
|
||||
void rebuildStaticGeometry();
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
|
||||
#include "../mwbase/world.hpp" // these includes can be removed once the static-hack is gone
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/inputmanager.hpp" // FIXME
|
||||
#include "../mwbase/windowmanager.hpp" // FIXME
|
||||
#include "../mwbase/statemanager.hpp"
|
||||
|
||||
|
@ -40,7 +39,6 @@
|
|||
|
||||
#include "../mwworld/ptr.hpp"
|
||||
|
||||
#include "shadows.hpp"
|
||||
#include "localmap.hpp"
|
||||
#include "water.hpp"
|
||||
#include "npcanimation.hpp"
|
||||
|
@ -59,7 +57,6 @@ RenderingManager::RenderingManager(OEngine::Render::OgreRenderer& _rend, const b
|
|||
: mRendering(_rend)
|
||||
, mFallback(fallback)
|
||||
, mPlayerAnimation(NULL)
|
||||
, mAmbientMode(0)
|
||||
, mSunEnabled(0)
|
||||
, mPhysicsEngine(engine)
|
||||
, mTerrain(NULL)
|
||||
|
@ -162,15 +159,12 @@ RenderingManager::RenderingManager(OEngine::Render::OgreRenderer& _rend, const b
|
|||
|
||||
mCamera = new MWRender::Camera(mRendering.getCamera());
|
||||
|
||||
mShadows = new Shadows(&mRendering);
|
||||
|
||||
mSkyManager = new SkyManager(mRootNode, mRendering.getCamera());
|
||||
|
||||
mOcclusionQuery = new OcclusionQuery(&mRendering, mSkyManager->getSunNode());
|
||||
|
||||
mSun = 0;
|
||||
|
||||
mDebugging = new Debugging(mRootNode, engine);
|
||||
mLocalMap = new MWRender::LocalMap(&mRendering, this);
|
||||
|
||||
mWater = new MWRender::Water(mRendering.getCamera(), this, mFallback);
|
||||
|
@ -185,8 +179,6 @@ RenderingManager::~RenderingManager ()
|
|||
delete mPlayerAnimation;
|
||||
delete mCamera;
|
||||
delete mSkyManager;
|
||||
delete mDebugging;
|
||||
delete mShadows;
|
||||
delete mTerrain;
|
||||
delete mLocalMap;
|
||||
delete mOcclusionQuery;
|
||||
|
@ -222,7 +214,6 @@ void RenderingManager::removeCell (MWWorld::CellStore *store)
|
|||
mLocalMap->saveFogOfWar(store);
|
||||
mObjects->removeCell(store);
|
||||
mActors->removeCell(store);
|
||||
mDebugging->cellRemoved(store);
|
||||
}
|
||||
|
||||
void RenderingManager::removeWater ()
|
||||
|
@ -251,7 +242,6 @@ void RenderingManager::cellAdded (MWWorld::CellStore *store)
|
|||
|
||||
mObjects->buildStaticGeometry (*store);
|
||||
sh::Factory::getInstance().unloadUnreferencedMaterials();
|
||||
mDebugging->cellAdded(store);
|
||||
}
|
||||
|
||||
void RenderingManager::addObject (const MWWorld::Ptr& ptr, const std::string& model){
|
||||
|
@ -477,9 +467,10 @@ void RenderingManager::skySetMoonColour (bool red){
|
|||
|
||||
bool RenderingManager::toggleRenderMode(int mode)
|
||||
{
|
||||
#if 0
|
||||
if (mode == MWBase::World::Render_CollisionDebug || mode == MWBase::World::Render_Pathgrid)
|
||||
return mDebugging->toggleRenderMode(mode);
|
||||
else if (mode == MWBase::World::Render_Wireframe)
|
||||
if (mode == MWBase::World::Render_Wireframe)
|
||||
{
|
||||
if (mRendering.getCamera()->getPolygonMode() == PM_SOLID)
|
||||
{
|
||||
|
@ -498,6 +489,8 @@ bool RenderingManager::toggleRenderMode(int mode)
|
|||
mRendering.getScene()->showBoundingBoxes(show);
|
||||
return show;
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
void RenderingManager::configureFog(const MWWorld::CellStore &mCell)
|
||||
|
@ -547,20 +540,7 @@ void RenderingManager::applyFog (bool underwater)
|
|||
|
||||
void RenderingManager::setAmbientMode()
|
||||
{
|
||||
switch (mAmbientMode)
|
||||
{
|
||||
case 0:
|
||||
setAmbientColour(mAmbientColor);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
setAmbientColour(0.7f*mAmbientColor + 0.3f*ColourValue(1,1,1));
|
||||
break;
|
||||
|
||||
case 2:
|
||||
setAmbientColour(ColourValue(1,1,1));
|
||||
break;
|
||||
}
|
||||
setAmbientColour(mAmbientColor);
|
||||
}
|
||||
|
||||
void RenderingManager::configureAmbient(MWWorld::CellStore &mCell)
|
||||
|
@ -805,12 +785,6 @@ void RenderingManager::processChangedSettings(const Settings::CategorySettingVec
|
|||
sh::Factory::getInstance ().setCurrentLanguage (lang);
|
||||
rebuild = true;
|
||||
}
|
||||
else if (it->first == "Shadows")
|
||||
{
|
||||
mShadows->recreate ();
|
||||
|
||||
rebuild = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (changeRes)
|
||||
|
|
|
@ -248,9 +248,6 @@ private:
|
|||
|
||||
MWRender::NpcAnimation *mPlayerAnimation;
|
||||
|
||||
// 0 normal, 1 more bright, 2 max
|
||||
int mAmbientMode;
|
||||
|
||||
Ogre::ColourValue mAmbientColor;
|
||||
Ogre::Light* mSun;
|
||||
|
||||
|
@ -264,12 +261,8 @@ private:
|
|||
|
||||
MWRender::Camera *mCamera;
|
||||
|
||||
MWRender::Debugging *mDebugging;
|
||||
|
||||
MWRender::LocalMap* mLocalMap;
|
||||
|
||||
MWRender::Shadows* mShadows;
|
||||
|
||||
bool mRenderWorld;
|
||||
};
|
||||
|
||||
|
|
|
@ -270,6 +270,7 @@ namespace MWScript
|
|||
|
||||
std::string InterpreterContext::getActionBinding(const std::string& action) const
|
||||
{
|
||||
/*
|
||||
MWBase::InputManager* input = MWBase::Environment::get().getInputManager();
|
||||
std::vector<int> actions = input->getActionKeySorting ();
|
||||
for (std::vector<int>::const_iterator it = actions.begin(); it != actions.end(); ++it)
|
||||
|
@ -286,6 +287,7 @@ namespace MWScript
|
|||
return input->getActionKeyBindingName (*it);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
return "None";
|
||||
}
|
||||
|
|
|
@ -211,6 +211,7 @@ namespace MWSound
|
|||
Ogre::StringVector filelist;
|
||||
if (mMusicFiles.find(mCurrentPlaylist) == mMusicFiles.end())
|
||||
{
|
||||
#if 0
|
||||
Ogre::StringVector groups = Ogre::ResourceGroupManager::getSingleton().getResourceGroups ();
|
||||
for (Ogre::StringVector::iterator it = groups.begin(); it != groups.end(); ++it)
|
||||
{
|
||||
|
@ -219,6 +220,8 @@ namespace MWSound
|
|||
filelist.insert(filelist.end(), resourcesInThisGroup->begin(), resourcesInThisGroup->end());
|
||||
}
|
||||
mMusicFiles[mCurrentPlaylist] = filelist;
|
||||
|
||||
#endif
|
||||
}
|
||||
else
|
||||
filelist = mMusicFiles[mCurrentPlaylist];
|
||||
|
|
|
@ -14,10 +14,9 @@
|
|||
#include <openengine/bullet/physic.hpp>
|
||||
#include <openengine/bullet/BtOgreExtras.h>
|
||||
#include <openengine/ogre/renderer.hpp>
|
||||
#include <openengine/bullet/BulletShapeLoader.h>
|
||||
//#include <openengine/bullet/BulletShapeLoader.h>
|
||||
|
||||
#include <components/nifbullet/bulletnifloader.hpp>
|
||||
#include <components/nifogre/skeleton.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
|
||||
#include <components/esm/loadgmst.hpp>
|
||||
|
@ -31,7 +30,7 @@
|
|||
#include "../mwworld/esmstore.hpp"
|
||||
#include "../mwworld/cellstore.hpp"
|
||||
|
||||
#include "../apps/openmw/mwrender/animation.hpp"
|
||||
//#include "../apps/openmw/mwrender/animation.hpp"
|
||||
#include "../apps/openmw/mwbase/world.hpp"
|
||||
#include "../apps/openmw/mwbase/environment.hpp"
|
||||
|
||||
|
@ -45,6 +44,7 @@ namespace
|
|||
|
||||
void animateCollisionShapes (std::map<OEngine::Physic::RigidBody*, OEngine::Physic::AnimatedShapeInstance>& map, btDynamicsWorld* dynamicsWorld)
|
||||
{
|
||||
/*
|
||||
for (std::map<OEngine::Physic::RigidBody*, OEngine::Physic::AnimatedShapeInstance>::iterator it = map.begin();
|
||||
it != map.end(); ++it)
|
||||
{
|
||||
|
@ -85,6 +85,7 @@ void animateCollisionShapes (std::map<OEngine::Physic::RigidBody*, OEngine::Phys
|
|||
// needed because we used btDynamicsWorld::setForceUpdateAllAabbs(false)
|
||||
dynamicsWorld->updateSingleAabb(it->first);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -502,8 +503,8 @@ namespace MWWorld
|
|||
mRender(_rend), mEngine(0), mTimeAccum(0.0f), mWaterEnabled(false), mWaterHeight(0)
|
||||
{
|
||||
// Create physics. shapeLoader is deleted by the physic engine
|
||||
NifBullet::ManualBulletShapeLoader* shapeLoader = new NifBullet::ManualBulletShapeLoader();
|
||||
mEngine = new OEngine::Physic::PhysicEngine(shapeLoader);
|
||||
//NifBullet::ManualBulletShapeLoader* shapeLoader = new NifBullet::ManualBulletShapeLoader();
|
||||
mEngine = new OEngine::Physic::PhysicEngine(0);//shapeLoader);
|
||||
}
|
||||
|
||||
PhysicsSystem::~PhysicsSystem()
|
||||
|
@ -521,7 +522,7 @@ namespace MWWorld
|
|||
|
||||
std::pair<float, std::string> PhysicsSystem::getFacedHandle(float queryDistance)
|
||||
{
|
||||
Ray ray = mRender.getCamera()->getCameraToViewportRay(0.5, 0.5);
|
||||
Ray ray;// = mRender.getCamera()->getCameraToViewportRay(0.5, 0.5);
|
||||
|
||||
Ogre::Vector3 origin_ = ray.getOrigin();
|
||||
btVector3 origin(origin_.x, origin_.y, origin_.z);
|
||||
|
@ -537,7 +538,7 @@ namespace MWWorld
|
|||
|
||||
std::vector < std::pair <float, std::string> > PhysicsSystem::getFacedHandles (float queryDistance)
|
||||
{
|
||||
Ray ray = mRender.getCamera()->getCameraToViewportRay(0.5, 0.5);
|
||||
Ray ray;// = mRender.getCamera()->getCameraToViewportRay(0.5, 0.5);
|
||||
|
||||
Ogre::Vector3 origin_ = ray.getOrigin();
|
||||
btVector3 origin(origin_.x, origin_.y, origin_.z);
|
||||
|
@ -555,7 +556,7 @@ namespace MWWorld
|
|||
|
||||
std::vector < std::pair <float, std::string> > PhysicsSystem::getFacedHandles (float mouseX, float mouseY, float queryDistance)
|
||||
{
|
||||
Ray ray = mRender.getCamera()->getCameraToViewportRay(mouseX, mouseY);
|
||||
Ray ray;// = mRender.getCamera()->getCameraToViewportRay(mouseX, mouseY);
|
||||
Ogre::Vector3 from = ray.getOrigin();
|
||||
Ogre::Vector3 to = ray.getPoint(queryDistance);
|
||||
|
||||
|
@ -628,9 +629,9 @@ namespace MWWorld
|
|||
|
||||
std::pair<bool, Ogre::Vector3> PhysicsSystem::castRay(float mouseX, float mouseY, Ogre::Vector3* normal, std::string* hit)
|
||||
{
|
||||
Ogre::Ray ray = mRender.getCamera()->getCameraToViewportRay(
|
||||
mouseX,
|
||||
mouseY);
|
||||
Ogre::Ray ray;// = mRender.getCamera()->getCameraToViewportRay(
|
||||
//mouseX,
|
||||
//mouseY);
|
||||
Ogre::Vector3 from = ray.getOrigin();
|
||||
Ogre::Vector3 to = ray.getPoint(200); /// \todo make this distance (ray length) configurable
|
||||
|
||||
|
@ -755,7 +756,7 @@ namespace MWWorld
|
|||
if(handleToMesh.find(handle) != handleToMesh.end())
|
||||
{
|
||||
std::string model = ptr.getClass().getModel(ptr);
|
||||
model = Misc::ResourceHelpers::correctActorModelPath(model); // FIXME: scaling shouldn't require model
|
||||
//model = Misc::ResourceHelpers::correctActorModelPath(model); // FIXME: scaling shouldn't require model
|
||||
|
||||
bool placeable = false;
|
||||
if (OEngine::Physic::RigidBody* body = mEngine->getRigidBody(handle,true))
|
||||
|
@ -803,8 +804,9 @@ namespace MWWorld
|
|||
|
||||
bool PhysicsSystem::getObjectAABB(const MWWorld::Ptr &ptr, Ogre::Vector3 &min, Ogre::Vector3 &max)
|
||||
{
|
||||
// FIXME: since raycasting shapes are going away, this should use the osg ComputeBoundingBoxVisitor
|
||||
std::string model = ptr.getClass().getModel(ptr);
|
||||
model = Misc::ResourceHelpers::correctActorModelPath(model);
|
||||
//model = Misc::ResourceHelpers::correctActorModelPath(model);
|
||||
if (model.empty()) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
#include <components/nif/niffile.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/settings/settings.hpp>
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
@ -11,7 +12,7 @@
|
|||
#include "../mwbase/mechanicsmanager.hpp"
|
||||
#include "../mwbase/windowmanager.hpp"
|
||||
|
||||
#include "physicssystem.hpp"
|
||||
//#include "physicssystem.hpp"
|
||||
#include "player.hpp"
|
||||
#include "localscripts.hpp"
|
||||
#include "esmstore.hpp"
|
||||
|
@ -22,6 +23,7 @@
|
|||
namespace
|
||||
{
|
||||
|
||||
#if 0
|
||||
void addObject(const MWWorld::Ptr& ptr, MWWorld::PhysicsSystem& physics,
|
||||
MWRender::RenderingManager& rendering)
|
||||
{
|
||||
|
@ -113,6 +115,7 @@ namespace
|
|||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -121,15 +124,15 @@ namespace MWWorld
|
|||
|
||||
void Scene::updateObjectLocalRotation (const Ptr& ptr)
|
||||
{
|
||||
::updateObjectLocalRotation(ptr, *mPhysics, mRendering);
|
||||
//::updateObjectLocalRotation(ptr, *mPhysics, mRendering);
|
||||
}
|
||||
|
||||
void Scene::updateObjectRotation (const Ptr& ptr)
|
||||
{
|
||||
if(ptr.getRefData().getBaseNode() != 0)
|
||||
{
|
||||
mRendering.rotateObject(ptr);
|
||||
mPhysics->rotateObject(ptr);
|
||||
//mRendering.rotateObject(ptr);
|
||||
//mPhysics->rotateObject(ptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -161,8 +164,8 @@ namespace MWWorld
|
|||
{
|
||||
// Note: exterior cell maps must be updated, even if they were visited before, because the set of surrounding cells might be different
|
||||
// (and objects in a different cell can "bleed" into another cells map if they cross the border)
|
||||
for (CellStoreCollection::iterator active = mActiveCells.begin(); active!=mActiveCells.end(); ++active)
|
||||
mRendering.requestMap(*active);
|
||||
//for (CellStoreCollection::iterator active = mActiveCells.begin(); active!=mActiveCells.end(); ++active)
|
||||
//mRendering.requestMap(*active);
|
||||
mNeedMapUpdate = false;
|
||||
|
||||
if (mCurrentCell->isExterior())
|
||||
|
@ -173,7 +176,7 @@ namespace MWWorld
|
|||
}
|
||||
}
|
||||
|
||||
mRendering.update (duration, paused);
|
||||
//mRendering.update (duration, paused);
|
||||
}
|
||||
|
||||
void Scene::unloadCell (CellStoreCollection::iterator iter)
|
||||
|
@ -188,7 +191,7 @@ namespace MWWorld
|
|||
iter2!=functor.mHandles.end(); ++iter2)
|
||||
{
|
||||
Ogre::SceneNode* node = *iter2;
|
||||
mPhysics->removeObject (node->getName());
|
||||
//mPhysics->removeObject (node->getName());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -199,11 +202,11 @@ namespace MWWorld
|
|||
(*iter)->getCell()->getGridX(),
|
||||
(*iter)->getCell()->getGridY()
|
||||
);
|
||||
if (land && land->mDataTypes&ESM::Land::DATA_VHGT)
|
||||
mPhysics->removeHeightField ((*iter)->getCell()->getGridX(), (*iter)->getCell()->getGridY());
|
||||
//if (land && land->mDataTypes&ESM::Land::DATA_VHGT)
|
||||
//mPhysics->removeHeightField ((*iter)->getCell()->getGridX(), (*iter)->getCell()->getGridY());
|
||||
}
|
||||
|
||||
mRendering.removeCell(*iter);
|
||||
//mRendering.removeCell(*iter);
|
||||
|
||||
MWBase::Environment::get().getWorld()->getLocalScripts().clearCell (*iter);
|
||||
|
||||
|
@ -224,6 +227,7 @@ namespace MWWorld
|
|||
float verts = ESM::Land::LAND_SIZE;
|
||||
float worldsize = ESM::Land::REAL_SIZE;
|
||||
|
||||
#if 0
|
||||
// Load terrain physics first...
|
||||
if (cell->getCell()->isExterior())
|
||||
{
|
||||
|
@ -248,6 +252,7 @@ namespace MWWorld
|
|||
;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
cell->respawn();
|
||||
|
||||
|
@ -255,6 +260,7 @@ namespace MWWorld
|
|||
/// \todo rescale depending on the state of a new GMST
|
||||
insertCell (*cell, true, loadingListener);
|
||||
|
||||
#if 0
|
||||
mRendering.cellAdded (cell);
|
||||
bool waterEnabled = cell->getCell()->hasWater();
|
||||
mRendering.setWaterEnabled(waterEnabled);
|
||||
|
@ -267,6 +273,7 @@ namespace MWWorld
|
|||
mPhysics->disableWater();
|
||||
|
||||
mRendering.configureAmbient(*cell);
|
||||
#endif
|
||||
}
|
||||
|
||||
// register local scripts
|
||||
|
@ -300,7 +307,7 @@ namespace MWWorld
|
|||
int newX, newY;
|
||||
MWBase::Environment::get().getWorld()->positionToIndex(pos.x, pos.y, newX, newY);
|
||||
changeCellGrid(newX, newY);
|
||||
mRendering.updateTerrain();
|
||||
//mRendering.updateTerrain();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -309,7 +316,7 @@ namespace MWWorld
|
|||
Loading::Listener* loadingListener = MWBase::Environment::get().getWindowManager()->getLoadingScreen();
|
||||
Loading::ScopedLoad load(loadingListener);
|
||||
|
||||
mRendering.enableTerrain(true);
|
||||
//mRendering.enableTerrain(true);
|
||||
|
||||
std::string loadingExteriorText = "#{sLoadingMessage3}";
|
||||
loadingListener->setLabel(loadingExteriorText);
|
||||
|
@ -404,7 +411,7 @@ namespace MWWorld
|
|||
world->getPlayer().setCell(cell);
|
||||
|
||||
MWWorld::Ptr player = world->getPlayerPtr();
|
||||
mRendering.updatePlayerPtr(player);
|
||||
//mRendering.updatePlayerPtr(player);
|
||||
|
||||
if (adjustPlayerPos) {
|
||||
world->moveObject(player, pos.pos[0], pos.pos[1], pos.pos[2]);
|
||||
|
@ -428,7 +435,7 @@ namespace MWWorld
|
|||
|
||||
//We need the ogre renderer and a scene node.
|
||||
Scene::Scene (MWRender::RenderingManager& rendering, PhysicsSystem *physics)
|
||||
: mCurrentCell (0), mCellChanged (false), mPhysics(physics), mRendering(rendering), mNeedMapUpdate(false)
|
||||
: mCurrentCell (0), mCellChanged (false), /*mPhysics(physics), mRendering(rendering),*/ mNeedMapUpdate(false)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -460,7 +467,7 @@ namespace MWWorld
|
|||
loadingListener->setLabel(loadingInteriorText);
|
||||
Loading::ScopedLoad load(loadingListener);
|
||||
|
||||
mRendering.enableTerrain(false);
|
||||
//mRendering.enableTerrain(false);
|
||||
|
||||
if(!loadcell)
|
||||
{
|
||||
|
@ -497,7 +504,7 @@ namespace MWWorld
|
|||
changePlayerCell(cell, position, true);
|
||||
|
||||
// adjust fog
|
||||
mRendering.configureFog(*mCurrentCell);
|
||||
//mRendering.configureFog(*mCurrentCell);
|
||||
|
||||
// Sky system
|
||||
MWBase::Environment::get().getWorld()->adjustSky();
|
||||
|
@ -523,7 +530,7 @@ namespace MWWorld
|
|||
CellStore* current = MWBase::Environment::get().getWorld()->getExterior(x, y);
|
||||
changePlayerCell(current, position, adjustPlayerPos);
|
||||
|
||||
mRendering.updateTerrain();
|
||||
//mRendering.updateTerrain();
|
||||
}
|
||||
|
||||
CellStore* Scene::getCurrentCell ()
|
||||
|
@ -538,17 +545,17 @@ namespace MWWorld
|
|||
|
||||
void Scene::insertCell (CellStore &cell, bool rescale, Loading::Listener* loadingListener)
|
||||
{
|
||||
InsertFunctor functor (cell, rescale, *loadingListener, *mPhysics, mRendering);
|
||||
cell.forEach (functor);
|
||||
//InsertFunctor functor (cell, rescale, *loadingListener, *mPhysics, mRendering);
|
||||
//cell.forEach (functor);
|
||||
}
|
||||
|
||||
void Scene::addObjectToScene (const Ptr& ptr)
|
||||
{
|
||||
try
|
||||
{
|
||||
addObject(ptr, *mPhysics, mRendering);
|
||||
MWBase::Environment::get().getWorld()->rotateObject(ptr, 0, 0, 0, true);
|
||||
MWBase::Environment::get().getWorld()->scaleObject(ptr, ptr.getCellRef().getScale());
|
||||
//addObject(ptr, *mPhysics, mRendering);
|
||||
//MWBase::Environment::get().getWorld()->rotateObject(ptr, 0, 0, 0, true);
|
||||
//MWBase::Environment::get().getWorld()->scaleObject(ptr, ptr.getCellRef().getScale());
|
||||
}
|
||||
catch (std::exception& e)
|
||||
{
|
||||
|
@ -560,8 +567,8 @@ namespace MWWorld
|
|||
{
|
||||
MWBase::Environment::get().getMechanicsManager()->remove (ptr);
|
||||
MWBase::Environment::get().getSoundManager()->stopSound3D (ptr);
|
||||
mPhysics->removeObject (ptr.getRefData().getHandle());
|
||||
mRendering.removeObject (ptr);
|
||||
//mPhysics->removeObject (ptr.getRefData().getHandle());
|
||||
//mRendering.removeObject (ptr);
|
||||
}
|
||||
|
||||
bool Scene::isCellActive(const CellStore &cell)
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
#ifndef GAME_MWWORLD_SCENE_H
|
||||
#define GAME_MWWORLD_SCENE_H
|
||||
|
||||
#include "../mwrender/renderingmanager.hpp"
|
||||
//#include "../mwrender/renderingmanager.hpp"
|
||||
|
||||
#include "ptr.hpp"
|
||||
#include "globals.hpp"
|
||||
|
||||
#include <set>
|
||||
|
||||
namespace Ogre
|
||||
{
|
||||
class Vector3;
|
||||
|
@ -35,6 +37,7 @@ namespace MWRender
|
|||
{
|
||||
class SkyManager;
|
||||
class CellRender;
|
||||
class RenderingManager;
|
||||
}
|
||||
|
||||
namespace MWWorld
|
||||
|
@ -55,8 +58,8 @@ namespace MWWorld
|
|||
CellStore* mCurrentCell; // the cell the player is in
|
||||
CellStoreCollection mActiveCells;
|
||||
bool mCellChanged;
|
||||
PhysicsSystem *mPhysics;
|
||||
MWRender::RenderingManager& mRendering;
|
||||
//PhysicsSystem *mPhysics;
|
||||
//MWRender::RenderingManager& mRendering;
|
||||
|
||||
bool mNeedMapUpdate;
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
#include "../mwsound/sound.hpp"
|
||||
|
||||
#include "../mwrender/renderingmanager.hpp"
|
||||
//#include "../mwrender/renderingmanager.hpp"
|
||||
|
||||
#include "player.hpp"
|
||||
#include "esmstore.hpp"
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
#include <openengine/misc/rng.hpp>
|
||||
|
||||
#include <components/bsa/bsa_archive.hpp>
|
||||
#include <components/files/collections.hpp>
|
||||
#include <components/compiler/locals.hpp>
|
||||
#include <components/esm/cellid.hpp>
|
||||
|
@ -37,8 +36,7 @@
|
|||
#include "../mwmechanics/combat.hpp"
|
||||
#include "../mwmechanics/aiavoiddoor.hpp" //Used to tell actors to avoid doors
|
||||
|
||||
#include "../mwrender/sky.hpp"
|
||||
#include "../mwrender/animation.hpp"
|
||||
//#include "../mwrender/animation.hpp"
|
||||
|
||||
#include "../mwscript/interpretercontext.hpp"
|
||||
|
||||
|
@ -51,7 +49,8 @@
|
|||
#include "containerstore.hpp"
|
||||
#include "inventorystore.hpp"
|
||||
#include "actionteleport.hpp"
|
||||
#include "projectilemanager.hpp"
|
||||
//#include "projectilemanager.hpp"
|
||||
#include "weather.hpp"
|
||||
|
||||
#include "contentloader.hpp"
|
||||
#include "esmloader.hpp"
|
||||
|
@ -129,6 +128,7 @@ namespace MWWorld
|
|||
|
||||
void World::adjustSky()
|
||||
{
|
||||
#if 0
|
||||
if (mSky && (isCellExterior() || isCellQuasiExterior()))
|
||||
{
|
||||
mRendering->skySetHour (mGlobalVariables["gamehour"].getFloat());
|
||||
|
@ -139,9 +139,10 @@ namespace MWWorld
|
|||
}
|
||||
else
|
||||
mRendering->skyDisable();
|
||||
#endif
|
||||
}
|
||||
|
||||
World::World (OEngine::Render::OgreRenderer& renderer,
|
||||
World::World (
|
||||
const Files::Collections& fileCollections,
|
||||
const std::vector<std::string>& contentFiles,
|
||||
const boost::filesystem::path& resDir, const boost::filesystem::path& cacheDir,
|
||||
|
@ -156,16 +157,16 @@ namespace MWWorld
|
|||
mStartCell (startCell), mStartupScript(startupScript),
|
||||
mScriptsEnabled(true)
|
||||
{
|
||||
mPhysics = new PhysicsSystem(renderer);
|
||||
mPhysEngine = mPhysics->getEngine();
|
||||
|
||||
//mPhysics = new PhysicsSystem(renderer);
|
||||
//mPhysEngine = mPhysics->getEngine();
|
||||
#if 0
|
||||
mProjectileManager.reset(new ProjectileManager(renderer.getScene(), *mPhysEngine));
|
||||
#endif
|
||||
//mRendering = new MWRender::RenderingManager(renderer, resDir, cacheDir, mPhysEngine,&mFallback);
|
||||
|
||||
mRendering = new MWRender::RenderingManager(renderer, resDir, cacheDir, mPhysEngine,&mFallback);
|
||||
//mPhysEngine->setSceneManager(renderer.getScene());
|
||||
|
||||
mPhysEngine->setSceneManager(renderer.getScene());
|
||||
|
||||
mWeatherManager = new MWWorld::WeatherManager(mRendering,&mFallback);
|
||||
//mWeatherManager = new MWWorld::WeatherManager(mRendering,&mFallback);
|
||||
|
||||
mEsm.resize(contentFiles.size());
|
||||
Loading::Listener* listener = MWBase::Environment::get().getWindowManager()->getLoadingScreen();
|
||||
|
@ -195,7 +196,7 @@ namespace MWWorld
|
|||
|
||||
mGlobalVariables.fill (mStore);
|
||||
|
||||
mWorldScene = new Scene(*mRendering, mPhysics);
|
||||
mWorldScene = new Scene(*mRendering, NULL/*mPhysics*/);
|
||||
}
|
||||
|
||||
void World::startNewGame (bool bypass)
|
||||
|
@ -208,7 +209,7 @@ namespace MWWorld
|
|||
setupPlayer();
|
||||
|
||||
renderPlayer();
|
||||
mRendering->resetCamera();
|
||||
//mRendering->resetCamera();
|
||||
|
||||
MWBase::Environment::get().getWindowManager()->updatePlayer();
|
||||
|
||||
|
@ -257,13 +258,13 @@ namespace MWWorld
|
|||
MWBase::Environment::get().getWindowManager()->playVideo(mFallback.getFallbackString("Movies_New_Game"), true);
|
||||
|
||||
// enable collision
|
||||
if (!mPhysics->toggleCollisionMode())
|
||||
mPhysics->toggleCollisionMode();
|
||||
//if (!mPhysics->toggleCollisionMode())
|
||||
// mPhysics->toggleCollisionMode();
|
||||
|
||||
// we don't want old weather to persist on a new game
|
||||
delete mWeatherManager;
|
||||
mWeatherManager = 0;
|
||||
mWeatherManager = new MWWorld::WeatherManager(mRendering,&mFallback);
|
||||
//delete mWeatherManager;
|
||||
//mWeatherManager = 0;
|
||||
//mWeatherManager = new MWWorld::WeatherManager(mRendering,&mFallback);
|
||||
|
||||
if (!mStartupScript.empty())
|
||||
MWBase::Environment::get().getWindowManager()->executeInConsole(mStartupScript);
|
||||
|
@ -271,11 +272,11 @@ namespace MWWorld
|
|||
|
||||
void World::clear()
|
||||
{
|
||||
mWeatherManager->clear();
|
||||
mRendering->clear();
|
||||
|
||||
//mWeatherManager->clear();
|
||||
//mRendering->clear();
|
||||
#if 0
|
||||
mProjectileManager->clear();
|
||||
|
||||
#endif
|
||||
mLocalScripts.clear();
|
||||
|
||||
mWorldScene->changeToVoid();
|
||||
|
@ -310,7 +311,9 @@ namespace MWWorld
|
|||
mCells.countSavedGameRecords()
|
||||
+mStore.countSavedGameRecords()
|
||||
+mGlobalVariables.countSavedGameRecords()
|
||||
#if 0
|
||||
+mProjectileManager->countSavedGameRecords()
|
||||
#endif
|
||||
+1 // player record
|
||||
+1 // weather record
|
||||
+1 // actorId counter
|
||||
|
@ -329,8 +332,8 @@ namespace MWWorld
|
|||
for (Scene::CellStoreCollection::const_iterator iter (mWorldScene->getActiveCells().begin());
|
||||
iter!=mWorldScene->getActiveCells().end(); ++iter)
|
||||
{
|
||||
CellStore* cellstore = *iter;
|
||||
mRendering->writeFog(cellstore);
|
||||
//CellStore* cellstore = *iter;
|
||||
//mRendering->writeFog(cellstore);
|
||||
}
|
||||
|
||||
MWMechanics::CreatureStats::writeActorIdCounter(writer);
|
||||
|
@ -340,9 +343,10 @@ namespace MWWorld
|
|||
mCells.write (writer, progress);
|
||||
mGlobalVariables.write (writer, progress);
|
||||
mPlayer->write (writer, progress);
|
||||
mWeatherManager->write (writer, progress);
|
||||
//mWeatherManager->write (writer, progress);
|
||||
#if 0
|
||||
mProjectileManager->write (writer, progress);
|
||||
|
||||
#endif
|
||||
writer.startRecord(ESM::REC_ENAB);
|
||||
writer.writeHNT("TELE", mTeleportEnabled);
|
||||
writer.writeHNT("LEVT", mLevitationEnabled);
|
||||
|
@ -369,9 +373,12 @@ namespace MWWorld
|
|||
if (!mStore.readRecord (reader, type) &&
|
||||
!mGlobalVariables.readRecord (reader, type) &&
|
||||
!mPlayer->readRecord (reader, type) &&
|
||||
!mWeatherManager->readRecord (reader, type) &&
|
||||
!mCells.readRecord (reader, type, contentFileMap) &&
|
||||
!mProjectileManager->readRecord (reader, type))
|
||||
//!mWeatherManager->readRecord (reader, type) &&
|
||||
!mCells.readRecord (reader, type, contentFileMap)
|
||||
#if 0
|
||||
&& !mProjectileManager->readRecord (reader, type)
|
||||
#endif
|
||||
)
|
||||
{
|
||||
throw std::runtime_error ("unknown record in saved game");
|
||||
}
|
||||
|
@ -463,13 +470,14 @@ namespace MWWorld
|
|||
|
||||
World::~World()
|
||||
{
|
||||
#if 0
|
||||
// Must be cleared before mRendering is destroyed
|
||||
mProjectileManager->clear();
|
||||
|
||||
delete mWeatherManager;
|
||||
#endif
|
||||
//delete mWeatherManager;
|
||||
delete mWorldScene;
|
||||
delete mRendering;
|
||||
delete mPhysics;
|
||||
//delete mRendering;
|
||||
//delete mPhysics;
|
||||
|
||||
delete mPlayer;
|
||||
}
|
||||
|
@ -521,6 +529,7 @@ namespace MWWorld
|
|||
|
||||
void World::useDeathCamera()
|
||||
{
|
||||
#if 0
|
||||
if(mRendering->getCamera()->isVanityOrPreviewModeEnabled() )
|
||||
{
|
||||
mRendering->getCamera()->togglePreviewMode(false);
|
||||
|
@ -528,6 +537,7 @@ namespace MWWorld
|
|||
}
|
||||
if(mRendering->getCamera()->isFirstPerson())
|
||||
mRendering->getCamera()->toggleViewMode(true);
|
||||
#endif
|
||||
}
|
||||
|
||||
MWWorld::Player& World::getPlayer()
|
||||
|
@ -804,7 +814,7 @@ namespace MWWorld
|
|||
{
|
||||
MWBase::Environment::get().getMechanicsManager()->advanceTime(static_cast<float>(hours * 3600));
|
||||
|
||||
mWeatherManager->advanceTime (hours);
|
||||
//mWeatherManager->advanceTime (hours);
|
||||
|
||||
hours += mGlobalVariables["gamehour"].getFloat();
|
||||
|
||||
|
@ -828,9 +838,9 @@ namespace MWWorld
|
|||
|
||||
mGlobalVariables["gamehour"].setFloat(static_cast<float>(hour));
|
||||
|
||||
mRendering->skySetHour (hour);
|
||||
//mRendering->skySetHour (hour);
|
||||
|
||||
mWeatherManager->setHour(static_cast<float>(hour));
|
||||
//mWeatherManager->setHour(static_cast<float>(hour));
|
||||
|
||||
if (days>0)
|
||||
setDay (days + mGlobalVariables["day"].getInteger());
|
||||
|
@ -865,7 +875,7 @@ namespace MWWorld
|
|||
mGlobalVariables["day"].setInteger (day);
|
||||
mGlobalVariables["month"].setInteger (month);
|
||||
|
||||
mRendering->skySetDate (day, month);
|
||||
//mRendering->skySetDate (day, month);
|
||||
}
|
||||
|
||||
void World::setMonth (int month)
|
||||
|
@ -886,7 +896,7 @@ namespace MWWorld
|
|||
if (years>0)
|
||||
mGlobalVariables["year"].setInteger (years+mGlobalVariables["year"].getInteger());
|
||||
|
||||
mRendering->skySetDate (mGlobalVariables["day"].getInteger(), month);
|
||||
//mRendering->skySetDate (mGlobalVariables["day"].getInteger(), month);
|
||||
}
|
||||
|
||||
int World::getDay() const
|
||||
|
@ -932,6 +942,7 @@ namespace MWWorld
|
|||
|
||||
bool World::toggleSky()
|
||||
{
|
||||
#if 0
|
||||
if (mSky)
|
||||
{
|
||||
mSky = false;
|
||||
|
@ -944,21 +955,23 @@ namespace MWWorld
|
|||
mRendering->skyEnable();
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
int World::getMasserPhase() const
|
||||
{
|
||||
return mRendering->skyGetMasserPhase();
|
||||
return 0;//mRendering->skyGetMasserPhase();
|
||||
}
|
||||
|
||||
int World::getSecundaPhase() const
|
||||
{
|
||||
return mRendering->skyGetSecundaPhase();
|
||||
return 0;//mRendering->skyGetSecundaPhase();
|
||||
}
|
||||
|
||||
void World::setMoonColour (bool red)
|
||||
{
|
||||
mRendering->skySetMoonColour (red);
|
||||
//mRendering->skySetMoonColour (red);
|
||||
}
|
||||
|
||||
float World::getTimeScaleFactor() const
|
||||
|
@ -968,13 +981,15 @@ namespace MWWorld
|
|||
|
||||
void World::changeToInteriorCell (const std::string& cellName, const ESM::Position& position)
|
||||
{
|
||||
mPhysics->clearQueuedMovement();
|
||||
//mPhysics->clearQueuedMovement();
|
||||
|
||||
if (mCurrentWorldSpace != cellName)
|
||||
{
|
||||
// changed worldspace
|
||||
#if 0
|
||||
mProjectileManager->clear();
|
||||
mRendering->notifyWorldSpaceChanged();
|
||||
#endif
|
||||
mCurrentWorldSpace = cellName;
|
||||
}
|
||||
|
||||
|
@ -985,13 +1000,15 @@ namespace MWWorld
|
|||
|
||||
void World::changeToExteriorCell (const ESM::Position& position)
|
||||
{
|
||||
mPhysics->clearQueuedMovement();
|
||||
//mPhysics->clearQueuedMovement();
|
||||
|
||||
if (mCurrentWorldSpace != "sys::default") // FIXME
|
||||
{
|
||||
// changed worldspace
|
||||
#if 0
|
||||
mProjectileManager->clear();
|
||||
mRendering->notifyWorldSpaceChanged();
|
||||
#endif
|
||||
}
|
||||
removeContainerScripts(getPlayerPtr());
|
||||
mWorldScene->changeToExteriorCell(position, true);
|
||||
|
@ -1049,6 +1066,7 @@ namespace MWWorld
|
|||
|
||||
std::pair<MWWorld::Ptr,Ogre::Vector3> World::getHitContact(const MWWorld::Ptr &ptr, float distance)
|
||||
{
|
||||
/*
|
||||
const ESM::Position &posdata = ptr.getRefData().getPosition();
|
||||
Ogre::Vector3 pos(posdata.pos);
|
||||
Ogre::Quaternion rot = Ogre::Quaternion(Ogre::Radian(posdata.rot[2]), Ogre::Vector3::NEGATIVE_UNIT_Z) *
|
||||
|
@ -1063,9 +1081,10 @@ namespace MWWorld
|
|||
if(node != NULL)
|
||||
pos += node->_getDerivedPosition();
|
||||
}
|
||||
*/
|
||||
|
||||
std::pair<std::string,Ogre::Vector3> result = mPhysics->getHitContact(ptr.getRefData().getHandle(),
|
||||
pos, rot, distance);
|
||||
std::pair<std::string,Ogre::Vector3> result;// = mPhysics->getHitContact(ptr.getRefData().getHandle(),
|
||||
// pos, rot, distance);
|
||||
if(result.first.empty())
|
||||
return std::make_pair(MWWorld::Ptr(), Ogre::Vector3(0.0f));
|
||||
|
||||
|
@ -1174,7 +1193,7 @@ namespace MWWorld
|
|||
MWWorld::Ptr copy =
|
||||
ptr.getClass().copyToCell(ptr, *newCell, pos);
|
||||
|
||||
mRendering->updateObjectCell(ptr, copy);
|
||||
//mRendering->updateObjectCell(ptr, copy);
|
||||
ptr.getRefData().setBaseNode(NULL);
|
||||
MWBase::Environment::get().getSoundManager()->updatePtr (ptr, copy);
|
||||
|
||||
|
@ -1196,8 +1215,8 @@ namespace MWWorld
|
|||
}
|
||||
if (haveToMove && ptr.getRefData().getBaseNode())
|
||||
{
|
||||
mRendering->moveObject(ptr, vec);
|
||||
mPhysics->moveObject (ptr);
|
||||
//mRendering->moveObject(ptr, vec);
|
||||
//mPhysics->moveObject (ptr);
|
||||
}
|
||||
if (isPlayer)
|
||||
{
|
||||
|
@ -1235,8 +1254,8 @@ namespace MWWorld
|
|||
|
||||
if(ptr.getRefData().getBaseNode() == 0)
|
||||
return;
|
||||
mRendering->scaleObject(ptr, Vector3(scale,scale,scale));
|
||||
mPhysics->scaleObject(ptr);
|
||||
//mRendering->scaleObject(ptr, Vector3(scale,scale,scale));
|
||||
//mPhysics->scaleObject(ptr);
|
||||
}
|
||||
|
||||
void World::rotateObjectImp (const Ptr& ptr, Ogre::Vector3 rot, bool adjust)
|
||||
|
@ -1322,7 +1341,7 @@ namespace MWWorld
|
|||
return;
|
||||
}
|
||||
|
||||
float terrainHeight = mRendering->getTerrainHeightAt(Ogre::Vector3(pos.pos));
|
||||
float terrainHeight = 0;//mRendering->getTerrainHeightAt(Ogre::Vector3(pos.pos));
|
||||
|
||||
if (pos.pos[2] < terrainHeight)
|
||||
pos.pos[2] = terrainHeight;
|
||||
|
@ -1333,7 +1352,7 @@ namespace MWWorld
|
|||
|
||||
if (force || !isFlying(ptr))
|
||||
{
|
||||
Ogre::Vector3 traced = mPhysics->traceDown(ptr, 500);
|
||||
Ogre::Vector3 traced;// = mPhysics->traceDown(ptr, 500);
|
||||
if (traced.z < pos.pos[2])
|
||||
pos.pos[2] = traced.z;
|
||||
}
|
||||
|
@ -1348,7 +1367,7 @@ namespace MWWorld
|
|||
pos.pos[2] += dist;
|
||||
actor.getRefData().setPosition(pos);
|
||||
|
||||
Ogre::Vector3 traced = mPhysics->traceDown(actor, dist*1.1f);
|
||||
Ogre::Vector3 traced;// = mPhysics->traceDown(actor, dist*1.1f);
|
||||
moveObject(actor, actor.getCell(), traced.x, traced.y, traced.z);
|
||||
}
|
||||
|
||||
|
@ -1389,12 +1408,13 @@ namespace MWWorld
|
|||
|
||||
void World::queueMovement(const Ptr &ptr, const Vector3 &velocity)
|
||||
{
|
||||
mPhysics->queueObjectMovement(ptr, velocity);
|
||||
//mPhysics->queueObjectMovement(ptr, velocity);
|
||||
}
|
||||
|
||||
void World::doPhysics(float duration)
|
||||
{
|
||||
mPhysics->stepSimulation(duration);
|
||||
#if 0
|
||||
//mPhysics->stepSimulation(duration);
|
||||
|
||||
processDoors(duration);
|
||||
|
||||
|
@ -1414,17 +1434,19 @@ namespace MWWorld
|
|||
}
|
||||
if(player != results.end())
|
||||
moveObjectImp(player->first, player->second.x, player->second.y, player->second.z);
|
||||
#endif
|
||||
}
|
||||
|
||||
bool World::castRay (float x1, float y1, float z1, float x2, float y2, float z2)
|
||||
{
|
||||
Ogre::Vector3 a(x1,y1,z1);
|
||||
Ogre::Vector3 b(x2,y2,z2);
|
||||
return mPhysics->castRay(a,b,false,true);
|
||||
return 0;//mPhysics->castRay(a,b,false,true);
|
||||
}
|
||||
|
||||
void World::processDoors(float duration)
|
||||
{
|
||||
#if 0
|
||||
std::map<MWWorld::Ptr, int>::iterator it = mDoorStates.begin();
|
||||
while (it != mDoorStates.end())
|
||||
{
|
||||
|
@ -1475,16 +1497,17 @@ namespace MWWorld
|
|||
++it;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool World::toggleCollisionMode()
|
||||
{
|
||||
return mPhysics->toggleCollisionMode();
|
||||
return 0;//mPhysics->toggleCollisionMode();
|
||||
}
|
||||
|
||||
bool World::toggleRenderMode (RenderMode mode)
|
||||
{
|
||||
return mRendering->toggleRenderMode (mode);
|
||||
return 0;//mRendering->toggleRenderMode (mode);
|
||||
}
|
||||
|
||||
const ESM::Potion *World::createRecord (const ESM::Potion& record)
|
||||
|
@ -1544,7 +1567,7 @@ namespace MWWorld
|
|||
}
|
||||
const ESM::NPC *ret = mStore.insert(record);
|
||||
if (update) {
|
||||
mRendering->renderPlayer(mPlayer->getPlayer());
|
||||
//mRendering->renderPlayer(mPlayer->getPlayer());
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -1581,8 +1604,8 @@ namespace MWWorld
|
|||
|
||||
updateWeather(duration, paused);
|
||||
|
||||
if (!paused)
|
||||
doPhysics (duration);
|
||||
//if (!paused)
|
||||
// doPhysics (duration);
|
||||
|
||||
mWorldScene->update (duration, paused);
|
||||
|
||||
|
@ -1625,7 +1648,7 @@ namespace MWWorld
|
|||
Ogre::AxisAlignedBox bounds = node->_getWorldAABB();
|
||||
if (bounds.isFinite())
|
||||
{
|
||||
Vector4 screenCoords = mRendering->boundingBoxToScreen(bounds);
|
||||
Vector4 screenCoords;// = mRendering->boundingBoxToScreen(bounds);
|
||||
MWBase::Environment::get().getWindowManager()->setFocusObjectScreenCoords(
|
||||
screenCoords[0], screenCoords[1], screenCoords[2], screenCoords[3]);
|
||||
}
|
||||
|
@ -1634,6 +1657,7 @@ namespace MWWorld
|
|||
|
||||
void World::performUpdateSceneQueries ()
|
||||
{
|
||||
#if 0
|
||||
if (!mRendering->occlusionQuerySupported())
|
||||
{
|
||||
// cast a ray from player to sun to detect if the sun is visible
|
||||
|
@ -1643,22 +1667,23 @@ namespace MWWorld
|
|||
Vector3 sun = mRendering->getSkyManager()->getRealSunPos();
|
||||
mRendering->getSkyManager()->setGlare(!mPhysics->castRay(Ogre::Vector3(p[0], p[1], p[2]), sun));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void World::getFacedHandle(std::string& facedHandle, float maxDistance, bool ignorePlayer)
|
||||
{
|
||||
maxDistance += mRendering->getCameraDistance();
|
||||
//maxDistance += mRendering->getCameraDistance();
|
||||
|
||||
std::vector < std::pair < float, std::string > > results;
|
||||
if (MWBase::Environment::get().getWindowManager()->isGuiMode())
|
||||
{
|
||||
float x, y;
|
||||
MWBase::Environment::get().getWindowManager()->getMousePosition(x, y);
|
||||
results = mPhysics->getFacedHandles(x, y, maxDistance);
|
||||
//results = mPhysics->getFacedHandles(x, y, maxDistance);
|
||||
}
|
||||
else
|
||||
{
|
||||
results = mPhysics->getFacedHandles(maxDistance);
|
||||
//results = mPhysics->getFacedHandles(maxDistance);
|
||||
}
|
||||
|
||||
if (ignorePlayer &&
|
||||
|
@ -1697,17 +1722,17 @@ namespace MWWorld
|
|||
|
||||
int World::getCurrentWeather() const
|
||||
{
|
||||
return mWeatherManager->getWeatherID();
|
||||
return 0;//mWeatherManager->getWeatherID();
|
||||
}
|
||||
|
||||
void World::changeWeather(const std::string& region, const unsigned int id)
|
||||
{
|
||||
mWeatherManager->changeWeather(region, id);
|
||||
//mWeatherManager->changeWeather(region, id);
|
||||
}
|
||||
|
||||
void World::modRegion(const std::string ®ionid, const std::vector<char> &chances)
|
||||
{
|
||||
mWeatherManager->modRegion(regionid, chances);
|
||||
//mWeatherManager->modRegion(regionid, chances);
|
||||
}
|
||||
|
||||
Ogre::Vector2 World::getNorthVector (CellStore* cell)
|
||||
|
@ -1767,33 +1792,33 @@ namespace MWWorld
|
|||
|
||||
void World::worldToInteriorMapPosition (Ogre::Vector2 position, float& nX, float& nY, int &x, int& y)
|
||||
{
|
||||
mRendering->worldToInteriorMapPosition(position, nX, nY, x, y);
|
||||
//mRendering->worldToInteriorMapPosition(position, nX, nY, x, y);
|
||||
}
|
||||
|
||||
Ogre::Vector2 World::interiorMapToWorldPosition(float nX, float nY, int x, int y)
|
||||
{
|
||||
return mRendering->interiorMapToWorldPosition(nX, nY, x, y);
|
||||
return Ogre::Vector2();//mRendering->interiorMapToWorldPosition(nX, nY, x, y);
|
||||
}
|
||||
|
||||
bool World::isPositionExplored (float nX, float nY, int x, int y, bool interior)
|
||||
{
|
||||
return mRendering->isPositionExplored(nX, nY, x, y, interior);
|
||||
return 0;//mRendering->isPositionExplored(nX, nY, x, y, interior);
|
||||
}
|
||||
|
||||
void World::setWaterHeight(const float height)
|
||||
{
|
||||
mPhysics->setWaterHeight(height);
|
||||
mRendering->setWaterHeight(height);
|
||||
//mPhysics->setWaterHeight(height);
|
||||
//mRendering->setWaterHeight(height);
|
||||
}
|
||||
|
||||
bool World::toggleWater()
|
||||
{
|
||||
return mRendering->toggleWater();
|
||||
return 0;//mRendering->toggleWater();
|
||||
}
|
||||
|
||||
bool World::toggleWorld()
|
||||
{
|
||||
return mRendering->toggleWorld();
|
||||
return 0;//mRendering->toggleWorld();
|
||||
}
|
||||
|
||||
void World::PCDropped (const Ptr& item)
|
||||
|
@ -1807,7 +1832,7 @@ namespace MWWorld
|
|||
|
||||
MWWorld::Ptr World::placeObject (const MWWorld::Ptr& object, float cursorX, float cursorY, int amount)
|
||||
{
|
||||
std::pair<bool, Ogre::Vector3> result = mPhysics->castRay(cursorX, cursorY);
|
||||
std::pair<bool, Ogre::Vector3> result;// = mPhysics->castRay(cursorX, cursorY);
|
||||
|
||||
if (!result.first)
|
||||
return MWWorld::Ptr();
|
||||
|
@ -1838,7 +1863,7 @@ namespace MWWorld
|
|||
{
|
||||
Ogre::Vector3 normal(0,0,0);
|
||||
std::string handle;
|
||||
std::pair<bool, Ogre::Vector3> result = mPhysics->castRay(cursorX, cursorY, &normal, &handle);
|
||||
std::pair<bool, Ogre::Vector3> result;// = mPhysics->castRay(cursorX, cursorY, &normal, &handle);
|
||||
|
||||
if (result.first)
|
||||
{
|
||||
|
@ -1859,6 +1884,7 @@ namespace MWWorld
|
|||
|
||||
Ptr World::copyObjectToCell(const Ptr &object, CellStore* cell, ESM::Position pos, bool adjustPos)
|
||||
{
|
||||
#if 0
|
||||
if (!object.getClass().isActor() && adjustPos)
|
||||
{
|
||||
// Adjust position so the location we wanted ends up in the middle of the object bounding box
|
||||
|
@ -1879,6 +1905,7 @@ namespace MWWorld
|
|||
pos.pos[2] -= adjust.z;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (cell->isExterior())
|
||||
{
|
||||
|
@ -1926,12 +1953,12 @@ namespace MWWorld
|
|||
Ogre::Vector3 orig =
|
||||
Ogre::Vector3(pos.pos);
|
||||
orig.z += 20;
|
||||
Ogre::Vector3 dir = Ogre::Vector3(0, 0, -1);
|
||||
//Ogre::Vector3 dir = Ogre::Vector3(0, 0, -1);
|
||||
|
||||
float len = 100.0;
|
||||
//float len = 100.0;
|
||||
|
||||
std::pair<bool, Ogre::Vector3> hit =
|
||||
mPhysics->castRay(orig, dir, len);
|
||||
std::pair<bool, Ogre::Vector3> hit;// =
|
||||
//mPhysics->castRay(orig, dir, len);
|
||||
if (hit.first)
|
||||
pos.pos[2] = hit.second.z;
|
||||
|
||||
|
@ -1948,12 +1975,12 @@ namespace MWWorld
|
|||
|
||||
void World::processChangedSettings(const Settings::CategorySettingVector& settings)
|
||||
{
|
||||
mRendering->processChangedSettings(settings);
|
||||
//mRendering->processChangedSettings(settings);
|
||||
}
|
||||
|
||||
void World::getTriangleBatchCount(unsigned int &triangles, unsigned int &batches)
|
||||
{
|
||||
mRendering->getTriangleBatchCount(triangles, batches);
|
||||
//mRendering->getTriangleBatchCount(triangles, batches);
|
||||
}
|
||||
|
||||
bool World::isFlying(const MWWorld::Ptr &ptr) const
|
||||
|
@ -2072,12 +2099,12 @@ namespace MWWorld
|
|||
|
||||
bool World::vanityRotateCamera(float * rot)
|
||||
{
|
||||
return mRendering->vanityRotateCamera(rot);
|
||||
return 0;//mRendering->vanityRotateCamera(rot);
|
||||
}
|
||||
|
||||
void World::setCameraDistance(float dist, bool adjust, bool override_)
|
||||
{
|
||||
return mRendering->setCameraDistance(dist, adjust, override_);
|
||||
//mRendering->setCameraDistance(dist, adjust, override_);
|
||||
}
|
||||
|
||||
void World::setupPlayer()
|
||||
|
@ -2093,13 +2120,13 @@ namespace MWWorld
|
|||
mPlayer->set(player);
|
||||
}
|
||||
|
||||
Ptr ptr = mPlayer->getPlayer();
|
||||
mRendering->setupPlayer(ptr);
|
||||
//Ptr ptr = mPlayer->getPlayer();
|
||||
//mRendering->setupPlayer(ptr);
|
||||
}
|
||||
|
||||
void World::renderPlayer()
|
||||
{
|
||||
mRendering->renderPlayer(mPlayer->getPlayer());
|
||||
//mRendering->renderPlayer(mPlayer->getPlayer());
|
||||
|
||||
// At this point the Animation object is live, and the CharacterController associated with it must be created.
|
||||
// It has to be done at this point: resetCamera below does animation->setViewMode -> CharacterController::forceStateUpdate
|
||||
|
@ -2107,8 +2134,8 @@ namespace MWWorld
|
|||
MWBase::Environment::get().getMechanicsManager()->add(mPlayer->getPlayer());
|
||||
|
||||
std::string model = getPlayerPtr().getClass().getModel(getPlayerPtr());
|
||||
model = Misc::ResourceHelpers::correctActorModelPath(model);
|
||||
mPhysics->addActor(mPlayer->getPlayer(), model);
|
||||
//model = Misc::ResourceHelpers::correctActorModelPath(model);
|
||||
//mPhysics->addActor(mPlayer->getPlayer(), model);
|
||||
}
|
||||
|
||||
int World::canRest ()
|
||||
|
@ -2134,17 +2161,17 @@ namespace MWWorld
|
|||
|
||||
MWRender::Animation* World::getAnimation(const MWWorld::Ptr &ptr)
|
||||
{
|
||||
return mRendering->getAnimation(ptr);
|
||||
return 0;//return mRendering->getAnimation(ptr);
|
||||
}
|
||||
|
||||
void World::frameStarted (float dt, bool paused)
|
||||
{
|
||||
mRendering->frameStarted(dt, paused);
|
||||
//mRendering->frameStarted(dt, paused);
|
||||
}
|
||||
|
||||
void World::screenshot(Ogre::Image &image, int w, int h)
|
||||
{
|
||||
mRendering->screenshot(image, w, h);
|
||||
//mRendering->screenshot(image, w, h);
|
||||
}
|
||||
|
||||
void World::activateDoor(const MWWorld::Ptr& door)
|
||||
|
@ -2180,27 +2207,27 @@ namespace MWWorld
|
|||
|
||||
bool World::getPlayerStandingOn (const MWWorld::Ptr& object)
|
||||
{
|
||||
MWWorld::Ptr player = getPlayerPtr();
|
||||
return mPhysics->isActorStandingOn(player, object);
|
||||
//MWWorld::Ptr player = getPlayerPtr();
|
||||
return 0;//mPhysics->isActorStandingOn(player, object);
|
||||
}
|
||||
|
||||
bool World::getActorStandingOn (const MWWorld::Ptr& object)
|
||||
{
|
||||
std::vector<std::string> actors;
|
||||
mPhysics->getActorsStandingOn(object, actors);
|
||||
//mPhysics->getActorsStandingOn(object, actors);
|
||||
return !actors.empty();
|
||||
}
|
||||
|
||||
bool World::getPlayerCollidingWith (const MWWorld::Ptr& object)
|
||||
{
|
||||
MWWorld::Ptr player = getPlayerPtr();
|
||||
return mPhysics->isActorCollidingWith(player, object);
|
||||
//MWWorld::Ptr player = getPlayerPtr();
|
||||
return 0;//mPhysics->isActorCollidingWith(player, object);
|
||||
}
|
||||
|
||||
bool World::getActorCollidingWith (const MWWorld::Ptr& object)
|
||||
{
|
||||
std::vector<std::string> actors;
|
||||
mPhysics->getActorsCollidingWith(object, actors);
|
||||
//mPhysics->getActorsCollidingWith(object, actors);
|
||||
return !actors.empty();
|
||||
}
|
||||
|
||||
|
@ -2210,7 +2237,7 @@ namespace MWWorld
|
|||
return;
|
||||
|
||||
std::vector<std::string> actors;
|
||||
mPhysics->getActorsStandingOn(object, actors);
|
||||
//mPhysics->getActorsStandingOn(object, actors);
|
||||
for (std::vector<std::string>::iterator it = actors.begin(); it != actors.end(); ++it)
|
||||
{
|
||||
MWWorld::Ptr actor = searchPtrViaHandle(*it); // Collision events are from the last frame, actor might no longer exist
|
||||
|
@ -2241,7 +2268,7 @@ namespace MWWorld
|
|||
return;
|
||||
|
||||
std::vector<std::string> actors;
|
||||
mPhysics->getActorsCollidingWith(object, actors);
|
||||
//mPhysics->getActorsCollidingWith(object, actors);
|
||||
for (std::vector<std::string>::iterator it = actors.begin(); it != actors.end(); ++it)
|
||||
{
|
||||
MWWorld::Ptr actor = searchPtrViaHandle(*it); // Collision events are from the last frame, actor might no longer exist
|
||||
|
@ -2269,7 +2296,7 @@ namespace MWWorld
|
|||
float World::getWindSpeed()
|
||||
{
|
||||
if (isCellExterior() || isCellQuasiExterior())
|
||||
return mWeatherManager->getWindSpeed();
|
||||
return 0;//mWeatherManager->getWindSpeed();
|
||||
else
|
||||
return 0.f;
|
||||
}
|
||||
|
@ -2277,7 +2304,7 @@ namespace MWWorld
|
|||
bool World::isInStorm() const
|
||||
{
|
||||
if (isCellExterior() || isCellQuasiExterior())
|
||||
return mWeatherManager->isInStorm();
|
||||
return 0;//mWeatherManager->isInStorm();
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
@ -2285,7 +2312,7 @@ namespace MWWorld
|
|||
Ogre::Vector3 World::getStormDirection() const
|
||||
{
|
||||
if (isCellExterior() || isCellQuasiExterior())
|
||||
return mWeatherManager->getStormDirection();
|
||||
return Ogre::Vector3();//mWeatherManager->getStormDirection();
|
||||
else
|
||||
return Ogre::Vector3(0,1,0);
|
||||
}
|
||||
|
@ -2479,7 +2506,7 @@ namespace MWWorld
|
|||
|
||||
void World::reattachPlayerCamera()
|
||||
{
|
||||
mRendering->rebuildPtr(getPlayerPtr());
|
||||
//mRendering->rebuildPtr(getPlayerPtr());
|
||||
}
|
||||
|
||||
void World::setWerewolf(const MWWorld::Ptr& actor, bool werewolf)
|
||||
|
@ -2512,7 +2539,7 @@ namespace MWWorld
|
|||
|
||||
// NpcAnimation::updateParts will already rebuild the animation when it detects change of Npc type.
|
||||
// the following is just for reattaching the camera properly.
|
||||
mRendering->rebuildPtr(actor);
|
||||
//mRendering->rebuildPtr(actor);
|
||||
|
||||
if(actor == getPlayerPtr())
|
||||
{
|
||||
|
@ -2684,6 +2711,7 @@ namespace MWWorld
|
|||
{
|
||||
// For NPCs use facing direction from Head node
|
||||
Ogre::Vector3 origin(actor.getRefData().getPosition().pos);
|
||||
#if 0
|
||||
MWRender::Animation *anim = mRendering->getAnimation(actor);
|
||||
if(anim != NULL)
|
||||
{
|
||||
|
@ -2693,6 +2721,7 @@ namespace MWWorld
|
|||
if(node != NULL)
|
||||
origin += node->_getDerivedPosition();
|
||||
}
|
||||
#endif
|
||||
Ogre::Quaternion orient;
|
||||
orient = Ogre::Quaternion(Ogre::Radian(actor.getRefData().getPosition().rot[2]), Ogre::Vector3::NEGATIVE_UNIT_Z) *
|
||||
Ogre::Quaternion(Ogre::Radian(actor.getRefData().getPosition().rot[0]), Ogre::Vector3::NEGATIVE_UNIT_X);
|
||||
|
@ -2739,14 +2768,18 @@ namespace MWWorld
|
|||
void World::launchProjectile (MWWorld::Ptr actor, MWWorld::Ptr projectile,
|
||||
const Ogre::Vector3& worldPos, const Ogre::Quaternion& orient, MWWorld::Ptr bow, float speed)
|
||||
{
|
||||
#if 0
|
||||
mProjectileManager->launchProjectile(actor, projectile, worldPos, orient, bow, speed);
|
||||
#endif
|
||||
}
|
||||
|
||||
void World::launchMagicBolt (const std::string& model, const std::string &sound, const std::string &spellId,
|
||||
float speed, bool stack, const ESM::EffectList& effects,
|
||||
const MWWorld::Ptr& caster, const std::string& sourceName, const Ogre::Vector3& fallbackDirection)
|
||||
{
|
||||
#if 0
|
||||
mProjectileManager->launchMagicBolt(model, sound, spellId, speed, stack, effects, caster, sourceName, fallbackDirection);
|
||||
#endif
|
||||
}
|
||||
|
||||
const std::vector<std::string>& World::getContentFiles() const
|
||||
|
@ -2768,7 +2801,7 @@ namespace MWWorld
|
|||
{
|
||||
MWWorld::CellStore* cell = mPlayer->getPlayer().getCell();
|
||||
if (cell->isExterior())
|
||||
return mWeatherManager->isDark();
|
||||
return 0;//mWeatherManager->isDark();
|
||||
else
|
||||
{
|
||||
uint32_t ambient = cell->getCell()->mAmbi.mAmbient;
|
||||
|
@ -2933,10 +2966,10 @@ namespace MWWorld
|
|||
if (mPlayer->wasTeleported())
|
||||
{
|
||||
mPlayer->setTeleported(false);
|
||||
mWeatherManager->switchToNextWeather(true);
|
||||
//mWeatherManager->switchToNextWeather(true);
|
||||
}
|
||||
|
||||
mWeatherManager->update(duration, paused);
|
||||
//mWeatherManager->update(duration, paused);
|
||||
}
|
||||
|
||||
struct AddDetectedReference
|
||||
|
@ -3190,12 +3223,12 @@ namespace MWWorld
|
|||
modelName << roll;
|
||||
std::string model = "meshes\\" + getFallback()->getFallbackString(modelName.str());
|
||||
|
||||
mRendering->spawnEffect(model, texture, worldPosition);
|
||||
//mRendering->spawnEffect(model, texture, worldPosition);
|
||||
}
|
||||
|
||||
void World::spawnEffect(const std::string &model, const std::string &textureOverride, const Vector3 &worldPos)
|
||||
{
|
||||
mRendering->spawnEffect(model, textureOverride, worldPos);
|
||||
//mRendering->spawnEffect(model, textureOverride, worldPos);
|
||||
}
|
||||
|
||||
void World::explodeSpell(const Vector3 &origin, const ESM::EffectList &effects, const Ptr &caster, ESM::RangeType rangeType,
|
||||
|
@ -3211,6 +3244,7 @@ namespace MWWorld
|
|||
continue; // Not an area effect
|
||||
|
||||
// Spawn the explosion orb effect
|
||||
/*
|
||||
const ESM::Static* areaStatic;
|
||||
if (!effect->mCasting.empty())
|
||||
areaStatic = getStore().get<ESM::Static>().find (effect->mArea);
|
||||
|
@ -3218,6 +3252,7 @@ namespace MWWorld
|
|||
areaStatic = getStore().get<ESM::Static>().find ("VFX_DefaultArea");
|
||||
|
||||
mRendering->spawnEffect("meshes\\" + areaStatic->mModel, "", origin, static_cast<float>(effectIt->mArea));
|
||||
*/
|
||||
|
||||
// Play explosion sound (make sure to use NoTrack, since we will delete the projectile now)
|
||||
static const std::string schools[] = {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "ptr.hpp"
|
||||
#include "scene.hpp"
|
||||
#include "esmstore.hpp"
|
||||
#include "physicssystem.hpp"
|
||||
//#include "physicssystem.hpp"
|
||||
#include "cells.hpp"
|
||||
#include "localscripts.hpp"
|
||||
#include "timestamp.hpp"
|
||||
|
@ -19,6 +19,8 @@
|
|||
|
||||
#include "contentloader.hpp"
|
||||
|
||||
#include <components/settings/settings.hpp>
|
||||
|
||||
namespace Ogre
|
||||
{
|
||||
class Vector3;
|
||||
|
@ -62,7 +64,7 @@ namespace MWWorld
|
|||
MWWorld::Fallback mFallback;
|
||||
MWRender::RenderingManager* mRendering;
|
||||
|
||||
MWWorld::WeatherManager* mWeatherManager;
|
||||
//MWWorld::WeatherManager* mWeatherManager;
|
||||
|
||||
MWWorld::Scene *mWorldScene;
|
||||
MWWorld::Player *mPlayer;
|
||||
|
@ -152,7 +154,7 @@ namespace MWWorld
|
|||
|
||||
public:
|
||||
|
||||
World (OEngine::Render::OgreRenderer& renderer,
|
||||
World (
|
||||
const Files::Collections& fileCollections,
|
||||
const std::vector<std::string>& contentFiles,
|
||||
const boost::filesystem::path& resDir, const boost::filesystem::path& cacheDir,
|
||||
|
@ -465,31 +467,31 @@ namespace MWWorld
|
|||
virtual bool isOnGround(const MWWorld::Ptr &ptr) const;
|
||||
|
||||
virtual void togglePOV() {
|
||||
mRendering->togglePOV();
|
||||
//mRendering->togglePOV();
|
||||
}
|
||||
|
||||
virtual bool isFirstPerson() const {
|
||||
return mRendering->getCamera()->isFirstPerson();
|
||||
return 0;//mRendering->getCamera()->isFirstPerson();
|
||||
}
|
||||
|
||||
virtual void togglePreviewMode(bool enable) {
|
||||
mRendering->togglePreviewMode(enable);
|
||||
//mRendering->togglePreviewMode(enable);
|
||||
}
|
||||
|
||||
virtual bool toggleVanityMode(bool enable) {
|
||||
return mRendering->toggleVanityMode(enable);
|
||||
return 0;//mRendering->toggleVanityMode(enable);
|
||||
}
|
||||
|
||||
virtual void allowVanityMode(bool allow) {
|
||||
mRendering->allowVanityMode(allow);
|
||||
//mRendering->allowVanityMode(allow);
|
||||
}
|
||||
|
||||
virtual void togglePlayerLooking(bool enable) {
|
||||
mRendering->togglePlayerLooking(enable);
|
||||
//mRendering->togglePlayerLooking(enable);
|
||||
}
|
||||
|
||||
virtual void changeVanityModeScale(float factor) {
|
||||
mRendering->changeVanityModeScale(factor);
|
||||
//mRendering->changeVanityModeScale(factor);
|
||||
}
|
||||
|
||||
virtual bool vanityRotateCamera(float * rot);
|
||||
|
|
|
@ -67,11 +67,11 @@ ELSE (WIN32) #Unix
|
|||
SET(MYGUI_INCLUDE_DIRS ${MYGUI_INCLUDE_DIRS})
|
||||
SET(MYGUI_LIB_DIR ${MYGUI_LIBDIR})
|
||||
SET(MYGUI_LIBRARIES ${MYGUI_LIBRARIES} CACHE STRING "")
|
||||
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.OgrePlatform")
|
||||
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.DummyPlatform")
|
||||
ELSE (MYGUI_INCLUDE_DIRS)
|
||||
FIND_PATH(MYGUI_INCLUDE_DIRS MyGUI.h PATHS /usr/local/include /usr/include PATH_SUFFIXES MyGUI MYGUI)
|
||||
FIND_LIBRARY(MYGUI_LIBRARIES myguistatic PATHS /usr/lib /usr/local/lib)
|
||||
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.OgrePlatform")
|
||||
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.DummyPlatform")
|
||||
SET(MYGUI_LIB_DIR ${MYGUI_LIBRARIES})
|
||||
STRING(REGEX REPLACE "(.*)/.*" "\\1" MYGUI_LIB_DIR "${MYGUI_LIB_DIR}")
|
||||
STRING(REGEX REPLACE ".*/" "" MYGUI_LIBRARIES "${MYGUI_LIBRARIES}")
|
||||
|
@ -81,7 +81,7 @@ ELSE (WIN32) #Unix
|
|||
FIND_PACKAGE(freetype)
|
||||
FIND_PATH(MYGUI_INCLUDE_DIRS MyGUI.h PATHS /usr/local/include /usr/include PATH_SUFFIXES MyGUI MYGUI)
|
||||
FIND_LIBRARY(MYGUI_LIBRARIES MyGUIEngineStatic PATHS /usr/lib /usr/local/lib)
|
||||
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.OgrePlatform")
|
||||
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.DummyPlatform")
|
||||
SET(MYGUI_LIB_DIR ${MYGUI_LIBRARIES})
|
||||
STRING(REGEX REPLACE "(.*)/.*" "\\1" MYGUI_LIB_DIR "${MYGUI_LIB_DIR}")
|
||||
STRING(REGEX REPLACE ".*/" "" MYGUI_LIBRARIES "${MYGUI_LIBRARIES}")
|
||||
|
@ -92,11 +92,11 @@ ELSE (WIN32) #Unix
|
|||
SET(MYGUI_INCLUDE_DIRS ${MYGUI_INCLUDE_DIRS})
|
||||
SET(MYGUI_LIB_DIR ${MYGUI_LIBDIR})
|
||||
SET(MYGUI_LIBRARIES ${MYGUI_LIBRARIES} CACHE STRING "")
|
||||
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.OgrePlatform")
|
||||
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.DummyPlatform")
|
||||
ELSE (MYGUI_INCLUDE_DIRS)
|
||||
FIND_PATH(MYGUI_INCLUDE_DIRS MyGUI.h PATHS /usr/local/include /usr/include PATH_SUFFIXES MyGUI MYGUI)
|
||||
FIND_LIBRARY(MYGUI_LIBRARIES mygui PATHS /usr/lib /usr/local/lib)
|
||||
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.OgrePlatform")
|
||||
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.DummyPlatform")
|
||||
SET(MYGUI_LIB_DIR ${MYGUI_LIBRARIES})
|
||||
STRING(REGEX REPLACE "(.*)/.*" "\\1" MYGUI_LIB_DIR "${MYGUI_LIB_DIR}")
|
||||
STRING(REGEX REPLACE ".*/" "" MYGUI_LIBRARIES "${MYGUI_LIBRARIES}")
|
||||
|
|
|
@ -26,10 +26,6 @@ add_component_dir (settings
|
|||
settings
|
||||
)
|
||||
|
||||
add_component_dir (nifoverrides
|
||||
nifoverrides
|
||||
)
|
||||
|
||||
add_component_dir (bsa
|
||||
bsa_file
|
||||
)
|
||||
|
|
|
@ -25,6 +25,7 @@ ESMReader::ESMReader()
|
|||
, mIdx(0)
|
||||
, mGlobalReaderList(NULL)
|
||||
, mEncoder(NULL)
|
||||
, mFileSize(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -64,7 +65,7 @@ void ESMReader::openRaw(Files::IStreamPtr _esm, const std::string& name)
|
|||
mEsm = _esm;
|
||||
mCtx.filename = name;
|
||||
mEsm->seekg(0, mEsm->end);
|
||||
mCtx.leftFile = mEsm->tellg();
|
||||
mCtx.leftFile = mFileSize = mEsm->tellg();
|
||||
mEsm->seekg(0, mEsm->beg);
|
||||
}
|
||||
|
||||
|
|
|
@ -261,6 +261,8 @@ public:
|
|||
/// Get record flags of last record
|
||||
unsigned int getRecordFlags() { return mRecordFlags; }
|
||||
|
||||
size_t getFileSize() const { return mFileSize; }
|
||||
|
||||
private:
|
||||
Files::IStreamPtr mEsm;
|
||||
|
||||
|
@ -277,6 +279,9 @@ private:
|
|||
|
||||
std::vector<ESMReader> *mGlobalReaderList;
|
||||
ToUTF8::Utf8Encoder* mEncoder;
|
||||
|
||||
size_t mFileSize;
|
||||
|
||||
};
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -147,6 +147,7 @@ namespace Gui
|
|||
|
||||
void FontLoader::loadAllFonts(bool exportToFile)
|
||||
{
|
||||
/*
|
||||
Ogre::StringVector groups = Ogre::ResourceGroupManager::getSingleton().getResourceGroups ();
|
||||
for (Ogre::StringVector::iterator it = groups.begin(); it != groups.end(); ++it)
|
||||
{
|
||||
|
@ -156,6 +157,7 @@ namespace Gui
|
|||
loadFont(*resource, exportToFile);
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,80 +0,0 @@
|
|||
#include "nifoverrides.hpp"
|
||||
|
||||
#include <OgreStringConverter.h>
|
||||
|
||||
#include <../components/misc/stringops.hpp>
|
||||
|
||||
#include "../extern/shiny/Main/MaterialInstance.hpp"
|
||||
|
||||
#include <stdexcept>
|
||||
|
||||
|
||||
using namespace NifOverrides;
|
||||
|
||||
Overrides::TransparencyOverrideMap Overrides::mTransparencyOverrides = Overrides::TransparencyOverrideMap();
|
||||
Overrides::MaterialOverrideMap Overrides::mMaterialOverrides = Overrides::MaterialOverrideMap();
|
||||
|
||||
void Overrides::loadTransparencyOverrides (const std::string& file)
|
||||
{
|
||||
Ogre::ConfigFile cf;
|
||||
cf.load(file);
|
||||
|
||||
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
|
||||
while (seci.hasMoreElements())
|
||||
{
|
||||
Ogre::String sectionName = seci.peekNextKey();
|
||||
mTransparencyOverrides[sectionName] =
|
||||
Ogre::StringConverter::parseInt(cf.getSetting("alphaRejectValue", sectionName));
|
||||
seci.getNext();
|
||||
}
|
||||
}
|
||||
|
||||
void Overrides::loadMaterialOverrides(const std::string &file)
|
||||
{
|
||||
Ogre::ConfigFile cf;
|
||||
cf.load(file);
|
||||
|
||||
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
|
||||
while (seci.hasMoreElements())
|
||||
{
|
||||
Ogre::String sectionName = seci.peekNextKey();
|
||||
|
||||
Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext();
|
||||
Ogre::ConfigFile::SettingsMultiMap::iterator i;
|
||||
std::map<std::string, std::string> overrides;
|
||||
for (i = settings->begin(); i != settings->end(); ++i)
|
||||
{
|
||||
overrides[i->first] = i->second;
|
||||
}
|
||||
mMaterialOverrides[sectionName] = overrides;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
TransparencyResult Overrides::getTransparencyOverride(const std::string& texture)
|
||||
{
|
||||
TransparencyResult result;
|
||||
result.first = false;
|
||||
|
||||
TransparencyOverrideMap::iterator it = mTransparencyOverrides.find(Misc::StringUtils::lowerCase(texture));
|
||||
if (it != mTransparencyOverrides.end())
|
||||
{
|
||||
result.first = true;
|
||||
result.second = it->second;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void Overrides::getMaterialOverrides(const std::string &texture, sh::MaterialInstance* material)
|
||||
{
|
||||
MaterialOverrideMap::iterator it = mMaterialOverrides.find(Misc::StringUtils::lowerCase(texture));
|
||||
if (it != mMaterialOverrides.end())
|
||||
{
|
||||
const std::map<std::string, std::string>& overrides = it->second;
|
||||
for (std::map<std::string, std::string>::const_iterator it = overrides.begin(); it != overrides.end(); ++it)
|
||||
{
|
||||
material->setProperty(it->first, sh::makeProperty(it->second));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
#ifndef OPENMW_COMPONENTS_NIFOVERRIDES_NIFOVERRIDES_HPP
|
||||
#define OPENMW_COMPONENTS_NIFOVERRIDES_NIFOVERRIDES_HPP
|
||||
|
||||
#include <OgreConfigFile.h>
|
||||
|
||||
namespace sh
|
||||
{
|
||||
class MaterialInstance;
|
||||
}
|
||||
|
||||
namespace NifOverrides
|
||||
{
|
||||
|
||||
typedef std::pair<bool, int> TransparencyResult;
|
||||
|
||||
/// Allows to provide overrides for some material properties in NIF files.
|
||||
/// NIFs are a bit limited in that they don't allow specifying a material externally, which is
|
||||
/// painful for texture modding.
|
||||
/// We also use this to patch up transparency settings in certain NIFs that bethesda has chosen poorly.
|
||||
class Overrides
|
||||
{
|
||||
public:
|
||||
typedef std::map<std::string, int> TransparencyOverrideMap;
|
||||
static TransparencyOverrideMap mTransparencyOverrides;
|
||||
|
||||
typedef std::map<std::string, std::map<std::string, std::string> > MaterialOverrideMap;
|
||||
static MaterialOverrideMap mMaterialOverrides;
|
||||
|
||||
void loadTransparencyOverrides (const std::string& file);
|
||||
void loadMaterialOverrides (const std::string& file);
|
||||
|
||||
static TransparencyResult getTransparencyOverride(const std::string& texture);
|
||||
static void getMaterialOverrides (const std::string& texture, sh::MaterialInstance* instance);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
|
@ -1,623 +0,0 @@
|
|||
# Bethesda has used wrong transparency settings for many textures
|
||||
# (who would have guessed)
|
||||
# This is very unfortunate because objects with real transparency:
|
||||
# - cannot cast shadows
|
||||
# - cannot receive advanced framebuffer effects like depth of field or ambient occlusion
|
||||
# - cannot cover lens flare effects (the lens flare will just shine through)
|
||||
|
||||
# This file lists textures that should be using alpha rejection instead of transparency
|
||||
# basically these are textures that are not translucent (i.e. at one spot on the texture, either transparent or opaque)
|
||||
|
||||
# Note: all the texture names here have to be lowercase
|
||||
|
||||
# fauna
|
||||
[textures\tx_wickwheat_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_wickwheat_03.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_red_lichen_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_stone_flower_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ivy_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ivy_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_saltrice_04.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_black_lichen_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_leaves_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_leaves_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_leaves_03.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_leaves_04.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_leaves_06.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_leaves_07.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ai_heather_01.dds]
|
||||
alphaRejectValue = 96
|
||||
|
||||
[textures\tx_goldkanet_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_goldkanet_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_plant_tails00.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_vine_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_comberry_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_willow_flower_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_cork_bulb_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_green_lichen_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_roobrush_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bittergreen_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_chokeweed_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_branches_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_branches_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_guarskin_hut_03.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_hackle-lo_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bc_fern_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bc_fern_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bc_leaves_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_marshmerrow_03.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bc_moss_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bc_moss_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bc_lilypad_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bc_lilypad_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bc_lilypad_03.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_fire_fern_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
# banners and flags
|
||||
[textures\tx_flag_imp_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_arena_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_comfort_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_child_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_count_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_faith_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_walk_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_imp_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_redoran_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_avs_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_serving_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_speak_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_stdeyln_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_stolms_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_thin_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_vivec_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_vivec_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ashl_banner_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ashl_banner_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ashl_banner_04.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ashl_banner_05.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ashl_banner_06.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ashl_banner_07.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ashl_a_banner.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ashl_e_banner.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ashl_u_banner.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ashl_z_banner.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_banner_6th.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_banner_6th_tall.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_banner_gnisis_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_banner_gnisis_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_bhm_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_03.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_04.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_05.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_06.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_07.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_08.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_08.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_09.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_10.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_11.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_12.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_tapestry_13.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_lutestrings_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_fabric_imp_altar_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_akatosh_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_apprentice_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_arkay_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_dibella_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_golem_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_julianos_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_kynareth_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_lady_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_lord_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_lover_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_mara_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_ritual_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_shadow_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_steed_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_stendarr_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_thief_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_tower_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_warrior_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_wizard_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_c_t_zenithar_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_banner_dagoth_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bannerd_tavern_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bannerd_goods_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bannerd_danger_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bannerd_welcome_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bannerd_clothing_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bannerd_alchemy_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_banner_hlaalu_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_banner_redoran_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_banner_temple_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_banner_temple_03.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_book_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_ald_velothi.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_gnaar_mok.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_hla_oad.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_khull.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_pawn_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_sadrith_mora.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_tel_aruhn.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_tel_branora.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_tel_fyr.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_tel_mora.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_telvani_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_tel_vos.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_de_banner_vos.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bannerd_w_a_shop_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_banner_temple_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_mural1_00.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_mural1_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_mural4_00.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_mural4_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_mural5_00.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_telvanni_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_v_b_hlaalu_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_fabric_tapestry.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_fabric_tapestry_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_fabric_tapestry_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_fabric_tapestry_03.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_fabric_tapestry_04.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
# characters
|
||||
[textures\tx_netchgod00.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_b_n_argonian_f_hair02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_b_n_argonian_f_hair03.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_b_n_argonian_m_hair01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_b_n_argonian_m_hair04.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_b_n_argonian_m_hair05.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_b_n_khajiit_f_hair01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_b_n_khajiit_f_hair02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_b_n_khajiit_m_hair01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_corprus_stalker12.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_a_clavicus02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_b_n_dark elf_m_hair11.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_b_n_dark elf_f_hair10.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
# misc items
|
||||
[textures\tx_sail.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_longboatsail01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_longboatsail01a.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_longboatsail01b.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_longboatsail02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_quill.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_note_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_note_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_parchment_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_parchment_03.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_scroll_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_scroll_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_scroll_03.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_alpha_small_edge.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_alpha_shadow_circular.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
# building materials
|
||||
[textures\tx_shack_thatch_strip.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_rug00.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_rug_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_rug_edge_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_awning_thatch_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_awning_woven_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bridgeropes.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_rope_woven_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_rope_woven_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_ashl_tent_06.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_guar_tarp.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_velothi_glyph00.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
|
||||
|
||||
# Bloodmoon
|
||||
|
||||
[textures\tx_bm_holly_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_holly_snow_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_pine_04a.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_pine_03a.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_pine_02a.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_pine_01a.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_shrub_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_shrub_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_snow_pine_01a.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_snow_pine_02a.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_snow_pine_03a.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_snow_pine_04a.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_deadpine_01.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_shrub_snow_02.dds]
|
||||
alphaRejectValue = 128
|
||||
|
||||
[textures\tx_bm_s_deadpine_01.dds]
|
||||
alphaRejectValue = 128
|
|
@ -1,12 +1,12 @@
|
|||
set(OENGINE_OGRE
|
||||
ogre/renderer.cpp
|
||||
#ogre/renderer.cpp
|
||||
ogre/lights.cpp
|
||||
ogre/selectionbuffer.cpp
|
||||
)
|
||||
|
||||
set(OENGINE_GUI
|
||||
gui/loglistener.cpp
|
||||
gui/manager.cpp
|
||||
#gui/manager.cpp
|
||||
gui/layout.cpp
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in a new issue