summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--The Mana World.dev30
-rw-r--r--docs/TODO.txt8
-rw-r--r--src/game.cpp15
-rw-r--r--src/graphic/graphic.cpp7
-rw-r--r--src/gui/char_select.cpp1
-rw-r--r--src/gui/chat.cpp3
-rw-r--r--src/gui/chat.h2
-rw-r--r--src/gui/npc.cpp24
-rw-r--r--tmw.ini9
9 files changed, 62 insertions, 37 deletions
diff --git a/The Mana World.dev b/The Mana World.dev
index a9094a10..607a05a9 100644
--- a/The Mana World.dev
+++ b/The Mana World.dev
@@ -16,7 +16,7 @@ Linker=-ljgmod_@@_-lalfont_@@_-lalleg_@@_-lwsock32_@@_
IsCpp=1
Icon=The Mana World.ico
ExeOutput=
-ObjectOutput=
+ObjectOutput=src\objects
OverrideOutput=1
OverrideOutputName=tmw.exe
HostApplication=
@@ -24,28 +24,28 @@ Folders=graphic,gui,net,sound
CommandLine=
UseCustomMakefile=0
CustomMakefile=
-IncludeVersionInfo=0
-SupportXPThemes=1
+IncludeVersionInfo=1
+SupportXPThemes=0
CompilerSet=0
CompilerSettings=0000001001001000001101
[VersionInfo]
Major=0
-Minor=1
-Release=1
-Build=1
+Minor=0
+Release=8
+Build=39
LanguageID=1033
CharsetID=1252
-CompanyName=
-FileVersion=
-FileDescription=Developed using the Dev-C++ IDE
-InternalName=
-LegalCopyright=
+CompanyName=The Mana World Development Team
+FileVersion=0.0.8
+FileDescription=The Mana World
+InternalName=tmw.exe
+LegalCopyright=2004 (C)
LegalTrademarks=
-OriginalFilename=
-ProductName=
-ProductVersion=
-AutoIncBuildNr=0
+OriginalFilename=tmw.exe
+ProductName=The Mana World MMORPG
+ProductVersion=0.0.8
+AutoIncBuildNr=1
[Unit8]
FileName=src\log.cpp
diff --git a/docs/TODO.txt b/docs/TODO.txt
index a73a7e77..e45dae01 100644
--- a/docs/TODO.txt
+++ b/docs/TODO.txt
@@ -1,13 +1,11 @@
1) Gui
- Fix drag & drop (ElvenProgrammer)
- Add iconify button (ElvenProgrammer)
- - Skill point assignement (ElvenProgrammer)
- Trading system (SimEdw)
- - Add config dialog
+ - Add config dialog (SimEdw)
2) Sound engine
- ogg/mp3 playback (kth5)
3) Npc
- - Multi-page dialogs (SimEdw)
- Quest system (SimEdw)
4) Chat
- Shift when overlaying (kth5)
@@ -25,6 +23,6 @@
- Clothing and hairstyling system
- Item drops (ElvenProgrammer)
- Minimap
- - Trading system
8) Optimization
- - Bubble sort->quick sort \ No newline at end of file
+ - Bubble sort->quick sort
+ - Fix A* \ No newline at end of file
diff --git a/src/game.cpp b/src/game.cpp
index 0a0534f5..df741710 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -381,8 +381,13 @@ void do_parse() {
break;
// Success to walk request
case 0x0087:
- if(walk_status==1)
- walk_status = 2;
+ if(walk_status==1) {
+ 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))
+ walk_status = 2;
+ }
break;
// Add new being / stop monster
case 0x0078:
@@ -675,10 +680,8 @@ void do_parse() {
break;
// Level up
case 0x019b:
- if(RFIFOW(2)==0) {
- ok("Info", "Level up!");
- } else if(RFIFOW(2)==1) {
- ok("Info", "Job level up!");
+ if(RFIFOL(2)==player_node->id) {
+ sound.StartWAV("./data/sound/wavs/level.wav", 10);
}
break;
// Emotion
diff --git a/src/graphic/graphic.cpp b/src/graphic/graphic.cpp
index 3cc90377..cc4ec179 100644
--- a/src/graphic/graphic.cpp
+++ b/src/graphic/graphic.cpp
@@ -244,6 +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(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)
@@ -486,7 +491,7 @@ void do_graphic(void) {
update_stats_dialog();
gui_update(stats_player);
- alfont_textprintf(double_buffer, gui_font, 0, 0, MAKECOL_WHITE, "FPS:%i %i %i", fps, player_node->frame, player_node->action);
+ alfont_textprintf(double_buffer, gui_font, 0, 0, MAKECOL_WHITE, "FPS:%i %i %i %i %i", fps, get_x(player_node->coordinates), get_y(player_node->coordinates),src_x,src_y);
//alfont_textprintf(double_buffer, gui_font, 0, 20, MAKECOL_WHITE, "%i", show_npc_dialog);
diff --git a/src/gui/char_select.cpp b/src/gui/char_select.cpp
index b4294f3d..b1b88393 100644
--- a/src/gui/char_select.cpp
+++ b/src/gui/char_select.cpp
@@ -121,6 +121,7 @@ void char_select() {
if((gui_exit==3)||((key[KEY_ENTER])&&(strcmp(button_state, "Del")==0)))server_char_select();
else if(gui_exit==4)close_session();
else if(gui_exit==5)server_char_delete();
+ //alert("","","","","",0,0);
if(state==LOGIN)close_session();
}
diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp
index 10823e3c..e8cfa4cc 100644
--- a/src/gui/chat.cpp
+++ b/src/gui/chat.cpp
@@ -184,7 +184,8 @@ char * Chat::chat_send(std::string nick, std::string msg) {
if(msg.substr(0,IS_ANNOUNCE_LENGTH) == IS_ANNOUNCE) {
msg.erase(0,IS_ANNOUNCE_LENGTH);
packid = 0x0099;
- } else {
+ } else if(msg.substr(0,IS_WHERE_LENGTH) == IS_WHERE) {
+ } else {
packid = 0x008c;
}
// prepare ordinary message
diff --git a/src/gui/chat.h b/src/gui/chat.h
index c1126b52..fd6dae94 100644
--- a/src/gui/chat.h
+++ b/src/gui/chat.h
@@ -39,6 +39,8 @@
#define IS_ANNOUNCE "/announce "
#define IS_ANNOUNCE_LENGTH 10
+#define IS_WHERE "/where "
+#define IS_WHERE_LENGTH 7
/**
gets in between usernick and message text depending on
diff --git a/src/gui/npc.cpp b/src/gui/npc.cpp
index 0b7a7102..37fc4eb2 100644
--- a/src/gui/npc.cpp
+++ b/src/gui/npc.cpp
@@ -50,7 +50,7 @@ char *item_list(int index, int *list_size) {
void add_item(char *name) {
ITEM *item = item_head;
ITEM *temp = (ITEM *)malloc(sizeof(ITEM));
- temp->name = NULL;
+ //temp->name = NULL;
temp->name = name;
temp->next = NULL;
if(!item_head)
@@ -63,16 +63,29 @@ void add_item(char *name) {
item_number++;
}
+void remove_tail() {
+ int iterator = 0;
+ ITEM *temp = item_head;
+ while(iterator<item_number-2) {
+ temp = temp->next;
+ iterator++;
+ }
+ free(temp->next);
+ temp->next = NULL;
+ item_number--;
+}
+
void parse_items(char *string, short len) {
char *token = strtok(string, ":");
while(token!=NULL) {
- if(strcmp(token, "you prefer?")!=0) { // temp fix for the barber script
+ //if(strcmp(token, "you prefer?")!=0) { // temp fix for the barber script
char *temp = (char *)malloc(strlen(token));
strcpy(temp, token);
add_item(temp);
- }
+ //}
token = strtok(NULL, ":");
- }
+ }
+ remove_tail();
}
void remove_all_items() {
@@ -87,6 +100,5 @@ void remove_all_items() {
}
item_head = NULL;
item_number = 0;
-}
-
+}
diff --git a/tmw.ini b/tmw.ini
index fa10d222..544772c8 100644
--- a/tmw.ini
+++ b/tmw.ini
@@ -2,13 +2,12 @@
system =
keyboard = en
language =
-version = 0.1
core_version = 0.0.8
[server]
-host = animesites.de
+;host = animesites.de
;host = themanaworld.homeip.net
-;host = localhost
+host = localhost
;host = telekommunisten.dyndns.org
port = 6901
@@ -32,3 +31,7 @@ stretch = 0
[login]
remember = 1
username = elven
+
+[patch_client]
+version = 0.1
+url = http://localhost/