mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-30 03:32:36 +00:00
Merge branch 'master' into 'lalat-dalam-cawan'
# Conflicts: # files/lua_api/openmw/types.lua
This commit is contained in:
commit
5be78f89b8
@ -82,7 +82,7 @@ message(STATUS "Configuring OpenMW...")
|
||||
set(OPENMW_VERSION_MAJOR 0)
|
||||
set(OPENMW_VERSION_MINOR 49)
|
||||
set(OPENMW_VERSION_RELEASE 0)
|
||||
set(OPENMW_LUA_API_REVISION 63)
|
||||
set(OPENMW_LUA_API_REVISION 64)
|
||||
set(OPENMW_POSTPROCESSING_API_REVISION 1)
|
||||
|
||||
set(OPENMW_VERSION_COMMITHASH "")
|
||||
|
@ -319,7 +319,6 @@ bool Launcher::SettingsPage::loadSettings()
|
||||
// Miscellaneous
|
||||
{
|
||||
// Saves
|
||||
loadSettingBool(Settings::saves().mTimeplayed, *timePlayedCheckbox);
|
||||
loadSettingInt(Settings::saves().mMaxQuicksaves, *maximumQuicksavesComboBox);
|
||||
|
||||
// Other Settings
|
||||
@ -512,7 +511,6 @@ void Launcher::SettingsPage::saveSettings()
|
||||
// Miscellaneous
|
||||
{
|
||||
// Saves Settings
|
||||
saveSettingBool(*timePlayedCheckbox, Settings::saves().mTimeplayed);
|
||||
saveSettingInt(*maximumQuicksavesComboBox, Settings::saves().mMaxQuicksaves);
|
||||
|
||||
// Other Settings
|
||||
|
@ -1430,16 +1430,6 @@
|
||||
<string>Saves</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="savesGroupVerticalLayout">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="timePlayedCheckbox">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>This setting determines whether the amount of the time the player has spent playing will be displayed for each saved game in the Load menu.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Add "Time Played" to Saves</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="maximumQuicksavesLayout">
|
||||
<item>
|
||||
|
@ -435,7 +435,7 @@ namespace MWGui
|
||||
mCurrentSlot->mProfile.mInGameTime.mMonth)
|
||||
<< " " << hour << " " << (pm ? "#{Calendar:pm}" : "#{Calendar:am}");
|
||||
|
||||
if (Settings::saves().mTimeplayed)
|
||||
if (mCurrentSlot->mProfile.mTimePlayed > 0)
|
||||
{
|
||||
text << "\n"
|
||||
<< "#{OMWEngine:TimePlayed}: " << formatTimeplayed(mCurrentSlot->mProfile.mTimePlayed);
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <components/esm3/loadacti.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -51,7 +52,8 @@ namespace MWLua
|
||||
record["model"] = sol::readonly_property([](const ESM::Activator& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctMeshPath(rec.mModel);
|
||||
});
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Activator& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property([](const ESM::Activator& rec) -> sol::optional<std::string> {
|
||||
return LuaUtil::serializeRefId(rec.mScript);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <components/esm3/loadappa.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -39,8 +40,9 @@ namespace MWLua
|
||||
record["model"] = sol::readonly_property([](const ESM::Apparatus& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctMeshPath(rec.mModel);
|
||||
});
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Apparatus& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property([](const ESM::Apparatus& rec) -> sol::optional<std::string> {
|
||||
return LuaUtil::serializeRefId(rec.mScript);
|
||||
});
|
||||
record["icon"] = sol::readonly_property([vfs](const ESM::Apparatus& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctIconPath(rec.mIcon, vfs);
|
||||
});
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <components/esm3/loadarmo.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -98,13 +99,10 @@ namespace MWLua
|
||||
record["icon"] = sol::readonly_property([vfs](const ESM::Armor& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctIconPath(rec.mIcon, vfs);
|
||||
});
|
||||
record["enchant"] = sol::readonly_property([](const ESM::Armor& rec) -> sol::optional<std::string> {
|
||||
if (rec.mEnchant.empty())
|
||||
return sol::nullopt;
|
||||
return rec.mEnchant.serializeText();
|
||||
});
|
||||
record["mwscript"]
|
||||
= sol::readonly_property([](const ESM::Armor& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["enchant"] = sol::readonly_property(
|
||||
[](const ESM::Armor& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId(rec.mEnchant); });
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Armor& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId(rec.mScript); });
|
||||
record["weight"] = sol::readonly_property([](const ESM::Armor& rec) -> float { return rec.mData.mWeight; });
|
||||
record["value"] = sol::readonly_property([](const ESM::Armor& rec) -> int { return rec.mData.mValue; });
|
||||
record["type"] = sol::readonly_property([](const ESM::Armor& rec) -> int { return rec.mData.mType; });
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <components/esm3/loadbook.hpp>
|
||||
#include <components/esm3/loadskil.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -104,17 +105,14 @@ namespace MWLua
|
||||
record["name"] = sol::readonly_property([](const ESM::Book& rec) -> std::string { return rec.mName; });
|
||||
record["model"] = sol::readonly_property(
|
||||
[](const ESM::Book& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath(rec.mModel); });
|
||||
record["mwscript"]
|
||||
= sol::readonly_property([](const ESM::Book& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Book& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId(rec.mScript); });
|
||||
record["icon"] = sol::readonly_property([vfs](const ESM::Book& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctIconPath(rec.mIcon, vfs);
|
||||
});
|
||||
record["text"] = sol::readonly_property([](const ESM::Book& rec) -> std::string { return rec.mText; });
|
||||
record["enchant"] = sol::readonly_property([](const ESM::Book& rec) -> sol::optional<std::string> {
|
||||
if (rec.mEnchant.empty())
|
||||
return sol::nullopt;
|
||||
return rec.mEnchant.serializeText();
|
||||
});
|
||||
record["enchant"] = sol::readonly_property(
|
||||
[](const ESM::Book& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId(rec.mEnchant); });
|
||||
record["isScroll"] = sol::readonly_property([](const ESM::Book& rec) -> bool { return rec.mData.mIsScroll; });
|
||||
record["value"] = sol::readonly_property([](const ESM::Book& rec) -> int { return rec.mData.mValue; });
|
||||
record["weight"] = sol::readonly_property([](const ESM::Book& rec) -> float { return rec.mData.mWeight; });
|
||||
@ -122,9 +120,7 @@ namespace MWLua
|
||||
= sol::readonly_property([](const ESM::Book& rec) -> float { return rec.mData.mEnchant * 0.1f; });
|
||||
record["skill"] = sol::readonly_property([](const ESM::Book& rec) -> sol::optional<std::string> {
|
||||
ESM::RefId skill = ESM::Skill::indexToRefId(rec.mData.mSkillId);
|
||||
if (!skill.empty())
|
||||
return skill.serializeText();
|
||||
return sol::nullopt;
|
||||
return LuaUtil::serializeRefId(skill);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <components/esm3/loadclot.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -94,12 +95,11 @@ namespace MWLua
|
||||
return Misc::ResourceHelpers::correctIconPath(rec.mIcon, vfs);
|
||||
});
|
||||
record["enchant"] = sol::readonly_property([](const ESM::Clothing& rec) -> sol::optional<std::string> {
|
||||
if (rec.mEnchant.empty())
|
||||
return sol::nullopt;
|
||||
return rec.mEnchant.serializeText();
|
||||
return LuaUtil::serializeRefId(rec.mEnchant);
|
||||
});
|
||||
record["mwscript"] = sol::readonly_property([](const ESM::Clothing& rec) -> sol::optional<std::string> {
|
||||
return LuaUtil::serializeRefId(rec.mScript);
|
||||
});
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Clothing& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["weight"] = sol::readonly_property([](const ESM::Clothing& rec) -> float { return rec.mData.mWeight; });
|
||||
record["value"] = sol::readonly_property([](const ESM::Clothing& rec) -> int { return rec.mData.mValue; });
|
||||
record["type"] = sol::readonly_property([](const ESM::Clothing& rec) -> int { return rec.mData.mType; });
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <components/esm3/loadcont.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -51,8 +52,9 @@ namespace MWLua
|
||||
record["model"] = sol::readonly_property([](const ESM::Container& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctMeshPath(rec.mModel);
|
||||
});
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Container& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property([](const ESM::Container& rec) -> sol::optional<std::string> {
|
||||
return LuaUtil::serializeRefId(rec.mScript);
|
||||
});
|
||||
record["weight"] = sol::readonly_property([](const ESM::Container& rec) -> float { return rec.mWeight; });
|
||||
record["isOrganic"] = sol::readonly_property(
|
||||
[](const ESM::Container& rec) -> bool { return rec.mFlags & ESM::Container::Organic; });
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
#include <components/esm3/loadcrea.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -36,8 +37,9 @@ namespace MWLua
|
||||
record["name"] = sol::readonly_property([](const ESM::Creature& rec) -> std::string { return rec.mName; });
|
||||
record["model"] = sol::readonly_property(
|
||||
[](const ESM::Creature& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath(rec.mModel); });
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Creature& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property([](const ESM::Creature& rec) -> sol::optional<std::string> {
|
||||
return LuaUtil::serializeRefId(rec.mScript);
|
||||
});
|
||||
record["baseCreature"] = sol::readonly_property(
|
||||
[](const ESM::Creature& rec) -> std::string { return rec.mOriginal.serializeText(); });
|
||||
record["soulValue"] = sol::readonly_property([](const ESM::Creature& rec) -> int { return rec.mData.mSoul; });
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <components/esm3/loaddoor.hpp>
|
||||
#include <components/esm4/loaddoor.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/lua/utilpackage.hpp>
|
||||
#include <components/misc/convert.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
@ -64,8 +65,8 @@ namespace MWLua
|
||||
record["name"] = sol::readonly_property([](const ESM::Door& rec) -> std::string { return rec.mName; });
|
||||
record["model"] = sol::readonly_property(
|
||||
[](const ESM::Door& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath(rec.mModel); });
|
||||
record["mwscript"]
|
||||
= sol::readonly_property([](const ESM::Door& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Door& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId(rec.mScript); });
|
||||
record["openSound"] = sol::readonly_property(
|
||||
[](const ESM::Door& rec) -> std::string { return rec.mOpenSound.serializeText(); });
|
||||
record["closeSound"] = sol::readonly_property(
|
||||
|
@ -34,8 +34,9 @@ namespace MWLua
|
||||
record["model"] = sol::readonly_property([](const ESM::Ingredient& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctMeshPath(rec.mModel);
|
||||
});
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Ingredient& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property([](const ESM::Ingredient& rec) -> sol::optional<std::string> {
|
||||
return LuaUtil::serializeRefId(rec.mScript);
|
||||
});
|
||||
record["icon"] = sol::readonly_property([vfs](const ESM::Ingredient& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctIconPath(rec.mIcon, vfs);
|
||||
});
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <components/esm3/loadligh.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -96,8 +97,8 @@ namespace MWLua
|
||||
});
|
||||
record["sound"]
|
||||
= sol::readonly_property([](const ESM::Light& rec) -> std::string { return rec.mSound.serializeText(); });
|
||||
record["mwscript"]
|
||||
= sol::readonly_property([](const ESM::Light& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Light& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId(rec.mScript); });
|
||||
record["weight"] = sol::readonly_property([](const ESM::Light& rec) -> float { return rec.mData.mWeight; });
|
||||
record["value"] = sol::readonly_property([](const ESM::Light& rec) -> int { return rec.mData.mValue; });
|
||||
record["duration"] = sol::readonly_property([](const ESM::Light& rec) -> int { return rec.mData.mTime; });
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <components/esm3/loadlock.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -31,8 +32,9 @@ namespace MWLua
|
||||
record["name"] = sol::readonly_property([](const ESM::Lockpick& rec) -> std::string { return rec.mName; });
|
||||
record["model"] = sol::readonly_property(
|
||||
[](const ESM::Lockpick& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath(rec.mModel); });
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Lockpick& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property([](const ESM::Lockpick& rec) -> sol::optional<std::string> {
|
||||
return LuaUtil::serializeRefId(rec.mScript);
|
||||
});
|
||||
record["icon"] = sol::readonly_property([vfs](const ESM::Lockpick& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctIconPath(rec.mIcon, vfs);
|
||||
});
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include <components/esm3/loadcrea.hpp>
|
||||
#include <components/esm3/loadmisc.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -70,10 +71,7 @@ namespace MWLua
|
||||
};
|
||||
miscellaneous["getSoul"] = [](const Object& object) -> sol::optional<std::string> {
|
||||
ESM::RefId soul = object.ptr().getCellRef().getSoul();
|
||||
if (soul.empty())
|
||||
return sol::nullopt;
|
||||
else
|
||||
return soul.serializeText();
|
||||
return LuaUtil::serializeRefId(soul);
|
||||
};
|
||||
miscellaneous["soul"] = miscellaneous["getSoul"]; // for compatibility; should be removed later
|
||||
|
||||
@ -87,8 +85,9 @@ namespace MWLua
|
||||
record["model"] = sol::readonly_property([](const ESM::Miscellaneous& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctMeshPath(rec.mModel);
|
||||
});
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Miscellaneous& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property([](const ESM::Miscellaneous& rec) -> sol::optional<std::string> {
|
||||
return LuaUtil::serializeRefId(rec.mScript);
|
||||
});
|
||||
record["icon"] = sol::readonly_property([vfs](const ESM::Miscellaneous& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctIconPath(rec.mIcon, vfs);
|
||||
});
|
||||
|
@ -85,8 +85,8 @@ namespace MWLua
|
||||
= sol::readonly_property([](const ESM::NPC& rec) -> std::string { return rec.mRace.serializeText(); });
|
||||
record["class"]
|
||||
= sol::readonly_property([](const ESM::NPC& rec) -> std::string { return rec.mClass.serializeText(); });
|
||||
record["mwscript"]
|
||||
= sol::readonly_property([](const ESM::NPC& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::NPC& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId(rec.mScript); });
|
||||
record["hair"]
|
||||
= sol::readonly_property([](const ESM::NPC& rec) -> std::string { return rec.mHair.serializeText(); });
|
||||
record["baseDisposition"]
|
||||
|
@ -80,8 +80,8 @@ namespace MWLua
|
||||
record["icon"] = sol::readonly_property([vfs](const ESM::Potion& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctIconPath(rec.mIcon, vfs);
|
||||
});
|
||||
record["mwscript"]
|
||||
= sol::readonly_property([](const ESM::Potion& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Potion& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId(rec.mScript); });
|
||||
record["weight"] = sol::readonly_property([](const ESM::Potion& rec) -> float { return rec.mData.mWeight; });
|
||||
record["value"] = sol::readonly_property([](const ESM::Potion& rec) -> int { return rec.mData.mValue; });
|
||||
record["effects"] = sol::readonly_property([context](const ESM::Potion& rec) -> sol::table {
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <components/esm3/loadprob.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -31,8 +32,8 @@ namespace MWLua
|
||||
record["name"] = sol::readonly_property([](const ESM::Probe& rec) -> std::string { return rec.mName; });
|
||||
record["model"] = sol::readonly_property(
|
||||
[](const ESM::Probe& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath(rec.mModel); });
|
||||
record["mwscript"]
|
||||
= sol::readonly_property([](const ESM::Probe& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Probe& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId(rec.mScript); });
|
||||
record["icon"] = sol::readonly_property([vfs](const ESM::Probe& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctIconPath(rec.mIcon, vfs);
|
||||
});
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <components/esm3/loadrepa.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -31,8 +32,8 @@ namespace MWLua
|
||||
record["name"] = sol::readonly_property([](const ESM::Repair& rec) -> std::string { return rec.mName; });
|
||||
record["model"] = sol::readonly_property(
|
||||
[](const ESM::Repair& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath(rec.mModel); });
|
||||
record["mwscript"]
|
||||
= sol::readonly_property([](const ESM::Repair& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Repair& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId(rec.mScript); });
|
||||
record["icon"] = sol::readonly_property([vfs](const ESM::Repair& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctIconPath(rec.mIcon, vfs);
|
||||
});
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <components/esm3/loadweap.hpp>
|
||||
#include <components/lua/luastate.hpp>
|
||||
#include <components/lua/util.hpp>
|
||||
#include <components/misc/resourcehelpers.hpp>
|
||||
#include <components/resource/resourcesystem.hpp>
|
||||
|
||||
@ -131,13 +132,10 @@ namespace MWLua
|
||||
record["icon"] = sol::readonly_property([vfs](const ESM::Weapon& rec) -> std::string {
|
||||
return Misc::ResourceHelpers::correctIconPath(rec.mIcon, vfs);
|
||||
});
|
||||
record["enchant"] = sol::readonly_property([](const ESM::Weapon& rec) -> sol::optional<std::string> {
|
||||
if (rec.mEnchant.empty())
|
||||
return sol::nullopt;
|
||||
return rec.mEnchant.serializeText();
|
||||
});
|
||||
record["mwscript"]
|
||||
= sol::readonly_property([](const ESM::Weapon& rec) -> std::string { return rec.mScript.serializeText(); });
|
||||
record["enchant"] = sol::readonly_property(
|
||||
[](const ESM::Weapon& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId(rec.mEnchant); });
|
||||
record["mwscript"] = sol::readonly_property(
|
||||
[](const ESM::Weapon& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId(rec.mScript); });
|
||||
record["isMagical"] = sol::readonly_property(
|
||||
[](const ESM::Weapon& rec) -> bool { return rec.mData.mFlags & ESM::Weapon::Magical; });
|
||||
record["isSilver"] = sol::readonly_property(
|
||||
|
@ -2,6 +2,11 @@
|
||||
#define COMPONENTS_LUA_UTIL_H
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
#include <sol/sol.hpp>
|
||||
|
||||
#include <components/esm/refid.hpp>
|
||||
|
||||
namespace LuaUtil
|
||||
{
|
||||
@ -15,6 +20,13 @@ namespace LuaUtil
|
||||
{
|
||||
return i + 1;
|
||||
}
|
||||
|
||||
inline sol::optional<std::string> serializeRefId(ESM::RefId id)
|
||||
{
|
||||
if (id.empty())
|
||||
return sol::nullopt;
|
||||
return id.serializeText();
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -20,7 +20,6 @@ namespace Settings
|
||||
|
||||
SettingValue<std::string> mCharacter{ mIndex, "Saves", "character" };
|
||||
SettingValue<bool> mAutosave{ mIndex, "Saves", "autosave" };
|
||||
SettingValue<bool> mTimeplayed{ mIndex, "Saves", "timeplayed" };
|
||||
SettingValue<int> mMaxQuicksaves{ mIndex, "Saves", "max quicksaves", makeMaxSanitizerInt(1) };
|
||||
};
|
||||
}
|
||||
|
@ -21,19 +21,6 @@ This setting determines whether the game will be automatically saved when the ch
|
||||
|
||||
This setting can be toggled in game with the Auto-Save when Rest button in the Prefs panel of the Options menu.
|
||||
|
||||
timeplayed
|
||||
----------
|
||||
|
||||
:Type: boolean
|
||||
:Range: True/False
|
||||
:Default: False
|
||||
|
||||
This setting determines whether the amount of the time the player has spent playing will be displayed
|
||||
for each saved game in the Load menu. Currently, the counter includes time spent in menus, including the pause menu,
|
||||
but does not include time spent with the game window minimized.
|
||||
|
||||
This setting can only be configured by editing the settings configuration file.
|
||||
|
||||
max quicksaves
|
||||
--------------
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
local self = require('openmw.self')
|
||||
local interfaces = require('openmw.interfaces')
|
||||
local types = require('openmw.types')
|
||||
local util = require('openmw.util')
|
||||
|
||||
local function startPackage(args)
|
||||
@ -10,6 +11,7 @@ local function startPackage(args)
|
||||
self:_startAiCombat(args.target, cancelOther)
|
||||
elseif args.type == 'Pursue' then
|
||||
if not args.target then error("target required") end
|
||||
if not types.Player.objectIsInstance(args.target) then error("target must be a player") end
|
||||
self:_startAiPursue(args.target, cancelOther)
|
||||
elseif args.type == 'Follow' then
|
||||
if not args.target then error("target required") end
|
||||
|
@ -920,10 +920,6 @@ to default Morrowind fonts. Check this box if you still prefer original fonts ov
|
||||
<source>Saves</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><html><head/><body><p>This setting determines whether the amount of the time the player has spent playing will be displayed for each saved game in the Load menu.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>JPG</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -1415,10 +1411,6 @@ to default Morrowind fonts. Check this box if you still prefer original fonts ov
|
||||
<source>Can Zoom on Maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add "Time Played" to Saves</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Notify on Saved Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -1363,14 +1363,6 @@ to default Morrowind fonts. Check this box if you still prefer original fonts ov
|
||||
<source>Saves</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><html><head/><body><p>This setting determines whether the amount of the time the player has spent playing will be displayed for each saved game in the Load menu.</p></body></html></source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add "Time Played" to Saves</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum Quicksaves</source>
|
||||
<translation></translation>
|
||||
|
@ -920,10 +920,6 @@ to default Morrowind fonts. Check this box if you still prefer original fonts ov
|
||||
<source>Saves</source>
|
||||
<translation>Sauvegardes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><html><head/><body><p>This setting determines whether the amount of the time the player has spent playing will be displayed for each saved game in the Load menu.</p></body></html></source>
|
||||
<translation><html><body><p>Cette option affiche le temps de jeu de chaque sauvegarde dans leur menu de sélection.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>JPG</source>
|
||||
<translation>JPG</translation>
|
||||
@ -1418,10 +1414,6 @@ to default Morrowind fonts. Check this box if you still prefer original fonts ov
|
||||
<source>Can Zoom on Maps</source>
|
||||
<translation>Permettre le zoom sur la carte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add "Time Played" to Saves</source>
|
||||
<translation>Ajoute le temps de jeu aux sauvegardes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Notify on Saved Screenshot</source>
|
||||
<translation>Notifier l'enregistrement des captures d'écran</translation>
|
||||
|
@ -1140,14 +1140,6 @@ to default Morrowind fonts. Check this box if you still prefer original fonts ov
|
||||
<source>Saves</source>
|
||||
<translation>Сохранения</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><html><head/><body><p>This setting determines whether the amount of the time the player has spent playing will be displayed for each saved game in the Load menu.</p></body></html></source>
|
||||
<translation><html><head/><body><p>Эта настройка определяет, будет ли отображаться время с начала новой игры для выбранного сохранения в меню загрузки.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add "Time Played" to Saves</source>
|
||||
<translation>Выводить "Время в игре" в сохранениях</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>JPG</source>
|
||||
<translation>JPG</translation>
|
||||
|
@ -933,10 +933,6 @@ de ordinarie fonterna i Morrowind. Bocka denna ruta om du ändå föredrar ordin
|
||||
<source>Saves</source>
|
||||
<translation>Sparfiler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><html><head/><body><p>This setting determines whether the amount of the time the player has spent playing will be displayed for each saved game in the Load menu.</p></body></html></source>
|
||||
<translation><html><head/><body><p>Denna inställning avgör huruvida mängden tid spelaren har spenderat i spelet kommer visas för varje sparat spel i Ladda spel-menyn.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>JPG</source>
|
||||
<translation>JPG</translation>
|
||||
@ -1434,10 +1430,6 @@ de ordinarie fonterna i Morrowind. Bocka denna ruta om du ändå föredrar ordin
|
||||
<source>Can Zoom on Maps</source>
|
||||
<translation>Kan zooma på kartor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add "Time Played" to Saves</source>
|
||||
<translation>Lägg till spelad tid i sparfiler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Notify on Saved Screenshot</source>
|
||||
<translation>Ge notis vid sparad skärmdump</translation>
|
||||
|
@ -837,7 +837,7 @@
|
||||
-- @field #string name
|
||||
-- @field #string baseCreature Record id of a base creature, which was modified to create this one
|
||||
-- @field #string model VFS path to the creature's model
|
||||
-- @field #string mwscript
|
||||
-- @field #string mwscript MWScript on this creature (can be nil)
|
||||
-- @field #number soulValue The soul value of the creature record
|
||||
-- @field #number type The @{#Creature.TYPE} of the creature
|
||||
-- @field #number baseGold The base barter gold of the creature
|
||||
@ -1117,7 +1117,7 @@
|
||||
-- @field #string race
|
||||
-- @field #string class Name of the NPC's class (e. g. Acrobat)
|
||||
-- @field #string model Path to the model associated with this NPC, used for animations.
|
||||
-- @field #string mwscript MWScript that is attached to this NPC
|
||||
-- @field #string mwscript MWScript on this NPC (can be nil)
|
||||
-- @field #string hair Path to the hair body part model
|
||||
-- @field #string head Path to the head body part model
|
||||
-- @field #number baseGold The base barter gold of the NPC
|
||||
@ -1327,7 +1327,7 @@
|
||||
-- @field #string id Record id
|
||||
-- @field #string name Human-readable name
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this armor (can be empty)
|
||||
-- @field #string mwscript MWScript on this armor (can be nil)
|
||||
-- @field #string icon VFS path to the icon
|
||||
-- @field #string enchant The enchantment ID of this armor (can be nil)
|
||||
-- @field #number weight
|
||||
@ -1416,7 +1416,7 @@
|
||||
-- @field #string id The record ID of the book
|
||||
-- @field #string name Name of the book
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this book (can be empty)
|
||||
-- @field #string mwscript MWScript on this book (can be nil)
|
||||
-- @field #string icon VFS path to the icon
|
||||
-- @field #string enchant The enchantment ID of this book (can be nil)
|
||||
-- @field #string text The text content of the book
|
||||
@ -1494,7 +1494,7 @@
|
||||
-- @field #string id Record id
|
||||
-- @field #string name Name of the clothing
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this clothing (can be empty)
|
||||
-- @field #string mwscript MWScript on this clothing (can be nil)
|
||||
-- @field #string icon VFS path to the icon
|
||||
-- @field #string enchant The enchantment ID of this clothing (can be nil)
|
||||
-- @field #number weight
|
||||
@ -1537,7 +1537,7 @@
|
||||
-- @field #string id Record id
|
||||
-- @field #string name Human-readable name
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this potion (can be empty)
|
||||
-- @field #string mwscript MWScript on this potion (can be nil)
|
||||
-- @field #string icon VFS path to the icon
|
||||
-- @field #number weight
|
||||
-- @field #number value
|
||||
@ -1643,7 +1643,7 @@
|
||||
-- @field #string id Record id
|
||||
-- @field #string name Human-readable name
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this light (can be empty)
|
||||
-- @field #string mwscript MWScript on this light (can be nil)
|
||||
-- @field #string icon VFS path to the icon
|
||||
-- @field #string sound VFS path to the sound
|
||||
-- @field #number weight
|
||||
@ -1714,7 +1714,7 @@
|
||||
-- @field #string id The record ID of the miscellaneous item
|
||||
-- @field #string name The name of the miscellaneous item
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this miscellaneous item (can be empty)
|
||||
-- @field #string mwscript MWScript on this miscellaneous item (can be nil)
|
||||
-- @field #string icon VFS path to the icon
|
||||
-- @field #number weight
|
||||
-- @field #number value
|
||||
@ -1759,7 +1759,7 @@
|
||||
-- @field #string id Record id
|
||||
-- @field #string name Human-readable name
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this potion (can be empty)
|
||||
-- @field #string mwscript MWScript on this potion (can be nil)
|
||||
-- @field #string icon VFS path to the icon
|
||||
-- @field #number weight
|
||||
-- @field #number value
|
||||
@ -1819,7 +1819,7 @@
|
||||
-- @field #string id Record id
|
||||
-- @field #string name Human-readable name
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this weapon (can be empty)
|
||||
-- @field #string mwscript MWScript on this weapon (can be nil)
|
||||
-- @field #string icon VFS path to the icon
|
||||
-- @field #string enchant The enchantment ID of this weapon (can be nil)
|
||||
-- @field #boolean isMagical
|
||||
@ -1888,7 +1888,7 @@
|
||||
-- @field #string id The record ID of the apparatus
|
||||
-- @field #string name The name of the apparatus
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this apparatus (can be empty)
|
||||
-- @field #string mwscript MWScript on this apparatus (can be nil)
|
||||
-- @field #string icon VFS path to the icon
|
||||
-- @field #number type The type of apparatus. See @{#Apparatus.TYPE}
|
||||
-- @field #number weight
|
||||
@ -1927,7 +1927,7 @@
|
||||
-- @field #string id The record ID of the lockpick
|
||||
-- @field #string name The name of the lockpick
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this lockpick (can be empty)
|
||||
-- @field #string mwscript MWScript on this lockpick (can be nil)
|
||||
-- @field #string icon VFS path to the icon
|
||||
-- @field #number maxCondition The maximum number of uses of this lockpick
|
||||
-- @field #number weight
|
||||
@ -1966,7 +1966,7 @@
|
||||
-- @field #string id The record ID of the probe
|
||||
-- @field #string name The name of the probe
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this probe (can be empty)
|
||||
-- @field #string mwscript MWScript on this probe (can be nil)
|
||||
-- @field #string icon VFS path to the icon
|
||||
-- @field #number maxCondition The maximum number of uses of this probe
|
||||
-- @field #number weight
|
||||
@ -2005,7 +2005,7 @@
|
||||
-- @field #string id The record ID of the repair tool
|
||||
-- @field #string name The name of the repair tool
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this repair tool (can be empty)
|
||||
-- @field #string mwscript MWScript on this repair tool (can be nil)
|
||||
-- @field #string icon VFS path to the icon
|
||||
-- @field #number maxCondition The maximum number of uses of this repair tool
|
||||
-- @field #number weight
|
||||
@ -2042,7 +2042,7 @@
|
||||
-- @field #string id Record id
|
||||
-- @field #string name Human-readable name
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this activator (can be empty)
|
||||
-- @field #string mwscript MWScript on this activator (can be nil)
|
||||
|
||||
---
|
||||
-- Creates a @{#ActivatorRecord} without adding it to the world database.
|
||||
@ -2109,7 +2109,7 @@
|
||||
-- @field #string id Record id
|
||||
-- @field #string name Human-readable name
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this container (can be empty)
|
||||
-- @field #string mwscript MWScript on this container (can be nil)
|
||||
-- @field #number weight capacity of this container
|
||||
-- @field #boolean isOrganic Whether items can be placed in the container
|
||||
-- @field #boolean isRespawning Whether the container respawns its contents
|
||||
@ -2171,12 +2171,11 @@
|
||||
-- @field #string id Record id
|
||||
-- @field #string name Human-readable name
|
||||
-- @field #string model VFS path to the model
|
||||
-- @field #string mwscript MWScript on this door (can be empty)
|
||||
-- @field #string mwscript MWScript on this door (can be nil)
|
||||
-- @field #string openSound The sound id for door opening
|
||||
-- @field #string closeSound The sound id for door closing
|
||||
|
||||
|
||||
|
||||
--- Functions for @{#Static} objects
|
||||
-- @field [parent=#types] #Static Static
|
||||
|
||||
|
@ -566,9 +566,6 @@ character =
|
||||
# Automatically save the game whenever the player rests.
|
||||
autosave = true
|
||||
|
||||
# Display the time played on each save file in the load menu.
|
||||
timeplayed = false
|
||||
|
||||
# The maximum number of quick (or auto) save slots to have.
|
||||
# If all slots are used, the oldest save is reused
|
||||
max quicksaves = 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user