Changeset 720 for cpp/frams/model


Ignore:
Timestamp:
01/14/18 11:24:22 (7 years ago)
Author:
Maciej Komosinski
Message:

Param::save2() renamed to saveSingleLine(); unified Param::load() so that it gets a single-line/multi-line format selector

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/model/model.cpp

    r660 r720  
    407407        SString mod_props;
    408408        modelparam.select(this);
    409         modelparam.save2(mod_props, handle_defaults ? &defaultmodel : NULL, true, !handle_defaults);
     409        modelparam.saveSingleLine(mod_props, handle_defaults ? &defaultmodel : NULL, true, !handle_defaults);
    410410        if (mod_props.len() > 1) //are there any non-default values? ("\n" is empty)
    411411        {
     
    419419                len = gen.len();
    420420                gen += "p:";
    421                 partparam.save2(gen, handle_defaults ? &defaultpart : NULL, true, !handle_defaults);
     421                partparam.saveSingleLine(gen, handle_defaults ? &defaultpart : NULL, true, !handle_defaults);
    422422                if (map)
    423423                        map->add(len, gen.len() - 1, partToMap(i));
     
    429429                jointparam.setParamTab(j->usedelta ? f0_joint_paramtab : f0_nodeltajoint_paramtab);
    430430                gen += "j:";
    431                 jointparam.save2(gen, handle_defaults ? &defaultjoint : NULL, true, !handle_defaults);
     431                jointparam.saveSingleLine(gen, handle_defaults ? &defaultjoint : NULL, true, !handle_defaults);
    432432                if (map)
    433433                        map->add(len, gen.len() - 1, jointToMap(i));
     
    438438                len = gen.len();
    439439                gen += "n:";
    440                 neuroparam.save2(gen, handle_defaults ? &defaultneuro : NULL, true, !handle_defaults);
     440                neuroparam.saveSingleLine(gen, handle_defaults ? &defaultneuro : NULL, true, !handle_defaults);
    441441                if (map)
    442442                        map->add(len, gen.len() - 1, neuroToMap(i));
     
    469469                        len = gen.len();
    470470                        gen += "c:";
    471                         connparam.save2(gen, handle_defaults ? &defaultconn : NULL, true, !handle_defaults);
     471                        connparam.saveSingleLine(gen, handle_defaults ? &defaultconn : NULL, true, !handle_defaults);
    472472                        if (map)
    473473                                map->add(len, gen.len() - 1, neuroToMap(n->refno));
     
    582582{
    583583        error_message = SString::empty();
    584         int pos = 0; const char*t = line.c_str();
    585         for (; *t; t++, pos++)
     584        const char*t = line.c_str();
     585        ParamInterface::LoadOptions opts;
     586        for (; *t; t++, opts.offset++)
    586587                if (!strchr(" \r\t", *t)) break;
    587588        if (*t == '#') return 0;
     
    592593                Part *p = new Part();
    593594                partparam.select(p);
    594                 pos += 2;
    595                 if (partparam.load2(line, pos) & ParamInterface::LOAD2_PARSE_FAILED) { delete p; error_message = "Invalid 'p:'"; return -1; }
     595                opts.offset += 2;
     596                partparam.load(ParamInterface::FormatSingleLine, line, &opts);
     597                if (opts.parse_failed) { delete p; error_message = "Invalid 'p:'"; return -1; }
    596598                p->o.rotate(p->rot);
    597599                parts += p;
     
    604606                Param modelparam(f0_model_paramtab);
    605607                modelparam.select(this);
    606                 pos += 2;
    607                 if (modelparam.load2(line, pos) & ParamInterface::LOAD2_PARSE_FAILED) { error_message = "Invalid 'm:'"; return -1; }
     608                opts.offset += 2;
     609                modelparam.load(ParamInterface::FormatSingleLine, line, &opts);
     610                if (opts.parse_failed) { error_message = "Invalid 'm:'"; return -1; }
    608611                return 0;
    609612        }
     
    613616                Joint *j = new Joint();
    614617                jointparam.select(j);
    615                 pos += 2;
     618                opts.offset += 2;
    616619                j->owner = this;
    617                 if (jointparam.load2(line, pos) & ParamInterface::LOAD2_PARSE_FAILED) { delete j; error_message = "Invalid 'j:'"; return -1; }
     620                jointparam.load(ParamInterface::FormatSingleLine, line, &opts);
     621                if (opts.parse_failed) { delete j; error_message = "Invalid 'j:'"; return -1; }
    618622                bool p1_ok = false, p2_ok = false;
    619623                if ((p1_ok = ((j->p1_refno >= 0) && (j->p1_refno < getPartCount()))) &&
     
    642646                Neuro *nu = new Neuro();
    643647                neuroparam.select(nu);
    644                 pos += 2;
    645                 if (neuroparam.load2(line, pos) & ParamInterface::LOAD2_PARSE_FAILED) { delete nu; error_message = "Invalid 'n:'"; return -1; }
     648                opts.offset += 2;
     649                neuroparam.load(ParamInterface::FormatSingleLine, line, &opts);
     650                if (opts.parse_failed) { delete nu; error_message = "Invalid 'n:'"; return -1; }
    646651#ifdef MODEL_V1_COMPATIBLE
    647652                if (nu->neuro_refno>=0) // parent specified...
     
    718723                NeuroConn c;
    719724                ncparam.select(&c);
    720                 pos += 2;
    721                 if (ncparam.load2(line, pos) & ParamInterface::LOAD2_PARSE_FAILED) { error_message = "Invalid 'c:'"; return -1; }
     725                opts.offset += 2;
     726                ncparam.load(ParamInterface::FormatSingleLine, line, &opts);
     727                if (opts.parse_failed) { error_message = "Invalid 'c:'"; return -1; }
    722728                bool n1_ok = false, n2_ok = false;
    723729                if ((n1_ok = ((c.n1_refno >= 0) && (c.n1_refno < getNeuroCount())))
     
    741747                Neuro *nu=new Neuro();
    742748                neuroitemparam.select(nu);
    743                 pos+=3;
    744                 if (neuroitemparam.load2(line,pos) & ParamInterface::LOAD2_PARSE_FAILED) {delete nu; return -1;}
     749                opts.offset+=3;
     750                neuroitemparam.loadSingleLine(line,opts);
     751                if (opts.parse_failed) {delete nu; return -1;}
    745752                // illegal parent?
    746753                if ((nu->neuro_refno<0)||(nu->neuro_refno>=old_getNeuroCount()))
Note: See TracChangeset for help on using the changeset viewer.