Merge branch 'master' into lua-additions

This commit is contained in:
Monster Iestyn 2016-05-27 16:53:10 +01:00
commit 839db0122c
8 changed files with 43 additions and 31 deletions

View file

@ -42,4 +42,4 @@ before_install:
- 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
script: make script: make -k

View file

@ -51,7 +51,7 @@ before_build:
build_script: build_script:
- cmd: mingw32-make.exe %SRB2_MFLAGS% %CONFIGURATION%=1 clean - cmd: mingw32-make.exe %SRB2_MFLAGS% %CONFIGURATION%=1 clean
- cmd: mingw32-make.exe %SRB2_MFLAGS% %CONFIGURATION%=1 ERRORMODE=1 - cmd: mingw32-make.exe %SRB2_MFLAGS% %CONFIGURATION%=1 ERRORMODE=1 -k
after_build: after_build:
- ccache -s - ccache -s

View file

@ -372,7 +372,7 @@ else
# build a normal optimised version # build a normal optimised version
WINDRESFLAGS = -DNDEBUG WINDRESFLAGS = -DNDEBUG
#CFLAGS+=-O2 CFLAGS+=-O3
endif endif
CFLAGS+=-g $(OPTS) $(M5) $(WINDRESFLAGS) CFLAGS+=-g $(OPTS) $(M5) $(WINDRESFLAGS)

View file

@ -173,6 +173,9 @@ endif
ifdef GCC43 ifdef GCC43
#WFLAGS+=-Wno-error=clobbered #WFLAGS+=-Wno-error=clobbered
endif endif
ifdef GCC46
WFLAGS+=-Wno-error=suggest-attribute=noreturn
endif
WFLAGS+=$(OLDWFLAGS) WFLAGS+=$(OLDWFLAGS)

View file

@ -3280,16 +3280,18 @@ static void HWR_AddPolyObjectPlanes(void)
if (po_ptrs[i]->translucency > 0) if (po_ptrs[i]->translucency > 0)
{ {
FSurfaceInfo Surf; FSurfaceInfo Surf;
FBITFIELD blendmode = HWR_TranstableToAlpha(po_ptrs[i]->translucency, &Surf); FBITFIELD blendmode;
memset(&Surf, 0x00, sizeof(Surf));
blendmode = HWR_TranstableToAlpha(po_ptrs[i]->translucency, &Surf);
HWR_AddTransparentPolyobjectFloor(levelflats[polyobjsector->ceilingpic].lumpnum, po_ptrs[i], polyobjsector->ceilingheight, HWR_AddTransparentPolyobjectFloor(levelflats[polyobjsector->ceilingpic].lumpnum, po_ptrs[i], polyobjsector->ceilingheight,
polyobjsector->lightlevel, Surf.FlatColor.s.alpha, polyobjsector, blendmode, NULL); polyobjsector->lightlevel, Surf.FlatColor.s.alpha, polyobjsector, blendmode, NULL);
} }
else else
{ {
HWR_GetFlat(levelflats[polyobjsector->ceilingpic].lumpnum); HWR_GetFlat(levelflats[polyobjsector->ceilingpic].lumpnum);
HWR_RenderPolyObjectPlane(po_ptrs[i], polyobjsector->ceilingheight, PF_Occlude, HWR_RenderPolyObjectPlane(po_ptrs[i], polyobjsector->ceilingheight, PF_Occlude,
polyobjsector->lightlevel, levelflats[polyobjsector->floorpic].lumpnum, polyobjsector->lightlevel, levelflats[polyobjsector->floorpic].lumpnum,
polyobjsector, 255, NULL); polyobjsector, 255, NULL);
} }
} }
} }

View file

@ -1377,10 +1377,7 @@ void HWR_DrawMD2(gr_vissprite_t *spr)
// SRB2CBTODO: MD2 scaling support // SRB2CBTODO: MD2 scaling support
finalscale *= FIXED_TO_FLOAT(spr->mobj->scale); finalscale *= FIXED_TO_FLOAT(spr->mobj->scale);
if (postimgtype == postimg_flip) p.flip = atransform.flip;
p.flip = true;
else
p.flip = false;
HWD.pfnDrawMD2i(buff, curr, durs, tics, next, &p, finalscale, flip, color); HWD.pfnDrawMD2i(buff, curr, durs, tics, next, &p, finalscale, flip, color);
} }

View file

