/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
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 3 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, see .
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
#ifndef plNetCommon_h_inc
#define plNetCommon_h_inc
#ifndef PLNETCOMMON_CONSTANTS_ONLY
#include "plNetServerSessionInfo.h"
#include "hsStlUtils.h"
#endif // PLNETCOMMON_CONSTANTS_ONLY
///////////////////////////////////////////////////////////////////
// Default age info
#define kStartUpAgeFilename "StartUp"
#define kNeighborhoodAgeFilename "Neighborhood"
#define kNeighborhoodAgeFilenameW L"Neighborhood"
#define kNeighborhoodAgeInstanceName "Hood"
#define kNeighborhoodAgeInstanceNameW L"Hood"
#define kStartupNeighborhoodUserDefinedName "DRC"
#define kStartupNeighborhoodUserDefinedNameW L"DRC"
#define kCityAgeFilename "city"
#define kCityAgeFilenameW L"city"
#define kCityAgeInstanceName "Ae'gura"
#define kCityAgeInstanceNameW L"Ae'gura"
#define kAvCustomizationFilename "AvatarCustomization"
#define kAvCustomizationAgeInstanceName "AvatarCustomization"
#define kNexusAgeFilename "Nexus"
#define kNexusAgeInstanceName "Nexus"
#define kCleftAgeFilename "Cleft"
#define kCleftAgeInstanceName "Cleft"
#define kCleftAgeLinkInPointFissureDrop "LinkInPointFissureDrop"
#define kDemoAgeFilename "Demo"
#define kDemoAgeInstanceName "Demo"
#define kPersonalAgeFilename "Personal"
#define kPersonalAgeFilenameW L"Personal"
#define kPersonalAgeInstanceName "Relto"
#define kPersonalAgeInstanceNameW L"Relto"
#define kPersonalAgeLinkInPointCloset "LinkInPointCloset"
#define kCityFerryTerminalLinkSpawnPtName "LinkInPointFerry"
#define kCityFerryTerminalLinkTitle "Ferry Terminal"
#define kDescentLinkFromShell "dsntShaftFromShell"
#define kWatchersPubAgeFilenameW L"GreatTreePub"
#define kWatchersPubAgeInstanceNameW L"The Watcher's Pub"
#define kKirelFilenameW L"Neighborhood02"
#define kKirelInstanceNameW L"Kirel"
///////////////////////////////////////////////////////////////////
// Chronicle Var Names
#define kChronicle_CurCityInstance "CurCityInstance"
#define kChronicle_InitialAvCustomizationsDone "InitialAvCustomizationsDone"
#define kChronicle_CleftSolved "CleftSolved"
#define kChronicle_GiveYeeshaReward "GiveYeeshaReward"
///////////////////////////////////////////////////////////////////
#define kInvalidVaultNodeID 0
#define kInvalidPlayerID kInvalidVaultNodeID
///////////////////////////////////////////////////////////////////
// Namespace for holding net-oriented shared enums, utils, etc.
#ifndef PLNETCOMMON_CONSTANTS_ONLY
namespace plNetCommon
{
// Topics for plNetMsgVaultTask msg
namespace VaultTasks
{
enum
{
kInvalidLow,
kCreatePlayer,
kDeletePlayer,
kGetPlayerList,
kCreateNeighborhood,
kJoinNeighborhood,
kSetAgePublic,
kIncPlayerOnlineTime,
kEnablePlayer,
kRegisterOwnedAge,
kUnRegisterOwnedAge,
kRegisterVisitAge,
kUnRegisterVisitAge,
kFriendInvite,
kLastVaultTask,
};
const char * VaultTaskStr( int taskID );
}
// Args for plNetMsgVaultTask msg
namespace VaultTaskArgs
{
enum
{
kInvalidLow,
kHoodTitle,
kHoodDesc,
kAgePublic,
kIntArg1,
kIntArg2,
kAgeInfoNodeID,
kAgeLinkNodeID,
kMTStationName,
kSpawnPointName,
kAgeInfoStruct,
kAgeLinkStruct,
kAgeFilename,
kAgeInstanceGuid,
kNodeID,
kFriendName, // Use with key
kInviteKey, // Use with friend
kAgeLinkNode,
};
}
////////////////////////////////////////////////////////////////
namespace Accounts
{
namespace Reserved
{
const char * GetReservedAvatarShape( const char * playerName, const char * currShapeName );
void GetReservedPlayerNames( std::vector & out );
bool IsReservedPlayerName( const char * name );
}
}
////////////////////////////////////////////////////////////////
namespace LinkingRules
{
enum Rules
{
// Link to public age: Use PLS-MCP load balancing rules. Don't remember this link in KI/vault.
kBasicLink,
// Link and create a book in the AgesIOwn folder
kOriginalBook,
// Link to a sub age of current age.
kSubAgeBook,
// Link using info from my AgesIOwn folder
kOwnedBook,
// Link using info from my AgesICanVisit folder
kVisitBook,
// Link to a child age of current age.
kChildAgeBook,
};
static const char * LinkingRuleStr( int rule )
{
switch ( rule )
{
case kBasicLink: return "kBasicLink";
case kOriginalBook: return "kOriginalBook";
case kSubAgeBook: return "kSubAgeBook";
case kOwnedBook: return "kOwnedBook";
case kVisitBook: return "kVisitBook";
case kChildAgeBook: return "kChildAgeBook";
default: return "UNKNOWN LINKING RULE";
}
}
}
namespace PetitionTypes
{
enum Types
{
kGeneralHelp = 0,
kBug,
kFeedback,
kExploit,
kHarass,
kStuck,
kTechnical
};
}
namespace BuildType
{
enum Types
{
kUnknown = 0,
kDebug,
kInternalRelease,
kExternalRelease
};
static const char * BuildTypeStr( int rule )
{
switch ( rule )
{
case kDebug: return "Dbg";
case kInternalRelease: return "IntRel";
case kExternalRelease: return "ExtRel";
default: return "UNKNOWN";
}
}
}
}
#endif // PLNETCOMMON_CONSTANTS_ONLY
///////////////////////////////////////////////////////////////////
#endif // plNetCommon_h_inc