| 521 | extern cvar_t *cvar_vars; // I know this is really unpleasant, but I need access for scanning/writing latched cvars during save games |
| 522 | |
| 523 | void SG_WriteCvars(void) |
| 524 | { |
| 525 | cvar_t *var; |
| 526 | int iCount = 0; |
| 527 | |
| 528 | ojk::SavedGameHelper saved_game( |
| 529 | &ojk::SavedGame::get_instance()); |
| 530 | |
| 531 | // count the cvars... |
| 532 | // |
| 533 | for (var = cvar_vars; var; var = var->next) |
| 534 | { |
| 535 | #ifdef JK2_MODE |
| 536 | if (!(var->flags & (CVAR_SAVEGAME|CVAR_USERINFO))) |
| 537 | #else |
| 538 | if (!(var->flags & CVAR_SAVEGAME)) |
| 539 | #endif |
| 540 | { |
| 541 | continue; |
| 542 | } |
| 543 | iCount++; |
| 544 | } |
| 545 | |
| 546 | // store count... |
| 547 | // |
| 548 | saved_game.write_chunk<int32_t>( |
| 549 | INT_ID('C', 'V', 'C', 'N'), |
| 550 | iCount); |
| 551 | |
| 552 | // write 'em... |
| 553 | // |
| 554 | for (var = cvar_vars; var; var = var->next) |
| 555 | { |
| 556 | #ifdef JK2_MODE |
| 557 | if (!(var->flags & (CVAR_SAVEGAME|CVAR_USERINFO))) |
| 558 | #else |
| 559 | if (!(var->flags & CVAR_SAVEGAME)) |
| 560 | #endif |
| 561 | { |
| 562 | continue; |
| 563 | } |
| 564 | |
| 565 | saved_game.write_chunk( |
| 566 | INT_ID('C', 'V', 'A', 'R'), |
| 567 | var->name, |
| 568 | static_cast<int>(strlen(var->name) + 1)); |
| 569 | |
| 570 | saved_game.write_chunk( |
| 571 | INT_ID('V', 'A', 'L', 'U'), |
| 572 | var->string, |
| 573 | static_cast<int>(strlen(var->string) + 1)); |
| 574 | } |
| 575 | } |
| 576 | |
| 577 | void SG_ReadCvars() |
| 578 | { |
no test coverage detected