basic features of replay editor
[carveJwlIkooP6JGAAIwe30JlM.git] / gameserver.c
index a93d705abc32204e2c5218f000f6545dec92c94b..d3449e8eafc59784457d279adea39b91a63994aa 100644 (file)
@@ -6,11 +6,11 @@
 #include <signal.h>
 #include <unistd.h>
 #include <time.h>
+#include <string.h>
 
 volatile sig_atomic_t sig_stop;
 
 #include "gameserver.h" 
-#include "highscores.c"
 #include "vg/vg_opt.h"
 #include "network_common.h"
 #include "gameserver_db.h"
@@ -516,7 +516,7 @@ static void gameserver_propogate_player_frame( int client_id,
    basic->sound_effects = 0;
 
    struct gameserver_client *c0 = &gameserver.clients[client_id];
-   c0->instance = frame->instance_id;
+   c0->instance = frame->flags & NETMSG_PLAYERFRAME_INSTANCE_ID;
 
    for( int i=0; i<vg_list_size(gameserver.clients); i++ ){
       if( i == client_id )
@@ -727,8 +727,8 @@ static enum request_status gameserver_cat_table(
             continue;
 
          vg_msg_frame( msg, "" );
-         vg_msg_wkvu32( msg, "time", time );
-         vg_msg_wkvu64( msg, "steamid", steamid );
+         vg_msg_wkvnum( msg, "time", k_vg_msg_u32, 1, &time );
+         vg_msg_wkvnum( msg, "steamid", k_vg_msg_u64, 1, &steamid );
 
          char username[32];
          if( db_getuserinfo( steamid, username, sizeof(username), NULL ) )
@@ -783,7 +783,8 @@ static void gameserver_process_user_request( db_request *db_req ){
    if( !strcmp( endpoint, "scoreboard" ) ){
       const char *mod = vg_msg_getkvstr( &data, "mod" );
       const char *route = vg_msg_getkvstr( &data, "route" );
-      u32 week = vg_msg_getkvu32( &data, "week", 0 );
+      u32 week;
+      vg_msg_getkvintg( &data, "week", k_vg_msg_u32, &week );
       
       if( week == NETWORK_LEADERBOARD_CURRENT_WEEK ){
          gameserver_cat_table( &body, mod, route, 
@@ -827,7 +828,8 @@ static void gameserver_process_user_request( db_request *db_req ){
          return;
       }
 
-      i32 centiseconds = vg_msg_getkvi32( &data, "time", -1 );
+      i32 centiseconds;
+      vg_msg_getkvintg( &data, "time", k_vg_msg_i32, &centiseconds );
       if( centiseconds < 5*100 ){
          gameserver_request_respond( k_request_status_client_error,
                                      res, NULL, msg );
@@ -836,7 +838,6 @@ static void gameserver_process_user_request( db_request *db_req ){
 
       db_writeusertime( alltime_table, client->steamid, centiseconds, 1 );
       db_writeusertime( weekly_table, client->steamid, centiseconds, 1 );
-
       gameserver_request_respond( k_request_status_ok, res, NULL, msg );
    }
    else{