]> 4ch.mooo.com Git - 16.git/blobdiff - src/eng_core.cpp
modified: 16/modex16/scroll.c
[16.git] / src / eng_core.cpp
index 8f790fac2bf23742a423a8a6e424d4c7154eb3f3..853e64cc60419efa032766958dd4c41f6a91ff08 100644 (file)
@@ -1,5 +1,5 @@
 #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
@@ -19,35 +19,39 @@ namespace engine{
                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->mode = 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 = 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
+               }*/\r
+         // call update functions, instead of traversing a function pointer\r
+         // list.  Remove this comment!\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
@@ -108,8 +112,8 @@ namespace engine{
        bool Core::init(){\r
                bool xz = 0; // error switch...\r
                std::cout << "VIDEO INITIATION" << std::endl;\r
-               setvideo(0x13, 1);\r
-               setvbuff(1);\r
+//____working on mode x                setvideo(0x13, 1);\r
+//____working on mode x                setvbuff(1);\r
                std::cout << "Checking for Adlib sound card...." << std::endl;\r
                if(!AdlibExists()){\r
                        std::cout << "not found." << std::endl;\r
@@ -122,8 +126,8 @@ namespace engine{
                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
@@ -133,8 +137,8 @@ namespace engine{
        void Core::release()\r
        {\r
                //release contexts and set engine to exit\r
-               setvideo(0x03, 0);\r
-               setvbuff(0);\r
+//____working on mode x                setvideo(0x03, 0);\r
+//____working on mode x                setvbuff(0);\r
                setkb(0);\r
                FMReset();\r
                this->msg = ENGINE_EXIT;\r
@@ -165,32 +169,32 @@ namespace engine{
                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
+//====                 std::cout << "GRAPHICS GRAPHICS GRAPHICS GRAPHICS GRAPHICS" << std::endl;
+//____                 updatevbuff();\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