mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-12-29 05:41:02 +00:00
Merge branch 'next' into toast_slopes
This commit is contained in:
commit
629dd8e08f
9 changed files with 267 additions and 47 deletions
208
.travis.yml
208
.travis.yml
|
@ -2,19 +2,199 @@ language: c
|
||||||
sudo: required
|
sudo: required
|
||||||
dist: trusty
|
dist: trusty
|
||||||
|
|
||||||
env:
|
matrix:
|
||||||
- CFLAGS=-Wall -W -Werror
|
include:
|
||||||
|
- os: linux
|
||||||
os:
|
addons:
|
||||||
- linux
|
apt:
|
||||||
- osx
|
packages:
|
||||||
|
- libsdl2-mixer-dev
|
||||||
compiler:
|
- libpng-dev
|
||||||
- gcc
|
- libgl1-mesa-dev
|
||||||
- clang
|
- libgme-dev
|
||||||
|
- p7zip-full
|
||||||
|
- gcc-4.4
|
||||||
|
compiler: gcc-4.4
|
||||||
|
#gcc-4.4 (Ubuntu/Linaro 4.4.7-8ubuntu1) 4.4.7
|
||||||
|
- os: linux
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- libsdl2-mixer-dev
|
||||||
|
- libpng-dev
|
||||||
|
- libgl1-mesa-dev
|
||||||
|
- libgme-dev
|
||||||
|
- p7zip-full
|
||||||
|
- gcc-4.6
|
||||||
|
compiler: gcc-4.6
|
||||||
|
#gcc-4.6 (Ubuntu/Linaro 4.6.4-6ubuntu2) 4.6.4
|
||||||
|
- os: linux
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- libsdl2-mixer-dev
|
||||||
|
- libpng-dev
|
||||||
|
- libgl1-mesa-dev
|
||||||
|
- libgme-dev
|
||||||
|
- p7zip-full
|
||||||
|
- gcc-4.7
|
||||||
|
compiler: gcc-4.7
|
||||||
|
#gcc-4.7
|
||||||
|
- os: linux
|
||||||
|
compiler: gcc
|
||||||
|
#gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
|
||||||
|
- os: linux
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
packages:
|
||||||
|
- libsdl2-mixer-dev
|
||||||
|
- libpng-dev
|
||||||
|
- libgl1-mesa-dev
|
||||||
|
- libgme-dev
|
||||||
|
- p7zip-full
|
||||||
|
- gcc-4.8
|
||||||
|
compiler: gcc-4.8
|
||||||
|
#gcc-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
|
||||||
|
- os: linux
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
packages:
|
||||||
|
- libsdl2-mixer-dev
|
||||||
|
- libpng-dev
|
||||||
|
- libgl1-mesa-dev
|
||||||
|
- libgme-dev
|
||||||
|
- p7zip-full
|
||||||
|
- gcc-4.9
|
||||||
|
compiler: gcc-4.9
|
||||||
|
#gcc-4.9 (Ubuntu 4.9.3-8ubuntu2~14.04) 4.9.3
|
||||||
|
- os: linux
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
packages:
|
||||||
|
- libsdl2-mixer-dev
|
||||||
|
- libpng-dev
|
||||||
|
- libgl1-mesa-dev
|
||||||
|
- libgme-dev
|
||||||
|
- p7zip-full
|
||||||
|
- gcc-5
|
||||||
|
compiler: gcc-5
|
||||||
|
#gcc-5 (Ubuntu 5.3.0-3ubuntu1~14.04) 5.3.0 20151204
|
||||||
|
- os: linux
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
packages:
|
||||||
|
- libsdl2-mixer-dev
|
||||||
|
- libpng-dev
|
||||||
|
- libgl1-mesa-dev
|
||||||
|
- libgme-dev
|
||||||
|
- p7zip-full
|
||||||
|
- gcc-6
|
||||||
|
compiler: gcc-6
|
||||||
|
env: WFLAGS="-Wno-error=tautological-compare"
|
||||||
|
#gcc-6 (Ubuntu 6.1.1-3ubuntu11~14.04.1) 6.1.1 20160511
|
||||||
|
- os: linux
|
||||||
|
compiler: clang
|
||||||
|
#clang version 3.5.0 (tags/RELEASE_350/final)
|
||||||
|
- os: linux
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- llvm-toolchain-precise-3.5
|
||||||
|
packages:
|
||||||
|
- libsdl2-mixer-dev
|
||||||
|
- libpng-dev
|
||||||
|
- libgl1-mesa-dev
|
||||||
|
- libgme-dev
|
||||||
|
- p7zip-full
|
||||||
|
- clang-3.5
|
||||||
|
compiler: clang-3.5
|
||||||
|
#Ubuntu clang version 3.5.0-4ubuntu2~trusty2 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
|
||||||
|
- os: linux
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- llvm-toolchain-precise-3.6
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
packages:
|
||||||
|
- libsdl2-mixer-dev
|
||||||
|
- libpng-dev
|
||||||
|
- libgl1-mesa-dev
|
||||||
|
- libgme-dev
|
||||||
|
- p7zip-full
|
||||||
|
- clang-3.6
|
||||||
|
compiler: clang-3.6
|
||||||
|
#Ubuntu clang version 3.6.2-svn240577-1~exp1 (branches/release_36) (based on LLVM 3.6.2)
|
||||||
|
- os: linux
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- llvm-toolchain-precise-3.7
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
packages:
|
||||||
|
- libsdl2-mixer-dev
|
||||||
|
- libpng-dev
|
||||||
|
- libgl1-mesa-dev
|
||||||
|
- libgme-dev
|
||||||
|
- p7zip-full
|
||||||
|
- clang-3.7
|
||||||
|
compiler: clang-3.7
|
||||||
|
#Ubuntu clang version 3.7.1-svn253571-1~exp1 (branches/release_37) (based on LLVM 3.7.1)
|
||||||
|
- os: linux
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- llvm-toolchain-precise-3.8
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
packages:
|
||||||
|
- libsdl2-mixer-dev
|
||||||
|
- libpng-dev
|
||||||
|
- libgl1-mesa-dev
|
||||||
|
- libgme-dev
|
||||||
|
- p7zip-full
|
||||||
|
- clang-3.8
|
||||||
|
compiler: clang-3.8
|
||||||
|
#clang version 3.8.1-svn271127-1~exp1 (branches/release_38)
|
||||||
|
- os: osx
|
||||||
|
osx_image: beta-xcode6.1
|
||||||
|
#Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
|
||||||
|
- os: osx
|
||||||
|
osx_image: beta-xcode6.2
|
||||||
|
compiler: gcc
|
||||||
|
#Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
|
||||||
|
# - os: osx
|
||||||
|
# osx_image: beta-xcode6.3
|
||||||
|
# #I think xcode.6.3 VM is broken, it does not boot
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode6.4
|
||||||
|
#Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode7
|
||||||
|
#Apple LLVM version 7.0.0 (clang-700.0.72)
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode7.1
|
||||||
|
#Apple LLVM version 7.0.0 (clang-700.1.76)
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode7.2
|
||||||
|
#Apple LLVM version 7.0.2 (clang-700.1.81)
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode7.3
|
||||||
|
#Apple LLVM version 7.3.0 (clang-703.0.31)
|
||||||
|
allow_failures:
|
||||||
|
- compiler: clang-3.5
|
||||||
|
- compiler: clang-3.6
|
||||||
|
- compiler: clang-3.7
|
||||||
|
- compiler: clang-3.8
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
apt: true
|
apt: true
|
||||||
ccache: true
|
ccache: true
|
||||||
directories:
|
directories:
|
||||||
- $HOME/srb2_cache
|
- $HOME/srb2_cache
|
||||||
|
@ -33,11 +213,13 @@ before_script:
|
||||||
- 7z x $HOME/srb2_cache/SRB2-v2115-assets-2.7z -oassets
|
- 7z x $HOME/srb2_cache/SRB2-v2115-assets-2.7z -oassets
|
||||||
- mkdir build
|
- mkdir build
|
||||||
- cd build
|
- cd build
|
||||||
- cmake ..
|
- export CFLAGS="-Wall -W $WFLAGS"
|
||||||
|
- cmake .. -DCMAKE_BUILD_TYPE=Release
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update ; fi
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update ; fi
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install sdl2_mixer game-music-emu p7zip ; fi
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install sdl2_mixer game-music-emu p7zip; fi
|
||||||
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install cmake||true; fi
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then curl -O -L https://www.libsdl.org/release/SDL2-2.0.4.dmg; hdiutil attach SDL2-2.0.4.dmg; sudo cp -a /Volumes/SDL2/SDL2.framework /Library/Frameworks/; fi
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then curl -O -L https://www.libsdl.org/release/SDL2-2.0.4.dmg; hdiutil attach SDL2-2.0.4.dmg; sudo cp -a /Volumes/SDL2/SDL2.framework /Library/Frameworks/; fi
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then curl -O -L https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.1.dmg; hdiutil attach SDL2_mixer-2.0.1.dmg; sudo cp -a /Volumes/SDL2_mixer/SDL2_mixer.framework /Library/Frameworks/; fi
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then curl -O -L https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.1.dmg; hdiutil attach SDL2_mixer-2.0.1.dmg; sudo cp -a /Volumes/SDL2_mixer/SDL2_mixer.framework /Library/Frameworks/; fi
|
||||||
- mkdir -p $HOME/srb2_cache
|
- mkdir -p $HOME/srb2_cache
|
||||||
|
|
|
@ -270,6 +270,7 @@ static int boolK (FuncState *fs, int b) {
|
||||||
|
|
||||||
static int nilK (FuncState *fs) {
|
static int nilK (FuncState *fs) {
|
||||||
TValue k, v;
|
TValue k, v;
|
||||||
|
setbvalue(&v, 0);
|
||||||
setnilvalue(&v);
|
setnilvalue(&v);
|
||||||
/* cannot use nil as key; instead use table itself to represent nil */
|
/* cannot use nil as key; instead use table itself to represent nil */
|
||||||
sethvalue(fs->L, &k, fs->h);
|
sethvalue(fs->L, &k, fs->h);
|
||||||
|
|
|
@ -137,7 +137,7 @@ static void addfield (lua_State *L, luaL_Buffer *b, int i) {
|
||||||
if (!lua_isstring(L, -1))
|
if (!lua_isstring(L, -1))
|
||||||
luaL_error(L, "invalid value (%s) at index %d in table for "
|
luaL_error(L, "invalid value (%s) at index %d in table for "
|
||||||
LUA_QL("concat"), luaL_typename(L, -1), i);
|
LUA_QL("concat"), luaL_typename(L, -1), i);
|
||||||
luaL_addvalue(b);
|
luaL_addvalue(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2598,11 +2598,13 @@ static void D_MD5PasswordPass(const UINT8 *buffer, size_t len, const char *salt,
|
||||||
memset(dest, 0, 16);
|
memset(dest, 0, 16);
|
||||||
#else
|
#else
|
||||||
XBOXSTATIC char tmpbuf[256];
|
XBOXSTATIC char tmpbuf[256];
|
||||||
|
const size_t sl = strlen(salt);
|
||||||
|
|
||||||
if (len > 256-strlen(salt))
|
if (len > 256-sl)
|
||||||
len = 256-strlen(salt);
|
len = 256-sl;
|
||||||
memcpy(tmpbuf, buffer, len);
|
memcpy(tmpbuf, buffer, len);
|
||||||
strcpy(&tmpbuf[len], salt);
|
memmove(&tmpbuf[len], salt, sl);
|
||||||
|
//strcpy(&tmpbuf[len], salt);
|
||||||
len += strlen(salt);
|
len += strlen(salt);
|
||||||
if (len < 256)
|
if (len < 256)
|
||||||
memset(&tmpbuf[len],0,256-len);
|
memset(&tmpbuf[len],0,256-len);
|
||||||
|
|
|
@ -466,7 +466,7 @@ static boolean SOCK_cmpaddr(mysockaddr_t *a, mysockaddr_t *b, UINT8 mask)
|
||||||
UINT32 bitmask = INADDR_NONE;
|
UINT32 bitmask = INADDR_NONE;
|
||||||
|
|
||||||
if (mask && mask < 32)
|
if (mask && mask < 32)
|
||||||
bitmask = htonl(-1 << (32 - mask));
|
bitmask = htonl((UINT32)(-1) << (32 - mask));
|
||||||
|
|
||||||
if (b->any.sa_family == AF_INET)
|
if (b->any.sa_family == AF_INET)
|
||||||
return (a->ip4.sin_addr.s_addr & bitmask) == (b->ip4.sin_addr.s_addr & bitmask)
|
return (a->ip4.sin_addr.s_addr & bitmask) == (b->ip4.sin_addr.s_addr & bitmask)
|
||||||
|
|
|
@ -7430,7 +7430,7 @@ static void M_HandleFogColor(INT32 choice)
|
||||||
l = strlen(temp);
|
l = strlen(temp);
|
||||||
for (i = 0; i < l; i++)
|
for (i = 0; i < l; i++)
|
||||||
cv_grfogcolor.zstring[5 - i] = temp[l - i];
|
cv_grfogcolor.zstring[5 - i] = temp[l - i];
|
||||||
cv_grfogcolor.zstring[5] = (char)choice;
|
cv_grfogcolor.zstring[5] = (char)choice;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
81
src/p_spec.c
81
src/p_spec.c
|
@ -2434,10 +2434,10 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
|
||||||
if (rover->master->frontsector->tag != line->tag)
|
if (rover->master->frontsector->tag != line->tag)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (mo->z > *rover->topheight)
|
if (mo->z > P_GetSpecialTopZ(mo, sectors + rover->secnum, mo->subsector->sector))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (mo->z + mo->height < *rover->bottomheight)
|
if (mo->z + mo->height < P_GetSpecialBottomZ(mo, sectors + rover->secnum, mo->subsector->sector))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
foundit = true;
|
foundit = true;
|
||||||
|
@ -3227,8 +3227,8 @@ boolean P_IsFlagAtBase(mobjtype_t flag)
|
||||||
if (GETSECSPECIAL(rover->master->frontsector->special, 4) != specialnum)
|
if (GETSECSPECIAL(rover->master->frontsector->special, 4) != specialnum)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (mo->z <= *rover->topheight
|
if (mo->z <= P_GetSpecialTopZ(mo, sectors + rover->secnum, mo->subsector->sector)
|
||||||
&& mo->z >= *rover->bottomheight)
|
&& mo->z >= P_GetSpecialBottomZ(mo, sectors + rover->secnum, mo->subsector->sector))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3262,12 +3262,17 @@ sector_t *P_PlayerTouchingSectorSpecial(player_t *player, INT32 section, INT32 n
|
||||||
// Hmm.. maybe there's a FOF that has it...
|
// Hmm.. maybe there's a FOF that has it...
|
||||||
for (rover = player->mo->subsector->sector->ffloors; rover; rover = rover->next)
|
for (rover = player->mo->subsector->sector->ffloors; rover; rover = rover->next)
|
||||||
{
|
{
|
||||||
|
fixed_t topheight, bottomheight;
|
||||||
|
|
||||||
if (GETSECSPECIAL(rover->master->frontsector->special, section) != number)
|
if (GETSECSPECIAL(rover->master->frontsector->special, section) != number)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!(rover->flags & FF_EXISTS))
|
if (!(rover->flags & FF_EXISTS))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
topheight = P_GetSpecialTopZ(player->mo, sectors + rover->secnum, player->mo->subsector->sector);
|
||||||
|
bottomheight = P_GetSpecialBottomZ(player->mo, sectors + rover->secnum, player->mo->subsector->sector);
|
||||||
|
|
||||||
// Check the 3D floor's type...
|
// Check the 3D floor's type...
|
||||||
if (rover->flags & FF_BLOCKPLAYER)
|
if (rover->flags & FF_BLOCKPLAYER)
|
||||||
{
|
{
|
||||||
|
@ -3275,27 +3280,27 @@ sector_t *P_PlayerTouchingSectorSpecial(player_t *player, INT32 section, INT32 n
|
||||||
if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR)
|
if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR)
|
||||||
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING))
|
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING))
|
||||||
{
|
{
|
||||||
if ((player->mo->eflags & MFE_VERTICALFLIP) || player->mo->z != *rover->topheight)
|
if ((player->mo->eflags & MFE_VERTICALFLIP) || player->mo->z != topheight)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING)
|
else if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING)
|
||||||
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR))
|
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR))
|
||||||
{
|
{
|
||||||
if (!(player->mo->eflags & MFE_VERTICALFLIP)
|
if (!(player->mo->eflags & MFE_VERTICALFLIP)
|
||||||
|| player->mo->z + player->mo->height != *rover->bottomheight)
|
|| player->mo->z + player->mo->height != bottomheight)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (rover->master->frontsector->flags & SF_FLIPSPECIAL_BOTH)
|
else if (rover->master->frontsector->flags & SF_FLIPSPECIAL_BOTH)
|
||||||
{
|
{
|
||||||
if (!((player->mo->eflags & MFE_VERTICALFLIP && player->mo->z + player->mo->height == *rover->bottomheight)
|
if (!((player->mo->eflags & MFE_VERTICALFLIP && player->mo->z + player->mo->height == bottomheight)
|
||||||
|| (!(player->mo->eflags & MFE_VERTICALFLIP) && player->mo->z == *rover->topheight)))
|
|| (!(player->mo->eflags & MFE_VERTICALFLIP) && player->mo->z == topheight)))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Water and DEATH FOG!!! heh
|
// Water and DEATH FOG!!! heh
|
||||||
if (player->mo->z > *rover->topheight || (player->mo->z + player->mo->height) < *rover->bottomheight)
|
if (player->mo->z > topheight || (player->mo->z + player->mo->height) < bottomheight)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3317,12 +3322,17 @@ sector_t *P_PlayerTouchingSectorSpecial(player_t *player, INT32 section, INT32 n
|
||||||
// Hmm.. maybe there's a FOF that has it...
|
// Hmm.. maybe there's a FOF that has it...
|
||||||
for (rover = node->m_sector->ffloors; rover; rover = rover->next)
|
for (rover = node->m_sector->ffloors; rover; rover = rover->next)
|
||||||
{
|
{
|
||||||
|
fixed_t topheight, bottomheight;
|
||||||
|
|
||||||
if (GETSECSPECIAL(rover->master->frontsector->special, section) != number)
|
if (GETSECSPECIAL(rover->master->frontsector->special, section) != number)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!(rover->flags & FF_EXISTS))
|
if (!(rover->flags & FF_EXISTS))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
topheight = P_GetSpecialTopZ(player->mo, sectors + rover->secnum, player->mo->subsector->sector);
|
||||||
|
bottomheight = P_GetSpecialBottomZ(player->mo, sectors + rover->secnum, player->mo->subsector->sector);
|
||||||
|
|
||||||
// Check the 3D floor's type...
|
// Check the 3D floor's type...
|
||||||
if (rover->flags & FF_BLOCKPLAYER)
|
if (rover->flags & FF_BLOCKPLAYER)
|
||||||
{
|
{
|
||||||
|
@ -3330,27 +3340,27 @@ sector_t *P_PlayerTouchingSectorSpecial(player_t *player, INT32 section, INT32 n
|
||||||
if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR)
|
if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR)
|
||||||
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING))
|
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING))
|
||||||
{
|
{
|
||||||
if ((player->mo->eflags & MFE_VERTICALFLIP) || player->mo->z != *rover->topheight)
|
if ((player->mo->eflags & MFE_VERTICALFLIP) || player->mo->z != topheight)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING)
|
else if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING)
|
||||||
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR))
|
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR))
|
||||||
{
|
{
|
||||||
if (!(player->mo->eflags & MFE_VERTICALFLIP)
|
if (!(player->mo->eflags & MFE_VERTICALFLIP)
|
||||||
|| player->mo->z + player->mo->height != *rover->bottomheight)
|
|| player->mo->z + player->mo->height != bottomheight)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (rover->master->frontsector->flags & SF_FLIPSPECIAL_BOTH)
|
else if (rover->master->frontsector->flags & SF_FLIPSPECIAL_BOTH)
|
||||||
{
|
{
|
||||||
if (!((player->mo->eflags & MFE_VERTICALFLIP && player->mo->z + player->mo->height == *rover->bottomheight)
|
if (!((player->mo->eflags & MFE_VERTICALFLIP && player->mo->z + player->mo->height == bottomheight)
|
||||||
|| (!(player->mo->eflags & MFE_VERTICALFLIP) && player->mo->z == *rover->topheight)))
|
|| (!(player->mo->eflags & MFE_VERTICALFLIP) && player->mo->z == topheight)))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Water and DEATH FOG!!! heh
|
// Water and DEATH FOG!!! heh
|
||||||
if (player->mo->z > *rover->topheight || (player->mo->z + player->mo->height) < *rover->bottomheight)
|
if (player->mo->z > topheight || (player->mo->z + player->mo->height) < bottomheight)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4335,12 +4345,17 @@ sector_t *P_ThingOnSpecial3DFloor(mobj_t *mo)
|
||||||
|
|
||||||
for (rover = sector->ffloors; rover; rover = rover->next)
|
for (rover = sector->ffloors; rover; rover = rover->next)
|
||||||
{
|
{
|
||||||
|
fixed_t topheight, bottomheight;
|
||||||
|
|
||||||
if (!rover->master->frontsector->special)
|
if (!rover->master->frontsector->special)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!(rover->flags & FF_EXISTS))
|
if (!(rover->flags & FF_EXISTS))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
topheight = P_GetSpecialTopZ(mo, sectors + rover->secnum, sector);
|
||||||
|
bottomheight = P_GetSpecialBottomZ(mo, sectors + rover->secnum, sector);
|
||||||
|
|
||||||
// Check the 3D floor's type...
|
// Check the 3D floor's type...
|
||||||
if (((rover->flags & FF_BLOCKPLAYER) && mo->player)
|
if (((rover->flags & FF_BLOCKPLAYER) && mo->player)
|
||||||
|| ((rover->flags & FF_BLOCKOTHERS) && !mo->player))
|
|| ((rover->flags & FF_BLOCKOTHERS) && !mo->player))
|
||||||
|
@ -4349,27 +4364,27 @@ sector_t *P_ThingOnSpecial3DFloor(mobj_t *mo)
|
||||||
if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR)
|
if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR)
|
||||||
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING))
|
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING))
|
||||||
{
|
{
|
||||||
if ((mo->eflags & MFE_VERTICALFLIP) || mo->z != *rover->topheight)
|
if ((mo->eflags & MFE_VERTICALFLIP) || mo->z != topheight)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING)
|
else if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING)
|
||||||
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR))
|
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR))
|
||||||
{
|
{
|
||||||
if (!(mo->eflags & MFE_VERTICALFLIP)
|
if (!(mo->eflags & MFE_VERTICALFLIP)
|
||||||
|| mo->z + mo->height != *rover->bottomheight)
|
|| mo->z + mo->height != bottomheight)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (rover->master->frontsector->flags & SF_FLIPSPECIAL_BOTH)
|
else if (rover->master->frontsector->flags & SF_FLIPSPECIAL_BOTH)
|
||||||
{
|
{
|
||||||
if (!((mo->eflags & MFE_VERTICALFLIP && mo->z + mo->height == *rover->bottomheight)
|
if (!((mo->eflags & MFE_VERTICALFLIP && mo->z + mo->height == bottomheight)
|
||||||
|| (!(mo->eflags & MFE_VERTICALFLIP) && mo->z == *rover->topheight)))
|
|| (!(mo->eflags & MFE_VERTICALFLIP) && mo->z == topheight)))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Water and intangible FOFs
|
// Water and intangible FOFs
|
||||||
if (mo->z > *rover->topheight || (mo->z + mo->height) < *rover->bottomheight)
|
if (mo->z > topheight || (mo->z + mo->height) < bottomheight)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4391,12 +4406,17 @@ static void P_PlayerOnSpecial3DFloor(player_t *player, sector_t *sector)
|
||||||
|
|
||||||
for (rover = sector->ffloors; rover; rover = rover->next)
|
for (rover = sector->ffloors; rover; rover = rover->next)
|
||||||
{
|
{
|
||||||
|
fixed_t topheight, bottomheight;
|
||||||
|
|
||||||
if (!rover->master->frontsector->special)
|
if (!rover->master->frontsector->special)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!(rover->flags & FF_EXISTS))
|
if (!(rover->flags & FF_EXISTS))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
topheight = P_GetSpecialTopZ(player->mo, sectors + rover->secnum, sector);
|
||||||
|
bottomheight = P_GetSpecialBottomZ(player->mo, sectors + rover->secnum, sector);
|
||||||
|
|
||||||
// Check the 3D floor's type...
|
// Check the 3D floor's type...
|
||||||
if (rover->flags & FF_BLOCKPLAYER)
|
if (rover->flags & FF_BLOCKPLAYER)
|
||||||
{
|
{
|
||||||
|
@ -4404,27 +4424,27 @@ static void P_PlayerOnSpecial3DFloor(player_t *player, sector_t *sector)
|
||||||
if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR)
|
if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR)
|
||||||
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING))
|
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING))
|
||||||
{
|
{
|
||||||
if ((player->mo->eflags & MFE_VERTICALFLIP) || player->mo->z != P_GetSpecialTopZ(player->mo, sectors + rover->secnum, sector))
|
if ((player->mo->eflags & MFE_VERTICALFLIP) || player->mo->z != topheight)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING)
|
else if ((rover->master->frontsector->flags & SF_FLIPSPECIAL_CEILING)
|
||||||
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR))
|
&& !(rover->master->frontsector->flags & SF_FLIPSPECIAL_FLOOR))
|
||||||
{
|
{
|
||||||
if (!(player->mo->eflags & MFE_VERTICALFLIP)
|
if (!(player->mo->eflags & MFE_VERTICALFLIP)
|
||||||
|| player->mo->z + player->mo->height != P_GetSpecialBottomZ(player->mo, sectors + rover->secnum, sector))
|
|| player->mo->z + player->mo->height != bottomheight)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (rover->master->frontsector->flags & SF_FLIPSPECIAL_BOTH)
|
else if (rover->master->frontsector->flags & SF_FLIPSPECIAL_BOTH)
|
||||||
{
|
{
|
||||||
if (!((player->mo->eflags & MFE_VERTICALFLIP && player->mo->z + player->mo->height == P_GetSpecialBottomZ(player->mo, sectors + rover->secnum, sector))
|
if (!((player->mo->eflags & MFE_VERTICALFLIP && player->mo->z + player->mo->height == bottomheight)
|
||||||
|| (!(player->mo->eflags & MFE_VERTICALFLIP) && player->mo->z == P_GetSpecialTopZ(player->mo, sectors + rover->secnum, sector))))
|
|| (!(player->mo->eflags & MFE_VERTICALFLIP) && player->mo->z == topheight)))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Water and DEATH FOG!!! heh
|
// Water and DEATH FOG!!! heh
|
||||||
if (player->mo->z > P_GetSpecialTopZ(player->mo, sectors + rover->secnum, sector) || (player->mo->z + player->mo->height) < P_GetSpecialBottomZ(player->mo, sectors + rover->secnum, sector))
|
if (player->mo->z > topheight || (player->mo->z + player->mo->height) < bottomheight)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5276,7 +5296,15 @@ void T_LaserFlash(laserthink_t *flash)
|
||||||
|
|
||||||
sourcesec = ffloor->master->frontsector; // Less to type!
|
sourcesec = ffloor->master->frontsector; // Less to type!
|
||||||
|
|
||||||
|
#ifdef ESLOPE
|
||||||
|
top = (*ffloor->t_slope) ? P_GetZAt(*ffloor->t_slope, sector->soundorg.x, sector->soundorg.y)
|
||||||
|
: *ffloor->topheight;
|
||||||
|
bottom = (*ffloor->b_slope) ? P_GetZAt(*ffloor->b_slope, sector->soundorg.x, sector->soundorg.y)
|
||||||
|
: *ffloor->bottomheight;
|
||||||
|
sector->soundorg.z = (top + bottom)/2;
|
||||||
|
#else
|
||||||
sector->soundorg.z = (*ffloor->topheight + *ffloor->bottomheight)/2;
|
sector->soundorg.z = (*ffloor->topheight + *ffloor->bottomheight)/2;
|
||||||
|
#endif
|
||||||
S_StartSound(§or->soundorg, sfx_laser);
|
S_StartSound(§or->soundorg, sfx_laser);
|
||||||
|
|
||||||
// Seek out objects to DESTROY! MUAHAHHAHAHAA!!!*cough*
|
// Seek out objects to DESTROY! MUAHAHHAHAHAA!!!*cough*
|
||||||
|
@ -6875,6 +6903,11 @@ void T_Disappear(disappear_t *d)
|
||||||
|
|
||||||
if (!(lines[d->sourceline].flags & ML_NOCLIMB))
|
if (!(lines[d->sourceline].flags & ML_NOCLIMB))
|
||||||
{
|
{
|
||||||
|
#ifdef ESLOPE
|
||||||
|
if (*rover->t_slope)
|
||||||
|
sectors[s].soundorg.z = P_GetZAt(*rover->t_slope, sectors[s].soundorg.x, sectors[s].soundorg.y);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
sectors[s].soundorg.z = *rover->topheight;
|
sectors[s].soundorg.z = *rover->topheight;
|
||||||
S_StartSound(§ors[s].soundorg, sfx_appear);
|
S_StartSound(§ors[s].soundorg, sfx_appear);
|
||||||
}
|
}
|
||||||
|
|
|
@ -144,10 +144,8 @@ void XBoxStartup()
|
||||||
myargv = NULL;
|
myargv = NULL;
|
||||||
#else
|
#else
|
||||||
#ifdef FORCESDLMAIN
|
#ifdef FORCESDLMAIN
|
||||||
FUNCNORETURN
|
|
||||||
int SDL_main(int argc, char **argv)
|
int SDL_main(int argc, char **argv)
|
||||||
#else
|
#else
|
||||||
FUNCNORETURN
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
@ -216,12 +214,14 @@ int main(int argc, char **argv)
|
||||||
#if defined (_WIN32) && !defined (_XBOX)
|
#if defined (_WIN32) && !defined (_XBOX)
|
||||||
#ifndef _WIN32_WCE
|
#ifndef _WIN32_WCE
|
||||||
{
|
{
|
||||||
|
#if 0 // just load the DLL
|
||||||
p_IsDebuggerPresent pfnIsDebuggerPresent = (p_IsDebuggerPresent)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsDebuggerPresent");
|
p_IsDebuggerPresent pfnIsDebuggerPresent = (p_IsDebuggerPresent)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsDebuggerPresent");
|
||||||
if ((!pfnIsDebuggerPresent || !pfnIsDebuggerPresent())
|
if ((!pfnIsDebuggerPresent || !pfnIsDebuggerPresent())
|
||||||
#ifdef BUGTRAP
|
#ifdef BUGTRAP
|
||||||
&& !InitBugTrap()
|
&& !InitBugTrap()
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
LoadLibraryA("exchndl.dll");
|
LoadLibraryA("exchndl.dll");
|
||||||
}
|
}
|
||||||
|
@ -245,8 +245,6 @@ int main(int argc, char **argv)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// return to OS
|
// return to OS
|
||||||
#ifndef __GNUC__
|
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -644,13 +644,16 @@ int WINAPI WinMain (HINSTANCE hInstance,
|
||||||
{
|
{
|
||||||
int Result = -1;
|
int Result = -1;
|
||||||
|
|
||||||
|
#if 0
|
||||||
// Win95 and NT <4 don't have this, so link at runtime.
|
// Win95 and NT <4 don't have this, so link at runtime.
|
||||||
p_IsDebuggerPresent pfnIsDebuggerPresent = (p_IsDebuggerPresent)GetProcAddress(GetModuleHandleA("kernel32.dll"),"IsDebuggerPresent");
|
p_IsDebuggerPresent pfnIsDebuggerPresent = (p_IsDebuggerPresent)GetProcAddress(GetModuleHandleA("kernel32.dll"),"IsDebuggerPresent");
|
||||||
|
#endif
|
||||||
|
|
||||||
UNREFERENCED_PARAMETER(hPrevInstance);
|
UNREFERENCED_PARAMETER(hPrevInstance);
|
||||||
UNREFERENCED_PARAMETER(lpCmdLine);
|
UNREFERENCED_PARAMETER(lpCmdLine);
|
||||||
UNREFERENCED_PARAMETER(nCmdShow);
|
UNREFERENCED_PARAMETER(nCmdShow);
|
||||||
|
|
||||||
|
#if 0
|
||||||
#ifdef BUGTRAP
|
#ifdef BUGTRAP
|
||||||
// Try BugTrap first.
|
// Try BugTrap first.
|
||||||
if((!pfnIsDebuggerPresent || !pfnIsDebuggerPresent()) && InitBugTrap())
|
if((!pfnIsDebuggerPresent || !pfnIsDebuggerPresent()) && InitBugTrap())
|
||||||
|
@ -660,6 +663,7 @@ int WINAPI WinMain (HINSTANCE hInstance,
|
||||||
#endif
|
#endif
|
||||||
// Try Dr MinGW's exception handler.
|
// Try Dr MinGW's exception handler.
|
||||||
if (!pfnIsDebuggerPresent || !pfnIsDebuggerPresent())
|
if (!pfnIsDebuggerPresent || !pfnIsDebuggerPresent())
|
||||||
|
#endif
|
||||||
LoadLibraryA("exchndl.dll");
|
LoadLibraryA("exchndl.dll");
|
||||||
|
|
||||||
prevExceptionFilter = SetUnhandledExceptionFilter(RecordExceptionInfo);
|
prevExceptionFilter = SetUnhandledExceptionFilter(RecordExceptionInfo);
|
||||||
|
|
Loading…
Reference in a new issue