#include "src\eng_core.h"\r
-#include <list>\r
+\r
#include "src\eng_snd.h"\r
#include "src\eng_gfx.h"\r
#include "src\eng_comm.h"\r
this->init();\r
\r
//default constructor\r
- this->fp = new std::list<void(Core::*)()>;\r
this->msg = ENGINE_RUN;\r
this->timer.start_timer();\r
this->frames_per_second = 60;\r
\r
- this->fp->push_back(&Core::sound);\r
- this->fp->push_back(&Core::graphics);\r
- this->fp->push_back(&Core::comm);\r
- this->fp->push_back(&Core::ai);\r
-\r
- //this->fp.push_back(&core::sound);\r
- //this->fp.push_back(&core::graphics);\r
- //this->fp.push_back(&core::comm);\r
- //this->fp.push_back(&engine::core::ai);\r
-\r
// Global Variables\r
this->bing = 4; // test global variable\r
this->x = 0; // X\r
this->y = 0; // Y\r
+ \r
+ // Start setttings of flags. I hope I got the same\r
+ // logic as it was before, with the STL list.\r
+ this->graphics_flag = true;\r
+ this->comm_flag = true;\r
+ this->release_flag = false;\r
}\r
\r
void Core::update()\r
{\r
- for (std::list<void(Core::*)()>::iterator i = fp->begin(); i != fp->end(); i++)\r
- //for (std::list<void(core::*)()>::iterator i = this->fp.begin(); i != this->fp.end(); i++)\r
- {\r
- (this->*(*i))();\r
- }\r
-\r
+ // call update functions, instead of traversing a function pointer\r
+ // list. Remove this comment!\r
+\r
+ sound();\r
+ if ( graphics_flag )\r
+ graphics();\r
+ if ( comm_flag )\r
+ comm();\r
+ ai();\r
+ if ( release_flag )\r
+ release();\r
}\r
\r
void Core::sound()\r
std::cout << "1 - 9 for graphical tests!" << std::endl;\r
std::cout << "space bar for control and sprite test!" << std::endl;\r
std::cout << "z key for noise!" << std::endl;\r
- std::cout << "Press press any key to continue!" << std::endl;\r
- getch();\r
+ //std::cout << "Press press any key to continue!" << std::endl;\r
+ //getch();\r
std::cout << "INPUT INITIATION" << std::endl;\r
setkb(1);\r
std::cout << "INITIATION" << std::endl;\r
if (this->timer.elapsed_timer() >= (1.0 / this->frames_per_second))\r
{\r
//int a;std::cin >> a;\r
- this->fp->push_back(&Core::graphics);\r
+ graphics_flag = true;\r
this->timer.start_timer();\r
//==== std::cout << "GRAPHICS GRAPHICS GRAPHICS GRAPHICS GRAPHICS" << std::endl;\r
}\r
else\r
{\r
- this->fp->remove(&Core::graphics);\r
+ graphics_flag = false;\r
}\r
if (ENGINE_INPUT == this->msg)\r
{\r
- this->fp->push_back(&Core::comm);\r
+ comm_flag = true;\r
}\r
else\r
{\r
- this->fp->remove(&Core::comm);\r
+ comm_flag = false;\r
}\r
if (ENGINE_QUIT == this->msg)\r
{\r
- this->fp->push_back(&Core::release);\r
+ release_flag = true;\r
}\r
}\r
\r
Core::~Core()\r
{\r
//deconstructor\r
- delete(this->fp);\r
}\r
\r
}\r