Files
src-1.2/external/3rd/library/soePlatform/CTServiceGameAPI/CTCommon/CTServiceCharacter.h
T

74 lines
2.5 KiB
C++

#ifndef CTSERVICECHARACTER_H
#define CTSERVICECHARACTER_H
namespace CTService
{
//--------------------------------------------------------
class CTServiceCharacter
//--------------------------------------------------------
{
typedef unsigned short uchar_t;
inline void copy_wide_string(uchar_t * target, const uchar_t * source, int length)
{
if (!target)
return;
if (!source)
{
target[0] = 0;
return;
}
int offset = 0;
while (offset < length && (target[(offset+1)] = source[offset])) {
target[length-1] = 0;
offset++;
}
}
public:
enum { CHARACTER_SIZE=64, CHARACTER_BUFFER, REASON_SIZE=4096, REASON_BUFFER };
CTServiceCharacter() : mCharacter(), mCanRename(true), mCanMove(true), mCanTransfer(true), mRenameReason(), mMoveReason(), mTransferReason()
{ mCharacter[0] = 0;
mRenameReason[0] = 0;
mMoveReason[0] = 0;
mTransferReason[0]= 0; }
CTServiceCharacter(const unsigned short *ch) : mCharacter(), mCanRename(true), mCanMove(true), mCanTransfer(true), mRenameReason(), mMoveReason(), mTransferReason()
{ copy_wide_string(mCharacter, ch, CHARACTER_BUFFER);
mRenameReason[0] = 0;
mMoveReason[0] = 0;
mTransferReason[0]= 0; }
void SetCharacter(const uchar_t * value) { copy_wide_string(mCharacter, value, CHARACTER_BUFFER); }
const uchar_t * GetCharacter() const { return mCharacter; }
void SetCanRename(const bool value) { mCanRename = value; }
const bool GetCanRename() const { return mCanRename; }
void SetCanMove(const bool value) { mCanMove = value; }
const bool GetCanMove() const { return mCanMove; }
void SetCanTransfer(const bool value) { mCanTransfer = value; }
const bool GetCanTransfer() const { return mCanTransfer; }
void SetRenameReason(const uchar_t * value) { copy_wide_string(mRenameReason, value, REASON_BUFFER); }
const uchar_t * GetRenameReason() const { return mRenameReason; }
void SetMoveReason(const uchar_t * value) { copy_wide_string(mMoveReason, value, REASON_BUFFER); }
const uchar_t * GetMoveReason() const { return mMoveReason; }
void SetTransferReason(const uchar_t * value) { copy_wide_string(mTransferReason, value, REASON_BUFFER); }
const uchar_t * GetTransferReason() const { return mTransferReason; }
private:
uchar_t mCharacter[CHARACTER_BUFFER];
bool mCanRename;
bool mCanMove;
bool mCanTransfer;
uchar_t mRenameReason[REASON_BUFFER];
uchar_t mMoveReason[REASON_BUFFER];
uchar_t mTransferReason[REASON_BUFFER];
};
}; // namespace
#endif //CTSERVICECHARACTER_H