Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
#ifndef _CHARACTER_CLASS_H_
|
||||
#define _CHARACTER_CLASS_H_
|
||||
|
||||
#include <DB/DBDefine.h>
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
struct CharacterDBData;
|
||||
struct ChState;
|
||||
|
||||
class CClass
|
||||
{
|
||||
public:
|
||||
|
||||
enum JobType
|
||||
{
|
||||
NONE_JOB = 0,
|
||||
|
||||
// <20>ΰ<EFBFBD> <20>⺻Ŭ<E2BABB><C5AC><EFBFBD><EFBFBD>
|
||||
Fighter = 1, Rogue = 2,
|
||||
Mage = 3, Acolyte = 4,
|
||||
|
||||
// <20>ΰ<EFBFBD> 1stŬ<74><C5AC><EFBFBD><EFBFBD>
|
||||
Defender = 5, Warrior = 6,
|
||||
Assassin = 7, Archer = 8,
|
||||
Sorcerer = 9, Enchanter = 10,
|
||||
Priest = 11, Cleric = 12,
|
||||
|
||||
// <20><>ĭ <20>⺻Ŭ<E2BABB><C5AC><EFBFBD><EFBFBD>
|
||||
Combatant = 17, Officiator = 18,
|
||||
|
||||
// <20><>ĭ 1stŬ<74><C5AC><EFBFBD><EFBFBD>
|
||||
Templar = 19, Attacker = 20,
|
||||
Gunner = 21, RuneOff = 22,
|
||||
LifeOff = 23, ShadowOff = 24,
|
||||
|
||||
MAX_CLASS = 25
|
||||
};
|
||||
|
||||
enum StatusType
|
||||
{
|
||||
NONE_STAT = 0,
|
||||
|
||||
STR = 1,
|
||||
DEX = 2,
|
||||
CON = 3,
|
||||
INT = 4,
|
||||
WIS = 5,
|
||||
|
||||
MAX_TYPE = 6
|
||||
};
|
||||
|
||||
enum JobLevel
|
||||
{
|
||||
NONE_CLASS = 0,
|
||||
DEFAULT_CLASS = 1,
|
||||
JOB_CHANGE_1ST = 2
|
||||
};
|
||||
|
||||
enum RaceType
|
||||
{
|
||||
HUMAN = 0,
|
||||
AKHAN = 1,
|
||||
MAX_RACE = 2
|
||||
};
|
||||
|
||||
CClass(const JobType eJobType, const JobType ePrevJobType, const JobLevel eJobLevel, const RaceType eRace,
|
||||
const StatusType eType1, const unsigned char cIncrement1,
|
||||
const StatusType eType2, const unsigned char cIncrement2,
|
||||
const bool bLevelSwap);
|
||||
|
||||
CClass();
|
||||
|
||||
void LevelUp(CHAR_INFOST* InfoSt);
|
||||
bool JobChange(CharacterDBData* DBData, unsigned char cClassType);
|
||||
bool UpgradeClass(CharacterDBData* DBData, unsigned char cClassType);
|
||||
bool DowngradeClass(CharacterDBData* DBData, unsigned char cClassType);
|
||||
bool InitializeClass(CharacterDBData* DBData, unsigned char cClassType); // <20><><EFBFBD><EFBFBD> 1<><31> <20>⺻ Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
bool CheckState(ChState& State, unsigned char cLevel);
|
||||
bool CheckMinState(ChState& State, unsigned char cLevel);
|
||||
unsigned short GetMinState(StatusType eType, unsigned char cLevel);
|
||||
|
||||
static JobLevel GetJobLevel(unsigned char cClass);
|
||||
static unsigned char GetPreviousJob(unsigned char cClass);
|
||||
static unsigned char GetRequiredIP(unsigned short usClass, unsigned char cType);
|
||||
static RaceType GetRace(unsigned char cClass);
|
||||
|
||||
protected:
|
||||
|
||||
StatusType m_eIncrementType[2]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20>ɷ<EFBFBD>ġ Ÿ<><C5B8>
|
||||
unsigned char m_cIncrementValue[2]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20>ɷ<EFBFBD>ġ <20><>
|
||||
|
||||
JobType m_eJobType; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
JobType m_ePrevJobType; // <20>ٷ<EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
JobLevel m_eJobLevel; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
RaceType m_eRace; // <20>Ҽ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool m_bLevelSwap; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD><C6B0>鼭 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (¦<><C2A6> 2/1 <20><><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD> Ȧ<><C8A6> 1/2 <20><><EFBFBD><EFBFBD>)
|
||||
|
||||
inline void IncrementByType(CHAR_INFOST* InfoSt,
|
||||
unsigned char cTypeIndex, unsigned char cIncrementIndex);
|
||||
};
|
||||
|
||||
extern CClass ClassTable[CClass::MAX_CLASS];
|
||||
|
||||
|
||||
inline void CClass::IncrementByType(CHAR_INFOST* InfoSt,
|
||||
unsigned char cTypeIndex, unsigned char cIncrementIndex)
|
||||
{
|
||||
switch(m_eIncrementType[cTypeIndex]) {
|
||||
case STR: InfoSt->STR += m_cIncrementValue[cIncrementIndex]; break;
|
||||
case DEX: InfoSt->DEX += m_cIncrementValue[cIncrementIndex]; break;
|
||||
case CON: InfoSt->CON += m_cIncrementValue[cIncrementIndex]; break;
|
||||
case INT: InfoSt->INT += m_cIncrementValue[cIncrementIndex]; break;
|
||||
case WIS: InfoSt->WIS += m_cIncrementValue[cIncrementIndex]; break;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user