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.173 by root, Wed May 4 19:04:45 2011 UTC

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