From 84e73586c0275e08d75ef1abc66267eb570e691b Mon Sep 17 00:00:00 2001 From: Yukita Mayako <catgirl@goddess.moe> Date: Fri, 11 Mar 2016 17:16:28 -0500 Subject: [PATCH] 70 FPS player ticks. --- src/p_tick.c | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/src/p_tick.c b/src/p_tick.c index f009ecc2c1..bc70c3324c 100644 --- a/src/p_tick.c +++ b/src/p_tick.c @@ -303,6 +303,19 @@ static inline void P_RunThinkers(void) } } +static inline void P_RunPlayerThinkers(void) +{ + for (currentthinker = thinkercap.next; currentthinker != &thinkercap; currentthinker = currentthinker->next) + { + if (currentthinker->function.acp1 == (actionf_p1)P_MobjThinker) + { + mobj_t *mobj = (mobj_t *)currentthinker; + if (mobj->type == MT_PLAYER) + currentthinker->function.acp1(currentthinker); + } + } +} + // // P_DoAutobalanceTeams() // @@ -592,19 +605,16 @@ void P_Ticker(boolean run) P_MapStart(); - if (run) - { - postimgtype = postimgtype2 = postimg_none; + postimgtype = postimgtype2 = postimg_none; - if (demorecording) - G_WriteDemoTiccmd(&players[consoleplayer].cmd, 0); - if (demoplayback) - G_ReadDemoTiccmd(&players[consoleplayer].cmd, 0); + if (demorecording) + G_WriteDemoTiccmd(&players[consoleplayer].cmd, 0); + if (demoplayback) + G_ReadDemoTiccmd(&players[consoleplayer].cmd, 0); - for (i = 0; i < MAXPLAYERS; i++) - if (playeringame[i] && players[i].mo && !P_MobjWasRemoved(players[i].mo)) - P_PlayerThink(&players[i]); - } + for (i = 0; i < MAXPLAYERS; i++) + if (playeringame[i] && players[i].mo && !P_MobjWasRemoved(players[i].mo)) + P_PlayerThink(&players[i]); // Keep track of how long they've been playing! totalplaytime++; @@ -616,18 +626,18 @@ void P_Ticker(boolean run) P_EmeraldManager(); // Power stone mode if (run) - { P_RunThinkers(); + else + P_RunPlayerThinkers(); - // Run any "after all the other thinkers" stuff - for (i = 0; i < MAXPLAYERS; i++) - if (playeringame[i] && players[i].mo && !P_MobjWasRemoved(players[i].mo)) - P_PlayerAfterThink(&players[i]); + // Run any "after all the other thinkers" stuff + for (i = 0; i < MAXPLAYERS; i++) + if (playeringame[i] && players[i].mo && !P_MobjWasRemoved(players[i].mo)) + P_PlayerAfterThink(&players[i]); #ifdef HAVE_BLUA - LUAh_ThinkFrame(); + LUAh_ThinkFrame(); #endif - } // Run shield positioning P_RunShields(); -- GitLab