summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorEugenio Favalli <elvenprogrammer@gmail.com>2004-09-30 14:07:33 +0000
committerEugenio Favalli <elvenprogrammer@gmail.com>2004-09-30 14:07:33 +0000
commit5bb46ab6358834d13f483628eb5ddd43b4c985bc (patch)
tree4bfdaf98b3afe8d98d6014fd40939c1090fcdd86 /src/gui
parent2355936b926cb16a5e3e582fce43a9f9a237e78e (diff)
downloadmana-client-5bb46ab6358834d13f483628eb5ddd43b4c985bc.tar.gz
mana-client-5bb46ab6358834d13f483628eb5ddd43b4c985bc.tar.bz2
mana-client-5bb46ab6358834d13f483628eb5ddd43b4c985bc.tar.xz
mana-client-5bb46ab6358834d13f483628eb5ddd43b4c985bc.zip
*** empty log message ***
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/char_select.cpp2
-rw-r--r--src/gui/char_server.cpp2
-rw-r--r--src/gui/shop.cpp88
-rw-r--r--src/gui/shop.h46
-rw-r--r--src/gui/skill.cpp2
-rw-r--r--src/gui/stats.h8
6 files changed, 141 insertions, 7 deletions
diff --git a/src/gui/char_select.cpp b/src/gui/char_select.cpp
index a23c4713..6aa8c176 100644
--- a/src/gui/char_select.cpp
+++ b/src/gui/char_select.cpp
@@ -184,7 +184,7 @@ void server_char_delete() {
while((in_size<3)||(out_size>0))flush();
if(RFIFOW(0)==0x006d) {
while(in_size<108)flush();
- char_info = (CHAR_INFO *)malloc(sizeof(CHAR_INFO));
+ char_info = (PLAYER_INFO *)malloc(sizeof(PLAYER_INFO));
char_info->id = account_ID;
memset(char_info->name, '\0', 24);
strcpy(char_info[0].name, RFIFOP(2+74));
diff --git a/src/gui/char_server.cpp b/src/gui/char_server.cpp
index 4fbb2267..752604f1 100644
--- a/src/gui/char_server.cpp
+++ b/src/gui/char_server.cpp
@@ -94,7 +94,7 @@ void server_char_server() {
if(RFIFOW(0)==0x006b) {
while(in_size<RFIFOW(2))flush();
n_character = (RFIFOW(2)-24)/106;
- char_info = (CHAR_INFO *)malloc(sizeof(CHAR_INFO)*n_character);
+ char_info = (PLAYER_INFO *)malloc(sizeof(PLAYER_INFO)*n_character);
for(int i=0;i<n_character;i++) {
char_info[i].id = RFIFOL(24+106*i);
strcpy(char_info[i].name, RFIFOP(24+106*i+74));
diff --git a/src/gui/shop.cpp b/src/gui/shop.cpp
new file mode 100644
index 00000000..84fe279e
--- /dev/null
+++ b/src/gui/shop.cpp
@@ -0,0 +1,88 @@
+/**
+
+ The Mana World
+ Copyright 2004 The Mana World Development Team
+
+ This file is part of The Mana World.
+
+ The Mana World is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ any later version.
+
+ The Mana World is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with The Mana World; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ By ElvenProgrammer aka Eugenio Favalli (umperio@users.sourceforge.net)
+
+*/
+
+#include "shop.h"
+
+#include <allegro.h>
+
+int n_items;
+ITEM_SHOP *shop = NULL;
+
+char *item_db[] = { "Candy", "Medical Herb", "Chocolate" };
+
+char *shop_list(int index, int *list_size) {
+ if(index<0) {
+ *list_size = n_items;
+ return NULL;
+ } else {
+ int iterator = 0;
+ ITEM_SHOP *item_shop = shop;
+ while(iterator<index) {
+ item_shop = item_shop->next;
+ iterator++;
+ }
+ return item_shop->name;
+ }
+}
+
+void add_item(short id, int price) {
+ ITEM_SHOP *item_shop = (ITEM_SHOP *)malloc(sizeof(ITEM_SHOP));
+ if(id-501>=0 && id-501<=2)
+ sprintf(item_shop->name, "%s %i gp", item_db[id-501], price);
+ else
+ sprintf(item_shop->name, "Unknown item %i gp", price);
+ item_shop->price = price;
+ item_shop->id = id;
+ item_shop->next = NULL;
+ if(shop==NULL)
+ shop = item_shop;
+ else {
+ ITEM_SHOP *temp = shop;
+ while(temp->next)
+ temp = temp->next;
+ temp->next = item_shop;
+ }
+}
+
+void close_shop() {
+ ITEM_SHOP *temp, *next;
+ temp = shop;
+ while(temp) {
+ next = temp->next;
+ free(temp);
+ temp = next;
+ }
+ shop = NULL;
+}
+
+short get_item_id(int index) {
+ int iterator = 0;
+ ITEM_SHOP *item_shop = shop;
+ while(iterator<index) {
+ item_shop = item_shop->next;
+ iterator++;
+ }
+ return item_shop->id;
+}
diff --git a/src/gui/shop.h b/src/gui/shop.h
new file mode 100644
index 00000000..b8051536
--- /dev/null
+++ b/src/gui/shop.h
@@ -0,0 +1,46 @@
+/**
+
+ The Mana World
+ Copyright 2004 The Mana World Development Team
+
+ This file is part of The Mana World.
+
+ The Mana World is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ any later version.
+
+ The Mana World is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with The Mana World; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ By ElvenProgrammer aka Eugenio Favalli (umperio@users.sourceforge.net)
+
+*/
+
+#ifndef _SHOP_H
+#define _SHOP_H
+
+#include <stdlib.h>
+#include <stdio.h>
+
+struct ITEM_SHOP {
+ char name[30];
+ int price;
+ short id;
+ ITEM_SHOP *next;
+};
+
+extern int n_items;
+
+char *shop_list(int index, int *list_size);
+void add_item(short id, int price);
+void close_shop();
+short get_item_id(int index);
+
+#endif
diff --git a/src/gui/skill.cpp b/src/gui/skill.cpp
index 35abb975..bf9c2d86 100644
--- a/src/gui/skill.cpp
+++ b/src/gui/skill.cpp
@@ -25,7 +25,7 @@
#include "skill.h"
-extern CHAR_INFO *char_info;
+extern PLAYER_INFO *char_info;
char str_string[8];
char agi_string[8];
diff --git a/src/gui/stats.h b/src/gui/stats.h
index 09ec8950..e6a2ee39 100644
--- a/src/gui/stats.h
+++ b/src/gui/stats.h
@@ -21,21 +21,21 @@
*/
-#ifndef __STATS_H
-#define __STATS_H
+#ifndef _STATS_H
+#define _STATS_H
#include <allegro.h>
#include "../main.h"
#include "gui.h"
-typedef struct CHAR_INFO {
+typedef struct {
int id;
char name[24];
short hp, max_hp, sp, max_sp, lv;
int xp, zeny, job_xp, job_lv;
short statp, skillp;
char STR, AGI, VIT, INT, DEX, LUK;
-};
+} PLAYER_INFO;
int charstats_display(CHAR_INFO *);