summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEugenio Favalli <elvenprogrammer@gmail.com>2004-11-12 18:45:04 +0000
committerEugenio Favalli <elvenprogrammer@gmail.com>2004-11-12 18:45:04 +0000
commitedf872e4b6d3d689338305d749ba3972d77f7eb8 (patch)
treeffcbc634334f426736e0fdf77ecd580cdd5389a8 /src
parent526f9a301caa29d1922561104de9aea8bc213b65 (diff)
downloadmana-edf872e4b6d3d689338305d749ba3972d77f7eb8.tar.gz
mana-edf872e4b6d3d689338305d749ba3972d77f7eb8.tar.bz2
mana-edf872e4b6d3d689338305d749ba3972d77f7eb8.tar.xz
mana-edf872e4b6d3d689338305d749ba3972d77f7eb8.zip
Hair styles
Diffstat (limited to 'src')
-rw-r--r--src/game.cpp14
-rw-r--r--src/graphic/graphic.cpp6
-rw-r--r--src/gui/char_select.cpp31
-rw-r--r--src/gui/char_select.h1
4 files changed, 34 insertions, 18 deletions
diff --git a/src/game.cpp b/src/game.cpp
index df741710..ab0501c2 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -382,10 +382,10 @@ void do_parse() {
// Success to walk request
case 0x0087:
if(walk_status==1) {
- if(get_src_x(RFIFOP(6))==src_x)
+ /*if(get_src_x(RFIFOP(6))==src_x)
if(get_src_y(RFIFOP(6))==src_y)
if(get_dest_x(RFIFOP(6))==get_x(player_node->coordinates))
- if(get_dest_y(RFIFOP(6))==get_y(player_node->coordinates))
+ if(get_dest_y(RFIFOP(6))==get_y(player_node->coordinates))*/
walk_status = 2;
}
break;
@@ -400,9 +400,7 @@ void do_parse() {
empty_path(node);
memcpy(node->coordinates, RFIFOP(46), 3);
node->hair_color = RFIFOW(28);
- /*char set[30];
- sprintf(set, "%i %i %i %i",get_x(RFIFOP(46)),get_y(RFIFOP(46)),get_x(player_node->coordinates),get_y(player_node->coordinates));
- alert("78",set,"","","",0,0);*/
+ node->hair_style = RFIFOW(16);
add_node(node);
} else {
/*char set[30];
@@ -437,13 +435,14 @@ void do_parse() {
if(node==NULL) {
node = create_node();
node->id = RFIFOL(2);
- node->job = RFIFOW(16);
+ node->job = RFIFOW(14);
memcpy(node->coordinates, RFIFOP(46), 3);
add_node(node);
node->tick_time = tick_time;
node->frame = 0;
node->speed = RFIFOW(6);
node->hair_color = RFIFOW(28);
+ node->hair_style = RFIFOW(16);
}
break;
// Monster moving
@@ -829,6 +828,9 @@ void do_parse() {
/*char prova[100];
sprintf(prova, "%i %i %i", RFIFOL(2), RFIFOB(6), RFIFOB(7));
alert(prova,"","","","",0,0);*/
+ } else if(RFIFOB(6)==1) {
+ node = find_node(RFIFOL(2));
+ node->hair_style = RFIFOB(7);
}
break;
// Manage non implemented packets
diff --git a/src/graphic/graphic.cpp b/src/graphic/graphic.cpp
index cc4ec179..1cf86f25 100644
--- a/src/graphic/graphic.cpp
+++ b/src/graphic/graphic.cpp
@@ -230,7 +230,7 @@ void do_graphic(void) {
node->text_y = (get_y(node->coordinates)-camera_y)*16-36+get_y_offset(node)-offset_y;
if(node->action==SIT)node->frame = 0;
masked_blit((BITMAP *)graphic[PLAYERSET_BMP].dat, buffer, 80*(get_direction(node->coordinates)/2), 60*(node->frame+node->action), node->text_x, node->text_y, 80, 60);
- masked_blit(hairset, buffer, 20*(node->hair_color-1), 20*(get_direction(node->coordinates)/2), node->text_x+31+hairtable[node->action+node->frame][get_direction(node->coordinates)/2][0], node->text_y+15+hairtable[node->action+node->frame][get_direction(node->coordinates)/2][1], 20, 20);
+ masked_blit(hairset, buffer, 20*(node->hair_color-1), 20*(get_direction(node->coordinates)/2+4*(node->hair_style-1)), node->text_x+31+hairtable[node->action+node->frame][get_direction(node->coordinates)/2][0], node->text_y+15+hairtable[node->action+node->frame][get_direction(node->coordinates)/2][1], 20, 20);
//alfont_textprintf(buffer, gui_font, 0, 20, MAKECOL_WHITE, "%i %i", node->text_x,node->text_y);
if(node->emotion!=0) {
@@ -244,11 +244,11 @@ void do_graphic(void) {
node->frame = (get_elapsed_time(node->tick_time)*4)/(node->speed);
if(node->frame>=4) {
node->frame = 0;
- if(node->action==WALK)
+ /*if(node->action==WALK)
if(walk_status==1) {
set_coordinates(player_node->coordinates, src_x, src_y, direction);
walk_status = 0;
- }
+ } */
node->action = STAND;
// node->tick_time;
if(node->id==player_node->id)
diff --git a/src/gui/char_select.cpp b/src/gui/char_select.cpp
index b1b88393..edb2f2dc 100644
--- a/src/gui/char_select.cpp
+++ b/src/gui/char_select.cpp
@@ -53,16 +53,18 @@ DIALOG char_create_dialog[] = {
{ tmw_button_proc, 398, 426, 44, 18, 0, -1, 'o', D_EXIT, -1, 0, (char*)"&Ok", NULL, NULL },
{ tmw_button_proc, 446, 426, 44, 18, 0, -1, 'c', D_EXIT, -1, 0, (char*)"&Cancel", NULL, NULL },
{ tmw_player_proc, 304, 282, 142, 100, 0, 0, 0, 0, 80, 60, NULL, NULL, NULL },
- { tmw_incbutt_proc, 450, 282, 20, 20, 0, 0, 0, 0, 2, 0, (char*)"<", &char_info->hair_color, NULL },
- { tmw_incbutt_proc, 472, 282, 20, 20, 0, 0, 0, 0, 1, 0, (char*)">", &char_info->hair_color, NULL },
- { NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL },
+ { tmw_incbutt_proc, 450, 282, 20, 20, 0, 0, 0, 0, 2, 0, (char*)"<", &char_info->hair_color, NULL },
+ { tmw_incbutt_proc, 472, 282, 20, 20, 0, 0, 0, 0, 1, 0, (char*)">", &char_info->hair_color, NULL },
+ { tmw_incbutt_proc2, 450, 304, 20, 20, 0, 0, 0, 0, 2, 0, (char*)"<", &char_info->hair_style, NULL },
+ { tmw_incbutt_proc2, 472, 304, 20, 20, 0, 0, 0, 0, 1, 0, (char*)">", &char_info->hair_style, NULL },
+ { NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL },
};
-#define MAX_HAIR_COLOR 10
+#define MAX_HAIR_COLOR 9
+#define MAX_HAIR_STYLE 3
int tmw_incbutt_proc(int msg, DIALOG *d, int c) {
if(msg==MSG_CLICK) {
- //alert("","","","","",0,0);
if(d->d1==1)char_info->hair_color++;
else if(d->d1==2)char_info->hair_color--;
if(char_info->hair_color<1)char_info->hair_color = MAX_HAIR_COLOR+1;
@@ -71,17 +73,28 @@ int tmw_incbutt_proc(int msg, DIALOG *d, int c) {
return D_O_K;
}
return tmw_button_proc(msg, d, c);
+}
+
+int tmw_incbutt_proc2(int msg, DIALOG *d, int c) {
+ if(msg==MSG_CLICK) {
+ if(d->d1==1)char_info->hair_style++;
+ else if(d->d1==2)char_info->hair_style--;
+ if(char_info->hair_style<1)char_info->hair_style = MAX_HAIR_STYLE+1;
+ if(char_info->hair_style>MAX_HAIR_STYLE+1)char_info->hair_style = 1;
+ d->flags = 0;
+ return D_O_K;
+ }
+ return tmw_button_proc(msg, d, c);
}
int tmw_player_proc(int msg, DIALOG *d, int c) {
if(msg==MSG_DRAW) {
tmw_bitmap_proc(MSG_DRAW, d, 0);
- //BITMAP *temp = create_bitmap(60, 50);
- //clear_to_color(temp, makecol(255, 255, 255));
if(n_character>0) {
masked_blit(playerset, gui_bitmap, 0, 0, d->x-10+40, d->y-10+30, 80, 60);
- masked_blit(hairset, gui_bitmap, 20*(char_info->hair_color-1), 0, d->x+21+40, d->y+5+30, 20, 20);
- }
+ masked_blit(hairset, gui_bitmap, 20*(char_info->hair_color-1), 20*4*(char_info->hair_style-1), d->x+21+40, d->y+5+30, 20, 20);
+ }
+ //textprintf(gui_bitmap, font, 0, 0, makecol(255,255,255), "%i", char_info->hair_style);
//Super2xSaI(temp, gui_bitmap, 0, 0, d->x, d->y, temp->w*2, temp->h*2);
//blit(temp, gui_bitmap, 0, 0, d->x, d->y, 60,50);
}
diff --git a/src/gui/char_select.h b/src/gui/char_select.h
index 80e5716a..81b36495 100644
--- a/src/gui/char_select.h
+++ b/src/gui/char_select.h
@@ -35,6 +35,7 @@
#include "gui.h"
int tmw_incbutt_proc(int msg, DIALOG *d, int c);
+int tmw_incbutt_proc2(int msg, DIALOG *d, int c);
int tmw_player_proc(int msg, DIALOG *d, int c);
void char_select();
void server_char_select();