OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
WorldObjects Class Referencefinal

#include <worldobjects.h>

Classes

struct  SearchOpt
 

Public Types

enum  SearchFlg : uint8_t {
  NoFlg = 0 , NoDeath = 1 , NoUnconscious = 2 , NoAngle = 4 ,
  NoRay = 8 , FcOverride = 16
}
 

Public Member Functions

 WorldObjects (World &owner)
 
 ~WorldObjects ()
 
void load (Serialize &fout)
 
void save (Serialize &fout)
 
void tick (uint64_t dt, uint64_t dtPlayer)
 
NpcaddNpc (size_t itemInstance, std::string_view at)
 
NpcaddNpc (size_t itemInstance, const Tempest::Vec3 &at)
 
NpcinsertPlayer (std::unique_ptr< Npc > &&npc, std::string_view at)
 
auto takeNpc (const Npc *npc) -> std::unique_ptr< Npc >
 
void removeNpc (Npc &npc)
 
void updateAnimation (uint64_t dt)
 
bool isTargeted (Npc &npc)
 
NpcfindHero ()
 
NpcfindNpcByInstance (size_t instance, size_t n=0)
 
ItemfindItemByInstance (size_t instance, size_t n=0)
 
void detectNpcNear (const std::function< void(Npc &)> &f)
 
void detectNpc (const float x, const float y, const float z, const float r, const std::function< void(Npc &)> &f)
 
void detectItem (const float x, const float y, const float z, const float r, const std::function< void(Item &)> &f)
 
uint32_t npcId (const Npc *ptr) const
 
size_t npcCount () const
 
const Npcnpc (size_t i) const
 
Npcnpc (size_t i)
 
size_t itmCount () const
 
Itemitm (size_t i)
 
uint32_t itmId (const void *ptr) const
 
size_t mobsiCount () const
 
Interactivemobsi (size_t i)
 
uint32_t mobsiId (const void *ptr) const
 
void setCurrentCs (CsCamera *cs)
 
CsCameracurrentCs () const
 
void addTrigger (AbstractTrigger *trigger)
 
void enableDefTrigger (AbstractTrigger &trigger)
 
void triggerEvent (const TriggerEvent &e)
 
bool triggerOnStart (bool firstTime)
 
void execDelayedEvents ()
 
bool execTriggerEvent (const TriggerEvent &e)
 
void enableTicks (AbstractTrigger &t)
 
void disableTicks (AbstractTrigger &t)
 
void enableCollizionZone (CollisionZone &z)
 
void disableCollizionZone (CollisionZone &z)
 
void runEffect (Effect &&e)
 
void stopEffect (const VisualFx &vfx)
 
ItemaddItem (size_t itemInstance, std::string_view at)
 
ItemaddItem (const zenkit::VItem &vob)
 
ItemaddItem (size_t itemInstance, const Tempest::Vec3 &pos)
 
ItemaddItem (size_t itemInstance, const Tempest::Vec3 &pos, const Tempest::Vec3 &dir)
 
ItemaddItemDyn (size_t itemInstance, const Tempest::Matrix4x4 &pos, size_t owner)
 
auto takeItem (Item &it) -> std::unique_ptr< Item >
 
void removeItem (Item &it)
 
size_t hasItems (std::string_view tag, size_t itemCls)
 
void onItemRemoved (const Item &itm)
 
BulletshootBullet (const Item &itmId, const Tempest::Vec3 &pos, const Tempest::Vec3 &dir, float tgRange, float speed)
 
void addInteractive (Interactive *obj)
 
void addStatic (StaticObj *obj)
 
void addRoot (const std::shared_ptr< zenkit::VirtualObject > &vob, bool startup)
 
void invalidateVobIndex ()
 
InteractivevalidateInteractive (Interactive *def)
 
NpcvalidateNpc (Npc *def)
 
ItemvalidateItem (Item *def)
 
bool testFocusNpc (const Npc &pl, Npc *def, const SearchOpt &opt)
 
InteractivefindInteractive (const Npc &pl, Interactive *def, const SearchOpt &opt)
 
NpcfindNpcNear (const Npc &pl, Npc *def, const SearchOpt &opt)
 
