亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? attributes.h

?? MUD游戲編程光盤代碼
?? H
字號:
// MUD Programming
// Ron Penton
// (C)2003
// Attributes.h - This file defines all player attributes.
// 
// 


#ifndef ATTRIBUTES_H
#define ATTRIBUTES_H


using std::string;
using std::ostream;
using std::istream;

namespace SimpleMUD
{

// ======================================
//  GENERIC FUNCTIONS
// ======================================

// ----------------------------------------------------------------------------
//  A function to convert a string into an enumeration. It takes three
//  template parameters: the type of the enumeration, the size of the enumeration,
//  and an array of strings holding the enumeration names
// ----------------------------------------------------------------------------
template< typename enumeration, int size >
inline enumeration StrToEnum( string p_str, const string* strs )
{
    p_str = BasicLib::UpperCase( p_str );

    for( int i = 0; i < size; i++ )
    {
        if( strs[i] == p_str )
            return (enumeration)(i);
    }

    return (enumeration)(0);
}

// ----------------------------------------------------------------------------
//  A function to convert an enumeration into a string. It takes three
//  template parameters: the type of the enumeration, the size of the enumeration,
//  and an array of strings holding the enumeration names
// ----------------------------------------------------------------------------
template< typename enumeration >
inline string EnumToStr( enumeration p_enum, const string* strs )
{
    return strs[p_enum];
}





// ======================================
//  PLAYER ATTRIBUTES
// ======================================

// --------------------------------------------------------------------
//  An enumeration defining the attributes of a player, and 
//  accompanying functions.
// --------------------------------------------------------------------
enum Attribute
{
    STRENGTH        = 0,
    HEALTH          = 1,
    AGILITY         = 2,
    MAXHITPOINTS    = 3,
    ACCURACY        = 4,
    DODGING         = 5,
    STRIKEDAMAGE    = 6,
    DAMAGEABSORB    = 7,
    HPREGEN         = 8
};

const int NUMATTRIBUTES = 9;

static const string ATTRIBUTESTRINGS[NUMATTRIBUTES] = 
{
    "STRENGTH",
    "HEALTH",
    "AGILITY",
    "MAXHITPOINTS",
    "ACCURACY",
    "DODGING",
    "STRIKEDAMAGE",
    "DAMAGEABSORB",
    "HPREGEN"
};


inline Attribute GetAttribute( string p_str )
{
    return StrToEnum<Attribute, NUMATTRIBUTES>( p_str, ATTRIBUTESTRINGS );
}
inline string GetAttributeString( Attribute p_enum )
{
    return EnumToStr<Attribute>( p_enum, ATTRIBUTESTRINGS );
}


class AttributeSet
{
public:
    AttributeSet()
    {
        for( int i = 0; i < NUMATTRIBUTES; i++ )
        {
            m_attributes[i] = 0;
        }
    }

    int& operator[]( int p_attr )
    {
        return m_attributes[p_attr];
    }

