KoF0.70/
KoF0.70/datafiles/old_datafiles/
KoF0.70/helpfiles/
KoF0.70/miscfiles/
KoF0.70/motds/motd1/
KoF0.70/motds/motd2/
KoF0.70/socfiles/
KoF0.70/textfiles/
KoF0.70/textfiles/adminfiles/
KoF0.70/userfiles/
KoF0.70/userfiles/friends/
KoF0.70/userfiles/historys/
KoF0.70/userfiles/macros/
KoF0.70/userfiles/mail/
KoF0.70/userfiles/profiles/
KoF0.70/userfiles/rooms/
KoF0.70/userfiles/userfiles/
KoF0.70/userfiles/userfiles/friends/
KoF0.70/userfiles/userfiles/historys/
KoF0.70/userfiles/userfiles/macros/
KoF0.70/userfiles/userfiles/mail/
KoF0.70/userfiles/userfiles/profiles/
KoF0.70/userfiles/userfiles/reminders/
KoF0.70/userfiles/userfiles/rooms/
KoF0.70/userfiles/userfiles/xgcoms/
KoF0.70/userfiles/xgcoms/
/*****************************************************************************
               Prototypes header file for Amnuts version 2.2.0
      Copyright (C) Andrew Collington - Last update: 20th September, 1999
               amnuts@iname.com  |  http://www.talker.com/amnuts/
 *****************************************************************************/
  /**************************************************************************
 *                KoF 0.70.b is done by Lauri Tamm                           *
 *                ( larts@hot.ee or lauri@erm.ee )                           *
   **************************************************************************/


#define args(list) list

/* external prototypes used - should you get an error with these then
   comment them out... but you shouldn't! */

extern char * crypt(const char *,const char*);
#if !defined __GLIBC__ || __GLIBC__ < 2
extern void (*signal(int,void (int)))(int);
#else
extern void (*sysv_signal(int,void (int)))(int);
#endif

/* main function */

int       main args((int argc, char *argv[]));

/* string functions - comparisons, convertions, etc */

int       get_charclient_line args((UR_OBJECT user, char *inpstr, int len));
void      terminate args((char *str));
int       wordfind args((char *inpstr));
void      clear_words args((void));
int       yn_check args((char *wd));
int       onoff_check args((char *wd));
int       minmax_check args((char *wd));
int       resolve_check args((char *wd));
void      echo_off args((UR_OBJECT user));
void      echo_on args((UR_OBJECT user));
char *    remove_first args((char *inpstr));
int       contains_swearing args((char *str));
char *    censor_swear_words args((char *has_swears));
int       colour_com_count args((char *str));
char *    colour_com_strip args((char *str));
void      strtoupper args((char *str));
void      strtolower args((char *str));
int       is_number args((char *str));
char *    istrstr args((char *str, char *pat));
char *    replace_string args((char *inpstr,char *old,char *new));
int       instr args((char *s1,char *s2));
void      midcpy args((char *strf,char *strt,int fr,int to));
char *    ordinal_text args((int num));
char *    long_date args((int which));
void      smiley_type args((char *str, char *type));
char *    center_string args((int cstrlen,int mark,char *marker,char *str,...));

/* Object functions */

void      create_system args((void));
UR_OBJECT create_user args((void));
void      reset_user args((UR_OBJECT user));
void      destruct_user args((UR_OBJECT user));
RM_OBJECT create_room args((void));
void      destruct_room args((RM_OBJECT rm));
int       add_command args((int cmd_id));
int       rem_command args((int cmd_id));
int       add_user_node args((char *name,int level));
int       rem_user_node args((char *name,int lev));
void      add_user_date_node args((char *name,char *date));
int       add_wiz_node args((char *name,int level));
int       rem_wiz_node args((char *name));
int       user_list_level args((char *name, int lvl));

/* performs checks and searchs */

