* Add to list of predefined rgb colors
* Change layer colors, to reflect new options
* Use Tag Toggle instead
* Clean up macros and add breathing indication for OSM Layer
* Get Viteri Macropad working properly
* Disable unused action features
* Use I2C because that's smaller, apparently
* Remove viterbi-half code
send_game_macro("Please sir, can I have some more salt?!");
unregister_code(is_overwatch?KC_BSPC:KC_ENTER);
wait_ms(50);
SEND_STRING("Please sir, can I have some more salt?!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
}
returnfalse;
returnfalse;
break;
break;
caseKC_SALTHARD:
caseKC_SALTHARD:
if(!record->event.pressed){
if(!record->event.pressed){
register_code(is_overwatch?KC_BSPC:KC_ENTER);
send_game_macro("Your salt only makes me harder, and even more aggressive!");
unregister_code(is_overwatch?KC_BSPC:KC_ENTER);
wait_ms(50);
SEND_STRING("Your salt only makes me harder, and even more aggressive!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
}
returnfalse;
returnfalse;
break;
break;
caseKC_GOODGAME:
caseKC_GOODGAME:
if(!record->event.pressed){
if(!record->event.pressed){
register_code(is_overwatch?KC_BSPC:KC_ENTER);
send_game_macro("Good game, everyone!");
unregister_code(is_overwatch?KC_BSPC:KC_ENTER);
wait_ms(50);
SEND_STRING("Good game, everyone!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
}
returnfalse;
returnfalse;
break;
break;
caseKC_GLHF:
caseKC_GLHF:
if(!record->event.pressed){
if(!record->event.pressed){
register_code(is_overwatch?KC_BSPC:KC_ENTER);
send_game_macro("Good luck, have fun!!!");
unregister_code(is_overwatch?KC_BSPC:KC_ENTER);
wait_ms(50);
SEND_STRING("Good luck, have fun!!!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
}
returnfalse;
returnfalse;
break;
break;
caseKC_SYMM:
caseKC_SYMM:
if(!record->event.pressed){
if(!record->event.pressed){
register_code(is_overwatch?KC_BSPC:KC_ENTER);
send_game_macro("Left click to win!");
unregister_code(is_overwatch?KC_BSPC:KC_ENTER);
wait_ms(50);
SEND_STRING("Left click to win!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
}
returnfalse;
returnfalse;
break;
break;
caseKC_JUSTGAME:
caseKC_JUSTGAME:
if(!record->event.pressed){
if(!record->event.pressed){
register_code(is_overwatch?KC_BSPC:KC_ENTER);
send_game_macro("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games.");
unregister_code(is_overwatch?KC_BSPC:KC_ENTER);
wait_ms(50);
SEND_STRING("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games.");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
}
returnfalse;
returnfalse;
break;
break;
caseKC_TORB:
caseKC_TORB:
if(!record->event.pressed){
if(!record->event.pressed){
register_code(is_overwatch?KC_BSPC:KC_ENTER);
send_game_macro("That was positively riveting!");
unregister_code(is_overwatch?KC_BSPC:KC_ENTER);
wait_ms(50);
SEND_STRING("That was positively riveting!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
}
returnfalse;
returnfalse;
break;
break;
caseKC_AIM:
caseKC_AIM:
if(!record->event.pressed){
if(!record->event.pressed){
register_code(is_overwatch?KC_BSPC:KC_ENTER);
send_game_macro("That aim is absolutely amazing. It's almost like you're a machine!");
unregister_code(is_overwatch?KC_BSPC:KC_ENTER);
wait_ms(50);
SEND_STRING("That aim is absolutely amazing. It's almost like you're a machine!"SS_TAP(X_ENTER));
wait_ms(3000);
wait_ms(3000);
register_code(is_overwatch?KC_BSPC:KC_ENTER);
send_game_macro("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!");
unregister_code(is_overwatch?KC_BSPC:KC_ENTER);
SEND_STRING("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!"SS_TAP(X_ENTER));
}
}
returnfalse;
returnfalse;
break;
break;
caseKC_C9:
caseKC_C9:
if(!record->event.pressed){
if(!record->event.pressed){
register_code(is_overwatch?KC_BSPC:KC_ENTER);
send_game_macro("OMG!!! C9!!!");
unregister_code(is_overwatch?KC_BSPC:KC_ENTER);
wait_ms(50);
SEND_STRING("OMG!!! C9!!!");
register_code(KC_ENTER);
unregister_code(KC_ENTER);
}
}
returnfalse;
returnfalse;
break;
break;
caseKC_GGEZ:
caseKC_GGEZ:
if(!record->event.pressed){
if(!record->event.pressed){
register_code(is_overwatch?KC_BSPC:KC_ENTER);
send_game_macro("That was a fantastic game, though it was a bit easy. Try harder next time!");
unregister_code(is_overwatch?KC_BSPC:KC_ENTER);
wait_ms(50);
SEND_STRING("That was a fantastic game, though it was a bit easy. Try harder next time!");
#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.)
#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.)