]> 4ch.mooo.com Git - 16.git/blobdiff - src/16.c
shinku() needs ROM font to modexprint. make sure to fetch it.
[16.git] / src / 16.c
old mode 100644 (file)
new mode 100755 (executable)
index 6ead54b..990a211
--- a/src/16.c
+++ b/src/16.c
@@ -1,49 +1,94 @@
-/* Project 16 Source Code~
- * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669
- *
- * This file is part of Project 16.
- *
- * Project 16 is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * Project 16 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>, or
- * write to the Free Software Foundation, Inc., 51 Franklin Street,
- * Fifth Floor, Boston, MA 02110-1301 USA.
- *
- */
-
-#include "src/16.h"
-
-void
+/* Project 16 Source Code~\r
+ * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123\r
+ *\r
+ * This file is part of Project 16.\r
+ *\r
+ * Project 16 is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 3 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * Project 16 is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>, or\r
+ * write to the Free Software Foundation, Inc., 51 Franklin Street,\r
+ * Fifth Floor, Boston, MA 02110-1301 USA.\r
+ *\r
+ */\r
+\r
+#include "src/16.h"\r
+\r
+global_game_variables_t gvar;\r
+engi_stat_t engi_stat;\r
+const char *cpus;\r
+byte *dpal, *gpal;\r
+player_t player[MaxPlayers];\r
+//page_t screen;\r
+\r
+void\r
 main(int argc, char *argv[])\r
-{
-       const char *cpus;
-       byte *dpal, *gpal;
-       /* save the palette */
-       dpal = modexNewPal();
-       modexPalSave(dpal);
-       modexFadeOff(4, dpal);
-       printf("pal load\n");
-       gpal = modexNewPal();
-       modexPalSave(gpal);
-       modexSavePalFile("data/g.pal", gpal);
-       modexPalBlack();        //so player will not see loadings~
-       printf("wwww loop wwww\n");
-       switch(detectcpu())
-       {
-               case 0: cpus = "8086/8088 or 186/88"; break;
-               case 1: cpus = "286"; break;
-               case 2: cpus = "386 or newer"; break;
-               default: cpus = "internal error"; break;
-       }
-       printf("detected CPU type: %s\n", cpus);
-       modexFadeOn(4, dpal);
-}
+{\r
+       // DOSLIB: check our environment\r
+       probe_dos();\r
+\r
+       // DOSLIB: what CPU are we using?\r
+       // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS.\r
+       //      So this code by itself shouldn't care too much what CPU it's running on. Except that other\r
+       //      parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for\r
+       //      the CPU to carry out tasks. --J.C.\r
+       cpu_probe();\r
+\r
+       // DOSLIB: check for VGA\r
+       if (!probe_vga()) {\r
+               printf("VGA probe failed\n");\r
+               return;\r
+       }\r
+       // hardware must be VGA or higher!\r
+       if (!(vga_state.vga_flags & VGA_IS_VGA)) {\r
+               printf("This program requires VGA or higher graphics hardware\n");\r
+               return;\r
+       }\r
+\r
+       //screen = modexDefaultPage();\r
+       engi_stat = ENGI_RUN;\r
+       textInit();\r
+\r
+       /* save the palette */\r
+       dpal = modexNewPal();\r
+       modexPalSave(dpal);\r
+//     modexFadeOff(4, dpal);\r
+       //printf("pal load\n");\r
+       //gpal = modexNewPal();\r
+       /*modexPalSave(gpal);\r
+       modexSavePalFile("data/g.pal", gpal);*/\r
+//0000 printf("wwww loop wwww\n");\r
+       VGAmodeX(1, 1, &gvar);\r
+//     modexPalBlack();        //so player will not see loadings~\r
+       IN_Startup();\r
+       IN_Default(0,&player,ctrl_Joystick);\r
+       //modexprint(&screen, 32, 32, 1, 2, 0, "a", 1);\r
+       start_timer(&gvar);\r
+       while(ENGI_EXIT != engi_stat)\r
+       {\r
+               IN_ReadControl(0,&player);\r
+               if(IN_KeyDown(sc_Escape)) engi_stat = ENGI_EXIT;\r
+               shinku(&gvar);\r
+       }\r
+       switch(detectcpu())\r
+       {\r
+               case 0: cpus = "8086/8088 or 186/88"; break;\r
+               case 1: cpus = "286"; break;\r
+               case 2: cpus = "386 or newer"; break;\r
+               default: cpus = "internal error"; break;\r
+       }\r
+       VGAmodeX(0, 1, &gvar);\r
+       printf("Project 16 16.exe. This is supposed to be the actual finished game executable!\n");\r
+       printf("version %s\n", VERSION);\r
+       printf("detected CPU type: %s\n", cpus);\r
+       IN_Shutdown();\r
+//     modexFadeOn(4, dpal);\r
+}\r