38 lines
1.1 KiB
C
38 lines
1.1 KiB
C
|
#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 );
|