Files
mod-ale/QuestMethods.h
Tommy 9d9e72e598 Updated method documentation and cleaned up
Method documentation should be completed. Only thing left now is polishing up (fixing typos, update wording, add enumerator data to method documentation that doesn't have it, etc)..

Cleaned whitespaces

Corrected/Fixed up some comments

Removed all known documented method comments in LuaFunctions.cpp. Commented out methods are now marked as undocumented until they are uncommented & documented in their respective header files.

Removed 'Getter, Setter, Boolean, Other' comments in method files

Documented VehicleMethods, the rest of PlayerMethods, UnitMethods, CreatureMethods and GuildMethods.

Refer to #101 for more information
2015-09-16 04:14:32 -04:00

188 lines
6.1 KiB
C++

/*
* Copyright (C) 2010 - 2015 Eluna Lua Engine <http://emudevs.com/>
* This program is free software licensed under GPL version 3
* Please see the included DOCS/LICENSE.md for more information
*/
#ifndef QUESTMETHODS_H
#define QUESTMETHODS_H
/***
* Inherits all methods from: none
*/
namespace LuaQuest
{
/**
* Returns 'true' if the [Quest] has the specified flag, false otherwise.
* Below flags are based off of 3.3.5a. Subject to change.
*
* <pre>
* enum QuestFlags
* {
* // Flags used at server and sent to client
* QUEST_FLAGS_NONE = 0x0,
* QUEST_FLAGS_STAY_ALIVE = 0x1, // Not used currently
* QUEST_FLAGS_PARTY_ACCEPT = 0x2, // Not used currently. If player in party, all players that can accept this quest will receive confirmation box to accept quest CMSG_QUEST_CONFIRM_ACCEPT/SMSG_QUEST_CONFIRM_ACCEPT
* QUEST_FLAGS_EXPLORATION = 0x4, // Not used currently
* QUEST_FLAGS_SHARABLE = 0x8, // Can be shared: Player::CanShareQuest()
* QUEST_FLAGS_HAS_CONDITION = 0x10, // Not used currently
* QUEST_FLAGS_HIDE_REWARD_POI = 0x20, // Not used currently: Unsure of content
* QUEST_FLAGS_RAID = 0x40, // Not used currently
* QUEST_FLAGS_TBC = 0x80, // Not used currently: Available if TBC expansion enabled only
* QUEST_FLAGS_NO_MONEY_FROM_XP = 0x100, // Not used currently: Experience is not converted to gold at max level
* QUEST_FLAGS_HIDDEN_REWARDS = 0x200, // Items and money rewarded only sent in SMSG_QUESTGIVER_OFFER_REWARD (not in SMSG_QUESTGIVER_QUEST_DETAILS or in client quest log(SMSG_QUEST_QUERY_RESPONSE))
* QUEST_FLAGS_TRACKING = 0x400, // These quests are automatically rewarded on quest complete and they will never appear in quest log client side.
* QUEST_FLAGS_DEPRECATE_REPUTATION = 0x800, // Not used currently
* QUEST_FLAGS_DAILY = 0x1000, // Used to know quest is Daily one
* QUEST_FLAGS_FLAGS_PVP = 0x2000, // Having this quest in log forces PvP flag
* QUEST_FLAGS_UNAVAILABLE = 0x4000, // Used on quests that are not generically available
* QUEST_FLAGS_WEEKLY = 0x8000,
* QUEST_FLAGS_AUTOCOMPLETE = 0x10000, // auto complete
* QUEST_FLAGS_DISPLAY_ITEM_IN_TRACKER = 0x20000, // Displays usable item in quest tracker
* QUEST_FLAGS_OBJ_TEXT = 0x40000, // use Objective text as Complete text
* QUEST_FLAGS_AUTO_ACCEPT = 0x80000, // The client recognizes this flag as auto-accept. However, NONE of the current quests (3.3.5a) have this flag. Maybe blizz used to use it, or will use it in the future.
*
* // ... 4.x added flags up to 0x80000000 - all unknown for now
* };
* </pre>
*
* @param [QuestFlags] flag : all available flags can be seen above
* @return bool hasFlag
*/
int HasFlag(Eluna* /*E*/, lua_State* L, Quest* quest)
{
uint32 flag = Eluna::CHECKVAL<uint32>(L, 2);
#ifndef TRINITY
Eluna::Push(L, quest->HasQuestFlag((QuestFlags)flag));
#else
Eluna::Push(L, quest->HasFlag(flag));
#endif
return 1;
}
#ifndef CLASSIC
/**
* Returns 'true' if the [Quest] is a daily quest, false otherwise.
*
* @return bool isDaily
*/
int IsDaily(Eluna* /*E*/, lua_State* L, Quest* quest)
{
Eluna::Push(L, quest->IsDaily());
return 1;
}
#endif
/**
* Returns 'true' if the [Quest] is repeatable, false otherwise.
*
* @return bool isRepeatable
*/
int IsRepeatable(Eluna* /*E*/, lua_State* L, Quest* quest)
{
Eluna::Push(L, quest->IsRepeatable());
return 1;
}
/**
* Returns entry ID of the [Quest].
*
* @return uint32 entryId
*/
int GetId(Eluna* /*E*/, lua_State* L, Quest* quest)
{
Eluna::Push(L, quest->GetQuestId());
return 1;
}
/**
* Returns the [Quest]'s level.
*
* @return uint32 level
*/
int GetLevel(Eluna* /*E*/, lua_State* L, Quest* quest)
{
Eluna::Push(L, quest->GetQuestLevel());
return 1;
}
/**
* Returns the minimum level required to pick up the [Quest].
*
* @return uint32 minLevel
*/
int GetMinLevel(Eluna* /*E*/, lua_State* L, Quest* quest)
{
Eluna::Push(L, quest->GetMinLevel());
return 1;
}
/**
* Returns the next [Quest] entry ID.
*
* @return int32 entryId
*/
int GetNextQuestId(Eluna* /*E*/, lua_State* L, Quest* quest)
{
Eluna::Push(L, quest->GetNextQuestId());
return 1;
}
/**
* Returns the previous [Quest] entry ID.
*
* @return int32 entryId
*/
int GetPrevQuestId(Eluna* /*E*/, lua_State* L, Quest* quest)
{
Eluna::Push(L, quest->GetPrevQuestId());
return 1;
}
/**
* Returns the next [Quest] entry ID in the specific [Quest] chain.
*
* @return int32 entryId
*/
int GetNextQuestInChain(Eluna* /*E*/, lua_State* L, Quest* quest)
{
Eluna::Push(L, quest->GetNextQuestInChain());
return 1;
}
/**
* Returns the [Quest]'s flags.
*
* @return [QuestFlags] flags
*/
int GetFlags(Eluna* /*E*/, lua_State* L, Quest* quest)
{
#ifndef TRINITY
Eluna::Push(L, quest->GetQuestFlags());
#else
Eluna::Push(L, quest->GetFlags());
#endif
return 1;
}
/**
* Returns the [Quest]'s type.
*
* TODO: Document types available.
*
* @return uint32 type
*/
int GetType(Eluna* /*E*/, lua_State* L, Quest* quest)
{
Eluna::Push(L, quest->GetType());
return 1;
}
/*int GetMaxLevel(Eluna* E, lua_State* L, Quest* quest)
{
Eluna::Push(L, quest->GetMaxLevel());
return 1;
}*/
};
#endif