12 typedef struct _console_control_info {
18 } console_control_info;
20 console_control_info Console_controls[CONCNTL_NUM_CONTROLS];
22 void concntl_cmd_lookdown_on(int argc, char **argv) { console_control_set_state(CONCNTL_LOOKDOWN, 1); }
23 void concntl_cmd_lookdown_off(int argc, char **argv) { console_control_set_state(CONCNTL_LOOKDOWN, 0); }
24 void concntl_cmd_lookup_on(int argc, char **argv) { console_control_set_state(CONCNTL_LOOKUP, 1); }
25 void concntl_cmd_lookup_off(int argc, char **argv) { console_control_set_state(CONCNTL_LOOKUP, 0); }
26 void concntl_cmd_left_on(int argc, char **argv) { console_control_set_state(CONCNTL_LEFT, 1); }
27 void concntl_cmd_left_off(int argc, char **argv) { console_control_set_state(CONCNTL_LEFT, 0); }
28 void concntl_cmd_right_on(int argc, char **argv) { console_control_set_state(CONCNTL_RIGHT, 1); }
29 void concntl_cmd_right_off(int argc, char **argv) { console_control_set_state(CONCNTL_RIGHT, 0); }
30 void concntl_cmd_strafe_on(int argc, char **argv) { console_control_set_state(CONCNTL_STRAFE, 1); }
31 void concntl_cmd_strafe_off(int argc, char **argv) { console_control_set_state(CONCNTL_STRAFE, 0); }
32 void concntl_cmd_moveleft_on(int argc, char **argv) { console_control_set_state(CONCNTL_MOVELEFT, 1); }
33 void concntl_cmd_moveleft_off(int argc, char **argv) { console_control_set_state(CONCNTL_MOVELEFT, 0); }
34 void concntl_cmd_moveright_on(int argc, char **argv) { console_control_set_state(CONCNTL_MOVERIGHT, 1); }
35 void concntl_cmd_moveright_off(int argc, char **argv) { console_control_set_state(CONCNTL_MOVERIGHT, 0); }
36 void concntl_cmd_moveup_on(int argc, char **argv) { console_control_set_state(CONCNTL_MOVEUP, 1); }
37 void concntl_cmd_moveup_off(int argc, char **argv) { console_control_set_state(CONCNTL_MOVEUP, 0); }
38 void concntl_cmd_movedown_on(int argc, char **argv) { console_control_set_state(CONCNTL_MOVEDOWN, 1); }
39 void concntl_cmd_movedown_off(int argc, char **argv) { console_control_set_state(CONCNTL_MOVEDOWN, 0); }
40 void concntl_cmd_bank_on(int argc, char **argv) { console_control_set_state(CONCNTL_BANK, 1); }
41 void concntl_cmd_bank_off(int argc, char **argv) { console_control_set_state(CONCNTL_BANK, 0); }
42 void concntl_cmd_bankleft_on(int argc, char **argv) { console_control_set_state(CONCNTL_BANKLEFT, 1); }
43 void concntl_cmd_bankleft_off(int argc, char **argv) { console_control_set_state(CONCNTL_BANKLEFT, 0); }
44 void concntl_cmd_bankright_on(int argc, char **argv) { console_control_set_state(CONCNTL_BANKRIGHT, 1); }
45 void concntl_cmd_bankright_off(int argc, char **argv) { console_control_set_state(CONCNTL_BANKRIGHT, 0); }
46 void concntl_cmd_forward_on(int argc, char **argv) { console_control_set_state(CONCNTL_FORWARD, 1); }
47 void concntl_cmd_forward_off(int argc, char **argv) { console_control_set_state(CONCNTL_FORWARD, 0); }
48 void concntl_cmd_back_on(int argc, char **argv) { console_control_set_state(CONCNTL_BACK, 1); }
49 void concntl_cmd_back_off(int argc, char **argv) { console_control_set_state(CONCNTL_BACK, 0); }
50 void concntl_cmd_cruiseup_on(int argc, char **argv) { console_control_set_state(CONCNTL_CRUISEUP, 1); }
51 void concntl_cmd_cruiseup_off(int argc, char **argv) { console_control_set_state(CONCNTL_CRUISEUP, 0); }
52 void concntl_cmd_cruisedown_on(int argc, char **argv) { console_control_set_state(CONCNTL_CRUISEDOWN, 1); }
53 void concntl_cmd_cruisedown_off(int argc, char **argv) { console_control_set_state(CONCNTL_CRUISEDOWN, 0); }
54 void concntl_cmd_cruiseoff_on(int argc, char **argv) { console_control_set_state(CONCNTL_CRUISEOFF, 1); }
55 void concntl_cmd_cruiseoff_off(int argc, char **argv) { console_control_set_state(CONCNTL_CRUISEOFF, 0); }
56 void concntl_cmd_nrgshield_on(int argc, char **argv) { console_control_set_state(CONCNTL_NRGSHIELD, 1); }
57 void concntl_cmd_nrgshield_off(int argc, char **argv) { console_control_set_state(CONCNTL_NRGSHIELD, 0); }
59 /* select / toggle weapons */
60 void concntl_cmd_weapon(int argc, char **argv)
64 if (argc < 2 || !stricmp(argv[1], "-h")) {
65 con_printf(CON_NORMAL, "%s <num>\n", argv[0]);
66 con_printf(CON_NORMAL, " select or toggle weapon <num>\n");
76 do_weapon_select((n-1) % 5, (n-1) / 5);
80 // Returns the number of seconds this 'button' has been down since last call.
81 fix console_control_down_time(console_control control)
85 if (!Console_controls[control].state) {
86 time_down = Console_controls[control].time_held_down;
87 Console_controls[control].time_held_down = 0;
89 time = timer_get_fixed_seconds();
90 time_down = time - Console_controls[control].time_went_down;
91 Console_controls[control].time_went_down = time;
97 unsigned int console_control_down_count(console_control control)
101 n = Console_controls[control].down_count;
102 Console_controls[control].down_count = 0;
107 unsigned int console_control_up_count(console_control control)
111 n = Console_controls[control].up_count;
112 Console_controls[control].up_count = 0;
118 // Returns 1 if this control is currently down
119 unsigned int console_control_state(console_control control)
121 return Console_controls[control].state;
125 void console_control_set_state(console_control control, int state)
127 console_control_info *ctl = &Console_controls[control];
132 ctl->time_went_down = timer_get_fixed_seconds();
136 ctl->time_held_down += timer_get_fixed_seconds() - ctl->time_went_down;
141 void console_control_init(void)
143 memset(Console_controls, 0, sizeof(console_control_info) * CONCNTL_NUM_CONTROLS);
145 cmd_addcommand("+lookdown", concntl_cmd_lookdown_on);
146 cmd_addcommand("-lookdown", concntl_cmd_lookdown_off);
147 cmd_addcommand("+lookup", concntl_cmd_lookup_on);
148 cmd_addcommand("-lookup", concntl_cmd_lookup_off);
149 cmd_addcommand("+left", concntl_cmd_left_on);
150 cmd_addcommand("-left", concntl_cmd_left_off);
151 cmd_addcommand("+right", concntl_cmd_right_on);
152 cmd_addcommand("-right", concntl_cmd_right_off);
153 cmd_addcommand("+strafe", concntl_cmd_strafe_on);
154 cmd_addcommand("-strafe", concntl_cmd_strafe_off);
155 cmd_addcommand("+moveleft", concntl_cmd_moveleft_on);
156 cmd_addcommand("-moveleft", concntl_cmd_moveleft_off);
157 cmd_addcommand("+moveright", concntl_cmd_moveright_on);
158 cmd_addcommand("-moveright", concntl_cmd_moveright_off);
159 cmd_addcommand("+moveup", concntl_cmd_moveup_on);
160 cmd_addcommand("-moveup", concntl_cmd_moveup_off);
161 cmd_addcommand("+movedown", concntl_cmd_movedown_on);
162 cmd_addcommand("-movedown", concntl_cmd_movedown_off);
163 cmd_addcommand("+bank", concntl_cmd_bank_on);
164 cmd_addcommand("-bank", concntl_cmd_bank_off);
165 cmd_addcommand("+bankleft", concntl_cmd_bankleft_on);
166 cmd_addcommand("-bankleft", concntl_cmd_bankleft_off);
167 cmd_addcommand("+bankright", concntl_cmd_bankright_on);
168 cmd_addcommand("-bankright", concntl_cmd_bankright_off);
169 cmd_addcommand("+forward", concntl_cmd_forward_on);
170 cmd_addcommand("-forward", concntl_cmd_forward_off);
171 cmd_addcommand("+back", concntl_cmd_back_on);
172 cmd_addcommand("-back", concntl_cmd_back_off);
173 cmd_addcommand("+cruiseup", concntl_cmd_cruiseup_on);
174 cmd_addcommand("-cruiseup", concntl_cmd_cruiseup_off);
175 cmd_addcommand("+cruisedown", concntl_cmd_cruisedown_on);
176 cmd_addcommand("-cruisedown", concntl_cmd_cruisedown_off);
177 cmd_addcommand("+cruiseoff", concntl_cmd_cruiseoff_on);
178 cmd_addcommand("-cruiseoff", concntl_cmd_cruiseoff_off);
179 cmd_addcommand("+nrgshield", concntl_cmd_nrgshield_on);
180 cmd_addcommand("-nrgshield", concntl_cmd_nrgshield_off);
182 cmd_addcommand("weapon", concntl_cmd_weapon);