@@ -1094,8 +1094,18 @@ void Character::load( const JsonObject &data )
1094
1094
recalc_sight_limits ();
1095
1095
calc_encumbrance ();
1096
1096
1097
- optional ( data, false , " power_level" , power_level, 0_kJ );
1098
- optional ( data, false , " max_power_level_modifier" , max_power_level_modifier, units::energy::min () );
1097
+ // migration code, added in early 0.J
1098
+ if ( data.has_int ( " power_level" ) ) {
1099
+ power_level = units::from_kilojoule ( data.get_int64 ( " power_level" ) );
1100
+ } else {
1101
+ data.read ( " power_level" , power_level );
1102
+ }
1103
+ // migration code, added in early 0.J
1104
+ if ( data.has_int ( " max_power_level_modifier" ) ) {
1105
+ max_power_level_modifier = units::from_kilojoule ( data.get_int64 ( " max_power_level_modifier" ) );
1106
+ } else {
1107
+ data.read ( " max_power_level_modifier" , max_power_level_modifier );
1108
+ }
1099
1109
1100
1110
// Bionic power should not be negative!
1101
1111
if ( power_level < 0_mJ ) {
@@ -1460,14 +1470,8 @@ void Character::store( JsonOut &json ) const
1460
1470
json.member ( " proficiencies" , _proficiencies );
1461
1471
1462
1472
// npc; unimplemented
1463
- if ( power_level < 1_J ) {
1464
- json.member ( " power_level" , std::to_string ( units::to_millijoule ( power_level ) ) + " mJ" );
1465
- } else if ( power_level < 1_kJ ) {
1466
- json.member ( " power_level" , std::to_string ( units::to_joule ( power_level ) ) + " J" );
1467
- } else {
1468
- json.member ( " power_level" , units::to_kilojoule ( power_level ) );
1469
- }
1470
- json.member ( " max_power_level_modifier" , units::to_kilojoule ( max_power_level_modifier ) );
1473
+ json.member ( " power_level" , power_level );
1474
+ json.member ( " max_power_level_modifier" , max_power_level_modifier );
1471
1475
1472
1476
if ( !overmap_time.empty () ) {
1473
1477
json.member ( " overmap_time" );
0 commit comments