diff options
author | Eugenio Favalli <elvenprogrammer@gmail.com> | 2004-09-30 14:07:33 +0000 |
---|---|---|
committer | Eugenio Favalli <elvenprogrammer@gmail.com> | 2004-09-30 14:07:33 +0000 |
commit | 5bb46ab6358834d13f483628eb5ddd43b4c985bc (patch) | |
tree | 4bfdaf98b3afe8d98d6014fd40939c1090fcdd86 /src/gui | |
parent | 2355936b926cb16a5e3e582fce43a9f9a237e78e (diff) | |
download | mana-5bb46ab6358834d13f483628eb5ddd43b4c985bc.tar.gz mana-5bb46ab6358834d13f483628eb5ddd43b4c985bc.tar.bz2 mana-5bb46ab6358834d13f483628eb5ddd43b4c985bc.tar.xz mana-5bb46ab6358834d13f483628eb5ddd43b4c985bc.zip |
*** empty log message ***
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/char_select.cpp | 2 | ||||
-rw-r--r-- | src/gui/char_server.cpp | 2 | ||||
-rw-r--r-- | src/gui/shop.cpp | 88 | ||||
-rw-r--r-- | src/gui/shop.h | 46 | ||||
-rw-r--r-- | src/gui/skill.cpp | 2 | ||||
-rw-r--r-- | src/gui/stats.h | 8 |
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 *); |