summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/rocklife.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/apps/plugins/rocklife.c b/apps/plugins/rocklife.c
index 2905ab53e2..d67fc470a9 100644
--- a/apps/plugins/rocklife.c
+++ b/apps/plugins/rocklife.c
@@ -136,10 +136,12 @@ static bool load_cellfile(const char *file, char *pgrid){
136 136
137 char c; 137 char c;
138 int nc, x, y, xmid, ymid; 138 int nc, x, y, xmid, ymid;
139 bool comment;
139 x=0; 140 x=0;
140 y=0; 141 y=0;
141 xmid = (GRID_W>>1) - 2; 142 xmid = (GRID_W>>1) - 2;
142 ymid = (GRID_H>>1) - 2; 143 ymid = (GRID_H>>1) - 2;
144 comment = false;
143 145
144 while (true) { 146 while (true) {
145 nc = read(fd, &c, 1); 147 nc = read(fd, &c, 1);
@@ -147,17 +149,23 @@ static bool load_cellfile(const char *file, char *pgrid){
147 break; 149 break;
148 150
149 switch(c) { 151 switch(c) {
152 case '!':
153 comment = true;
150 case '.': 154 case '.':
151 x++; 155 if (!comment)
156 x++;
152 break; 157 break;
153 case 'O': 158 case 'O':
154 if (is_valid_cell(xmid + x, ymid + y)) 159 if (!comment) {
155 set_cell(xmid + x, ymid + y, pgrid); 160 if (is_valid_cell(xmid + x, ymid + y))
156 x++; 161 set_cell(xmid + x, ymid + y, pgrid);
162 x++;
163 }
157 break; 164 break;
158 case '\n': 165 case '\n':
159 y++; 166 y++;
160 x=0; 167 x=0;
168 comment = false;
161 break; 169 break;
162 default: 170 default:
163 break; 171 break;