We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent d335862 commit 0891e0fCopy full SHA for 0891e0f
4 files changed
game/world/collisionzone.cpp
@@ -7,6 +7,8 @@
7
#include "game/serialize.h"
8
#include "graphics/pfx/particlefx.h"
9
10
+#include "utils/dbgpainter.h"
11
+
12
CollisionZone::CollisionZone() {
13
}
14
@@ -57,6 +59,18 @@ CollisionZone::~CollisionZone() {
57
59
owner->disableCollizionZone(*this);
58
60
61
62
+void CollisionZone::drawVobBox(DbgPainter& p) const {
63
+ switch(type) {
64
+ case T_BBox:
65
+ p.setPen(Tempest::Color(1,0,1));
66
+ p.drawAabb(pos-size, pos+size);
67
+ break;
68
+ case T_Capsule:
69
70
+ }
71
72
73
74
void CollisionZone::save(Serialize& fout) const {
75
fout.write(uint32_t(intersect.size()));
76
for(auto i:intersect)
game/world/collisionzone.h
@@ -8,6 +8,7 @@
class World;
class ParticleFx;
class Serialize;
+class DbgPainter;
class Npc;
class CollisionZone final {
@@ -19,6 +20,8 @@ class CollisionZone final {
19
20
CollisionZone& operator = (CollisionZone&& other);
21
~CollisionZone();
22
23
+ void drawVobBox(DbgPainter& p) const;
24
25
void save(Serialize& fout) const;
26
void load(Serialize &fin);
27
game/world/objects/npc.cpp
@@ -4408,12 +4408,29 @@ void Npc::stopWalking() {
4408
void Npc::drawVobBox(DbgPainter& p) const {
4409
physic.debugDraw(p);
4410
4411
+ p.setBrush(Tempest::Color(0,1,0));
4412
+ p.drawPoint(position());
4413
4414
+ const auto cen = centerPosition();
4415
+ p.setBrush(Tempest::Color(0,0,1));
4416
+ p.drawPoint(cen);
4417
4418
+ p.setPen(Tempest::Color(1,1,1));
4419
+ p.drawLine(cen, cen+Tempest::Vec3(0,25,0));
4420
+ p.setPen(Tempest::Color(1,1,0));
4421
+ p.drawLine(cen, cen+Tempest::Vec3(25,0,0));
4422
+ p.setPen(Tempest::Color(1,0.5f,0));
4423
+ p.drawLine(cen, cen+Tempest::Vec3(0,0,25));
4424
4425
if(auto sk = visual.visualSkeleton()) {
4426
+ auto bbox = sk->bboxCol;
4427
4428
auto tr = transform();
4429
tr.translate(0,visual.pose().translateY(),0);
4430
+ //tr.translate(0, -bbox[0].y, 0);
4431
4432
p.setPen(Color(1,0,0));
- p.drawObb(tr, sk->bboxCol);
4433
+ p.drawObb(tr, bbox);
4434
4435
4436
game/world/worldobjects.cpp
@@ -847,6 +847,13 @@ void WorldObjects::drawVobBoxNpcNear(DbgPainter& p) const {
847
continue;
848
i->drawVobBox(p);
849
850
851
+ for(auto& i:collisionZn) {
852
+ auto pos = i->position();
853
+ if((pos-camera->originLwc()).quadLength() > nearDist)
854
+ continue;
855
+ i->drawVobBox(p);
856
857
858
859
Interactive *WorldObjects::availableMob(const Npc &pl, std::string_view dest) {
0 commit comments