mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-11 15:22:16 +00:00
- Added tracking of time spent specifically in running action functions. I feel kind of stupid
about this now. I spent three days trying to figure out why the VC++ debug version was so slow. It turns out I had a conditional breakpoint set in a high-traffic area. D'oh! The rest of this stuff should get merged into trunk: - Fixed: Writing to debugfile uses the standard fprintf, which does not understand %td on VC++. - Fixed: Instead of crashing when a sprite has been scaled to 0, just don't draw it. SVN r3896 (scripting)
This commit is contained in:
parent
2c92941f6b
commit
47eec0b275
4 changed files with 16 additions and 4 deletions
|
@ -43,6 +43,7 @@
|
||||||
|
|
||||||
static cycle_t ThinkCycles;
|
static cycle_t ThinkCycles;
|
||||||
extern cycle_t BotSupportCycles;
|
extern cycle_t BotSupportCycles;
|
||||||
|
extern cycle_t ActionCycles;
|
||||||
extern int BotWTG;
|
extern int BotWTG;
|
||||||
|
|
||||||
IMPLEMENT_CLASS (DThinker)
|
IMPLEMENT_CLASS (DThinker)
|
||||||
|
@ -409,6 +410,7 @@ void DThinker::RunThinkers ()
|
||||||
|
|
||||||
ThinkCycles.Reset();
|
ThinkCycles.Reset();
|
||||||
BotSupportCycles.Reset();
|
BotSupportCycles.Reset();
|
||||||
|
ActionCycles.Reset();
|
||||||
BotWTG = 0;
|
BotWTG = 0;
|
||||||
|
|
||||||
ThinkCycles.Clock();
|
ThinkCycles.Clock();
|
||||||
|
@ -575,6 +577,6 @@ DThinker *FThinkerIterator::Next ()
|
||||||
ADD_STAT (think)
|
ADD_STAT (think)
|
||||||
{
|
{
|
||||||
FString out;
|
FString out;
|
||||||
out.Format ("Think time = %04.1f ms", ThinkCycles.TimeMS());
|
out.Format ("Think time = %04.1f ms, Action = %04.1f ms", ThinkCycles.TimeMS(), ActionCycles.TimeMS());
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
#include "templates.h"
|
#include "templates.h"
|
||||||
#include "cmdlib.h"
|
#include "cmdlib.h"
|
||||||
#include "g_level.h"
|
#include "g_level.h"
|
||||||
|
#include "stats.h"
|
||||||
|
|
||||||
extern void LoadActors ();
|
extern void LoadActors ();
|
||||||
extern void InitBotStuff();
|
extern void InitBotStuff();
|
||||||
|
@ -58,13 +59,17 @@ extern void ClearStrifeTypes();
|
||||||
TArray<PClassActor *> PClassActor::AllActorClasses;
|
TArray<PClassActor *> PClassActor::AllActorClasses;
|
||||||
FRandom FState::pr_statetics;
|
FRandom FState::pr_statetics;
|
||||||
|
|
||||||
|
cycle_t ActionCycles;
|
||||||
|
|
||||||
bool FState::CallAction(AActor *self, AActor *stateowner)
|
bool FState::CallAction(AActor *self, AActor *stateowner)
|
||||||
{
|
{
|
||||||
if (ActionFunc != NULL)
|
if (ActionFunc != NULL)
|
||||||
{
|
{
|
||||||
VMFrameStack stack;
|
ActionCycles.Clock();
|
||||||
|
static VMFrameStack stack;
|
||||||
VMValue params[3] = { self, stateowner, VMValue(this, ATAG_STATE) };
|
VMValue params[3] = { self, stateowner, VMValue(this, ATAG_STATE) };
|
||||||
stack.Call(ActionFunc, params, countof(params), NULL, 0, NULL);
|
stack.Call(ActionFunc, params, countof(params), NULL, 0, NULL);
|
||||||
|
ActionCycles.Unclock();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -2192,8 +2192,8 @@ void P_PlayerThink (player_t *player)
|
||||||
|
|
||||||
if (debugfile && !(player->cheats & CF_PREDICTING))
|
if (debugfile && !(player->cheats & CF_PREDICTING))
|
||||||
{
|
{
|
||||||
fprintf (debugfile, "tic %d for pl %td: (%d, %d, %d, %u) b:%02x p:%d y:%d f:%d s:%d u:%d\n",
|
fprintf (debugfile, "tic %d for pl %d: (%d, %d, %d, %u) b:%02x p:%d y:%d f:%d s:%d u:%d\n",
|
||||||
gametic, player-players, player->mo->x, player->mo->y, player->mo->z,
|
gametic, (int)(player-players), player->mo->x, player->mo->y, player->mo->z,
|
||||||
player->mo->angle>>ANGLETOFINESHIFT, player->cmd.ucmd.buttons,
|
player->mo->angle>>ANGLETOFINESHIFT, player->cmd.ucmd.buttons,
|
||||||
player->cmd.ucmd.pitch, player->cmd.ucmd.yaw, player->cmd.ucmd.forwardmove,
|
player->cmd.ucmd.pitch, player->cmd.ucmd.yaw, player->cmd.ucmd.forwardmove,
|
||||||
player->cmd.ucmd.sidemove, player->cmd.ucmd.upmove);
|
player->cmd.ucmd.sidemove, player->cmd.ucmd.upmove);
|
||||||
|
|
|
@ -326,6 +326,11 @@ void R_DrawVisSprite (vissprite_t *vis)
|
||||||
fixed_t xiscale;
|
fixed_t xiscale;
|
||||||
ESPSResult mode;
|
ESPSResult mode;
|
||||||
|
|
||||||
|
if (vis->xscale == 0 || vis->yscale == 0)
|
||||||
|
{ // scaled to 0; can't see
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
dc_colormap = vis->Style.colormap;
|
dc_colormap = vis->Style.colormap;
|
||||||
|
|
||||||
mode = R_SetPatchStyle (vis->Style.RenderStyle, vis->Style.alpha, vis->Translation, vis->FillColor);
|
mode = R_SetPatchStyle (vis->Style.RenderStyle, vis->Style.alpha, vis->Translation, vis->FillColor);
|
||||||
|
|
Loading…
Reference in a new issue