source: abuse/branches/lol/src/imlib/status.cpp @ 732

Last change on this file since 732 was 732, checked in by Sam Hocevar, 8 years ago

build: SDL2 compilation fixes.

File size: 1.7 KB
Line 
1/*
2 *  Abuse - dark 2D side-scrolling platform game
3 *  Copyright (c) 1995 Crack dot Com
4 *  Copyright (c) 2005-2013 Sam Hocevar <sam@hocevar.net>
5 *
6 *  This software was released into the Public Domain. As with most public
7 *  domain software, no warranty is made or implied by Crack dot Com, by
8 *  Jonathan Clark, or by Sam Hocevar.
9 */
10
11#if HAVE_CONFIG_H
12#   include "config.h"
13#endif
14
15#include <string.h>
16
17#include "common.h"
18
19#include "imlib/status.h"
20#include "imlib/dprint.h"
21
22status_manager *stat_man=NULL;
23
24class text_status_node
25{
26  public :
27  char *name;
28  text_status_node *next;
29  AVisualObject *show;
30  int last_update;
31  text_status_node(char const *Name, AVisualObject *Show, text_status_node *Next)
32  { name = strdup(Name);
33    show = Show;
34    next = Next;
35    last_update = 0;
36  }
37  ~text_status_node() { free(name); if (show) delete show; }
38} ;
39
40
41
42text_status_manager::text_status_manager()
43{
44  first=NULL;
45  level=0;
46}
47
48void text_status_manager::push(char const *name, AVisualObject *show)
49{
50  level++;
51  first=new text_status_node(name,show,first);
52}
53
54void text_status_manager::update(int percentage)
55{
56//    return;
57  if (level==1 && percentage-first->last_update>4)
58  {
59      char s[256], len;
60    first->last_update=percentage;
61    sprintf(s,"\r%s [",first->name);
62    len = strlen(s);
63    int t=percentage*40/100;
64    int i=0;
65    for (; i<t; i++)
66      s[len+i] = '.';
67    for (; i<40; i++)
68        s[len+i] = ' ';
69    s[len+i++] = ']';
70    s[len+i] = 0;
71    dprintf("%s",s);
72  }
73}
74
75void text_status_manager::pop()
76{
77  ASSERT(first, "no status to pop!");
78  if (level==1) dprintf("\n");
79  level--;
80  text_status_node *p=first; first=first->next;
81  delete p;
82}
83
84
85
86
87
Note: See TracBrowser for help on using the repository browser.