MCPcopy Create free account
hub / github.com/RSDKModding/RSDKv3-Decompilation / LoadTextFile

Function LoadTextFile

RSDKv3/Text.cpp:85–216  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

83 }
84}
85void 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 }

Callers 1

ProcessScriptFunction · 0.85

Calls 4

LoadFileFunction · 0.85
FileReadFunction · 0.85
ReachedEndOfFileFunction · 0.85
CloseFileFunction · 0.85

Tested by

no test coverage detected