найти в ltag_ascetic.c
Код:
invite();
Заменить на
Код:
if (get_keyboard_status()==key_pressed) invite();
Все, игра сразу стартует, если курок не нажат.
Надо так же новую функцию описать (назовем game_over, например), примерно следующего содержания
Код:
lcd_bl_off();
display_status();
rx_event = rx_event = NOT_EVENT;
ir_message.control_byte = 0;
while(!((ir_message.control_byte ==Valid_value)&&(ir_message.ID==Command)&&(ir_message.param==0x05)))//ïîêà íå ïîëó÷èì êîìàíäó "ñòàðò"
{
rx_event = rx_event = NOT_EVENT;
while((rxCount==0)&&(rx_event != RX_MESSAGE_COMPLITE))//ïîêà íåò íèêàêèõ êîìàíä ïóëüòà
{
WOUND_LED_INVERT;
USART_PutChar('1');
timer2 = 0;
while (timer2 < 1000);
WOUND_LED_INVERT;
timer2 = 0;
while (timer2 < 1000);
}
if (rx_event == RX_MESSAGE_COMPLITE) ir_message = get_ir_message_from_buffer();//ïðèøëà êîìàíäà ïóëüòà, âûäåðãèâàåì çíà÷åíèÿ êîìàíäû èç áóôåðà ÈÊ ïðèåìíèêà
else {
if (rxCount>0) finde_message_in_bt_buffer();
}
}
}
//"îæèâàåì" - íà÷èíàåì íîâóþ èãðó
if (simples_in_queue>1) //åñëè çâóê âûñòðëà âîñïðîèçâîäèòñÿ
{
simples_in_queue=1;//çàêðîåì eeprom
while (eeprom_is_open);//äîæäåìñÿ, ïîêà eerom çàêðîåòñÿ
}
init_var(); //èíèöèàëèçèðóåì ïåðåìåííûå
joystick_event=no_pressing; //î÷èùàåì ñîáûòèÿ äæîéñòèêà
keyboard_event=no_key_pressing;//î÷èùàåì ñîáûòèÿ òðèããåðà
reload_key_event=no_key_pressing;//î÷èùàåì ñîáûòèÿ ïåðåçàðÿäêè
rx_event = NOT_EVENT; //î÷èùàåì ñîáûòèÿ ÈÊ ïðèåìíèêà
display_status();//îáíîâëÿåì èíôîðìàöèþ íà äèñïëåå
WOUND_LED_ON;
playstartsound();
//êîä îáðàáîòêè äîïîëíèòåëüíîé êîìàíäû
WOUND_LED_OFF;
}
display_life(life);//îòîáðàçèì óðîâåíü æèçíè íà äèîäàõ
lcd_bl_off();
display_status();
}
И сразу при старте пригаем в эту функцию.
А можно не заморачиваться с функцией, а все по нулям инициировать при старте (жизнь, патроны, обоймы), как уже предлагалась.
И все!
Сделаю, парни в ближайшее время.
P.S. Вот и ошибка (опечатка)
rx_event = rx_event = NOT_EVENT;
лишний ворнинг выскачит