2 Copyright (C) 1998 BJ Eirich (aka vecna)
\r
3 This program is free software; you can redistribute it and/or
\r
4 modify it under the terms of the GNU General Public License
\r
5 as published by the Free Software Foundation; either version 2
\r
6 of the License, or (at your option) any later version.
\r
7 This program is distributed in the hope that it will be useful,
\r
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
\r
10 See the GNU General Public Lic
\r
11 See the GNU General Public License for more details.
\r
12 You should have received a copy of the GNU General Public License
\r
13 along with this program; if not, write to the Free Software
\r
14 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
\r
19 // ================================= Data ====================================
\r
21 // -- Hardware Dependent -- //
\r
23 int kb1, kb2, kb3, kb4; // keyboard controls
\r
24 int jb1, jb2, jb3, jb4; // joystick controls
\r
26 // -- Unified Interface -- //
\r
28 char b1, b2, b3, b4;
\r
29 char up, down, left, right;
\r
31 // -- UnPress support variables -- //
\r
33 char wb1, wb2, wb3, wb4;
\r
34 char wup, wdown, wleft, wright;
\r
36 char rb1, rb2, rb3, rb4;
\r
37 char rup, rdown, rleft, rright;
\r
39 // ================================= Code ====================================
\r
41 void UpdateControls()
\r
43 rb1=0; rb2=0; rb3=0; rb4=0;
\r
44 rup=0; rdown=0; rleft=0; rright=0;
\r
46 if (key[SCAN_UP]) rup=1;
\r
47 if (key[SCAN_DOWN]) rdown=1;
\r
48 if (key[SCAN_RIGHT]) rright=1;
\r
49 if (key[SCAN_LEFT]) rleft=1;
\r
51 if (key[kb1]) rb1=1;
\r
52 if (key[kb2]) rb2=1;
\r
53 if (key[kb3]) rb3=1;
\r
54 if (key[kb4]) rb4=1;
\r
56 if (wb1 && rb1) rb1=0;
\r
57 else if (wb1 && !rb1) wb1=0;
\r
60 if (wb2 && rb2) rb2=0;
\r
61 else if (wb2 && !rb2) wb2=0;
\r
64 if (wb3 && rb3) rb3=0;
\r
65 else if (wb3 && !rb3) wb3=0;
\r
68 if (wb4 && rb4) rb4=0;
\r
69 else if (wb4 && !rb4) wb4=0;
\r
72 if (wup && rup) rup=0;
\r
73 else if (wup && !rup) wup=0;
\r
76 if (wdown && rdown) rdown=0;
\r
77 else if (wdown && !rdown) wdown=0;
\r
80 if (wleft && rleft) rleft=0;
\r
81 else if (wleft && !rleft) wleft=0;
\r
84 if (wright && rright) rright=0;
\r
85 else if (wright && !rright) wright=0;
\r
89 void UnPress(int control)
\r
93 case 0: wb1=1; wb2=1; wb3=1; wb4=1;
\r
94 b1=0; b2=0; b3=0; b4=0;
\r
95 key[kb1]=0; key[kb2]=0; key[kb3]=0; key[kb4]=0; break;
\r
96 case 1: wb1=1; b1=0; key[kb1]=0; break;
\r
97 case 2: wb2=1; b2=0; key[kb2]=0; break;
\r
98 case 3: wb3=1; b3=0; key[kb3]=0; break;
\r
99 case 4: wb4=1; b4=0; key[kb4]=0; break;
\r
100 case 5: wup=1; up=0; key[SCAN_UP]=0; break;
\r
101 case 6: wdown=1; down=0; key[SCAN_DOWN]=0; break;
\r
102 case 7: wleft=1; left=0; key[SCAN_LEFT]=0; break;
\r
103 case 8: wright=1; right=0; key[SCAN_RIGHT]=0; break;
\r