void      check_directories args((void));
int       pattern_match args((char *str,char *pat));
int       site_banned args((char *sbanned,int new));
int       login_port_flood args((char *asite));
int       user_banned args((char *name));
void      reset_access args((RM_OBJECT rm));
UR_OBJECT get_user args((char *name));
UR_OBJECT get_user_name args((UR_OBJECT user,char *i_name));
RM_OBJECT get_room args((char *name));
RM_OBJECT get_room_full args((char *name));
int       get_level args((char *name));
int       has_room_access args((UR_OBJECT user,RM_OBJECT rm));
void      check_start_room args((UR_OBJECT user));
int       find_user_listed args((char *name));
int       validate_email args((char *email));
int       user_logged_on args((char *name));
int       in_private_room args((UR_OBJECT user));
int       has_gcom args((UR_OBJECT user,int cmd_id));
int       has_xcom args((UR_OBJECT user,int cmd_id));
int       is_personal_room args((RM_OBJECT rm));
int       is_my_room args((UR_OBJECT user,RM_OBJECT rm));
int       room_visitor_count args((RM_OBJECT rm));
int       has_room_key args((char *visitor,RM_OBJECT rm));

/* setting up of sockets */

void      setup_readmask args((fd_set *mask));
void      accept_connection args((int lsock,int num));
char *    get_ip_address args((struct sockaddr_in acc_addr));
char *    resolve_ip args((char *host));
void      init_sockets args((void));

/* loading up and parsing of the configuration files */

void      load_and_parse_config args((void));
void      parse_init_section args((void));
void      parse_rooms_section args((void));
void      parse_topics_section args((char *topic));
void      parse_user_rooms args((void));

/* signal handlers and exit functions */

void      init_signals args((void));
void      sig_handler args((int sig));
void      boot_exit args((int code));

/* event functions */

void      do_events args((int sig));
void      reset_alarm args((void));
void      check_reboot_shutdown args((void));
void      check_idle_and_timeout args((void));
void      check_messages args((UR_OBJECT user, int chforce));
void      record_last_login args((char *name));
void      record_last_logout args((char *name));

/* initializing of the globals and other stuff */

int       load_user_details args((UR_OBJECT user));
int       save_user_details args((UR_OBJECT user,int save_current));
int       load_user_details_old args((UR_OBJECT user));
int       load_oldversion_user args((UR_OBJECT user,int version));
void      set_date_time args((void));
void      process_users args((void));
void      count_users args((void));
void      parse_commands args((void));
void      count_suggestions args((void));
int       count_motds args((int forcecnt));
int       get_motd_num args((int motd));

/* file functions - reading, writing, counting of lines, etc */

void      clean_files args((char *name));
int       remove_top_bottom args((char *filename,int where));
int       count_lines args((char *filename));

/* write functions - users, rooms, system logs, etc */

void      write_sock args((int sock, char *str));
void      vwrite_user args((UR_OBJECT user,char *str,...));
void      write_user args((UR_OBJECT user, char *str));
void      write_level args((int level,int above,char *str,UR_OBJECT user));
void      vwrite_room args((RM_OBJECT rm,char *str,...));
void      write_room args((RM_OBJECT rm,char *str));
void      vwrite_room_except args((RM_OBJECT rm,UR_OBJECT user,char *str,...));
void      write_room_except args((RM_OBJECT rm,char *str,UR_OBJECT user));
void      write_friends args((UR_OBJECT user,char *str,int revt));
void      write_syslog args((int type,int write_time,char *str, ...));
void      record_last_command args((UR_OBJECT user,int comnum,int len));
void      dump_commands args((int foo));
void      write_monitor args((UR_OBJECT user,RM_OBJECT rm,int rec));
int       more args((UR_OBJECT user,int sock,char *filename));
int       more_users args((UR_OBJECT user));
void      add_history args((char *name,int showtime,char *str));

/* logon/off functions */

void      login args((UR_OBJECT user, char *inpstr));
void      attempts args((UR_OBJECT user));
void      show_login_info args((UR_OBJECT user));
void      connect_user args((UR_OBJECT user));
void      disconnect_user args((UR_OBJECT user));

/* misc and line editor functions */

