void getNumberFromUser(uint8_t currentNumber, uint8_t max) { bool state = false; menuMax = max; selectedMenu = NOT_SELECTED; currentMenu = 0; uint8_t currentRate = currentNumber; uint8_t displayRate = 0; delay_ms(500); while(selectedMenu == NOT_SELECTED) { if (currentMenu == 0) { if (state) { displayRate++; } state = !state; redOff(); greenSet(state); delay_ms(200); if (displayRate >= currentRate) { displayRate = 0; delay_ms(1000); } } else { lightsOff(); } } }
void Model::draw() { if (!ok) return; if (!animated) { glCallList(dlist); } else { if (ind) animate(0); else { if (!animcalc) { animate(0); animcalc = true; } } lightsOn(GL_LIGHT4); drawModel(); lightsOff(GL_LIGHT4); // effects are unfogged..? glDisable(GL_FOG); // draw particle systems for (size_t i=0; i<header.nParticleEmitters; i++) { particleSystems[i].draw(); } // draw ribbons for (size_t i=0; i<header.nRibbonEmitters; i++) { ribbons[i].draw(); } if (gWorld && gWorld->drawfog) glEnable(GL_FOG); } }
void mainMenu() { menuMax = 4; selectedMenu = NOT_SELECTED; currentMenu = 0; bool state = false; while(selectedMenu == NOT_SELECTED) { if (currentMenu == 0) { // Firing Mode (toggle green then red) state = !state; redSet(!state); greenSet(state); delay_ms(100); } else if (currentMenu == 1) { // Firing Rate (fast green blink) state = !state; redOff(); greenSet(state); delay_ms(50); } else if (currentMenu == 2) { // Burst size (three red blinks) lightsOff(); // Display as three blinks of red then pause and repeat for (uint8_t i = 0; i < 3; i++) { redOn(); delay_ms(100); redOff(); if (i == 2) { for (uint8_t i = 0; i < 100; i++) { delay_ms(10); if (selectedMenu != NOT_SELECTED) { break; } } } else { delay_ms(100); } } } else if (currentMenu == 3) { // Ammo Limit (Solid Red) redOn(); greenOff(); } else if (currentMenu == 4) { // Safety Shot (Solid Green) redOff(); greenOn(); } } }
void LEDModule::specifyMemoryBlocks() { getOrAddMemoryBlock(leds_,"led_commands"); lightsOff(); //rightFoot(1,0,0); }
void firingModeMenu() { menuMax = 3; selectedMenu = NOT_SELECTED; currentMenu = FIRING_MODE; bool state = LOW; while(selectedMenu == NOT_SELECTED) { if (currentMenu == 0) { state = !state; redSet(state); greenOff(); delay_ms(50); } else if (currentMenu == 1) { // Three Round Burst lightsOff(); // Display as three blinks of green then pause and repeat for (uint8_t i = 0; i < 3; i++) { greenOn(); delay_ms(100); greenOff(); if (selectedMenu != NOT_SELECTED) { break; } if (i == 2) { delay_ms(1000); } else { delay_ms(100); } } } else if (currentMenu == 2) { // Auto Response lightsOff(); // Display as blink green, blink red, then pause greenOn(); delay_ms(100); greenOff(); delay_ms(100); redOn(); delay_ms(100); redOff(); if (selectedMenu != NOT_SELECTED) { break; } delay_ms(1000); } else if (currentMenu == 3) { // Auto Response redOff(); greenOn(); } } if (selectedMenu >= 0 && selectedMenu <= 3) { eeprom_write_byte(&EEPROM_FIRING_MODE[currentSelector][CURRENT_PRESET[currentSelector]], selectedMenu); successBlink(); } else { failureBlink(); } }