Commit 1880309e authored by bret curtis's avatar bret curtis

Merge tag 'upstream/0.42.0'

Upstream version 0.42.0
parents 07dcc851 e230b930
......@@ -9,6 +9,10 @@ makefile
build*
prebuilt
##windows build process
/deps
/MSVC*
## doxygen
Doxygen
......
os:
- linux
- osx
osx_image: xcode7.2
osx_image: xcode8.2
language: cpp
sudo: required
dist: trusty
......@@ -15,6 +15,11 @@ env:
# The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
# via the "travis encrypt" command using the project repo's public key
- secure: "jybGzAdUbqt9vWR/GEnRd96BgAi/7Zd1+2HK68j/i/8+/1YH2XxLOy4Jv/DUBhBlJIkxs/Xv8dRcUlFOclZDHX1d/9Qnsqd3oUVkD7k1y7cTOWy9TBQaE/v/kZo3LpzA3xPwwthrb0BvqIbOfIELi5fS5s8ba85WFRg3AX70wWE="
# macOS builds FTP upload login
- secure: "MegynKyJpyL7XDwdWVEbypQh7CLjqOqOi9lGF97G7Fq0HosVZTmnwjHhmIPZspTP7ES4UbxM3rs/f3ce7sp9JN2ShRJpduD6UEFc8egQXBte9J3obUBIdUxPTRdhnht7VJ+u+pksK1S/Bm1Cs6l0eEluP3vmcaXWMykVQcZsPhY="
# macOS builds FTP upload password
- secure: "jQcAaWAdDy0+vlNu4POMX8322HanCOQEUTdpviWTAUjWQTjMa0UTM4+zVVgrtEaHMpBaVYYbTT3Rg5BQ9oG+2SiVLJBQQ2XoMcos/YrjPVT6inB02Gs0vFjP29LdPAQVrB8CkAcfQr6u+Z2C+RqAtwhE09LsBUMXjRDzPAtr1CM="
- macos_qt_formula=qt@5.5
addons:
apt:
sources:
......@@ -61,10 +66,19 @@ script:
- if [ "$COVERITY_SCAN_BRANCH" != 1 ] && [ "${TRAVIS_OS_NAME}" = "osx" ]; then make package; fi
- if [ "$COVERITY_SCAN_BRANCH" != 1 ] && [ "${TRAVIS_OS_NAME}" = "linux" ]; then ./openmw_test_suite; fi
- if [ "$COVERITY_SCAN_BRANCH" != 1 ] && [ "${TRAVIS_OS_NAME}" = "linux" ]; then cd .. && ./CI/check_tabs.sh; fi
- cd "${TRAVIS_BUILD_DIR}"
deploy:
provider: script
script: ./CI/deploy.osx.sh
skip_cleanup: true
on:
branch: master
condition: "$TRAVIS_EVENT_TYPE = cron && $TRAVIS_OS_NAME = osx"
repo: OpenMW/openmw
notifications:
recipients:
- corrmage+travis-ci@gmail.com
email:
recipients:
- corrmage+travis-ci@gmail.com
on_success: change
on_failure: always
irc:
......
......@@ -22,7 +22,9 @@ Programmers
Alexander Nadeau (wareya)
Alexander Olofsson (Ace)
Allofich
Andrei Kortunov (akortunov)
AnyOldName3
Aussiemon
Austin Salgat (Salgat)
Artem Kotsynyak (greye)
artemutin
......@@ -52,6 +54,7 @@ Programmers
eroen
escondida
Evgeniy Mineev (sandstranger)
Federico Guerra (FedeWar)
Fil Krynicki (filkry)
Gašper Sedej
gugus/gus
......@@ -70,13 +73,17 @@ Programmers
John Blomberg (fstp)
Jordan Ayers
Jordan Milne
Jules Blok (Armada651)
Julien Voisin (jvoisin/ap0)
Karl-Felix Glatzer (k1ll)
Kevin Poitra (PuppyKevin)
Koncord
Kurnevsky Evgeny (kurnevsky)
Lars Söderberg (Lazaroth)
lazydev
Leon Krieg (lkrieg)
Leon Saunders (emoose)
logzero
lohikaarme
Lukasz Gromanowski (lgro)
Manuel Edelmann (vorenon)
......@@ -85,6 +92,7 @@ Programmers
Mark Siewert (mark76)
Marco Melletti (mellotanica)
Marco Schulze
Martin Otto (MAtahualpa)
Mateusz Kołaczek (PL_kolek)
Mateusz Malisz (malice)
megaton
......@@ -95,6 +103,7 @@ Programmers
Michał Moroz (dragonee)
Miroslav Puda (pakanek)
MiroslavR
Mitchell Schwitzer (schwitzerm)
naclander
Narmo
Nathan Jeffords (blunted2night)
......@@ -109,6 +118,7 @@ Programmers
Pieter van der Kloet (pvdk)
pkubik
Radu-Marius Popovici (rpopovici)
Rafael Moura (dhustkoder)
rdimesio
riothamus
Rob Cutmore (rcutmore)
......@@ -120,6 +130,7 @@ Programmers
Scott Howard
Sebastian Wick (swick)
Sergey Shambir
ShadowRadiance
sir_herrbatka
smbas
Stefan Galowicz (bogglez)
......@@ -137,19 +148,21 @@ Programmers
vocollapse
zelurker
Manual
------
Documentation
-------------
Alejandro Sanchez (HiPhish)
Bodillium
Bret Curtis (psi29a)
Cramal
Alejandro Sanchez (HiPhish)
Ryan Tucker (Ravenwing)
sir_herrbatka
Packagers
---------
Alexander Olofsson (Ace) - Windows
Bret Curtis (psi29a) - Ubuntu Linux
Bret Curtis (psi29a) - Debian and Ubuntu Linux
Edmondo Tommasina (edmondo) - Gentoo Linux
Julian Ospald (hasufell) - Gentoo Linux
Karl-Felix Glatzer (k1ll) - Linux Binaries
......@@ -161,14 +174,15 @@ Public Relations and Translations
---------------------------------
Artem Kotsynyak (greye) - Russian News Writer
Dawid Lakomy (Vedyimyn) - Polish News Writer
Jim Clauwaert (Zedd) - Public Outreach
Julien Voisin (jvoisin/ap0) - French News Writer
Tom Koenderink (Okulo) - English News Writer
Lukasz Gromanowski (lgro) - English News Writer
Martin Otto (Atahualpa) - Podcaster, Public Outreach, German Translator
Mickey Lyle (raevol) - Release Manager
Pithorn - Chinese News Writer
sir_herrbatka - Polish News Writer
Dawid Lakomy (Vedyimyn) - Polish News Writer
Tom Koenderink (Okulo) - English News Writer
Website
-------
......@@ -219,7 +233,6 @@ Inactive Contributors
Nekochan
pchan3
penguinroad
psi29a
sergoz
spyboot
Star-Demon
......
0.42.0
------
Bug #1956: Duplicate objects after loading the game, when a mod was edited
Bug #2100: Falling leaves in Vurt's Leafy West Gash II not rendered correctly
Bug #2116: Cant fit through some doorways pressed against staircases
Bug #2289: Some modal dialogs are not centered on the screen when the window resizes
Bug #2409: Softlock when pressing weapon/magic switch keys during chargen, afterwards switches weapons even though a text field is selected
Bug #2483: Previous/Next Weapon hotkeys triggered while typing the name of game save
Bug #2629: centeroncell, coc causes death / fall damage time to time when teleporting from high
Bug #2645: Cycling weapons is possible while console/pause menu is open
Bug #2678: Combat with water creatures do not end upon exiting water
Bug #2759: Light Problems in Therana's Chamber in Tel Branora
Bug #2771: unhandled sdl event of type 0x302
Bug #2777: (constant/on cast) disintegrate armor/weapon on self is seemingly not working
Bug #2838: Editor: '.' in a record name should be allowed
Bug #2909: NPCs appear floating when standing on a slope
Bug #3093: Controller movement cannot be used while mouse is moving
Bug #3134: Crash possible when using console with open container
Bug #3254: AI enemies hit between them.
Bug #3344: Editor: Verification results sorting by Type is not alphabetical.
Bug #3345: Editor: Cloned and added pathgrids are lost after reopen of saved omwgame file
Bug #3355: [MGSO] Physics maxing out in south cornerclub Balmora
Bug #3484: Editor: camera position is not set when changing cell via drag&drop
Bug #3508: Slowfall kills Jump momentum
Bug #3580: Crash: Error ElementBufferObject::remove BufferData<0> out of range
Bug #3581: NPCs wander too much
Bug #3601: Menu Titles not centered vertically
Bug #3607: [Mac OS] Beginning of NPC speech cut off (same issue as closed bug #3453)
Bug #3613: Can not map "next weapon" or "next spell" to controller
Bug #3617: Enchanted arrows don't explode when hitting the ground
Bug #3645: Unable to use steps in Vivec, Palace of Vivec
Bug #3650: Tamriel Rebuilt 16.09.1 – Hist Cuirass GND nif is rendered inside a Pink Box
Bug #3652: Item icon shadows get stuck in the alchemy GUI
Bug #3653: Incorrect swish sounds
Bug #3666: NPC collision should not be disabled until death animation has finished
Bug #3669: Editor: Text field was missing from book object editing dialogue
Bug #3670: Unhandled SDL event of type 0x304
Bug #3671: Incorrect local variable value after picking up bittercup
Bug #3686: Travelling followers doesn't increase travel fee
Bug #3689: Problematic greetings from Antares Big Mod that override the appropriate ones.
Bug #3690: Certain summoned creatures do not engage in combat with underwater creatures
Bug #3691: Enemies do not initiate combat with player followers on sight
Bug #3695: [Regression] Dispel does not always dispel spell effects in 0.41
Bug #3699: Crash on MWWorld::ProjectileManager::moveMagicBolts
Bug #3700: Climbing on rocks and mountains
Bug #3704: Creatures don't auto-equip their shields on creation
Bug #3705: AI combat engagement logic differs from vanilla
Bug #3707: Animation playing does some very odd things if pc comes in contact with the animated mesh
Bug #3712: [Mod] Freeze upon entering Adanumuran with mod Adanumuran Reclaimed
Bug #3713: [Regression] Cancelling dialogue or using travel with creatures throws a (possibly game-breaking) exception
Bug #3719: Dropped identification papers can't be picked up again
Bug #3722: Command spell doesn't bring enemies out of combat
Bug #3727: Using "Activate" mid-script-execution invalidates interpreter context
Bug #3746: Editor: Book records show attribute IDs instead of skill IDs for teached skills entry.
Bug #3755: Followers stop following after loading from savegame
Bug #3772: ModStat lowers attribute to 100 if it was greater
Bug #3781: Guns in Clean Hunter Rifles mod use crossbow sounds
Bug #3797: NPC and creature names don't show up in combat when RMB windows are displayed
Bug #3800: Wrong tooltip maximum width
Bug #3801: Drowning widget is bugged
Bug #3802: BarterOffer shouldn't limit pcMercantile
Bug #3813: Some fatal error
Bug #3816: Expression parser thinks the -> token is unexpected when a given explicit refID clashes with a journal ID
Bug #3822: Custom added creatures are not animated
Feature #451: Water sounds
Feature #2691: Light particles sometimes not shown in inventory character preview
Feature #3523: Light source on magic projectiles
Feature #3644: Nif NiSphericalCollider Unknown Record Type
Feature #3675: ess-Importer: convert mark location
Feature #3693: ess-Importer: convert last known exterior cell
Feature #3748: Editor: Replace "Scroll" check box in Book records with "Book Type" combo box.
Feature #3751: Editor: Replace "Xyz Blood" check boxes in NPC and Creature records with "Blood Type" combo box
Feature #3752: Editor: Replace emitter check boxes in Light records with "Emitter Type" combo box
Feature #3756: Editor: Replace "Female" check box in NPC records with "Gender" combo box
Feature #3757: Editor: Replace "Female" check box in BodyPart records with "Gender" combo box
Task #3092: const version of ContainerStoreIterator
Task #3795: /deps folder not in .gitignore
0.41.0
------
......
......@@ -5,7 +5,7 @@ brew update
brew rm cmake || true
brew rm pkgconfig || true
brew rm qt5 || true
brew install cmake pkgconfig qt55
brew install cmake pkgconfig $macos_qt_formula
curl http://downloads.openmw.org/osx/dependencies/openmw-deps-263d4a8.zip -o ~/openmw-deps.zip
curl https://downloads.openmw.org/osx/dependencies/openmw-deps-c79172d.zip -o ~/openmw-deps.zip
unzip ~/openmw-deps.zip -d /private/tmp/openmw-deps > /dev/null
......@@ -300,9 +300,9 @@ if [ -z $SKIP_DOWNLOAD ]; then
fi
# Bullet
download "Bullet 2.83.7" \
"http://www.lysator.liu.se/~ace/OpenMW/deps/Bullet-2.83.7-msvc${MSVC_YEAR}-win${BITS}.7z" \
"Bullet-2.83.7-msvc${MSVC_YEAR}-win${BITS}.7z"
download "Bullet 2.86" \
"http://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"
# FFmpeg
download "FFmpeg 3.0.1" \
......@@ -414,7 +414,7 @@ cd $DEPS
echo
# Bullet
printf "Bullet 2.83.7... "
printf "Bullet 2.86... "
{
cd $DEPS_INSTALL
......@@ -422,8 +422,8 @@ printf "Bullet 2.83.7... "
printf -- "Exists. (No version checking) "
elif [ -z $SKIP_EXTRACT ]; then
rm -rf Bullet
eval 7z x -y "${DEPS}/Bullet-2.83.7-msvc${MSVC_YEAR}-win${BITS}.7z" $STRIP
mv "Bullet-2.83.7-msvc${MSVC_YEAR}-win${BITS}" Bullet
eval 7z x -y "${DEPS}/Bullet-2.86-msvc${MSVC_YEAR}-win${BITS}.7z" $STRIP
mv "Bullet-2.86-msvc${MSVC_YEAR}-win${BITS}" Bullet
fi
export BULLET_ROOT="$(real_pwd)/Bullet"
......
......@@ -4,7 +4,7 @@ export CXX=clang++
export CC=clang
DEPENDENCIES_ROOT="/private/tmp/openmw-deps/openmw-deps"
QT_PATH="/usr/local/opt/qt55"
QT_PATH=`brew --prefix $macos_qt_formula`
mkdir build
cd build
......@@ -12,8 +12,8 @@ cd build
cmake \
-D CMAKE_PREFIX_PATH="$DEPENDENCIES_ROOT;$QT_PATH" \
-D CMAKE_OSX_DEPLOYMENT_TARGET="10.8" \
-D CMAKE_OSX_SYSROOT="macosx10.11" \
-D CMAKE_BUILD_TYPE=Debug \
-D CMAKE_OSX_SYSROOT="macosx10.12" \
-D CMAKE_BUILD_TYPE=Release \
-D OPENMW_OSX_DEPLOYMENT=TRUE \
-D DESIRED_QT_VERSION=5 \
-D BUILD_ESMTOOL=FALSE \
......
#!/bin/sh
cd build
DATE=`date +'%d%m%Y'`
SHORT_COMMIT=`git rev-parse --short ${TRAVIS_COMMIT}`
TARGET_FILENAME="OpenMW-${DATE}-${SHORT_COMMIT}.dmg"
curl --ssl --ftp-create-dirs -T *.dmg -u $OSX_FTP_USER:$OSX_FTP_PASSWORD "ftp://s3.mydevil.net:21/nightly/${TARGET_FILENAME}"
......@@ -25,7 +25,7 @@ endif()
message(STATUS "Configuring OpenMW...")
set(OPENMW_VERSION_MAJOR 0)
set(OPENMW_VERSION_MINOR 41)
set(OPENMW_VERSION_MINOR 42)
set(OPENMW_VERSION_RELEASE 0)
set(OPENMW_VERSION_COMMITHASH "")
......@@ -35,18 +35,14 @@ set(OPENMW_VERSION "${OPENMW_VERSION_MAJOR}.${OPENMW_VERSION_MINOR}.${OPENMW_VER
set(GIT_CHECKOUT FALSE)
if(EXISTS ${PROJECT_SOURCE_DIR}/.git)
if(NOT EXISTS ${PROJECT_SOURCE_DIR}/.git/shallow)
find_package(Git)
if(GIT_FOUND)
set(GIT_CHECKOUT TRUE)
else(GIT_FOUND)
message(WARNING "Git executable not found")
endif(GIT_FOUND)
else(NOT EXISTS ${PROJECT_SOURCE_DIR}/.git/shallow)
message(STATUS "Shallow Git clone detected, not attempting to retrieve version info")
endif(NOT EXISTS ${PROJECT_SOURCE_DIR}/.git/shallow)
endif(EXISTS ${PROJECT_SOURCE_DIR}/.git)
find_package(Git)
if(GIT_FOUND)
set(GIT_CHECKOUT TRUE)
else(GIT_FOUND)
message(WARNING "Git executable not found")
endif(GIT_FOUND)
endif(EXISTS ${PROJECT_SOURCE_DIR}/.git)
# Macros
include(OpenMWMacros)
......@@ -254,11 +250,16 @@ IF(BOOST_STATIC)
set(Boost_USE_STATIC_LIBS ON)
endif()
set(REQUIRED_BULLET_VERSION 286) # Bullet 286 required due to runtime bugfixes for btCapsuleShape
if (DEFINED ENV{TRAVIS_BRANCH} OR DEFINED ENV{APPVEYOR})
set(REQUIRED_BULLET_VERSION 283) # but for build testing, 283 is fine
endif()
find_package(Boost REQUIRED COMPONENTS ${BOOST_COMPONENTS})
find_package(MyGUI 3.2.1 REQUIRED)
find_package(SDL2 REQUIRED)
find_package(OpenAL REQUIRED)
find_package(Bullet 283 REQUIRED COMPONENTS BulletCollision LinearMath)
find_package(Bullet ${REQUIRED_BULLET_VERSION} REQUIRED COMPONENTS BulletCollision LinearMath)
include_directories("."
SYSTEM
......
......@@ -7,7 +7,7 @@ OpenMW is a recreation of the engine for the popular role-playing game Morrowind
OpenMW also comes with OpenMW-CS, a replacement for Morrowind's TES Construction Set.
* Version: 0.41.0
* Version: 0.42.0
* License: GPLv3 (see [docs/license/GPL3.txt](https://github.com/OpenMW/openmw/blob/master/docs/license/GPL3.txt) for more information)
* Website: http://www.openmw.org
* IRC: #openmw on irc.freenode.net
......
......@@ -494,7 +494,7 @@ void Record<ESM::Book>::print()
std::cout << " Weight: " << mData.mData.mWeight << std::endl;
std::cout << " Value: " << mData.mData.mValue << std::endl;
std::cout << " IsScroll: " << mData.mData.mIsScroll << std::endl;
std::cout << " SkillID: " << mData.mData.mSkillID << std::endl;
std::cout << " SkillId: " << mData.mData.mSkillId << std::endl;
std::cout << " Enchantment Points: " << mData.mData.mEnchant << std::endl;
if (mPrintPlain)
{
......
......@@ -137,7 +137,7 @@ namespace ESSImport
osgDB::ReaderWriter* readerwriter = osgDB::Registry::instance()->getReaderWriterForExtension("png");
if (!readerwriter)
{
std::cerr << "can't write global map image, no png readerwriter found" << std::endl;
std::cerr << "Error: can't write global map image, no png readerwriter found" << std::endl;
return;
}
......@@ -146,7 +146,7 @@ namespace ESSImport
osgDB::ReaderWriter::WriteResult result = readerwriter->writeImage(*image2, ostream);
if (!result.success())
{
std::cerr << "can't write global map image: " << result.message() << " code " << result.status() << std::endl;
std::cerr << "Error: can't write global map image: " << result.message() << " code " << result.status() << std::endl;
return;
}
......
......@@ -202,7 +202,7 @@ public:
bool isDeleted = false;
book.load(esm, isDeleted);
if (book.mData.mSkillID == -1)
if (book.mData.mSkillId == -1)
mContext->mPlayer.mObject.mNpcStats.mUsedIds.push_back(Misc::StringUtils::lowerCase(book.mId));
mRecords[book.mId] = book;
......
......@@ -47,6 +47,42 @@ namespace ESSImport
controls.mVanityModeDisabled = pcdt.mPNAM.mPlayerFlags & PCDT::PlayerFlags_VanityModeDisabled;
controls.mWeaponDrawingDisabled = pcdt.mPNAM.mPlayerFlags & PCDT::PlayerFlags_WeaponDrawingDisabled;
controls.mSpellDrawingDisabled = pcdt.mPNAM.mPlayerFlags & PCDT::PlayerFlags_SpellDrawingDisabled;
if (pcdt.mHasMark)
{
out.mHasMark = 1;
const PCDT::PNAM::MarkLocation& mark = pcdt.mPNAM.mMarkLocation;
ESM::CellId cell;
cell.mWorldspace = ESM::CellId::sDefaultWorldspace;
cell.mPaged = true;
cell.mIndex.mX = mark.mCellX;
cell.mIndex.mY = mark.mCellY;
// TODO: Figure out a better way to detect interiors. (0, 0) is a valid exterior cell.
if (mark.mCellX == 0 && mark.mCellY == 0)
{
cell.mWorldspace = pcdt.mMNAM;
cell.mPaged = false;
}
out.mMarkedCell = cell;
out.mMarkedPosition.pos[0] = mark.mX;
out.mMarkedPosition.pos[1] = mark.mY;
out.mMarkedPosition.pos[2] = mark.mZ;
out.mMarkedPosition.rot[0] = out.mMarkedPosition.rot[1] = 0.0f;
out.mMarkedPosition.rot[2] = mark.mRotZ;
}
if (pcdt.mHasENAM)
{
const int cellSize = 8192;
out.mLastKnownExteriorPosition[0] = (pcdt.mENAM.mCellX + 0.5f) * cellSize;
out.mLastKnownExteriorPosition[1] = (pcdt.mENAM.mCellY + 0.5f) * cellSize;
out.mLastKnownExteriorPosition[2] = 0.0f;
}
}
}
......@@ -38,7 +38,7 @@ namespace
{
if (fileHeader.mSCRS.size() != 128*128*4)
{
std::cerr << "unexpected screenshot size " << std::endl;
std::cerr << "Error: unexpected screenshot size " << std::endl;
return;
}
......@@ -66,14 +66,14 @@ namespace
osgDB::ReaderWriter* readerwriter = osgDB::Registry::instance()->getReaderWriterForExtension("jpg");
if (!readerwriter)
{
std::cerr << "can't write screenshot: no jpg readerwriter found" << std::endl;
std::cerr << "Error: can't write screenshot: no jpg readerwriter found" << std::endl;
return;
}
osgDB::ReaderWriter::WriteResult result = readerwriter->writeImage(*image, ostream);
if (!result.success())
{
std::cerr << "can't write screenshot: " << result.message() << " code " << result.status() << std::endl;
std::cerr << "Error: can't write screenshot: " << result.message() << " code " << result.status() << std::endl;
return;
}
......@@ -333,7 +333,7 @@ namespace ESSImport
if (unknownRecords.insert(n.intval).second)
{
std::ios::fmtflags f(std::cerr.flags());
std::cerr << "unknown record " << n.toString() << " (0x" << std::hex << esm.getFileOffset() << ")" << std::endl;
std::cerr << "Error: unknown record " << n.toString() << " (0x" << std::hex << esm.getFileOffset() << ")" << std::endl;
std::cerr.flags(f);
}
......
......@@ -62,10 +62,14 @@ namespace ESSImport
playerCellId.mPaged = true;
playerCellId.mIndex.mX = playerCellId.mIndex.mY = 0;
mPlayer.mCellId = playerCellId;
//mPlayer.mLastKnownExteriorPosition
mPlayer.mHasMark = 0; // TODO
mPlayer.mLastKnownExteriorPosition[0]
= mPlayer.mLastKnownExteriorPosition[1]
= mPlayer.mLastKnownExteriorPosition[2]
= 0.0f;
mPlayer.mHasMark = 0;
mPlayer.mCurrentCrimeId = 0; // TODO
mPlayer.mObject.blank();
mPlayer.mObject.mEnabled = true;
mPlayer.mObject.mRef.mRefID = "player"; // REFR.mRefID would be PlayerSaveGame
mGlobalMapState.mBounds.mMinX = 0;
......
......@@ -23,9 +23,12 @@ namespace ESSImport
mKnownDialogueTopics.push_back(esm.getHString());
}
mHasMark = false;
if (esm.isNextSub("MNAM"))
esm.skipHSub(); // If this field is here it seems to specify the interior cell the player is in,
// but it's not always here, so it's kinda useless
{
mHasMark = true;
mMNAM = esm.getHString();
}
esm.getHNT(mPNAM, "PNAM");
......@@ -34,6 +37,14 @@ namespace ESSImport
if (esm.isNextSub("NAM9"))
esm.skipHSub();