ItemfindItem (const Npc &pl, Item *def, const SearchOpt &opt)
 
void marchInteractives (DbgPainter &p) const
 
void marchCsCameras (DbgPainter &p) const
 
InteractiveavailableMob (const Npc &pl, std::string_view name)
 
void setMobRoutine (gtime time, std::string_view scheme, int32_t state)
 
void sendPassivePerc (Npc &self, Npc &other, Npc *victim, Item *itm, int32_t perc)
 
void sendImmediatePerc (Npc &self, Npc &other, Npc &victim, Item *itm, int32_t perc)
 
void resetPositionToTA ()
 

Detailed Description

Definition at line 26 of file worldobjects.h.

Member Enumeration Documentation

◆ SearchFlg

enum WorldObjects::SearchFlg : uint8_t
Enumerator
NoFlg 
NoDeath 
NoUnconscious 
NoAngle 
NoRay 
FcOverride 

Definition at line 31 of file worldobjects.h.

Constructor & Destructor Documentation

◆ WorldObjects()

WorldObjects::WorldObjects ( World owner)

Definition at line 60 of file worldobjects.cpp.

◆ ~WorldObjects()

WorldObjects::~WorldObjects ( )

Definition at line 64 of file worldobjects.cpp.

Member Function Documentation

◆ addInteractive()

void WorldObjects::addInteractive ( Interactive obj)

Definition at line 697 of file worldobjects.cpp.

◆ addItem() [1/4]

Item * WorldObjects::addItem ( const zenkit::VItem &  vob)

Definition at line 583 of file worldobjects.cpp.

◆ addItem() [2/4]

Item * WorldObjects::addItem ( size_t  itemInstance,
const Tempest::Vec3 &  pos 
)

Definition at line 656 of file worldobjects.cpp.

◆ addItem() [3/4]

Item * WorldObjects::addItem ( size_t  itemInstance,
const Tempest::Vec3 &  pos,
const Tempest::Vec3 &  dir 
)

Definition at line 660 of file worldobjects.cpp.

◆ addItem() [4/4]

Item * WorldObjects::addItem ( size_t  itemInstance,
std::string_view  at 
)

Definition at line 641 of file worldobjects.cpp.

◆ addItemDyn()

Item * WorldObjects::addItemDyn ( size_t  itemInstance,
const Tempest::Matrix4x4 &  pos,
size_t  owner 
)

Definition at line 675 of file worldobjects.cpp.

◆ addNpc() [1/2]

Npc * WorldObjects::addNpc ( size_t  itemInstance,
const Tempest::Vec3 &  at 
)

◆ addNpc() [2/2]

Npc * WorldObjects::addNpc ( size_t  itemInstance,
std::string_view  at 
)

Definition at line 288 of file worldobjects.cpp.

◆ addRoot()

void WorldObjects::addRoot ( const std::shared_ptr< zenkit::VirtualObject > &  vob,
bool  startup 
)

Definition at line 705 of file worldobjects.cpp.

◆ addStatic()

void WorldObjects::addStatic ( StaticObj obj)

Definition at line 701 of file worldobjects.cpp.

◆ addTrigger()

void WorldObjects::addTrigger ( AbstractTrigger trigger)

Definition at line 509 of file worldobjects.cpp.

◆ availableMob()

Interactive * WorldObjects::availableMob ( const Npc pl,
std::string_view  name 
)

Definition at line 830 of file worldobjects.cpp.

◆ currentCs()

CsCamera * WorldObjects::currentCs ( ) const

Definition at line 552 of file worldobjects.cpp.

◆ detectItem()

void WorldObjects::detectItem ( const float  x,
const float  y,
const float  z,
const float  r,
const std::function< void(Item &)> &  f 
)

Definition at line 499 of file worldobjects.cpp.

◆ detectNpc()

void WorldObjects::detectNpc ( const float  x,
const float  y,
const float  z,
const float  r,
const std::function< void(Npc &)> &  f 
)

Definition at line 489 of file worldobjects.cpp.

◆ detectNpcNear()

void WorldObjects::detectNpcNear ( const std::function< void(Npc &)> &  f)

