ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/main.C
(Generate patch)

Comparing deliantra/server/server/main.C (file contents):
Revision 1.172 by root, Wed May 4 07:36:41 2011 UTC vs.
Revision 1.174 by root, Tue Jan 3 11:25:36 2012 UTC

1/* 1/*
2 * This file is part of Deliantra, the Roguelike Realtime MMORPG. 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (©) 2005,2006,2007,2008,2009,2010,2011 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 4 * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2001-2003 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2001-2003 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992 Frank Tore Johansen 6 * Copyright (©) 1992 Frank Tore Johansen
7 * 7 *
8 * Deliantra is free software: you can redistribute it and/or modify it under 8 * Deliantra is free software: you can redistribute it and/or modify it under
9 * the terms of the Affero GNU General Public License as published by the 9 * the terms of the Affero GNU General Public License as published by the
370 _exit (make_core); 370 _exit (make_core);
371} 371}
372 372
373/* 373/*
374 * do_specials() is a collection of functions to call from time to time. 374 * do_specials() is a collection of functions to call from time to time.
375 * Modified 2000-1-14 MSW to use the global pticks count to determine how 375 * Modified 2000-1-14 MSW to use the global server_tick count to determine how
376 * often to do things. This will allow us to spred them out more often. 376 * often to do things. This will allow us to spred them out more often.
377 * I use prime numbers for the factor count - in that way, it is less likely 377 * I use prime numbers for the factor count - in that way, it is less likely
378 * these actions will fall on the same tick (compared to say using 500/2500/15000 378 * these actions will fall on the same tick (compared to say using 500/2500/15000
379 * which would mean on that 15,000 tick count a whole bunch of stuff gets 379 * which would mean on that 15,000 tick count a whole bunch of stuff gets
380 * done). Of course, there can still be times where multiple specials are 380 * done). Of course, there can still be times where multiple specials are
387do_specials () 387do_specials ()
388{ 388{
389 shstr::gc (); 389 shstr::gc ();
390 archetype::gc (); 390 archetype::gc ();
391 391
392 if (expect_false (!(pticks % TICKS_PER_HOUR))) 392 if (expect_false (!(server_tick % TICKS_PER_HOUR)))
393 maptile::adjust_daylight (); 393 maptile::adjust_daylight ();
394 394
395 if (expect_false (!(pticks % 2503))) 395 if (expect_false (!(server_tick % 2503)))
396 fix_weight (); /* Hack to fix weightproblems caused by bugs */ 396 fix_weight (); /* Hack to fix weightproblems caused by bugs */
397 397
398 if (expect_false (!(pticks % 5003))) 398 if (expect_false (!(server_tick % 5003)))
399 write_book_archive (); 399 write_book_archive ();
400 400
401 if (expect_false (!(pticks % 5009))) 401 if (expect_false (!(server_tick % 5009)))
402 clean_friendly_list (); 402 clean_friendly_list ();
403 403
404 if (expect_false (!(pticks % 5011))) 404 if (expect_false (!(server_tick % 5011)))
405 obsolete_parties (); 405 obsolete_parties ();
406 406
407 if (expect_false (!(pticks % 12503))) 407 if (expect_false (!(server_tick % 12503)))
408 fix_luck (); 408 fix_luck ();
409} 409}
410 410
411void 411void
412server_tick () 412one_tick ()
413{ 413{
414 // first do the user visible stuff 414 // first do the user visible stuff
415 INVOKE_GLOBAL (CLOCK); 415 INVOKE_GLOBAL (CLOCK);
416 process_events (); // "do" something with objects with speed 416 process_events (); // "do" something with objects with speed
417 client::clock (); // draw client maps etc. 417 client::clock (); // draw client maps etc.
418 418
419 // then do some bookkeeping, should not really be here 419 // then do some bookkeeping, should not really be here
420 do_specials (); /* Routines called from time to time. */ 420 do_specials (); /* Routines called from time to time. */
421 attachable::check_mortals (); 421 attachable::check_mortals ();
422 422
423 ++pticks; 423 // now that we aggressively reuse id's, this is very unlikely to happen...
424
425 if (object::object_count >= RESTART_COUNT) 424 if (object::object_count >= RESTART_COUNT)
426 cleanup ("running out of protocol ID values - need full restart"); 425 cleanup ("running out of protocol ID values - need full restart");
427} 426}
428 427
429// normal main 428// normal main

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines