附加数据 Extender

Ped / Vehicle / Object 附加数据

shared/extender/PedExtender.h
另有 VehicleExtender.hObjectExtender.h

T 必须能构造:T(CPed*) / T(CVehicle*) / T(CObject*)
*ExtendedData 放在全局或静态存储。实体析构后不要再 Get

行人附加数据

PedExtendedData
extender/PedExtender.h

每个 ped 一块 T,随实体生命周期管理。

template <typename T>
class PedExtendedData {
    PedExtendedData();
    T& Get(CPed* ped);
};

载具附加数据

VehicleExtendedData
template <typename T>
class VehicleExtendedData {
    T& Get(CVehicle* vehicle);
};

物体附加数据

ObjectExtendedData
template <typename T>
class ObjectExtendedData {
    T& Get(CObject* object);
};

注册自定义扩展器

PedExtendedData 构造时会自行 Add。需要自定义 ExtenderInterface 时:

static void Add(ExtenderInterface<CPed>* extender);

Vehicle / Object 有对应的 Handler。

On this page