- Added a new MapMarker actor. Instead of appearing in the 3D view, it appears
on the automap instead. If its first argument is zero, the map marker itself appears on the automap, otherwise it is drawn on top of any actor with a TID matching that argument. If the second argument is one, then the map marker will only be appear if the player has previously seen the sector it is one. You can use Thing_Activate and Thing_Deactivate on markers to turn them on and off. And if you subclass MapMarker with DECORATE, you can easily make your own custom markers. - Fixed: Map markers could not be drawn partially off the map. They were drawn either fully or not at all. - Fixed: Map markers appeared in the wrong place on a rotated overlay map if screenblocks < 10. SVN r356 (trunk)
This commit is contained in:
parent
35ca16ba4f
commit
ef1a5a115f
15 changed files with 239 additions and 52 deletions
|
|
@ -94,6 +94,7 @@ void STACK_ARGS DCanvas::DrawTexture (FTexture *img, int x0, int y0, DWORD tags_
|
|||
int virtWidth = this->GetWidth();
|
||||
int virtHeight = this->GetHeight();
|
||||
INTBOOL keepratio = false;
|
||||
ERenderStyle style = STYLE_Count;
|
||||
|
||||
x0 <<= FRACBITS;
|
||||
y0 <<= FRACBITS;
|
||||
|
|
@ -322,6 +323,10 @@ void STACK_ARGS DCanvas::DrawTexture (FTexture *img, int x0, int y0, DWORD tags_
|
|||
case DTA_KeepRatio:
|
||||
keepratio = va_arg (tags, INTBOOL);
|
||||
break;
|
||||
|
||||
case DTA_RenderStyle:
|
||||
style = ERenderStyle(va_arg (tags, int));
|
||||
break;
|
||||
}
|
||||
tag = va_arg (tags, DWORD);
|
||||
}
|
||||
|
|
@ -354,34 +359,35 @@ void STACK_ARGS DCanvas::DrawTexture (FTexture *img, int x0, int y0, DWORD tags_
|
|||
return;
|
||||
}
|
||||
|
||||
ERenderStyle style;
|
||||
|
||||
if (fillcolor >= 0)
|
||||
if (style == STYLE_Count)
|
||||
{
|
||||
if (alphaChannel)
|
||||
if (fillcolor != -1)
|
||||
{
|
||||
style = STYLE_Shaded;
|
||||
if (alphaChannel)
|
||||
{
|
||||
style = STYLE_Shaded;
|
||||
}
|
||||
else if (alpha < FRACUNIT)
|
||||
{
|
||||
style = STYLE_TranslucentStencil;
|
||||
}
|
||||
else
|
||||
{
|
||||
style = STYLE_Stencil;
|
||||
}
|
||||
}
|
||||
else if (alpha < FRACUNIT)
|
||||
{
|
||||
style = STYLE_TranslucentStencil;
|
||||
style = STYLE_Translucent;
|
||||
}
|
||||
else
|
||||
{
|
||||
style = STYLE_Stencil;
|
||||
style = STYLE_Normal;
|
||||
}
|
||||
}
|
||||
else if (alpha < FRACUNIT)
|
||||
{
|
||||
style = STYLE_Translucent;
|
||||
}
|
||||
else
|
||||
{
|
||||
style = STYLE_Normal;
|
||||
}
|
||||
|
||||
fixedcolormap = identitymap;
|
||||
ESPSResult mode = R_SetPatchStyle (style, alpha, 0, fillcolor<<24);
|
||||
ESPSResult mode = R_SetPatchStyle (style, alpha, 0, fillcolor);
|
||||
|
||||
if (style != STYLE_Shaded)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue