summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaruna <haru@dotalux.com>2014-12-06 18:25:14 +0100
committerHaruna <haru@dotalux.com>2014-12-06 18:25:14 +0100
commit738e39d33186a4ff1a620509a7c13d986ff43ecb (patch)
treee5176f3de9e227a8d76aee17c07165b1b7deccde
parent04d981077de4bc5d6d0cf69a946091add1dc9309 (diff)
parent2f9c0cc0c00339d2098907ad5542226b12e0f9f4 (diff)
downloadhercules-738e39d33186a4ff1a620509a7c13d986ff43ecb.tar.gz
hercules-738e39d33186a4ff1a620509a7c13d986ff43ecb.tar.bz2
hercules-738e39d33186a4ff1a620509a7c13d986ff43ecb.tar.xz
hercules-738e39d33186a4ff1a620509a7c13d986ff43ecb.zip
Merge pull request #403 from 4144/mapext
into mapindex add variable with default map and position.
-rw-r--r--src/char/char.c13
-rw-r--r--src/common/mapindex.c7
-rw-r--r--src/common/mapindex.h6
-rw-r--r--src/map/map.c6
4 files changed, 21 insertions, 11 deletions
diff --git a/src/char/char.c b/src/char/char.c
index d3b18cfa6..b18beed60 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -1216,15 +1216,15 @@ int char_mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_every
p->save_point.map = mapindex->name2id(save_map);
if( p->last_point.map == 0 ) {
- p->last_point.map = (unsigned short)strdb_iget(mapindex->db, MAP_DEFAULT);
- p->last_point.x = MAP_DEFAULT_X;
- p->last_point.y = MAP_DEFAULT_Y;
+ p->last_point.map = (unsigned short)strdb_iget(mapindex->db, mapindex->default_map);
+ p->last_point.x = mapindex->default_x;
+ p->last_point.y = mapindex->default_y;
}
if( p->save_point.map == 0 ) {
- p->save_point.map = (unsigned short)strdb_iget(mapindex->db, MAP_DEFAULT);
- p->save_point.x = MAP_DEFAULT_X;
- p->save_point.y = MAP_DEFAULT_Y;
+ p->save_point.map = (unsigned short)strdb_iget(mapindex->db, mapindex->default_map);
+ p->save_point.x = mapindex->default_x;
+ p->save_point.y = mapindex->default_y;
}
strcat(t_msg, " status");
@@ -5718,6 +5718,7 @@ void do_shutdown(void)
}
void char_hp_symbols(void) {
+ HPM->share(mapindex,"mapindex");
HPM->share(chr, "chr");
HPM->share(geoip, "geoip");
HPM->share(inter_auction, "inter_auction");
diff --git a/src/common/mapindex.c b/src/common/mapindex.c
index e00fc107d..0d8a69726 100644
--- a/src/common/mapindex.c
+++ b/src/common/mapindex.c
@@ -172,8 +172,8 @@ int mapindex_init(void) {
bool mapindex_check_default(void)
{
- if (!strdb_iget(mapindex->db, MAP_DEFAULT)) {
- ShowError("mapindex_init: MAP_DEFAULT '%s' not found in cache! update mapindex.h MAP_DEFAULT var!!!\n",MAP_DEFAULT);
+ if (!strdb_iget(mapindex->db, mapindex->default_map)) {
+ ShowError("mapindex_init: MAP_DEFAULT '%s' not found in cache! update mapindex.h MAP_DEFAULT var!!!\n", mapindex->default_map);
return false;
}
return true;
@@ -196,6 +196,9 @@ void mapindex_defaults(void) {
/* */
mapindex->db = NULL;
mapindex->num = 0;
+ mapindex->default_map = MAP_DEFAULT;
+ mapindex->default_x = MAP_DEFAULT_X;
+ mapindex->default_y = MAP_DEFAULT_Y;
memset (&mapindex->list, 0, sizeof (mapindex->list));
/* */
diff --git a/src/common/mapindex.h b/src/common/mapindex.h
index 53d08f8e6..91bf4562e 100644
--- a/src/common/mapindex.h
+++ b/src/common/mapindex.h
@@ -67,6 +67,12 @@ struct mapindex_interface {
DBMap *db;
/* number of entries in the index table */
int num;
+ /* default map name */
+ char *default_map;
+ /* default x on map */
+ int default_x;
+ /* default y on map */
+ int default_y;
/* index list -- since map server map count is *unlimited* this should be too */
struct {
char name[MAP_NAME_LENGTH];
diff --git a/src/map/map.c b/src/map/map.c
index c379911d3..3cb4de5c8 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -5581,9 +5581,9 @@ void map_cp_defaults(void) {
/* default HCP data */
map->cpsd = pc->get_dummy_sd();
strcpy(map->cpsd->status.name, "Hercules Console");
- map->cpsd->bl.x = MAP_DEFAULT_X;
- map->cpsd->bl.y = MAP_DEFAULT_Y;
- map->cpsd->bl.m = map->mapname2mapid(MAP_DEFAULT);
+ map->cpsd->bl.x = mapindex->default_x;
+ map->cpsd->bl.y = mapindex->default_y;
+ map->cpsd->bl.m = map->mapname2mapid(mapindex->default_map);
console->input->addCommand("gm:info",CPCMD_A(gm_position));
console->input->addCommand("gm:use",CPCMD_A(gm_use));