Compare commits

...
Author SHA1 Message Date
Nightly script c72443b83a Automated nightly commit 2016-06-18 19:09:47 +02:00
asarium bc9ccbbcde Fix package name variable 2016-06-18 18:29:55 +02:00
asarium 1fafc93186 Disable test configurations 2016-06-18 18:29:55 +02:00
asarium eb71f6bf81 Add different package names for BinTray 2016-06-18 18:29:55 +02:00
asarium 255ec3c779 Use other version 2016-06-18 18:29:55 +02:00
asarium f94ddf7a77 Disable always building nightly builds for Travis CI 2016-06-18 18:29:55 +02:00
asarium b5480fc314 Fix provider 2016-06-18 18:29:55 +02:00
asarium 16823d850f Fix PowerShell command 2016-06-18 18:29:55 +02:00
asarium 3f6ce50e73 Enable nightly building always 2016-06-18 18:29:55 +02:00
asarium 2576fd2c01 Fix if syntax 2016-06-18 18:29:55 +02:00
asarium 3418def2e0 Begin adding appveyor nightly support 2016-06-18 18:29:55 +02:00
asarium 2a19dfa21a Disable dry-run 2016-06-18 18:29:55 +02:00
asarium 6d3bc3d006 Don't set -ex for script run with source 2016-06-18 18:29:55 +02:00
asarium bccf37689d Use set -ex everywhere
Also fix testing setup
2016-06-18 18:29:55 +02:00
asarium 97e74b39f9 Enable building again 2016-06-18 18:29:55 +02:00
asarium 61f538fc96 Add version name setting 2016-06-18 18:29:55 +02:00
asarium c74a0c9e97 Change file regex to include all files 2016-06-18 18:29:55 +02:00
asarium edec7aa354 Improve rename script 2016-06-18 18:29:55 +02:00
asarium 9ad97ea56f Fix non-existing directory 2016-06-18 18:29:55 +02:00
asarium 0543dcccb1 Don't run before_script when deploying 2016-06-18 18:29:55 +02:00
asarium 991299095c Finish release builds early for testing 2016-06-18 18:29:55 +02:00
asarium 1d1d011b07 Try to fix if 2016-06-18 18:29:55 +02:00
asarium 9874c1dccc Export variables 2016-06-18 18:29:55 +02:00
asarium 55376a2424 Fix bintray config before deploying 2016-06-18 18:29:55 +02:00
asarium edf0495473 Fix BinTray again... 2016-06-18 18:29:55 +02:00
asarium a49e0db8b3 Also test generic environment variables 2016-06-18 18:29:54 +02:00
asarium 4dcdc04b52 Fix BinTray configuration 2016-06-18 18:29:54 +02:00
asarium 1325c37576 Enable Bintray for all branches 2016-06-18 18:29:54 +02:00
asarium 3fc7b6098e Disable tag only deployment for now 2016-06-18 18:29:54 +02:00
asarium d60bdcf0ff Update bintray config 2016-06-18 18:29:54 +02:00
asarium afdbf568aa Begin adding BinTray support 2016-06-18 18:29:54 +02:00
asarium 386a72e566 Move Travis checks into separate file 2016-06-18 18:29:54 +02:00
asarium 24df8e9cae Fix artifacts 2016-06-18 18:29:54 +02:00
asarium f0f8949621 Fix PowerShell 2016-06-18 18:29:54 +02:00
asarium 335009a9a9 Add GitHub releases deployment 2016-06-18 18:29:54 +02:00
asarium fccbf03cde Fix platform toolset 2016-06-18 18:29:54 +02:00
asarium b33637e856 More Appveyor stuff 2016-06-18 18:29:54 +02:00
asarium 741600d625 Add various appveyor scripts 2016-06-18 18:29:54 +02:00
asarium e49bdbe946 More tests 2016-06-18 18:29:54 +02:00
asarium 19cbd57a20 Test Appveyor 2016-06-18 18:29:54 +02:00
asarium e861e5d20d Remove travis formatter again 2016-06-18 18:29:54 +02:00
asarium 7067b8ff75 Update GitHub API token 2016-06-18 18:29:54 +02:00
asarium 1f3b94e105 Fix .travis.yml 2016-06-18 18:29:54 +02:00
asarium 419bc2ac88 Add github release deployment 2016-06-18 18:29:54 +02:00
asarium a39e71fd32 Refine pastebin usage a bit 2016-06-18 18:29:54 +02:00
asarium b551e103d2 Readd before_script step 2016-06-18 18:29:54 +02:00
asarium 7adee267c4 Try uploading the build logs 2016-06-18 18:29:54 +02:00
asarium 660716a8be Add code for switching releasing 2016-06-18 18:29:54 +02:00
asarium c427f4ab28 Mac fixes 2016-06-18 18:29:54 +02:00
asarium 458dd90b81 Add rules for MacOSX 2016-06-18 18:29:54 +02:00
asarium 4cd4123224 Install executables 2016-06-18 18:29:54 +02:00
asarium 2e53d6e227 Make script executable 2016-06-18 18:29:54 +02:00
asarium 7137dd6372 Add release script 2016-06-18 18:29:54 +02:00
m!m b7b89337b7 Merge pull request #631 from rtoijala/fix-vpath-builds
fix VPATH builds
2016-06-18 18:20:02 +02:00
Risto Toijala 5577c4e16e fix VPATH builds
https://www.gnu.org/software/automake/manual/html_node/VPATH-Builds.html

VPATH builds were broken because mongoose.h was not found.
Makefile.am stated that it should be found in ../mongoose, which is
incorrect for VPATH builds. The search path should be relative to the
source tree ( i.e. $(VPATH) ).

Example:
mkdir -p build/debug
cd build/debug
../../autogen.sh
../../configure --enable-debug
make

The search path would then be (relative to the source tree)
build/mongoose, not ./mongoose as it should.

Fix this by changing ../mongoose to ./($VPATH)/../mongoose.

In the previous example, $(VPATH) is ../../../code, so the search path
is now correctly ./../../../code/../mongoose.

For in-tree builds, the path was previously ../mongoose. It is now
.//../mongoose, which is equivalent.
2016-06-18 16:02:17 +03:00
MageKing17 3ed6874cb2 Merge pull request #629 from asarium/fix/625
Fix for #625
2016-06-17 08:32:37 -07:00
m!m e0b8abc0ba Merge pull request #609 from jg18/ping_fix
Fix ping calculations in server list.
2016-06-17 10:17:28 +02:00
asarium e3664152ca Validate fiction viewer file name 2016-06-16 19:49:34 +02:00
asarium 371c49724e Turn invalid file error into warning 2016-06-16 19:49:34 +02:00
m!m b2fc33563d Merge pull request #628 from rtoijala/lua51-build-fix
accept lua51 as pkg-config name for Lua
2016-06-16 19:25:30 +02:00
Risto Toijala 73c20cedd3 accept lua51 as pkg-config name for Lua 2016-06-16 15:34:53 +03:00
niffiwan b51d6f84b8 Merge pull request #626 from rtoijala/misleading-indentation
Fix indentation warnings
2016-06-15 20:43:13 +10:00
Risto Toijala 7d7c87c290 Fix indentation warnings
GCC 6 warns about misleading indentation because it counts tabs as 8
spaces. The rest of the code uses tabs, these lines use 4 spaces.
Replace spaces with tabs.

