void send_actors_to_client(int connection){ /** RESULT : make this actor and other actors visible to this client RETURNS : void PURPOSE : used by add_char_to_map function **/ int i; unsigned char packet[1024]; int packet_length; int map_id=clients.client[connection].map_id; int map_tile=clients.client[connection].map_tile; int char_visual_range=get_char_visual_range(connection); for(i=0; i<MAX_CLIENTS; i++){ //restrict to characters on the same map if(map_id==clients.client[i].map_id){ //restrict to characters within visual range of this character if(get_proximity(map_tile, clients.client[i].map_tile, maps.map[map_id].map_axis)<=char_visual_range){ //send actors within visual proximity to this char add_new_enhanced_actor_packet(i, packet, &packet_length); send(connection, packet, packet_length, 0); } } } }
unsigned int DtSR_SearchResultsEntry::relevance() { if ((int)f_relevance != Inv_Relevance) return f_relevance; int prox; if ((prox = get_proximity(DtSR_SearchZones::uas_all)) >= 0) { return f_relevance = proximity2relevance(prox); } int nzones = 0; unsigned int relevance = 0; for (int i=0; i<DtSR_SearchZones::uas_all; i++) { if ((prox = get_proximity((DtSR_SearchZones::uas_zones) i)) >= 0) { relevance += proximity2relevance(prox); nzones++; } } assert( nzones > 0 ); return f_relevance = relevance / nzones; }