summaryrefslogblamecommitdiff
path: root/src/defines.h
blob: 7fb33107f70bdd6fc81fde98c04ae944cc5023be (plain) (tree)
1
2
3
4
5
6
7
8
9





                                                  


                                                                               
  



                                                                               
  


                                                                               
  
        
   
 
 



                           


















                                                                               
 







                                           
 
   
                                            

      
                     








                                          
 
              




                                          
 
             

                                          








                                          
 
            

                                          

           




                                          

  




























                                   
 
 
                             
/*
 *  The Mana World Server
 *  Copyright 2004 The Mana World Development Team
 *
 *  This file is part of The Mana World.
 *
 *  The Mana World  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 any later version.
 *
 *  The Mana  World 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 The Mana  World; if not, write to the  Free Software Foundation, Inc.,
 *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 *
 *  $Id$
 */


#ifndef _TMWSERV_DEFINES_H_
#define _TMWSERV_DEFINES_H_


/**
 * Enumeration type for account levels.
 *
 * Note the the actual tasks that can be done by admin or gm, or the
 * restrictions on a restricted user, are not specified yet. Also, banned
 * status will probably be derived from a date field (the time until an account
 * is banned).
 *
 * It may be better to wait and see what permissions we'd want to grant to or
 * take from users, and then come up with a convenient way to handle that.
 */
typedef enum {
    AL_NORMAL,      // User has regular rights
    AL_ADMIN,       // User can perform administrator tasks
    AL_GM,          // User can perform a subset of administrator tasks
    AL_BANNED,      // This user is currently banned
    AL_RESTRICTED   // User rights have been restricted
} AccountLevels;


/**
 * Enumeration type for the player genders.
 */
typedef enum {
    GENDER_MALE,
    GENDER_FEMALE,
    GENDER_UNKNOWN
} Genders;

/**
 * Enumerated type for communicated messages
 */
enum {
    // Login/Register
    CMSG_REGISTER                = 0x0000,
    CMSG_ENCRYPTED_REGISTER      = 0x0001,
    SMSG_REGISTER_RESPONSE       = 0x0002,
    CMSG_LOGIN                   = 0x0010,
    CMSG_ENCRYPTED_LOGIN         = 0x0011,
    SMSG_LOGIN_ERROR             = 0x0012,
    SMSG_LOGIN_CONFIRM           = 0x0013,
    CMSG_CHAR_CREATE             = 0x0020,
    SMSG_CHAR_CREATE_RESPONSE    = 0x0021,

    // Objects
    SMSG_NEW_OBJECT              = 0x0100,
    SMSG_REMOVE_OBJECT           = 0x0101,
    SMSG_CHANGE_OBJECT           = 0x0102,
    CMSG_PICKUP                  = 0x0110,
    CMSG_USE_OBJECT              = 0x0120,

    // Beings
    SMSG_NEW_BEING               = 0x0200,
    SMSG_REMOVE_BEING            = 0x0201,
    SMSG_INVENTORY_UPD           = 0x0210,
    SMSG_EQUIPMENT_UPD           = 0x0220,
    SMSG_ATTACK                  = 0x0230,
    SMSG_PATH                    = 0x0240,
    CMSG_TARGET                  = 0x0250,
    CMSG_WALK                    = 0x0260,
    CMSG_START_TRADE             = 0x0270,
    CMSG_START_TALK              = 0x0280,
    CMSG_REQ_TRADE               = 0x0290,

    // Items
    CMSG_USE_ITEM                = 0x0300,
    CMSG_EQUIP                   = 0x0301,

    // Chat
    SMSG_CHAT                    = 0x0400,
    SMSG_SYSTEM                  = 0x0401,
    SMSG_ANNOUNCEMENT            = 0x0402,
    CMSG_SAY                     = 0x0410,
    CMSG_ANNOUNCE                = 0x0411,
};

// Login return values
enum {
    LOGIN_OK = 0,
    LOGIN_INVALID_USERNAME,
    LOGIN_INVALID_PASSWORD,
    LOGIN_INVALID_VERSION,
    LOGIN_SERVER_FULL,
    LOGIN_ACCOUNT_BANNED,
    LOGIN_ACCOUNT_REVIEW,
    LOGIN_UNKNOWN
};

enum {
    REGISTER_OK = 0,
    REGISTER_INVALID_USERNAME,
    REGISTER_INVALID_PASSWORD,
    REGISTER_INVALID_EMAIL,
    REGISTER_EXISTS_USERNAME,
    REGISTER_EXISTS_EMAIL
};

// Character creation return values
enum {
    CREATE_INVALID_NAME = 0,
    CREATE_INVALID_HAIR,
    CREATE_INVALID_SEX,
    CREATE_EXISTS_USERNAME,
    CREATE_EXISTS_EMAIL
};


#endif // _TMWSERV_DEFINES_H_