Changed: #1304: Implementation of basic CGuild functions for guild missions
--HG-- branch : gsoc2011-guildmissions
This commit is contained in:
parent
a7f4bfa718
commit
19cfe26032
2 changed files with 60 additions and 11 deletions
|
@ -34,6 +34,7 @@
|
||||||
#include "outpost_manager/outpost_manager.h"
|
#include "outpost_manager/outpost_manager.h"
|
||||||
#include "primitives_parser.h"
|
#include "primitives_parser.h"
|
||||||
#include "modules/shard_unifier_client.h"
|
#include "modules/shard_unifier_client.h"
|
||||||
|
#include "mission_manager/mission_manager.h"
|
||||||
|
|
||||||
/// todo guild remove entity id translator
|
/// todo guild remove entity id translator
|
||||||
#include "nel/misc/eid_translator.h"
|
#include "nel/misc/eid_translator.h"
|
||||||
|
@ -686,23 +687,54 @@ void CGuild::unregisterGuild()
|
||||||
//
|
//
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void CGuild::removeMission(CMissionGuild * mission, TMissionResult result)
|
void CGuild::removeMission( uint idx, TMissionResult result)
|
||||||
{
|
{
|
||||||
/// todo guild mission
|
if ( idx >= _Missions.size() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
/// if the mission was finished, the result is success
|
||||||
|
if ( _Missions[idx]->getFinished() )
|
||||||
|
{
|
||||||
|
if ( _Missions[idx]->getMissionSuccess() )
|
||||||
|
result = mr_success;
|
||||||
|
else
|
||||||
|
result = mr_fail;
|
||||||
|
}
|
||||||
|
|
||||||
|
CMissionTemplate *tpl = CMissionManager::getInstance()->getTemplate(_Missions[idx]->getTemplateId());
|
||||||
|
|
||||||
|
if ( tpl && !tpl->Tags.NoList )
|
||||||
|
{
|
||||||
|
_Missions[idx]->clearUsersJournalEntry();
|
||||||
|
}
|
||||||
|
|
||||||
|
CMissionManager::getInstance()->deInstanciateMission(_Missions[idx]);
|
||||||
|
delete _Missions[idx];
|
||||||
|
_Missions.erase(_Missions.begin() + idx) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void CGuild::addSuccessfulMission(CMissionTemplate * templ)
|
void CGuild::addSuccessfulMission(CMissionTemplate * templ)
|
||||||
{
|
{
|
||||||
/// todo guild mission
|
/*TMissionHistory &mh = _MissionHistories[templ.Alias];
|
||||||
|
mh.Successfull = true;*/
|
||||||
|
/// TODO: Add the mission histories
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
bool CGuild::processMissionEvent( CMissionEvent & event, TAIAlias alias)
|
bool CGuild::processMissionEvent( CMissionEvent & event, TAIAlias alias)
|
||||||
{
|
{
|
||||||
/// todo guild mission
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
bool CGuild::isMissionSuccessfull(TAIAlias alias)
|
||||||
|
{
|
||||||
|
/*std::map<TAIAlias, TMissionHistory>::iterator it(_MissionHistories.find(alias));
|
||||||
|
if (it != _MissionHistories.end())
|
||||||
|
return it->second.Successfull;*/
|
||||||
|
/// TODO: Add the mission histories
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include "outpost_manager/outpost_guild_db_updater.h"
|
#include "outpost_manager/outpost_guild_db_updater.h"
|
||||||
#include "guild_interface.h"
|
#include "guild_interface.h"
|
||||||
#include "database_guild.h"
|
#include "database_guild.h"
|
||||||
|
#include "mission_manager/mission_guild.h"
|
||||||
|
|
||||||
class CMissionGuild;
|
class CMissionGuild;
|
||||||
class CGuildMember;
|
class CGuildMember;
|
||||||
|
@ -176,17 +177,30 @@ public:
|
||||||
|
|
||||||
///\name Mission management
|
///\name Mission management
|
||||||
//@{
|
//@{
|
||||||
void removeMission(CMissionGuild * mission, TMissionResult result);
|
void removeMission(CMissionGuild * mission, TMissionResult result)
|
||||||
|
{
|
||||||
|
for (uint i = 0; i < _Missions.size(); i++)
|
||||||
|
{
|
||||||
|
if ( _Missions[i] == mission )
|
||||||
|
{
|
||||||
|
removeMission(i, result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void removeMission( uint idx, TMissionResult result);
|
||||||
void addSuccessfulMission(CMissionTemplate * templ);
|
void addSuccessfulMission(CMissionTemplate * templ);
|
||||||
bool processMissionEvent( CMissionEvent & event, TAIAlias alias = CAIAliasTranslator::Invalid);
|
bool processMissionEvent( CMissionEvent & event, TAIAlias alias = CAIAliasTranslator::Invalid);
|
||||||
|
bool isMissionSuccessfull(TAIAlias alias);
|
||||||
///\return the mission
|
///\return the mission
|
||||||
inline std::vector<CMissionGuild*> & getMissions()
|
inline std::vector<CMissionGuild*> & getMissions()
|
||||||
{
|
{
|
||||||
return std::vector<CMissionGuild*>();
|
return _Missions;
|
||||||
// To Do
|
}
|
||||||
|
void addMission(CMissionGuild* guildMission)
|
||||||
|
{
|
||||||
|
_Missions.push_back(guildMission);
|
||||||
|
guildMission->updateUsersJournalEntry();
|
||||||
}
|
}
|
||||||
void addMission(CMissionGuild* guildMission) {}
|
|
||||||
bool isMissionSuccessfull(TAIAlias alias) { return false; }
|
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
/// inventory management
|
/// inventory management
|
||||||
|
@ -359,6 +373,9 @@ private:
|
||||||
/// list of outposts challenged by guild
|
/// list of outposts challenged by guild
|
||||||
std::vector<TAIAlias> _ChallengedOutposts;
|
std::vector<TAIAlias> _ChallengedOutposts;
|
||||||
|
|
||||||
|
///the missions took by the guild
|
||||||
|
std::vector<CMissionGuild*> _Missions;
|
||||||
|
|
||||||
NLMISC_COMMAND_FRIEND( guildDB );
|
NLMISC_COMMAND_FRIEND( guildDB );
|
||||||
};
|
};
|
||||||
#endif // RY_GUILD_H
|
#endif // RY_GUILD_H
|
||||||
|
|
Loading…
Reference in a new issue