mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-10 23:02:08 +00:00
Merge branch 'master' of https://github.com/coelckers/gzdoom
This commit is contained in:
commit
b445347aca
4 changed files with 93 additions and 12 deletions
|
@ -138,6 +138,7 @@ CVAR (Color, am_lockedcolor, 0x007800, CVAR_ARCHIVE);
|
|||
CVAR (Color, am_intralevelcolor, 0x0000ff, CVAR_ARCHIVE);
|
||||
CVAR (Color, am_interlevelcolor, 0xff0000, CVAR_ARCHIVE);
|
||||
CVAR (Color, am_secretsectorcolor, 0xff00ff, CVAR_ARCHIVE);
|
||||
CVAR (Color, am_unexploredsecretcolor, 0xff00ff, CVAR_ARCHIVE);
|
||||
CVAR (Color, am_thingcolor_friend, 0xfcfcfc, CVAR_ARCHIVE);
|
||||
CVAR (Color, am_thingcolor_monster, 0xfcfcfc, CVAR_ARCHIVE);
|
||||
CVAR (Color, am_thingcolor_ncmonster, 0xfcfcfc, CVAR_ARCHIVE);
|
||||
|
@ -158,6 +159,7 @@ CVAR (Color, am_ovunseencolor, 0x00226e, CVAR_ARCHIVE);
|
|||
CVAR (Color, am_ovtelecolor, 0xffff00, CVAR_ARCHIVE);
|
||||
CVAR (Color, am_ovinterlevelcolor, 0xffff00, CVAR_ARCHIVE);
|
||||
CVAR (Color, am_ovsecretsectorcolor,0x00ffff, CVAR_ARCHIVE);
|
||||
CVAR (Color, am_ovunexploredsecretcolor,0x00ffff, CVAR_ARCHIVE);
|
||||
CVAR (Color, am_ovthingcolor, 0xe88800, CVAR_ARCHIVE);
|
||||
CVAR (Color, am_ovthingcolor_friend, 0xe88800, CVAR_ARCHIVE);
|
||||
CVAR (Color, am_ovthingcolor_monster, 0xe88800, CVAR_ARCHIVE);
|
||||
|
@ -230,6 +232,7 @@ static const char *ColorNames[] = {
|
|||
"IntraTeleportColor",
|
||||
"InterTeleportColor",
|
||||
"SecretSectorColor",
|
||||
"UnexploredSecretColor",
|
||||
"PortalColor",
|
||||
"AlmostBackgroundColor",
|
||||
NULL
|
||||
|
@ -261,6 +264,7 @@ struct AMColorset
|
|||
IntraTeleportColor,
|
||||
InterTeleportColor,
|
||||
SecretSectorColor,
|
||||
UnexploredSecretColor,
|
||||
PortalColor,
|
||||
AlmostBackgroundColor,
|
||||
AM_NUM_COLORS
|
||||
|
@ -362,6 +366,7 @@ static FColorCVar *cv_standard[] = {
|
|||
&am_intralevelcolor,
|
||||
&am_interlevelcolor,
|
||||
&am_secretsectorcolor,
|
||||
&am_unexploredsecretcolor,
|
||||
&am_portalcolor
|
||||
};
|
||||
|
||||
|
@ -388,6 +393,7 @@ static FColorCVar *cv_overlay[] = {
|
|||
&am_ovtelecolor,
|
||||
&am_ovinterlevelcolor,
|
||||
&am_ovsecretsectorcolor,
|
||||
&am_ovunexploredsecretcolor,
|
||||
&am_ovportalcolor
|
||||
};
|
||||
|
||||
|
@ -430,6 +436,7 @@ static unsigned char DoomColors[]= {
|
|||
NOT_USED, // intrateleport
|
||||
NOT_USED, // interteleport
|
||||
NOT_USED, // secretsector
|
||||
NOT_USED, // unexploredsecretsector
|
||||
0x10,0x10,0x10, // almostbackground
|
||||
0x40,0x40,0x40 // portal
|
||||
};
|
||||
|
@ -457,6 +464,7 @@ static unsigned char StrifeColors[]= {
|
|||
NOT_USED, // intrateleport
|
||||
NOT_USED, // interteleport
|
||||
NOT_USED, // secretsector
|
||||
NOT_USED, // unexploredsecretsector
|
||||
0x10,0x10,0x10, // almostbackground
|
||||
0x40,0x40,0x40 // portal
|
||||
};
|
||||
|
@ -484,6 +492,7 @@ static unsigned char RavenColors[]= {
|
|||
NOT_USED, // intrateleport
|
||||
NOT_USED, // interteleport
|
||||
NOT_USED, // secretsector
|
||||
NOT_USED, // unexploredsecretsector
|
||||
0x10,0x10,0x10, // almostbackground
|
||||
0x50,0x50,0x50 // portal
|
||||
};
|
||||
|
@ -2209,7 +2218,7 @@ void AM_drawSubsectors()
|
|||
//
|
||||
//=============================================================================
|
||||
|
||||
static bool AM_CheckSecret(line_t *line)
|
||||
static int AM_CheckSecret(line_t *line)
|
||||
{
|
||||
if (AMColors.isValid(AMColors.SecretSectorColor))
|
||||
{
|
||||
|
@ -2217,20 +2226,20 @@ static bool AM_CheckSecret(line_t *line)
|
|||
{
|
||||
if (line->frontsector->wasSecret())
|
||||
{
|
||||
if (am_map_secrets!=0 && !line->frontsector->isSecret()) return true;
|
||||
if (am_map_secrets==2 && !(line->flags & ML_SECRET)) return true;
|
||||
if (am_map_secrets!=0 && !line->frontsector->isSecret()) return 1;
|
||||
if (am_map_secrets==2 && !(line->flags & ML_SECRET)) return 2;
|
||||
}
|
||||
}
|
||||
if (line->backsector != NULL)
|
||||
{
|
||||
if (line->backsector->wasSecret())
|
||||
{
|
||||
if (am_map_secrets!=0 && !line->backsector->isSecret()) return true;
|
||||
if (am_map_secrets==2 && !(line->flags & ML_SECRET)) return true;
|
||||
if (am_map_secrets!=0 && !line->backsector->isSecret()) return 1;
|
||||
if (am_map_secrets==2 && !(line->flags & ML_SECRET)) return 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -2584,11 +2593,15 @@ void AM_drawWalls (bool allmap)
|
|||
{
|
||||
AM_drawMline(&l, AMColors.PortalColor);
|
||||
}
|
||||
else if (AM_CheckSecret(&line))
|
||||
else if (AM_CheckSecret(&line) == 1)
|
||||
{
|
||||
// map secret sectors like Boom
|
||||
AM_drawMline(&l, AMColors.SecretSectorColor);
|
||||
}
|
||||
else if (AM_CheckSecret(&line) == 2)
|
||||
{
|
||||
AM_drawMline(&l, AMColors.UnexploredSecretColor);
|
||||
}
|
||||
else if (line.flags & ML_SECRET)
|
||||
{ // secret door
|
||||
if (am_cheat != 0 && line.backsector != NULL)
|
||||
|
|
|
@ -41,6 +41,8 @@
|
|||
#include "serializer.h"
|
||||
#include "d_player.h"
|
||||
#include "vm.h"
|
||||
#include "c_dispatch.h"
|
||||
#include "v_text.h"
|
||||
|
||||
|
||||
static int ThinkCount;
|
||||
|
@ -462,7 +464,57 @@ void DThinker::DestroyThinkersInList (FThinkerList &list)
|
|||
//
|
||||
//
|
||||
//==========================================================================
|
||||
CVAR(Int, profilethinkers, 0, 0)
|
||||
static unsigned int profilethinkers, profilelimit;
|
||||
|
||||
CCMD(profilethinkers)
|
||||
{
|
||||
const int argc = argv.argc();
|
||||
|
||||
if (argc == 2 || argc == 3)
|
||||
{
|
||||
const char *str = argv[1];
|
||||
bool ascend = true;
|
||||
|
||||
if (*str == '+')
|
||||
{
|
||||
++str;
|
||||
}
|
||||
else if (*str == '-')
|
||||
{
|
||||
ascend = false;
|
||||
++str;
|
||||
}
|
||||
|
||||
int mode = 0;
|
||||
|
||||
switch (*str)
|
||||
{
|
||||
case 't': mode = ascend ? 7 : 8; break;
|
||||
case 'a': mode = ascend ? 5 : 6; break;
|
||||
case '#': mode = ascend ? 3 : 4; break;
|
||||
case 'c': mode = ascend ? 1 : 2; break;
|
||||
default: mode = atoi(str); break;
|
||||
}
|
||||
|
||||
profilethinkers = mode;
|
||||
profilelimit = argc == 3 ? atoi(argv[2]) : 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
Printf(
|
||||
"Usage: profilethinkers [+|-][t|a|#|c] [limit]\n"
|
||||
" profilethinkers [1..8] [limit]\n\n"
|
||||
"Sorting modes:\n"
|
||||
TEXTCOLOR_YELLOW "c +c 1 " TEXTCOLOR_NORMAL "actor class, ascending\n"
|
||||
TEXTCOLOR_YELLOW " -c 2 " TEXTCOLOR_NORMAL "actor class, descending\n"
|
||||
TEXTCOLOR_YELLOW "# +# 3 " TEXTCOLOR_NORMAL "number of calls, ascending\n"
|
||||
TEXTCOLOR_YELLOW " -# 4 " TEXTCOLOR_NORMAL "number of calls, descending\n"
|
||||
TEXTCOLOR_YELLOW "a +a 5 " TEXTCOLOR_NORMAL "average time, ascending\n"
|
||||
TEXTCOLOR_YELLOW " -a 6 " TEXTCOLOR_NORMAL "average time, descending\n"
|
||||
TEXTCOLOR_YELLOW "t +t 7 " TEXTCOLOR_NORMAL "total time, ascending\n"
|
||||
TEXTCOLOR_YELLOW " -t 8 " TEXTCOLOR_NORMAL "total time, descending\n");
|
||||
}
|
||||
}
|
||||
|
||||
struct ProfileInfo
|
||||
{
|
||||
|
@ -556,19 +608,33 @@ void DThinker::RunThinkers ()
|
|||
return left.numcalls < right.numcalls;
|
||||
case 4: // number of calls, descending
|
||||
return right.numcalls < left.numcalls;
|
||||
case 5: // total time, ascending
|
||||
case 5: // average time, ascending
|
||||
return left.time / left.numcalls < right.time / right.numcalls;
|
||||
case 6: // average time, descending
|
||||
return right.time / right.numcalls < left.time / left.numcalls;
|
||||
case 7: // total time, ascending
|
||||
return left.time < right.time;
|
||||
default: // total time, descending
|
||||
return right.time < left.time;
|
||||
}
|
||||
});
|
||||
|
||||
for (const SortedProfileInfo& info : sorted)
|
||||
Printf(TEXTCOLOR_YELLOW "Total, ms Averg, ms Calls Actor class\n");
|
||||
Printf(TEXTCOLOR_YELLOW "---------- ---------- ------ --------------------\n");
|
||||
|
||||
const unsigned count = MIN(profilelimit > 0 ? profilelimit : UINT_MAX, sorted.Size());
|
||||
|
||||
for (unsigned i = 0; i < count; ++i)
|
||||
{
|
||||
Printf("%s, %dx, %fms\n", info.className, info.numcalls, info.time);
|
||||
const SortedProfileInfo& info = sorted[i];
|
||||
Printf("%s%10.6f %s%10.6f %s%6d %s%s\n",
|
||||
profilethinkers >= 7 ? TEXTCOLOR_YELLOW : TEXTCOLOR_WHITE, info.time,
|
||||
profilethinkers == 5 || profilethinkers == 6 ? TEXTCOLOR_YELLOW : TEXTCOLOR_WHITE, info.time / info.numcalls,
|
||||
profilethinkers == 3 || profilethinkers == 4 ? TEXTCOLOR_YELLOW : TEXTCOLOR_WHITE, info.numcalls,
|
||||
profilethinkers == 1 || profilethinkers == 2 ? TEXTCOLOR_YELLOW : TEXTCOLOR_WHITE, info.className);
|
||||
}
|
||||
|
||||
profilethinkers = false;
|
||||
profilethinkers = 0;
|
||||
}
|
||||
|
||||
ThinkCycles.Unclock();
|
||||
|
|
|
@ -1979,6 +1979,7 @@ MAPCOLORMNU_LOCKEDCOLOR = "Locked doors";
|
|||
MAPCOLORMNU_INTRALEVELCOLOR = "Teleporter to the same map";
|
||||
MAPCOLORMNU_INTERLEVELCOLOR = "Teleporter to a different map";
|
||||
MAPCOLORMNU_SECRETSECTORCOLOR = "Secret sector";
|
||||
MAPCOLORMNU_UNEXPLOREDSECRETCOLOR = "Unexplored secret";
|
||||
MAPCOLORMNU_SPECIALWALLCOLOR = "Special trigger lines";
|
||||
MAPCOLORMNU_CHEATMODE = "Cheat Mode";
|
||||
MAPCOLORMNU_TSWALLCOLOR = "Invisible 2-sided walls";
|
||||
|
|
|
@ -1157,6 +1157,7 @@ OptionMenu MapColorMenu protected
|
|||
ColorPicker "$MAPCOLORMNU_INTRALEVELCOLOR", "am_intralevelcolor"
|
||||
ColorPicker "$MAPCOLORMNU_INTERLEVELCOLOR", "am_interlevelcolor"
|
||||
ColorPicker "$MAPCOLORMNU_SECRETSECTORCOLOR", "am_secretsectorcolor"
|
||||
ColorPicker "$MAPCOLORMNU_UNEXPLOREDSECRETCOLOR", "am_unexploredsecretcolor"
|
||||
ColorPicker "$MAPCOLORMNU_SPECIALWALLCOLOR", "am_specialwallcolor"
|
||||
ColorPicker "$MAPCOLORMNU_PORTAL", "am_portalcolor"
|
||||
StaticText " "
|
||||
|
|
Loading…
Reference in a new issue