Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -up Cataclysm-clean/player.cpp Cataclysm-current/player.cpp
- --- Cataclysm-clean/player.cpp 2011-12-15 12:51:58.000000000 +0400
- +++ Cataclysm-current/player.cpp 2012-01-11 00:06:18.134374900 +0400
- @@ -1202,11 +1202,14 @@ void player::disp_morale()
- werase(w);
- delwin(w);
- }
- -
- +
- void player::disp_status(WINDOW *w)
- {
- + nc_color skillColor = c_ltgray;
- + int mor = morale_level();
- mvwprintz(w, 1, 0, c_ltgray, "Weapon: %s", weapname().c_str());
- +
- if (weapon.is_gun()) {
- if (recoil >= 36)
- mvwprintz(w, 1, 30, c_red, "Recoil");
- @@ -1218,36 +1221,123 @@ void player::disp_status(WINDOW *w)
- mvwprintz(w, 1, 30, c_ltgray, "Recoil");
- }
- + skill primarySkill = sk_null;
- + skill secondarySkill = sk_null;
- + std::string temp;
- + if (!weapon.is_gun()){
- + primarySkill = sk_melee;
- + if (unarmed_attack())
- + secondarySkill = sk_unarmed;
- + else if (weapon.is_cutting_weapon())
- + secondarySkill = sk_cutting;
- + else if (weapon.is_bashing_weapon())
- + secondarySkill = sk_bashing;
- + else secondarySkill = sk_null;
- + } else {
- + primarySkill = sk_gun;
- + secondarySkill = dynamic_cast<it_gun*>(weapon.type)->skill_used;
- + };
- +
- + if (primarySkill) {
- + temp = skill_name(primarySkill);
- + if (temp.length() > 8)
- + temp = temp.substr(0, 7);
- + temp += ": ";
- + mvwprintz(w, 2, 0, c_ltgray, temp.c_str());
- + if (sklevel[primarySkill] > 20)
- + mvwprintz(w, 2, 9, c_white, "*****");
- + else if (sklevel[primarySkill] > 15)
- + skillColor = c_ltred;
- + else if (sklevel[primarySkill] > 10)
- + skillColor = c_yellow;
- + else if (sklevel[primarySkill] > 5)
- + skillColor = c_ltgreen;
- + else if (sklevel[primarySkill] > 0)
- + skillColor = c_ltgray;
- + for(int i = 0; i < (sklevel[primarySkill] % 5); i++)
- + mvwprintz(w, 2, 9 + i, skillColor, "*");
- + }
- +
- + if (secondarySkill) {
- + temp = skill_name(secondarySkill);
- + if (temp.length() > 8)
- + temp = temp.substr(0, 7);
- + temp += ": ";
- + mvwprintz(w, 2, 15, c_ltgray, temp.c_str());
- + if (sklevel[secondarySkill] > 20)
- + mvwprintz(w, 2, 24, c_white, "*****");
- + else if (sklevel[secondarySkill] > 15)
- + skillColor = c_ltred;
- + else if (sklevel[secondarySkill] > 10)
- + skillColor = c_yellow;
- + else if (sklevel[secondarySkill] > 5)
- + skillColor = c_ltgreen;
- + else if (sklevel[secondarySkill] > 0)
- + skillColor = c_ltgray;
- + for(int i = 0; i < (sklevel[secondarySkill] % 5); i++)
- + mvwprintz(w, 2, 24 + i, skillColor, "*");
- + }
- +
- + //dodge level
- + mvwprintz(w, 2, 30, c_ltgray, "Dg: ");
- + if (sklevel[sk_dodge] > 20)
- + mvwprintz(w, 2, 34, c_white, "*****");
- + else if (sklevel[sk_dodge] > 15)
- + skillColor = c_ltred;
- + else if (sklevel[sk_dodge] > 10)
- + skillColor = c_yellow;
- + else if (sklevel[sk_dodge] > 5)
- + skillColor = c_ltgreen;
- + else if (sklevel[sk_dodge] > 0)
- + skillColor = c_ltgray;
- + for(int i = 0; i < (sklevel[sk_dodge] % 5); i++)
- + mvwprintz(w, 2, 34 + i, skillColor, "*");
- +
- if (hunger > 2800)
- - mvwprintz(w, 2, 0, c_red, "Starving!");
- + mvwprintz(w, 3, 0, c_red, "Starving!");
- else if (hunger > 1400)
- - mvwprintz(w, 2, 0, c_ltred, "Near starving");
- + mvwprintz(w, 3, 0, c_ltred, "Near starving");
- else if (hunger > 300)
- - mvwprintz(w, 2, 0, c_ltred, "Famished");
- + mvwprintz(w, 3, 0, c_ltred, "Famished");
- else if (hunger > 100)
- - mvwprintz(w, 2, 0, c_yellow, "Very hungry");
- + mvwprintz(w, 3, 0, c_yellow, "Very hungry");
- else if (hunger > 40)
- - mvwprintz(w, 2, 0, c_yellow, "Hungry");
- + mvwprintz(w, 3, 0, c_yellow, "Hungry");
- else if (hunger < 0)
- - mvwprintz(w, 2, 0, c_green, "Full");
- + mvwprintz(w, 3, 0, c_green, "Full");
- if (thirst > 520)
- - mvwprintz(w, 2, 15, c_ltred, "Parched");
- + mvwprintz(w, 3, 15, c_ltred, "Parched");
- else if (thirst > 240)
- - mvwprintz(w, 2, 15, c_ltred, "Dehydrated");
- + mvwprintz(w, 3, 15, c_ltred, "Dehydrated");
- else if (thirst > 80)
- - mvwprintz(w, 2, 15, c_yellow, "Very thirsty");
- + mvwprintz(w, 3, 15, c_yellow, "Very thirsty");
- else if (thirst > 40)
- - mvwprintz(w, 2, 15, c_yellow, "Thirsty");
- + mvwprintz(w, 3, 15, c_yellow, "Thirsty");
- else if (thirst < 0)
- - mvwprintz(w, 2, 15, c_green, "Slaked");
- + mvwprintz(w, 3, 15, c_green, "Slaked");
- if (fatigue > 575)
- - mvwprintz(w, 2, 30, c_red, "Exhausted");
- + mvwprintz(w, 3, 30, c_red, "Exhausted");
- else if (fatigue > 383)
- - mvwprintz(w, 2, 30, c_ltred, "Dead tired");
- + mvwprintz(w, 3, 30, c_ltred, "Dead tired");
- else if (fatigue > 191)
- - mvwprintz(w, 2, 30, c_yellow, "Tired");
- + mvwprintz(w, 3, 30, c_yellow, "Tired");
- +
- +
- + //Morale indicator
- + if (mor < -100)
- + mvwprintz(w, 3, 41, c_red, "Suicidal");
- + else if (mor < -25)
- + mvwprintz(w, 3, 41, c_ltred, "Unhappy");
- + else if (mor < 0)
- + mvwprintz(w, 3, 41, c_yellow, "Blue");
- + else if (mor > 100)
- + mvwprintz(w, 3, 41, c_ltgreen, "Overjoyed");
- + else if (mor > 25)
- + mvwprintz(w, 3, 41, c_green, "Happy");
- + else if (mor > 0)
- + mvwprintz(w, 3, 41, c_yellow, "Lively");
- mvwprintz(w, 2, 41, c_white, "XP: ");
- nc_color col_xp = c_dkgray;
- @@ -1258,17 +1348,17 @@ void player::disp_status(WINDOW *w)
- mvwprintz(w, 2, 45, col_xp, "%d", xp_pool);
- if (pain - pkill >= 50)
- - mvwprintz(w, 3, 0, c_red, "Excrutiating pain!");
- + mvwprintz(w, 4, 0, c_red, "Excrutiating pain!");
- else if (pain - pkill >= 40)
- - mvwprintz(w, 3, 0, c_ltred, "Extreme pain");
- + mvwprintz(w, 4, 0, c_ltred, "Extreme pain");
- else if (pain - pkill >= 30)
- - mvwprintz(w, 3, 0, c_ltred, "Intense pain");
- + mvwprintz(w, 4, 0, c_ltred, "Intense pain");
- else if (pain - pkill >= 20)
- - mvwprintz(w, 3, 0, c_yellow, "Heavy pain");
- + mvwprintz(w, 4, 0, c_yellow, "Heavy pain");
- else if (pain - pkill >= 10)
- - mvwprintz(w, 3, 0, c_yellow, "Moderate pain");
- + mvwprintz(w, 4, 0, c_yellow, "Moderate pain");
- else if (pain - pkill > 0)
- - mvwprintz(w, 3, 0, c_yellow, "Minor pain");
- + mvwprintz(w, 4, 0, c_yellow, "Minor pain");
- nc_color col_str = c_white, col_dex = c_white, col_int = c_white,
- col_per = c_white, col_spd = c_white;
- @@ -1294,11 +1384,11 @@ void player::disp_status(WINDOW *w)
- if (current_speed() > 100)
- col_spd = c_green;
- - mvwprintz(w, 3, 20, col_str, "Str %s%d", str_cur >= 10 ? "" : " ", str_cur);
- - mvwprintz(w, 3, 27, col_dex, "Dex %s%d", dex_cur >= 10 ? "" : " ", dex_cur);
- - mvwprintz(w, 3, 34, col_int, "Int %s%d", int_cur >= 10 ? "" : " ", int_cur);
- - mvwprintz(w, 3, 41, col_per, "Per %s%d", per_cur >= 10 ? "" : " ", per_cur);
- - mvwprintz(w, 3, 48, col_spd, "Spd %s%d", spd_cur >= 10 ? "" : " ", spd_cur);
- + mvwprintz(w, 4, 20, col_str, "Str %s%d", str_cur >= 10 ? "" : " ", str_cur);
- + mvwprintz(w, 4, 27, col_dex, "Dex %s%d", dex_cur >= 10 ? "" : " ", dex_cur);
- + mvwprintz(w, 4, 34, col_int, "Int %s%d", int_cur >= 10 ? "" : " ", int_cur);
- + mvwprintz(w, 4, 41, col_per, "Per %s%d", per_cur >= 10 ? "" : " ", per_cur);
- + mvwprintz(w, 4, 48, col_spd, "Spd %s%d", spd_cur >= 10 ? "" : " ", spd_cur);
- }
Add Comment
Please, Sign In to add comment