Skip to content
This repository has been archived by the owner on May 21, 2023. It is now read-only.

Commit

Permalink
Version bump to OpenMW-Android 0.47 Release
Browse files Browse the repository at this point in the history
  • Loading branch information
docent27 committed Nov 5, 2021
1 parent 3bc025b commit 19178ee
Show file tree
Hide file tree
Showing 24 changed files with 473 additions and 339 deletions.
4 changes: 2 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@mipmap/ic_launcher"
android:label="TES III - Morrowind"
android:label="OpenMW"
android:theme="@style/MyTheme"
tools:ignore="GoogleAppIndexingWarning">
<activity
android:name="ui.activity.MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="TES III - Morrowind"
android:label="OpenMW"
android:screenOrientation="fullUser">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand Down
442 changes: 221 additions & 221 deletions app/src/main/res/values/strings.xml

Large diffs are not rendered by default.

139 changes: 70 additions & 69 deletions app/src/main/res/xml/settings.xml

Large diffs are not rendered by default.

56 changes: 31 additions & 25 deletions buildscripts/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ set(MYGUI_VERSION 3.4.0)
set(MYGUI_HASH SHA256=d1d5f294670ae71f7200ed4b30859018281d8cfd45d6a38d18b97a4aba604c42)

# https://github.com/ptitSeb/gl4es/releases
set(GL4ES_VERSION 0f5345f74ce66f89ed2debb458a52addd33c5ae6)
set(GL4ES_HASH SHA256=e88d5222cebd4394c2564335739fff54b4332c8a812f5749bda828eb45dfdfab)
set(GL4ES_VERSION b61f943335e1a871b612744b86972c3bbdb7eab1)
set(GL4ES_HASH SHA256=2eb0d3e5609529e74394fdba1bf73f02fd6d54ab19ec1a6c117856220141b730)

# https://github.com/OpenMW/osg/releases
set(OSG_VERSION bbe61c3bc510a4f5bb4aea21cce506519c2d24e6)
Expand All @@ -49,8 +49,8 @@ set(LZ4_VERSION 1.9.3)
set(LZ4_HASH SHA256=030644df4611007ff7dc962d981f390361e6c97a34e5cbc393ddfbe019ffe2c1)

# https://github.com/OpenMW/openmw/commits/master
set(OPENMW_VERSION bac679d5f5a252e479a576855c8b00bad9b67d6a)
set(OPENMW_HASH SHA256=a4306492378af312b4957e93d4fb52b626eae046f025d19e4642568b92612100)
# set(OPENMW_VERSION b81df8af9c42da9ead15791ce020ac085bbad494)
# set(OPENMW_HASH SHA256=18ae0aa322200c517507d939234c68c2e45788a8fd54007bc5499771820a031b)

# End of configurable options

Expand Down Expand Up @@ -309,8 +309,11 @@ ExternalProject_Add(bullet
)

set(GL4ES_PATCH
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/gl4es/shared-library-1.1.2.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/gl4es/gamma-1.1.2.patch
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/gl4es/shared-library-1.1.6.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/gl4es/disable-shader-hacks.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/gl4es/psa-1.1.6.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/gl4es/highp-fog.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/gl4es/gamma-1.1.6.patch
)

