/*********************************************************/
// Used for buttons (which are touchable areas...)
typedef struct sTouchableArea {
void (*fCall)(); // Call this function when touched
int16 x1, y1; // Top left corner
int16 x2, y2; // Bottom right corner
} touchableArea;
// A button in an buttonList
typedef struct sButtonListItem {
touchableArea *ta; // Pointer to touchableArea
int action; // Bitfield
u8 oamEntry; // Entry into OAM
} buttonListItem;
// A list of buttons to animate
typedef struct sButtonList {
u8 size; // How many buttons are there?
buttonListItem *list; // Linear array of buttons
} buttonList;
/*********************************************************/
/*********************************************************/
........
buttonList bl;
........
if (bl.list[i].ta->fCall) { // (yes, its touched) is it's function valid?
(bl.list[i].ta->fCall)(); // (yes, func valid) call it
} else {
printf("fCall is null for this button!\n");
}
........
/*********************************************************/