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

Function LoadTextFile

RSDKv4/Text.cpp:92–241  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers 1

ProcessScriptFunction · 0.85

Calls 3

FileReadFunction · 0.85
ReachedEndOfFileFunction · 0.85
CloseFileFunction · 0.85

Tested by

no test coverage detected