⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p_tick.c

📁 The source code of Doom legacy for windows
💻 C
字号:
// Emacs style mode select   -*- C++ -*- //-----------------------------------------------------------------------------//// $Id: p_tick.c,v 1.6 2001/01/25 22:15:44 bpereira Exp $//// Copyright (C) 1993-1996 by id Software, Inc.// Portions Copyright (C) 1998-2000 by DooM Legacy Team.//// This program is free software; you can redistribute it and/or// modify it under the terms of the GNU General Public License// as published by the Free Software Foundation; either version 2// of the License, or (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.////// $Log: p_tick.c,v $// Revision 1.6  2001/01/25 22:15:44  bpereira// added heretic support//// Revision 1.5  2000/11/02 17:50:09  stroggonmeth// Big 3Dfloors & FraggleScript commit!!//// Revision 1.4  2000/10/21 08:43:31  bpereira// no message//// Revision 1.3  2000/10/08 13:30:01  bpereira// no message//// Revision 1.2  2000/02/27 00:42:10  hurdler// fix CR+LF problem//// Revision 1.1.1.1  2000/02/22 20:32:32  hurdler// Initial import into CVS (v1.29 pr3)////// DESCRIPTION://      Archiving: SaveGame I/O.//      Thinker, Ticker.////-----------------------------------------------------------------------------#include "doomstat.h"#include "g_game.h"#include "p_local.h"#include "z_zone.h"#include "t_script.h"tic_t     leveltime;//// THINKERS// All thinkers should be allocated by Z_Malloc// so they can be operated on uniformly.// The actual structures will vary in size,// but the first element must be thinker_t.//// Both the head and tail of the thinker list.thinker_t       thinkercap;//// P_InitThinkers//void P_InitThinkers (void){    thinkercap.prev = thinkercap.next  = &thinkercap;}//// P_AddThinker// Adds a new thinker at the end of the list.//void P_AddThinker (thinker_t* thinker){    thinkercap.prev->next = thinker;    thinker->next = &thinkercap;    thinker->prev = thinkercap.prev;    thinkercap.prev = thinker;}//// P_RemoveThinker// Deallocation is lazy -- it will not actually be freed// until its thinking turn comes up.//void P_RemoveThinker (thinker_t* thinker){  // FIXME: NOP.  thinker->function.acv = (actionf_v)(-1);}//// P_AllocateThinker// Allocates memory and adds a new thinker at the end of the list.//void P_AllocateThinker (thinker_t*      thinker){}//// P_RunThinkers//void P_RunThinkers (void){    thinker_t*  currentthinker;    currentthinker = thinkercap.next;    while (currentthinker != &thinkercap)    {        if ( currentthinker->function.acv == (actionf_v)(-1) )        {            void *removeit;            // time to remove it            currentthinker->next->prev = currentthinker->prev;            currentthinker->prev->next = currentthinker->next;            removeit = currentthinker;            currentthinker = currentthinker->next;            Z_Free (removeit);        }        else        {            if (currentthinker->function.acp1)                currentthinker->function.acp1 (currentthinker);            currentthinker = currentthinker->next;        }    }}//// P_Ticker//void P_Ticker (void){    int         i;    // run the tic    if (paused || (!netgame && menuactive && !demoplayback))        return;    for (i=0 ; i<MAXPLAYERS ; i++)        if (playeringame[i])            P_PlayerThink (&players[i]);    P_RunThinkers ();    P_UpdateSpecials ();    P_RespawnSpecials ();    P_AmbientSound();    // for par times    leveltime++;#ifdef FRAGGLESCRIPT    // SoM: Update FraggleScript...    T_DelayedScripts();#endif}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -