| 83 | } |
| 84 | } |
| 85 | void LoadTextFile(TextMenu *menu, const char *filePath, byte mapCode) |
| 86 | { |
| 87 | bool finished = false; |
| 88 | FileInfo info; |
| 89 | byte fileBuffer = 0; |
| 90 | if (LoadFile(filePath, &info)) { |
| 91 | menu->textDataPos = 0; |
| 92 | menu->rowCount = 0; |
| 93 | menu->entryStart[menu->rowCount] = menu->textDataPos; |
| 94 | menu->entrySize[menu->rowCount] = 0; |
| 95 | |
| 96 | FileRead(&fileBuffer, 1); |
| 97 | if (fileBuffer == 0xFF) { |
| 98 | FileRead(&fileBuffer, 1); |
| 99 | while (!finished) { |
| 100 | ushort character = 0; |
| 101 | FileRead(&fileBuffer, 1); |
| 102 | character = fileBuffer; |
| 103 | FileRead(&fileBuffer, 1); |
| 104 | character |= fileBuffer << 8; |
| 105 | |
| 106 | if (character != '\n') { |
| 107 | if (character == '\r') { |
| 108 | menu->rowCount += 1; |
| 109 | if (menu->rowCount > 511) { |
| 110 | finished = true; |
| 111 | } |
| 112 | else { |
| 113 | menu->entryStart[menu->rowCount] = menu->textDataPos; |
| 114 | menu->entrySize[menu->rowCount] = 0; |
| 115 | } |
| 116 | } |
| 117 | else { |
| 118 | if (mapCode) { |
| 119 | int i = 0; |
| 120 | while (i < 1024) { |
| 121 | if (fontCharacterList[i].id == character) { |
| 122 | character = i; |
| 123 | i = 1025; |
| 124 | } |
| 125 | else { |
| 126 | ++i; |
| 127 | } |
| 128 | } |
| 129 | if (i == 1024) { |
| 130 | character = 0; |
| 131 | } |
| 132 | } |
| 133 | menu->textData[menu->textDataPos++] = character; |
| 134 | menu->entrySize[menu->rowCount]++; |
| 135 | } |
| 136 | } |
| 137 | if (!finished) { |
| 138 | finished = ReachedEndOfFile(); |
| 139 | if (menu->textDataPos >= TEXTDATA_COUNT) |
| 140 | finished = true; |
| 141 | } |
| 142 | } |
no test coverage detected