mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-23 03:52:12 -04:00
Joystick2 add joystick buttons for automap and main men (#40)
* add joystick buttons for automap and main menu Fixes #27 * joystick button triggers either escape or menu_escape * get away with only one GetButtons() function * rename MAX_JB to MAX_JSB Joystick buttons are called JSB in the key binding menu, so we stay consistent with this. * print PREV and NEXT on separate lines in the weapon key binbing screen Thanks @JNechaevsky for noticing, fixes #37.
This commit is contained in:
parent
0513ad2b77
commit
aacebe1d40
@ -84,6 +84,8 @@ extern int key_map_follow;
|
|||||||
extern int key_map_mark; // ^
|
extern int key_map_mark; // ^
|
||||||
extern int key_map_clear; // |
|
extern int key_map_clear; // |
|
||||||
extern int key_map_grid; // phares
|
extern int key_map_grid; // phares
|
||||||
|
// [FG] automap joystick button
|
||||||
|
extern int joybautomap;
|
||||||
|
|
||||||
// scale on entry
|
// scale on entry
|
||||||
#define INITSCALEMTOF (int)(.2*FRACUNIT)
|
#define INITSCALEMTOF (int)(.2*FRACUNIT)
|
||||||
@ -689,9 +691,21 @@ boolean AM_Responder
|
|||||||
static int bigstate=0;
|
static int bigstate=0;
|
||||||
static char buffer[20];
|
static char buffer[20];
|
||||||
int ch; // phares
|
int ch; // phares
|
||||||
|
static int joywait = 0;
|
||||||
|
|
||||||
rc = false;
|
rc = false;
|
||||||
|
|
||||||
|
// [FG] automap joystick button
|
||||||
|
if (ev->type == ev_joystick && joywait < I_GetTime())
|
||||||
|
{
|
||||||
|
if (joybautomap > -1 && (ev->data1 & (1 << joybautomap)))
|
||||||
|
{
|
||||||
|
ev->type = ev_keydown;
|
||||||
|
ev->data1 = key_map;
|
||||||
|
joywait = I_GetTime() + 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!automapactive)
|
if (!automapactive)
|
||||||
{
|
{
|
||||||
if (ev->type == ev_keydown && ev->data1 == key_map) // phares
|
if (ev->type == ev_keydown && ev->data1 == key_map) // phares
|
||||||
|
@ -75,6 +75,10 @@ typedef int64_t Long64;
|
|||||||
|
|
||||||
#define arrlen(array) (sizeof(array) / sizeof(*array))
|
#define arrlen(array) (sizeof(array) / sizeof(*array))
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && !defined(__cplusplus)
|
||||||
|
#define inline __inline
|
||||||
|
#endif
|
||||||
|
|
||||||
// The packed attribute forces structures to be packed into the minimum
|
// The packed attribute forces structures to be packed into the minimum
|
||||||
// space necessary. If this is not done, the compiler may align structure
|
// space necessary. If this is not done, the compiler may align structure
|
||||||
// fields differently to optimize memory access, inflating the overall
|
// fields differently to optimize memory access, inflating the overall
|
||||||
|
@ -57,6 +57,7 @@
|
|||||||
#include "d_deh.h" // Ty 3/27/98 deh declarations
|
#include "d_deh.h" // Ty 3/27/98 deh declarations
|
||||||
#include "p_inter.h"
|
#include "p_inter.h"
|
||||||
#include "g_game.h"
|
#include "g_game.h"
|
||||||
|
#include "i_video.h" // [FG] MAX_JSB, MAX_MB
|
||||||
#include "statdump.h" // [FG] StatCopy()
|
#include "statdump.h" // [FG] StatCopy()
|
||||||
|
|
||||||
#define SAVEGAMESIZE 0x20000
|
#define SAVEGAMESIZE 0x20000
|
||||||
@ -195,6 +196,10 @@ int joybspeed;
|
|||||||
// [FG] prev/next weapon joystick buttons
|
// [FG] prev/next weapon joystick buttons
|
||||||
int joybprevweapon;
|
int joybprevweapon;
|
||||||
int joybnextweapon;
|
int joybnextweapon;
|
||||||
|
// [FG] automap joystick button
|
||||||
|
int joybautomap;
|
||||||
|
// [FG] main menu joystick button
|
||||||
|
int joybmainmenu;
|
||||||
|
|
||||||
#define MAXPLMOVE (forwardmove[1])
|
#define MAXPLMOVE (forwardmove[1])
|
||||||
#define TURBOTHRESHOLD 0x32
|
#define TURBOTHRESHOLD 0x32
|
||||||
@ -209,7 +214,7 @@ fixed_t angleturn[3] = {640, 1280, 320}; // + slow turn
|
|||||||
boolean gamekeydown[NUMKEYS];
|
boolean gamekeydown[NUMKEYS];
|
||||||
int turnheld; // for accelerative turning
|
int turnheld; // for accelerative turning
|
||||||
|
|
||||||
boolean mousearray[6];
|
boolean mousearray[MAX_MB+1]; // [FG] support more mouse buttons
|
||||||
boolean *mousebuttons = &mousearray[1]; // allow [-1]
|
boolean *mousebuttons = &mousearray[1]; // allow [-1]
|
||||||
|
|
||||||
// mouse values are used once
|
// mouse values are used once
|
||||||
@ -225,7 +230,7 @@ int dclicks2;
|
|||||||
// joystick values are repeated
|
// joystick values are repeated
|
||||||
int joyxmove;
|
int joyxmove;
|
||||||
int joyymove;
|
int joyymove;
|
||||||
boolean joyarray[9];
|
boolean joyarray[MAX_JSB+1]; // [FG] support more joystick buttons
|
||||||
boolean *joybuttons = &joyarray[1]; // allow [-1]
|
boolean *joybuttons = &joyarray[1]; // allow [-1]
|
||||||
|
|
||||||
int savegameslot;
|
int savegameslot;
|
||||||
|
@ -80,7 +80,7 @@ static int GetButtonsState(void)
|
|||||||
|
|
||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
for (i = 0; i < 8; ++i)
|
for (i = 0; i < MAX_JSB; ++i)
|
||||||
{
|
{
|
||||||
if (SDL_JoystickGetButton(sdlJoystick, i))
|
if (SDL_JoystickGetButton(sdlJoystick, i))
|
||||||
{
|
{
|
||||||
@ -303,7 +303,7 @@ static void UpdateMouseButtonState(unsigned int button, boolean on)
|
|||||||
{
|
{
|
||||||
static event_t event;
|
static event_t event;
|
||||||
|
|
||||||
if (button < SDL_BUTTON_LEFT || button > 5)
|
if (button < SDL_BUTTON_LEFT || button > MAX_MB)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,10 @@
|
|||||||
|
|
||||||
#include "doomtype.h"
|
#include "doomtype.h"
|
||||||
|
|
||||||
|
// [FG] support more joystick and mouse buttons
|
||||||
|
#define MAX_JSB 12
|
||||||
|
#define MAX_MB 5
|
||||||
|
|
||||||
// Called by D_DoomMain,
|
// Called by D_DoomMain,
|
||||||
// determines the hardware configuration
|
// determines the hardware configuration
|
||||||
// and sets up the video mode
|
// and sets up the video mode
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#define __M_FIXED__
|
#define __M_FIXED__
|
||||||
|
|
||||||
#include <stdlib.h> // abs()
|
#include <stdlib.h> // abs()
|
||||||
|
#include "doomtype.h"
|
||||||
#include "i_system.h"
|
#include "i_system.h"
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -45,11 +46,6 @@ typedef int fixed_t;
|
|||||||
// Fixed Point Multiplication
|
// Fixed Point Multiplication
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
#if defined(_MSC_VER) && !defined(__cplusplus)
|
|
||||||
#define inline __inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
inline static fixed_t FixedMul(fixed_t a, fixed_t b)
|
inline static fixed_t FixedMul(fixed_t a, fixed_t b)
|
||||||
{
|
{
|
||||||
return (fixed_t)((Long64) a*b >> FRACBITS);
|
return (fixed_t)((Long64) a*b >> FRACBITS);
|
||||||
|
109
Source/m_menu.c
109
Source/m_menu.c
@ -35,8 +35,10 @@
|
|||||||
|
|
||||||
#include "doomdef.h"
|
#include "doomdef.h"
|
||||||
#include "doomstat.h"
|
#include "doomstat.h"
|
||||||
|
#include "doomtype.h" // [FG] inline
|
||||||
#include "dstrings.h"
|
#include "dstrings.h"
|
||||||
#include "d_main.h"
|
#include "d_main.h"
|
||||||
|
#include "i_savepng.h" // [FG] SavePNG()
|
||||||
#include "i_system.h"
|
#include "i_system.h"
|
||||||
#include "i_video.h"
|
#include "i_video.h"
|
||||||
#include "v_video.h"
|
#include "v_video.h"
|
||||||
@ -50,7 +52,6 @@
|
|||||||
#include "d_deh.h"
|
#include "d_deh.h"
|
||||||
#include "m_misc.h"
|
#include "m_misc.h"
|
||||||
#include "m_misc2.h" // [FG] M_StringDuplicate()
|
#include "m_misc2.h" // [FG] M_StringDuplicate()
|
||||||
#include "i_savepng.h" // [FG] SavePNG()
|
|
||||||
|
|
||||||
extern patch_t* hu_font[HU_FONTSIZE];
|
extern patch_t* hu_font[HU_FONTSIZE];
|
||||||
extern boolean message_dontfuckwithme;
|
extern boolean message_dontfuckwithme;
|
||||||
@ -170,11 +171,15 @@ extern int joybstrafe;
|
|||||||
// [FG] strafe left/right joystick buttons
|
// [FG] strafe left/right joystick buttons
|
||||||
extern int joybstrafeleft;
|
extern int joybstrafeleft;
|
||||||
extern int joybstraferight;
|
extern int joybstraferight;
|
||||||
|
extern int joybuse;
|
||||||
|
extern int joybspeed;
|
||||||
// [FG] prev/next weapon joystick buttons
|
// [FG] prev/next weapon joystick buttons
|
||||||
extern int joybprevweapon;
|
extern int joybprevweapon;
|
||||||
extern int joybnextweapon;
|
extern int joybnextweapon;
|
||||||
extern int joybuse;
|
// [FG] automap joystick button
|
||||||
extern int joybspeed;
|
extern int joybautomap;
|
||||||
|
// [FG] main menu joystick button
|
||||||
|
extern int joybmainmenu;
|
||||||
extern int health_red; // health amount less than which status is red
|
extern int health_red; // health amount less than which status is red
|
||||||
extern int health_yellow; // health amount less than which status is yellow
|
extern int health_yellow; // health amount less than which status is yellow
|
||||||
extern int health_green; // health amount above is blue, below is green
|
extern int health_green; // health amount above is blue, below is green
|
||||||
@ -857,6 +862,7 @@ void M_ReadSaveStrings(void)
|
|||||||
LoadMenu[i].status = 0;
|
LoadMenu[i].status = 0;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// [FG] check return value
|
||||||
if (!fread(&savegamestrings[i], SAVESTRINGSIZE, 1, fp))
|
if (!fread(&savegamestrings[i], SAVESTRINGSIZE, 1, fp))
|
||||||
{
|
{
|
||||||
strcpy(&savegamestrings[i][0],s_EMPTYSTRING);
|
strcpy(&savegamestrings[i][0],s_EMPTYSTRING);
|
||||||
@ -1909,10 +1915,8 @@ void M_DrawSetting(setup_menu_t* s)
|
|||||||
else
|
else
|
||||||
if (key == &key_up || key == &key_speed ||
|
if (key == &key_up || key == &key_speed ||
|
||||||
key == &key_fire || key == &key_strafe ||
|
key == &key_fire || key == &key_strafe ||
|
||||||
// [FG] strafe left/right joystick buttons
|
// [FG] support more joystick and mouse buttons
|
||||||
key == &key_strafeleft || key == &key_straferight ||
|
s->m_mouse || s->m_joy)
|
||||||
// [FG] prev/next weapon keys and buttons
|
|
||||||
key == &key_prevweapon || key == &key_nextweapon)
|
|
||||||
{
|
{
|
||||||
if (s->m_mouse)
|
if (s->m_mouse)
|
||||||
sprintf(menu_buffer+strlen(menu_buffer), "/MB%d",
|
sprintf(menu_buffer+strlen(menu_buffer), "/MB%d",
|
||||||
@ -2284,11 +2288,7 @@ setup_menu_t keys_settings1[] = // Key Binding screen strings
|
|||||||
{"RIGHT" ,S_KEY ,m_menu,KB_X,KB_Y+16*8,{&key_menu_right}},
|
{"RIGHT" ,S_KEY ,m_menu,KB_X,KB_Y+16*8,{&key_menu_right}},
|
||||||
{"BACKSPACE" ,S_KEY ,m_menu,KB_X,KB_Y+17*8,{&key_menu_backspace}},
|
{"BACKSPACE" ,S_KEY ,m_menu,KB_X,KB_Y+17*8,{&key_menu_backspace}},
|
||||||
{"SELECT ITEM" ,S_KEY ,m_menu,KB_X,KB_Y+18*8,{&key_menu_enter}},
|
{"SELECT ITEM" ,S_KEY ,m_menu,KB_X,KB_Y+18*8,{&key_menu_enter}},
|
||||||
{"EXIT" ,S_KEY ,m_menu,KB_X,KB_Y+19*8,{&key_menu_escape}},
|
{"EXIT" ,S_KEY ,m_menu,KB_X,KB_Y+19*8,{&key_menu_escape},0,&joybmainmenu},
|
||||||
/*
|
|
||||||
// [FG] clear key bindings with the DEL key
|
|
||||||
{"CLEAR" ,S_KEY ,m_menu,KB_X,KB_Y+20*8,{&key_menu_clear}},
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Button for resetting to defaults
|
// Button for resetting to defaults
|
||||||
{0,S_RESET,m_null,X_BUTTON,Y_BUTTON},
|
{0,S_RESET,m_null,X_BUTTON,Y_BUTTON},
|
||||||
@ -2315,11 +2315,11 @@ setup_menu_t keys_settings2[] = // Key Binding screen strings
|
|||||||
// key with other keys in the same 'group'. (m_scrn, etc.)
|
// key with other keys in the same 'group'. (m_scrn, etc.)
|
||||||
|
|
||||||
{"HELP" ,S_SKIP|S_KEEP ,m_scrn,0 ,0 ,{&key_help}},
|
{"HELP" ,S_SKIP|S_KEEP ,m_scrn,0 ,0 ,{&key_help}},
|
||||||
{"MENU" ,S_SKIP|S_KEEP ,m_scrn,0 ,0 ,{&key_escape}},
|
{"MENU" ,S_SKIP|S_KEEP ,m_scrn,0 ,0 ,{&key_escape},0,&joybmainmenu},
|
||||||
// killough 10/98: hotkey for entering setup menu:
|
// killough 10/98: hotkey for entering setup menu:
|
||||||
{"SETUP" ,S_KEY ,m_scrn,KB_X,KB_Y+ 1*8,{&key_setup}},
|
{"SETUP" ,S_KEY ,m_scrn,KB_X,KB_Y+ 1*8,{&key_setup}},
|
||||||
{"PAUSE" ,S_KEY ,m_scrn,KB_X,KB_Y+ 2*8,{&key_pause}},
|
{"PAUSE" ,S_KEY ,m_scrn,KB_X,KB_Y+ 2*8,{&key_pause}},
|
||||||
{"AUTOMAP" ,S_KEY ,m_scrn,KB_X,KB_Y+ 3*8,{&key_map}},
|
{"AUTOMAP" ,S_KEY ,m_scrn,KB_X,KB_Y+ 3*8,{&key_map},0,&joybautomap},
|
||||||
{"VOLUME" ,S_KEY ,m_scrn,KB_X,KB_Y+ 4*8,{&key_soundvolume}},
|
{"VOLUME" ,S_KEY ,m_scrn,KB_X,KB_Y+ 4*8,{&key_soundvolume}},
|
||||||
{"HUD" ,S_KEY ,m_scrn,KB_X,KB_Y+ 5*8,{&key_hud}},
|
{"HUD" ,S_KEY ,m_scrn,KB_X,KB_Y+ 5*8,{&key_hud}},
|
||||||
{"MESSAGES" ,S_KEY ,m_scrn,KB_X,KB_Y+ 6*8,{&key_messages}},
|
{"MESSAGES" ,S_KEY ,m_scrn,KB_X,KB_Y+ 6*8,{&key_messages}},
|
||||||
@ -2358,8 +2358,8 @@ setup_menu_t keys_settings3[] = // Key Binding screen strings
|
|||||||
{"BEST" ,S_KEY ,m_scrn,KB_X,KB_Y+10*8,{&key_weapontoggle}},
|
{"BEST" ,S_KEY ,m_scrn,KB_X,KB_Y+10*8,{&key_weapontoggle}},
|
||||||
{"FIRE" ,S_KEY ,m_scrn,KB_X,KB_Y+11*8,{&key_fire},&mousebfire,&joybfire},
|
{"FIRE" ,S_KEY ,m_scrn,KB_X,KB_Y+11*8,{&key_fire},&mousebfire,&joybfire},
|
||||||
// [FG] prev/next weapon keys and buttons
|
// [FG] prev/next weapon keys and buttons
|
||||||
{"PREV" ,S_KEY ,m_scrn,KB_X,KB_Y+11*8,{&key_prevweapon},&mousebprevweapon,&joybprevweapon},
|
{"PREV" ,S_KEY ,m_scrn,KB_X,KB_Y+12*8,{&key_prevweapon},&mousebprevweapon,&joybprevweapon},
|
||||||
{"NEXT" ,S_KEY ,m_scrn,KB_X,KB_Y+12*8,{&key_nextweapon},&mousebnextweapon,&joybnextweapon},
|
{"NEXT" ,S_KEY ,m_scrn,KB_X,KB_Y+13*8,{&key_nextweapon},&mousebnextweapon,&joybnextweapon},
|
||||||
|
|
||||||
{"<- PREV",S_SKIP|S_PREV,m_null,KB_PREV,KB_Y+20*8, {keys_settings2}},
|
{"<- PREV",S_SKIP|S_PREV,m_null,KB_PREV,KB_Y+20*8, {keys_settings2}},
|
||||||
{"NEXT ->",S_SKIP|S_NEXT,m_null,KB_NEXT,KB_Y+20*8, {keys_settings4}},
|
{"NEXT ->",S_SKIP|S_NEXT,m_null,KB_NEXT,KB_Y+20*8, {keys_settings4}},
|
||||||
@ -2953,11 +2953,13 @@ enum {
|
|||||||
general_transpct,
|
general_transpct,
|
||||||
general_pcx,
|
general_pcx,
|
||||||
general_diskicon,
|
general_diskicon,
|
||||||
general_hom
|
general_hom,
|
||||||
, general_fullscreen
|
// [FG] fullscreen mode menu toggle
|
||||||
|
general_fullscreen
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
// [FG] remove sound and music card items
|
||||||
/*
|
/*
|
||||||
general_sndcard,
|
general_sndcard,
|
||||||
general_muscard,
|
general_muscard,
|
||||||
@ -2969,7 +2971,7 @@ enum {
|
|||||||
|
|
||||||
#define G_X 250
|
#define G_X 250
|
||||||
#define G_Y 44
|
#define G_Y 44
|
||||||
#define G_Y2 (G_Y+82+16)
|
#define G_Y2 (G_Y+82+16) // [FG] remove sound and music card items
|
||||||
#define G_Y3 (G_Y+44)
|
#define G_Y3 (G_Y+44)
|
||||||
#define G_Y4 (G_Y3+52)
|
#define G_Y4 (G_Y3+52)
|
||||||
#define GF_X 76
|
#define GF_X 76
|
||||||
@ -2981,11 +2983,8 @@ setup_menu_t gen_settings1[] = { // General Settings screen1
|
|||||||
{"High Resolution", S_YESNO, m_null, G_X, G_Y + general_hires*8,
|
{"High Resolution", S_YESNO, m_null, G_X, G_Y + general_hires*8,
|
||||||
{"hires"}, 0, 0, I_ResetScreen},
|
{"hires"}, 0, 0, I_ResetScreen},
|
||||||
|
|
||||||
#if 0 // SDL2
|
// [FG] page_flip = !force_software_renderer
|
||||||
{"Use Page-Flipping", S_YESNO, m_null, G_X, G_Y + general_pageflip*8,
|
|
||||||
#else
|
|
||||||
{"Use Hardware Acceleration", S_YESNO, m_null, G_X, G_Y + general_pageflip*8,
|
{"Use Hardware Acceleration", S_YESNO, m_null, G_X, G_Y + general_pageflip*8,
|
||||||
#endif
|
|
||||||
{"page_flip"}, 0, 0, I_ResetScreen},
|
{"page_flip"}, 0, 0, I_ResetScreen},
|
||||||
|
|
||||||
{"Wait for Vertical Retrace", S_YESNO, m_null, G_X,
|
{"Wait for Vertical Retrace", S_YESNO, m_null, G_X,
|
||||||
@ -3006,11 +3005,13 @@ setup_menu_t gen_settings1[] = { // General Settings screen1
|
|||||||
{"Flashing HOM indicator", S_YESNO, m_null, G_X,
|
{"Flashing HOM indicator", S_YESNO, m_null, G_X,
|
||||||
G_Y + general_hom*8, {"flashing_hom"}},
|
G_Y + general_hom*8, {"flashing_hom"}},
|
||||||
|
|
||||||
|
// [FG] fullscreen mode menu toggle
|
||||||
{"Fullscreen Mode", S_YESNO, m_null, G_X, G_Y + general_fullscreen*8,
|
{"Fullscreen Mode", S_YESNO, m_null, G_X, G_Y + general_fullscreen*8,
|
||||||
{"fullscreen"}, 0, 0, I_ToggleToggleFullScreen},
|
{"fullscreen"}, 0, 0, I_ToggleToggleFullScreen},
|
||||||
|
|
||||||
{"Sound & Music", S_SKIP|S_TITLE, m_null, G_X, G_Y2 - 12},
|
{"Sound & Music", S_SKIP|S_TITLE, m_null, G_X, G_Y2 - 12},
|
||||||
|
|
||||||
|
// [FG] remove sound and music card items
|
||||||
/*
|
/*
|
||||||
{"Sound Card", S_NUM|S_PRGWARN, m_null, G_X,
|
{"Sound Card", S_NUM|S_PRGWARN, m_null, G_X,
|
||||||
G_Y2 + general_sndcard*8, {"sound_card"}},
|
G_Y2 + general_sndcard*8, {"sound_card"}},
|
||||||
@ -4108,6 +4109,23 @@ void M_DrawCredits(void) // killough 10/98: credit screen
|
|||||||
M_DrawScreenItems(cred_settings);
|
M_DrawScreenItems(cred_settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// [FG] support more joystick and mouse buttons
|
||||||
|
|
||||||
|
static inline int GetButtons(const unsigned int max, int data)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < max; ++i)
|
||||||
|
{
|
||||||
|
if (data & (1 << i))
|
||||||
|
{
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// M_Responder
|
// M_Responder
|
||||||
@ -4167,13 +4185,21 @@ boolean M_Responder (event_t* ev)
|
|||||||
joywait = I_GetTime() + 5;
|
joywait = I_GetTime() + 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// [FG] Menu joystick button
|
||||||
|
if (joybmainmenu > -1 && (ev->data1 & (1 << joybmainmenu)))
|
||||||
|
{
|
||||||
|
ch = menuactive ? key_menu_escape : key_escape;
|
||||||
|
joywait = I_GetTime() + 5;
|
||||||
|
}
|
||||||
|
|
||||||
// phares 4/4/98:
|
// phares 4/4/98:
|
||||||
// Handle joystick buttons 3 and 4, and allow them to pass down
|
// Handle joystick buttons 3 and 4, and allow them to pass down
|
||||||
// to where key binding can eat them.
|
// to where key binding can eat them.
|
||||||
|
|
||||||
if (setup_active && set_keybnd_active)
|
if (setup_active && set_keybnd_active)
|
||||||
{
|
{
|
||||||
if (ev->data1&4 || ev->data1&8 || ev->data1&16 || ev->data1&32 || ev->data1&64 || ev->data1&128)
|
// [FG] support more joystick and mouse buttons
|
||||||
|
if (ev->data1 >> 2)
|
||||||
{
|
{
|
||||||
ch = 0; // meaningless, just to get you past the check for -1
|
ch = 0; // meaningless, just to get you past the check for -1
|
||||||
joywait = I_GetTime() + 5;
|
joywait = I_GetTime() + 5;
|
||||||
@ -4233,7 +4259,8 @@ boolean M_Responder (event_t* ev)
|
|||||||
// to where key binding can eat it.
|
// to where key binding can eat it.
|
||||||
|
|
||||||
if (setup_active && set_keybnd_active)
|
if (setup_active && set_keybnd_active)
|
||||||
if (ev->data1&4 || ev->data1&8 || ev->data1&16)
|
// [FG] support more joystick and mouse buttons
|
||||||
|
if (ev->data1 >> 2)
|
||||||
{
|
{
|
||||||
ch = 0; // meaningless, just to get you past the check for -1
|
ch = 0; // meaningless, just to get you past the check for -1
|
||||||
mousewait = I_GetTime() + 15;
|
mousewait = I_GetTime() + 15;
|
||||||
@ -4667,23 +4694,8 @@ boolean M_Responder (event_t* ev)
|
|||||||
|
|
||||||
oldbutton = *ptr1->m_joy;
|
oldbutton = *ptr1->m_joy;
|
||||||
group = ptr1->m_group;
|
group = ptr1->m_group;
|
||||||
if (ev->data1 & 1)
|
// [FG] support more joystick and mouse buttons
|
||||||
ch = 0;
|
if ((ch = GetButtons(MAX_JSB, ev->data1)) == -1)
|
||||||
else if (ev->data1 & 2)
|
|
||||||
ch = 1;
|
|
||||||
else if (ev->data1 & 4)
|
|
||||||
ch = 2;
|
|
||||||
else if (ev->data1 & 8)
|
|
||||||
ch = 3;
|
|
||||||
else if (ev->data1 & 16)
|
|
||||||
ch = 4;
|
|
||||||
else if (ev->data1 & 32)
|
|
||||||
ch = 5;
|
|
||||||
else if (ev->data1 & 64)
|
|
||||||
ch = 6;
|
|
||||||
else if (ev->data1 & 128)
|
|
||||||
ch = 7;
|
|
||||||
else
|
|
||||||
return true;
|
return true;
|
||||||
for (i = 0 ; keys_settings[i] && search ; i++)
|
for (i = 0 ; keys_settings[i] && search ; i++)
|
||||||
for (ptr2 = keys_settings[i] ; !(ptr2->m_flags & S_END) ; ptr2++)
|
for (ptr2 = keys_settings[i] ; !(ptr2->m_flags & S_END) ; ptr2++)
|
||||||
@ -4714,17 +4726,8 @@ boolean M_Responder (event_t* ev)
|
|||||||
|
|
||||||
oldbutton = *ptr1->m_mouse;
|
oldbutton = *ptr1->m_mouse;
|
||||||
group = ptr1->m_group;
|
group = ptr1->m_group;
|
||||||
if (ev->data1 & 1)
|
// [FG] support more joystick and mouse buttons
|
||||||
ch = 0;
|
if ((ch = GetButtons(MAX_MB, ev->data1)) == -1)
|
||||||
else if (ev->data1 & 2)
|
|
||||||
ch = 1;
|
|
||||||
else if (ev->data1 & 4)
|
|
||||||
ch = 2;
|
|
||||||
else if (ev->data1 & 8)
|
|
||||||
ch = 3;
|
|
||||||
else if (ev->data1 & 16)
|
|
||||||
ch = 4;
|
|
||||||
else
|
|
||||||
return true;
|
return true;
|
||||||
for (i = 0 ; keys_settings[i] && search ; i++)
|
for (i = 0 ; keys_settings[i] && search ; i++)
|
||||||
for (ptr2 = keys_settings[i] ; !(ptr2->m_flags & S_END) ; ptr2++)
|
for (ptr2 = keys_settings[i] ; !(ptr2->m_flags & S_END) ; ptr2++)
|
||||||
|
@ -75,6 +75,10 @@ extern int joybprevweapon;
|
|||||||
extern int joybnextweapon;
|
extern int joybnextweapon;
|
||||||
extern int joybuse;
|
extern int joybuse;
|
||||||
extern int joybspeed;
|
extern int joybspeed;
|
||||||
|
// [FG] automap joystick button
|
||||||
|
extern int joybautomap;
|
||||||
|
// [FG] main menu joystick button
|
||||||
|
extern int joybmainmenu;
|
||||||
extern int realtic_clock_rate; // killough 4/13/98: adjustable timer
|
extern int realtic_clock_rate; // killough 4/13/98: adjustable timer
|
||||||
extern int tran_filter_pct; // killough 2/21/98
|
extern int tran_filter_pct; // killough 2/21/98
|
||||||
extern int showMessages;
|
extern int showMessages;
|
||||||
@ -1061,35 +1065,35 @@ default_t defaults[] = {
|
|||||||
{ //jff 3/8/98 allow -1 in mouse bindings to disable mouse function
|
{ //jff 3/8/98 allow -1 in mouse bindings to disable mouse function
|
||||||
"mouseb_fire",
|
"mouseb_fire",
|
||||||
(config_t *) &mousebfire, NULL,
|
(config_t *) &mousebfire, NULL,
|
||||||
{0}, {-1,4}, number, ss_keys, wad_no,
|
{0}, {-1,MAX_MB-1}, number, ss_keys, wad_no,
|
||||||
"mouse button number to use for fire (-1 = disable)"
|
"mouse button number to use for fire (-1 = disable)"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"mouseb_strafe",
|
"mouseb_strafe",
|
||||||
(config_t *) &mousebstrafe, NULL,
|
(config_t *) &mousebstrafe, NULL,
|
||||||
{1}, {-1,4}, number, ss_keys, wad_no,
|
{1}, {-1,MAX_MB-1}, number, ss_keys, wad_no,
|
||||||
"mouse button number to use for strafing (-1 = disable)"
|
"mouse button number to use for strafing (-1 = disable)"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"mouseb_forward",
|
"mouseb_forward",
|
||||||
(config_t *) &mousebforward, NULL,
|
(config_t *) &mousebforward, NULL,
|
||||||
{2}, {-1,4}, number, ss_keys, wad_no,
|
{2}, {-1,MAX_MB-1}, number, ss_keys, wad_no,
|
||||||
"mouse button number to use for forward motion (-1 = disable)"
|
"mouse button number to use for forward motion (-1 = disable)"
|
||||||
}, //jff 3/8/98 end of lower range change for -1 allowed in mouse binding
|
}, //jff 3/8/98 end of lower range change for -1 allowed in mouse binding
|
||||||
|
|
||||||
{ // [FG] prev/next weapon keys and buttons
|
{ // [FG] prev/next weapon keys and buttons
|
||||||
"mouseb_prevweapon",
|
"mouseb_prevweapon",
|
||||||
(config_t *) &mousebprevweapon, NULL,
|
(config_t *) &mousebprevweapon, NULL,
|
||||||
{4}, {-1,4}, number, ss_keys, wad_no,
|
{4}, {-1,MAX_MB-1}, number, ss_keys, wad_no,
|
||||||
"mouse button number to cycle to the previous weapon (-1 = disable)"
|
"mouse button number to cycle to the previous weapon (-1 = disable)"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"mouseb_nextweapon",
|
"mouseb_nextweapon",
|
||||||
(config_t *) &mousebnextweapon, NULL,
|
(config_t *) &mousebnextweapon, NULL,
|
||||||
{3}, {-1,4}, number, ss_keys, wad_no,
|
{3}, {-1,MAX_MB-1}, number, ss_keys, wad_no,
|
||||||
"mouse button number to cycle to the mext weapon (-1 = disable)"
|
"mouse button number to cycle to the mext weapon (-1 = disable)"
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1103,59 +1107,73 @@ default_t defaults[] = {
|
|||||||
{
|
{
|
||||||
"joyb_fire",
|
"joyb_fire",
|
||||||
(config_t *) &joybfire, NULL,
|
(config_t *) &joybfire, NULL,
|
||||||
{3}, {-1,7}, number, ss_keys, wad_no,
|
{3}, {-1,MAX_JSB-1}, number, ss_keys, wad_no,
|
||||||
"joystick button number to use for fire"
|
"joystick button number to use for fire"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"joyb_strafe",
|
"joyb_strafe",
|
||||||
(config_t *) &joybstrafe, NULL,
|
(config_t *) &joybstrafe, NULL,
|
||||||
{-1}, {-1,7}, 0, ss_keys, wad_no,
|
{-1}, {-1,MAX_JSB-1}, 0, ss_keys, wad_no,
|
||||||
"joystick button number to use for strafing"
|
"joystick button number to use for strafing"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"joyb_speed",
|
"joyb_speed",
|
||||||
(config_t *) &joybspeed, NULL,
|
(config_t *) &joybspeed, NULL,
|
||||||
{1}, {-1,7}, 0, ss_keys, wad_no,
|
{1}, {-1,MAX_JSB-1}, 0, ss_keys, wad_no,
|
||||||
"joystick button number to use for running"
|
"joystick button number to use for running"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"joyb_use",
|
"joyb_use",
|
||||||
(config_t *) &joybuse, NULL,
|
(config_t *) &joybuse, NULL,
|
||||||
{0}, {-1,7}, 0, ss_keys, wad_no,
|
{0}, {-1,MAX_JSB-1}, 0, ss_keys, wad_no,
|
||||||
"joystick button number to use for use/open"
|
"joystick button number to use for use/open"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // [FG] strafe left/right joystick buttons
|
{ // [FG] strafe left/right joystick buttons
|
||||||
"joyb_strafeleft",
|
"joyb_strafeleft",
|
||||||
(config_t *) &joybstrafeleft, NULL,
|
(config_t *) &joybstrafeleft, NULL,
|
||||||
{4}, {-1,7}, 0, ss_keys, wad_no,
|
{4}, {-1,MAX_JSB-1}, 0, ss_keys, wad_no,
|
||||||
"joystick button number to strafe left (sideways left)"
|
"joystick button number to strafe left (sideways left)"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"joyb_straferight",
|
"joyb_straferight",
|
||||||
(config_t *) &joybstraferight, NULL,
|
(config_t *) &joybstraferight, NULL,
|
||||||
{5}, {-1,7}, 0, ss_keys, wad_no,
|
{5}, {-1,MAX_JSB-1}, 0, ss_keys, wad_no,
|
||||||
"joystick button number to strafe right (sideways right)"
|
"joystick button number to strafe right (sideways right)"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ // [FG] prev/next weapon joystick buttons
|
{ // [FG] prev/next weapon joystick buttons
|
||||||
"joyb_prevweapon",
|
"joyb_prevweapon",
|
||||||
(config_t *) &joybprevweapon, NULL,
|
(config_t *) &joybprevweapon, NULL,
|
||||||
{2}, {-1,7}, 0, ss_keys, wad_no,
|
{2}, {-1,MAX_JSB-1}, 0, ss_keys, wad_no,
|
||||||
"joystick button number to cycle to the previous weapon"
|
"joystick button number to cycle to the previous weapon"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"joyb_nextweapon",
|
"joyb_nextweapon",
|
||||||
(config_t *) &joybnextweapon, NULL,
|
(config_t *) &joybnextweapon, NULL,
|
||||||
{-1}, {-1,7}, 0, ss_keys, wad_no,
|
{-1}, {-1,MAX_JSB-1}, 0, ss_keys, wad_no,
|
||||||
"joystick button number to cycle to the next weapon"
|
"joystick button number to cycle to the next weapon"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ // [FG] automap joystick button
|
||||||
|
"joyb_automap",
|
||||||
|
&joybautomap, NULL,
|
||||||
|
{-1}, {-1,MAX_JSB-1}, 0, ss_keys, wad_no,
|
||||||
|
"joystick button number to open the automap"
|
||||||
|
},
|
||||||
|
|
||||||
|
{ // [FG] main menu joystick button
|
||||||
|
"joyb_mainmenu",
|
||||||
|
&joybmainmenu, NULL,
|
||||||
|
{-1}, {-1,MAX_JSB-1}, 0, ss_keys, wad_no,
|
||||||
|
"joystick button number to open the main menu"
|
||||||
|
},
|
||||||
|
|
||||||
{ // killough
|
{ // killough
|
||||||
"snd_channels",
|
"snd_channels",
|
||||||
(config_t *) &default_numChannels, NULL,
|
(config_t *) &default_numChannels, NULL,
|
||||||
|
@ -29,6 +29,8 @@
|
|||||||
#ifndef __M_SWAP__
|
#ifndef __M_SWAP__
|
||||||
#define __M_SWAP__
|
#define __M_SWAP__
|
||||||
|
|
||||||
|
#include "doomtype.h"
|
||||||
|
|
||||||
// Endianess handling.
|
// Endianess handling.
|
||||||
// WAD files are stored little endian.
|
// WAD files are stored little endian.
|
||||||
//
|
//
|
||||||
@ -38,10 +40,6 @@
|
|||||||
|
|
||||||
// Swap 16bit, that is, MSB and LSB byte.
|
// Swap 16bit, that is, MSB and LSB byte.
|
||||||
|
|
||||||
#if defined(_MSC_VER) && !defined(__cplusplus)
|
|
||||||
#define inline __inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
inline static short SHORT(short x)
|
inline static short SHORT(short x)
|
||||||
{
|
{
|
||||||
return (((unsigned char *) &x)[1]<< 8) +
|
return (((unsigned char *) &x)[1]<< 8) +
|
||||||
|
Loading…
x
Reference in New Issue
Block a user