2021-12-07 02:36:09 +08:00
|
|
|
#pragma once
|
2022-08-26 04:06:34 +08:00
|
|
|
#include "CPed.hpp"
|
2021-07-25 19:12:53 +08:00
|
|
|
|
2021-02-09 05:44:51 +08:00
|
|
|
class CPedFactory
|
|
|
|
{
|
|
|
|
public:
|
2023-02-03 06:55:50 +08:00
|
|
|
enum class PedCreateFlags
|
|
|
|
{
|
|
|
|
IS_NETWORKED = (1 << 0),
|
|
|
|
IS_PLAYER = (1 << 1)
|
|
|
|
};
|
|
|
|
|
|
|
|
virtual ~CPedFactory() = default;
|
|
|
|
virtual CPed* CreatePed(std::uint8_t* flags, std::uint16_t* model_index, rage::fmatrix44* matrix, bool default_component_variation, bool register_network_object, bool give_default_loadout, bool, bool) = 0; // 0x08
|
|
|
|
virtual CPed* CreateClone(std::uint8_t* flags, std::uint16_t* model_index, rage::fmatrix44* matrix, bool default_component_variation, bool, bool register_network_object, bool) = 0; // 0x10
|
|
|
|
virtual CPed* ClonePed(CPed* ped, bool register_network_object, bool link_blends, bool clone_compressed_damage) = 0; // 0x18
|
|
|
|
virtual CPed* ClonePedToTarget(CPed* source, CPed* target, bool clone_compressed_damage) = 0; // 0x20
|
|
|
|
virtual CPed* CreatePlayer(std::uint8_t* flags, std::uint16_t model_index, rage::fmatrix44* matrix, CPlayerInfo* player_info) = 0; // 0x28
|
|
|
|
virtual void DestroyPed(CPed* ped) = 0; // 0x30
|
|
|
|
|
2022-11-09 05:11:50 +08:00
|
|
|
class CPed* m_local_ped; //0x0008
|
2021-02-09 05:44:51 +08:00
|
|
|
}; //Size: 0x0010
|
2021-09-21 22:11:15 +08:00
|
|
|
static_assert(sizeof(CPedFactory) == 0x10);
|