OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
staticobj.cpp
Go to the documentation of this file.
1#include "staticobj.h"
2
3#include <Tempest/Log>
4
5#include "world/world.h"
6#include "utils/string_frm.h"
7
8using namespace Tempest;
9
10StaticObj::StaticObj(Vob* parent, World& world, const zenkit::VirtualObject& vob, Flags flags)
11 : Vob(parent, world, vob, flags) {
12 visual.setVisual(vob,world,(flags & Flags::Static));
13 visual.setObjMatrix(transform());
14
15 scheme = vob.visual->name;
16 }
17
18void StaticObj::moveEvent() {
20 visual.setObjMatrix(transform());
21 }
22
23bool StaticObj::setMobState(std::string_view sc, int32_t st) {
24 const bool ret = Vob::setMobState(sc,st);
25
26 if(scheme.find(sc)!=0)
27 return ret;
28 string_frm name("S_S",st);
29 if(visual.startAnimAndGet(name,world.tickCount())!=nullptr) {
30 // state = st;
31 return ret;
32 }
33 return false;
34 }
void setObjMatrix(const Tempest::Matrix4x4 &obj)
void setVisual(const zenkit::IItem &visual, World &world, bool staticDraw)
const Animation::Sequence * startAnimAndGet(std::string_view name, uint64_t tickCount, bool force=false)
StaticObj(Vob *parent, World &world, const zenkit::VirtualObject &vob, Flags flags)
Definition staticobj.cpp:10
Definition vob.h:11
virtual bool setMobState(std::string_view scheme, int32_t st)
Definition vob.cpp:78
virtual void moveEvent()
Definition vob.cpp:85
Flags
Definition vob.h:13
@ Static
Definition vob.h:16
World & world
Definition vob.h:45
auto transform() const -> const Tempest::Matrix4x4 &
Definition vob.h:34
Definition world.h:31
uint64_t tickCount() const
Definition world.cpp:387