about summary refs log tree commit diff stats
path: root/src/controls.c
diff options
context:
space:
mode:
authorCharadon <dev@iotib.net>2022-10-09 14:08:50 -0400
committerCharadon <dev@iotib.net>2022-10-09 14:08:50 -0400
commit6dca71e96c5f38033d51343ff6c9ddded9f899fe (patch)
tree4353cad5435de8e35320e35497222ddc4520172f /src/controls.c
parent3fc34b2f768208e86010b7fae22ad8cc55cb2e62 (diff)
downloadPong-C-6dca71e96c5f38033d51343ff6c9ddded9f899fe.tar.gz
Fixed issue where controls that were mean't to be detected once would be detected multiple times.
Diffstat (limited to 'src/controls.c')
-rw-r--r--src/controls.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/controls.c b/src/controls.c
index fca64da..a3cefa1 100644
--- a/src/controls.c
+++ b/src/controls.c
@@ -1,4 +1,5 @@
 #include "pong.h"
+#include <raylib.h>
 
 /* Checks what button the player is pressing amongst all control inputs. */
 int player_controls() {
@@ -20,18 +21,26 @@ int player_controls() {
 
 /* Same as player_controls() but check if the button was pressed, rather than held down. */
 int player_controls_pressed() {
+	int ReturnVal = -1;
 	if( IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsKeyPressed(KEY_SPACE) || IsGamepadButtonPressed(1, GAMEPAD_BUTTON_RIGHT_FACE_DOWN) ) {
-		return(CONTROLLER_ACTIVATE);
+		ReturnVal = CONTROLLER_ACTIVATE;
 	} else if( IsKeyPressed(KEY_ESCAPE) || IsGamepadButtonPressed(1, GAMEPAD_BUTTON_MIDDLE_RIGHT) ) {
-		return(CONTROLLER_PAUSE);
+		ReturnVal = CONTROLLER_PAUSE;
 	} else if( IsKeyPressed(KEY_A) || IsGamepadButtonPressed(1, GAMEPAD_BUTTON_LEFT_FACE_LEFT) ) {
-		return(CONTROLLER_LEFT);
+		ReturnVal = CONTROLLER_LEFT;
 	} else if( IsKeyPressed(KEY_D) || IsGamepadButtonPressed(1, GAMEPAD_BUTTON_LEFT_FACE_RIGHT) ) {
-		return(CONTROLLER_RIGHT);
+		ReturnVal = CONTROLLER_RIGHT;
 	} else if( IsKeyPressed(KEY_W) || IsGamepadButtonPressed(1, GAMEPAD_BUTTON_LEFT_FACE_UP) ) {
-		return(CONTROLLER_UP);
+		ReturnVal = CONTROLLER_UP;
 	} else if( IsKeyPressed(KEY_S) || IsGamepadButtonPressed(1, GAMEPAD_BUTTON_LEFT_FACE_DOWN) ) {
-		return(CONTROLLER_DOWN);
+		ReturnVal = CONTROLLER_DOWN;
 	}
-	return(-1);
+	return(ReturnVal);
+}
+
+/* Calls BeginDrawing() and EndDrawing() to clear input buffer. */
+void clear_input_buffer() {
+	BeginDrawing();
+	EndDrawing();
+	return;
 }