Added support for client-side VisualThinkers
This commit is contained in:
parent
7e90f3a0f3
commit
ca98f33f42
5 changed files with 11 additions and 10 deletions
|
|
@ -2714,7 +2714,7 @@ void Net_DoCommand(int cmd, uint8_t **stream, int player)
|
|||
if (typeinfo && typeinfo->IsDescendantOf("VisualThinker"))
|
||||
{
|
||||
DVector3 spawnpos = source->Vec3Angle(source->radius * 4, source->Angles.Yaw, 8.);
|
||||
auto vt = DVisualThinker::NewVisualThinker(source->Level, typeinfo);
|
||||
auto vt = DVisualThinker::NewVisualThinker(source->Level, typeinfo, false);
|
||||
if (vt)
|
||||
{
|
||||
vt->PT.Pos = spawnpos;
|
||||
|
|
|
|||
|
|
@ -1033,7 +1033,7 @@ DVisualThinker* DVisualThinker::GetNext() const
|
|||
return _next;
|
||||
}
|
||||
|
||||
DVisualThinker* DVisualThinker::NewVisualThinker(FLevelLocals* Level, PClass* type)
|
||||
DVisualThinker* DVisualThinker::NewVisualThinker(FLevelLocals* Level, PClass* type, bool clientSide)
|
||||
{
|
||||
if (type == nullptr)
|
||||
{
|
||||
|
|
@ -1050,7 +1050,7 @@ DVisualThinker* DVisualThinker::NewVisualThinker(FLevelLocals* Level, PClass* ty
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
auto zs = static_cast<DVisualThinker*>(Level->CreateThinker(type, DVisualThinker::DEFAULT_STAT));
|
||||
auto zs = static_cast<DVisualThinker*>(clientSide ? Level->CreateClientsideThinker(type, DVisualThinker::DEFAULT_STAT) : Level->CreateThinker(type, DVisualThinker::DEFAULT_STAT));
|
||||
zs->Construct();
|
||||
|
||||
IFOVERRIDENVIRTUALPTRNAME(zs, NAME_VisualThinker, BeginPlay)
|
||||
|
|
@ -1065,9 +1065,9 @@ DVisualThinker* DVisualThinker::NewVisualThinker(FLevelLocals* Level, PClass* ty
|
|||
return zs;
|
||||
}
|
||||
|
||||
static DVisualThinker* SpawnVisualThinker(FLevelLocals* Level, PClass* type)
|
||||
static DVisualThinker* SpawnVisualThinker(FLevelLocals* Level, PClass* type, bool clientSide)
|
||||
{
|
||||
return DVisualThinker::NewVisualThinker(Level, type);
|
||||
return DVisualThinker::NewVisualThinker(Level, type, clientSide);
|
||||
}
|
||||
|
||||
void DVisualThinker::UpdateSector(subsector_t * newSubsector)
|
||||
|
|
@ -1101,7 +1101,8 @@ DEFINE_ACTION_FUNCTION_NATIVE(FLevelLocals, SpawnVisualThinker, SpawnVisualThink
|
|||
{
|
||||
PARAM_SELF_STRUCT_PROLOGUE(FLevelLocals);
|
||||
PARAM_CLASS_NOT_NULL(type, DVisualThinker);
|
||||
DVisualThinker* zs = SpawnVisualThinker(self, type);
|
||||
PARAM_BOOL(clientSide);
|
||||
DVisualThinker* zs = SpawnVisualThinker(self, type, clientSide);
|
||||
ACTION_RETURN_OBJECT(zs);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ public:
|
|||
void OnDestroy() override;
|
||||
DVisualThinker* GetNext() const;
|
||||
|
||||
static DVisualThinker* NewVisualThinker(FLevelLocals* Level, PClass* type);
|
||||
static DVisualThinker* NewVisualThinker(FLevelLocals* Level, PClass* type, bool clientSide);
|
||||
void SetTranslation(FName trname);
|
||||
int GetRenderStyle() const;
|
||||
bool isFrozen();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue