OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
focus.cpp
Go to the documentation of this file.
1#include "focus.h"
2
3#include "world/objects/npc.h"
6
7Focus::Focus(Interactive &i):interactive(&i){
8 }
9
10Focus::Focus(Npc &i):npc(&i){
11 }
12
13Focus::Focus(Item &i):item(&i){
14 }
15
16Focus::operator bool() const {
17 return interactive || npc || item;
18 }
19
20Tempest::Vec3 Focus::displayPosition() const {
21 if(interactive)
23 if(npc)
24 return npc->displayPosition();
25 if(item)
26 return item->position();
27 return {};
28 }
29
30std::string_view Focus::displayName() const {
31 if(interactive)
32 return interactive->displayName();
33 if(npc)
34 return npc->displayName();
35 if(item)
36 return item->displayName();
37 return "";
38 }
Npc * npc
Definition focus.h:22
Tempest::Vec3 displayPosition() const
Definition focus.cpp:20
Interactive * interactive
Definition focus.h:21
std::string_view displayName() const
Definition focus.cpp:30
Item * item
Definition focus.h:23
Focus()=default
Tempest::Vec3 displayPosition() const
std::string_view displayName() const
Definition item.h:14
std::string_view displayName() const
Definition item.cpp:172
Tempest::Vec3 position() const
Definition item.cpp:180
Definition npc.h:25
auto displayPosition() const -> Tempest::Vec3
Definition npc.cpp:738
std::string_view displayName() const
Definition npc.cpp:734