附加数据 Extender
Ped / Vehicle / Object 附加数据
shared/extender/PedExtender.h
另有 VehicleExtender.h、ObjectExtender.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。