/
ScryMUD/mud/
ScryMUD/mud/grrmud/Boards/
ScryMUD/mud/grrmud/Help/
ScryMUD/mud/grrmud/Pfiles/
ScryMUD/mud/grrmud/PlayerSacks/
ScryMUD/mud/grrmud/PlayerShops/
ScryMUD/mud/grrmud/help_filter/
ScryMUD/mud/hegemon/
ScryMUD/mud/hegemon/data/
ScryMUD/mud/hegemon/data/help/battle/
ScryMUD/mud/hegemon/data/help/client/
ScryMUD/mud/hegemon/data/help/communications/
ScryMUD/mud/hegemon/data/help/skills/
ScryMUD/mud/hegemon/data/help/spells/
ScryMUD/mud/include/
ScryMUD/mud/lib/
ScryMUD/mud/lib/bitfield/
ScryMUD/mud/lib/log/
ScryMUD/mud/lib/string2/
// $Id: commands.h,v 1.15.2.3 2000/05/13 19:42:57 greear Exp $
// $Revision: 1.15.2.3 $  $Author: greear $ $Date: 2000/05/13 19:42:57 $

//
//ScryMUD Server Code
//Copyright (C) 1998  Ben Greear
//
//This program is free software; you can redistribute it and/or
//modify it under the terms of the GNU General Public License
//as published by the Free Software Foundation; either version 2
//of the License, or (at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//
// To contact the Author, Ben Greear:  greear@cyberhighway.net, (preferred)
//                                     greearb@agcs.com
//

/************************  commands.h  ***************************/
/*  Contains all the prototypes for all commands found in command*.cc */


#ifndef __CommandsInclude__
#define __CommandsInclude__

#include "const.h"
#include "classes.h"
#include "critter.h"
#include "object.h"
#include "door.h"
#include "room.h"
#include "lang_strings.h"


int show_eq(critter& pc);
int drop(int i_th, const String* obj, const String* obj_all, critter& pc);
int donate(int i_th, const String* obj, const String* obj_all, critter& pc);

int wear(int i_th, const String* obj, int j, const String* posn, critter& 
          pc); 
int inventory(critter& pc);
int look(int i_th, const String* object, critter& looker,
         int ignore_brief = FALSE);
int do_look(int i_th, const String* obj, critter& pc, room& rm,
            int ignore_brief);

int cast(const String* spell_name, int j, const String* victim,
         critter& caster, int was_ordered);
int put(int i, const String* object, int j, const String* bag, critter& 
          putter); 
int get(int i, const String* object, int j, const String* bag,
        critter& getter, int do_msg = TRUE);

//Does some checking, similar in nature to hit
int try_hit(critter& vict, critter& pc);

int hit(int i_th, const String* victim, critter& hitter); 
int assist(int i_th, const String* friendly, critter& hitter);
int do_hit(critter& vict, critter& pc);
 
int say(const char* message, critter& pc, room& rm);
int yell(const char* message, critter& pc);
int shout(const char* message, critter& pc);
int gossip(const char* message, critter& pc);
int group_say(const char* message, critter& pc);
int wizchat(const char* message, critter& pc);
int auction(const char* message, critter& pc);
int west(critter& pc, room& rm, int& is_dead);
int east(critter& pc, room& rm, int& is_dead);
int south(critter& pc, room& rm, int& is_dead);
int north(critter& pc, room& rm, int& is_dead);
int northwest(critter& pc, room& rm, int& is_dead);
int southwest(critter& pc, room& rm, int& is_dead);
int southeast(critter& pc, room& rm, int& is_dead);
int northeast(critter& pc, room& rm, int& is_dead);
int up(critter& pc, room& rm, int& is_dead);
int down(critter& pc, room& rm, int& is_dead);
int remove(int i_th, const String* obj, critter& pc); 
int rest(critter& pc);
int sleep(critter& pc);
int meditate(critter& pc);
int stand(critter& pc);
int wake(critter& pc);
int sit(critter& pc);
int examine(int i_th, const String* obj, critter& pc);

//don't show msg to this last one if specified, wraps do_emote
int emote(const char* msg, critter& pc, room& rm, short show_non_detects,
          critter* noshow = NULL);

//don't show msg to this last one if specified, wraps do_emote
int emote(CSentryE cs_entry, critter& pc, room& rm, short show_non_detects,
          critter* noshow = NULL);

// Possessive emote, wraps do_emote
int pemote(const char* msg, critter& pc, room& rm, short show_non_detects,
           critter* noshow = NULL);
// Worker method.
int do_emote(const char* msg, CSentryE cs_entry, critter& pc, room& rm,
             short show_non_detects, int possessive, critter* crit = NULL);

// breaks from the tradition of the emote family, but then, emote could use
// some breaking.
int gemote(const char* msg, critter& pc);

///************************  login functions  ************************///

int start_login(critter& pc);
int do_login(critter& pc);
int quit_do_login_new(critter& pc);
int quit_do_login_old(critter& pc);



///*********************  auxillary functions  ***********************///

int source_give_to(critter& pc, object& obj, critter& targ); //does msgs
int move(critter& pc, int i_th, const char* direction, short do_followers,
          room& cur_room, int& is_dead, int check_no_wander = FALSE);
int don_obj(object& obj, critter& pc);
int out_eq(critter& targ, critter& looker);

int obj_wear_by(object& obj, critter& pc, int posn, short do_msg);
int obj_get_by(object& obj, critter& pc, short do_msg, int check_wt);
int obj_drop_by(object& obj, critter& pc);
int obj_remove_by(object& obj, critter& pc);
int eq_put_by(object& obj, object& bag, critter& pc, short obj_in_bag); 

int wear_eq_effects(object& obj, critter& pc, int posn, short do_msg);

int remove_eq_effects(object& obj, critter& pc, short from_corpse, 
                       short do_msg, int posn);

/** bag may be NULL, btw. */
int gain_eq_effects(object& obj, object* bag, critter& pc, short 
                    obj_in_bag, short do_msg, int& deleted_obj); 
int drop_eq_effects(object& obj, critter& pc, short do_msg, short is_junk = FALSE);
int donate_eq_effects(object& obj, critter& pc, short do_msg);
int consume_eq_effects(object& obj, critter& pc, short do_msg);


#endif //include