Skip to content

Commit

Permalink
Knowledge bar/eta: Use human focused eta string when nearly done. Say…
Browse files Browse the repository at this point in the history
… complete when we are. Minor tidy up.
  • Loading branch information
pjbroad committed Jul 29, 2012
1 parent 2182fbb commit 7370b18
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 15 deletions.
8 changes: 1 addition & 7 deletions hud.c
Original file line number Diff line number Diff line change
Expand Up @@ -1949,13 +1949,7 @@ CHECK_GL_ERRORS();

if (mouse_over_knowledge_bar)
{
use_str = not_researching_str;
if (is_researching())
{
int eta = get_research_eta();
safe_snprintf(str, sizeof(str), "ETA: %d %s", eta, (eta==1)?minute_str:minutes_str);
use_str = str;
}
use_str = (is_researching()) ?get_research_eta_str(str, sizeof(str)) : not_researching_str;
draw_string_small_shadowed(-(int)(SMALL_FONT_X_LEN*(strlen(use_str)+0.5)), y+gy_adjust, (unsigned char*)use_str, 1,1.0f,1.0f,1.0f,0.0f,0.0f,0.0f);
mouse_over_knowledge_bar = 0;
}
Expand Down
26 changes: 20 additions & 6 deletions knowledge.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,26 @@ void update_research_rate(void)
}
}

int get_research_eta(void)
static float get_research_eta(void)
{
if (research_rate < 0)
return 0;
return (int)(research_rate * (your_info.research_total - your_info.research_completed) + 0.5);
return research_rate * (your_info.research_total - your_info.research_completed);
}

char *get_research_eta_str(char *str, size_t size)
{
float eta = get_research_eta();
if (eta < 0.01)
safe_snprintf(str, size, completed_research);
else if (eta < 1)
safe_snprintf(str, size, lessthanaminute_str);
else
{
int ieta = (int)(eta + 0.5);
safe_snprintf(str, size, "ETA: %i %s", ieta, (ieta==1)?minute_str:minutes_str);
}
return str;
}

int display_knowledge_handler(window_info *win)
Expand Down Expand Up @@ -163,7 +178,7 @@ int display_knowledge_handler(window_info *win)
points_string[0] = '\0';
is_researching = 0;
}
points_pos = (rx - lx - strlen(points_string)*8) / 2;
points_pos = (rx - lx - strlen(points_string)*SMALL_FONT_X_LEN) / 2;

glDisable(GL_TEXTURE_2D);
glColor3f(0.77f,0.57f,0.39f);
Expand Down Expand Up @@ -207,10 +222,9 @@ int display_knowledge_handler(window_info *win)
if (is_researching && mouse_over_progress_bar)
{
char eta_string[20];
int eta = get_research_eta();
int eta_pos;
safe_snprintf(eta_string, sizeof(eta_string), "ETA: %i %s", eta, (eta==1)?minute_str:minutes_str);
eta_pos = (int)(rx - lx - strlen(eta_string)*8) / 2;
get_research_eta_str(eta_string, sizeof(eta_string));
eta_pos = (int)(rx - lx - strlen(eta_string)*SMALL_FONT_X_LEN) / 2;
draw_string_small(lx+eta_pos,285,(unsigned char*)eta_string,1);
mouse_over_progress_bar=0;
}
Expand Down
7 changes: 5 additions & 2 deletions knowledge.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,14 @@ void check_book_known();

/*!
* \ingroup knowledge_window
* \brief Returns the eta in minutes for current research.
* \brief Returns the eta string for current research.
*
* \param str string to write eta
* \param size capacity of string including terminating \0
*
* \callgraph
*/
int get_research_eta(void);
char *get_research_eta_str(char *str, size_t size);

/*!
* \ingroup knowledge_window
Expand Down
2 changes: 2 additions & 0 deletions translate.c
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ char
recipe_save_str[70],
/*knowledge.c*/
completed_research[12],
lessthanaminute_str[30],
researching_str[30],
not_researching_anything[25],
not_researching_str[25],
Expand Down Expand Up @@ -1251,6 +1252,7 @@ void init_help()
add_xml_identifier(misc,"itemlistbut",item_list_but_str,"Open Left Of Inventory",sizeof(item_list_but_str));
add_xml_identifier(misc,"inv_keeprow",inv_keeprow_str,"Keep First Row\nKeep Last Row",sizeof(inv_keeprow_str));
add_xml_identifier(misc,"completed",completed_research,"COMPLETED",sizeof(completed_research));
add_xml_identifier(misc,"lessthanaminute",lessthanaminute_str,"Less than a minute",sizeof(lessthanaminute_str));
add_xml_identifier(misc,"research",researching_str,"Researching",sizeof(researching_str));
add_xml_identifier(misc,"nothing",not_researching_anything,"Nothing",sizeof(not_researching_anything));
add_xml_identifier(misc,"not_researching",not_researching_str,"Researching nothing",sizeof(not_researching_anything));
Expand Down
1 change: 1 addition & 0 deletions translate.h
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,7 @@ extern char
recipe_save_str[70],
/*knowledge.c*/
completed_research[12],
lessthanaminute_str[30],
researching_str[30],
not_researching_anything[25],
not_researching_str[25],
Expand Down

0 comments on commit 7370b18

Please sign in to comment.