]> 4ch.mooo.com Git - 16.git/blobdiff - src/eng_core.cpp
modified: 16/modex16/scroll.c
[16.git] / src / eng_core.cpp
index 67c50978ff8b24156f4c29cc5849854f01287e16..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
@@ -7,9 +7,9 @@
 \r
 #include <iostream>\r
 \r
-#include "src\lib\dos_gfx.h"\r
-#include "src\lib\opl2.h"\r
-#include "src\lib\dos_comm.h"\r
+//#include "src\lib\dos_gfx.h"\r
+//#include "src\lib\opl2.h"\r
+//#include "src\lib\dos_comm.h"\r
 \r
 namespace engine{\r
 \r
@@ -19,36 +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
-               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);
-
-               // Global Variables
-               this->qing = 4; // test global variable\r
-               this->x = 0; // X
+               this->frames_per_second = 60;\r
+\r
+               // Global Variables\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
-                       \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
@@ -78,7 +81,7 @@ namespace engine{
                //if (this->timer.elapsed_timer() >= fps)\r
                //{\r
                //wrap comm lib\r
-               this->msg = do_communication(scankey());\r
+               this->msg = do_communication();\r
                //this->timer.start_timer();\r
                //}\r
        }\r
@@ -102,16 +105,15 @@ namespace engine{
 //----                 i++;if(i==600){char a;std::cin >> a;this->keeq[a] = true;i=0;}\r
                        this->sync();\r
                        this->input();\r
-                       this->update();
-//tt                   std::cout << this->qing << std::endl;
+                       this->update();\r
                }\r
        }\r
 \r
        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
@@ -124,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
@@ -135,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
@@ -147,7 +149,6 @@ namespace engine{
                //dummy 'w' and 'p' down, t up\r
 //----         bool dummy_input_available = true;\r
 //----         if(dummy_input_available)\r
-               //if (scankey() <= 128)\r
 //----         {\r
 //----                 std::cout << "key down" << std::endl;\r
 //----                 this->keeq['w'] = true;\r
@@ -168,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