#endif // _MSC_VER > 1000\r
\r
#include "singleton.h"\r
+#include "SpriteManager.h"\r
\r
\r
class CClient;\r
\r
int Execute();\r
\r
-#ifdef WIN32\r
- bool AddTask(CMMPointer<ITask> &t);\r
-#else\r
- bool AddTask(CMMPointer<ITask> t);\r
-#endif\r
- void SuspendTask(CMMPointer<ITask> &t);\r
- void ResumeTask(CMMPointer<ITask> &t);\r
- void RemoveTask(CMMPointer<ITask> &t);\r
+ bool AddTask(const CMMPointer<ITask> &t);\r
+ void SuspendTask(const CMMPointer<ITask> &t);\r
+ void ResumeTask(const CMMPointer<ITask> &t);\r
+ void RemoveTask(const CMMPointer<ITask> &t);\r
void KillAllTasks();\r
-\r
+ \r
+ void setSpriteManager(CSpriteManager* sm) {this->sm = sm;}\r
+ CSpriteManager* getSpriteManager() {return this->sm;}\r
protected:\r
std::list< CMMPointer<ITask> > taskList;\r
std::list< CMMPointer<ITask> > pausedTaskList;\r
+ CSpriteManager *sm;\r
};\r
\r
class ITask : public IMMObject\r
{\r
public:\r
- ITask(){canKill=false;priority=5000;}\r
+ /** Keeps a normal pointer to the kernel, to prevent pointer loops */\r
+ ITask(CKernel* kernel){this->kernel = kernel, this->canKill=false;this->priority=5000;}\r
virtual bool Start()=0;\r
virtual void OnSuspend(){};\r
virtual void Update()=0;\r
virtual void OnResume(){};\r
virtual void Stop()=0;\r
\r
+\r
+\r
bool canKill;\r
long priority;\r
+protected:\r
+ /**\r
+ * Returns a pointer to the current kernel\r
+ */\r
+ CKernel *getKernel() {return this->kernel;}\r
+private:\r
+ CKernel* kernel;\r
};\r
\r
#endif // !defined(AFX_KERNEL_H__4E822B7D_1078_4F70_BC8F_3BB4F83ED0AF__INCLUDED_)\r