forked from teamnwah/openmw-tes3coop
Merge pull request #114 from OpenMW/master while resolving conflicts
# Conflicts: # .travis.yml
This commit is contained in:
commit
bf0a96d552
8 changed files with 90 additions and 10 deletions
20
.travis.yml
20
.travis.yml
|
@ -1,7 +1,7 @@
|
||||||
os:
|
os:
|
||||||
- linux
|
- linux
|
||||||
# - osx
|
- osx
|
||||||
osx_image: xcode7.2
|
osx_image: xcode7.3
|
||||||
language: cpp
|
language: cpp
|
||||||
sudo: required
|
sudo: required
|
||||||
dist: trusty
|
dist: trusty
|
||||||
|
@ -15,6 +15,7 @@ env:
|
||||||
# The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
|
# The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
|
||||||
# via the "travis encrypt" command using the project repo's public key
|
# via the "travis encrypt" command using the project repo's public key
|
||||||
- secure: "PwN1bETMQf8kiSxFpuuknzjdtqhYniBUFwMaVzpSs3lVVslNU/H3AHoiFtR5gVIuUAgNF13dDn8Zg1hu14QOOpYbXGLuVE51ePcqNjXkwb2NbrfswGOxbUEb4nHhY/Wl1LPjndwLk0kTTyDk6kPHU4nQuuCoElriWV2nShtTJbHOeLbLxRw6ZH5j7iFpdLqJh+gMeh0zFnP2kyHPVZlGnVcqjqTJA+R57J7faG1j/VGlYV34VB5PluIdHrphGUOV1aOh6yIxa3SVOPrjQK6MjP/6eaJ8tE7L5od4YWoMkjlmaNVLz3SBn+HiNpbYx6sXE2Z9B6ZSpP5eKcxVX+D1pdVFn/9c130D0zHT8B3BW0/sVqY35g5QTs4mXs3wS6R1v49iTVB5Y4N10RMHpw87hl2oyILSidNCu0kMJxuXeHw88Uyx3qdj01HahFjN2AQWfzCq9oUBirAXi2ECt5e8zlX7/8Sh+dRL/XaTxZGkEGaO7/DhO/Jr/ptvCt5GclZavvuXnbXB5p0BB06Br/4lRogfC2fOgQPxf2656ss6p7B6I/l98SNEyR1q869GMrFKRJ9rf5yERF2tBYolEZ7eb8mX0jctk9i9WRQ/KscPm/YDOxexMx6aJ5BAG3vK9uDiuOgzmQ2QTnA1X/WCDI+GLIFpzjajWl8Ik1iyXHhTiOc="
|
- secure: "PwN1bETMQf8kiSxFpuuknzjdtqhYniBUFwMaVzpSs3lVVslNU/H3AHoiFtR5gVIuUAgNF13dDn8Zg1hu14QOOpYbXGLuVE51ePcqNjXkwb2NbrfswGOxbUEb4nHhY/Wl1LPjndwLk0kTTyDk6kPHU4nQuuCoElriWV2nShtTJbHOeLbLxRw6ZH5j7iFpdLqJh+gMeh0zFnP2kyHPVZlGnVcqjqTJA+R57J7faG1j/VGlYV34VB5PluIdHrphGUOV1aOh6yIxa3SVOPrjQK6MjP/6eaJ8tE7L5od4YWoMkjlmaNVLz3SBn+HiNpbYx6sXE2Z9B6ZSpP5eKcxVX+D1pdVFn/9c130D0zHT8B3BW0/sVqY35g5QTs4mXs3wS6R1v49iTVB5Y4N10RMHpw87hl2oyILSidNCu0kMJxuXeHw88Uyx3qdj01HahFjN2AQWfzCq9oUBirAXi2ECt5e8zlX7/8Sh+dRL/XaTxZGkEGaO7/DhO/Jr/ptvCt5GclZavvuXnbXB5p0BB06Br/4lRogfC2fOgQPxf2656ss6p7B6I/l98SNEyR1q869GMrFKRJ9rf5yERF2tBYolEZ7eb8mX0jctk9i9WRQ/KscPm/YDOxexMx6aJ5BAG3vK9uDiuOgzmQ2QTnA1X/WCDI+GLIFpzjajWl8Ik1iyXHhTiOc="
|
||||||
|
- macos_qt_formula=qt@5.5
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
|
@ -63,9 +64,24 @@ script:
|
||||||
- if [ "$COVERITY_SCAN_BRANCH" != 1 ] && [ "${TRAVIS_OS_NAME}" = "osx" ]; then make package; fi
|
- 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 ./openmw_test_suite; fi
|
||||||
- if [ "$COVERITY_SCAN_BRANCH" != 1 ] && [ "${TRAVIS_OS_NAME}" = "linux" ]; then cd .. && ./CI/check_tabs.sh; fi
|
- if [ "$COVERITY_SCAN_BRANCH" != 1 ] && [ "${TRAVIS_OS_NAME}" = "linux" ]; then cd .. && ./CI/check_tabs.sh; fi
|
||||||
|
<<<<<<< HEAD
|
||||||
#notifications:
|
#notifications:
|
||||||
# recipients:
|
# recipients:
|
||||||
# - corrmage+travis-ci@gmail.com
|
# - corrmage+travis-ci@gmail.com
|
||||||
# email:
|
# email:
|
||||||
# on_success: change
|
# on_success: change
|
||||||
# on_failure: always
|
# on_failure: always
|
||||||
|
=======
|
||||||
|
notifications:
|
||||||
|
email:
|
||||||
|
recipients:
|
||||||
|
- corrmage+travis-ci@gmail.com
|
||||||
|
on_success: change
|
||||||
|
on_failure: always
|
||||||
|
irc:
|
||||||
|
channels:
|
||||||
|
- "chat.freenode.net#openmw"
|
||||||
|
on_success: change
|
||||||
|
on_failure: always
|
||||||
|
use_notice: true
|
||||||
|
>>>>>>> refs/heads/pr/114
|
||||||
|
|
|
@ -5,7 +5,7 @@ brew update
|
||||||
brew rm cmake || true
|
brew rm cmake || true
|
||||||
brew rm pkgconfig || true
|
brew rm pkgconfig || true
|
||||||
brew rm qt5 || 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 http://downloads.openmw.org/osx/dependencies/openmw-deps-263d4a8.zip -o ~/openmw-deps.zip
|
||||||
unzip ~/openmw-deps.zip -d /private/tmp/openmw-deps > /dev/null
|
unzip ~/openmw-deps.zip -d /private/tmp/openmw-deps > /dev/null
|
||||||
|
|
|
@ -4,7 +4,7 @@ export CXX=clang++
|
||||||
export CC=clang
|
export CC=clang
|
||||||
|
|
||||||
DEPENDENCIES_ROOT="/private/tmp/openmw-deps/openmw-deps"
|
DEPENDENCIES_ROOT="/private/tmp/openmw-deps/openmw-deps"
|
||||||
QT_PATH="/usr/local/opt/qt55"
|
QT_PATH=`brew --prefix $macos_qt_formula`
|
||||||
|
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
|
|
|
@ -47,6 +47,34 @@ namespace ESSImport
|
||||||
controls.mVanityModeDisabled = pcdt.mPNAM.mPlayerFlags & PCDT::PlayerFlags_VanityModeDisabled;
|
controls.mVanityModeDisabled = pcdt.mPNAM.mPlayerFlags & PCDT::PlayerFlags_VanityModeDisabled;
|
||||||
controls.mWeaponDrawingDisabled = pcdt.mPNAM.mPlayerFlags & PCDT::PlayerFlags_WeaponDrawingDisabled;
|
controls.mWeaponDrawingDisabled = pcdt.mPNAM.mPlayerFlags & PCDT::PlayerFlags_WeaponDrawingDisabled;
|
||||||
controls.mSpellDrawingDisabled = pcdt.mPNAM.mPlayerFlags & PCDT::PlayerFlags_SpellDrawingDisabled;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@ namespace ESSImport
|
||||||
playerCellId.mIndex.mX = playerCellId.mIndex.mY = 0;
|
playerCellId.mIndex.mX = playerCellId.mIndex.mY = 0;
|
||||||
mPlayer.mCellId = playerCellId;
|
mPlayer.mCellId = playerCellId;
|
||||||
//mPlayer.mLastKnownExteriorPosition
|
//mPlayer.mLastKnownExteriorPosition
|
||||||
mPlayer.mHasMark = 0; // TODO
|
mPlayer.mHasMark = 0;
|
||||||
mPlayer.mCurrentCrimeId = 0; // TODO
|
mPlayer.mCurrentCrimeId = 0; // TODO
|
||||||
mPlayer.mObject.blank();
|
mPlayer.mObject.blank();
|
||||||
mPlayer.mObject.mRef.mRefID = "player"; // REFR.mRefID would be PlayerSaveGame
|
mPlayer.mObject.mRef.mRefID = "player"; // REFR.mRefID would be PlayerSaveGame
|
||||||
|
|
|
@ -23,9 +23,12 @@ namespace ESSImport
|
||||||
mKnownDialogueTopics.push_back(esm.getHString());
|
mKnownDialogueTopics.push_back(esm.getHString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mHasMark = false;
|
||||||
if (esm.isNextSub("MNAM"))
|
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");
|
esm.getHNT(mPNAM, "PNAM");
|
||||||
|
|
||||||
|
@ -50,8 +53,12 @@ namespace ESSImport
|
||||||
if (esm.isNextSub("NAM3"))
|
if (esm.isNextSub("NAM3"))
|
||||||
esm.skipHSub();
|
esm.skipHSub();
|
||||||
|
|
||||||
|
mHasENAM = false;
|
||||||
if (esm.isNextSub("ENAM"))
|
if (esm.isNextSub("ENAM"))
|
||||||
esm.skipHSub();
|
{
|
||||||
|
mHasENAM = true;
|
||||||
|
esm.getHT(mENAM);
|
||||||
|
}
|
||||||
|
|
||||||
if (esm.isNextSub("LNAM"))
|
if (esm.isNextSub("LNAM"))
|
||||||
esm.skipHSub();
|
esm.skipHSub();
|
||||||
|
|
|
@ -42,8 +42,11 @@ struct PCDT
|
||||||
{
|
{
|
||||||
PlayerFlags_ViewSwitchDisabled = 0x1,
|
PlayerFlags_ViewSwitchDisabled = 0x1,
|
||||||
PlayerFlags_ControlsDisabled = 0x4,
|
PlayerFlags_ControlsDisabled = 0x4,
|
||||||
|
PlayerFlags_Sleeping = 0x10,
|
||||||
|
PlayerFlags_Waiting = 0x40,
|
||||||
PlayerFlags_WeaponDrawn = 0x80,
|
PlayerFlags_WeaponDrawn = 0x80,
|
||||||
PlayerFlags_SpellDrawn = 0x100,
|
PlayerFlags_SpellDrawn = 0x100,
|
||||||
|
PlayerFlags_InJail = 0x200,
|
||||||
PlayerFlags_JumpingDisabled = 0x1000,
|
PlayerFlags_JumpingDisabled = 0x1000,
|
||||||
PlayerFlags_LookingDisabled = 0x2000,
|
PlayerFlags_LookingDisabled = 0x2000,
|
||||||
PlayerFlags_VanityModeDisabled = 0x4000,
|
PlayerFlags_VanityModeDisabled = 0x4000,
|
||||||
|
@ -68,19 +71,44 @@ struct PCDT
|
||||||
|
|
||||||
struct PNAM
|
struct PNAM
|
||||||
{
|
{
|
||||||
|
struct MarkLocation
|
||||||
|
{
|
||||||
|
float mX, mY, mZ; // worldspace position
|
||||||
|
float mRotZ; // Z angle in radians
|
||||||
|
int mCellX, mCellY; // grid coordinates; for interior cells this is always (0, 0)
|
||||||
|
};
|
||||||
|
|
||||||
int mPlayerFlags; // controls, camera and draw state
|
int mPlayerFlags; // controls, camera and draw state
|
||||||
unsigned int mLevelProgress;
|
unsigned int mLevelProgress;
|
||||||
float mSkillProgress[27]; // skill progress, non-uniform scaled
|
float mSkillProgress[27]; // skill progress, non-uniform scaled
|
||||||
unsigned char mSkillIncreases[8]; // number of skill increases for each attribute
|
unsigned char mSkillIncreases[8]; // number of skill increases for each attribute
|
||||||
unsigned char mUnknown3[84];
|
int mTelekinesisRangeBonus; // in units; seems redundant
|
||||||
|
float mVisionBonus; // range: <0.0, 1.0>; affected by light spells and Get/Mod/SetPCVisionBonus
|
||||||
|
int mDetectKeyMagnitude; // seems redundant
|
||||||
|
int mDetectEnchantmentMagnitude; // seems redundant
|
||||||
|
int mDetectAnimalMagnitude; // seems redundant
|
||||||
|
MarkLocation mMarkLocation;
|
||||||
|
unsigned char mUnknown3[40];
|
||||||
unsigned char mSpecIncreases[3]; // number of skill increases for each specialization
|
unsigned char mSpecIncreases[3]; // number of skill increases for each specialization
|
||||||
unsigned char mUnknown4;
|
unsigned char mUnknown4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct ENAM
|
||||||
|
{
|
||||||
|
int mCellX;
|
||||||
|
int mCellY;
|
||||||
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
std::vector<FNAM> mFactions;
|
std::vector<FNAM> mFactions;
|
||||||
PNAM mPNAM;
|
PNAM mPNAM;
|
||||||
|
|
||||||
|
bool mHasMark;
|
||||||
|
std::string mMNAM; // mark cell name; can also be sDefaultCellname or region name
|
||||||
|
|
||||||
|
bool mHasENAM;
|
||||||
|
ENAM mENAM; // last exterior cell
|
||||||
|
|
||||||
void load(ESM::ESMReader& esm);
|
void load(ESM::ESMReader& esm);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1349,7 +1349,8 @@ namespace MWPhysics
|
||||||
else if (physicActor->getCollisionMode() && canMoveToWaterSurface(iter->first, waterlevel))
|
else if (physicActor->getCollisionMode() && canMoveToWaterSurface(iter->first, waterlevel))
|
||||||
{
|
{
|
||||||
const osg::Vec3f actorPosition = physicActor->getPosition();
|
const osg::Vec3f actorPosition = physicActor->getPosition();
|
||||||
physicActor->setPosition(osg::Vec3f(actorPosition.x(), actorPosition.y(), waterlevel));
|
physicActor->setPosition(osg::Vec3f(actorPosition.x(), actorPosition.y(), waterlevel));
|
||||||
|
waterCollision = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
physicActor->setCanWaterWalk(waterCollision);
|
physicActor->setCanWaterWalk(waterCollision);
|
||||||
|
|
Loading…
Reference in a new issue