Sat Aug 22, 2015 5:04 pm
static unsigned const char PROGMEM ArrowRight[]=
{
8,5,
B11100,
B11110,
B11111,
B11110,
B11100,
};
const byte GBMenuSelect[] PROGMEM = {64,16,
0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x2,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,
0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x2,
0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
};
byte Menu(byte Length, String allElements[]) {
//Length is 0 based
boolean Exit = false;
byte menuCursor = 0;
byte menuSelected;
//Delay, since a bug would prevent a second menu to be called(well, it would be skipped)
int FrameDelay = 0;
while (!Exit) {
if (gb.update()) {
FrameDelay++;
if (FrameDelay >= 20) Exit = true;
gb.display.drawPixel(0, FrameDelay);
}
}
Exit = false;
while (!Exit) {
if (gb.update()) {
gb.display.drawBitmap(0, 22, ArrowRight);
gb.display.drawBitmap(10, 17, GBMenuSelect);
//Temp, it should be A and B, not B and C
gb.display.println("Press \"B\" to select");
gb.display.print("\"C\" to Return");
PrintHere(12, 24);
gb.display.print(allElements[menuCursor]);
PrintHere(0, 0);
}
if (gb.buttons.pressed(BTN_UP)) {
byte menuCursorDes = menuCursor + 1;
if (menuCursorDes <= Length) menuCursor++;
}
if (gb.buttons.pressed(BTN_DOWN)) {
byte menuCursorDes = menuCursor - 1;
if (menuCursorDes >= 0) menuCursor--;
}
if (gb.buttons.pressed(BTN_B)) {
Exit = true;
menuSelected = menuCursor;
}
if (gb.buttons.pressed(BTN_C)) Exit = true;
}
return menuSelected;
}
byte PAtt1 = 1;
byte PAtt2 = 0;
byte PAtt3 = 0;
byte PAtt4 = 0;
String NameAtt(byte Attack) {
String AttackName = "Unknown";
if (Attack == 0) AttackName = "Nothing";
if (Attack == 1) AttackName = "Test 1";
if (Attack == 2) AttackName = "Test 2";
return AttackName;
}
String AllAttacks[] = {NameAtt(PAtt1), NameAtt(PAtt2), NameAtt(PAtt3), NameAtt(PAtt4)};
Wed Aug 26, 2015 2:08 am
byte Menu(byte Length, String allElements[]) {
//Length is 0 based
boolean Exit = false;
byte menuCursor = 0;
byte menuSelected;
//Custom delay
int FrameDelay = 0;
while (!Exit) {
if (gb.update()) {
FrameDelay++;
if (FrameDelay >= 10) Exit = true;
//Shows that it's working
gb.display.drawPixel(0, FrameDelay);
}
}
Exit = false;
while (!Exit) {
if (gb.update()) {
gb.display.drawBitmap(0, 22, ArrowRight);
gb.display.drawBitmap(10, 17, GBMenuSelect);
gb.display.println("Press \"A\" to select");
gb.display.print("\"B\" to Return");
PrintHere(12, 24);
if (allElements[menuCursor] != NULL) {
gb.display.print(allElements[menuCursor]);
} else {
gb.display.print("Null!");
}
PrintHere(0, 0);
}
if (gb.buttons.pressed(BTN_UP)) {
int menuCursorDes = menuCursor - 1;
if (menuCursorDes <= 0) menuCursor--;
}
if (gb.buttons.pressed(BTN_DOWN)) {
int menuCursorDes = menuCursor + 1;
if (menuCursorDes >= Length) menuCursor++;
}
if (gb.buttons.pressed(BTN_A)) {
Exit = true;
menuSelected = menuCursor;
}
if (gb.buttons.pressed(BTN_B)) Exit = true;
}
return menuSelected;
}
Wed Aug 26, 2015 9:52 am
if (gb.buttons.pressed(BTN_UP)) {
int menuCursorDes = menuCursor - 1;
if (menuCursorDes <= 0) menuCursor--;
}
if (gb.buttons.pressed(BTN_UP)) {
if (menuCursor > 0) menuCursor--;
}
Wed Aug 26, 2015 8:49 pm
Wed Sep 02, 2015 1:31 am
byte Menu(byte Length, String allElements[]) {
//Length is 0 based
boolean Exit = false;
byte menuCursor = 0;
byte menuSelected;
customDelay(10);
while (!Exit) {
if (gb.update()) {
gb.display.drawBitmap(0, 22, ArrowRight);
gb.display.drawBitmap(10, 17, GBMenuSelect);
gb.display.println("Press \"A\" to select");
gb.display.print("\"B\" to Return");
PrintHere(12, 24);
if (allElements[menuCursor] != allElements[Length + 1]) {
gb.display.print(allElements[menuCursor]);
} else {
gb.display.print("Empty!");
}
PrintHere(0, 0);
}
if (gb.buttons.pressed(BTN_UP)) {
if (menuCursor > 0) menuCursor--;
customDelay(2);
}
if (gb.buttons.pressed(BTN_DOWN)) {
if (menuCursor < Length) menuCursor++;
customDelay(2);
}
if (gb.buttons.pressed(BTN_A)) {
Exit = true;
menuSelected = menuCursor;
}
if (gb.buttons.pressed(BTN_B)) Exit = true;
}
return menuSelected;
}