24 #include <MD_Parola.h>
25 #include <MD_Parola_lib.h>
27 void MD_Parola::effectSlice(
bool bIn)
29 static int16_t nextColumn, animColumn;
37 PRINT_STATE(
"I SLICE");
39 if ((_charCols = getFirstChar()) == 0)
47 nextColumn = _limitLeft;
53 PRINT_STATE(
"I SLICE");
55 if ((_charCols = getNextChar()) == 0)
65 PRINT_STATE(
"I SLICE");
66 FSMPRINT(
" - Next ", nextColumn);
67 FSMPRINT(
", anim ", animColumn);
69 if (_cBuf[_countCols] == 0)
71 animColumn = nextColumn;
76 if (animColumn != nextColumn) _D.setColumn(animColumn, 0);
78 _D.setColumn(animColumn, _cBuf[_countCols]);
82 if (animColumn == nextColumn)
88 if (_countCols == _charCols) _fsmState = GET_NEXT_CHAR;
100 PRINT_STATE(
"O SLICE");
101 animColumn = nextColumn = _limitLeft;
102 _fsmState = PUT_CHAR;
108 PRINT_STATE(
"O SLICE");
109 FSMPRINT(
" - Next ", nextColumn);
110 FSMPRINT(
", anim ", animColumn);
112 if (_D.getColumn(animColumn) == 0)
114 animColumn = _D.getColumnCount();
119 _D.setColumn(animColumn+1, _D.getColumn(animColumn));
120 _D.setColumn(animColumn, 0);
125 if (animColumn == _D.getColumnCount()) animColumn = nextColumn--;
127 if (nextColumn < _limitRight) _fsmState = END;