14 :
Vob(parent,world,data,flags & (~
Flags::Static)), callback(this), vobName(data.vob_name) {
15 bboxSize = Vec3(data.bbox.max.x-data.bbox.min.x,data.bbox.max.y-data.bbox.min.y,data.bbox.max.z-data.bbox.min.z)*0.5f;
16 bboxOrigin = Vec3(data.bbox.max.x+data.bbox.min.x,data.bbox.max.y+data.bbox.min.y,data.bbox.max.z+data.bbox.min.z)*0.5f;
17 bboxOrigin = bboxOrigin -
position();
20 if(bboxSize!=Vec3()) {
27 using zenkit::VirtualObjectType;
29 if(data.type == VirtualObjectType::zCTrigger || data.type == VirtualObjectType::zCTriggerList ||
30 data.type == VirtualObjectType::oCTriggerScript || data.type == VirtualObjectType::zCMover ||
31 data.type == VirtualObjectType::oCTriggerChangeLevel || data.type == VirtualObjectType::oCCSTrigger) {
32 auto& trigger =
reinterpret_cast<const zenkit::VTrigger&
>(data);
33 if(data.type == VirtualObjectType::zCMover) {
34 maxActivationCount = (trigger.max_activation_count==0) ? 0 : uint32_t(-1);
36 fireDelay = uint64_t(trigger.fire_delay_sec*1000.f);
37 retriggerDelay = uint64_t(trigger.retrigger_delay_sec*1000.f);
38 maxActivationCount = uint32_t(trigger.max_activation_count);
39 sendUntrigger = trigger.send_untrigger;
42 disabled = !trigger.start_enabled;
43 reactToOnTrigger = trigger.react_to_on_trigger;
44 reactToOnTouch = trigger.react_to_on_touch;
45 respondToNpc = trigger.respond_to_npc;
46 respondToPlayer = trigger.respond_to_pc;
47 respondToObject = trigger.respond_to_object;