Wing Commander
Reconstructed Win32 source (1996)
Loading...
Searching...
No Matches
input.c
Go to the documentation of this file.
1/**
2 * @file
3 * @ingroup shell
4 * @brief Joystick transitions and menu input polling.
5 *
6 * Address range 430710-430bbf.
7 */
8#include "wc1.h"
9
10short nInputDoubleClickInterval = 1; /* 0x0046af54 */
11short nMenuPointerSpeed = 2; /* 0x0046af58 */
12
13
14/* Linker commons defined here; LINK orders them by identifier hash. */
15unsigned short ausVduModeStack[16]; /* 0x0059d500 */
16char acShipSequence[10]; /* 0x0059d520 */
17short nTargetFacingValue; /* 0x0059d52a */
19short aasShipShield[10][2]; /* 0x0059d5b0 */
20enum ShipTactic aeShipTacticArray[12]; /* 0x0059d5e0 */
21signed char abShipExhaustHeatList[10]; /* 0x0059d610 */
22short nRenderedSpaceFrame; /* 0x0059d61a */
23short nEyePitchTargetValue; /* 0x0059d61c */
24
25/* Function start: 0x430710 */
26short __stdcall UpdateInputDeviceTransitions(short raw)
27{
28 short device;
29
31 if (raw == 0)
33 else
34 SampleJoystickDevice(&aInputDevSamples[device], device, 0);
35
36 asInputButton2DoubleClick[device] = 0;
39 asInputBtn1ChangedTable[device] = 0;
40 if ((short)aInputDevSamples[device].buttons !=
41 asPreviousInputButtons[device]) {
42 if ((((unsigned short)aInputDevSamples[device].buttons ^
43 (unsigned short)asPreviousInputButtons[device]) & 1) != 0) {
44 asInputBtn1ChangedTable[device] = 1;
45 if (((unsigned short)aInputDevSamples[device].buttons & 1) != 0) {
50 }
51 }
52 if ((((unsigned short)aInputDevSamples[device].buttons ^
53 (unsigned short)asPreviousInputButtons[device]) & 2) != 0) {
55 if (((unsigned short)aInputDevSamples[device].buttons & 2) != 0) {
58 asInputButton2DoubleClick[device] = 1;
60 }
61 }
63 (short)aInputDevSamples[device].buttons;
64 }
65 return 1;
66}
67
68/* Function start: 0x430830 */
69/* Empty, and nothing in the shipped executable calls it, so its purpose
70 * cannot be recovered; it sits among the joystick input routines. */
72{
73}
74
75/* Function start: 0x430840 */
77{
78 short doubleClick;
79
81 return;
82 if (bInputPollingGuard != 0)
83 return;
87 doubleClick = 0;
89 doubleClick = 3;
92 0, doubleClick);
93 }
95 doubleClick = 0;
97 doubleClick = 3;
100 1) + 1,
101 1, doubleClick);
102 }
104 (unsigned char)aInputDevSamples[nCurrentActiveInputDevice].buttons;
107}
108
109/* Function start: 0x430920 */
111{
112 signed char doubleClick;
113 unsigned char changes;
114
115 changes = 0;
117 return;
120 if (bInputPollingGuard == 0) {
123
131 doubleClick = 0;
133 doubleClick = 3;
136 0, (short)doubleClick);
137 changes++;
138 }
146 doubleClick = 0;
148 doubleClick = 3;
151 1) + 1,
152 1, (short)doubleClick);
153 changes++;
154 }
155 if (changes == 0) {
162 changes = (unsigned char)(
165 if (changes != 0) {
170 stHostMouseState.x : 319;
174 stHostMouseState.y : 199;
176 }
177 }
178
180 (unsigned char)aInputDevSamples[nCurrentActiveInputDevice].buttons;
185 stHostMouseState.x : 319;
189 stHostMouseState.y : 199;
190 if (changes != 0) {
198 }
200 }
201}
InputDeviceSample aInputDevSamples[2]
Definition nav.c:78
short asPreviousInputButtons[2]
Definition view.c:32
enum ShipTactic aeShipTacticArray[12]
Definition input.c:20
int anInputButton1PressTimes[2]
Definition view.c:33
signed char abShipExhaustHeatList[10]
Definition input.c:21
short asInputButton1DoubleClicksList[2]
Definition view.c:29
short nRenderedSpaceFrame
Definition input.c:22
short nInputDoubleClickInterval
Definition input.c:10
int nInputTickScale
Definition data.c:245
unsigned short ausVduModeStack[16]
Definition input.c:15
FixedVector aShipDestinationsArray[10]
Definition input.c:18
short asInputButton2DoubleClick[2]
Definition damage.c:46
int anInputButton2PressTime[2]
Definition view.c:28
short nMenuPointerSpeed
Definition input.c:11
MouseCursorState stHostMouseState
Definition data.c:243
short nEyePitchTargetValue
Definition input.c:23
unsigned char bInputPollingGuard
Definition main.c:44
MouseCursorState stMouseCursorState
Definition strdos.c:19
short aasShipShield[10][2]
Definition input.c:19
int nTickCount60Hz
Definition mathfp.c:23
short nTargetFacingValue
Definition input.c:17
short asInputButton2ChangedTable[2]
Definition view.c:31
short nCurrentActiveInputDevice
Definition nav.c:60
char acShipSequence[10]
Definition input.c:16
short asInputBtn1ChangedTable[2]
Definition view.c:30
void JoystickInputHook(void)
Definition input.c:71
unsigned short flags
Definition wc1base.h:106
unsigned char secondaryButton
Definition wc1base.h:104
unsigned char primaryButton
Definition wc1base.h:103
Umbrella header for the game core.
void LeaveAllocationScope(void)
Definition eventmgr.c:556
void QueueInputEventAtCursor(unsigned short type, short primaryButton, short secondaryButton)
Definition eventmgr.c:63
void PollJoystickButtonEvents(void)
Definition input.c:76
void SetMousePosition(int x, int y)
Definition winsys.c:56
void FlushInputEvents(void)
Definition eventmgr.c:381
void EnterAllocationScope(void)
Definition eventmgr.c:550
short ReadCalibratedJoystick(void)
Definition joycal.c:159
short __stdcall UpdateInputDeviceTransitions(short raw)
Definition input.c:26
void PollMenuInputDevices(void)
Definition input.c:110
int __stdcall SampleJoystickDevice(InputDeviceSample *samples, short joystick, unsigned short fallback)
Definition mission.c:958
ShipTactic
Definition wcdata.h:150