]> 4ch.mooo.com Git - 16.git/blob - 16/v2/source/ENGINE/CONTROLS.C
new file: 16/v2/CONSOLE.TXT
[16.git] / 16 / v2 / source / ENGINE / CONTROLS.C
1 /*\r
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
15 */\r
16 \r
17 #include "verge.h"\r
18 \r
19 // ================================= Data ====================================\r
20 \r
21 // -- Hardware Dependent -- //\r
22 \r
23 int kb1, kb2, kb3, kb4;             // keyboard controls\r
24 int jb1, jb2, jb3, jb4;             // joystick controls\r
25 \r
26 // -- Unified Interface -- //\r
27 \r
28 char b1, b2, b3, b4;\r
29 char up, down, left, right;\r
30 \r
31 // -- UnPress support variables -- //\r
32 \r
33 char wb1, wb2, wb3, wb4;\r
34 char wup, wdown, wleft, wright;\r
35 \r
36 char rb1, rb2, rb3, rb4;\r
37 char rup, rdown, rleft, rright;\r
38 \r
39 // ================================= Code ====================================\r
40 \r
41 void UpdateControls()\r
42 {\r
43   rb1=0; rb2=0; rb3=0; rb4=0;\r
44   rup=0; rdown=0; rleft=0; rright=0;\r
45 \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
50 \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
55 \r
56        if (wb1 && rb1) rb1=0;\r
57   else if (wb1 && !rb1) wb1=0;\r
58   b1=rb1;\r
59 \r
60        if (wb2 && rb2) rb2=0;\r
61   else if (wb2 && !rb2) wb2=0;\r
62   b2=rb2;\r
63 \r
64        if (wb3 && rb3) rb3=0;\r
65   else if (wb3 && !rb3) wb3=0;\r
66   b3=rb3;\r
67 \r
68        if (wb4 && rb4) rb4=0;\r
69   else if (wb4 && !rb4) wb4=0;\r
70   b4=rb4;\r
71 \r
72        if (wup && rup) rup=0;\r
73   else if (wup && !rup) wup=0;\r
74   up=rup;\r
75 \r
76        if (wdown && rdown) rdown=0;\r
77   else if (wdown && !rdown) wdown=0;\r
78   down=rdown;\r
79 \r
80        if (wleft && rleft) rleft=0;\r
81   else if (wleft && !rleft) wleft=0;\r
82   left=rleft;\r
83 \r
84        if (wright && rright) rright=0;\r
85   else if (wright && !rright) wright=0;\r
86   right=rright;\r
87 }\r
88 \r
89 void UnPress(int control)\r
90 {\r
91   switch (control)\r
92   {\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
104   }\r
105 }\r