Definition at line 484 of file worldobjects.cpp.

◆ disableCollizionZone()

void WorldObjects::disableCollizionZone ( CollisionZone z)

Definition at line 560 of file worldobjects.cpp.

◆ disableTicks()

void WorldObjects::disableTicks ( AbstractTrigger t)

Definition at line 539 of file worldobjects.cpp.

◆ enableCollizionZone()

void WorldObjects::enableCollizionZone ( CollisionZone z)

Definition at line 556 of file worldobjects.cpp.

◆ enableDefTrigger()

void WorldObjects::enableDefTrigger ( AbstractTrigger trigger)

Definition at line 513 of file worldobjects.cpp.

◆ enableTicks()

void WorldObjects::enableTicks ( AbstractTrigger t)

Definition at line 532 of file worldobjects.cpp.

◆ execDelayedEvents()

void WorldObjects::execDelayedEvents ( )

Definition at line 397 of file worldobjects.cpp.

◆ execTriggerEvent()

bool WorldObjects::execTriggerEvent ( const TriggerEvent e)

Definition at line 407 of file worldobjects.cpp.

◆ findHero()

Npc * WorldObjects::findHero ( )

Definition at line 454 of file worldobjects.cpp.

◆ findInteractive()

Interactive * WorldObjects::findInteractive ( const Npc pl,
Interactive def,
const SearchOpt opt 
)

Definition at line 740 of file worldobjects.cpp.

◆ findItem()

Item * WorldObjects::findItem ( const Npc pl,
Item def,
const SearchOpt opt 
)

Definition at line 777 of file worldobjects.cpp.

◆ findItemByInstance()

Item * WorldObjects::findItemByInstance ( size_t  instance,
size_t  n = 0 
)

Definition at line 473 of file worldobjects.cpp.

◆ findNpcByInstance()

Npc * WorldObjects::findNpcByInstance ( size_t  instance,
size_t  n = 0 
)

Definition at line 462 of file worldobjects.cpp.

◆ findNpcNear()

Npc * WorldObjects::findNpcNear ( const Npc pl,
Npc def,
const SearchOpt opt 
)

Definition at line 762 of file worldobjects.cpp.

◆ hasItems()

size_t WorldObjects::hasItems ( std::string_view  tag,
size_t  itemCls 
)

Definition at line 616 of file worldobjects.cpp.

◆ insertPlayer()

Npc * WorldObjects::insertPlayer ( std::unique_ptr< Npc > &&  npc,
std::string_view  at 
)

Definition at line 330 of file worldobjects.cpp.

◆ invalidateVobIndex()

void WorldObjects::invalidateVobIndex ( )

Definition at line 712 of file worldobjects.cpp.

◆ isTargeted()

bool WorldObjects::isTargeted ( Npc npc)

Definition at line 435 of file worldobjects.cpp.

◆ itm()

Item & WorldObjects::itm ( size_t  i)
inline

Definition at line 77 of file worldobjects.h.

◆ itmCount()

size_t WorldObjects::itmCount ( ) const
inline

Definition at line 76 of file worldobjects.h.

◆ itmId()

uint32_t WorldObjects::itmId ( const void *  ptr) const

Definition at line 271 of file worldobjects.cpp.

◆ load()

void WorldObjects::load ( Serialize fout)

Definition at line 67 of file worldobjects.cpp.

◆ marchCsCameras()

void WorldObjects::marchCsCameras ( DbgPainter p) const

Definition at line 823 of file worldobjects.cpp.

◆ marchInteractives()

void WorldObjects::marchInteractives ( DbgPainter p) const

Definition at line 799 of file worldobjects.cpp.

◆ mobsi()

Interactive & WorldObjects::mobsi ( size_t  i)
inline

Definition at line 81 of file worldobjects.h.

◆ mobsiCount()

size_t WorldObjects::mobsiCount ( ) const
inline

Definition at line 80 of file worldobjects.h.

◆ mobsiId()

uint32_t WorldObjects::mobsiId ( const void *  ptr) const

Definition at line 278 of file worldobjects.cpp.

◆ npc() [1/2]

Npc & WorldObjects::npc ( size_t  i)
inline

