5{
6 static u16 currentJoyState[2] = {0};
7 static u16 previousJoyState[2] = {0};
8 u16 buttons[] = {BUTTON_UP, BUTTON_DOWN, BUTTON_LEFT, BUTTON_RIGHT, BUTTON_A, BUTTON_B, BUTTON_C, BUTTON_X, BUTTON_Y, BUTTON_Z, BUTTON_START, BUTTON_MODE};
9
11 for (int jogador = 0; jogador < 2; jogador++)
12 {
13 previousJoyState[jogador] = currentJoyState[jogador];
14
15 if (jogador == 0)
16 {
17 currentJoyState[jogador] = JOY_readJoypad(JOY_1);
18 }
19 else if (jogador == 1)
20 {
21 currentJoyState[jogador] = JOY_readJoypad(JOY_2);
22 }
23
24 int numButtons = sizeof(buttons) / sizeof(buttons[0]);
25
26 for (int i = 0; i < numButtons; i++)
27 {
28 u16 button = buttons[i];
29
30 if (!(currentJoyState[jogador] & button))
31 {
32
33 player[jogador].key_JOY_status[i] = 0;
34 }
35 else if ((currentJoyState[jogador] & button) && !(previousJoyState[jogador] & button))
36 {
37
38 player[jogador].key_JOY_status[i] = 1;
39 }
40 else if (currentJoyState[jogador] & button)
41 {
42
43 player[jogador].key_JOY_status[i] = 2;
44 }
45 else if (!(currentJoyState[jogador] & button) && (previousJoyState[jogador] & button))
46 {
47
48 player[jogador].key_JOY_status[i] = 3;
49 }
50
51 if (i == numButtons - 1)
52 {
53 player[jogador].key_JOY_UP_status =
player[jogador].key_JOY_status[0];
54 player[jogador].key_JOY_DOWN_status =
player[jogador].key_JOY_status[1];
55 player[jogador].key_JOY_LEFT_status =
player[jogador].key_JOY_status[2];
56 player[jogador].key_JOY_RIGHT_status =
player[jogador].key_JOY_status[3];
57 player[jogador].key_JOY_A_status =
player[jogador].key_JOY_status[4];
58 player[jogador].key_JOY_B_status =
player[jogador].key_JOY_status[5];
59 player[jogador].key_JOY_C_status =
player[jogador].key_JOY_status[6];
60 player[jogador].key_JOY_X_status =
player[jogador].key_JOY_status[7];
61 player[jogador].key_JOY_Y_status =
player[jogador].key_JOY_status[8];
62 player[jogador].key_JOY_Z_status =
player[jogador].key_JOY_status[9];
63 player[jogador].key_JOY_START_status =
player[jogador].key_JOY_status[10];
64 player[jogador].key_JOY_MODE_status =
player[jogador].key_JOY_status[11];
65 }
66 }
67 }
68}