From 96e249bcb1cfd2c18a77af3d3d1347ae1fe158ab Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Fri, 8 Feb 2019 16:37:09 +0200 Subject: [PATCH 1/3] - updated Travis CI configuration Select Release configuration explicitly because CMAKE_BUILD_TYPE doesn't work with MSBuild projects Use long names for command line options of native build tools Enable minimal verbosity for MSBuild --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index acba0ae317..2933bf419a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -108,11 +108,11 @@ matrix: - os: windows env: - - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -A Win32" + - CMAKE_OPTIONS="-A Win32" - os: windows env: - - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -A x64" + - CMAKE_OPTIONS="-A x64" before_install: - if [ -n "$GCC_VERSION" ]; then export CC="gcc-${GCC_VERSION}" CXX="g++-${GCC_VERSION}"; fi @@ -132,8 +132,8 @@ script: -DFORCE_INTERNAL_GME=YES \ -DPK3_QUIET_ZIPDIR=YES \ .. - - if [[ $TRAVIS_OS_NAME == 'windows' ]]; then cmake --build . -- -m; fi - - if [[ $TRAVIS_OS_NAME != 'windows' ]]; then cmake --build . -- -j2 -k; fi + - if [[ $TRAVIS_OS_NAME == 'windows' ]]; then cmake --build . --config Release -- -maxcpucount -verbosity:minimal; fi + - if [[ $TRAVIS_OS_NAME != 'windows' ]]; then cmake --build . -- --jobs=2 --keep-going; fi notifications: email: false From fb1167ecfb1ae23a216409447c50d69f330eb922 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Fri, 8 Feb 2019 16:40:04 +0200 Subject: [PATCH 2/3] - set MSBuild to utilise all CPUs in AppVeyor builds --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 179e1724ae..97d19e4467 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -33,7 +33,7 @@ build_script: - md build - cd build - cmake -G "%GENERATOR%" -T "%TOOLSET%" -DPK3_QUIET_ZIPDIR=YES .. - - cmake --build . --config "%CONFIGURATION%" -- /verbosity:minimal + - cmake --build . --config "%CONFIGURATION%" -- -maxcpucount -verbosity:minimal after_build: - set OUTPUT_DIR=%APPVEYOR_BUILD_FOLDER%\build\%CONFIGURATION%\ From 1b97bae307a85f2cd48d30030f02c186bc0ea524 Mon Sep 17 00:00:00 2001 From: Major Cooke Date: Tue, 5 Feb 2019 10:54:53 -0600 Subject: [PATCH 3/3] Added Z + camera roll relativity for A_QuakeEx's QF_RELATIVE flag. --- src/r_utility.cpp | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/r_utility.cpp b/src/r_utility.cpp index 9117fc01f4..94d0942a28 100644 --- a/src/r_utility.cpp +++ b/src/r_utility.cpp @@ -883,29 +883,41 @@ void R_SetupFrame (FRenderViewpoint &viewpoint, FViewWindow &viewwindow, AActor if (DEarthquake::StaticGetQuakeIntensities(viewpoint.TicFrac, viewpoint.camera, jiggers) > 0) { double quakefactor = r_quakeintensity; - DAngle an; - + DVector3 pos; pos.Zero(); if (jiggers.RollIntensity != 0 || jiggers.RollWave != 0) { viewpoint.Angles.Roll += QuakePower(quakefactor, jiggers.RollIntensity, jiggers.RollWave); } if (jiggers.RelIntensity.X != 0 || jiggers.RelOffset.X != 0) { - an = viewpoint.camera->Angles.Yaw; - double power = QuakePower(quakefactor, jiggers.RelIntensity.X, jiggers.RelOffset.X); - viewpoint.Pos += an.ToVector(power); + pos.X += QuakePower(quakefactor, jiggers.RelIntensity.X, jiggers.RelOffset.X); } if (jiggers.RelIntensity.Y != 0 || jiggers.RelOffset.Y != 0) { - an = viewpoint.camera->Angles.Yaw + 90; - double power = QuakePower(quakefactor, jiggers.RelIntensity.Y, jiggers.RelOffset.Y); - viewpoint.Pos += an.ToVector(power); + pos.Y += QuakePower(quakefactor, jiggers.RelIntensity.Y, jiggers.RelOffset.Y); } - // FIXME: Relative Z is not relative if (jiggers.RelIntensity.Z != 0 || jiggers.RelOffset.Z != 0) { - viewpoint.Pos.Z += QuakePower(quakefactor, jiggers.RelIntensity.Z, jiggers.RelOffset.Z); + pos.Z += QuakePower(quakefactor, jiggers.RelIntensity.Z, jiggers.RelOffset.Z); } + // [MC] Tremendous thanks to Marisa Kirisame for helping me with this. + // Use a rotation matrix to make the view relative. + if (!pos.isZero()) + { + DAngle yaw = viewpoint.camera->Angles.Yaw; + DAngle pitch = viewpoint.camera->Angles.Pitch; + DAngle roll = viewpoint.camera->Angles.Roll; + DVector3 relx, rely, relz; + DMatrix3x3 rot = + DMatrix3x3(DVector3(0., 0., 1.), yaw.Cos(), yaw.Sin()) * + DMatrix3x3(DVector3(0., 1., 0.), pitch.Cos(), pitch.Sin()) * + DMatrix3x3(DVector3(1., 0., 0.), roll.Cos(), roll.Sin()); + relx = DVector3(1., 0., 0.)*rot; + rely = DVector3(0., 1., 0.)*rot; + relz = DVector3(0., 0., 1.)*rot; + viewpoint.Pos += relx * pos.X + rely * pos.Y + relz * pos.Z; + } + if (jiggers.Intensity.X != 0 || jiggers.Offset.X != 0) { viewpoint.Pos.X += QuakePower(quakefactor, jiggers.Intensity.X, jiggers.Offset.X);