diff --git a/src/InstinctBittleESP_arm.h b/src/InstinctBittleESP_arm.h index 9aab90b..19f506a 100644 --- a/src/InstinctBittleESP_arm.h +++ b/src/InstinctBittleESP_arm.h @@ -1733,14 +1733,14 @@ const int8_t clap[] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 30, 30, 30, 30, 30, 8, 0, 0, 0, 0, -5,-120, 0, 5, 5, 3, 3, 71, 71, -58, -58, -60, -60, 74, 74, 12, 0, 0, 0, 0, -4,-120, 0, 5, 5, 3, 3, 47, 47, -25, -25, 9, 9, 90, 90, 12, 0, 0, 0, - 0, 110, 120, 0, 5, 5, 3, 3, 12, 12, -15, -15, -37, -37, 90, 90, 64, 5, 0, 0, - 0, 30,-120, 0, 5, 5, 3, 3, -41, -41, -15, -15, 16, 16, 90, 90, 48, 2, 0, 0, + 0, 110, 120, 0, 5, 5, 3, 3, 12, 12, -13, -13, -37, -37, 90, 90, 48, 5, 0, 0, + 0, 30,-120, 0, 5, 5, 3, 3, -41, -41, -13, -13, 16, 16, 90, 90, 48, 2, 0, 0, 25, 110, 120, 0, 5, 5, 3, 3, 12, -85, -15, -15, -37, 60, 90, 90, 64, 4, 0, 0, 0, 30,-120, 0, 5, 5, 3, 3, -41, -41, -15, -15, 16, 16, 90, 90, 48, 2, 0, 0, -25, 110, 120, 0, 5, 5, 3, 3, -85, 12, -15, -15, 60, -37, 90, 90, 64, 4, 0, 0, 0, 30,-120, 0, 5, 5, 3, 3, -41, -41, -15, -15, 16, 16, 90, 90, 48, 2, 0, 0, - 0, 120,-120, 0, 5, 5, 3, 3, 90, 90, -54, -54, -60, -60, 25, 25, 8, 0, 0, 0, - 0, 120,-120, 0, 5, 5, 3, 3, 71, 71, 31, 31, -60, -60, -28, -28, 12, 0, 0, 0, + 0, 120,-120, 0, 5, 5, 3, 3, 71, 71, -45, -45, -56, -56, 50, 50, 8, 0, 0, 0, + 0, 120,-120, 0, 5, 5, 3, 3, 71, 71, 72, 72, -56, -56, -51, -51, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 30, 30, 30, 30, 30, 12, 0, 0, 0, }; const int8_t cmh[] PROGMEM = { @@ -1996,9 +1996,9 @@ const int8_t pickUp[] PROGMEM = { 0, 0, 0, 0, -10, 0, 0, 0, 0, 0, 0, 16, 16, 30, 30, 30, 30, 30, 30, 32, 0, 0, 0, 0, 40, 85, -10, 10, 10, -20, -20, 5, 5, 10, 10, 20, 20, 50, 50, 48, 0, 0, 0, - 0, 40, 85, -10, 10, 10, -20, -20, 5, 5, 10, 10, 20, 20, 50, 50, 64, 0, 0, 0, - 0, 105, 85, -10, 10, 10, -20, -20, 53, 53, 40, 40, -28, -28, 35, 35, 4, 0, 0, 0, - 0, 105, 0, -10, 10, 10, -20, -20, 53, 53, 40, 40, -28, -28, 35, 35, 8, 0, 0, 0, + 0, 20, 85, -10, 10, 10, -20, -20, 5, 5, 10, 10, 20, 20, 50, 50, 64, 0, 0, 0, + 0, 97, 85, -10, 10, 10, -20, -20, 53, 53, 40, 40, -28, -28, 35, 35, 4, 0, 0, 0, + 0, 97, 0, -10, 10, 10, -20, -20, 53, 53, 40, 40, -28, -28, 35, 35, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 30, 30, 30, 30, 30, 30, 8, 0, 0, 0, }; const int8_t pu[] PROGMEM = { diff --git a/src/InstinctNybbleESP.h b/src/InstinctNybbleESP.h index 65854d2..22ff944 100644 --- a/src/InstinctNybbleESP.h +++ b/src/InstinctNybbleESP.h @@ -1,5 +1,5 @@ #define NYBBLE -//number of skills: 50 +//number of skills: 53 const int8_t bd[] PROGMEM = { 59, 0, 0, 1, @@ -1039,34 +1039,54 @@ const int8_t zero[] PROGMEM = { const int8_t ang[] PROGMEM = { -5, 0, 0, 1, - 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, - 43, 53, -98, 0, 0, 0, 0, 0, 60, 60, -9, -9, 71, 71, -68, -68, 16,30, 0, 0, - -76, 1, 59, 0, 0, 0, 0, 0, 62, 60, -9, -37, -53, 71, -68, -87, 8, 0, 0, 0, - 33, 73, -70, 0, 0, 0, 0, 0, 62, 60, -34, -37, -53, -65, -81, -87, 8, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, + 43, -36, 0, 0, -3, -3, 3, 3, 27, 27, -33, -33, 48, 48, -12, -12, 12, 0, 0, 0, + 81, 2, 34, 0, -3, -3, 3, 3, 16, 27, -62, -37, 99, 48, -16, -25, 16, 0, 0, 0, + 77, 2, 63, 0, -3, -3, 3, 3, 56, 27, -59, -37, 0, 48, -16, -25, 16, 6, 0, 0, + -65, -6, -75, 0, -2, -2, 2, 2, 36, 33, -32, -32, 14, 20, -18, -18, 64,20, 0, 0, }; const int8_t bx[] PROGMEM = { -9, 0, 0, 1, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, - 10, -20, -94, 0, -5, -5, 20, 20, 30, 30, -90, -90, 60, 60, 45, 45, 12, 0, 0, 0, - 10, -20, -94, 0, -5, -5, 20, 20, 38, 38, -90, -90, 108, 108, -6, -6, 12, 0, 0, 0, - 0, -40, -94, 0, -5, -5, 20, 20, 45, 45, -49, -49, -6, -6, -51, -51, 48, 4, 0, 0, - 16, -42, -94, 0, -5, -5, 20, 20, -55, 46, -61, -61, 100, -45, -21, -21, 48, 0, 0, 0, - -16, -35, -94, 0, -5, -5, 20, 20, 38, -65, -61, -61, -45, 100, -21, -21, 48, 0, 0, 0, - 0, -73, -94, 0, -5, -5, 20, 20, 46, 46, -49, -49, -26, -26, -40, -40, 16, 2, 0, 0, - 0, -73, -80, 0, -5, -5, 20, 20, 46, 46, -78, -78, 39, 40, 46, 46, 12, 0, 0, 0, + 10, -20, -94, 0, -5, -5, 20, 20, 30, 30, -68, -68, 60, 60, 45, 45, 12, 0, 0, 0, + 10, -47, -94, 0, -5, -5, 20, 20, 38, 38, -68, -68, 108, 108, -14, -14, 12, 2, 0, 0, + 0, -69, -94, 0, -5, -5, 20, 20, 45, 45, -68, -68, -6, -6, 43, 43, 12, 4, 0, 0, + 16, -53, -94, 0, -5, -5, 20, 20, -14, 87, -68, -68, 100, -45, 34, 34, 48, 0, 0, 0, + -16, -64, -94, 0, -5, -5, 20, 20, 84, -19, -68, -68, -45, 100, 34, 34, 48, 0, 0, 0, + 0, -73, -54, 0, -5, -5, 20, 20, 19, 19, -71, -71, 78, 79, 57, 57, 48, 0, 1,-60, + 0, -73, -54, 0, -5, -5, 20, 20, 43, 43, -56, -56, 35, 36, 57, 57, 64, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 12, 0, 0, 0, +}; +const int8_t cach[] PROGMEM = { +-15, 0, 0, 1, + 3, 4, 2, + -41, -2, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, + 14, -57, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 4, 0, 0, + 14, -34, 0, 0, 0, 0, 0, 0, 70, 70, -47, -47, -50, -50, -6, -6, 4, 2, 0, 0, + 8, -40, 52, 0, -2, 5, 5, -2, 71, 75, -52, -50, -45, -52, 4, -11, 12, 0, 0, 0, + 13, -37, -57, 0, 9, -2, -2, 9, 79, 59, -50, -65, -58, -46, -10, 11, 12, 0, 0, 0, + 16, -53, -49, 0, 5, 6, 6, 5, 65, 57, -48, -51, -10, -13, 6, 3, 0, 0, 0, 0, + 17, -45, -49, 0, 0, 0, 0, 0, -31, 16, -47, -43, -6, -6, -34, -40, 64, 0, 0, 0, + 17, -17, -86, 0, 0, 0, 0, 0, -87, -87, -47, -43, 74, 74, -68, -40, 48,10, 0, 0, + 28, -20, -86, 0, 0, 0, 0, 0, -87, -87, -47, -47, 74, 74, -68, -68, 16, 4, 0, 0, + 28, -20, 0, 0, 0, 0, 0, 0, -92, -87, -47, -47, 60, 74, -68, -68, 12, 8, 0, 0, + -28, -19, 0, 0, 0, 0, 0, 0, -87, -87, -47, -47, 74, 74, -68, -68, 4, 6, 0, 0, + -28, -19, 0, 0, 0, 0, 0, 0, -87, -98, -47, -47, 74, 59, -68, -68, 4, 8, 0, 0, + 0, -11, 0, 0, 0, 0, 0, 0, -87, -87, -47, -47, 74, 74, -68, -68, 12,16, 0, 0, + 0, -11, 0, 0, 0, 0, 0, 0, 19, 19, -47, -47, -32, -32, -68, -68, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 12, 0, 0, 0, }; const int8_t chr[] PROGMEM = { --5, 0, 0, 1, +-6, 0, 0, 1, 2, 3, 3, - -45, -11, 60, 0, -5, -5, 20, 20, 30, 30, -90, -90, 60, 60, 45, 45, 8, 0, 0, 0, - -49, -33, 89, 0, -5, -5, 20, 20, 31, 30, -84, -66, 81, 60, 45, 7, 8, 0, 0, 0, - -49, -17, 89, 0, -5, -5, 20, 20, -99, 30, -84, -66, 25, 60, 45, 7, 16, 0, 0, 0, - -60, 5, 120, 0, -5, -5, 20, 20, 43, 30, -84, -66, -39, 60, 45, 7, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 12, 0, 0, 0, + -45, -11, 60, 0, -5, -5, 20, 20, 45, 45, -90, -90, 60, 60, 45, 45, 8, 0, 0, 0, + -49, -33, 89, 0, -5, -5, 20, 20, 31, 45, -84, -66, 81, 60, 45, 7, 8, 0, 0, 0, + -49, -17, 89, 0, -5, -5, 20, 20, -86, 43, -84, -66, 25, 60, 45, 7, 16, 0, 0, 0, + -60, 5, 120, 0, -5, -5, 20, 20, 43, 43, -84, -66, -39, 60, 45, 7, 64, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -16, -16, 30, 30, -16, -16, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -29, -29, 30, 30, -16, -16, 12, 0, 0, 0, }; const int8_t ck[] PROGMEM = { -3, 0, 0, 1, @@ -1078,42 +1098,42 @@ const int8_t ck[] PROGMEM = { const int8_t cmh[] PROGMEM = { -22, 0, 0, 1, 0, 20, 5, - 46, 6, 0, 0, 0, 0, 0, 0, 29, 26, -29, -26, 27, 22, -28, -23, 0, 0, 0, 0, - 46, 6, 0, 0, 0, 0, 0, 0, 26, 25, -26, -25, 30, 24, -31, -25, 0, 0, 0, 0, - 52, 0, 0, 0, 0, 0, 0, 0, 23, 25, -23, -25, 33, 22, -34, -23, 0, 0, 0, 0, - 52, 0, 0, 0, 0, 0, 0, 0, 17, 17, -17, -17, 39, 27, -40, -28, 0, 0, 0, 0, - 47, 0, 0, 0, 0, 0, 0, 0, 13, 10, -13, -10, 42, 38, -43, -39, 0, 0, 0, 0, - 47, 0, 0, 0, 0, 0, 0, 0, 10, 13, -10, -13, 38, 42, -39, -43, 0, 0, 0, 0, - 52, 0, 0, 0, 0, 0, 0, 0, 17, 17, -17, -17, 27, 39, -28, -40, 0, 0, 0, 0, - 52, 0, 0, 0, 0, 0, 0, 0, 25, 23, -25, -23, 22, 33, -23, -34, 0, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 0, 0, 25, 26, -25, -26, 24, 30, -25, -31, 0, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 0, 0, 26, 29, -26, -29, 22, 27, -23, -28, 0, 0, 0, 0, - 52, 0, 0, 0, 0, 0, 0, 0, 23, 33, -23, -33, 27, 30, -28, -31, 0, 0, 0, 0, - 52, 0, 0, 0, 0, 0, 0, 0, 23, 36, -23, -36, 27, 31, -28, -32, 0, 0, 0, 0, - 59, 0, 0, 0, 0, 0, 0, 0, 29, 41, -29, -41, 20, 24, -21, -25, 0, 0, 0, 0, - 59, 0, 0, 0, 0, 0, 0, 0, 34, 43, -34, -43, 14, 24, -15, -25, 0, 0, 0, 0, - 44, 0, 0, 0, 0, 0, 0, 0, 42, 46, -42, -46, 16, 24, -17, -25, 0, 0, 0, 0, - 44, 0, -33, 0, 0, 0, 0, 0, 45, 44, -45, -44, 23, 20, -24, -21, 0, 0, 0, 0, - 62, 0, -33, 0, 0, 0, 0, 0, 44, 37, -44, -37, 24, 12, -25, -13, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 0, 0, 0, 43, 31, -43, -31, 24, 17, -25, -18, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 37, 24, -37, -24, 30, 26, -31, -27, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 35, 23, -35, -23, 31, 27, -32, -28, 0, 0, 0, 0, - 54, 0, 0, 0, 0, 0, 0, 0, 30, 26, -30, -26, 27, 24, -28, -25, 0, 0, 0, 0, - -31, 34, 20, 0, 0, 0, 0, 0, 30, 26, -30, -26, 27, 24, -28, -25, 8, 0, 0, 0, + 52, 6, 0, 0, 0, 0, 0, 0, 29, 26, -29, -26, 27, 22, -28, -23, 64, 0, 0, 0, + 52, 6, 0, 0, 0, 0, 0, 0, 26, 25, -26, -25, 30, 24, -31, -25, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 23, 25, -23, -25, 33, 22, -34, -23, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 17, 17, -17, -17, 39, 27, -40, -28, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 13, 10, -13, -10, 42, 38, -43, -39, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 10, 13, -10, -13, 38, 42, -39, -43, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 17, 17, -17, -17, 27, 39, -28, -40, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 25, 23, -25, -23, 22, 33, -23, -34, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 25, 26, -25, -26, 24, 30, -25, -31, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 26, 29, -26, -29, 22, 27, -23, -28, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 23, 33, -23, -33, 27, 30, -28, -31, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 23, 36, -23, -36, 27, 31, -28, -32, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 29, 41, -29, -41, 20, 24, -21, -25, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 34, 43, -34, -43, 14, 24, -15, -25, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 42, 46, -42, -46, 16, 24, -17, -25, 64, 0, 0, 0, + 52, 0, -33, 0, 0, 0, 0, 0, 45, 44, -45, -44, 23, 20, -24, -21, 64, 0, 0, 0, + 52, 0, -33, 0, 0, 0, 0, 0, 44, 37, -44, -37, 24, 12, -25, -13, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 43, 31, -43, -31, 24, 17, -25, -18, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 37, 24, -37, -24, 30, 26, -31, -27, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 35, 23, -35, -23, 31, 27, -32, -28, 64, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 30, 26, -30, -26, 27, 24, -28, -25, 64, 0, 0, 0, + 52, 34, 20, 0, 0, 0, 0, 0, 30, 26, -30, -26, 27, 24, -28, -25, 8, 0, 0, 0, }; const int8_t dg[] PROGMEM = { -11, 0, 0, 1, 1, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 12, 0, 0, 0, - 0, -32, 0, 0, 0, 0, 0, 0, 62, 62, -47, -47, -20, -20, -30, -30, 32, 0, 0, 0, - 23, -43, 32, 0, 0, 0, 0, 0, 31, 74, -47, -47, -29, -24, -30, -30, 48, 0, 0, 0, - 23, -43, 32, 0, 0, 0, 0, 0, 0, 72, -47, -47, -1, -18, -30, -30, 64, 0, 0, 0, - 0, -32, 0, 0, 0, 0, 0, 0, 29, 79, -47, -47, -30, -25, -30, -30, 48, 0, 0, 0, - 0, -32, 0, 0, 0, 0, 0, 0, 66, 66, -47, -47, -32, -27, -30, -30, 32, 0, 0, 0, - -23, -32, -32, 0, 0, 0, 0, 0, 66, 75, -47, -47, -24, -45, -30, -30, 48, 0, 0, 0, - -23, -45, -32, 0, 0, 0, 0, 0, 66, 6, -47, -47, -24, -6, -30, -30, 64, 0, 0, 0, - 0, -45, 0, 0, 0, 0, 0, 0, 66, 41, -47, -47, -24, -28, -30, -30, 48, 0, 0, 0, - 0, -24, 0, 0, 0, 0, 0, 0, 62, 62, -47, -47, -20, -20, -30, -30, 32, 0, 0, 0, + 0, -32, 0, 0, 0, 0, 0, 0, 62, 62, -47, -47, -20, -20, -30, -30, 16, 0, 0, 0, + 23, -43, 32, 0, 0, 0, 0, 0, 31, 74, -47, -47, -29, -24, -30, -30, 16, 0, 0, 0, + 23, -43, 32, 0, 0, 0, 0, 0, 0, 72, -47, -47, -1, -18, -30, -30, 48, 0, 0, 0, + 0, -32, 0, 0, 0, 0, 0, 0, 29, 79, -47, -47, -30, -25, -30, -30, 32, 0, 0, 0, + 0, -32, 0, 0, 0, 0, 0, 0, 66, 66, -47, -47, -32, -27, -30, -30, 16, 0, 0, 0, + -23, -32, -32, 0, 0, 0, 0, 0, 66, 75, -47, -47, -24, -45, -30, -30, 32, 0, 0, 0, + -23, -45, -32, 0, 0, 0, 0, 0, 66, 6, -47, -47, -24, -6, -30, -30, 48, 0, 0, 0, + 0, -45, 0, 0, 0, 0, 0, 0, 66, 41, -47, -47, -24, -28, -30, -30, 32, 0, 0, 0, + 0, -24, 0, 0, 0, 0, 0, 0, 62, 62, -47, -47, -20, -20, -30, -30, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -47, -47, 30, 30, -30, -30, 12, 0, 0, 0, }; const int8_t fiv[] PROGMEM = { @@ -1129,40 +1149,51 @@ const int8_t fiv[] PROGMEM = { 10, 14, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, }; const int8_t gdb[] PROGMEM = { --5, 0, -30, 1, +-6, 0, 0, 1, 2, 3, 3, - 0, 50, 0, 0, 5, 5, -5, -5, 35, 35, -25, -25, -2, -2, -62, -62, 8, 0, 0, 0, - 0, 18, 45, 0, -5, -5, 5, 5, 36, 12, -59, -35, 40, 84, -12, 24, 8, 0, 0, 0, + 0, 25, 0, 0, 5, 5, -5, -5, 35, 35, -25, -25, -2, -2, -62, -62, 8, 0, 0, 0, + 0, 0, 45, 0, -5, -5, 5, 5, 36, 12, -59, -35, 40, 84, -12, 24, 8, 0, 0, 0, -8, 38, 54, 0, -5, -5, 5, 5, 54, 35, -70, -49, 18, 41, 1, 27, 16, 0, 0, 0, - -4, 20, -28, 0, -5, -5, 5, 5, 25, 0, -56, -34, 71, 78, -10, 15, 48, 0, 0, 0, - 10, 24, -60, 0, -5, -5, 20, 20, 30, 30, -90, -90, 60, 60, 45, 45, 8, 0, 0, 0, + -4, 7, -28, 0, -5, -5, 5, 5, 25, 0, -56, -34, 71, 78, -10, 15, 48, 0, 0, 0, + 10, 24, -60, 0, -5, -5, 20, 20, 30, 30, -90, -90, 60, 60, 45, 45, 8, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, }; const int8_t hds[] PROGMEM = { -10, 0, 0, 1, 5, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, - 0, 36, 7, 0, 0, 0, 0, 0, 78, 78, -36, -36, -61, -62, -92, -92, 12, 0, 0, 0, - 0, -67, 7, 0, 0, 0, 0, 0, 74, 74, -43, -43, 5, 4, -78, -78, 32, 0, 0, 0, - 0, -77, -7, 0, 0, 0, 0, 0, -7, -7, 51, 93, 25, 25, -78, -78, 16, 0, 0, 0, - 0, -77, -7, 0, 0, 0, 0, 0, -7, -7, 51, 93, 24, 24, -78, -78, 16,18, 0, 0, - 0, -77, 7, 0, 0, 0, 0, 0, 0, 0, 93, 51, 24, 24, -78, -78, 16, 0, 0, 0, - 0, -77, -7, 0, 0, 0, 0, 0, 0, 0, 51, 93, 9, 9, -78, -78, 16, 0, 0, 0, - 0, 49, -7, 0, 0, 0, 0, 0, 91, 91, -47, -47, -4, -4, -78, -78, 12, 0, 0, 0, + 0, 36, 7, 0, 0, 0, 0, 0, 75, 75, -36, -36, -60, -60, -92, -92, 32, 0, 0, 0, + 0, -61, 7, 0, 0, 0, 0, 0, 75, 75, -43, -43, 11, 11, -78, -78, 32, 0, 0, 0, + 0, -60, -7, 0, 0, 0, 0, 0, -9, -9, -62, -62, 14, 14, -78, -78, 16, 4, 0, 0, + 0, -60, -7, 0, 0, 0, 0, 0, -9, -9, 52, 92, 14, 14, -78, -78, 12, 0, 0, 0, + 0, -60, 7, 0, 0, 0, 0, 0, -9, -9, 93, 51, 14, 14, -78, -78, 16, 0, 0, 0, + 0, -60, -7, 0, 0, 0, 0, 0, -8, -8, 51, 93, 14, 14, -78, -78, 16, 0, 0, 0, + 0, 40, -7, 0, 0, 0, 0, 0, 91, 91, -47, -47, -4, -4, -78, -78, 12, 0, 0, 0, 0, -11, 0, 0, 5, 5, 3, 3, 60, 60, -45, -45, -60, -60, -5, -5, 12, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, }; +const int8_t headToss[] PROGMEM = { +-6, 0, 0, 1, + 2, 3, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, + 60, 15, 0, 0, 0, 0, 0, 0, 20, 20, -16, -16, -3, -3, -38, -38, 32, 0, 0, 0, + 60, 15, 0, 0, 0, 0, 0, 0, 20, 20, -16, -16, -3, -3, -38, -38, 100, 0, 0, 0, + -60, 15, 0, 0, 0, 0, 0, 0, 20, 20, -16, -16, -3, -3, -38, -38, 100, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, -20, -20, 50, 50, -31, -31, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 4, 0, 0, 0, +}; const int8_t hg[] PROGMEM = { -9, 0, 0, 1, 4, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, - -10, -20, 94, 0, -5, -5, 20, 20, 30, 30, -90, -90, 60, 60, 45, 45, 12, 0, 0, 0, - -10, -20, 94, 0, -5, -5, 20, 20, 38, 38, -61, -61, 97, 97, -26, -26, 12, 0, 0, 0, - -69, -50, 109, 0, -5, -5, 20, 20, 25, 25, -62, -62, 72, 90, -26, -26, 16, 4, 0, 0, - -19, -36, 110, 0, -5, -5, 20, 20, -63, -63, -62, -62, 44, 52, -26, -26, 12, 0, 0, 0, - 33, -21, 110, 0, -5, -5, 20, 20, -74, -52, -62, -62, 44, 40, -26, -26, 12, 6, 0, 0, + -10, -20, 94, 0, -5, -5, 20, 20, 30, 30, -71, -71, 60, 60, 45, 45, 12, 0, 0, 0, + -10, -20, 94, 0, -5, -5, 20, 20, 38, 38, -68, -68, 97, 97, -26, -26, 12, 0, 0, 0, + -69, -50, 109, 0, -5, -5, 20, 20, 25, 25, -56, -56, 72, 90, 10, 10, 12, 4, 0, 0, + -19, -36, 110, 0, -5, -5, 20, 20, -63, -63, -56, -56, 44, 52, 10, 10, 12, 0, 0, 0, + 33, -21, 110, 0, -5, -5, 20, 20, -74, -52, -56, -56, 44, 40, 9, 9, 12, 6, 0, 0, 0, -28, 84, 0, -5, -5, 20, 20, 46, 46, -63, -63, 84, 83, -31, -31, 16, 2, 0, 0, - 0, -28, 70, 0, -5, -5, 20, 20, 46, 46, -74, -74, 40, 39, 46, 46, 12,10, 0, 0, - 0, 0, 70, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 12, 0, 0, 0, + 0, -28, 62, 0, -5, -5, 20, 20, 46, 46, -78, -78, 40, 39, 46, 46, 12,10, 0, 0, + 0, 0, 62, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 12, 0, 0, 0, }; const int8_t hi[] PROGMEM = { -6, 0, 0, 1, @@ -1184,28 +1215,29 @@ const int8_t hsk[] PROGMEM = { 10, -20, -60, 0, -5, -5, 20, 20, 30, 30, -90, -90, 60, 60, 45, 45, 8, 0, 0, 0, }; const int8_t hu[] PROGMEM = { --8, 0, 0, 1, - 0, 0, 5, +-10, 0, 0, 1, + 4, 5, 3, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, 10, -20, -94, 0, -5, -5, 20, 20, 30, 30, -72, -72, 60, 60, -25, -25, 12, 0, 0, 0, 10, -20, -94, 0, -5, -5, 20, 20, 38, 38, -61, -61, 108, 89, -25, -25, 12, 2, 0, 0, 0, -4, -94, 0, -5, -5, 20, 20, 25, 54, -61, -61, -16, 64, -26, -26, 32, 0, 0, 0, - 0, 1, -94, 0, -5, -5, 20, 20, -96, 54, -61, -61, 53, 64, -26, -26, 12, 2, 0, 0, - 13, -16, -94, 0, -5, -5, 20, 20, -81, 54, -61, -61, 68, 64, -26, -26, 16,20, 0, 0, - 10, -65, -60, 0, -5, -5, 20, 20, 30, 30, -90, -90, 60, 60, 45, 45, 8, 0, 0, 0, - 10, 14, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, + -34, 1, -94, 0, -5, -5, 20, 20, -96, 54, -61, -61, 53, 64, -26, -26, 16, 0, 0, 0, + 13, -43, -80, 0, -5, -5, 20, 20, -50, 54, -60, -61, 25, 64, -26, -26, 16, 0, 0, 0, + 13, -64, -80, 0, -5, -5, 20, 20, 53, 54, -68, -69, 25, 64, 37, 37, 8, 0, 0, 0, + 10, -33, -68, 0, -5, -5, 20, 20, 25, 25, -70, -70, 50, 50, 55, 55, 16, 6, 0, 0, + 10, -28, -68, 0, 1, 1, 14, 14, 31, 31, -40, -40, 14, 14, 34, 34, 8, 0, 0, 0, + 0, -27, 0, 0, 0, 0, 0, 0, 27, 27, -22, -22, 30, 30, -30, -30, 8, 0, 0, 0, }; const int8_t kc[] PROGMEM = { --9, 0, 0, 1, +-8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 12, 0, 0, 0, - 22, -33, 0, 0, 0, 0, 0, 0, 52, 52, -20, -36, 0, 0, -61, -43, 16, 0, 0, 0, - 22, -33, 0, 0, 0, 0, 0, 0, 52, 52, -20, -78, 0, 0, -45, -20, 64, 0, 0, 0, - 27, -40, 0, 0, 0, 0, 0, 0, 45, 50, -30, -41, 15, 15, -40, -62, 16, 0, 0, 0, - 27, -40, 90, 0, 0, 0, 0, 0, 59, 37, -30, -48, -60, -10, -33, -62, 32, 0, 0, 0, - 25, -30, 90, 0, 0, 0, 0, 0, 30, 42, -30, -43, -30, -10, -45, -62, 0, 6, 0, 0, - 5, -18, 0, 0, 0, 0, 0, 0, -45, 42, -9, -41, 62, 15, -45, -62, 0, 1, 0, 0, - -2, -8, 0, 0, 0, 0, 0, 0, -18, 45, -9, -43, 60, 15, -45, -40, 16, 0, 0, 0, + 22, -33, 0, 0, 0, 0, 0, 0, 52, 52, -27, -36, 0, 0, -61, -43, 16, 0, 0, 0, + 22, -33, 0, 0, 0, 0, 0, 0, 52, 52, -28, -62, 0, 0, -61, -20, 64, 0, 0, 0, + 27, -40, 6, 0, -3, 6, 6, -3, 49, 62, -36, -28, 12, -5, -28, -81, 16, 0, 0, 0, + 33, -40, 6, 0, -3, 6, 6, -3, 60, 62, -53, -35, -47, -5, -20, -81, 64, 0, 0, 0, + 8, -17, 6, 0, -3, 6, 6, -3, -25, 62, -53, -35, 40, -5, -20, -81, 0, 0, 0, 0, + -2, -8, 0, 0, 0, 0, 0, 0, -18, 45, -9, -43, 60, 15, -45, -40, 16,10, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 12, 0, 0, 0, }; const int8_t knock[] PROGMEM = { @@ -1217,49 +1249,69 @@ const int8_t knock[] PROGMEM = { -25, -60, 0, 0, 0, 0, 0, 0, 28, 28, -50, -40, -16, -16, -60, -50, 48, 0, 0, 0, 34, 62, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, }; +const int8_t lucky[] PROGMEM = { +-10, 0, 0, 1, + 5, 6, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, + 58, 0, 0, 0, 0, 0, 0, 0, -3, -3, -65, -65, 73, 73, -3, -3, 8, 0, 0, 0, + 52, -49, -86, 0, -5, -5, 20, 20, 27, 27, -90, -90, 79, 79, -16, -16, 8, 0, 0, 0, + 20, -65, -92, 0, -5, -5, 20, 20, 57, 57, -65, -65, 79, 79, 21, 21, 12, 0, 0, 0, + 20, -65, -92, 0, -5, -5, 20, 20, 77, -20, -65, -65, 20, -33, 21, 21, 8, 6, 0, 0, + 0, -58, -86, 0, -5, -5, 20, 20, 77, -74, -63, -63, 53, 37, 22, 22, 12, 0, 0, 0, + 0, -58, -86, 0, -5, -5, 20, 20, 77, 53, -63, -63, 53, 59, 22, 22, 12, 1, 0, 0, + 0, -64, -77, 0, -5, -5, 20, 20, 3, 3, -78, -78, 70, 70, 62, 62, 12, 0, 0, 0, + 0, -8, -77, 0, -5, -5, 20, 20, 52, 52, -78, -78, -12, -12, 62, 62, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 16, 0, 0, 0, +}; const int8_t nd[] PROGMEM = { --5, 0, 0, 1, +-6, 0, 0, 1, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, - 36, 40, -83, 0, -7, -7, 7, 7, 12, 12, -40, -40, 102, 102, -10, -10, 12, 8, 0, 0, - 17, -44, -83, 0, -7, -7, 7, 7, 25, 25, -40, -40, 62, 62, -10, -10, 32, 0, 0, 0, - 17, 40, -70, 0, -4, -4, 4, 4, 18, 18, -40, -40, 75, 75, -10, -10, 32, 0, 0, 0, - -24, 35, -15, 0, -4, -4, 4, 4, 12, 12, -40, -40, 84, 84, -10, -10, 4, 0, 0, 0, + 36, 28, -83, 0, -7, -7, 7, 7, 12, 12, -40, -40, 102, 102, -10, -10, 12, 8, 0, 0, + 17, -40, -83, 0, -7, -7, 7, 7, 25, 25, -40, -40, 62, 62, -10, -10, 32, 0, 0, 0, + 17, 30, -70, 0, -4, -4, 4, 4, 18, 18, -40, -40, 75, 75, -10, -10, 32, 0, 0, 0, + -24, 28, -15, 0, -4, -4, 4, 4, 12, 12, -40, -40, 84, 84, -10, -10, 4, 0, 0, 0, + 10, -20, -60, 0, -5, -5, 20, 20, 30, 30, -90, -90, 60, 60, 45, 45, 8, 0, 0, 0, }; const int8_t pd[] PROGMEM = { --5, 0, 0, 1, - 3, 4, 2, +-6, 0, 0, 1, + 4, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, - -84, -73, 65, 0, 0, 0, 0, 0, 73, 0, 0, -73, -60, 88, -88, 60, 12, 4, 0, 0, - -4, -79, 0, 0, 0, 0, 0, 0, -3, 16, -16, 3, 90, 56, -56, -90, 8,20, 0, 0, - -4, -79, 0, 0, 0, 0, 0, 0, -3, 16, -16, 3, 90, 56, -56, -73, 32, 0, 0, 0, - -4, -79, 0, 0, 0, 0, 0, 0, -3, 15, -15, 3, 90, 60, -60, -90, 32,20, 0, 0, + 20, 0, 20, 0, -10, 20, 20, -10, 8, -84, 84, -8, 79, 109,-109, -79, 8, 0, 0, 0, + 20, 0, 20, 0, -10, 20, 20, -10, 8, 9, -9, -8, 79, 109,-109, -79, 8, 0, 0, 0, + -4, -79, -25, 0, 0, 0, 0, 0, -3, 16, -16, 3, 25, 56, -56, -25, 16,20, 0, 0, + -4, -79, -25, 0, 0, 0, 0, 0, -3, 16, -16, 3, 25, 56, -56, -66, 32, 0, 0, 0, + -4, -79, 0, 0, 0, 0, 0, 0, -3, 15, -15, 3, 25, 60, -60, -90, 32,20, 0, 0, }; const int8_t pee[] PROGMEM = { --5, 0, 0, 1, - 2, 3, 2, - 30, 20, 0, 0, 15, -10, 60, -10, 40, 40, 85, -45, 10, 60, 15, -45, 6, 0, 0, 0, - 45, 20, -45, 0, 15, -10, 60, -10, 60, 53, 75, -60, -30, 40, 0, -21, 2,10, 0, 0, - 30, 20, -55, 0, 15, -10, 60, -10, 40, 40, 85, -45, 10, 50, 0, -45, 8, 0, 0, 0, - 40, 25, -30, 0, 15, -10, 60, -10, 40, 40, 70, -45, 10, 50, -30, -45, 8, 0, 0, 0, +-6, 0, 0, 1, + 3, 4, 2, + 30, 20, 32, 0, 15, -10, 60, -10, 40, 33, -47, -45, 10, 77, -59, -45, 12, 0, 0, 0, + 30, 21, 32, 0, 15, -10, 60, -10, 40, 33, -47, -45, 8, 64, 13, -47, 12, 0, 0, 0, + 45, 21, 26, 0, 15, -10, 60, -10, 60, 53, 75, -60, -30, 40, 0, -21, 12,10, 0, 0, + 45, 20, 31, 0, 15, -10, 60, -10, 60, 53, 43, -60, -30, 40, -22, -21, 8, 0, 0, 0, + 45, 20, 25, 0, 15, -10, 60, -10, 60, 53, 56, -60, -30, 40, -3, -21, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, }; const int8_t pu[] PROGMEM = { --6, 0, 0, 1, +-7, 0, 0, 1, 1, 2, 3, - 30, 30, 0, 0, 0, 0, 0, 0, 60, 60, 70, 70, 15, 15, -70, -70, 6, 0, 0, 0, - 0, -40, 0, 0, 0, 0, 0, 0, 30, 30, 95, 95, 60, 60, -70, -70, 6, 1, 0, 0, - 5, 5, 0, 0, 0, 0, 0, 0, 75, 75, 55, 55, -50, -50, -75, -75, 8, 0, 0, 0, - 5, 5, 0, 0, 0, 0, 0, 0, 75, -70, 55, 55, -50, 70, -75, -75, 8, 0, 0, 0, - 60, -30, -45, 0, 0, 0, 0, 0, 70, -70, 55, 0, -30, -45, -75, -45, 8, 1, 0, 0, + 30, 30, 62, 0, 0, 0, 0, 0, 60, 60, 70, 70, 15, 15, -70, -70, 6, 0, 0, 0, + 0, -40, 62, 0, 0, 0, 0, 0, 38, 38, 78, 78, 60, 60, -73, -73, 12, 1, 0, 0, + 5, 5, 51, 0, 0, 0, 0, 0, 75, 75, 67, 67, -50, -50, -75, -75, 16, 0, 0, 0, + 5, 5, 51, 0, 0, 0, 0, 0, 75, -70, 67, 67, -50, 70, -75, -75, 12, 0, 0, 0, + 60, -30, 26, 0, 0, 0, 0, 0, 50, -70, 55, 0, -9, -45, -75, -45, 12, 1, 0, 0, + -30, -19, -45, 0, -3, -3, 3, 3, 60, 60, -60, -60, -45, -45, 45, 45, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, }; const int8_t rc[] PROGMEM = { --3, 0, 0, 1, - 0, 0, 0, - 30, -74, 34, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -59, -31, 8,12, 0, 0, - 62, 0, -20, 0, 0, 0, 0, 0, -3, -99, 115, 0, 81, 9, -9, -71, 32,10, 0, 0, - 0, 17, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, +-5, 0, 0, 2, + 0, 0, 1, + 15, -27, 60, 0, 0, 0, 0, 0, 15, 15, -15, -15, 15, 15, -30, -16, 8, 4, 0, 0, + 62, -13, 60, 0, 0, 0, 0, 0, 15, -27, 26, -15, 15, -2, 3, -16, 16, 2, 0, 0, + 31, 0, 16, 0, 0, 0, 0, 0, -2, -55, 63, 0, 40, 4, -20, -31, 16, 1, 0, 0, + -15, -25, 1, 0, -2, -2, 1, 1, 30, 30, -30, -30, -23, -23, 22, 22, 16, 0, 0, 0, + 0, 8, 0, 0, -2, -2, 1, 1, 15, 15, -15, -15, 15, 15, -15, -15, 8, 0, 0, 0, }; const int8_t scrh[] PROGMEM = { -6, 0, 0, 1, @@ -1282,20 +1334,21 @@ const int8_t snf[] PROGMEM = { }; const int8_t stand[] PROGMEM = { -6, 0, 0, 1, - 3, 4, 1, + 0, 0, 1, 0, -20, -60, 0, -5, -5, 20, 20, 30, 30, -90, -90, 60, 60, 45, 45, 16, 0, 0, 0, - 0, -10, 0, 0, -5, -5, 20, 20, 30, 30, -68, -68, 60, 60, -40, -40, 16, 0, 0, 0, - 20, -20, -20, 0, -5, -5, 20, 20, 68, 73, 6, 6, 60, 56, -70, -70, 8, 0, 0, 0, - 20, -20, -20, 0, -5, -5, 20, 20, -28, 78, 6, 6, 60, 56, -70, -70, 12, 2, 0, 0, - -20, -40, -7, 0, -5, -5, 20, 20, 50, -70, 6, 6, 40, 60, -70, -70, 32, 0, 0, 0, + 0, -10, 0, 0, -5, -5, 20, 20, 59, 59, -62, -62, 50, 50, -53, -53, 16, 0, 0, 0, + 0, -20, 0, 0, -5, -5, 20, 20, 68, 68, -62, -62, 56, 56, -16, -16, 32, 0, 0, 0, + 0, -20, 0, 0, -5, -5, 20, 20, 68, 68, -19, -19, 56, 56, -16, -16, 12, 2, 0, 0, + 0, -47, 0, 0, -5, -5, 20, 20, 87, 87, 31, 31, 80, 80, -50, -50, 8,80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, }; const int8_t tbl[] PROGMEM = { --3, 0, 0, 1, +-4, 0, 0, 1, 0, 1, 2, - -33, -38, 40, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, - 62, 38, -46, 0, 0, 0, 0, 0, 48, 48, -48, -48, -6, -6, 6, 6, 8, 0, 0, 0, - 0, -75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, -90, -90, 64,20, 0, 0, + 33, -38, -40, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, + -62, 38, 46, 0, 0, 0, 0, 0, 48, 48, -48, -48, -6, -6, 6, 6, 8, 0, 0, 0, + 0, -50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, -90, -90, 64,60, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, -30, -30, 30, 30, -30, -30, 8, 0, 0, 0, }; const int8_t ts[] PROGMEM = { -2, 0, 0, 1, @@ -1324,15 +1377,15 @@ const int8_t wsf[] PROGMEM = { 64, -39, -60, 0, -5, -5, 20, 20, 28, 30, -63, -63, 56, 82, 45, 45, 8, 8, 0, 0, 10, -20, -60, 0, -5, -5, 20, 20, 30, 30, -90, -90, 60, 60, 45, 45, 8, 0, 0, 0, }; - const char* skillNameWithType[]={"bdI","bkI","bkFI","bkLI","crFI","crLI","trFI","trLI","vtFI","vtLI","wkFI","wkLI","balanceI","buttUpI","calibI","droppedI","liftedI","luI","restI","sitI","strI","upI","zeroN","angI","bxI","chrI","ckI","cmhI","dgI","fivI","gdbI","hdsI","hgI","hiI","hskI","huI","kcI","knockI","ndI","pdI","peeI","puI","rcI","scrhI","snfI","standI","tblI","tsI","whI","wsfI",}; + const char* skillNameWithType[]={"bdI","bkI","bkFI","bkLI","crFI","crLI","trFI","trLI","vtFI","vtLI","wkFI","wkLI","balanceI","buttUpI","calibI","droppedI","liftedI","luI","restI","sitI","strI","upI","zeroN","angI","bxI","cachI","chrI","ckI","cmhI","dgI","fivI","gdbI","hdsI","headTossI","hgI","hiI","hskI","huI","kcI","knockI","luckyI","ndI","pdI","peeI","puI","rcI","scrhI","snfI","standI","tblI","tsI","whI","wsfI",}; #if !defined(MAIN_SKETCH) || !defined(I2C_EEPROM) //if it's not the main sketch to save data or there's no external EEPROM, //the list should always contain all information. - const int8_t* progmemPointer[] = {bd, bk, bkF, bkL, crF, crL, trF, trL, vtF, vtL, wkF, wkL, balance, buttUp, calib, dropped, lifted, lu, rest, sit, str, up, zero, ang, bx, chr, ck, cmh, dg, fiv, gdb, hds, hg, hi, hsk, hu, kc, knock, nd, pd, pee, pu, rc, scrh, snf, stand, tbl, ts, wh, wsf, }; + const int8_t* progmemPointer[] = {bd, bk, bkF, bkL, crF, crL, trF, trL, vtF, vtL, wkF, wkL, balance, buttUp, calib, dropped, lifted, lu, rest, sit, str, up, zero, ang, bx, cach, chr, ck, cmh, dg, fiv, gdb, hds, headToss, hg, hi, hsk, hu, kc, knock, lucky, nd, pd, pee, pu, rc, scrh, snf, stand, tbl, ts, wh, wsf, }; #else //only need to know the pointers to newbilities, because the intuitions have been saved onto external EEPROM, //while the newbilities on progmem are assigned to new addresses const int8_t* progmemPointer[] = {zero, }; #endif -//the total byte of instincts is 11757 +//the total byte of instincts is 12598 //the maximal array size is 893 bytes of bkL. //Make sure to leave enough memory for SRAM to work properly. Any single skill should be smaller than 400 bytes for safety. diff --git a/src/OpenCat.h b/src/OpenCat.h index d8a5fe3..9da2a88 100644 --- a/src/OpenCat.h +++ b/src/OpenCat.h @@ -76,13 +76,13 @@ #else #define BOARD "B" #endif -#define DATE "240923" // YYMMDD +#define DATE "241009" // YYMMDD String SoftwareVersion = ""; #define BIRTHMARK '@' // Send '!' token to reset the birthmark in the EEPROM so that the robot will know to restart and reset -#define BT_BLE // toggle Bluetooth Low Energy (BLE) -#define BT_SSP // toggle Bluetooth Secure Simple Pairing (BT_SSP) +#define BT_BLE // toggle Bluetooth Low Energy (BLE) +#define BT_SSP // toggle Bluetooth Secure Simple Pairing (BT_SSP) #define GYRO_PIN // toggle the Inertia Measurement Unit (IMU), i.e. the gyroscope #define SERVO_FREQ 240 @@ -106,8 +106,14 @@ String SoftwareVersion = ""; #define HEAD #define TAIL // the robot arm's clip is assigned to the tail joint #define LL_LEG + +#ifndef MINI #define REGULAR P1S #define KNEE P1S +#else +#define REGULAR P50 +#define KNEE P50 +#endif #ifdef ROBOT_ARM #include "InstinctBittleESP_arm.h" #else @@ -242,7 +248,8 @@ double rate = 1.0 * MAX_READING / BASE_RANGE; enum ServoModel_t { G41 = 0, P1S, - P2K + P2K, + P50 }; ServoModel_t servoModelList[] = { @@ -287,10 +294,11 @@ bool newBoard = false; #define T_NAME 'n' // customize the Bluetooth device's broadcast name. e.g. nMyDog will name the device as "MyDog" \ // it takes effect the next time the board boosup. it won't interrupt the current connecton. #define T_MELODY 'o' +#define T_CPG 'r' //Oscillator for Central Pattern Generator #define T_PAUSE 'p' // pause #define T_POWER 'P' // power, print the voltage #define T_TASK_QUEUE 'q' -#define T_ROBOT_ARM 'r' +#define T_ROBOT_ARM 'R' #define T_SAVE 's' #define T_TILT 't' #define T_TEMP 'T' // call the last skill data received from the serial port @@ -415,10 +423,18 @@ int8_t middleShift[] = { 0, 15, 0, 0, 10, 10, -10, -10, -30, -30, 30, 30 }; #elif defined BITTLE +#ifndef MINI int8_t middleShift[] = { 0, -90, 0, 0, -45, -45, -45, -45, 55, 55, -55, -55, -55, -55, -55, -55 }; +#else +int8_t middleShift[] = { 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + -15, -15, -15, -15 }; +#endif + #else // CUB int8_t middleShift[] = { 0, 15, 0, 0, @@ -556,10 +572,11 @@ int balanceSlope[2] = { 1, 1 }; // roll, pitch #ifdef IR_PIN #include "infrared.h" #endif +#include "io.h" #include "espServo.h" #include "motion.h" #include "randomMind.h" -#include "io.h" + #include "skill.h" #include "moduleManager.h" @@ -640,7 +657,6 @@ void initRobot() { QA(); tQueue = new TaskQueue(); - loadBySkillName("rest"); // must have to avoid memory crash. need to check why. // allCalibratedPWM(currentAng); alone will lead to crash delay(500); @@ -651,6 +667,7 @@ void initRobot() { if (!moduleDemoQ) tQueue->addTask((exceptions) ? T_CALIBRATE : T_REST, ""); #endif + PTL("Ready!"); beep(24, 50); idleTimer = millis(); } diff --git a/src/configConstants.h b/src/configConstants.h index 6ef7be4..de8791a 100644 --- a/src/configConstants.h +++ b/src/configConstants.h @@ -323,8 +323,8 @@ void resetIfVersionOlderThan(String versionStr) { long currentDate = atol(versionStr.c_str() + versionStr.length() - 6); if (savedDate < currentDate) { delay(1000); - PTH("\n* The previous version on the board is", savedVersionDate); - PTH("* The robot will reboot and upgrade to", versionStr); + PTTL("\n* The previous version on the board is ", savedVersionDate); + PTTL("* The robot will reboot and upgrade to ", versionStr); resetAsNewBoard('X'); } } diff --git a/src/espServo.h b/src/espServo.h index 19dd97d..88d225f 100644 --- a/src/espServo.h +++ b/src/espServo.h @@ -4,6 +4,7 @@ ServoModel servoG41(180, SERVO_FREQ, 500, 2500); ServoModel servoP1S(270, SERVO_FREQ, 500, 2500); // 1s/4 = 250ms 250ms/2500us=100Hz ServoModel servoP1L(270, SERVO_FREQ, 500, 2500); +ServoModel servoP50(120, SERVO_FREQ, 900, 2100); #ifdef BiBoard2 #include "pcaServo.h" #endif @@ -47,6 +48,9 @@ void attachAllESPServos() { case P2K: modelObj[s] = &servoP1L; break; + case P50: + modelObj[s] = &servoP50; + break; } servo[s].attach(PWM_pin[s], modelObj[s]); zeroPosition[joint] = modelObj[s]->getAngleRange() / 2 + float(middleShift[joint]) * rotationDirection[joint]; diff --git a/src/moduleManager.h b/src/moduleManager.h index 61cc9dc..a841ba2 100644 --- a/src/moduleManager.h +++ b/src/moduleManager.h @@ -343,7 +343,7 @@ void read_serial() { return; } newCmd[cmdLen++] = serialPort->read(); - PTL(int8_t(newCmd[cmdLen])); + // PTHL(newCmd[cmdLen - 1], int8_t(newCmd[cmdLen - 1])); } while (serialPort->available()); lastSerialTime = millis(); } diff --git a/src/qualityAssurance.h b/src/qualityAssurance.h index 937b29e..348e348 100644 --- a/src/qualityAssurance.h +++ b/src/qualityAssurance.h @@ -11,6 +11,10 @@ float sDev(float *a, float m, int n) { sum += (a[i] - m) * (a[i] - m); return sqrt(sum / n); } +byte DcDcGood[] = { 12, 19, + 4, 4 }; +byte DcDcBad[] = { 19, 16, 12, + 16, 16, 16 }; byte mpuGood[] = { 12, 16, 19, 4, 4, 4 }; byte mpuBad[] = { 19, 17, 16, 14, 12, @@ -81,7 +85,6 @@ bool testIR() { else return false; } - if (millis() - timer > 11 && irrecv.decode(&results)) { timer = millis(); current = IRkey(); @@ -108,6 +111,27 @@ bool testIR() { } } #endif +void testDcDc() { + const int adcPin = 34; + const float R1 = 30000.0; + const float R2 = 51000.0; + const int adcMaxValue = 4095; + const float vRef = 3.3; + while (1) { + int adcValue = analogRead(adcPin); + float voltageMeasured = (adcValue / float(adcMaxValue)) * vRef; + float voltageInput = voltageMeasured * (R1 + R2) / R2; + if (voltageInput < 5.2) { + PTL("Wrong DcDc output!"); + playMelody(DcDcBad, sizeof(DcDcBad) / 2); + delay(500); + } else { + PTL("\tDcDc Pass!"); + playMelody(DcDcGood, sizeof(DcDcGood) / 2); + break; + } + } +} void QA() { if (newBoard) { #ifdef I2C_EEPROM_ADDRESS @@ -122,6 +146,9 @@ void QA() { if (choice == 'Y' || choice == 'y') #endif { +#ifdef VOLTAGE + testDcDc(); +#endif #ifdef GYRO_PIN testMPU6050(); #endif