X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_in.h;h=9bcec25889cdab222c946b820430dff57e889794;hb=d799ef823a8b57ba6c783ed323430254083158be;hp=352d87b27974c1c9fee96dd28a1ef1cb7ccf49c5;hpb=00497e980f1e07052ae1b28f41c0d18c3ec097dc;p=16.git diff --git a/src/lib/16_in.h b/src/lib/16_in.h old mode 100644 new mode 100755 index 352d87b2..9bcec258 --- a/src/lib/16_in.h +++ b/src/lib/16_in.h @@ -20,22 +20,28 @@ // ID Engine // ID_IN.h - Header file for Input Manager // v1.0d1w -// By Jason Blochowiak +// By Jason Blochowiak // Open Watcom port by sparky4 // #ifndef __16_IN__ #define __16_IN__ - -#include -#include "src/lib/lib_head.h" -//++++#ifdef __DEBUG__ -#define __DEBUG_InputMgr__ -//++++#endif +#include +#include "src/lib/16_head.h" +#include "src/lib/16_timer.h" +#ifdef __WATCOMC__ //borland C BCEXMM.EXE +#include "src/lib/16_dbg.h" +#include "src/lib/16_spri.h" +#include "src/lib/16_enti.h" +//#include "src/lib/bitmap.h" //old format +#endif -#define TESTKEYIN -#define TESTCONTROLNOISY +//if else for gfxtesting and direction +//player[pn].d == 2 || +//player[pn].d != 2 || +#define DIRECTIONIFELSE (player[pn].info.dir == 2) +//#define NDIRECTIONIFELSE (player[pn].info.dir != 2) #define KeyInt 9 // The keyboard ISR number @@ -44,13 +50,13 @@ #define JoyScaleShift 8 #define MaxJoyValue 5000 -#define MaxPlayers 4 +#define MaxPlayers 2//futre plans for multiple playable charaters and being able to alternate #define MaxKbds 2 -#define MaxJoys 2 +#define MaxJoys 2 #define MaxPads 2 #define NumCodes 128 -typedef byte ScanCode; +//typedef byte ScanCode; #define sc_None 0 #define sc_Bad 0xff #define sc_Return 0x1c @@ -133,10 +139,10 @@ typedef byte ScanCode; #define key_BackSpace 0x08 #define key_Tab 0x09 #define key_Delete 0x7f - -#define key_LSuper 0x5b -#define key_RSuper 0x5c -#define key_Menu 0x5d + +#define key_LSuper 0x5b +#define key_RSuper 0x5c +#define key_Menu 0x5d // Stuff for the mouse #define MReset 0 @@ -149,15 +155,14 @@ typedef enum { demo_Off,demo_Record,demo_Playback,demo_PlayDone } Demo; #endif -typedef enum { +//moved to 16_tdef.h +/*typedef enum { //ctrl_None, // MDM (GAMERS EDGE) - added ctrl_Keyboard, ctrl_Keyboard1 = ctrl_Keyboard,ctrl_Keyboard2, ctrl_Joystick, ctrl_Joystick1 = ctrl_Joystick,ctrl_Joystick2, - ctrl_Mouse, - ctrl_Joypad, - ctrl_Joypad1 = ctrl_Joypad,ctrl_Joypad2 + ctrl_Mouse, } ControlType; typedef enum { motion_Left = -1,motion_Up = -1, @@ -166,98 +171,136 @@ typedef enum { } Motion; typedef enum { dir_North,//dir_NorthEast, - dir_East,//dir_SouthEast, - dir_South,//dir_Soutinest, dir_West,//dir_Nortinest, - dir_None + dir_None, + dir_East,//,dir_SouthEast, + dir_South,//dir_Soutinest, } Direction; typedef struct { - boolean button0,button1,button2,button3; - int x,y; - Motion xaxis,yaxis; - Direction dir; + boolean near button0,button1,button2,button3; + int near x,y; + Motion near xaxis,yaxis; + Direction near dir; } CursorInfo; typedef struct { - ScanCode button0,button1, + ScanCode near button0,button1, //upleft, up, + down, + left, + right //upright, - left, right, //downleft, - down //,downright ; } KeyboardDef; typedef struct { - word joyMinX,joyMinY, + word near joyMinX,joyMinY, threshMinX,threshMinY, threshMaxX,threshMaxY, joyMaxX,joyMaxY, joyMultXL,joyMultYL, joyMultXH,joyMultYH; - } JoystickDef; -typedef struct -{ - boolean w; -} JoypadDef; - -typedef struct -{ - CursorInfo info; - ControlType Controls; -} player_t; - + } JoystickDef; + +typedef struct +{ + int x; //player exact position on the viewable map + int y; //player exact position on the viewable map + int tx; //player tile position on the viewable map + int ty; //player tile position on the viewable map + int triggerx; //player's trigger box tile position on the viewable map + int triggery; //player's trigger box tile position on the viewable map + int sheetsetx; //NOT USED YET! player sprite sheet set on the image x + int sheetsety; //NOT USED YET! player sprite sheet set on the image y + byte d; //direction to render sprite!! wwww + byte q; //loop variable for anumation and locking the playing to compleate the animation cycle to prevent issues with misalignment www + byte near pdir; //previous direction~ + word speed; //player speed! + word spt; //speed per tile +#ifdef __WATCOMC__ + struct sprite *spri; //supposively the sprite sheet data + memptr gr; + entity_t *ent; +#endif + bitmap_t *data; //supposively the sprite sheet data//old format + bitmap_t bmp; + sword hp; //hitpoints of the player + int persist_aniframe; // gonna be increased to 1 before being used, so 0 is ok for default + CursorInfo info; + ControlType Controls; +//newer vars + int dx, dy, delta; //TODO: what is this? ^^ +} player_t;*/ + +/* +============================================================================= + + GLOBAL VARIABLES + +============================================================================= +*/ +/*extern struct inconfig +{ + boolean MousePresent; + boolean JoysPresent[MaxJoys]; + boolean Keyboard[NumCodes]; + boolean Paused; + char LastASCII; + ScanCode LastScan; + + KeyboardDef KbdDefs[MaxKbds]; + JoystickDef JoyDefs[MaxJoys]; +} inpu;*/ + #ifdef DEMO0 static Demo DemoMode = demo_Off; static byte /*_seg*/ *DemoBuffer; static word DemoOffset,DemoSize; #endif - -//extern struct inconfig in; -extern dword far* clockdw; -// 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 +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 near IN_ReadControl(word pn, player_t *player); +extern void IN_SetControlType(word pn,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); #endif