#pragma once // Structure for storing processed controller data typedef struct { int xpos, ypos; // Stored position for sprite(s) int xpos2, ypos2; // controlled by this controller. unsigned char status; // These 8 values are obtained unsigned char type; // directly from the controller unsigned char button1; // buffer we installed with InitPAD. unsigned char button2; unsigned char analog0; unsigned char analog1; unsigned char analog2; unsigned char analog3; } Controller_Data; // All-purpose controller data buffer typedef struct { unsigned char pad[34]; // 8-bytes w/o Multi-Tap, 34-bytes w/Multi-Tap } Controller_Buffer; // Structure for RAW hardware-based light gun position values typedef struct { unsigned short v_count; // Y-axis (vertical scan counter) unsigned short h_count; // H-axis (horizontal pixel clock value) } Gun_Position; void get_digital_direction( Controller_Data *c, int buttondata ); void read_controller( Controller_Data *c, unsigned char *buf, int port );