- added: DECORATE now allows definitions of dynamic light attachments per state.

These are fully inheritable by subclasses unlike lights defined in GLDEFS.
  The light itself still needs to defined the old way in GLDEFS though. It's only the 
  attachment that can now be done in DECORATE.

Update to ZDoom r1935:

- Removed the Actor uservar array and replaced it with user-defined variables.
  A_SetUserVar/SetUserVariable/GetUserVariable now take a variable name
  instead of an array index. A_SetUserArray/SetUserArray/GetUserArray
  have been added to access elements in user-defined arrays.
- Rewrote wide sky texture scaling again. This time, it should work for any
  size textures at any scale. I also tried doing sky scrolling on the sky
  cylinder, but that didn't look so good, so I left it in screen space.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@577 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
Christoph Oelckers 2009-10-25 15:31:09 +00:00
parent ead4444982
commit 0a8ac6a153
46 changed files with 2854 additions and 2114 deletions

View file

@ -785,47 +785,6 @@ static void R_Shutdown ()
R_DeinitData();
}
//==========================================================================
//
// I am keeping both the original nodes from the WAD and the ones
// created for the GL renderer. THe original set is only being used
// to get the sector for in-game positioning of actors but not for rendering.
//
// Unfortunately this is necessary because ZDBSP is much more sensitive
// to sloppy mapping practices that produce overlapping sectors.
// The crane in P:AR E1M3 is a good example that would be broken If
// I didn't do this.
//
//==========================================================================
//==========================================================================
//
// P_PointInSubsector
//
//==========================================================================
subsector_t *P_PointInSubsector (fixed_t x, fixed_t y)
{
node_t *node;
int side;
// single subsector is a special case
if (numgamenodes == 0)
return gamesubsectors;
node = gamenodes + numgamenodes - 1;
do
{
side = R_PointOnSide (x, y, node);
node = (node_t *)node->children[side];
}
while (!((size_t)node & 1));
return (subsector_t *)((BYTE *)node - 1);
}
//==========================================================================
//
// R_PointInSubsector
@ -901,11 +860,11 @@ void R_InterpolateView (player_t *player, fixed_t frac, InterpolationViewer *ivi
// Avoid overflowing viewpitch (can happen when a netgame is stalled)
if (viewpitch + delta <= viewpitch)
{
viewpitch = +ANGLE_1*MAX_DN_ANGLE;
viewpitch = screen->GetMaxViewPitch(true);
}
else
{
viewpitch = MIN(viewpitch + delta, +ANGLE_1*MAX_DN_ANGLE);
viewpitch = MIN(viewpitch + delta, screen->GetMaxViewPitch(true));
}
}
else if (delta < 0)
@ -913,11 +872,11 @@ void R_InterpolateView (player_t *player, fixed_t frac, InterpolationViewer *ivi
// Avoid overflowing viewpitch (can happen when a netgame is stalled)
if (viewpitch + delta >= viewpitch)
{
viewpitch = -ANGLE_1*MAX_UP_ANGLE;
viewpitch = screen->GetMaxViewPitch(false);
}
else
{
viewpitch = MAX(viewpitch + delta, -ANGLE_1*MAX_UP_ANGLE);
viewpitch = MAX(viewpitch + delta, screen->GetMaxViewPitch(false));
}
}
}