diff options
Diffstat (limited to 'src/map/data')
-rw-r--r-- | src/map/data/mapd.c | 39 | ||||
-rw-r--r-- | src/map/data/mapd.h | 12 | ||||
-rw-r--r-- | src/map/data/session.c | 46 | ||||
-rw-r--r-- | src/map/data/session.h | 13 |
4 files changed, 110 insertions, 0 deletions
diff --git a/src/map/data/mapd.c b/src/map/data/mapd.c new file mode 100644 index 0000000..6ce239c --- /dev/null +++ b/src/map/data/mapd.c @@ -0,0 +1,39 @@ +// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// Copyright (c) 2014 Evol developers + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "../../../common/HPMi.h" +#include "../../../common/malloc.h" +#include "../../../common/mmo.h" +#include "../../../common/socket.h" +#include "../../../common/strlib.h" +#include "../../../map/map.h" + +#include "map/data/mapd.h" +#include "map/struct/mapdext.h" + +struct MapdExt *mapd_get(int m) +{ + struct map_data *md = &map->list[m]; + struct MapdExt *data = getFromMAPD(md, 0); + if (!data) + { + data = mapd_create(); + addToMAPD(md, data, 0, true); + } + return data; +} + +struct MapdExt *mapd_create(void) +{ + struct MapdExt *data = NULL; + CREATE(data, struct MapdExt, 1); + if (!data) + return NULL; + data->mask = 0; + data->invisible = false; + return data; +} diff --git a/src/map/data/mapd.h b/src/map/data/mapd.h new file mode 100644 index 0000000..a0878ae --- /dev/null +++ b/src/map/data/mapd.h @@ -0,0 +1,12 @@ +// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// Copyright (c) 2014 Evol developers + +#ifndef EVOL_MAP_MAPD +#define EVOL_MAP_MAPD + +struct MapdExt; + +struct MapdExt *mapd_get(int fd); +struct MapdExt *mapd_create(void); + +#endif // EVOL_MAP_MAPD diff --git a/src/map/data/session.c b/src/map/data/session.c new file mode 100644 index 0000000..fd1c0d5 --- /dev/null +++ b/src/map/data/session.c @@ -0,0 +1,46 @@ +// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// Copyright (c) 2014 Evol developers + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "../../../common/HPMi.h" +#include "../../../common/malloc.h" +#include "../../../common/mmo.h" +#include "../../../common/socket.h" +#include "../../../common/strlib.h" +#include "../../../map/pc.h" + +#include "map/data/session.h" +#include "map/struct/sessionext.h" + +struct SessionExt *session_get(int fd) +{ + struct SessionExt *data = getFromSession(session[fd], 0); + if (!data) + { + data = session_create(); + addToSession(session[fd], data, 0, true); + } + return data; +} + +struct SessionExt *session_get_bysd(struct map_session_data *sd) +{ + if (!sd) + return NULL; + + return session_get(sd->fd); +} + +struct SessionExt *session_create(void) +{ + struct SessionExt *data = NULL; + CREATE(data, struct SessionExt, 1); + if (!data) + return NULL; + data->clientVersion = 0; + data->language = 0; + return data; +} diff --git a/src/map/data/session.h b/src/map/data/session.h new file mode 100644 index 0000000..40b05e6 --- /dev/null +++ b/src/map/data/session.h @@ -0,0 +1,13 @@ +// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// Copyright (c) 2014 Evol developers + +#ifndef EVOL_MAP_SESSION +#define EVOL_MAP_SESSION + +struct SessionExt; + +struct SessionExt *session_get(int fd); +struct SessionExt *session_get_bysd(struct map_session_data *sd); +struct SessionExt *session_create(void); + +#endif // EVOL_MAP_SESSION |