--- deliantra/server/socket/loop.C 2009/10/12 14:00:59 1.82 +++ deliantra/server/socket/loop.C 2011/04/23 04:56:58 1.89 @@ -1,9 +1,7 @@ /* * This file is part of Deliantra, the Roguelike Realtime MMORPG. * - * Copyright (©) 2005,2006,2007,2008 Marc Alexander Lehmann / Robin Redeker / the Deliantra team - * Copyright (©) 2002-2003,2007 Mark Wedel & The Crossfire Development Team - * Copyright (©) 1992,2007 Frank Tore Johansen + * Copyright (©) 2005,2006,2007,2008,2009,2010,2011 Marc Alexander Lehmann / Robin Redeker / the Deliantra team * * Deliantra is free software: you can redistribute it and/or modify it under * the terms of the Affero GNU General Public License as published by the @@ -45,8 +43,6 @@ #include #include -#include - #define BG_SCRUB_RATE 4 // how often to send a face in the background #define MAX_QUEUE_DEPTH 50 @@ -69,7 +65,6 @@ if (cmd_queue.size () >= MAX_QUEUE_DEPTH) { - //TODO: just disconnect here? reset_state (); send_packet_printf ("drawinfo %d command queue overflow, ignoring.", NDI_RED); } @@ -128,8 +123,12 @@ /* Update the players stats once per tick. More efficient than * sending them whenever they change, and probably just as useful */ + pl->need_updated_stats (); esrv_update_stats (pl); + if (pl->ns->update_spells) + esrv_update_spells (pl); + sint32 weight = pl->ob->client_weight (); if (last_weight != weight) @@ -268,14 +267,14 @@ } void -client::flush_sockets (void) +client::flush_sockets () { for (sockvec::iterator i = clients.begin (); i != clients.end (); ++i) (*i)->flush (); } void -client::clock (void) +client::clock () { for (sockvec::iterator i = clients.begin (); i != clients.end (); ++i) (*i)->tick ();