So far, i've only found ONE bug. If you've noticed that after
initiating a copyover, you can no longer do a
where <charactername> and be able to find that character.
of course, they DO show up on where (occasionally)
the fix i did for this, was to do this
*******************************************
file function where abouts
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
comm.c N/A with other externs
----------------------------------------------
extern struct char_data *character_list;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
comm.c copyover_recover() after enter_player_game()
----------------------------------------------
write_to_descriptor (desc, "\n\rCopyover recovery complete.\n\r");
enter_player_game(d);
+ d->character->next = character_list;
+ character_list = d->character;
d->connected = CON_PLAYING;
look_at_room(d->character, 0);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Simple fix, but a NECESSARY one. otherwise, you cannot
snoop, goto, tell, or anything else that would work if it
were global, TRUST me. and also, another thing i did,
was move the copyover_recover to inside the game_loop() function
BEFORE the while() command and after the time assignment. like this:
***********************************************
comm.c init_game() after boot_db(); call
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
log("Finding player limit.");
max_players = get_max_players();
if (!fCopyOver)
{
log("Opening mother connection.");
mother_desc = init_socket(port);
}
boot_db();
#ifndef CIRCLE_WINDOWS
log("Signal trapping.");
signal_setup();
#endif
- if (fCopyOver)
- copyover_recover();
log("Entering game loop.");
game_loop(mother_desc);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
comm.c game_loop() before the while(!circle_...) { }
-------------------------------------------------
/* initialize various time values */
null_time.tv_sec = 0;
null_time.tv_usec = 0;
opt_time.tv_usec = OPT_USEC;
opt_time.tv_sec = 0;
FD_ZERO(&null_set);
gettimeofday(&last_time, (struct timezone *) 0);
+ if (fCopyOver)
+ copyover_recover();
/* The Main Loop. The Big Cheese. The Top Dog. The Head Honcho. The.. */
while (!circle_shutdown) {
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
and that should make it work, if the character_list addition
thing doesn't work by itself.
anyway, other than the bug where he forgot to add the
character to the character_list, i had no problems with it :-)
pretty kewl if ya ask me, and i'm still modifiying it.
Code On
Akuma the Raging Coder
+------------------------------------------------------------+
| "The poets talk about love, but what I talk about is DOOM, |
| because in the end, DOOM is all that counts." - |
| Alex Machine/George Stark/Stephen King, The Dark Half |
| "Nothing is IMPOSSIBLE, Just IMPROBABLE" |
| "Easier Said Than Done, But Better Done Than Said..." |
+------------------------------------------------------------+
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST