Esempio n. 1
0
void ZActor::OnUpdate(float fDelta)
{
	if(m_pVMesh) {
		m_pVMesh->SetVisibility(1.f);
	}

	if (CheckFlag(AF_MY_CONTROL))
	{
		m_TaskManager.Run(fDelta);
		CheckDead(fDelta);

		ProcessNetwork(fDelta);

		// for test - bird
		if (m_bTestControl)
		{
			TestControl(fDelta);
		}
		else
		{
			__BP(60,"ZActor::OnUpdate::ProcessAI");
			if(isThinkAble())
				ProcessAI(fDelta);
			__EP(60);
		}

		ProcessMovement(fDelta);
	}
	
	ProcessMotion(fDelta);

	if (CheckFlag(AF_MY_CONTROL))
	{
		UpdateHeight(fDelta);
	}
}
Esempio n. 2
0
void psNetConnection::Run ()
{
    csTicks currentticks = csGetTicks();
    csTicks lastlinkcheck = currentticks;
    csTicks lastresendcheck = currentticks;
    csTicks laststatdisplay = currentticks;

    // Maximum time to spend in ProcessNetwork
    csTicks maxTime = MIN(MIN(LINKCHECK, RESENDCHECK), STATDISPLAYCHECK);
    csTicks timeout;

    long    lasttotaltransferin=0;
    long    lasttotaltransferout=0;
    long    lasttotalcountin=0;
    long    lasttotalcountout=0;
    float   kbpsout = 0;
    float   kbpsin = 0;

    while ( shouldRun )
    {
        if (!ready)
        {
            csSleep(100);
            continue;
        }

        timeout = csGetTicks() + maxTime;
        ProcessNetwork (timeout);

        currentticks = csGetTicks();

        if (currentticks - lastlinkcheck > LINKCHECK)
        {
            lastlinkcheck = currentticks;
            CheckLinkDead (currentticks);
        }
        if (currentticks - lastresendcheck > RESENDCHECK)
        {
            lastresendcheck = currentticks;
            CheckResendPkts ();
            CheckFragmentTimeouts();
        }
        if (currentticks - laststatdisplay > STATDISPLAYCHECK)
        {
            kbpsin = (float)(totaltransferin - lasttotaltransferin) / (float)(currentticks - laststatdisplay);
            lasttotaltransferin = totaltransferin;

            kbpsout = (float)(totaltransferout - lasttotaltransferout) / (float)(currentticks - laststatdisplay);
            lasttotaltransferout = totaltransferout;

            laststatdisplay = currentticks;

            
            if (pslog::disp_flag[LOG_LOAD])
            {
                printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
                printf("+ Currently using %1.2fKbps out, %1.2fkbps in...\n",
                       kbpsout, kbpsin);
                printf("+ Packets: %ld out ,  %ld in\n",
                       totalcountout-lasttotalcountout,totalcountin-lasttotalcountin);
                printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
            }
            lasttotalcountout = totalcountout;
            lasttotalcountin = totalcountin;
        }
    }

    Debug2(LOG_NET, 0, "Run Stopped this=%p\n",this);
}
Esempio n. 3
0
// This function is the network thread
// Thread: Network
void NetManager::Run ()
{
    csTicks currentticks    = csGetTicks();
    csTicks lastlinkcheck   = currentticks;
    csTicks lastresendcheck = currentticks;
    csTicks laststatdisplay = currentticks;

    // Maximum time to spend in ProcessNetwork
    csTicks maxTime = MIN(MIN(LINKCHECK, RESENDCHECK), STATDISPLAYCHECK);
    csTicks timeout;

    long    lasttotaltransferin=0;
    long    lasttotaltransferout=0;

    long    lasttotalcountin=0;
    long    lasttotalcountout=0;

    float   kbpsout = 0;
    float   kbpsin = 0;

    float   kbpsOutMax = 0;
    float   kbpsInMax  = 0;

    size_t clientCountMax = 0;

    printf("Network thread started!\n");

    stop_network = false;
    while ( !stop_network )
    {
        if (!IsReady())
        {
            csSleep(100);
            continue;
        }

        timeout = csGetTicks() + maxTime;
        ProcessNetwork (timeout);

        currentticks = csGetTicks();

        // Check for link dead clients.
        if (currentticks - lastlinkcheck > LINKCHECK)
        {
            CheckLinkDead();
            lastlinkcheck = csGetTicks();
        }

        // Check to resend packages that have not been ACK'd yet
        if (currentticks - lastresendcheck > RESENDCHECK)
        {
            CheckResendPkts();
            CheckFragmentTimeouts();
            lastresendcheck = csGetTicks();
        }

        // Display Network statistics
        if (currentticks - laststatdisplay > STATDISPLAYCHECK)
        {
            kbpsin = (float)(totaltransferin - lasttotaltransferin) / (float)STATDISPLAYCHECK;
            if ( kbpsin > kbpsInMax )
            {
                kbpsInMax = kbpsin;
            }
            lasttotaltransferin = totaltransferin;

            kbpsout = (float)(totaltransferout - lasttotaltransferout) / (float)STATDISPLAYCHECK;
            if ( kbpsout > kbpsOutMax )
            {
                kbpsOutMax = kbpsout;
            }

            lasttotaltransferout = totaltransferout;

            laststatdisplay = currentticks;

            if ( clients.Count() > clientCountMax )
            {
                clientCountMax = clients.Count();
            }
            csString status;
            status.Format("Currently using %1.2fKbps out, %1.2fkbps in. Packets: %ld out, %ld in", kbpsout, kbpsin, totalcountout-lasttotalcountout,totalcountin-lasttotalcountin);

            if(LogCSV::GetSingletonPtr())
                LogCSV::GetSingleton().Write(CSV_STATUS, status);

            if (pslog::disp_flag[LOG_LOAD])
            {
                CPrintf(CON_DEBUG, "Currently %d (Max: %d) clients using %1.2fKbps (Max: %1.2fKbps) outbound, "
                        "%1.2fkbps (Max: %1.2fKbps) inbound...\n",
                        clients.Count(),clientCountMax, kbpsout, kbpsOutMax,
                        kbpsin, kbpsInMax);
                CPrintf(CON_DEBUG, "Packets inbound %ld , outbound %ld...\n",
                        totalcountin-lasttotalcountin,totalcountout-lasttotalcountout);
            }

            lasttotalcountout = totalcountout;
            lasttotalcountin = totalcountin;
        }
    }
    printf("Network thread stopped!\n");
}