Definition at line 74 of file worldobjects.h.

◆ npc() [2/2]

const Npc & WorldObjects::npc ( size_t  i) const
inline

Definition at line 73 of file worldobjects.h.

◆ npcCount()

size_t WorldObjects::npcCount ( ) const
inline

Definition at line 72 of file worldobjects.h.

◆ npcId()

uint32_t WorldObjects::npcId ( const Npc ptr) const

Definition at line 262 of file worldobjects.cpp.

◆ onItemRemoved()

void WorldObjects::onItemRemoved ( const Item itm)

Definition at line 624 of file worldobjects.cpp.

◆ removeItem()

void WorldObjects::removeItem ( Item it)

Definition at line 610 of file worldobjects.cpp.

◆ removeNpc()

void WorldObjects::removeNpc ( Npc npc)

Definition at line 363 of file worldobjects.cpp.

◆ resetPositionToTA()

void WorldObjects::resetPositionToTA ( )

Definition at line 952 of file worldobjects.cpp.

◆ runEffect()

void WorldObjects::runEffect ( Effect &&  e)

Definition at line 569 of file worldobjects.cpp.

◆ save()

void WorldObjects::save ( Serialize fout)

Definition at line 123 of file worldobjects.cpp.

◆ sendImmediatePerc()

void WorldObjects::sendImmediatePerc ( Npc self,
Npc other,
Npc victim,
Item itm,
int32_t  perc 
)

Definition at line 888 of file worldobjects.cpp.

◆ sendPassivePerc()

void WorldObjects::sendPassivePerc ( Npc self,
Npc other,
Npc victim,
Item itm,
int32_t  perc 
)

Definition at line 876 of file worldobjects.cpp.

◆ setCurrentCs()

void WorldObjects::setCurrentCs ( CsCamera cs)

Definition at line 548 of file worldobjects.cpp.

◆ setMobRoutine()

void WorldObjects::setMobRoutine ( gtime  time,
std::string_view  scheme,
int32_t  state 
)

Definition at line 856 of file worldobjects.cpp.

◆ shootBullet()

Bullet & WorldObjects::shootBullet ( const Item itmId,
const Tempest::Vec3 &  pos,
const Tempest::Vec3 &  dir,
float  tgRange,
float  speed 
)

Definition at line 630 of file worldobjects.cpp.

◆ stopEffect()

void WorldObjects::stopEffect ( const VisualFx vfx)

Definition at line 578 of file worldobjects.cpp.

◆ takeItem()

std::unique_ptr< Item > WorldObjects::takeItem ( Item it) -> std::unique_ptr<Item>

Definition at line 596 of file worldobjects.cpp.

◆ takeNpc()

std::unique_ptr< Npc > WorldObjects::takeNpc ( const Npc npc) -> std::unique_ptr<Npc>

Definition at line 351 of file worldobjects.cpp.

◆ testFocusNpc()

bool WorldObjects::testFocusNpc ( const Npc pl,
Npc def,
const SearchOpt opt 
)

Definition at line 734 of file worldobjects.cpp.

◆ tick()

void WorldObjects::tick ( uint64_t  dt,
uint64_t  dtPlayer 
)

Definition at line 152 of file worldobjects.cpp.

◆ triggerEvent()

void WorldObjects::triggerEvent ( const TriggerEvent e)

Definition at line 383 of file worldobjects.cpp.

◆ triggerOnStart()

bool WorldObjects::triggerOnStart ( bool  firstTime)

Definition at line 520 of file worldobjects.cpp.

◆ updateAnimation()

void WorldObjects::updateAnimation ( uint64_t  dt)

Definition at line 421 of file worldobjects.cpp.

◆ validateInteractive()

Interactive * WorldObjects::validateInteractive ( Interactive def)

Definition at line 717 of file worldobjects.cpp.

◆ validateItem()

Item * WorldObjects::validateItem ( Item def)

Definition at line 730 of file worldobjects.cpp.

◆ validateNpc()

Npc * WorldObjects::validateNpc ( Npc def)

Definition at line 721 of file worldobjects.cpp.


The documentation for this class was generated from the following files: