Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -r f0138e397b1a default_gridviews.dtg
- --- a/default_gridviews.dtg Wed Apr 18 18:15:20 2012 +0200
- +++ b/default_gridviews.dtg Sat May 19 05:57:06 2012 -0700
- @@ -772,7 +772,7 @@
- 3\sets\12\columns\6\width=4
- 3\sets\13\name=Hauling
- 3\sets\13\bg_color=0xc1bfabff
- -3\sets\13\columns\size=10
- +3\sets\13\columns\size=11
- 3\sets\13\columns\1\name=SPACER
- 3\sets\13\columns\1\type=SPACER
- 3\sets\13\columns\1\width=4
- @@ -808,9 +808,13 @@
- 3\sets\13\columns\9\type=LABOR
- 3\sets\13\columns\9\skill_id=-1
- 3\sets\13\columns\9\labor_id=8
- -3\sets\13\columns\10\name=SPACER 1
- -3\sets\13\columns\10\type=SPACER
- -3\sets\13\columns\10\width=4
- +3\sets\13\columns\10\name=Haul/Push Vehicles
- +3\sets\13\columns\10\type=LABOR
- +3\sets\13\columns\10\skill_id=-1
- +3\sets\13\columns\10\labor_id=73
- +3\sets\13\columns\11\name=SPACER 1
- +3\sets\13\columns\11\type=SPACER
- +3\sets\13\columns\11\width=4
- 3\sets\14\name=Other Jobs
- 3\sets\14\bg_color=0xffffffff
- 3\sets\14\columns\size=4
- diff -r f0138e397b1a inc/dwarfstats.h
- --- a/inc/dwarfstats.h Wed Apr 18 18:15:20 2012 +0200
- +++ b/inc/dwarfstats.h Sat May 19 05:57:06 2012 -0700
- @@ -29,7 +29,7 @@
- {
- public:
- - static float calc_cdf(float mean, float stdev, float rawValue);
- + static float calc_cdf(float mean, float stdev, float rawValue);
- struct bin{
- int min;
- @@ -54,7 +54,7 @@
- static QHash<ASPECT_TYPE, QList<bin> > m_attribute_bins;
- - static float get_aspect_role_rating(int value, QList<bin> m_bins);
- + static float get_aspect_role_rating(float value, QList<bin> m_bins);
- };
- #endif // DWARFSTATS_H
- diff -r f0138e397b1a inc/trait.h
- --- a/inc/trait.h Wed Apr 18 18:15:20 2012 +0200
- +++ b/inc/trait.h Sat May 19 05:57:06 2012 -0700
- @@ -28,62 +28,62 @@
- #include "dwarfstats.h"
- class Trait : public QObject {
- - Q_OBJECT
- + Q_OBJECT
- public:
- Trait(int trait_id, const QSettings &s, QObject *parent = 0)
- - : QObject(parent)
- - {
- - name = s.value("name", "UNKNOWN").toString();
- + : QObject(parent)
- + {
- + name = s.value("name", "UNKNOWN").toString();
- this->trait_id = trait_id;// s.value("trait_id", -1).toInt();
- - m_level_string[0] = s.value("level_0", "UNKNOWN TRAIT 0(" + name + ")").toString();
- - m_level_string[10] = s.value("level_1", "UNKNOWN TRAIT 1(" + name + ")").toString();
- - m_level_string[25] = s.value("level_2", "UNKNOWN TRAIT 2(" + name + ")").toString();
- - m_level_string[61] = s.value("level_3", "UNKNOWN TRAIT 3(" + name + ")").toString();
- - m_level_string[76] = s.value("level_4", "UNKNOWN TRAIT 4(" + name + ")").toString();
- - m_level_string[91] = s.value("level_5", "UNKNOWN TRAIT 5(" + name + ")").toString();
- + m_level_string[0] = s.value("level_0", "UNKNOWN TRAIT 0(" + name + ")").toString();
- + m_level_string[10] = s.value("level_1", "UNKNOWN TRAIT 1(" + name + ")").toString();
- + m_level_string[25] = s.value("level_2", "UNKNOWN TRAIT 2(" + name + ")").toString();
- + m_level_string[61] = s.value("level_3", "UNKNOWN TRAIT 3(" + name + ")").toString();
- + m_level_string[76] = s.value("level_4", "UNKNOWN TRAIT 4(" + name + ")").toString();
- + m_level_string[91] = s.value("level_5", "UNKNOWN TRAIT 5(" + name + ")").toString();
- //setup aspect types and load bins
- QList<int> raws;
- +
- + raws << 0 << 10 << 25 << 40 << 61 << 76 << 91 << 101;
- +
- //immoderation (urge) and straightforwardness (honesty are +
- - if(trait_id==5 || trait_id==20){
- + if(trait_id==4 || trait_id==19){
- m_aspect_type = positive;
- - raws << 0 << 11 << 27 << 44 << 65 << 78 << 92 << 100;
- DwarfStats::load_trait_bins(positive, raws);
- }
- //vulnerability (stress) is -
- - else if(trait_id==6){
- + else if(trait_id==5){
- m_aspect_type = negative;
- - raws << 0 << 9 << 22 << 36 << 57 << 73 << 90 << 101;
- DwarfStats::load_trait_bins(negative, raws);
- }
- //everything else
- else{
- m_aspect_type = average;
- - raws << 0 << 10 << 25 << 40 << 61 << 76 << 91 << 101;
- DwarfStats::load_trait_bins(average, raws);
- - }
- - }
- + }
- + }
- - QString level_message(const short &val) {
- - if (val >= 91)
- - return m_level_string[91];
- - else if (val >= 76)
- - return m_level_string[76];
- - else if (val >= 61)
- - return m_level_string[61];
- - else if (val >= 25)
- - return m_level_string[25];
- - else if (val >= 10)
- - return m_level_string[10];
- - else
- - return m_level_string[0];
- - }
- + QString level_message(const short &val) {
- + if (val >= 91)
- + return m_level_string[91];
- + else if (val >= 76)
- + return m_level_string[76];
- + else if (val >= 61)
- + return m_level_string[61];
- + else if (val >= 25)
- + return m_level_string[25];
- + else if (val >= 10)
- + return m_level_string[10];
- + else
- + return m_level_string[0];
- + }
- - QString name;
- - int trait_id;
- + QString name;
- + int trait_id;
- ASPECT_TYPE m_aspect_type;
- //! this map will hold the minimum_value -> string (e.g. level 76-90 of Nervousness is "Is always tense and jittery")
- - QMap<int, QString> m_level_string;
- + QMap<int, QString> m_level_string;
- };
- #endif
- diff -r f0138e397b1a src/dfinstance.cpp
- --- a/src/dfinstance.cpp Wed Apr 18 18:15:20 2012 +0200
- +++ b/src/dfinstance.cpp Sat May 19 05:57:06 2012 -0700
- @@ -381,10 +381,10 @@
- }
- }
- -void DFInstance::calc_done(){
- +void DFInstance::calc_done(){
- calc_progress ++;
- //emit progress_value(calc_progress);
- - emit progress_message(tr("Calculating roles...%1%").arg(QString::number(((float)calc_progress/(float)actual_dwarves.count())*100,'f',2)));
- + emit progress_message(tr("Calculating roles...%1%").arg(QString::number(((float)calc_progress/(float)actual_dwarves.count())*100,'f',2)));
- if(calc_progress == actual_dwarves.count()){
- foreach(Role *r, GameDataReader::ptr()->get_roles()){
- float mean = 0.0;
- @@ -400,14 +400,15 @@
- }
- stdev = sqrt(stdev / (count-1));
- foreach(Dwarf *d, actual_dwarves){
- - d->set_role_rating(r->name, DwarfStats::calc_cdf(mean,stdev,d->get_role_rating(r->name))*100);
- + //d->set_role_rating(r->name, DwarfStats::calc_cdf(mean,stdev,d->get_role_rating(r->name))*100);
- + d->set_role_rating(r->name, d->get_role_rating(r->name));
- }
- }
- foreach(Dwarf *d, actual_dwarves){
- d->update_rating_list();
- }
- - actual_dwarves.clear();
- + actual_dwarves.clear();
- //emit progress_value(calc_progress+1);
- progress_message(QString("All roles loaded in %1 seconds.").arg(QString::number((float)t.elapsed()/1000,'f',2)));
- diff -r f0138e397b1a src/dwarfstats.cpp
- --- a/src/dwarfstats.cpp Wed Apr 18 18:15:20 2012 +0200
- +++ b/src/dwarfstats.cpp Sat May 19 05:57:06 2012 -0700
- @@ -113,7 +113,7 @@
- if(i>0)
- temp.density = temp.density + 0.01;
- temp.min = raws[i];
- - temp.max = raws[i+1];
- + temp.max = raws[i+1]-1;
- m_bins.append(temp);
- }
- //adjust final bin's probability
- @@ -128,13 +128,13 @@
- }
- //Normal
- -//0.00385 0 to 9
- -//0.01965 10 to 24
- -//0.0856 25 to 39
- -//0.7818 40 to 60
- -//0.0856 61 to 75
- -//0.01965 76 to 90
- -//0.00385 91 to 100
- +//0 to 9 .005
- +//10 to 24 .02
- +//25 to 39 .08
- +//40 to 60 .79
- +//61 to 75 .08
- +//76 to 90 .02
- +//91 to 100 .005
- void DwarfStats::load_trait_bins(ASPECT_TYPE key, QList<int> raws){
- if(!m_trait_bins.contains(key))
- @@ -146,35 +146,36 @@
- switch(i){
- case 0:
- temp.density = 0;
- - temp.probability = 0.004527777766667;
- + temp.probability = 0.00375;
- break;
- case 1:
- - temp.density = 0.004527777766667;
- - temp.probability = 0.017646604933333;
- + temp.density = 0.00375;
- + temp.probability = 0.01925;
- break;
- case 2:
- - temp.density = 0.0221743827;
- - temp.probability = 0.0883287037;
- + temp.density = 0.023;
- + temp.probability = 0.08475;
- break;
- case 3:
- - temp.density = 0.1105030864;
- - temp.probability = 0.7853132716;
- + temp.density = 0.10775;
- + temp.probability = 0.7845;
- break;
- case 4:
- - temp.density = 0.895816358;
- - temp.probability = 0.080581790133333;
- + temp.density = 0.89225;
- + temp.probability = 0.08475;
- break;
- case 5:
- - temp.density = 0.976398148133333;
- - temp.probability = 0.0204845679;
- + temp.density = 0.977;
- + temp.probability = 0.01925;
- break;
- case 6:
- - temp.density = 0.996882716033333;
- - temp.probability = 0.003117283966667;
- + temp.density = 0.99625;
- + temp.probability = 0.00375;
- break;
- }
- - temp.min = raws[i]-1;
- + //establishes lower bin and upper bin range
- + temp.min = raws[i];
- temp.max = raws[i+1]-1;
- m_bins.append(temp);
- }
- @@ -184,16 +185,61 @@
- }
- float DwarfStats::get_trait_role_rating(ASPECT_TYPE key, int value){
- - return get_aspect_role_rating(value, m_trait_bins.value(key));
- +
- + //variables
- + float traitMiddle;
- + float newValue;
- +
- + //negative trait
- + if (key == -1){
- + traitMiddle = 45;
- +
- + if (value < traitMiddle) {
- + newValue = (((float)value / traitMiddle) /2)*100;
- + }
- + else
- + {
- + newValue = ( ( ( (value - traitMiddle) / (100 - traitMiddle) ) /2 ) +.5 ) *100;
- + }
- + return get_aspect_role_rating(newValue, m_trait_bins.value(key));
- + }
- +
- + //normal trait
- + else if (key == 0)
- + {
- + return get_aspect_role_rating((float)value, m_trait_bins.value(key));
- + }
- +
- + //positive trait
- + else if (key == 1)
- + {
- + traitMiddle = 55;
- +
- + if (value < traitMiddle) {
- + newValue = (((float)value / traitMiddle) /2)*100;
- + }
- + else
- + {
- + newValue = ( ( ( (value - traitMiddle) / (100 - traitMiddle) ) /2 ) +.5 ) *100;
- + }
- + return get_aspect_role_rating(newValue, m_trait_bins.value(key));
- + };
- +
- + //return's 0 if above conditions fail.
- + return 0;
- }
- -float DwarfStats::get_aspect_role_rating(int value, QList<bin> m_bins){
- +float DwarfStats::get_aspect_role_rating(float value, QList<bin> m_bins){
- for(int i=0; i<m_bins.length(); i++){
- - if(value > m_bins[i].min && value <= m_bins[i].max){
- - return ((((double)(value-m_bins[i].min) / (double)(m_bins[i].max - m_bins[i].min))
- - * m_bins[i].probability)
- - + m_bins[i].density);
- - }
- +
- + int min = m_bins[i].min-1;
- + int max = m_bins[i].max;
- +
- + if(value > min && value <= max)
- + {
- +
- + return ((( (value - min) / (max - min) ) * m_bins[i].probability ) + m_bins[i].density);
- + }
- }
- return 0;
- }
- diff -r f0138e397b1a src/grid_view/laborcolumn.cpp
- --- a/src/grid_view/laborcolumn.cpp Wed Apr 18 18:15:20 2012 +0200
- +++ b/src/grid_view/laborcolumn.cpp Sat May 19 05:57:06 2012 -0700
- @@ -27,80 +27,162 @@
- #include "dwarfmodel.h"
- #include "dwarf.h"
- #include "viewcolumnset.h"
- +#include "dwarftherapist.h"
- -LaborColumn::LaborColumn(QString title, int labor_id, int skill_id, ViewColumnSet *set, QObject *parent)
- - : ViewColumn(title, CT_LABOR, set, parent)
- - , m_labor_id(labor_id)
- - , m_skill_id(skill_id)
- +LaborColumn::LaborColumn(QString title, int labor_id, int skill_id, ViewColumnSet *set, QObject *parent)
- + : ViewColumn(title, CT_LABOR, set, parent)
- + , m_labor_id(labor_id)
- + , m_skill_id(skill_id)
- {}
- -LaborColumn::LaborColumn(QSettings &s, ViewColumnSet *set, QObject *parent)
- - : ViewColumn(s, set, parent)
- - , m_labor_id(s.value("labor_id", -1).toInt())
- - , m_skill_id(s.value("skill_id", -1).toInt())
- +LaborColumn::LaborColumn(QSettings &s, ViewColumnSet *set, QObject *parent)
- + : ViewColumn(s, set, parent)
- + , m_labor_id(s.value("labor_id", -1).toInt())
- + , m_skill_id(s.value("skill_id", -1).toInt())
- {}
- -LaborColumn::LaborColumn(const LaborColumn &to_copy)
- +LaborColumn::LaborColumn(const LaborColumn &to_copy)
- : ViewColumn(to_copy)
- , m_labor_id(to_copy.m_labor_id)
- , m_skill_id(to_copy.m_skill_id)
- {}
- QStandardItem *LaborColumn::build_cell(Dwarf *d) {
- - GameDataReader *gdr = GameDataReader::ptr();
- - QStandardItem *item = init_cell(d);
- - item->setData(CT_LABOR, DwarfModel::DR_COL_TYPE);
- + GameDataReader *gdr = GameDataReader::ptr();
- +
- + QStandardItem *item = init_cell(d);
- +
- + item->setData(CT_LABOR, DwarfModel::DR_COL_TYPE);
- +
- short rating = d->skill_rating(m_skill_id);
- - if (rating < 0 && d->labor_enabled(m_labor_id)) {
- - item->setData(float(rating + 0.5f), DwarfModel::DR_SORT_VALUE); // push assigned labors above no exp in sort order
- - } else {
- - item->setData(rating, DwarfModel::DR_SORT_VALUE);
- - }
- - item->setData(rating, DwarfModel::DR_RATING);
- - item->setData(m_labor_id, DwarfModel::DR_LABOR_ID);
- - item->setData(m_set->name(), DwarfModel::DR_SET_NAME);
- -
- - QString skill_str;
- - if (m_skill_id != -1 && rating > -1) {
- - QString adjusted_rating = QString::number(rating);
- - if (rating > 15)
- - adjusted_rating = QString("15 +%1").arg(rating - 15);
- - skill_str = tr("%1 %2<br/>[RAW LEVEL: <b><font color=blue>%3</font></b>]<br/><b>Experience:</b><br/>%4")
- - .arg(gdr->get_skill_level_name(rating))
- - .arg(gdr->get_skill_name(m_skill_id))
- - .arg(adjusted_rating)
- - .arg(d->get_skill(m_skill_id).exp_summary());
- - } else {
- - // either the skill isn't a valid id, or they have 0 experience in it
- - skill_str = "0 experience";
- - }
- - item->setToolTip(QString("<h3>%1</h3>%2<h4>%3</h4>").arg(m_title).arg(skill_str).arg(d->nice_name()));
- - return item;
- +
- + if (rating < 0 && d->labor_enabled(m_labor_id)) {
- +
- + item->setData(float(rating + 0.5f), DwarfModel::DR_SORT_VALUE); // push assigned labors above no exp in sort order
- +
- + } else {
- +
- + item->setData(rating, DwarfModel::DR_SORT_VALUE);
- +
- + }
- +
- + item->setData(rating, DwarfModel::DR_RATING);
- +
- + item->setData(m_labor_id, DwarfModel::DR_LABOR_ID);
- +
- + item->setData(m_set->name(), DwarfModel::DR_SET_NAME);
- +
- +
- +
- + QString role_str;
- +
- + float role_rating=0;
- +
- + if(m_skill_id != -1){
- +
- + bool found = false;
- +
- + foreach(Role *r, gdr->get_roles()){
- +
- + foreach(QString key, r->skills.uniqueKeys()){
- +
- + if(key.toInt()==m_skill_id){
- +
- + role_rating = d->get_role_rating(r->name);
- +
- + role_str = tr("<h4>Role: %1 (%2%)</h4>").arg(r->name).arg(QString::number(role_rating,'f',2));
- +
- + if(r->role_details=="")
- +
- + r->create_role_details(*DT->user_settings());
- +
- + role_str.append(r->role_details);
- +
- + float sortVal = role_rating;
- +
- + if(d->labor_enabled(m_labor_id))
- +
- + sortVal += 1000;
- +
- + item->setData(sortVal,DwarfModel::DR_SORT_VALUE);
- +
- + found = true;
- +
- + }
- +
- + if(found)
- +
- + break;
- +
- + }
- +
- + if(found)
- +
- + break;
- +
- + }
- +
- + }
- +
- + QString skill_str;
- +
- + if (m_skill_id != -1 && rating > -1) {
- +
- + QString adjusted_rating = QString::number(rating);
- +
- + if (rating > 15)
- +
- + adjusted_rating = QString("15 +%1").arg(rating - 15);
- +
- + skill_str = tr("%1 %2<br/>[RAW LEVEL: <b><font color=blue>%3</font></b>]<br/><b>Experience:</b><br/>%4")
- +
- + .arg(gdr->get_skill_level_name(rating))
- +
- + .arg(gdr->get_skill_name(m_skill_id))
- +
- + .arg(adjusted_rating)
- +
- + .arg(d->get_skill(m_skill_id).exp_summary());
- +
- + } else {
- +
- + // either the skill isn't a valid id, or they have 0 experience in it
- +
- + skill_str = "0 experience";
- +
- + }
- +
- + item->setToolTip(QString("<h3>%1</h3>%2<h4>%3</h4><br>%4").arg(m_title).arg(skill_str).arg(d->nice_name()).arg(role_str));
- +
- + return item;
- +
- }
- +
- +
- QStandardItem *LaborColumn::build_aggregate(const QString &group_name, const QVector<Dwarf*> &) {
- - QStandardItem *item = new QStandardItem;
- - item->setStatusTip(m_title + " :: " + group_name);
- - QColor bg;
- - if (m_override_set_colors) {
- - bg = m_bg_color;
- - } else {
- - bg = set()->bg_color();
- - }
- - item->setData(CT_LABOR, DwarfModel::DR_COL_TYPE);
- - item->setData(bg, Qt::BackgroundColorRole);
- - item->setData(bg, DwarfModel::DR_DEFAULT_BG_COLOR);
- - item->setData(true, DwarfModel::DR_IS_AGGREGATE);
- - item->setData(m_labor_id, DwarfModel::DR_LABOR_ID);
- - item->setData(group_name, DwarfModel::DR_GROUP_NAME);
- - item->setData(0, DwarfModel::DR_RATING);
- - item->setData(m_set->name(), DwarfModel::DR_SET_NAME);
- - return item;
- + QStandardItem *item = new QStandardItem;
- + item->setStatusTip(m_title + " :: " + group_name);
- + QColor bg;
- + if (m_override_set_colors) {
- + bg = m_bg_color;
- + } else {
- + bg = set()->bg_color();
- + }
- + item->setData(CT_LABOR, DwarfModel::DR_COL_TYPE);
- + item->setData(bg, Qt::BackgroundColorRole);
- + item->setData(bg, DwarfModel::DR_DEFAULT_BG_COLOR);
- + item->setData(true, DwarfModel::DR_IS_AGGREGATE);
- + item->setData(m_labor_id, DwarfModel::DR_LABOR_ID);
- + item->setData(group_name, DwarfModel::DR_GROUP_NAME);
- + item->setData(0, DwarfModel::DR_RATING);
- + item->setData(m_set->name(), DwarfModel::DR_SET_NAME);
- + return item;
- }
- void LaborColumn::write_to_ini(QSettings &s) {
- - ViewColumn::write_to_ini(s);
- - s.setValue("skill_id", m_skill_id);
- - s.setValue("labor_id", m_labor_id);
- + ViewColumn::write_to_ini(s);
- + s.setValue("skill_id", m_skill_id);
- + s.setValue("labor_id", m_labor_id);
- }
- diff -r f0138e397b1a src/roledialog.cpp
- --- a/src/roledialog.cpp Wed Apr 18 18:15:20 2012 +0200
- +++ b/src/roledialog.cpp Sat May 19 05:57:06 2012 -0700
- @@ -183,7 +183,7 @@
- for(int i= 0; i<table.rowCount(); i++){
- QString key = table.item(i,0)->data(Qt::UserRole).toString();
- float weight = static_cast<QDoubleSpinBox*>(table.cellWidget(i,1))->value();
- - a.weight = abs(weight);
- + a.weight = fabs(weight);
- a.is_neg = weight < 0 ? true : false;
- list.insert(key,a);
- }
Advertisement
Add Comment
Please, Sign In to add comment