summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ManaWorld.vcproj6
-rw-r--r--src/game.cpp2
-rw-r--r--src/gui/npc.cpp14
3 files changed, 16 insertions, 6 deletions
diff --git a/ManaWorld.vcproj b/ManaWorld.vcproj
index 1fcca3cd..6fdd4ba1 100644
--- a/ManaWorld.vcproj
+++ b/ManaWorld.vcproj
@@ -269,6 +269,12 @@
RelativePath=".\src\gui\login.h">
</File>
<File
+ RelativePath=".\src\gui\npc.cpp">
+ </File>
+ <File
+ RelativePath=".\src\gui\npc.h">
+ </File>
+ <File
RelativePath=".\src\gui\shop.cpp">
</File>
<File
diff --git a/src/game.cpp b/src/game.cpp
index 0dec4268..0a0534f5 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -813,7 +813,7 @@ void do_parse() {
// List in NPC dialog
case 0x00b7:
current_npc = RFIFOL(4);
- alert(RFIFOP(8),"","","","",0,0);
+ //alert(RFIFOP(8),"","","","",0,0);
parse_items(RFIFOP(8), RFIFOW(2));
show_npc_dialog = 5;
break;
diff --git a/src/gui/npc.cpp b/src/gui/npc.cpp
index 43deb1a8..0b7a7102 100644
--- a/src/gui/npc.cpp
+++ b/src/gui/npc.cpp
@@ -50,6 +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 = name;
temp->next = NULL;
if(!item_head)
@@ -65,11 +66,13 @@ void add_item(char *name) {
void parse_items(char *string, short len) {
char *token = strtok(string, ":");
while(token!=NULL) {
- char *temp = (char *)malloc(strlen(token));
- strcpy(temp, token);
- add_item(temp);
+ 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, ":");
- }
+ }
}
void remove_all_items() {
@@ -77,7 +80,8 @@ void remove_all_items() {
temp = item_head;
while(temp) {
next = temp->next;
- free(temp->name);
+ /*if(temp->name!=NULL)
+ free(temp->name);*/ //buggy
free(temp);
temp = next;
}