    friend ostream& operator<<( ostream& p_stream, const AttributeSet& a );
    friend istream& operator>>( istream& p_stream, AttributeSet& a );


protected:
    int m_attributes[NUMATTRIBUTES];
};


inline ostream& operator<<( ostream& p_stream, const AttributeSet& a )
{
    for( int i = 0; i < NUMATTRIBUTES; i++ )
    {
        p_stream << "[" << GetAttributeString( (Attribute)i ) << 
                    "] " << a.m_attributes[i] << "\n";
    }

    return p_stream;
}

inline istream& operator>>( istream& p_stream, AttributeSet& a )
{
    std::string temp;

    for( int i = 0; i < NUMATTRIBUTES; i++ )
    {
        p_stream >> temp >> a.m_attributes[i];
    }

    return p_stream;
}






// ======================================
//  ITEM TYPES
// ======================================

// --------------------------------------------------------------------
//  An enumeration defining the various item types and accompanying
//  functions
// --------------------------------------------------------------------
enum ItemType
{
    WEAPON,
    ARMOR,
    HEALING
};

const int NUMITEMTYPES = 3;

const string ITEMSTRINGS[NUMITEMTYPES] =
{
    "WEAPON",
    "ARMOR",
    "HEALING"
};

inline ItemType GetItemType( string p_str )
{
    return StrToEnum<ItemType, NUMITEMTYPES>( p_str, ITEMSTRINGS );
}
inline string GetItemTypeString( ItemType p_enum )
{
    return EnumToStr<ItemType>( p_enum, ITEMSTRINGS );
}







// ======================================
//  PLAYER RANKS
// ======================================

// --------------------------------------------------------------------
//  An enumeration defining the various player types and accompanying
//  functions
// --------------------------------------------------------------------
enum PlayerRank
{
    REGULAR,
    GOD,
    ADMIN
};

const int NUMPLAYERRANKTYPES = 3;

const string PLAYERRANKSTRINGS[NUMPLAYERRANKTYPES] =
{
    "REGULAR",
    "GOD",
    "ADMIN"
};


inline PlayerRank GetRank( string p_str )
{
    return StrToEnum<PlayerRank, NUMPLAYERRANKTYPES>( p_str, PLAYERRANKSTRINGS );
}
inline string GetRankString( PlayerRank p_enum )
{
    return EnumToStr<PlayerRank>( p_enum, PLAYERRANKSTRINGS );
}



// ======================================
//  ROOM TYPES
// ======================================

// --------------------------------------------------------------------
//  An enumeration defining the various room types and accompanying
//  functions
// --------------------------------------------------------------------
enum RoomType
{
    PLAINROOM,
    TRAININGROOM,
    STORE
};

const int NUMROOMTYPES = 3;

const string ROOMTYPESTRINGS[NUMROOMTYPES] =
{
    "PLAINROOM",
    "TRAININGROOM",
    "STORE"
};


inline RoomType GetRoomType( string p_str )
{
    return StrToEnum<RoomType, NUMROOMTYPES>( p_str, ROOMTYPESTRINGS );
}
inline string GetRoomTypeString( RoomType p_enum )
{
    return EnumToStr<RoomType>( p_enum, ROOMTYPESTRINGS );
}



// ======================================
//  DIRECTIONS
// ======================================

// --------------------------------------------------------------------
//  An enumeration defining the various room directions and accompanying
//  functions
// --------------------------------------------------------------------
enum Direction
{
    NORTH,
    EAST,
    SOUTH,
    WEST
};

const int NUMDIRECTIONS = 4;

inline int OppositeDirection( int p_dir )
{
    return (p_dir + 2) % 4;
}

const string DIRECTIONSTRINGS[NUMDIRECTIONS] =
{
    "NORTH",
    "EAST",
    "SOUTH",
    "WEST"
};


inline Direction GetDirection( string p_str )
{
    return StrToEnum<Direction, NUMDIRECTIONS>( p_str, DIRECTIONSTRINGS );
}
inline string GetDirectionString( Direction p_enum )
{
    return EnumToStr<Direction>( p_enum, DIRECTIONSTRINGS );
}

}   // end namespace SimpleMUD

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品免费视频网站| 成人小视频在线| 国产女人18水真多18精品一级做 | 粉嫩av一区二区三区粉嫩| 亚洲精品日产精品乱码不卡| 日韩亚洲欧美在线| 91天堂素人约啪| 国产精品一区专区| 日韩和欧美一区二区| 亚洲精品乱码久久久久久久久| 日韩欧美一区电影| 欧美剧情电影在线观看完整版免费励志电影| 国内精品久久久久影院色 | 亚洲三级小视频| 久久婷婷久久一区二区三区| 欧美人与禽zozo性伦| 91网站最新地址| 国产ts人妖一区二区| 精品在线你懂的| 轻轻草成人在线| 午夜精品一区二区三区电影天堂 | 国产高清在线精品| 人人爽香蕉精品| 色婷婷国产精品综合在线观看| 国产精品原创巨作av| 麻豆成人综合网| 美女www一区二区| 麻豆精品精品国产自在97香蕉| 亚洲二区在线观看| 亚洲成人动漫在线免费观看| 亚洲精品成人少妇| 一区二区三区欧美日韩| 亚洲免费大片在线观看| 国产精品福利影院| 1000精品久久久久久久久| 国产精品不卡视频| 亚洲日本va在线观看| 综合色天天鬼久久鬼色| 亚洲天堂久久久久久久| 亚洲天堂精品在线观看| 一区二区三区四区在线播放| 亚洲欧美激情插| 一区二区三区中文在线观看| 亚洲欧美一区二区三区极速播放| 成人免费小视频| 一区二区三区四区不卡视频| 一区二区三区不卡在线观看| 一区二区三区四区国产精品| 亚洲高清在线视频| 午夜精品在线视频一区| 三级不卡在线观看| 日韩高清中文字幕一区| 日韩av成人高清| 日本亚洲天堂网| 国产高清不卡一区| 国产一区二区三区蝌蚪| av电影在线观看一区| 91丨九色porny丨蝌蚪| 欧美影院一区二区三区| 欧美日韩精品免费观看视频 | 欧美一区二区精品久久911| 日韩欧美在线影院| 精品国产伦一区二区三区观看方式 | 色老汉一区二区三区| 欧美午夜一区二区三区免费大片| 欧美视频日韩视频| 在线亚洲免费视频| 欧美日韩国产首页在线观看| 欧美亚洲综合网| 欧美一级欧美三级在线观看| 亚洲综合免费观看高清完整版| 国产亚洲美州欧州综合国| 久久精品人人做| 亚洲欧洲三级电影| 亚洲在线观看免费| 日本欧美一区二区| 日本伊人色综合网| 黄一区二区三区| 成人av免费在线| 欧美日韩中文字幕一区二区| 在线综合亚洲欧美在线视频| 国产欧美日产一区| 一区二区三区中文免费| 激情六月婷婷综合| 色综合久久久久| 精品国内片67194| 精品粉嫩超白一线天av| 一级女性全黄久久生活片免费| 亚洲日本va午夜在线影院| 中文字幕日韩av资源站| 亚洲精品一卡二卡| 日韩精品一卡二卡三卡四卡无卡| 九九九精品视频| 丁香婷婷综合网| 欧美一区欧美二区| 久久久99精品久久| 亚洲国产精品影院| 久久99九九99精品| 91蝌蚪porny九色| 9191成人精品久久| 中文字幕电影一区| 手机精品视频在线观看| 成人影视亚洲图片在线| 欧美卡1卡2卡| 中文av一区二区| 欧美色偷偷大香| 国产偷国产偷亚洲高清人白洁| ...中文天堂在线一区| 26uuu另类欧美| 欧美成人猛片aaaaaaa| 亚洲精品大片www| 国产日韩欧美在线一区| 国产91精品在线观看| 亚洲最色的网站| 国产成人av福利| 在线成人av网站| 国产精品热久久久久夜色精品三区| 成人动漫一区二区在线| 日韩精品在线一区| 亚洲一区二区三区国产| 蜜桃一区二区三区四区| 欧美午夜一区二区三区免费大片| 国产日韩欧美亚洲| 国产a精品视频| 欧美一卡二卡在线观看| 一区二区成人在线视频| 91免费看`日韩一区二区| 日韩视频在线观看一区二区| 日韩精品1区2区3区| 日韩女同互慰一区二区| 亚洲成人自拍网| 91网上在线视频| 久久久精品影视| 久久超碰97中文字幕| 日韩女优毛片在线| 日本久久一区二区三区| 色婷婷av一区| 青青草一区二区三区| 亚洲精品久久久久久国产精华液| 精品午夜久久福利影院| 在线播放中文一区| 一区二区三区日本| 99这里都是精品| 国产精品丝袜一区| 国产成人在线视频播放| 日韩视频免费观看高清完整版 | 色嗨嗨av一区二区三区| 国产精品三级久久久久三级| 精品一区二区在线视频| 久久综合中文字幕| 国产一区二区福利视频| 久久综合久色欧美综合狠狠| 免费高清在线一区| 精品久久人人做人人爽| 国产一区视频网站| 久久亚洲精品小早川怜子| 国产尤物一区二区在线| 5月丁香婷婷综合| 久久机这里只有精品| 精品国产乱码久久久久久影片| 黄页视频在线91| 久久精品视频网| av电影在线观看完整版一区二区| 中文字幕一区二区三区四区| 91亚洲精品久久久蜜桃| 亚洲欧美一区二区三区国产精品| 91亚洲永久精品| 亚洲狠狠爱一区二区三区| 欧美午夜一区二区| 日本美女一区二区| 久久综合久久99| 99久久免费精品| 一区二区三区蜜桃网| 91黄色激情网站| 另类小说综合欧美亚洲| 欧美aaaaaa午夜精品| 国产欧美日韩另类一区| 99热99精品| 亚洲高清不卡在线观看| 91精品国产综合久久久久久久久久 | 国模冰冰炮一区二区| 国产日韩影视精品| 一本到不卡精品视频在线观看| 亚洲观看高清完整版在线观看| 日韩一级高清毛片| 精品一区二区综合| 亚洲一级在线观看| 日韩欧美一区二区三区在线| 风间由美一区二区三区在线观看| 亚洲欧美另类综合偷拍| 91精品国产综合久久久久久久| 国产乱国产乱300精品| 99精品视频中文字幕| 99热这里都是精品| 在线亚洲精品福利网址导航| 欧美亚洲免费在线一区| 7777精品伊人久久久大香线蕉超级流畅 | 国产激情精品久久久第一区二区| 蜜乳av一区二区三区| 精品制服美女丁香|