Mortal Kombat Plus
Documentação gerada automaticamente com Doxygen
Carregando...
Procurando...
Nenhuma entrada encontrado
Referência do Arquivo input_system.c
#include "input_system.h"
#include "game_vars.h"
Gráfico de dependência de inclusões para input_system.c:

Ir para o código-fonte desse arquivo.

Funções

void inputSystem ()
 

Funções

◆ inputSystem()

void inputSystem ( )

Definição na linha 4 do arquivo input_system.c.

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
10 if(gPodeMover) // travar o controle dos jogadores
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 // não esta apertado
33 player[jogador].key_JOY_status[i] = 0;
34 }
35 else if ((currentJoyState[jogador] & button) && !(previousJoyState[jogador] & button))
36 {
37 // acabou de apertar
38 player[jogador].key_JOY_status[i] = 1;
39 }
40 else if (currentJoyState[jogador] & button)
41 {
42 // mantendo apertado
43 player[jogador].key_JOY_status[i] = 2;
44 }
45 else if (!(currentJoyState[jogador] & button) && (previousJoyState[jogador] & button))
46 {
47 // acabou de soltar
48 player[jogador].key_JOY_status[i] = 3;
49 }
50
51 if (i == numButtons - 1) // end of loop, assignments
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}
Player player[2]
Definição game_vars.c:24
bool gPodeMover
Definição game_vars.c:9
Esse é o diagrama das funções que utilizam essa função: