Changeset 4b1449d in Readingame


Ignore:
Timestamp:
Apr 28, 2024, 5:22:47 PM (5 weeks ago)
Author:
PulkoMandy <pulkomandy@…>
Branches:
main
Children:
33ad731
Parents:
2bf6384
Message:

Basic implementation of percent-escape to print extra messages

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main.cpp

    r2bf6384 r4b1449d  
    589589                                        case '\\':
    590590                                                cursor += HandleEscape(message, cursor + 1);
     591                                                break;
     592                                        case '%':
     593                                                cursor += HandlePercentEscape(message, cursor + 1, decoded);
    591594                                                break;
    592595                                        case '[':
     
    624627                                        case '$':
    625628                                                // $ Plural mark (print an s if the counter is plural)
    626                                                 printf(COLOR "%c" NORMAL, message[cursor]);
     629                                                // TODO not implemented yet
     630                                                printf(COLOR "%c\n" NORMAL, message[cursor]);
    627631                                                cursor++;
    628632                                                break;
     
    729733
    730734                        return i + 1;
     735                }
     736
     737                int HandlePercentEscape(const std::string& message, int cursor, BString& decoded)
     738                {
     739                        if (message[cursor] == 'M') {
     740                                int value = message[cursor + 1] - '0';
     741                                PrettyPrint(gRooms[0].fMessages[value - 1], decoded);
     742                                return 3;
     743                        } else {
     744                                // TODO unknown escape sequence
     745                                fprintf(stderr, "ERROR: unknown percent escape sequence %c\n", message[cursor]);
     746                                return 2;
     747                        }
    731748                }
    732749
Note: See TracChangeset for help on using the changeset viewer.