]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_in.h
==== MAJOR CHANGES ARE BEING MADE!! WWWW ====
[16.git] / src / lib / 16_in.h
old mode 100644 (file)
new mode 100755 (executable)
index 5aeecc0..f03b337
 //     ID Engine\r
 //     ID_IN.h - Header file for Input Manager\r
 //     v1.0d1w\r
-//     By Jason Blochowiak
+//     By Jason Blochowiak\r
 //     Open Watcom port by sparky4\r
 //\r
 \r
 #ifndef        __16_IN__\r
 #define        __16_IN__\r
-
-#include <string.h>\r
-#include "src/lib/lib_head.h"\r
-\r
-#ifdef __DEBUG__\r
-#define        __DEBUG_InputMgr__\r
-#endif
 \r
-#ifdef __DEBUG_InputMgr__\r
-#define TESTKEYIN
-#define TESTCONTROLNOISY
+#include <string.h>\r
+#include "src/lib/16_head.h"\r
+#include "src/lib/16_timer.h"\r
+#ifdef __WATCOMC__     //borland C BCEXMM.EXE\r
+#include "src/lib/16_dbg.h"\r
+#include "src/lib/16_sprit.h"\r
+#include "src/lib/16_enti.h"\r
+//#include "src/lib/bitmap.h"  //old format\r
 #endif\r
 \r
+//if else for gfxtesting and direction\r
+//player[pn].d == 2 ||\r
+//player[pn].d != 2 ||\r
+#define DIRECTIONIFELSE        (player[pn].info.dir == 2)\r
+//#define NDIRECTIONIFELSE     (player[pn].info.dir != 2)\r
+\r
 #define        KeyInt  9       // The keyboard ISR number\r
 \r
 // Stuff for the joystick\r
 #define        JoyScaleShift   8\r
 #define        MaxJoyValue             5000\r
 \r
-#define        MaxPlayers      4\r
+#define        MaxPlayers              2//futre plans for multiple playable charaters and being able to alternate\r
 #define        MaxKbds         2\r
-#define        MaxJoys         2
+#define        MaxJoys         2\r
 #define        MaxPads         2\r
 #define        NumCodes        128\r
 \r
-typedef        byte            ScanCode;\r
+//typedef      byte            ScanCode;\r
 #define        sc_None                 0\r
 #define        sc_Bad                  0xff\r
 #define        sc_Return               0x1c\r
@@ -135,10 +139,10 @@ typedef   byte            ScanCode;
 #define        key_BackSpace   0x08\r
 #define        key_Tab                 0x09\r
 #define        key_Delete              0x7f\r
-
-#define        key_LSuper                      0x5b
-#define        key_RSuper                      0x5c
-#define        key_Menu                        0x5d
+\r
+#define        key_LSuper                      0x5b\r
+#define        key_RSuper                      0x5c\r
+#define        key_Menu                        0x5d\r
 \r
 //     Stuff for the mouse\r
 #define        MReset          0\r
@@ -151,41 +155,40 @@ typedef   enum            {
                                                demo_Off,demo_Record,demo_Playback,demo_PlayDone\r
                                        } Demo;\r
 #endif\r
