mirror of
https://github.com/ZDoom/gzdoom-last-svn.git
synced 2025-06-02 18:21:02 +00:00
Update to ZDoom r1327:
- OggMod improperly decodes the right channel of stereo samples when sending them to OggEnc, so I have no choice but to convert them to mono by chopping off the right channel and only using the left channel information. - Fixed: OggMod passes the raw sample data to OggEnc for stereo samples, so the resultant Vorbis stream is not actually stereo but mono with the right channel after the left. The two need to be interleaved just like uncompressed samples are. - Removed the pattern length limit in the XM reader. - Decal changes as per Xaser's suggestions: Smaller decal for PhoenixFX2, CrossbowFX2 and MaceFX4 were missing decals, and HornRodFX2 gets a whole new decal. - Fixed: bfgscrc2.png had some holes in the middle that did not look so good. (From previously being handled through WinTex, maybe?) - Fixed: Thing_ProjectileIntercept broke slightly when converted to the new vector math routines (almost two years ago!) because the original code multiplied down columns of the rotation matrix, but the new code multiplies across rows of the matrix instead. This is remedied by flipping the matrix across the x=y axis by reversing the sign of the sine value passed to the matrix constructor. - Fixed: Autoloading a game (e.g. respawning after dying in single player) during demo playback prematurely ended demo control of the player. - Fixed: Loading a multiplayer save with only one player crashed. - Changed the co-op intermission screen to draw the stats with the small font. - Added Karate Chris's patch to optionally specify an angle offset for summoning. - Added Karate Chris's fix for Serpent Staff vampirism on teammates. - Locks and teleporters now take precedence over one-sidedness for automap coloring. - Increased maximum number of per-pattern rows for the XM loader from 256 to 1024 to deal with a module that otherwise would not load. - Removed the artificial restriction on not supporting Vorbis-compressed samples in XMs if they are stereo, since it turns out that OggMod does support them. - Added a SECF_NORESPAWN flag for sectors that prevents players from being respawned in such a sector. As a workaround for current map formats a new actor (DoomEdNum 9041) was added that can set the extended sector flags without the use of ACS and sector tags. The new flag can also be set with Sector_ChangeFlags. - Fixed: Players ignored MF2_TELESTOMP and always telefragged what was in the way. - Fixed: Actors with MF5_NOINTERACTION were not affected by the time freezer. git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@273 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
parent
55c4dfc78a
commit
d3fa20416f
27 changed files with 692 additions and 455 deletions
116
src/am_map.cpp
116
src/am_map.cpp
|
@ -1377,77 +1377,75 @@ void AM_drawWalls (bool allmap)
|
|||
// map secret sectors like Boom
|
||||
AM_drawMline(&l, SecretSectorColor);
|
||||
}
|
||||
else if (!lines[i].backsector)
|
||||
{
|
||||
AM_drawMline(&l, WallColor);
|
||||
else if (lines[i].flags & ML_SECRET)
|
||||
{ // secret door
|
||||
if (am_cheat != 0 && lines[i].backsector != NULL)
|
||||
AM_drawMline(&l, SecretWallColor);
|
||||
else
|
||||
AM_drawMline(&l, WallColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (lines[i].flags & ML_SECRET)
|
||||
{ // secret door
|
||||
if (am_cheat != 0)
|
||||
AM_drawMline(&l, SecretWallColor);
|
||||
else
|
||||
AM_drawMline(&l, WallColor);
|
||||
}
|
||||
else if ((lines[i].special == Teleport ||
|
||||
lines[i].special == Teleport_NoFog ||
|
||||
lines[i].special == Teleport_ZombieChanger ||
|
||||
lines[i].special == Teleport_Line) &&
|
||||
(lines[i].activation & SPAC_PlayerActivate) &&
|
||||
else if ((lines[i].special == Teleport ||
|
||||
lines[i].special == Teleport_NoFog ||
|
||||
lines[i].special == Teleport_ZombieChanger ||
|
||||
lines[i].special == Teleport_Line) &&
|
||||
(lines[i].activation & SPAC_PlayerActivate) &&
|
||||
am_colorset == 0)
|
||||
{ // intra-level teleporters
|
||||
AM_drawMline(&l, IntraTeleportColor);
|
||||
}
|
||||
else if ((lines[i].special == Teleport_NewMap ||
|
||||
lines[i].special == Teleport_EndGame ||
|
||||
lines[i].special == Exit_Normal ||
|
||||
lines[i].special == Exit_Secret) &&
|
||||
am_colorset == 0)
|
||||
{ // intra-level teleporters
|
||||
AM_drawMline(&l, IntraTeleportColor);
|
||||
}
|
||||
else if ((lines[i].special == Teleport_NewMap ||
|
||||
lines[i].special == Teleport_EndGame ||
|
||||
lines[i].special == Exit_Normal ||
|
||||
lines[i].special == Exit_Secret) &&
|
||||
am_colorset == 0)
|
||||
{ // inter-level/game-ending teleporters
|
||||
AM_drawMline(&l, InterTeleportColor);
|
||||
}
|
||||
else if (lines[i].special == Door_LockedRaise ||
|
||||
lines[i].special == ACS_LockedExecute ||
|
||||
lines[i].special == ACS_LockedExecuteDoor ||
|
||||
(lines[i].special == Generic_Door && lines[i].args[4]!=0))
|
||||
{ // inter-level/game-ending teleporters
|
||||
AM_drawMline(&l, InterTeleportColor);
|
||||
}
|
||||
else if (lines[i].special == Door_LockedRaise ||
|
||||
lines[i].special == ACS_LockedExecute ||
|
||||
lines[i].special == ACS_LockedExecuteDoor ||
|
||||
(lines[i].special == Generic_Door && lines[i].args[4] !=0 ))
|
||||
{
|
||||
if (am_colorset == 0)
|
||||
{
|
||||
if (am_colorset == 0)
|
||||
{
|
||||
int P_GetMapColorForLock(int lock);
|
||||
int lock;
|
||||
int P_GetMapColorForLock(int lock);
|
||||
int lock;
|
||||
|
||||
if (lines[i].special==Door_LockedRaise) lock=lines[i].args[3];
|
||||
else lock=lines[i].args[4];
|
||||
|
||||
if (lines[i].special==Door_LockedRaise) lock=lines[i].args[3];
|
||||
else lock=lines[i].args[4];
|
||||
int color = P_GetMapColorForLock(lock);
|
||||
|
||||
int color = P_GetMapColorForLock(lock);
|
||||
AMColor c;
|
||||
|
||||
AMColor c;
|
||||
if (color >= 0) c.FromRGB(RPART(color), GPART(color), BPART(color));
|
||||
else c = LockedColor;
|
||||
|
||||
if (color >= 0) c.FromRGB(RPART(color), GPART(color), BPART(color));
|
||||
else c = LockedColor;
|
||||
|
||||
AM_drawMline (&l, c);
|
||||
}
|
||||
else
|
||||
AM_drawMline (&l, LockedColor); // locked special
|
||||
AM_drawMline (&l, c);
|
||||
}
|
||||
else if (lines[i].backsector->floorplane
|
||||
!= lines[i].frontsector->floorplane)
|
||||
else
|
||||
{
|
||||
AM_drawMline(&l, FDWallColor); // floor level change
|
||||
}
|
||||
else if (lines[i].backsector->ceilingplane
|
||||
!= lines[i].frontsector->ceilingplane)
|
||||
{
|
||||
AM_drawMline(&l, CDWallColor); // ceiling level change
|
||||
}
|
||||
else if (am_cheat != 0)
|
||||
{
|
||||
AM_drawMline(&l, TSWallColor);
|
||||
AM_drawMline (&l, LockedColor); // locked special
|
||||
}
|
||||
}
|
||||
else if (lines[i].backsector == NULL)
|
||||
{
|
||||
AM_drawMline(&l, WallColor); // one-sided wall
|
||||
}
|
||||
else if (lines[i].backsector->floorplane
|
||||
!= lines[i].frontsector->floorplane)
|
||||
{
|
||||
AM_drawMline(&l, FDWallColor); // floor level change
|
||||
}
|
||||
else if (lines[i].backsector->ceilingplane
|
||||
!= lines[i].frontsector->ceilingplane)
|
||||
{
|
||||
AM_drawMline(&l, CDWallColor); // ceiling level change
|
||||
}
|
||||
else if (am_cheat != 0)
|
||||
{
|
||||
AM_drawMline(&l, TSWallColor);
|
||||
}
|
||||
}
|
||||
else if (allmap)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue