def parse_menu(msg)
case @mode
when :menu
case msg
when /^1/i
sendmsg(append_echo("Enter character name> "))
@mode = :menucr
when /^2/i
if characters.size == 0
sendmsg(append_echo(login_menu))
@mode = :menu
else
sendmsg(append_echo(character_menu))
@mode = :menupl
end
when /^Q/i
disconnect
else
sendmsg(append_echo(login_menu))
@mode = :menu
end
when :menucr
if msg.proper_name.empty?
sendmsg(append_echo(login_menu))
@mode = :menu
else
@character = new_char(msg.proper_name)
@conn.set(:color, color)
welcome
@mode = :playing
end
when :menupl
case msg
when /(\d+)/
if $1.to_i >= characters.size
sendmsg(append_echo(character_menu))
else
@character = get_object(characters[$1.to_i])
Engine.instance.db.makenoswap(@character.id)
world.connected_characters << @character.id
@character.account = self
welcome
@mode = :playing
end
else
sendmsg(append_echo(login_menu))
@mode = :menu
end
else
log.error "Account#parse_menu unknown :mode - #{@mode.inspect}"
end
end