-typedef        enum            {\r
+//moved to 16_tdef.h\r
+/*typedef      enum            {\r
                                                //ctrl_None,                            // MDM (GAMERS EDGE) - added\r
                                                ctrl_Keyboard,\r
                                                        ctrl_Keyboard1 = ctrl_Keyboard,ctrl_Keyboard2,\r
                                                ctrl_Joystick,\r
                                                        ctrl_Joystick1 = ctrl_Joystick,ctrl_Joystick2,\r
-                                               ctrl_Mouse,
-                                               ctrl_Joypad,
-                                                       ctrl_Joypad1 = ctrl_Joypad,ctrl_Joypad2\r
+                                               ctrl_Mouse,\r
                                        } ControlType;\r
 typedef        enum            {\r
                                                motion_Left = -1,motion_Up = -1,\r
                                                motion_None = 0,\r
                                                motion_Right = 1,motion_Down = 1\r
                                        } Motion;\r
-typedef        enum            {
-                                               dir_North,//dir_NorthEast,
-                                               dir_West,//dir_Nortinest,
+typedef        enum            {\r
+                                               dir_North,//dir_NorthEast,\r
+                                               dir_West,//dir_Nortinest,\r
                                                dir_None,\r
-                                               dir_East,//,dir_SouthEast,
-                                               dir_South,//dir_Soutinest,
+                                               dir_East,//,dir_SouthEast,\r
+                                               dir_South,//dir_Soutinest,\r
                                        } Direction;\r
 typedef        struct          {\r
-                                               boolean         button0,button1,button2,button3;\r
-                                               int                     x,y;\r
-                                               Motion          xaxis,yaxis;\r
-                                               Direction       dir;\r
+                                               boolean near    button0,button1,button2,button3;\r
+                                               int     near            x,y;\r
+                                               Motion  near    xaxis,yaxis;\r
+                                               Direction near  dir;\r
                                        } CursorInfo;\r
 \r
 typedef        struct          {\r
-                                               ScanCode        button0,button1,\r
+                                               ScanCode near   button0,button1,\r
                                                                        //upleft,\r
-                                                                       up,
-                                                                       down,
-                                                                       left,
+                                                                       up,\r
+                                                                       down,\r
+                                                                       left,\r
                                                                        right\r
                                                                        //upright,\r
                                                                        //downleft,\r
@@ -193,95 +196,112 @@ typedef  struct          {
                                                                        ;\r
                                        } KeyboardDef;\r
 typedef        struct          {\r
-                                               word            joyMinX,joyMinY,\r
+                                               word    near    joyMinX,joyMinY,\r
                                                                        threshMinX,threshMinY,\r
                                                                        threshMaxX,threshMaxY,\r
                                                                        joyMaxX,joyMaxY,\r
                                                                        joyMultXL,joyMultYL,\r
                                                                        joyMultXH,joyMultYH;\r
-                                       } JoystickDef;
-typedef        struct
-{
-       boolean w;\r
-} JoypadDef;
-
-typedef        struct
-{
-       CursorInfo      info;
-       ControlType     Controls;
-} player_t;
-
+                                       } JoystickDef;\r
+\r
+typedef        struct\r
+{\r
+       int x; //player exact position on the viewable map\r
+       int y; //player exact position on the viewable map\r
+       int tx; //player tile position on the viewable map\r
+       int ty; //player tile position on the viewable map\r
+       int triggerx; //player's trigger box tile position on the viewable map\r
+       int triggery; //player's trigger box tile position on the viewable map\r
+       int sheetsetx; //NOT USED YET! player sprite sheet set on the image x\r
+       int sheetsety; //NOT USED YET! player sprite sheet set on the image y\r
+       byte d;         //direction to render sprite!! wwww\r
+       byte q;         //loop variable for anumation and locking the playing to compleate the animation cycle to prevent issues with misalignment www\r
+       byte near pdir; //previous direction~\r
+       word speed;             //player speed!\r
+       word spt;               //speed per tile\r
+#ifdef __WATCOMC__\r
+       struct sprite   *spri;  //supposively the sprite sheet data\r
+       memptr          gr;\r
+       entity_t                *ent;\r
+#endif\r
+       bitmap_t        *data;          //supposively the sprite sheet data//old format\r
+       bitmap_t        bmp;\r
+       sword hp; //hitpoints of the player\r
+       int persist_aniframe;    // gonna be increased to 1 before being used, so 0 is ok for default\r
+       CursorInfo      info;\r
+       ControlType     Controls;\r
+//newer vars\r
+       int dx, dy, delta;      //TODO: what is this? ^^\r
+} player_t;*/\r
+\r
 /*\r
 =============================================================================\r
 \r
                                        GLOBAL VARIABLES\r
 \r
 =============================================================================\r
-*/
-/*extern struct inconfig
-{
+*/\r
+/*extern struct inconfig\r
+{\r
        boolean                 MousePresent;\r
        boolean                 JoysPresent[MaxJoys];\r
-       boolean                 JoyPadPresent[MaxPads];
        boolean         Keyboard[NumCodes];\r
        boolean         Paused;\r
        char            LastASCII;\r
-       ScanCode        LastScan;
-
-       KeyboardDef     KbdDefs[MaxKbds];
-       JoystickDef     JoyDefs[MaxJoys];
-       JoypadDef       JoypadDefs[MaxPads];
-} inpu;*/
-
+       ScanCode        LastScan;\r
+\r
+       KeyboardDef     KbdDefs[MaxKbds];\r
+       JoystickDef     JoyDefs[MaxJoys];\r
+} inpu;*/\r
+\r
 #ifdef DEMO0\r
                static Demo             DemoMode = demo_Off;\r
                static byte /*_seg*/    *DemoBuffer;\r
                static word             DemoOffset,DemoSize;\r
 #endif\r
-
-extern dword far* clockdw;\r
 \r
