mirror of
https://github.com/libretro/devilutionX.git
synced 2026-11-13 04:34:45 -10:00
Initial game controller support. Actions are based on the Switch branch but the controller code itself is implemented differently, allowing for easy remapping and minimizing changes to the Source/ directory. Many subtle and not so subtle controller bugs have been fixed in this implementation, including: 1. Smoother & more responsive movement with the joysticks. 2. Consistent controls for all the menus in the game (stores, quest log, etc). 3. Cursor appearance / disappearance at appropriate times. Low-level controls are abstracted and 3 SDL interfaces are supported: game controller, joystick, and keyboard. See SourceX/controls/ for more details on this. Wishlist for the future: 1. Primary button and use button should attack continously. This is hard as it requires checking the cooldowns / attack speed. 2. Quick spell menu navigation is very buggy. It is also buggy in the switch branch. I haven't had a change to investigate.
36 lines
892 B
C
36 lines
892 B
C
//HEADER_GOES_HERE
|
|
#ifndef __SCROLLRT_H__
|
|
#define __SCROLLRT_H__
|
|
|
|
extern bool sgbControllerActive;
|
|
extern int light_table_index;
|
|
extern BYTE *gpBufStart;
|
|
extern BYTE *gpBufEnd;
|
|
extern DWORD level_cel_block;
|
|
extern char arch_draw_type;
|
|
extern int cel_transparency_active;
|
|
extern int level_piece_id;
|
|
extern void (*DrawPlrProc)(int, int, int, int, int, BYTE *, int, int, int, int);
|
|
|
|
void ClearCursor();
|
|
void DrawMissile(int x, int y, int sx, int sy, BOOL pre);
|
|
void DrawDeadPlayer(int x, int y, int sx, int sy);
|
|
void DrawView(int StartX, int StartY);
|
|
void ClearScreenBuffer();
|
|
#ifdef _DEBUG
|
|
void ScrollView();
|
|
#endif
|
|
void EnableFrameCount();
|
|
void scrollrt_draw_game_screen(BOOL draw_cursor);
|
|
void DrawAndBlit();
|
|
|
|
/* rdata */
|
|
|
|
/* data */
|
|
|
|
/* used in 1.00 debug */
|
|
extern char *szMonModeAssert[18];
|
|
extern char *szPlrModeAssert[12];
|
|
|
|
#endif /* __SCROLLRT_H__ */
|