int       misc_ops args((UR_OBJECT user, char *inpstr));
void      editor args((UR_OBJECT user, char *inpstr));
void      editor_done args((UR_OBJECT user));

/* user command functions and their subsids */

void      do_srload args(());
void      do_srboot args(());
int       process_input_string args((UR_OBJECT user,char *inpstr));
void      split_command_string args((char *inpstr));
int       exec_com args((UR_OBJECT user, char *inpstr));
void      talker_shutdown args((UR_OBJECT user,char *str,int reboot));
void      shutdown_com args((UR_OBJECT user));
void      reboot_com args((UR_OBJECT user));
void      record args((RM_OBJECT rm,char *str));
void      record_tell args((UR_OBJECT user, char *str));
/* void      record_shout args((char *str));
*/
void      record_afk args((UR_OBJECT user, char *str));
void      record_edit args((UR_OBJECT user, char *str));
void      clear_revbuff args((RM_OBJECT rm));
void      clear_tells args((UR_OBJECT user));
/* void      clear_shouts args((void));
*/
void      cls args((UR_OBJECT user));
int       send_mail args((UR_OBJECT user,char *to,char *ptr,int iscopy));
void      smail args((UR_OBJECT user, char *inpstr,int done_editing));
void      rmail args((UR_OBJECT user));
void      read_specific_mail args((UR_OBJECT user));
void      read_new_mail args((UR_OBJECT user));
void      dmail args((UR_OBJECT user));
void      mail_from args((UR_OBJECT user));
void      copies_to args((UR_OBJECT user));
void      send_copies args((UR_OBJECT user,char *ptr));
void      level_mail args((UR_OBJECT user, char *inpstr,int done_editing));
int       send_broadcast_mail args((UR_OBJECT user,char *ptr,int lvl,int type));
int       mail_sizes args((char *name,int type));
int       reset_mail_counts args((UR_OBJECT user));
void      set_forward_email args((UR_OBJECT user));
void      verify_email args((UR_OBJECT user));
void      forward_email args((char *name,char *from,char *message));
int       send_forward_email args((char *send_to,char *mail_file));
int       double_fork args((void));
void      forward_specific_mail args((UR_OBJECT user));
void      read_board args((UR_OBJECT user));
void      read_board_specific args((UR_OBJECT user,RM_OBJECT rm,int msg_number));
void      write_board args((UR_OBJECT user, char *inpstr,int done_editing));
void      wipe_board args((UR_OBJECT user));
int       check_board_wipe args((UR_OBJECT user));
void      board_from args((UR_OBJECT user));
void      search_boards args((UR_OBJECT user));
void      suggestions args((UR_OBJECT user,int done_editing));
void      delete_suggestions args((UR_OBJECT user));
void      suggestions_from args((UR_OBJECT user));
int       get_wipe_parameters args((UR_OBJECT user));
int       wipe_messages args((char *filename,int from,int to,int type));
void      listbans args((UR_OBJECT user));
void      ban args((UR_OBJECT user));
void      auto_ban_site args((char *asite));
void      ban_site args((UR_OBJECT user));
void      ban_user args((UR_OBJECT user));
void      ban_new args((UR_OBJECT user));
void      unban args((UR_OBJECT user));
void      unban_site args((UR_OBJECT user));
void      unban_user args((UR_OBJECT user));
void      unban_new args((UR_OBJECT user));
void      look args((UR_OBJECT user));
void      who args((UR_OBJECT user,int type));
void      login_who args((UR_OBJECT user));
void      display_files args((UR_OBJECT user,int admins));
void      help args((UR_OBJECT user));
void      help_commands_level args((UR_OBJECT user,int is_wrap));
void      help_commands_function args((UR_OBJECT user,int is_wrap));
void      help_credits args((UR_OBJECT user));
void      say args((UR_OBJECT user, char *inpstr));
void      say_to args((UR_OBJECT, char*inpstr));
void      shout args((UR_OBJECT user, char *inpstr));
void      tell args((UR_OBJECT user, char *inpstr));
void      emote args((UR_OBJECT user, char *inpstr));
void      semote args((UR_OBJECT user, char *inpstr));
void      pemote args((UR_OBJECT user, char *inpstr));
void      echo args((UR_OBJECT user, char *inpstr));
void      plead args((UR_OBJECT user, char *inpstr));
void      wizshout args((UR_OBJECT user, char *inpstr));
void      wizemote args((UR_OBJECT user, char *inpstr));
void      act args((UR_OBJECT user));
void      brand args((UR_OBJECT user));
void      news args((UR_OBJECT user));
void      think_it args((UR_OBJECT user, char *inpstr));
void      sing_it args((UR_OBJECT user, char *inpstr));
void      bcast args((UR_OBJECT user, char *inpstr,int beeps));
void      wake args((UR_OBJECT user));
void      beep args((UR_OBJECT user,char *inpstr));
void      quick_call args((UR_OBJECT user));
void      revclr args((UR_OBJECT user));
/* void      revshout args((UR_OBJECT user));
*/
void      prev args((UR_OBJECT user));
void      review args((UR_OBJECT user));
void      status args((UR_OBJECT user));
void      examine args((UR_OBJECT user));
void      set_attributes args((UR_OBJECT user, char *inpstr));
void      show_attributes args((UR_OBJECT user));
void      prompt args((UR_OBJECT user));
void      toggle_prompt args((UR_OBJECT user));
void      toggle_mode args((UR_OBJECT user));
void      toggle_charecho args((UR_OBJECT user));
void      set_desc args((UR_OBJECT user, char *inpstr));
void      set_iophrase args((UR_OBJECT user, char *inpstr));
void      enter_profile args((UR_OBJECT user,int done_editing));
void      account_request args((UR_OBJECT user, char *inpstr));
void      afk args((UR_OBJECT user, char *inpstr));
void      get_macros args((UR_OBJECT user));
void      macros args((UR_OBJECT user));
void      check_macros args((UR_OBJECT user, char *inpstr));
void      visibility args((UR_OBJECT user,int vis));
void      make_invis args((UR_OBJECT user));
void      make_vis args((UR_OBJECT user));
void      show_igusers args((UR_OBJECT user));
int       check_igusers args((UR_OBJECT user,UR_OBJECT ignoring));
void      set_igusers args((UR_OBJECT user));
void      set_ignore args((UR_OBJECT user));
void      show_ignlist args((UR_OBJECT user));
void      toggle_ignall args((UR_OBJECT user));
void      user_listen args((UR_OBJECT user));
void      create_clone args((UR_OBJECT user));
void      destroy_user_clones args((UR_OBJECT user));
void      destroy_clone args((UR_OBJECT user));
void      myclones args((UR_OBJECT user));
void      allclones args((UR_OBJECT user));
void      clone_switch args((UR_OBJECT user));
void      clone_say args((UR_OBJECT user, char *inpstr));
void      clone_emote args((UR_OBJECT user, char *inpstr));
void      clone_hear args((UR_OBJECT user));
void      go args((UR_OBJECT user));
void      move_user args((UR_OBJECT user,RM_OBJECT rm,int teleport));
void      move args((UR_OBJECT user));
void      set_room_access args((UR_OBJECT user));
void      change_room_fix args((UR_OBJECT user,int fix));
void      invite args((UR_OBJECT user));
void      uninvite args((UR_OBJECT user));
void      letmein args((UR_OBJECT user));
void      rooms args((UR_OBJECT user,int show_topics,int wrap));
void      join args((UR_OBJECT user));
void      set_topic args((UR_OBJECT user, char *inpstr));
void      check_autopromote args((UR_OBJECT user,int attrib));
void      promote args((UR_OBJECT user));
void      demote args((UR_OBJECT user));
void      arrest args((UR_OBJECT user));
void      unarrest args((UR_OBJECT user));
void      change_pass args((UR_OBJECT user));
void      kill_user args((UR_OBJECT user));
void      suicide args((UR_OBJECT user));
void      delete_user args((UR_OBJECT user,int this_user));
int       purge args((int type,char *purge_site,int purge_days));
void      purge_users args((UR_OBJECT user));
void      user_expires args((UR_OBJECT user));
void      create_account args((UR_OBJECT user));
void      force_save args((UR_OBJECT user));
void      viewlog args((UR_OBJECT user));
void      show_last_login args((UR_OBJECT user));
void      samesite args((UR_OBJECT user,int stage));
void      site args((UR_OBJECT user));
void      manual_history args((UR_OBJECT user, char *inpstr));
void      user_history args((UR_OBJECT user));
void      logging args((UR_OBJECT user));
void      minlogin args((UR_OBJECT user));
void      system_details args((UR_OBJECT user));
void      clearline args((UR_OBJECT user));
void      toggle_swearban args((UR_OBJECT user));
void      display_colour args((UR_OBJECT user));
void      show args((UR_OBJECT user, char *inpstr));
void      wiz_list args((UR_OBJECT user));
void      get_time args((UR_OBJECT user));
void      show_version args((UR_OBJECT user));
void      show_memory args((UR_OBJECT user));
void      play_hangman args((UR_OBJECT user));
char *    get_hang_word args((char *aword));
void      guess_hangman args((UR_OBJECT user));
void      show_command_counts args((UR_OBJECT user));
void      recount_users args((UR_OBJECT user,int ok));
void      set_command_level args((UR_OBJECT user));
void      grep_users args((UR_OBJECT user));
void      shoot_user args((UR_OBJECT user));
void      reload_gun args((UR_OBJECT user));
void      set_command_level args((UR_OBJECT user));
void      user_xcom args((UR_OBJECT user));
void      user_gcom args((UR_OBJECT user));
int       set_xgcom args((UR_OBJECT user,UR_OBJECT u,int id,int banned,int set));
int       get_xgcoms args((UR_OBJECT user));
void      reload_room_description args((UR_OBJECT user));

