summaryrefslogtreecommitdiff
path: root/src/emap/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emap/init.c')
-rw-r--r--src/emap/init.c244
1 files changed, 244 insertions, 0 deletions
diff --git a/src/emap/init.c b/src/emap/init.c
new file mode 100644
index 0000000..c74c441
--- /dev/null
+++ b/src/emap/init.c
@@ -0,0 +1,244 @@
+// 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/channel.h"
+#include "map/chat.h"
+#include "map/chrif.h"
+#include "map/clif.h"
+#include "map/duel.h"
+#include "map/elemental.h"
+#include "map/homunculus.h"
+#include "map/guild.h"
+#include "map/instance.h"
+#include "map/intif.h"
+#include "map/irc-bot.h"
+#include "map/itemdb.h"
+#include "map/mail.h"
+#include "map/mapreg.h"
+#include "map/mercenary.h"
+#include "map/mob.h"
+#include "map/npc.h"
+#include "map/party.h"
+#include "map/pet.h"
+#include "map/pc.h"
+#include "map/script.h"
+#include "map/storage.h"
+#include "map/trade.h"
+#include "map/quest.h"
+
+#include "ecommon/config.h"
+#include "ecommon/init.h"
+#include "emap/atcommand.h"
+#include "emap/clif.h"
+#include "emap/itemdb.h"
+#include "emap/lang.h"
+#include "emap/mail.h"
+#include "emap/map.h"
+#include "emap/mob.h"
+#include "emap/npc.h"
+#include "emap/unit.h"
+#include "emap/parse.h"
+#include "emap/permission.h"
+#include "emap/pc.h"
+#include "emap/quest.h"
+#include "emap/script.h"
+#include "emap/skill.h"
+#include "emap/status.h"
+
+#include "common/HPMDataCheck.h" /* should always be the last file included! (if you don't make it last, it'll intentionally break compile time) */
+
+extern int langScriptId;
+
+HPExport struct hplugin_info pinfo =
+{
+ "evol_map",
+ SERVER_TYPE_MAP,
+ "0.1",
+ HPM_VERSION
+};
+
+HPExport void plugin_init (void)
+{
+// HPM_map_add_group_permission = GET_SYMBOL("addGroupPermission");
+
+ status_init();
+
+ addAtcommand("setskill", setSkill);
+
+ addScriptCommand("setcamnpc", "*", setCamNpc);
+ addScriptCommand("setcam", "ii", setCam);
+ addScriptCommand("movecam", "ii", moveCam);
+ addScriptCommand("restorecam", "", restoreCam);
+ addScriptCommand("npctalk3", "s", npcTalk3);
+ addScriptCommand("closedialog", "", closeDialog);
+ addScriptCommand("shop", "s", shop);
+ addScriptCommand("getitemlink", "s", getItemLink);
+ addScriptCommand("l", "s*", l);
+ addScriptCommand("lg", "s*", lg);
+ addScriptCommand("requestlang", "v", requestLang);
+ addScriptCommand("requestitem", "v", requestItem);
+ addScriptCommand("requestitems", "v*", requestItems);
+ addScriptCommand("getq", "i", getq);
+ addScriptCommand("setq", "ii", setq);
+ addScriptCommand("setnpcdir", "*", setNpcDir);
+ addScriptCommand("rif", "is*", rif);
+ addScriptCommand("countitemcolor", "v*", countItemColor);
+ addScriptCommand("misceffect", "i*", miscEffect);
+ addScriptCommand("setmapmask", "si", setMapMask);
+ addScriptCommand("addmapmask", "si", addMapMask);
+ addScriptCommand("removemapmask", "si", removeMapMask);
+ addScriptCommand("getmapmask", "s", getMapMask);
+ addScriptCommand("setnpcsex", "*", setNpcSex);
+ addScriptCommand("showavatar", "*", showAvatar);
+ addScriptCommand("setavatardir", "i", setAvatarDir);
+ addScriptCommand("setavataraction", "i", setAvatarAction);
+ addScriptCommand("clear", "", clear);
+ addScriptCommand("changemusic", "ss", changeMusic);
+ addScriptCommand("setnpcdialogtitle", "s", setNpcDialogTitle);
+ addScriptCommand("getmapname", "", getMapName);
+ addScriptCommand("unequipbyid", "i", unequipById);
+ addScriptCommand("ispcdead", "", isPcDead);
+ addScriptCommand("areatimer", "siiiii*", areaTimer);
+ addScriptCommand("getareadropitem", "siiiiv*", getAreaDropItem);
+ addScriptCommand("setmount", "?", setMount);
+ addScriptCommand("clientcommand", "s", clientCommand);
+ addScriptCommand("isunitwalking", "?", isUnitWalking);
+
+ do_init_langs();
+
+ addPacket(0x7530, 22, map_parse_version, hpClif_Parse);
+ addPacket(0xb07, 26, map_parse_join_channel, hpClif_Parse);
+ addPacket(0xb09, 26, map_parse_part_channel, hpClif_Parse);
+ addPacket(0xb0c, -1, map_parse_pet_say, hpClif_Parse);
+ addPacket(0xb0d, 3, map_parse_pet_emote, hpClif_Parse);
+ addPacket(0xb0e, 4, map_parse_set_status, hpClif_Parse);
+ addPacket(0xb0f, 2, map_parse_get_online_list, hpClif_Parse);
+ addPacket(0xb11, 10, map_parse_pet_move, hpClif_Parse);
+ addPacket(0xb12, 9, map_parse_pet_dir, hpClif_Parse);
+ addPacket(0xb13, -1, map_parse_homun_say, hpClif_Parse);
+ addPacket(0xb14, 3, map_parse_homun_emote, hpClif_Parse);
+ addPacket(0xb15, 9, map_parse_homun_dir, hpClif_Parse);
+
+ addHookPre("atcommand->msgfd", eatcommand_msgfd);
+ addHookPre("atcommand->msgsd", eatcommand_msgsd);
+ addHookPre("pc->readparam", epc_readparam_pre);
+ addHookPre("pc->setregistry", epc_setregistry);
+ addHookPre("pc->equipitem_pos", epc_equipitem_pos);
+ addHookPre("pc->unequipitem_pos", epc_unequipitem_pos);
+ addHookPre("pc->can_attack", epc_can_attack);
+ addHookPre("pc->takeitem", epc_takeitem);
+ addHookPre("pc->validate_levels", epc_validate_levels);
+ addHookPre("pc->check_job_name", epc_check_job_name);
+ addHookPre("mob->deleteslave_sub", emob_deleteslave_sub);
+ addHookPre("npc->parse_unknown_mapflag", enpc_parse_unknown_mapflag);
+ addHookPre("npc->buysellsel", enpc_buysellsel);
+ addHookPre("npc->db_checkid", enpc_db_checkid);
+ addHookPre("clif->quest_send_list", eclif_quest_send_list);
+ addHookPre("clif->quest_add", eclif_quest_add);
+ addHookPre("clif->charnameack", eclif_charnameack);
+ addHookPre("clif->sendlook", eclif_sendlook);
+ addHookPre("clif->send", eclif_send);
+ addHookPre("clif->set_unit_idle", eclif_set_unit_idle);
+ addHookPre("clif->send_actual", eclif_send_actual);
+ addHookPre("itemdb->is_item_usable", eitemdb_is_item_usable);
+ addHookPre("itemdb->readdb_additional_fields", eitemdb_readdb_additional_fields);
+ addHookPre("unit->can_move", eunit_can_move);
+ addHookPre("unit->walktoxy", eunit_walktoxy);
+ addHookPre("mail->invalid_operation", email_invalid_operation);
+
+ addHookPost("clif->getareachar_unit", eclif_getareachar_unit_post);
+ addHookPost("clif->authok", eclif_authok_post);
+ addHookPost("clif->changemap", eclif_changemap_post);
+ addHookPost("clif->set_unit_idle", eclif_set_unit_idle_post);
+ addHookPost("status->set_viewdata", estatus_set_viewdata_post);
+ addHookPost("status->read_job_db_sub", estatus_read_job_db_sub);
+ addHookPost("status->calc_pc_", estatus_calc_pc_);
+ addHookPost("clif->set_unit_walking", eclif_set_unit_walking);
+ addHookPost("clif->move", eclif_move);
+ addHookPost("map->addflooritem", emap_addflooritem_post);
+ addHookPost("skill->check_condition_castend", eskill_check_condition_castend_post);
+ addHookPost("pc->isequip", epc_isuseequip_post);
+ addHookPost("pc->isUseitem", epc_isuseequip_post);
+ addHookPost("pc->useitem", epc_useitem_post);
+ addHookPost("pc->equipitem", epc_equipitem_post);
+ addHookPost("pc->unequipitem", epc_unequipitem_post);
+ addHookPost("pc->setnewpc", epc_setnewpc);
+
+ langScriptId = script->add_str("Lang");
+}
+
+HPExport void server_preinit (void)
+{
+ interfaces_init_common();
+
+ atcommand = GET_SYMBOL("atcommand");
+ battle = GET_SYMBOL("battle");
+ bg = GET_SYMBOL("battlegrounds");
+ buyingstore = GET_SYMBOL("buyingstore");
+ clif = GET_SYMBOL("clif");
+ chrif = GET_SYMBOL("chrif");
+ guild = GET_SYMBOL("guild");
+ gstorage = GET_SYMBOL("gstorage");
+ homun = GET_SYMBOL("homun");
+ map = GET_SYMBOL("map");
+ ircbot = GET_SYMBOL("ircbot");
+ itemdb = GET_SYMBOL("itemdb");
+ logs = GET_SYMBOL("logs");
+ mail = GET_SYMBOL("mail");
+ instance = GET_SYMBOL("instance");
+ script = GET_SYMBOL("script");
+ searchstore = GET_SYMBOL("searchstore");
+ skill = GET_SYMBOL("skill");
+ vending = GET_SYMBOL("vending");
+ pc = GET_SYMBOL("pc");
+ pcg = GET_SYMBOL("pc_groups");
+ party = GET_SYMBOL("party");
+ storage = GET_SYMBOL("storage");
+ trade = GET_SYMBOL("trade");
+ status = GET_SYMBOL("status");
+ chat = GET_SYMBOL("chat");
+ duel = GET_SYMBOL("duel");
+ elemental = GET_SYMBOL("elemental");
+ intif = GET_SYMBOL("intif");
+ mercenary = GET_SYMBOL("mercenary");
+ mob = GET_SYMBOL("mob");
+ unit = GET_SYMBOL("unit");
+ npc = GET_SYMBOL("npc");
+ mapreg = GET_SYMBOL("mapreg");
+ pet = GET_SYMBOL("pet");
+ path = GET_SYMBOL("path");
+ quest = GET_SYMBOL("quest");
+ npc_chat = GET_SYMBOL("npc_chat");
+ libpcre = GET_SYMBOL("libpcre");
+ mapit = GET_SYMBOL("mapit");
+ mapindex = GET_SYMBOL("mapindex");
+ channel = GET_SYMBOL("channel");
+
+ setDefaultMap();
+ addMapInterConf("default_map", config_default_map);
+ addMapInterConf("default_x", config_default_x);
+ addMapInterConf("default_y", config_default_y);
+
+ addHookPre("quest->read_db_sub", equest_read_db_sub);
+ addGroupPermission("send_gm", permission_send_gm_flag);
+ addGroupPermission("show_client_version", permission_show_client_version_flag);
+}
+
+HPExport void server_online (void)
+{
+}
+
+HPExport void plugin_final (void)
+{
+ do_final_langs();
+ commonClean();
+}