1490 |
|
|
1491 |
void message(const string &msg, const Value &) { |
void message(const string &msg, const Value &) { |
1492 |
if (msg == "signal" || msg == "trigger") { |
if (msg == "signal" || msg == "trigger") { |
1493 |
grow(); |
switch (state) { |
1494 |
|
case IDLE: |
1495 |
|
case SHRINKED: |
1496 |
|
grow(); // if no stone on top -> grow |
1497 |
|
break; |
1498 |
|
|
1499 |
|
// if stone on top -> toggle state (has no effect until stone leaves) |
1500 |
|
case BOLDERED: |
1501 |
|
change_state(COVERED); |
1502 |
|
break; |
1503 |
|
case COVERED: |
1504 |
|
change_state(BOLDERED); |
1505 |
|
break; |
1506 |
|
} |
1507 |
} |
} |
1508 |
} |
} |
1509 |
|
|
1525 |
break; |
break; |
1526 |
} |
} |
1527 |
} |
} |
1528 |
|
else { // any other stone |
1529 |
|
change_state(BOLDERED); |
1530 |
|
} |
1531 |
} |
} |
1532 |
else { // stone disappeared |
else { // stone disappeared |
1533 |
switch (state) { |
switch (state) { |