RocketMUD-0.3/help/
RocketMUD-0.3/log/
RocketMUD-0.3/players/
#
# RocketMUD was written by Jon Lambert, 2006.
# It is based on SocketMUD(tm) written by Brian Graversen.
# This code is released to the public domain.
#
#
# This file contains the dynamic help system.
# If you wish to update a help file, simply edit
# the entry in ../help/ and the mud will load the
# new version next time someone tries to access
# that help file.
#

#
# Check_help()
#
# This function first sees if there is a valid
# help file in the help_list, should there be
# no helpfile in the help_list, it will check
# the ../help/ directory for a suitable helpfile
# entry. Even if it finds the helpfile in the
# help_list, it will still check the ../help/
# directory, and should the file be newer than
# the currently loaded helpfile, it will reload
# the helpfile.
def check_help dMob, helpfile
  pHelp = nil
  entry = nil
  hFile = helpfile.upcase

  $help_list.each do |p|
    if is_prefix hFile, p.keyword
      pHelp = p
      break
    end
  end

  # If there is an updated version we load it
  if pHelp
    if last_modified(sprintf("help/%s", hFile)) > pHelp.load_time
      pHelp.text = read_help_entry "help/#{hFile}"
    end
  else # is there a version at all ??
    entry = read_help_entry "help/#{hFile}"
    if entry == nil
      return false
    else
      pHelp = Help.new hFile, entry
      $help_list << pHelp
    end
  end

  dMob.text_to_mobile sprintf("=== %s ===\r\n%s", pHelp.keyword, pHelp.text)

  return true
end

#
# Loads all the helpfiles found in ../help/
#
def load_helps
  log_string "Load_helps: getting all help files."

  Dir.entries("help").each do |entry|
    next if File.stat("help/#{entry}").directory?
    s = read_help_entry "help/#{entry}"

    if s.nil?
      bug "load_helps: Helpfile %s does not exist.", entry
      next
    end

    new_help = Help.new entry, s
    $help_list << new_help

    if "GREETING".casecmp(new_help.keyword) == 0
      $greeting = new_help.text
    elsif "MOTD".casecmp(new_help.keyword) == 0
      $motd = new_help.text
    end
  end
end

if __FILE__ == $0
  load_helps
  puts $motd
  puts $greeting
  pp $help_list
end