Horizon Official Technical Documentation
NPCDefinitions.hpp
Go to the documentation of this file.
1/***************************************************
2 * _ _ _ *
3 * | | | | (_) *
4 * | |_| | ___ _ __ _ _______ _ __ *
5 * | _ |/ _ \| '__| |_ / _ \| '_ \ *
6 * | | | | (_) | | | |/ / (_) | | | | *
7 * \_| |_/\___/|_| |_/___\___/|_| |_| *
8 ***************************************************
9 * This file is part of Horizon (c).
10 *
11 * Copyright (c) 2019 Sagun K. (sagunxp@gmail.com).
12 * Copyright (c) 2019 Horizon Dev Team.
13 *
14 * Base Author - Sagun K. (sagunxp@gmail.com)
15 *
16 * This library is free software; you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License as published by
18 * the Free Software Foundation, either version 3 of the License, or
19 * (at your option) any later version.
20 *
21 * This library is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
25 *
26 * You should have received a copy of the GNU General Public License
27 * along with this library. If not, see <http://www.gnu.org/licenses/>.
28 **************************************************/
29
30#ifndef HORIZON_ZONE_NPC_DEFINITIONS_HPP
31#define HORIZON_ZONE_NPC_DEFINITIONS_HPP
32
33#include "UnitDefinitions.hpp"
35#include <memory>
36#include <string>
37
38#define NPC_START_GUID 5000000
39
41{
48 NPC_TYPE_INVISIBLE = 32767
49};
50
51namespace Horizon
52{
53 namespace Zone
54 {
55 namespace Game
56 {
57 namespace Units
58 {
59 class NPC;
60 }
61 }
62 }
63}
64
66{
67 std::string npc_name{""};
68 std::string map_name{""};
71 uint16_t sprite_id{0};
72 std::string script{""};
73 bool script_is_file{true};
74 uint16_t trigger_range{1};
75 std::shared_ptr<Horizon::Zone::Units::NPC> _npc;
76};
77
78#endif /* HORIZON_ZONE_NPC_DEFINITIONS_HPP */
npc_type
Definition: NPCDefinitions.hpp:41
@ FAKE_NPC
Definition: NPCDefinitions.hpp:42
@ NPC_TYPE_PORTAL_HIDDEN
Definition: NPCDefinitions.hpp:44
@ NPC_TYPE_FLAG
Definition: NPCDefinitions.hpp:47
@ NPC_TYPE_PORTAL_DBG
Definition: NPCDefinitions.hpp:46
@ NPC_TYPE_INVISIBLE
Definition: NPCDefinitions.hpp:48
@ NPC_TYPE_PORTAL
Definition: NPCDefinitions.hpp:43
@ NPC_TYPE_MOB_TOMB
Definition: NPCDefinitions.hpp:45
directions
Definition: UnitDefinitions.hpp:75
@ DIR_SOUTH
Definition: UnitDefinitions.hpp:80
Definition: Element.hpp:7
Definition: NPCDefinitions.hpp:66
directions direction
Definition: NPCDefinitions.hpp:70
MapCoords coords
Definition: NPCDefinitions.hpp:69
bool script_is_file
Definition: NPCDefinitions.hpp:73
std::string script
Definition: NPCDefinitions.hpp:72
std::string npc_name
Definition: NPCDefinitions.hpp:67
uint16_t sprite_id
Definition: NPCDefinitions.hpp:71
uint16_t trigger_range
Definition: NPCDefinitions.hpp:74
std::shared_ptr< Horizon::Zone::Units::NPC > _npc
Definition: NPCDefinitions.hpp:75
std::string map_name
Definition: NPCDefinitions.hpp:68