40 lines
853 B
C
40 lines
853 B
C
/**
|
|
* Copyright (c) 2024 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#include "input.h"
|
|
|
|
input_t INPUT;
|
|
|
|
void inputInit() {
|
|
memset(&INPUT, 0, sizeof(input_t));
|
|
}
|
|
|
|
void inputUpdate() {
|
|
// Update the previous state
|
|
memcpy(
|
|
INPUT.previousState,
|
|
INPUT.currentState,
|
|
sizeof(INPUT.previousState)
|
|
);
|
|
|
|
// Get the new state
|
|
for(inputbind_t i = 0; i < INPUT_BIND_COUNT; i++) {
|
|
INPUT.currentState[i] = inputGetState(i);
|
|
}
|
|
}
|
|
|
|
inputstate_t inputIsDown(const inputbind_t bind) {
|
|
return INPUT.currentState[bind];
|
|
}
|
|
|
|
inputstate_t inputWasPressed(const inputbind_t bind) {
|
|
return INPUT.currentState[bind] && !INPUT.previousState[bind];
|
|
}
|
|
|
|
inputstate_t inputWasReleased(const inputbind_t bind) {
|
|
return !INPUT.currentState[bind] && INPUT.previousState[bind];
|
|
} |