mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-04-23 09:04:21 +00:00
37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <basis/seadTypes.h>
|
|
|
|
#include "Library/HostIO/HioNode.h"
|
|
#include "Library/Scene/ISceneObj.h"
|
|
|
|
class TrafficRailWatcher;
|
|
|
|
namespace al {
|
|
struct ActorInitInfo;
|
|
class LiveActor;
|
|
} // namespace al
|
|
|
|
class TrafficRailWatcherDirector : public al::HioNode, public al::ISceneObj {
|
|
public:
|
|
TrafficRailWatcherDirector();
|
|
|
|
void* registerActor(const al::LiveActor* actor, const al::ActorInitInfo& info);
|
|
TrafficRailWatcher* findActorRailWatcher(const al::LiveActor* actor) const;
|
|
const char* getSceneObjName() const override;
|
|
|
|
private:
|
|
s32 mWatcherCount = 0;
|
|
TrafficRailWatcher** mWatchers = nullptr;
|
|
};
|
|
|
|
static_assert(sizeof(TrafficRailWatcherDirector) == 0x18);
|
|
|
|
namespace rs {
|
|
void* registerTrafficRailWatcher(const al::LiveActor* actor, const al::ActorInitInfo& info);
|
|
void stopTrafficRailByTraffic(const al::LiveActor* actor);
|
|
void restartTrafficRailByTraffic(const al::LiveActor* actor);
|
|
bool tryStopTrafficRailByOtherNpc(const al::LiveActor* actor);
|
|
bool tryRestartTrafficRailByOtherNpc(const al::LiveActor* actor);
|
|
} // namespace rs
|