MCPcopy Create free account
hub / github.com/clementgallet/libTAS / readFrame

Method readFrame

src/program/movie/InputSerialization.cpp:181–262  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

179}
180
181int InputSerialization::readFrame(const std::string& line, AllInputs& inputs)
182{
183 inputs.clear();
184 int ret = 0;
185
186 std::istringstream input_string(line);
187 char d;
188 input_string >> d;
189 if (d != '|')
190 return -1;
191
192 d = input_string.peek();
193 while (d != std::char_traits<char>::eof()) {
194 switch (d) {
195 case 'E':
196 input_string >> d;
197 ret = readEventFrame(input_string, inputs);
198 break;
199 case 'K':
200 input_string >> d;
201 ret = readKeyboardFrame(input_string, inputs);
202 break;
203 case 'M':
204 input_string >> d;
205 ret = readMouseFrame(input_string, inputs);
206 break;
207 case 'C':
208 input_string >> d;
209 input_string >> d;
210 ret = readControllerFrame(input_string, inputs, d - '1');
211 break;
212 case 'F':
213 input_string >> d;
214 ret = readFlagFrame(input_string, inputs);
215 break;
216 case 'T':
217 input_string >> d;
218 ret = readFramerateFrame(input_string, inputs);
219 break;
220 case 'D':
221 input_string >> d;
222 ret = readRealtimeFrame(input_string, inputs);
223 break;
224 default:
225 /* Following code is for old input format (1.3.5 and earlier) */
226 ret = readKeyboardFrame(input_string, inputs);
227 if (ret < 0)
228 return ret;
229
230 if (context->config.sc.mouse_support) {
231 ret = readMouseFrame(input_string, inputs);
232 if (ret < 0)
233 return ret;
234 }
235
236 for (int joy=0; joy<context->config.sc.nb_controllers; joy++) {
237 ret = readControllerFrame(input_string, inputs, joy);
238 if (ret < 0)

Callers

nothing calls this directly

Calls 2

processEventsMethod · 0.80
clearMethod · 0.45

Tested by

no test coverage detected