base init
This commit is contained in:
93
src/game/skill_power.cpp
Normal file
93
src/game/skill_power.cpp
Normal file
@@ -0,0 +1,93 @@
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
#include "../../common/length.h"
|
||||
|
||||
#include "skill_power.h"
|
||||
|
||||
bool CTableBySkill::Check() const
|
||||
{
|
||||
for (int job = 0; job < (JOB_MAX_NUM * 2); ++job)
|
||||
{
|
||||
if (!m_aiSkillPowerByLevelFromType[job])
|
||||
{
|
||||
fprintf( stderr, "[NO SETTING SKILL] aiSkillPowerByLevelFromType[%d]", job);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void CTableBySkill::DeleteAll()
|
||||
{
|
||||
for ( int job = 0; job < JOB_MAX_NUM * 2; ++job )
|
||||
{
|
||||
DeleteSkillPowerByLevelFromType( job );
|
||||
}
|
||||
|
||||
DeleteSkillDamageByLevelTable();
|
||||
}
|
||||
|
||||
int CTableBySkill::GetSkillPowerByLevelFromType(int job, int skillgroup, int skilllevel, bool bMob) const
|
||||
{
|
||||
if (bMob)
|
||||
{
|
||||
return m_aiSkillPowerByLevelFromType[0][skilllevel];
|
||||
}
|
||||
|
||||
if (job >= JOB_MAX_NUM || skillgroup == 0)
|
||||
return 0;
|
||||
|
||||
int idx = (job * 2) + (skillgroup - 1);
|
||||
|
||||
return m_aiSkillPowerByLevelFromType[idx][skilllevel];
|
||||
}
|
||||
|
||||
void CTableBySkill::SetSkillPowerByLevelFromType(int idx, const int* aTable)
|
||||
{
|
||||
DeleteSkillPowerByLevelFromType(idx);
|
||||
|
||||
int* aiSkillTable = M2_NEW int[SKILL_MAX_LEVEL+1];
|
||||
|
||||
memcpy (aiSkillTable, aTable, sizeof(int) * (SKILL_MAX_LEVEL + 1));
|
||||
m_aiSkillPowerByLevelFromType[idx] = aiSkillTable;
|
||||
}
|
||||
|
||||
void CTableBySkill::DeleteSkillPowerByLevelFromType(int idx)
|
||||
{
|
||||
if (NULL != m_aiSkillPowerByLevelFromType[idx])
|
||||
{
|
||||
M2_DELETE_ARRAY(m_aiSkillPowerByLevelFromType[idx]);
|
||||
m_aiSkillPowerByLevelFromType[idx] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
int CTableBySkill::GetSkillDamageByLevel( int Level ) const
|
||||
{
|
||||
if ( Level < 0 || Level >= PLAYER_MAX_LEVEL_CONST )
|
||||
return 0;
|
||||
|
||||
return m_aiSkillDamageByLevel[Level];
|
||||
}
|
||||
|
||||
void CTableBySkill::SetSkillDamageByLevelTable( const int* aTable )
|
||||
{
|
||||
DeleteSkillDamageByLevelTable();
|
||||
|
||||
int* aiSkillDamageTable = M2_NEW int[PLAYER_MAX_LEVEL_CONST];
|
||||
|
||||
memcpy ( aiSkillDamageTable, aTable, sizeof( int ) * ( PLAYER_MAX_LEVEL_CONST ) );
|
||||
|
||||
m_aiSkillDamageByLevel = aiSkillDamageTable;
|
||||
}
|
||||
|
||||
void CTableBySkill::DeleteSkillDamageByLevelTable()
|
||||
{
|
||||
if (NULL != m_aiSkillDamageByLevel)
|
||||
{
|
||||
M2_DELETE_ARRAY(m_aiSkillDamageByLevel);
|
||||
m_aiSkillDamageByLevel = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user