Whitespace changes only.
2016-06-15 12:40:44 +03:00
m!m cb9c66966d Merge pull request #619 from MageKing17/feature/spinup-without-external-models
Move conditional so that weapon spinup happens without external models.
2016-06-05 13:06:38 +02:00
m!m 441ac5c066 Merge pull request #621 from tomimaki/master
Fix compiling debug build on linux with glibc 2.23
2016-06-04 11:36:06 +02:00
tomimaki 1b65fd50a0 Fix compiling debug build on linux with glibc 2.23 (#1) 2016-06-04 00:11:04 +02:00
MageKing17 5d307d24f4 Move conditional so that weapon spinup happens without external models.
Moves the sip->draw_primary_models[bank_to_fire] check so that it only contains the code related to shipp->primary_rotate_ang[bank_to_fire], since that really does only matter if external models are present. The rest of the spinup code doesn't actually care about the model, though, so it seems odd (and unfair to modders) to not allow it to function just because the ship has external primary models disabled.

I also wrapped the spinup code in a basic check that winfo_p->weapon_submodel_rotate_vel is greater than zero because most weapons aren't going to have a spinup, so there's no need to perform the other calculations for them (it's probably a marginal savings at best, but since I was getting rid of the best-case savings of most ships not having external primary models enabled, I figured I may as well replace it).

Minor formatting changes to the other lines just because it took me a while to figure out what the code was doing when I first read it; "if(" changed to "if (", and line breaks inserted into the one-line conditionals.
2016-06-02 21:40:16 -07:00
jg18 d06d6e6df0 Change f2fld() macro to f2d(). 2016-05-30 14:08:28 -07:00
jg18 e78327d879 Fix ping average calculation. 2016-05-30 13:59:51 -07:00
jg18 8f42977ee8 Fix ping calculations in server list.
Fix calculations of server ping in in-game server list. Minimize floating
point calculations, using double instead of float, avoid calling timer
twice when receiving pong, and capture pong time more precisely.
2016-05-30 13:59:51 -07:00
m!m d60c8d5f3f Merge pull request #615 from niffiwan/feature/player_min_speed
Add player minimum speed feature
2016-05-27 14:19:08 +02:00
niffiwan 278a797db2 Add player minimum speed feature
Allows the players ship to have a minimum speed set. If the ships speed
drops below this (per ship) value, the throttle is increased to the
minimum.
For ships that are gliding, their engines will be reactivated when the
ships overall velocity falls below the minimum speed.
Currently only sets a minimum Z speed, Y & X are ignored.
2016-05-27 20:34:15 +10:00
m!m 1a59a1c811 Merge pull request #612 from Yarn366/messages_suffix_fix
Fix for automatic message suffixes
2016-05-25 19:40:42 +02:00
MageKing17 96c01e6c1e Merge pull request #613 from DahBlount/Fix-Warp-No-Collide
Prevent "no collide" objects from colliding during warp sequence
2016-05-25 01:07:50 -07:00
DahBlount 50496c8143 Add OF_COLLIDES check to avoid OBJ_RECALC_PAIRS
OBJ_RECALC_PAIRS unsets then sets the OF_COLLIDES flag, so when a ship
with "no collide" set on it warps out, the flag is essentially ignored
and the ship can collide during the warp sequence.
2016-05-24 22:54:10 -06:00
Yarn366 7d3b824428 Added a flag the message_extra struct that tells whether the base animation exists. Also changed message_play_anim() to use this flag rather than the first_frame field to decide whether to add a suffix to the name. 2016-05-23 01:10:33 -04:00
MageKing17 8906c735c6 Merge pull request #607 from niffiwan/feature/lua_tAnim_instant
Add instant flag to lua triggered anims
2016-05-08 10:57:36 -07:00
MageKing17 2ee839152c Merge pull request #608 from niffiwan/cleanup/lua_ets_desc
Fix ETS virtvar comments
2016-05-08 10:57:20 -07:00
niffiwan 6be09e7157 Merge pull request #606 from MageKing17/cleanup/fred2-executable-version
Update FRED2_Open executable version to 3.7.5.
2016-05-08 19:32:33 +10:00
niffiwan 1715b20d30 Fix ETS virtvar comments 2016-05-08 15:05:19 +10:00
niffiwan 37497cb7d7 Add instant flag to lua triggered anims
Just expose the existing instant flag from the animation handling code
2016-05-07 21:10:26 +10:00
MageKing17 b62eba559b Update FRED2_Open executable version to 3.7.5.
Not sure how this got missed multiple times, but better late than never.
2016-05-06 16:10:20 -07:00
Cliff Gordon 4fa84ee388 Merge pull request #600 from MageKing17/bugfix/grammar-compilation
Make VS 2013 and 2015 use the copy of gc.exe like 2010 does.
2016-05-01 16:01:30 -05:00
Goober5000 776f0df434 Merge pull request #592 from downwash/mantis-02851
Removed support for // comments in FRED
2016-04-29 02:02:25 -04:00
MageKing17 39ce7d4253 Make VS 2013 and 2015 use the copy of gc.exe like 2010 does.
Recent update to VS 2015 Community Edition appears to have removed gc.exe for some reason; the safest thing to do would seem to be to go back to using the copy of it we were already keeping around for VS 2010 Express.
2016-04-27 14:51:47 -07:00
m!m c33b54464e Merge pull request #599 from PeterMitsis/double-float-conversions
Minor trig cleanup
2016-04-27 11:54:06 +02:00
Peter Mitsis e3cde7086c hud: Simplify HudGaugeLock::renderLockTrianglesOld()
Uses the following trig identities to reduce the number of floating
point operations in HudGaugeLock::renderLockTrianglesOld().
    sin(-x) = -sin(x)
    cos(-x) = cos(x)

Signed-off-by: Peter Mitsis <[email protected]>
2016-04-24 21:56:06 -04:00
Peter Mitsis 180674154c trig: Use floating point versions of trig functions
Replaces calls to double-precision floating point trig functions with
calls to single-precision floating point trig functions as follows:
    cos() -> cosf()
    sin() -> sinf()
    tan() -> tanf()
    acos() -> acosf()
    asin() -> asinf()
    atan() -> atanf()

This allows the compiler to avoid generating unnecessary instructions
that convert a float to a double and then a double back to a float.

Signed-off-by: Peter Mitsis <[email protected]>
2016-04-24 21:56:06 -04:00
Peter Mitsis 181b758577 Replace ANG_TO_RAD() macro with fl_radians() macro
Both the ANG_TO_RAD() and fl_radians() macros were serving the same
purpose; they converted an angle from degrees to radians. To reduce
code duplication, ANG_TO_RAD() was replaced with the existing
fl_radians().

Signed-off-by: Peter Mitsis <[email protected]>
2016-04-24 21:56:06 -04:00
downwash 7e3198392b Removed support for // comments in FRED 2016-04-16 23:28:13 +02:00
58 changed files with 497 additions and 216 deletions

No files matched your search

+34 -18
View File
@@ -17,23 +17,41 @@ addons:
- liblua5.1-0-dev
- libjansson-dev
- libtool
coverity_scan:
project:
name: "scp-fs2open/fs2open.github.com"
description: "Coverity via Travis CI"
name: scp-fs2open/fs2open.github.com
description: Coverity via Travis CI
notification_email: [email protected]
build_command_prepend: "./autogen.sh --enable-debug"
build_command: "make -j2"
# must match TRAVIS_BRANCH check below
build_command: make -j2
branch_pattern: coverity_scan
deploy:
- provider: releases
api_key:
secure: "bBWEBF+r4p7kea+Lj/vHD0CCW4AsxqlLri8gT3HbsdPuKwdSNU4QLLFk9yAXmmBF2T/fe45Zk+WQrdQJjSydkpG06M7sFD22RKOYv3cLF0Bq0nEG4CpuXoGqo77oFGkA5hdU6D8W2nQTMhPuiqlvhgt3zeD/6fiyfdAztbtKNRs="
skip_cleanup: true
file_glob: true
file: "/tmp/builds/*"
on:
condition: '"$RELEASE_BUILD" == true'
tags: true
- provider: bintray
user: asarium
key:
secure: "JyJIsJFxCvNjmdyG9eDIvkzXFqsJQVzXKp5BeJcn5WSdMA2Vs7dCvarJXomdwe3F3RCrdmrFYCaimiCDD6LqImrcDLzxlevzGlNUv381iFna612SJj672d8iQCgtMibIJ3HzYmgZlsaJ9YcaOuccRyQIV/TNUcwgzbsW27CPEcM="
file: ci/bintray.json
on:
condition: '"$NIGHTLY_BUILD" == true'
tags: true
env:
global:
# The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
# via the "travis encrypt" command using the project repo's public key
- secure: "C3wF967ZeliwwP1vC12EMIBOaC568n26Z/cPnwzn317ve59DWH3YSfPZVgvt08GzmaXITGGsJvPB+qxfGoKvQzYE4O1B73q81RpUe5pB3IhF+ThQ91VfQZIRJR5xEGJaLINUlHTTZGX5jxlkVO9wAcauVj/s3b8sQ3dvUZauPvk="
- secure: C3wF967ZeliwwP1vC12EMIBOaC568n26Z/cPnwzn317ve59DWH3YSfPZVgvt08GzmaXITGGsJvPB+qxfGoKvQzYE4O1B73q81RpUe5pB3IhF+ThQ91VfQZIRJR5xEGJaLINUlHTTZGX5jxlkVO9wAcauVj/s3b8sQ3dvUZauPvk=
matrix:
include:
# note that gcc Debug MUST be 1st for Coverity
- os: linux
compiler: gcc
env: CONFIGURATION="Debug"
@@ -46,7 +64,6 @@ matrix:
- os: osx
compiler: clang
env: CONFIGURATION="Debug" MACOSX_ARCH=x86_64
- os: linux
compiler: gcc
env: CONFIGURATION="Release"
@@ -59,17 +76,16 @@ matrix:
- os: osx
compiler: clang
env: CONFIGURATION="Release" MACOSX_ARCH=x86_64
before_install:
# ugly hack; if running a coverity scan abort all except the 1st build
# see note re gcc compiler above needing to be 1st
# also note that branch_pattern & the TRAVIS_BRANCH check must match
# unfortunately COVERITY_SCAN_BRANCH isn't defined until later in the
# build process
- if ([[ "${TRAVIS_JOB_NUMBER##*.}" != "1" ]] && [[ "${TRAVIS_BRANCH}" == "coverity_scan" ]]); then false ; fi
- ./ci/travis/before_install.sh
- source "./ci/travis/check_release.sh"
- "./ci/travis/before_install.sh"
install:
- ./ci/travis/install.sh
- "./ci/travis/install.sh"
before_script:
- ./ci/travis/before_script.sh
- "./ci/travis/before_script.sh"
script:
- ./ci/travis/script.sh
- if [ "$BUILD_DEPLOYMENT" = true ] ; then ./ci/travis/release.sh ; else ./ci/travis/script.sh ; fi
before_deploy:
- "./ci/travis/before_deploy.sh"
+27 -4
View File
@@ -4,13 +4,36 @@ environment:
matrix:
- VisualStudioVersion: 10.0
PlatformToolset: v100
ProjectPath: projects/MSVC_2010/Freespace2.vcxproj
ProjectPath: projects/MSVC_2010
DeployConfig: False
- VisualStudioVersion: 12.0
PlatformToolset: v120
ProjectPath: projects/MSVC_2013/Freespace2.vcxproj
ProjectPath: projects/MSVC_2013
DeployConfig: False
- VisualStudioVersion: 14.0
PlatformToolset: v140
ProjectPath: projects/MSVC_2015/Freespace2.vcxproj
ProjectPath: projects/MSVC_2015
DeployConfig: True
build_script:
- msbuild "%ProjectPath%" /p:Configuration="Debug SSE2" /m /p:PlatformToolset="%PlatformToolset%" /verbosity:minimal
- ps: . ./ci/appveyor/check_release.ps1
- ps: . ./ci/appveyor/build.ps1
test: off
deploy:
- provider: GitHub
auth_token:
secure: RWe6hwCcgBdklaYvjB62kzhKn7yDBJdqoDDKYViShaEV9HkJ75HbawsBcGBimRUu
on:
ReleaseBuild: true # deploy on release push only
- provider: BinTray
username: asarium
api_key:
secure: 2lHma1ZreuB4CCE5hSdp+gqFjCMzUDj3tVJhP+D6EyF5wIVMLlwXFrISwnYu1kJi
subject: asarium
repo: FSO
package: nightly
version: $(VersionName)
publish: true
override: true
on:
NightlyBuild: true # deploy on nightly push only
+25
View File
@@ -0,0 +1,25 @@
if ([System.Convert]::ToBoolean($env:DeployBuild)) {
# Release build
if (! ([System.Convert]::ToBoolean($env:DeployConfig))) {
exit 0 # End the build
}
msbuild "$env:ProjectPath/Freespace2.sln" /p:Configuration="Debug SSE2" /m /p:PlatformToolset="$($env:PlatformToolset)_xp" /verbosity:minimal
if (! ($?)) {
Add-AppveyorMessage "A release build failed!"
exit 1
}
msbuild "$env:ProjectPath/Freespace2.sln" /p:Configuration="Release SSE2" /m /p:PlatformToolset="$($env:PlatformToolset)_xp" /verbosity:minimal
if (! ($?)) {
Add-AppveyorMessage "A release build failed!"
exit 1
}
7z a "$($env:PackageName)-builds-Win32.zip" "$env:APPVEYOR_BUILD_FOLDER/$env:ProjectPath/Debug SSE2/*.exe" "$env:APPVEYOR_BUILD_FOLDER/$env:ProjectPath/Release SSE2/*.exe"
Push-AppveyorArtifact "$($env:PackageName)-builds-Win32.zip"
} else {
# Standard CI build
msbuild "$env:ProjectPath/Freespace2.vcxproj" /p:Configuration="Debug SSE2" /m /p:PlatformToolset="$env:PlatformToolset" /verbosity:minimal
}
+28
View File
@@ -0,0 +1,28 @@
write "$env:APPVEYOR_REPO_TAG"
write "$env:APPVEYOR_REPO_TAG_NAME"
# Default values
Set-AppveyorBuildVariable 'ReleaseBuild' 'false'
Set-AppveyorBuildVariable 'NightlyBuild' 'false'
Set-AppveyorBuildVariable 'DeployBuild' 'false'
Set-AppveyorBuildVariable 'PackagePrefix' ''
Set-AppveyorBuildVariable 'VersionName' ''
if ([System.Convert]::ToBoolean($env:APPVEYOR_REPO_TAG) -And ("$env:APPVEYOR_REPO_TAG_NAME" -match "^release_(.*)")) {
# Tag matches
Set-AppveyorBuildVariable 'ReleaseBuild' 'true'
Set-AppveyorBuildVariable 'PackageName' "release_$($matches[1])"
}
if ([System.Convert]::ToBoolean($env:APPVEYOR_REPO_TAG) -And ("$env:APPVEYOR_REPO_TAG_NAME" -match "^nightly_(.*)")) {
# Tag matches
Set-AppveyorBuildVariable 'NightlyBuild' 'true'
Set-AppveyorBuildVariable 'PackageName' "nightly_$($matches[1])"
Set-AppveyorBuildVariable 'VersionName' "$($matches[1])"
}
if ([System.Convert]::ToBoolean($env:ReleaseBuild) -Or [System.Convert]::ToBoolean($env:NightlyBuild)) {
Set-AppveyorBuildVariable 'DeployBuild' 'true'
}
+19
View File
@@ -0,0 +1,19 @@
{
"package": {
"name": "nightly",
"repo": "FSO",
"subject": "asarium"
},
"version": {
"name": "$VERSION_NAME"
},
"files": [
{
"includePattern": "/tmp/builds/(.*)",
"uploadPattern": "$1"
}
],
"publish": true
}
+8
View File
@@ -0,0 +1,8 @@
#!/usr/bin/env sh
set -ex
if [ "$NIGHTLY_BUILD" = true ]; then
echo "Fixing bintray config..."
sed -e "s/\$VERSION_NAME/$VERSION_NAME/" ci/bintray.template.json > ci/bintray.json
fi
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env sh
set -e
set -ex
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
# Nothing to do here
+2 -2
View File
@@ -1,8 +1,8 @@
#!/usr/bin/env sh
set -e
set -ex
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
if ([ "$TRAVIS_OS_NAME" = "linux" ] && [ "$BUILD_DEPLOYMENT" = false ]); then
# Due to a bug in gcc the array bounds check isn't working correctly
# This can be removed when gcc is updated
AUTOGEN_CONFIG="CXXFLAGS=-Wno-array-bounds --enable-fatal-warnings --enable-generic-architecture"
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env sh
RELEASE_BUILD=false
NIGHTLY_BUILD=false
BUILD_DEPLOYMENT=false
VERSION_NAME=""
PACKAGE_NAME=""
RELEASE_PATTERN="^release_(.*)$"
NIGHTLY_PATTERN="^nightly_(.*)$"
if [[ "$TRAVIS_TAG" =~ $RELEASE_PATTERN ]]; then
echo "This is a release tag!";
RELEASE_BUILD=true;
PACKAGE_NAME="release_${BASH_REMATCH[1]}";
fi
if [[ "$TRAVIS_TAG" =~ $NIGHTLY_PATTERN ]]; then
echo "This is a nightly tag!";
NIGHTLY_BUILD=true;
VERSION_NAME="${BASH_REMATCH[1]}"
PACKAGE_NAME="nightly_${BASH_REMATCH[1]}";
fi
if ([ "$RELEASE_BUILD" = true ] || [ "$NIGHTLY_BUILD" = true ]); then
BUILD_DEPLOYMENT=true;
fi
if [[ "$BUILD_DEPLOYMENT" == true ]]; then
if ([[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$CC" == "clang" ]]); then
echo "Skipping non-release compiler";
exit 0;
fi
if ([[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ "$MACOSX_ARCH" == "i386" ]]); then
echo "Skipping non-release architecture";
exit 0;
fi
if ([[ "$CONFIGURATION" == "Debug" ]]); then
echo "Skipping non-release configuration";
exit 0;
fi
fi
export RELEASE_BUILD
export NIGHTLY_BUILD
export BUILD_DEPLOYMENT
export VERSION_NAME
export PACKAGE_NAME
+2 -2
View File
@@ -1,10 +1,10 @@
#!/usr/bin/env sh
set -e
set -ex
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
# Nothing to do here
:
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
gem install xcpretty
gem install xcpretty thefox-pastebin
fi
+57
View File
@@ -0,0 +1,57 @@
#!/usr/bin/env sh
set -ex
mkdir -p /tmp/builds
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
# Due to a bug in gcc the array bounds check isn't working correctly
# This can be removed when gcc is updated
AUTOGEN_CONFIG="--enable-generic-architecture --prefix=/tmp/release"
# First compile the release build
./autogen.sh $AUTOGEN_CONFIG
make -j4
make install
make distclean
# Now compile debug
./autogen.sh $AUTOGEN_CONFIG --enable-debug
make -j4
make install
ls -al /tmp/release/bin
(cd /tmp/release/bin && tar -cvzf /tmp/builds/$PACKAGE_NAME-builds-Linux.tar.gz *)
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
cd projects/Xcode
mkdir /tmp/release
xcodebuild -project FS2_Open.xcodeproj -configuration "Release" clean build | tee release.log | xcpretty
XCODE_RET=${PIPESTATUS[0]}
if [ "$XCODE_RET" -ne "0" ]; then
pastebin -e 1D -f release.log
exit $XCODE_RET
fi
ls build/Release
(cd build/Release && cp -r *.app /tmp/release)
xcodebuild -project FS2_Open.xcodeproj -configuration "Debug" clean build | tee debug.log | xcpretty
XCODE_RET=${PIPESTATUS[0]}
if [ "$XCODE_RET" -ne "0" ]; then
pastebin -e 1D -f debug.log
exit $XCODE_RET
fi
ls build/Debug
(cd build/Debug && cp -r *.app /tmp/release)
ls -al /tmp/release
(cd /tmp/release && tar -cvzf /tmp/builds/$PACKAGE_NAME-builds-MacOSX.tar.gz *)
fi
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env sh
set -e
set -ex
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
make -j 4
+1 -1
View File
@@ -185,7 +185,7 @@ EXTRA_DIST = \
# D_ variants are defaults and should always be used
# FS2_ variants are for game building and wxFRED
AM_CXXFLAGS = @D_CFLAGS@ @FS2_CXXFLAGS@ -I../mongoose
AM_CXXFLAGS = @D_CFLAGS@ @FS2_CXXFLAGS@ -I./$(VPATH)/../mongoose
AM_LDFLAGS = @D_LDFLAGS@ @FS2_LDFLAGS@
if BUILD_WXFRED
+1 -1
View File
@@ -13410,7 +13410,7 @@ void ai_warp_out(object *objp)
aip->submode_start_time = Missiontime;
// maybe recalculate collision pairs.
if (ship_get_warpout_speed(objp) > ship_get_max_speed(shipp)) {
if ((objp->flags & OF_COLLIDES) && (ship_get_warpout_speed(objp) > ship_get_max_speed(shipp))) {
// recalculate collision pairs
OBJ_RECALC_PAIRS(objp);
}
+2 -2
View File
@@ -1566,8 +1566,8 @@ void asteroid_maybe_break_up(object *pasteroid_obj)
float r = sqrt(1.0f - y*y);
float phi = i * inc;
dir_vec.xyz.x = cos(phi)*r;
dir_vec.xyz.y = sin(phi)*r;
dir_vec.xyz.x = cosf(phi)*r;
dir_vec.xyz.y = sinf(phi)*r;
dir_vec.xyz.z = y;
// Randomize the direction a bit
+2 -2
View File
@@ -515,8 +515,8 @@ void warp_camera::do_frame(float in_frametime)
float tmp_angle = frand()*PI2;
tmp.xyz.x = 22.0f * (float)sin(tmp_angle);
tmp.xyz.y = -22.0f * (float)cos(tmp_angle);
tmp.xyz.x = 22.0f * sinf(tmp_angle);
tmp.xyz.y = -22.0f * cosf(tmp_angle);
this->set_velocity( &tmp, 0 );
}
+2 -2
View File
@@ -1568,8 +1568,8 @@ bool SetCmdlineParams()
if ( ship_choice_3d_arg.found() )
Cmdline_ship_choice_3d = 1;
if ( weapon_choice_3d_arg.found() )
Cmdline_weapon_choice_3d = 1;
if ( weapon_choice_3d_arg.found() )
Cmdline_weapon_choice_3d = 1;
if ( show_mem_usage_arg.found() )
Cmdline_show_mem_usage = 1;
+2 -2
View File
@@ -2103,8 +2103,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,7,1,0
PRODUCTVERSION 3,7,1,0
FILEVERSION 3,7,5,0
PRODUCTVERSION 3,7,5,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
+9 -9
View File
@@ -2824,6 +2824,11 @@ void CFred_mission_save::parse_comments(int newlines)
}
while (*raw_ptr != EOF_CHAR) {
// state values (as far as I could figure out):
// 0 - raw_ptr not inside comment
// 1 - raw_ptr inside /**/ comment
// 2 - raw_ptr inside ; (newline-delimited) comment
// 3,4 - raw_ptr inside ;; (FSO version) comment
if (!state) {
if (token_found && (*raw_ptr == *token_found))
if (!strnicmp(raw_ptr, token_found, strlen(token_found))) {
@@ -2878,11 +2883,6 @@ void CFred_mission_save::parse_comments(int newlines)
}
}
if ((*raw_ptr == '/') && (raw_ptr[1] == '/')) {
comment_start = raw_ptr;
state = 2;
}
if (*raw_ptr == '\n')
flag = 1;
@@ -2926,22 +2926,22 @@ void CFred_mission_save::parse_comments(int newlines)
if (first_comment && !flag)
fout("\t\t");
state = raw_ptr[2];
const char tmp = raw_ptr[2];
raw_ptr[2] = 0;
fout("%s", comment_start);
raw_ptr[2] = (char)state;
raw_ptr[2] = tmp;
state = first_comment = flag = 0;
}
if ( (*raw_ptr == ';') && (raw_ptr[1] == ';') && (state == 3) ) {
state = raw_ptr[2];
const char tmp = raw_ptr[2];
raw_ptr[2] = 0;
if (version_added)
fso_comment_pop();
else
version_added = true;
fso_comment_push(comment_start);
raw_ptr[2] = (char)state;
raw_ptr[2] = tmp;
state = first_comment = flag = 0;
raw_ptr++;
}
-2
View File
@@ -308,8 +308,6 @@ const float PI_2 = (PI/2.0f);
const int RAND_MAX_2 = (RAND_MAX/2);
const float RAND_MAX_1f = (1.0f / RAND_MAX);
#define ANG_TO_RAD(x) ((x)*PI/180)
extern int Fred_running; // Is Fred running, or FreeSpace?
+2 -2
View File
@@ -1050,8 +1050,8 @@ void gr_opengl_arc(int xc, int yc, float r, float angle_start, float angle_end,
float s = sinf(theta);
float t;
float x1 = cosf(ANG_TO_RAD(angle_start));
float y1 = sinf(ANG_TO_RAD(angle_start));
float x1 = cosf(fl_radians(angle_start));
float y1 = sinf(fl_radians(angle_start));
float x2 = x1;
float y2 = y1;
+2 -2
View File
@@ -288,8 +288,8 @@ void gr_opengl_post_process_end()
if((dot=vm_vec_dot( &light_dir, &Eye_matrix.vec.fvec )) > 0.7f)
{
x = asin(vm_vec_dot( &light_dir, &Eye_matrix.vec.rvec ))/PI*1.5f+0.5f; //cant get the coordinates right but this works for the limited glare fov
y = asin(vm_vec_dot( &light_dir, &Eye_matrix.vec.uvec ))/PI*1.5f*gr_screen.clip_aspect+0.5f;
x = asinf(vm_vec_dot( &light_dir, &Eye_matrix.vec.rvec ))/PI*1.5f+0.5f; //cant get the coordinates right but this works for the limited glare fov
y = asinf(vm_vec_dot( &light_dir, &Eye_matrix.vec.uvec ))/PI*1.5f*gr_screen.clip_aspect+0.5f;
GL_state.Uniform.setUniform2f( "sun_pos", x, y);
GL_state.Uniform.setUniformi( "scene", 0);
GL_state.Uniform.setUniformi( "cockpit", 1);
+5 -5
View File
@@ -61,10 +61,10 @@ void shadows_construct_light_proj(light_frustum_info *shadow_data)
void shadows_debug_show_frustum(matrix* orient, vec3d *pos, float fov, float aspect, float z_near, float z_far)
{
// find the widths and heights of the near plane and far plane to determine the points of this frustum
float near_height = (float)tan((double)fov * 0.5) * z_near;
float near_height = tanf(fov * 0.5f) * z_near;
float near_width = near_height * aspect;
float far_height = (float)tan((double)fov * 0.5) * z_far;
float far_height = tanf(fov * 0.5f) * z_far;
float far_width = far_height * aspect;
vec3d up_scale = ZERO_VECTOR;
@@ -190,10 +190,10 @@ void shadows_debug_show_frustum(matrix* orient, vec3d *pos, float fov, float asp
void shadows_construct_light_frustum(light_frustum_info *shadow_data, matrix *light_matrix, matrix *orient, vec3d *pos, float fov, float aspect, float z_near, float z_far)
{
// find the widths and heights of the near plane and far plane to determine the points of this frustum
float near_height = (float)tan((double)fov * 0.5) * z_near;
float near_height = tanf(fov * 0.5f) * z_near;
float near_width = near_height * aspect;
float far_height = (float)tan((double)fov * 0.5f) * z_far;
float far_height = tanf(fov * 0.5f) * z_far;
float far_width = far_height * aspect;
vec3d up_scale = ZERO_VECTOR;
@@ -482,4 +482,4 @@ void shadows_render_all(float fov, matrix *eye_orient, vec3d *eye_pos)
gr_set_proj_matrix(Proj_fov, gr_screen.clip_aspect, Min_draw_distance, Max_draw_distance);
gr_set_view_matrix(&Eye_position, &Eye_matrix);
}
}
+8 -8
View File
@@ -649,16 +649,16 @@ void HudGaugeLock::renderLockTrianglesOld(int center_x, int center_y, int radius
// draw the orbiting triangles
//ang = atan2(target_point.y,target_point.x);
xpos = center_x + (float)cos(ang)*(radius + Lock_triangle_height + 2);
ypos = center_y - (float)sin(ang)*(radius + Lock_triangle_height + 2);
xpos = center_x + cosf(ang)*(radius + Lock_triangle_height + 2);
ypos = center_y - sinf(ang)*(radius + Lock_triangle_height + 2);
x3 = xpos - Lock_triangle_base * (float)sin(-ang);
y3 = ypos + Lock_triangle_base * (float)cos(-ang);
x4 = xpos + Lock_triangle_base * (float)sin(-ang);
y4 = ypos - Lock_triangle_base * (float)cos(-ang);
x3 = xpos + Lock_triangle_base * sinf(ang);
y3 = ypos + Lock_triangle_base * cosf(ang);
x4 = xpos - Lock_triangle_base * sinf(ang);
y4 = ypos - Lock_triangle_base * cosf(ang);
xpos = xpos - Lock_triangle_base * (float)cos(ang);
ypos = ypos + Lock_triangle_base * (float)sin(ang);
xpos = xpos - Lock_triangle_base * cosf(ang);
ypos = ypos + Lock_triangle_base * sinf(ang);
hud_tri(x3, y3, xpos, ypos, x4, y4);
} // end for
+12 -12
View File
@@ -2772,8 +2772,8 @@ void HudGaugeOrientationTee::renderOrientation(object *from_objp, object *to_obj
dot_product *= PI_2; //(range is now -PI/2 => PI/2)
}
y1 = (float)sin(dot_product) * (Radius - T_OFFSET_FROM_CIRCLE);
x1 = (float)cos(dot_product) * (Radius - T_OFFSET_FROM_CIRCLE);
y1 = sinf(dot_product) * (Radius - T_OFFSET_FROM_CIRCLE);
x1 = cosf(dot_product) * (Radius - T_OFFSET_FROM_CIRCLE);
y1 += position[1];
x1 += position[0];
@@ -2781,8 +2781,8 @@ void HudGaugeOrientationTee::renderOrientation(object *from_objp, object *to_obj
x1 += HUD_offset_x;
y1 += HUD_offset_y;
y2 = (float)sin(dot_product) * (Radius - T_OFFSET_FROM_CIRCLE - T_LENGTH);
x2 = (float)cos(dot_product) * (Radius - T_OFFSET_FROM_CIRCLE - T_LENGTH);
y2 = sinf(dot_product) * (Radius - T_OFFSET_FROM_CIRCLE - T_LENGTH);
x2 = cosf(dot_product) * (Radius - T_OFFSET_FROM_CIRCLE - T_LENGTH);
y2 += position[1];
x2 += position[0];
@@ -2790,10 +2790,10 @@ void HudGaugeOrientationTee::renderOrientation(object *from_objp, object *to_obj
x2 += HUD_offset_x;
y2 += HUD_offset_y;
x3 = x1 - T_BASE_LENGTH * (float)sin(dot_product);
y3 = y1 + T_BASE_LENGTH * (float)cos(dot_product);
x4 = x1 + T_BASE_LENGTH * (float)sin(dot_product);
y4 = y1 - T_BASE_LENGTH * (float)cos(dot_product);
x3 = x1 - T_BASE_LENGTH * sinf(dot_product);
y3 = y1 + T_BASE_LENGTH * cosf(dot_product);
x4 = x1 + T_BASE_LENGTH * sinf(dot_product);
y4 = y1 - T_BASE_LENGTH * cosf(dot_product);
// HACK! Should be antialiased!
renderLine(fl2i(x3),fl2i(y3),fl2i(x4),fl2i(y4)); // bottom of T
@@ -2935,8 +2935,8 @@ void HudGaugeReticleTriangle::renderTriangleMissileTail(float ang, float xpos, f
float max_tail_len=20.0f;
sin_ang=(float)sin(ang);
cos_ang=(float)cos(ang);
sin_ang=sinf(ang);
cos_ang=cosf(ang);
if ( cur_dist < Min_warning_missile_dist ) {
tail_len = 0.0f;
@@ -3040,8 +3040,8 @@ void HudGaugeReticleTriangle::renderTriangle(vec3d *hostile_pos, int aspect_flag
unsize( &hostile_vertex.world.xyz.x, &hostile_vertex.world.xyz.y );
ang = atan2_safe(hostile_vertex.world.xyz.y,hostile_vertex.world.xyz.x);
sin_ang=(float)sin(ang);
cos_ang=(float)cos(ang);
sin_ang=sinf(ang);
cos_ang=cosf(ang);
if ( draw_inside ) {
xpos = position[0] + cos_ang*(Radius-7);
+1 -1
View File
@@ -240,7 +240,7 @@ void ChttpGet::WorkerThread()
sprintf(szCommand,"GET %s%s HTTP/1.1\nAccept: */*\nAccept-Encoding: deflate\nHost: %s\n\n\n",m_ProxyEnabled?"":"/",m_ProxyEnabled?m_URL:m_szDir,m_szHost);
send(m_DataSock,szCommand,strlen(szCommand),0);
p = GetHTTPLine();
if (!p) return;
if (!p) return;
if(strnicmp("HTTP/",p,5)==0)
{
char *pcode;
+2 -2
View File
@@ -835,8 +835,8 @@ void labviewer_render_model(float frametime)
int mx, my;
mouse_get_pos( &mx, &my );
light_dir.xyz.y = 0.0000001f;
light_dir.xyz.x = sin(my/150.0f);
light_dir.xyz.z = cos(my/150.0f);
light_dir.xyz.x = sinf(my/150.0f);
light_dir.xyz.z = cosf(my/150.0f);
vm_vec_normalize(&light_dir);
vm_vec_scale(&light_dir, mx*10.1f);
light_add_point(&light_dir,1,mx*10.2f+0.1f, 0.5f, 1.0f, 1.0f, 1.0f,-1);
+1
View File
@@ -35,6 +35,7 @@ float frand_range(float min, float max);
#define flceil(fl) (int)ceil(fl)
#define flfloor(fl) (int)floor(fl)
#define f2fl(fx) ((float)(fx)/65536.0f)
#define f2d(fx) (((double)(fx))/65536.0)
#define fl2f(fl) (int)((fl)*65536.0f)
#define fl_tan(fl) tanf(fl)
+3 -3
View File
@@ -62,7 +62,7 @@ bool vm_matrix_equal(const matrix4 &self, const matrix4 &other)
// -----------------------------------------------------------
// atan2_safe()
//
// Wrapper around atan2() that used atan() to calculate angle. Safe
// Wrapper around atan2() that used atanf() to calculate angle. Safe
// for optimized builds. Handles special cases when x == 0.
//
float atan2_safe(float y, float x)
@@ -81,7 +81,7 @@ float atan2_safe(float y, float x)
return ang;
}
ang = (float)atan(y/x);
ang = atanf(y/x);
if ( x < 0.0f ){
ang += PI;
}
@@ -1075,7 +1075,7 @@ angles *vm_extract_angles_matrix_alternate(angles *a, const matrix *m)
} else if (sp >= 1.0f) {
a->p = PI_2; // pi/2
} else {
a->p = asin(sp);
a->p = asinf(sp);
}
// Check for the Gimbal lock case, giving a slight tolerance
+2 -2
View File
@@ -323,7 +323,7 @@ int add_avi( char *avi_name )
generic_anim_init( &extra.anim_data, avi_name );
strcpy_s( extra.name, avi_name );
extra.num = -1;
generic_anim_load(&extra.anim_data); // load only to validate the anim
extra.exists = (generic_anim_load(&extra.anim_data) == 0); // load only to validate the anim
generic_anim_unload(&extra.anim_data); // unload to not waste bmpman slots
Message_avis.push_back(extra);
Num_message_avis++;
@@ -1180,7 +1180,7 @@ void message_play_anim( message_q *q )
// support ships use a wingman head.
// terran command uses its own set of heads.
if ( (anim_info->anim_data.first_frame < 0) && // note, first_frame will be >= 0 when ani is an existing file, and will be < 0 when the file does not exist and needs a, b, or c appended
if ( (!anim_info->exists) && // if the base animation doesn't exist, then a, b, or c needs to be appended
((q->message_num < Num_builtin_messages) || !(_strnicmp(HEAD_PREFIX_STRING, ani_name, strlen(HEAD_PREFIX_STRING)-1))) ) {
int subhead_selected = FALSE;
persona_index = m->persona_index;
+1
View File
@@ -28,6 +28,7 @@ typedef struct message_extra {
char name[MAX_FILENAME_LEN];
int num;
generic_anim anim_data;
bool exists;
} message_extra;
extern SCP_vector<message_extra> Message_avis;
+16 -9
View File
@@ -1293,14 +1293,21 @@ void parse_fiction(mission *pm)
if (optional_string("$Formula:"))
stage.formula = get_sexp_main();
// now, store this stage
Fiction_viewer_stages.push_back(stage);
// see if this is the stage we want to display, then display it
if (!Fred_running && !fiction_viewer_loaded && is_sexp_true(stage.formula))
if (strlen(stage.story_filename) > 0)
{
fiction_viewer_load(Fiction_viewer_stages.size() - 1);
fiction_viewer_loaded = true;
// now, store this stage
Fiction_viewer_stages.push_back(stage);
// see if this is the stage we want to display, then display it
if (!Fred_running && !fiction_viewer_loaded && is_sexp_true(stage.formula))
{
fiction_viewer_load(Fiction_viewer_stages.size() - 1);
fiction_viewer_loaded = true;
}
}
else
{
error_display(0, "Fiction viewer story filename may not be empty!");
}
}
}
@@ -4579,7 +4586,7 @@ void parse_wing(mission *pm)
for ( sexp = CDR(wing_goals); sexp != -1; sexp = CDR(sexp) )
ai_add_wing_goal_sexp(sexp, AIG_TYPE_EVENT_WING, wingnum); // used by Fred
free_sexp2(wing_goals); // free up sexp nodes for reuse, since they aren't needed anymore.
free_sexp2(wing_goals); // free up sexp nodes for reuse, since they aren't needed anymore.
}
// set the wing number for all ships in the wing
@@ -6552,7 +6559,7 @@ int mission_set_arrival_location(int anchor, int location, int dist, int objnum,
// cool function by MK to give a reasonable random vector "in front" of a ship
// rvec and uvec are the right and up vectors.
// If these are not available, this would be an expensive method.
x = (float)cos(ANG_TO_RAD(45));
x = cosf(fl_radians(45.0f));
if ( Game_mode & GM_NORMAL ) {
r1 = rand() < RAND_MAX_2 ? -1 : 1;
r2 = rand() < RAND_MAX_2 ? -1 : 1;
+2 -2
View File
@@ -1927,8 +1927,8 @@ int model_get_rotated_bitmap_points(vertex *pnt,float angle, float rad, vertex *
Assert( G3_count == 1 );
sa = (float)sin(angle);
ca = (float)cos(angle);
sa = sinf(angle);
ca = cosf(angle);
float width, height;
+7 -7
View File
@@ -576,8 +576,8 @@ static void set_subsystem_info(int model_num, model_subsystem *subsystemp, char
get_user_prop_value(p+4, buf); // get the value of the fov
else
strcpy_s(buf,"180");
angle = ANG_TO_RAD(atoi(buf))/2.0f;
subsystemp->turret_fov = (float)cos(angle);
angle = fl_radians(atoi(buf))/2.0f;
subsystemp->turret_fov = cosf(angle);
subsystemp->turret_num_firing_points = 0;
if ( (p = strstr(props, "$crewspot")) != NULL) {
@@ -3667,9 +3667,9 @@ void submodel_look_at(polymodel *pm, int mn)
vm_vec_cross(&c, &l, &mp);
float dot=vm_vec_dot(&l,&mp);
if (dot>=0.0f) {
*a = asin(c.a1d[axis]);
*a = asinf(c.a1d[axis]);
} else {
*a = PI-asin(c.a1d[axis]);
*a = PI-asinf(c.a1d[axis]);
}
if (*a > PI2 ) {
@@ -3961,7 +3961,7 @@ int model_rotate_gun(int model_num, model_subsystem *turret, matrix *orient, ang
// vm_extract_angles_vector(&desired_angles, &of_dst);
if (reset == false) {
desired_angles.p = (float)acos(of_dst.xyz.z);
desired_angles.p = acosf(of_dst.xyz.z);
desired_angles.h = PI - atan2_safe(of_dst.xyz.x, of_dst.xyz.y);
desired_angles.b = 0.0f;
} else {
@@ -5717,8 +5717,8 @@ void parse_glowpoint_table(const char *filename)
if (optional_string("$Cone angle:")) {
stuff_float(&gpo.cone_angle);
gpo.cone_inner_angle = cos((gpo.cone_angle - ((gpo.cone_angle < 20.0f) ? gpo.cone_angle*0.5f : 20.0f)) / 180.0f * PI);
gpo.cone_angle = cos(gpo.cone_angle / 180.0f * PI);
gpo.cone_inner_angle = cosf((gpo.cone_angle - ((gpo.cone_angle < 20.0f) ? gpo.cone_angle*0.5f : 20.0f)) / 180.0f * PI);
gpo.cone_angle = cosf(gpo.cone_angle / 180.0f * PI);
}
required_string("$Cone direction:");
+11 -9
View File
@@ -46,7 +46,7 @@ void multi_ping_reset(ping_struct *ps)
ps->ping_add = 0;
// set the ping start to be -1
ps->ping_start = -1.0f;
ps->ping_start = -1L;
ps->ping_avg = -1;
@@ -54,20 +54,21 @@ void multi_ping_reset(ping_struct *ps)
}
// evaluate a pong return on the given struct
void multi_ping_eval_pong(ping_struct *ps)
void multi_ping_eval_pong(ping_struct *ps, fix pong_time)
{
int idx;
float ping_sum;
fix ping_sum;
// if the ping technically hasn't started,
if(ps->ping_start < 0.0f){
if(ps->ping_start < 0L){
nprintf(("Network","Processing pong for ping which hasn't started yet!\n"));
return;
}
// if we still have room to add a ping
if(ps->num_pings < MAX_PINGS){
ps->ping_times[ps->ping_add++] = f2fl(timer_get_fixed_seconds()) - ps->ping_start;
ps->ping_times[ps->ping_add++] = pong_time - ps->ping_start;
Assertion(ps->ping_times[ps->ping_add-1] > 0L, "Non-positive ping value!");
ps->num_pings++;
}
// otherwise if we've wrapped around
@@ -79,21 +80,22 @@ void multi_ping_eval_pong(ping_struct *ps)
ps->ping_add++;
}
ps->ping_times[ps->ping_add] = f2fl(timer_get_fixed_seconds()) - ps->ping_start;
ps->ping_times[ps->ping_add] = pong_time - ps->ping_start;
Assertion(ps->ping_times[ps->ping_add == 0 ? MAX_PINGS - 1 : ps->ping_add - 1] > 0L, "Non-positive ping value!");
}
// calculate the average ping time
ping_sum = 0.0f;
ping_sum = 0L;
for(idx=0;idx<ps->num_pings;idx++){
ping_sum += ps->ping_times[idx];
}
ps->ping_avg = (int)(1000.0f * (ping_sum / (float)ps->num_pings));
ps->ping_avg = (int)(f2d(1000L * ping_sum) / (double)ps->num_pings);
}
// start a ping - call this when sending a ping packet
void multi_ping_start(ping_struct *ps)
{
ps->ping_start = f2fl(timer_get_fixed_seconds());
ps->ping_start = timer_get_fixed_seconds();
}
// send a ping to a specific player
+3 -3
View File
@@ -24,8 +24,8 @@ struct net_player;
#define MAX_PINGS 10
typedef struct ping_struct {
float ping_start; // time the current ping was sent out, or -1 if none
float ping_times[MAX_PINGS]; // ping times for calculating the average
fix ping_start; // time the current ping was sent out, or -1 if none. using fix for higher precision
fix ping_times[MAX_PINGS]; // ping times for calculating the average, using precision of timer_get_fixed_seconds()
int num_pings; // # of pings in the ping_times array
int ping_add; // where to add the next ping
@@ -47,7 +47,7 @@ void multi_ping_reset(ping_struct *ps);
void multi_ping_start(ping_struct *ps);
// evaluate a pong return on the given struct
void multi_ping_eval_pong(ping_struct *ps);
void multi_ping_eval_pong(ping_struct *ps, fix pong_time);
// send a ping to a specific player
void multi_ping_send(net_player *p);
+2 -2
View File
@@ -3502,7 +3502,7 @@ void process_pong_packet(ubyte *data, header *hinfo)
p = &Net_players[lookup];
// evaluate the ping
multi_ping_eval_pong(&Net_players[lookup].s_info.ping);
multi_ping_eval_pong(&Net_players[lookup].s_info.ping, timer_get_fixed_seconds());
// put in calls to any functions which may want to know about the ping times from
// this guy
@@ -7994,7 +7994,7 @@ void process_beam_fired_packet(ubyte *data, header *hinfo)
shipp->beam_sys_info.model_num = Ship_info[shipp->ship_info_index].model_num;
shipp->beam_sys_info.turret_gun_sobj = pm->detail[0];
shipp->beam_sys_info.turret_num_firing_points = 1;
shipp->beam_sys_info.turret_fov = (float)cos((field_of_fire != 0.0f) ? field_of_fire : 180);
shipp->beam_sys_info.turret_fov = cosf((field_of_fire != 0.0f) ? field_of_fire : 180);
shipp->beam_sys_info.pnt = fire_info.targeting_laser_offset;
shipp->beam_sys_info.turret_firing_point[0] = fire_info.targeting_laser_offset;
+1 -1
View File
@@ -1566,7 +1566,7 @@ void multi_join_eval_pong(net_addr *addr, fix pong_time)
if(moveup != NULL){
do {
if(psnet_same(&moveup->server_addr,addr)){
multi_ping_eval_pong(&moveup->ping);
multi_ping_eval_pong(&moveup->ping, pong_time);
break;
} else {
+8 -7
View File
@@ -9574,7 +9574,7 @@ ADE_VIRTVAR(Gliding, l_Ship, "boolean", "Specifies whether this ship is currentl
return ADE_RETURN_FALSE;
}
ADE_VIRTVAR(EtsEngineIndex, l_Ship, "number", "(not implemented)", "number", "Ships ETS Engine index value, 0 to MAX_ENERGY_INDEX")
ADE_VIRTVAR(EtsEngineIndex, l_Ship, "number", "(SET not implemented, see EtsSetIndexes)", "number", "Ships ETS Engine index value, 0 to MAX_ENERGY_INDEX")
{
object_h *objh=NULL;
int ets_idx = 0;
@@ -9591,7 +9591,7 @@ ADE_VIRTVAR(EtsEngineIndex, l_Ship, "number", "(not implemented)", "number", "Sh
return ade_set_args(L, "i", Ships[objh->objp->instance].engine_recharge_index);
}
ADE_VIRTVAR(EtsShieldIndex, l_Ship, "number", "(not implemented)", "number", "Ships ETS Shield index value, 0 to MAX_ENERGY_INDEX")
ADE_VIRTVAR(EtsShieldIndex, l_Ship, "number", "(SET not implemented, see EtsSetIndexes)", "number", "Ships ETS Shield index value, 0 to MAX_ENERGY_INDEX")
{
object_h *objh=NULL;
int ets_idx = 0;
@@ -9608,7 +9608,7 @@ ADE_VIRTVAR(EtsShieldIndex, l_Ship, "number", "(not implemented)", "number", "Sh
return ade_set_args(L, "i", Ships[objh->objp->instance].shield_recharge_index);
}
ADE_VIRTVAR(EtsWeaponIndex, l_Ship, "number", "(not implemented)", "number", "Ships ETS Weapon index value, 0 to MAX_ENERGY_INDEX")
ADE_VIRTVAR(EtsWeaponIndex, l_Ship, "number", "(SET not implemented, see EtsSetIndexes)", "number", "Ships ETS Weapon index value, 0 to MAX_ENERGY_INDEX")
{
object_h *objh=NULL;
int ets_idx = 0;
@@ -10110,9 +10110,9 @@ ADE_FUNC(doManeuver, l_Ship, "number Duration, number Heading, number Pitch, num
return ADE_RETURN_TRUE;
}
ADE_FUNC(triggerAnimation, l_Ship, "string Type, [number Subtype, boolean Forwards]",
ADE_FUNC(triggerAnimation, l_Ship, "string Type, [number Subtype, boolean Forwards, boolean Instant]",
"Triggers an animation. Type is the string name of the animation type, "
"Subtype is the subtype number, such as weapon bank #, and Forwards is boolean."
"Subtype is the subtype number, such as weapon bank #, Forwards and Instant are boolean, defaulting to true & false respectively."
"<br><strong>IMPORTANT: Function is in testing and should not be used with official mod releases</strong>",
"boolean",
"True if successful, false or nil otherwise")
@@ -10120,8 +10120,9 @@ ADE_FUNC(triggerAnimation, l_Ship, "string Type, [number Subtype, boolean Forwar
object_h *objh;
char *s = NULL;
bool b = true;
bool instant = false;
int subtype=-1;
if(!ade_get_args(L, "o|sib", l_Ship.GetPtr(&objh), &s, &subtype, &b))
if(!ade_get_args(L, "o|sibb", l_Ship.GetPtr(&objh), &s, &subtype, &b, &instant))
return ADE_RETURN_NIL;
if(!objh->IsValid())
@@ -10135,7 +10136,7 @@ ADE_FUNC(triggerAnimation, l_Ship, "string Type, [number Subtype, boolean Forwar
if(!b)
dir = -1;
model_anim_start_type(&Ships[objh->objp->instance], type, subtype, dir);
model_anim_start_type(&Ships[objh->objp->instance], type, subtype, dir, instant);
return ADE_RETURN_TRUE;
}
+2 -2
View File
@@ -1245,8 +1245,8 @@ void stuff_string(char *outstr, int type, int len, char *terminators)
if (type == F_FILESPEC) {
// Make sure that the passed string looks like a good filename
if (strlen(read_str) == 0) {
// Empty file name is not valid!
error_display(1, "A file name was expected but no name was supplied!\n");
// Empty file name is probably not valid!
error_display(0, "A file name was expected but no name was supplied! This is probably a mistake.");
}
}
+3 -3
View File
@@ -15351,7 +15351,7 @@ int sexp_facing(int node)
vm_vec_normalize(&v2);
a1 = vm_vec_dot(&v1, &v2);
a2 = (float) cos(ANG_TO_RAD(angle));
a2 = cosf(fl_radians(angle));
if (a1 >= a2){
return SEXP_TRUE;
}
@@ -15411,7 +15411,7 @@ int sexp_is_facing(int node)
vm_vec_normalize(&v2);
a1 = vm_vec_dot(&v1, &v2);
a2 = (float) cos(ANG_TO_RAD(angle));
a2 = cosf(fl_radians(angle));
if (a1 >= a2){
return SEXP_TRUE;
}
@@ -15447,7 +15447,7 @@ int sexp_facing2(int node)
vm_vec_sub(&v2, wp_list->get_waypoints().front().get_pos(), &Player_obj->pos);
vm_vec_normalize(&v2);
a1 = vm_vec_dot(&v1, &v2);
a2 = (float) cos(ANG_TO_RAD(atof(CTEXT(CDR(node)))));
a2 = cosf(fl_radians(atof(CTEXT(CDR(node)))));
if (a1 >= a2){
return SEXP_TRUE;
}
+10
View File
@@ -581,6 +581,16 @@ void read_keyboard_controls( control_info * ci, float frame_time, physics_info *
override_analog_throttle = 1;
}
// allow a minimum speed to be set for the player ship (only)
if ( Player_ship != nullptr && Player_ship->ship_info_index >= 0 ) {
float z_min = Ship_info[Player_ship->ship_info_index].min_vel.xyz.z;
if (z_min > 0.0f && pi->speed <= z_min) {
ci->forward = MAX(ci->forward, 0.0f);
ci->forward_cruise_percent = MAX(ci->forward_cruise_percent, z_min / Ship_info[Player_ship->ship_info_index].max_vel.xyz.z * 100.0f);
override_analog_throttle = 1;
}
}
// AL 12-29-97: If afterburner key is down, player should have full forward thrust (even if afterburners run out)
if ( check_control(AFTERBURNER) ) {
ci->forward = 1.0f;
+1 -1
View File
@@ -367,7 +367,7 @@ void HudGaugeRadarStd::plotBlip(blip *b, int *x, int *y)
if (b->dist < pos->xyz.z) {
rscale = 0.0f;
} else {
rscale = (float) acos(pos->xyz.z / b->dist) / PI; //2.0f;
rscale = (float) acosf(pos->xyz.z / b->dist) / PI; //2.0f;
}
zdist = fl_sqrt((pos->xyz.x * pos->xyz.x) + (pos->xyz.y * pos->xyz.y));
+3 -3
View File
@@ -59,8 +59,8 @@ HudGaugeRadar(HUD_OBJECT_RADAR_ORB, 255, 255, 255)
for (i=0; i < NUM_ORB_RING_SLICES; i++)
{
s=(float)sin(float(i*PI2)/NUM_ORB_RING_SLICES);
c=(float)cos(float(i*PI2)/NUM_ORB_RING_SLICES);
s=sinf(float(i*PI2)/NUM_ORB_RING_SLICES);
c=cosf(float(i*PI2)/NUM_ORB_RING_SLICES);
orb_ring_xy[i].xyz.x = c;
orb_ring_xy[i].xyz.y = s;
@@ -412,7 +412,7 @@ int HudGaugeRadarOrb::calcAlpha(vec3d* pt)
vm_vec_normalize(&new_pt);
float dot = vm_vec_dot(&fvec, &new_pt);
float angle = fabs(acos(dot));
float angle = fabs(acosf(dot));
int alpha = int(angle*192.0f/PI);
return alpha;
+8 -8
View File
@@ -861,8 +861,8 @@ int g3_draw_rotated_bitmap(vertex *pnt,float angle, float rad,uint tmap_flags, f
else if ( angle > PI2 )
angle -= PI2;
sa = (float)sin(angle);
ca = (float)cos(angle);
sa = sinf(angle);
ca = cosf(angle);
float width, height;
@@ -1084,8 +1084,8 @@ float g3_draw_rotated_bitmap_area(vertex *pnt,float angle, float rad,uint tmap_f
angle -= PI2;
}
sa = (float)sin(angle);
ca = (float)cos(angle);
sa = sinf(angle);
ca = cosf(angle);
float width, height;
@@ -1420,12 +1420,12 @@ void stars_project_2d_onto_sphere( vec3d *pnt, float rho, float phi, float theta
{
float a = PI * phi;
float b = PI2 * theta;
float sin_a = (float)sin(a);
float sin_a = sinf(a);
// coords
pnt->xyz.z = rho * sin_a * (float)cos(b);
pnt->xyz.y = rho * sin_a * (float)sin(b);
pnt->xyz.x = rho * (float)cos(a);
pnt->xyz.z = rho * sin_a * cosf(b);
pnt->xyz.y = rho * sin_a * sinf(b);
pnt->xyz.x = rho * cosf(a);
}
// draw a perspective bitmap based on angles and radius
+4 -4
View File
@@ -215,8 +215,8 @@ float g3_draw_laser(const vec3d *headp, float head_width, const vec3d *tailp, fl
float sa, ca;
sa = (float)sin(a);
ca = (float)cos(a);
sa = sinf(a);
ca = cosf(a);
vertex v[4];
vertex *vertlist[4] = { &v[3], &v[2], &v[1], &v[0] };
@@ -364,8 +364,8 @@ float g3_draw_laser_rgb(const vec3d *headp, float head_width, const vec3d *tailp
float sa, ca;
sa = (float)sin(a);
ca = (float)cos(a);
sa = sinf(a);
ca = cosf(a);
vertex v[4];
vertex *vertlist[4] = { &v[3], &v[2], &v[1], &v[0] };
+59 -25
View File
@@ -707,6 +707,7 @@ void ship_info::clone(const ship_info& other)
rotdamp = other.rotdamp;
delta_bank_const = other.delta_bank_const;
max_vel = other.max_vel;
min_vel = other.min_vel;
max_rotvel = other.max_rotvel;
rotation_time = other.rotation_time;
srotation_time = other.srotation_time;
@@ -1013,6 +1014,7 @@ void ship_info::move(ship_info&& other)
rotdamp = other.rotdamp;
delta_bank_const = other.delta_bank_const;
std::swap(max_vel, other.max_vel);
std::swap(min_vel, other.min_vel);
std::swap(max_rotvel, other.max_rotvel);
std::swap(rotation_time, other.rotation_time);
srotation_time = other.srotation_time;
@@ -1336,6 +1338,7 @@ ship_info::ship_info()
rotdamp = 0.0f;
delta_bank_const = DEFAULT_DELTA_BANK_CONST;
vm_vec_zero(&max_vel);
vm_vec_zero(&min_vel);
vm_vec_zero(&max_rotvel);
vm_vec_zero(&rotation_time);
srotation_time = 0.0f;
@@ -2524,17 +2527,17 @@ int parse_ship_values(ship_info* sip, const bool is_template, const bool first_t
if(optional_string("+Landing Max Angle:")) {
float degrees;
stuff_float(&degrees);
sip->collision_physics.landing_max_angle = cos(ANG_TO_RAD(90 - degrees));
sip->collision_physics.landing_max_angle = cosf(fl_radians(90.0f - degrees));
}
if(optional_string("+Landing Min Angle:")) {
float degrees;
stuff_float(&degrees);
sip->collision_physics.landing_min_angle = cos(ANG_TO_RAD(90 - degrees));
sip->collision_physics.landing_min_angle = cosf(fl_radians(90.0f - degrees));
}
if(optional_string("+Landing Max Rotate Angle:")) {
float degrees;
stuff_float(&degrees);
sip->collision_physics.landing_max_rot_angle = cos(ANG_TO_RAD(90 - degrees));
sip->collision_physics.landing_max_rot_angle = cosf(fl_radians(90.0f - degrees));
}
if(optional_string("+Reorient Max Forward Vel:")) {
stuff_float(&sip->collision_physics.reorient_max_z);
@@ -2552,17 +2555,17 @@ int parse_ship_values(ship_info* sip, const bool is_template, const bool first_t
if(optional_string("+Reorient Max Angle:")) {
float degrees;
stuff_float(&degrees);
sip->collision_physics.reorient_max_angle = cos(ANG_TO_RAD(90 - degrees));
sip->collision_physics.reorient_max_angle = cosf(fl_radians(90.0f - degrees));
}
if(optional_string("+Reorient Min Angle:")) {
float degrees;
stuff_float(&degrees);
sip->collision_physics.reorient_min_angle = cos(ANG_TO_RAD(90 - degrees));
sip->collision_physics.reorient_min_angle = cosf(fl_radians(90.0f - degrees));
}
if(optional_string("+Reorient Max Rotate Angle:")) {
float degrees;
stuff_float(&degrees);
sip->collision_physics.reorient_max_rot_angle = cos(ANG_TO_RAD(90 - degrees));
sip->collision_physics.reorient_max_rot_angle = cosf(fl_radians(90.0f - degrees));
}
if(optional_string("+Reorient Speed Mult:")) {
stuff_float(&sip->collision_physics.reorient_mult);
@@ -2570,7 +2573,7 @@ int parse_ship_values(ship_info* sip, const bool is_template, const bool first_t
if(optional_string("+Landing Rest Angle:")) {
float degrees;
stuff_float(&degrees);
sip->collision_physics.landing_rest_angle = cos(ANG_TO_RAD(90 - degrees));
sip->collision_physics.landing_rest_angle = cosf(fl_radians(90.0f - degrees));
}
parse_sound("+Landing Sound:", &sip->collision_physics.landing_sound_idx, sip->name);
}
@@ -2681,6 +2684,9 @@ int parse_ship_values(ship_info* sip, const bool is_template, const bool first_t
// calculate the max speed from max_velocity
sip->max_speed = sip->max_vel.xyz.z;
if(optional_string("$Player Minimum Velocity:"))
stuff_vec3d(&sip->min_vel);
if(optional_string("$Rotation Time:"))
{
stuff_vec3d(&sip->rotation_time);
@@ -4201,16 +4207,16 @@ int parse_ship_values(ship_info* sip, const bool is_template, const bool first_t
int value;
stuff_int(&value);
CAP(value, 0, 90);
float angle = ANG_TO_RAD((float) (90 - value));
sp->turret_max_fov = (float)cos(angle);
float angle = fl_radians(90 - value);
sp->turret_max_fov = cosf(angle);
}
if(optional_string("$Turret Base FOV:")) {
int value;
stuff_int(&value);
CAP(value, 0, 359);
float angle = ANG_TO_RAD((float) value)/2.0f;
sp->turret_y_fov = (float)cos(angle);
float angle = fl_radians(value)/2.0f;
sp->turret_y_fov = cosf(angle);
turret_has_base_fov = true;
}
@@ -5055,6 +5061,26 @@ void ship_parse_post_cleanup()
{
Warning(LOCATION, "$Rotation time: too low; this will disable rotational collisions. All three variables should be >= 1.39.\nFix this in ship '%s'\n", sip->name);
}
// ensure player min velocity makes sense
if (sip->min_vel.xyz.x > sip->max_vel.xyz.x || sip->min_vel.xyz.x < 0.0f)
{
error_display(0, "$Player Minimum Velocity X-value (%f) is negative or greater than max velocity X-value (%f), setting to zero\nFix for ship '%s'\n",
sip->min_vel.xyz.x, sip->max_vel.xyz.x, sip->name);
sip->min_vel.xyz.x = 0.0f;
}
if (sip->min_vel.xyz.y > sip->max_vel.xyz.y || sip->min_vel.xyz.y < 0.0f)
{
error_display(0, "$Player Minimum Velocity Y-value (%f) is negative or greater than max velocity Y-value (%f), setting to zero\nFix for ship '%s'\n",
sip->min_vel.xyz.y, sip->max_vel.xyz.y, sip->name);
sip->min_vel.xyz.y = 0.0f;
}
if (sip->min_vel.xyz.z > sip->max_vel.xyz.z || sip->min_vel.xyz.z < 0.0f)
{
error_display(0, "$Player Minimum Velocity Z-value (%f) is negative or greater than max velocity Z-value (%f), setting to zero\nFix for ship '%s'\n",
sip->min_vel.xyz.z, sip->max_vel.xyz.z, sip->name);
sip->min_vel.xyz.z = 0.0f;
}
}
// check also target groups here
@@ -10687,13 +10713,16 @@ int ship_stop_fire_primary_bank(object * obj, int bank_to_stop)
shipp = &Ships[obj->instance];
swp = &shipp->weapons;
if(shipp->primary_rotate_rate[bank_to_stop] > 0.0f)
shipp->primary_rotate_rate[bank_to_stop] -= Weapon_info[swp->primary_bank_weapons[bank_to_stop]].weapon_submodel_rotate_accell*flFrametime;
if(shipp->primary_rotate_rate[bank_to_stop] < 0.0f)
shipp->primary_rotate_rate[bank_to_stop] = 0.0f;
if(Ship_info[shipp->ship_info_index].draw_primary_models[bank_to_stop]){
if(shipp->primary_rotate_rate[bank_to_stop] > 0.0f)
shipp->primary_rotate_rate[bank_to_stop] -= Weapon_info[swp->primary_bank_weapons[bank_to_stop]].weapon_submodel_rotate_accell*flFrametime;
if(shipp->primary_rotate_rate[bank_to_stop] < 0.0f)shipp->primary_rotate_rate[bank_to_stop] = 0.0f;
shipp->primary_rotate_ang[bank_to_stop] += shipp->primary_rotate_rate[bank_to_stop]*flFrametime;
if(shipp->primary_rotate_ang[bank_to_stop] > PI2)shipp->primary_rotate_ang[bank_to_stop] -= PI2;
if(shipp->primary_rotate_ang[bank_to_stop] < 0.0f)shipp->primary_rotate_ang[bank_to_stop] += PI2;
if(shipp->primary_rotate_ang[bank_to_stop] > PI2)
shipp->primary_rotate_ang[bank_to_stop] -= PI2;
if(shipp->primary_rotate_ang[bank_to_stop] < 0.0f)
shipp->primary_rotate_ang[bank_to_stop] += PI2;
}
if(shipp->was_firing_last_frame[bank_to_stop] == 0)
@@ -10898,15 +10927,20 @@ int ship_fire_primary(object * obj, int stream_weapons, int force)
vm_vec_scale_sub2(&target_velocity_vec, &obj->phys_info.vel, winfo_p->vel_inherit_amount);
}
if(sip->draw_primary_models[bank_to_fire]){
if(shipp->primary_rotate_rate[bank_to_fire] < winfo_p->weapon_submodel_rotate_vel)
if (winfo_p->weapon_submodel_rotate_vel > 0.0f) {
if (shipp->primary_rotate_rate[bank_to_fire] < winfo_p->weapon_submodel_rotate_vel)
shipp->primary_rotate_rate[bank_to_fire] += winfo_p->weapon_submodel_rotate_accell*flFrametime;
if(shipp->primary_rotate_rate[bank_to_fire] > winfo_p->weapon_submodel_rotate_vel)shipp->primary_rotate_rate[bank_to_fire] = winfo_p->weapon_submodel_rotate_vel;
shipp->primary_rotate_ang[bank_to_fire] += shipp->primary_rotate_rate[bank_to_fire]*flFrametime;
if(shipp->primary_rotate_ang[bank_to_fire] > PI2)shipp->primary_rotate_ang[bank_to_fire] -= PI2;
if(shipp->primary_rotate_ang[bank_to_fire] < 0.0f)shipp->primary_rotate_ang[bank_to_fire] += PI2;
if(shipp->primary_rotate_rate[bank_to_fire] < winfo_p->weapon_submodel_rotate_vel)continue;
if (shipp->primary_rotate_rate[bank_to_fire] > winfo_p->weapon_submodel_rotate_vel)
shipp->primary_rotate_rate[bank_to_fire] = winfo_p->weapon_submodel_rotate_vel;
if (sip->draw_primary_models[bank_to_fire]) {
shipp->primary_rotate_ang[bank_to_fire] += shipp->primary_rotate_rate[bank_to_fire]*flFrametime;
if (shipp->primary_rotate_ang[bank_to_fire] > PI2)
shipp->primary_rotate_ang[bank_to_fire] -= PI2;
if (shipp->primary_rotate_ang[bank_to_fire] < 0.0f)
shipp->primary_rotate_ang[bank_to_fire] += PI2;
}
if (shipp->primary_rotate_rate[bank_to_fire] < winfo_p->weapon_submodel_rotate_vel)
continue;
}
// if this is a targeting laser, start it up ///- only targeting laser if it is tag-c, otherwise it's a fighter beam -Bobboau
if((winfo_p->wi_flags & WIF_BEAM) && (winfo_p->tag_level == 3) && (shipp->flags & SF_TRIGGER_DOWN) && (winfo_p->b_info.beam_type == BEAM_TYPE_C) ){
@@ -11111,7 +11145,7 @@ int ship_fire_primary(object * obj, int stream_weapons, int force)
shipp->beam_sys_info.model_num = sip->model_num;
shipp->beam_sys_info.turret_gun_sobj = pm->detail[0];
shipp->beam_sys_info.turret_num_firing_points = 1; // dummy turret info is used per firepoint
shipp->beam_sys_info.turret_fov = (float)cos((winfo_p->field_of_fire != 0.0f)?winfo_p->field_of_fire:180);
shipp->beam_sys_info.turret_fov = cosf((winfo_p->field_of_fire != 0.0f)?winfo_p->field_of_fire:180);
shipp->fighter_beam_turret_data.disruption_timestamp = timestamp(0);
shipp->fighter_beam_turret_data.turret_next_fire_pos = 0;
+1
View File
@@ -1194,6 +1194,7 @@ public:
float rotdamp; // rotational drag
float delta_bank_const;
vec3d max_vel; // max velocity of the ship in the linear directions -- read from ships.tbl
vec3d min_vel; // min velocity of the ship in the linear directions -- read from ships.tbl
vec3d max_rotvel; // maximum rotational velocity
vec3d rotation_time; // time to rotate in x/y/z dimension traveling at max rotvel
float srotation_time; // scalar, computed at runtime as (rotation_time.x + rotation_time.y)/2
+1 -1
View File
@@ -3041,7 +3041,7 @@ void engine_wash_ship_process(ship *shipp)
vm_vec_normalize(&apex_to_ship);
// check if inside cone angle
if (vm_vec_dot(&apex_to_ship, &world_thruster_norm) > cos(half_angle)) {
if (vm_vec_dot(&apex_to_ship, &world_thruster_norm) > cosf(half_angle)) {
vm_vec_cross(&temp, &world_thruster_norm, &thruster_to_ship);
vm_vec_scale_add2(&shipp->wash_rot_axis, &temp, dot_to_ship / dist_sqr);
ship_intensity += (1.0f - dist_sqr / (max_wash_dist*max_wash_dist));
+5 -5
View File
@@ -60,8 +60,8 @@ void project_2d_onto_sphere( vec3d *pnt, float u, float v )
a = PI * (2.0f * u - 1.0f );
z = 2.0f * v - 1.0f;
s = scale_factor * fl_sqrt( 1.0f - z*z );
x = s * (float)cos(a);
y = s * (float)sin(a);
x = s * cosf(a);
y = s * sinf(a);
pnt->xyz.x = x;
pnt->xyz.y = y;
pnt->xyz.z = z;
@@ -134,9 +134,9 @@ void nebula_init( const char *filename, int pitch, int bank, int heading )
{
angles a;
a.p = ANG_TO_RAD((float) pitch);
a.b = ANG_TO_RAD((float) bank);
a.h = ANG_TO_RAD((float) heading);
a.p = fl_radians(pitch);
a.b = fl_radians(bank);
a.h = fl_radians(heading);
nebula_init(filename, &a);
}
+1 -1
View File
@@ -3411,7 +3411,7 @@ float beam_get_cone_dot(beam *b)
case BEAM_TYPE_D:
case BEAM_TYPE_E:
// even though these beams don't move, return a _very_ small value
return (float)cos(fl_radians(50.5f));
return cosf(fl_radians(50.5f));
case BEAM_TYPE_B:
return vm_vec_dot(&b->binfo.dir_a, &b->binfo.dir_b);
+6 -6
View File
@@ -18,7 +18,7 @@
#define SWARM_DIST_OFFSET 2.0 // distance swarm missile should vary from original path
#define SWARM_DIST_OFFSET 2.0f // distance swarm missile should vary from original path
#define SWARM_CONE_LENGTH 10000.0f // used to pick a target point far in the distance
#define SWARM_CHANGE_DIR_TIME 400 // time to force change in direction of swarm missile
#define SWARM_ANGLE_CHANGE (4*PI/180) // in rad
@@ -243,9 +243,9 @@ void swarm_update_direction(object *objp, float frametime)
missile_speed = pi->speed;
missile_dist = missile_speed * swarmp->change_time/1000.0f;
if ( missile_dist < SWARM_DIST_OFFSET ) {
missile_dist=i2fl(SWARM_DIST_OFFSET);
missile_dist = SWARM_DIST_OFFSET;
}
swarmp->angle_offset = (float)(asin(SWARM_DIST_OFFSET / missile_dist));
swarmp->angle_offset = asinf(SWARM_DIST_OFFSET / missile_dist);
Assert(!_isnan(swarmp->angle_offset) );
}
@@ -264,9 +264,9 @@ void swarm_update_direction(object *objp, float frametime)
missile_speed = pi->speed;
missile_dist = missile_speed * swarmp->change_time/1000.0f;
if ( missile_dist < SWARM_DIST_OFFSET ) {
missile_dist = i2fl(SWARM_DIST_OFFSET);
missile_dist = SWARM_DIST_OFFSET;
}
swarmp->angle_offset = (float)(asin(SWARM_DIST_OFFSET / missile_dist));
swarmp->angle_offset = asinf(SWARM_DIST_OFFSET / missile_dist);
Assert(!_isnan(swarmp->angle_offset) );
}
@@ -280,7 +280,7 @@ void swarm_update_direction(object *objp, float frametime)
goto swarm_new_target_calced;
}
radius = (float)tan(swarmp->angle_offset) * target_dist;
radius = tanf(swarmp->angle_offset) * target_dist;
vec3d rvec_component, uvec_component;
swarmp->change_count++;
+2 -2
View File
@@ -1615,7 +1615,7 @@ int parse_weapon(int subtype, bool replace, const char *filename)
if(optional_string("+View Cone:")) {
stuff_float(&view_cone_angle);
wip->fov = (float)cos((float)(ANG_TO_RAD(view_cone_angle/2.0f)));
wip->fov = cosf(fl_radians(view_cone_angle * 0.5f));
}
if (optional_string("+Seeker Strength:"))
@@ -1656,7 +1656,7 @@ int parse_weapon(int subtype, bool replace, const char *filename)
if(optional_string("+View Cone:")) {
float view_cone_angle;
stuff_float(&view_cone_angle);
wip->fov = (float)cos((float)(ANG_TO_RAD(view_cone_angle/2.0f)));
wip->fov = (float)cos(fl_radians(view_cone_angle * 0.5f));
}
if(optional_string("+Min Lock Time:")) { // minimum time (in seconds) to achieve lock
+2 -1
View File
@@ -61,6 +61,7 @@
#include <unistd.h>
#include "SDL.h"
#include "SDL_thread.h"
#include <cmath>
// don't verbose stub funtions unless we're debugging
@@ -277,7 +278,7 @@ void strlwr(char *s);
char *strnset( char *string, int fill, size_t count);
// other stuff
#define _isnan(f) isnan(f)
#define _isnan(f) std::isnan(f)
#define _hypot(x, y) hypot(x, y)
int MulDiv(int number, int numerator, int denominator);
+7 -8
View File
@@ -470,14 +470,12 @@ D_CFLAGS=$D_CFLAGS" $PNG_CFLAGS"
FS2_LIBS=$FS2_LIBS" $PNG_LIBS"
dnl LUA
## Checking for lua.pc and if that fails lua5.1.pc
PKG_CHECK_MODULES(
[LUA],
[lua >= 5.1.3 lua < 5.2],
[], ## do nothing special
[PKG_CHECK_MODULES([LUA], [lua5.1 >= 5.1.3 lua5.1 < 5.2], [], [
PKG_CHECK_MODULES([LUA], [lua-5.1 >= 5.1.3 lua-5.1 < 5.2], [])
])])
## Checking for lua.pc and if that fails other possible names
PKG_CHECK_MODULES([LUA], [lua >= 5.1.3 lua < 5.2], [], [
PKG_CHECK_MODULES([LUA], [lua5.1 >= 5.1.3 lua5.1 < 5.2], [], [
PKG_CHECK_MODULES([LUA], [lua-5.1 >= 5.1.3 lua-5.1 < 5.2], [], [
PKG_CHECK_MODULES([LUA], [lua51 >= 5.1.3 lua51 < 5.2], [])
])])])
D_CFLAGS=$D_CFLAGS" $LUA_CFLAGS"
FS2_LIBS=$FS2_LIBS" $LUA_LIBS"
@@ -565,3 +563,4 @@ echo Generic build .......... : $fs2_generic_architecture
echo ASan enabled ........... : $fs2_asan
echo Building wxFred2 ....... : $fs2_fred
echo
dnl Test change
+1
Submodule lib/imageloader added at 7f7374d702.
+12 -12
View File
@@ -190,7 +190,7 @@
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
</Lib>
<Bscmake>
<AdditionalOptions>
<AdditionalOptions>
%(AdditionalOptions)</AdditionalOptions>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
@@ -234,7 +234,7 @@
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
</Lib>
<Bscmake>
<AdditionalOptions>
<AdditionalOptions>
%(AdditionalOptions)</AdditionalOptions>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
@@ -278,7 +278,7 @@
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
</Lib>
<Bscmake>
<AdditionalOptions>
<AdditionalOptions>
%(AdditionalOptions)</AdditionalOptions>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
@@ -322,7 +322,7 @@
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
</Lib>
<Bscmake>
<AdditionalOptions>
<AdditionalOptions>
%(AdditionalOptions)</AdditionalOptions>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
@@ -1070,21 +1070,21 @@
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\code\sound\phrases.xml">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
+8 -8
View File
@@ -1070,21 +1070,21 @@
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\code\sound\phrases.xml">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">gc /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">"%(RootDir)%(Directory)gc" /O "$(IntDir)voicer\%(Filename).cfg" /H "$(IntDir)voicer\grammar.h" "%(RootDir)%(Directory)%(Filename)"</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">$(IntDir)voicer\%(Filename).cfg;$(IntDir)voicer\grammar.h;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>