1#ifndef SEAD_CONTROLLER_MGR_H_
2#define SEAD_CONTROLLER_MGR_H_
4#include <container/seadOffsetList.h>
5#include <controller/seadController.h>
6#include <framework/seadCalculateTask.h>
7#include <framework/seadTaskMgr.h>
8#include <framework/seadTaskParameter.h>
28 heap_array = &mHeapArray;
85static_assert(
sizeof(
ControllerMgr) == 0xE8,
"sead::ControllerMgr size mismatch");
91 for (PtrArray<Controller>::iterator it = mControllers.begin(); it != mControllers.end(); ++it)
93 T controller = DynamicCast<
typename remove_pointer<T>::type>(&(*it));
109 for (OffsetList<ControlDevice>::iterator it = mDevices.begin(); it != mDevices.end(); ++it)
111 T device = DynamicCast<
typename remove_pointer<T>::type>(&(*it));
122 Controller* controller = mControllers.at(index);
124 return controller->getAddonAs<T>();
Definition seadCalculateTask.h:10
Definition seadControlDevice.h:13
Definition seadControllerAddon.h:14
Definition seadControllerDefine.h:9
AddonId
Definition seadControllerDefine.h:41
ControllerId
Definition seadControllerDefine.h:12
DeviceId
Definition seadControllerDefine.h:27
Definition seadControllerMgr.h:22
HeapArray mHeapArray
Definition seadControllerMgr.h:32
ConstructArg()
Definition seadControllerMgr.h:24
Definition seadControllerMgr.h:17
ControllerAddon * getControllerAddon(s32 index, ControllerDefine::AddonId id) const
Definition seadControllerMgr.cpp:232
PtrArray< Controller > mControllers
Definition seadControllerMgr.h:82
T getControllerAddonAs(s32 index) const
Definition seadControllerMgr.h:120
ControllerMgr(const TaskConstructArg &arg)
Definition seadControllerMgr.cpp:26
ControlDevice * getControlDevice(ControllerDefine::DeviceId id) const
Definition seadControllerMgr.cpp:220
T getControllerByOrderAs(s32 index) const
Definition seadControllerMgr.h:89
T getControlDeviceAs() const
Definition seadControllerMgr.h:107
virtual void prepare()
Definition seadControllerMgr.cpp:32
s32 findControllerPort(const Controller *controller) const
Definition seadControllerMgr.cpp:241
void finalize()
Definition seadControllerMgr.cpp:52
void initialize(s32 controller_max, Heap *heap)
Definition seadControllerMgr.cpp:47
Controller * getControllerByOrder(ControllerDefine::ControllerId id, s32 index) const
Definition seadControllerMgr.cpp:203
OffsetList< ControlDevice > mDevices
Definition seadControllerMgr.h:81
virtual void calc()
Definition seadControllerMgr.cpp:194
virtual ~ControllerMgr()
Definition seadControllerMgr.h:54
void initializeDefault(Heap *heap)
Definition seadControllerMgr.cpp:57
ControllerMgr()
Definition seadControllerMgr.cpp:20
void finalizeDefault()
Definition seadControllerMgr.cpp:93
Definition seadController.h:28
Definition seadHeapPolicies.h:10
Definition seadDelegate.h:266
Definition seadOffsetList.h:11
Definition seadPtrArray.h:111
Definition seadTaskParameter.h:9
Definition seadAssert.h:44
#define SEAD_RTTI_OVERRIDE(CLASS, BASE)
Definition seadRuntimeTypeInfo.h:96
#define SEAD_TASK_SINGLETON_DISPOSER(CLASS)
Definition seadTaskMgr.h:145
Definition seadControllerMgr.h:37
IDelegate1< ControllerMgr * > * proc
Definition seadControllerMgr.h:42
Parameter()
Definition seadControllerMgr.h:44
s32 controllerMax
Definition seadControllerMgr.h:41
Definition seadTaskID.h:14
TaskConstructArg()
Definition seadTaskID.h:15