Merge remote-tracking branch 'origin/master' into flats-png-macro-fix-please-just-work-already

This commit is contained in:
Jaime Passos 2019-09-19 22:41:45 -03:00
commit 322a0b8c41
5 changed files with 75 additions and 75 deletions

View file

@ -149,7 +149,7 @@ static void HWR_DrawColumnInCache(const column_t *patchcol, UINT8 *block, GLMipm
{ {
RGBA_t rgbatexel; RGBA_t rgbatexel;
rgbatexel.rgba = *(UINT32 *)dest; rgbatexel.rgba = *(UINT32 *)dest;
colortemp = ASTBlendPixel(rgbatexel, colortemp, originPatch->style, originPatch->alpha); colortemp.rgba = ASTBlendPixel(rgbatexel, colortemp, originPatch->style, originPatch->alpha);
} }
memcpy(dest, &colortemp, sizeof(RGBA_t)-sizeof(UINT8)); memcpy(dest, &colortemp, sizeof(RGBA_t)-sizeof(UINT8));
break; break;
@ -159,7 +159,7 @@ static void HWR_DrawColumnInCache(const column_t *patchcol, UINT8 *block, GLMipm
{ {
RGBA_t rgbatexel; RGBA_t rgbatexel;
rgbatexel.rgba = *(UINT32 *)dest; rgbatexel.rgba = *(UINT32 *)dest;
colortemp = ASTBlendPixel(rgbatexel, colortemp, originPatch->style, originPatch->alpha); colortemp.rgba = ASTBlendPixel(rgbatexel, colortemp, originPatch->style, originPatch->alpha);
} }
memcpy(dest, &colortemp, sizeof(RGBA_t)); memcpy(dest, &colortemp, sizeof(RGBA_t));
break; break;
@ -263,7 +263,7 @@ static void HWR_DrawFlippedColumnInCache(const column_t *patchcol, UINT8 *block,
{ {
RGBA_t rgbatexel; RGBA_t rgbatexel;
rgbatexel.rgba = *(UINT32 *)dest; rgbatexel.rgba = *(UINT32 *)dest;
colortemp = ASTBlendPixel(rgbatexel, colortemp, originPatch->style, originPatch->alpha); colortemp.rgba = ASTBlendPixel(rgbatexel, colortemp, originPatch->style, originPatch->alpha);
} }
memcpy(dest, &colortemp, sizeof(RGBA_t)-sizeof(UINT8)); memcpy(dest, &colortemp, sizeof(RGBA_t)-sizeof(UINT8));
break; break;
@ -273,7 +273,7 @@ static void HWR_DrawFlippedColumnInCache(const column_t *patchcol, UINT8 *block,
{ {
RGBA_t rgbatexel; RGBA_t rgbatexel;
rgbatexel.rgba = *(UINT32 *)dest; rgbatexel.rgba = *(UINT32 *)dest;
colortemp = ASTBlendPixel(rgbatexel, colortemp, originPatch->style, originPatch->alpha); colortemp.rgba = ASTBlendPixel(rgbatexel, colortemp, originPatch->style, originPatch->alpha);
} }
memcpy(dest, &colortemp, sizeof(RGBA_t)); memcpy(dest, &colortemp, sizeof(RGBA_t));
break; break;

View file

@ -11599,7 +11599,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
20*FRACUNIT, // radius 20*FRACUNIT, // radius
128*FRACUNIT, // height 128*FRACUNIT, // height
0, // display offset 0, // display offset
100, // mass DMG_SPIKE, // mass
0, // damage 0, // damage
sfx_None, // activesound sfx_None, // activesound
MF_SOLID|MF_SCENERY|MF_PAIN, // flags MF_SOLID|MF_SCENERY|MF_PAIN, // flags
@ -11626,7 +11626,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
24*FRACUNIT, // radius 24*FRACUNIT, // radius
224*FRACUNIT, // height 224*FRACUNIT, // height
0, // display offset 0, // display offset
100, // mass DMG_SPIKE, // mass
0, // damage 0, // damage
sfx_None, // activesound sfx_None, // activesound
MF_SOLID|MF_SCENERY|MF_PAIN, // flags MF_SOLID|MF_SCENERY|MF_PAIN, // flags
@ -11653,7 +11653,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
24*FRACUNIT, // radius 24*FRACUNIT, // radius
256*FRACUNIT, // height 256*FRACUNIT, // height
0, // display offset 0, // display offset
100, // mass DMG_SPIKE, // mass
0, // damage 0, // damage
sfx_None, // activesound sfx_None, // activesound
MF_SOLID|MF_SCENERY|MF_PAIN, // flags MF_SOLID|MF_SCENERY|MF_PAIN, // flags
@ -11680,7 +11680,61 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
48*FRACUNIT, // radius 48*FRACUNIT, // radius
96*FRACUNIT, // height 96*FRACUNIT, // height
0, // display offset 0, // display offset
100, // mass DMG_SPIKE, // mass
0, // damage
sfx_None, // activesound
MF_SOLID|MF_SCENERY|MF_PAIN, // flags
S_NULL // raisestate
},
{ // MT_CACTI10
1230, // doomednum
S_CACTI10, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
0, // speed
16*FRACUNIT, // radius
64*FRACUNIT, // height
0, // display offset
DMG_SPIKE, // mass
0, // damage
sfx_None, // activesound
MF_SOLID|MF_SCENERY|MF_PAIN, // flags
S_NULL // raisestate
},
{ // MT_CACTI11
1231, // doomednum
S_CACTI11, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
DMG_SPIKE, // mass
0, // damage 0, // damage
sfx_None, // activesound sfx_None, // activesound
MF_SOLID|MF_SCENERY|MF_PAIN, // flags MF_SOLID|MF_SCENERY|MF_PAIN, // flags
@ -12308,60 +12362,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate S_NULL // raisestate
}, },
{ // MT_CACTI10
1230, // doomednum
S_CACTI10, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
0, // speed
16*FRACUNIT, // radius
64*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SOLID|MF_SCENERY|MF_PAIN, // flags
S_NULL // raisestate
},
{ // MT_CACTI11
1231, // doomednum
S_CACTI11, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SOLID|MF_SCENERY|MF_PAIN, // flags
S_NULL // raisestate
},
{ // MT_FLAMEJET { // MT_FLAMEJET
1300, // doomednum 1300, // doomednum
S_FLAMEJETSTND, // spawnstate S_FLAMEJETSTND, // spawnstate

View file

@ -1019,7 +1019,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
return true; // underneath return true; // underneath
if (tmthing->flags & MF_SHOOTABLE && thing->health > 0) if (tmthing->flags & MF_SHOOTABLE && thing->health > 0)
{ {
UINT8 damagetype = (thing->info->mass & 0xFF); UINT32 damagetype = (thing->info->mass & 0xFF);
if (!damagetype && thing->flags & MF_FIRE) // BURN! if (!damagetype && thing->flags & MF_FIRE) // BURN!
damagetype = DMG_FIRE; damagetype = DMG_FIRE;
if (P_DamageMobj(tmthing, thing, thing, 1, damagetype) && (damagetype = (thing->info->mass>>8))) if (P_DamageMobj(tmthing, thing, thing, 1, damagetype) && (damagetype = (thing->info->mass>>8)))
@ -1036,7 +1036,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
return true; // underneath return true; // underneath
if (thing->flags & MF_SHOOTABLE && tmthing->health > 0) if (thing->flags & MF_SHOOTABLE && tmthing->health > 0)
{ {
UINT8 damagetype = (tmthing->info->mass & 0xFF); UINT32 damagetype = (tmthing->info->mass & 0xFF);
if (!damagetype && tmthing->flags & MF_FIRE) // BURN! if (!damagetype && tmthing->flags & MF_FIRE) // BURN!
damagetype = DMG_FIRE; damagetype = DMG_FIRE;
if (P_DamageMobj(thing, tmthing, tmthing, 1, damagetype) && (damagetype = (tmthing->info->mass>>8))) if (P_DamageMobj(thing, tmthing, tmthing, 1, damagetype) && (damagetype = (tmthing->info->mass>>8)))

View file

@ -242,7 +242,7 @@ static inline void R_DrawFlippedColumnInCache(column_t *patch, UINT8 *cache, tex
} }
} }
RGBA_t ASTBlendPixel(RGBA_t background, RGBA_t foreground, int style, UINT8 alpha) UINT32 ASTBlendPixel(RGBA_t background, RGBA_t foreground, int style, UINT8 alpha)
{ {
RGBA_t output; RGBA_t output;
if (style == AST_TRANSLUCENT) if (style == AST_TRANSLUCENT)
@ -299,13 +299,13 @@ RGBA_t ASTBlendPixel(RGBA_t background, RGBA_t foreground, int style, UINT8 alph
} }
// just copy the pixel // just copy the pixel
else if (style == AST_COPY) else if (style == AST_COPY)
return background; output.rgba = foreground.rgba;
output.s.alpha = 0xFF;
return output.rgba;
} }
#undef clamp #undef clamp
// unimplemented blend modes return the background pixel return 0;
output = background;
output.s.alpha = 0xFF;
return output;
} }
UINT8 ASTBlendPixel_8bpp(UINT8 background, UINT8 foreground, int style, UINT8 alpha) UINT8 ASTBlendPixel_8bpp(UINT8 background, UINT8 foreground, int style, UINT8 alpha)
@ -322,7 +322,7 @@ UINT8 ASTBlendPixel_8bpp(UINT8 background, UINT8 foreground, int style, UINT8 al
} }
// just copy the pixel // just copy the pixel
else if (style == AST_COPY) else if (style == AST_COPY)
return background; return foreground;
// use ASTBlendPixel for all other blend modes // use ASTBlendPixel for all other blend modes
// and find the nearest colour in the palette // and find the nearest colour in the palette
else if (style != AST_TRANSLUCENT) else if (style != AST_TRANSLUCENT)
@ -330,7 +330,7 @@ UINT8 ASTBlendPixel_8bpp(UINT8 background, UINT8 foreground, int style, UINT8 al
RGBA_t texel; RGBA_t texel;
RGBA_t bg = V_GetColor(background); RGBA_t bg = V_GetColor(background);
RGBA_t fg = V_GetColor(foreground); RGBA_t fg = V_GetColor(foreground);
texel = ASTBlendPixel(bg, fg, style, alpha); texel.rgba = ASTBlendPixel(bg, fg, style, alpha);
return NearestColor(texel.s.red, texel.s.green, texel.s.blue); return NearestColor(texel.s.red, texel.s.green, texel.s.blue);
} }
// fallback if all above fails, somehow // fallback if all above fails, somehow

View file

@ -25,7 +25,7 @@
// Possible alpha types for a patch. // Possible alpha types for a patch.
enum patchalphastyle {AST_COPY, AST_TRANSLUCENT, AST_ADD, AST_SUBTRACT, AST_REVERSESUBTRACT, AST_MODULATE, AST_OVERLAY}; enum patchalphastyle {AST_COPY, AST_TRANSLUCENT, AST_ADD, AST_SUBTRACT, AST_REVERSESUBTRACT, AST_MODULATE, AST_OVERLAY};
RGBA_t ASTBlendPixel(RGBA_t background, RGBA_t foreground, int style, UINT8 alpha); UINT32 ASTBlendPixel(RGBA_t background, RGBA_t foreground, int style, UINT8 alpha);
UINT8 ASTBlendPixel_8bpp(UINT8 background, UINT8 foreground, int style, UINT8 alpha); UINT8 ASTBlendPixel_8bpp(UINT8 background, UINT8 foreground, int style, UINT8 alpha);
UINT8 NearestColor(UINT8 r, UINT8 g, UINT8 b); UINT8 NearestColor(UINT8 r, UINT8 g, UINT8 b);