summaryrefslogtreecommitdiff
path: root/src/emap/data
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-07-04 22:37:51 +0300
committerAndrei Karas <akaras@inbox.ru>2015-07-04 22:37:51 +0300
commit58b8c8d8cb9f78537495f908887fea9d0a451637 (patch)
tree74438cc91f5c5a6a7a953c98aa52106eb88b250f /src/emap/data
parent857c86d93ebd68e5edbbe14ce26a16a967622822 (diff)
downloadevol-hercules-58b8c8d8cb9f78537495f908887fea9d0a451637.tar.gz
evol-hercules-58b8c8d8cb9f78537495f908887fea9d0a451637.tar.bz2
evol-hercules-58b8c8d8cb9f78537495f908887fea9d0a451637.tar.xz
evol-hercules-58b8c8d8cb9f78537495f908887fea9d0a451637.zip
Rename login/char/map dirs to elogin/echar/emap for avoid conflicts with hercules.
Diffstat (limited to 'src/emap/data')
-rw-r--r--src/emap/data/itemd.c68
-rw-r--r--src/emap/data/itemd.h13
-rw-r--r--src/emap/data/mapd.c40
-rw-r--r--src/emap/data/mapd.h12
-rw-r--r--src/emap/data/npcd.c38
-rw-r--r--src/emap/data/npcd.h12
-rw-r--r--src/emap/data/session.c48
-rw-r--r--src/emap/data/session.h13
8 files changed, 244 insertions, 0 deletions
diff --git a/src/emap/data/itemd.c b/src/emap/data/itemd.c
new file mode 100644
index 0000000..4b171b2
--- /dev/null
+++ b/src/emap/data/itemd.c
@@ -0,0 +1,68 @@
+// 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/battle.h"
+#include "map/itemdb.h"
+
+#include "emap/data/itemd.h"
+#include "emap/struct/itemdext.h"
+
+struct ItemdExt *itemd_get_by_item(struct item *item)
+{
+ if (!item)
+ return NULL;
+ const int nameid = item->nameid;
+ struct item_data *item_data = itemdb->exists(nameid);
+ return itemd_get(item_data);
+}
+
+struct ItemdExt *itemd_get(struct item_data *item)
+{
+ if (!item)
+ return NULL;
+
+ struct ItemdExt *data = getFromITEMDATA(item, 0);
+ if (!data)
+ {
+ data = itemd_create();
+ addToITEMDATA(item, data, 0, true);
+ }
+ return data;
+}
+
+struct ItemdExt *itemd_create(void)
+{
+ struct ItemdExt *data = NULL;
+ CREATE(data, struct ItemdExt, 1);
+ if (!data)
+ return NULL;
+ data->floorLifeTime = battle->bc->flooritem_lifetime;
+ data->allowPickup = true;
+ data->requiredStr = 0;
+ data->requiredAgi = 0;
+ data->requiredVit = 0;
+ data->requiredInt = 0;
+ data->requiredDex = 0;
+ data->requiredLuk = 0;
+ data->requiredMaxHp = 0;
+ data->requiredMaxSp = 0;
+ data->requiredAtk = 0;
+ data->requiredMAtkMin = 0;
+ data->requiredMAtkMax = 0;
+ data->requiredDef = 0;
+ data->requiredMDef = 0;
+ data->useEffect = -1;
+ data->useFailEffect = -1;
+ data->unequipEffect = -1;
+ data->unequipFailEffect = -1;
+ return data;
+}
diff --git a/src/emap/data/itemd.h b/src/emap/data/itemd.h
new file mode 100644
index 0000000..d3c529b
--- /dev/null
+++ b/src/emap/data/itemd.h
@@ -0,0 +1,13 @@
+// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// Copyright (c) 2014 Evol developers
+
+#ifndef EVOL_MAP_ITEMD
+#define EVOL_MAP_ITEMD
+
+struct ItemdExt;
+
+struct ItemdExt *itemd_get_by_item(struct item *item);
+struct ItemdExt *itemd_get(struct item_data *item);
+struct ItemdExt *itemd_create(void);
+
+#endif // EVOL_MAP_MAPD
diff --git a/src/emap/data/mapd.c b/src/emap/data/mapd.c
new file mode 100644
index 0000000..cb1a506
--- /dev/null
+++ b/src/emap/data/mapd.c
@@ -0,0 +1,40 @@
+// 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 "emap/data/mapd.h"
+#include "emap/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 = 1;
+ data->invisible = false;
+ data->flag.nopve = 0;
+ return data;
+}
diff --git a/src/emap/data/mapd.h b/src/emap/data/mapd.h
new file mode 100644
index 0000000..a0878ae
--- /dev/null
+++ b/src/emap/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/emap/data/npcd.c b/src/emap/data/npcd.c
new file mode 100644
index 0000000..183db46
--- /dev/null
+++ b/src/emap/data/npcd.c
@@ -0,0 +1,38 @@
+// 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/battle.h"
+#include "map/npc.h"
+
+#include "emap/data/npcd.h"
+#include "emap/struct/npcdext.h"
+
+struct NpcdExt *npcd_get(TBL_NPC *nd)
+{
+ struct NpcdExt *data = getFromNPCD(nd, 0);
+ if (!data)
+ {
+ data = npcd_create();
+ addToNPCD(nd, data, 0, true);
+ }
+ return data;
+}
+
+struct NpcdExt *npcd_create(void)
+{
+ struct NpcdExt *data = NULL;
+ CREATE(data, struct NpcdExt, 1);
+ if (!data)
+ return NULL;
+ data->init = false;
+ return data;
+}
diff --git a/src/emap/data/npcd.h b/src/emap/data/npcd.h
new file mode 100644
index 0000000..52f3b76
--- /dev/null
+++ b/src/emap/data/npcd.h
@@ -0,0 +1,12 @@
+// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// Copyright (c) 2014 Evol developers
+
+#ifndef EVOL_MAP_NPCD
+#define EVOL_MAP_NPCD
+
+struct NpcdExt;
+
+struct NpcdExt *npcd_get(TBL_NPC *nd);
+struct NpcdExt *npcd_create(void);
+
+#endif // EVOL_MAP_NPCD
diff --git a/src/emap/data/session.c b/src/emap/data/session.c
new file mode 100644
index 0000000..c3c3ffa
--- /dev/null
+++ b/src/emap/data/session.c
@@ -0,0 +1,48 @@
+// 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 "emap/data/session.h"
+#include "emap/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(TBL_PC *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;
+ data->state = 0;
+ data->onlinelistlasttime = 0;
+ return data;
+}
diff --git a/src/emap/data/session.h b/src/emap/data/session.h
new file mode 100644
index 0000000..040b408
--- /dev/null
+++ b/src/emap/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(TBL_PC *sd);
+struct SessionExt *session_create(void);
+
+#endif // EVOL_MAP_SESSION