-//     Internal routines
-extern void interrupt INL_KeyService();
-extern void Mouse(int x);
-//static void INL_GetMouseDelta(int *x,int *y);
-//static word INL_GetMouseButtons(void);
-extern void IN_GetJoyAbs(word joy,word *xp,word *yp);
-//static void INL_GetJoyDelta(word joy,int *dx,int *dy,boolean adaptive);
-//static word INL_GetJoyButtons(word joy);
-extern word IN_GetJoyButtonsDB(word joy);
-//static void INL_StartKbd(void);
-//static void INL_ShutKbd(void);
-//static boolean INL_StartMouse(void);
-//static void INL_ShutMouse(void);
-//static void INL_SetJoyScale(word joy);
-extern void IN_SetupJoy(word joy,word minx,word maxx,word miny,word maxy);
-//static boolean INL_StartJoy(word joy);
-//static void INL_ShutJoy(word joy);
-extern void IN_Startup();
-extern void IN_Default(boolean gotit,player_t *player,ControlType nt);
-extern void IN_Shutdown();
-extern void IN_SetKeyHook(void (*hook)());
-extern void IN_ClearKeysDown();
-//static void INL_AdjustCursor(CursorInfo *info,word buttons,int dx,int dy);
-extern void IN_ReadCursor(CursorInfo *info);
-extern void IN_ReadControl(int playnum,player_t *player);
-extern void IN_SetControlType(word playnum,player_t *player,ControlType type);
-#if DEMO0
-extern boolean IN_StartDemoRecord(word bufsize);
-extern void IN_StartDemoPlayback(byte /*__segment*/ *buffer,word bufsize);
-extern void IN_StopDemo(void);
-extern void IN_FreeDemoBuffer(void);
-#endif
-extern byte *IN_GetScanName(ScanCode scan);
-extern ScanCode IN_WaitForKey();
-extern char IN_WaitForASCII();
-extern void IN_AckBack();
-extern void IN_Ack();
-extern boolean IN_IsUserInput();
-extern boolean IN_UserInput(dword delay,boolean clear);
-extern boolean IN_KeyDown(byte code);
-extern void IN_ClearKey(byte code);
-extern boolean IN_qb(byte kee);
+//     Internal routines\r
+extern void interrupt INL_KeyService();\r
+extern void Mouse(int x);\r
+//static void INL_GetMouseDelta(int *x,int *y);\r
+//static word INL_GetMouseButtons(void);\r
+extern void IN_GetJoyAbs(word joy,word *xp,word *yp);\r
+//static void INL_GetJoyDelta(word joy,int *dx,int *dy,boolean adaptive);\r
+//static word INL_GetJoyButtons(word joy);\r
+extern word IN_GetJoyButtonsDB(word joy);\r
+//static void INL_StartKbd(void);\r
+//static void INL_ShutKbd(void);\r
+//static boolean INL_StartMouse(void);\r
+//static void INL_ShutMouse(void);\r
+//static void INL_SetJoyScale(word joy);\r
+extern void IN_SetupJoy(word joy,word minx,word maxx,word miny,word maxy);\r
+//static boolean INL_StartJoy(word joy);\r
+//static void INL_ShutJoy(word joy);\r
+extern void IN_Startup();\r
+extern void IN_Default(boolean gotit,player_t *player,ControlType nt);\r
+extern void IN_Shutdown();\r
+extern void IN_SetKeyHook(void (*hook)());\r
+extern void IN_ClearKeysDown();\r
+//static void INL_AdjustCursor(CursorInfo *info,word buttons,int dx,int dy);\r
+extern void IN_ReadCursor(CursorInfo *info);\r
+extern void near IN_ReadControl(word pn, player_t *player);\r
+extern void IN_SetControlType(word pn,player_t *player,ControlType type);\r
+#if DEMO0\r
+extern boolean IN_StartDemoRecord(word bufsize);\r
+extern void IN_StartDemoPlayback(byte /*__segment*/ *buffer,word bufsize);\r
+extern void IN_StopDemo(void);\r
+extern void IN_FreeDemoBuffer(void);\r
+#endif\r
+extern byte *IN_GetScanName(ScanCode scan);\r
+extern ScanCode IN_WaitForKey();\r
+extern char IN_WaitForASCII();\r
+extern void IN_AckBack();\r
+extern void IN_Ack();\r
+extern boolean IN_IsUserInput();\r
+extern boolean IN_UserInput(dword delay,boolean clear);\r
+extern boolean IN_KeyDown(byte code);\r
+extern void IN_ClearKey(byte code);\r
+extern boolean IN_qb(byte kee);\r
+void IN_initplayer(player_t *player, word pn);\r
 \r
 #endif\r