summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Edwardsson <simon@crossnet.se>2004-10-03 12:56:09 +0000
committerSimon Edwardsson <simon@crossnet.se>2004-10-03 12:56:09 +0000
commit0b00bf2ccff23b5f565e214b36be3ea823ab59da (patch)
tree2b43d9c1e9a72b07c26c2386633d6a80751bd25a /src
parent07af1c32d6d51a4d178ffc4dea7488a949d1e553 (diff)
downloadmana-client-0b00bf2ccff23b5f565e214b36be3ea823ab59da.tar.gz
mana-client-0b00bf2ccff23b5f565e214b36be3ea823ab59da.tar.bz2
mana-client-0b00bf2ccff23b5f565e214b36be3ea823ab59da.tar.xz
mana-client-0b00bf2ccff23b5f565e214b36be3ea823ab59da.zip
Added tmw_bar_proc, and a stat window, (I have // your stat window kth5 :) )
Diffstat (limited to 'src')
-rw-r--r--src/game.cpp5
-rw-r--r--src/graphic/graphic.cpp33
-rw-r--r--src/graphic/graphic.h1
-rw-r--r--src/gui/gui.cpp38
-rw-r--r--src/gui/gui.h7
-rw-r--r--src/gui/inventory.cpp6
6 files changed, 80 insertions, 10 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 5b776845..407d87b3 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -265,6 +265,9 @@ void do_input() {
action_time = false;
} else if(key[KEY_I]) {
inventory.toggle();
+ action_time = false;
+ } else if(key[KEY_T]) {
+ show_stats_dialog = !show_stats_dialog;
action_time = false;
}
}
@@ -531,7 +534,7 @@ void do_parse() {
char_info->lv = RFIFOW(4);
break;
}
- update_stats_dialog();
+ //update_stats_dialog();
if(char_info->hp==0) {
ok("Message", "You're now dead, press ok to restart");
WFIFOW(0) = net_w_value(0x00b2);
diff --git a/src/graphic/graphic.cpp b/src/graphic/graphic.cpp
index 48d1b5c7..59d10b1b 100644
--- a/src/graphic/graphic.cpp
+++ b/src/graphic/graphic.cpp
@@ -38,13 +38,16 @@ DATAFILE *tileset;
char itemCurrenyQ[10] = "0";
char page_num;
int map_x, map_y, camera_x, camera_y;
-DIALOG_PLAYER *chat_player, *npc_player, *skill_player, *buy_sell_player, *buy_player, *sell_player, *stats_player;
+DIALOG_PLAYER *chat_player, *npc_player, *skill_player, *buy_sell_player, *buy_player, *sell_player, *player_stats_player, *stats_player;
char speech[255] = "";
char npc_text[1000] = "";
TmwInventory inventory;
+char statsString[255] = "n/a";
+char statsString2[255] = "n/a";
Chat chatlog("./docs/chatlog.txt", 20);
int show_npc_dialog = 0;
bool show_skill_dialog = false;
+bool show_stats_dialog = false;
DIALOG npc_dialog[] = {
/* (dialog proc) (x) (y) (w) (h) (fg) (bg) (key) (flags) (d1) (d2) (dp) (dp2) (dp3) */
@@ -54,6 +57,15 @@ DIALOG npc_dialog[] = {
{ NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL }
};
+DIALOG player_stats_dialog[] = {
+ /* (dialog proc) (x) (y) (w) (h) (fg) (bg) (key) (flags) (d1) (d2) (dp) (dp2) (dp3) */
+ { tmw_dialog_proc, 350, 200, 300, 45, 0, -1, 0, 0, 0, 0, statsString, NULL, NULL },
+ { tmw_text_proc, 355, 220, 180, 10, 0, 0, 0, 0, 0, 0, (char *)"Hp:", NULL, NULL },
+ { tmw_bar_proc, 375, 225, 60, 18, 0, 0, '1', 0, 1, 1, NULL, NULL, NULL },
+ { NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL }
+};
+
+
DIALOG buy_sell_dialog[] = {
/* (dialog proc) (x) (y) (w) (h) (fg) (bg) (key) (flags) (d1) (d2) (dp) (dp2) (dp3) */
{ tmw_dialog_proc, 350, 200, 100, 105, 0, 0, 0, 0, 0, 0, (char *)"Shop", NULL, NULL },
@@ -142,9 +154,12 @@ void init_graphic() {
chat_player = init_dialog(chat_dialog, -1);
npc_player = init_dialog(npc_dialog, -1);
position_dialog(npc_dialog, 300, 200);
+
skill_player = init_dialog(skill_dialog, -1);
- stats_player = init_dialog(stats_dialog, -1);
+ //stats_player = init_dialog(stats_dialog, -1);
buy_sell_player = init_dialog(buy_sell_dialog, -1);
+ player_stats_player = init_dialog(player_stats_dialog, -1);
+ position_dialog(player_stats_dialog, 50, 5);
buy_player = init_dialog(buy_dialog, -1);
sell_player = init_dialog(sell_dialog, -1);
gui_bitmap = double_buffer;
@@ -266,7 +281,15 @@ void do_graphic(void) {
chatlog.chat_draw(double_buffer, 8, gui_font);
gui_update(chat_player);
-
+ if(show_stats_dialog)
+ {
+ sprintf(statsString,"%s Lv: %i Exp: %i",char_info->name,char_info->lv,char_info->xp);
+ player_stats_dialog[2].d1 = char_info->hp;
+ player_stats_dialog[2].d2 = char_info->max_hp;
+ dialog_message(player_stats_dialog, MSG_DRAW, 0, 0);
+ gui_update(player_stats_player);
+ }
+
switch(show_npc_dialog) {
case 1:
dialog_message(npc_dialog, MSG_DRAW, 0, 0);
@@ -339,8 +362,8 @@ void do_graphic(void) {
}
// character status display
- update_stats_dialog();
- gui_update(stats_player);
+ //update_stats_dialog();
+ //gui_update(stats_player);
alfont_textprintf(double_buffer, gui_font, 0, 0, MAKECOL_WHITE, "FPS:%i", fps);
diff --git a/src/graphic/graphic.h b/src/graphic/graphic.h
index 2ba3cc74..2b323a5c 100644
--- a/src/graphic/graphic.h
+++ b/src/graphic/graphic.h
@@ -46,6 +46,7 @@ extern char speech[255];
extern char npc_text[1000];
extern Chat chatlog;
extern bool show_skill_dialog;
+extern bool show_stats_dialog;
extern int show_npc_dialog;
extern TmwInventory inventory;
extern int map_x, map_y, camera_x, camera_y;
diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp
index 10021020..0ca829d9 100644
--- a/src/gui/gui.cpp
+++ b/src/gui/gui.cpp
@@ -299,7 +299,22 @@ void loadListboxSkin() {
}
}
-
+void loadBarSkin() {
+BITMAP *temp1 = load_bitmap("data/bar.bmp", NULL);
+BITMAP *temp2 = load_bitmap("data/bar_filled.bmp", NULL);
+gui_skin.bar.bg.grid[0] = create_bitmap(3,11);
+gui_skin.bar.bg.grid[1] = create_bitmap(1,11);
+gui_skin.bar.bg.grid[2] = create_bitmap(3,11);
+blit(temp1, gui_skin.bar.bg.grid[0], 0, 0, 0, 0, 3, 11);
+blit(temp1, gui_skin.bar.bg.grid[1], 4, 0, 0, 0, 1, 11);
+blit(temp1, gui_skin.bar.bg.grid[2], 13, 0, 0, 0, 3, 11);
+gui_skin.bar.bg.grid[3] = create_bitmap(3,11);
+gui_skin.bar.bg.grid[4] = create_bitmap(1,11);
+gui_skin.bar.bg.grid[5] = create_bitmap(3,11);
+blit(temp2, gui_skin.bar.bg.grid[3], 0, 0, 0, 0, 3, 11);
+blit(temp2, gui_skin.bar.bg.grid[4], 4, 0, 0, 0, 1, 11);
+blit(temp2, gui_skin.bar.bg.grid[5], 13, 0, 0, 0, 3, 11);
+}
void loadDialogSkin() {
char **tokens;
int tokenCount;
@@ -381,6 +396,7 @@ int gui_load_skin(const char* skinname) {
loadTextboxSkin();
loadListboxSkin();
loadDialogSkin();
+ loadBarSkin();
pop_config_state();
set_mouse_sprite((BITMAP *)gui_gfx[7].dat);
@@ -1021,6 +1037,26 @@ int tmw_list_proc(int msg, DIALOG *d, int c) {
}
return D_O_K;
}
+int tmw_bar_proc(int msg, DIALOG *d, int c)
+{
+float share2 = ((float)d->d1 / (float)d->d2);
+if(share2!=0)
+ masked_blit(gui_skin.bar.bg.grid[3], gui_bitmap, 0, 0, d->x, d->y, gui_bitmap->w, gui_bitmap->h);
+else
+ masked_blit(gui_skin.bar.bg.grid[0], gui_bitmap, 0, 0, d->x, d->y, gui_bitmap->w, gui_bitmap->h);
+
+for(int i = 3; i < (d->w-3); i++)
+ if(i<share2*d->w-3)
+ masked_blit(gui_skin.bar.bg.grid[4], gui_bitmap, 0, 0, d->x+1*i, d->y, gui_bitmap->w, gui_bitmap->h);
+ else
+ masked_blit(gui_skin.bar.bg.grid[1], gui_bitmap, 0, 0, d->x+1*i, d->y, gui_bitmap->w, gui_bitmap->h);
+
+if(share2==1)
+ masked_blit(gui_skin.bar.bg.grid[5], gui_bitmap, 0, 0, d->x+d->w-3, d->y, gui_bitmap->w, gui_bitmap->h);
+else
+ masked_blit(gui_skin.bar.bg.grid[2], gui_bitmap, 0, 0, d->x+d->w-3, d->y, gui_bitmap->w, gui_bitmap->h);
+return D_O_K;
+}
/**
dialog box w/ left centered head
diff --git a/src/gui/gui.h b/src/gui/gui.h
index 47362466..e14a0140 100644
--- a/src/gui/gui.h
+++ b/src/gui/gui.h
@@ -80,6 +80,11 @@ typedef struct {
} LexDialog;
typedef struct {
+ LexSkinnedRect bg;
+} LexBar;
+
+
+typedef struct {
LexButton button;
LexSlider slider;
LexCheckbox checkbox;
@@ -87,6 +92,7 @@ typedef struct {
LexTextbox textbox;
LexListbox listbox;
LexDialog dialog;
+ LexBar bar;
} LexSkin;
extern LexSkin gui_skin;
@@ -115,6 +121,7 @@ int tmw_dialog_proc(int msg, DIALOG *d, int c);
int tmw_ldialog_proc(int msg, DIALOG *d, int c);
int tmw_textbox_proc(int msg, DIALOG *d, int c);
int tmw_bitmap_proc(int msg, DIALOG *d, int c);
+int tmw_bar_proc(int msg, DIALOG *d, int c);
void ok(const char *title, const char *message);
unsigned int yes_no(const char *title, const char *message);
diff --git a/src/gui/inventory.cpp b/src/gui/inventory.cpp
index 09bf56f2..be2b239f 100644
--- a/src/gui/inventory.cpp
+++ b/src/gui/inventory.cpp
@@ -56,10 +56,10 @@ void TmwInventory::draw(BITMAP * buffer) {
for(int i=0;i<INVENTORY_SIZE;i++) {
if(items[i].quantity>0) {
if(items[i].id>=501 && items[i].id<=510)
- masked_blit((BITMAP *)itemset[items[i].id-500].dat, gui_bitmap, 0, 0, inventory_dialog[0].x-90+24*i, inventory_dialog[0].y+26, 22, 22);
+ masked_blit((BITMAP *)itemset[items[i].id-500].dat, gui_bitmap, 0, 0, inventory_dialog[0].x+24*i, inventory_dialog[0].y+26, 22, 22);
else
- masked_blit((BITMAP *)itemset[0].dat, gui_bitmap, 0, 0, inventory_dialog[0].x-90+24*i, inventory_dialog[0].y+26, 22, 22);
- alfont_textprintf_aa(gui_bitmap, gui_font, inventory_dialog[0].x-90+24*i, inventory_dialog[0].y+44, makecol(0,0,0), "%i", items[i].quantity);
+ masked_blit((BITMAP *)itemset[0].dat, gui_bitmap, 0, 0, inventory_dialog[0].x+24*i, inventory_dialog[0].y+26, 22, 22);
+ alfont_textprintf_aa(gui_bitmap, gui_font, inventory_dialog[0].x+24*i, inventory_dialog[0].y+44, makecol(0,0,0), "%i", items[i].quantity);
}
}
}