diff --git a/src/servers/sapphire_zone/Actor/BNpcTemplate.cpp b/src/servers/sapphire_zone/Actor/BNpcTemplate.cpp new file mode 100644 index 00000000..0c5aabee --- /dev/null +++ b/src/servers/sapphire_zone/Actor/BNpcTemplate.cpp @@ -0,0 +1,141 @@ +#include "BNpcTemplate.h" +#include + +Core::Entity::BNpcTemplate::BNpcTemplate( uint32_t baseId, uint32_t nameId, uint64_t weaponMain, uint64_t weaponSub, + uint8_t aggressionMode, uint8_t enemyType, uint8_t onlineStatus, uint8_t pose, + uint16_t modelChara, uint32_t displayFlags, uint32_t* modelEquip, + uint8_t* customize ) : + m_bNpcBaseId( baseId ), + m_bNpcNameId( nameId ), + m_weaponMain( weaponMain ), + m_weaponSub( weaponSub ), + m_aggressionMode( aggressionMode ), + m_enemyType( enemyType ), + m_onlineStatus( onlineStatus ), + m_pose( pose ), + m_modelChara( modelChara ), + m_displayFlags( displayFlags ) +{ + + if( modelEquip ) + memcpy( m_modelEquip, modelEquip, sizeof( m_modelEquip) ); + + if( customize ) + memcpy( m_customize, customize, sizeof( m_customize) ); + +} + +Core::Entity::BNpcTemplate::~BNpcTemplate() +{ + +} + +uint32_t Core::Entity::BNpcTemplate::getBNpcBaseId() const +{ + return m_bNpcBaseId; +} + +void Core::Entity::BNpcTemplate::setBNpcBaseId( uint32_t bNpcBaseId ) +{ + m_bNpcBaseId = bNpcBaseId; +} + +uint32_t Core::Entity::BNpcTemplate::getBNpcNameId() const +{ + return m_bNpcNameId; +} + +void Core::Entity::BNpcTemplate::setBNpcNameId( uint32_t bNpcNameId ) +{ + m_bNpcNameId = bNpcNameId; +} + +uint64_t Core::Entity::BNpcTemplate::getWeaponMain() const +{ + return m_weaponMain; +} + +void Core::Entity::BNpcTemplate::setWeaponMain( uint64_t weaponMain ) +{ + m_weaponMain = weaponMain; +} + +uint64_t Core::Entity::BNpcTemplate::getWeaponSub() const +{ + return m_weaponSub; +} + +void Core::Entity::BNpcTemplate::setWeaponSub( uint64_t weaponSub ) +{ + m_weaponSub = weaponSub; +} + +uint8_t Core::Entity::BNpcTemplate::getAggressionMode() const +{ + return m_aggressionMode; +} + +void Core::Entity::BNpcTemplate::setAggressionMode( uint8_t aggressionMode ) +{ + m_aggressionMode = aggressionMode; +} + +uint8_t Core::Entity::BNpcTemplate::getEnemyType() const +{ + return m_enemyType; +} + +void Core::Entity::BNpcTemplate::setEnemyType( uint8_t enemyType ) +{ + m_enemyType = enemyType; +} + +uint8_t Core::Entity::BNpcTemplate::getOnlineStatus() const +{ + return m_onlineStatus; +} + +void Core::Entity::BNpcTemplate::setOnlineStatus( uint8_t onlineStatus ) +{ + m_onlineStatus = onlineStatus; +} + +uint8_t Core::Entity::BNpcTemplate::getPose() const +{ + return m_pose; +} + +void Core::Entity::BNpcTemplate::setPose( uint8_t pose ) +{ + m_pose = pose; +} + +uint16_t Core::Entity::BNpcTemplate::getModelChara() const +{ + return m_modelChara; +} + +void Core::Entity::BNpcTemplate::setModelChara( uint16_t modelChara ) +{ + m_modelChara = modelChara; +} + +uint32_t Core::Entity::BNpcTemplate::getDisplayFlags() const +{ + return m_displayFlags; +} + +void Core::Entity::BNpcTemplate::setDisplayFlags( uint32_t displayFlags ) +{ + m_displayFlags = displayFlags; +} + +const uint32_t* Core::Entity::BNpcTemplate::getModelEquip() const +{ + return m_modelEquip; +} + +const uint8_t* Core::Entity::BNpcTemplate::getCustomize() const +{ + return m_customize; +} diff --git a/src/servers/sapphire_zone/Actor/BNpcTemplate.h b/src/servers/sapphire_zone/Actor/BNpcTemplate.h new file mode 100644 index 00000000..c3e58c9a --- /dev/null +++ b/src/servers/sapphire_zone/Actor/BNpcTemplate.h @@ -0,0 +1,78 @@ +#ifndef SAPPHIRE_BNPCTEMPLATE_H +#define SAPPHIRE_BNPCTEMPLATE_H + +#include + +/*g_log.info( "|----> " + std::to_string( instance.bNPCBase ) + + " " + std::to_string( instance.mainWeaponModel ) + + ", " + std::to_string( instance.secWeaponModel ) + + ", " + std::to_string( instance.aggressionMode ) + + ", " + std::to_string( instance.enemyType ) + + ", " + std::to_string( instance.onlineStatus ) + + ", " + std::to_string( instance.pose ) + + ", " + std::to_string( instance.modelChara ) + + ", " + std::to_string( instance.displayFlags ) + + ", " + modelStr + + ", " + cusStr + + ", " + std::to_string( instance.gimmickId ) */ + +namespace Core +{ +namespace Entity +{ + + +class BNpcTemplate +{ + +private: + uint32_t m_bNpcBaseId; + uint32_t m_bNpcNameId; + uint64_t m_weaponMain; + uint64_t m_weaponSub; + uint8_t m_aggressionMode; + uint8_t m_enemyType; + uint8_t m_onlineStatus; + uint8_t m_pose; + uint16_t m_modelChara; + uint32_t m_displayFlags; + uint32_t m_modelEquip[10]; + uint8_t m_customize[26]; + +public: + BNpcTemplate() {}; + BNpcTemplate( uint32_t baseId, uint32_t nameId, uint64_t weaponMain, uint64_t weaponSub, uint8_t aggressionMode, + uint8_t enemyType, uint8_t onlineStatus, uint8_t pose, uint16_t modelChara, uint32_t displayFlags = 0, + uint32_t* modelEquip = nullptr, uint8_t* customize = nullptr ); + + virtual ~BNpcTemplate(); + + uint32_t getBNpcBaseId() const; + void setBNpcBaseId( uint32_t bNpcBaseId ); + uint32_t getBNpcNameId() const; + void setBNpcNameId( uint32_t bNpcNameId ); + uint64_t getWeaponMain() const; + void setWeaponMain( uint64_t weaponMain ); + uint64_t getWeaponSub() const; + void setWeaponSub( uint64_t weaponSub ); + uint8_t getAggressionMode() const; + void setAggressionMode( uint8_t aggressionMode ); + uint8_t getEnemyType() const; + void setEnemyType( uint8_t enemyType ); + uint8_t getOnlineStatus() const; + void setOnlineStatus( uint8_t m_onlineStatus ); + uint8_t getPose() const; + void setPose( uint8_t m_pose ); + uint16_t getModelChara() const; + void setModelChara( uint16_t modelChara ); + uint32_t getDisplayFlags() const; + void setDisplayFlags( uint32_t displayFlags ); + const uint32_t *getModelEquip() const; + const uint8_t *getCustomize() const; +}; + + +} +} + +#endif //SAPPHIRE_BNPCTEMPLATE_H diff --git a/src/servers/sapphire_zone/Forwards.h b/src/servers/sapphire_zone/Forwards.h index f685b569..abe6ccec 100644 --- a/src/servers/sapphire_zone/Forwards.h +++ b/src/servers/sapphire_zone/Forwards.h @@ -39,6 +39,7 @@ namespace Core TYPE_FORWARD( Chara ); TYPE_FORWARD( Player ); TYPE_FORWARD( EventObject ); + TYPE_FORWARD( BNpcTemplate ); } namespace Event