12 typedef struct _console_control_info {
17 } console_control_info;
19 console_control_info Console_controls[CONCNTL_NUM_CONTROLS];
21 void concntl_cmd_lookdown_on(int argc, char **argv) { console_control_set_state(CONCNTL_LOOKDOWN, 1); }
22 void concntl_cmd_lookdown_off(int argc, char **argv) { console_control_set_state(CONCNTL_LOOKDOWN, 0); }
23 void concntl_cmd_lookup_on(int argc, char **argv) { console_control_set_state(CONCNTL_LOOKUP, 1); }
24 void concntl_cmd_lookup_off(int argc, char **argv) { console_control_set_state(CONCNTL_LOOKUP, 0); }
25 void concntl_cmd_left_on(int argc, char **argv) { console_control_set_state(CONCNTL_LEFT, 1); }
26 void concntl_cmd_left_off(int argc, char **argv) { console_control_set_state(CONCNTL_LEFT, 0); }
27 void concntl_cmd_right_on(int argc, char **argv) { console_control_set_state(CONCNTL_RIGHT, 1); }
28 void concntl_cmd_right_off(int argc, char **argv) { console_control_set_state(CONCNTL_RIGHT, 0); }
29 void concntl_cmd_moveleft_on(int argc, char **argv) { console_control_set_state(CONCNTL_MOVELEFT, 1); }
30 void concntl_cmd_moveleft_off(int argc, char **argv) { console_control_set_state(CONCNTL_MOVELEFT, 0); }
31 void concntl_cmd_moveright_on(int argc, char **argv) { console_control_set_state(CONCNTL_MOVERIGHT, 1); }
32 void concntl_cmd_moveright_off(int argc, char **argv) { console_control_set_state(CONCNTL_MOVERIGHT, 0); }
33 void concntl_cmd_moveup_on(int argc, char **argv) { console_control_set_state(CONCNTL_MOVEUP, 1); }
34 void concntl_cmd_moveup_off(int argc, char **argv) { console_control_set_state(CONCNTL_MOVEUP, 0); }
35 void concntl_cmd_movedown_on(int argc, char **argv) { console_control_set_state(CONCNTL_MOVEDOWN, 1); }
36 void concntl_cmd_movedown_off(int argc, char **argv) { console_control_set_state(CONCNTL_MOVEDOWN, 0); }
37 void concntl_cmd_bankleft_on(int argc, char **argv) { console_control_set_state(CONCNTL_BANKLEFT, 1); }
38 void concntl_cmd_bankleft_off(int argc, char **argv) { console_control_set_state(CONCNTL_BANKLEFT, 0); }
39 void concntl_cmd_bankright_on(int argc, char **argv) { console_control_set_state(CONCNTL_BANKRIGHT, 1); }
40 void concntl_cmd_bankright_off(int argc, char **argv) { console_control_set_state(CONCNTL_BANKRIGHT, 0); }
41 void concntl_cmd_forward_on(int argc, char **argv) { console_control_set_state(CONCNTL_FORWARD, 1); }
42 void concntl_cmd_forward_off(int argc, char **argv) { console_control_set_state(CONCNTL_FORWARD, 0); }
43 void concntl_cmd_back_on(int argc, char **argv) { console_control_set_state(CONCNTL_BACK, 1); }
44 void concntl_cmd_back_off(int argc, char **argv) { console_control_set_state(CONCNTL_BACK, 0); }
45 void concntl_cmd_cruiseup_on(int argc, char **argv) { console_control_set_state(CONCNTL_CRUISEUP, 1); }
46 void concntl_cmd_cruiseup_off(int argc, char **argv) { console_control_set_state(CONCNTL_CRUISEUP, 0); }
47 void concntl_cmd_cruisedown_on(int argc, char **argv) { console_control_set_state(CONCNTL_CRUISEDOWN, 1); }
48 void concntl_cmd_cruisedown_off(int argc, char **argv) { console_control_set_state(CONCNTL_CRUISEDOWN, 0); }
49 void concntl_cmd_cruiseoff_on(int argc, char **argv) { console_control_set_state(CONCNTL_CRUISEOFF, 1); }
50 void concntl_cmd_cruiseoff_off(int argc, char **argv) { console_control_set_state(CONCNTL_CRUISEOFF, 0); }
51 void concntl_cmd_nrgshield_on(int argc, char **argv) { console_control_set_state(CONCNTL_NRGSHIELD, 1); }
52 void concntl_cmd_nrgshield_off(int argc, char **argv) { console_control_set_state(CONCNTL_NRGSHIELD, 0); }
54 /* select / toggle weapons */
55 void concntl_cmd_weapon(int argc, char **argv)
59 if (argc < 2 || !stricmp(argv[1], "-h")) {
60 con_printf(CON_NORMAL, "%s <num>\n", argv[0]);
61 con_printf(CON_NORMAL, " select or toggle weapon <num>\n");
71 do_weapon_select((n-1) % 5, (n-1) / 5);
74 void concntl_cmd_togglebomb(int argc, char **argv)
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;
108 // Returns 1 if this control is currently down
109 unsigned int console_control_state(console_control control)
111 return Console_controls[control].state;
115 void console_control_set_state(console_control control, int state)
117 console_control_info *ctl = &Console_controls[control];
122 ctl->time_went_down = timer_get_fixed_seconds();
125 ctl->time_held_down += timer_get_fixed_seconds() - ctl->time_went_down;
130 void console_control_init(void)
132 memset(Console_controls, 0, sizeof(console_control_info) * CONCNTL_NUM_CONTROLS);
134 cmd_addcommand("+lookdown", concntl_cmd_lookdown_on);
135 cmd_addcommand("-lookdown", concntl_cmd_lookdown_off);
136 cmd_addcommand("+lookup", concntl_cmd_lookup_on);
137 cmd_addcommand("-lookup", concntl_cmd_lookup_off);
138 cmd_addcommand("+left", concntl_cmd_left_on);
139 cmd_addcommand("-left", concntl_cmd_left_off);
140 cmd_addcommand("+right", concntl_cmd_right_on);
141 cmd_addcommand("-right", concntl_cmd_right_off);
142 cmd_addcommand("+moveleft", concntl_cmd_moveleft_on);
143 cmd_addcommand("-moveleft", concntl_cmd_moveleft_off);
144 cmd_addcommand("+moveright", concntl_cmd_moveright_on);
145 cmd_addcommand("-moveright", concntl_cmd_moveright_off);
146 cmd_addcommand("+moveup", concntl_cmd_moveup_on);
147 cmd_addcommand("-moveup", concntl_cmd_moveup_off);
148 cmd_addcommand("+movedown", concntl_cmd_movedown_on);
149 cmd_addcommand("-movedown", concntl_cmd_movedown_off);
150 cmd_addcommand("+bankleft", concntl_cmd_bankleft_on);
151 cmd_addcommand("-bankleft", concntl_cmd_bankleft_off);
152 cmd_addcommand("+bankright", concntl_cmd_bankright_on);
153 cmd_addcommand("-bankright", concntl_cmd_bankright_off);
154 cmd_addcommand("+forward", concntl_cmd_forward_on);
155 cmd_addcommand("-forward", concntl_cmd_forward_off);
156 cmd_addcommand("+back", concntl_cmd_back_on);
157 cmd_addcommand("-back", concntl_cmd_back_off);
158 cmd_addcommand("+cruiseup", concntl_cmd_cruiseup_on);
159 cmd_addcommand("-cruiseup", concntl_cmd_cruiseup_off);
160 cmd_addcommand("+cruisedown", concntl_cmd_cruisedown_on);
161 cmd_addcommand("-cruisedown", concntl_cmd_cruisedown_off);
162 cmd_addcommand("+cruiseoff", concntl_cmd_cruiseoff_on);
163 cmd_addcommand("-cruiseoff", concntl_cmd_cruiseoff_off);
164 cmd_addcommand("+nrgshield", concntl_cmd_nrgshield_on);
165 cmd_addcommand("-nrgshield", concntl_cmd_nrgshield_off);
167 cmd_addcommand("weapon", concntl_cmd_weapon);
168 cmd_addcommand("togglebomb", concntl_cmd_togglebomb);