ExternalProject_Add(gl4es
Expand All @@ -322,7 +325,7 @@ ExternalProject_Add(gl4es
PATCH_COMMAND ${GL4ES_PATCH}

CONFIGURE_COMMAND ""

BUILD_COMMAND ${wrapper_command} ndk-build
${COMMON_NDK_BUILD_FLAGS}

Expand Down Expand Up @@ -411,14 +414,15 @@ set(OSG_PATCH
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/osg/0002-BufferObject-make-numClients-atomic.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/osg/0004-IncrementalCompileOperation-wrap-some-stuff-in-atomi.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/osg/remove-zlib-dependency.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/osg/psa.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/osg/0005-CullSettings-make-inheritanceMask-atomic-to-silence-.patch
)

ExternalProject_Add(osg
DEPENDS libjpeg-turbo libpng gl4es freetype2

URL https://github.com/OpenMW/osg/archive/${OSG_VERSION}.tar.gz
#https://github.com/xyzz/openmw-deps/releases/download/v0/OpenSceneGraph-${OSG_VERSION}.tar.gz
# https://github.com/xyzz/openmw-deps/releases/download/v0/OpenSceneGraph-${OSG_VERSION}.tar.gz
URL_HASH ${OSG_HASH}
DOWNLOAD_DIR ${download_dir}

Expand Down Expand Up @@ -453,29 +457,31 @@ set(OPENMW_COMMON
)

set(OPENMW_PATCH
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/gamma.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0001-loadingscreen-disable-for-now.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0009-windowmanagerimp-always-show-mouse-when-possible-pat.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0010-android-fix-context-being-lost-on-app-minimize.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0014-settingswindow-save-user-settings-file-when-ok-is-pr.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0012-components-misc-stringops-use-boost-format-instead-o.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/fix-build.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0015-disable-logs-mygui.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0016-minimal-logs-openmw.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0017-bigfont.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0018-highp.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0019-mygui-selector.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0020-water-selector.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0021-vfs-selector.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/227.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/00-gamma.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/01-loadingscreen-disable-for-now.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/02-windowmanagerimp-always-show-mouse-when-possible-pat.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/03-android-fix-context-being-lost-on-app-minimize.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/04-settingswindow-save-user-settings-file-when-ok-is-pr.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/05-components-misc-stringops-use-boost-format-instead-o.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/06-fix-build.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/07-disable-logs-mygui.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/08-minimal-logs-openmw.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/09-bigfont.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/10-highp.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/11-mygui-selector.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/12-water-selector.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/13-vfs-selector.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/14-terrain_occlusion.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/15-bullet-collision.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/16-psa.patch &&
cp ${CMAKE_SOURCE_DIR}/patches/openmw/android_main.cpp <SOURCE_DIR>/apps/openmw/android_main.cpp
)

ExternalProject_Add(openmw
DEPENDS boost openal osg mygui ffmpeg sdl2 bullet lz4

URL https://github.com/OpenMW/openmw/archive/${OPENMW_VERSION}.tar.gz
URL_HASH ${OPENMW_HASH}
URL https://github.com/OpenMW/openmw/archive/refs/tags/openmw-0.47.0.tar.gz
# URL_HASH ${OPENMW_HASH}
DOWNLOAD_DIR ${download_dir}

PATCH_COMMAND ${OPENMW_PATCH}
Expand Down
2 changes: 1 addition & 1 deletion buildscripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set -e
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd $DIR

export ARCH="arm"
export ARCH="arm64"
export CCACHE="false"
ASAN="false"
DEPLOY_RESOURCES="true"
Expand Down
44 changes: 23 additions & 21 deletions buildscripts/cmakelist_backups/CMakeLists112.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,17 @@ set(MYGUI_HASH SHA256=d1d5f294670ae71f7200ed4b30859018281d8cfd45d6a38d18b97a4aba
set(GL4ES_VERSION 0f5345f74ce66f89ed2debb458a52addd33c5ae6)
set(GL4ES_HASH SHA256=e88d5222cebd4394c2564335739fff54b4332c8a812f5749bda828eb45dfdfab)

# https://github.com/openscenegraph/OpenSceneGraph/releases
set(OSG_VERSION b02abe200c4847e73b887b064a89ea1758a5b733)
set(OSG_HASH SHA256=30a56c5d998b086dba2ea7e9e5e11f99a6866892880fa4f048ad0422d280c438)
# https://github.com/OpenMW/osg/releases
set(OSG_VERSION bbe61c3bc510a4f5bb4aea21cce506519c2d24e6)
set(OSG_HASH SHA256=62ad80311e9bb96c47b38322d8871118cd9abbc152fd97c7aea67a2b4014601d)

# https://github.com/lz4/lz4/releases
set(LZ4_VERSION 1.9.3)
set(LZ4_HASH SHA256=030644df4611007ff7dc962d981f390361e6c97a34e5cbc393ddfbe019ffe2c1)

# https://github.com/OpenMW/openmw/commits/master
set(OPENMW_VERSION b81df8af9c42da9ead15791ce020ac085bbad494)
set(OPENMW_HASH SHA256=18ae0aa322200c517507d939234c68c2e45788a8fd54007bc5499771820a031b)
# set(OPENMW_VERSION bac679d5f5a252e479a576855c8b00bad9b67d6a)
# set(OPENMW_HASH SHA256=a4306492378af312b4957e93d4fb52b626eae046f025d19e4642568b92612100)

# End of configurable options

Expand Down Expand Up @@ -453,28 +453,30 @@ set(OPENMW_COMMON
)

set(OPENMW_PATCH
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/gamma.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0001-loadingscreen-disable-for-now.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0009-windowmanagerimp-always-show-mouse-when-possible-pat.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0010-android-fix-context-being-lost-on-app-minimize.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0014-settingswindow-save-user-settings-file-when-ok-is-pr.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0012-components-misc-stringops-use-boost-format-instead-o.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/fix-build.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0015-disable-logs-mygui.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0016-minimal-logs-openmw.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0017-bigfont.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0018-highp.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0019-mygui-selector.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/0020-water-selector.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/227.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/00-gamma.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/01-loadingscreen-disable-for-now.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/02-windowmanagerimp-always-show-mouse-when-possible-pat.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/03-android-fix-context-being-lost-on-app-minimize.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/04-settingswindow-save-user-settings-file-when-ok-is-pr.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/05-components-misc-stringops-use-boost-format-instead-o.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/06-fix-build.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/07-disable-logs-mygui.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/08-minimal-logs-openmw.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/09-bigfont.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/10-highp.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/11-mygui-selector.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/12-water-selector.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/13-vfs-selector.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/14-terrain_occlusion.patch &&
patch -d <SOURCE_DIR> -p1 -t -N < ${CMAKE_SOURCE_DIR}/patches/openmw/15-bullet-collision.patch &&
cp ${CMAKE_SOURCE_DIR}/patches/openmw/android_main.cpp <SOURCE_DIR>/apps/openmw/android_main.cpp
)

ExternalProject_Add(openmw
DEPENDS boost openal osg mygui ffmpeg sdl2 bullet lz4

URL https://github.com/OpenMW/openmw/archive/${OPENMW_VERSION}.tar.gz
URL_HASH ${OPENMW_HASH}
URL https://github.com/OpenMW/openmw/archive/refs/tags/openmw-0.47.0.tar.gz
# URL_HASH ${OPENMW_HASH}
DOWNLOAD_DIR ${download_dir}

PATCH_COMMAND ${OPENMW_PATCH}
Expand Down
125 changes: 125 additions & 0 deletions buildscripts/patches/openmw/15-bullet-collision.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
From e23b0edda4a49296c56b29251fe3f00fd6b0adba Mon Sep 17 00:00:00 2001
From: wareya <wareya@gmail.com>
Date: Fri, 22 Oct 2021 23:11:23 -0400
Subject: [PATCH] Add pre-pass to collision trace function that traces over
less distance if possible

---
apps/openmw/mwphysics/trace.cpp | 74 +++++++++++++++++++++------------
1 file changed, 47 insertions(+), 27 deletions(-)

diff --git a/apps/openmw/mwphysics/trace.cpp b/apps/openmw/mwphysics/trace.cpp
index 049d026e8e..b2c5410a62 100644
--- a/apps/openmw/mwphysics/trace.cpp
+++ b/apps/openmw/mwphysics/trace.cpp
@@ -12,31 +12,49 @@
namespace MWPhysics
{

-void ActorTracer::doTrace(const btCollisionObject *actor, const osg::Vec3f& start, const osg::Vec3f& end, const btCollisionWorld* world)
+ActorConvexCallback sweepHelper(const btCollisionObject *actor, const btVector3& from, const btVector3& to, const btCollisionWorld* world, bool actorFilter)
{
- const btVector3 btstart = Misc::Convert::toBullet(start);
- const btVector3 btend = Misc::Convert::toBullet(end);
-
const btTransform &trans = actor->getWorldTransform();
- btTransform from(trans);
- btTransform to(trans);
- from.setOrigin(btstart);
- to.setOrigin(btend);
+ btTransform transFrom(trans);
+ btTransform transTo(trans);
+ transFrom.setOrigin(from);
+ transTo.setOrigin(to);
+
+ const btCollisionShape *shape = actor->getCollisionShape();
+ assert(shape->isConvex());

- const btVector3 motion = btstart-btend;
+ const btVector3 motion = from - to; // FIXME: this is backwards; means ActorConvexCallback is doing dot product tests backwards too
ActorConvexCallback newTraceCallback(actor, motion, btScalar(0.0), world);
// Inherit the actor's collision group and mask
newTraceCallback.m_collisionFilterGroup = actor->getBroadphaseHandle()->m_collisionFilterGroup;
newTraceCallback.m_collisionFilterMask = actor->getBroadphaseHandle()->m_collisionFilterMask;
+ if(actorFilter)
+ newTraceCallback.m_collisionFilterMask &= ~CollisionType_Actor;

- const btCollisionShape *shape = actor->getCollisionShape();
- assert(shape->isConvex());
- world->convexSweepTest(static_cast<const btConvexShape*>(shape), from, to, newTraceCallback);
+ world->convexSweepTest(static_cast<const btConvexShape*>(shape), transFrom, transTo, newTraceCallback);
+ return newTraceCallback;
+}
+
+void ActorTracer::doTrace(const btCollisionObject *actor, const osg::Vec3f& start, const osg::Vec3f& end, const btCollisionWorld* world)
+{
+ const btVector3 btstart = Misc::Convert::toBullet(start);
+ btVector3 btend = Misc::Convert::toBullet(end);
+
+ bool do_fallback = false;
+ if((btend-btstart).length2() > 5.0*5.0)
+ {
+ btend = btstart + (btend-btstart).normalized()*5.0;
+ do_fallback = true;
+ }
+
+ auto newTraceCallback = sweepHelper(actor, btstart, btend, world, false);

// Copy the hit data over to our trace results struct:
if(newTraceCallback.hasHit())
{
mFraction = newTraceCallback.m_closestHitFraction;
+ if((end-start).length2() > 0.0)
+ mFraction *= (btend-btstart).length() / (end-start).length();
mPlaneNormal = Misc::Convert::toOsg(newTraceCallback.m_hitNormalWorld);
mEndPos = (end-start)*mFraction + start;
mHitPoint = Misc::Convert::toOsg(newTraceCallback.m_hitPointWorld);
@@ -44,6 +62,22 @@ void ActorTracer::doTrace(const btCollisionObject *actor, const osg::Vec3f& star
}
else
{
+ if(do_fallback)
+ {
+ btend = Misc::Convert::toBullet(end);
+ auto newTraceCallback = sweepHelper(actor, btstart, btend, world, false);
+
+ if(newTraceCallback.hasHit())
+ {
+ mFraction = newTraceCallback.m_closestHitFraction;
+ mPlaneNormal = Misc::Convert::toOsg(newTraceCallback.m_hitNormalWorld);
+ mEndPos = (end-start)*mFraction + start;
+ mHitPoint = Misc::Convert::toOsg(newTraceCallback.m_hitPointWorld);
+ mHitObject = newTraceCallback.m_hitCollisionObject;
+ return;
+ }
+ }
+ // fallthrough
mEndPos = end;
mPlaneNormal = osg::Vec3f(0.0f, 0.0f, 1.0f);
mFraction = 1.0f;
@@ -54,21 +88,7 @@ void ActorTracer::doTrace(const btCollisionObject *actor, const osg::Vec3f& star

void ActorTracer::findGround(const Actor* actor, const osg::Vec3f& start, const osg::Vec3f& end, const btCollisionWorld* world)
{
- const btVector3 btstart = Misc::Convert::toBullet(start);
- const btVector3 btend = Misc::Convert::toBullet(end);
-
- const btTransform &trans = actor->getCollisionObject()->getWorldTransform();
- btTransform from(trans.getBasis(), btstart);
- btTransform to(trans.getBasis(), btend);
-
- const btVector3 motion = btstart-btend;
- ActorConvexCallback newTraceCallback(actor->getCollisionObject(), motion, btScalar(0.0), world);
- // Inherit the actor's collision group and mask
- newTraceCallback.m_collisionFilterGroup = actor->getCollisionObject()->getBroadphaseHandle()->m_collisionFilterGroup;
- newTraceCallback.m_collisionFilterMask = actor->getCollisionObject()->getBroadphaseHandle()->m_collisionFilterMask;
- newTraceCallback.m_collisionFilterMask &= ~CollisionType_Actor;
-
- world->convexSweepTest(actor->getConvexShape(), from, to, newTraceCallback);
+ auto newTraceCallback = sweepHelper(actor->getCollisionObject(), Misc::Convert::toBullet(start), Misc::Convert::toBullet(end), world, true);
if(newTraceCallback.hasHit())
{
mFraction = newTraceCallback.m_closestHitFraction;
--
GitLab

0 comments on commit 19178ee

Please sign in to comment.