1 void ConnectionlessPacketReceived(byte IP0, byte IP1, byte IP2, byte IP3);
 2 
 3 /*
 4 ================
 5 vmMain
 6 
 7 This is the only way control passes into the module.
 8 This must be the very first function compiled into the .q3vm file
 9 ================
10 */
11 int vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int arg11  ) {
12 	switch ( command ) {
13 	case GAME_INIT:
14 		G_InitGame( arg0, arg1, arg2 );
15 		return 0;
16 	case GAME_SHUTDOWN:
17 		G_ShutdownGame( arg0 );
18 		return 0;
19 	case GAME_CLIENT_CONNECT:
20 		return (int)ClientConnect( arg0, arg1, arg2 );
21 	case GAME_CLIENT_THINK:
22 		ClientThink( arg0 );
23 		return 0;
24 	case GAME_CLIENT_USERINFO_CHANGED:
25 		ClientUserinfoChanged( arg0 );
26 		return 0;
27 	case GAME_CLIENT_DISCONNECT:
28 		ClientDisconnect( arg0 );
29 		return 0;
30 	case GAME_CLIENT_BEGIN:
31 		ClientBegin( arg0, qtrue );
32 		return 0;
33 	case GAME_CLIENT_COMMAND:
34 		ClientCommand( arg0 );
35 		return 0;
36 	case GAME_RUN_FRAME:
37 		G_RunFrame( arg0 );
38 		return 0;
39 	case GAME_CONSOLE_COMMAND:
40 		return ConsoleCommand();
41 	case BOTAI_START_FRAME:
42 		return BotAIStartFrame( arg0 );
43 	case GAME_ROFF_NOTETRACK_CALLBACK:
44 		G_ROFF_NotetrackCallback( &g_entities[arg0], (const char *)arg1 );
45 		return 0;
46 	// JK2MF: receiving the JK2MF_CONNECTIONLESS_PACKET event
47 	case JK2MF_CONNECTIONLESS_PACKET:
48 		ConnectionlessPacketReceived(arg0, arg1, arg2, arg3);
49 		return 0;
50 	}
51 	
52 	return -1;
53 }
54 
55 void ConnectionlessPacketReceived(byte IP0, byte IP1, byte IP2, byte IP3)
56 {
57 	char cmd[MAX_TOKEN_CHARS];
58 	char num1[10], num2[10];
59 	trap_Argv(0, cmd, sizeof(cmd));
60 	
61 	if ( !strcmp(cmd, "multiply") )
62 	{
63 		int n1, n2;
64 	
65 		trap_Argv(1, num1, sizeof(num1));
66 		trap_Argv(2, num2, sizeof(num2));
67 		n1 = atoi(num1);
68 		n2 = atoi(num2);
69 		
70 		// Send result
71 		trap_JK2MF_SendConnectionlessPacket(va("result %i", n1 * n2));
72 	}
73 }