snake6502/util/rlevel.cpp
giomba c8199e7144 updated sid tune
new sid tune is bigger than 4k, so charset had to be moved
now (part of) first half of the charset actually is used by the sid
and ignored by the VIC; chars had to be redefined
2021-04-12 23:28:34 +02:00

57 lines
1.2 KiB
C++

#include <iostream>
using namespace std;
const int MAXLEN = 64;
void flush(char last, int count) {
char tile, color;
switch(last) {
case 'x':
tile = (char)0xe3; break;
case 'f':
tile = (char)0xe2; break;
default:
tile = (char)0xe0; break;
}
cout << tile << (char)count;
}
int main(int argc, char** argv) {
char line[MAXLEN];
char c;
while (true) {
cin.getline(line, MAXLEN);
if (line[0] == 'Z') break;
cout << line << '\0'; /* the title */
int count = 0;
char last = '\0';
char current = '\0';
while(true) {
cin.getline(line, MAXLEN);
if (line[0] == 'z') {
flush(current, count);
cout << '\0' << '\0';
break;
}
for (int j = 0; j < 40; ++j) {
current = line[j];
if (last == 0) last = current;
if (current != last || count == 255) {
flush(last, count);
last = current;
count = 1;
} else {
++count;
}
}
}
}
cout << '\0';
}