Difference for server/swap.c from version 1.8 to 1.9


version 1.8 version 1.9
Line 1
 
Line 1
 /*  /*
  * static char *rcsid_swap_c =   * static char *rcsid_swap_c =
  *    "$Id: swap.c,v 1.8 2001/10/14 08:12:37 gros Exp $";   *    "$Id: swap.c,v 1.9 2002/04/21 05:23:20 mwedel Exp $";
  */   */
   
 /*  /*
     CrossFire, A Multiplayer game for X-windows      CrossFire, A Multiplayer game for X-windows
   
     Copyright (C) 2001 Mark Wedel      Copyright (C) 2002 Mark Wedel & Crossfire Development Team
     Copyright (C) 1992 Frank Tore Johansen      Copyright (C) 1992 Frank Tore Johansen
   
     This program is free software; you can redistribute it and/or modify      This program is free software; you can redistribute it and/or modify
Line 23
 
Line 23
     along with this program; if not, write to the Free Software      along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   
     The author can be reached via e-mail to mwedel@scruz.net      The author can be reached via e-mail to crossfire-devel@real-time.com
 */  */
   
 #include <global.h>  #include <global.h>
Line 115
 
Line 115
   int evtid;    int evtid;
   CFParm CFP;    CFParm CFP;
 #endif  #endif
   
   if(map->in_memory != MAP_IN_MEMORY) {    if(map->in_memory != MAP_IN_MEMORY) {
     LOG(llevError,"Tried to swap out map which was not in memory.\n");      LOG(llevError,"Tried to swap out map which was not in memory.\n");
     return;      return;
Line 122
 
Line 123
   for(pl=first_player;pl!=NULL;pl=pl->next)    for(pl=first_player;pl!=NULL;pl=pl->next)
     if(pl->ob == NULL || (!(QUERY_FLAG(pl->ob,FLAG_REMOVED)) && pl->ob->map == map))      if(pl->ob == NULL || (!(QUERY_FLAG(pl->ob,FLAG_REMOVED)) && pl->ob->map == map))
       break;        break;
   
   if(pl != NULL) {    if(pl != NULL) {
     LOG(llevDebug,"Wanted to swap out map with player.\n");      LOG(llevDebug,"Wanted to swap out map with player.\n");
     return;      return;
Line 158
 
Line 160
      */       */
     map->in_memory = MAP_IN_MEMORY;      map->in_memory = MAP_IN_MEMORY;
     delete_map(map);      delete_map(map);
   } else      } else {
     free_map(map,1);      free_map(map,1);
       }
   
 #ifdef RECYCLE_TMP_MAPS  #ifdef RECYCLE_TMP_MAPS
   write_map_log();    write_map_log();
 #endif  #endif
Line 263
 
Line 267
  !players_on_map(m)) {   !players_on_map(m)) {
  set_map_timeout(m);   set_map_timeout(m);
     }      }
   
    /* per player unique maps are never really reset.  However, we do want
    * to perdiocially remove the entries in the list of active maps - this
    * generates a cleaner listing if a player issues the map commands, and
    * keeping all those swapped out per player unique maps also has some
    * memory and cpu consumption.
    * We do the cleanup here because there are lots of places that call
    * swap map, and doing it within swap map may cause problems as
    * the functions calling it may not expect the map list to change
    * underneath them.
    */
    if (m->unique && m->in_memory == MAP_SWAPPED) {
        LOG(llevDebug,"Resetting map %s.\n",m->path);
        oldmap = m;
        m = m->next;
        delete_map(oldmap);
    }
 #ifdef MAP_RESET /* No need to flush them if there are no resets */  #ifdef MAP_RESET /* No need to flush them if there are no resets */
     if(m->in_memory != MAP_SWAPPED || m->tmpname == NULL ||   else if(m->in_memory != MAP_SWAPPED || m->tmpname == NULL ||
        sec < m->reset_time) {         sec < m->reset_time) {
  m = m->next;   m = m->next;
        }         }


Legend:
line(s) removed in v.1.8 
line(s) changed
 line(s) added in v.1.9

File made using version 1.98 of cvs2html by leaf at 2011-07-21 17:51