/* * Ascent MMORPG Server * Copyright (C) 2005-2007 Ascent Team * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #ifndef __NPCHANDLER_H #define __NPCHANDLER_H enum GOSSIP_SPECIAL { GOSSIP_NO_SPECIAL = 0x00, GOSSIP_POI = 0x01, GOSSIP_SPIRIT_HEALER_ACTIVE = 0x02, GOSSIP_VENDOR = 0x03, GOSSIP_TRAINER = 0x04, GOSSIP_TABARD_VENDOR = 0x05, GOSSIP_INNKEEPER = 0x06, GOSSIP_PETITIONER = 0x07, GOSSIP_TAXI = 0x08, GOSSIP_TEXT = 0x09, GOSSIP_MENU = 0x0A, GOSSIP_BATTLEMASTER = 0x0B, GOSSIP_BANKEER = 0x0C, }; enum TrainerServiceType { TRAINER_SERVICE_AVAILABLE =0x0, TRAINER_SERVICE_UNAVAILABLE =0x1, TRAINER_SERVICE_USED =0x2, TRAINER_SERVICE_NOT_SHOWN =0x3, TRAINER_SERVICE_NEVER =0x4, TRAINER_SERVICE_NO_PET =0x5 }; #define NUM_TRAINER_SERVICE_TYPES 0x6 enum TrainerType { TRAINER_TYPE_GENERAL =0x0, TRAINER_TYPE_TALENTS =0x1, TRAINER_TYPE_TRADESKILLS =0x2, TRAINER_TYPE_PET =0x3 }; #define NUM_TRAINER_TYPES 0x4 struct GossipText_Text { float Prob; char * Text[2]; uint32 Lang; uint32 Emote[6]; }; struct GossipText { uint32 ID; GossipText_Text Texts[8]; }; struct GossipOptions { uint32 ID; uint32 GossipID; uint16 Icon; std::string OptionText; uint32 NextTextID; uint32 Special; float PoiX; float PoiY; uint32 PoiIcon; uint32 PoiFlags; uint32 PoiData; std::string PoiName; uint32 BgMapId; }; struct GossipNpc { GossipNpc() { pOptions = NULL; } uint32 ID; uint32 EntryId; uint32 TextID; uint32 OptionCount; GossipOptions *pOptions; }; struct trainertype { const char* partialname; uint32 type; }; #define TRAINER_TYPE_MAX 16 extern trainertype trainer_types[TRAINER_TYPE_MAX]; #define TRAINER_STATUS_LEARNABLE 0 #define TRAINER_STATUS_NOT_LEARNABLE 1 #define TRAINER_STATUS_ALREADY_HAVE 2 #endif