--- deliantra/server/socket/request.C 2009/11/06 12:49:19 1.156 +++ deliantra/server/socket/request.C 2009/11/07 18:30:06 1.159 @@ -222,6 +222,51 @@ } /** + * This sends the skill number to name mapping. We ignore + * the params - we always send the same info no matter what. + */ +static void +send_skill_info (client *ns, char *params) +{ + packet sl; + sl << "replyinfo skill_info\n"; + + for (int i = 1; i < NUM_SKILLS; i++) + sl.printf ("%d:%s\n", i + CS_STAT_SKILLINFO, &skill_names [i]); + + if (sl.length () > MAXSOCKBUF) + { + LOG (llevError, "Buffer overflow in send_skill_info!\n"); + fatal (0); + } + + ns->send_packet (sl); +} + +/** + * This sends the spell path to name mapping. We ignore + * the params - we always send the same info no matter what. + */ +static void +send_spell_paths (client * ns, char *params) +{ + packet sl; + + sl << "replyinfo spell_paths\n"; + + for (int i = 0; i < NRSPELLPATHS; i++) + sl.printf ("%d:%s\n", 1 << i, spellpathnames[i]); + + if (sl.length () > MAXSOCKBUF) + { + LOG (llevError, "Buffer overflow in send_spell_paths!\n"); + fatal (0); + } + + ns->send_packet (sl); +} + +/** * RequestInfo is sort of a meta command. There is some specific * request of information, but we call other functions to provide * that information. @@ -533,9 +578,9 @@ pl->count = 0; //TODO: schmorp thinks whatever this calculates, it makes no sense at all - int time = fabs (pl->ob->speed) < 0.001 - ? time = MAX_TIME * 100 - : time = (int) (MAX_TIME / fabs (pl->ob->speed)); + int time = pl->ob->has_active_speed () + ? (int) (MAX_TIME / fabs (pl->ob->speed)) + : MAX_TIME * 100; /* Send confirmation of command execution now */ packet sl ("comc"); @@ -795,9 +840,9 @@ AddIfShort (ns->last_stats.wc, ob->stats.wc, CS_STAT_WC); AddIfShort (ns->last_stats.ac, ob->stats.ac, CS_STAT_AC); AddIfShort (ns->last_stats.dam, ob->stats.dam, CS_STAT_DAM); - AddIfFloat (ns->last_speed, ob->speed, CS_STAT_SPEED, 1.f/TICK); + AddIfFloat (ns->last_speed, ob->speed, CS_STAT_SPEED, 1.f / TICK); AddIfShort (ns->last_stats.food, ob->stats.food, CS_STAT_FOOD); - AddIfFloat (ns->last_weapon_sp, pl->weapon_sp, CS_STAT_WEAP_SP, 1.f/TICK); + AddIfFloat (ns->last_weapon_sp, pl->weapon_sp, CS_STAT_WEAP_SP, 1.f / TICK); AddIfInt (ns->last_weight_limit, weight_limit[ob->stats.Str], CS_STAT_WEIGHT_LIM); flags = 0; @@ -1223,62 +1268,6 @@ } } -/*****************************************************************************/ -/* GROS: The following one is used to allow a plugin to send a generic cmd to*/ -/* a player. Of course, the client need to know the command to be able to */ -/* manage it ! */ -/*****************************************************************************/ -void -send_plugin_custom_message (object *pl, char *buf) -{ - pl->contr->ns->send_packet (buf); -} - -/** - * This sends the skill number to name mapping. We ignore - * the params - we always send the same info no matter what. - */ -void -send_skill_info (client *ns, char *params) -{ - packet sl; - sl << "replyinfo skill_info\n"; - - for (int i = 1; i < NUM_SKILLS; i++) - sl.printf ("%d:%s\n", i + CS_STAT_SKILLINFO, &skill_names [i]); - - if (sl.length () > MAXSOCKBUF) - { - LOG (llevError, "Buffer overflow in send_skill_info!\n"); - fatal (0); - } - - ns->send_packet (sl); -} - -/** - * This sends the spell path to name mapping. We ignore - * the params - we always send the same info no matter what. - */ -void -send_spell_paths (client * ns, char *params) -{ - packet sl; - - sl << "replyinfo spell_paths\n"; - - for (int i = 0; i < NRSPELLPATHS; i++) - sl.printf ("%d:%s\n", 1 << i, spellpathnames[i]); - - if (sl.length () > MAXSOCKBUF) - { - LOG (llevError, "Buffer overflow in send_spell_paths!\n"); - fatal (0); - } - - ns->send_packet (sl); -} - /** * This looks for any spells the player may have that have changed their stats. * it then sends an updspell packet for each spell that has changed in this way