| 467 | } |
| 468 | |
| 469 | unsigned int BMFontConfiguration::parseCharacterDefinition(const char* line) |
| 470 | { |
| 471 | unsigned int charID = 0; |
| 472 | |
| 473 | ////////////////////////////////////////////////////////////////////////// |
| 474 | // line to parse: |
| 475 | // char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=44 xadvance=14 page=0 chnl=0 |
| 476 | ////////////////////////////////////////////////////////////////////////// |
| 477 | |
| 478 | // Character ID |
| 479 | auto tmp = strstr(line, "id=") + 3; |
| 480 | sscanf(tmp, "%u", &charID); |
| 481 | |
| 482 | BMFontDef& characterDefinition = _fontDefDictionary[charID]; |
| 483 | characterDefinition.charID = charID; |
| 484 | |
| 485 | // Character x |
| 486 | tmp = strstr(tmp, "x=") + 2; |
| 487 | sscanf(tmp, "%f", &characterDefinition.rect.origin.x); |
| 488 | // Character y |
| 489 | tmp = strstr(tmp, "y=") + 2; |
| 490 | sscanf(tmp, "%f", &characterDefinition.rect.origin.y); |
| 491 | // Character width |
| 492 | tmp = strstr(tmp, "width=") + 6; |
| 493 | sscanf(tmp, "%f", &characterDefinition.rect.size.width); |
| 494 | // Character height |
| 495 | tmp = strstr(tmp, "height=") + 7; |
| 496 | sscanf(tmp, "%f", &characterDefinition.rect.size.height); |
| 497 | // Character xoffset |
| 498 | tmp = strstr(tmp, "xoffset=") + 8; |
| 499 | sscanf(tmp, "%hd", &characterDefinition.xOffset); |
| 500 | // Character yoffset |
| 501 | tmp = strstr(tmp, "yoffset=") + 8; |
| 502 | sscanf(tmp, "%hd", &characterDefinition.yOffset); |
| 503 | // Character xadvance |
| 504 | tmp = strstr(tmp, "xadvance=") + 9; |
| 505 | sscanf(tmp, "%hd", &characterDefinition.xAdvance); |
| 506 | |
| 507 | return charID; |
| 508 | } |
| 509 | |
| 510 | void BMFontConfiguration::parseKerningEntry(const char* line) |
| 511 | { |