void fault::load_fault( JsonObject &jo ) { fault f; f.id_ = fault_id( jo.get_string( "id" ) ); f.name_ = _( jo.get_string( "name" ) ); f.description_ = _( jo.get_string( "description" ) ); f.time_ = jo.get_int( "time" ); auto sk = jo.get_array( "skills" ); while( sk.has_more() ) { auto cur = sk.next_array(); f.skills_.emplace( skill_id( cur.get_string( 0 ) ), cur.size() >= 2 ? cur.get_int( 1 ) : 1 ); } if( jo.has_string( "requirements" ) ) { f.requirements_ = requirement_id( jo.get_string( "requirements" ) ); } else { auto req = jo.get_object( "requirements" ); const requirement_id req_id( std::string( "inline_fault_" ) + f.id_.str() ); requirement_data::load_requirement( req, req_id ); f.requirements_ = req_id; } if( faults_all.find( f.id_ ) != faults_all.end() ) { jo.throw_error( "parsed fault overwrites existing definition", "id" ); } else { faults_all[ f.id_ ] = f; } }
void fault::load_fault( JsonObject &jo ) { fault f; f.id_ = fault_id( jo.get_string( "id" ) ); f.name_ = _( jo.get_string( "name" ).c_str() ); f.description_ = _( jo.get_string( "description" ).c_str() ); auto sk = jo.get_array( "skills" ); while( sk.has_more() ) { auto cur = sk.next_array(); f.skills_.emplace( skill_id( cur.get_string( 0 ) ) , cur.size() >= 2 ? cur.get_int( 1 ) : 1 ); } auto req = jo.get_object( "requirements" ); f.requirements_.load( req ); if( faults_all.find( f.id_ ) != faults_all.end() ) { jo.throw_error( "parsed fault overwrites existing definition", "id" ); } else { faults_all[ f.id_ ] = f; DebugLog( D_INFO, DC_ALL ) << "Loaded fault: " << f.name_; } }