| 341 | 
  | 
      | 
| 342 | 
  | 
    nTokens = tokenizer.countTokens();  | 
| 343 | 
  | 
      | 
| 344 | 
< | 
    if (nTokens < 2) {  | 
| 344 | 
> | 
    if (nTokens < 2) {   | 
| 345 | 
  | 
      sprintf(painCave.errMsg,  | 
| 346 | 
  | 
              "DumpReader Error: Not enough Tokens.\n%s\n", line.c_str());  | 
| 347 | 
  | 
      painCave.isFatal = 1;  | 
| 357 | 
  | 
    } | 
| 358 | 
  | 
    std::string type = tokenizer.nextToken();  | 
| 359 | 
  | 
    int size = type.size(); | 
| 360 | 
+ | 
 | 
| 361 | 
+ | 
    size_t found; | 
| 362 | 
+ | 
     | 
| 363 | 
+ | 
    if (needPos_) { | 
| 364 | 
+ | 
      found = type.find("p");       | 
| 365 | 
+ | 
      if (found == std::string::npos) { | 
| 366 | 
+ | 
        sprintf(painCave.errMsg,  | 
| 367 | 
+ | 
                "DumpReader Error: StuntDouble %d has no Position\n" | 
| 368 | 
+ | 
                "\tField (\"p\") specified.\n%s\n", index,  | 
| 369 | 
+ | 
                line.c_str());   | 
| 370 | 
+ | 
        painCave.isFatal = 1;  | 
| 371 | 
+ | 
        simError();  | 
| 372 | 
+ | 
      } | 
| 373 | 
+ | 
    } | 
| 374 | 
+ | 
     | 
| 375 | 
+ | 
    if (integrableObject->isDirectional()) { | 
| 376 | 
+ | 
      if (needQuaternion_) { | 
| 377 | 
+ | 
        found = type.find("q");       | 
| 378 | 
+ | 
        if (found == std::string::npos) { | 
| 379 | 
+ | 
          sprintf(painCave.errMsg,  | 
| 380 | 
+ | 
                  "DumpReader Error: Directional StuntDouble %d has no\n" | 
| 381 | 
+ | 
                  "\tQuaternion Field (\"q\") specified.\n%s\n", index,  | 
| 382 | 
+ | 
                  line.c_str());   | 
| 383 | 
+ | 
          painCave.isFatal = 1;  | 
| 384 | 
+ | 
          simError();  | 
| 385 | 
+ | 
        } | 
| 386 | 
+ | 
      }       | 
| 387 | 
+ | 
    } | 
| 388 | 
  | 
 | 
| 389 | 
  | 
    for(int i = 0; i < size; ++i) { | 
| 390 | 
  | 
      switch(type[i]) { |