- SpriteSetup and related functions.

This commit is contained in:
Christoph Oelckers 2021-12-24 23:00:33 +01:00
parent 0c48b4b2c2
commit 843239d085
3 changed files with 332 additions and 343 deletions

View file

@ -48,14 +48,14 @@ void SectorLightShade(DSWActor* actor, short intensity)
{
if (!TEST_BOOL6(sp))
sp->sector()->floorpal = sp->pal;
sp->sector()->floorshade = LIGHT_FloorShade(sp) + intensity; // floor change
sp->sector()->floorshade = LIGHT_FloorShade(actor) + intensity; // floor change
}
if (!TEST_BOOL3(sp))
{
if (!TEST_BOOL6(sp))
sp->sector()->ceilingpal = sp->pal;
sp->sector()->ceilingshade = LIGHT_CeilingShade(sp) + intensity; // ceiling change
sp->sector()->ceilingshade = LIGHT_CeilingShade(actor) + intensity; // ceiling change
}
// change wall
@ -285,10 +285,10 @@ void DoLighting(void)
case LIGHT_FLICKER:
LIGHT_Tics(sp) += synctics;
while (LIGHT_Tics(sp) >= LIGHT_MaxTics(sp))
LIGHT_Tics(itActor) += synctics;
while (LIGHT_Tics(itActor) >= LIGHT_MaxTics(sp))
{
LIGHT_Tics(sp) -= LIGHT_MaxTics(sp);
LIGHT_Tics(itActor) -= LIGHT_MaxTics(sp);
if ((RANDOM_P2(128 << 8) >> 8) > 64)
{
@ -312,11 +312,11 @@ void DoLighting(void)
case LIGHT_FADE:
LIGHT_Tics(sp) += synctics;
LIGHT_Tics(itActor) += synctics;
while (LIGHT_Tics(sp) >= LIGHT_MaxTics(sp))
while (LIGHT_Tics(itActor) >= LIGHT_MaxTics(sp))
{
LIGHT_Tics(sp) -= LIGHT_MaxTics(sp);
LIGHT_Tics(itActor) -= LIGHT_MaxTics(sp);
if (LIGHT_Dir(sp) == 1)
{
@ -339,11 +339,11 @@ void DoLighting(void)
case LIGHT_FADE_TO_ON_OFF:
LIGHT_Tics(sp) += synctics;
LIGHT_Tics(itActor) += synctics;
while (LIGHT_Tics(sp) >= LIGHT_MaxTics(sp))
while (LIGHT_Tics(itActor) >= LIGHT_MaxTics(sp))
{
LIGHT_Tics(sp) -= LIGHT_MaxTics(sp);
LIGHT_Tics(itActor) -= LIGHT_MaxTics(sp);
if (LIGHT_Dir(sp) == 1)
{
@ -376,11 +376,11 @@ void DoLighting(void)
case LIGHT_FLICKER_ON:
LIGHT_Tics(sp) += synctics;
LIGHT_Tics(itActor) += synctics;
while (LIGHT_Tics(sp) >= LIGHT_MaxTics(sp))
while (LIGHT_Tics(itActor) >= LIGHT_MaxTics(sp))
{
LIGHT_Tics(sp) -= LIGHT_MaxTics(sp);
LIGHT_Tics(itActor) -= LIGHT_MaxTics(sp);
if ((RANDOM_P2(128 << 8) >> 8) > 64)
{

View file

@ -45,10 +45,9 @@ inline int8_t LIGHT_MaxDark(spritetype* sp) { return int8_t(SP_TAG6(sp)); }
#define LIGHT_Dir(sp) (!!(TEST((sp)->extra, SPRX_BOOL10)))
#define LIGHT_DirChange(sp) (FLIP((sp)->extra, SPRX_BOOL10))
#define LIGHT_Shade(sp) ((sp)->shade)
#define LIGHT_FloorShade(sp) ((sp)->xoffset)
#define LIGHT_CeilingShade(sp) ((sp)->yoffset)
#define LIGHT_Tics(sp) ((sp)->pos.Z)
int8_t& LIGHT_FloorShade(DSWActor* a) { return a->spr.xoffset; }
int8_t& LIGHT_CeilingShade(DSWActor* a) { return a->spr.yoffset; }
int& LIGHT_Tics(DSWActor* a) { return a->spr.pos.Z; }
inline int LIGHT_DiffuseNum(DSWActor* sp) { return SP_TAG3(sp); }
#define LIGHT_DiffuseMult(sp) (SP_TAG4((sp)))

File diff suppressed because it is too large Load diff