- added forced automap style to linedef, UDMF only

https://forum.zdoom.org/viewtopic.php?t=59808
(cherry picked from commit c6f7d92c76)
This commit is contained in:
alexey.lysiuk 2018-05-19 10:49:04 +03:00 committed by drfrag666
parent 84f1720ece
commit 13d7b49eeb
4 changed files with 57 additions and 0 deletions

View file

@ -337,6 +337,30 @@ struct AMColorset
}
};
//=============================================================================
//
// automap colors forced by linedef
//
//=============================================================================
static const int AUTOMAP_LINE_COLORS[AMLS_COUNT] =
{
-1, // AMLS_Default (unused)
AMColorset::WallColor, // AMLS_OneSided,
AMColorset::TSWallColor, // AMLS_TwoSided
AMColorset::FDWallColor, // AMLS_FloorDiff
AMColorset::CDWallColor, // AMLS_CeilingDiff
AMColorset::EFWallColor, // AMLS_ExtraFloor
AMColorset::SpecialWallColor, // AMLS_Special
AMColorset::SecretWallColor, // AMLS_Secret
AMColorset::NotSeenColor, // AMLS_NotSeen
AMColorset::LockedColor, // AMLS_Locked
AMColorset::IntraTeleportColor, // AMLS_IntraTeleport
AMColorset::InterTeleportColor, // AMLS_InterTeleport
AMColorset::UnexploredSecretColor, // AMLS_UnexploredSecret
AMColorset::PortalColor, // AMLS_Portal
};
//=============================================================================
//
// predefined colorsets
@ -2589,6 +2613,13 @@ void AM_drawWalls (bool allmap)
}
}
if (line.automapstyle > AMLS_Default && line.automapstyle < AMLS_COUNT
&& (am_cheat == 0 || am_cheat >= 4))
{
AM_drawMline(&l, AUTOMAP_LINE_COLORS[line.automapstyle]);
continue;
}
if (portalmode)
{
AM_drawMline(&l, AMColors.PortalColor);

View file

@ -538,6 +538,7 @@ xx(Conversation)
xx(Locknumber)
xx(Midtex3dimpassible)
xx(Revealed)
xx(AutomapStyle)
xx(Playercross)
xx(Playeruse)

View file

@ -1114,6 +1114,10 @@ public:
Flag(ld->flags, ML_REVEALED, key);
continue;
case NAME_AutomapStyle:
ld->automapstyle = AutomapLineStyle(CheckInt(key));
continue;
case NAME_MoreIds:
// delay parsing of the tag string until parsing of the sector is complete
// This ensures that the ID is always the first tag in the list.

View file

@ -1291,6 +1291,26 @@ struct side_t
};
enum AutomapLineStyle : int
{
AMLS_Default,
AMLS_OneSided,
AMLS_TwoSided,
AMLS_FloorDiff,
AMLS_CeilingDiff,
AMLS_ExtraFloor,
AMLS_Special,
AMLS_Secret,
AMLS_NotSeen,
AMLS_Locked,
AMLS_IntraTeleport,
AMLS_InterTeleport,
AMLS_UnexploredSecret,
AMLS_Portal,
AMLS_COUNT
};
struct line_t
{
vertex_t *v1, *v2; // vertices, from v1 to v2
@ -1307,6 +1327,7 @@ struct line_t
int locknumber; // [Dusk] lock number for special
unsigned portalindex;
unsigned portaltransferred;
AutomapLineStyle automapstyle;
DVector2 Delta() const
{