@ -108,7 +108,7 @@ static inline void P_UnArchivePlayer(void)
// //
// P_NetArchivePlayers // P_NetArchivePlayers
// //
static inline void P_NetArchivePlayers(void) static void P_NetArchivePlayers(void)
{ {
INT32 i, j; INT32 i, j;
UINT16 flags; UINT16 flags;
@ -280,7 +280,7 @@ static inline void P_NetArchivePlayers(void)
// //
// P_NetUnArchivePlayers // P_NetUnArchivePlayers
// //
static inline void P_NetUnArchivePlayers(void) static void P_NetUnArchivePlayers(void)
{ {
INT32 i, j; INT32 i, j;
UINT16 flags; UINT16 flags;

View file

@ -8150,6 +8150,8 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall
{ {
fixed_t myfloorz, myceilingz; fixed_t myfloorz, myceilingz;
fixed_t midz = thiscam->z + (thiscam->z - mo->z)/2; fixed_t midz = thiscam->z + (thiscam->z - mo->z)/2;
fixed_t midx = ((mo->x>>FRACBITS) + (thiscam->x>>FRACBITS))<<(FRACBITS-1);
fixed_t midy = ((mo->y>>FRACBITS) + (thiscam->y>>FRACBITS))<<(FRACBITS-1);
// Cameras use the heightsec's heights rather then the actual sector heights. // Cameras use the heightsec's heights rather then the actual sector heights.
// If you can see through it, why not move the camera through it too? // If you can see through it, why not move the camera through it too?
@ -8165,8 +8167,8 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall
} }
else else
{ {
myfloorz = newsubsec->sector->floorheight; myfloorz = P_CameraGetFloorZ(thiscam, newsubsec->sector, midx, midy, NULL);
myceilingz = newsubsec->sector->ceilingheight; myceilingz = P_CameraGetCeilingZ(thiscam, newsubsec->sector, midx, midy, NULL);
} }
// Check list of fake floors and see if floorz/ceilingz need to be altered. // Check list of fake floors and see if floorz/ceilingz need to be altered.
@ -8178,17 +8180,21 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall
for (rover = newsubsec->sector->ffloors; rover; rover = rover->next) for (rover = newsubsec->sector->ffloors; rover; rover = rover->next)
{ {
fixed_t topheight, bottomheight;
if (!(rover->flags & FF_BLOCKOTHERS) || !(rover->flags & FF_EXISTS) || !(rover->flags & FF_RENDERALL) || GETSECSPECIAL(rover->master->frontsector->special, 4) == 12) if (!(rover->flags & FF_BLOCKOTHERS) || !(rover->flags & FF_EXISTS) || !(rover->flags & FF_RENDERALL) || GETSECSPECIAL(rover->master->frontsector->special, 4) == 12)
continue; continue;
delta1 = midz - (*rover->bottomheight topheight = P_CameraGetFOFTopZ(thiscam, newsubsec->sector, rover, midx, midy, NULL);
+ ((*rover->topheight - *rover->bottomheight)/2)); bottomheight = P_CameraGetFOFBottomZ(thiscam, newsubsec->sector, rover, midx, midy, NULL);
delta2 = thingtop - (*rover->bottomheight
+ ((*rover->topheight - *rover->bottomheight)/2)); delta1 = midz - (bottomheight
if (*rover->topheight > myfloorz && abs(delta1) < abs(delta2)) + ((topheight - bottomheight)/2));
myfloorz = *rover->topheight; delta2 = thingtop - (bottomheight
if (*rover->bottomheight < myceilingz && abs(delta1) >= abs(delta2)) + ((topheight - bottomheight)/2));
myceilingz = *rover->bottomheight; if (topheight > myfloorz && abs(delta1) < abs(delta2))
myfloorz = topheight;
if (bottomheight < myceilingz && abs(delta1) >= abs(delta2))
myceilingz = bottomheight;
} }
} }
@ -8302,18 +8308,22 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall
for (rover = newsubsec->sector->ffloors; rover; rover = rover->next) for (rover = newsubsec->sector->ffloors; rover; rover = rover->next)
{ {
fixed_t topheight, bottomheight;
if ((rover->flags & FF_BLOCKOTHERS) && (rover->flags & FF_RENDERALL) && (rover->flags & FF_EXISTS) && GETSECSPECIAL(rover->master->frontsector->special, 4) != 12) if ((rover->flags & FF_BLOCKOTHERS) && (rover->flags & FF_RENDERALL) && (rover->flags & FF_EXISTS) && GETSECSPECIAL(rover->master->frontsector->special, 4) != 12)
{ {
if (*rover->bottomheight - thiscam->height < z topheight = P_CameraGetFOFTopZ(thiscam, newsubsec->sector, rover, midx, midy, NULL);
&& midz < *rover->bottomheight) bottomheight = P_CameraGetFOFBottomZ(thiscam, newsubsec->sector, rover, midx, midy, NULL);
z = *rover->bottomheight - thiscam->height-FixedMul(11*FRACUNIT, mo->scale);
else if (*rover->topheight + thiscam->height > z if (bottomheight - thiscam->height < z
&& midz > *rover->topheight) && midz < bottomheight)
z = *rover->topheight; z = bottomheight - thiscam->height-FixedMul(11*FRACUNIT, mo->scale);
if ((mo->z >= *rover->topheight && midz < *rover->bottomheight) else if (topheight + thiscam->height > z
|| ((mo->z < *rover->bottomheight && mo->z+mo->height < *rover->topheight) && midz >= *rover->topheight)) && midz > topheight)
z = topheight;
if ((mo->z >= topheight && midz < bottomheight)
|| ((mo->z < bottomheight && mo->z+mo->height < topheight) && midz >= topheight))
{ {
// Can't see // Can't see
if (!resetcalled) if (!resetcalled)