http to https for supported urls (#1625)

* http to https for supported urls

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http tp https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* http to https

* some url fixes

* http to https
pull/392/head
Harald H 6 years ago committed by Bret Curtis
parent 96c2b9374f
commit d3b623b5d3

@ -303,25 +303,25 @@ if [ -z $SKIP_DOWNLOAD ]; then
# Boost # Boost
if [ -z $APPVEYOR ]; then if [ -z $APPVEYOR ]; then
download "Boost 1.61.0" \ download "Boost 1.61.0" \
"http://sourceforge.net/projects/boost/files/boost-binaries/1.61.0/boost_1_61_0-msvc-${MSVC_VER}.0-${BITS}.exe" \ "https://sourceforge.net/projects/boost/files/boost-binaries/1.61.0/boost_1_61_0-msvc-${MSVC_VER}.0-${BITS}.exe" \
"boost-1.61.0-msvc${MSVC_YEAR}-win${BITS}.exe" "boost-1.61.0-msvc${MSVC_YEAR}-win${BITS}.exe"
fi fi
# Bullet # Bullet
download "Bullet 2.86" \ download "Bullet 2.86" \
"http://www.lysator.liu.se/~ace/OpenMW/deps/Bullet-2.86-msvc${MSVC_YEAR}-win${BITS}.7z" \ "https://www.lysator.liu.se/~ace/OpenMW/deps/Bullet-2.86-msvc${MSVC_YEAR}-win${BITS}.7z" \
"Bullet-2.86-msvc${MSVC_YEAR}-win${BITS}.7z" "Bullet-2.86-msvc${MSVC_YEAR}-win${BITS}.7z"
# FFmpeg # FFmpeg
download "FFmpeg 3.2.4" \ download "FFmpeg 3.2.4" \
"http://ffmpeg.zeranoe.com/builds/win${BITS}/shared/ffmpeg-3.2.4-win${BITS}-shared.zip" \ "https://ffmpeg.zeranoe.com/builds/win${BITS}/shared/ffmpeg-3.2.4-win${BITS}-shared.zip" \
"ffmpeg-3.2.4-win${BITS}.zip" \ "ffmpeg-3.2.4-win${BITS}.zip" \
"http://ffmpeg.zeranoe.com/builds/win${BITS}/dev/ffmpeg-3.2.4-win${BITS}-dev.zip" \ "https://ffmpeg.zeranoe.com/builds/win${BITS}/dev/ffmpeg-3.2.4-win${BITS}-dev.zip" \
"ffmpeg-3.2.4-dev-win${BITS}.zip" "ffmpeg-3.2.4-dev-win${BITS}.zip"
# MyGUI # MyGUI
download "MyGUI 3.2.2" \ download "MyGUI 3.2.2" \
"http://www.lysator.liu.se/~ace/OpenMW/deps/MyGUI-3.2.2-msvc${MSVC_YEAR}-win${BITS}.7z" \ "https://www.lysator.liu.se/~ace/OpenMW/deps/MyGUI-3.2.2-msvc${MSVC_YEAR}-win${BITS}.7z" \
"MyGUI-3.2.2-msvc${MSVC_YEAR}-win${BITS}.7z" "MyGUI-3.2.2-msvc${MSVC_YEAR}-win${BITS}.7z"
# OpenAL # OpenAL
@ -331,7 +331,7 @@ if [ -z $SKIP_DOWNLOAD ]; then
# OSG # OSG
download "OpenSceneGraph 3.4.1-scrawl" \ download "OpenSceneGraph 3.4.1-scrawl" \
"http://www.lysator.liu.se/~ace/OpenMW/deps/OSG-3.4.1-scrawl-msvc${MSVC_YEAR}-win${BITS}.7z" \ "https://www.lysator.liu.se/~ace/OpenMW/deps/OSG-3.4.1-scrawl-msvc${MSVC_YEAR}-win${BITS}.7z" \
"OSG-3.4.1-scrawl-msvc${MSVC_YEAR}-win${BITS}.7z" "OSG-3.4.1-scrawl-msvc${MSVC_YEAR}-win${BITS}.7z"
# Qt # Qt
@ -343,9 +343,9 @@ if [ -z $SKIP_DOWNLOAD ]; then
fi fi
download "Qt 5.7.2" \ download "Qt 5.7.2" \
"http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-windows-x86-msvc${MSVC_YEAR}${QT_SUFFIX}-5.7.0.exe" \ "https://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-windows-x86-msvc${MSVC_YEAR}${QT_SUFFIX}-5.7.0.exe" \
"qt-5.7.0-msvc${MSVC_YEAR}-win${BITS}.exe" \ "qt-5.7.0-msvc${MSVC_YEAR}-win${BITS}.exe" \
"http://www.lysator.liu.se/~ace/OpenMW/deps/qt-5-install.qs" \ "https://www.lysator.liu.se/~ace/OpenMW/deps/qt-5-install.qs" \
"qt-5-install.qs" "qt-5-install.qs"
fi fi

@ -505,8 +505,8 @@ if(WIN32)
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${OpenMW_SOURCE_DIR}/README.md") SET(CPACK_PACKAGE_DESCRIPTION_FILE "${OpenMW_SOURCE_DIR}/README.md")
SET(CPACK_NSIS_EXECUTABLES_DIRECTORY ".") SET(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
SET(CPACK_NSIS_DISPLAY_NAME "OpenMW ${OPENMW_VERSION}") SET(CPACK_NSIS_DISPLAY_NAME "OpenMW ${OPENMW_VERSION}")
SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\www.openmw.org") SET(CPACK_NSIS_HELP_LINK "https:\\\\\\\\www.openmw.org")
SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.openmw.org") SET(CPACK_NSIS_URL_INFO_ABOUT "https:\\\\\\\\www.openmw.org")
SET(CPACK_NSIS_INSTALLED_ICON_NAME "openmw-launcher.exe") SET(CPACK_NSIS_INSTALLED_ICON_NAME "openmw-launcher.exe")
SET(CPACK_NSIS_MUI_FINISHPAGE_RUN "openmw-launcher.exe") SET(CPACK_NSIS_MUI_FINISHPAGE_RUN "openmw-launcher.exe")
SET(CPACK_NSIS_MUI_ICON "${OpenMW_SOURCE_DIR}/files/windows/openmw.ico") SET(CPACK_NSIS_MUI_ICON "${OpenMW_SOURCE_DIR}/files/windows/openmw.ico")

@ -3,7 +3,7 @@ How to contribute to OpenMW
Not sure what to do with all your free time? Pick out a task from here: Not sure what to do with all your free time? Pick out a task from here:
http://bugs.openmw.org/ https://bugs.openmw.org/
Currently, we are focused on completing the MW game experience and general polishing. Features out of this scope may be approved in some cases, but you should probably start a discussion first. Currently, we are focused on completing the MW game experience and general polishing. Features out of this scope may be approved in some cases, but you should probably start a discussion first.

@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007 Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school, You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary. if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>. <https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>. <https://www.gnu.org/philosophy/why-not-lgpl.html>.

@ -9,7 +9,7 @@ OpenMW also comes with OpenMW-CS, a replacement for Morrowind's TES Construction
* Version: 0.43.0 * Version: 0.43.0
* License: GPLv3 (see [LICENSE](https://github.com/OpenMW/openmw/blob/master/LICENSE) for more information) * License: GPLv3 (see [LICENSE](https://github.com/OpenMW/openmw/blob/master/LICENSE) for more information)
* Website: http://www.openmw.org * Website: https://www.openmw.org
* IRC: #openmw on irc.freenode.net * IRC: #openmw on irc.freenode.net
Font Licenses: Font Licenses:
@ -30,8 +30,8 @@ Getting Started
* [Build from source](https://wiki.openmw.org/index.php?title=Development_Environment_Setup) * [Build from source](https://wiki.openmw.org/index.php?title=Development_Environment_Setup)
* [Testing the game](https://wiki.openmw.org/index.php?title=Testing) * [Testing the game](https://wiki.openmw.org/index.php?title=Testing)
* [How to contribute](https://wiki.openmw.org/index.php?title=Contribution_Wanted) * [How to contribute](https://wiki.openmw.org/index.php?title=Contribution_Wanted)
* [Report a bug](http://bugs.openmw.org/projects/openmw) - read the [guidelines](https://wiki.openmw.org/index.php?title=Bug_Reporting_Guidelines) before submitting your first bug! * [Report a bug](https://bugs.openmw.org/projects/openmw) - read the [guidelines](https://wiki.openmw.org/index.php?title=Bug_Reporting_Guidelines) before submitting your first bug!
* [Known issues](http://bugs.openmw.org/projects/openmw/issues?utf8=%E2%9C%93&set_filter=1&f%5B%5D=status_id&op%5Bstatus_id%5D=%3D&v%5Bstatus_id%5D%5B%5D=7&f%5B%5D=tracker_id&op%5Btracker_id%5D=%3D&v%5Btracker_id%5D%5B%5D=1&f%5B%5D=&c%5B%5D=project&c%5B%5D=tracker&c%5B%5D=status&c%5B%5D=priority&c%5B%5D=subject&c%5B%5D=assigned_to&c%5B%5D=updated_on&group_by=tracker) * [Known issues](https://bugs.openmw.org/projects/openmw/issues?utf8=%E2%9C%93&set_filter=1&f%5B%5D=status_id&op%5Bstatus_id%5D=%3D&v%5Bstatus_id%5D%5B%5D=7&f%5B%5D=tracker_id&op%5Btracker_id%5D=%3D&v%5Btracker_id%5D%5B%5D=1&f%5B%5D=&c%5B%5D=project&c%5B%5D=tracker&c%5B%5D=status&c%5B%5D=priority&c%5B%5D=subject&c%5B%5D=assigned_to&c%5B%5D=updated_on&group_by=tracker)
The data path The data path
------------- -------------

@ -406,7 +406,7 @@ namespace MWClass
// store // store
ptr.getRefData().setCustomData (data.release()); ptr.getRefData().setCustomData (data.release());
getInventoryStore(ptr).autoEquip(ptr); getInventoryStore(ptr).autoEquip(ptr);
} }
} }

@ -14,7 +14,7 @@
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* version 3 along with this program. If not, see * version 3 along with this program. If not, see
* http://www.gnu.org/licenses/ . * https://www.gnu.org/licenses/ .
*/ */
#include "character.hpp" #include "character.hpp"

@ -8,7 +8,7 @@
namespace namespace
{ {
// See http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html // See https://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html
// //
// One of the smallest cost in Seyda Neen is between points 77 & 78: // One of the smallest cost in Seyda Neen is between points 77 & 78:
// pt x y // pt x y

@ -15,7 +15,7 @@
* License along with this library; if not, write to the * License along with this library; if not, write to the
* Free Software Foundation, Inc., * Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* Or go to http://www.gnu.org/copyleft/lgpl.html * Or go to https://www.gnu.org/copyleft/lgpl.html
*/ */
#ifndef AL_ALEXT_H #ifndef AL_ALEXT_H

@ -21,7 +21,7 @@ extern "C"
// From version 54.56 binkaudio encoding format changed from S16 to FLTP. See: // From version 54.56 binkaudio encoding format changed from S16 to FLTP. See:
// https://gitorious.org/ffmpeg/ffmpeg/commit/7bfd1766d1c18f07b0a2dd042418a874d49ea60d // https://gitorious.org/ffmpeg/ffmpeg/commit/7bfd1766d1c18f07b0a2dd042418a874d49ea60d
// http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=15&t=872 // https://ffmpeg.zeranoe.com/forum/viewtopic.php?f=15&t=872
#include <libswresample/swresample.h> #include <libswresample/swresample.h>
} }

@ -1,7 +1,7 @@
#------------------------------------------------------------------- #-------------------------------------------------------------------
# This file is part of the CMake build system for OGRE # This file is part of the CMake build system for OGRE
# (Object-oriented Graphics Rendering Engine) # (Object-oriented Graphics Rendering Engine)
# For the latest info, see http://www.ogre3d.org/ # For the latest info, see https://www.ogre3d.org/
# #
# The contents of this file are placed in the public domain. Feel # The contents of this file are placed in the public domain. Feel
# free to make use of it in any way you like. # free to make use of it in any way you like.

@ -4,7 +4,7 @@
# LIBUNSHIELD_FOUND, if false, do not try to link to LibUnshield # LIBUNSHIELD_FOUND, if false, do not try to link to LibUnshield
# LIBUNSHIELD_INCLUDE_DIRS, where to find the headers # LIBUNSHIELD_INCLUDE_DIRS, where to find the headers
# #
# Created by Tom Mason (wheybags) for OpenMW (http://openmw.org), based on FindMPG123.cmake # Created by Tom Mason (wheybags) for OpenMW (https://openmw.org), based on FindMPG123.cmake
# #
# Ripped off from other sources. In fact, this file is so generic (I # Ripped off from other sources. In fact, this file is so generic (I
# just did a search and replace on another file) that I wonder why the # just did a search and replace on another file) that I wonder why the

@ -1,7 +1,7 @@
#------------------------------------------------------------------- #-------------------------------------------------------------------
# This file is part of the CMake build system for OGRE # This file is part of the CMake build system for OGRE
# (Object-oriented Graphics Rendering Engine) # (Object-oriented Graphics Rendering Engine)
# For the latest info, see http://www.ogre3d.org/ # For the latest info, see https://www.ogre3d.org/
# #
# The contents of this file are placed in the public domain. Feel # The contents of this file are placed in the public domain. Feel
# free to make use of it in any way you like. # free to make use of it in any way you like.

@ -2,7 +2,7 @@
OpenMW - The completely unofficial reimplementation of Morrowind OpenMW - The completely unofficial reimplementation of Morrowind
Copyright (C) 2008-2010 Nicolay Korslund Copyright (C) 2008-2010 Nicolay Korslund
Email: < korslund@gmail.com > Email: < korslund@gmail.com >
WWW: http://openmw.sourceforge.net/ WWW: https://openmw.org/
This file (bsa_file.cpp) is part of the OpenMW package. This file (bsa_file.cpp) is part of the OpenMW package.
@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
version 3 along with this program. If not, see version 3 along with this program. If not, see
http://www.gnu.org/licenses/ . https://www.gnu.org/licenses/ .
*/ */

@ -2,7 +2,7 @@
OpenMW - The completely unofficial reimplementation of Morrowind OpenMW - The completely unofficial reimplementation of Morrowind
Copyright (C) 2008-2010 Nicolay Korslund Copyright (C) 2008-2010 Nicolay Korslund
Email: < korslund@gmail.com > Email: < korslund@gmail.com >
WWW: http://openmw.sourceforge.net/ WWW: https://openmw.org/
This file (bsa_file.h) is part of the OpenMW package. This file (bsa_file.h) is part of the OpenMW package.
@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
version 3 along with this program. If not, see version 3 along with this program. If not, see
http://www.gnu.org/licenses/ . https://www.gnu.org/licenses/ .
*/ */

@ -2,7 +2,7 @@
OpenMW - The completely unofficial reimplementation of Morrowind OpenMW - The completely unofficial reimplementation of Morrowind
Copyright (C) 2008-2010 Nicolay Korslund Copyright (C) 2008-2010 Nicolay Korslund
Email: < korslund@gmail.com > Email: < korslund@gmail.com >
WWW: http://openmw.sourceforge.net/ WWW: https://openmw.org/
This file (controlled.h) is part of the OpenMW package. This file (controlled.h) is part of the OpenMW package.
@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
version 3 along with this program. If not, see version 3 along with this program. If not, see
http://www.gnu.org/licenses/ . https://www.gnu.org/licenses/ .
*/ */

@ -2,7 +2,7 @@
OpenMW - The completely unofficial reimplementation of Morrowind OpenMW - The completely unofficial reimplementation of Morrowind
Copyright (C) 2008-2010 Nicolay Korslund Copyright (C) 2008-2010 Nicolay Korslund
Email: < korslund@gmail.com > Email: < korslund@gmail.com >
WWW: http://openmw.sourceforge.net/ WWW: https://openmw.org/
This file (controller.h) is part of the OpenMW package. This file (controller.h) is part of the OpenMW package.
@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
version 3 along with this program. If not, see version 3 along with this program. If not, see
http://www.gnu.org/licenses/ . https://www.gnu.org/licenses/ .
*/ */

@ -2,7 +2,7 @@
OpenMW - The completely unofficial reimplementation of Morrowind OpenMW - The completely unofficial reimplementation of Morrowind
Copyright (C) 2008-2010 Nicolay Korslund Copyright (C) 2008-2010 Nicolay Korslund
Email: < korslund@gmail.com > Email: < korslund@gmail.com >
WWW: http://openmw.sourceforge.net/ WWW: https://openmw.org/
This file (data.h) is part of the OpenMW package. This file (data.h) is part of the OpenMW package.
@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
version 3 along with this program. If not, see version 3 along with this program. If not, see
http://www.gnu.org/licenses/ . https://www.gnu.org/licenses/ .
*/ */

@ -2,7 +2,7 @@
OpenMW - The completely unofficial reimplementation of Morrowind OpenMW - The completely unofficial reimplementation of Morrowind
Copyright (C) 2008-2010 Nicolay Korslund Copyright (C) 2008-2010 Nicolay Korslund
Email: < korslund@gmail.com > Email: < korslund@gmail.com >
WWW: http://openmw.sourceforge.net/ WWW: https://openmw.org/
This file (effect.h) is part of the OpenMW package. This file (effect.h) is part of the OpenMW package.
@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
version 3 along with this program. If not, see version 3 along with this program. If not, see
http://www.gnu.org/licenses/ . https://www.gnu.org/licenses/ .
*/ */

@ -2,7 +2,7 @@
OpenMW - The completely unofficial reimplementation of Morrowind OpenMW - The completely unofficial reimplementation of Morrowind
Copyright (C) 2008-2010 Nicolay Korslund Copyright (C) 2008-2010 Nicolay Korslund
Email: < korslund@gmail.com > Email: < korslund@gmail.com >
WWW: http://openmw.sourceforge.net/ WWW: https://openmw.org/
This file (extra.h) is part of the OpenMW package. This file (extra.h) is part of the OpenMW package.
@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
version 3 along with this program. If not, see version 3 along with this program. If not, see
http://www.gnu.org/licenses/ . https://www.gnu.org/licenses/ .
*/ */

@ -2,7 +2,7 @@
OpenMW - The completely unofficial reimplementation of Morrowind OpenMW - The completely unofficial reimplementation of Morrowind
Copyright (C) 2008-2010 Nicolay Korslund Copyright (C) 2008-2010 Nicolay Korslund
Email: < korslund@gmail.com > Email: < korslund@gmail.com >
WWW: http://openmw.sourceforge.net/ WWW: https://openmw.org/
This file (nif_types.h) is part of the OpenMW package. This file (nif_types.h) is part of the OpenMW package.
@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
version 3 along with this program. If not, see version 3 along with this program. If not, see
http://www.gnu.org/licenses/ . https://www.gnu.org/licenses/ .
*/ */

@ -2,7 +2,7 @@
OpenMW - The completely unofficial reimplementation of Morrowind OpenMW - The completely unofficial reimplementation of Morrowind
Copyright (C) 2008-2010 Nicolay Korslund Copyright (C) 2008-2010 Nicolay Korslund
Email: < korslund@gmail.com > Email: < korslund@gmail.com >
WWW: http://openmw.sourceforge.net/ WWW: https://openmw.org/
This file (property.h) is part of the OpenMW package. This file (property.h) is part of the OpenMW package.
@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
version 3 along with this program. If not, see version 3 along with this program. If not, see
http://www.gnu.org/licenses/ . https://www.gnu.org/licenses/ .
*/ */

@ -2,7 +2,7 @@
OpenMW - The completely unofficial reimplementation of Morrowind OpenMW - The completely unofficial reimplementation of Morrowind
Copyright (C) 2008-2010 Nicolay Korslund Copyright (C) 2008-2010 Nicolay Korslund
Email: < korslund@gmail.com > Email: < korslund@gmail.com >
WWW: http://openmw.sourceforge.net/ WWW: https://openmw.org/
This file (record.h) is part of the OpenMW package. This file (record.h) is part of the OpenMW package.
@ -17,7 +17,7 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
version 3 along with this program. If not, see version 3 along with this program. If not, see
http://www.gnu.org/licenses/ . https://www.gnu.org/licenses/ .
*/ */

@ -292,7 +292,7 @@ public:
ostream << "# to its default, simply remove it from this file. For available" << std::endl; ostream << "# to its default, simply remove it from this file. For available" << std::endl;
ostream << "# settings, see the file 'settings-default.cfg' or the documentation at:" << std::endl; ostream << "# settings, see the file 'settings-default.cfg' or the documentation at:" << std::endl;
ostream << "#" << std::endl; ostream << "#" << std::endl;
ostream << "# http://openmw.readthedocs.io/en/master/reference/modding/settings/index.html" << std::endl; ostream << "# https://openmw.readthedocs.io/en/master/reference/modding/settings/index.html" << std::endl;
} }
// We still have one more thing to do before we're completely done writing the file. // We still have one more thing to do before we're completely done writing the file.

@ -20,7 +20,7 @@
# This tag specifies the encoding used for all characters in the config file # This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all text # that follow. The default is UTF-8 which is also the encoding used for all text
# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv # built into libc) for the transcoding. See https://www.gnu.org/software/libiconv
# for the list of possible encodings. # for the list of possible encodings.
# The default value is: UTF-8. # The default value is: UTF-8.
@ -295,7 +295,7 @@ EXTENSION_MAPPING =
# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable # according to the Markdown format, which allows for more readable
# documentation. See http://daringfireball.net/projects/markdown/ for details. # documentation. See https://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you can # The output of markdown processing is further processed by doxygen, so you can
# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
# case of backward compatibilities issues. # case of backward compatibilities issues.
@ -328,7 +328,7 @@ BUILTIN_STL_SUPPORT = YES
CPP_CLI_SUPPORT = NO CPP_CLI_SUPPORT = NO
# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen # https://riverbankcomputing.com/software/sip/intro) sources only. Doxygen
# will parse them like normal C++ but will assume all classes use public instead # will parse them like normal C++ but will assume all classes use public instead
# of private inheritance when no explicit protection keyword is present. # of private inheritance when no explicit protection keyword is present.
# The default value is: NO. # The default value is: NO.
@ -687,7 +687,7 @@ LAYOUT_FILE =
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib # the reference definitions. This must be a list of .bib files. The .bib
# extension is automatically appended if omitted. This requires the bibtex tool # extension is automatically appended if omitted. This requires the bibtex tool
# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
# For LaTeX the style of the bibliography can be controlled using # For LaTeX the style of the bibliography can be controlled using
# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
# search path. Do not use file names with spaces, bibtex cannot handle them. See # search path. Do not use file names with spaces, bibtex cannot handle them. See
@ -772,7 +772,7 @@ INPUT = @OpenMW_SOURCE_DIR@/apps \
# This tag can be used to specify the character encoding of the source files # This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
# documentation (see: http://www.gnu.org/software/libiconv) for the list of # documentation (see: https://www.gnu.org/software/libiconv) for the list of
# possible encodings. # possible encodings.
# The default value is: UTF-8. # The default value is: UTF-8.
@ -993,7 +993,7 @@ SOURCE_TOOLTIPS = YES
# If the USE_HTAGS tag is set to YES then the references to source code will # If the USE_HTAGS tag is set to YES then the references to source code will
# point to the HTML generated by the htags(1) tool instead of doxygen built-in # point to the HTML generated by the htags(1) tool instead of doxygen built-in
# source browser. The htags tool is part of GNU's global source tagging system # source browser. The htags tool is part of GNU's global source tagging system
# (see http://www.gnu.org/software/global/global.html). You will need version # (see https://www.gnu.org/software/global/global.html). You will need version
# 4.8.6 or higher. # 4.8.6 or higher.
# #
# To use it do the following: # To use it do the following:
@ -1136,7 +1136,7 @@ HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the stylesheet and background images according to # will adjust the colors in the stylesheet and background images according to
# this color. Hue is specified as an angle on a colorwheel, see # this color. Hue is specified as an angle on a colorwheel, see
# http://en.wikipedia.org/wiki/Hue for more information. For instance the value # https://en.wikipedia.org/wiki/Hue for more information. For instance the value
# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
# purple, and 360 is red again. # purple, and 360 is red again.
# Minimum value: 0, maximum value: 359, default value: 220. # Minimum value: 0, maximum value: 359, default value: 220.
@ -1194,7 +1194,7 @@ HTML_INDEX_NUM_ENTRIES = 100
# If the GENERATE_DOCSET tag is set to YES, additional index files will be # If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development # generated that can be used as input for Apple's Xcode 3 integrated development
# environment (see: http://developer.apple.com/tools/xcode/), introduced with # environment (see: https://developer.apple.com/xcode/), introduced with
# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
# Makefile in the HTML output directory. Running make will produce the docset in # Makefile in the HTML output directory. Running make will produce the docset in
# that directory and running make install will install the docset in # that directory and running make install will install the docset in
@ -1239,7 +1239,7 @@ DOCSET_PUBLISHER_NAME = OpenMW
# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
# additional HTML index files: index.hhp, index.hhc, and index.hhk. The # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on # (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on
# Windows. # Windows.
# #
# The HTML Help Workshop contains a compiler that can convert all HTML output # The HTML Help Workshop contains a compiler that can convert all HTML output
@ -1315,7 +1315,7 @@ QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace # Project output. For more information please see Qt Help Project / Namespace
# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). # (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace).
# The default value is: org.doxygen.Project. # The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
@ -1323,8 +1323,7 @@ QHP_NAMESPACE = org.openmw
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
# Help Project output. For more information please see Qt Help Project / Virtual # Help Project output. For more information please see Qt Help Project / Virtual
# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- # Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders).
# folders).
# The default value is: doc. # The default value is: doc.
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
@ -1332,23 +1331,21 @@ QHP_VIRTUAL_FOLDER = doc
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
# filter to add. For more information please see Qt Help Project / Custom # filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
# filters).
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_NAME = QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom # custom filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
# filters).
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_ATTRS = QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see: # project's filter section matches. Qt Help Project / Filter Attributes (see:
# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
QHP_SECT_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS =
@ -1453,7 +1450,7 @@ FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# http://www.mathjax.org) which uses client side Javascript for the rendering # https://www.mathjax.org) which uses client side Javascript for the rendering
# instead of using prerendered bitmaps. Use this if you do not have LaTeX # instead of using prerendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When # installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path # enabled you may also need to install MathJax separately and configure the path
@ -1465,7 +1462,7 @@ USE_MATHJAX = YES
# When MathJax is enabled you can set the default output format to be used for # When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see: # the MathJax output. See the MathJax site (see:
# http://docs.mathjax.org/en/latest/output.html) for more details. # https://docs.mathjax.org/en/latest/output.html) for more details.
# Possible values are: HTML-CSS (which is slower, but has the best # Possible values are: HTML-CSS (which is slower, but has the best
# compatibility), NativeMML (i.e. MathML) and SVG. # compatibility), NativeMML (i.e. MathML) and SVG.
# The default value is: HTML-CSS. # The default value is: HTML-CSS.
@ -1480,11 +1477,11 @@ MATHJAX_FORMAT = HTML-CSS
# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
# Content Delivery Network so you can quickly see the result without installing # Content Delivery Network so you can quickly see the result without installing
# MathJax. However, it is strongly recommended to install a local copy of # MathJax. However, it is strongly recommended to install a local copy of
# MathJax from http://www.mathjax.org before deployment. # MathJax from https://www.mathjax.org before deployment.
# The default value is: http://cdn.mathjax.org/mathjax/latest. # The default value is: https://cdn.mathjax.org/mathjax/latest.
# This tag requires that the tag USE_MATHJAX is set to YES. # This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest MATHJAX_RELPATH = https://cdn.mathjax.org/mathjax/latest
# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
# extension names that should be enabled during MathJax rendering. For example # extension names that should be enabled during MathJax rendering. For example
@ -1495,7 +1492,7 @@ MATHJAX_EXTENSIONS =
# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site # of code that will be used on startup of the MathJax code. See the MathJax site
# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # (see: https://docs.mathjax.org/en/latest/output.html) for more details. For an
# example see the documentation. # example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES. # This tag requires that the tag USE_MATHJAX is set to YES.
@ -1542,7 +1539,7 @@ SERVER_BASED_SEARCH = NO
# #
# Doxygen ships with an example indexer ( doxyindexer) and search engine # Doxygen ships with an example indexer ( doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library # (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: http://xapian.org/). # Xapian (see: https://xapian.org/).
# #
# See the section "External Indexing and Searching" for details. # See the section "External Indexing and Searching" for details.
# The default value is: NO. # The default value is: NO.
@ -1555,7 +1552,7 @@ EXTERNAL_SEARCH = NO
# #
# Doxygen ships with an example indexer ( doxyindexer) and search engine # Doxygen ships with an example indexer ( doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library # (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: http://xapian.org/). See the section "External Indexing and # Xapian (see: https://xapian.org/). See the section "External Indexing and
# Searching" for details. # Searching" for details.
# This tag requires that the tag SEARCHENGINE is set to YES. # This tag requires that the tag SEARCHENGINE is set to YES.
@ -1726,7 +1723,7 @@ LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See # bibliography, e.g. plainnat, or ieeetr. See
# http://en.wikipedia.org/wiki/BibTeX and \cite for more info. # https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
# The default value is: plain. # The default value is: plain.
# This tag requires that the tag GENERATE_LATEX is set to YES. # This tag requires that the tag GENERATE_LATEX is set to YES.
@ -1882,7 +1879,7 @@ DOCBOOK_OUTPUT = docbook
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen # If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
# Definitions (see http://autogen.sf.net) file that captures the structure of # Definitions (see http://autogen.sourceforge.net) file that captures the structure of
# the code including all documentation. Note that this feature is still # the code including all documentation. Note that this feature is still
# experimental and incomplete at the moment. # experimental and incomplete at the moment.
# The default value is: NO. # The default value is: NO.
@ -2093,7 +2090,7 @@ HIDE_UNDOC_RELATIONS = NO
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz (see: # available from the path. This tool is part of Graphviz (see:
# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # https://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
# Bell Labs. The other options in this section have no effect if this option is # Bell Labs. The other options in this section have no effect if this option is
# set to NO # set to NO
# The default value is: YES. # The default value is: YES.

@ -18,7 +18,7 @@
# that follow. The default is UTF-8 which is also the encoding used for all # that follow. The default is UTF-8 which is also the encoding used for all
# text before the first occurrence of this tag. Doxygen uses libiconv (or the # text before the first occurrence of this tag. Doxygen uses libiconv (or the
# iconv built into libc) for the transcoding. See # iconv built into libc) for the transcoding. See
# http://www.gnu.org/software/libiconv for the list of possible encodings. # https://www.gnu.org/software/libiconv for the list of possible encodings.
DOXYFILE_ENCODING = UTF-8 DOXYFILE_ENCODING = UTF-8
@ -581,7 +581,7 @@ INPUT = @OpenMW_SOURCE_DIR@/apps \
# This tag can be used to specify the character encoding of the source files # This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
# also the default input encoding. Doxygen uses libiconv (or the iconv built # also the default input encoding. Doxygen uses libiconv (or the iconv built
# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # into libc) for the transcoding. See https://www.gnu.org/software/libiconv for
# the list of possible encodings. # the list of possible encodings.
INPUT_ENCODING = UTF-8 INPUT_ENCODING = UTF-8
@ -753,7 +753,7 @@ REFERENCES_LINK_SOURCE = YES
# If the USE_HTAGS tag is set to YES then the references to source code # If the USE_HTAGS tag is set to YES then the references to source code
# will point to the HTML generated by the htags(1) tool instead of doxygen # will point to the HTML generated by the htags(1) tool instead of doxygen
# built-in source browser. The htags tool is part of GNU's global source # built-in source browser. The htags tool is part of GNU's global source
# tagging system (see http://www.gnu.org/software/global/global.html). You # tagging system (see https://www.gnu.org/software/global/global.html). You
# will need version 4.8.6 or higher. # will need version 4.8.6 or higher.
USE_HTAGS = NO USE_HTAGS = NO
@ -928,30 +928,30 @@ QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating # The QHP_NAMESPACE tag specifies the namespace to use when generating
# Qt Help Project output. For more information please see # Qt Help Project output. For more information please see
# http://doc.trolltech.com/qthelpproject.html#namespace # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace
QHP_NAMESPACE = QHP_NAMESPACE =
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
# Qt Help Project output. For more information please see # Qt Help Project output. For more information please see
# http://doc.trolltech.com/qthelpproject.html#virtual-folders # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders
QHP_VIRTUAL_FOLDER = doc QHP_VIRTUAL_FOLDER = doc
# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
# For more information please see # For more information please see
# http://doc.trolltech.com/qthelpproject.html#custom-filters # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters
QHP_CUST_FILTER_NAME = QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see
# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>. # <a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
QHP_CUST_FILTER_ATTRS = QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's
# filter section matches. # filter section matches.
# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>. # <a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
QHP_SECT_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS =

@ -145,7 +145,7 @@ and a place where OpenMW CS looks for already existing files.
Resource files Resource files
============== ==============
.. TODO This paragraph sounds weird .. TODO This paragraph sounds weird
Unless we are talking about a fully text based game, like Zork or Rogue, one Unless we are talking about a fully text based game, like Zork or Rogue, one
would expect that a video game is using some media files: 3D models with would expect that a video game is using some media files: 3D models with
@ -219,6 +219,6 @@ files for textures.
.. Hyperlink targets for the entire document .. Hyperlink targets for the entire document
.. _FFmpeg: http://ffmpeg.org .. _FFmpeg: https://ffmpeg.org
.. _Vorbis: http://www.vorbis.com .. _Vorbis: http://www.vorbis.com
.. _Theora: http://www.theora.org .. _Theora: https://www.theora.org

@ -3,7 +3,7 @@ A Tour through OpenMW CS: making a magic ring
In this first chapter we will create a mod that adds a new ring with a simple In this first chapter we will create a mod that adds a new ring with a simple
enchantment to the game. The ring will give its wearer a permanent Night Vision enchantment to the game. The ring will give its wearer a permanent Night Vision
effect while being worn. You do not need previous Morrowind modding experience, effect while being worn. You do not need previous Morrowind modding experience,
but you should be familiar with the game itself. There will be no but you should be familiar with the game itself. There will be no
scripting necessary, we can achieve everything using just what the base game scripting necessary, we can achieve everything using just what the base game
offers out of the box. Before continuing make sure that OpenMW is properly offers out of the box. Before continuing make sure that OpenMW is properly
@ -133,7 +133,7 @@ the filter directly into the filter field rather than the name of an existing
filter. To signify that we are using an instant filter the have to use `!` as filter. To signify that we are using an instant filter the have to use `!` as
the first character. Type the following into the field: the first character. Type the following into the field:
.. code:: .. code::
!string("id", ".*ring.*") !string("id", ".*ring.*")
@ -217,20 +217,20 @@ actually modify the contents of the game.
Adding to an NPC Adding to an NPC
================ ================
The simplest way is probably to add it to the inventory of a shopkeeper. The simplest way is probably to add it to the inventory of a shopkeeper.
An obvious candidate is Arrille in Seyda Neen - he's quick to find in a new game An obvious candidate is Arrille in Seyda Neen - he's quick to find in a new game
and he's easy to find in the CS as his name comes early alphabetically. and he's easy to find in the CS as his name comes early alphabetically.
.. figure:: _static/images/chapter-1/Ring_to_Arrille.png .. figure:: _static/images/chapter-1/Ring_to_Arrille.png
:alt: Putting the ring into Arrille's inventory :alt: Putting the ring into Arrille's inventory
Open the CS and open the *Objects* table (*World**Objects*). Open the CS and open the *Objects* table (*World**Objects*).
Scroll down to Arrille, or use a filter like !string("ID","arrille"). Scroll down to Arrille, or use a filter like !string("ID","arrille").
Open another pane to edit him - either right click and select edit or use the Open another pane to edit him - either right click and select edit or use the
shortcut (default is shift double-click). Scroll down to the inventory section shortcut (default is shift double-click). Scroll down to the inventory section
and right click to add a new row. Type in the id of the ring (or find it in the and right click to add a new row. Type in the id of the ring (or find it in the
object pane, and drag and drop). Set the number of rings for him to stock - with object pane, and drag and drop). Set the number of rings for him to stock - with
a negative number indicating that he will restock again to maintain that level. a negative number indicating that he will restock again to maintain that level.
However, it's an attractive item, so he will probably wear it rather than sell it. However, it's an attractive item, so he will probably wear it rather than sell it.
@ -241,7 +241,7 @@ Fargoth to give it to the player in exchange for his healing ring.
.. figure:: _static/images/chapter-1/Ring_to_Fargoth_1.png .. figure:: _static/images/chapter-1/Ring_to_Fargoth_1.png
:alt: Editing Fargoth to give ring to player :alt: Editing Fargoth to give ring to player
Open the *Topicinfo* Table (*Characters**Topic Infos*). Use a filter !string(Topic,ring) Open the *Topicinfo* Table (*Characters**Topic Infos*). Use a filter !string(Topic,ring)
and select the row with a response starting with "You found it!". Edit the record, and select the row with a response starting with "You found it!". Edit the record,
firstly by adding a bit more to the response, then by adding a line to the script firstly by adding a bit more to the response, then by adding a line to the script
@ -297,7 +297,7 @@ Placing in plain sight
===================== =====================
Let's hide the Ring of Night vision in the cabin of the [Ancient Shipwreck] Let's hide the Ring of Night vision in the cabin of the [Ancient Shipwreck]
(http://en.uesp.net/wiki/Morrowind:Ancient_Shipwreck), a derelict vessel (https://en.uesp.net/wiki/Morrowind:Ancient_Shipwreck), a derelict vessel
southeast of Dagon Fel. Open the list of Cells (*World**Cells*) and find southeast of Dagon Fel. Open the list of Cells (*World**Cells*) and find
"Ancient Shipwreck, Cabin". "Ancient Shipwreck, Cabin".
@ -333,8 +333,8 @@ This is probably a suitable place to start talking about how navigation differs
in vanilla Morrowind. in vanilla Morrowind.
There is advice in Scripting for Dummies, the definitive manual for Morrowind Scripting: There is advice in Scripting for Dummies, the definitive manual for Morrowind Scripting:
"If you give your scripts a common tag, that will make it easier to jump between the "If you give your scripts a common tag, that will make it easier to jump between the
different scripts of your project, e.g. start every script name with AA_Scriptname different scripts of your project, e.g. start every script name with AA_Scriptname
this will put them right at the beginning of the list and keep them neatly together." this will put them right at the beginning of the list and keep them neatly together."
This is valid for the rather poorer navigation facilities there, but it's not sensible for This is valid for the rather poorer navigation facilities there, but it's not sensible for
@ -359,12 +359,12 @@ the base game.
"Modified" status will cover items from the base game which have been modified in this addon. "Modified" status will cover items from the base game which have been modified in this addon.
Click on the top of the column to toggle between ascending and descending order - thus between "Added" Click on the top of the column to toggle between ascending and descending order - thus between "Added"
and "Modified" at the top. Or put your desired modified status into a filter then sort alpabetically and "Modified" at the top. Or put your desired modified status into a filter then sort alpabetically
on a different column. on a different column.
Checking your new addon Checking your new addon
======================= =======================
@ -372,4 +372,4 @@ Launch OpenMW and in the launcher under *Data Files* check your addon, if it's n
already checked. Load a game and make your way to Seyda Neen - or start a new game. already checked. Load a game and make your way to Seyda Neen - or start a new game.
Check whether Arrille has one (or more) for sale, and whether Fargoth give you one Check whether Arrille has one (or more) for sale, and whether Fargoth give you one
when you return his healing ring. when you return his healing ring.

@ -20,7 +20,7 @@ General introduction to normal map conversion
:Authors: Joakim (Lysol) Berg :Authors: Joakim (Lysol) Berg
:Updated: 2016-11-11 :Updated: 2016-11-11
This page has general information and tutorials on how normal mapping works in OpenMW and how you can make mods using the old fake normal mapping technique (such as `Netch Bump mapped`_ and `Hlaalu Bump mapped`_, and maybe the most (in)famous one to give shiny rocks in OpenMW, the mod `On the Rocks`_!, featured in MGSO and Morrowind Rebirth) work in OpenMW. This page has general information and tutorials on how normal mapping works in OpenMW and how you can make mods using the old fake normal mapping technique (such as `Netch Bump mapped`_ and `Hlaalu Bump mapped`_, and maybe the most (in)famous one to give shiny rocks in OpenMW, the mod `On the Rocks`_!, featured in MGSO and Morrowind Rebirth) work in OpenMW.
*Note:* The conversion made in the `Converting Apel's Various Things - Sacks`_-part of this tutorial require the use of the application NifSkope. There are binaries available for Windows, but not for Mac or Linux. Reports say that NifSkope versions 1.X will compile on Linux as long as you have Qt packages installed, while the later 2.X versions will not compile. *Note:* The conversion made in the `Converting Apel's Various Things - Sacks`_-part of this tutorial require the use of the application NifSkope. There are binaries available for Windows, but not for Mac or Linux. Reports say that NifSkope versions 1.X will compile on Linux as long as you have Qt packages installed, while the later 2.X versions will not compile.
@ -179,24 +179,24 @@ The sacks included in Apel's `Various Things - Sacks`_ come in two versions
#. Remove all these tags by selecting them one at a time and press right click>Block>Remove Branch. (Ctrl-Del) #. Remove all these tags by selecting them one at a time and press right click>Block>Remove Branch. (Ctrl-Del)
#. Repeat this on all the affected models. #. Repeat this on all the affected models.
#. If you launch OpenMW now, you'll `no longer have shiny models`_. But one thing is missing. Can you see it? It's actually hard to spot on still pictures, but we have no normal maps here. #. If you launch OpenMW now, you'll `no longer have shiny models`_. But one thing is missing. Can you see it? It's actually hard to spot on still pictures, but we have no normal maps here.
#. Now, go back to the root of where you installed the mod. Now go to ``./Textures/`` and you'll find the texture files in question. #. Now, go back to the root of where you installed the mod. Now go to ``./Textures/`` and you'll find the texture files in question.
#. OpenMW detects normal maps if they have the same name as the base diffuse texture, but with a *_n.dds* suffix. In this mod, the normal maps has a suffix of *_nm.dds*. Change all the files that ends with *_nm.dds* to instead end with *_n.dds*. #. OpenMW detects normal maps if they have the same name as the base diffuse texture, but with a *_n.dds* suffix. In this mod, the normal maps has a suffix of *_nm.dds*. Change all the files that ends with *_nm.dds* to instead end with *_n.dds*.
#. Finally, `we are done`_! #. Finally, `we are done`_!
Since these models have one or two textures applied to them, the fix was not that time-consuming. It gets worse when you have to fix a model that uses loads of textures. The principle is the same, it just requires more manual work which is annoying and takes time. Since these models have one or two textures applied to them, the fix was not that time-consuming. It gets worse when you have to fix a model that uses loads of textures. The principle is the same, it just requires more manual work which is annoying and takes time.
.. _`Netch Bump mapped`: http://www.nexusmods.com/morrowind/mods/42851/? .. _`Netch Bump mapped`: https://www.nexusmods.com/morrowind/mods/42851/?
.. _`Hlaalu Bump mapped`: http://www.nexusmods.com/morrowind/mods/42396/? .. _`Hlaalu Bump mapped`: https://www.nexusmods.com/morrowind/mods/42396/?
.. _`On the Rocks`: http://mw.modhistory.com/download-44-14107 .. _`On the Rocks`: http://mw.modhistory.com/download-44-14107
.. _`texture modding`: https://wiki.openmw.org/index.php?title=TextureModding .. _`texture modding`: https://wiki.openmw.org/index.php?title=TextureModding
.. _`MGE XE`: http://www.nexusmods.com/morrowind/mods/26348/? .. _`MGE XE`: https://www.nexusmods.com/morrowind/mods/26348/?
.. _PeterBitt: http://www.nexusmods.com/morrowind/users/4381248/? .. _PeterBitt: https://www.nexusmods.com/morrowind/users/4381248/?
.. _`PBR Scamp Replacer`: http://www.nexusmods.com/morrowind/mods/44314/? .. _`PBR Scamp Replacer`: https://www.nexusmods.com/morrowind/mods/44314/?
.. _settings.cfg: https://wiki.openmw.org/index.php?title=Settings .. _settings.cfg: https://wiki.openmw.org/index.php?title=Settings
.. _`Multiple data folders`: https://wiki.openmw.org/index.php?title=Mod_installation .. _`Multiple data folders`: https://wiki.openmw.org/index.php?title=Mod_installation
.. _`Various Things - Sacks`: http://www.nexusmods.com/morrowind/mods/42558/? .. _`Various Things - Sacks`: https://www.nexusmods.com/morrowind/mods/42558/?
.. _Lead: http://imgur.com/bwpcYlc .. _Lead: https://imgur.com/bwpcYlc
.. _NifSkope: http://niftools.sourceforge.net/wiki/NifSkope .. _NifSkope: http://niftools.sourceforge.net/wiki/NifSkope
.. _Blocks: http://imgur.com/VmQC0WG .. _Blocks: https://imgur.com/VmQC0WG
.. _`no longer have shiny models`: http://imgur.com/vu1k7n1 .. _`no longer have shiny models`: https://imgur.com/vu1k7n1
.. _`we are done`: http://imgur.com/yyZxlTw .. _`we are done`: https://imgur.com/yyZxlTw

@ -15,7 +15,7 @@ Unlike vanilla Morrowind, OpenMW directly supports TrueType (``.ttf``) fonts. Th
- To replace the primary "Magic Cards" font: - To replace the primary "Magic Cards" font:
#. Download `Pelagiad <http://isaskar.github.io/Pelagiad/>`_ by Isak Larborn (aka Isaskar). #. Download `Pelagiad <https://isaskar.github.io/Pelagiad/>`_ by Isak Larborn (aka Isaskar).
#. Install the ``openmw_font.xml`` file into ``resources/mygui/openmw_font.xml`` in your OpenMW installation. #. Install the ``openmw_font.xml`` file into ``resources/mygui/openmw_font.xml`` in your OpenMW installation.
#. Copy ``Pelagiad.ttf`` into ``resources/mygui/`` as well. #. Copy ``Pelagiad.ttf`` into ``resources/mygui/`` as well.
#. If desired, you can now delete the original ``Magic_Cards.*`` files from your Data Files/Fonts directory. #. If desired, you can now delete the original ``Magic_Cards.*`` files from your Data Files/Fonts directory.
@ -74,4 +74,4 @@ Unlike vanilla Morrowind, OpenMW directly supports TrueType (``.ttf``) fonts. Th
Bitmap fonts Bitmap fonts
------------ ------------
Morrowind ``.fnt`` files are essentially a bitmap font, but using them is discouraged because of no Unicode support. MyGUI has its own format for bitmap fonts. An example can be seen by using the --export-fonts command line option (see above), which converts Morrowind ``.fnt`` to a MyGUI bitmap font. This is the recommended format to use if you wish to edit Morrowind's bitmap font or create a new bitmap font. Morrowind ``.fnt`` files are essentially a bitmap font, but using them is discouraged because of no Unicode support. MyGUI has its own format for bitmap fonts. An example can be seen by using the --export-fonts command line option (see above), which converts Morrowind ``.fnt`` to a MyGUI bitmap font. This is the recommended format to use if you wish to edit Morrowind's bitmap font or create a new bitmap font.

@ -2,23 +2,23 @@
www.sourceforge.net/projects/tinyxml www.sourceforge.net/projects/tinyxml
Original code (2.0 and earlier )copyright (c) 2000-2002 Lee Thomason (www.grinninglizard.com) Original code (2.0 and earlier )copyright (c) 2000-2002 Lee Thomason (www.grinninglizard.com)
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any warranty. In no event will the authors be held liable for any
damages arising from the use of this software. damages arising from the use of this software.
Permission is granted to anyone to use this software for any Permission is granted to anyone to use this software for any
purpose, including commercial applications, and to alter it and purpose, including commercial applications, and to alter it and
redistribute it freely, subject to the following restrictions: redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must 1. The origin of this software must not be misrepresented; you must
not claim that you wrote the original software. If you use this not claim that you wrote the original software. If you use this
software in a product, an acknowledgment in the product documentation software in a product, an acknowledgment in the product documentation
would be appreciated but is not required. would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and 2. Altered source versions must be plainly marked as such, and
must not be misrepresented as being the original software. must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source 3. This notice may not be removed or altered from any source
distribution. distribution.
*/ */
@ -39,8 +39,8 @@ distribution.
// Note tha "PutString" hardcodes the same list. This // Note tha "PutString" hardcodes the same list. This
// is less flexible than it appears. Changing the entries // is less flexible than it appears. Changing the entries
// or order will break putstring. // or order will break putstring.
TiXmlBase::Entity TiXmlBase::entity[ NUM_ENTITY ] = TiXmlBase::Entity TiXmlBase::entity[ NUM_ENTITY ] =
{ {
{ "&amp;", 5, '&' }, { "&amp;", 5, '&' },
{ "&lt;", 4, '<' }, { "&lt;", 4, '<' },
@ -50,20 +50,20 @@ TiXmlBase::Entity TiXmlBase::entity[ NUM_ENTITY ] =
}; };
// Bunch of unicode info at: // Bunch of unicode info at:
// http://www.unicode.org/faq/utf_bom.html // https://www.unicode.org/faq/utf_bom.html
// Including the basic of this table, which determines the #bytes in the // Including the basic of this table, which determines the #bytes in the
// sequence from the lead byte. 1 placed for invalid sequences -- // sequence from the lead byte. 1 placed for invalid sequences --
// although the result will be junk, pass it through as much as possible. // although the result will be junk, pass it through as much as possible.
// Beware of the non-characters in UTF-8: // Beware of the non-characters in UTF-8:
// ef bb bf (Microsoft "lead bytes") // ef bb bf (Microsoft "lead bytes")
// ef bf be // ef bf be
// ef bf bf // ef bf bf
const unsigned char TIXML_UTF_LEAD_0 = 0xefU; const unsigned char TIXML_UTF_LEAD_0 = 0xefU;
const unsigned char TIXML_UTF_LEAD_1 = 0xbbU; const unsigned char TIXML_UTF_LEAD_1 = 0xbbU;
const unsigned char TIXML_UTF_LEAD_2 = 0xbfU; const unsigned char TIXML_UTF_LEAD_2 = 0xbfU;
const int TiXmlBase::utf8ByteTable[256] = const int TiXmlBase::utf8ByteTable[256] =
{ {
// 0 1 2 3 4 5 6 7 8 9 a b c d e f // 0 1 2 3 4 5 6 7 8 9 a b c d e f
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00
@ -75,9 +75,9 @@ const int TiXmlBase::utf8ByteTable[256] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x60 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x60
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x70 End of ASCII range 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x70 End of ASCII range
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x80 0x80 to 0xc1 invalid 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x80 0x80 to 0xc1 invalid
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x90 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x90
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0xa0 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0xa0
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0xb0 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0xb0
1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xc0 0xc2 to 0xdf 2 byte 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xc0 0xc2 to 0xdf 2 byte
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xd0 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xd0
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 0xe0 0xe0 to 0xef 3 byte 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 0xe0 0xe0 to 0xef 3 byte
@ -91,7 +91,7 @@ void TiXmlBase::ConvertUTF32ToUTF8( unsigned long input, char* output, int* leng
const unsigned long BYTE_MARK = 0x80; const unsigned long BYTE_MARK = 0x80;
const unsigned long FIRST_BYTE_MARK[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC }; const unsigned long FIRST_BYTE_MARK[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC };
if (input < 0x80) if (input < 0x80)
*length = 1; *length = 1;
else if ( input < 0x800 ) else if ( input < 0x800 )
*length = 2; *length = 2;
@ -105,22 +105,22 @@ void TiXmlBase::ConvertUTF32ToUTF8( unsigned long input, char* output, int* leng
output += *length; output += *length;
// Scary scary fall throughs. // Scary scary fall throughs.
switch (*length) switch (*length)
{ {
case 4: case 4:
--output; --output;
*output = (char)((input | BYTE_MARK) & BYTE_MASK); *output = (char)((input | BYTE_MARK) & BYTE_MASK);
input >>= 6; input >>= 6;
case 3: case 3:
--output; --output;
*output = (char)((input | BYTE_MARK) & BYTE_MASK); *output = (char)((input | BYTE_MARK) & BYTE_MASK);
input >>= 6; input >>= 6;
case 2: case 2:
--output; --output;
*output = (char)((input | BYTE_MARK) & BYTE_MASK); *output = (char)((input | BYTE_MARK) & BYTE_MASK);
input >>= 6; input >>= 6;
case 1: case 1:
--output; --output;
*output = (char)(input | FIRST_BYTE_MARK[*length]); *output = (char)(input | FIRST_BYTE_MARK[*length]);
} }
} }
@ -130,7 +130,7 @@ void TiXmlBase::ConvertUTF32ToUTF8( unsigned long input, char* output, int* leng
{ {
// This will only work for low-ascii, everything else is assumed to be a valid // This will only work for low-ascii, everything else is assumed to be a valid
// letter. I'm not sure this is the best approach, but it is quite tricky trying // letter. I'm not sure this is the best approach, but it is quite tricky trying
// to figure out alhabetical vs. not across encoding. So take a very // to figure out alhabetical vs. not across encoding. So take a very
// conservative approach. // conservative approach.
// if ( encoding == TIXML_ENCODING_UTF8 ) // if ( encoding == TIXML_ENCODING_UTF8 )
@ -151,7 +151,7 @@ void TiXmlBase::ConvertUTF32ToUTF8( unsigned long input, char* output, int* leng
{ {
// This will only work for low-ascii, everything else is assumed to be a valid // This will only work for low-ascii, everything else is assumed to be a valid
// letter. I'm not sure this is the best approach, but it is quite tricky trying // letter. I'm not sure this is the best approach, but it is quite tricky trying
// to figure out alhabetical vs. not across encoding. So take a very // to figure out alhabetical vs. not across encoding. So take a very
// conservative approach. // conservative approach.
// if ( encoding == TIXML_ENCODING_UTF8 ) // if ( encoding == TIXML_ENCODING_UTF8 )
@ -224,7 +224,7 @@ void TiXmlParsingData::Stamp( const char* now, TiXmlEncoding encoding )
case '\r': case '\r':
// bump down to the next line // bump down to the next line
++row; ++row;
col = 0; col = 0;
// Eat the character // Eat the character
++p; ++p;
@ -266,11 +266,11 @@ void TiXmlParsingData::Stamp( const char* now, TiXmlEncoding encoding )
// In these cases, don't advance the column. These are // In these cases, don't advance the column. These are
// 0-width spaces. // 0-width spaces.
if ( *(pU+1)==TIXML_UTF_LEAD_1 && *(pU+2)==TIXML_UTF_LEAD_2 ) if ( *(pU+1)==TIXML_UTF_LEAD_1 && *(pU+2)==TIXML_UTF_LEAD_2 )
p += 3; p += 3;
else if ( *(pU+1)==0xbfU && *(pU+2)==0xbeU ) else if ( *(pU+1)==0xbfU && *(pU+2)==0xbeU )
p += 3; p += 3;
else if ( *(pU+1)==0xbfU && *(pU+2)==0xbfU ) else if ( *(pU+1)==0xbfU && *(pU+2)==0xbfU )
p += 3; p += 3;
else else
{ p +=3; ++col; } // A normal character. { p +=3; ++col; } // A normal character.
} }
@ -322,10 +322,10 @@ const char* TiXmlBase::SkipWhiteSpace( const char* p, TiXmlEncoding encoding )
while ( *p ) while ( *p )
{ {
const unsigned char* pU = (const unsigned char*)p; const unsigned char* pU = (const unsigned char*)p;
// Skip the stupid Microsoft UTF-8 Byte order marks // Skip the stupid Microsoft UTF-8 Byte order marks
if ( *(pU+0)==TIXML_UTF_LEAD_0 if ( *(pU+0)==TIXML_UTF_LEAD_0
&& *(pU+1)==TIXML_UTF_LEAD_1 && *(pU+1)==TIXML_UTF_LEAD_1
&& *(pU+2)==TIXML_UTF_LEAD_2 ) && *(pU+2)==TIXML_UTF_LEAD_2 )
{ {
p += 3; p += 3;
@ -413,12 +413,12 @@ const char* TiXmlBase::ReadName( const char* p, TIXML_STRING * name, TiXmlEncodi
// After that, they can be letters, underscores, numbers, // After that, they can be letters, underscores, numbers,
// hyphens, or colons. (Colons are valid ony for namespaces, // hyphens, or colons. (Colons are valid ony for namespaces,
// but tinyxml can't tell namespaces from names.) // but tinyxml can't tell namespaces from names.)
if ( p && *p if ( p && *p
&& ( IsAlpha( (unsigned char) *p, encoding ) || *p == '_' ) ) && ( IsAlpha( (unsigned char) *p, encoding ) || *p == '_' ) )
{ {
const char* start = p; const char* start = p;
while( p && *p while( p && *p
&& ( IsAlphaNum( (unsigned char ) *p, encoding ) && ( IsAlphaNum( (unsigned char ) *p, encoding )
|| *p == '_' || *p == '_'
|| *p == '-' || *p == '-'
|| *p == '.' || *p == '.'
@ -469,7 +469,7 @@ const char* TiXmlBase::GetEntity( const char* p, char* value, int* length, TiXml
ucs += mult * (*q - 'a' + 10); ucs += mult * (*q - 'a' + 10);
else if ( *q >= 'A' && *q <= 'F' ) else if ( *q >= 'A' && *q <= 'F' )
ucs += mult * (*q - 'A' + 10 ); ucs += mult * (*q - 'A' + 10 );
else else
return 0; return 0;
mult *= 16; mult *= 16;
--q; --q;
@ -492,7 +492,7 @@ const char* TiXmlBase::GetEntity( const char* p, char* value, int* length, TiXml
{ {
if ( *q >= '0' && *q <= '9' ) if ( *q >= '0' && *q <= '9' )
ucs += mult * (*q - '0'); ucs += mult * (*q - '0');
else else
return 0; return 0;
mult *= 10; mult *= 10;
--q; --q;
@ -571,10 +571,10 @@ bool TiXmlBase::StringEqual( const char* p,
return false; return false;
} }
const char* TiXmlBase::ReadText( const char* p, const char* TiXmlBase::ReadText( const char* p,
TIXML_STRING * text, TIXML_STRING * text,
bool trimWhiteSpace, bool trimWhiteSpace,
const char* endTag, const char* endTag,
bool caseInsensitive, bool caseInsensitive,
TiXmlEncoding encoding ) TiXmlEncoding encoding )
{ {
@ -631,7 +631,7 @@ const char* TiXmlBase::ReadText( const char* p,
} }
} }
} }
if ( p ) if ( p )
p += strlen( endTag ); p += strlen( endTag );
return p; return p;
} }
@ -647,7 +647,7 @@ void TiXmlDocument::StreamIn( std::istream * in, TIXML_STRING * tag )
// This "pre-streaming" will never read the closing ">" so the // This "pre-streaming" will never read the closing ">" so the
// sub-tag can orient itself. // sub-tag can orient itself.
if ( !StreamTo( in, '<', tag ) ) if ( !StreamTo( in, '<', tag ) )
{ {
SetError( TIXML_ERROR_PARSING_EMPTY, 0, 0, TIXML_ENCODING_UNKNOWN ); SetError( TIXML_ERROR_PARSING_EMPTY, 0, 0, TIXML_ENCODING_UNKNOWN );
return; return;
@ -669,7 +669,7 @@ void TiXmlDocument::StreamIn( std::istream * in, TIXML_STRING * tag )
if ( in->good() ) if ( in->good() )
{ {
// We now have something we presume to be a node of // We now have something we presume to be a node of
// some sort. Identify it, and call the node to // some sort. Identify it, and call the node to
// continue streaming. // continue streaming.
TiXmlNode* node = Identify( tag->c_str() + tagIndex, TIXML_DEFAULT_ENCODING ); TiXmlNode* node = Identify( tag->c_str() + tagIndex, TIXML_DEFAULT_ENCODING );
@ -778,7 +778,7 @@ const char* TiXmlDocument::Parse( const char* p, TiXmlParsingData* prevData, TiX
encoding = TIXML_ENCODING_UTF8; encoding = TIXML_ENCODING_UTF8;
else if ( StringEqual( enc, "UTF8", true, TIXML_ENCODING_UNKNOWN ) ) else if ( StringEqual( enc, "UTF8", true, TIXML_ENCODING_UNKNOWN ) )
encoding = TIXML_ENCODING_UTF8; // incorrect, but be nice encoding = TIXML_ENCODING_UTF8; // incorrect, but be nice
else else
encoding = TIXML_ENCODING_LEGACY; encoding = TIXML_ENCODING_LEGACY;
} }
@ -796,7 +796,7 @@ const char* TiXmlDocument::Parse( const char* p, TiXmlParsingData* prevData, TiX
} }
void TiXmlDocument::SetError( int err, const char* pError, TiXmlParsingData* data, TiXmlEncoding encoding ) void TiXmlDocument::SetError( int err, const char* pError, TiXmlParsingData* data, TiXmlEncoding encoding )
{ {
// The first error in a chain is more accurate - don't set again! // The first error in a chain is more accurate - don't set again!
if ( error ) if ( error )
return; return;
@ -833,7 +833,7 @@ TiXmlNode* TiXmlNode::Identify( const char* p, TiXmlEncoding encoding )
return 0; return 0;
} }
// What is this thing? // What is this thing?
// - Elements start with a letter or underscore, but xml is reserved. // - Elements start with a letter or underscore, but xml is reserved.
// - Comments: <!-- // - Comments: <!--
// - Decleration: <?xml // - Decleration: <?xml
@ -921,7 +921,7 @@ void TiXmlElement::StreamIn (std::istream * in, TIXML_STRING * tag)
return; return;
} }
(*tag) += (char) c ; (*tag) += (char) c ;
if ( c == '>' ) if ( c == '>' )
break; break;
} }
@ -931,7 +931,7 @@ void TiXmlElement::StreamIn (std::istream * in, TIXML_STRING * tag)
// Okay...if we are a "/>" tag, then we're done. We've read a complete tag. // Okay...if we are a "/>" tag, then we're done. We've read a complete tag.
// If not, identify and stream. // If not, identify and stream.
if ( tag->at( tag->length() - 1 ) == '>' if ( tag->at( tag->length() - 1 ) == '>'
&& tag->at( tag->length() - 2 ) == '/' ) && tag->at( tag->length() - 2 ) == '/' )
{ {
// All good! // All good!
@ -949,7 +949,7 @@ void TiXmlElement::StreamIn (std::istream * in, TIXML_STRING * tag)
StreamWhiteSpace( in, tag ); StreamWhiteSpace( in, tag );
// Do we have text? // Do we have text?
if ( in->good() && in->peek() != '<' ) if ( in->good() && in->peek() != '<' )
{ {
// Yep, text. // Yep, text.
TiXmlText text( "" ); TiXmlText text( "" );
@ -982,7 +982,7 @@ void TiXmlElement::StreamIn (std::istream * in, TIXML_STRING * tag)
document->SetError( TIXML_ERROR_EMBEDDED_NULL, 0, 0, TIXML_ENCODING_UNKNOWN ); document->SetError( TIXML_ERROR_EMBEDDED_NULL, 0, 0, TIXML_ENCODING_UNKNOWN );
return; return;
} }
if ( c == '>' ) if ( c == '>' )
break; break;
@ -1102,7 +1102,7 @@ const char* TiXmlElement::Parse( const char* p, TiXmlParsingData* data, TiXmlEnc
// Empty tag. // Empty tag.
if ( *p != '>' ) if ( *p != '>' )
{ {
if ( document ) document->SetError( TIXML_ERROR_PARSING_EMPTY, p, data, encoding ); if ( document ) document->SetError( TIXML_ERROR_PARSING_EMPTY, p, data, encoding );
return 0; return 0;
} }
return (p+1); return (p+1);
@ -1210,8 +1210,8 @@ const char* TiXmlElement::ReadValue( const char* p, TiXmlParsingData* data, TiXm
LinkEndChild( textNode ); LinkEndChild( textNode );
else else
delete textNode; delete textNode;
} }
else else
{ {
// We hit a '<' // We hit a '<'
// Have we hit a new element or an end tag? This could also be // Have we hit a new element or an end tag? This could also be
@ -1227,7 +1227,7 @@ const char* TiXmlElement::ReadValue( const char* p, TiXmlParsingData* data, TiXm
{ {
p = node->Parse( p, data, encoding ); p = node->Parse( p, data, encoding );
LinkEndChild( node ); LinkEndChild( node );
} }
else else
{ {
return 0; return 0;
@ -1241,7 +1241,7 @@ const char* TiXmlElement::ReadValue( const char* p, TiXmlParsingData* data, TiXm
if ( !p ) if ( !p )
{ {
if ( document ) document->SetError( TIXML_ERROR_READING_ELEMENT_VALUE, 0, 0, encoding ); if ( document ) document->SetError( TIXML_ERROR_READING_ELEMENT_VALUE, 0, 0, encoding );
} }
return p; return p;
} }
@ -1251,7 +1251,7 @@ void TiXmlUnknown::StreamIn( std::istream * in, TIXML_STRING * tag )
{ {
while ( in->good() ) while ( in->good() )
{ {
int c = in->get(); int c = in->get();
if ( c <= 0 ) if ( c <= 0 )
{ {
TiXmlDocument* document = GetDocument(); TiXmlDocument* document = GetDocument();
@ -1264,7 +1264,7 @@ void TiXmlUnknown::StreamIn( std::istream * in, TIXML_STRING * tag )
if ( c == '>' ) if ( c == '>' )
{ {
// All is well. // All is well.
return; return;
} }
} }
} }
@ -1309,7 +1309,7 @@ void TiXmlComment::StreamIn( std::istream * in, TIXML_STRING * tag )
{ {
while ( in->good() ) while ( in->good() )
{ {
int c = in->get(); int c = in->get();
if ( c <= 0 ) if ( c <= 0 )
{ {
TiXmlDocument* document = GetDocument(); TiXmlDocument* document = GetDocument();
@ -1320,12 +1320,12 @@ void TiXmlComment::StreamIn( std::istream * in, TIXML_STRING * tag )
(*tag) += (char) c; (*tag) += (char) c;
if ( c == '>' if ( c == '>'
&& tag->at( tag->length() - 2 ) == '-' && tag->at( tag->length() - 2 ) == '-'
&& tag->at( tag->length() - 3 ) == '-' ) && tag->at( tag->length() - 3 ) == '-' )
{ {
// All is well. // All is well.
return; return;
} }
} }
} }
@ -1360,11 +1360,11 @@ const char* TiXmlComment::Parse( const char* p, TiXmlParsingData* data, TiXmlEnc
// //
// from the XML spec: // from the XML spec:
/* /*
[Definition: Comments may appear anywhere in a document outside other markup; in addition, [Definition: Comments may appear anywhere in a document outside other markup; in addition,
they may appear within the document type declaration at places allowed by the grammar. they may appear within the document type declaration at places allowed by the grammar.
They are not part of the document's character data; an XML processor MAY, but need not, They are not part of the document's character data; an XML processor MAY, but need not,
make it possible for an application to retrieve the text of comments. For compatibility, make it possible for an application to retrieve the text of comments. For compatibility,
the string "--" (double-hyphen) MUST NOT occur within comments.] Parameter entity the string "--" (double-hyphen) MUST NOT occur within comments.] Parameter entity
references MUST NOT be recognized within comments. references MUST NOT be recognized within comments.
An example of a comment: An example of a comment:
@ -1379,7 +1379,7 @@ const char* TiXmlComment::Parse( const char* p, TiXmlParsingData* data, TiXmlEnc
value.append( p, 1 ); value.append( p, 1 );
++p; ++p;
} }
if ( p ) if ( p )
p += strlen( endTag ); p += strlen( endTag );
return p; return p;
@ -1422,7 +1422,7 @@ const char* TiXmlAttribute::Parse( const char* p, TiXmlParsingData* data, TiXmlE
if ( document ) document->SetError( TIXML_ERROR_READING_ATTRIBUTES, p, data, encoding ); if ( document ) document->SetError( TIXML_ERROR_READING_ATTRIBUTES, p, data, encoding );
return 0; return 0;
} }
const char* end; const char* end;
const char SINGLE_QUOTE = '\''; const char SINGLE_QUOTE = '\'';
const char DOUBLE_QUOTE = '\"'; const char DOUBLE_QUOTE = '\"';
@ -1451,7 +1451,7 @@ const char* TiXmlAttribute::Parse( const char* p, TiXmlParsingData* data, TiXmlE
{ {
if ( *p == SINGLE_QUOTE || *p == DOUBLE_QUOTE ) { if ( *p == SINGLE_QUOTE || *p == DOUBLE_QUOTE ) {
// [ 1451649 ] Attribute values with trailing quotes not handled correctly // [ 1451649 ] Attribute values with trailing quotes not handled correctly
// We did not have an opening quote but seem to have a // We did not have an opening quote but seem to have a
// closing one. Give up and throw an error. // closing one. Give up and throw an error.
if ( document ) document->SetError( TIXML_ERROR_READING_ATTRIBUTES, p, data, encoding ); if ( document ) document->SetError( TIXML_ERROR_READING_ATTRIBUTES, p, data, encoding );
return 0; return 0;
@ -1468,8 +1468,8 @@ void TiXmlText::StreamIn( std::istream * in, TIXML_STRING * tag )
{ {
while ( in->good() ) while ( in->good() )
{ {
int c = in->peek(); int c = in->peek();
if ( !cdata && (c == '<' ) ) if ( !cdata && (c == '<' ) )
{ {
return; return;
} }
@ -1490,7 +1490,7 @@ void TiXmlText::StreamIn( std::istream * in, TIXML_STRING * tag )
// terminator of cdata. // terminator of cdata.
return; return;
} }
} }
} }
} }
#endif #endif
@ -1529,7 +1529,7 @@ const char* TiXmlText::Parse( const char* p, TiXmlParsingData* data, TiXmlEncodi
++p; ++p;
} }
TIXML_STRING dummy; TIXML_STRING dummy;
p = ReadText( p, &dummy, false, endTag, false, encoding ); p = ReadText( p, &dummy, false, endTag, false, encoding );
return p; return p;
} }
@ -1603,19 +1603,19 @@ const char* TiXmlDeclaration::Parse( const char* p, TiXmlParsingData* data, TiXm
if ( StringEqual( p, "version", true, _encoding ) ) if ( StringEqual( p, "version", true, _encoding ) )
{ {
TiXmlAttribute attrib; TiXmlAttribute attrib;
p = attrib.Parse( p, data, _encoding ); p = attrib.Parse( p, data, _encoding );
version = attrib.Value(); version = attrib.Value();
} }
else if ( StringEqual( p, "encoding", true, _encoding ) ) else if ( StringEqual( p, "encoding", true, _encoding ) )
{ {
TiXmlAttribute attrib; TiXmlAttribute attrib;
p = attrib.Parse( p, data, _encoding ); p = attrib.Parse( p, data, _encoding );
encoding = attrib.Value(); encoding = attrib.Value();
} }
else if ( StringEqual( p, "standalone", true, _encoding ) ) else if ( StringEqual( p, "standalone", true, _encoding ) )
{ {
TiXmlAttribute attrib; TiXmlAttribute attrib;
p = attrib.Parse( p, data, _encoding ); p = attrib.Parse( p, data, _encoding );
standalone = attrib.Value(); standalone = attrib.Value();
} }
else else
@ -1635,4 +1635,3 @@ bool TiXmlText::Blank() const
return false; return false;
return true; return true;
} }

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>

@ -23,15 +23,15 @@ Copyright 2017 Bret Curtis <psi29a@gmail.com>
<screenshots> <screenshots>
<screenshot type="default"> <screenshot type="default">
<image>http://wiki.openmw.org/images/b/b2/Openmw_0.11.1_launcher_1.png</image> <image>https://wiki.openmw.org/images/b/b2/Openmw_0.11.1_launcher_1.png</image>
<caption>The OpenMW launcher</caption> <caption>The OpenMW launcher</caption>
</screenshot> </screenshot>
<screenshot> <screenshot>
<image>http://wiki.openmw.org/images/f/f1/Screenshot_mournhold_plaza_0.35.png</image> <image>https://wiki.openmw.org/images/f/f1/Screenshot_mournhold_plaza_0.35.png</image>
<caption>The Mournhold's plaza on OpenMW</caption> <caption>The Mournhold's plaza on OpenMW</caption>
</screenshot> </screenshot>
<screenshot> <screenshot>
<image>http://wiki.openmw.org/images/5/5b/Screenshot_Vivec_seen_from_Ebonheart_0.35.png</image> <image>https://wiki.openmw.org/images/5/5b/Screenshot_Vivec_seen_from_Ebonheart_0.35.png</image>
<caption>Vivec seen from Ebonheart on OpenMW</caption> <caption>Vivec seen from Ebonheart on OpenMW</caption>
</screenshot> </screenshot>
</screenshots> </screenshots>

@ -8,7 +8,7 @@
# limits on value ranges and more information in general, please read # limits on value ranges and more information in general, please read
# the detailed documentation at: # the detailed documentation at:
# #
# http://openmw.readthedocs.io/en/master/reference/modding/settings/index.html # https://openmw.readthedocs.io/en/master/reference/modding/settings/index.html
# #
[Camera] [Camera]

@ -2,7 +2,7 @@
#define REFRACTION @refraction_enabled #define REFRACTION @refraction_enabled
// Inspired by Blender GLSL Water by martinsh ( http://devlog-martinsh.blogspot.de/2012/07/waterundewater-shader-wip.html ) // Inspired by Blender GLSL Water by martinsh ( https://devlog-martinsh.blogspot.de/2012/07/waterundewater-shader-wip.html )
// tweakables -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // tweakables -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
@ -67,16 +67,16 @@ vec4 circle(vec2 coords, vec2 i_part, float phase)
float d = length(toCenter); float d = length(toCenter);
float r = RAIN_RIPPLE_RADIUS * phase; float r = RAIN_RIPPLE_RADIUS * phase;
if (d > r) if (d > r)
return vec4(0.0,0.0,1.0,0.0); return vec4(0.0,0.0,1.0,0.0);
float sinValue = (sin(d / r * 1.2) + 0.7) / 2.0; float sinValue = (sin(d / r * 1.2) + 0.7) / 2.0;
float height = (1.0 - abs(phase)) * pow(sinValue,3.0); float height = (1.0 - abs(phase)) * pow(sinValue,3.0);
vec3 normal = normalize(mix(vec3(0.0,0.0,1.0),vec3(normalize(toCenter),0.0),height)); vec3 normal = normalize(mix(vec3(0.0,0.0,1.0),vec3(normalize(toCenter),0.0),height));
return vec4(normal,height); return vec4(normal,height);
} }
@ -93,7 +93,7 @@ vec4 rainCombined(vec2 uv, float time) // returns ripple normal in xyz and r
rain(uv,time) + rain(uv,time) +
rain(uv + vec2(10.5,5.7),time) + rain(uv + vec2(10.5,5.7),time) +
rain(uv * 0.75 + vec2(3.7,18.9),time) + rain(uv * 0.75 + vec2(3.7,18.9),time) +
rain(uv * 0.9 + vec2(5.7,30.1),time) + rain(uv * 0.9 + vec2(5.7,30.1),time) +
rain(uv * 0.8 + vec2(1.2,3.0),time); rain(uv * 0.8 + vec2(1.2,3.0),time);
} }
@ -120,7 +120,7 @@ float fresnel_dielectric(vec3 Incoming, vec3 Normal, float eta)
vec2 normalCoords(vec2 uv, float scale, float speed, float time, float timer1, float timer2, vec3 previousNormal) vec2 normalCoords(vec2 uv, float scale, float speed, float time, float timer1, float timer2, vec3 previousNormal)
{ {
return uv * (WAVE_SCALE * scale) + WIND_DIR * time * (WIND_SPEED * speed) -(previousNormal.xy/previousNormal.zz) * WAVE_CHOPPYNESS + vec2(time * timer1,time * timer2); return uv * (WAVE_SCALE * scale) + WIND_DIR * time * (WIND_SPEED * speed) -(previousNormal.xy/previousNormal.zz) * WAVE_CHOPPYNESS + vec2(time * timer1,time * timer2);
} }
varying vec3 screenCoordsPassthrough; varying vec3 screenCoordsPassthrough;
varying vec4 position; varying vec4 position;
@ -133,7 +133,7 @@ uniform sampler2D reflectionMap;
uniform sampler2D refractionMap; uniform sampler2D refractionMap;
uniform sampler2D refractionDepthMap; uniform sampler2D refractionDepthMap;
#endif #endif
uniform float osg_SimulationTime; uniform float osg_SimulationTime;
uniform float near; uniform float near;
@ -167,7 +167,7 @@ void main(void)
#define waterTimer osg_SimulationTime #define waterTimer osg_SimulationTime
vec3 normal0 = 2.0 * texture2D(normalMap,normalCoords(UV, 0.05, 0.04, waterTimer, -0.015, -0.005, vec3(0.0,0.0,0.0))).rgb - 1.0; vec3 normal0 = 2.0 * texture2D(normalMap,normalCoords(UV, 0.05, 0.04, waterTimer, -0.015, -0.005, vec3(0.0,0.0,0.0))).rgb - 1.0;
vec3 normal1 = 2.0 * texture2D(normalMap,normalCoords(UV, 0.1, 0.08, waterTimer, 0.02, 0.015, normal0)).rgb - 1.0; vec3 normal1 = 2.0 * texture2D(normalMap,normalCoords(UV, 0.1, 0.08, waterTimer, 0.02, 0.015, normal0)).rgb - 1.0;
vec3 normal2 = 2.0 * texture2D(normalMap,normalCoords(UV, 0.25, 0.07, waterTimer, -0.04, -0.03, normal1)).rgb - 1.0; vec3 normal2 = 2.0 * texture2D(normalMap,normalCoords(UV, 0.25, 0.07, waterTimer, -0.04, -0.03, normal1)).rgb - 1.0;
vec3 normal3 = 2.0 * texture2D(normalMap,normalCoords(UV, 0.5, 0.09, waterTimer, 0.03, 0.04, normal2)).rgb - 1.0; vec3 normal3 = 2.0 * texture2D(normalMap,normalCoords(UV, 0.5, 0.09, waterTimer, 0.03, 0.04, normal2)).rgb - 1.0;
@ -180,7 +180,7 @@ void main(void)
rainRipple = rainCombined(position.xy / 1000.0,waterTimer) * clamp(rainIntensity,0.0,1.0); rainRipple = rainCombined(position.xy / 1000.0,waterTimer) * clamp(rainIntensity,0.0,1.0);
else else
rainRipple = vec4(0.0,0.0,0.0,0.0); rainRipple = vec4(0.0,0.0,0.0,0.0);
vec3 rippleAdd = rainRipple.xyz * rainRipple.w * 10.0; vec3 rippleAdd = rainRipple.xyz * rainRipple.w * 10.0;
vec3 normal = (normal0 * BIG_WAVES_X + normal1 * BIG_WAVES_Y + vec3 normal = (normal0 * BIG_WAVES_X + normal1 * BIG_WAVES_Y +
@ -231,7 +231,7 @@ void main(void)
float depthSample = linearizeDepth(texture2D(refractionDepthMap,screenCoords).x) * normalization; float depthSample = linearizeDepth(texture2D(refractionDepthMap,screenCoords).x) * normalization;
float depthSampleDistorted = linearizeDepth(texture2D(refractionDepthMap,screenCoords-(normal.xy*REFR_BUMP)).x) * normalization; float depthSampleDistorted = linearizeDepth(texture2D(refractionDepthMap,screenCoords-(normal.xy*REFR_BUMP)).x) * normalization;
float surfaceDepth = linearizeDepth(gl_FragCoord.z) * normalization; float surfaceDepth = linearizeDepth(gl_FragCoord.z) * normalization;
float realWaterDepth = depthSample - surfaceDepth; // undistorted water depth in view direction, independent of frustum float realWaterDepth = depthSample - surfaceDepth; // undistorted water depth in view direction, independent of frustum
float shore = clamp(realWaterDepth / BUMP_SUPPRESS_DEPTH,0,1); float shore = clamp(realWaterDepth / BUMP_SUPPRESS_DEPTH,0,1);
#else #else
float shore = 1.0; float shore = 1.0;

Loading…
Cancel
Save