rendered paste body#include "cbase.h"
#include "filesystem.h"
#include "utlvector.h"
#include "questsystem_shared.h"
#include "dt_utlvector_recv.h"
C_QuestSystem * g_pQuestSystem;
//------------------
// Quest & Objective
//------------------
inline bool C_Quest::IsCompleted()
{
if(m_bCompleted)
return true;
int count = m_Objectives.Count();
for(int x=0;x<count;x++)
{
if(!m_Objectives[x].m_bCompleted)
return false;
}
return m_bCompleted = true;
}
inline C_Objective *C_Quest::FindObjectiveByName(const char *pObjectiveName)
{
int count = m_Objectives.Count();
for(int x=0;x<count;x++)
{
if(FStrEq(STRING(m_Objectives[x].m_iszName),pObjectiveName))
{
return &m_Objectives[x];
}
}
return NULL;
}
void C_Quest::GetName(){
DevMsg("TEST");
}
void C_QuestSystem::GetTest(){
DevMsg("TEST");
Assert( !g_pQuestSystem );
//DevMsg("CLIENT QUEST SIZE %i",m_Quests.Count());
}
void C_QuestSystem::OnDataChanged( DataUpdateType_t updateType )
{
BaseClass::OnDataChanged( updateType );
if( updateType == DATA_UPDATE_CREATED )
{
if(!g_pQuestSystem)
{
//g_pQuestSystem = ( C_QuestSystem * )CreateEntityByName( "quest_system" );
g_pQuestSystem = this;
Assert( !g_pQuestSystem );
if ( g_pQuestSystem )
{
DevMsg("WE HAVE IT");
}
}
}
}
BEGIN_RECV_TABLE_NOBASE( C_Objective, DT_Objective )
RecvPropString( RECVINFO( m_iszName ) ),
RecvPropString( RECVINFO( m_iszDescription ) ),
RecvPropBool( RECVINFO( m_bDisabled ) ),
RecvPropBool( RECVINFO( m_bCompleted ) ),
END_RECV_TABLE();
BEGIN_RECV_TABLE_NOBASE( C_Quest, DT_Quest )
RecvPropString( RECVINFO( m_iszName ) ),
RecvPropString( RECVINFO( m_iszGiver ) ),
RecvPropString( RECVINFO( m_iszShort ) ),
RecvPropString( RECVINFO( m_iszDescription ) ),
RecvPropBool( RECVINFO( m_bCompleted ) ),
RecvPropUtlVectorDataTable( m_Objectives, MAX_OBJECTIVES, DT_Objective ),
END_RECV_TABLE();
BEGIN_RECV_TABLE_NOBASE( C_QuestSystem, DT_QuestSystem )
RecvPropInt( RECVINFO( m_iActiveQuest ) ),
RecvPropUtlVectorDataTable( m_Quests, MAX_QUESTS, DT_Quest ),
END_RECV_TABLE();