/* friends stuff */

int       user_is_friend args((UR_OBJECT user, UR_OBJECT u));
void      alert_friends args((UR_OBJECT user));
void      get_friends args((UR_OBJECT user));
void      friends args((UR_OBJECT user));
void      friend_say args((UR_OBJECT user, char *inpstr));
void      friend_emote args((UR_OBJECT user, char *inpstr));
void      friend_smail args((UR_OBJECT user, char *inpstr,int done_editing));

void      bring args((UR_OBJECT user));
void      force args((UR_OBJECT user,char *inpstr));

/* calendar and reminders stuff */

int       is_leap args((unsigned yr));
unsigned  months_to_days args((unsigned mn));
long      years_to_days args((unsigned yr));
long      ymd_to_scalar args((unsigned yr,unsigned mo,unsigned dy));
void      scalar_to_ymd args((long scalar,unsigned *yr,unsigned *mo,unsigned *dy));
int       is_ymd_today args((unsigned yr,unsigned mo,unsigned dy));
void      show_calendar args((UR_OBJECT user));
int       has_reminder args((UR_OBJECT user,int dd,int mm,int yy));
int       has_reminder_today args((UR_OBJECT user));
int       remove_old_reminders args((UR_OBJECT user));
int       read_user_reminders args((UR_OBJECT user));
int       write_user_reminders args((UR_OBJECT user));
void      show_reminders args((UR_OBJECT user,int stage));

/* personal rooms stuff */

void      personal_room args((UR_OBJECT user));
void      personal_room_lock args((UR_OBJECT user));
void      personal_room_visit args((UR_OBJECT user));
void      personal_room_decorate args((UR_OBJECT user,int done_editing));
int       personal_room_store args((char *name,int store,RM_OBJECT rm));
void      personal_room_admin args((UR_OBJECT user));
void      personal_room_key args((UR_OBJECT user));
int       personal_key_add args((UR_OBJECT user, char *name));
int       personal_key_remove args((UR_OBJECT user, char *name));
void      personal_room_bgone args((UR_OBJECT user));

void      dump_to_file args((UR_OBJECT user));
void      change_user_name args((UR_OBJECT user));