MCPcopy Create free account
hub / github.com/JACoders/OpenJK / Com_EventLoop

Function Com_EventLoop

code/qcommon/common.cpp:834–892  ·  view source on GitHub ↗

================= Com_EventLoop Returns last event time ================= */

Source from the content-addressed store, hash-verified

832=================
833*/
834int Com_EventLoop( void ) {
835 sysEvent_t ev;
836 netadr_t evFrom;
837 byte bufData[MAX_MSGLEN];
838 msg_t buf;
839
840 MSG_Init( &buf, bufData, sizeof( bufData ) );
841
842 while ( 1 ) {
843 ev = Com_GetEvent();
844
845 // if no more events are available
846 if ( ev.evType == SE_NONE ) {
847 // manually send packet events for the loopback channel
848 while ( NET_GetLoopPacket( NS_CLIENT, &evFrom, &buf ) ) {
849 CL_PacketEvent( evFrom, &buf );
850 }
851
852 while ( NET_GetLoopPacket( NS_SERVER, &evFrom, &buf ) ) {
853 // if the server just shut down, flush the events
854 if ( com_sv_running->integer ) {
855 Com_RunAndTimeServerPacket( &evFrom, &buf );
856 }
857 }
858
859 return ev.evTime;
860 }
861
862
863 switch ( ev.evType ) {
864 default:
865 Com_Error( ERR_FATAL, "Com_EventLoop: bad event type %i", ev.evType );
866 break;
867 case SE_NONE:
868 break;
869 case SE_KEY:
870 CL_KeyEvent( ev.evValue, (qboolean)ev.evValue2, ev.evTime );
871 break;
872 case SE_CHAR:
873 CL_CharEvent( ev.evValue );
874 break;
875 case SE_MOUSE:
876 CL_MouseEvent( ev.evValue, ev.evValue2, ev.evTime );
877 break;
878 case SE_JOYSTICK_AXIS:
879 CL_JoystickEvent( ev.evValue, ev.evValue2, ev.evTime );
880 break;
881 case SE_CONSOLE:
882 Cbuf_AddText( (char *)ev.evPtr );
883 Cbuf_AddText( "\n" );
884 break;
885 }
886
887 // free any block data
888 if ( ev.evPtr ) {
889 Z_Free( ev.evPtr );
890 }
891 }

Callers 2

Com_FrameFunction · 0.70
CL_CgameSystemCallsFunction · 0.50

Calls 12

MSG_InitFunction · 0.70
Com_GetEventFunction · 0.70
NET_GetLoopPacketFunction · 0.70
Com_ErrorFunction · 0.70
Cbuf_AddTextFunction · 0.70
Z_FreeFunction · 0.70
CL_PacketEventFunction · 0.50
CL_KeyEventFunction · 0.50
CL_CharEventFunction · 0.50
CL_MouseEventFunction · 0.50
CL_JoystickEventFunction · 0.50

Tested by

no test coverage detected