| 299 | #define COLOR_FAILED GR_RGB(255, 255, 40) |
| 300 | |
| 301 | void TCGoalsRenderCallback(void) { |
| 302 | static bool active_alpha_in = false; |
| 303 | static float active_alpha = ACTIVE_ALPHA_MAX; |
| 304 | |
| 305 | // recalculate alpha |
| 306 | float alpha_change = last_frametime * ACTIVE_ALPHA_PER_SEC; |
| 307 | float alpha_amount; |
| 308 | while (alpha_change > 0) { |
| 309 | if (active_alpha_in) { |
| 310 | alpha_amount = std::min(ACTIVE_ALPHA_MAX - active_alpha, alpha_change); |
| 311 | active_alpha += alpha_amount; |
| 312 | |
| 313 | if (active_alpha > (ACTIVE_ALPHA_MAX - 1.0f)) |
| 314 | active_alpha_in = false; |
| 315 | } else { |
| 316 | alpha_amount = std::min(alpha_change, active_alpha - ACTIVE_ALPHA_MIN); |
| 317 | active_alpha -= alpha_amount; |
| 318 | |
| 319 | if (active_alpha < (ACTIVE_ALPHA_MIN + 1.0f)) |
| 320 | active_alpha_in = true; |
| 321 | } |
| 322 | alpha_change -= alpha_amount; |
| 323 | } |
| 324 | |
| 325 | int old_font = grtext_GetFont(); |
| 326 | |
| 327 | grtext_SetAlpha(255); |
| 328 | rend_SetOverlayType(OT_NONE); |
| 329 | rend_SetLighting(LS_NONE); |
| 330 | rend_SetColorModel(CM_MONO); |
| 331 | rend_SetZBufferState(0); |
| 332 | rend_SetAlphaType(AT_CONSTANT + AT_TEXTURE); |
| 333 | rend_SetAlphaValue(255); |
| 334 | rend_SetZBufferState(0); |
| 335 | |
| 336 | int y = TGminy; |
| 337 | |
| 338 | int obj_x, obj_max_width, goal_x, goal_max_width, status_x, status_max_width; |
| 339 | obj_x = TGminx + 25; |
| 340 | obj_max_width = 315; |
| 341 | status_x = obj_x + obj_max_width; |
| 342 | status_max_width = TGmaxx - status_x; |
| 343 | goal_x = obj_x + 20; |
| 344 | goal_max_width = status_x - goal_x; |
| 345 | /* |
| 346 | int goal_name_x,goal_status_x,goal_name_max_width,goal_status_max_width; |
| 347 | goal_name_x = TGminx + 20; |
| 348 | goal_name_max_width = 320; |
| 349 | goal_status_x = goal_name_x + goal_name_max_width; |
| 350 | goal_status_max_width = TGmaxx-goal_status_x; |
| 351 | */ |
| 352 | |
| 353 | int period_length; |
| 354 | period_length = grfont_GetCharWidth(SM_FONT, '.') + Grtext_spacing; |
| 355 | |
| 356 | //@@@ASSERT(goal_status_max_width>0); |
| 357 | ASSERT(status_max_width > 0); |
| 358 |
nothing calls this directly
no test coverage detected