diff --git a/.travis.yml b/.travis.yml
index 99dc3656..017917dd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -12,12 +12,13 @@ matrix:
addons:
apt:
sources:
- - ubuntu-toolchain-r-test
+ - ubuntu-toolchain-r-test
+ - llvm-toolchain-trusty-6.0
packages:
- - gcc-7
- - g++-7
+ - clang-6.0
+ - g++-7
env:
- - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
+ - MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0"
# Setup cache
cache:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3ada33ad..b9b359a5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -52,5 +52,6 @@ add_subdirectory( "src/tools/exd_struct_gen" )
add_subdirectory( "src/tools/exd_struct_test" )
add_subdirectory( "src/tools/quest_parser" )
add_subdirectory( "src/tools/discovery_parser" )
+add_subdirectory( "src/tools/mob_parse" )
#add_subdirectory("src/tools/pcb_reader")
#add_subdirectory("src/tools/event_object_parser")
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b50b5c62..ce291207 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -32,7 +32,7 @@ switch( commandId )
{
case 0x01: // Toggle sheathe
{
- if ( param11 == 1 )
+ if( param11 == 1 )
pPlayer->setStance( Entity::Chara::Stance::Active );
else
{
diff --git a/CodeStyle.xml b/CodeStyle.xml
new file mode 100644
index 00000000..bea3faf4
--- /dev/null
+++ b/CodeStyle.xml
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sql/battlenpc.sql b/sql/battlenpc.sql
deleted file mode 100644
index 201636ae..00000000
--- a/sql/battlenpc.sql
+++ /dev/null
@@ -1,1318 +0,0 @@
--- MySQL dump 10.13 Distrib 5.7.13, for Win64 (x86_64)
---
--- Host: localhost Database: sapphire
--- ------------------------------------------------------
--- Server version 5.7.13-log
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
-/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
-/*!40103 SET TIME_ZONE='+00:00' */;
-/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
-/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-
---
--- Table structure for table `battlenpc`
---
-
-DROP TABLE IF EXISTS `battlenpc`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `battlenpc` (
- `Id` int(11) NOT NULL,
- `ZoneId` int(10) DEFAULT NULL,
- `Type` int(11) NOT NULL,
- `NameId` int(10) DEFAULT NULL,
- `SizeId` int(10) DEFAULT NULL,
- `ModelId` int(10) DEFAULT NULL,
- `ClassJob` int(3) DEFAULT NULL,
- `DisplayFlags1` int(3) DEFAULT NULL,
- `DisplayFlags2` int(3) DEFAULT NULL,
- `Level` int(3) DEFAULT NULL,
- `Pos_0_0` float DEFAULT NULL,
- `Pos_0_1` float DEFAULT NULL,
- `Pos_0_2` float DEFAULT NULL,
- `Rotation` int(10) DEFAULT NULL,
- `MobType` int(3) DEFAULT NULL,
- `Behaviour` int(3) DEFAULT NULL,
- `ModelMainWeapon` int(20) DEFAULT NULL,
- `ModelSubWeapon` int(20) DEFAULT NULL,
- `Look` binary(28) DEFAULT NULL,
- `Models` binary(40) DEFAULT NULL,
- PRIMARY KEY (`Id`),
- KEY `ZoneId` (`ZoneId`),
- KEY `NameId` (`NameId`),
- KEY `ModelId` (`ModelId`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `battlenpc`
---
-
-LOCK TABLES `battlenpc` WRITE;
-/*!40000 ALTER TABLE `battlenpc` DISABLE KEYS */;
-INSERT INTO `battlenpc` VALUES (1073742721,141,2,1277,795,0,0,0,0,35,-117.39,15.66,316.159,58551,0,4,2147483647,2147483647,'2\\\0\0\0\022\0\0\0','\n\0\0\0+\0\0E\0\0:\0\0k\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756675,141,2,632,385,359,0,0,0,1,-97.08,6.25,245.64,8904,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754503,141,2,244,1445,95,0,0,0,12,-104.7,6.44,238.846,56453,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757592,141,2,632,385,359,0,0,0,1,-66.87,11.1,289.524,5487,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757593,141,2,632,385,359,0,0,0,1,-59,11.65,293.869,17983,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757596,141,2,632,385,359,0,0,0,1,-45.53,11.45,305.341,16338,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757597,141,2,262,351,26,0,0,0,1,-36.81,9.13,305.088,15679,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757599,141,2,262,351,26,0,0,0,1,-31.16,7.7,305.49,60879,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757601,141,2,262,351,26,0,0,0,1,-20.32,8.24,319.073,43175,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757602,141,2,262,351,26,0,0,0,1,-29.17,2.99,275.213,58811,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757606,141,2,262,351,26,0,0,0,1,-59.41,8.09,279.897,55975,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757108,141,2,262,351,26,0,0,0,1,-126.31,12.29,280.813,14809,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757750,141,2,262,351,26,0,0,0,1,-81.1,8.31,271.115,41443,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756089,141,2,262,351,26,0,0,0,1,-11.19,0.71,240.091,55050,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757755,141,2,262,351,26,0,0,0,1,-75.03,9.35,274.324,60541,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757757,141,2,262,351,26,0,0,0,1,-78.33,9.58,275.998,59812,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757760,141,2,632,385,359,0,0,0,1,-63.2,7.56,272.461,35940,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757122,141,2,262,351,26,0,0,0,1,-121.03,9.47,268.882,26857,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757765,141,2,632,385,359,0,0,0,1,-43.65,2.4,236.811,2589,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757126,141,2,632,385,359,0,0,0,1,-122.93,8.65,264.534,7806,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757135,141,2,262,351,26,0,0,0,1,-124.97,6.61,252.19,47636,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756752,141,2,632,385,359,0,0,0,1,-150.18,7.81,251.131,38777,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757138,141,2,632,385,359,0,0,0,1,-131.43,6.01,247.167,58722,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756498,141,2,262,351,26,0,0,0,1,-51.86,3.58,247.722,54220,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757147,141,2,262,351,26,0,0,0,1,-136.62,11.43,271.618,17901,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757153,141,2,262,351,26,0,0,0,1,-136.25,10.26,266.278,58291,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757422,141,2,632,385,359,0,0,0,1,-114.76,3.91,223.975,4127,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756402,141,2,632,385,359,0,0,0,1,-16.08,5.63,309.024,54560,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756404,141,2,262,351,26,0,0,0,1,-9.24,1.03,248.622,45505,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756794,141,2,632,385,359,0,0,0,1,-157.58,15.29,280.191,34955,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756582,141,2,262,351,26,0,0,0,1,-52.68,-0.04,223.765,40541,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073748882,141,2,262,351,26,0,0,0,2,-2.58,12.73,357.169,38257,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755969,141,2,262,351,26,0,0,0,2,-0.01,11.85,351.703,39347,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755973,141,2,262,351,26,0,0,0,2,-0.4,11.2,348.36,12183,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752273,141,2,632,385,359,0,0,0,2,-0.84,13.15,361.077,61032,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755318,141,2,632,385,359,0,0,0,1,-86.44,1.14,214.918,53163,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757260,141,2,632,385,359,0,0,0,1,-26.29,-3.22,221.868,20779,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756665,141,2,632,385,359,0,0,0,1,-48.63,-0.69,223.42,34223,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756668,141,2,632,385,359,0,0,0,1,-51.58,-0.52,221.885,55498,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073749723,141,2,262,351,26,0,0,0,1,-126.72,3.32,212.637,8930,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757418,141,2,262,351,26,0,0,0,1,-105.84,1.08,206.894,62110,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757420,141,2,632,385,359,0,0,0,1,-105.96,1.6,209.566,39586,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756577,141,2,262,351,26,0,0,0,1,-49.49,-3.28,206.022,27425,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757415,141,2,632,385,359,0,0,0,1,-94.47,-1.25,198.204,33034,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757443,141,2,632,385,359,0,0,0,1,5.18,4.78,291.791,65148,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752172,141,2,262,351,26,0,0,0,1,7.38,0.91,257.257,32884,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757380,141,2,632,385,359,0,0,0,3,15.8,-1.83,219.205,30826,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757258,141,2,632,385,359,0,0,0,1,-57.48,-3.58,196.775,12521,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756618,141,2,244,1445,95,0,0,0,12,12.41,4.99,279.438,1389,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757410,141,2,262,351,26,0,0,0,1,-95.99,-2.55,189.574,36475,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745251,141,2,262,351,26,0,0,0,2,17.16,14.65,392.162,59039,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745254,141,2,262,351,26,0,0,0,2,14.68,14.67,388.122,63117,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757417,141,2,262,351,26,0,0,0,1,-89.53,-2.07,194.737,5058,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757627,141,2,318,205,282,0,0,0,3,18.87,-2.03,215.625,42907,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757778,141,2,632,385,359,0,0,0,3,22.67,2.74,264.042,16991,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757802,141,2,318,205,282,0,0,0,3,25.63,2.24,261.824,51652,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745059,141,2,632,385,359,0,0,0,2,25.83,13.05,387.303,4840,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756263,141,2,262,351,26,0,0,0,2,31.85,10.06,354.938,10076,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757203,141,2,632,385,359,0,0,0,3,36.98,5.98,324.476,30891,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757819,141,2,318,205,282,0,0,0,3,35.87,1.85,262.69,47077,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757624,141,2,318,205,282,0,0,0,3,36.65,0.57,206.858,47515,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757385,141,2,318,205,282,0,0,0,3,36.57,-0.02,194.84,22691,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756361,141,2,632,385,359,0,0,0,3,41.61,1.17,218.462,22351,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757413,141,2,262,351,26,0,0,0,1,-100.07,-2.31,181.605,33797,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757431,141,2,318,205,282,0,0,0,3,41.56,5.16,299.072,41212,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757823,141,2,318,205,282,0,0,0,3,33.01,0,236.508,32767,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756713,141,2,318,205,282,0,0,0,3,45.23,1.07,190.859,40498,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757437,141,2,318,205,282,0,0,0,3,59.99,3.77,301.333,49908,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757414,141,2,632,385,359,0,0,0,1,-92.2,-3.69,180.367,29784,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757440,141,2,318,205,282,0,0,0,3,66.02,2.74,291.044,62279,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757442,141,2,318,205,282,0,0,0,3,64.66,2.1,280.423,50907,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756060,141,2,632,385,359,0,0,0,3,75.04,11.06,193.114,48023,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757619,141,2,632,385,359,0,0,0,3,76.55,6.48,406.315,49010,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745060,141,2,632,385,359,0,0,0,2,35.59,13.9,420.153,59749,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756256,141,2,318,205,282,0,0,0,3,99.56,4.34,414.639,44591,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757053,141,2,632,385,359,0,0,0,3,100.53,1.13,323.586,34664,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756285,141,2,318,205,282,0,0,0,3,96.04,2.63,386.164,11182,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756578,141,2,632,385,359,0,0,0,3,94.62,2.33,262.737,54745,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752687,141,2,318,205,282,0,0,0,3,103.7,8.12,217.462,63598,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756292,141,2,318,205,282,0,0,0,3,104.06,3.53,401.065,49554,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756298,141,2,632,385,359,0,0,0,3,103.46,4.02,409.352,14643,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757047,141,2,632,385,359,0,0,0,3,117.52,7.92,249.594,25236,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756288,141,2,632,385,359,0,0,0,3,114.13,3.57,360.24,46546,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756079,141,2,318,205,282,0,0,0,3,118.89,4.86,411.106,5969,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752277,141,2,318,205,282,0,0,0,3,112.66,1.43,311.47,16711,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745062,141,2,632,385,359,0,0,0,1,58.77,12.53,443.738,26614,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756070,141,2,318,205,282,0,0,0,3,103.12,4.23,442.457,53482,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756074,141,2,318,205,282,0,0,0,3,105.72,4.52,439.41,9516,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745071,141,2,244,1445,95,0,0,0,12,51.34,13.15,441.574,34013,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756678,141,2,318,205,282,0,0,0,3,126.58,13.86,276.936,16184,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757050,141,2,632,385,359,0,0,0,3,120.31,8.91,249.872,884,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756305,141,2,632,385,359,0,0,0,3,128.6,7.1,430.953,60620,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756082,141,2,318,205,282,0,0,0,3,121.48,5.12,398.129,63279,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756085,141,2,318,205,282,0,0,0,3,120.85,4.87,402.59,42531,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752279,141,2,318,205,282,0,0,0,3,126.06,2.54,318.801,7297,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073749728,141,2,632,385,359,0,0,0,3,123.58,2.35,317.683,59686,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745072,141,2,244,1445,95,0,0,0,12,59.72,12.86,450.302,24237,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756683,141,2,632,385,359,0,0,0,3,132.3,16.2,272.54,62614,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756686,141,2,318,205,282,0,0,0,3,135.75,16.48,273.366,32903,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745092,141,2,632,385,359,0,0,0,3,133.8,7.37,395.447,18571,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752280,141,2,318,205,282,0,0,0,3,130.26,3.23,325.502,52286,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745662,141,2,318,205,282,0,0,0,4,128.09,8.79,456.686,13254,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756311,141,2,318,205,282,0,0,0,4,138.98,10.05,462.196,34020,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742256,141,2,632,385,359,0,0,0,3,139.19,15.37,285.763,52926,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073748894,141,2,632,385,359,0,0,0,4,127.52,8.98,467.801,58543,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756692,141,2,318,205,282,0,0,0,3,146.22,15.38,300.675,63482,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756317,141,2,632,385,359,0,0,0,4,149.3,10.72,462.144,14568,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745103,141,2,632,385,359,0,0,0,3,154.63,9.79,434.4,34725,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742084,141,2,318,205,282,0,0,0,4,156.78,14.9,388.195,11008,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073751909,141,2,318,205,282,0,0,0,4,119.07,7.23,489.395,28097,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073751910,141,2,318,205,282,0,0,0,4,145.02,11.45,488.705,48449,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754794,141,2,632,385,359,0,0,0,2,79.61,6.57,488.845,14015,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745088,141,2,318,205,282,0,0,0,4,155.67,10.62,408.348,10665,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745107,141,2,244,1445,95,0,0,0,12,159.19,10.65,447.902,16381,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745202,141,2,632,385,359,0,0,0,4,134.05,10.9,495.272,24198,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747327,141,2,318,205,282,0,0,0,4,163.57,12.38,481.198,23147,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747332,141,2,318,205,282,0,0,0,4,169.29,13.13,485.522,49151,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756062,141,2,262,351,26,0,0,0,2,59.64,11.93,493.815,35933,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754791,141,2,632,385,359,0,0,0,2,91.49,4.1,492.133,39753,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757111,141,2,318,205,282,0,0,0,4,167.96,12.33,479.451,53294,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745087,141,2,318,205,282,0,0,0,4,164.29,11.05,411.859,36794,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745091,141,2,632,385,359,0,0,0,3,168.3,12.31,406.265,40304,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745090,141,2,318,205,282,0,0,0,4,179.31,12.06,411.779,28029,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756057,141,2,262,351,26,0,0,0,2,53.2,13.1,506.71,35016,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745382,141,2,632,385,359,0,0,0,4,156.87,12.53,505.148,7184,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747335,141,2,318,205,282,0,0,0,4,184.76,13.66,486.074,29980,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757162,141,2,632,385,359,0,0,0,4,181.25,13.26,483.687,12448,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756055,141,2,262,351,26,0,0,0,2,50.46,13.58,507.356,36512,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754786,141,2,632,385,359,0,0,0,2,55.21,12.83,513.437,30956,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756325,141,2,318,205,282,0,0,0,4,163.63,12.37,514.19,11419,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745078,141,2,318,205,282,0,0,0,4,127.73,11.46,508.397,25260,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745079,141,2,318,205,282,0,0,0,4,131.98,11.63,506.858,61422,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756251,141,2,262,351,26,0,0,0,2,69.12,10.79,519.937,37474,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745068,141,2,632,385,359,0,0,0,4,140.58,11.91,516.586,17494,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754789,141,2,632,385,359,0,0,0,2,44.63,14.68,516.015,9119,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745140,141,2,318,205,282,0,0,0,4,175.62,11.81,520.386,2859,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745223,141,2,632,385,359,0,0,0,4,206.05,16.12,507.605,34354,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742186,141,2,632,385,359,0,0,0,4,200.2,13.03,449.745,57947,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742194,141,2,318,205,282,0,0,0,4,199.33,13.2,454.625,25299,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745225,141,2,632,385,359,0,0,0,4,205.24,17.61,526.61,40217,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757285,141,2,262,351,26,0,0,0,2,106.65,5.56,526.434,25207,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757297,141,2,632,385,359,0,0,0,2,113.12,6.57,524.823,42705,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753579,141,2,318,205,282,0,0,0,4,184.3,12.49,526.289,31486,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756466,141,2,318,205,282,0,0,0,4,155.6,9.8,537.942,22971,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753577,141,2,632,385,359,0,0,0,4,162.7,9.91,535.648,48390,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745224,141,2,632,385,359,0,0,0,4,210.09,17.29,505.249,34071,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752620,141,2,632,385,359,0,0,0,4,196.41,15.8,547.513,18242,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757305,141,2,318,205,282,0,0,0,4,148.09,7.6,548.567,36051,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756388,141,2,632,385,359,0,0,0,4,198.41,16.53,544.044,5939,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757267,141,2,262,351,26,0,0,0,2,84.34,8.55,552.341,13277,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757307,141,2,318,205,282,0,0,0,4,156.04,8.51,557.488,60906,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757315,141,2,318,205,282,0,0,0,4,172.77,9.96,556.493,65419,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757270,141,2,262,351,26,0,0,0,2,87.04,8.36,561.37,38613,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757310,141,2,318,205,282,0,0,0,4,158.16,9.14,564.707,26745,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742125,141,2,318,205,282,0,0,0,4,221.77,14.79,468.725,33580,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752631,141,2,632,385,359,0,0,0,4,219.51,16.9,558.472,65461,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756748,141,2,318,205,282,0,0,0,4,139.76,6.74,567.197,55292,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742720,141,2,1277,797,0,0,0,0,35,32.36,15.91,575.715,48431,0,4,2147483647,2147483647,'2\\\0\0\\\0\0K\0K\0\0\0','\n\0\0\0+\0\0E\0\0:\0\0k\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073751753,141,2,318,205,282,0,0,0,4,219.59,20,422.518,61918,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073751757,141,2,318,205,282,0,0,0,4,219.09,20.14,419.038,41792,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756444,141,2,632,385,359,0,0,0,4,144.24,7.86,579.901,65458,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756717,141,2,318,205,282,0,0,0,4,148.91,8.36,583.584,56655,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752627,141,2,318,205,282,0,0,0,4,216.2,13.19,581.109,12761,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742124,141,2,318,205,282,0,0,0,4,231.83,15.37,458.995,53738,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754674,141,2,632,385,359,0,0,0,4,166.07,10.19,586.433,32949,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757261,141,2,632,385,359,0,0,0,4,127.85,4.92,591.922,57945,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756754,141,2,318,205,282,0,0,0,4,140.99,7.32,586.131,41621,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754661,141,2,318,205,282,0,0,0,4,150.8,7.61,598.442,61197,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756472,141,2,318,205,282,0,0,0,4,197.98,12.41,599.58,20861,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742169,141,2,632,385,359,0,0,0,4,202.26,12.5,598.826,28671,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073751730,141,2,318,205,282,0,0,0,4,217.46,11.45,598.861,2085,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073748291,141,2,318,205,282,0,0,0,4,170.96,11.38,603.21,43046,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753732,141,2,244,1445,95,0,0,0,12,190.43,12.17,602.385,59555,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742236,141,2,632,385,359,0,0,0,4,217.54,10.15,609.344,17007,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073751732,141,2,318,205,282,0,0,0,4,219.42,10.92,602.201,7602,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756694,141,2,632,385,359,0,0,0,2,56.29,13.93,614.195,49653,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756707,141,2,632,385,359,0,0,0,2,103.6,8.08,611.61,12296,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756708,141,2,632,385,359,0,0,0,2,112.28,6.87,612.693,35011,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742136,141,2,318,205,282,0,0,0,4,182.84,10.99,617.924,10568,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073748292,141,2,318,205,282,0,0,0,4,185.29,11.38,614.536,53429,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742168,141,2,632,385,359,0,0,0,4,198.44,10.03,618.558,14802,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756682,141,2,262,351,26,0,0,0,2,41.72,15.67,621.752,23263,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756685,141,2,262,351,26,0,0,0,2,32.26,16,623.89,2296,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756689,141,2,262,351,26,0,0,0,2,31.15,16.01,625.723,26987,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756697,141,2,262,351,26,0,0,0,2,81.34,12.93,626.56,52849,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756703,141,2,262,351,26,0,0,0,2,91.22,10.48,619.816,55313,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756701,141,2,262,351,26,0,0,0,2,79.14,12.66,635.344,29707,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742231,141,2,632,385,359,0,0,0,4,228.25,6.83,632.597,1021,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754082,141,2,632,385,359,0,0,0,2,141.36,4.36,632.695,23818,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742050,141,2,262,351,26,0,0,0,2,140.66,5.45,650.085,16854,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073749215,141,2,262,351,26,0,0,0,2,147.96,4.49,657.346,30066,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742049,141,2,262,351,26,0,0,0,2,148.02,4.96,653.649,53823,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745230,141,2,632,385,359,0,0,0,4,236.41,17.17,559.658,5541,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742187,141,2,632,385,359,0,0,0,4,232.66,15.21,469.033,989,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742232,141,2,632,385,359,0,0,0,4,233.46,6.93,634.177,37067,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752527,141,2,632,385,359,0,0,0,2,71.74,14.97,666.195,21569,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752528,141,2,262,351,26,0,0,0,2,69.45,15.35,664.512,11795,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742053,141,2,262,351,26,0,0,0,2,105.33,9.83,667.185,36437,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742054,141,2,262,351,26,0,0,0,2,109.83,9.68,666.262,885,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742052,141,2,262,351,26,0,0,0,2,115.37,9.51,664.321,49985,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073748289,141,2,632,385,359,0,0,0,2,108.36,9.44,676.887,49458,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742212,141,2,632,385,359,0,0,0,2,125.13,9.05,674.481,38887,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742195,141,2,318,205,282,0,0,0,4,239.8,15.02,477.232,27113,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745218,141,2,632,385,359,0,0,0,4,246.73,16.7,498.176,55299,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745232,141,2,632,385,359,0,0,0,4,243.9,17.75,564.658,45446,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742230,141,2,632,385,359,0,0,0,4,246.88,10.97,607.174,20820,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745236,141,2,632,385,359,0,0,0,4,252.86,12.57,582.213,42282,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745237,141,2,632,385,359,0,0,0,4,257.34,13.04,575.033,26928,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745235,141,2,318,205,282,0,0,0,4,253.21,12.38,586.114,31045,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745674,141,2,632,385,359,0,0,0,4,260.87,17.14,523.678,31108,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745233,141,2,632,385,359,0,0,0,4,258.57,15.2,556.474,34605,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745240,141,2,632,385,359,0,0,0,4,261.97,16.48,516.862,5853,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756067,141,2,318,205,282,0,0,0,3,84.72,14.66,174.508,20673,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757700,141,2,308,302,270,0,0,0,5,22.98,-6.4,165.647,47963,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757698,141,2,308,302,270,0,0,0,5,-0.88,-5.93,168.46,26302,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756071,141,2,632,385,359,0,0,0,3,81.75,15.07,170.3,32070,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756078,141,2,318,205,282,0,0,0,3,64.87,12.64,170.87,13778,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757697,141,2,308,302,270,0,0,0,5,11.2,-6.52,161.63,51566,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757702,141,2,308,302,270,0,0,0,5,-0.54,-6.41,163.077,35461,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756081,141,2,318,205,282,0,0,0,3,81.19,17.32,159.068,31831,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756086,141,2,318,205,282,0,0,0,3,78.34,17.33,155.373,28463,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757237,141,2,308,302,270,0,0,0,5,25.95,-6.51,147.895,50799,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756083,141,2,632,385,359,0,0,0,3,77.97,17.49,153.9,20394,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757675,141,2,308,302,270,0,0,0,5,-24.65,-6.29,150.016,64539,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757668,141,2,308,302,270,0,0,0,5,-42.51,-6.13,155.72,3818,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757672,141,2,308,302,270,0,0,0,5,-36.98,-6.53,158.786,24386,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757699,141,2,308,302,270,0,0,0,5,-1.58,-6.39,144.805,45733,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752701,141,2,632,385,359,0,0,0,3,54.78,13.06,142.447,16600,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757591,141,2,308,302,270,0,0,0,5,-8.4,-6.24,142.111,28577,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757684,141,2,308,302,270,0,0,0,5,-50.4,-6.05,168.889,56523,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757250,141,2,201,41,59,0,0,0,5,-57.25,-2,121.474,21667,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757039,141,2,308,302,270,0,0,0,5,-10.16,-6.69,122.857,45572,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757355,141,2,308,302,270,0,0,0,5,-74.33,-6.61,153.856,52698,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757020,141,2,308,302,270,0,0,0,5,8.49,-6.41,107.429,5576,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757037,141,2,308,302,270,0,0,0,5,10.68,-6.55,105.527,51899,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757409,141,2,308,302,270,0,0,0,5,-84.93,-6.22,152.254,64777,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757411,141,2,308,302,270,0,0,0,5,-82.68,-5.84,163.441,39900,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756121,141,2,294,432,192,0,0,0,5,-60.59,0.48,88.466,56345,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755905,141,2,294,432,192,0,0,0,5,-89.39,0.25,109.621,47164,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757253,141,2,201,41,59,0,0,0,5,-91,1.39,101.754,20232,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757406,141,2,308,302,270,0,0,0,5,-91.13,-5.24,142.189,5196,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757403,141,2,308,302,270,0,0,0,5,-97.98,-5.72,136.051,33745,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754085,141,2,294,432,192,0,0,0,5,-36.95,-3.17,36.5403,23361,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755914,141,2,294,432,192,0,0,0,5,-43.16,-4.69,29.0447,25798,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755471,141,2,201,41,59,0,0,0,5,-31.27,-5.45,5.11066,1391,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757347,141,2,201,41,59,0,0,0,5,-74.22,-4.97,25.3587,5686,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757555,141,2,326,352,0,0,0,0,11,124,28.77,-17.3504,60830,0,2,2147483647,2147483647,'\02VO\0\0\0O\0\022\0\0\0','\0*\0\0\0\08\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757353,141,2,330,353,0,5,0,0,11,125.38,28.71,-24.9264,55966,0,2,2147483647,2147483647,'\02=z\0\0z\022\0\0\0','\0*\0\0\0\08\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753656,141,2,289,160,152,0,0,0,10,78.44,-3.12,-31.1736,28988,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753657,141,2,289,160,152,0,0,0,10,69.7,-3.16,-30.7987,64900,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757279,141,2,294,432,192,0,0,0,5,-10.27,-1.4,-33.7913,412,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757563,141,2,330,353,0,5,0,0,11,105.37,29.79,-32.596,34080,0,2,2147483647,2147483647,'\02=z\0\0z\022\0\0\0','\0*\0\0\0\08\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757299,141,2,294,432,192,0,0,0,5,17.24,3.83,-38.4846,37805,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757576,141,2,326,352,0,0,0,0,11,122.35,28.2,-42.9355,3174,0,2,2147483647,2147483647,'\02VO\0\0\0O\0\022\0\0\0','\0*\0\0\0\08\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756126,141,2,294,432,192,0,0,0,5,-82.89,0.54,68.9512,3053,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753655,141,2,289,160,152,0,0,0,10,68.48,-2.63,-46.2824,29867,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752924,141,2,201,41,59,0,0,0,5,11.38,0.91,-45.5629,62634,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757557,141,2,330,353,0,5,0,0,11,102.74,30.75,-44.3244,30237,0,2,2147483647,2147483647,'\02=z\0\0z\022\0\0\0','\0*\0\0\0\08\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757793,141,2,294,432,192,0,0,0,5,-21.65,-4.57,-51.742,15227,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756145,141,2,294,432,192,0,0,0,5,-87.15,1.28,76.7592,32307,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742666,141,2,292,197,193,0,0,0,11,63.68,31.26,-68.2452,20526,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755513,141,2,201,41,59,0,0,0,5,-27.64,-6.38,-61.5612,22841,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742665,141,2,292,197,193,0,0,0,11,64.88,30.8,-75.4304,24370,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754492,141,2,244,1445,95,0,0,0,17,-6.76,-2.79,-72.3025,47590,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742722,141,2,279,38,98,0,0,0,11,54.4,30.42,-72.8485,15050,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073748655,141,2,279,38,98,0,0,0,11,115.59,23.15,-69.2764,717,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742664,141,2,292,197,193,0,0,0,11,39.21,27.59,-84.7252,9372,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742667,141,2,292,197,193,0,0,0,11,95.99,28.74,-84.0351,41837,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757803,141,2,294,432,192,0,0,0,5,-17.55,-4.83,-81.7287,29995,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742724,141,2,279,38,98,0,0,0,11,91.48,29.67,-81.3482,46858,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757816,141,2,294,432,192,0,0,0,5,-12.39,-3.95,-89.9305,23901,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757833,141,2,294,432,192,0,0,0,5,-1.22,-1.88,-90.39,57443,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755864,141,2,288,175,141,0,0,0,11,111.61,22.34,-91.3968,31743,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757210,141,2,282,431,156,0,0,0,7,-104.57,-2.63,9.33855,22856,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756939,141,2,289,160,152,0,0,0,10,64.91,-1.18,-102.773,3640,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742723,141,2,279,38,98,0,0,0,11,87.87,29.02,-102.97,39797,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757405,141,2,282,431,156,0,0,0,6,-66.65,-3.63,-102.696,60395,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756935,141,2,289,160,152,0,0,0,10,75.36,-1.69,-104.143,46502,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742663,141,2,292,197,193,0,0,0,11,65.99,29.22,-109.861,22211,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755738,141,2,294,432,192,0,0,0,5,37.23,16.86,-108.374,41047,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757316,141,2,201,41,59,0,0,0,6,-65.16,-1.85,-109.749,35772,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757842,141,2,282,431,156,0,0,0,6,-91.92,0.76,-105.063,58889,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757402,141,2,282,431,156,0,0,0,6,-53.24,-4.85,-104.993,48464,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757650,141,2,294,432,192,0,0,0,5,6.25,-0.15,-113.241,14058,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755423,141,2,201,41,59,0,0,0,5,8.04,5.04,-128.702,22304,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755435,141,2,201,41,59,0,0,0,5,51.4,16.71,-125.2,5989,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757688,141,2,201,41,59,0,0,0,6,-88.27,2.63,-128.054,45865,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757690,141,2,244,1445,95,0,0,0,17,-96.54,2.54,-124.224,53450,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742719,141,2,1276,794,0,0,0,0,35,-26.17,-2.31,-130.147,23672,0,4,2147483647,2147483647,'\02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0+\0\0\0\0F\0\0\0\0M\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755426,141,2,294,432,192,0,0,0,5,32,7.9,-143.66,20471,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755429,141,2,294,432,192,0,0,0,5,27.66,8.61,-139.12,21042,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757042,141,2,289,160,152,0,0,0,10,86.92,-1.16,-144.784,53135,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756848,141,2,201,41,59,0,0,0,5,68.99,-0.34,-146.495,29961,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756977,141,2,201,41,59,0,0,0,6,-122.44,11.19,-63.8184,29264,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756980,141,2,201,41,59,0,0,0,6,-124.41,12.49,-57.7543,26419,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757840,141,2,282,431,156,0,0,0,6,-124.84,9.83,-74.5866,27485,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742296,141,2,201,41,59,0,0,0,7,-122.77,0.15,15.4989,62823,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742718,141,2,1276,794,0,0,0,0,35,7.6,-2.07,-178.52,51966,0,4,2147483647,2147483647,'\02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0+\0\0\0\0F\0\0\0\0M\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073748421,141,2,201,41,59,0,0,0,6,-111.87,-0.23,-177.134,63251,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757685,141,2,294,432,192,0,0,0,5,49.08,0.77,-177.202,63460,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754158,141,2,201,41,59,0,0,0,6,-135.72,3.85,-131.361,42626,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757880,141,2,780,952,1,0,0,0,11,-136.6,6.4,-26.3571,6351,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755446,141,2,201,41,59,0,0,0,5,54.48,1.52,-190.372,35142,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757817,141,2,282,431,156,0,0,0,6,-128.94,2.68,-191.176,39235,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742429,141,2,201,41,59,0,0,0,5,-92.02,-0.18,-199.491,29721,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753562,141,2,201,41,59,0,0,0,5,-86.1,0.15,-202.001,62938,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755445,141,2,201,41,59,0,0,0,5,74.81,3.7,-205.924,38634,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757764,141,2,201,41,59,0,0,0,5,0.02,-1.31,-207.359,57772,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742440,141,2,201,41,59,0,0,0,5,29.56,6.14,-211.284,20844,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742501,141,2,294,432,192,0,0,0,5,-68.97,7.53,-207.888,18176,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755859,141,2,201,41,59,0,0,0,5,79.63,3.72,-206.359,55187,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755454,141,2,294,432,192,0,0,0,5,90.39,1.84,-189.997,62675,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757768,141,2,294,432,192,0,0,0,5,3.51,-0.04,-223.356,4514,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753518,141,2,294,432,192,0,0,0,5,92.76,3.13,-218.195,54166,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755451,141,2,294,432,192,0,0,0,5,94.73,1.3,-187.06,60315,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755466,141,2,201,41,59,0,0,0,5,109.42,1.06,-208.736,58812,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757659,141,2,292,197,193,0,0,0,10,110.74,4.37,-128.386,37182,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747202,141,2,294,432,192,0,0,0,5,-48.1,11.08,-227.004,60667,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757515,141,2,292,197,193,0,0,0,10,116.97,3.82,-132.882,17914,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757779,141,2,201,41,59,0,0,0,5,-59.28,9.68,-224.098,21557,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073746859,141,2,254,736,3,0,0,0,6,32.1,19.98,-229.51,61029,0,2,2147483647,2147483647,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755865,141,2,288,175,141,0,0,0,11,113.19,21.37,-98.5066,20403,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755868,141,2,279,38,98,0,0,0,10,118.38,6.76,-122.188,30746,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755639,141,2,294,432,192,0,0,0,5,116.19,0.13,-205.623,48401,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073746710,141,2,201,41,59,0,0,0,5,113.3,0.91,-235.743,48086,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757771,141,2,201,41,59,0,0,0,5,12.55,5.77,-236.426,23121,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755473,141,2,294,432,192,0,0,0,5,124.85,0.59,-229.52,31495,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742726,141,2,279,38,98,0,0,0,11,127.25,20.31,-106.926,62790,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073746858,141,2,246,735,3,0,0,0,6,32.89,19.91,-233.899,29912,0,2,2147483647,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073743019,141,2,294,432,192,0,0,0,5,-78.32,8.77,-234.84,5988,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747915,141,2,294,432,192,0,0,0,5,-22.95,10.04,-237.784,30991,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755866,141,2,288,175,141,0,0,0,11,121.25,21.26,-93.4687,40292,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756944,141,2,289,160,152,0,0,0,10,132.42,-1.41,-194.741,63905,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755474,141,2,294,432,192,0,0,0,5,129.94,1.24,-231.051,24863,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756946,141,2,289,160,152,0,0,0,10,144.01,-1.16,-211.372,24032,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073750358,141,2,288,175,141,0,0,0,11,143.55,19.52,-109.682,5889,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073750364,141,2,288,175,141,0,0,0,11,144.84,19.66,-105.156,40952,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073750365,141,2,288,175,141,0,0,0,11,142.73,19.8,-83.4594,21983,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757309,141,2,279,38,98,0,0,0,10,140.52,-1.11,-188.579,29999,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742727,141,2,279,38,98,0,0,0,11,138.49,20.2,-80.0335,39344,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755809,141,2,292,197,193,0,0,0,10,142.06,3.19,-134.318,3672,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754529,141,2,288,175,141,0,0,0,11,141.92,16.23,-41.6363,21246,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754532,141,2,279,38,98,0,0,0,11,137.99,19.37,-60.8633,57694,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754539,141,2,288,175,141,0,0,0,11,144.6,15.61,-40.7551,35263,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073746662,141,2,201,41,59,0,0,0,5,144.39,0.59,-234.452,51971,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756652,141,2,279,38,98,0,0,0,10,144.41,1.14,-165.002,13528,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756953,141,2,289,160,152,0,0,0,10,149.39,-0.81,-214.04,65244,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757527,141,2,292,197,193,0,0,0,10,147.68,3.72,-127.87,31626,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754547,141,2,288,175,141,0,0,0,11,153.65,18.72,-78.4185,47520,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754550,141,2,288,175,141,0,0,0,11,153.63,18.56,-76.0489,21415,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754553,141,2,288,175,141,0,0,0,11,148.77,19.04,-74.4356,19748,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757863,141,2,1348,1299,0,0,4,0,10,80.8,0.49,-245.758,32767,0,1,0,0,'2F\0\0\0\02\02\0\0\0\0','\0\0\0\0!\0\0\0\0\0\08\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747917,141,2,294,432,192,0,0,0,5,-12.78,4.59,-246.139,46136,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753586,141,2,246,735,3,0,0,0,6,43.68,20.39,-248.615,24932,0,2,2147483647,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754988,141,2,288,175,141,0,0,0,11,155.27,17.03,-58.0947,56606,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757311,141,2,279,38,98,0,0,0,10,160.65,-1.69,-240.294,11920,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754528,141,2,279,38,98,0,0,0,11,163.16,12.63,-49.7546,13658,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756580,141,2,292,197,193,0,0,0,10,159.15,1.84,-176.612,17442,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754592,141,2,279,38,98,0,0,0,10,161.98,2.49,-119.188,46089,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755674,141,2,279,38,98,0,0,0,10,168.62,2.81,-168.761,20902,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756961,141,2,289,160,152,0,0,0,10,165.65,-1.69,-240.506,21430,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755796,141,2,279,38,98,0,0,0,11,169.69,2.72,-87.7072,7143,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755810,141,2,292,197,193,0,0,0,10,170.43,0,-115.867,52332,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755815,141,2,292,197,193,0,0,0,11,170.9,2.64,-83.4264,44128,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757743,141,2,288,175,141,0,0,0,11,171.95,7.43,-39.477,59871,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757745,141,2,288,175,141,0,0,0,11,172.57,7.34,-40.5044,37233,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756642,141,2,279,38,98,0,0,0,10,174.74,5.61,-200.303,23719,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756657,141,2,292,197,193,0,0,0,10,175.39,4.96,-190.334,59516,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754527,141,2,279,38,98,0,0,0,11,175.12,6.01,-28.3529,54815,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757556,141,2,326,352,0,0,0,0,11,141.4,28.53,-23.3314,42425,0,2,2147483647,2147483647,'\02VO\0\0\0O\0\022\0\0\0','\0*\0\0\0\08\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755689,141,2,292,197,193,0,0,0,10,191.1,2.22,-154.026,43403,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755697,141,2,292,197,193,0,0,0,10,192.35,3.37,-162.6,478,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753670,141,2,279,38,98,0,0,0,11,191.66,0.57,-39.152,2189,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757775,141,2,294,432,192,0,0,0,5,13.15,10.96,-252.524,62564,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753679,141,2,292,197,193,0,0,0,11,202.95,-1.94,-107.584,53404,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755374,141,2,279,38,98,0,0,0,10,202.1,7.05,-180.151,12662,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754616,141,2,292,197,193,0,0,0,11,209.56,-1.66,-80.8762,34159,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073748574,141,2,246,735,3,0,0,0,6,27.08,19.83,-258.168,63004,0,2,2147483647,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757314,141,2,279,38,98,0,0,0,10,186.48,-1.69,-260.417,32498,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755623,141,2,254,736,3,0,0,0,6,30.22,19.81,-261.464,21596,0,2,2147483647,2147483647,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755624,141,2,254,736,3,0,0,0,6,25.64,19.83,-262.593,42097,0,2,2147483647,2147483647,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754597,141,2,279,38,98,0,0,0,11,218.31,-1.74,-96.2006,44200,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073752770,141,2,292,197,193,0,0,0,11,230.06,-2.85,-58.1529,52206,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754611,141,2,292,197,193,0,0,0,11,227.33,-1.16,-114.267,15758,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742659,141,2,279,38,98,0,0,0,10,234.7,1.17,-164.976,49622,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742697,141,2,279,38,98,0,0,0,12,239.05,-17.96,-85.6509,28717,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742585,141,2,292,197,193,0,0,0,10,239.48,7,-189.005,9851,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754615,141,2,292,197,193,0,0,0,11,233.28,-0.51,-109.602,58326,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073746379,141,2,308,302,270,0,0,0,12,254.19,-18.37,-98.3717,37652,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742660,141,2,279,38,98,0,0,0,10,259.71,9.14,-196.493,4031,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754508,141,2,308,302,270,0,0,0,12,261.62,-19.17,-123.243,50980,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073748936,141,2,279,38,98,0,0,0,11,220.07,-2.95,-48.317,60391,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754600,141,2,308,302,270,0,0,0,12,263.92,-18.69,-104.301,50479,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756907,141,2,216,26,126,0,0,0,14,260.15,-18.44,-83.0222,12444,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742583,141,2,292,197,193,0,0,0,10,260.83,13.56,-206.385,12319,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755651,141,2,279,38,98,0,0,0,14,270.39,-17.64,-174.279,63472,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757505,141,2,216,26,126,0,0,0,14,269.49,-19.03,-117.56,13047,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742694,141,2,279,38,98,0,0,0,14,269.84,-18.18,-165.438,45148,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742584,141,2,292,197,193,0,0,0,10,267.42,7.55,-194.791,26435,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755904,141,2,292,197,193,0,0,0,11,278.57,-13.77,-34.8601,33953,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073744876,141,2,308,302,270,0,0,0,14,282.82,-19.09,-147.82,58091,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073746749,141,2,308,302,270,0,0,0,12,288.1,-19.29,-95.7813,18494,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073745471,141,2,308,302,270,0,0,0,12,288.19,-19.21,-124.966,33092,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073749339,141,2,279,38,98,0,0,0,12,285.46,-19.23,-125.517,41506,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757665,141,2,308,302,270,0,0,0,12,285.87,-19.21,-84.84,20736,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757510,141,2,216,26,126,0,0,0,14,294.72,-18.41,-134.38,33877,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742698,141,2,279,38,98,0,0,0,12,292.92,-19.24,-102.416,50523,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757663,141,2,279,38,98,0,0,0,12,300.02,-19.29,-69.1167,58608,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757667,141,2,308,302,270,0,0,0,12,294.03,-19.29,-91.3375,16782,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742637,141,2,308,302,270,0,0,0,14,309.1,-18.98,-169.461,29993,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757660,141,2,308,302,270,0,0,0,12,307.85,-19.29,-65.6699,5917,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757662,141,2,308,302,270,0,0,0,12,307.27,-19.29,-59.8321,16605,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742635,141,2,308,302,270,0,0,0,14,310.83,-18.36,-140.299,43713,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742636,141,2,308,302,270,0,0,0,14,310.64,-19.04,-167.744,20929,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757543,141,2,216,26,126,0,0,0,14,315.13,-18.76,-178.511,23500,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757673,141,2,216,26,126,0,0,0,14,313.2,-19.29,-73.788,39472,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754630,141,2,292,197,193,0,0,0,13,323.54,-13.72,-35.0975,61884,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742693,141,2,279,38,98,0,0,0,14,318.27,-19.11,-152.023,33285,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754629,141,2,292,197,193,0,0,0,13,329.54,-13.96,-31.9957,60439,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757518,141,2,216,26,126,0,0,0,14,333.33,-18.57,-136.46,2519,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757661,141,2,308,302,270,0,0,0,12,331.77,-18.79,-70.8015,595,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754620,141,2,279,38,98,0,0,0,13,329.15,-13.94,-35.2421,15040,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754659,141,2,279,38,98,0,0,0,14,344.14,-18.56,-84.9706,58807,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742630,141,2,308,302,270,0,0,0,14,345.66,-18.56,-106.489,57000,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757530,141,2,216,26,126,0,0,0,14,344.92,-17.83,-135.017,63663,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742692,141,2,279,38,98,0,0,0,14,351.58,-19.24,-106.611,27301,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742631,141,2,308,302,270,0,0,0,14,356.54,-19.29,-113.81,20641,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742634,141,2,308,302,270,0,0,0,14,354.07,-18.96,-146.959,35003,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755837,141,2,279,38,98,0,0,0,13,358.3,-17.16,-66.1784,2203,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755853,141,2,292,197,193,0,0,0,13,356.39,-14.87,-43.6618,24130,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073756924,141,2,216,26,126,0,0,0,14,354.43,-19.21,-85.9826,57034,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742632,141,2,308,302,270,0,0,0,14,365.45,-19.06,-137.721,22738,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757832,141,2,1325,1298,0,0,4,0,14,363.84,-17.56,-71.3948,3458,0,1,0,0,'\02e\0\0\0\0\02\02\0\0\0\0','\0\0\0\0!\0\0\0\0\0\08\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755856,141,2,292,197,193,0,0,0,13,367.32,-16.52,-61.5579,693,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742633,141,2,308,302,270,0,0,0,14,369.01,-19.14,-145.158,11356,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754675,141,2,308,302,270,0,0,0,14,369.55,-19.16,-105.623,22120,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754683,141,2,292,197,193,0,0,0,13,386.26,-17.72,-100.493,56592,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742700,141,2,279,38,98,0,0,0,13,385.08,-17.47,-121.433,39699,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754681,141,2,292,197,193,0,0,0,13,394.19,-17.83,-98.9006,40971,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757550,141,2,292,197,193,0,0,0,13,390.89,-17.53,-133.981,51581,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757906,141,2,780,952,1,0,3,0,12,110.62,1.58,-139.119,2306,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073746617,141,2,201,41,59,0,0,0,5,-11.91,12.28,-274.082,23624,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753390,141,2,294,432,192,0,0,0,5,-4.24,10.45,-280.567,49539,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755633,141,2,254,736,3,0,0,0,6,37.67,19.67,-277.326,44616,0,2,2147483647,2147483647,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742424,141,2,201,41,59,0,0,0,5,15.2,10.71,-292,5572,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755636,141,2,246,735,3,0,0,0,6,52.01,21.56,-300.106,56866,0,2,2147483647,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742474,141,2,282,431,156,0,0,0,8,-67.35,24.43,-295.939,53871,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742399,141,2,201,41,59,0,0,0,8,-69.28,20.69,-306.804,12136,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742398,141,2,201,41,59,0,0,0,8,-65.39,22.4,-308.739,38530,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742423,141,2,201,41,59,0,0,0,8,-3.97,15.46,-309.288,28397,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073743020,141,2,294,432,192,0,0,0,5,-71.75,13.5,-246.187,60622,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742400,141,2,201,41,59,0,0,0,8,-90.91,9.4,-305.319,43664,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073750986,141,2,282,431,156,0,0,0,8,-107.88,10.32,-323.241,23421,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073750984,141,2,282,431,156,0,0,0,8,-74.8,15.09,-343.51,10015,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753567,141,2,244,1445,95,0,0,0,17,-116.58,-0.32,-233.967,30588,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073750893,141,2,294,432,192,0,0,0,9,-142.09,-3.05,-316.501,22310,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073750895,141,2,201,41,59,0,0,0,9,-145.03,-4.53,-311.952,48059,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757824,141,2,282,431,156,0,0,0,6,-140.43,4.66,-155.524,35391,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753393,141,2,294,432,192,0,0,0,9,-153.69,-4.97,-291.693,3742,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073750894,141,2,294,432,192,0,0,0,9,-149.21,-4.49,-328.964,65225,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073750897,141,2,201,41,59,0,0,0,6,-150.18,13.13,-184.3,41749,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742397,141,2,201,41,59,0,0,0,8,-35.68,21.23,-345.325,56932,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755612,141,2,282,431,156,0,0,0,8,18.16,15.53,-345.975,25709,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747944,141,2,282,431,156,0,0,0,8,-16.5,19.09,-345.822,52908,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747952,141,2,282,431,156,0,0,0,8,-32.8,20.84,-346.626,13400,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073757363,141,2,282,431,156,0,0,0,6,-156.53,13.93,-195.314,4289,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747215,141,2,294,432,192,0,0,0,9,-167.17,-1.86,-343.467,26696,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742387,141,2,201,41,59,0,0,0,9,-166.59,4.11,-248.467,21785,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747000,141,2,294,432,192,0,0,0,9,-180.09,4.39,-262.187,2454,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747004,141,2,294,432,192,0,0,0,9,-181.13,-3.32,-293.111,14569,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073754799,141,2,201,41,59,0,0,0,9,-185.91,-4.09,-312.631,58229,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747445,141,2,294,432,192,0,0,0,9,-183.64,-3.97,-320.373,1824,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747212,141,2,294,432,192,0,0,0,9,-146.07,-0.93,-356.725,14439,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742384,141,2,201,41,59,0,0,0,9,-159.55,-0.54,-358.589,49094,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753397,141,2,294,432,192,0,0,0,9,-189.22,-4.14,-314.379,42004,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073750987,141,2,201,41,59,0,0,0,8,-94.02,18.25,-366.474,29431,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747220,141,2,294,432,192,0,0,0,9,-169.1,4.54,-377.28,38845,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073750991,141,2,282,431,156,0,0,0,8,-121.31,25.41,-373.042,40240,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073750990,141,2,282,431,156,0,0,0,8,-124.29,25.82,-382.001,5442,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073751557,141,2,293,197,193,0,0,0,12,-208.61,2.28,-380.914,44513,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755934,141,2,201,41,59,0,0,0,8,-113.83,27.36,-393.187,29964,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742383,141,2,201,41,59,0,0,0,9,-174.76,10.83,-393.904,61462,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742386,141,2,201,41,59,0,0,0,9,-207.61,18.33,-247.72,44060,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073753398,141,2,294,432,192,0,0,0,9,-214.45,-3.4,-339.342,12582,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742535,141,2,294,432,192,0,0,0,9,-212.71,15.18,-403.011,39839,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073755509,141,2,294,432,192,0,0,0,9,-214.87,1.71,-288.939,12341,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742523,141,2,294,432,192,0,0,0,9,-217.47,16.13,-257.454,27513,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742524,141,2,294,432,192,0,0,0,9,-215.72,16.08,-256.181,39367,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742478,141,2,294,432,192,0,0,0,9,-219.21,16.6,-408.561,35915,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742536,141,2,294,432,192,0,0,0,9,-177.38,15.05,-409.337,32106,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742378,141,2,201,41,59,0,0,0,9,-203.41,16.91,-414.429,60987,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742392,141,2,201,41,59,0,0,0,8,-152.47,27.67,-421.05,33833,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742591,141,2,244,1445,95,0,0,0,17,-140.8,27.59,-412.768,18366,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073747437,141,2,201,41,59,0,0,0,9,-230.11,4.64,-286.572,35322,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742472,141,2,282,431,156,0,0,0,8,-139.94,33.72,-445.53,56355,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742394,141,2,201,41,59,0,0,0,8,-115.11,30.16,-449.624,33380,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742479,141,2,294,432,192,0,0,0,9,-207.86,20.35,-449.664,7995,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143621,148,2,91,100,110,0,0,0,43,-577.95,21.56,-216.396,3142,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143624,148,2,117,135,384,0,0,0,34,-564.76,49.64,-217.889,63320,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150481,148,2,91,100,110,0,0,0,33,-482.33,58.99,-218.495,56056,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150485,148,2,91,101,109,0,0,0,33,-488.44,58.08,-220.096,27490,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150494,148,2,48,48,29,0,0,0,32,-396.28,64.26,-219.054,59150,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143639,148,2,91,98,107,0,0,0,34,-564.06,50.45,-211.687,16804,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150441,148,2,117,135,384,0,0,0,34,-471.56,59.29,-213.544,11280,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074123446,148,2,117,135,384,0,0,0,32,-386.83,64.49,-231.564,29065,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150516,148,2,48,48,29,0,0,0,32,-390.31,69.18,-254.885,60899,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074056089,148,2,91,98,107,0,0,0,34,-547.24,50.94,-202.174,31644,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150489,148,2,91,101,109,0,0,0,33,-452.71,56.39,-206.001,13542,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150491,148,2,91,101,109,0,0,0,33,-453.72,56.19,-203.46,32320,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143717,148,2,91,98,107,0,0,0,43,-532.06,20.64,-200.697,5663,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074104430,148,2,91,101,109,0,0,0,43,-536.28,20.67,-200.764,3219,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073938681,148,2,91,98,107,0,0,0,34,-546.33,50.89,-201.402,31921,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074124927,148,2,91,99,108,0,0,0,43,-532.28,21.08,-204.515,4542,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150503,148,2,91,101,109,0,0,0,33,-449.56,54.15,-195.458,36193,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074123365,148,2,91,100,110,0,0,0,43,-557.42,19.99,-187.538,51592,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147058,148,2,48,48,29,0,0,0,32,-369.7,66.44,-231.924,28051,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150519,148,2,48,48,29,0,0,0,32,-361.28,63.8,-258.087,20375,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146411,148,2,91,99,108,0,0,0,43,-498.14,17.82,-164.74,4017,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147086,148,2,48,48,29,0,0,0,32,-354.02,67.73,-226.221,6558,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146414,148,2,91,100,110,0,0,0,43,-499.71,17.5,-161.117,56148,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147447,148,2,130,53,97,0,0,0,31,-355.51,63.3,-156.663,9133,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147462,148,2,130,53,97,0,0,0,31,-352.46,62.47,-150.431,46225,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150529,148,2,130,53,97,0,0,0,31,-434.96,61.48,-145.651,65106,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143659,148,2,130,53,97,0,0,0,31,-425.27,61.47,-145.105,46526,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149430,148,2,48,48,29,0,0,0,32,-353.28,67.63,-224.067,17027,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143641,148,2,91,101,109,0,0,0,34,-571.61,49.78,-227.671,45678,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143649,148,2,91,99,108,0,0,0,43,-579.17,22.7,-237.956,41991,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149059,148,2,131,30,81,0,0,0,43,-578.56,17.68,-170.282,60353,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074115531,148,2,91,98,107,0,0,0,43,-575.18,11.23,-130.628,16616,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074115532,148,2,91,100,110,0,0,0,43,-576.32,11.37,-133.691,6620,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074115533,148,2,91,99,108,0,0,0,43,-564.17,11.86,-132.802,45703,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074124649,148,2,117,135,384,0,0,0,31,-417.34,61.79,-130.524,27182,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143619,148,2,91,98,107,0,0,0,43,-583.89,22.26,-236.686,41862,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149263,148,2,130,53,97,0,0,0,31,-410.24,60.99,-116.872,31994,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074118708,148,2,130,53,97,0,0,0,31,-461.3,63.32,-109.555,64425,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150518,148,2,48,48,29,0,0,0,32,-354.45,65.78,-253.792,26209,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150020,148,2,48,48,29,0,0,0,32,-344.65,66.94,-223.61,61911,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074131210,148,2,117,135,384,0,0,0,32,-348.5,67.32,-235.016,8189,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074118703,148,2,130,53,97,0,0,0,31,-465.5,63.03,-102.797,32297,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145863,148,2,130,53,97,0,0,0,31,-418.36,61.05,-102.666,6313,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074127185,148,2,117,135,384,0,0,0,31,-399.55,57.43,-89.9314,13079,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074123667,148,2,236,305,265,0,0,0,32,-513.25,40.42,-79.3393,62943,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150428,148,2,130,53,97,0,0,0,31,-362.88,62.02,-84.3213,35535,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150429,148,2,130,53,97,0,0,0,31,-365.67,62.19,-81.111,35184,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074109031,148,2,236,305,265,0,0,0,32,-504.14,41.89,-80.6768,16971,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141639,148,2,91,99,108,0,0,0,33,-477.1,71.08,-299.46,15062,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074133053,148,2,91,101,109,0,0,0,43,-557.33,25.69,-261.024,17910,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148603,148,2,131,30,81,0,0,0,43,-552.6,25.12,-253.319,21277,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147580,148,2,91,98,107,0,0,0,43,-558.16,29.44,-229.861,53197,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074117576,148,2,91,99,108,0,0,0,33,-479.38,75.15,-316.412,16073,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074117581,148,2,91,100,110,0,0,0,33,-481.82,73.93,-315.381,41001,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143622,148,2,91,101,109,0,0,0,43,-596.64,21.44,-225.969,26520,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074078771,148,2,91,101,109,0,0,0,43,-618.04,23.01,-192.896,20951,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150477,148,2,91,98,107,0,0,0,33,-462.75,65.71,-268.177,65040,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150487,148,2,91,101,109,0,0,0,33,-456.9,62.64,-234.088,8856,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074104994,148,2,236,305,265,0,0,0,32,-513.51,40.42,-79.6551,57703,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074126722,148,2,236,305,265,0,0,0,32,-519.26,40.87,-62.0619,47858,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150439,148,2,236,305,265,0,0,0,32,-481.39,46.42,-63.4691,54178,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150445,148,2,236,305,265,0,0,0,32,-484.43,45.97,-62.8671,58397,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150446,148,2,236,305,265,0,0,0,32,-505.84,41.59,-51.6,65337,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146230,148,2,130,53,97,0,0,0,33,-414.83,64.45,-55.2985,39675,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147916,148,2,91,101,109,0,0,0,33,-484,67.07,-268.051,63551,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074125507,148,2,117,135,384,0,0,0,34,-488.39,68.75,-277.163,7435,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074121792,148,2,91,98,107,0,0,0,33,-504.23,73.38,-289.556,4087,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074121783,148,2,91,99,108,0,0,0,33,-507.37,74.14,-293.898,59823,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073805779,148,2,117,135,384,0,0,0,34,-500.56,72.47,-293.858,50587,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147609,148,2,131,30,81,0,0,0,43,-507.39,24.02,-246.307,17831,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074115024,148,2,91,100,110,0,0,0,34,-508,58.09,-259.421,57620,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148599,148,2,91,98,107,0,0,0,34,-511.16,52.33,-230.824,10795,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074104340,148,2,91,98,107,0,0,0,43,-486.65,18.83,-230.98,5548,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074142022,148,2,91,99,108,0,0,0,33,-487.93,67.85,-269.794,392,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742863,148,2,453,580,0,0,0,0,35,-307.5,63.45,-285.688,32767,0,4,2147483647,0,'\02\0\0\0\02\02\0\0\0\0','\0\0\0\"\0\0@\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150421,148,2,2190,2267,384,0,0,0,29,-307.24,60.31,-131.021,21261,1,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150613,148,2,48,48,29,0,0,0,29,-306.19,61.98,-163.47,32643,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150644,148,2,48,48,29,0,0,0,29,-307.12,61.38,-158.183,19925,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147846,148,2,2190,2267,384,0,0,0,29,-292.94,59.6,-125.034,8801,1,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149411,148,2,48,48,29,0,0,0,29,-295.24,67.29,-218.534,19177,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150670,148,2,48,48,29,0,0,0,29,-291.2,61.13,-169.269,10859,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149418,148,2,48,48,29,0,0,0,29,-291.12,67.35,-218.221,39577,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150573,148,2,2190,2267,384,0,0,0,29,-289.69,61.12,-171.384,29169,1,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150352,148,2,48,48,29,0,0,0,29,-241.51,66,-175.433,49359,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150364,148,2,48,48,29,0,0,0,29,-243.3,65.35,-175.424,28734,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150656,148,2,48,48,29,0,0,0,29,-291.82,60.48,-117.801,8579,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742862,148,2,453,582,0,0,0,0,35,-206.13,55.31,-126.978,15470,0,4,2147483647,0,'\02\0\0\0\022\0\0\0\0','\0\0\0\"\0\0@\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150746,148,2,519,1213,0,0,4,0,1,-322.76,60.91,-97.9591,63437,0,1,2147483647,0,'2A;\0\0;\0\0\0\0K\02\0\0\0','\0\\0\0\\0 \0d\0\0g\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147701,148,2,221,178,154,0,0,0,30,-304.64,62.24,-99.3098,54473,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149366,148,2,221,178,154,0,0,0,30,-278.04,61.23,-86.2514,10623,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150745,148,2,130,53,97,0,12,0,28,-337.87,61.15,-76.9278,57772,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145460,148,2,91,101,109,0,0,0,43,-514.62,22.54,-226.313,59960,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147604,148,2,91,100,110,0,0,0,43,-530.3,25.22,-251.977,25479,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074126489,148,2,117,135,384,0,0,0,34,-525.79,49.81,-245.501,53559,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145475,148,2,91,99,108,0,0,0,43,-529.62,25.06,-255.837,9584,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074127346,148,2,91,99,108,0,0,0,34,-531.1,49.68,-250.864,52419,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150447,148,2,236,305,265,0,0,0,32,-512.58,40.41,-59.6179,55921,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146168,148,2,130,53,97,0,0,0,33,-418.89,62.4,-46.7604,23946,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074139985,148,2,91,100,110,0,0,0,34,-536.28,42.79,-228.716,20130,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074131340,148,2,130,53,97,0,0,0,33,-455.73,63.08,-30.0253,6968,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146202,148,2,130,53,97,0,0,0,33,-419.02,58.84,-34.1301,50440,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074131347,148,2,130,53,97,0,0,0,33,-445.04,57.65,-20.2285,33807,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150669,148,2,238,304,145,0,0,0,31,-400.11,49.51,5.79553,4555,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150239,148,2,238,304,145,0,0,0,31,-430.65,49.54,0.335085,26262,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150268,148,2,238,304,145,0,0,0,31,-434.24,49.68,33.0577,17532,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146471,148,2,2057,2193,145,0,0,0,31,-320.1,58.15,-10.6655,58676,1,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147962,148,2,221,178,154,0,0,0,30,-315.35,62.57,-46.0749,24156,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149014,148,2,221,178,154,0,0,0,30,-308.38,63.13,-52.4908,3322,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149571,148,2,2057,2193,145,0,0,0,31,-304.69,57.74,-12.0992,60595,1,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147951,148,2,117,135,384,0,0,0,30,-275.43,63.68,-49.246,55675,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149044,148,2,2919,3175,27,0,0,0,50,-267.89,63.39,-20.0865,50274,1,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149182,148,2,221,178,154,0,0,0,30,-264,63.89,-45.4584,4591,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145150,148,2,117,135,384,0,0,0,31,-404.94,53.4,33.3382,53478,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148135,148,2,238,304,145,0,3,0,31,-401.76,53.51,36.3503,110,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149941,148,2,207,182,167,0,0,0,31,-506.14,65.51,38.9582,56779,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074142867,148,2,238,304,145,0,0,0,31,-440.31,49.51,48.1553,21767,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149939,148,2,207,182,167,0,0,0,31,-532.69,65.69,45.8654,44014,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149638,148,2,55,58,233,0,0,0,33,-289.73,62,24.6731,18091,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149642,148,2,55,58,233,0,0,0,33,-265.58,55.92,33.4562,3817,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150690,148,2,238,304,145,0,0,0,31,-383.73,51.5,51.5443,15153,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145154,148,2,117,135,384,0,0,0,33,-360.06,57.98,63.176,42802,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145174,148,2,117,135,384,0,0,0,31,-418.47,55.22,63.4967,27179,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074005480,148,2,117,135,384,0,0,0,33,-316.07,64.31,62.3932,29757,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149022,148,2,207,182,167,0,0,0,31,-460.93,64.6,72.2725,44451,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149956,148,2,207,182,167,0,0,0,31,-523.41,65.54,61.3492,13552,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149714,148,2,207,182,167,0,0,0,31,-502.3,65.67,84.67,5607,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149959,148,2,207,182,167,0,0,0,31,-525.11,65.62,97.203,51215,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149979,148,2,207,182,167,0,0,0,31,-522.77,65.62,99.3184,64732,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134810,148,2,39,39,50,0,0,0,14,-336.36,21.31,157.206,5885,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134817,148,2,54,57,60,0,0,0,14,-339.68,21.38,160.008,64956,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134811,148,2,39,39,50,0,0,0,14,-336.71,21.95,168.612,29220,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134816,148,2,39,39,50,0,0,0,14,-301.03,22.1,129.475,1859,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134812,148,2,39,39,50,0,0,0,14,-294.43,21.49,170.757,51979,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134813,148,2,39,39,50,0,0,0,14,-292.6,20.82,118.714,57085,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134814,148,2,39,39,50,0,0,0,14,-300.4,21.53,166.055,10545,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140841,148,2,39,39,50,0,0,0,14,-291.4,20.25,130.769,18792,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134788,148,2,39,39,50,0,0,0,14,-267.85,20.39,91.1813,51817,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134790,148,2,39,39,50,0,0,0,14,-266.93,18.32,60.2164,15290,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134793,148,2,54,57,60,0,0,0,14,-263.65,17.35,61.4501,55248,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134798,148,2,39,39,50,0,0,0,14,-255.98,9.96,10.2603,12281,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134799,148,2,54,57,60,0,0,0,14,-242.41,8.66,-2.98973,11773,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149646,148,2,55,58,233,0,0,0,33,-241.82,60.07,34.6751,410,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134795,148,2,39,39,50,0,0,0,14,-240.22,13.67,51.2775,36047,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134797,148,2,39,39,50,0,0,0,14,-236.39,15.01,52.6155,63584,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074103166,148,2,117,135,384,0,0,0,34,-238.33,63.4,25.7918,45971,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149667,148,2,55,58,233,0,0,0,33,-224.23,68.62,11.5693,27009,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149327,148,2,221,178,154,0,0,0,30,-216.82,57.96,-68.8442,27465,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149345,148,2,221,178,154,0,0,0,30,-219.54,58.1,-56.9581,46903,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150513,148,2,218,771,14,0,0,0,10,-223.2,1.41,-71.2168,63605,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148555,148,2,218,771,14,0,0,0,10,-214.17,1.5,-82.278,56195,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150475,148,2,54,57,60,0,0,0,10,-206.71,2.54,-60.9597,17874,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150493,148,2,218,771,14,0,0,0,10,-212.57,1.5,-84.179,30121,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150504,148,2,218,771,14,0,0,0,10,-213.86,1.44,-83.871,41709,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074117891,148,2,39,39,50,0,0,0,14,-202.96,4.83,4.34942,43187,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149017,148,2,218,771,14,0,0,0,10,-212.64,2.07,-91.4491,24977,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149658,148,2,55,58,233,0,0,0,33,-203.65,57.63,49.9289,61934,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149169,148,2,221,178,154,0,0,0,30,-203.89,50.67,-40.6238,49399,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147381,148,2,218,771,14,0,0,0,10,-211.95,1.94,-88.2669,27437,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150474,148,2,218,771,14,0,0,0,10,-199.56,2.07,-65.1038,41840,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150486,148,2,54,57,60,0,0,0,10,-196.63,2.46,-25.251,4266,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150492,148,2,218,771,14,0,0,0,10,-193.91,2.13,-41.0693,23183,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148966,148,2,55,58,233,0,0,0,33,-192.64,77.68,42.3563,30295,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150650,148,2,218,771,14,0,0,0,10,-195.51,2.22,-40.1862,51844,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148986,148,2,117,135,384,0,0,0,34,-196.69,74.54,21.4171,14820,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150662,148,2,446,483,233,0,0,0,34,-183.72,77.7,38.0484,41274,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150462,148,2,218,771,14,0,0,0,10,-187.08,3.03,-83.1889,42863,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074125641,148,2,55,58,233,0,0,0,33,-188.4,78.27,45.2144,20146,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147095,148,2,218,771,14,0,0,0,10,-199.68,3.4,-108.169,12367,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147362,148,2,10,10,21,0,0,0,10,-179.58,3.14,-107.269,63500,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150575,148,2,13,12,39,0,0,0,7,-179.93,32.81,-96.5614,24383,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134847,148,2,54,57,60,0,0,0,10,-178.79,4.5,-119.585,653,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147537,148,2,54,57,60,0,0,0,10,-175.52,29.33,-86.8876,19789,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147539,148,2,54,57,60,0,0,0,10,-173.17,28.73,-89.1809,16691,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150574,148,2,13,12,39,0,0,0,7,-167.33,25.98,-90.4907,12888,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074120932,148,2,54,57,60,0,0,0,10,-167.14,1.9,-14.6108,1461,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150576,148,2,13,12,39,0,0,0,7,-163.68,21.02,-74.7567,15963,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147541,148,2,54,57,60,0,0,0,10,-157.63,17.41,-70.6175,64613,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150816,148,2,203,32,35,0,0,0,14,-147.79,0.98,-53.7358,62786,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150848,148,2,177,39,50,0,0,0,14,-133.75,0.19,-32.0003,55685,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150849,148,2,177,39,50,0,0,0,14,-156.74,1.36,-31.9995,56346,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150850,148,2,177,39,50,0,0,0,14,-155.63,1.71,-37.2865,56346,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150851,148,2,177,39,50,0,0,0,14,-156.32,1.47,-33.7076,56346,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150847,148,2,177,39,50,0,0,0,14,-128.46,-0.57,-35.9663,55685,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150856,148,2,1401,1012,409,0,40,0,13,-145.29,0.32,-28.6584,46189,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150845,148,2,177,39,50,0,0,0,14,-133.11,-0.19,-89.4992,46000,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150846,148,2,177,39,50,0,0,0,14,-152.15,1.71,-90.0925,24874,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150861,148,2,177,39,50,0,0,0,13,-141.14,1.25,-35.3338,51535,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150862,148,2,180,22,48,0,0,0,10,-139.61,1.09,-35.4518,51535,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150863,148,2,177,39,50,0,0,0,13,-120.09,-1.37,-94.0399,37070,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134825,148,2,39,39,50,0,0,0,14,-353.27,21.33,191.185,8482,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134821,148,2,54,57,60,0,0,0,14,-330.22,21.34,206.3,548,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134819,148,2,54,57,60,0,0,0,14,-293.87,21.59,206.024,9600,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134824,148,2,54,57,60,0,0,0,14,-333.53,21.13,211.305,16795,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150888,148,2,177,39,50,0,0,0,13,-149.87,0.64,-28.8264,11249,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150891,148,2,177,39,50,0,3,0,13,-146.81,1.88,-43.3122,44406,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150889,148,2,177,39,50,0,0,0,13,-155.9,1.83,-53.7081,5640,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150887,148,2,177,39,50,0,0,0,13,-141.37,0.37,-15.2466,53811,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150885,148,2,177,39,50,0,0,0,13,-107.21,-2.38,-81.9306,42207,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150886,148,2,177,39,50,0,0,0,13,-105.78,-4.1,-62.9076,36742,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150864,148,2,180,22,48,0,0,0,10,-141.96,1.64,-113.779,5442,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146081,148,2,54,57,60,0,0,0,10,-88.09,1.92,-123.946,45279,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147667,148,2,54,57,60,0,0,0,10,-93.27,2.11,-123.136,5642,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150640,148,2,10,10,21,0,0,0,10,-117.68,7.55,-144.928,13479,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150608,148,2,54,57,60,0,0,0,10,-106.55,6.09,-153.253,55956,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149007,148,2,10,10,21,0,0,0,10,-119.28,10.7,-161.837,48793,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150289,148,2,10,10,21,0,0,0,10,-124.75,12.37,-167.874,24985,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149035,148,2,10,10,21,0,0,0,10,-78.19,1.4,-143.797,56388,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149040,148,2,10,10,21,0,0,0,10,-77.28,0.69,-130.946,33008,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149045,148,2,10,10,21,0,0,0,10,-73.92,0.9,-141.706,32051,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150892,148,2,473,503,63,0,0,0,13,-76.53,-5.4,-62.313,388,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074142319,148,2,197,159,76,0,0,0,7,-65.58,-3.37,-198.9,54901,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074142325,148,2,197,159,76,0,0,0,7,-63.52,-3.25,-211.634,61586,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149064,148,2,10,10,21,0,0,0,10,-68.46,1.35,-163.448,2045,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150611,148,2,10,10,21,0,0,0,10,-61.65,-2.68,-115.279,23490,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074132487,148,2,197,159,76,0,0,0,7,-53.93,-3.49,-186.83,55121,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148398,148,2,197,159,76,0,0,0,7,-51.9,-3.49,-180.504,32900,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148910,148,2,54,57,60,0,0,0,10,-58.67,1.21,-159.385,25355,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149061,148,2,10,10,21,0,0,0,10,-59.19,-0.14,-166.955,46711,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148829,148,2,54,57,60,0,0,0,10,-57.74,-3.82,-94.6154,14214,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147545,148,2,56,59,385,0,0,0,7,-46.83,-2.59,-210.275,59267,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147554,148,2,56,59,385,0,0,0,7,-35.43,-3.49,-179.448,46004,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148390,148,2,54,57,60,0,0,0,10,-25.99,1.18,-138.777,10689,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150708,148,2,10,10,21,0,0,0,10,-30.01,-4.18,-95.0337,54491,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150735,148,2,128,1446,104,0,0,0,12,-31.91,0.91,-223.546,12277,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148925,148,2,54,57,60,0,0,0,10,-23.46,-1.69,-101.473,19276,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150241,148,2,10,10,21,0,0,0,10,-19.14,0.59,-139.413,52620,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074114481,148,2,49,49,57,0,0,0,2,-8.9,3.94,-218.33,64799,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074125019,148,2,37,37,25,0,0,0,2,-16.71,3.12,-229.033,29436,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074125023,148,2,49,49,57,0,0,0,2,-16.75,3.05,-231.639,9758,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074138082,148,2,37,37,25,0,0,0,2,-15.7,1.44,-197.876,16128,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141200,148,2,37,37,25,0,0,0,2,-2.59,1.6,-187.65,24598,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148625,148,2,56,59,385,0,0,0,7,-0.93,-11.25,-122.926,12550,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147257,148,2,56,59,385,0,0,0,7,-8.43,-3.45,-134.922,29790,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074109375,148,2,37,37,25,0,0,0,2,-8.39,4.86,-235.431,13692,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147560,148,2,56,59,385,0,0,0,7,-6.66,-3.42,-134.944,35458,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141198,148,2,37,37,25,0,0,0,2,-0.87,1.77,-186.554,20979,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141204,148,2,37,37,25,0,0,0,2,4.69,2.41,-177.618,19701,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148629,148,2,197,159,76,0,0,0,7,8.28,-10.98,-107.746,53789,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074097948,148,2,49,49,57,0,0,0,2,7.08,5.03,-252.01,6698,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141044,148,2,49,49,57,0,0,0,2,3.02,2.01,-189.069,18626,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074103960,148,2,37,37,25,0,0,0,2,7.62,5.57,-247.935,23900,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074138030,148,2,37,37,25,0,0,0,2,12.71,3.53,-142.608,10960,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074109369,148,2,49,49,57,0,0,0,2,13.24,5.79,-248.925,44259,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150590,148,2,197,159,76,0,0,0,7,11.49,-11.11,-75.6975,16944,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074138047,148,2,49,49,57,0,0,0,2,13.58,3.99,-145.607,47452,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074138037,148,2,49,49,57,0,0,0,2,20.3,2.91,-137.764,46572,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150580,148,2,197,159,76,0,0,0,7,22.48,-11.37,-66.3192,44772,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742859,148,2,453,583,0,0,0,0,35,-4.84,-6.28,-22.2019,65534,0,4,2147483647,0,'2&\0\0\0\0&\022\0\0\0\0','\0\0\0\"\0\0@\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150902,148,2,780,952,1,0,0,0,60,-284.91,63.2,-31.9209,63353,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0I\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150922,148,2,2190,2267,384,0,0,0,29,-288.59,59.58,-121.736,32762,1,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150924,148,2,2190,2267,384,0,0,0,29,-290.94,61.81,-175.341,32759,1,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150926,148,2,2190,2267,384,0,0,0,29,-303.82,59.83,-130.572,32757,1,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150915,148,2,177,39,50,0,3,0,13,-123.82,0.07,-102.34,2219,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150938,148,2,491,475,79,0,0,0,13,-120.48,3.23,-126.757,37586,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150939,148,2,491,475,79,0,0,0,13,-118.07,3.39,-128,37586,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150940,148,2,491,475,79,0,0,0,13,-142.36,0.49,-88.1202,38603,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150941,148,2,491,475,79,0,0,0,13,-131.64,-0.65,-85.0862,38603,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150942,148,2,491,475,79,0,0,0,13,-144.24,1.61,-36.0888,51535,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150943,148,2,491,475,79,0,0,0,13,-151.4,1.5,-33.3678,51535,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150944,148,2,56,59,385,0,0,0,11,-0.15,-6.68,-57.2573,23555,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150949,148,2,197,159,76,0,0,0,7,11.38,-11.23,-110.549,49170,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150934,148,2,197,159,76,0,0,0,7,22.43,-11.52,-69.7232,1406,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150946,148,2,197,159,76,0,0,0,7,19.27,-11.64,-77.3182,63889,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148356,148,2,49,49,57,0,0,0,2,38.72,4.36,-180.845,29704,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148888,148,2,37,37,25,0,0,0,2,42.67,6.85,-224.263,23287,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148350,148,2,49,49,57,0,0,0,2,39.58,4.09,-187.778,5311,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148894,148,2,37,37,25,0,0,0,2,42.49,7.1,-225.001,24657,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148884,148,2,37,37,25,0,0,0,2,47.55,4.8,-207.294,13864,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148889,148,2,49,49,57,0,0,0,2,51.24,5.9,-220.073,21518,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148893,148,2,37,37,25,0,0,0,2,45.19,5.92,-217.49,37949,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150712,148,2,37,37,25,0,0,0,2,45.2,8.33,-237.257,10918,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150727,148,2,128,1446,104,0,0,0,12,49.96,9.66,-244.647,54114,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148357,148,2,37,37,25,0,0,0,2,59.05,4.62,-184.917,56007,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148358,148,2,37,37,25,0,0,0,2,52.2,4.43,-174.959,58483,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148359,148,2,37,37,25,0,0,0,2,55.67,4.58,-183.903,18598,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148179,148,2,37,37,25,0,0,0,1,67.27,17.54,-265.641,62876,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148883,148,2,37,37,25,0,0,0,2,71.44,5.46,-208.484,21533,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148182,148,2,49,49,57,0,0,0,1,74.64,11.43,-244.315,5432,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148000,148,2,37,37,25,0,0,0,1,73.4,16.85,-261.669,52713,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150957,148,2,56,59,385,0,0,0,11,-0.09,-7.05,-52.388,25486,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148175,148,2,37,37,25,0,0,0,1,81.85,18.68,-266.171,34918,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149285,148,2,47,47,28,0,0,0,3,84.65,4.43,-188.873,64731,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148959,148,2,197,159,76,0,0,0,7,50.37,-11.69,-44.005,56475,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148364,148,2,49,49,57,0,0,0,3,89.16,4.39,-185.837,31156,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742850,148,2,541,901,480,0,0,0,1,95.63,-2.03,-42.3824,1599,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742861,148,2,453,580,0,0,0,0,35,96.4,-5.9,-121.434,5776,0,4,2147483647,0,'\02\0\0\0\02\02\0\0\0\0','\0\0\0\"\0\0@\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742880,148,2,541,901,480,0,0,0,1,101.47,-2.01,-46.1767,5565,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742881,148,2,541,901,480,0,0,0,1,98.69,-2.03,-43.9429,3947,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149289,148,2,47,47,28,0,0,0,3,98.48,4.47,-198.12,20561,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742879,148,2,541,901,480,0,0,0,1,104.15,-1.97,-48.333,6641,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148424,148,2,49,49,57,0,0,0,3,111.67,0.87,-168.568,58440,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074137512,148,2,43,43,36,0,0,0,9,88.18,-5.54,3.63018,17143,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074132791,148,2,56,59,385,0,0,0,9,84.22,-6.35,12.8627,5550,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140613,148,2,56,59,385,0,0,0,9,87.81,-5.74,14.5688,59106,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150956,148,2,43,43,36,0,0,0,9,101.81,-6.36,42.5077,4610,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147584,148,2,43,43,36,0,0,0,9,126.28,-5.22,13.6885,41519,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742851,148,2,541,901,480,0,0,0,1,126.42,-6.97,-84.5294,50265,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742852,148,2,541,901,480,0,0,0,1,126.7,-6.95,-90.4596,49276,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742855,148,2,541,901,480,0,0,0,1,127.64,-6.33,-100.389,32767,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742854,148,2,541,901,480,0,0,0,1,132.95,-6.33,-100.115,34111,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148397,148,2,49,49,57,0,0,0,3,130.14,2.19,-171.344,34964,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150704,148,2,47,47,28,0,0,0,3,137.32,1.83,-164.398,1054,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149111,148,2,47,47,28,0,0,0,3,137.08,0.08,-144.287,58024,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147578,148,2,43,43,36,0,0,0,9,131.54,-6.52,15.6705,34226,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742853,148,2,541,901,480,0,0,0,1,137.91,-6.44,-96.6084,20749,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150705,148,2,49,49,57,0,0,0,3,140,1.2,-158.014,39316,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143851,148,2,47,47,28,0,0,0,3,145.93,1.19,-120.79,26245,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742858,148,2,453,580,0,0,0,0,35,85.41,-5.99,59.9662,49147,0,4,2147483647,0,'\02\0\0\0\02\02\0\0\0\0','\0\0\0\"\0\0@\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140123,148,2,49,49,57,0,0,0,3,151.04,0.26,-124.631,53700,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148173,148,2,43,43,36,0,0,0,9,132.06,-5.57,60.2253,40931,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150310,148,2,43,43,36,0,0,0,9,128.89,-5.96,61.0762,53253,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074139651,148,2,47,47,28,0,0,0,3,158.66,0.04,-112.054,31165,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147603,148,2,43,43,36,0,0,0,9,159.78,-7.92,-11.3377,57280,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147610,148,2,43,43,36,0,0,0,9,157.49,-7.54,-18.5203,10256,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150365,148,2,56,59,385,0,0,0,9,102.72,-8.08,78.2805,33572,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149125,148,2,47,47,28,0,0,0,3,163.65,-0.42,-109.785,34523,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742857,148,2,453,582,0,0,0,0,35,14.36,-8.1,100.499,37082,0,4,2147483647,0,'\02\0\0\0\022\0\0\0\0','\0\0\0\"\0\0@\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742860,148,2,453,582,0,0,0,0,35,164.01,-5.9,-52.4863,49599,0,4,2147483647,0,'\02\0\0\0\022\0\0\0\0','\0\0\0\"\0\0@\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149491,148,2,56,59,385,0,0,0,7,94.47,-11.69,100.44,11853,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149492,148,2,56,59,385,0,0,0,7,99.64,-11.57,115.316,31922,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150181,148,2,197,159,76,0,0,0,7,151.84,-11.69,126.578,44681,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150140,148,2,197,159,76,0,0,0,7,160.29,-11.59,121.933,20942,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150831,148,2,197,159,76,0,0,0,7,122.03,-11.62,129.775,37528,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149042,148,2,56,59,385,0,0,0,7,139.73,-11.32,136.443,51526,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150869,148,2,197,159,76,0,0,0,7,130.5,-11.56,134.428,62078,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149510,148,2,22,22,48,0,0,0,10,76.54,-10.68,158.27,59663,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147816,148,2,22,22,48,0,0,0,10,109.2,-8.14,157.223,56247,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147822,148,2,22,22,48,0,0,0,10,112.66,-8.15,156.545,49463,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150948,148,2,22,22,48,0,0,0,10,43.49,-13.11,170.006,28560,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149514,148,2,22,22,48,0,0,0,10,90.94,-9.8,165.003,45020,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149518,148,2,54,57,60,0,0,0,10,84.11,-11.96,171.069,25787,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149519,148,2,22,22,48,0,0,0,10,93.95,-10.1,168.238,56323,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150945,148,2,54,57,60,0,0,0,10,53.83,-15.72,178.004,42546,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150749,148,2,22,22,48,0,0,0,10,70.49,-17.72,188.314,22891,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150965,148,2,590,12,39,0,3,0,8,96.3,-15.84,195.344,2727,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150966,148,2,590,12,39,0,3,0,8,98.12,-15.46,193.713,15455,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148185,148,2,54,57,60,0,0,0,10,87.11,-16.05,191.37,27065,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150753,148,2,22,22,48,0,0,0,10,44.07,-18.67,195.12,36915,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150968,148,2,492,21,63,0,3,0,15,-144.43,1.66,-39.2313,52834,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150977,148,2,43,43,36,0,0,0,9,104.98,-7.76,52.7616,34317,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150756,148,2,22,22,48,0,0,0,10,36.14,-20.24,201.78,18727,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150762,148,2,22,22,48,0,0,0,10,86.31,-18.75,204.807,62727,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150764,148,2,22,22,48,0,0,0,10,79.55,-20.3,207.426,16235,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147251,148,2,54,57,60,0,0,0,10,100.57,-21.72,226.598,36015,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143288,148,2,22,22,48,0,0,0,10,25.66,-23.71,234.503,19543,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144365,148,2,22,22,48,0,0,0,10,89.71,-24.03,237.669,31839,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143506,148,2,22,22,48,0,0,0,10,34.37,-24.76,241.597,16255,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148200,148,2,22,22,48,0,0,0,10,113.61,-25.27,247.984,1387,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144367,148,2,54,57,60,0,0,0,10,87.69,-25.31,242.434,38315,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148068,148,2,54,57,60,0,0,0,10,39.99,-25.46,244.196,24318,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143309,148,2,22,22,48,0,0,0,10,36.69,-27.02,258.878,57754,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141593,148,2,22,22,48,0,0,0,10,90.15,-27.93,260.898,64779,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149831,148,2,10,10,21,0,0,0,12,-10.69,-24.16,264.295,38116,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134497,148,2,22,22,48,0,0,0,10,59.4,-24.47,264.376,50989,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150984,148,2,780,952,1,0,40,0,7,58.61,-23.72,224.674,59776,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150145,148,2,197,159,76,0,0,0,7,176.4,-11.67,108.352,34668,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149908,148,2,197,159,76,0,0,0,7,187.25,-10.9,50.5798,49132,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149063,148,2,56,59,385,0,0,0,7,186.11,-11.69,111.271,5270,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150159,148,2,197,159,76,0,0,0,7,196.86,-11.6,89.4904,53466,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149915,148,2,197,159,76,0,0,0,7,192.39,-11.69,70.0348,56481,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149085,148,2,56,59,385,0,0,0,7,191.97,-11.69,64.4542,45217,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149172,148,2,56,59,385,0,0,0,6,199.89,-11.5,25.4753,24732,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148852,148,2,56,59,385,0,0,0,9,183.08,-8.1,1.31549,32526,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148845,148,2,43,43,36,0,0,0,9,183.12,-8.52,-6.15485,3166,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149765,148,2,196,160,152,0,0,0,6,213.88,-11.42,11.1075,8355,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149777,148,2,196,160,152,0,0,0,6,210.93,-9.35,34.7802,50126,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150841,148,2,21,21,63,0,0,0,9,209.88,23.57,168.008,14667,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147619,148,2,43,43,36,0,0,0,5,203.5,-9.51,-14.4106,21327,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147613,148,2,43,43,36,0,0,0,5,201.64,-8.85,-24.4016,43094,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149787,148,2,196,160,152,0,0,0,6,215.82,-11.45,8.51106,52813,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150826,148,2,21,21,63,0,0,0,9,205.04,24.2,205.827,7615,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150985,148,2,21,21,63,0,0,0,9,230.95,23.65,218.854,25457,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150992,148,2,21,21,63,0,0,0,9,227.03,24.06,228.667,14536,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074135918,148,2,41,41,59,0,0,0,8,229.4,23.71,164,27394,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149019,148,2,21,21,63,0,0,0,9,228.91,24.31,175.342,56358,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074042807,148,2,41,41,59,0,0,0,8,212.28,23.51,231,63423,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143972,148,2,41,41,59,0,0,0,8,208.45,23.51,225.549,11497,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145559,148,2,41,41,59,0,0,0,8,232.47,24.04,209.7,2693,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150967,148,2,21,21,63,0,0,0,9,236.64,23.51,154.733,2684,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141595,148,2,22,22,48,0,0,0,10,85.92,-27.09,265.837,44874,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149833,148,2,10,10,21,0,0,0,12,-18.19,-25.15,268.246,25528,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144714,148,2,54,57,60,0,0,0,12,8.33,-30.75,274.234,17401,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074139371,148,2,22,22,48,0,0,0,10,52.13,-23.31,272.781,24775,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141596,148,2,22,22,48,0,0,0,10,66.63,-22.86,283.314,38356,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148207,148,2,22,22,48,0,0,0,10,126.3,-28.89,287.781,26121,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145653,148,2,54,57,60,0,0,0,10,98.37,-25.45,284.974,9566,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149251,148,2,54,57,60,0,0,0,12,-28.11,-29.13,288.327,19210,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149461,148,2,10,10,21,0,3,0,12,14.19,-25.98,300.315,1552,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141590,148,2,22,22,48,0,0,0,10,98.23,-23.54,294.825,33590,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141592,148,2,22,22,48,0,0,0,10,91.28,-22.29,292.941,28537,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149844,148,2,10,10,21,0,0,0,12,-58.98,-27.6,293.923,55698,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134503,148,2,22,22,48,0,0,0,10,56.74,-22.3,292.711,26916,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150909,148,2,2919,3175,27,0,0,0,50,94.72,-21.47,300.528,6693,1,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148220,148,2,54,57,60,0,0,0,12,6.42,-26.16,311.133,55135,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150994,148,2,21,21,63,0,0,0,9,209.8,23.46,211.348,14536,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149362,148,2,10,10,21,0,0,0,12,-5.7,-28.61,321.391,2875,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742856,148,2,453,581,0,0,0,0,35,213.25,-32.03,324.145,27122,0,4,2147483647,0,'2&\0\0\0\0&\022\0\0\0\0','\0\0\0\"\0\0@\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148710,148,2,39,39,50,0,0,0,11,143.89,-30.11,330.331,60225,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148735,148,2,39,39,50,0,0,0,11,165.33,-31.79,335.244,51719,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149448,148,2,10,10,21,0,0,0,12,-9.27,-28.69,329.654,29244,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150691,148,2,54,57,60,0,0,0,11,160.5,-31.72,348.12,43904,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148722,148,2,39,39,50,0,0,0,11,160.32,-31.7,350.923,22798,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134539,148,2,54,57,60,0,0,0,12,-56.83,-31.97,346.314,48082,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140498,148,2,10,10,21,0,0,0,12,-64.78,-31.73,350.211,7823,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149437,148,2,10,10,21,0,0,0,12,-12.31,-29.9,354.156,6406,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149309,148,2,10,10,21,0,0,0,12,-69.95,-31.55,347.728,25765,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146060,148,2,129,306,78,0,0,0,12,-82.86,-39.81,327.641,37452,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150238,148,2,20,20,17,0,0,0,13,-85.73,-40.05,306.272,32484,0,2,2147483647,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143021,148,2,54,57,60,0,0,0,12,-47.1,-30.69,366.003,54660,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149936,148,2,20,20,17,0,0,0,13,-87.75,-39.6,288.202,48905,0,2,2147483647,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150983,148,2,20,20,17,0,0,0,13,-94.45,-39.9,311.837,23064,0,2,2147483647,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150988,148,2,20,20,17,0,0,0,13,-88,-39.52,324.766,50947,0,2,2147483647,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148685,148,2,129,306,78,0,0,0,12,-92.57,-39.93,307.152,37931,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134554,148,2,10,10,21,0,0,0,12,-68.19,-28.87,374.591,48540,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146834,148,2,129,306,78,0,0,0,12,-99.44,-39.77,320.152,17314,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149991,148,2,20,20,17,0,0,0,13,-102.95,-39.63,300.105,11265,0,2,2147483647,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074135231,148,2,54,57,60,0,0,0,12,-96.11,-30.56,267.981,54141,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144555,148,2,10,10,21,0,0,0,12,-109.78,-30.35,270.325,6624,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150995,148,2,10,10,21,0,0,0,12,-28.71,-27.4,280.689,57949,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150063,148,2,20,20,17,0,0,0,13,-109.88,-39.06,307.71,19118,0,2,2147483647,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147930,148,2,10,10,21,0,0,0,12,9.17,-27.75,390.489,13330,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150197,148,2,20,20,17,0,0,0,13,-118.1,-38.59,309.788,10527,0,2,2147483647,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146674,148,2,129,306,78,0,0,0,12,-114.53,-38.81,301.494,57727,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150137,148,2,20,20,17,0,0,0,13,-112.55,-38.96,313.254,39175,0,2,2147483647,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144109,148,2,54,57,60,0,0,0,12,-128.11,-25.65,364.052,21122,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150578,148,2,10,10,21,0,0,0,12,-135.68,-24.32,264.964,49256,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146758,148,2,10,10,21,0,0,0,12,-132.45,-29.24,338.374,44733,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136233,148,2,54,57,60,0,0,0,12,-141.94,-28.85,307.486,54497,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074101360,148,2,22,22,48,0,0,0,13,-37.24,-29.46,402.823,64437,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149840,148,2,54,57,60,0,0,0,12,-160.57,-28.15,292.586,48632,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149992,148,2,10,10,21,0,0,0,12,-169.93,-27.43,289.322,50819,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149997,148,2,10,10,21,0,0,0,12,-167.88,-27.13,296.046,53002,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150998,148,2,10,10,21,0,0,0,12,-48.92,-35.91,310.263,57949,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143046,148,2,54,57,60,0,0,0,13,-27.16,-32.93,413.023,34566,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074096563,148,2,22,22,48,0,0,0,13,-44.4,-30.73,418.507,53873,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074125959,148,2,22,22,48,0,0,0,13,-46.84,-33.41,431.003,3045,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136313,148,2,54,57,60,0,0,0,13,-64.15,-34.17,440.274,18657,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136312,148,2,22,22,48,0,0,0,13,-65.95,-35.42,451.223,26717,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136314,148,2,22,22,48,0,0,0,13,-83.96,-35.58,462.884,5692,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136317,148,2,22,22,48,0,0,0,13,-73.28,-35.87,462.535,62052,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136321,148,2,54,57,60,0,0,0,13,-84.85,-35.61,466.253,12916,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136302,148,2,22,22,48,0,0,0,13,-43.77,-36.56,468.919,35591,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136304,148,2,54,57,60,0,0,0,13,-19.14,-35.63,469.139,35339,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136305,148,2,22,22,48,0,0,0,13,-22.4,-35.4,461.049,63342,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144085,148,2,54,57,60,0,0,0,13,-9.1,-34.06,430.753,48247,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144090,148,2,22,22,48,0,0,0,13,-14.49,-33.56,447.765,23317,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144088,148,2,22,22,48,0,0,0,13,3.21,-31.69,441.698,32442,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074124489,148,2,22,22,48,0,0,0,13,-4.91,-31.96,449.044,12033,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136322,148,2,22,22,48,0,0,0,13,-77.53,-36.14,477.456,54581,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074101329,148,2,22,22,48,0,0,0,13,-60.97,-34.48,491.388,38843,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074125927,148,2,22,22,48,0,0,0,13,-63.35,-35.6,492.866,29893,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151029,148,2,188,39,50,0,3,0,10,-52.4,-32.96,427.468,12623,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151030,148,2,188,39,50,0,3,0,10,-62.37,-31.59,424.233,50709,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151034,148,2,10,10,21,0,0,0,12,-54.82,-25.98,293.217,55802,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151035,148,2,10,10,21,0,0,0,12,7.61,-28.32,293.094,12663,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148216,148,2,39,39,50,0,0,0,11,144.87,-27.97,359.862,14488,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134590,148,2,39,39,50,0,0,0,11,150.1,-24.89,409.453,54192,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145698,148,2,39,39,50,0,0,0,11,171.62,-30.67,389.408,1692,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145715,148,2,39,39,50,0,0,0,11,170.55,-28.7,403.534,58116,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150993,148,2,21,21,63,0,0,0,9,221.67,23.51,226.533,15600,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150681,148,2,39,39,50,0,0,0,11,194.89,-32.74,366.672,426,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150696,148,2,54,57,60,0,0,0,11,175.91,-31.95,364.86,14679,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145677,148,2,39,39,50,0,0,0,11,179.85,-31.99,364.097,30618,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145419,148,2,39,39,50,0,0,0,11,194.86,-32.51,374.702,51727,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146576,148,2,39,39,50,0,0,0,11,174.34,-30.58,392.014,22962,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074145722,148,2,39,39,50,0,0,0,11,174.09,-30.88,390.643,55851,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150728,148,2,54,57,60,0,0,0,11,175.28,-30.1,396.724,64610,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074142864,148,2,39,39,50,0,0,0,11,199.58,-31.86,411.338,11780,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150732,148,2,54,57,60,0,0,0,11,211.21,-31.42,397.448,11881,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150682,148,2,39,39,50,0,0,0,11,215.63,-31.43,397.714,19897,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150693,148,2,13,12,39,0,0,0,11,218.14,-32.84,385.09,58765,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150694,148,2,13,12,39,0,0,0,11,245.18,-30.15,402.488,47046,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148818,148,2,13,12,39,0,0,0,11,224.7,-29.73,418.675,5404,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148647,148,2,39,39,50,0,0,0,11,213.45,-27.26,425.003,45157,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144393,148,2,39,39,50,0,0,0,11,208.56,-27.77,425.774,60242,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148794,148,2,54,57,60,0,0,0,11,131.97,-20.13,422.464,37466,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150685,148,2,54,57,60,0,0,0,11,250.62,-29.93,408.389,64330,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134535,148,2,39,39,50,0,0,0,11,270.47,-30.65,395.027,28174,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074142834,148,2,39,39,50,0,0,0,11,279.37,-31.27,391.545,12818,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151038,148,2,780,952,1,0,3,0,12,277.34,-31.26,394.629,44632,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','%\0\0%\0\0\0\0\0\0\0I%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151068,148,2,54,57,60,0,3,0,8,278.88,-31.44,396.887,1894,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151074,148,2,54,57,60,0,0,0,8,279.47,-31.19,396.986,32767,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074142720,148,2,39,39,50,0,0,0,11,191.9,-28.63,430.3,12854,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074142856,148,2,39,39,50,0,0,0,11,167.81,-27.93,435.134,3259,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134599,148,2,39,39,50,0,0,0,11,139.95,-23.38,451.607,32092,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134600,148,2,39,39,50,0,0,0,11,126.95,-21.01,449.264,509,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148804,148,2,54,57,60,0,0,0,11,149.18,-24.89,449.428,23124,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134601,148,2,39,39,50,0,0,0,11,141.27,-23.51,456.2,6486,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136441,148,2,39,39,50,0,0,0,11,174.96,-25.14,457.993,64022,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134595,148,2,54,57,60,0,0,0,11,176.45,-21.8,465.884,32622,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134596,148,2,39,39,50,0,0,0,11,170.65,-22.15,466.46,13457,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134602,148,2,39,39,50,0,0,0,11,168.04,-22.48,493.614,57038,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134622,148,2,54,57,60,0,0,0,11,137.74,-21.49,494.385,32407,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134613,148,2,39,39,50,0,0,0,11,146.72,-22.25,511.741,51274,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074074454,148,2,39,39,50,0,0,0,11,145.73,-21.8,518.855,48284,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151080,148,2,54,57,60,0,0,0,8,279.1,-31.48,391.257,32767,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151078,148,2,54,57,60,0,3,0,8,283.67,-31.62,394.053,49158,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150931,148,2,54,57,60,0,0,0,8,300.4,-32.29,392.4,27278,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150932,148,2,54,57,60,0,0,0,8,301.81,-32.22,396.405,65511,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150686,148,2,39,39,50,0,0,0,11,303.99,-31.81,405.383,41873,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150687,148,2,39,39,50,0,0,0,11,305.82,-31.88,403.306,29926,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150695,148,2,13,12,39,0,0,0,11,303.97,-31.81,410.238,51183,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150933,148,2,54,57,60,0,0,0,8,332.05,-31.65,409.039,58246,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148663,148,2,39,39,50,0,0,0,11,329.18,-31.62,409.418,31902,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148664,148,2,39,39,50,0,0,0,11,331.12,-31.58,405.524,5299,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148673,148,2,13,12,39,0,0,0,11,338.99,-31.69,404.985,46879,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074142044,148,2,39,39,50,0,0,0,11,340.37,-30.57,441.657,27785,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151081,148,2,54,57,60,0,0,0,8,276.01,-31.4,394.904,32767,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149562,148,2,13,12,39,0,0,0,11,360.28,-31.84,437.796,41994,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149421,148,2,13,12,39,0,0,0,11,378,-31.87,439.175,17244,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149838,148,2,13,12,39,0,0,0,11,371.2,-32.09,451.2,52787,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148047,148,2,13,12,39,0,0,0,11,372.48,-32.54,413.628,50247,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151083,148,2,54,57,60,0,0,0,8,276.93,-30.95,396.593,32767,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151091,148,2,54,57,60,0,0,0,8,280.01,-32.01,389.745,32767,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151096,148,2,54,57,60,0,0,0,8,276.72,-31.51,393.191,32767,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151097,148,2,54,57,60,0,0,0,10,85.21,-24.66,238.355,63276,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151098,148,2,22,22,48,0,0,0,10,91.19,-24.11,238.216,32425,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151105,148,2,21,21,63,0,0,0,9,209.8,23.46,211.348,14536,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151060,148,2,10,10,21,0,0,0,12,-27.12,-27.56,280.767,31425,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151014,148,2,56,59,385,0,0,0,9,103.67,-7.05,72.6842,14317,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151108,148,2,21,21,63,0,0,0,9,207.9,23.87,208.768,37221,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151109,148,2,21,21,63,0,0,0,9,211.47,23.45,169.805,14536,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149003,148,2,41,41,59,0,0,0,8,241.58,24.49,180.793,47828,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074139166,148,2,56,59,385,0,0,0,6,251.43,-8.01,23.3881,63562,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149516,148,2,41,41,59,0,0,0,8,275.05,23.49,192.944,53154,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149526,148,2,41,41,59,0,0,0,8,272.36,24.6,196.711,2158,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149374,148,2,128,1446,104,0,0,0,17,272.69,-2.29,60.9999,61615,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148611,148,2,56,59,385,0,0,0,6,234.19,-11.69,-3.70519,10523,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149123,148,2,43,43,36,0,0,0,7,286.45,-6.67,27.5644,35921,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150974,148,2,21,21,63,0,0,0,9,288.47,22.19,188.731,50892,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150976,148,2,21,21,63,0,0,0,9,289.81,18.11,161.775,24340,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074135897,148,2,43,43,36,0,0,0,7,286.88,-4.99,45.1031,5429,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150773,148,2,41,41,59,0,0,0,8,286.09,20.36,178.218,24065,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074139254,148,2,43,43,36,0,0,0,7,288.51,-4.18,51.6561,15192,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149496,148,2,41,41,59,0,0,0,8,287.8,18.11,159,36781,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151104,148,2,21,21,63,0,0,0,9,286.07,21.83,187.622,9234,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149356,148,2,196,160,152,0,0,0,6,231.38,-11.55,-15.1254,31367,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151110,148,2,43,43,36,0,0,0,9,104.2,-7,47.5623,45670,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150987,148,2,21,21,63,0,0,0,9,298.74,16.97,162.87,59280,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150039,148,2,43,43,36,0,0,0,5,212.54,-9.41,-37.8066,35275,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150042,148,2,56,59,385,0,0,0,5,215.77,-9.16,-42.3956,14054,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150048,148,2,56,59,385,0,0,0,5,214.51,-9.59,-38.1401,16658,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149910,148,2,43,43,36,0,0,0,5,223.89,-8.27,-55.8428,2147,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149540,148,2,196,160,152,0,0,0,6,246.54,-11.49,-56.9791,14244,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150609,148,2,43,43,36,0,0,0,5,185.12,-7.71,-55.0616,24519,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149914,148,2,43,43,36,0,0,0,5,222.09,-7.35,-62.3129,29503,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141021,148,2,56,59,385,0,0,0,6,262.26,-10.77,-62.9685,12419,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149788,148,2,43,43,36,0,0,0,5,227.35,-7.3,-65.0394,19522,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150007,148,2,43,43,36,0,0,0,5,198.36,-7.36,-69.5077,16746,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150008,148,2,43,43,36,0,0,0,5,202.16,-6.82,-74.3313,6388,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149522,148,2,196,160,152,0,0,0,6,248.12,-11.69,-70.3363,4087,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151095,148,2,518,485,0,0,4,0,3,144.13,-7,-76.6385,11765,0,1,2147483647,0,'\02G7\0\0\0G\0\0\0\0\0\0','\0\0 \0\0 \0d\0 \0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074115919,148,2,43,43,36,0,0,0,7,307.44,-1.53,62.0021,6048,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144496,148,2,43,43,36,0,0,0,7,304.95,2.87,96.1268,6536,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146693,148,2,32,32,35,0,0,0,6,286.56,-5.84,-80.2775,12564,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149515,148,2,196,160,152,0,0,0,6,261.28,-11.69,-77.8985,57468,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140116,148,2,49,49,57,0,0,0,3,181.74,-4.25,-82.8547,37539,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144491,148,2,43,43,36,0,0,0,7,308.99,2.43,94.2244,23919,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149128,148,2,43,43,36,0,0,0,7,317.11,-4.88,16.6463,45312,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147698,148,2,32,32,35,0,0,0,6,313.74,-5.16,-78.3729,43724,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146697,148,2,32,32,35,0,0,0,6,311.9,-5.35,-74.0328,7411,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149358,148,2,56,59,385,0,0,0,6,263.33,-11.6,-88.116,50485,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149506,148,2,56,59,385,0,0,0,6,258.5,-11.31,-96.6034,1143,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074131677,148,2,47,47,28,0,0,0,4,175.01,-1.16,-97.9002,33234,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149503,148,2,196,160,152,0,0,0,6,253.09,-11.12,-112.539,1940,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146989,148,2,43,43,36,0,0,0,5,293.71,-4.93,-118.83,63385,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149349,148,2,43,43,36,0,0,0,5,268.21,-9.06,-117.266,19595,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144556,148,2,43,43,36,0,0,0,5,294.99,-6.32,-123.16,42501,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149828,148,2,49,49,57,0,0,0,4,229.47,-8.18,-125.359,37181,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148376,148,2,49,49,57,0,0,0,3,162.53,-0.27,-136.641,11440,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149115,148,2,47,47,28,0,0,0,3,167.36,0.08,-144.362,19059,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149122,148,2,47,47,28,0,0,0,3,166.95,0.21,-145.38,28353,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148383,148,2,47,47,28,0,0,0,3,175.43,-1.09,-140.791,15518,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150703,148,2,47,47,28,0,0,0,3,147.39,2.22,-162.646,26451,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150713,148,2,128,1446,104,0,0,0,12,165.41,4.13,-166.911,40028,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148427,148,2,47,47,28,0,0,0,3,132.51,3.63,-177.641,34347,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149293,148,2,47,47,28,0,0,0,3,127.42,4.19,-180.303,2349,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148155,148,2,49,49,57,0,0,0,3,128.06,4.6,-181.178,29025,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148204,148,2,47,47,28,0,0,0,3,130.13,4.48,-182.184,25415,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150991,148,2,10,10,21,0,0,0,10,-58.67,-3.66,-118.076,59386,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149269,148,2,37,37,25,0,0,0,1,118.87,18.41,-246.077,25648,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149271,148,2,49,49,57,0,0,0,1,108.88,16.28,-249.01,7621,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148029,148,2,37,37,25,0,0,0,1,112.49,17.23,-244.165,36491,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150706,148,2,49,49,57,0,0,0,3,167.43,3.54,-165.333,12607,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134828,148,2,47,47,28,0,0,0,3,191.79,-1.61,-158.379,18181,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074134832,148,2,47,47,28,0,0,0,4,197.58,-1.2,-167.313,31922,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074096322,148,2,47,47,28,0,0,0,4,197.16,0.11,-173.235,10737,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151126,148,2,43,43,36,0,0,0,9,104.2,-7,47.5623,45670,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148362,148,2,47,47,28,0,0,0,4,223.39,-6.81,-140.994,32305,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148321,148,2,47,47,28,0,0,0,4,220.58,-6.33,-144.98,4707,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148346,148,2,49,49,57,0,0,0,4,219.96,-5.84,-156.213,9628,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074105979,148,2,47,47,28,0,0,0,4,207.38,-1.98,-171.837,1512,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150894,148,2,196,160,152,0,0,0,6,253.32,-11.51,-144.041,49639,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150879,148,2,196,160,152,0,0,0,6,258.3,-11.25,-158.599,53785,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148843,148,2,56,59,385,0,0,0,6,262.58,-10.51,-152.62,45403,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144553,148,2,43,43,36,0,0,0,5,279.84,-6.96,-153.643,10138,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074143221,148,2,56,59,385,0,0,0,5,276.74,-8.07,-139.114,33772,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074146987,148,2,43,43,36,0,0,0,5,284.59,-6.43,-148.065,28788,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148499,148,2,43,43,36,0,0,0,5,288.99,-4.46,-170.336,47899,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149671,148,2,47,47,28,0,0,0,4,226.93,-4.04,-178.151,18302,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136789,148,2,49,49,57,0,0,0,4,201.6,-0.9,-173.25,63590,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140702,148,2,43,43,36,0,0,0,5,300.5,-3.1,-181.859,24716,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148518,148,2,49,49,57,0,0,0,4,243.17,-1.77,-187.475,53121,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148523,148,2,196,160,152,0,0,0,6,250.61,-10.41,-183.525,19826,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148525,148,2,56,59,385,0,0,0,6,265,-10.67,-183.888,28891,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148850,148,2,196,160,152,0,0,0,6,261.13,-11.25,-182.555,3484,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144568,148,2,47,47,28,0,0,0,4,245.61,0.01,-192.048,47879,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141251,148,2,56,59,385,0,0,0,5,286.89,-4.76,-196.211,23006,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074090333,148,2,47,47,28,0,0,0,4,237.38,-0.45,-192.129,20420,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140707,148,2,43,43,36,0,0,0,5,307.1,-2.52,-193.159,62732,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140705,148,2,43,43,36,0,0,0,5,302.92,-3.22,-190.008,41327,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144577,148,2,47,47,28,0,0,0,4,262.8,1.9,-221.441,62198,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144580,148,2,49,49,57,0,0,0,4,266.23,1.84,-226.743,59160,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144588,148,2,47,47,28,0,0,0,4,254.16,1.94,-243.051,9054,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148176,148,2,49,49,57,0,0,0,1,90.98,14.15,-257.256,49081,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148184,148,2,49,49,57,0,0,0,1,106.15,15.04,-256.647,52769,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150908,148,2,37,37,25,0,0,0,1,119.04,17.57,-264.335,18436,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150911,148,2,49,49,57,0,0,0,1,118.43,17.49,-261.216,4127,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148290,148,2,37,37,25,0,0,0,1,108.81,16.19,-267.07,37839,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1073742864,148,2,453,582,0,0,0,0,35,125.7,25.38,-311.621,32767,0,4,2147483647,0,'\02\0\0\0\022\0\0\0\0','\0\0\0\"\0\0@\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074142857,148,2,47,47,28,0,0,0,4,264.53,2.14,-242.111,48415,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140713,148,2,49,49,57,0,0,0,4,273.96,-0.09,-252.824,26175,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149524,148,2,128,1446,104,0,0,0,12,291.02,-0.63,-281.778,45431,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074104830,148,2,47,47,28,0,0,0,4,305.19,0.48,-264.538,62204,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144221,148,2,32,32,35,0,0,0,6,317.61,-4.96,-109.749,5523,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151140,148,2,43,43,36,0,0,0,9,103.73,-6.6,45.0434,1931,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147852,148,2,41,41,59,0,0,0,8,316.59,8.94,129.09,40207,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149126,148,2,43,43,36,0,0,0,7,318.27,-4.29,23.0588,42374,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147853,148,2,43,43,36,0,0,0,7,322.78,2.78,94.0339,20755,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149485,148,2,41,41,59,0,0,0,8,325.8,9.38,128.876,20022,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150055,148,2,41,41,59,0,0,0,8,322.27,10.24,135.626,65061,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150172,148,2,32,32,35,0,0,0,6,334.15,-2.01,6.66452,63501,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074135566,148,2,43,43,36,0,0,0,7,334.25,2.53,69.0643,10995,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074139160,148,2,43,43,36,0,0,0,7,340.76,-0.16,30.8679,37990,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074135564,148,2,43,43,36,0,0,0,7,341.74,4.2,73.2116,33485,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150346,148,2,32,32,35,0,0,0,6,336.86,-3.85,-30.407,62869,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074135561,148,2,43,43,36,0,0,0,7,346.18,6.51,84.2166,15692,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148671,148,2,43,43,36,0,0,0,7,344.28,2.77,49.071,12907,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149250,148,2,43,43,36,0,0,0,7,344.15,0.34,31.3496,23766,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150348,148,2,32,32,35,0,0,0,6,348.12,-2.65,-35.5355,48933,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150354,148,2,32,32,35,0,0,0,6,346.72,-3.52,-42.227,50554,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151071,148,2,21,21,63,0,0,0,9,317.61,13.99,155.547,13388,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136038,148,2,43,43,36,0,0,0,7,355.1,3.64,46.5134,50058,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074136047,148,2,43,43,36,0,0,0,7,354.9,5.38,60.3438,44502,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148662,148,2,43,43,36,0,0,0,7,371.05,6.75,51.6504,18008,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148666,148,2,43,43,36,0,0,0,7,373.13,7.32,53.1833,60140,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150358,148,2,32,32,35,0,0,0,6,371.05,0.77,-31.6182,36006,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150361,148,2,32,32,35,0,0,0,6,374.17,2.27,-26.097,54742,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151135,148,2,195,14,46,0,0,0,8,374.6,12.17,82.5845,60196,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151137,148,2,195,14,46,0,0,0,8,378.66,12.13,76.9302,10379,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149239,148,2,128,1446,104,0,0,0,17,400.51,20.44,87.9504,59910,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151138,148,2,195,14,46,0,0,0,8,399.99,21.81,106.646,47432,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150290,148,2,195,14,46,0,0,0,8,410.11,18.62,60.6525,37948,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150227,148,2,195,14,46,0,0,0,8,417.89,26.83,102.206,6328,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150314,148,2,195,14,46,0,0,0,8,414.33,27.28,124.921,38769,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151128,148,2,780,952,1,0,3,0,8,418.81,26,91.9442,12538,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151141,148,2,542,606,44,0,3,0,8,413.35,24.17,90.6686,46264,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150300,148,2,195,14,46,0,0,0,8,422.2,25.92,83.9154,37852,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150311,148,2,195,14,46,0,0,0,8,424.01,30.65,126.412,13046,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151144,148,2,542,606,44,0,0,0,8,428.37,29.95,101.794,22326,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151146,148,2,542,606,44,0,3,0,8,429.06,29.24,93.5921,31117,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151149,148,2,542,606,44,0,0,0,8,396.54,20.73,106.111,32767,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151136,148,2,445,486,385,0,0,0,8,124.6,-11.24,132.555,43241,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151153,148,2,542,606,44,0,3,0,8,423.65,28.14,97.7343,41723,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150049,148,2,32,32,35,0,0,0,8,399.49,3.18,-44.562,34560,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150059,148,2,32,32,35,0,0,0,8,390.46,1.15,-64.5787,56785,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144927,148,2,32,32,35,0,0,0,6,343.13,-4.55,-83.0447,61761,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144525,148,2,43,43,36,0,0,0,5,329.99,-3.17,-150.777,9115,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074114391,148,2,43,43,36,0,0,0,5,313.75,-1.33,-172.819,15593,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144527,148,2,43,43,36,0,0,0,5,332.17,-2.22,-157.893,49378,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074083418,148,2,49,49,57,0,0,0,4,331.75,1.56,-250.457,43808,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074083433,148,2,49,49,57,0,0,0,4,332.7,0.6,-264.145,10324,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074116582,148,2,43,43,36,0,0,0,5,331.55,-0.25,-184.693,45210,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074116591,148,2,43,43,36,0,0,0,5,332.67,0.72,-198.096,8712,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140749,148,2,47,47,28,0,0,0,4,329.25,0.67,-280.902,32381,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074083419,148,2,49,49,57,0,0,0,4,336.77,0.96,-256.371,19425,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074116575,148,2,43,43,36,0,0,0,5,343.51,-0.52,-175.668,36359,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074116580,148,2,43,43,36,0,0,0,5,342.44,-0.36,-176.233,62049,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140732,148,2,47,47,28,0,0,0,4,333.34,0.36,-288.87,45380,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140733,148,2,47,47,28,0,0,0,4,325.05,-0.54,-288.381,48837,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144586,148,2,32,32,35,0,0,0,6,350.42,-2.35,-133.745,62668,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074128626,148,2,49,49,57,0,0,0,4,287.43,0.44,-298.134,23783,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074129634,148,2,47,47,28,0,0,0,4,297.34,-0.89,-308.181,13315,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074129630,148,2,47,47,28,0,0,0,4,298.6,-0.9,-308.848,57126,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140721,148,2,49,49,57,0,0,0,4,322.07,-1.01,-317.194,46347,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140723,148,2,49,49,57,0,0,0,4,322.93,-0.98,-316.957,13470,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074104926,148,2,47,47,28,0,0,0,4,279.3,0.58,-315.438,49484,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074140934,148,2,49,49,57,0,0,0,4,348.09,0.57,-325.052,42576,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074128699,148,2,49,49,57,0,0,0,4,269.4,0.17,-322.935,46289,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074115347,148,2,43,43,36,0,0,0,5,360.73,-1.96,-176.617,13756,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141258,148,2,32,32,35,0,0,0,6,362,-1.48,-147.225,35183,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144592,148,2,32,32,35,0,0,0,6,362.53,0.93,-125.475,15963,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074128705,148,2,49,49,57,0,0,0,4,265.21,0.01,-331.233,4520,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074104927,148,2,49,49,57,0,0,0,4,273.06,-0.41,-329.995,14575,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074009939,148,2,47,47,28,0,0,0,4,300.02,-1.03,-347.773,28951,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074149504,148,2,128,1446,104,0,0,0,12,331.56,-0.81,-346.03,3971,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151182,148,2,206,53,97,0,0,0,7,217.81,-9.89,-37.7062,19072,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151184,148,2,201,41,59,0,3,0,7,180.54,-8.29,-15.3134,21625,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151183,148,2,206,53,97,0,0,0,7,224.6,-11.52,-10.0272,27986,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151185,148,2,206,53,97,0,2,0,7,161.14,-8.1,-6.28527,17327,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151189,148,2,780,952,1,0,3,0,8,156.99,-7.89,-4.54815,3504,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151186,148,2,200,49,57,0,0,0,7,160.74,-8.06,-7.72929,6411,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151191,148,2,206,53,97,0,0,0,7,167.45,-7.77,1.8385,36996,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150065,148,2,32,32,35,0,0,0,8,377.93,1.98,-85.4915,44049,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074142775,148,2,32,32,35,0,0,0,8,392.9,4.22,-86.6978,24145,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074144598,148,2,32,32,35,0,0,0,8,387.15,3.93,-97.2133,31348,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141294,148,2,32,32,35,0,0,0,8,403.69,5.49,-104.92,28199,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074148263,148,2,32,32,35,0,0,0,8,418.36,6.44,-70.2381,8832,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074147286,148,2,32,32,35,0,0,0,8,413.54,4.48,-38.1386,25512,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150392,148,2,32,32,35,0,0,0,8,418.76,6.72,-59.9881,45754,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150384,148,2,32,32,35,0,0,0,8,421.58,5.65,-34.6228,42272,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150399,148,2,32,32,35,0,0,0,8,424.05,6.59,-42.9658,4849,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150306,148,2,195,14,46,0,0,0,8,437.58,32.75,101.809,45106,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150302,148,2,195,14,46,0,0,0,8,439.73,32.37,94.4745,63269,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141334,148,2,32,32,35,0,0,0,8,412.63,5.46,-108.978,63906,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074141328,148,2,32,32,35,0,0,0,8,413.46,5.18,-114.566,49736,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151197,148,2,1328,1212,0,0,4,0,6,306.05,-5.84,-50.6831,47238,0,1,2147483647,0,'\026\0\0\06\0\0\0\0K\02\0\0\0','\0\\0\0\\0 \0d\0\0g\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150430,148,2,120,142,97,0,0,0,9,442.2,11.14,-112.608,63327,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150577,148,2,120,142,97,0,0,0,9,453.64,14.17,-90.2773,24399,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150482,148,2,120,142,97,0,0,0,9,476.26,24.15,-121.256,46629,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150579,148,2,120,142,97,0,0,0,9,480.49,23.93,-92.7206,15898,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150959,148,2,120,142,97,0,0,0,9,485.86,25.59,-96.2301,53452,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150450,148,2,120,142,97,0,0,0,9,451.95,25.61,-36.4714,12459,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150472,148,2,120,142,97,0,0,0,9,460.64,25.35,-41.3979,2660,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150643,148,2,120,142,97,0,0,0,9,468.17,26.66,-32.8979,39469,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150426,148,2,120,142,97,0,0,0,9,453.82,34.41,-9.01859,49010,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150641,148,2,120,142,97,0,0,0,9,480.77,41.5,-9.54569,30842,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150431,148,2,120,142,97,0,0,0,9,448.1,32.05,-8.84877,12718,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150605,148,2,120,142,97,0,0,0,9,480.67,31.27,-49.2197,14547,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150964,148,2,120,142,97,0,0,0,9,481.02,41.49,-10.6275,17636,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151208,148,2,49,49,57,0,0,0,4,380.23,3.88,-1.45476,8242,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151204,148,2,49,49,57,0,0,0,4,393.86,6.45,9.21236,41392,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151205,148,2,49,49,57,0,0,0,4,361.71,2.86,25.1846,12510,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151207,148,2,49,49,57,0,0,0,4,385.42,5.82,23.2229,40577,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151206,148,2,49,49,57,0,0,0,4,369.12,8.37,59.382,35369,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151220,148,2,32,32,35,0,0,0,6,351,-2.12,-128.3,33857,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150958,148,2,120,142,97,0,0,0,9,483.99,31.42,-51.695,26993,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150515,148,2,120,142,97,0,0,0,9,484.29,32.1,-40.2311,25024,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150961,148,2,120,142,97,0,0,0,9,501.74,43.09,-27.8585,2815,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151002,148,2,120,142,97,0,0,0,9,511.96,43.87,-41.3549,38300,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151000,148,2,120,142,97,0,0,0,9,508.12,43.53,-43.4722,49556,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074150601,148,2,120,142,97,0,0,0,9,500.2,29.08,-83.8012,41475,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151238,148,2,32,32,35,0,0,0,6,359.3,0.13,-125.91,14545,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151248,148,2,32,32,35,0,0,0,8,386.67,4.34,-103.087,33857,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151258,148,2,32,32,35,0,0,0,8,394,3.56,-87.1443,33856,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151264,148,2,32,32,35,0,0,0,8,406.31,5.57,-103.38,33857,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151269,148,2,32,32,35,0,0,0,8,412.28,5.64,-106.424,33856,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151273,148,2,32,32,35,0,0,0,8,409.01,5.21,-112.078,33857,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151275,148,2,49,49,57,0,0,0,4,389.86,4.66,8.58016,10307,0,2,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-INSERT INTO `battlenpc` VALUES (1074151287,148,2,32,32,35,0,0,0,8,417.52,5.76,-68.2326,33857,0,1,0,0,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-/*!40000 ALTER TABLE `battlenpc` ENABLE KEYS */;
-UNLOCK TABLES;
-/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
-
-/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
-/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
-/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-
--- Dump completed on 2016-12-09 17:37:07
diff --git a/sql/bnpctemplate.sql b/sql/bnpctemplate.sql
new file mode 100644
index 00000000..5f12d395
--- /dev/null
+++ b/sql/bnpctemplate.sql
@@ -0,0 +1,278 @@
+-- phpMyAdmin SQL Dump
+-- version 4.5.1
+-- http://www.phpmyadmin.net
+--
+-- Host: 127.0.0.1
+-- Erstellungszeit: 13. Sep 2018 um 22:11
+-- Server-Version: 10.1.19-MariaDB
+-- PHP-Version: 5.6.28
+
+SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
+SET time_zone = "+00:00";
+
+--
+-- Datenbank: `sapphire`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Tabellenstruktur für Tabelle `bnpctemplate`
+--
+
+DROP TABLE IF EXISTS `bnpctemplate`;
+CREATE TABLE `bnpctemplate` (
+ `Id` int(11) NOT NULL,
+ `Name` varchar(32) NOT NULL,
+ `bNPCBaseId` int(10) DEFAULT NULL,
+ `bNPCNameId` int(10) NOT NULL,
+ `mainWeaponModel` bigint(20) DEFAULT NULL,
+ `secWeaponModel` bigint(20) DEFAULT NULL,
+ `aggressionMode` int(3) DEFAULT NULL,
+ `enemyType` int(3) DEFAULT NULL,
+ `pose` int(3) DEFAULT NULL,
+ `modelChara` int(5) DEFAULT NULL,
+ `displayFlags` int(10) DEFAULT NULL,
+ `Look` binary(26) DEFAULT NULL,
+ `Models` binary(40) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+--
+-- Daten für Tabelle `bnpctemplate`
+--
+
+INSERT INTO `bnpctemplate` (`Id`, `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES
+(1, 'littleladybug_49', 49, 49, 0, 0, 1, 4, 4, 57, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(2, 'beecloud_57', 57, 395, 0, 0, 1, 4, 4, 60, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(3, 'watersprite_59', 59, 56, 0, 0, 1, 4, 4, 385, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(4, 'tinymandragora_118', 118, 405, 0, 0, 1, 4, 4, 297, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(5, 'wildjackal_138', 138, 399, 0, 0, 2, 4, 4, 160, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(6, 'woundedaurochs_323', 323, 358, 0, 0, 2, 4, 4, 138, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(7, 'megalocrab_326', 326, 561, 0, 0, 1, 4, 4, 148, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(8, 'lostlamb_338', 338, 392, 0, 0, 1, 4, 4, 287, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(9, 'pukhatchling_341', 341, 401, 0, 0, 1, 4, 4, 130, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(10, 'bogy_342', 342, 404, 0, 0, 1, 4, 4, 264, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(11, 'wharfrat_347', 347, 417, 0, 0, 1, 4, 4, 24, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(12, 'groundedpirate_348', 348, 421, 4297654473, 8590262373, 2, 4, 4, 0, 0, 0x0100013201050601623b32000001013b83010102004b004b0001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000),
+(13, 'groundedraider_349', 349, 418, 8591966609, 0, 2, 4, 4, 0, 0, 0x0100013201040c01300305000001010304040302004b00320001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000),
+(14, 'CaptainPetyrPigeontoe_350', 350, 419, 8591966609, 0, 2, 4, 4, 0, 0, 0x0100014b010304016b3b2b000001023b83000200006400320001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000),
+(15, 'pugil_383', 383, 640, 0, 0, 1, 4, 4, 356, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(16, 'wespe_385', 385, 641, 0, 0, 1, 4, 4, 359, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(17, 'goblingambler_769', 769, 3099, 4297588937, 0, 1, 4, 4, 6, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000),
+(18, 'strikingdummy_901', 901, 541, 0, 0, 1, 4, 0, 480, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(19, 'mosslessgoobbue_1447', 1447, 354, 0, 0, 1, 4, 4, 198, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(20, 'SkogsFru_3184', 3184, 2928, 0, 0, 1, 4, 0, 57, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(21, 'galago_5', 5, 408, 0, 0, 1, 4, 4, 31, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(22, 'nestingbuzzard_12', 12, 299, 0, 0, 1, 4, 4, 39, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(23, 'cavebat_38', 38, 364, 0, 0, 1, 4, 4, 98, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(24, 'windsprite_133', 133, 115, 0, 0, 1, 4, 4, 383, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(25, 'lightningsprite_135', 135, 117, 0, 0, 1, 4, 4, 384, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(26, 'Morabymole_205', 205, 409, 0, 0, 1, 4, 4, 282, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(27, 'firefly_306', 306, 129, 0, 0, 1, 4, 4, 78, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(28, 'rivertoad_313', 313, 349, 0, 0, 1, 4, 4, 126, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(29, 'aurelia_324', 324, 563, 0, 0, 1, 4, 4, 279, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(30, 'wilddodo_339', 339, 393, 0, 0, 1, 4, 4, 173, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(31, 'packrat_351', 351, 1101, 0, 0, 2, 4, 4, 26, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(32, 'koboldpotman_751', 751, 378, 4297588937, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000),
+(33, 'kobolddustman_752', 752, 368, 4295033233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000),
+(34, 'koboldsupplicant_754', 754, 372, 4295951237, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000300010003000000000000000000000000000000000000000000000000000000000000000000),
+(35, 'Qiqirneggdigger_771', 771, 350, 0, 0, 2, 4, 4, 14, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000),
+(36, 'Cepheus_855', 855, 1058, 0, 0, 2, 4, 4, 279, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(37, 'Barbastelle_3185', 3185, 2929, 0, 0, 1, 4, 0, 98, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(38, 'grassraptor_2', 2, 411, 0, 0, 2, 4, 4, 96, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(39, 'gigantoad_26', 26, 26, 0, 0, 2, 4, 4, 126, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(40, '2ndCohorthoplomachus_55', 55, 1821, 17180065993, 12885295205, 2, 4, 4, 0, 0, 0x0100013201020401110505000000030580040101001900320000, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(41, '2ndCohortlaquearius_61', 61, 1822, 12884967825, 0, 2, 4, 4, 0, 0, 0x0100013201010201aa9206000000029202000302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(42, '2ndCohorteques_62', 62, 1823, 12885230069, 0, 2, 4, 4, 0, 0, 0x02000132030203013c9236000000019201050300003201320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(43, '2ndCohortsecutor_63', 63, 1824, 21475033389, 21475033439, 2, 4, 4, 0, 0, 0x0100013201010701984706000000024701020302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(44, '2ndCohortsignifer_64', 64, 1825, 30064837609, 0, 2, 4, 4, 0, 0, 0x0100013201050301113b27000000043b850103000032004b0007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(45, 'junglecoeurl_117', 117, 352, 0, 0, 2, 4, 4, 65, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(46, 'dungmidgeswarm_136', 136, 396, 0, 0, 1, 4, 4, 58, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(47, 'giantpelican_178', 178, 366, 0, 0, 2, 4, 4, 154, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(48, '2ndCohortvanguard_201', 201, 1826, 0, 0, 2, 4, 4, 214, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(49, 'Bloodshorebell_312', 312, 361, 0, 0, 2, 4, 4, 280, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(50, 'apkallu_314', 314, 341, 0, 0, 1, 4, 4, 190, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(51, 'goobbue_320', 320, 353, 0, 0, 1, 4, 4, 198, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(52, 'mildewedgoobbue_321', 321, 355, 0, 0, 2, 4, 4, 198, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(53, 'largebuffalo_322', 322, 1313, 0, 0, 2, 4, 4, 138, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(54, 'snipper_325', 325, 560, 0, 0, 2, 4, 4, 149, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(55, 'koboldpatrolman_328', 328, 379, 8592556233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000),
+(56, 'koboldpitman_329', 329, 369, 4295033233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000),
+(57, 'koboldmissionary_331', 331, 373, 4295951237, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000300010003000000000000000000000000000000000000000000000000000000000000000000),
+(58, 'corkbulb_384', 384, 684, 0, 0, 1, 4, 4, 358, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(59, 'colibri_386', 386, 639, 0, 0, 2, 4, 4, 360, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(60, 'BloodyMary_3186', 3186, 2930, 0, 0, 1, 4, 0, 190, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(61, 'arborbuzzard_12', 12, 13, 0, 0, 2, 4, 4, 39, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(62, 'deadmansmoan_20', 20, 1854, 25772425417, 0, 2, 4, 4, 17, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000),
+(63, 'roseling_22', 22, 400, 0, 0, 1, 4, 4, 48, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(64, 'duskbat_38', 38, 363, 0, 0, 1, 4, 4, 98, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(65, 'plasmoid_46', 46, 46, 0, 0, 1, 4, 4, 80, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(66, 'axolotl_139', 139, 1831, 0, 0, 2, 4, 4, 151, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(67, 'Rothlytpelican_181', 181, 1181, 0, 0, 2, 4, 4, 157, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(68, 'sewermole_205', 205, 410, 0, 0, 1, 4, 4, 282, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(69, 'hedgemole_206', 206, 403, 0, 0, 1, 4, 4, 283, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(70, 'seawasp_312', 312, 360, 0, 0, 2, 4, 4, 280, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(71, 'fatdodo_340', 340, 394, 0, 0, 1, 4, 4, 174, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(72, 'pukhatchling_341', 341, 402, 0, 0, 1, 4, 4, 130, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(73, 'Rhotanobuccaneer_348', 348, 420, 4297654473, 8590262373, 2, 4, 4, 0, 0, 0x0100013201050601623b32000001013b83010102004b004b0001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000),
+(74, 'Rhotanobuccaneer_349', 349, 420, 8591966609, 0, 2, 4, 4, 0, 0, 0x0100013201040c01300305000001010304040302004b00320001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000),
+(75, 'preyingmantis_396', 396, 1852, 0, 0, 2, 4, 4, 376, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(76, 'killermantis_397', 397, 644, 0, 0, 2, 4, 4, 374, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(77, 'lammergeyer_403', 403, 1853, 0, 0, 2, 4, 4, 41, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(78, 'shelfscaleSahagin_765', 765, 386, 4295688693, 0, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000),
+(79, 'shelfclawSahagin_766', 766, 384, 0, 0, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000),
+(80, 'Sapsashelfspine_767', 767, 1829, 4295688693, 4295426149, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000020001000000000000000000000000000000000000000000000000000000000000000000),
+(81, 'shoaltoothSahagin_768', 768, 2526, 51539673889, 0, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000020002000000000000000000000000000000000000000000000000000000000000000000),
+(82, 'goblinhunter_769', 769, 225, 4297588937, 0, 1, 4, 4, 6, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000),
+(83, 'shelfscaleReaver_773', 773, 347, 17182949577, 12885033061, 2, 4, 4, 0, 0, 0x05000132090101011a0101000001000100000000003200321045, 0x170066000a000f0019000f0010005100190027000000000000000000000000000000000000000000),
+(84, 'shelfclawReaver_774', 774, 345, 21474967853, 21474967903, 2, 4, 4, 0, 0, 0x0500013209020901ab15040000010115830300020064004b1045, 0x1700660008000d000800480008003f00080064000000000000000000000000000000000000000000),
+(85, 'shelfeyeReaver_776', 776, 559, 30064902745, 4295033530, 2, 4, 4, 0, 0, 0x0500013209010c01149203000001029202020202006400321445, 0x170066000a000f0019000f0010005100190027000000000000000000000000000000000000000000),
+(86, 'Sapsaelbst_2832', 2832, 2527, 0, 0, 2, 4, 4, 182, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(87, 'whelkballista_2835', 2835, 2530, 0, 0, 1, 4, 2, 679, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(88, 'freshwhelkballista_2836', 2836, 2531, 0, 0, 1, 4, 2, 679, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(89, 'reinforcedwhelkballista_2837', 2837, 2532, 0, 0, 2, 4, 2, 679, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(90, 'DarkHelmet_3187', 3187, 2931, 0, 0, 1, 4, 0, 722, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000),
+(91, 'coeurlpup_28', 28, 28, 0, 0, 2, 4, 4, 69, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(92, 'bumblebeetle_36', 36, 296, 0, 0, 1, 4, 4, 56, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(93, 'salamander_139', 139, 391, 0, 0, 2, 4, 4, 151, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(94, 'forestyarzon_159', 159, 381, 0, 0, 2, 4, 4, 76, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(95, 'wildwolf_303', 303, 1180, 0, 0, 2, 4, 4, 159, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(96, 'koboldpickman_329', 329, 370, 4295033233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000),
+(97, 'koboldsidesman_330', 330, 376, 4295033533, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000400010004000000000000000000000000000000000000000000000000000000000000000000),
+(98, 'MamoolJabreeder_343', 343, 414, 4295033033, 4295426149, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000),
+(99, 'MamoolJaexecutioner_344', 344, 413, 4295033233, 0, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000),
+(100, 'MamoolJainfiltrator_345', 345, 416, 4295033333, 0, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000),
+(101, 'MamoolJasophist_346', 346, 415, 51539673889, 0, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000020001000000000000000000000000000000000000000000000000000000000000000000),
+(102, 'stoneshell_382', 382, 638, 0, 0, 1, 4, 4, 355, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(103, 'mudpugil_383', 383, 642, 0, 0, 1, 4, 4, 356, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(104, 'uragnite_389', 389, 643, 0, 0, 1, 4, 4, 364, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(105, 'Myradrosh_3188', 3188, 2932, 0, 0, 1, 4, 0, 360, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(106, '3rdCohorthoplomachus_55', 55, 53, 17180065993, 12885295205, 2, 4, 4, 0, 0, 0x0100013201020401110505000000030580040101001900320000, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(107, '3rdCohortlaquearius_61', 61, 58, 12884967825, 0, 2, 4, 4, 0, 0, 0x0100013201010201aa9206000000029202000302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(108, '3rdCohorteques_62', 62, 59, 12885230069, 0, 2, 4, 4, 0, 0, 0x02000132030203013c9236000000019201050300003201320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(109, '3rdCohortsecutor_63', 63, 60, 21475033389, 21475033439, 2, 4, 4, 0, 0, 0x0100013201010701984706000000024701020302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(110, '3rdCohortsignifer_64', 64, 61, 30064837609, 0, 2, 4, 4, 0, 0, 0x0100013201050301113b27000000043b850103000032004b0007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(111, 'earthsprite_131', 131, 113, 0, 0, 1, 4, 4, 386, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(112, 'basilisk_173', 173, 304, 0, 0, 2, 4, 4, 135, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(113, 'ahriman_183', 183, 242, 0, 0, 2, 4, 4, 168, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(114, 'quartzdoblyn_188', 188, 275, 0, 0, 1, 4, 4, 177, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(115, 'magitekvanguard_200', 200, 269, 0, 0, 2, 4, 4, 213, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(116, 'grenade_327', 327, 270, 0, 0, 2, 4, 4, 101, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(117, 'FlameSergeantDalvag_3183', 3183, 2927, 0, 0, 1, 4, 0, 717, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000040001000000000000000000000000000000000000000000000000000000000000000000),
+(118, 'antelopestag_4', 4, 4, 0, 0, 1, 4, 4, 62, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(119, 'ked_8', 8, 8, 0, 0, 2, 4, 4, 54, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(120, 'midlandcondor_13', 13, 566, 0, 0, 2, 4, 4, 40, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(121, 'wildhog_16', 16, 15, 0, 0, 2, 4, 4, 45, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(122, 'kedtrap_23', 23, 23, 0, 0, 2, 4, 4, 49, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(123, 'treant_24', 24, 24, 0, 0, 2, 4, 4, 104, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(124, 'adamantoise_34', 34, 34, 0, 0, 1, 4, 4, 94, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(125, 'hoverflyswarm_41', 41, 168, 0, 0, 1, 4, 4, 59, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(126, 'will-o-the-wisp_45', 45, 45, 0, 0, 1, 4, 4, 79, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(127, 'goblinthug_52', 52, 50, 8592556233, 0, 2, 4, 4, 6, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000),
+(128, 'Coeurlclawpoacher_79', 79, 140, 38654902773, 0, 2, 4, 4, 0, 0, 0x0401013208030201150c05000000000c00000000003201000000, 0x130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000),
+(129, 'Coeurlclawhunter_81', 81, 139, 17179935321, 4295033530, 2, 4, 4, 0, 0, 0x04010132080301014a0c1e000000000c00000000003201000000, 0x130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000),
+(130, 'Redbellylookout_84', 84, 52, 21474902217, 8590393445, 2, 4, 4, 0, 0, 0x02000132040102013a8a06000000028a02000302003201320000, 0x0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000),
+(131, 'Redbellylarcener_86', 86, 172, 12885033261, 12885033311, 2, 4, 4, 0, 0, 0x0200013204010701224e06000000024e01020302003201320000, 0x0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000),
+(132, 'Redbellysharpeye_87', 87, 83, 8590131801, 4295033530, 2, 4, 4, 0, 0, 0x0200013204030401282605000000022685010102003201320000, 0x0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000),
+(133, 'lesserkalong_130', 130, 112, 0, 0, 1, 4, 4, 99, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(134, 'deepvoiddeathmouse_143', 143, 170, 0, 0, 1, 4, 4, 27, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(135, 'riveryarzon_159', 159, 226, 0, 0, 2, 4, 4, 76, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(136, 'bigmouthorobon_302', 302, 235, 0, 0, 1, 4, 4, 270, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(137, 'stroper_304', 304, 238, 0, 0, 2, 4, 4, 145, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(138, 'revenant_305', 305, 236, 0, 0, 2, 4, 4, 265, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(139, 'Coeurlclawcutter_311', 311, 169, 17182556361, 17180328037, 2, 4, 4, 0, 0, 0x040101320801060189241e000000032403040301003201320000, 0x130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000),
+(140, 'nix_27', 27, 27, 0, 0, 2, 4, 4, 127, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(141, '5thCohorthoplomachus_55', 55, 1809, 17180065993, 12885295205, 2, 4, 4, 0, 0, 0x0100013201020401110505000000030580040101001900320000, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(142, '5thCohortlaquearius_61', 61, 1810, 12884967825, 0, 2, 4, 4, 0, 0, 0x0100013201010201aa9206000000029202000302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(143, '5thCohorteques_62', 62, 1811, 12885230069, 0, 2, 4, 4, 0, 0, 0x02000132030203013c9236000000019201050300003201320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(144, '5thCohortsecutor_63', 63, 1812, 21475033389, 21475033439, 2, 4, 4, 0, 0, 0x0100013201010701984706000000024701020302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(145, '5thCohortsignifer_64', 64, 1813, 30064837609, 0, 2, 4, 4, 0, 0, 0x0100013201050301113b27000000043b850103000032004b0007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000),
+(146, 'mudpuppy_139', 139, 645, 0, 0, 2, 4, 4, 151, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(147, 'morbol_140', 140, 237, 0, 0, 2, 4, 4, 145, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(148, '5thCohortvanguard_201', 201, 1814, 0, 0, 2, 4, 4, 214, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(149, 'hippogryph_645', 645, 789, 0, 0, 2, 4, 4, 134, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(150, 'hapalit_647', 647, 793, 0, 0, 2, 4, 4, 188, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(151, 'gigasshramana_727', 727, 647, 4295040839, 0, 2, 10, 4, 13, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000070001000000000000000000000000000000000000000000000000000000000000000000),
+(152, 'gigasbonze_728', 728, 646, 4295106370, 0, 2, 10, 4, 13, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000070001000000000000000000000000000000000000000000000000000000000000000000),
+(153, 'gigassozu_729', 729, 648, 4295040844, 0, 2, 10, 4, 13, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000070001000000000000000000000000000000000000000000000000000000000000000000),
+(154, 'lakecobra_777', 777, 1851, 0, 0, 2, 4, 4, 235, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(155, 'LeechKing_3191', 3191, 2935, 0, 0, 1, 4, 0, 600, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(156, 'blackbat_1037', 1037, 38, 0, 0, 3, 4, 2, 98, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(157, 'caveaurelia_1038', 1038, 1210, 0, 0, 3, 4, 2, 279, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(158, 'foper_7439', 7439, 5674, 0, 0, 2, 4, 4, 1906, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(159, 'spinner_7442', 7442, 5677, 0, 0, 2, 4, 4, 1542, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(160, 'velociraptor_2', 2, 412, 0, 0, 2, 4, 4, 96, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(161, 'ringtail_6', 6, 407, 0, 0, 1, 4, 4, 32, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(162, 'highlandcondor_13', 13, 398, 0, 0, 2, 4, 4, 40, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(163, 'basaltgolem_30', 30, 365, 0, 0, 2, 4, 4, 81, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(164, 'pteroc_65', 65, 62, 0, 0, 1, 4, 4, 131, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(165, 'coeurl_117', 117, 106, 0, 0, 2, 4, 4, 65, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(166, 'syntheticdoblyn_189', 189, 1836, 0, 0, 2, 4, 4, 178, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(167, 'UGhamaroroundsman_755', 755, 1832, 17182490825, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000),
+(168, 'UGhamaroquarryman_756', 756, 1833, 8590000529, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000),
+(169, 'elitebedesman_757', 757, 2521, 30064837309, 0, 2, 8, 2, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000400010004000000000000000000000000000000000000000000000000000000000000000000),
+(170, 'koboldpriest_758', 758, 371, 30065755013, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000300010003000000000000000000000000000000000000000000000000000000000000000000),
+(171, 'youngcoeurl_2269', 2269, 2192, 0, 0, 2, 4, 4, 65, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(172, 'bombincubator_2833', 2833, 2528, 0, 0, 1, 4, 2, 678, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(173, 'prototypebombincubator_2834', 2834, 2529, 0, 0, 1, 4, 2, 678, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(174, 'UGhamarogolem_2838', 2838, 2522, 0, 0, 2, 4, 4, 81, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(175, 'Vuokho_3189', 3189, 2933, 0, 0, 1, 4, 0, 39, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(176, 'strikingdummy_8016', 8016, 541, 0, 0, 1, 4, 0, 480, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(177, 'cocoon_6358', 6358, 6275, 0, 0, 1, 4, 0, 480, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(178, 'Shinryu_6531', 6531, 5640, 0, 0, 3, 4, 0, 1893, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(179, 'tail_6930', 6930, 5789, 0, 0, 3, 4, 0, 1926, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(180, 'cocoon_6931', 6931, 6275, 0, 0, 3, 4, 0, 2007, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(181, 'ginryu_6932', 6932, 6272, 0, 0, 3, 4, 0, 1891, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(182, '(仮)鎖_6933', 6933, 6279, 0, 0, 3, 4, 0, 2054, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(183, 'icicle_6934', 6934, 6278, 0, 0, 3, 4, 0, 764, 393224, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(184, 'eyeofthestorm_6935', 6935, 6277, 0, 0, 3, 4, 0, 1453, 262155, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(185, 'hakkinryu_7299', 7299, 6273, 0, 0, 3, 4, 0, 1985, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(186, 'massivecocoon_7302', 7302, 6276, 0, 0, 3, 4, 0, 2008, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(187, 'saitaisui_6358', 6358, 7206, 0, 0, 1, 4, 0, 480, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(188, 'Otengu_8662', 8662, 7200, 4295827266, 0, 3, 4, 0, 2187, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(189, 'tenguember_8663', 8663, 7201, 0, 0, 3, 4, 0, 2281, 262155, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(190, 'Daidarabotchi_8664', 8664, 7202, 0, 0, 3, 4, 0, 2217, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(191, 'QitianDasheng_8665', 8665, 7203, 0, 0, 3, 4, 0, 2211, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(192, 'shadowofthesage_8666', 8666, 7204, 0, 0, 3, 4, 0, 2211, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(193, 'saitaisui_8737', 8737, 7206, 4295302988, 0, 3, 4, 3, 2218, 8, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(194, 'geomantickiyofusa_8738', 8738, 7207, 4295434050, 0, 3, 4, 1, 1813, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(195, 'geomanticapa_8739', 8739, 7208, 0, 0, 3, 4, 3, 1867, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(196, 'torrent_8740', 8740, 7209, 0, 0, 3, 4, 3, 1202, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(197, 'geomanticdhara_8741', 8741, 7210, 0, 0, 3, 4, 3, 1819, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(198, 'geomanticanila_8742', 8742, 7211, 0, 0, 3, 4, 4, 1923, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(199, '_8743', 8743, 108, 0, 0, 1, 4, 0, 1453, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(200, 'riverunkiu_8744', 8744, 7212, 0, 0, 3, 4, 2, 1719, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(201, 'jinmenju_8745', 8745, 7213, 0, 0, 3, 4, 0, 1281, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(202, 'riverhikagiri_8746', 8746, 7214, 0, 0, 3, 4, 3, 572, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(203, 'riverray_8747', 8747, 7215, 0, 0, 3, 4, 0, 1346, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(204, 'riverscorpion_8748', 8748, 7216, 0, 0, 3, 4, 2, 1057, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(205, 'dragonhornbill_8749', 8749, 7217, 0, 0, 3, 4, 2, 1944, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(206, 'dragonbifang_8750', 8750, 7218, 0, 0, 3, 4, 2, 953, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(207, 'whitebaboon_8751', 8751, 7219, 0, 0, 3, 4, 2, 2270, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(208, 'dragonweasel_8752', 8752, 7220, 0, 0, 3, 4, 3, 1948, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(209, 'servantofthesage_8754', 8754, 7205, 0, 0, 3, 4, 0, 2270, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000),
+(210, 'saitaisui_8780', 8780, 7206, 4295302988, 0, 1, 4, 0, 2218, 12, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000);
+
+--
+-- Indizes der exportierten Tabellen
+--
+
+--
+-- Indizes für die Tabelle `bnpctemplate`
+--
+ALTER TABLE `bnpctemplate`
+ ADD PRIMARY KEY (`Id`),
+ ADD UNIQUE KEY `bNPCBaseId_2` (`bNPCBaseId`,`bNPCNameId`),
+ ADD KEY `Name` (`Name`),
+ ADD KEY `bNPCBaseId` (`bNPCBaseId`),
+ ADD KEY `bNPCNameId` (`bNPCNameId`);
+
+--
+-- AUTO_INCREMENT für exportierte Tabellen
+--
+
+--
+-- AUTO_INCREMENT für Tabelle `bnpctemplate`
+--
+ALTER TABLE `bnpctemplate`
+ MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=211;
\ No newline at end of file
diff --git a/sql/characlass.sql b/sql/characlass.sql
index a1966375..1dcbaad0 100644
--- a/sql/characlass.sql
+++ b/sql/characlass.sql
@@ -17,7 +17,7 @@ CREATE TABLE IF NOT EXISTS `characlass` (
`ClassIdx` int(3) DEFAULT '0',
`Exp` int(10) DEFAULT '0',
`Lvl` int(5) DEFAULT '0',
- PRIMARY KEY (`CharacterId`)
+ INDEX `CharacterId` (`CharacterId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- Dumping data for table sapphire.characlass: 0 rows
diff --git a/sql/discoveryinfo.sql b/sql/discoveryinfo.sql
index 48da9d78..92c5f174 100644
--- a/sql/discoveryinfo.sql
+++ b/sql/discoveryinfo.sql
@@ -37,19 +37,96 @@ CREATE TABLE `discoveryinfo` (
LOCK TABLES `discoveryinfo` WRITE;
/*!40000 ALTER TABLE `discoveryinfo` DISABLE KEYS */;
INSERT INTO `discoveryinfo` VALUES (-858993460,-858993460,-858993460);
-INSERT INTO discoveryinfo VALUES (5864826, 234, 18);
-INSERT INTO discoveryinfo VALUES (5864834, 234, 18);
+INSERT INTO discoveryinfo VALUES (5864773, 231, 1);
+INSERT INTO discoveryinfo VALUES (5864776, 231, 2);
+INSERT INTO discoveryinfo VALUES (5864775, 231, 3);
+INSERT INTO discoveryinfo VALUES (5864777, 231, 4);
+INSERT INTO discoveryinfo VALUES (5864778, 231, 4);
+INSERT INTO discoveryinfo VALUES (5864779, 231, 5);
+INSERT INTO discoveryinfo VALUES (5864781, 231, 6);
+INSERT INTO discoveryinfo VALUES (5864785, 231, 7);
+INSERT INTO discoveryinfo VALUES (5864815, 232, 8);
+INSERT INTO discoveryinfo VALUES (5864826, 232, 9);
+INSERT INTO discoveryinfo VALUES (5864834, 232, 9);
+INSERT INTO discoveryinfo VALUES (5864836, 232, 10);
+INSERT INTO discoveryinfo VALUES (5864852, 232, 11);
+INSERT INTO discoveryinfo VALUES (5864853, 232, 12);
+INSERT INTO discoveryinfo VALUES (5864854, 232, 13);
+INSERT INTO discoveryinfo VALUES (5864856, 232, 14);
+INSERT INTO discoveryinfo VALUES (5864866, 233, 15);
+INSERT INTO discoveryinfo VALUES (5864917, 234, 16);
+INSERT INTO discoveryinfo VALUES (5864930, 234, 17);
+INSERT INTO discoveryinfo VALUES (5864932, 234, 17);
+INSERT INTO discoveryinfo VALUES (5864933, 234, 18);
+INSERT INTO discoveryinfo VALUES (5864934, 234, 18);
+INSERT INTO discoveryinfo VALUES (5864935, 234, 18);
+INSERT INTO discoveryinfo VALUES (5864936, 234, 18);
+INSERT INTO discoveryinfo VALUES (5864947, 234, 19);
+INSERT INTO discoveryinfo VALUES (5864949, 234, 19);
+INSERT INTO discoveryinfo VALUES (5864950, 234, 19);
+INSERT INTO discoveryinfo VALUES (5864955, 234, 19);
+INSERT INTO discoveryinfo VALUES (5864960, 234, 20);
+INSERT INTO discoveryinfo VALUES (5864991, 234, 20);
+INSERT INTO discoveryinfo VALUES (5864992, 234, 20);
+INSERT INTO discoveryinfo VALUES (5865021, 234, 21);
+INSERT INTO discoveryinfo VALUES (5865022, 234, 21);
+INSERT INTO discoveryinfo VALUES (5865023, 234, 21);
+INSERT INTO discoveryinfo VALUES (5865041, 234, 22);
+INSERT INTO discoveryinfo VALUES (5865043, 234, 22);
+INSERT INTO discoveryinfo VALUES (5865045, 234, 22);
+INSERT INTO discoveryinfo VALUES (5865046, 234, 23);
+INSERT INTO discoveryinfo VALUES (5865048, 234, 24);
+INSERT INTO discoveryinfo VALUES (5907035, 234, 20);
INSERT INTO discoveryinfo VALUES (5864957, 230, 1);
INSERT INTO discoveryinfo VALUES (5865261, 230, 2);
INSERT INTO discoveryinfo VALUES (5865270, 230, 2);
INSERT INTO discoveryinfo VALUES (5865271, 230, 3);
+INSERT INTO discoveryinfo VALUES (5865273, 230, 4);
INSERT INTO discoveryinfo VALUES (5865275, 230, 5);
INSERT INTO discoveryinfo VALUES (5865286, 230, 1);
-INSERT INTO discoveryinfo VALUES (5865289, 230, 2);
INSERT INTO discoveryinfo VALUES (5910004, 230, 3);
INSERT INTO discoveryinfo VALUES (5910005, 230, 3);
-INSERT INTO discoveryinfo VALUES (5868321, 247, 12);
-INSERT INTO discoveryinfo VALUES (5795545, 247, 12);
+INSERT INTO discoveryinfo VALUES (5868321, 244, 1);
+INSERT INTO discoveryinfo VALUES (5868322, 245, 2);
+INSERT INTO discoveryinfo VALUES (5868323, 245, 3);
+INSERT INTO discoveryinfo VALUES (5868324, 245, 4);
+INSERT INTO discoveryinfo VALUES (5868325, 245, 5);
+INSERT INTO discoveryinfo VALUES (5868326, 245, 6);
+INSERT INTO discoveryinfo VALUES (5868327, 246, 7);
+INSERT INTO discoveryinfo VALUES (5868328, 246, 7);
+INSERT INTO discoveryinfo VALUES (5868329, 246, 8);
+INSERT INTO discoveryinfo VALUES (5868330, 246, 8);
+INSERT INTO discoveryinfo VALUES (5868331, 246, 9);
+INSERT INTO discoveryinfo VALUES (5868332, 246, 9);
+INSERT INTO discoveryinfo VALUES (5868333, 246, 10);
+INSERT INTO discoveryinfo VALUES (5868334, 246, 11);
+INSERT INTO discoveryinfo VALUES (5868335, 247, 12);
+INSERT INTO discoveryinfo VALUES (5868336, 247, 13);
+INSERT INTO discoveryinfo VALUES (5868337, 247, 14);
+INSERT INTO discoveryinfo VALUES (5868338, 247, 15);
+INSERT INTO discoveryinfo VALUES (7180738, 441, 1);
+INSERT INTO discoveryinfo VALUES (7180740, 441, 2);
+INSERT INTO discoveryinfo VALUES (7180747, 441, 3);
+INSERT INTO discoveryinfo VALUES (7180913, 442, 4);
+INSERT INTO discoveryinfo VALUES (7180916, 442, 5);
+INSERT INTO discoveryinfo VALUES (7180919, 442, 6);
+INSERT INTO discoveryinfo VALUES (7180922, 442, 6);
+INSERT INTO discoveryinfo VALUES (7180929, 442, 6);
+INSERT INTO discoveryinfo VALUES (7180930, 442, 7);
+INSERT INTO discoveryinfo VALUES (7180932, 442, 7);
+INSERT INTO discoveryinfo VALUES (7180937, 442, 8);
+INSERT INTO discoveryinfo VALUES (7180942, 442, 8);
+INSERT INTO discoveryinfo VALUES (7180963, 443, 9);
+INSERT INTO discoveryinfo VALUES (7180986, 443, 9);
+INSERT INTO discoveryinfo VALUES (7181029, 443, 9);
+INSERT INTO discoveryinfo VALUES (7181036, 443, 10);
+INSERT INTO discoveryinfo VALUES (7181047, 443, 10);
+INSERT INTO discoveryinfo VALUES (7181145, 443, 10);
+INSERT INTO discoveryinfo VALUES (7181146, 443, 11);
+INSERT INTO discoveryinfo VALUES (7181154, 443, 12);
+INSERT INTO discoveryinfo VALUES (7181156, 443, 12);
+INSERT INTO discoveryinfo VALUES (7181162, 443, 13);
+INSERT INTO discoveryinfo VALUES (7181167, 443, 14);
INSERT INTO discoveryinfo VALUES (5931218, 215, 1);
INSERT INTO discoveryinfo VALUES (5931219, 215, 1);
INSERT INTO discoveryinfo VALUES (5931220, 215, 1);
@@ -171,13 +248,13 @@ INSERT INTO discoveryinfo VALUES (5931335, 215, 27);
INSERT INTO discoveryinfo VALUES (5931336, 215, 27);
INSERT INTO discoveryinfo VALUES (5931337, 215, 27);
INSERT INTO discoveryinfo VALUES (5931338, 215, 27);
-INSERT INTO discoveryinfo VALUES (5931339, 215, 27);
+INSERT INTO discoveryinfo VALUES (5931339, 215, 29);
INSERT INTO discoveryinfo VALUES (5931340, 215, 29);
INSERT INTO discoveryinfo VALUES (5931341, 215, 29);
INSERT INTO discoveryinfo VALUES (5931342, 215, 29);
INSERT INTO discoveryinfo VALUES (5931343, 215, 29);
INSERT INTO discoveryinfo VALUES (5931344, 215, 29);
-INSERT INTO discoveryinfo VALUES (5931345, 215, 21);
+INSERT INTO discoveryinfo VALUES (5931345, 215, 29);
INSERT INTO discoveryinfo VALUES (5931346, 215, 30);
INSERT INTO discoveryinfo VALUES (5931347, 215, 30);
INSERT INTO discoveryinfo VALUES (5931348, 215, 30);
@@ -195,99 +272,6 @@ INSERT INTO discoveryinfo VALUES (5931359, 215, 23);
INSERT INTO discoveryinfo VALUES (5931360, 215, 23);
INSERT INTO discoveryinfo VALUES (5931361, 215, 23);
INSERT INTO discoveryinfo VALUES (5931362, 215, 22);
-INSERT INTO discoveryinfo VALUES (5938820, 215, 18);
-INSERT INTO discoveryinfo VALUES (5938821, 215, 18);
-INSERT INTO discoveryinfo VALUES (5938826, 215, 18);
-INSERT INTO discoveryinfo VALUES (5938827, 215, 15);
-INSERT INTO discoveryinfo VALUES (5938828, 215, 15);
-INSERT INTO discoveryinfo VALUES (5938830, 215, 14);
-INSERT INTO discoveryinfo VALUES (5939252, 215, 14);
-INSERT INTO discoveryinfo VALUES (5939289, 215, 9);
-INSERT INTO discoveryinfo VALUES (5939292, 215, 9);
-INSERT INTO discoveryinfo VALUES (5939295, 215, 10);
-INSERT INTO discoveryinfo VALUES (5939297, 215, 10);
-INSERT INTO discoveryinfo VALUES (5939301, 215, 8);
-INSERT INTO discoveryinfo VALUES (5939303, 215, 8);
-INSERT INTO discoveryinfo VALUES (5939327, 215, 10);
-INSERT INTO discoveryinfo VALUES (5939339, 215, 10);
-INSERT INTO discoveryinfo VALUES (5939348, 215, 1);
-INSERT INTO discoveryinfo VALUES (5939360, 215, 2);
-INSERT INTO discoveryinfo VALUES (5939362, 215, 7);
-INSERT INTO discoveryinfo VALUES (5939368, 215, 7);
-INSERT INTO discoveryinfo VALUES (5939372, 215, 5);
-INSERT INTO discoveryinfo VALUES (5939374, 215, 6);
-INSERT INTO discoveryinfo VALUES (5939421, 215, 11);
-INSERT INTO discoveryinfo VALUES (5939457, 215, 12);
-INSERT INTO discoveryinfo VALUES (5939458, 215, 27);
-INSERT INTO discoveryinfo VALUES (5939459, 215, 27);
-INSERT INTO discoveryinfo VALUES (5939460, 215, 27);
-INSERT INTO discoveryinfo VALUES (5939461, 215, 28);
-INSERT INTO discoveryinfo VALUES (5939462, 215, 20);
-INSERT INTO discoveryinfo VALUES (5939463, 215, 28);
-INSERT INTO discoveryinfo VALUES (5939464, 215, 17);
-INSERT INTO discoveryinfo VALUES (5939465, 215, 19);
-INSERT INTO discoveryinfo VALUES (5939467, 215, 26);
-INSERT INTO discoveryinfo VALUES (5939468, 215, 24);
-INSERT INTO discoveryinfo VALUES (5939469, 215, 23);
-INSERT INTO discoveryinfo VALUES (5939470, 215, 21);
-INSERT INTO discoveryinfo VALUES (5939471, 215, 21);
-INSERT INTO discoveryinfo VALUES (5939472, 215, 18);
-INSERT INTO discoveryinfo VALUES (5939473, 215, 18);
-INSERT INTO discoveryinfo VALUES (5939474, 215, 14);
-INSERT INTO discoveryinfo VALUES (5939475, 215, 13);
-INSERT INTO discoveryinfo VALUES (5939476, 215, 12);
-INSERT INTO discoveryinfo VALUES (5939477, 215, 29);
-INSERT INTO discoveryinfo VALUES (5939478, 215, 23);
-INSERT INTO discoveryinfo VALUES (5939499, 215, 2);
-INSERT INTO discoveryinfo VALUES (5939500, 215, 1);
-INSERT INTO discoveryinfo VALUES (5939501, 215, 27);
-INSERT INTO discoveryinfo VALUES (5921387, 215, 5);
-INSERT INTO discoveryinfo VALUES (5921388, 215, 5);
-INSERT INTO discoveryinfo VALUES (5921389, 215, 5);
-INSERT INTO discoveryinfo VALUES (5921395, 215, 4);
-INSERT INTO discoveryinfo VALUES (5921396, 215, 3);
-INSERT INTO discoveryinfo VALUES (5921413, 215, 10);
-INSERT INTO discoveryinfo VALUES (5921415, 215, 13);
-INSERT INTO discoveryinfo VALUES (5921641, 215, 25);
-INSERT INTO discoveryinfo VALUES (5921644, 215, 25);
-INSERT INTO discoveryinfo VALUES (5921645, 215, 25);
-INSERT INTO discoveryinfo VALUES (5921657, 215, 27);
-INSERT INTO discoveryinfo VALUES (5921668, 215, 27);
-INSERT INTO discoveryinfo VALUES (5921669, 215, 27);
-INSERT INTO discoveryinfo VALUES (5921676, 215, 28);
-INSERT INTO discoveryinfo VALUES (5921683, 215, 28);
-INSERT INTO discoveryinfo VALUES (5921696, 215, 28);
-INSERT INTO discoveryinfo VALUES (5921701, 215, 20);
-INSERT INTO discoveryinfo VALUES (5921707, 215, 19);
-INSERT INTO discoveryinfo VALUES (5921711, 215, 19);
-INSERT INTO discoveryinfo VALUES (5921712, 215, 19);
-INSERT INTO discoveryinfo VALUES (5921718, 215, 21);
-INSERT INTO discoveryinfo VALUES (5921721, 215, 21);
-INSERT INTO discoveryinfo VALUES (5921728, 215, 16);
-INSERT INTO discoveryinfo VALUES (5921739, 215, 2);
-INSERT INTO discoveryinfo VALUES (5921740, 215, 2);
-INSERT INTO discoveryinfo VALUES (5921742, 215, 15);
-INSERT INTO discoveryinfo VALUES (5921746, 215, 15);
-INSERT INTO discoveryinfo VALUES (5921750, 215, 15);
-INSERT INTO discoveryinfo VALUES (5938438, 215, 5);
-INSERT INTO discoveryinfo VALUES (5921425, 215, 12);
-INSERT INTO discoveryinfo VALUES (5938445, 215, 12);
-INSERT INTO discoveryinfo VALUES (5932787, 215, 1);
-INSERT INTO discoveryinfo VALUES (5932788, 215, 1);
-INSERT INTO discoveryinfo VALUES (5932884, 215, 19);
-INSERT INTO discoveryinfo VALUES (5932885, 215, 19);
-INSERT INTO discoveryinfo VALUES (5932890, 215, 19);
-INSERT INTO discoveryinfo VALUES (5932903, 215, 19);
-INSERT INTO discoveryinfo VALUES (5932920, 215, 24);
-INSERT INTO discoveryinfo VALUES (5932927, 215, 24);
-INSERT INTO discoveryinfo VALUES (5933571, 215, 19);
-INSERT INTO discoveryinfo VALUES (5934970, 215, 1);
-INSERT INTO discoveryinfo VALUES (5934971, 215, 1);
-INSERT INTO discoveryinfo VALUES (5934972, 215, 1);
-INSERT INTO discoveryinfo VALUES (5934973, 215, 24);
-INSERT INTO discoveryinfo VALUES (5960177, 215, 19);
-INSERT INTO discoveryinfo VALUES (6148368, 215, 19);
-INSERT INTO discoveryinfo VALUES (5913194, 215, 14);
INSERT INTO discoveryinfo VALUES (5933083, 216, 1);
INSERT INTO discoveryinfo VALUES (5933084, 216, 1);
INSERT INTO discoveryinfo VALUES (5933085, 216, 1);
@@ -346,7 +330,7 @@ INSERT INTO discoveryinfo VALUES (5933137, 216, 9);
INSERT INTO discoveryinfo VALUES (5933138, 216, 9);
INSERT INTO discoveryinfo VALUES (5933139, 216, 9);
INSERT INTO discoveryinfo VALUES (5933140, 216, 9);
-INSERT INTO discoveryinfo VALUES (5933141, 216, 6);
+INSERT INTO discoveryinfo VALUES (5933141, 216, 7);
INSERT INTO discoveryinfo VALUES (5933142, 216, 7);
INSERT INTO discoveryinfo VALUES (5933143, 216, 8);
INSERT INTO discoveryinfo VALUES (5933144, 216, 8);
@@ -387,7 +371,7 @@ INSERT INTO discoveryinfo VALUES (5933178, 216, 24);
INSERT INTO discoveryinfo VALUES (5933179, 216, 25);
INSERT INTO discoveryinfo VALUES (5933180, 216, 25);
INSERT INTO discoveryinfo VALUES (5933181, 216, 25);
-INSERT INTO discoveryinfo VALUES (5933182, 216, 27);
+INSERT INTO discoveryinfo VALUES (5933182, 216, 25);
INSERT INTO discoveryinfo VALUES (5933183, 216, 23);
INSERT INTO discoveryinfo VALUES (5933184, 216, 23);
INSERT INTO discoveryinfo VALUES (5933185, 216, 23);
@@ -424,128 +408,6 @@ INSERT INTO discoveryinfo VALUES (5933215, 216, 15);
INSERT INTO discoveryinfo VALUES (5933216, 216, 15);
INSERT INTO discoveryinfo VALUES (5933217, 216, 15);
INSERT INTO discoveryinfo VALUES (5933218, 216, 20);
-INSERT INTO discoveryinfo VALUES (5938783, 216, 14);
-INSERT INTO discoveryinfo VALUES (5938782, 216, 14);
-INSERT INTO discoveryinfo VALUES (5938787, 216, 6);
-INSERT INTO discoveryinfo VALUES (5938788, 216, 10);
-INSERT INTO discoveryinfo VALUES (5938789, 216, 8);
-INSERT INTO discoveryinfo VALUES (5938784, 216, 13);
-INSERT INTO discoveryinfo VALUES (5938785, 216, 9);
-INSERT INTO discoveryinfo VALUES (5938786, 216, 6);
-INSERT INTO discoveryinfo VALUES (5938803, 216, 23);
-INSERT INTO discoveryinfo VALUES (5938802, 216, 22);
-INSERT INTO discoveryinfo VALUES (5938801, 216, 22);
-INSERT INTO discoveryinfo VALUES (5938804, 216, 25);
-INSERT INTO discoveryinfo VALUES (5938808, 216, 26);
-INSERT INTO discoveryinfo VALUES (5938807, 216, 26);
-INSERT INTO discoveryinfo VALUES (5938805, 216, 25);
-INSERT INTO discoveryinfo VALUES (5938799, 216, 19);
-INSERT INTO discoveryinfo VALUES (5938800, 216, 30);
-INSERT INTO discoveryinfo VALUES (5938797, 216, 16);
-INSERT INTO discoveryinfo VALUES (5938798, 216, 15);
-INSERT INTO discoveryinfo VALUES (5938811, 216, 3);
-INSERT INTO discoveryinfo VALUES (5938810, 216, 26);
-INSERT INTO discoveryinfo VALUES (5938809, 216, 26);
-INSERT INTO discoveryinfo VALUES (5938812, 216, 3);
-INSERT INTO discoveryinfo VALUES (5938815, 216, 2);
-INSERT INTO discoveryinfo VALUES (5938814, 216, 5);
-INSERT INTO discoveryinfo VALUES (5938813, 216, 5);
-INSERT INTO discoveryinfo VALUES (5938816, 216, 3);
-INSERT INTO discoveryinfo VALUES (5938806, 216, 1);
-INSERT INTO discoveryinfo VALUES (5938795, 216, 3);
-INSERT INTO discoveryinfo VALUES (5938796, 216, 28);
-INSERT INTO discoveryinfo VALUES (5938791, 216, 29);
-INSERT INTO discoveryinfo VALUES (5938794, 216, 27);
-INSERT INTO discoveryinfo VALUES (5938790, 216, 29);
-INSERT INTO discoveryinfo VALUES (5938792, 216, 29);
-INSERT INTO discoveryinfo VALUES (5938793, 216, 28);
-INSERT INTO discoveryinfo VALUES (5910101, 216, 1);
-INSERT INTO discoveryinfo VALUES (5910102, 216, 2);
-INSERT INTO discoveryinfo VALUES (5910115, 216, 15);
-INSERT INTO discoveryinfo VALUES (5910122, 216, 15);
-INSERT INTO discoveryinfo VALUES (5910126, 216, 15);
-INSERT INTO discoveryinfo VALUES (5910127, 216, 17);
-INSERT INTO discoveryinfo VALUES (5910141, 216, 17);
-INSERT INTO discoveryinfo VALUES (5910144, 216, 17);
-INSERT INTO discoveryinfo VALUES (5910157, 216, 16);
-INSERT INTO discoveryinfo VALUES (5910168, 216, 24);
-INSERT INTO discoveryinfo VALUES (5921858, 216, 2);
-INSERT INTO discoveryinfo VALUES (5921871, 216, 26);
-INSERT INTO discoveryinfo VALUES (5921880, 216, 26);
-INSERT INTO discoveryinfo VALUES (5921881, 216, 4);
-INSERT INTO discoveryinfo VALUES (5921882, 216, 4);
-INSERT INTO discoveryinfo VALUES (5921937, 216, 4);
-INSERT INTO discoveryinfo VALUES (5921940, 216, 3);
-INSERT INTO discoveryinfo VALUES (5921941, 216, 7);
-INSERT INTO discoveryinfo VALUES (5921942, 216, 10);
-INSERT INTO discoveryinfo VALUES (5921945, 216, 9);
-INSERT INTO discoveryinfo VALUES (5921953, 216, 8);
-INSERT INTO discoveryinfo VALUES (5921956, 216, 8);
-INSERT INTO discoveryinfo VALUES (5921962, 216, 12);
-INSERT INTO discoveryinfo VALUES (5921966, 216, 12);
-INSERT INTO discoveryinfo VALUES (5921968, 216, 13);
-INSERT INTO discoveryinfo VALUES (5921969, 216, 14);
-INSERT INTO discoveryinfo VALUES (5921970, 216, 14);
-INSERT INTO discoveryinfo VALUES (5921982, 216, 15);
-INSERT INTO discoveryinfo VALUES (5921987, 216, 15);
-INSERT INTO discoveryinfo VALUES (5921988, 216, 19);
-INSERT INTO discoveryinfo VALUES (5921996, 216, 21);
-INSERT INTO discoveryinfo VALUES (5921998, 216, 21);
-INSERT INTO discoveryinfo VALUES (5921999, 216, 22);
-INSERT INTO discoveryinfo VALUES (5922000, 216, 30);
-INSERT INTO discoveryinfo VALUES (5922002, 216, 22);
-INSERT INTO discoveryinfo VALUES (5922004, 216, 23);
-INSERT INTO discoveryinfo VALUES (5922005, 216, 23);
-INSERT INTO discoveryinfo VALUES (5922006, 216, 23);
-INSERT INTO discoveryinfo VALUES (5922007, 216, 23);
-INSERT INTO discoveryinfo VALUES (5922008, 216, 23);
-INSERT INTO discoveryinfo VALUES (5922009, 216, 23);
-INSERT INTO discoveryinfo VALUES (5922010, 216, 28);
-INSERT INTO discoveryinfo VALUES (5922013, 216, 28);
-INSERT INTO discoveryinfo VALUES (5922559, 216, 9);
-INSERT INTO discoveryinfo VALUES (5922560, 216, 9);
-INSERT INTO discoveryinfo VALUES (5935490, 216, 1);
-INSERT INTO discoveryinfo VALUES (5910134, 216, 17);
-INSERT INTO discoveryinfo VALUES (5935520, 216, 17);
-INSERT INTO discoveryinfo VALUES (5935521, 216, 15);
-INSERT INTO discoveryinfo VALUES (5935525, 216, 15);
-INSERT INTO discoveryinfo VALUES (5936097, 216, 16);
-INSERT INTO discoveryinfo VALUES (5936102, 216, 16);
-INSERT INTO discoveryinfo VALUES (5936113, 216, 15);
-INSERT INTO discoveryinfo VALUES (5936125, 216, 15);
-INSERT INTO discoveryinfo VALUES (5936127, 216, 15);
-INSERT INTO discoveryinfo VALUES (5921955, 216, 8);
-INSERT INTO discoveryinfo VALUES (5938781, 216, 15);
-INSERT INTO discoveryinfo VALUES (5960788, 216, 17);
-INSERT INTO discoveryinfo VALUES (5913203, 216, 28);
-INSERT INTO discoveryinfo VALUES (6123737, 276, 12);
-INSERT INTO discoveryinfo VALUES (6123738, 276, 1);
-INSERT INTO discoveryinfo VALUES (6123739, 276, 1);
-INSERT INTO discoveryinfo VALUES (6123740, 276, 1);
-INSERT INTO discoveryinfo VALUES (6123741, 276, 1);
-INSERT INTO discoveryinfo VALUES (6123742, 276, 1);
-INSERT INTO discoveryinfo VALUES (6123743, 276, 1);
-INSERT INTO discoveryinfo VALUES (6123744, 276, 1);
-INSERT INTO discoveryinfo VALUES (6123745, 276, 1);
-INSERT INTO discoveryinfo VALUES (6123746, 276, 12);
-INSERT INTO discoveryinfo VALUES (6161036, 276, 12);
-INSERT INTO discoveryinfo VALUES (6161039, 276, 1);
-INSERT INTO discoveryinfo VALUES (6161040, 276, 1);
-INSERT INTO discoveryinfo VALUES (6161041, 276, 1);
-INSERT INTO discoveryinfo VALUES (6161042, 276, 1);
-INSERT INTO discoveryinfo VALUES (6161048, 276, 17);
-INSERT INTO discoveryinfo VALUES (6163807, 276, 18);
-INSERT INTO discoveryinfo VALUES (6163808, 276, 19);
-INSERT INTO discoveryinfo VALUES (6163809, 276, 20);
-INSERT INTO discoveryinfo VALUES (6163810, 276, 21);
-INSERT INTO discoveryinfo VALUES (6163811, 276, 22);
-INSERT INTO discoveryinfo VALUES (6163812, 276, 23);
-INSERT INTO discoveryinfo VALUES (6163813, 276, 24);
-INSERT INTO discoveryinfo VALUES (6163814, 276, 25);
-INSERT INTO discoveryinfo VALUES (6163815, 276, 26);
-INSERT INTO discoveryinfo VALUES (6163816, 276, 16);
-INSERT INTO discoveryinfo VALUES (6163817, 276, 16);
-INSERT INTO discoveryinfo VALUES (6163818, 276, 16);
INSERT INTO discoveryinfo VALUES (6170636, 276, 17);
INSERT INTO discoveryinfo VALUES (6170637, 276, 2);
INSERT INTO discoveryinfo VALUES (6170638, 276, 2);
@@ -561,7 +423,7 @@ INSERT INTO discoveryinfo VALUES (6170647, 276, 11);
INSERT INTO discoveryinfo VALUES (6170648, 276, 11);
INSERT INTO discoveryinfo VALUES (6170649, 276, 11);
INSERT INTO discoveryinfo VALUES (6170650, 276, 11);
-INSERT INTO discoveryinfo VALUES (6170651, 276, 18);
+INSERT INTO discoveryinfo VALUES (6170651, 276, 1);
INSERT INTO discoveryinfo VALUES (6170652, 276, 1);
INSERT INTO discoveryinfo VALUES (6170653, 276, 4);
INSERT INTO discoveryinfo VALUES (6170654, 276, 4);
@@ -587,44 +449,7 @@ INSERT INTO discoveryinfo VALUES (6170673, 276, 23);
INSERT INTO discoveryinfo VALUES (6170674, 276, 24);
INSERT INTO discoveryinfo VALUES (6170675, 276, 25);
INSERT INTO discoveryinfo VALUES (6170676, 276, 26);
-INSERT INTO discoveryinfo VALUES (6170677, 276, 1);
-INSERT INTO discoveryinfo VALUES (6171334, 276, 17);
-INSERT INTO discoveryinfo VALUES (6171335, 276, 12);
-INSERT INTO discoveryinfo VALUES (6171336, 276, 13);
-INSERT INTO discoveryinfo VALUES (6171337, 276, 12);
-INSERT INTO discoveryinfo VALUES (6171338, 276, 12);
-INSERT INTO discoveryinfo VALUES (6171339, 276, 8);
-INSERT INTO discoveryinfo VALUES (6171340, 276, 5);
-INSERT INTO discoveryinfo VALUES (6171341, 276, 1);
-INSERT INTO discoveryinfo VALUES (6171342, 276, 12);
-INSERT INTO discoveryinfo VALUES (6123737, 275, 12);
-INSERT INTO discoveryinfo VALUES (6123738, 275, 1);
-INSERT INTO discoveryinfo VALUES (6123739, 275, 1);
-INSERT INTO discoveryinfo VALUES (6123740, 275, 1);
-INSERT INTO discoveryinfo VALUES (6123741, 275, 1);
-INSERT INTO discoveryinfo VALUES (6123742, 275, 1);
-INSERT INTO discoveryinfo VALUES (6123743, 275, 1);
-INSERT INTO discoveryinfo VALUES (6123744, 275, 1);
-INSERT INTO discoveryinfo VALUES (6123745, 275, 1);
-INSERT INTO discoveryinfo VALUES (6123746, 275, 12);
-INSERT INTO discoveryinfo VALUES (6161036, 275, 12);
-INSERT INTO discoveryinfo VALUES (6161039, 275, 1);
-INSERT INTO discoveryinfo VALUES (6161040, 275, 1);
-INSERT INTO discoveryinfo VALUES (6161041, 275, 1);
-INSERT INTO discoveryinfo VALUES (6161042, 275, 1);
-INSERT INTO discoveryinfo VALUES (6161048, 275, 17);
-INSERT INTO discoveryinfo VALUES (6163807, 275, 18);
-INSERT INTO discoveryinfo VALUES (6163808, 275, 19);
-INSERT INTO discoveryinfo VALUES (6163809, 275, 20);
-INSERT INTO discoveryinfo VALUES (6163810, 275, 21);
-INSERT INTO discoveryinfo VALUES (6163811, 275, 22);
-INSERT INTO discoveryinfo VALUES (6163812, 275, 23);
-INSERT INTO discoveryinfo VALUES (6163813, 275, 24);
-INSERT INTO discoveryinfo VALUES (6163814, 275, 25);
-INSERT INTO discoveryinfo VALUES (6163815, 275, 26);
-INSERT INTO discoveryinfo VALUES (6163816, 275, 16);
-INSERT INTO discoveryinfo VALUES (6163817, 275, 16);
-INSERT INTO discoveryinfo VALUES (6163818, 275, 16);
+INSERT INTO discoveryinfo VALUES (6170677, 276, 16);
INSERT INTO discoveryinfo VALUES (6170636, 275, 17);
INSERT INTO discoveryinfo VALUES (6170637, 275, 2);
INSERT INTO discoveryinfo VALUES (6170638, 275, 2);
@@ -640,7 +465,7 @@ INSERT INTO discoveryinfo VALUES (6170647, 275, 11);
INSERT INTO discoveryinfo VALUES (6170648, 275, 11);
INSERT INTO discoveryinfo VALUES (6170649, 275, 11);
INSERT INTO discoveryinfo VALUES (6170650, 275, 11);
-INSERT INTO discoveryinfo VALUES (6170651, 275, 18);
+INSERT INTO discoveryinfo VALUES (6170651, 275, 1);
INSERT INTO discoveryinfo VALUES (6170652, 275, 1);
INSERT INTO discoveryinfo VALUES (6170653, 275, 4);
INSERT INTO discoveryinfo VALUES (6170654, 275, 4);
@@ -666,44 +491,49 @@ INSERT INTO discoveryinfo VALUES (6170673, 275, 23);
INSERT INTO discoveryinfo VALUES (6170674, 275, 24);
INSERT INTO discoveryinfo VALUES (6170675, 275, 25);
INSERT INTO discoveryinfo VALUES (6170676, 275, 26);
-INSERT INTO discoveryinfo VALUES (6170677, 275, 1);
-INSERT INTO discoveryinfo VALUES (6171334, 275, 17);
-INSERT INTO discoveryinfo VALUES (6171335, 275, 12);
-INSERT INTO discoveryinfo VALUES (6171336, 275, 13);
-INSERT INTO discoveryinfo VALUES (6171337, 275, 12);
-INSERT INTO discoveryinfo VALUES (6171338, 275, 12);
-INSERT INTO discoveryinfo VALUES (6171339, 275, 8);
-INSERT INTO discoveryinfo VALUES (6171340, 275, 5);
-INSERT INTO discoveryinfo VALUES (6171341, 275, 1);
-INSERT INTO discoveryinfo VALUES (6171342, 275, 12);
-INSERT INTO discoveryinfo VALUES (6599910, 356, 12);
-INSERT INTO discoveryinfo VALUES (6599911, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599912, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599913, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599914, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599915, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599916, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599917, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599918, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599919, 356, 12);
-INSERT INTO discoveryinfo VALUES (6599920, 356, 12);
-INSERT INTO discoveryinfo VALUES (6599922, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599923, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599924, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599925, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599926, 356, 17);
-INSERT INTO discoveryinfo VALUES (6599927, 356, 18);
-INSERT INTO discoveryinfo VALUES (6599928, 356, 19);
-INSERT INTO discoveryinfo VALUES (6599929, 356, 20);
-INSERT INTO discoveryinfo VALUES (6599930, 356, 21);
-INSERT INTO discoveryinfo VALUES (6599931, 356, 22);
-INSERT INTO discoveryinfo VALUES (6599932, 356, 23);
-INSERT INTO discoveryinfo VALUES (6599933, 356, 24);
-INSERT INTO discoveryinfo VALUES (6599934, 356, 25);
-INSERT INTO discoveryinfo VALUES (6599935, 356, 26);
-INSERT INTO discoveryinfo VALUES (6599936, 356, 16);
-INSERT INTO discoveryinfo VALUES (6599937, 356, 16);
-INSERT INTO discoveryinfo VALUES (6599938, 356, 16);
+INSERT INTO discoveryinfo VALUES (6170677, 275, 16);
+INSERT INTO discoveryinfo VALUES (6170636, 274, 17);
+INSERT INTO discoveryinfo VALUES (6170637, 274, 2);
+INSERT INTO discoveryinfo VALUES (6170638, 274, 2);
+INSERT INTO discoveryinfo VALUES (6170639, 274, 3);
+INSERT INTO discoveryinfo VALUES (6170640, 274, 2);
+INSERT INTO discoveryinfo VALUES (6170641, 274, 3);
+INSERT INTO discoveryinfo VALUES (6170642, 274, 3);
+INSERT INTO discoveryinfo VALUES (6170643, 274, 3);
+INSERT INTO discoveryinfo VALUES (6170644, 274, 10);
+INSERT INTO discoveryinfo VALUES (6170645, 274, 10);
+INSERT INTO discoveryinfo VALUES (6170646, 274, 10);
+INSERT INTO discoveryinfo VALUES (6170647, 274, 11);
+INSERT INTO discoveryinfo VALUES (6170648, 274, 11);
+INSERT INTO discoveryinfo VALUES (6170649, 274, 11);
+INSERT INTO discoveryinfo VALUES (6170650, 274, 11);
+INSERT INTO discoveryinfo VALUES (6170651, 274, 1);
+INSERT INTO discoveryinfo VALUES (6170652, 274, 1);
+INSERT INTO discoveryinfo VALUES (6170653, 274, 4);
+INSERT INTO discoveryinfo VALUES (6170654, 274, 4);
+INSERT INTO discoveryinfo VALUES (6170655, 274, 6);
+INSERT INTO discoveryinfo VALUES (6170656, 274, 6);
+INSERT INTO discoveryinfo VALUES (6170657, 274, 5);
+INSERT INTO discoveryinfo VALUES (6170658, 274, 7);
+INSERT INTO discoveryinfo VALUES (6170659, 274, 7);
+INSERT INTO discoveryinfo VALUES (6170660, 274, 8);
+INSERT INTO discoveryinfo VALUES (6170661, 274, 8);
+INSERT INTO discoveryinfo VALUES (6170662, 274, 9);
+INSERT INTO discoveryinfo VALUES (6170663, 274, 12);
+INSERT INTO discoveryinfo VALUES (6170664, 274, 13);
+INSERT INTO discoveryinfo VALUES (6170665, 274, 14);
+INSERT INTO discoveryinfo VALUES (6170666, 274, 15);
+INSERT INTO discoveryinfo VALUES (6170667, 274, 16);
+INSERT INTO discoveryinfo VALUES (6170668, 274, 18);
+INSERT INTO discoveryinfo VALUES (6170669, 274, 19);
+INSERT INTO discoveryinfo VALUES (6170670, 274, 20);
+INSERT INTO discoveryinfo VALUES (6170671, 274, 21);
+INSERT INTO discoveryinfo VALUES (6170672, 274, 22);
+INSERT INTO discoveryinfo VALUES (6170673, 274, 23);
+INSERT INTO discoveryinfo VALUES (6170674, 274, 24);
+INSERT INTO discoveryinfo VALUES (6170675, 274, 25);
+INSERT INTO discoveryinfo VALUES (6170676, 274, 26);
+INSERT INTO discoveryinfo VALUES (6170677, 274, 16);
INSERT INTO discoveryinfo VALUES (6599939, 356, 17);
INSERT INTO discoveryinfo VALUES (6599940, 356, 2);
INSERT INTO discoveryinfo VALUES (6599941, 356, 2);
@@ -719,7 +549,7 @@ INSERT INTO discoveryinfo VALUES (6599950, 356, 11);
INSERT INTO discoveryinfo VALUES (6599951, 356, 11);
INSERT INTO discoveryinfo VALUES (6599952, 356, 11);
INSERT INTO discoveryinfo VALUES (6599953, 356, 11);
-INSERT INTO discoveryinfo VALUES (6599954, 356, 18);
+INSERT INTO discoveryinfo VALUES (6599954, 356, 1);
INSERT INTO discoveryinfo VALUES (6599955, 356, 1);
INSERT INTO discoveryinfo VALUES (6599956, 356, 4);
INSERT INTO discoveryinfo VALUES (6599957, 356, 4);
@@ -745,28 +575,15 @@ INSERT INTO discoveryinfo VALUES (6599976, 356, 23);
INSERT INTO discoveryinfo VALUES (6599977, 356, 24);
INSERT INTO discoveryinfo VALUES (6599978, 356, 25);
INSERT INTO discoveryinfo VALUES (6599979, 356, 26);
-INSERT INTO discoveryinfo VALUES (6599980, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599981, 356, 17);
-INSERT INTO discoveryinfo VALUES (6599982, 356, 12);
-INSERT INTO discoveryinfo VALUES (6599983, 356, 13);
-INSERT INTO discoveryinfo VALUES (6599984, 356, 12);
-INSERT INTO discoveryinfo VALUES (6599985, 356, 12);
-INSERT INTO discoveryinfo VALUES (6599986, 356, 8);
-INSERT INTO discoveryinfo VALUES (6599987, 356, 5);
-INSERT INTO discoveryinfo VALUES (6599988, 356, 1);
-INSERT INTO discoveryinfo VALUES (6599989, 356, 12);
-INSERT INTO discoveryinfo VALUES (6622965, 356, 17);
-INSERT INTO discoveryinfo VALUES (6784914, 356, 2);
-INSERT INTO discoveryinfo VALUES (6784915, 356, 2);
-INSERT INTO discoveryinfo VALUES (6787121, 356, 3);
-INSERT INTO discoveryinfo VALUES (6886431, 356, 2);
+INSERT INTO discoveryinfo VALUES (6599980, 356, 16);
INSERT INTO discoveryinfo VALUES (5874028, 237, 3);
INSERT INTO discoveryinfo VALUES (5874029, 237, 4);
INSERT INTO discoveryinfo VALUES (5874030, 237, 1);
INSERT INTO discoveryinfo VALUES (5874031, 237, 2);
-INSERT INTO discoveryinfo VALUES (5874032, 237, 3);
-INSERT INTO discoveryinfo VALUES (5874033, 237, 2);
-INSERT INTO discoveryinfo VALUES (6046582, 255, 3);
+INSERT INTO discoveryinfo VALUES (5874032, 237, 1);
+INSERT INTO discoveryinfo VALUES (5874033, 237, 4);
+INSERT INTO discoveryinfo VALUES (5910259, 238, 1);
+INSERT INTO discoveryinfo VALUES (5910297, 238, 2);
INSERT INTO discoveryinfo VALUES (5910298, 255, 3);
INSERT INTO discoveryinfo VALUES (5910299, 255, 4);
INSERT INTO discoveryinfo VALUES (5858521, 239, 1);
@@ -777,50 +594,91 @@ INSERT INTO discoveryinfo VALUES (5858541, 239, 4);
INSERT INTO discoveryinfo VALUES (5858542, 239, 5);
INSERT INTO discoveryinfo VALUES (5910300, 239, 2);
INSERT INTO discoveryinfo VALUES (5910301, 239, 3);
-INSERT INTO discoveryinfo VALUES (5910302, 239, 2);
+INSERT INTO discoveryinfo VALUES (5910302, 239, 3);
INSERT INTO discoveryinfo VALUES (5910303, 239, 3);
INSERT INTO discoveryinfo VALUES (5910305, 239, 2);
INSERT INTO discoveryinfo VALUES (5910306, 239, 2);
INSERT INTO discoveryinfo VALUES (5910307, 239, 2);
INSERT INTO discoveryinfo VALUES (5910308, 239, 2);
-INSERT INTO discoveryinfo VALUES (6236476, 286, 3);
INSERT INTO discoveryinfo VALUES (6236478, 286, 1);
INSERT INTO discoveryinfo VALUES (6236479, 286, 2);
INSERT INTO discoveryinfo VALUES (6236480, 286, 3);
INSERT INTO discoveryinfo VALUES (6236481, 286, 4);
INSERT INTO discoveryinfo VALUES (6236486, 286, 5);
-INSERT INTO discoveryinfo VALUES (6236488, 288, 3);
-INSERT INTO discoveryinfo VALUES (6236497, 288, 5);
-INSERT INTO discoveryinfo VALUES (6236500, 288, 5);
-INSERT INTO discoveryinfo VALUES (6236501, 288, 6);
-INSERT INTO discoveryinfo VALUES (6236502, 288, 6);
-INSERT INTO discoveryinfo VALUES (6236519, 289, 2);
-INSERT INTO discoveryinfo VALUES (6236563, 289, 4);
-INSERT INTO discoveryinfo VALUES (6516945, 331, 3);
+INSERT INTO discoveryinfo VALUES (6236488, 287, 1);
+INSERT INTO discoveryinfo VALUES (6236497, 288, 2);
+INSERT INTO discoveryinfo VALUES (6236500, 288, 3);
+INSERT INTO discoveryinfo VALUES (6236501, 288, 4);
+INSERT INTO discoveryinfo VALUES (6236502, 288, 4);
+INSERT INTO discoveryinfo VALUES (6236503, 288, 5);
+INSERT INTO discoveryinfo VALUES (6236504, 288, 5);
+INSERT INTO discoveryinfo VALUES (6236505, 288, 6);
+INSERT INTO discoveryinfo VALUES (6236506, 288, 6);
+INSERT INTO discoveryinfo VALUES (6236556, 289, 1);
+INSERT INTO discoveryinfo VALUES (6236558, 289, 2);
+INSERT INTO discoveryinfo VALUES (6236559, 289, 3);
+INSERT INTO discoveryinfo VALUES (6236561, 289, 4);
+INSERT INTO discoveryinfo VALUES (6236563, 289, 5);
+INSERT INTO discoveryinfo VALUES (6516606, 326, 1);
+INSERT INTO discoveryinfo VALUES (6516933, 326, 2);
+INSERT INTO discoveryinfo VALUES (6516934, 327, 3);
+INSERT INTO discoveryinfo VALUES (6516935, 327, 4);
+INSERT INTO discoveryinfo VALUES (6516936, 328, 1);
+INSERT INTO discoveryinfo VALUES (6516937, 328, 2);
+INSERT INTO discoveryinfo VALUES (6516938, 328, 3);
+INSERT INTO discoveryinfo VALUES (6516939, 329, 4);
+INSERT INTO discoveryinfo VALUES (6516945, 330, 1);
+INSERT INTO discoveryinfo VALUES (6516947, 330, 2);
+INSERT INTO discoveryinfo VALUES (6516948, 331, 3);
+INSERT INTO discoveryinfo VALUES (5862520, 227, 1);
+INSERT INTO discoveryinfo VALUES (5862521, 227, 2);
+INSERT INTO discoveryinfo VALUES (5862525, 227, 3);
+INSERT INTO discoveryinfo VALUES (5862526, 227, 3);
+INSERT INTO discoveryinfo VALUES (5862528, 227, 4);
+INSERT INTO discoveryinfo VALUES (5862541, 228, 5);
+INSERT INTO discoveryinfo VALUES (5862529, 228, 5);
+INSERT INTO discoveryinfo VALUES (5862544, 228, 6);
+INSERT INTO discoveryinfo VALUES (5862549, 228, 7);
+INSERT INTO discoveryinfo VALUES (5862550, 228, 7);
+INSERT INTO discoveryinfo VALUES (5862551, 228, 8);
+INSERT INTO discoveryinfo VALUES (5862555, 228, 9);
+INSERT INTO discoveryinfo VALUES (5862560, 228, 9);
INSERT INTO discoveryinfo VALUES (5862563, 229, 10);
-INSERT INTO discoveryinfo VALUES (5795780, 252, 2);
-INSERT INTO discoveryinfo VALUES (5795788, 252, 3);
-INSERT INTO discoveryinfo VALUES (5795791, 252, 3);
+INSERT INTO discoveryinfo VALUES (5862569, 229, 11);
+INSERT INTO discoveryinfo VALUES (5862567, 229, 11);
+INSERT INTO discoveryinfo VALUES (5862594, 229, 12);
+INSERT INTO discoveryinfo VALUES (5862628, 229, 12);
+INSERT INTO discoveryinfo VALUES (5862631, 229, 12);
+INSERT INTO discoveryinfo VALUES (5862640, 229, 12);
+INSERT INTO discoveryinfo VALUES (5862646, 229, 12);
+INSERT INTO discoveryinfo VALUES (5862602, 229, 13);
+INSERT INTO discoveryinfo VALUES (5862613, 229, 13);
+INSERT INTO discoveryinfo VALUES (5862653, 229, 13);
+INSERT INTO discoveryinfo VALUES (5795780, 252, 1);
+INSERT INTO discoveryinfo VALUES (5795788, 252, 2);
+INSERT INTO discoveryinfo VALUES (5795791, 252, 2);
INSERT INTO discoveryinfo VALUES (5795795, 252, 3);
INSERT INTO discoveryinfo VALUES (5795796, 252, 3);
+INSERT INTO discoveryinfo VALUES (5795817, 252, 4);
INSERT INTO discoveryinfo VALUES (5840902, 252, 5);
-INSERT INTO discoveryinfo VALUES (5840908, 252, 5);
-INSERT INTO discoveryinfo VALUES (5840909, 252, 5);
-INSERT INTO discoveryinfo VALUES (5840914, 252, 6);
+INSERT INTO discoveryinfo VALUES (5840908, 252, 6);
+INSERT INTO discoveryinfo VALUES (5840909, 252, 6);
+INSERT INTO discoveryinfo VALUES (5840914, 252, 7);
INSERT INTO discoveryinfo VALUES (5840915, 252, 7);
-INSERT INTO discoveryinfo VALUES (5840918, 252, 10);
-INSERT INTO discoveryinfo VALUES (5840920, 252, 10);
+INSERT INTO discoveryinfo VALUES (5840917, 252, 8);
+INSERT INTO discoveryinfo VALUES (5840918, 252, 8);
+INSERT INTO discoveryinfo VALUES (5840920, 252, 9);
INSERT INTO discoveryinfo VALUES (5840922, 252, 10);
-INSERT INTO discoveryinfo VALUES (5840923, 252, 6);
-INSERT INTO discoveryinfo VALUES (5840925, 252, 11);
-INSERT INTO discoveryinfo VALUES (5840930, 252, 12);
-INSERT INTO discoveryinfo VALUES (5908552, 252, 12);
-INSERT INTO discoveryinfo VALUES (5937520, 252, 3);
-INSERT INTO discoveryinfo VALUES (5937523, 252, 5);
-INSERT INTO discoveryinfo VALUES (5937524, 252, 7);
-INSERT INTO discoveryinfo VALUES (5937536, 252, 10);
-INSERT INTO discoveryinfo VALUES (5937538, 252, 4);
-INSERT INTO discoveryinfo VALUES (5937541, 252, 7);
+INSERT INTO discoveryinfo VALUES (5840923, 252, 10);
+INSERT INTO discoveryinfo VALUES (5840925, 252, 10);
+INSERT INTO discoveryinfo VALUES (5840929, 252, 11);
+INSERT INTO discoveryinfo VALUES (5840930, 252, 11);
+INSERT INTO discoveryinfo VALUES (5840940, 252, 12);
+INSERT INTO discoveryinfo VALUES (5840945, 252, 13);
+INSERT INTO discoveryinfo VALUES (5908189, 252, 5);
+INSERT INTO discoveryinfo VALUES (5908552, 252, 11);
+INSERT INTO discoveryinfo VALUES (5908561, 252, 7);
+INSERT INTO discoveryinfo VALUES (5908570, 252, 4);
INSERT INTO discoveryinfo VALUES (5879221, 241, 1);
INSERT INTO discoveryinfo VALUES (5911127, 241, 2);
INSERT INTO discoveryinfo VALUES (5911128, 241, 2);
@@ -846,53 +704,147 @@ INSERT INTO discoveryinfo VALUES (5911158, 241, 9);
INSERT INTO discoveryinfo VALUES (5911159, 241, 10);
INSERT INTO discoveryinfo VALUES (5911164, 241, 11);
INSERT INTO discoveryinfo VALUES (5911166, 241, 12);
-INSERT INTO discoveryinfo VALUES (5911167, 241, 14);
+INSERT INTO discoveryinfo VALUES (5911167, 241, 12);
INSERT INTO discoveryinfo VALUES (5911168, 241, 12);
-INSERT INTO discoveryinfo VALUES (5911169, 241, 14);
+INSERT INTO discoveryinfo VALUES (5911169, 241, 12);
INSERT INTO discoveryinfo VALUES (5911173, 241, 13);
INSERT INTO discoveryinfo VALUES (5911174, 241, 13);
-INSERT INTO discoveryinfo VALUES (5911175, 241, 14);
-INSERT INTO discoveryinfo VALUES (5911176, 241, 14);
+INSERT INTO discoveryinfo VALUES (5911175, 241, 13);
+INSERT INTO discoveryinfo VALUES (5911176, 241, 13);
INSERT INTO discoveryinfo VALUES (5911184, 241, 14);
INSERT INTO discoveryinfo VALUES (5911193, 241, 14);
INSERT INTO discoveryinfo VALUES (5911200, 241, 14);
INSERT INTO discoveryinfo VALUES (5911204, 241, 14);
INSERT INTO discoveryinfo VALUES (5911207, 241, 15);
INSERT INTO discoveryinfo VALUES (5911208, 241, 15);
-INSERT INTO discoveryinfo VALUES (5927964, 241, 1);
-INSERT INTO discoveryinfo VALUES (5927965, 241, 3);
-INSERT INTO discoveryinfo VALUES (5927966, 241, 5);
-INSERT INTO discoveryinfo VALUES (5927968, 241, 6);
-INSERT INTO discoveryinfo VALUES (5927969, 241, 7);
-INSERT INTO discoveryinfo VALUES (5927970, 241, 8);
-INSERT INTO discoveryinfo VALUES (5927971, 241, 10);
-INSERT INTO discoveryinfo VALUES (5927972, 241, 14);
-INSERT INTO discoveryinfo VALUES (5927973, 241, 15);
-INSERT INTO discoveryinfo VALUES (6070090, 273, 9);
-INSERT INTO discoveryinfo VALUES (6070221, 273, 10);
-INSERT INTO discoveryinfo VALUES (6070269, 273, 9);
-INSERT INTO discoveryinfo VALUES (6070278, 273, 9);
-INSERT INTO discoveryinfo VALUES (6070280, 273, 9);
-INSERT INTO discoveryinfo VALUES (6070282, 273, 10);
-INSERT INTO discoveryinfo VALUES (6070284, 273, 10);
-INSERT INTO discoveryinfo VALUES (6079337, 273, 10);
-INSERT INTO discoveryinfo VALUES (6164800, 273, 11);
-INSERT INTO discoveryinfo VALUES (6164802, 273, 9);
+INSERT INTO discoveryinfo VALUES (6070096, 268, 1);
+INSERT INTO discoveryinfo VALUES (6070102, 268, 2);
+INSERT INTO discoveryinfo VALUES (6070111, 268, 2);
+INSERT INTO discoveryinfo VALUES (6070143, 268, 3);
+INSERT INTO discoveryinfo VALUES (6070144, 268, 3);
+INSERT INTO discoveryinfo VALUES (6070149, 268, 4);
+INSERT INTO discoveryinfo VALUES (6070161, 268, 4);
+INSERT INTO discoveryinfo VALUES (6070221, 268, 5);
+INSERT INTO discoveryinfo VALUES (6070223, 268, 5);
+INSERT INTO discoveryinfo VALUES (6070228, 268, 6);
+INSERT INTO discoveryinfo VALUES (6070231, 268, 6);
+INSERT INTO discoveryinfo VALUES (6070240, 268, 7);
+INSERT INTO discoveryinfo VALUES (6070251, 268, 8);
+INSERT INTO discoveryinfo VALUES (6070269, 268, 9);
+INSERT INTO discoveryinfo VALUES (6070273, 273, 9);
+INSERT INTO discoveryinfo VALUES (6070278, 273, 10);
+INSERT INTO discoveryinfo VALUES (6070280, 268, 10);
+INSERT INTO discoveryinfo VALUES (6070282, 268, 10);
+INSERT INTO discoveryinfo VALUES (6070284, 268, 11);
+INSERT INTO discoveryinfo VALUES (6164858, 273, 9);
+INSERT INTO discoveryinfo VALUES (6161081, 277, 1);
+INSERT INTO discoveryinfo VALUES (6161082, 278, 7);
INSERT INTO discoveryinfo VALUES (6161083, 279, 12);
+INSERT INTO discoveryinfo VALUES (6234626, 277, 2);
+INSERT INTO discoveryinfo VALUES (6234627, 277, 2);
+INSERT INTO discoveryinfo VALUES (6234629, 277, 3);
+INSERT INTO discoveryinfo VALUES (6234631, 277, 3);
+INSERT INTO discoveryinfo VALUES (6234632, 277, 4);
+INSERT INTO discoveryinfo VALUES (6234637, 277, 4);
+INSERT INTO discoveryinfo VALUES (6234638, 277, 5);
+INSERT INTO discoveryinfo VALUES (6234648, 277, 6);
+INSERT INTO discoveryinfo VALUES (6236359, 278, 7);
+INSERT INTO discoveryinfo VALUES (6236360, 278, 7);
+INSERT INTO discoveryinfo VALUES (6236361, 278, 7);
+INSERT INTO discoveryinfo VALUES (6236362, 278, 7);
+INSERT INTO discoveryinfo VALUES (6236363, 278, 7);
+INSERT INTO discoveryinfo VALUES (6236364, 278, 8);
+INSERT INTO discoveryinfo VALUES (6236365, 278, 8);
+INSERT INTO discoveryinfo VALUES (6236366, 278, 8);
+INSERT INTO discoveryinfo VALUES (6236367, 278, 8);
+INSERT INTO discoveryinfo VALUES (6236369, 278, 8);
+INSERT INTO discoveryinfo VALUES (6236370, 278, 9);
+INSERT INTO discoveryinfo VALUES (6236371, 278, 10);
+INSERT INTO discoveryinfo VALUES (6236372, 278, 11);
INSERT INTO discoveryinfo VALUES (6236450, 279, 13);
INSERT INTO discoveryinfo VALUES (6236451, 279, 14);
INSERT INTO discoveryinfo VALUES (6236452, 279, 15);
-INSERT INTO discoveryinfo VALUES (6242634, 279, 12);
-INSERT INTO discoveryinfo VALUES (6242635, 279, 13);
-INSERT INTO discoveryinfo VALUES (6242683, 279, 15);
-INSERT INTO discoveryinfo VALUES (6331525, 312, 12);
-INSERT INTO discoveryinfo VALUES (6331526, 312, 12);
-INSERT INTO discoveryinfo VALUES (6331527, 312, 13);
-INSERT INTO discoveryinfo VALUES (6331528, 312, 13);
-INSERT INTO discoveryinfo VALUES (6629373, 352, 12);
-INSERT INTO discoveryinfo VALUES (6781761, 352, 12);
-INSERT INTO discoveryinfo VALUES (6782058, 352, 12);
-INSERT INTO discoveryinfo VALUES (6782060, 352, 12);
+INSERT INTO discoveryinfo VALUES (6235786, 292, 1);
+INSERT INTO discoveryinfo VALUES (6235788, 293, 6);
+INSERT INTO discoveryinfo VALUES (6235789, 294, 10);
+INSERT INTO discoveryinfo VALUES (6387109, 292, 2);
+INSERT INTO discoveryinfo VALUES (6387110, 292, 3);
+INSERT INTO discoveryinfo VALUES (6387111, 292, 4);
+INSERT INTO discoveryinfo VALUES (6387112, 292, 5);
+INSERT INTO discoveryinfo VALUES (6387113, 293, 7);
+INSERT INTO discoveryinfo VALUES (6387114, 293, 8);
+INSERT INTO discoveryinfo VALUES (6387115, 293, 9);
+INSERT INTO discoveryinfo VALUES (6387177, 294, 11);
+INSERT INTO discoveryinfo VALUES (6387178, 294, 12);
+INSERT INTO discoveryinfo VALUES (6387179, 294, 13);
+INSERT INTO discoveryinfo VALUES (6387180, 294, 15);
+INSERT INTO discoveryinfo VALUES (6387182, 294, 14);
+INSERT INTO discoveryinfo VALUES (6331518, 311, 1);
+INSERT INTO discoveryinfo VALUES (6331519, 311, 2);
+INSERT INTO discoveryinfo VALUES (6331520, 311, 2);
+INSERT INTO discoveryinfo VALUES (6331521, 311, 2);
+INSERT INTO discoveryinfo VALUES (6331522, 311, 3);
+INSERT INTO discoveryinfo VALUES (6331523, 311, 3);
+INSERT INTO discoveryinfo VALUES (6331524, 311, 3);
+INSERT INTO discoveryinfo VALUES (6331525, 311, 4);
+INSERT INTO discoveryinfo VALUES (6331526, 311, 4);
+INSERT INTO discoveryinfo VALUES (6331527, 311, 4);
+INSERT INTO discoveryinfo VALUES (6331528, 311, 4);
+INSERT INTO discoveryinfo VALUES (6331529, 311, 5);
+INSERT INTO discoveryinfo VALUES (6331530, 311, 6);
+INSERT INTO discoveryinfo VALUES (6331531, 311, 6);
+INSERT INTO discoveryinfo VALUES (6331532, 311, 6);
+INSERT INTO discoveryinfo VALUES (6331533, 311, 7);
+INSERT INTO discoveryinfo VALUES (6331534, 311, 7);
+INSERT INTO discoveryinfo VALUES (6331535, 311, 7);
+INSERT INTO discoveryinfo VALUES (6331536, 311, 8);
+INSERT INTO discoveryinfo VALUES (6515809, 311, 8);
+INSERT INTO discoveryinfo VALUES (6515811, 311, 9);
+INSERT INTO discoveryinfo VALUES (6515860, 311, 10);
+INSERT INTO discoveryinfo VALUES (6515868, 311, 10);
+INSERT INTO discoveryinfo VALUES (6516194, 312, 11);
+INSERT INTO discoveryinfo VALUES (6516202, 312, 12);
+INSERT INTO discoveryinfo VALUES (6516459, 312, 12);
+INSERT INTO discoveryinfo VALUES (6516460, 312, 12);
+INSERT INTO discoveryinfo VALUES (6516461, 312, 13);
+INSERT INTO discoveryinfo VALUES (6516463, 312, 14);
+INSERT INTO discoveryinfo VALUES (6516465, 312, 14);
+INSERT INTO discoveryinfo VALUES (6516468, 312, 15);
+INSERT INTO discoveryinfo VALUES (6516473, 311, 9);
+INSERT INTO discoveryinfo VALUES (6516484, 312, 15);
+INSERT INTO discoveryinfo VALUES (6629373, 350, 1);
+INSERT INTO discoveryinfo VALUES (6629437, 350, 2);
+INSERT INTO discoveryinfo VALUES (6629447, 351, 5);
+INSERT INTO discoveryinfo VALUES (6629449, 351, 6);
+INSERT INTO discoveryinfo VALUES (6629458, 351, 8);
+INSERT INTO discoveryinfo VALUES (6629461, 351, 9);
+INSERT INTO discoveryinfo VALUES (6629464, 352, 10);
+INSERT INTO discoveryinfo VALUES (6629465, 352, 11);
+INSERT INTO discoveryinfo VALUES (6629468, 352, 11);
+INSERT INTO discoveryinfo VALUES (6629469, 352, 12);
+INSERT INTO discoveryinfo VALUES (6629470, 352, 13);
+INSERT INTO discoveryinfo VALUES (6629473, 351, 7);
+INSERT INTO discoveryinfo VALUES (6629606, 352, 13);
+INSERT INTO discoveryinfo VALUES (6629625, 351, 9);
+INSERT INTO discoveryinfo VALUES (6779373, 351, 7);
+INSERT INTO discoveryinfo VALUES (6779419, 350, 3);
+INSERT INTO discoveryinfo VALUES (6779439, 351, 5);
+INSERT INTO discoveryinfo VALUES (6779440, 351, 5);
+INSERT INTO discoveryinfo VALUES (6779444, 351, 8);
+INSERT INTO discoveryinfo VALUES (6779428, 350, 4);
+INSERT INTO discoveryinfo VALUES (6781761, 350, 2);
+INSERT INTO discoveryinfo VALUES (6781765, 350, 2);
+INSERT INTO discoveryinfo VALUES (6781787, 351, 6);
+INSERT INTO discoveryinfo VALUES (6781843, 351, 9);
+INSERT INTO discoveryinfo VALUES (6781851, 352, 10);
+INSERT INTO discoveryinfo VALUES (6781854, 352, 10);
+INSERT INTO discoveryinfo VALUES (6781861, 352, 11);
+INSERT INTO discoveryinfo VALUES (6781864, 352, 12);
+INSERT INTO discoveryinfo VALUES (6781869, 352, 12);
+INSERT INTO discoveryinfo VALUES (6782058, 350, 2);
+INSERT INTO discoveryinfo VALUES (6782060, 350, 2);
+INSERT INTO discoveryinfo VALUES (6629440, 350, 4);
+INSERT INTO discoveryinfo VALUES (6779445, 351, 8);
INSERT INTO discoveryinfo VALUES (5923657, 212, 1);
INSERT INTO discoveryinfo VALUES (5923649, 212, 1);
INSERT INTO discoveryinfo VALUES (5923656, 212, 1);
@@ -968,13 +920,14 @@ INSERT INTO discoveryinfo VALUES (5923890, 212, 25);
INSERT INTO discoveryinfo VALUES (5923796, 212, 26);
INSERT INTO discoveryinfo VALUES (5923797, 212, 26);
INSERT INTO discoveryinfo VALUES (5923793, 212, 26);
+INSERT INTO discoveryinfo VALUES (5923795, 212, 26);
INSERT INTO discoveryinfo VALUES (5923798, 212, 26);
INSERT INTO discoveryinfo VALUES (5923803, 212, 26);
INSERT INTO discoveryinfo VALUES (5923805, 212, 26);
INSERT INTO discoveryinfo VALUES (5923799, 212, 26);
INSERT INTO discoveryinfo VALUES (5923800, 212, 26);
INSERT INTO discoveryinfo VALUES (5923844, 212, 27);
-INSERT INTO discoveryinfo VALUES (5923850, 212, 28);
+INSERT INTO discoveryinfo VALUES (5923850, 212, 27);
INSERT INTO discoveryinfo VALUES (5923853, 212, 27);
INSERT INTO discoveryinfo VALUES (5923836, 212, 27);
INSERT INTO discoveryinfo VALUES (5923834, 212, 27);
@@ -985,6 +938,7 @@ INSERT INTO discoveryinfo VALUES (5923855, 212, 27);
INSERT INTO discoveryinfo VALUES (5923816, 212, 28);
INSERT INTO discoveryinfo VALUES (5923819, 212, 28);
INSERT INTO discoveryinfo VALUES (5923810, 212, 28);
+INSERT INTO discoveryinfo VALUES (5923807, 212, 28);
INSERT INTO discoveryinfo VALUES (5923814, 212, 28);
INSERT INTO discoveryinfo VALUES (5923830, 212, 29);
INSERT INTO discoveryinfo VALUES (5923831, 212, 29);
@@ -992,6 +946,7 @@ INSERT INTO discoveryinfo VALUES (5923826, 212, 29);
INSERT INTO discoveryinfo VALUES (5923828, 212, 29);
INSERT INTO discoveryinfo VALUES (5923664, 212, 3);
INSERT INTO discoveryinfo VALUES (5923677, 212, 3);
+INSERT INTO discoveryinfo VALUES (5923669, 212, 3);
INSERT INTO discoveryinfo VALUES (5923666, 212, 3);
INSERT INTO discoveryinfo VALUES (5923663, 212, 3);
INSERT INTO discoveryinfo VALUES (5923738, 212, 30);
@@ -1020,110 +975,6 @@ INSERT INTO discoveryinfo VALUES (5923775, 212, 9);
INSERT INTO discoveryinfo VALUES (5923779, 212, 9);
INSERT INTO discoveryinfo VALUES (5923783, 212, 9);
INSERT INTO discoveryinfo VALUES (5923770, 212, 9);
-INSERT INTO discoveryinfo VALUES (5937727, 212, 24);
-INSERT INTO discoveryinfo VALUES (5937731, 212, 21);
-INSERT INTO discoveryinfo VALUES (5937732, 212, 18);
-INSERT INTO discoveryinfo VALUES (5937733, 212, 21);
-INSERT INTO discoveryinfo VALUES (5937734, 212, 22);
-INSERT INTO discoveryinfo VALUES (5937728, 212, 24);
-INSERT INTO discoveryinfo VALUES (5937730, 212, 18);
-INSERT INTO discoveryinfo VALUES (5937714, 212, 14);
-INSERT INTO discoveryinfo VALUES (5937719, 212, 15);
-INSERT INTO discoveryinfo VALUES (5937713, 212, 13);
-INSERT INTO discoveryinfo VALUES (5937716, 212, 12);
-INSERT INTO discoveryinfo VALUES (5937718, 212, 16);
-INSERT INTO discoveryinfo VALUES (5937717, 212, 13);
-INSERT INTO discoveryinfo VALUES (5937720, 212, 6);
-INSERT INTO discoveryinfo VALUES (5937723, 212, 15);
-INSERT INTO discoveryinfo VALUES (5937724, 212, 12);
-INSERT INTO discoveryinfo VALUES (5937742, 212, 26);
-INSERT INTO discoveryinfo VALUES (5937740, 212, 30);
-INSERT INTO discoveryinfo VALUES (5937739, 212, 27);
-INSERT INTO discoveryinfo VALUES (5937745, 212, 26);
-INSERT INTO discoveryinfo VALUES (5937743, 212, 25);
-INSERT INTO discoveryinfo VALUES (5937741, 212, 30);
-INSERT INTO discoveryinfo VALUES (5937744, 212, 25);
-INSERT INTO discoveryinfo VALUES (5937726, 212, 25);
-INSERT INTO discoveryinfo VALUES (5937725, 212, 9);
-INSERT INTO discoveryinfo VALUES (5937736, 212, 1);
-INSERT INTO discoveryinfo VALUES (5937722, 212, 7);
-INSERT INTO discoveryinfo VALUES (5937735, 212, 1);
-INSERT INTO discoveryinfo VALUES (5937738, 212, 3);
-INSERT INTO discoveryinfo VALUES (5937715, 212, 10);
-INSERT INTO discoveryinfo VALUES (5937746, 212, 25);
-INSERT INTO discoveryinfo VALUES (5937747, 212, 26);
-INSERT INTO discoveryinfo VALUES (5937748, 212, 27);
-INSERT INTO discoveryinfo VALUES (5937749, 212, 25);
-INSERT INTO discoveryinfo VALUES (5937750, 212, 29);
-INSERT INTO discoveryinfo VALUES (5905930, 212, 17);
-INSERT INTO discoveryinfo VALUES (5905931, 212, 15);
-INSERT INTO discoveryinfo VALUES (5905926, 212, 16);
-INSERT INTO discoveryinfo VALUES (5963277, 212, 16);
-INSERT INTO discoveryinfo VALUES (5963278, 212, 16);
-INSERT INTO discoveryinfo VALUES (5905934, 212, 15);
-INSERT INTO discoveryinfo VALUES (5963280, 212, 16);
-INSERT INTO discoveryinfo VALUES (5917702, 212, 30);
-INSERT INTO discoveryinfo VALUES (5917703, 212, 30);
-INSERT INTO discoveryinfo VALUES (5917707, 212, 9);
-INSERT INTO discoveryinfo VALUES (5917708, 212, 30);
-INSERT INTO discoveryinfo VALUES (5917709, 212, 6);
-INSERT INTO discoveryinfo VALUES (5917711, 212, 6);
-INSERT INTO discoveryinfo VALUES (5917712, 212, 6);
-INSERT INTO discoveryinfo VALUES (5917713, 212, 6);
-INSERT INTO discoveryinfo VALUES (5917714, 212, 6);
-INSERT INTO discoveryinfo VALUES (5917715, 212, 6);
-INSERT INTO discoveryinfo VALUES (5917716, 212, 11);
-INSERT INTO discoveryinfo VALUES (5917717, 212, 11);
-INSERT INTO discoveryinfo VALUES (5917718, 212, 11);
-INSERT INTO discoveryinfo VALUES (5917719, 212, 12);
-INSERT INTO discoveryinfo VALUES (5917720, 212, 13);
-INSERT INTO discoveryinfo VALUES (5917722, 212, 13);
-INSERT INTO discoveryinfo VALUES (5917723, 212, 14);
-INSERT INTO discoveryinfo VALUES (5917724, 212, 14);
-INSERT INTO discoveryinfo VALUES (5917725, 212, 15);
-INSERT INTO discoveryinfo VALUES (5917726, 212, 18);
-INSERT INTO discoveryinfo VALUES (5917727, 212, 15);
-INSERT INTO discoveryinfo VALUES (5935141, 212, 13);
-INSERT INTO discoveryinfo VALUES (5935424, 212, 25);
-INSERT INTO discoveryinfo VALUES (5935134, 212, 13);
-INSERT INTO discoveryinfo VALUES (5934853, 212, 25);
-INSERT INTO discoveryinfo VALUES (5935137, 212, 3);
-INSERT INTO discoveryinfo VALUES (5909854, 212, 25);
-INSERT INTO discoveryinfo VALUES (5917576, 212, 26);
-INSERT INTO discoveryinfo VALUES (5917520, 212, 12);
-INSERT INTO discoveryinfo VALUES (5917686, 212, 26);
-INSERT INTO discoveryinfo VALUES (5917680, 212, 26);
-INSERT INTO discoveryinfo VALUES (5917679, 212, 26);
-INSERT INTO discoveryinfo VALUES (5917683, 212, 26);
-INSERT INTO discoveryinfo VALUES (5917681, 212, 26);
-INSERT INTO discoveryinfo VALUES (5917579, 212, 26);
-INSERT INTO discoveryinfo VALUES (5917578, 212, 26);
-INSERT INTO discoveryinfo VALUES (5917677, 212, 26);
-INSERT INTO discoveryinfo VALUES (5917676, 212, 26);
-INSERT INTO discoveryinfo VALUES (5917684, 212, 26);
-INSERT INTO discoveryinfo VALUES (5935131, 212, 2);
-INSERT INTO discoveryinfo VALUES (5935133, 212, 2);
-INSERT INTO discoveryinfo VALUES (5935129, 212, 2);
-INSERT INTO discoveryinfo VALUES (5935130, 212, 2);
-INSERT INTO discoveryinfo VALUES (5935160, 212, 2);
-INSERT INTO discoveryinfo VALUES (5935146, 212, 2);
-INSERT INTO discoveryinfo VALUES (5917531, 212, 10);
-INSERT INTO discoveryinfo VALUES (5917529, 212, 10);
-INSERT INTO discoveryinfo VALUES (5917537, 212, 30);
-INSERT INTO discoveryinfo VALUES (5917561, 212, 29);
-INSERT INTO discoveryinfo VALUES (5917482, 212, 12);
-INSERT INTO discoveryinfo VALUES (5909845, 212, 23);
-INSERT INTO discoveryinfo VALUES (5917557, 212, 20);
-INSERT INTO discoveryinfo VALUES (5917538, 212, 20);
-INSERT INTO discoveryinfo VALUES (5917555, 212, 20);
-INSERT INTO discoveryinfo VALUES (5917552, 212, 20);
-INSERT INTO discoveryinfo VALUES (5917554, 212, 20);
-INSERT INTO discoveryinfo VALUES (5937695, 212, 12);
-INSERT INTO discoveryinfo VALUES (5937704, 212, 26);
-INSERT INTO discoveryinfo VALUES (5917463, 212, 16);
-INSERT INTO discoveryinfo VALUES (5917468, 212, 16);
-INSERT INTO discoveryinfo VALUES (5963802, 212, 26);
-INSERT INTO discoveryinfo VALUES (5816220, 212, 12);
INSERT INTO discoveryinfo VALUES (5930418, 213, 1);
INSERT INTO discoveryinfo VALUES (5930419, 213, 1);
INSERT INTO discoveryinfo VALUES (5930420, 213, 1);
@@ -1175,6 +1026,7 @@ INSERT INTO discoveryinfo VALUES (5930465, 213, 10);
INSERT INTO discoveryinfo VALUES (5930466, 213, 11);
INSERT INTO discoveryinfo VALUES (5930467, 213, 11);
INSERT INTO discoveryinfo VALUES (5930468, 213, 11);
+INSERT INTO discoveryinfo VALUES (5930469, 213, 12);
INSERT INTO discoveryinfo VALUES (5930470, 213, 12);
INSERT INTO discoveryinfo VALUES (5930471, 213, 12);
INSERT INTO discoveryinfo VALUES (5930472, 213, 27);
@@ -1206,81 +1058,6 @@ INSERT INTO discoveryinfo VALUES (5930497, 213, 14);
INSERT INTO discoveryinfo VALUES (5930498, 213, 15);
INSERT INTO discoveryinfo VALUES (5930499, 213, 29);
INSERT INTO discoveryinfo VALUES (5930500, 213, 25);
-INSERT INTO discoveryinfo VALUES (5938317, 213, 10);
-INSERT INTO discoveryinfo VALUES (5938314, 213, 12);
-INSERT INTO discoveryinfo VALUES (5938315, 213, 12);
-INSERT INTO discoveryinfo VALUES (5938319, 213, 10);
-INSERT INTO discoveryinfo VALUES (5938318, 213, 11);
-INSERT INTO discoveryinfo VALUES (5938307, 213, 29);
-INSERT INTO discoveryinfo VALUES (5938308, 213, 24);
-INSERT INTO discoveryinfo VALUES (5938305, 213, 29);
-INSERT INTO discoveryinfo VALUES (5938299, 213, 26);
-INSERT INTO discoveryinfo VALUES (5938302, 213, 29);
-INSERT INTO discoveryinfo VALUES (5938300, 213, 26);
-INSERT INTO discoveryinfo VALUES (5938310, 213, 22);
-INSERT INTO discoveryinfo VALUES (5938311, 213, 23);
-INSERT INTO discoveryinfo VALUES (5938281, 213, 23);
-INSERT INTO discoveryinfo VALUES (5938296, 213, 26);
-INSERT INTO discoveryinfo VALUES (5938298, 213, 26);
-INSERT INTO discoveryinfo VALUES (5938291, 213, 22);
-INSERT INTO discoveryinfo VALUES (5938293, 213, 12);
-INSERT INTO discoveryinfo VALUES (5938292, 213, 27);
-INSERT INTO discoveryinfo VALUES (5938323, 213, 15);
-INSERT INTO discoveryinfo VALUES (5938321, 213, 4);
-INSERT INTO discoveryinfo VALUES (5919748, 213, 30);
-INSERT INTO discoveryinfo VALUES (5919753, 213, 3);
-INSERT INTO discoveryinfo VALUES (5919755, 213, 26);
-INSERT INTO discoveryinfo VALUES (5919756, 213, 29);
-INSERT INTO discoveryinfo VALUES (5919791, 213, 25);
-INSERT INTO discoveryinfo VALUES (5919812, 213, 25);
-INSERT INTO discoveryinfo VALUES (5919814, 213, 25);
-INSERT INTO discoveryinfo VALUES (5919815, 213, 25);
-INSERT INTO discoveryinfo VALUES (5919816, 213, 25);
-INSERT INTO discoveryinfo VALUES (5919818, 213, 25);
-INSERT INTO discoveryinfo VALUES (5919824, 213, 23);
-INSERT INTO discoveryinfo VALUES (5919826, 213, 21);
-INSERT INTO discoveryinfo VALUES (5919832, 213, 18);
-INSERT INTO discoveryinfo VALUES (5919835, 213, 15);
-INSERT INTO discoveryinfo VALUES (5919848, 213, 22);
-INSERT INTO discoveryinfo VALUES (5919851, 213, 28);
-INSERT INTO discoveryinfo VALUES (5919853, 213, 22);
-INSERT INTO discoveryinfo VALUES (5919854, 213, 23);
-INSERT INTO discoveryinfo VALUES (5919855, 213, 22);
-INSERT INTO discoveryinfo VALUES (5919859, 213, 22);
-INSERT INTO discoveryinfo VALUES (5919860, 213, 17);
-INSERT INTO discoveryinfo VALUES (5919868, 213, 22);
-INSERT INTO discoveryinfo VALUES (5919870, 213, 22);
-INSERT INTO discoveryinfo VALUES (5919908, 213, 24);
-INSERT INTO discoveryinfo VALUES (5919912, 213, 24);
-INSERT INTO discoveryinfo VALUES (5919927, 213, 22);
-INSERT INTO discoveryinfo VALUES (5919931, 213, 22);
-INSERT INTO discoveryinfo VALUES (5919973, 213, 27);
-INSERT INTO discoveryinfo VALUES (5920107, 213, 27);
-INSERT INTO discoveryinfo VALUES (5920109, 213, 27);
-INSERT INTO discoveryinfo VALUES (5920110, 213, 27);
-INSERT INTO discoveryinfo VALUES (5920131, 213, 12);
-INSERT INTO discoveryinfo VALUES (5920132, 213, 11);
-INSERT INTO discoveryinfo VALUES (5920134, 213, 11);
-INSERT INTO discoveryinfo VALUES (5920142, 213, 12);
-INSERT INTO discoveryinfo VALUES (5920147, 213, 11);
-INSERT INTO discoveryinfo VALUES (5935045, 213, 11);
-INSERT INTO discoveryinfo VALUES (5936562, 213, 11);
-INSERT INTO discoveryinfo VALUES (5937788, 213, 3);
-INSERT INTO discoveryinfo VALUES (5937789, 213, 23);
-INSERT INTO discoveryinfo VALUES (5937791, 213, 22);
-INSERT INTO discoveryinfo VALUES (5937798, 213, 23);
-INSERT INTO discoveryinfo VALUES (5937800, 213, 22);
-INSERT INTO discoveryinfo VALUES (5937801, 213, 23);
-INSERT INTO discoveryinfo VALUES (5937802, 213, 21);
-INSERT INTO discoveryinfo VALUES (5937803, 213, 27);
-INSERT INTO discoveryinfo VALUES (5937804, 213, 26);
-INSERT INTO discoveryinfo VALUES (5937805, 213, 26);
-INSERT INTO discoveryinfo VALUES (5938265, 213, 11);
-INSERT INTO discoveryinfo VALUES (5938270, 213, 11);
-INSERT INTO discoveryinfo VALUES (6238456, 213, 4);
-INSERT INTO discoveryinfo VALUES (6238457, 213, 4);
-INSERT INTO discoveryinfo VALUES (6238459, 213, 4);
-INSERT INTO discoveryinfo VALUES (5913190, 213, 12);
INSERT INTO discoveryinfo VALUES (5933371, 214, 2);
INSERT INTO discoveryinfo VALUES (5933372, 214, 2);
INSERT INTO discoveryinfo VALUES (5933373, 214, 2);
@@ -1309,12 +1086,12 @@ INSERT INTO discoveryinfo VALUES (5933395, 214, 5);
INSERT INTO discoveryinfo VALUES (5933396, 214, 5);
INSERT INTO discoveryinfo VALUES (5933397, 214, 5);
INSERT INTO discoveryinfo VALUES (5933398, 214, 5);
-INSERT INTO discoveryinfo VALUES (5933399, 214, 2);
+INSERT INTO discoveryinfo VALUES (5933399, 214, 4);
INSERT INTO discoveryinfo VALUES (5933400, 214, 4);
INSERT INTO discoveryinfo VALUES (5933401, 214, 4);
INSERT INTO discoveryinfo VALUES (5933402, 214, 4);
INSERT INTO discoveryinfo VALUES (5933403, 214, 4);
-INSERT INTO discoveryinfo VALUES (5933404, 214, 5);
+INSERT INTO discoveryinfo VALUES (5933404, 214, 4);
INSERT INTO discoveryinfo VALUES (5933405, 214, 4);
INSERT INTO discoveryinfo VALUES (5933406, 214, 8);
INSERT INTO discoveryinfo VALUES (5933407, 214, 8);
@@ -1344,7 +1121,7 @@ INSERT INTO discoveryinfo VALUES (5933430, 214, 30);
INSERT INTO discoveryinfo VALUES (5933431, 214, 30);
INSERT INTO discoveryinfo VALUES (5933432, 214, 30);
INSERT INTO discoveryinfo VALUES (5933433, 214, 30);
-INSERT INTO discoveryinfo VALUES (5933434, 214, 12);
+INSERT INTO discoveryinfo VALUES (5933434, 214, 30);
INSERT INTO discoveryinfo VALUES (5933435, 214, 13);
INSERT INTO discoveryinfo VALUES (5933436, 214, 13);
INSERT INTO discoveryinfo VALUES (5933437, 214, 13);
@@ -1410,108 +1187,138 @@ INSERT INTO discoveryinfo VALUES (5933496, 214, 25);
INSERT INTO discoveryinfo VALUES (5933497, 214, 25);
INSERT INTO discoveryinfo VALUES (5933498, 214, 26);
INSERT INTO discoveryinfo VALUES (5933499, 214, 17);
-INSERT INTO discoveryinfo VALUES (5938387, 214, 30);
-INSERT INTO discoveryinfo VALUES (5938388, 214, 12);
-INSERT INTO discoveryinfo VALUES (5938389, 214, 8);
-INSERT INTO discoveryinfo VALUES (5938390, 214, 11);
-INSERT INTO discoveryinfo VALUES (5938391, 214, 17);
-INSERT INTO discoveryinfo VALUES (5938392, 214, 15);
-INSERT INTO discoveryinfo VALUES (5938393, 214, 15);
-INSERT INTO discoveryinfo VALUES (5938394, 214, 16);
-INSERT INTO discoveryinfo VALUES (5938395, 214, 14);
-INSERT INTO discoveryinfo VALUES (5938396, 214, 2);
-INSERT INTO discoveryinfo VALUES (5938397, 214, 2);
-INSERT INTO discoveryinfo VALUES (5938398, 214, 2);
-INSERT INTO discoveryinfo VALUES (5938399, 214, 2);
-INSERT INTO discoveryinfo VALUES (5938400, 214, 1);
-INSERT INTO discoveryinfo VALUES (5938401, 214, 2);
-INSERT INTO discoveryinfo VALUES (5938402, 214, 19);
-INSERT INTO discoveryinfo VALUES (5938404, 214, 19);
-INSERT INTO discoveryinfo VALUES (5938405, 214, 18);
-INSERT INTO discoveryinfo VALUES (5938406, 214, 19);
-INSERT INTO discoveryinfo VALUES (5938407, 214, 20);
-INSERT INTO discoveryinfo VALUES (5938408, 214, 28);
-INSERT INTO discoveryinfo VALUES (5938409, 214, 21);
-INSERT INTO discoveryinfo VALUES (5938410, 214, 29);
-INSERT INTO discoveryinfo VALUES (5938411, 214, 27);
-INSERT INTO discoveryinfo VALUES (5938412, 214, 24);
-INSERT INTO discoveryinfo VALUES (5938413, 214, 22);
-INSERT INTO discoveryinfo VALUES (5938414, 214, 20);
-INSERT INTO discoveryinfo VALUES (5938416, 214, 5);
-INSERT INTO discoveryinfo VALUES (5938417, 214, 2);
-INSERT INTO discoveryinfo VALUES (5938418, 214, 7);
-INSERT INTO discoveryinfo VALUES (5938419, 214, 7);
-INSERT INTO discoveryinfo VALUES (5909929, 214, 2);
-INSERT INTO discoveryinfo VALUES (5909946, 214, 14);
-INSERT INTO discoveryinfo VALUES (5909947, 214, 14);
-INSERT INTO discoveryinfo VALUES (5909948, 214, 14);
-INSERT INTO discoveryinfo VALUES (5909950, 214, 14);
-INSERT INTO discoveryinfo VALUES (5909951, 214, 14);
-INSERT INTO discoveryinfo VALUES (5909952, 214, 14);
-INSERT INTO discoveryinfo VALUES (5909953, 214, 17);
-INSERT INTO discoveryinfo VALUES (5909980, 214, 2);
-INSERT INTO discoveryinfo VALUES (5921241, 214, 18);
-INSERT INTO discoveryinfo VALUES (5921242, 214, 19);
-INSERT INTO discoveryinfo VALUES (5921246, 214, 11);
-INSERT INTO discoveryinfo VALUES (5921247, 214, 11);
-INSERT INTO discoveryinfo VALUES (5921249, 214, 11);
-INSERT INTO discoveryinfo VALUES (5921250, 214, 11);
-INSERT INTO discoveryinfo VALUES (5921251, 214, 11);
-INSERT INTO discoveryinfo VALUES (5921252, 214, 11);
-INSERT INTO discoveryinfo VALUES (5921253, 214, 11);
-INSERT INTO discoveryinfo VALUES (5921254, 214, 11);
-INSERT INTO discoveryinfo VALUES (5921260, 214, 9);
-INSERT INTO discoveryinfo VALUES (5921262, 214, 9);
-INSERT INTO discoveryinfo VALUES (5921264, 214, 21);
-INSERT INTO discoveryinfo VALUES (5921265, 214, 24);
-INSERT INTO discoveryinfo VALUES (5921266, 214, 24);
-INSERT INTO discoveryinfo VALUES (5921267, 214, 26);
-INSERT INTO discoveryinfo VALUES (5921268, 214, 26);
-INSERT INTO discoveryinfo VALUES (5921273, 214, 27);
-INSERT INTO discoveryinfo VALUES (5921274, 214, 28);
-INSERT INTO discoveryinfo VALUES (5921275, 214, 28);
-INSERT INTO discoveryinfo VALUES (5921276, 214, 28);
-INSERT INTO discoveryinfo VALUES (5921277, 214, 28);
-INSERT INTO discoveryinfo VALUES (5921278, 214, 28);
-INSERT INTO discoveryinfo VALUES (5921279, 214, 28);
-INSERT INTO discoveryinfo VALUES (5921280, 214, 28);
-INSERT INTO discoveryinfo VALUES (5921281, 214, 28);
-INSERT INTO discoveryinfo VALUES (5921283, 214, 22);
-INSERT INTO discoveryinfo VALUES (5921287, 214, 22);
-INSERT INTO discoveryinfo VALUES (5921288, 214, 22);
-INSERT INTO discoveryinfo VALUES (5921290, 214, 22);
-INSERT INTO discoveryinfo VALUES (5921292, 214, 22);
-INSERT INTO discoveryinfo VALUES (5935100, 214, 16);
-INSERT INTO discoveryinfo VALUES (5935104, 214, 20);
-INSERT INTO discoveryinfo VALUES (5935105, 214, 16);
-INSERT INTO discoveryinfo VALUES (5935119, 214, 2);
-INSERT INTO discoveryinfo VALUES (5938344, 214, 22);
-INSERT INTO discoveryinfo VALUES (6407718, 214, 16);
-INSERT INTO discoveryinfo VALUES (6407719, 214, 16);
-INSERT INTO discoveryinfo VALUES (6407720, 214, 16);
-INSERT INTO discoveryinfo VALUES (6407721, 214, 16);
-INSERT INTO discoveryinfo VALUES (6407722, 214, 16);
-INSERT INTO discoveryinfo VALUES (5913193, 214, 13);
-INSERT INTO discoveryinfo VALUES (7247207, 445, 1);
-INSERT INTO discoveryinfo VALUES (6891617, 336, 1);
-INSERT INTO discoveryinfo VALUES (6891627, 336, 1);
-INSERT INTO discoveryinfo VALUES (6891637, 336, 2);
-INSERT INTO discoveryinfo VALUES (6891692, 336, 3);
-INSERT INTO discoveryinfo VALUES (6891694, 336, 5);
-INSERT INTO discoveryinfo VALUES (6893032, 336, 6);
-INSERT INTO discoveryinfo VALUES (6893044, 336, 7);
-INSERT INTO discoveryinfo VALUES (6893241, 336, 7);
-INSERT INTO discoveryinfo VALUES (6893757, 336, 8);
-INSERT INTO discoveryinfo VALUES (6893758, 336, 9);
-INSERT INTO discoveryinfo VALUES (6893760, 336, 10);
-INSERT INTO discoveryinfo VALUES (6893761, 336, 11);
-INSERT INTO discoveryinfo VALUES (6893762, 336, 11);
-INSERT INTO discoveryinfo VALUES (6983070, 336, 3);
-INSERT INTO discoveryinfo VALUES (6983071, 336, 9);
-INSERT INTO discoveryinfo VALUES (6983075, 336, 2);
-INSERT INTO discoveryinfo VALUES (6983076, 336, 7);
-INSERT INTO discoveryinfo VALUES (6983077, 336, 8);
-INSERT INTO discoveryinfo VALUES (6983079, 336, 10);
+INSERT INTO discoveryinfo VALUES (4102941, 23, 1);
+INSERT INTO discoveryinfo VALUES (4102944, 23, 1);
+INSERT INTO discoveryinfo VALUES (4102945, 23, 1);
+INSERT INTO discoveryinfo VALUES (4102948, 23, 1);
+INSERT INTO discoveryinfo VALUES (4102949, 23, 1);
+INSERT INTO discoveryinfo VALUES (4102950, 23, 2);
+INSERT INTO discoveryinfo VALUES (4102955, 23, 2);
+INSERT INTO discoveryinfo VALUES (4102956, 23, 2);
+INSERT INTO discoveryinfo VALUES (4102958, 23, 2);
+INSERT INTO discoveryinfo VALUES (4102961, 23, 3);
+INSERT INTO discoveryinfo VALUES (4102963, 23, 3);
+INSERT INTO discoveryinfo VALUES (4102987, 23, 3);
+INSERT INTO discoveryinfo VALUES (4102997, 23, 4);
+INSERT INTO discoveryinfo VALUES (4103002, 23, 4);
+INSERT INTO discoveryinfo VALUES (4103023, 23, 5);
+INSERT INTO discoveryinfo VALUES (4103031, 23, 5);
+INSERT INTO discoveryinfo VALUES (4103033, 23, 6);
+INSERT INTO discoveryinfo VALUES (4103035, 23, 6);
+INSERT INTO discoveryinfo VALUES (4103043, 23, 8);
+INSERT INTO discoveryinfo VALUES (4103047, 23, 8);
+INSERT INTO discoveryinfo VALUES (4103223, 23, 8);
+INSERT INTO discoveryinfo VALUES (4103224, 23, 9);
+INSERT INTO discoveryinfo VALUES (4103231, 23, 10);
+INSERT INTO discoveryinfo VALUES (4103235, 23, 10);
+INSERT INTO discoveryinfo VALUES (4103237, 23, 10);
+INSERT INTO discoveryinfo VALUES (4103238, 23, 11);
+INSERT INTO discoveryinfo VALUES (4103241, 23, 12);
+INSERT INTO discoveryinfo VALUES (4103337, 23, 13);
+INSERT INTO discoveryinfo VALUES (4103338, 23, 13);
+INSERT INTO discoveryinfo VALUES (4103356, 23, 13);
+INSERT INTO discoveryinfo VALUES (4103362, 23, 14);
+INSERT INTO discoveryinfo VALUES (4103363, 23, 14);
+INSERT INTO discoveryinfo VALUES (4103370, 23, 14);
+INSERT INTO discoveryinfo VALUES (4103377, 23, 15);
+INSERT INTO discoveryinfo VALUES (4103389, 23, 15);
+INSERT INTO discoveryinfo VALUES (4103395, 23, 15);
+INSERT INTO discoveryinfo VALUES (4103400, 23, 16);
+INSERT INTO discoveryinfo VALUES (4103403, 23, 16);
+INSERT INTO discoveryinfo VALUES (4103407, 23, 17);
+INSERT INTO discoveryinfo VALUES (4103408, 23, 17);
+INSERT INTO discoveryinfo VALUES (4103410, 23, 18);
+INSERT INTO discoveryinfo VALUES (4103411, 23, 16);
+INSERT INTO discoveryinfo VALUES (4103412, 23, 19);
+INSERT INTO discoveryinfo VALUES (4103414, 23, 15);
+INSERT INTO discoveryinfo VALUES (4103497, 23, 7);
+INSERT INTO discoveryinfo VALUES (4103499, 23, 6);
+INSERT INTO discoveryinfo VALUES (4373242, 23, 18);
+INSERT INTO discoveryinfo VALUES (4373243, 23, 18);
+INSERT INTO discoveryinfo VALUES (4515639, 23, 3);
+INSERT INTO discoveryinfo VALUES (4253094, 25, 1);
+INSERT INTO discoveryinfo VALUES (4253098, 25, 1);
+INSERT INTO discoveryinfo VALUES (4253099, 25, 1);
+INSERT INTO discoveryinfo VALUES (4252869, 25, 1);
+INSERT INTO discoveryinfo VALUES (4253015, 25, 2);
+INSERT INTO discoveryinfo VALUES (4253222, 25, 3);
+INSERT INTO discoveryinfo VALUES (4253016, 25, 3);
+INSERT INTO discoveryinfo VALUES (4253196, 25, 4);
+INSERT INTO discoveryinfo VALUES (4253197, 25, 4);
+INSERT INTO discoveryinfo VALUES (4253017, 25, 4);
+INSERT INTO discoveryinfo VALUES (4253210, 25, 4);
+INSERT INTO discoveryinfo VALUES (4253217, 25, 4);
+INSERT INTO discoveryinfo VALUES (4253220, 25, 4);
+INSERT INTO discoveryinfo VALUES (4253199, 25, 5);
+INSERT INTO discoveryinfo VALUES (4253201, 25, 5);
+INSERT INTO discoveryinfo VALUES (4253203, 25, 5);
+INSERT INTO discoveryinfo VALUES (4253204, 25, 5);
+INSERT INTO discoveryinfo VALUES (4253207, 25, 5);
+INSERT INTO discoveryinfo VALUES (4253018, 25, 5);
+INSERT INTO discoveryinfo VALUES (4253176, 25, 6);
+INSERT INTO discoveryinfo VALUES (4253019, 25, 6);
+INSERT INTO discoveryinfo VALUES (4253020, 25, 7);
+INSERT INTO discoveryinfo VALUES (4253021, 25, 8);
+INSERT INTO discoveryinfo VALUES (4253236, 25, 8);
+INSERT INTO discoveryinfo VALUES (4253022, 25, 9);
+INSERT INTO discoveryinfo VALUES (4253023, 25, 10);
+INSERT INTO discoveryinfo VALUES (4253025, 25, 11);
+INSERT INTO discoveryinfo VALUES (4253026, 25, 12);
+INSERT INTO discoveryinfo VALUES (4253027, 25, 13);
+INSERT INTO discoveryinfo VALUES (4253028, 25, 14);
+INSERT INTO discoveryinfo VALUES (4253182, 25, 14);
+INSERT INTO discoveryinfo VALUES (4253184, 25, 14);
+INSERT INTO discoveryinfo VALUES (4253188, 25, 14);
+INSERT INTO discoveryinfo VALUES (4253190, 25, 14);
+INSERT INTO discoveryinfo VALUES (4253029, 25, 15);
+INSERT INTO discoveryinfo VALUES (4253107, 25, 15);
+INSERT INTO discoveryinfo VALUES (4253030, 25, 16);
+INSERT INTO discoveryinfo VALUES (4253115, 25, 16);
+INSERT INTO discoveryinfo VALUES (4253145, 25, 16);
+INSERT INTO discoveryinfo VALUES (4534386, 25, 13);
+INSERT INTO discoveryinfo VALUES (4985265, 25, 1);
+INSERT INTO discoveryinfo VALUES (4972550, 168, 1);
+INSERT INTO discoveryinfo VALUES (4972551, 168, 2);
+INSERT INTO discoveryinfo VALUES (4757553, 168, 3);
+INSERT INTO discoveryinfo VALUES (4757557, 168, 4);
+INSERT INTO discoveryinfo VALUES (4757558, 168, 5);
+INSERT INTO discoveryinfo VALUES (4757560, 168, 5);
+INSERT INTO discoveryinfo VALUES (4757561, 168, 6);
+INSERT INTO discoveryinfo VALUES (4757562, 168, 7);
+INSERT INTO discoveryinfo VALUES (4757563, 168, 8);
+INSERT INTO discoveryinfo VALUES (4757565, 168, 9);
+INSERT INTO discoveryinfo VALUES (4757566, 168, 10);
+INSERT INTO discoveryinfo VALUES (4757569, 168, 11);
+INSERT INTO discoveryinfo VALUES (4757570, 168, 12);
+INSERT INTO discoveryinfo VALUES (5878769, 248, 1);
+INSERT INTO discoveryinfo VALUES (5878874, 249, 7);
+INSERT INTO discoveryinfo VALUES (5878877, 250, 9);
+INSERT INTO discoveryinfo VALUES (5878882, 251, 12);
+INSERT INTO discoveryinfo VALUES (5908839, 248, 1);
+INSERT INTO discoveryinfo VALUES (5908841, 248, 2);
+INSERT INTO discoveryinfo VALUES (5908844, 248, 3);
+INSERT INTO discoveryinfo VALUES (5908846, 248, 3);
+INSERT INTO discoveryinfo VALUES (5908848, 248, 3);
+INSERT INTO discoveryinfo VALUES (5908850, 248, 4);
+INSERT INTO discoveryinfo VALUES (5908851, 248, 5);
+INSERT INTO discoveryinfo VALUES (5908859, 248, 6);
+INSERT INTO discoveryinfo VALUES (5908863, 248, 6);
+INSERT INTO discoveryinfo VALUES (5908868, 248, 6);
+INSERT INTO discoveryinfo VALUES (5908869, 248, 6);
+INSERT INTO discoveryinfo VALUES (5909117, 249, 7);
+INSERT INTO discoveryinfo VALUES (5909118, 249, 7);
+INSERT INTO discoveryinfo VALUES (5909119, 249, 8);
+INSERT INTO discoveryinfo VALUES (5909356, 248, 3);
+INSERT INTO discoveryinfo VALUES (5909364, 250, 10);
+INSERT INTO discoveryinfo VALUES (5909368, 250, 11);
+INSERT INTO discoveryinfo VALUES (5909385, 251, 13);
+INSERT INTO discoveryinfo VALUES (5909387, 251, 14);
+INSERT INTO discoveryinfo VALUES (4635476, 148, 1);
+INSERT INTO discoveryinfo VALUES (4635477, 148, 2);
+INSERT INTO discoveryinfo VALUES (4635478, 148, 3);
+INSERT INTO discoveryinfo VALUES (4635479, 148, 4);
+INSERT INTO discoveryinfo VALUES (4635480, 148, 6);
+INSERT INTO discoveryinfo VALUES (4695119, 148, 5);
INSERT INTO discoveryinfo VALUES (6922034, 375, 1);
INSERT INTO discoveryinfo VALUES (6957295, 375, 1);
INSERT INTO discoveryinfo VALUES (6957309, 375, 2);
@@ -1532,12 +1339,75 @@ INSERT INTO discoveryinfo VALUES (6957367, 375, 11);
INSERT INTO discoveryinfo VALUES (6957368, 375, 12);
INSERT INTO discoveryinfo VALUES (6957369, 375, 13);
INSERT INTO discoveryinfo VALUES (6957370, 375, 14);
-INSERT INTO discoveryinfo VALUES (6994517, 375, 1);
-INSERT INTO discoveryinfo VALUES (6994518, 375, 2);
-INSERT INTO discoveryinfo VALUES (6994519, 375, 4);
-INSERT INTO discoveryinfo VALUES (6994521, 375, 8);
-INSERT INTO discoveryinfo VALUES (6994536, 375, 12);
-INSERT INTO discoveryinfo VALUES (6994537, 375, 14);
+INSERT INTO discoveryinfo VALUES (4902553, 189, 1);
+INSERT INTO discoveryinfo VALUES (4902554, 189, 2);
+INSERT INTO discoveryinfo VALUES (4902555, 189, 2);
+INSERT INTO discoveryinfo VALUES (4902556, 189, 2);
+INSERT INTO discoveryinfo VALUES (4902557, 189, 2);
+INSERT INTO discoveryinfo VALUES (4902558, 189, 3);
+INSERT INTO discoveryinfo VALUES (4902559, 189, 3);
+INSERT INTO discoveryinfo VALUES (4902560, 189, 3);
+INSERT INTO discoveryinfo VALUES (4902561, 189, 4);
+INSERT INTO discoveryinfo VALUES (4902562, 189, 5);
+INSERT INTO discoveryinfo VALUES (4902563, 189, 5);
+INSERT INTO discoveryinfo VALUES (4902564, 190, 6);
+INSERT INTO discoveryinfo VALUES (4902565, 190, 6);
+INSERT INTO discoveryinfo VALUES (4902566, 190, 7);
+INSERT INTO discoveryinfo VALUES (4902567, 190, 8);
+INSERT INTO discoveryinfo VALUES (4902568, 190, 8);
+INSERT INTO discoveryinfo VALUES (4902569, 190, 8);
+INSERT INTO discoveryinfo VALUES (4902570, 190, 9);
+INSERT INTO discoveryinfo VALUES (4902571, 190, 10);
+INSERT INTO discoveryinfo VALUES (4902572, 190, 11);
+INSERT INTO discoveryinfo VALUES (4902573, 191, 13);
+INSERT INTO discoveryinfo VALUES (4902578, 191, 14);
+INSERT INTO discoveryinfo VALUES (4902579, 191, 15);
+INSERT INTO discoveryinfo VALUES (5321536, 189, 1);
+INSERT INTO discoveryinfo VALUES (5321547, 190, 12);
+INSERT INTO discoveryinfo VALUES (5321639, 190, 7);
+INSERT INTO discoveryinfo VALUES (6268730, 298, 1);
+INSERT INTO discoveryinfo VALUES (6268731, 298, 2);
+INSERT INTO discoveryinfo VALUES (6268733, 298, 2);
+INSERT INTO discoveryinfo VALUES (6268734, 298, 3);
+INSERT INTO discoveryinfo VALUES (6268735, 298, 3);
+INSERT INTO discoveryinfo VALUES (6268736, 298, 3);
+INSERT INTO discoveryinfo VALUES (6268739, 299, 4);
+INSERT INTO discoveryinfo VALUES (6268740, 299, 5);
+INSERT INTO discoveryinfo VALUES (6268741, 299, 5);
+INSERT INTO discoveryinfo VALUES (6268742, 299, 6);
+INSERT INTO discoveryinfo VALUES (6268750, 299, 7);
+INSERT INTO discoveryinfo VALUES (6268751, 299, 8);
+INSERT INTO discoveryinfo VALUES (6268753, 300, 9);
+INSERT INTO discoveryinfo VALUES (6268754, 300, 10);
+INSERT INTO discoveryinfo VALUES (6268756, 300, 11);
+INSERT INTO discoveryinfo VALUES (6268758, 301, 12);
+INSERT INTO discoveryinfo VALUES (6268759, 301, 13);
+INSERT INTO discoveryinfo VALUES (6268770, 302, 14);
+INSERT INTO discoveryinfo VALUES (6268771, 303, 15);
+INSERT INTO discoveryinfo VALUES (7247189, 445, 1);
+INSERT INTO discoveryinfo VALUES (7247201, 445, 2);
+INSERT INTO discoveryinfo VALUES (7247210, 445, 3);
+INSERT INTO discoveryinfo VALUES (7247214, 445, 3);
+INSERT INTO discoveryinfo VALUES (7247215, 445, 4);
+INSERT INTO discoveryinfo VALUES (7329689, 445, 4);
+INSERT INTO discoveryinfo VALUES (7329690, 445, 3);
+INSERT INTO discoveryinfo VALUES (7329691, 445, 3);
+INSERT INTO discoveryinfo VALUES (7329692, 445, 4);
+INSERT INTO discoveryinfo VALUES (7329693, 445, 4);
+INSERT INTO discoveryinfo VALUES (6891617, 336, 1);
+INSERT INTO discoveryinfo VALUES (6891627, 336, 1);
+INSERT INTO discoveryinfo VALUES (6891637, 336, 2);
+INSERT INTO discoveryinfo VALUES (6891692, 336, 3);
+INSERT INTO discoveryinfo VALUES (6891694, 336, 4);
+INSERT INTO discoveryinfo VALUES (6893032, 336, 5);
+INSERT INTO discoveryinfo VALUES (6893044, 336, 6);
+INSERT INTO discoveryinfo VALUES (6893241, 336, 7);
+INSERT INTO discoveryinfo VALUES (6893757, 336, 8);
+INSERT INTO discoveryinfo VALUES (6893758, 336, 9);
+INSERT INTO discoveryinfo VALUES (6893759, 336, 9);
+INSERT INTO discoveryinfo VALUES (6893760, 336, 10);
+INSERT INTO discoveryinfo VALUES (6893761, 336, 10);
+INSERT INTO discoveryinfo VALUES (6893762, 336, 11);
INSERT INTO discoveryinfo VALUES (6969455, 396, 1);
INSERT INTO discoveryinfo VALUES (6969457, 396, 2);
INSERT INTO discoveryinfo VALUES (6969461, 396, 2);
@@ -1560,11 +1430,30 @@ INSERT INTO discoveryinfo VALUES (6969521, 396, 10);
INSERT INTO discoveryinfo VALUES (6969607, 396, 11);
INSERT INTO discoveryinfo VALUES (6969611, 396, 12);
INSERT INTO discoveryinfo VALUES (6969612, 396, 13);
-INSERT INTO discoveryinfo VALUES (6994636, 396, 5);
-INSERT INTO discoveryinfo VALUES (6994637, 396, 9);
-INSERT INTO discoveryinfo VALUES (6994638, 396, 11);
-INSERT INTO discoveryinfo VALUES (6994639, 396, 13);
-INSERT INTO discoveryinfo VALUES (6951063, 361, 9);
+INSERT INTO discoveryinfo VALUES (6951046, 360, 1);
+INSERT INTO discoveryinfo VALUES (6951063, 360, 2);
+INSERT INTO discoveryinfo VALUES (6951064, 360, 3);
+INSERT INTO discoveryinfo VALUES (6951068, 360, 4);
+INSERT INTO discoveryinfo VALUES (6951070, 360, 4);
+INSERT INTO discoveryinfo VALUES (6951071, 360, 5);
+INSERT INTO discoveryinfo VALUES (6951072, 361, 6);
+INSERT INTO discoveryinfo VALUES (6951075, 361, 7);
+INSERT INTO discoveryinfo VALUES (6951082, 361, 8);
+INSERT INTO discoveryinfo VALUES (6951084, 361, 9);
+INSERT INTO discoveryinfo VALUES (6951090, 361, 9);
+INSERT INTO discoveryinfo VALUES (6951096, 361, 10);
+INSERT INTO discoveryinfo VALUES (6951098, 361, 10);
+INSERT INTO discoveryinfo VALUES (6951101, 361, 11);
+INSERT INTO discoveryinfo VALUES (6951105, 361, 12);
+INSERT INTO discoveryinfo VALUES (6951110, 361, 13);
+INSERT INTO discoveryinfo VALUES (6951118, 361, 14);
+INSERT INTO discoveryinfo VALUES (6951123, 361, 15);
+INSERT INTO discoveryinfo VALUES (6951124, 361, 15);
+INSERT INTO discoveryinfo VALUES (6951131, 360, 4);
+INSERT INTO discoveryinfo VALUES (6951139, 361, 10);
+INSERT INTO discoveryinfo VALUES (6951145, 361, 15);
+INSERT INTO discoveryinfo VALUES (6951142, 361, 12);
+INSERT INTO discoveryinfo VALUES (7011526, 361, 12);
INSERT INTO discoveryinfo VALUES (7171970, 439, 1);
INSERT INTO discoveryinfo VALUES (7171972, 439, 2);
INSERT INTO discoveryinfo VALUES (7171973, 439, 3);
@@ -1581,18 +1470,23 @@ INSERT INTO discoveryinfo VALUES (7171988, 439, 7);
INSERT INTO discoveryinfo VALUES (7171997, 439, 5);
INSERT INTO discoveryinfo VALUES (7171998, 439, 9);
INSERT INTO discoveryinfo VALUES (7171999, 439, 13);
-INSERT INTO discoveryinfo VALUES (6972099, 371, 4);
-INSERT INTO discoveryinfo VALUES (6972116, 371, 4);
-INSERT INTO discoveryinfo VALUES (6972119, 371, 2);
-INSERT INTO discoveryinfo VALUES (6972120, 371, 2);
-INSERT INTO discoveryinfo VALUES (6972122, 371, 3);
-INSERT INTO discoveryinfo VALUES (6972123, 371, 2);
-INSERT INTO discoveryinfo VALUES (6972124, 371, 10);
-INSERT INTO discoveryinfo VALUES (6972127, 371, 10);
-INSERT INTO discoveryinfo VALUES (6972129, 371, 10);
-INSERT INTO discoveryinfo VALUES (6972130, 371, 1);
-INSERT INTO discoveryinfo VALUES (6972131, 371, 27);
-INSERT INTO discoveryinfo VALUES (6972132, 371, 19);
+INSERT INTO discoveryinfo VALUES (7297512, 464, 2);
+INSERT INTO discoveryinfo VALUES (7297510, 464, 1);
+INSERT INTO discoveryinfo VALUES (7297515, 464, 3);
+INSERT INTO discoveryinfo VALUES (7298491, 464, 4);
+INSERT INTO discoveryinfo VALUES (7297516, 464, 3);
+INSERT INTO discoveryinfo VALUES (7296101, 464, 1);
+INSERT INTO discoveryinfo VALUES (7297508, 464, 5);
+INSERT INTO discoveryinfo VALUES (7297509, 464, 2);
+INSERT INTO discoveryinfo VALUES (7297532, 465, 6);
+INSERT INTO discoveryinfo VALUES (7298492, 465, 7);
+INSERT INTO discoveryinfo VALUES (7298493, 465, 8);
+INSERT INTO discoveryinfo VALUES (7296102, 465, 9);
+INSERT INTO discoveryinfo VALUES (7297522, 466, 11);
+INSERT INTO discoveryinfo VALUES (7296103, 466, 10);
+INSERT INTO discoveryinfo VALUES (7297524, 466, 12);
+INSERT INTO discoveryinfo VALUES (7297525, 466, 13);
+INSERT INTO discoveryinfo VALUES (7297520, 466, 10);
INSERT INTO discoveryinfo VALUES (6999476, 371, 1);
INSERT INTO discoveryinfo VALUES (6999477, 371, 1);
INSERT INTO discoveryinfo VALUES (6999478, 371, 1);
@@ -1652,7 +1546,7 @@ INSERT INTO discoveryinfo VALUES (6999531, 371, 24);
INSERT INTO discoveryinfo VALUES (6999532, 371, 24);
INSERT INTO discoveryinfo VALUES (6999533, 371, 26);
INSERT INTO discoveryinfo VALUES (6999534, 371, 26);
-INSERT INTO discoveryinfo VALUES (6999535, 371, 23);
+INSERT INTO discoveryinfo VALUES (6999535, 371, 25);
INSERT INTO discoveryinfo VALUES (6999536, 371, 25);
INSERT INTO discoveryinfo VALUES (6999537, 371, 21);
INSERT INTO discoveryinfo VALUES (6999538, 371, 21);
@@ -1667,7 +1561,7 @@ INSERT INTO discoveryinfo VALUES (6999546, 371, 12);
INSERT INTO discoveryinfo VALUES (6999547, 371, 12);
INSERT INTO discoveryinfo VALUES (6999548, 371, 12);
INSERT INTO discoveryinfo VALUES (6999549, 371, 12);
-INSERT INTO discoveryinfo VALUES (6999550, 371, 12);
+INSERT INTO discoveryinfo VALUES (6999550, 371, 11);
INSERT INTO discoveryinfo VALUES (6999551, 371, 11);
INSERT INTO discoveryinfo VALUES (6999552, 371, 11);
INSERT INTO discoveryinfo VALUES (6999553, 371, 10);
@@ -1691,89 +1585,8 @@ INSERT INTO discoveryinfo VALUES (6999570, 371, 19);
INSERT INTO discoveryinfo VALUES (6999571, 371, 19);
INSERT INTO discoveryinfo VALUES (6999572, 371, 18);
INSERT INTO discoveryinfo VALUES (6999573, 371, 20);
-INSERT INTO discoveryinfo VALUES (6999574, 371, 23);
+INSERT INTO discoveryinfo VALUES (6999574, 371, 20);
INSERT INTO discoveryinfo VALUES (6999575, 371, 13);
-INSERT INTO discoveryinfo VALUES (6972136, 371, 2);
-INSERT INTO discoveryinfo VALUES (6972138, 371, 2);
-INSERT INTO discoveryinfo VALUES (6972141, 371, 2);
-INSERT INTO discoveryinfo VALUES (6972145, 371, 2);
-INSERT INTO discoveryinfo VALUES (6972153, 371, 4);
-INSERT INTO discoveryinfo VALUES (6972155, 371, 3);
-INSERT INTO discoveryinfo VALUES (6972157, 371, 3);
-INSERT INTO discoveryinfo VALUES (6972158, 371, 3);
-INSERT INTO discoveryinfo VALUES (6972169, 371, 10);
-INSERT INTO discoveryinfo VALUES (6972171, 371, 12);
-INSERT INTO discoveryinfo VALUES (6972175, 371, 12);
-INSERT INTO discoveryinfo VALUES (6972176, 371, 12);
-INSERT INTO discoveryinfo VALUES (6972422, 371, 12);
-INSERT INTO discoveryinfo VALUES (6972423, 371, 12);
-INSERT INTO discoveryinfo VALUES (6972424, 371, 12);
-INSERT INTO discoveryinfo VALUES (6973154, 371, 12);
-INSERT INTO discoveryinfo VALUES (6973156, 371, 12);
-INSERT INTO discoveryinfo VALUES (6973157, 371, 11);
-INSERT INTO discoveryinfo VALUES (6973158, 371, 11);
-INSERT INTO discoveryinfo VALUES (6973160, 371, 11);
-INSERT INTO discoveryinfo VALUES (6973163, 371, 11);
-INSERT INTO discoveryinfo VALUES (6973166, 371, 11);
-INSERT INTO discoveryinfo VALUES (6973168, 371, 22);
-INSERT INTO discoveryinfo VALUES (6973172, 371, 21);
-INSERT INTO discoveryinfo VALUES (6973186, 371, 20);
-INSERT INTO discoveryinfo VALUES (6973189, 371, 23);
-INSERT INTO discoveryinfo VALUES (6973192, 371, 23);
-INSERT INTO discoveryinfo VALUES (6973193, 371, 24);
-INSERT INTO discoveryinfo VALUES (6973200, 371, 26);
-INSERT INTO discoveryinfo VALUES (6973201, 371, 23);
-INSERT INTO discoveryinfo VALUES (6973209, 371, 28);
-INSERT INTO discoveryinfo VALUES (6973213, 371, 30);
-INSERT INTO discoveryinfo VALUES (6973214, 371, 29);
-INSERT INTO discoveryinfo VALUES (6973215, 371, 23);
-INSERT INTO discoveryinfo VALUES (6973223, 371, 29);
-INSERT INTO discoveryinfo VALUES (6973224, 371, 29);
-INSERT INTO discoveryinfo VALUES (6973225, 371, 17);
-INSERT INTO discoveryinfo VALUES (6973231, 371, 17);
-INSERT INTO discoveryinfo VALUES (6973232, 371, 16);
-INSERT INTO discoveryinfo VALUES (6973233, 371, 16);
-INSERT INTO discoveryinfo VALUES (6973236, 371, 16);
-INSERT INTO discoveryinfo VALUES (6973237, 371, 16);
-INSERT INTO discoveryinfo VALUES (6973238, 371, 17);
-INSERT INTO discoveryinfo VALUES (6973241, 371, 17);
-INSERT INTO discoveryinfo VALUES (6973242, 371, 16);
-INSERT INTO discoveryinfo VALUES (6973243, 371, 17);
-INSERT INTO discoveryinfo VALUES (6973251, 371, 13);
-INSERT INTO discoveryinfo VALUES (6973906, 371, 8);
-INSERT INTO discoveryinfo VALUES (6973923, 371, 8);
-INSERT INTO discoveryinfo VALUES (6973969, 371, 7);
-INSERT INTO discoveryinfo VALUES (6973991, 371, 7);
-INSERT INTO discoveryinfo VALUES (6973998, 371, 7);
-INSERT INTO discoveryinfo VALUES (6974005, 371, 19);
-INSERT INTO discoveryinfo VALUES (6974006, 371, 19);
-INSERT INTO discoveryinfo VALUES (6974007, 371, 19);
-INSERT INTO discoveryinfo VALUES (6975746, 371, 12);
-INSERT INTO discoveryinfo VALUES (7015554, 371, 12);
-INSERT INTO discoveryinfo VALUES (7015555, 371, 12);
-INSERT INTO discoveryinfo VALUES (7015556, 371, 12);
-INSERT INTO discoveryinfo VALUES (7015557, 371, 12);
-INSERT INTO discoveryinfo VALUES (7015559, 371, 12);
-INSERT INTO discoveryinfo VALUES (7015560, 371, 12);
-INSERT INTO discoveryinfo VALUES (7015561, 371, 12);
-INSERT INTO discoveryinfo VALUES (7015562, 371, 12);
-INSERT INTO discoveryinfo VALUES (7015563, 371, 1);
-INSERT INTO discoveryinfo VALUES (7015564, 371, 2);
-INSERT INTO discoveryinfo VALUES (7015565, 371, 2);
-INSERT INTO discoveryinfo VALUES (7015639, 371, 2);
-INSERT INTO discoveryinfo VALUES (7015809, 371, 29);
-INSERT INTO discoveryinfo VALUES (7015810, 371, 29);
-INSERT INTO discoveryinfo VALUES (7015811, 371, 29);
-INSERT INTO discoveryinfo VALUES (7015831, 371, 29);
-INSERT INTO discoveryinfo VALUES (7022002, 371, 8);
-INSERT INTO discoveryinfo VALUES (7022001, 371, 8);
-INSERT INTO discoveryinfo VALUES (7022000, 371, 8);
-INSERT INTO discoveryinfo VALUES (7022434, 371, 21);
-INSERT INTO discoveryinfo VALUES (7022435, 371, 7);
-INSERT INTO discoveryinfo VALUES (7022436, 371, 6);
-INSERT INTO discoveryinfo VALUES (7022437, 371, 15);
-INSERT INTO discoveryinfo VALUES (7022438, 371, 5);
-INSERT INTO discoveryinfo VALUES (7022439, 371, 5);
INSERT INTO discoveryinfo VALUES (6998818, 371, 1);
INSERT INTO discoveryinfo VALUES (6998896, 371, 1);
INSERT INTO discoveryinfo VALUES (6998897, 371, 1);
@@ -1833,7 +1646,7 @@ INSERT INTO discoveryinfo VALUES (6999171, 371, 24);
INSERT INTO discoveryinfo VALUES (6999172, 371, 24);
INSERT INTO discoveryinfo VALUES (6999173, 371, 26);
INSERT INTO discoveryinfo VALUES (6999174, 371, 26);
-INSERT INTO discoveryinfo VALUES (6999175, 371, 23);
+INSERT INTO discoveryinfo VALUES (6999175, 371, 25);
INSERT INTO discoveryinfo VALUES (6999176, 371, 25);
INSERT INTO discoveryinfo VALUES (6999177, 371, 21);
INSERT INTO discoveryinfo VALUES (6999179, 371, 21);
@@ -1848,7 +1661,7 @@ INSERT INTO discoveryinfo VALUES (6999188, 371, 12);
INSERT INTO discoveryinfo VALUES (6999189, 371, 12);
INSERT INTO discoveryinfo VALUES (6999190, 371, 12);
INSERT INTO discoveryinfo VALUES (6999191, 371, 12);
-INSERT INTO discoveryinfo VALUES (6999192, 371, 12);
+INSERT INTO discoveryinfo VALUES (6999192, 371, 11);
INSERT INTO discoveryinfo VALUES (6999193, 371, 11);
INSERT INTO discoveryinfo VALUES (6999194, 371, 11);
INSERT INTO discoveryinfo VALUES (6999195, 371, 10);
@@ -1872,27 +1685,8 @@ INSERT INTO discoveryinfo VALUES (6999219, 371, 19);
INSERT INTO discoveryinfo VALUES (6999220, 371, 19);
INSERT INTO discoveryinfo VALUES (6999221, 371, 18);
INSERT INTO discoveryinfo VALUES (6999222, 371, 20);
-INSERT INTO discoveryinfo VALUES (6999223, 371, 23);
+INSERT INTO discoveryinfo VALUES (6999223, 371, 20);
INSERT INTO discoveryinfo VALUES (6999224, 371, 13);
-INSERT INTO discoveryinfo VALUES (6942997, 371, 13);
-INSERT INTO discoveryinfo VALUES (6976755, 354, 5);
-INSERT INTO discoveryinfo VALUES (6976758, 354, 3);
-INSERT INTO discoveryinfo VALUES (6976760, 354, 10);
-INSERT INTO discoveryinfo VALUES (6976762, 354, 9);
-INSERT INTO discoveryinfo VALUES (6976763, 354, 8);
-INSERT INTO discoveryinfo VALUES (6976765, 354, 28);
-INSERT INTO discoveryinfo VALUES (6976768, 354, 30);
-INSERT INTO discoveryinfo VALUES (6976773, 354, 21);
-INSERT INTO discoveryinfo VALUES (6976823, 354, 10);
-INSERT INTO discoveryinfo VALUES (6977088, 354, 23);
-INSERT INTO discoveryinfo VALUES (6977089, 354, 22);
-INSERT INTO discoveryinfo VALUES (6977100, 354, 24);
-INSERT INTO discoveryinfo VALUES (6977101, 354, 24);
-INSERT INTO discoveryinfo VALUES (6977102, 354, 25);
-INSERT INTO discoveryinfo VALUES (6977106, 354, 19);
-INSERT INTO discoveryinfo VALUES (6977145, 354, 18);
-INSERT INTO discoveryinfo VALUES (6977146, 354, 17);
-INSERT INTO discoveryinfo VALUES (6977148, 354, 12);
INSERT INTO discoveryinfo VALUES (7002715, 354, 1);
INSERT INTO discoveryinfo VALUES (7002716, 354, 1);
INSERT INTO discoveryinfo VALUES (7002717, 354, 1);
@@ -1910,7 +1704,7 @@ INSERT INTO discoveryinfo VALUES (7002728, 354, 4);
INSERT INTO discoveryinfo VALUES (7002729, 354, 5);
INSERT INTO discoveryinfo VALUES (7002730, 354, 6);
INSERT INTO discoveryinfo VALUES (7002731, 354, 6);
-INSERT INTO discoveryinfo VALUES (7002732, 354, 3);
+INSERT INTO discoveryinfo VALUES (7002732, 354, 2);
INSERT INTO discoveryinfo VALUES (7002733, 354, 2);
INSERT INTO discoveryinfo VALUES (7002734, 354, 2);
INSERT INTO discoveryinfo VALUES (7002735, 354, 8);
@@ -1983,68 +1777,13 @@ INSERT INTO discoveryinfo VALUES (7002801, 354, 18);
INSERT INTO discoveryinfo VALUES (7002802, 354, 20);
INSERT INTO discoveryinfo VALUES (7002803, 354, 20);
INSERT INTO discoveryinfo VALUES (7002804, 354, 20);
-INSERT INTO discoveryinfo VALUES (7002805, 354, 20);
+INSERT INTO discoveryinfo VALUES (7002805, 354, 11);
INSERT INTO discoveryinfo VALUES (7002806, 354, 11);
INSERT INTO discoveryinfo VALUES (7002807, 354, 14);
INSERT INTO discoveryinfo VALUES (7002808, 354, 14);
INSERT INTO discoveryinfo VALUES (7002809, 354, 14);
INSERT INTO discoveryinfo VALUES (7002810, 354, 13);
INSERT INTO discoveryinfo VALUES (7002811, 354, 12);
-INSERT INTO discoveryinfo VALUES (6977200, 354, 3);
-INSERT INTO discoveryinfo VALUES (6977202, 354, 6);
-INSERT INTO discoveryinfo VALUES (6977203, 354, 6);
-INSERT INTO discoveryinfo VALUES (6977204, 354, 6);
-INSERT INTO discoveryinfo VALUES (6977205, 354, 6);
-INSERT INTO discoveryinfo VALUES (6977208, 354, 6);
-INSERT INTO discoveryinfo VALUES (6977254, 354, 29);
-INSERT INTO discoveryinfo VALUES (6977257, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977258, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977260, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977261, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977262, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977275, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977280, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977285, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977286, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977287, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977290, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977293, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977335, 354, 30);
-INSERT INTO discoveryinfo VALUES (6977436, 354, 28);
-INSERT INTO discoveryinfo VALUES (6977459, 354, 26);
-INSERT INTO discoveryinfo VALUES (6977464, 354, 26);
-INSERT INTO discoveryinfo VALUES (6977465, 354, 26);
-INSERT INTO discoveryinfo VALUES (6977467, 354, 26);
-INSERT INTO discoveryinfo VALUES (6977470, 354, 26);
-INSERT INTO discoveryinfo VALUES (6977472, 354, 26);
-INSERT INTO discoveryinfo VALUES (6977478, 354, 25);
-INSERT INTO discoveryinfo VALUES (6977481, 354, 25);
-INSERT INTO discoveryinfo VALUES (6977488, 354, 25);
-INSERT INTO discoveryinfo VALUES (6977489, 354, 25);
-INSERT INTO discoveryinfo VALUES (6977495, 354, 24);
-INSERT INTO discoveryinfo VALUES (6977497, 354, 24);
-INSERT INTO discoveryinfo VALUES (6977499, 354, 22);
-INSERT INTO discoveryinfo VALUES (6977502, 354, 22);
-INSERT INTO discoveryinfo VALUES (6977509, 354, 22);
-INSERT INTO discoveryinfo VALUES (6977514, 354, 22);
-INSERT INTO discoveryinfo VALUES (6977518, 354, 22);
-INSERT INTO discoveryinfo VALUES (6977533, 354, 22);
-INSERT INTO discoveryinfo VALUES (6977552, 354, 22);
-INSERT INTO discoveryinfo VALUES (6977561, 354, 10);
-INSERT INTO discoveryinfo VALUES (6977566, 354, 16);
-INSERT INTO discoveryinfo VALUES (6977567, 354, 17);
-INSERT INTO discoveryinfo VALUES (6977570, 354, 19);
-INSERT INTO discoveryinfo VALUES (6977576, 354, 19);
-INSERT INTO discoveryinfo VALUES (6977579, 354, 19);
-INSERT INTO discoveryinfo VALUES (6977581, 354, 13);
-INSERT INTO discoveryinfo VALUES (6977586, 354, 12);
-INSERT INTO discoveryinfo VALUES (6977591, 354, 12);
-INSERT INTO discoveryinfo VALUES (6977592, 354, 12);
-INSERT INTO discoveryinfo VALUES (6977594, 354, 13);
-INSERT INTO discoveryinfo VALUES (6977649, 354, 19);
-INSERT INTO discoveryinfo VALUES (6977651, 354, 19);
-INSERT INTO discoveryinfo VALUES (7021959, 354, 6);
-INSERT INTO discoveryinfo VALUES (7022202, 354, 30);
INSERT INTO discoveryinfo VALUES (7001712, 354, 1);
INSERT INTO discoveryinfo VALUES (7002280, 354, 1);
INSERT INTO discoveryinfo VALUES (7002282, 354, 1);
@@ -2062,7 +1801,7 @@ INSERT INTO discoveryinfo VALUES (7002301, 354, 4);
INSERT INTO discoveryinfo VALUES (7002303, 354, 5);
INSERT INTO discoveryinfo VALUES (7002324, 354, 6);
INSERT INTO discoveryinfo VALUES (7002325, 354, 6);
-INSERT INTO discoveryinfo VALUES (7002327, 354, 3);
+INSERT INTO discoveryinfo VALUES (7002327, 354, 2);
INSERT INTO discoveryinfo VALUES (7002328, 354, 2);
INSERT INTO discoveryinfo VALUES (7002329, 354, 2);
INSERT INTO discoveryinfo VALUES (7002333, 354, 8);
@@ -2135,58 +1874,13 @@ INSERT INTO discoveryinfo VALUES (7002698, 354, 18);
INSERT INTO discoveryinfo VALUES (7002700, 354, 20);
INSERT INTO discoveryinfo VALUES (7002701, 354, 20);
INSERT INTO discoveryinfo VALUES (7002703, 354, 20);
-INSERT INTO discoveryinfo VALUES (7002705, 354, 20);
+INSERT INTO discoveryinfo VALUES (7002705, 354, 11);
INSERT INTO discoveryinfo VALUES (7002708, 354, 11);
INSERT INTO discoveryinfo VALUES (7002710, 354, 14);
INSERT INTO discoveryinfo VALUES (7002711, 354, 14);
INSERT INTO discoveryinfo VALUES (7002712, 354, 14);
INSERT INTO discoveryinfo VALUES (7002713, 354, 13);
INSERT INTO discoveryinfo VALUES (7002714, 354, 12);
-INSERT INTO discoveryinfo VALUES (6942999, 354, 10);
-INSERT INTO discoveryinfo VALUES (6979969, 372, 3);
-INSERT INTO discoveryinfo VALUES (6979985, 372, 3);
-INSERT INTO discoveryinfo VALUES (6979987, 372, 5);
-INSERT INTO discoveryinfo VALUES (6980003, 372, 3);
-INSERT INTO discoveryinfo VALUES (6980011, 372, 5);
-INSERT INTO discoveryinfo VALUES (6980019, 372, 5);
-INSERT INTO discoveryinfo VALUES (6980024, 372, 8);
-INSERT INTO discoveryinfo VALUES (6980026, 372, 8);
-INSERT INTO discoveryinfo VALUES (6980073, 372, 5);
-INSERT INTO discoveryinfo VALUES (6980078, 372, 30);
-INSERT INTO discoveryinfo VALUES (6980079, 372, 30);
-INSERT INTO discoveryinfo VALUES (6980080, 372, 30);
-INSERT INTO discoveryinfo VALUES (6980082, 372, 30);
-INSERT INTO discoveryinfo VALUES (6980083, 372, 30);
-INSERT INTO discoveryinfo VALUES (6980084, 372, 30);
-INSERT INTO discoveryinfo VALUES (6980087, 372, 30);
-INSERT INTO discoveryinfo VALUES (6980090, 372, 30);
-INSERT INTO discoveryinfo VALUES (6980108, 372, 21);
-INSERT INTO discoveryinfo VALUES (6980113, 372, 21);
-INSERT INTO discoveryinfo VALUES (6980117, 372, 20);
-INSERT INTO discoveryinfo VALUES (6980124, 372, 20);
-INSERT INTO discoveryinfo VALUES (6980126, 372, 20);
-INSERT INTO discoveryinfo VALUES (6980128, 372, 18);
-INSERT INTO discoveryinfo VALUES (6980134, 372, 17);
-INSERT INTO discoveryinfo VALUES (6980135, 372, 17);
-INSERT INTO discoveryinfo VALUES (6980136, 372, 17);
-INSERT INTO discoveryinfo VALUES (6980137, 372, 17);
-INSERT INTO discoveryinfo VALUES (6980138, 372, 16);
-INSERT INTO discoveryinfo VALUES (6980140, 372, 15);
-INSERT INTO discoveryinfo VALUES (6980142, 372, 16);
-INSERT INTO discoveryinfo VALUES (6980143, 372, 16);
-INSERT INTO discoveryinfo VALUES (6980145, 372, 15);
-INSERT INTO discoveryinfo VALUES (6980150, 372, 1);
-INSERT INTO discoveryinfo VALUES (6980155, 372, 2);
-INSERT INTO discoveryinfo VALUES (6980157, 372, 29);
-INSERT INTO discoveryinfo VALUES (6980160, 372, 29);
-INSERT INTO discoveryinfo VALUES (6980161, 372, 29);
-INSERT INTO discoveryinfo VALUES (6980187, 372, 22);
-INSERT INTO discoveryinfo VALUES (6980188, 372, 26);
-INSERT INTO discoveryinfo VALUES (6980190, 372, 12);
-INSERT INTO discoveryinfo VALUES (6998414, 372, 8);
-INSERT INTO discoveryinfo VALUES (6998415, 372, 8);
-INSERT INTO discoveryinfo VALUES (6998416, 372, 18);
-INSERT INTO discoveryinfo VALUES (6998468, 372, 3);
INSERT INTO discoveryinfo VALUES (7007424, 372, 1);
INSERT INTO discoveryinfo VALUES (7007425, 372, 1);
INSERT INTO discoveryinfo VALUES (7007426, 372, 1);
@@ -2199,7 +1893,7 @@ INSERT INTO discoveryinfo VALUES (7007432, 372, 5);
INSERT INTO discoveryinfo VALUES (7007433, 372, 5);
INSERT INTO discoveryinfo VALUES (7007434, 372, 8);
INSERT INTO discoveryinfo VALUES (7007435, 372, 8);
-INSERT INTO discoveryinfo VALUES (7007436, 372, 18);
+INSERT INTO discoveryinfo VALUES (7007436, 372, 8);
INSERT INTO discoveryinfo VALUES (7007437, 372, 8);
INSERT INTO discoveryinfo VALUES (7007438, 372, 3);
INSERT INTO discoveryinfo VALUES (7007439, 372, 3);
@@ -2210,6 +1904,7 @@ INSERT INTO discoveryinfo VALUES (7007443, 372, 9);
INSERT INTO discoveryinfo VALUES (7007444, 372, 9);
INSERT INTO discoveryinfo VALUES (7007445, 372, 9);
INSERT INTO discoveryinfo VALUES (7007446, 372, 10);
+INSERT INTO discoveryinfo VALUES (7007447, 372, 10);
INSERT INTO discoveryinfo VALUES (7007448, 372, 14);
INSERT INTO discoveryinfo VALUES (7007449, 372, 14);
INSERT INTO discoveryinfo VALUES (7007450, 372, 14);
@@ -2286,7 +1981,7 @@ INSERT INTO discoveryinfo VALUES (7007520, 372, 30);
INSERT INTO discoveryinfo VALUES (7007521, 372, 4);
INSERT INTO discoveryinfo VALUES (7007522, 372, 4);
INSERT INTO discoveryinfo VALUES (7007523, 372, 4);
-INSERT INTO discoveryinfo VALUES (7007524, 372, 30);
+INSERT INTO discoveryinfo VALUES (7007524, 372, 4);
INSERT INTO discoveryinfo VALUES (7007525, 372, 2);
INSERT INTO discoveryinfo VALUES (7007526, 372, 2);
INSERT INTO discoveryinfo VALUES (7007527, 372, 2);
@@ -2295,64 +1990,11 @@ INSERT INTO discoveryinfo VALUES (7007529, 372, 29);
INSERT INTO discoveryinfo VALUES (7007530, 372, 27);
INSERT INTO discoveryinfo VALUES (7007531, 372, 27);
INSERT INTO discoveryinfo VALUES (7007532, 372, 27);
-INSERT INTO discoveryinfo VALUES (7007533, 372, 29);
+INSERT INTO discoveryinfo VALUES (7007533, 372, 28);
INSERT INTO discoveryinfo VALUES (7007534, 372, 28);
INSERT INTO discoveryinfo VALUES (7007535, 372, 26);
-INSERT INTO discoveryinfo VALUES (7007536, 372, 10);
+INSERT INTO discoveryinfo VALUES (7007536, 372, 9);
INSERT INTO discoveryinfo VALUES (7007537, 372, 14);
-INSERT INTO discoveryinfo VALUES (6980212, 372, 30);
-INSERT INTO discoveryinfo VALUES (6980214, 372, 9);
-INSERT INTO discoveryinfo VALUES (6980218, 372, 11);
-INSERT INTO discoveryinfo VALUES (6980223, 372, 7);
-INSERT INTO discoveryinfo VALUES (6980229, 372, 8);
-INSERT INTO discoveryinfo VALUES (6980250, 372, 8);
-INSERT INTO discoveryinfo VALUES (6980251, 372, 8);
-INSERT INTO discoveryinfo VALUES (6980252, 372, 3);
-INSERT INTO discoveryinfo VALUES (6980253, 372, 3);
-INSERT INTO discoveryinfo VALUES (6980256, 372, 3);
-INSERT INTO discoveryinfo VALUES (6980257, 372, 3);
-INSERT INTO discoveryinfo VALUES (6980258, 372, 3);
-INSERT INTO discoveryinfo VALUES (6980259, 372, 17);
-INSERT INTO discoveryinfo VALUES (6980260, 372, 19);
-INSERT INTO discoveryinfo VALUES (6980262, 372, 18);
-INSERT INTO discoveryinfo VALUES (6980263, 372, 18);
-INSERT INTO discoveryinfo VALUES (6980264, 372, 18);
-INSERT INTO discoveryinfo VALUES (6980265, 372, 18);
-INSERT INTO discoveryinfo VALUES (6980266, 372, 18);
-INSERT INTO discoveryinfo VALUES (6980267, 372, 18);
-INSERT INTO discoveryinfo VALUES (6980271, 372, 18);
-INSERT INTO discoveryinfo VALUES (6980273, 372, 18);
-INSERT INTO discoveryinfo VALUES (6980275, 372, 30);
-INSERT INTO discoveryinfo VALUES (6980283, 372, 20);
-INSERT INTO discoveryinfo VALUES (6980284, 372, 23);
-INSERT INTO discoveryinfo VALUES (6980285, 372, 25);
-INSERT INTO discoveryinfo VALUES (6980287, 372, 25);
-INSERT INTO discoveryinfo VALUES (6980290, 372, 25);
-INSERT INTO discoveryinfo VALUES (6980311, 372, 26);
-INSERT INTO discoveryinfo VALUES (6980313, 372, 26);
-INSERT INTO discoveryinfo VALUES (6980323, 372, 25);
-INSERT INTO discoveryinfo VALUES (6980325, 372, 25);
-INSERT INTO discoveryinfo VALUES (6980333, 372, 24);
-INSERT INTO discoveryinfo VALUES (6980334, 372, 25);
-INSERT INTO discoveryinfo VALUES (6980336, 372, 25);
-INSERT INTO discoveryinfo VALUES (6980337, 372, 28);
-INSERT INTO discoveryinfo VALUES (6980347, 372, 27);
-INSERT INTO discoveryinfo VALUES (6980355, 372, 27);
-INSERT INTO discoveryinfo VALUES (6980357, 372, 27);
-INSERT INTO discoveryinfo VALUES (6980358, 372, 2);
-INSERT INTO discoveryinfo VALUES (6980359, 372, 2);
-INSERT INTO discoveryinfo VALUES (6980366, 372, 1);
-INSERT INTO discoveryinfo VALUES (6980368, 372, 2);
-INSERT INTO discoveryinfo VALUES (6980382, 372, 26);
-INSERT INTO discoveryinfo VALUES (6980383, 372, 25);
-INSERT INTO discoveryinfo VALUES (6980387, 372, 26);
-INSERT INTO discoveryinfo VALUES (7008977, 372, 18);
-INSERT INTO discoveryinfo VALUES (7018030, 372, 8);
-INSERT INTO discoveryinfo VALUES (7018032, 372, 8);
-INSERT INTO discoveryinfo VALUES (7022221, 372, 1);
-INSERT INTO discoveryinfo VALUES (7431965, 372, 5);
-INSERT INTO discoveryinfo VALUES (7431970, 372, 5);
-INSERT INTO discoveryinfo VALUES (7431971, 372, 5);
INSERT INTO discoveryinfo VALUES (7005090, 372, 1);
INSERT INTO discoveryinfo VALUES (7005094, 372, 1);
INSERT INTO discoveryinfo VALUES (7005096, 372, 1);
@@ -2365,7 +2007,7 @@ INSERT INTO discoveryinfo VALUES (7005166, 372, 5);
INSERT INTO discoveryinfo VALUES (7005167, 372, 5);
INSERT INTO discoveryinfo VALUES (7005168, 372, 8);
INSERT INTO discoveryinfo VALUES (7005169, 372, 8);
-INSERT INTO discoveryinfo VALUES (7005170, 372, 18);
+INSERT INTO discoveryinfo VALUES (7005170, 372, 8);
INSERT INTO discoveryinfo VALUES (7005171, 372, 8);
INSERT INTO discoveryinfo VALUES (7005172, 372, 3);
INSERT INTO discoveryinfo VALUES (7005173, 372, 3);
@@ -2376,6 +2018,7 @@ INSERT INTO discoveryinfo VALUES (7005177, 372, 9);
INSERT INTO discoveryinfo VALUES (7005179, 372, 9);
INSERT INTO discoveryinfo VALUES (7005180, 372, 9);
INSERT INTO discoveryinfo VALUES (7005181, 372, 10);
+INSERT INTO discoveryinfo VALUES (7005183, 372, 10);
INSERT INTO discoveryinfo VALUES (7005184, 372, 14);
INSERT INTO discoveryinfo VALUES (7005186, 372, 14);
INSERT INTO discoveryinfo VALUES (7005210, 372, 14);
@@ -2452,7 +2095,7 @@ INSERT INTO discoveryinfo VALUES (7005588, 372, 30);
INSERT INTO discoveryinfo VALUES (7005589, 372, 4);
INSERT INTO discoveryinfo VALUES (7005590, 372, 4);
INSERT INTO discoveryinfo VALUES (7005591, 372, 4);
-INSERT INTO discoveryinfo VALUES (7005592, 372, 30);
+INSERT INTO discoveryinfo VALUES (7005592, 372, 4);
INSERT INTO discoveryinfo VALUES (7005593, 372, 2);
INSERT INTO discoveryinfo VALUES (7005594, 372, 2);
INSERT INTO discoveryinfo VALUES (7005595, 372, 2);
@@ -2461,18 +2104,41 @@ INSERT INTO discoveryinfo VALUES (7005598, 372, 29);
INSERT INTO discoveryinfo VALUES (7005600, 372, 27);
INSERT INTO discoveryinfo VALUES (7005601, 372, 27);
INSERT INTO discoveryinfo VALUES (7005602, 372, 27);
-INSERT INTO discoveryinfo VALUES (7005606, 372, 29);
+INSERT INTO discoveryinfo VALUES (7005606, 372, 28);
INSERT INTO discoveryinfo VALUES (7005607, 372, 28);
INSERT INTO discoveryinfo VALUES (7005608, 372, 26);
-INSERT INTO discoveryinfo VALUES (7005609, 372, 10);
+INSERT INTO discoveryinfo VALUES (7005609, 372, 9);
INSERT INTO discoveryinfo VALUES (7005610, 372, 14);
-INSERT INTO discoveryinfo VALUES (6943038, 372, 30);
-INSERT INTO discoveryinfo VALUES (4635476, 148, 1);
-INSERT INTO discoveryinfo VALUES (4635477, 148, 2);
-INSERT INTO discoveryinfo VALUES (4635478, 148, 3);
-INSERT INTO discoveryinfo VALUES (4635479, 148, 5);
-INSERT INTO discoveryinfo VALUES (4635480, 148, 6);
-INSERT INTO discoveryinfo VALUES (4695119, 148, 5);
+INSERT INTO discoveryinfo VALUES (6885326, 373, 1);
+INSERT INTO discoveryinfo VALUES (6954353, 373, 2);
+INSERT INTO discoveryinfo VALUES (6954355, 373, 3);
+INSERT INTO discoveryinfo VALUES (6954357, 373, 4);
+INSERT INTO discoveryinfo VALUES (6954366, 373, 5);
+INSERT INTO discoveryinfo VALUES (6885542, 374, 6);
+INSERT INTO discoveryinfo VALUES (6954382, 374, 6);
+INSERT INTO discoveryinfo VALUES (6954383, 374, 7);
+INSERT INTO discoveryinfo VALUES (6954385, 374, 8);
+INSERT INTO discoveryinfo VALUES (6954388, 374, 8);
+INSERT INTO discoveryinfo VALUES (6954396, 374, 9);
+INSERT INTO discoveryinfo VALUES (6954404, 374, 10);
+INSERT INTO discoveryinfo VALUES (6954407, 374, 11);
+INSERT INTO discoveryinfo VALUES (6954410, 374, 12);
+INSERT INTO discoveryinfo VALUES (6954412, 374, 13);
+INSERT INTO discoveryinfo VALUES (4647229, 149, 1);
+INSERT INTO discoveryinfo VALUES (4647230, 149, 2);
+INSERT INTO discoveryinfo VALUES (4647231, 156, 3);
+INSERT INTO discoveryinfo VALUES (4647232, 156, 4);
+INSERT INTO discoveryinfo VALUES (4649563, 65, 1);
+INSERT INTO discoveryinfo VALUES (4649564, 65, 1);
+INSERT INTO discoveryinfo VALUES (4649565, 66, 2);
+INSERT INTO discoveryinfo VALUES (4649566, 67, 3);
+INSERT INTO discoveryinfo VALUES (4649567, 66, 4);
+INSERT INTO discoveryinfo VALUES (4651266, 66, 5);
+INSERT INTO discoveryinfo VALUES (4667373, 66, 2);
+INSERT INTO discoveryinfo VALUES (4667375, 66, 2);
+INSERT INTO discoveryinfo VALUES (4667425, 67, 3);
+INSERT INTO discoveryinfo VALUES (4667426, 67, 3);
+INSERT INTO discoveryinfo VALUES (4709854, 66, 5);
INSERT INTO discoveryinfo VALUES (4170242, 8, 1);
INSERT INTO discoveryinfo VALUES (4170252, 8, 2);
INSERT INTO discoveryinfo VALUES (4170268, 8, 2);
@@ -2487,25 +2153,70 @@ INSERT INTO discoveryinfo VALUES (4170358, 8, 9);
INSERT INTO discoveryinfo VALUES (4170364, 8, 10);
INSERT INTO discoveryinfo VALUES (4170368, 8, 11);
INSERT INTO discoveryinfo VALUES (4170389, 8, 11);
-INSERT INTO discoveryinfo VALUES (4170407, 8, 4);
-INSERT INTO discoveryinfo VALUES (4170413, 8, 6);
-INSERT INTO discoveryinfo VALUES (4170416, 8, 3);
-INSERT INTO discoveryinfo VALUES (4170420, 8, 5);
-INSERT INTO discoveryinfo VALUES (4170421, 8, 5);
-INSERT INTO discoveryinfo VALUES (4170429, 8, 9);
-INSERT INTO discoveryinfo VALUES (4170439, 8, 10);
-INSERT INTO discoveryinfo VALUES (4170443, 8, 11);
-INSERT INTO discoveryinfo VALUES (4170448, 8, 11);
-INSERT INTO discoveryinfo VALUES (4323354, 85, 11);
-INSERT INTO discoveryinfo VALUES (4323360, 85, 11);
-INSERT INTO discoveryinfo VALUES (4323369, 85, 10);
-INSERT INTO discoveryinfo VALUES (4323370, 85, 10);
-INSERT INTO discoveryinfo VALUES (4323372, 85, 10);
-INSERT INTO discoveryinfo VALUES (4323377, 85, 9);
-INSERT INTO discoveryinfo VALUES (4323378, 85, 8);
-INSERT INTO discoveryinfo VALUES (4323379, 85, 10);
-INSERT INTO discoveryinfo VALUES (4323382, 85, 10);
-INSERT INTO discoveryinfo VALUES (4323383, 85, 8);
+INSERT INTO discoveryinfo VALUES (4148871, 48, 3);
+INSERT INTO discoveryinfo VALUES (4148872, 48, 3);
+INSERT INTO discoveryinfo VALUES (3683248, 48, 4);
+INSERT INTO discoveryinfo VALUES (3683292, 48, 3);
+INSERT INTO discoveryinfo VALUES (4148873, 48, 3);
+INSERT INTO discoveryinfo VALUES (4148874, 48, 2);
+INSERT INTO discoveryinfo VALUES (4148875, 48, 2);
+INSERT INTO discoveryinfo VALUES (4148876, 48, 2);
+INSERT INTO discoveryinfo VALUES (4148878, 48, 2);
+INSERT INTO discoveryinfo VALUES (3683299, 48, 1);
+INSERT INTO discoveryinfo VALUES (4148911, 48, 1);
+INSERT INTO discoveryinfo VALUES (4148914, 48, 1);
+INSERT INTO discoveryinfo VALUES (4148920, 48, 1);
+INSERT INTO discoveryinfo VALUES (3683294, 48, 6);
+INSERT INTO discoveryinfo VALUES (4148932, 48, 5);
+INSERT INTO discoveryinfo VALUES (4148966, 48, 5);
+INSERT INTO discoveryinfo VALUES (4148971, 48, 7);
+INSERT INTO discoveryinfo VALUES (4148972, 48, 8);
+INSERT INTO discoveryinfo VALUES (3683307, 54, 20);
+INSERT INTO discoveryinfo VALUES (3683246, 55, 16);
+INSERT INTO discoveryinfo VALUES (3683247, 55, 15);
+INSERT INTO discoveryinfo VALUES (4148979, 55, 14);
+INSERT INTO discoveryinfo VALUES (4148982, 55, 11);
+INSERT INTO discoveryinfo VALUES (4148985, 55, 10);
+INSERT INTO discoveryinfo VALUES (4148987, 55, 13);
+INSERT INTO discoveryinfo VALUES (4148988, 55, 9);
+INSERT INTO discoveryinfo VALUES (4148990, 55, 9);
+INSERT INTO discoveryinfo VALUES (4148996, 55, 9);
+INSERT INTO discoveryinfo VALUES (4148997, 55, 9);
+INSERT INTO discoveryinfo VALUES (4149000, 55, 10);
+INSERT INTO discoveryinfo VALUES (4149001, 55, 10);
+INSERT INTO discoveryinfo VALUES (4149002, 55, 11);
+INSERT INTO discoveryinfo VALUES (4149003, 55, 11);
+INSERT INTO discoveryinfo VALUES (4149004, 55, 12);
+INSERT INTO discoveryinfo VALUES (4149007, 55, 12);
+INSERT INTO discoveryinfo VALUES (4149010, 55, 9);
+INSERT INTO discoveryinfo VALUES (4149020, 54, 17);
+INSERT INTO discoveryinfo VALUES (4149022, 54, 18);
+INSERT INTO discoveryinfo VALUES (4149023, 54, 18);
+INSERT INTO discoveryinfo VALUES (4149026, 54, 19);
+INSERT INTO discoveryinfo VALUES (4149045, 54, 17);
+INSERT INTO discoveryinfo VALUES (4323345, 49, 1);
+INSERT INTO discoveryinfo VALUES (4323347, 49, 1);
+INSERT INTO discoveryinfo VALUES (4323348, 49, 1);
+INSERT INTO discoveryinfo VALUES (4323349, 49, 1);
+INSERT INTO discoveryinfo VALUES (4323350, 49, 1);
+INSERT INTO discoveryinfo VALUES (4323351, 49, 2);
+INSERT INTO discoveryinfo VALUES (4323352, 49, 2);
+INSERT INTO discoveryinfo VALUES (4323354, 49, 3);
+INSERT INTO discoveryinfo VALUES (4323355, 49, 2);
+INSERT INTO discoveryinfo VALUES (4323358, 49, 2);
+INSERT INTO discoveryinfo VALUES (4323359, 49, 2);
+INSERT INTO discoveryinfo VALUES (4323360, 84, 4);
+INSERT INTO discoveryinfo VALUES (4323369, 84, 4);
+INSERT INTO discoveryinfo VALUES (4323370, 84, 4);
+INSERT INTO discoveryinfo VALUES (4323372, 84, 5);
+INSERT INTO discoveryinfo VALUES (4323374, 84, 5);
+INSERT INTO discoveryinfo VALUES (4323375, 84, 5);
+INSERT INTO discoveryinfo VALUES (4323376, 84, 5);
+INSERT INTO discoveryinfo VALUES (4323377, 84, 6);
+INSERT INTO discoveryinfo VALUES (4323378, 84, 6);
+INSERT INTO discoveryinfo VALUES (4323379, 84, 6);
+INSERT INTO discoveryinfo VALUES (4323382, 84, 6);
+INSERT INTO discoveryinfo VALUES (4323383, 84, 7);
INSERT INTO discoveryinfo VALUES (4323387, 85, 8);
INSERT INTO discoveryinfo VALUES (4323412, 85, 8);
INSERT INTO discoveryinfo VALUES (4323414, 85, 8);
@@ -2519,18 +2230,26 @@ INSERT INTO discoveryinfo VALUES (4323428, 85, 10);
INSERT INTO discoveryinfo VALUES (4323429, 85, 10);
INSERT INTO discoveryinfo VALUES (4323431, 85, 11);
INSERT INTO discoveryinfo VALUES (4323432, 85, 8);
-INSERT INTO discoveryinfo VALUES (5681124, 85, 11);
-INSERT INTO discoveryinfo VALUES (4515612, 139, 12);
-INSERT INTO discoveryinfo VALUES (4515615, 139, 13);
-INSERT INTO discoveryinfo VALUES (4515623, 139, 13);
-INSERT INTO discoveryinfo VALUES (4515624, 139, 14);
-INSERT INTO discoveryinfo VALUES (4515625, 139, 15);
-INSERT INTO discoveryinfo VALUES (4515645, 139, 15);
-INSERT INTO discoveryinfo VALUES (4515651, 139, 13);
-INSERT INTO discoveryinfo VALUES (4515681, 139, 12);
-INSERT INTO discoveryinfo VALUES (4515694, 139, 12);
-INSERT INTO discoveryinfo VALUES (4515697, 139, 15);
-INSERT INTO discoveryinfo VALUES (4515699, 139, 14);
+INSERT INTO discoveryinfo VALUES (4335119, 49, 2);
+INSERT INTO discoveryinfo VALUES (4515611, 137, 1);
+INSERT INTO discoveryinfo VALUES (4515612, 138, 2);
+INSERT INTO discoveryinfo VALUES (4515614, 138, 2);
+INSERT INTO discoveryinfo VALUES (4515615, 138, 2);
+INSERT INTO discoveryinfo VALUES (4515616, 138, 2);
+INSERT INTO discoveryinfo VALUES (4515618, 138, 3);
+INSERT INTO discoveryinfo VALUES (4515621, 138, 3);
+INSERT INTO discoveryinfo VALUES (4515623, 138, 4);
+INSERT INTO discoveryinfo VALUES (4515624, 138, 4);
+INSERT INTO discoveryinfo VALUES (4515625, 138, 5);
+INSERT INTO discoveryinfo VALUES (4515645, 138, 6);
+INSERT INTO discoveryinfo VALUES (4515646, 137, 7);
+INSERT INTO discoveryinfo VALUES (4515651, 137, 7);
+INSERT INTO discoveryinfo VALUES (4515680, 137, 7);
+INSERT INTO discoveryinfo VALUES (4515681, 137, 8);
+INSERT INTO discoveryinfo VALUES (4515687, 137, 8);
+INSERT INTO discoveryinfo VALUES (4515694, 137, 8);
+INSERT INTO discoveryinfo VALUES (4515697, 137, 9);
+INSERT INTO discoveryinfo VALUES (4515699, 137, 10);
INSERT INTO discoveryinfo VALUES (4515701, 139, 14);
INSERT INTO discoveryinfo VALUES (4515702, 139, 14);
INSERT INTO discoveryinfo VALUES (4515703, 139, 13);
@@ -2543,36 +2262,51 @@ INSERT INTO discoveryinfo VALUES (4515709, 139, 12);
INSERT INTO discoveryinfo VALUES (4515711, 139, 14);
INSERT INTO discoveryinfo VALUES (4515713, 139, 11);
INSERT INTO discoveryinfo VALUES (4516011, 139, 15);
-INSERT INTO discoveryinfo VALUES (4517194, 139, 12);
-INSERT INTO discoveryinfo VALUES (4488398, 139, 14);
-INSERT INTO discoveryinfo VALUES (4488402, 139, 14);
-INSERT INTO discoveryinfo VALUES (4488408, 139, 12);
-INSERT INTO discoveryinfo VALUES (4488410, 139, 12);
-INSERT INTO discoveryinfo VALUES (4488411, 139, 15);
-INSERT INTO discoveryinfo VALUES (4488412, 139, 14);
-INSERT INTO discoveryinfo VALUES (4488413, 139, 14);
-INSERT INTO discoveryinfo VALUES (4488416, 139, 15);
-INSERT INTO discoveryinfo VALUES (4488417, 139, 15);
-INSERT INTO discoveryinfo VALUES (4488419, 139, 11);
-INSERT INTO discoveryinfo VALUES (4488420, 139, 12);
-INSERT INTO discoveryinfo VALUES (4488421, 139, 13);
-INSERT INTO discoveryinfo VALUES (4488422, 139, 13);
-INSERT INTO discoveryinfo VALUES (4488423, 139, 14);
-INSERT INTO discoveryinfo VALUES (4488425, 139, 14);
-INSERT INTO discoveryinfo VALUES (4488427, 139, 13);
-INSERT INTO discoveryinfo VALUES (4488428, 139, 13);
-INSERT INTO discoveryinfo VALUES (4488429, 139, 12);
-INSERT INTO discoveryinfo VALUES (4488430, 139, 12);
-INSERT INTO discoveryinfo VALUES (4488431, 139, 12);
-INSERT INTO discoveryinfo VALUES (4488432, 139, 12);
-INSERT INTO discoveryinfo VALUES (4488433, 139, 14);
-INSERT INTO discoveryinfo VALUES (4488434, 139, 12);
-INSERT INTO discoveryinfo VALUES (4488435, 139, 11);
-INSERT INTO discoveryinfo VALUES (4488438, 139, 12);
-INSERT INTO discoveryinfo VALUES (4515620, 139, 13);
-INSERT INTO discoveryinfo VALUES (4634055, 151, 4);
-INSERT INTO discoveryinfo VALUES (4634056, 151, 6);
-INSERT INTO discoveryinfo VALUES (4634059, 151, 1);
+INSERT INTO discoveryinfo VALUES (4517194, 137, 1);
+INSERT INTO discoveryinfo VALUES (4517198, 138, 2);
+INSERT INTO discoveryinfo VALUES (4488398, 48, 3);
+INSERT INTO discoveryinfo VALUES (4488399, 48, 3);
+INSERT INTO discoveryinfo VALUES (4488400, 48, 4);
+INSERT INTO discoveryinfo VALUES (4488401, 48, 3);
+INSERT INTO discoveryinfo VALUES (4488402, 48, 3);
+INSERT INTO discoveryinfo VALUES (4488403, 48, 2);
+INSERT INTO discoveryinfo VALUES (4488404, 48, 2);
+INSERT INTO discoveryinfo VALUES (4488405, 48, 2);
+INSERT INTO discoveryinfo VALUES (4488406, 48, 2);
+INSERT INTO discoveryinfo VALUES (4488407, 48, 1);
+INSERT INTO discoveryinfo VALUES (4488408, 48, 1);
+INSERT INTO discoveryinfo VALUES (4488409, 48, 1);
+INSERT INTO discoveryinfo VALUES (4488410, 48, 1);
+INSERT INTO discoveryinfo VALUES (4488411, 48, 6);
+INSERT INTO discoveryinfo VALUES (4488412, 48, 5);
+INSERT INTO discoveryinfo VALUES (4488413, 48, 5);
+INSERT INTO discoveryinfo VALUES (4488414, 48, 7);
+INSERT INTO discoveryinfo VALUES (4488415, 48, 8);
+INSERT INTO discoveryinfo VALUES (4488416, 54, 20);
+INSERT INTO discoveryinfo VALUES (4488417, 55, 16);
+INSERT INTO discoveryinfo VALUES (4488418, 55, 15);
+INSERT INTO discoveryinfo VALUES (4488419, 55, 14);
+INSERT INTO discoveryinfo VALUES (4488420, 55, 11);
+INSERT INTO discoveryinfo VALUES (4488421, 55, 10);
+INSERT INTO discoveryinfo VALUES (4488422, 55, 13);
+INSERT INTO discoveryinfo VALUES (4488423, 55, 9);
+INSERT INTO discoveryinfo VALUES (4488424, 55, 9);
+INSERT INTO discoveryinfo VALUES (4488425, 55, 9);
+INSERT INTO discoveryinfo VALUES (4488426, 55, 9);
+INSERT INTO discoveryinfo VALUES (4488427, 55, 10);
+INSERT INTO discoveryinfo VALUES (4488428, 55, 10);
+INSERT INTO discoveryinfo VALUES (4488429, 55, 11);
+INSERT INTO discoveryinfo VALUES (4488430, 55, 11);
+INSERT INTO discoveryinfo VALUES (4488431, 55, 12);
+INSERT INTO discoveryinfo VALUES (4488432, 55, 12);
+INSERT INTO discoveryinfo VALUES (4488433, 55, 9);
+INSERT INTO discoveryinfo VALUES (4488434, 54, 17);
+INSERT INTO discoveryinfo VALUES (4488435, 54, 18);
+INSERT INTO discoveryinfo VALUES (4488436, 54, 18);
+INSERT INTO discoveryinfo VALUES (4488437, 54, 19);
+INSERT INTO discoveryinfo VALUES (4488438, 54, 17);
+INSERT INTO discoveryinfo VALUES (4515620, 138, 3);
+INSERT INTO discoveryinfo VALUES (4634059, 152, 1);
INSERT INTO discoveryinfo VALUES (4634062, 151, 1);
INSERT INTO discoveryinfo VALUES (4634065, 151, 2);
INSERT INTO discoveryinfo VALUES (4634075, 151, 3);
@@ -2584,19 +2318,14 @@ INSERT INTO discoveryinfo VALUES (4634095, 151, 6);
INSERT INTO discoveryinfo VALUES (4634104, 151, 7);
INSERT INTO discoveryinfo VALUES (4634106, 151, 7);
INSERT INTO discoveryinfo VALUES (4634113, 151, 8);
-INSERT INTO discoveryinfo VALUES (4634702, 151, 6);
-INSERT INTO discoveryinfo VALUES (4634705, 151, 6);
-INSERT INTO discoveryinfo VALUES (4634706, 151, 6);
-INSERT INTO discoveryinfo VALUES (4634710, 151, 7);
-INSERT INTO discoveryinfo VALUES (4634711, 151, 3);
-INSERT INTO discoveryinfo VALUES (4634712, 151, 7);
-INSERT INTO discoveryinfo VALUES (4634715, 151, 7);
-INSERT INTO discoveryinfo VALUES (4639195, 151, 2);
-INSERT INTO discoveryinfo VALUES (4639200, 151, 4);
-INSERT INTO discoveryinfo VALUES (4639203, 151, 4);
-INSERT INTO discoveryinfo VALUES (4639204, 151, 8);
-INSERT INTO discoveryinfo VALUES (4639208, 151, 6);
-INSERT INTO discoveryinfo VALUES (4639214, 151, 6);
+INSERT INTO discoveryinfo VALUES (4634702, 151, 9);
+INSERT INTO discoveryinfo VALUES (4634705, 151, 9);
+INSERT INTO discoveryinfo VALUES (4634706, 151, 10);
+INSERT INTO discoveryinfo VALUES (4634707, 151, 11);
+INSERT INTO discoveryinfo VALUES (4634710, 151, 11);
+INSERT INTO discoveryinfo VALUES (4634711, 151, 11);
+INSERT INTO discoveryinfo VALUES (4634712, 151, 12);
+INSERT INTO discoveryinfo VALUES (4634715, 151, 12);
INSERT INTO discoveryinfo VALUES (4660176, 165, 1);
INSERT INTO discoveryinfo VALUES (4660177, 165, 1);
INSERT INTO discoveryinfo VALUES (4660178, 165, 2);
@@ -2614,26 +2343,48 @@ INSERT INTO discoveryinfo VALUES (4660189, 165, 11);
INSERT INTO discoveryinfo VALUES (4755385, 165, 11);
INSERT INTO discoveryinfo VALUES (4755389, 165, 12);
INSERT INTO discoveryinfo VALUES (4755390, 165, 13);
-INSERT INTO discoveryinfo VALUES (4660190, 165, 2);
-INSERT INTO discoveryinfo VALUES (4660191, 165, 3);
-INSERT INTO discoveryinfo VALUES (4660192, 165, 8);
-INSERT INTO discoveryinfo VALUES (4660194, 165, 3);
-INSERT INTO discoveryinfo VALUES (4660195, 165, 11);
-INSERT INTO discoveryinfo VALUES (4660197, 165, 12);
-INSERT INTO discoveryinfo VALUES (4660198, 165, 13);
-INSERT INTO discoveryinfo VALUES (4902564, 190, 6);
-INSERT INTO discoveryinfo VALUES (4902565, 190, 6);
-INSERT INTO discoveryinfo VALUES (4902566, 190, 7);
-INSERT INTO discoveryinfo VALUES (4902567, 190, 8);
-INSERT INTO discoveryinfo VALUES (4902568, 190, 8);
-INSERT INTO discoveryinfo VALUES (4902569, 190, 8);
-INSERT INTO discoveryinfo VALUES (4902570, 190, 9);
-INSERT INTO discoveryinfo VALUES (4902571, 190, 10);
-INSERT INTO discoveryinfo VALUES (4902572, 190, 11);
-INSERT INTO discoveryinfo VALUES (4902573, 190, 8);
-INSERT INTO discoveryinfo VALUES (5321547, 190, 12);
-INSERT INTO discoveryinfo VALUES (5321639, 190, 7);
-INSERT INTO discoveryinfo VALUES (6564487, 340, 12);
+INSERT INTO discoveryinfo VALUES (6159020, 282, 1);
+INSERT INTO discoveryinfo VALUES (6159021, 282, 1);
+INSERT INTO discoveryinfo VALUES (6159023, 282, 2);
+INSERT INTO discoveryinfo VALUES (6177931, 282, 3);
+INSERT INTO discoveryinfo VALUES (6159029, 282, 4);
+INSERT INTO discoveryinfo VALUES (6159030, 282, 4);
+INSERT INTO discoveryinfo VALUES (6159031, 282, 5);
+INSERT INTO discoveryinfo VALUES (6159032, 282, 6);
+INSERT INTO discoveryinfo VALUES (6159033, 282, 6);
+INSERT INTO discoveryinfo VALUES (6159034, 282, 7);
+INSERT INTO discoveryinfo VALUES (6159035, 282, 8);
+INSERT INTO discoveryinfo VALUES (6159037, 282, 8);
+INSERT INTO discoveryinfo VALUES (6159036, 282, 8);
+INSERT INTO discoveryinfo VALUES (6159038, 282, 9);
+INSERT INTO discoveryinfo VALUES (6159039, 282, 10);
+INSERT INTO discoveryinfo VALUES (6177935, 282, 11);
+INSERT INTO discoveryinfo VALUES (6177936, 282, 12);
+INSERT INTO discoveryinfo VALUES (6177937, 282, 12);
+INSERT INTO discoveryinfo VALUES (6177938, 282, 12);
+INSERT INTO discoveryinfo VALUES (6177939, 282, 13);
+INSERT INTO discoveryinfo VALUES (6177940, 282, 13);
+INSERT INTO discoveryinfo VALUES (6177941, 282, 13);
+INSERT INTO discoveryinfo VALUES (6177942, 282, 14);
+INSERT INTO discoveryinfo VALUES (6177943, 282, 15);
+INSERT INTO discoveryinfo VALUES (6177944, 282, 15);
+INSERT INTO discoveryinfo VALUES (6564485, 337, 1);
+INSERT INTO discoveryinfo VALUES (6606854, 337, 2);
+INSERT INTO discoveryinfo VALUES (6606857, 337, 2);
+INSERT INTO discoveryinfo VALUES (6606861, 337, 3);
+INSERT INTO discoveryinfo VALUES (6606862, 337, 4);
+INSERT INTO discoveryinfo VALUES (6606863, 337, 4);
+INSERT INTO discoveryinfo VALUES (6606864, 337, 5);
+INSERT INTO discoveryinfo VALUES (6564487, 338, 6);
+INSERT INTO discoveryinfo VALUES (6564488, 339, 7);
+INSERT INTO discoveryinfo VALUES (6606867, 339, 7);
+INSERT INTO discoveryinfo VALUES (6606868, 339, 8);
+INSERT INTO discoveryinfo VALUES (6564489, 340, 9);
+INSERT INTO discoveryinfo VALUES (6606870, 340, 10);
+INSERT INTO discoveryinfo VALUES (6606873, 340, 11);
+INSERT INTO discoveryinfo VALUES (6606874, 340, 12);
+INSERT INTO discoveryinfo VALUES (6606875, 340, 12);
+INSERT INTO discoveryinfo VALUES (6606876, 340, 13);
INSERT INTO discoveryinfo VALUES (1367775, 4, 2);
INSERT INTO discoveryinfo VALUES (1367776, 4, 2);
INSERT INTO discoveryinfo VALUES (1367777, 4, 2);
@@ -2641,12 +2392,13 @@ INSERT INTO discoveryinfo VALUES (1367778, 4, 1);
INSERT INTO discoveryinfo VALUES (1367779, 4, 2);
INSERT INTO discoveryinfo VALUES (1367780, 4, 3);
INSERT INTO discoveryinfo VALUES (1367785, 4, 3);
-INSERT INTO discoveryinfo VALUES (1367793, 4, 2);
+INSERT INTO discoveryinfo VALUES (1367793, 4, 3);
INSERT INTO discoveryinfo VALUES (1367795, 4, 4);
INSERT INTO discoveryinfo VALUES (1367798, 4, 1);
INSERT INTO discoveryinfo VALUES (1367800, 4, 2);
INSERT INTO discoveryinfo VALUES (1367801, 4, 2);
INSERT INTO discoveryinfo VALUES (2052662, 4, 7);
+INSERT INTO discoveryinfo VALUES (2052665, 4, 7);
INSERT INTO discoveryinfo VALUES (2052668, 4, 8);
INSERT INTO discoveryinfo VALUES (2052672, 4, 13);
INSERT INTO discoveryinfo VALUES (2052682, 4, 9);
@@ -2680,8 +2432,8 @@ INSERT INTO discoveryinfo VALUES (2465025, 4, 9);
INSERT INTO discoveryinfo VALUES (2465028, 4, 9);
INSERT INTO discoveryinfo VALUES (2465029, 4, 9);
INSERT INTO discoveryinfo VALUES (2496289, 4, 5);
-INSERT INTO discoveryinfo VALUES (2496437, 4, 2);
-INSERT INTO discoveryinfo VALUES (2564171, 4, 11);
+INSERT INTO discoveryinfo VALUES (2496437, 4, 5);
+INSERT INTO discoveryinfo VALUES (2564171, 4, 5);
INSERT INTO discoveryinfo VALUES (2652480, 4, 1);
INSERT INTO discoveryinfo VALUES (2652487, 4, 1);
INSERT INTO discoveryinfo VALUES (2652490, 4, 1);
@@ -2698,86 +2450,6 @@ INSERT INTO discoveryinfo VALUES (3908308, 4, 9);
INSERT INTO discoveryinfo VALUES (3908312, 4, 9);
INSERT INTO discoveryinfo VALUES (3908313, 4, 9);
INSERT INTO discoveryinfo VALUES (2052705, 4, 11);
-INSERT INTO discoveryinfo VALUES (4330294, 4, 5);
-INSERT INTO discoveryinfo VALUES (1367823, 4, 2);
-INSERT INTO discoveryinfo VALUES (1420009, 4, 5);
-INSERT INTO discoveryinfo VALUES (1420010, 4, 5);
-INSERT INTO discoveryinfo VALUES (1420011, 4, 2);
-INSERT INTO discoveryinfo VALUES (1420012, 4, 5);
-INSERT INTO discoveryinfo VALUES (1420013, 4, 5);
-INSERT INTO discoveryinfo VALUES (1420014, 4, 5);
-INSERT INTO discoveryinfo VALUES (1420015, 4, 5);
-INSERT INTO discoveryinfo VALUES (1436587, 4, 2);
-INSERT INTO discoveryinfo VALUES (1436597, 4, 5);
-INSERT INTO discoveryinfo VALUES (1436598, 4, 5);
-INSERT INTO discoveryinfo VALUES (1436599, 4, 5);
-INSERT INTO discoveryinfo VALUES (1436600, 4, 2);
-INSERT INTO discoveryinfo VALUES (1436601, 4, 2);
-INSERT INTO discoveryinfo VALUES (1436602, 4, 2);
-INSERT INTO discoveryinfo VALUES (1436603, 4, 2);
-INSERT INTO discoveryinfo VALUES (1436604, 4, 2);
-INSERT INTO discoveryinfo VALUES (1436605, 4, 2);
-INSERT INTO discoveryinfo VALUES (1436606, 4, 2);
-INSERT INTO discoveryinfo VALUES (2152921, 4, 3);
-INSERT INTO discoveryinfo VALUES (2152922, 4, 3);
-INSERT INTO discoveryinfo VALUES (2152923, 4, 4);
-INSERT INTO discoveryinfo VALUES (2152924, 4, 4);
-INSERT INTO discoveryinfo VALUES (2152925, 4, 4);
-INSERT INTO discoveryinfo VALUES (2152926, 4, 1);
-INSERT INTO discoveryinfo VALUES (2152927, 4, 10);
-INSERT INTO discoveryinfo VALUES (2152928, 4, 2);
-INSERT INTO discoveryinfo VALUES (2152929, 4, 6);
-INSERT INTO discoveryinfo VALUES (2152930, 4, 5);
-INSERT INTO discoveryinfo VALUES (2152931, 4, 5);
-INSERT INTO discoveryinfo VALUES (2152933, 4, 5);
-INSERT INTO discoveryinfo VALUES (2152934, 4, 5);
-INSERT INTO discoveryinfo VALUES (2152935, 4, 5);
-INSERT INTO discoveryinfo VALUES (2152936, 4, 5);
-INSERT INTO discoveryinfo VALUES (2152937, 4, 5);
-INSERT INTO discoveryinfo VALUES (2152938, 4, 11);
-INSERT INTO discoveryinfo VALUES (2152939, 4, 8);
-INSERT INTO discoveryinfo VALUES (2152941, 4, 8);
-INSERT INTO discoveryinfo VALUES (2152942, 4, 8);
-INSERT INTO discoveryinfo VALUES (2152943, 4, 8);
-INSERT INTO discoveryinfo VALUES (2152944, 4, 7);
-INSERT INTO discoveryinfo VALUES (2152945, 4, 7);
-INSERT INTO discoveryinfo VALUES (2152946, 4, 7);
-INSERT INTO discoveryinfo VALUES (2152949, 4, 7);
-INSERT INTO discoveryinfo VALUES (2152950, 4, 7);
-INSERT INTO discoveryinfo VALUES (2152951, 4, 7);
-INSERT INTO discoveryinfo VALUES (2152952, 4, 7);
-INSERT INTO discoveryinfo VALUES (2152953, 4, 7);
-INSERT INTO discoveryinfo VALUES (2152954, 4, 7);
-INSERT INTO discoveryinfo VALUES (2152955, 4, 8);
-INSERT INTO discoveryinfo VALUES (2152956, 4, 9);
-INSERT INTO discoveryinfo VALUES (2152957, 4, 11);
-INSERT INTO discoveryinfo VALUES (2152959, 4, 9);
-INSERT INTO discoveryinfo VALUES (2152963, 4, 11);
-INSERT INTO discoveryinfo VALUES (2152965, 4, 11);
-INSERT INTO discoveryinfo VALUES (2152966, 4, 13);
-INSERT INTO discoveryinfo VALUES (2152967, 4, 13);
-INSERT INTO discoveryinfo VALUES (2349784, 4, 5);
-INSERT INTO discoveryinfo VALUES (2349791, 4, 2);
-INSERT INTO discoveryinfo VALUES (2349792, 4, 5);
-INSERT INTO discoveryinfo VALUES (2349794, 4, 5);
-INSERT INTO discoveryinfo VALUES (2349857, 4, 5);
-INSERT INTO discoveryinfo VALUES (2349858, 4, 5);
-INSERT INTO discoveryinfo VALUES (2349860, 4, 5);
-INSERT INTO discoveryinfo VALUES (2496282, 4, 11);
-INSERT INTO discoveryinfo VALUES (2564149, 4, 11);
-INSERT INTO discoveryinfo VALUES (2564152, 4, 11);
-INSERT INTO discoveryinfo VALUES (2622826, 4, 5);
-INSERT INTO discoveryinfo VALUES (2622881, 4, 11);
-INSERT INTO discoveryinfo VALUES (2622884, 4, 11);
-INSERT INTO discoveryinfo VALUES (2622886, 4, 11);
-INSERT INTO discoveryinfo VALUES (3907414, 4, 5);
-INSERT INTO discoveryinfo VALUES (3907415, 4, 5);
-INSERT INTO discoveryinfo VALUES (3907416, 4, 5);
-INSERT INTO discoveryinfo VALUES (3907418, 4, 5);
-INSERT INTO discoveryinfo VALUES (3925825, 4, 11);
-INSERT INTO discoveryinfo VALUES (3929402, 4, 1);
-INSERT INTO discoveryinfo VALUES (4322814, 4, 11);
-INSERT INTO discoveryinfo VALUES (4586009, 4, 7);
INSERT INTO discoveryinfo VALUES (2065961, 5, 1);
INSERT INTO discoveryinfo VALUES (2065962, 5, 1);
INSERT INTO discoveryinfo VALUES (2065963, 5, 1);
@@ -2826,19 +2498,6 @@ INSERT INTO discoveryinfo VALUES (2465069, 5, 15);
INSERT INTO discoveryinfo VALUES (2465072, 5, 17);
INSERT INTO discoveryinfo VALUES (2927639, 5, 6);
INSERT INTO discoveryinfo VALUES (4335536, 5, 2);
-INSERT INTO discoveryinfo VALUES (2308332, 5, 1);
-INSERT INTO discoveryinfo VALUES (2308333, 5, 3);
-INSERT INTO discoveryinfo VALUES (2308340, 5, 3);
-INSERT INTO discoveryinfo VALUES (2308346, 5, 3);
-INSERT INTO discoveryinfo VALUES (2308354, 5, 5);
-INSERT INTO discoveryinfo VALUES (2308355, 5, 4);
-INSERT INTO discoveryinfo VALUES (2308360, 5, 8);
-INSERT INTO discoveryinfo VALUES (2308361, 5, 8);
-INSERT INTO discoveryinfo VALUES (2308362, 5, 14);
-INSERT INTO discoveryinfo VALUES (2308363, 5, 16);
-INSERT INTO discoveryinfo VALUES (2308364, 5, 13);
-INSERT INTO discoveryinfo VALUES (2308366, 5, 17);
-INSERT INTO discoveryinfo VALUES (2563317, 5, 2);
INSERT INTO discoveryinfo VALUES (2280307, 6, 1);
INSERT INTO discoveryinfo VALUES (2280313, 6, 2);
INSERT INTO discoveryinfo VALUES (2280316, 6, 3);
@@ -2855,6 +2514,7 @@ INSERT INTO discoveryinfo VALUES (2280365, 6, 7);
INSERT INTO discoveryinfo VALUES (2280369, 6, 8);
INSERT INTO discoveryinfo VALUES (2280371, 6, 8);
INSERT INTO discoveryinfo VALUES (2280375, 6, 15);
+INSERT INTO discoveryinfo VALUES (2280380, 6, 16);
INSERT INTO discoveryinfo VALUES (2280383, 6, 13);
INSERT INTO discoveryinfo VALUES (2280388, 6, 13);
INSERT INTO discoveryinfo VALUES (2280391, 6, 14);
@@ -2882,7 +2542,7 @@ INSERT INTO discoveryinfo VALUES (2381035, 6, 7);
INSERT INTO discoveryinfo VALUES (2381036, 6, 7);
INSERT INTO discoveryinfo VALUES (2381037, 6, 7);
INSERT INTO discoveryinfo VALUES (2381038, 6, 7);
-INSERT INTO discoveryinfo VALUES (2381039, 6, 7);
+INSERT INTO discoveryinfo VALUES (2381039, 6, 13);
INSERT INTO discoveryinfo VALUES (2381040, 6, 13);
INSERT INTO discoveryinfo VALUES (2381041, 6, 7);
INSERT INTO discoveryinfo VALUES (2381044, 6, 4);
@@ -2892,46 +2552,14 @@ INSERT INTO discoveryinfo VALUES (2402270, 6, 4);
INSERT INTO discoveryinfo VALUES (2422825, 6, 4);
INSERT INTO discoveryinfo VALUES (2453661, 6, 4);
INSERT INTO discoveryinfo VALUES (2563798, 6, 4);
-INSERT INTO discoveryinfo VALUES (2280409, 6, 1);
-INSERT INTO discoveryinfo VALUES (2280410, 6, 2);
-INSERT INTO discoveryinfo VALUES (2280425, 6, 3);
-INSERT INTO discoveryinfo VALUES (2280426, 6, 3);
-INSERT INTO discoveryinfo VALUES (2280428, 6, 2);
-INSERT INTO discoveryinfo VALUES (2280430, 6, 9);
-INSERT INTO discoveryinfo VALUES (2280432, 6, 9);
-INSERT INTO discoveryinfo VALUES (2280448, 6, 10);
INSERT INTO discoveryinfo VALUES (2280451, 6, 12);
-INSERT INTO discoveryinfo VALUES (2280453, 6, 11);
-INSERT INTO discoveryinfo VALUES (2280455, 6, 7);
INSERT INTO discoveryinfo VALUES (2280456, 6, 5);
INSERT INTO discoveryinfo VALUES (2280458, 6, 8);
-INSERT INTO discoveryinfo VALUES (2280461, 6, 16);
-INSERT INTO discoveryinfo VALUES (2280464, 6, 6);
-INSERT INTO discoveryinfo VALUES (2280467, 6, 14);
+INSERT INTO discoveryinfo VALUES (2280461, 6, 8);
+INSERT INTO discoveryinfo VALUES (2280464, 6, 8);
+INSERT INTO discoveryinfo VALUES (2280467, 6, 8);
INSERT INTO discoveryinfo VALUES (2563790, 6, 5);
INSERT INTO discoveryinfo VALUES (2563804, 6, 12);
-INSERT INTO discoveryinfo VALUES (2563859, 6, 9);
-INSERT INTO discoveryinfo VALUES (2563867, 6, 9);
-INSERT INTO discoveryinfo VALUES (2563868, 6, 9);
-INSERT INTO discoveryinfo VALUES (2563872, 6, 9);
-INSERT INTO discoveryinfo VALUES (2563875, 6, 9);
-INSERT INTO discoveryinfo VALUES (2763450, 6, 7);
-INSERT INTO discoveryinfo VALUES (2763451, 6, 7);
-INSERT INTO discoveryinfo VALUES (2763452, 6, 7);
-INSERT INTO discoveryinfo VALUES (2280414, 6, 5);
-INSERT INTO discoveryinfo VALUES (2563792, 6, 6);
-INSERT INTO discoveryinfo VALUES (4191057, 6, 5);
-INSERT INTO discoveryinfo VALUES (4191058, 6, 5);
-INSERT INTO discoveryinfo VALUES (4191060, 6, 5);
-INSERT INTO discoveryinfo VALUES (4191062, 6, 5);
-INSERT INTO discoveryinfo VALUES (4191063, 6, 5);
-INSERT INTO discoveryinfo VALUES (4191065, 6, 5);
-INSERT INTO discoveryinfo VALUES (4191066, 6, 7);
-INSERT INTO discoveryinfo VALUES (4191069, 6, 7);
-INSERT INTO discoveryinfo VALUES (4191070, 6, 6);
-INSERT INTO discoveryinfo VALUES (4191072, 6, 6);
-INSERT INTO discoveryinfo VALUES (4191075, 6, 6);
-INSERT INTO discoveryinfo VALUES (4191081, 6, 6);
INSERT INTO discoveryinfo VALUES (2264614, 7, 1);
INSERT INTO discoveryinfo VALUES (2264620, 7, 1);
INSERT INTO discoveryinfo VALUES (2264625, 7, 1);
@@ -2955,7 +2583,7 @@ INSERT INTO discoveryinfo VALUES (2264673, 7, 16);
INSERT INTO discoveryinfo VALUES (2264674, 7, 4);
INSERT INTO discoveryinfo VALUES (2264675, 7, 5);
INSERT INTO discoveryinfo VALUES (2264676, 7, 6);
-INSERT INTO discoveryinfo VALUES (2264680, 7, 8);
+INSERT INTO discoveryinfo VALUES (2264680, 7, 7);
INSERT INTO discoveryinfo VALUES (2264682, 7, 8);
INSERT INTO discoveryinfo VALUES (2264685, 7, 9);
INSERT INTO discoveryinfo VALUES (2453677, 7, 1);
@@ -2975,7 +2603,7 @@ INSERT INTO discoveryinfo VALUES (4334885, 7, 7);
INSERT INTO discoveryinfo VALUES (4334886, 7, 16);
INSERT INTO discoveryinfo VALUES (4889986, 7, 10);
INSERT INTO discoveryinfo VALUES (4889987, 7, 3);
-INSERT INTO discoveryinfo VALUES (4889991, 7, 10);
+INSERT INTO discoveryinfo VALUES (4889991, 7, 3);
INSERT INTO discoveryinfo VALUES (4889995, 7, 3);
INSERT INTO discoveryinfo VALUES (2264705, 7, 1);
INSERT INTO discoveryinfo VALUES (2264721, 7, 1);
@@ -2989,11 +2617,11 @@ INSERT INTO discoveryinfo VALUES (2264775, 7, 11);
INSERT INTO discoveryinfo VALUES (2264791, 7, 15);
INSERT INTO discoveryinfo VALUES (2264796, 7, 3);
INSERT INTO discoveryinfo VALUES (2264798, 7, 16);
-INSERT INTO discoveryinfo VALUES (2264807, 7, 1);
-INSERT INTO discoveryinfo VALUES (2341847, 7, 5);
+INSERT INTO discoveryinfo VALUES (2264807, 7, 16);
+INSERT INTO discoveryinfo VALUES (2341847, 7, 16);
INSERT INTO discoveryinfo VALUES (2341851, 7, 15);
-INSERT INTO discoveryinfo VALUES (2341870, 7, 6);
-INSERT INTO discoveryinfo VALUES (2341892, 7, 10);
+INSERT INTO discoveryinfo VALUES (2341870, 7, 16);
+INSERT INTO discoveryinfo VALUES (2341892, 7, 16);
INSERT INTO discoveryinfo VALUES (2499345, 7, 1);
INSERT INTO discoveryinfo VALUES (2563882, 7, 1);
INSERT INTO discoveryinfo VALUES (3899968, 7, 15);
@@ -3022,8 +2650,6 @@ INSERT INTO discoveryinfo VALUES (2112183, 9, 6);
INSERT INTO discoveryinfo VALUES (2112184, 9, 6);
INSERT INTO discoveryinfo VALUES (2112185, 9, 5);
INSERT INTO discoveryinfo VALUES (2112186, 9, 7);
-INSERT INTO discoveryinfo VALUES (2112188, 9, 5);
-INSERT INTO discoveryinfo VALUES (2112189, 9, 4);
INSERT INTO discoveryinfo VALUES (3746497, 9, 1);
INSERT INTO discoveryinfo VALUES (3746504, 9, 10);
INSERT INTO discoveryinfo VALUES (3746513, 9, 1);
@@ -3037,6 +2663,7 @@ INSERT INTO discoveryinfo VALUES (3762948, 9, 7);
INSERT INTO discoveryinfo VALUES (3762950, 9, 2);
INSERT INTO discoveryinfo VALUES (3784410, 9, 1);
INSERT INTO discoveryinfo VALUES (2065870, 9, 4);
+INSERT INTO discoveryinfo VALUES (3784455, 9, 11);
INSERT INTO discoveryinfo VALUES (3784508, 9, 2);
INSERT INTO discoveryinfo VALUES (3784514, 9, 2);
INSERT INTO discoveryinfo VALUES (3784517, 9, 2);
@@ -3045,38 +2672,68 @@ INSERT INTO discoveryinfo VALUES (3784522, 9, 2);
INSERT INTO discoveryinfo VALUES (3784537, 9, 8);
INSERT INTO discoveryinfo VALUES (3784563, 9, 7);
INSERT INTO discoveryinfo VALUES (3784565, 9, 7);
-INSERT INTO discoveryinfo VALUES (7081097, 415, 10);
-INSERT INTO discoveryinfo VALUES (7082913, 415, 12);
-INSERT INTO discoveryinfo VALUES (7082919, 415, 14);
-INSERT INTO discoveryinfo VALUES (7082925, 415, 14);
-INSERT INTO discoveryinfo VALUES (7082926, 415, 14);
-INSERT INTO discoveryinfo VALUES (7171388, 415, 15);
-INSERT INTO discoveryinfo VALUES (6953721, 367, 2);
-INSERT INTO discoveryinfo VALUES (6953722, 367, 4);
-INSERT INTO discoveryinfo VALUES (6953723, 367, 3);
-INSERT INTO discoveryinfo VALUES (6953726, 367, 3);
-INSERT INTO discoveryinfo VALUES (6953738, 367, 5);
-INSERT INTO discoveryinfo VALUES (6953772, 367, 2);
-INSERT INTO discoveryinfo VALUES (6953773, 367, 3);
-INSERT INTO discoveryinfo VALUES (6953776, 367, 1);
-INSERT INTO discoveryinfo VALUES (6953780, 367, 6);
-INSERT INTO discoveryinfo VALUES (6953786, 367, 7);
-INSERT INTO discoveryinfo VALUES (6953788, 367, 8);
-INSERT INTO discoveryinfo VALUES (6953789, 367, 2);
-INSERT INTO discoveryinfo VALUES (6953790, 367, 10);
-INSERT INTO discoveryinfo VALUES (6953792, 367, 22);
-INSERT INTO discoveryinfo VALUES (6953800, 367, 23);
-INSERT INTO discoveryinfo VALUES (6953802, 367, 27);
-INSERT INTO discoveryinfo VALUES (6953804, 367, 19);
-INSERT INTO discoveryinfo VALUES (6953807, 367, 29);
-INSERT INTO discoveryinfo VALUES (6953811, 367, 24);
-INSERT INTO discoveryinfo VALUES (6953814, 367, 27);
-INSERT INTO discoveryinfo VALUES (6953815, 367, 27);
-INSERT INTO discoveryinfo VALUES (6953816, 367, 27);
-INSERT INTO discoveryinfo VALUES (6953817, 367, 27);
-INSERT INTO discoveryinfo VALUES (6953818, 367, 27);
-INSERT INTO discoveryinfo VALUES (6953819, 367, 27);
-INSERT INTO discoveryinfo VALUES (6953820, 367, 27);
+INSERT INTO discoveryinfo VALUES (6894233, 397, 1);
+INSERT INTO discoveryinfo VALUES (6894239, 397, 2);
+INSERT INTO discoveryinfo VALUES (6894242, 397, 3);
+INSERT INTO discoveryinfo VALUES (6894246, 397, 3);
+INSERT INTO discoveryinfo VALUES (6894288, 397, 4);
+INSERT INTO discoveryinfo VALUES (6894292, 397, 5);
+INSERT INTO discoveryinfo VALUES (6894295, 397, 5);
+INSERT INTO discoveryinfo VALUES (6894320, 397, 6);
+INSERT INTO discoveryinfo VALUES (6894335, 397, 6);
+INSERT INTO discoveryinfo VALUES (6894338, 397, 7);
+INSERT INTO discoveryinfo VALUES (6894340, 397, 7);
+INSERT INTO discoveryinfo VALUES (6894342, 397, 7);
+INSERT INTO discoveryinfo VALUES (6894344, 397, 7);
+INSERT INTO discoveryinfo VALUES (6894347, 397, 8);
+INSERT INTO discoveryinfo VALUES (6894348, 397, 8);
+INSERT INTO discoveryinfo VALUES (6894365, 397, 9);
+INSERT INTO discoveryinfo VALUES (6894377, 397, 9);
+INSERT INTO discoveryinfo VALUES (6894416, 397, 10);
+INSERT INTO discoveryinfo VALUES (6894417, 397, 11);
+INSERT INTO discoveryinfo VALUES (6894419, 397, 11);
+INSERT INTO discoveryinfo VALUES (6894420, 397, 12);
+INSERT INTO discoveryinfo VALUES (6798894, 362, 1);
+INSERT INTO discoveryinfo VALUES (6798907, 362, 2);
+INSERT INTO discoveryinfo VALUES (6798908, 362, 3);
+INSERT INTO discoveryinfo VALUES (6798909, 362, 4);
+INSERT INTO discoveryinfo VALUES (6798910, 362, 5);
+INSERT INTO discoveryinfo VALUES (6798912, 362, 5);
+INSERT INTO discoveryinfo VALUES (6798913, 363, 6);
+INSERT INTO discoveryinfo VALUES (6798914, 363, 6);
+INSERT INTO discoveryinfo VALUES (6798915, 363, 7);
+INSERT INTO discoveryinfo VALUES (6798916, 363, 7);
+INSERT INTO discoveryinfo VALUES (6798948, 363, 8);
+INSERT INTO discoveryinfo VALUES (6798950, 363, 8);
+INSERT INTO discoveryinfo VALUES (6798952, 363, 9);
+INSERT INTO discoveryinfo VALUES (6798953, 363, 9);
+INSERT INTO discoveryinfo VALUES (6798954, 363, 10);
+INSERT INTO discoveryinfo VALUES (6798955, 363, 10);
+INSERT INTO discoveryinfo VALUES (6798961, 363, 11);
+INSERT INTO discoveryinfo VALUES (6798962, 363, 11);
+INSERT INTO discoveryinfo VALUES (6798963, 363, 12);
+INSERT INTO discoveryinfo VALUES (6798964, 363, 13);
+INSERT INTO discoveryinfo VALUES (7080823, 413, 1);
+INSERT INTO discoveryinfo VALUES (7081090, 413, 2);
+INSERT INTO discoveryinfo VALUES (7081091, 413, 3);
+INSERT INTO discoveryinfo VALUES (7081093, 413, 4);
+INSERT INTO discoveryinfo VALUES (7081094, 413, 4);
+INSERT INTO discoveryinfo VALUES (7081096, 413, 5);
+INSERT INTO discoveryinfo VALUES (7081097, 413, 5);
+INSERT INTO discoveryinfo VALUES (7082809, 413, 6);
+INSERT INTO discoveryinfo VALUES (7082911, 413, 6);
+INSERT INTO discoveryinfo VALUES (7082913, 413, 7);
+INSERT INTO discoveryinfo VALUES (7082919, 413, 8);
+INSERT INTO discoveryinfo VALUES (7082925, 413, 9);
+INSERT INTO discoveryinfo VALUES (7082926, 413, 9);
+INSERT INTO discoveryinfo VALUES (7082940, 415, 10);
+INSERT INTO discoveryinfo VALUES (7082944, 415, 10);
+INSERT INTO discoveryinfo VALUES (7082945, 415, 12);
+INSERT INTO discoveryinfo VALUES (7082948, 415, 13);
+INSERT INTO discoveryinfo VALUES (7082952, 415, 14);
+INSERT INTO discoveryinfo VALUES (7082957, 415, 15);
+INSERT INTO discoveryinfo VALUES (7082960, 415, 15);
+INSERT INTO discoveryinfo VALUES (7171388, 413, 11);
INSERT INTO discoveryinfo VALUES (6987034, 367, 1);
INSERT INTO discoveryinfo VALUES (6987035, 367, 1);
INSERT INTO discoveryinfo VALUES (6987036, 367, 1);
@@ -3123,7 +2780,7 @@ INSERT INTO discoveryinfo VALUES (6987076, 367, 15);
INSERT INTO discoveryinfo VALUES (6987077, 367, 15);
INSERT INTO discoveryinfo VALUES (6987078, 367, 15);
INSERT INTO discoveryinfo VALUES (6987079, 367, 24);
-INSERT INTO discoveryinfo VALUES (6987080, 367, 25);
+INSERT INTO discoveryinfo VALUES (6987080, 367, 24);
INSERT INTO discoveryinfo VALUES (6987081, 367, 25);
INSERT INTO discoveryinfo VALUES (6987082, 367, 26);
INSERT INTO discoveryinfo VALUES (6987083, 367, 27);
@@ -3157,61 +2814,6 @@ INSERT INTO discoveryinfo VALUES (6987110, 367, 19);
INSERT INTO discoveryinfo VALUES (6987111, 367, 20);
INSERT INTO discoveryinfo VALUES (6987112, 367, 10);
INSERT INTO discoveryinfo VALUES (6987113, 367, 10);
-INSERT INTO discoveryinfo VALUES (6954096, 367, 1);
-INSERT INTO discoveryinfo VALUES (6954100, 367, 1);
-INSERT INTO discoveryinfo VALUES (6954278, 367, 2);
-INSERT INTO discoveryinfo VALUES (6954280, 367, 3);
-INSERT INTO discoveryinfo VALUES (6954281, 367, 3);
-INSERT INTO discoveryinfo VALUES (6954284, 367, 5);
-INSERT INTO discoveryinfo VALUES (6954287, 367, 5);
-INSERT INTO discoveryinfo VALUES (6954295, 367, 6);
-INSERT INTO discoveryinfo VALUES (6954296, 367, 6);
-INSERT INTO discoveryinfo VALUES (6954297, 367, 6);
-INSERT INTO discoveryinfo VALUES (6954298, 367, 6);
-INSERT INTO discoveryinfo VALUES (6954300, 367, 8);
-INSERT INTO discoveryinfo VALUES (6954302, 367, 8);
-INSERT INTO discoveryinfo VALUES (6954311, 367, 8);
-INSERT INTO discoveryinfo VALUES (6954328, 367, 11);
-INSERT INTO discoveryinfo VALUES (6954522, 367, 5);
-INSERT INTO discoveryinfo VALUES (6954780, 367, 11);
-INSERT INTO discoveryinfo VALUES (6954781, 367, 11);
-INSERT INTO discoveryinfo VALUES (6954784, 367, 11);
-INSERT INTO discoveryinfo VALUES (6954791, 367, 11);
-INSERT INTO discoveryinfo VALUES (6955593, 367, 15);
-INSERT INTO discoveryinfo VALUES (6955601, 367, 15);
-INSERT INTO discoveryinfo VALUES (6955610, 367, 18);
-INSERT INTO discoveryinfo VALUES (6955618, 367, 18);
-INSERT INTO discoveryinfo VALUES (6955619, 367, 18);
-INSERT INTO discoveryinfo VALUES (6955623, 367, 22);
-INSERT INTO discoveryinfo VALUES (6955625, 367, 22);
-INSERT INTO discoveryinfo VALUES (6955627, 367, 22);
-INSERT INTO discoveryinfo VALUES (6955631, 367, 22);
-INSERT INTO discoveryinfo VALUES (6955632, 367, 22);
-INSERT INTO discoveryinfo VALUES (6955633, 367, 22);
-INSERT INTO discoveryinfo VALUES (6955643, 367, 17);
-INSERT INTO discoveryinfo VALUES (6955645, 367, 17);
-INSERT INTO discoveryinfo VALUES (6955646, 367, 17);
-INSERT INTO discoveryinfo VALUES (6955647, 367, 17);
-INSERT INTO discoveryinfo VALUES (6955648, 367, 17);
-INSERT INTO discoveryinfo VALUES (6955649, 367, 17);
-INSERT INTO discoveryinfo VALUES (6955650, 367, 22);
-INSERT INTO discoveryinfo VALUES (6955651, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955652, 367, 29);
-INSERT INTO discoveryinfo VALUES (6955653, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955654, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955655, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955656, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955657, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955658, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955659, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955660, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955661, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955662, 367, 22);
-INSERT INTO discoveryinfo VALUES (6955663, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955664, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955666, 367, 28);
-INSERT INTO discoveryinfo VALUES (6955667, 367, 20);
-INSERT INTO discoveryinfo VALUES (6943043, 367, 8);
INSERT INTO discoveryinfo VALUES (6989593, 368, 1);
INSERT INTO discoveryinfo VALUES (6989594, 368, 1);
INSERT INTO discoveryinfo VALUES (6989595, 368, 1);
@@ -3245,11 +2847,11 @@ INSERT INTO discoveryinfo VALUES (6989622, 368, 30);
INSERT INTO discoveryinfo VALUES (6989623, 368, 30);
INSERT INTO discoveryinfo VALUES (6989624, 368, 30);
INSERT INTO discoveryinfo VALUES (6989625, 368, 30);
-INSERT INTO discoveryinfo VALUES (6989626, 368, 30);
+INSERT INTO discoveryinfo VALUES (6989626, 368, 29);
INSERT INTO discoveryinfo VALUES (6989627, 368, 29);
INSERT INTO discoveryinfo VALUES (6989628, 368, 29);
INSERT INTO discoveryinfo VALUES (6989629, 368, 31);
-INSERT INTO discoveryinfo VALUES (6989630, 368, 29);
+INSERT INTO discoveryinfo VALUES (6989630, 368, 28);
INSERT INTO discoveryinfo VALUES (6989631, 368, 28);
INSERT INTO discoveryinfo VALUES (6989632, 368, 19);
INSERT INTO discoveryinfo VALUES (6989633, 368, 19);
@@ -3262,7 +2864,7 @@ INSERT INTO discoveryinfo VALUES (6989639, 368, 27);
INSERT INTO discoveryinfo VALUES (6989640, 368, 27);
INSERT INTO discoveryinfo VALUES (6989641, 368, 26);
INSERT INTO discoveryinfo VALUES (6989642, 368, 26);
-INSERT INTO discoveryinfo VALUES (6989643, 368, 26);
+INSERT INTO discoveryinfo VALUES (6989643, 368, 24);
INSERT INTO discoveryinfo VALUES (6989644, 368, 24);
INSERT INTO discoveryinfo VALUES (6989645, 368, 24);
INSERT INTO discoveryinfo VALUES (6989646, 368, 25);
@@ -3270,7 +2872,7 @@ INSERT INTO discoveryinfo VALUES (6989647, 368, 25);
INSERT INTO discoveryinfo VALUES (6989648, 368, 25);
INSERT INTO discoveryinfo VALUES (6989649, 368, 25);
INSERT INTO discoveryinfo VALUES (6989650, 368, 25);
-INSERT INTO discoveryinfo VALUES (6989651, 368, 24);
+INSERT INTO discoveryinfo VALUES (6989651, 368, 23);
INSERT INTO discoveryinfo VALUES (6989652, 368, 21);
INSERT INTO discoveryinfo VALUES (6989653, 368, 21);
INSERT INTO discoveryinfo VALUES (6989654, 368, 21);
@@ -3297,7 +2899,7 @@ INSERT INTO discoveryinfo VALUES (6989674, 368, 10);
INSERT INTO discoveryinfo VALUES (6989675, 368, 22);
INSERT INTO discoveryinfo VALUES (6989676, 368, 22);
INSERT INTO discoveryinfo VALUES (6989677, 368, 22);
-INSERT INTO discoveryinfo VALUES (6989678, 368, 22);
+INSERT INTO discoveryinfo VALUES (6989678, 368, 9);
INSERT INTO discoveryinfo VALUES (6989679, 368, 9);
INSERT INTO discoveryinfo VALUES (6989680, 368, 9);
INSERT INTO discoveryinfo VALUES (6989681, 368, 9);
@@ -3305,124 +2907,6 @@ INSERT INTO discoveryinfo VALUES (6989682, 368, 8);
INSERT INTO discoveryinfo VALUES (6989683, 368, 7);
INSERT INTO discoveryinfo VALUES (6989684, 368, 7);
INSERT INTO discoveryinfo VALUES (6989685, 368, 6);
-INSERT INTO discoveryinfo VALUES (6958837, 368, 1);
-INSERT INTO discoveryinfo VALUES (6958838, 368, 16);
-INSERT INTO discoveryinfo VALUES (6958839, 368, 13);
-INSERT INTO discoveryinfo VALUES (6958840, 368, 13);
-INSERT INTO discoveryinfo VALUES (6958841, 368, 13);
-INSERT INTO discoveryinfo VALUES (6958842, 368, 17);
-INSERT INTO discoveryinfo VALUES (6958843, 368, 17);
-INSERT INTO discoveryinfo VALUES (6959180, 368, 30);
-INSERT INTO discoveryinfo VALUES (6959190, 368, 30);
-INSERT INTO discoveryinfo VALUES (6959192, 368, 30);
-INSERT INTO discoveryinfo VALUES (6959196, 368, 29);
-INSERT INTO discoveryinfo VALUES (6959201, 368, 29);
-INSERT INTO discoveryinfo VALUES (6959202, 368, 29);
-INSERT INTO discoveryinfo VALUES (6959204, 368, 29);
-INSERT INTO discoveryinfo VALUES (6959205, 368, 29);
-INSERT INTO discoveryinfo VALUES (6959210, 368, 28);
-INSERT INTO discoveryinfo VALUES (6959270, 368, 20);
-INSERT INTO discoveryinfo VALUES (6959276, 368, 20);
-INSERT INTO discoveryinfo VALUES (6959284, 368, 20);
-INSERT INTO discoveryinfo VALUES (6959315, 368, 20);
-INSERT INTO discoveryinfo VALUES (6959321, 368, 20);
-INSERT INTO discoveryinfo VALUES (6959322, 368, 20);
-INSERT INTO discoveryinfo VALUES (6959332, 368, 20);
-INSERT INTO discoveryinfo VALUES (6959337, 368, 21);
-INSERT INTO discoveryinfo VALUES (6959418, 368, 9);
-INSERT INTO discoveryinfo VALUES (6959448, 368, 6);
-INSERT INTO discoveryinfo VALUES (6959483, 368, 7);
-INSERT INTO discoveryinfo VALUES (6967602, 368, 22);
-INSERT INTO discoveryinfo VALUES (6967981, 368, 22);
-INSERT INTO discoveryinfo VALUES (6968551, 368, 22);
-INSERT INTO discoveryinfo VALUES (6969053, 368, 22);
-INSERT INTO discoveryinfo VALUES (6969090, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969094, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969098, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969100, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969102, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969105, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969109, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969117, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969118, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969119, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969120, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969121, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969122, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969123, 368, 8);
-INSERT INTO discoveryinfo VALUES (6969618, 368, 24);
-INSERT INTO discoveryinfo VALUES (6969620, 368, 22);
-INSERT INTO discoveryinfo VALUES (6969622, 368, 22);
-INSERT INTO discoveryinfo VALUES (6969626, 368, 26);
-INSERT INTO discoveryinfo VALUES (6969630, 368, 25);
-INSERT INTO discoveryinfo VALUES (6969632, 368, 25);
-INSERT INTO discoveryinfo VALUES (6969633, 368, 25);
-INSERT INTO discoveryinfo VALUES (6969635, 368, 25);
-INSERT INTO discoveryinfo VALUES (7008614, 368, 17);
-INSERT INTO discoveryinfo VALUES (7008615, 368, 17);
-INSERT INTO discoveryinfo VALUES (7008616, 368, 17);
-INSERT INTO discoveryinfo VALUES (7008617, 368, 17);
-INSERT INTO discoveryinfo VALUES (7011608, 368, 16);
-INSERT INTO discoveryinfo VALUES (7011609, 368, 16);
-INSERT INTO discoveryinfo VALUES (7011611, 368, 16);
-INSERT INTO discoveryinfo VALUES (7011612, 368, 16);
-INSERT INTO discoveryinfo VALUES (7011613, 368, 16);
-INSERT INTO discoveryinfo VALUES (7017072, 368, 21);
-INSERT INTO discoveryinfo VALUES (7017073, 368, 21);
-INSERT INTO discoveryinfo VALUES (7017074, 368, 21);
-INSERT INTO discoveryinfo VALUES (7017821, 368, 21);
-INSERT INTO discoveryinfo VALUES (7017822, 368, 21);
-INSERT INTO discoveryinfo VALUES (7017823, 368, 21);
-INSERT INTO discoveryinfo VALUES (7017824, 368, 21);
-INSERT INTO discoveryinfo VALUES (7017825, 368, 21);
-INSERT INTO discoveryinfo VALUES (6997901, 368, 17);
-INSERT INTO discoveryinfo VALUES (6997902, 368, 17);
-INSERT INTO discoveryinfo VALUES (6997903, 368, 17);
-INSERT INTO discoveryinfo VALUES (6997904, 368, 16);
-INSERT INTO discoveryinfo VALUES (6997905, 368, 16);
-INSERT INTO discoveryinfo VALUES (6997906, 368, 13);
-INSERT INTO discoveryinfo VALUES (6997907, 368, 2);
-INSERT INTO discoveryinfo VALUES (6997908, 368, 20);
-INSERT INTO discoveryinfo VALUES (6997909, 368, 16);
-INSERT INTO discoveryinfo VALUES (6997910, 368, 20);
-INSERT INTO discoveryinfo VALUES (6997911, 368, 28);
-INSERT INTO discoveryinfo VALUES (6997912, 368, 21);
-INSERT INTO discoveryinfo VALUES (6997913, 368, 21);
-INSERT INTO discoveryinfo VALUES (6997914, 368, 22);
-INSERT INTO discoveryinfo VALUES (6997915, 368, 22);
-INSERT INTO discoveryinfo VALUES (6997916, 368, 22);
-INSERT INTO discoveryinfo VALUES (6997917, 368, 9);
-INSERT INTO discoveryinfo VALUES (6997918, 368, 26);
-INSERT INTO discoveryinfo VALUES (6997919, 368, 20);
-INSERT INTO discoveryinfo VALUES (6943044, 368, 21);
-INSERT INTO discoveryinfo VALUES (6970815, 369, 29);
-INSERT INTO discoveryinfo VALUES (6970818, 369, 30);
-INSERT INTO discoveryinfo VALUES (6970820, 369, 28);
-INSERT INTO discoveryinfo VALUES (6970822, 369, 28);
-INSERT INTO discoveryinfo VALUES (6970824, 369, 28);
-INSERT INTO discoveryinfo VALUES (6970826, 369, 28);
-INSERT INTO discoveryinfo VALUES (6970827, 369, 28);
-INSERT INTO discoveryinfo VALUES (6970858, 369, 30);
-INSERT INTO discoveryinfo VALUES (6970860, 369, 30);
-INSERT INTO discoveryinfo VALUES (6970861, 369, 30);
-INSERT INTO discoveryinfo VALUES (6970863, 369, 30);
-INSERT INTO discoveryinfo VALUES (6971003, 369, 15);
-INSERT INTO discoveryinfo VALUES (6971057, 369, 13);
-INSERT INTO discoveryinfo VALUES (6971058, 369, 15);
-INSERT INTO discoveryinfo VALUES (6971059, 369, 15);
-INSERT INTO discoveryinfo VALUES (6971060, 369, 13);
-INSERT INTO discoveryinfo VALUES (6971062, 369, 13);
-INSERT INTO discoveryinfo VALUES (6971063, 369, 1);
-INSERT INTO discoveryinfo VALUES (6971064, 369, 1);
-INSERT INTO discoveryinfo VALUES (6971065, 369, 2);
-INSERT INTO discoveryinfo VALUES (6971068, 369, 2);
-INSERT INTO discoveryinfo VALUES (6971069, 369, 2);
-INSERT INTO discoveryinfo VALUES (6971070, 369, 2);
-INSERT INTO discoveryinfo VALUES (6971072, 369, 2);
-INSERT INTO discoveryinfo VALUES (6971073, 369, 2);
-INSERT INTO discoveryinfo VALUES (6971075, 369, 13);
-INSERT INTO discoveryinfo VALUES (6971077, 369, 26);
-INSERT INTO discoveryinfo VALUES (6971084, 369, 17);
INSERT INTO discoveryinfo VALUES (6998684, 369, 1);
INSERT INTO discoveryinfo VALUES (6998685, 369, 1);
INSERT INTO discoveryinfo VALUES (6998686, 369, 1);
@@ -3433,7 +2917,7 @@ INSERT INTO discoveryinfo VALUES (6998690, 369, 2);
INSERT INTO discoveryinfo VALUES (6998691, 369, 2);
INSERT INTO discoveryinfo VALUES (6998692, 369, 2);
INSERT INTO discoveryinfo VALUES (6998693, 369, 2);
-INSERT INTO discoveryinfo VALUES (6998694, 369, 1);
+INSERT INTO discoveryinfo VALUES (6998694, 369, 2);
INSERT INTO discoveryinfo VALUES (6998695, 369, 3);
INSERT INTO discoveryinfo VALUES (6998696, 369, 3);
INSERT INTO discoveryinfo VALUES (6998697, 369, 3);
@@ -3452,7 +2936,7 @@ INSERT INTO discoveryinfo VALUES (6998709, 369, 6);
INSERT INTO discoveryinfo VALUES (6998710, 369, 6);
INSERT INTO discoveryinfo VALUES (6998711, 369, 6);
INSERT INTO discoveryinfo VALUES (6998712, 369, 6);
-INSERT INTO discoveryinfo VALUES (6998713, 369, 6);
+INSERT INTO discoveryinfo VALUES (6998713, 369, 7);
INSERT INTO discoveryinfo VALUES (6998714, 369, 7);
INSERT INTO discoveryinfo VALUES (6998715, 369, 7);
INSERT INTO discoveryinfo VALUES (6998716, 369, 7);
@@ -3466,7 +2950,7 @@ INSERT INTO discoveryinfo VALUES (6998723, 369, 19);
INSERT INTO discoveryinfo VALUES (6998724, 369, 19);
INSERT INTO discoveryinfo VALUES (6998725, 369, 19);
INSERT INTO discoveryinfo VALUES (6998726, 369, 19);
-INSERT INTO discoveryinfo VALUES (6998727, 369, 20);
+INSERT INTO discoveryinfo VALUES (6998727, 369, 19);
INSERT INTO discoveryinfo VALUES (6998728, 369, 21);
INSERT INTO discoveryinfo VALUES (6998729, 369, 21);
INSERT INTO discoveryinfo VALUES (6998730, 369, 21);
@@ -3476,7 +2960,7 @@ INSERT INTO discoveryinfo VALUES (6998733, 369, 21);
INSERT INTO discoveryinfo VALUES (6998734, 369, 21);
INSERT INTO discoveryinfo VALUES (6998735, 369, 31);
INSERT INTO discoveryinfo VALUES (6998736, 369, 31);
-INSERT INTO discoveryinfo VALUES (6998737, 369, 31);
+INSERT INTO discoveryinfo VALUES (6998737, 369, 30);
INSERT INTO discoveryinfo VALUES (6998738, 369, 30);
INSERT INTO discoveryinfo VALUES (6998739, 369, 30);
INSERT INTO discoveryinfo VALUES (6998740, 369, 29);
@@ -3507,7 +2991,7 @@ INSERT INTO discoveryinfo VALUES (6998764, 369, 14);
INSERT INTO discoveryinfo VALUES (6998765, 369, 15);
INSERT INTO discoveryinfo VALUES (6998766, 369, 15);
INSERT INTO discoveryinfo VALUES (6998767, 369, 15);
-INSERT INTO discoveryinfo VALUES (6998768, 369, 25);
+INSERT INTO discoveryinfo VALUES (6998768, 369, 15);
INSERT INTO discoveryinfo VALUES (6998769, 369, 13);
INSERT INTO discoveryinfo VALUES (6998770, 369, 13);
INSERT INTO discoveryinfo VALUES (6998771, 369, 13);
@@ -3540,115 +3024,6 @@ INSERT INTO discoveryinfo VALUES (6998797, 369, 23);
INSERT INTO discoveryinfo VALUES (6998798, 369, 24);
INSERT INTO discoveryinfo VALUES (6998799, 369, 24);
INSERT INTO discoveryinfo VALUES (6998800, 369, 16);
-INSERT INTO discoveryinfo VALUES (7011909, 369, 23);
-INSERT INTO discoveryinfo VALUES (7011910, 369, 16);
-INSERT INTO discoveryinfo VALUES (7011911, 369, 16);
-INSERT INTO discoveryinfo VALUES (7011912, 369, 17);
-INSERT INTO discoveryinfo VALUES (7011913, 369, 18);
-INSERT INTO discoveryinfo VALUES (7011914, 369, 22);
-INSERT INTO discoveryinfo VALUES (7011915, 369, 24);
-INSERT INTO discoveryinfo VALUES (7011916, 369, 17);
-INSERT INTO discoveryinfo VALUES (7011917, 369, 24);
-INSERT INTO discoveryinfo VALUES (7011918, 369, 16);
-INSERT INTO discoveryinfo VALUES (7011919, 369, 24);
-INSERT INTO discoveryinfo VALUES (7011920, 369, 16);
-INSERT INTO discoveryinfo VALUES (7011921, 369, 22);
-INSERT INTO discoveryinfo VALUES (7011922, 369, 16);
-INSERT INTO discoveryinfo VALUES (7011923, 369, 10);
-INSERT INTO discoveryinfo VALUES (7031233, 369, 30);
-INSERT INTO discoveryinfo VALUES (7031993, 369, 30);
-INSERT INTO discoveryinfo VALUES (7032050, 369, 21);
-INSERT INTO discoveryinfo VALUES (7032051, 369, 21);
-INSERT INTO discoveryinfo VALUES (7036942, 369, 30);
-INSERT INTO discoveryinfo VALUES (6971185, 369, 5);
-INSERT INTO discoveryinfo VALUES (6971191, 369, 5);
-INSERT INTO discoveryinfo VALUES (6971193, 369, 6);
-INSERT INTO discoveryinfo VALUES (6971194, 369, 6);
-INSERT INTO discoveryinfo VALUES (6971199, 369, 4);
-INSERT INTO discoveryinfo VALUES (6971201, 369, 4);
-INSERT INTO discoveryinfo VALUES (6971202, 369, 4);
-INSERT INTO discoveryinfo VALUES (6971218, 369, 7);
-INSERT INTO discoveryinfo VALUES (6971225, 369, 3);
-INSERT INTO discoveryinfo VALUES (6971339, 369, 3);
-INSERT INTO discoveryinfo VALUES (6971342, 369, 3);
-INSERT INTO discoveryinfo VALUES (6971343, 369, 9);
-INSERT INTO discoveryinfo VALUES (6971345, 369, 9);
-INSERT INTO discoveryinfo VALUES (6971346, 369, 9);
-INSERT INTO discoveryinfo VALUES (6971347, 369, 8);
-INSERT INTO discoveryinfo VALUES (6971349, 369, 8);
-INSERT INTO discoveryinfo VALUES (6971350, 369, 8);
-INSERT INTO discoveryinfo VALUES (6971351, 369, 9);
-INSERT INTO discoveryinfo VALUES (6971352, 369, 9);
-INSERT INTO discoveryinfo VALUES (6971353, 369, 9);
-INSERT INTO discoveryinfo VALUES (6971386, 369, 8);
-INSERT INTO discoveryinfo VALUES (6971395, 369, 8);
-INSERT INTO discoveryinfo VALUES (6971398, 369, 8);
-INSERT INTO discoveryinfo VALUES (6971399, 369, 8);
-INSERT INTO discoveryinfo VALUES (6971401, 369, 8);
-INSERT INTO discoveryinfo VALUES (6971402, 369, 8);
-INSERT INTO discoveryinfo VALUES (6971404, 369, 8);
-INSERT INTO discoveryinfo VALUES (6971406, 369, 8);
-INSERT INTO discoveryinfo VALUES (6971407, 369, 8);
-INSERT INTO discoveryinfo VALUES (6971412, 369, 19);
-INSERT INTO discoveryinfo VALUES (6971414, 369, 19);
-INSERT INTO discoveryinfo VALUES (6971416, 369, 19);
-INSERT INTO discoveryinfo VALUES (6971418, 369, 19);
-INSERT INTO discoveryinfo VALUES (6971424, 369, 20);
-INSERT INTO discoveryinfo VALUES (6971428, 369, 21);
-INSERT INTO discoveryinfo VALUES (6971432, 369, 21);
-INSERT INTO discoveryinfo VALUES (6971460, 369, 18);
-INSERT INTO discoveryinfo VALUES (6971461, 369, 16);
-INSERT INTO discoveryinfo VALUES (6971463, 369, 16);
-INSERT INTO discoveryinfo VALUES (6971464, 369, 1);
-INSERT INTO discoveryinfo VALUES (6971465, 369, 1);
-INSERT INTO discoveryinfo VALUES (6971466, 369, 1);
-INSERT INTO discoveryinfo VALUES (6971467, 369, 1);
-INSERT INTO discoveryinfo VALUES (6971468, 369, 1);
-INSERT INTO discoveryinfo VALUES (6971471, 369, 13);
-INSERT INTO discoveryinfo VALUES (6971479, 369, 27);
-INSERT INTO discoveryinfo VALUES (6971482, 369, 27);
-INSERT INTO discoveryinfo VALUES (6971969, 369, 27);
-INSERT INTO discoveryinfo VALUES (6971973, 369, 26);
-INSERT INTO discoveryinfo VALUES (6971977, 369, 25);
-INSERT INTO discoveryinfo VALUES (6971980, 369, 25);
-INSERT INTO discoveryinfo VALUES (6971982, 369, 25);
-INSERT INTO discoveryinfo VALUES (6971983, 369, 25);
-INSERT INTO discoveryinfo VALUES (6971984, 369, 25);
-INSERT INTO discoveryinfo VALUES (6971985, 369, 25);
-INSERT INTO discoveryinfo VALUES (6971986, 369, 25);
-INSERT INTO discoveryinfo VALUES (6971989, 369, 15);
-INSERT INTO discoveryinfo VALUES (6971991, 369, 13);
-INSERT INTO discoveryinfo VALUES (6971993, 369, 13);
-INSERT INTO discoveryinfo VALUES (6971994, 369, 15);
-INSERT INTO discoveryinfo VALUES (6971996, 369, 17);
-INSERT INTO discoveryinfo VALUES (6971998, 369, 17);
-INSERT INTO discoveryinfo VALUES (7011528, 369, 23);
-INSERT INTO discoveryinfo VALUES (7022080, 369, 13);
-INSERT INTO discoveryinfo VALUES (7022081, 369, 13);
-INSERT INTO discoveryinfo VALUES (7022082, 369, 10);
-INSERT INTO discoveryinfo VALUES (7022083, 369, 10);
-INSERT INTO discoveryinfo VALUES (7022084, 369, 10);
-INSERT INTO discoveryinfo VALUES (7022085, 369, 10);
-INSERT INTO discoveryinfo VALUES (7022086, 369, 3);
-INSERT INTO discoveryinfo VALUES (7022088, 369, 3);
-INSERT INTO discoveryinfo VALUES (7022089, 369, 3);
-INSERT INTO discoveryinfo VALUES (7022472, 369, 12);
-INSERT INTO discoveryinfo VALUES (7022480, 369, 12);
-INSERT INTO discoveryinfo VALUES (7022482, 369, 12);
-INSERT INTO discoveryinfo VALUES (7022484, 369, 12);
-INSERT INTO discoveryinfo VALUES (7031210, 369, 31);
-INSERT INTO discoveryinfo VALUES (7031211, 369, 31);
-INSERT INTO discoveryinfo VALUES (7031212, 369, 31);
-INSERT INTO discoveryinfo VALUES (7031213, 369, 31);
-INSERT INTO discoveryinfo VALUES (7031219, 369, 31);
-INSERT INTO discoveryinfo VALUES (7031225, 369, 31);
-INSERT INTO discoveryinfo VALUES (7031226, 369, 30);
-INSERT INTO discoveryinfo VALUES (7031228, 369, 31);
-INSERT INTO discoveryinfo VALUES (7031229, 369, 31);
-INSERT INTO discoveryinfo VALUES (7031230, 369, 31);
-INSERT INTO discoveryinfo VALUES (7031341, 369, 31);
-INSERT INTO discoveryinfo VALUES (7031346, 369, 31);
-INSERT INTO discoveryinfo VALUES (7031381, 369, 31);
INSERT INTO discoveryinfo VALUES (6998470, 369, 1);
INSERT INTO discoveryinfo VALUES (6998471, 369, 1);
INSERT INTO discoveryinfo VALUES (6998472, 369, 1);
@@ -3659,7 +3034,7 @@ INSERT INTO discoveryinfo VALUES (6998486, 369, 2);
INSERT INTO discoveryinfo VALUES (6998487, 369, 2);
INSERT INTO discoveryinfo VALUES (6998488, 369, 2);
INSERT INTO discoveryinfo VALUES (6998490, 369, 2);
-INSERT INTO discoveryinfo VALUES (6998491, 369, 1);
+INSERT INTO discoveryinfo VALUES (6998491, 369, 2);
INSERT INTO discoveryinfo VALUES (6998492, 369, 3);
INSERT INTO discoveryinfo VALUES (6998493, 369, 3);
INSERT INTO discoveryinfo VALUES (6998494, 369, 3);
@@ -3678,7 +3053,7 @@ INSERT INTO discoveryinfo VALUES (6998512, 369, 6);
INSERT INTO discoveryinfo VALUES (6998513, 369, 6);
INSERT INTO discoveryinfo VALUES (6998514, 369, 6);
INSERT INTO discoveryinfo VALUES (6998515, 369, 6);
-INSERT INTO discoveryinfo VALUES (6998523, 369, 6);
+INSERT INTO discoveryinfo VALUES (6998523, 369, 7);
INSERT INTO discoveryinfo VALUES (6998529, 369, 7);
INSERT INTO discoveryinfo VALUES (6998530, 369, 7);
INSERT INTO discoveryinfo VALUES (6998533, 369, 7);
@@ -3692,7 +3067,7 @@ INSERT INTO discoveryinfo VALUES (6998543, 369, 19);
INSERT INTO discoveryinfo VALUES (6998545, 369, 19);
INSERT INTO discoveryinfo VALUES (6998546, 369, 19);
INSERT INTO discoveryinfo VALUES (6998547, 369, 19);
-INSERT INTO discoveryinfo VALUES (6998548, 369, 20);
+INSERT INTO discoveryinfo VALUES (6998548, 369, 19);
INSERT INTO discoveryinfo VALUES (6998551, 369, 21);
INSERT INTO discoveryinfo VALUES (6998552, 369, 21);
INSERT INTO discoveryinfo VALUES (6998553, 369, 21);
@@ -3702,7 +3077,7 @@ INSERT INTO discoveryinfo VALUES (6998557, 369, 21);
INSERT INTO discoveryinfo VALUES (6998558, 369, 21);
INSERT INTO discoveryinfo VALUES (6998559, 369, 31);
INSERT INTO discoveryinfo VALUES (6998561, 369, 31);
-INSERT INTO discoveryinfo VALUES (6998565, 369, 31);
+INSERT INTO discoveryinfo VALUES (6998565, 369, 30);
INSERT INTO discoveryinfo VALUES (6998569, 369, 30);
INSERT INTO discoveryinfo VALUES (6998571, 369, 30);
INSERT INTO discoveryinfo VALUES (6998573, 369, 29);
@@ -3733,7 +3108,7 @@ INSERT INTO discoveryinfo VALUES (6998611, 369, 14);
INSERT INTO discoveryinfo VALUES (6998612, 369, 15);
INSERT INTO discoveryinfo VALUES (6998613, 369, 15);
INSERT INTO discoveryinfo VALUES (6998618, 369, 15);
-INSERT INTO discoveryinfo VALUES (6998620, 369, 25);
+INSERT INTO discoveryinfo VALUES (6998620, 369, 15);
INSERT INTO discoveryinfo VALUES (6998622, 369, 13);
INSERT INTO discoveryinfo VALUES (6998623, 369, 13);
INSERT INTO discoveryinfo VALUES (6998625, 369, 13);
@@ -3766,38 +3141,74 @@ INSERT INTO discoveryinfo VALUES (6998669, 369, 23);
INSERT INTO discoveryinfo VALUES (6998670, 369, 24);
INSERT INTO discoveryinfo VALUES (6998676, 369, 24);
INSERT INTO discoveryinfo VALUES (6998682, 369, 16);
-INSERT INTO discoveryinfo VALUES (6943045, 369, 17);
-INSERT INTO discoveryinfo VALUES (5579669, 203, 10);
-INSERT INTO discoveryinfo VALUES (5680642, 203, 9);
-INSERT INTO discoveryinfo VALUES (5680661, 203, 10);
-INSERT INTO discoveryinfo VALUES (5681112, 203, 9);
-INSERT INTO discoveryinfo VALUES (5681114, 203, 10);
-INSERT INTO discoveryinfo VALUES (5681115, 203, 11);
-INSERT INTO discoveryinfo VALUES (5681121, 203, 10);
-INSERT INTO discoveryinfo VALUES (5681153, 203, 10);
-INSERT INTO discoveryinfo VALUES (5681154, 203, 9);
-INSERT INTO discoveryinfo VALUES (5681166, 203, 11);
+INSERT INTO discoveryinfo VALUES (5680640, 201, 1);
+INSERT INTO discoveryinfo VALUES (5680641, 201, 2);
+INSERT INTO discoveryinfo VALUES (5680642, 201, 3);
+INSERT INTO discoveryinfo VALUES (5680661, 201, 4);
+INSERT INTO discoveryinfo VALUES (5680673, 202, 5);
+INSERT INTO discoveryinfo VALUES (5680678, 202, 6);
+INSERT INTO discoveryinfo VALUES (5680689, 202, 7);
+INSERT INTO discoveryinfo VALUES (5680697, 201, 8);
+INSERT INTO discoveryinfo VALUES (5681112, 201, 9);
+INSERT INTO discoveryinfo VALUES (5681114, 201, 10);
+INSERT INTO discoveryinfo VALUES (5681115, 201, 11);
+INSERT INTO discoveryinfo VALUES (4303238, 71, 2);
+INSERT INTO discoveryinfo VALUES (4284655, 71, 1);
+INSERT INTO discoveryinfo VALUES (4317176, 71, 3);
+INSERT INTO discoveryinfo VALUES (4284679, 71, 3);
+INSERT INTO discoveryinfo VALUES (4317154, 71, 4);
+INSERT INTO discoveryinfo VALUES (4317155, 71, 5);
+INSERT INTO discoveryinfo VALUES (4287430, 71, 6);
+INSERT INTO discoveryinfo VALUES (4284668, 71, 7);
+INSERT INTO discoveryinfo VALUES (4317193, 71, 8);
+INSERT INTO discoveryinfo VALUES (4284672, 71, 10);
+INSERT INTO discoveryinfo VALUES (4317200, 71, 11);
+INSERT INTO discoveryinfo VALUES (4287440, 71, 12);
+INSERT INTO discoveryinfo VALUES (4303212, 71, 13);
+INSERT INTO discoveryinfo VALUES (4489186, 71, 3);
+INSERT INTO discoveryinfo VALUES (4489187, 71, 3);
+INSERT INTO discoveryinfo VALUES (4489188, 71, 3);
+INSERT INTO discoveryinfo VALUES (4489189, 71, 3);
+INSERT INTO discoveryinfo VALUES (4489190, 71, 3);
+INSERT INTO discoveryinfo VALUES (4489192, 71, 3);
+INSERT INTO discoveryinfo VALUES (4489193, 71, 3);
+INSERT INTO discoveryinfo VALUES (4489194, 71, 3);
+INSERT INTO discoveryinfo VALUES (4489195, 71, 3);
INSERT INTO discoveryinfo VALUES (4489236, 135, 14);
INSERT INTO discoveryinfo VALUES (4489237, 135, 15);
-INSERT INTO discoveryinfo VALUES (4303276, 135, 14);
-INSERT INTO discoveryinfo VALUES (4759603, 164, 12);
-INSERT INTO discoveryinfo VALUES (4759604, 164, 12);
-INSERT INTO discoveryinfo VALUES (4759637, 164, 12);
-INSERT INTO discoveryinfo VALUES (4759638, 164, 12);
-INSERT INTO discoveryinfo VALUES (4759658, 164, 12);
+INSERT INTO discoveryinfo VALUES (4287437, 71, 9);
+INSERT INTO discoveryinfo VALUES (4759598, 158, 1);
+INSERT INTO discoveryinfo VALUES (4759601, 159, 2);
+INSERT INTO discoveryinfo VALUES (4760537, 159, 3);
+INSERT INTO discoveryinfo VALUES (4759602, 160, 4);
+INSERT INTO discoveryinfo VALUES (4760539, 160, 5);
+INSERT INTO discoveryinfo VALUES (4759603, 161, 6);
+INSERT INTO discoveryinfo VALUES (4759625, 161, 7);
+INSERT INTO discoveryinfo VALUES (4759604, 162, 8);
+INSERT INTO discoveryinfo VALUES (4759637, 162, 8);
+INSERT INTO discoveryinfo VALUES (4759638, 162, 8);
+INSERT INTO discoveryinfo VALUES (4759639, 162, 9);
+INSERT INTO discoveryinfo VALUES (4759640, 162, 9);
+INSERT INTO discoveryinfo VALUES (4759642, 162, 9);
+INSERT INTO discoveryinfo VALUES (4759658, 163, 10);
+INSERT INTO discoveryinfo VALUES (4759645, 163, 11);
INSERT INTO discoveryinfo VALUES (4759606, 164, 12);
INSERT INTO discoveryinfo VALUES (4759652, 164, 13);
INSERT INTO discoveryinfo VALUES (4759654, 164, 14);
-INSERT INTO discoveryinfo VALUES (4760563, 164, 12);
-INSERT INTO discoveryinfo VALUES (4760674, 164, 12);
-INSERT INTO discoveryinfo VALUES (4760676, 164, 12);
-INSERT INTO discoveryinfo VALUES (4760678, 164, 12);
-INSERT INTO discoveryinfo VALUES (4760680, 164, 12);
-INSERT INTO discoveryinfo VALUES (4760682, 164, 12);
-INSERT INTO discoveryinfo VALUES (4760685, 164, 12);
-INSERT INTO discoveryinfo VALUES (4760683, 164, 12);
-INSERT INTO discoveryinfo VALUES (4760689, 164, 14);
-INSERT INTO discoveryinfo VALUES (4934748, 164, 12);
+INSERT INTO discoveryinfo VALUES (5063263, 184, 1);
+INSERT INTO discoveryinfo VALUES (5068251, 184, 2);
+INSERT INTO discoveryinfo VALUES (5068254, 184, 2);
+INSERT INTO discoveryinfo VALUES (5068256, 184, 3);
+INSERT INTO discoveryinfo VALUES (5068257, 184, 4);
+INSERT INTO discoveryinfo VALUES (5068258, 184, 4);
+INSERT INTO discoveryinfo VALUES (5068260, 184, 5);
+INSERT INTO discoveryinfo VALUES (5068267, 184, 5);
+INSERT INTO discoveryinfo VALUES (5070852, 184, 6);
+INSERT INTO discoveryinfo VALUES (5070868, 184, 7);
+INSERT INTO discoveryinfo VALUES (5070872, 184, 7);
+INSERT INTO discoveryinfo VALUES (5070873, 184, 8);
+INSERT INTO discoveryinfo VALUES (5070874, 184, 9);
+INSERT INTO discoveryinfo VALUES (5070875, 184, 10);
INSERT INTO discoveryinfo VALUES (6950667, 359, 1);
INSERT INTO discoveryinfo VALUES (6950676, 359, 2);
INSERT INTO discoveryinfo VALUES (6950680, 359, 3);
@@ -3911,7 +3322,7 @@ INSERT INTO discoveryinfo VALUES (4248291, 53, 8);
INSERT INTO discoveryinfo VALUES (4248293, 53, 9);
INSERT INTO discoveryinfo VALUES (4248303, 53, 9);
INSERT INTO discoveryinfo VALUES (4248308, 53, 9);
-INSERT INTO discoveryinfo VALUES (4248340, 53, 6);
+INSERT INTO discoveryinfo VALUES (4248340, 53, 10);
INSERT INTO discoveryinfo VALUES (4248346, 53, 10);
INSERT INTO discoveryinfo VALUES (4248351, 53, 10);
INSERT INTO discoveryinfo VALUES (4248359, 53, 11);
@@ -3948,63 +3359,13 @@ INSERT INTO discoveryinfo VALUES (4248890, 53, 21);
INSERT INTO discoveryinfo VALUES (4248892, 53, 22);
INSERT INTO discoveryinfo VALUES (4249639, 53, 1);
INSERT INTO discoveryinfo VALUES (4249643, 53, 1);
-INSERT INTO discoveryinfo VALUES (4248922, 53, 1);
-INSERT INTO discoveryinfo VALUES (4248924, 53, 1);
-INSERT INTO discoveryinfo VALUES (4248926, 53, 1);
-INSERT INTO discoveryinfo VALUES (4248931, 53, 1);
-INSERT INTO discoveryinfo VALUES (4248933, 53, 1);
-INSERT INTO discoveryinfo VALUES (4248935, 53, 1);
-INSERT INTO discoveryinfo VALUES (4248936, 53, 1);
-INSERT INTO discoveryinfo VALUES (4248942, 53, 1);
-INSERT INTO discoveryinfo VALUES (4248943, 53, 1);
-INSERT INTO discoveryinfo VALUES (4248947, 53, 1);
-INSERT INTO discoveryinfo VALUES (4248950, 53, 1);
-INSERT INTO discoveryinfo VALUES (4248958, 53, 2);
-INSERT INTO discoveryinfo VALUES (4248965, 53, 3);
-INSERT INTO discoveryinfo VALUES (4248968, 53, 3);
-INSERT INTO discoveryinfo VALUES (4248971, 53, 3);
-INSERT INTO discoveryinfo VALUES (4248972, 53, 4);
-INSERT INTO discoveryinfo VALUES (4248975, 53, 4);
-INSERT INTO discoveryinfo VALUES (4248976, 53, 4);
-INSERT INTO discoveryinfo VALUES (4248982, 53, 4);
-INSERT INTO discoveryinfo VALUES (4248988, 53, 4);
-INSERT INTO discoveryinfo VALUES (4249002, 53, 5);
-INSERT INTO discoveryinfo VALUES (4249008, 53, 5);
-INSERT INTO discoveryinfo VALUES (4249024, 53, 7);
-INSERT INTO discoveryinfo VALUES (4249027, 53, 7);
-INSERT INTO discoveryinfo VALUES (4249028, 53, 7);
-INSERT INTO discoveryinfo VALUES (4249029, 53, 9);
-INSERT INTO discoveryinfo VALUES (4249031, 53, 9);
-INSERT INTO discoveryinfo VALUES (4249037, 53, 9);
-INSERT INTO discoveryinfo VALUES (4249038, 53, 9);
-INSERT INTO discoveryinfo VALUES (4249041, 53, 9);
-INSERT INTO discoveryinfo VALUES (4249047, 53, 8);
-INSERT INTO discoveryinfo VALUES (4249060, 53, 19);
-INSERT INTO discoveryinfo VALUES (4249068, 53, 19);
-INSERT INTO discoveryinfo VALUES (4249070, 53, 18);
-INSERT INTO discoveryinfo VALUES (4249075, 53, 18);
-INSERT INTO discoveryinfo VALUES (4249078, 53, 16);
-INSERT INTO discoveryinfo VALUES (4249084, 53, 16);
-INSERT INTO discoveryinfo VALUES (4249089, 53, 16);
-INSERT INTO discoveryinfo VALUES (4249092, 53, 20);
-INSERT INTO discoveryinfo VALUES (4249093, 53, 20);
-INSERT INTO discoveryinfo VALUES (4249094, 53, 20);
-INSERT INTO discoveryinfo VALUES (4249095, 53, 20);
-INSERT INTO discoveryinfo VALUES (4249565, 53, 10);
-INSERT INTO discoveryinfo VALUES (4249567, 53, 13);
-INSERT INTO discoveryinfo VALUES (4249569, 53, 12);
-INSERT INTO discoveryinfo VALUES (4249570, 53, 12);
-INSERT INTO discoveryinfo VALUES (4249572, 53, 12);
-INSERT INTO discoveryinfo VALUES (4249573, 53, 12);
-INSERT INTO discoveryinfo VALUES (4249574, 53, 12);
-INSERT INTO discoveryinfo VALUES (4249577, 53, 12);
-INSERT INTO discoveryinfo VALUES (4249587, 53, 12);
-INSERT INTO discoveryinfo VALUES (4249589, 53, 12);
-INSERT INTO discoveryinfo VALUES (4249605, 53, 15);
-INSERT INTO discoveryinfo VALUES (4249617, 53, 14);
-INSERT INTO discoveryinfo VALUES (4251428, 53, 4);
-INSERT INTO discoveryinfo VALUES (4332767, 53, 12);
-INSERT INTO discoveryinfo VALUES (4332770, 53, 12);
+INSERT INTO discoveryinfo VALUES (4238979, 50, 1);
+INSERT INTO discoveryinfo VALUES (4238984, 50, 1);
+INSERT INTO discoveryinfo VALUES (4238985, 50, 2);
+INSERT INTO discoveryinfo VALUES (4238987, 50, 3);
+INSERT INTO discoveryinfo VALUES (4238989, 50, 4);
+INSERT INTO discoveryinfo VALUES (4238990, 50, 4);
+INSERT INTO discoveryinfo VALUES (4238991, 50, 5);
INSERT INTO discoveryinfo VALUES (4238993, 86, 6);
INSERT INTO discoveryinfo VALUES (4238994, 86, 7);
INSERT INTO discoveryinfo VALUES (4238996, 86, 7);
@@ -4030,14 +3391,6 @@ INSERT INTO discoveryinfo VALUES (4313968, 38, 7);
INSERT INTO discoveryinfo VALUES (4313971, 38, 8);
INSERT INTO discoveryinfo VALUES (4313970, 38, 9);
INSERT INTO discoveryinfo VALUES (4235312, 38, 10);
-INSERT INTO discoveryinfo VALUES (4237474, 38, 1);
-INSERT INTO discoveryinfo VALUES (4237484, 38, 3);
-INSERT INTO discoveryinfo VALUES (4237485, 38, 4);
-INSERT INTO discoveryinfo VALUES (4262476, 38, 6);
-INSERT INTO discoveryinfo VALUES (4262477, 38, 6);
-INSERT INTO discoveryinfo VALUES (4262478, 38, 6);
-INSERT INTO discoveryinfo VALUES (4237487, 38, 8);
-INSERT INTO discoveryinfo VALUES (4237488, 38, 10);
INSERT INTO discoveryinfo VALUES (5759673, 243, 1);
INSERT INTO discoveryinfo VALUES (5868146, 243, 2);
INSERT INTO discoveryinfo VALUES (5910387, 243, 2);
@@ -4049,7 +3402,7 @@ INSERT INTO discoveryinfo VALUES (5759692, 243, 6);
INSERT INTO discoveryinfo VALUES (5759696, 243, 7);
INSERT INTO discoveryinfo VALUES (5868156, 243, 8);
INSERT INTO discoveryinfo VALUES (5868159, 243, 9);
-INSERT INTO discoveryinfo VALUES (5759698, 243, 9);
+INSERT INTO discoveryinfo VALUES (5759698, 243, 10);
INSERT INTO discoveryinfo VALUES (5759701, 243, 11);
INSERT INTO discoveryinfo VALUES (5759702, 243, 12);
INSERT INTO discoveryinfo VALUES (5759705, 243, 12);
@@ -4057,43 +3410,41 @@ INSERT INTO discoveryinfo VALUES (5868162, 243, 13);
INSERT INTO discoveryinfo VALUES (5759706, 243, 14);
INSERT INTO discoveryinfo VALUES (5759708, 243, 14);
INSERT INTO discoveryinfo VALUES (5868163, 243, 15);
-INSERT INTO discoveryinfo VALUES (5762435, 243, 4);
-INSERT INTO discoveryinfo VALUES (5762437, 243, 8);
-INSERT INTO discoveryinfo VALUES (5762441, 243, 14);
-INSERT INTO discoveryinfo VALUES (5953590, 248, 3);
-INSERT INTO discoveryinfo VALUES (5953591, 248, 1);
-INSERT INTO discoveryinfo VALUES (5953592, 248, 3);
-INSERT INTO discoveryinfo VALUES (5963044, 248, 3);
-INSERT INTO discoveryinfo VALUES (5878769, 248, 1);
-INSERT INTO discoveryinfo VALUES (5908839, 248, 1);
-INSERT INTO discoveryinfo VALUES (5908841, 248, 2);
-INSERT INTO discoveryinfo VALUES (5908844, 248, 3);
-INSERT INTO discoveryinfo VALUES (5908846, 248, 3);
-INSERT INTO discoveryinfo VALUES (5908848, 248, 3);
-INSERT INTO discoveryinfo VALUES (5908850, 248, 4);
-INSERT INTO discoveryinfo VALUES (5908851, 248, 5);
-INSERT INTO discoveryinfo VALUES (5908859, 248, 6);
-INSERT INTO discoveryinfo VALUES (5908863, 248, 6);
-INSERT INTO discoveryinfo VALUES (5908868, 248, 6);
-INSERT INTO discoveryinfo VALUES (5908869, 248, 6);
-INSERT INTO discoveryinfo VALUES (5909118, 248, 2);
-INSERT INTO discoveryinfo VALUES (5909356, 248, 5);
-INSERT INTO discoveryinfo VALUES (5909364, 248, 1);
-INSERT INTO discoveryinfo VALUES (5909385, 248, 1);
-INSERT INTO discoveryinfo VALUES (5927843, 248, 1);
-INSERT INTO discoveryinfo VALUES (5927850, 248, 3);
-INSERT INTO discoveryinfo VALUES (5927869, 248, 5);
-INSERT INTO discoveryinfo VALUES (5927903, 248, 1);
-INSERT INTO discoveryinfo VALUES (5927907, 248, 1);
-INSERT INTO discoveryinfo VALUES (6382781, 313, 11);
-INSERT INTO discoveryinfo VALUES (6382782, 313, 11);
-INSERT INTO discoveryinfo VALUES (6402356, 313, 6);
-INSERT INTO discoveryinfo VALUES (6402703, 313, 11);
-INSERT INTO discoveryinfo VALUES (6402704, 313, 11);
-INSERT INTO discoveryinfo VALUES (6402705, 313, 11);
-INSERT INTO discoveryinfo VALUES (6402771, 313, 11);
-INSERT INTO discoveryinfo VALUES (6515981, 313, 11);
-INSERT INTO discoveryinfo VALUES (6515982, 313, 11);
+INSERT INTO discoveryinfo VALUES (6402350, 313, 1);
+INSERT INTO discoveryinfo VALUES (6402351, 313, 1);
+INSERT INTO discoveryinfo VALUES (6402352, 313, 2);
+INSERT INTO discoveryinfo VALUES (6402354, 313, 2);
+INSERT INTO discoveryinfo VALUES (6402353, 313, 3);
+INSERT INTO discoveryinfo VALUES (6402355, 313, 4);
+INSERT INTO discoveryinfo VALUES (6402356, 313, 4);
+INSERT INTO discoveryinfo VALUES (6402690, 313, 5);
+INSERT INTO discoveryinfo VALUES (6402693, 313, 6);
+INSERT INTO discoveryinfo VALUES (6402695, 313, 6);
+INSERT INTO discoveryinfo VALUES (6402696, 313, 6);
+INSERT INTO discoveryinfo VALUES (6402697, 313, 6);
+INSERT INTO discoveryinfo VALUES (6402700, 313, 6);
+INSERT INTO discoveryinfo VALUES (6402701, 313, 7);
+INSERT INTO discoveryinfo VALUES (6402703, 313, 7);
+INSERT INTO discoveryinfo VALUES (6402704, 313, 8);
+INSERT INTO discoveryinfo VALUES (6402705, 313, 8);
+INSERT INTO discoveryinfo VALUES (6402771, 313, 8);
+INSERT INTO discoveryinfo VALUES (6402751, 313, 9);
+INSERT INTO discoveryinfo VALUES (6402773, 313, 9);
+INSERT INTO discoveryinfo VALUES (6402774, 313, 9);
+INSERT INTO discoveryinfo VALUES (6515981, 313, 9);
+INSERT INTO discoveryinfo VALUES (6515982, 313, 9);
+INSERT INTO discoveryinfo VALUES (6402775, 313, 10);
+INSERT INTO discoveryinfo VALUES (6402776, 313, 11);
+INSERT INTO discoveryinfo VALUES (6402777, 313, 11);
+INSERT INTO discoveryinfo VALUES (6402779, 313, 11);
+INSERT INTO discoveryinfo VALUES (6403197, 313, 11);
+INSERT INTO discoveryinfo VALUES (6402783, 313, 12);
+INSERT INTO discoveryinfo VALUES (6402785, 313, 12);
+INSERT INTO discoveryinfo VALUES (6402786, 313, 12);
+INSERT INTO discoveryinfo VALUES (6403205, 313, 12);
+INSERT INTO discoveryinfo VALUES (6402788, 313, 13);
+INSERT INTO discoveryinfo VALUES (6534361, 313, 13);
+INSERT INTO discoveryinfo VALUES (6402789, 313, 14);
INSERT INTO discoveryinfo VALUES (5925606, 211, 1);
INSERT INTO discoveryinfo VALUES (5925609, 211, 1);
INSERT INTO discoveryinfo VALUES (5925610, 211, 1);
@@ -4199,7 +3550,7 @@ INSERT INTO discoveryinfo VALUES (5926158, 211, 15);
INSERT INTO discoveryinfo VALUES (5926160, 211, 15);
INSERT INTO discoveryinfo VALUES (5926161, 211, 15);
INSERT INTO discoveryinfo VALUES (5926162, 211, 15);
-INSERT INTO discoveryinfo VALUES (5926163, 211, 6);
+INSERT INTO discoveryinfo VALUES (5926163, 211, 15);
INSERT INTO discoveryinfo VALUES (5926164, 211, 15);
INSERT INTO discoveryinfo VALUES (5926563, 211, 22);
INSERT INTO discoveryinfo VALUES (5926566, 211, 22);
@@ -4261,106 +3612,68 @@ INSERT INTO discoveryinfo VALUES (5926757, 211, 25);
INSERT INTO discoveryinfo VALUES (5926758, 211, 25);
INSERT INTO discoveryinfo VALUES (5926759, 211, 29);
INSERT INTO discoveryinfo VALUES (5926760, 211, 29);
-INSERT INTO discoveryinfo VALUES (5937680, 211, 22);
-INSERT INTO discoveryinfo VALUES (5937681, 211, 28);
-INSERT INTO discoveryinfo VALUES (5937682, 211, 26);
-INSERT INTO discoveryinfo VALUES (5937678, 211, 21);
-INSERT INTO discoveryinfo VALUES (5937679, 211, 15);
-INSERT INTO discoveryinfo VALUES (5937665, 211, 8);
-INSERT INTO discoveryinfo VALUES (5937688, 211, 12);
-INSERT INTO discoveryinfo VALUES (5937692, 211, 12);
-INSERT INTO discoveryinfo VALUES (5937687, 211, 6);
-INSERT INTO discoveryinfo VALUES (5937685, 211, 12);
-INSERT INTO discoveryinfo VALUES (5937686, 211, 12);
-INSERT INTO discoveryinfo VALUES (5937667, 211, 15);
-INSERT INTO discoveryinfo VALUES (5937672, 211, 12);
-INSERT INTO discoveryinfo VALUES (5937670, 211, 1);
-INSERT INTO discoveryinfo VALUES (5937668, 211, 3);
-INSERT INTO discoveryinfo VALUES (5937669, 211, 2);
-INSERT INTO discoveryinfo VALUES (5937674, 211, 12);
-INSERT INTO discoveryinfo VALUES (5937666, 211, 9);
-INSERT INTO discoveryinfo VALUES (5937673, 211, 12);
-INSERT INTO discoveryinfo VALUES (5937676, 211, 20);
-INSERT INTO discoveryinfo VALUES (5937689, 211, 20);
-INSERT INTO discoveryinfo VALUES (5937690, 211, 2);
-INSERT INTO discoveryinfo VALUES (5937691, 211, 20);
-INSERT INTO discoveryinfo VALUES (5937675, 211, 16);
-INSERT INTO discoveryinfo VALUES (5937677, 211, 17);
-INSERT INTO discoveryinfo VALUES (5937671, 211, 18);
-INSERT INTO discoveryinfo VALUES (5937684, 211, 16);
-INSERT INTO discoveryinfo VALUES (5937683, 211, 2);
-INSERT INTO discoveryinfo VALUES (5909746, 211, 1);
-INSERT INTO discoveryinfo VALUES (5909768, 211, 1);
-INSERT INTO discoveryinfo VALUES (5909769, 211, 1);
-INSERT INTO discoveryinfo VALUES (5909770, 211, 2);
-INSERT INTO discoveryinfo VALUES (5909773, 211, 1);
-INSERT INTO discoveryinfo VALUES (5909778, 211, 1);
-INSERT INTO discoveryinfo VALUES (5915489, 211, 3);
-INSERT INTO discoveryinfo VALUES (5915512, 211, 3);
-INSERT INTO discoveryinfo VALUES (5915513, 211, 15);
-INSERT INTO discoveryinfo VALUES (5915517, 211, 3);
-INSERT INTO discoveryinfo VALUES (5915539, 211, 15);
-INSERT INTO discoveryinfo VALUES (5915553, 211, 6);
-INSERT INTO discoveryinfo VALUES (5915580, 211, 5);
-INSERT INTO discoveryinfo VALUES (5915598, 211, 4);
-INSERT INTO discoveryinfo VALUES (5915620, 211, 4);
-INSERT INTO discoveryinfo VALUES (5915631, 211, 7);
-INSERT INTO discoveryinfo VALUES (5915632, 211, 7);
-INSERT INTO discoveryinfo VALUES (5915635, 211, 7);
-INSERT INTO discoveryinfo VALUES (5915734, 211, 14);
-INSERT INTO discoveryinfo VALUES (5915736, 211, 14);
-INSERT INTO discoveryinfo VALUES (5915737, 211, 14);
-INSERT INTO discoveryinfo VALUES (5915739, 211, 14);
-INSERT INTO discoveryinfo VALUES (5915740, 211, 14);
-INSERT INTO discoveryinfo VALUES (5915742, 211, 14);
-INSERT INTO discoveryinfo VALUES (5917285, 211, 11);
-INSERT INTO discoveryinfo VALUES (5917286, 211, 11);
-INSERT INTO discoveryinfo VALUES (5917287, 211, 11);
-INSERT INTO discoveryinfo VALUES (5917288, 211, 11);
-INSERT INTO discoveryinfo VALUES (5917289, 211, 11);
-INSERT INTO discoveryinfo VALUES (5917290, 211, 11);
-INSERT INTO discoveryinfo VALUES (5917292, 211, 11);
-INSERT INTO discoveryinfo VALUES (5917294, 211, 11);
-INSERT INTO discoveryinfo VALUES (5917313, 211, 11);
-INSERT INTO discoveryinfo VALUES (5917314, 211, 11);
-INSERT INTO discoveryinfo VALUES (5917315, 211, 28);
-INSERT INTO discoveryinfo VALUES (5917318, 211, 28);
-INSERT INTO discoveryinfo VALUES (5917319, 211, 28);
-INSERT INTO discoveryinfo VALUES (5917320, 211, 28);
-INSERT INTO discoveryinfo VALUES (5917322, 211, 29);
-INSERT INTO discoveryinfo VALUES (5917323, 211, 29);
-INSERT INTO discoveryinfo VALUES (5917330, 211, 27);
-INSERT INTO discoveryinfo VALUES (5917360, 211, 17);
-INSERT INTO discoveryinfo VALUES (5917362, 211, 18);
-INSERT INTO discoveryinfo VALUES (5917363, 211, 18);
-INSERT INTO discoveryinfo VALUES (5917364, 211, 18);
-INSERT INTO discoveryinfo VALUES (5934964, 211, 21);
-INSERT INTO discoveryinfo VALUES (5934965, 211, 21);
-INSERT INTO discoveryinfo VALUES (5934961, 211, 21);
-INSERT INTO discoveryinfo VALUES (5934962, 211, 21);
-INSERT INTO discoveryinfo VALUES (5915630, 211, 7);
-INSERT INTO discoveryinfo VALUES (5937626, 211, 7);
-INSERT INTO discoveryinfo VALUES (5917284, 211, 13);
-INSERT INTO discoveryinfo VALUES (5937643, 211, 11);
-INSERT INTO discoveryinfo VALUES (5937644, 211, 27);
-INSERT INTO discoveryinfo VALUES (5917338, 211, 24);
-INSERT INTO discoveryinfo VALUES (5917350, 211, 24);
-INSERT INTO discoveryinfo VALUES (5937659, 211, 24);
-INSERT INTO discoveryinfo VALUES (5937660, 211, 24);
-INSERT INTO discoveryinfo VALUES (5937661, 211, 24);
-INSERT INTO discoveryinfo VALUES (5937662, 211, 15);
-INSERT INTO discoveryinfo VALUES (5937663, 211, 15);
-INSERT INTO discoveryinfo VALUES (5960797, 211, 14);
-INSERT INTO discoveryinfo VALUES (5960798, 211, 28);
-INSERT INTO discoveryinfo VALUES (5960799, 211, 28);
-INSERT INTO discoveryinfo VALUES (5960800, 211, 14);
-INSERT INTO discoveryinfo VALUES (5960801, 211, 13);
-INSERT INTO discoveryinfo VALUES (5960802, 211, 14);
-INSERT INTO discoveryinfo VALUES (5960803, 211, 12);
-INSERT INTO discoveryinfo VALUES (5960805, 211, 11);
-INSERT INTO discoveryinfo VALUES (5960806, 211, 11);
-INSERT INTO discoveryinfo VALUES (5960807, 211, 10);
-INSERT INTO discoveryinfo VALUES (5896017, 211, 15);
+INSERT INTO discoveryinfo VALUES (4294198, 57, 2);
+INSERT INTO discoveryinfo VALUES (4294203, 57, 1);
+INSERT INTO discoveryinfo VALUES (4294216, 57, 3);
+INSERT INTO discoveryinfo VALUES (4294219, 57, 4);
+INSERT INTO discoveryinfo VALUES (4294220, 57, 6);
+INSERT INTO discoveryinfo VALUES (4294221, 57, 7);
+INSERT INTO discoveryinfo VALUES (4294222, 57, 7);
+INSERT INTO discoveryinfo VALUES (4294225, 57, 3);
+INSERT INTO discoveryinfo VALUES (4325261, 57, 7);
+INSERT INTO discoveryinfo VALUES (4325262, 57, 7);
+INSERT INTO discoveryinfo VALUES (4325263, 57, 7);
+INSERT INTO discoveryinfo VALUES (4325264, 57, 4);
+INSERT INTO discoveryinfo VALUES (4325265, 57, 4);
+INSERT INTO discoveryinfo VALUES (4325266, 57, 5);
+INSERT INTO discoveryinfo VALUES (4325267, 57, 5);
+INSERT INTO discoveryinfo VALUES (4325268, 57, 5);
+INSERT INTO discoveryinfo VALUES (4325269, 57, 5);
+INSERT INTO discoveryinfo VALUES (4325270, 57, 7);
+INSERT INTO discoveryinfo VALUES (4325271, 57, 5);
+INSERT INTO discoveryinfo VALUES (4325273, 57, 5);
+INSERT INTO discoveryinfo VALUES (4325274, 57, 5);
+INSERT INTO discoveryinfo VALUES (4325275, 57, 5);
+INSERT INTO discoveryinfo VALUES (4325278, 57, 6);
+INSERT INTO discoveryinfo VALUES (4334980, 57, 2);
+INSERT INTO discoveryinfo VALUES (4374752, 57, 7);
+INSERT INTO discoveryinfo VALUES (4294227, 58, 1);
+INSERT INTO discoveryinfo VALUES (4294229, 58, 1);
+INSERT INTO discoveryinfo VALUES (4294230, 58, 2);
+INSERT INTO discoveryinfo VALUES (4294232, 58, 1);
+INSERT INTO discoveryinfo VALUES (4294236, 58, 1);
+INSERT INTO discoveryinfo VALUES (4294773, 58, 1);
+INSERT INTO discoveryinfo VALUES (4294776, 58, 1);
+INSERT INTO discoveryinfo VALUES (4294778, 58, 1);
+INSERT INTO discoveryinfo VALUES (4294779, 58, 1);
+INSERT INTO discoveryinfo VALUES (4294781, 58, 1);
+INSERT INTO discoveryinfo VALUES (4294784, 58, 1);
+INSERT INTO discoveryinfo VALUES (4294785, 58, 1);
+INSERT INTO discoveryinfo VALUES (4335450, 58, 1);
+INSERT INTO discoveryinfo VALUES (3796099, 62, 1);
+INSERT INTO discoveryinfo VALUES (3796125, 63, 2);
+INSERT INTO discoveryinfo VALUES (3796126, 64, 3);
+INSERT INTO discoveryinfo VALUES (4321786, 62, 1);
+INSERT INTO discoveryinfo VALUES (4321788, 62, 1);
+INSERT INTO discoveryinfo VALUES (4321790, 62, 1);
+INSERT INTO discoveryinfo VALUES (4321791, 62, 1);
+INSERT INTO discoveryinfo VALUES (4321794, 63, 2);
+INSERT INTO discoveryinfo VALUES (4321796, 63, 2);
+INSERT INTO discoveryinfo VALUES (4321797, 63, 2);
+INSERT INTO discoveryinfo VALUES (4321798, 63, 2);
+INSERT INTO discoveryinfo VALUES (4321799, 63, 2);
+INSERT INTO discoveryinfo VALUES (4321800, 64, 3);
+INSERT INTO discoveryinfo VALUES (4321801, 64, 3);
+INSERT INTO discoveryinfo VALUES (4321802, 64, 3);
+INSERT INTO discoveryinfo VALUES (4295033, 60, 1);
+INSERT INTO discoveryinfo VALUES (4295034, 60, 1);
+INSERT INTO discoveryinfo VALUES (4295037, 60, 1);
+INSERT INTO discoveryinfo VALUES (4295038, 60, 2);
+INSERT INTO discoveryinfo VALUES (4295039, 60, 2);
+INSERT INTO discoveryinfo VALUES (4295040, 60, 2);
+INSERT INTO discoveryinfo VALUES (4295041, 60, 2);
+INSERT INTO discoveryinfo VALUES (4325280, 60, 3);
+INSERT INTO discoveryinfo VALUES (4329907, 1, 1);
INSERT INTO discoveryinfo VALUES (4091012, 31, 1);
INSERT INTO discoveryinfo VALUES (4091008, 31, 1);
INSERT INTO discoveryinfo VALUES (4092388, 31, 1);
@@ -4383,10 +3696,8 @@ INSERT INTO discoveryinfo VALUES (4092439, 31, 10);
INSERT INTO discoveryinfo VALUES (4092440, 31, 10);
INSERT INTO discoveryinfo VALUES (4092444, 31, 11);
INSERT INTO discoveryinfo VALUES (4092449, 31, 11);
-INSERT INTO discoveryinfo VALUES (4092534, 31, 1);
-INSERT INTO discoveryinfo VALUES (4092535, 31, 1);
-INSERT INTO discoveryinfo VALUES (4092536, 31, 2);
-INSERT INTO discoveryinfo VALUES (4092537, 31, 2);
+INSERT INTO discoveryinfo VALUES (4092536, 31, 1);
+INSERT INTO discoveryinfo VALUES (4092537, 31, 1);
INSERT INTO discoveryinfo VALUES (4092538, 31, 3);
INSERT INTO discoveryinfo VALUES (4092539, 31, 3);
INSERT INTO discoveryinfo VALUES (4092540, 31, 5);
@@ -4396,10 +3707,9 @@ INSERT INTO discoveryinfo VALUES (4092543, 31, 7);
INSERT INTO discoveryinfo VALUES (4092544, 31, 8);
INSERT INTO discoveryinfo VALUES (4092545, 31, 8);
INSERT INTO discoveryinfo VALUES (4092546, 31, 9);
-INSERT INTO discoveryinfo VALUES (4092547, 31, 10);
-INSERT INTO discoveryinfo VALUES (4092551, 31, 10);
-INSERT INTO discoveryinfo VALUES (4092548, 31, 11);
-INSERT INTO discoveryinfo VALUES (4103415, 31, 4);
+INSERT INTO discoveryinfo VALUES (4092547, 31, 11);
+INSERT INTO discoveryinfo VALUES (4092551, 31, 11);
+INSERT INTO discoveryinfo VALUES (4092548, 31, 13);
INSERT INTO discoveryinfo VALUES (4121883, 45, 1);
INSERT INTO discoveryinfo VALUES (4121897, 45, 2);
INSERT INTO discoveryinfo VALUES (4121909, 45, 3);
@@ -4427,15 +3737,6 @@ INSERT INTO discoveryinfo VALUES (4127126, 45, 8);
INSERT INTO discoveryinfo VALUES (4127132, 45, 9);
INSERT INTO discoveryinfo VALUES (4127137, 45, 12);
INSERT INTO discoveryinfo VALUES (4127141, 45, 12);
-INSERT INTO discoveryinfo VALUES (4126375, 45, 2);
-INSERT INTO discoveryinfo VALUES (4126377, 45, 3);
-INSERT INTO discoveryinfo VALUES (4126378, 45, 7);
-INSERT INTO discoveryinfo VALUES (4126383, 45, 11);
-INSERT INTO discoveryinfo VALUES (4126384, 45, 11);
-INSERT INTO discoveryinfo VALUES (4126386, 45, 11);
-INSERT INTO discoveryinfo VALUES (4126394, 45, 15);
-INSERT INTO discoveryinfo VALUES (4241928, 45, 12);
-INSERT INTO discoveryinfo VALUES (4242048, 45, 7);
INSERT INTO discoveryinfo VALUES (4230667, 32, 1);
INSERT INTO discoveryinfo VALUES (4230669, 32, 2);
INSERT INTO discoveryinfo VALUES (4230670, 32, 3);
@@ -4448,48 +3749,77 @@ INSERT INTO discoveryinfo VALUES (4230675, 32, 6);
INSERT INTO discoveryinfo VALUES (4230676, 32, 7);
INSERT INTO discoveryinfo VALUES (4313898, 32, 8);
INSERT INTO discoveryinfo VALUES (4230677, 32, 9);
-INSERT INTO discoveryinfo VALUES (4230690, 32, 1);
-INSERT INTO discoveryinfo VALUES (4230682, 32, 4);
-INSERT INTO discoveryinfo VALUES (4230684, 32, 6);
-INSERT INTO discoveryinfo VALUES (4230685, 32, 6);
-INSERT INTO discoveryinfo VALUES (4230686, 32, 6);
-INSERT INTO discoveryinfo VALUES (4230687, 32, 7);
-INSERT INTO discoveryinfo VALUES (4230689, 32, 9);
-INSERT INTO discoveryinfo VALUES (4395362, 134, 12);
-INSERT INTO discoveryinfo VALUES (4395364, 134, 12);
-INSERT INTO discoveryinfo VALUES (4395366, 134, 12);
-INSERT INTO discoveryinfo VALUES (4395368, 134, 12);
-INSERT INTO discoveryinfo VALUES (4395369, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404413, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404417, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404426, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404431, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404432, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404434, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404435, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404439, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404440, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404442, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404445, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404446, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404448, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404449, 134, 12);
+INSERT INTO discoveryinfo VALUES (4395355, 108, 1);
+INSERT INTO discoveryinfo VALUES (4395358, 108, 1);
+INSERT INTO discoveryinfo VALUES (4395362, 108, 2);
+INSERT INTO discoveryinfo VALUES (4395364, 108, 2);
+INSERT INTO discoveryinfo VALUES (4395366, 108, 2);
+INSERT INTO discoveryinfo VALUES (4395368, 130, 3);
+INSERT INTO discoveryinfo VALUES (4395369, 130, 3);
+INSERT INTO discoveryinfo VALUES (4404413, 130, 3);
+INSERT INTO discoveryinfo VALUES (4404417, 130, 3);
+INSERT INTO discoveryinfo VALUES (4404418, 130, 4);
+INSERT INTO discoveryinfo VALUES (4404421, 130, 5);
+INSERT INTO discoveryinfo VALUES (4404422, 130, 5);
+INSERT INTO discoveryinfo VALUES (4404423, 130, 5);
+INSERT INTO discoveryinfo VALUES (4404424, 130, 6);
+INSERT INTO discoveryinfo VALUES (4404425, 130, 5);
+INSERT INTO discoveryinfo VALUES (4404426, 130, 7);
+INSERT INTO discoveryinfo VALUES (4404427, 130, 7);
+INSERT INTO discoveryinfo VALUES (4404431, 131, 8);
+INSERT INTO discoveryinfo VALUES (4404432, 131, 8);
+INSERT INTO discoveryinfo VALUES (4404433, 131, 9);
+INSERT INTO discoveryinfo VALUES (4404434, 131, 9);
+INSERT INTO discoveryinfo VALUES (4404435, 131, 9);
+INSERT INTO discoveryinfo VALUES (4404436, 132, 10);
+INSERT INTO discoveryinfo VALUES (4404437, 131, 9);
+INSERT INTO discoveryinfo VALUES (4404438, 132, 10);
+INSERT INTO discoveryinfo VALUES (4404439, 132, 10);
+INSERT INTO discoveryinfo VALUES (4404440, 132, 10);
+INSERT INTO discoveryinfo VALUES (4404441, 132, 10);
+INSERT INTO discoveryinfo VALUES (4404442, 132, 10);
+INSERT INTO discoveryinfo VALUES (4404445, 133, 11);
+INSERT INTO discoveryinfo VALUES (4404446, 133, 11);
+INSERT INTO discoveryinfo VALUES (4404447, 133, 11);
+INSERT INTO discoveryinfo VALUES (4404448, 133, 11);
+INSERT INTO discoveryinfo VALUES (4404449, 133, 11);
INSERT INTO discoveryinfo VALUES (4404450, 134, 12);
INSERT INTO discoveryinfo VALUES (4404451, 134, 12);
INSERT INTO discoveryinfo VALUES (4404452, 134, 12);
-INSERT INTO discoveryinfo VALUES (4404987, 134, 12);
-INSERT INTO discoveryinfo VALUES (4972550, 168, 1);
-INSERT INTO discoveryinfo VALUES (4972551, 168, 2);
-INSERT INTO discoveryinfo VALUES (4757557, 168, 4);
-INSERT INTO discoveryinfo VALUES (4757558, 168, 5);
-INSERT INTO discoveryinfo VALUES (4757560, 168, 5);
-INSERT INTO discoveryinfo VALUES (4757561, 168, 6);
-INSERT INTO discoveryinfo VALUES (4757562, 168, 7);
-INSERT INTO discoveryinfo VALUES (4757563, 168, 8);
-INSERT INTO discoveryinfo VALUES (4757565, 168, 9);
-INSERT INTO discoveryinfo VALUES (4757566, 168, 10);
-INSERT INTO discoveryinfo VALUES (4757569, 168, 11);
-INSERT INTO discoveryinfo VALUES (4757570, 168, 12);
+INSERT INTO discoveryinfo VALUES (4404458, 131, 9);
+INSERT INTO discoveryinfo VALUES (4404987, 130, 7);
+INSERT INTO discoveryinfo VALUES (4543794, 146, 3);
+INSERT INTO discoveryinfo VALUES (4543795, 146, 3);
+INSERT INTO discoveryinfo VALUES (4543796, 146, 4);
+INSERT INTO discoveryinfo VALUES (4543797, 146, 4);
+INSERT INTO discoveryinfo VALUES (4543798, 146, 5);
+INSERT INTO discoveryinfo VALUES (4543799, 146, 5);
+INSERT INTO discoveryinfo VALUES (4543800, 146, 5);
+INSERT INTO discoveryinfo VALUES (4543803, 146, 2);
+INSERT INTO discoveryinfo VALUES (4543804, 146, 2);
+INSERT INTO discoveryinfo VALUES (4543805, 146, 2);
+INSERT INTO discoveryinfo VALUES (4543810, 146, 7);
+INSERT INTO discoveryinfo VALUES (4543811, 146, 7);
+INSERT INTO discoveryinfo VALUES (4543812, 146, 7);
+INSERT INTO discoveryinfo VALUES (4543813, 146, 8);
+INSERT INTO discoveryinfo VALUES (4543814, 146, 8);
+INSERT INTO discoveryinfo VALUES (4543815, 146, 10);
+INSERT INTO discoveryinfo VALUES (4543818, 146, 1);
+INSERT INTO discoveryinfo VALUES (4543820, 146, 7);
+INSERT INTO discoveryinfo VALUES (4621662, 146, 9);
+INSERT INTO discoveryinfo VALUES (4621663, 146, 7);
+INSERT INTO discoveryinfo VALUES (4621664, 146, 8);
+INSERT INTO discoveryinfo VALUES (4621665, 146, 8);
+INSERT INTO discoveryinfo VALUES (4621666, 146, 6);
+INSERT INTO discoveryinfo VALUES (4621667, 146, 8);
+INSERT INTO discoveryinfo VALUES (4621668, 146, 8);
+INSERT INTO discoveryinfo VALUES (4621669, 146, 3);
+INSERT INTO discoveryinfo VALUES (4621670, 146, 9);
+INSERT INTO discoveryinfo VALUES (4621660, 146, 1);
+INSERT INTO discoveryinfo VALUES (4681139, 146, 1);
+INSERT INTO discoveryinfo VALUES (4681141, 146, 1);
+INSERT INTO discoveryinfo VALUES (4681142, 146, 1);
+INSERT INTO discoveryinfo VALUES (4681184, 146, 7);
INSERT INTO discoveryinfo VALUES (4768065, 169, 1);
INSERT INTO discoveryinfo VALUES (4768067, 169, 1);
INSERT INTO discoveryinfo VALUES (4982003, 169, 2);
@@ -4509,25 +3839,23 @@ INSERT INTO discoveryinfo VALUES (4768083, 169, 8);
INSERT INTO discoveryinfo VALUES (4768084, 169, 8);
INSERT INTO discoveryinfo VALUES (4768085, 169, 9);
INSERT INTO discoveryinfo VALUES (4768086, 169, 9);
-INSERT INTO discoveryinfo VALUES (4768087, 169, 1);
-INSERT INTO discoveryinfo VALUES (4768094, 169, 7);
-INSERT INTO discoveryinfo VALUES (4768099, 169, 6);
-INSERT INTO discoveryinfo VALUES (4768100, 169, 8);
-INSERT INTO discoveryinfo VALUES (4768101, 169, 8);
-INSERT INTO discoveryinfo VALUES (4768102, 169, 9);
-INSERT INTO discoveryinfo VALUES (4768103, 169, 8);
-INSERT INTO discoveryinfo VALUES (5018506, 169, 3);
-INSERT INTO discoveryinfo VALUES (5018517, 169, 5);
-INSERT INTO discoveryinfo VALUES (5018518, 169, 4);
-INSERT INTO discoveryinfo VALUES (5018519, 169, 5);
-INSERT INTO discoveryinfo VALUES (5018520, 169, 5);
-INSERT INTO discoveryinfo VALUES (5018524, 169, 7);
-INSERT INTO discoveryinfo VALUES (5018525, 169, 7);
-INSERT INTO discoveryinfo VALUES (5018526, 169, 9);
-INSERT INTO discoveryinfo VALUES (5018528, 169, 9);
-INSERT INTO discoveryinfo VALUES (5119555, 169, 3);
-INSERT INTO discoveryinfo VALUES (5119559, 169, 4);
-INSERT INTO discoveryinfo VALUES (5119560, 169, 3);
+INSERT INTO discoveryinfo VALUES (4768094, 169, 6);
+INSERT INTO discoveryinfo VALUES (4768099, 169, 9);
+INSERT INTO discoveryinfo VALUES (4768100, 169, 11);
+INSERT INTO discoveryinfo VALUES (4768101, 169, 11);
+INSERT INTO discoveryinfo VALUES (4768102, 169, 13);
+INSERT INTO discoveryinfo VALUES (5018506, 169, 1);
+INSERT INTO discoveryinfo VALUES (5018517, 169, 1);
+INSERT INTO discoveryinfo VALUES (5018518, 169, 1);
+INSERT INTO discoveryinfo VALUES (5018519, 169, 1);
+INSERT INTO discoveryinfo VALUES (5018520, 169, 1);
+INSERT INTO discoveryinfo VALUES (5018524, 169, 6);
+INSERT INTO discoveryinfo VALUES (5018525, 169, 6);
+INSERT INTO discoveryinfo VALUES (5018526, 169, 13);
+INSERT INTO discoveryinfo VALUES (5018528, 169, 13);
+INSERT INTO discoveryinfo VALUES (5119555, 169, 1);
+INSERT INTO discoveryinfo VALUES (5119559, 169, 1);
+INSERT INTO discoveryinfo VALUES (5119560, 169, 1);
INSERT INTO discoveryinfo VALUES (4898128, 188, 1);
INSERT INTO discoveryinfo VALUES (4898129, 188, 2);
INSERT INTO discoveryinfo VALUES (4898130, 188, 3);
@@ -4535,7 +3863,8 @@ INSERT INTO discoveryinfo VALUES (4898131, 188, 4);
INSERT INTO discoveryinfo VALUES (4898132, 188, 5);
INSERT INTO discoveryinfo VALUES (4898133, 188, 5);
INSERT INTO discoveryinfo VALUES (4898135, 188, 6);
-INSERT INTO discoveryinfo VALUES (5037564, 188, 7);
+INSERT INTO discoveryinfo VALUES (4898136, 188, 6);
+INSERT INTO discoveryinfo VALUES (5037564, 188, 6);
INSERT INTO discoveryinfo VALUES (4898137, 188, 7);
INSERT INTO discoveryinfo VALUES (5037550, 188, 7);
INSERT INTO discoveryinfo VALUES (5120376, 188, 7);
@@ -4545,11 +3874,6 @@ INSERT INTO discoveryinfo VALUES (5035251, 188, 10);
INSERT INTO discoveryinfo VALUES (5035254, 188, 10);
INSERT INTO discoveryinfo VALUES (5035252, 188, 10);
INSERT INTO discoveryinfo VALUES (5035263, 188, 11);
-INSERT INTO discoveryinfo VALUES (4898140, 188, 1);
-INSERT INTO discoveryinfo VALUES (4898141, 188, 4);
-INSERT INTO discoveryinfo VALUES (4898143, 188, 6);
-INSERT INTO discoveryinfo VALUES (4898145, 188, 7);
-INSERT INTO discoveryinfo VALUES (4898146, 188, 11);
INSERT INTO discoveryinfo VALUES (5964418, 262, 1);
INSERT INTO discoveryinfo VALUES (5964443, 262, 1);
INSERT INTO discoveryinfo VALUES (5964442, 262, 1);
@@ -4559,19 +3883,30 @@ INSERT INTO discoveryinfo VALUES (5964439, 262, 2);
INSERT INTO discoveryinfo VALUES (6032372, 262, 2);
INSERT INTO discoveryinfo VALUES (5964438, 262, 3);
INSERT INTO discoveryinfo VALUES (5964413, 262, 3);
-INSERT INTO discoveryinfo VALUES (5964412, 262, 3);
-INSERT INTO discoveryinfo VALUES (5964410, 262, 1);
-INSERT INTO discoveryinfo VALUES (5964409, 262, 1);
-INSERT INTO discoveryinfo VALUES (5964448, 262, 1);
-INSERT INTO discoveryinfo VALUES (5964449, 262, 1);
-INSERT INTO discoveryinfo VALUES (5964405, 262, 1);
-INSERT INTO discoveryinfo VALUES (5964404, 262, 3);
-INSERT INTO discoveryinfo VALUES (5964403, 262, 2);
-INSERT INTO discoveryinfo VALUES (5964401, 262, 3);
-INSERT INTO discoveryinfo VALUES (6030880, 262, 3);
-INSERT INTO discoveryinfo VALUES (5964394, 262, 1);
-INSERT INTO discoveryinfo VALUES (5964457, 262, 1);
-INSERT INTO discoveryinfo VALUES (5964417, 262, 3);
+INSERT INTO discoveryinfo VALUES (5964412, 263, 4);
+INSERT INTO discoveryinfo VALUES (5964410, 263, 5);
+INSERT INTO discoveryinfo VALUES (5964409, 263, 5);
+INSERT INTO discoveryinfo VALUES (5964445, 263, 5);
+INSERT INTO discoveryinfo VALUES (5964447, 263, 5);
+INSERT INTO discoveryinfo VALUES (5964448, 264, 6);
+INSERT INTO discoveryinfo VALUES (5964449, 264, 6);
+INSERT INTO discoveryinfo VALUES (5964405, 264, 6);
+INSERT INTO discoveryinfo VALUES (5964404, 264, 7);
+INSERT INTO discoveryinfo VALUES (5964403, 264, 7);
+INSERT INTO discoveryinfo VALUES (5964402, 264, 7);
+INSERT INTO discoveryinfo VALUES (5964401, 264, 8);
+INSERT INTO discoveryinfo VALUES (6030880, 265, 9);
+INSERT INTO discoveryinfo VALUES (5964394, 265, 9);
+INSERT INTO discoveryinfo VALUES (5964393, 265, 10);
+INSERT INTO discoveryinfo VALUES (5964450, 266, 11);
+INSERT INTO discoveryinfo VALUES (5964451, 266, 11);
+INSERT INTO discoveryinfo VALUES (5964452, 266, 12);
+INSERT INTO discoveryinfo VALUES (5964453, 266, 13);
+INSERT INTO discoveryinfo VALUES (5964454, 266, 14);
+INSERT INTO discoveryinfo VALUES (5964455, 266, 15);
+INSERT INTO discoveryinfo VALUES (5964457, 266, 11);
+INSERT INTO discoveryinfo VALUES (6050833, 266, 12);
+INSERT INTO discoveryinfo VALUES (5964417, 263, 4);
INSERT INTO discoveryinfo VALUES (6234179, 297, 1);
INSERT INTO discoveryinfo VALUES (6234180, 297, 2);
INSERT INTO discoveryinfo VALUES (6234181, 297, 3);
@@ -4588,15 +3923,6 @@ INSERT INTO discoveryinfo VALUES (6234191, 297, 11);
INSERT INTO discoveryinfo VALUES (6280057, 297, 2);
INSERT INTO discoveryinfo VALUES (6280060, 297, 3);
INSERT INTO discoveryinfo VALUES (6280251, 297, 12);
-INSERT INTO discoveryinfo VALUES (6280417, 297, 1);
-INSERT INTO discoveryinfo VALUES (6280436, 297, 3);
-INSERT INTO discoveryinfo VALUES (6280446, 297, 4);
-INSERT INTO discoveryinfo VALUES (6280447, 297, 5);
-INSERT INTO discoveryinfo VALUES (6280449, 297, 7);
-INSERT INTO discoveryinfo VALUES (6280451, 297, 5);
-INSERT INTO discoveryinfo VALUES (6280452, 297, 10);
-INSERT INTO discoveryinfo VALUES (6280453, 297, 12);
-INSERT INTO discoveryinfo VALUES (6421882, 297, 8);
INSERT INTO discoveryinfo VALUES (3975004, 15, 1);
INSERT INTO discoveryinfo VALUES (4161435, 15, 1);
INSERT INTO discoveryinfo VALUES (4242604, 15, 1);
@@ -4607,7 +3933,7 @@ INSERT INTO discoveryinfo VALUES (4161439, 15, 3);
INSERT INTO discoveryinfo VALUES (4161440, 15, 3);
INSERT INTO discoveryinfo VALUES (4161442, 15, 3);
INSERT INTO discoveryinfo VALUES (3975010, 15, 3);
-INSERT INTO discoveryinfo VALUES (3975011, 15, 3);
+INSERT INTO discoveryinfo VALUES (3975011, 15, 4);
INSERT INTO discoveryinfo VALUES (4161449, 15, 4);
INSERT INTO discoveryinfo VALUES (4161453, 15, 4);
INSERT INTO discoveryinfo VALUES (3975013, 15, 5);
@@ -4618,42 +3944,7 @@ INSERT INTO discoveryinfo VALUES (4161459, 15, 6);
INSERT INTO discoveryinfo VALUES (4161462, 15, 6);
INSERT INTO discoveryinfo VALUES (3975015, 15, 6);
INSERT INTO discoveryinfo VALUES (3975016, 15, 7);
-INSERT INTO discoveryinfo VALUES (3975127, 15, 1);
-INSERT INTO discoveryinfo VALUES (3975138, 15, 2);
-INSERT INTO discoveryinfo VALUES (3975183, 15, 3);
-INSERT INTO discoveryinfo VALUES (3975188, 15, 3);
-INSERT INTO discoveryinfo VALUES (3975191, 15, 3);
-INSERT INTO discoveryinfo VALUES (3975192, 15, 3);
-INSERT INTO discoveryinfo VALUES (3975196, 15, 4);
-INSERT INTO discoveryinfo VALUES (3975233, 15, 5);
-INSERT INTO discoveryinfo VALUES (3975242, 15, 5);
-INSERT INTO discoveryinfo VALUES (3975244, 15, 5);
-INSERT INTO discoveryinfo VALUES (3975249, 15, 6);
-INSERT INTO discoveryinfo VALUES (3975251, 15, 6);
-INSERT INTO discoveryinfo VALUES (3975256, 15, 5);
-INSERT INTO discoveryinfo VALUES (3975261, 15, 7);
-INSERT INTO discoveryinfo VALUES (3975267, 15, 6);
-INSERT INTO discoveryinfo VALUES (3975278, 15, 6);
-INSERT INTO discoveryinfo VALUES (3975282, 15, 6);
-INSERT INTO discoveryinfo VALUES (3975283, 15, 6);
-INSERT INTO discoveryinfo VALUES (3975285, 15, 6);
-INSERT INTO discoveryinfo VALUES (4236358, 15, 6);
INSERT INTO discoveryinfo VALUES (4242605, 15, 1);
-INSERT INTO discoveryinfo VALUES (3975131, 15, 4);
-INSERT INTO discoveryinfo VALUES (3975132, 15, 4);
-INSERT INTO discoveryinfo VALUES (3975135, 15, 3);
-INSERT INTO discoveryinfo VALUES (3975198, 15, 5);
-INSERT INTO discoveryinfo VALUES (3975202, 15, 4);
-INSERT INTO discoveryinfo VALUES (3975204, 15, 5);
-INSERT INTO discoveryinfo VALUES (3975205, 15, 5);
-INSERT INTO discoveryinfo VALUES (3975208, 15, 4);
-INSERT INTO discoveryinfo VALUES (3975212, 15, 5);
-INSERT INTO discoveryinfo VALUES (3975215, 15, 5);
-INSERT INTO discoveryinfo VALUES (3975217, 15, 4);
-INSERT INTO discoveryinfo VALUES (3975223, 15, 5);
-INSERT INTO discoveryinfo VALUES (3975229, 15, 5);
-INSERT INTO discoveryinfo VALUES (3975232, 15, 3);
-INSERT INTO discoveryinfo VALUES (3975272, 15, 6);
INSERT INTO discoveryinfo VALUES (3643234, 16, 1);
INSERT INTO discoveryinfo VALUES (3643236, 16, 1);
INSERT INTO discoveryinfo VALUES (3643414, 16, 2);
@@ -4662,9 +3953,9 @@ INSERT INTO discoveryinfo VALUES (3643483, 16, 2);
INSERT INTO discoveryinfo VALUES (3643457, 16, 3);
INSERT INTO discoveryinfo VALUES (4334728, 16, 3);
INSERT INTO discoveryinfo VALUES (3643485, 16, 3);
-INSERT INTO discoveryinfo VALUES (3643486, 16, 4);
-INSERT INTO discoveryinfo VALUES (3643487, 16, 5);
-INSERT INTO discoveryinfo VALUES (3643488, 16, 5);
+INSERT INTO discoveryinfo VALUES (3643486, 16, 3);
+INSERT INTO discoveryinfo VALUES (3643487, 16, 3);
+INSERT INTO discoveryinfo VALUES (3643488, 16, 3);
INSERT INTO discoveryinfo VALUES (3643489, 16, 4);
INSERT INTO discoveryinfo VALUES (3643490, 16, 5);
INSERT INTO discoveryinfo VALUES (3643491, 16, 6);
@@ -4684,60 +3975,6 @@ INSERT INTO discoveryinfo VALUES (3643503, 16, 10);
INSERT INTO discoveryinfo VALUES (3643504, 16, 10);
INSERT INTO discoveryinfo VALUES (3643505, 16, 10);
INSERT INTO discoveryinfo VALUES (4334730, 16, 7);
-INSERT INTO discoveryinfo VALUES (3643556, 16, 2);
-INSERT INTO discoveryinfo VALUES (3643588, 16, 3);
-INSERT INTO discoveryinfo VALUES (3643590, 16, 1);
-INSERT INTO discoveryinfo VALUES (3692933, 16, 1);
-INSERT INTO discoveryinfo VALUES (3643591, 16, 2);
-INSERT INTO discoveryinfo VALUES (3692941, 16, 7);
-INSERT INTO discoveryinfo VALUES (3692942, 16, 2);
-INSERT INTO discoveryinfo VALUES (3692943, 16, 7);
-INSERT INTO discoveryinfo VALUES (3692944, 16, 7);
-INSERT INTO discoveryinfo VALUES (3692948, 16, 2);
-INSERT INTO discoveryinfo VALUES (3643597, 16, 3);
-INSERT INTO discoveryinfo VALUES (3692961, 16, 3);
-INSERT INTO discoveryinfo VALUES (3692965, 16, 3);
-INSERT INTO discoveryinfo VALUES (3923782, 16, 3);
-INSERT INTO discoveryinfo VALUES (3923784, 16, 3);
-INSERT INTO discoveryinfo VALUES (3923785, 16, 3);
-INSERT INTO discoveryinfo VALUES (3923789, 16, 3);
-INSERT INTO discoveryinfo VALUES (3923790, 16, 3);
-INSERT INTO discoveryinfo VALUES (3643598, 16, 4);
-INSERT INTO discoveryinfo VALUES (3692973, 16, 4);
-INSERT INTO discoveryinfo VALUES (3692975, 16, 4);
-INSERT INTO discoveryinfo VALUES (3692976, 16, 4);
-INSERT INTO discoveryinfo VALUES (3692977, 16, 4);
-INSERT INTO discoveryinfo VALUES (3693075, 16, 4);
-INSERT INTO discoveryinfo VALUES (3693080, 16, 4);
-INSERT INTO discoveryinfo VALUES (3643599, 16, 6);
-INSERT INTO discoveryinfo VALUES (3693104, 16, 6);
-INSERT INTO discoveryinfo VALUES (3877041, 16, 5);
-INSERT INTO discoveryinfo VALUES (3643602, 16, 5);
-INSERT INTO discoveryinfo VALUES (3693126, 16, 5);
-INSERT INTO discoveryinfo VALUES (3693128, 16, 5);
-INSERT INTO discoveryinfo VALUES (3643603, 16, 7);
-INSERT INTO discoveryinfo VALUES (3693148, 16, 7);
-INSERT INTO discoveryinfo VALUES (3693159, 16, 7);
-INSERT INTO discoveryinfo VALUES (3693168, 16, 7);
-INSERT INTO discoveryinfo VALUES (3693169, 16, 7);
-INSERT INTO discoveryinfo VALUES (3643604, 16, 9);
-INSERT INTO discoveryinfo VALUES (3643605, 16, 8);
-INSERT INTO discoveryinfo VALUES (3643606, 16, 10);
-INSERT INTO discoveryinfo VALUES (3693181, 16, 10);
-INSERT INTO discoveryinfo VALUES (3693182, 16, 10);
-INSERT INTO discoveryinfo VALUES (3643607, 16, 8);
-INSERT INTO discoveryinfo VALUES (3693189, 16, 8);
-INSERT INTO discoveryinfo VALUES (3693190, 16, 8);
-INSERT INTO discoveryinfo VALUES (4175720, 16, 10);
-INSERT INTO discoveryinfo VALUES (4374678, 16, 7);
-INSERT INTO discoveryinfo VALUES (3861103, 16, 2);
-INSERT INTO discoveryinfo VALUES (3861106, 16, 2);
-INSERT INTO discoveryinfo VALUES (3861109, 16, 2);
-INSERT INTO discoveryinfo VALUES (3861111, 16, 2);
-INSERT INTO discoveryinfo VALUES (3861113, 16, 2);
-INSERT INTO discoveryinfo VALUES (3643589, 16, 2);
-INSERT INTO discoveryinfo VALUES (3692931, 16, 2);
-INSERT INTO discoveryinfo VALUES (3692932, 16, 2);
INSERT INTO discoveryinfo VALUES (4162133, 17, 1);
INSERT INTO discoveryinfo VALUES (4164735, 17, 1);
INSERT INTO discoveryinfo VALUES (4164742, 17, 1);
@@ -4745,9 +3982,11 @@ INSERT INTO discoveryinfo VALUES (4162141, 17, 2);
INSERT INTO discoveryinfo VALUES (4162142, 17, 3);
INSERT INTO discoveryinfo VALUES (4164739, 17, 3);
INSERT INTO discoveryinfo VALUES (4164740, 17, 3);
+INSERT INTO discoveryinfo VALUES (4164741, 17, 3);
INSERT INTO discoveryinfo VALUES (4162143, 17, 4);
INSERT INTO discoveryinfo VALUES (4164731, 17, 4);
INSERT INTO discoveryinfo VALUES (4164732, 17, 4);
+INSERT INTO discoveryinfo VALUES (4164733, 17, 4);
INSERT INTO discoveryinfo VALUES (4162144, 17, 5);
INSERT INTO discoveryinfo VALUES (4162145, 17, 6);
INSERT INTO discoveryinfo VALUES (4164620, 17, 6);
@@ -4764,36 +4003,6 @@ INSERT INTO discoveryinfo VALUES (4162153, 17, 12);
INSERT INTO discoveryinfo VALUES (4164611, 17, 12);
INSERT INTO discoveryinfo VALUES (4162155, 17, 13);
INSERT INTO discoveryinfo VALUES (4162154, 17, 14);
-INSERT INTO discoveryinfo VALUES (4162317, 17, 10);
-INSERT INTO discoveryinfo VALUES (4162318, 17, 7);
-INSERT INTO discoveryinfo VALUES (4162319, 17, 7);
-INSERT INTO discoveryinfo VALUES (4162320, 17, 8);
-INSERT INTO discoveryinfo VALUES (4162321, 17, 6);
-INSERT INTO discoveryinfo VALUES (4164693, 17, 6);
-INSERT INTO discoveryinfo VALUES (4162322, 17, 14);
-INSERT INTO discoveryinfo VALUES (4162323, 17, 4);
-INSERT INTO discoveryinfo VALUES (4162324, 17, 5);
-INSERT INTO discoveryinfo VALUES (4162325, 17, 2);
-INSERT INTO discoveryinfo VALUES (4162326, 17, 2);
-INSERT INTO discoveryinfo VALUES (4162329, 17, 1);
-INSERT INTO discoveryinfo VALUES (4164698, 17, 4);
-INSERT INTO discoveryinfo VALUES (4164699, 17, 4);
-INSERT INTO discoveryinfo VALUES (4164700, 17, 5);
-INSERT INTO discoveryinfo VALUES (4164701, 17, 5);
-INSERT INTO discoveryinfo VALUES (4164706, 17, 5);
-INSERT INTO discoveryinfo VALUES (4164707, 17, 5);
-INSERT INTO discoveryinfo VALUES (4164708, 17, 5);
-INSERT INTO discoveryinfo VALUES (4164715, 17, 2);
-INSERT INTO discoveryinfo VALUES (4164716, 17, 2);
-INSERT INTO discoveryinfo VALUES (4164723, 17, 1);
-INSERT INTO discoveryinfo VALUES (4164725, 17, 2);
-INSERT INTO discoveryinfo VALUES (4164727, 17, 2);
-INSERT INTO discoveryinfo VALUES (4164728, 17, 2);
-INSERT INTO discoveryinfo VALUES (4162328, 17, 2);
-INSERT INTO discoveryinfo VALUES (4200506, 17, 4);
-INSERT INTO discoveryinfo VALUES (4200508, 17, 2);
-INSERT INTO discoveryinfo VALUES (4242198, 17, 5);
-INSERT INTO discoveryinfo VALUES (5022926, 17, 8);
INSERT INTO discoveryinfo VALUES (4164843, 18, 1);
INSERT INTO discoveryinfo VALUES (4164858, 18, 1);
INSERT INTO discoveryinfo VALUES (4164859, 18, 1);
@@ -4830,57 +4039,7 @@ INSERT INTO discoveryinfo VALUES (4164957, 18, 18);
INSERT INTO discoveryinfo VALUES (4164958, 18, 19);
INSERT INTO discoveryinfo VALUES (4665752, 18, 11);
INSERT INTO discoveryinfo VALUES (4665756, 18, 11);
-INSERT INTO discoveryinfo VALUES (4164997, 18, 1);
-INSERT INTO discoveryinfo VALUES (4165000, 18, 1);
-INSERT INTO discoveryinfo VALUES (4165002, 18, 1);
-INSERT INTO discoveryinfo VALUES (4165004, 18, 1);
-INSERT INTO discoveryinfo VALUES (4165006, 18, 1);
-INSERT INTO discoveryinfo VALUES (4165007, 18, 1);
-INSERT INTO discoveryinfo VALUES (4165008, 18, 1);
-INSERT INTO discoveryinfo VALUES (4165009, 18, 1);
-INSERT INTO discoveryinfo VALUES (4165010, 18, 1);
-INSERT INTO discoveryinfo VALUES (4165011, 18, 1);
-INSERT INTO discoveryinfo VALUES (4165044, 18, 3);
-INSERT INTO discoveryinfo VALUES (4165045, 18, 3);
-INSERT INTO discoveryinfo VALUES (4165048, 18, 2);
-INSERT INTO discoveryinfo VALUES (4165049, 18, 2);
-INSERT INTO discoveryinfo VALUES (4165050, 18, 2);
-INSERT INTO discoveryinfo VALUES (4165051, 18, 2);
-INSERT INTO discoveryinfo VALUES (4165052, 18, 2);
-INSERT INTO discoveryinfo VALUES (4165053, 18, 2);
-INSERT INTO discoveryinfo VALUES (4165054, 18, 2);
-INSERT INTO discoveryinfo VALUES (4165055, 18, 2);
-INSERT INTO discoveryinfo VALUES (4165056, 18, 2);
-INSERT INTO discoveryinfo VALUES (4165057, 18, 3);
-INSERT INTO discoveryinfo VALUES (4165058, 18, 3);
-INSERT INTO discoveryinfo VALUES (4165059, 18, 3);
-INSERT INTO discoveryinfo VALUES (4165061, 18, 4);
-INSERT INTO discoveryinfo VALUES (4165062, 18, 4);
-INSERT INTO discoveryinfo VALUES (4165063, 18, 4);
-INSERT INTO discoveryinfo VALUES (4165064, 18, 4);
-INSERT INTO discoveryinfo VALUES (4165065, 18, 4);
-INSERT INTO discoveryinfo VALUES (4165066, 18, 4);
-INSERT INTO discoveryinfo VALUES (4165079, 18, 7);
-INSERT INTO discoveryinfo VALUES (4165089, 18, 7);
-INSERT INTO discoveryinfo VALUES (4165091, 18, 7);
-INSERT INTO discoveryinfo VALUES (4165095, 18, 7);
-INSERT INTO discoveryinfo VALUES (4165097, 18, 8);
-INSERT INTO discoveryinfo VALUES (4165098, 18, 8);
-INSERT INTO discoveryinfo VALUES (4165101, 18, 9);
-INSERT INTO discoveryinfo VALUES (4165102, 18, 18);
-INSERT INTO discoveryinfo VALUES (4165132, 18, 10);
-INSERT INTO discoveryinfo VALUES (4165138, 18, 11);
-INSERT INTO discoveryinfo VALUES (4165146, 18, 4);
-INSERT INTO discoveryinfo VALUES (4165587, 18, 13);
-INSERT INTO discoveryinfo VALUES (4165147, 18, 14);
-INSERT INTO discoveryinfo VALUES (4374258, 18, 15);
-INSERT INTO discoveryinfo VALUES (4665759, 18, 11);
-INSERT INTO discoveryinfo VALUES (4665766, 18, 11);
-INSERT INTO discoveryinfo VALUES (4665773, 18, 11);
-INSERT INTO discoveryinfo VALUES (4755366, 18, 18);
-INSERT INTO discoveryinfo VALUES (6238452, 18, 4);
-INSERT INTO discoveryinfo VALUES (4165141, 18, 13);
-INSERT INTO discoveryinfo VALUES (4165760, 19, 2);
+INSERT INTO discoveryinfo VALUES (4165760, 19, 1);
INSERT INTO discoveryinfo VALUES (4165774, 19, 1);
INSERT INTO discoveryinfo VALUES (4165761, 19, 2);
INSERT INTO discoveryinfo VALUES (4165767, 19, 2);
@@ -4889,30 +4048,12 @@ INSERT INTO discoveryinfo VALUES (4165762, 19, 3);
INSERT INTO discoveryinfo VALUES (4165770, 19, 3);
INSERT INTO discoveryinfo VALUES (4165763, 19, 4);
INSERT INTO discoveryinfo VALUES (4310836, 19, 4);
-INSERT INTO discoveryinfo VALUES (4311173, 19, 3);
+INSERT INTO discoveryinfo VALUES (4311173, 19, 4);
INSERT INTO discoveryinfo VALUES (4311182, 19, 4);
INSERT INTO discoveryinfo VALUES (4165781, 19, 5);
INSERT INTO discoveryinfo VALUES (4165782, 19, 6);
INSERT INTO discoveryinfo VALUES (4165784, 19, 7);
INSERT INTO discoveryinfo VALUES (4165785, 19, 8);
-INSERT INTO discoveryinfo VALUES (4165786, 19, 7);
-INSERT INTO discoveryinfo VALUES (4165793, 19, 7);
-INSERT INTO discoveryinfo VALUES (4165795, 19, 7);
-INSERT INTO discoveryinfo VALUES (4165796, 19, 7);
-INSERT INTO discoveryinfo VALUES (4201504, 19, 7);
-INSERT INTO discoveryinfo VALUES (4165789, 19, 1);
-INSERT INTO discoveryinfo VALUES (4165798, 19, 1);
-INSERT INTO discoveryinfo VALUES (4310468, 19, 1);
-INSERT INTO discoveryinfo VALUES (4165791, 19, 2);
-INSERT INTO discoveryinfo VALUES (4165826, 19, 2);
-INSERT INTO discoveryinfo VALUES (4310490, 19, 4);
-INSERT INTO discoveryinfo VALUES (4310494, 19, 4);
-INSERT INTO discoveryinfo VALUES (4165792, 19, 3);
-INSERT INTO discoveryinfo VALUES (4165787, 19, 6);
-INSERT INTO discoveryinfo VALUES (4165788, 19, 7);
-INSERT INTO discoveryinfo VALUES (4165790, 19, 4);
-INSERT INTO discoveryinfo VALUES (4310473, 19, 4);
-INSERT INTO discoveryinfo VALUES (4310481, 19, 4);
INSERT INTO discoveryinfo VALUES (4165830, 30, 1);
INSERT INTO discoveryinfo VALUES (4334750, 30, 1);
INSERT INTO discoveryinfo VALUES (4165833, 30, 2);
@@ -4924,19 +4065,52 @@ INSERT INTO discoveryinfo VALUES (4165838, 30, 6);
INSERT INTO discoveryinfo VALUES (4165839, 30, 7);
INSERT INTO discoveryinfo VALUES (4165840, 30, 8);
INSERT INTO discoveryinfo VALUES (4165841, 30, 8);
-INSERT INTO discoveryinfo VALUES (4165842, 30, 2);
-INSERT INTO discoveryinfo VALUES (4165843, 30, 2);
-INSERT INTO discoveryinfo VALUES (4165870, 30, 5);
-INSERT INTO discoveryinfo VALUES (4165845, 30, 5);
-INSERT INTO discoveryinfo VALUES (4165844, 30, 3);
-INSERT INTO discoveryinfo VALUES (4165862, 30, 3);
-INSERT INTO discoveryinfo VALUES (4665788, 30, 4);
-INSERT INTO discoveryinfo VALUES (4107623, 41, 8);
-INSERT INTO discoveryinfo VALUES (2789690, 41, 8);
+INSERT INTO discoveryinfo VALUES (6212566, 285, 32);
+INSERT INTO discoveryinfo VALUES (4999689, 175, 1);
+INSERT INTO discoveryinfo VALUES (4999690, 175, 2);
+INSERT INTO discoveryinfo VALUES (4999716, 175, 3);
+INSERT INTO discoveryinfo VALUES (4999718, 175, 5);
+INSERT INTO discoveryinfo VALUES (4999719, 175, 6);
+INSERT INTO discoveryinfo VALUES (5000372, 175, 1);
+INSERT INTO discoveryinfo VALUES (5000828, 175, 4);
+INSERT INTO discoveryinfo VALUES (5000330, 176, 1);
+INSERT INTO discoveryinfo VALUES (5000336, 176, 1);
+INSERT INTO discoveryinfo VALUES (5000350, 176, 2);
+INSERT INTO discoveryinfo VALUES (5000351, 176, 3);
+INSERT INTO discoveryinfo VALUES (5000352, 176, 3);
+INSERT INTO discoveryinfo VALUES (5000354, 176, 4);
+INSERT INTO discoveryinfo VALUES (5000355, 176, 4);
+INSERT INTO discoveryinfo VALUES (5000356, 176, 4);
+INSERT INTO discoveryinfo VALUES (5000357, 176, 4);
+INSERT INTO discoveryinfo VALUES (5000358, 176, 4);
+INSERT INTO discoveryinfo VALUES (5000359, 176, 4);
+INSERT INTO discoveryinfo VALUES (5000360, 176, 4);
+INSERT INTO discoveryinfo VALUES (5000361, 176, 4);
+INSERT INTO discoveryinfo VALUES (5000362, 176, 4);
+INSERT INTO discoveryinfo VALUES (5000363, 176, 5);
+INSERT INTO discoveryinfo VALUES (5000364, 176, 6);
+INSERT INTO discoveryinfo VALUES (5000369, 176, 2);
+INSERT INTO discoveryinfo VALUES (5342993, 176, 6);
+INSERT INTO discoveryinfo VALUES (5342994, 176, 6);
+INSERT INTO discoveryinfo VALUES (5343008, 176, 1);
+INSERT INTO discoveryinfo VALUES (5343013, 176, 1);
+INSERT INTO discoveryinfo VALUES (5485243, 176, 5);
+INSERT INTO discoveryinfo VALUES (2789689, 40, 3);
+INSERT INTO discoveryinfo VALUES (2789690, 40, 7);
INSERT INTO discoveryinfo VALUES (2789812, 41, 8);
+INSERT INTO discoveryinfo VALUES (4142940, 40, 5);
+INSERT INTO discoveryinfo VALUES (4142945, 40, 14);
INSERT INTO discoveryinfo VALUES (4142953, 41, 10);
INSERT INTO discoveryinfo VALUES (4142959, 41, 13);
INSERT INTO discoveryinfo VALUES (4142960, 41, 9);
+INSERT INTO discoveryinfo VALUES (4142961, 40, 6);
+INSERT INTO discoveryinfo VALUES (4142964, 40, 3);
+INSERT INTO discoveryinfo VALUES (4142968, 40, 4);
+INSERT INTO discoveryinfo VALUES (4142972, 40, 4);
+INSERT INTO discoveryinfo VALUES (4142973, 40, 4);
+INSERT INTO discoveryinfo VALUES (4142974, 40, 4);
+INSERT INTO discoveryinfo VALUES (4142975, 40, 4);
+INSERT INTO discoveryinfo VALUES (4142979, 40, 5);
INSERT INTO discoveryinfo VALUES (4143006, 41, 8);
INSERT INTO discoveryinfo VALUES (4143007, 41, 8);
INSERT INTO discoveryinfo VALUES (4143009, 41, 9);
@@ -4954,7 +4128,43 @@ INSERT INTO discoveryinfo VALUES (4143147, 41, 13);
INSERT INTO discoveryinfo VALUES (4143154, 41, 13);
INSERT INTO discoveryinfo VALUES (4143156, 41, 13);
INSERT INTO discoveryinfo VALUES (4143159, 41, 13);
-INSERT INTO discoveryinfo VALUES (4278339, 43, 2);
+INSERT INTO discoveryinfo VALUES (4148991, 34, 2);
+INSERT INTO discoveryinfo VALUES (4148994, 34, 1);
+INSERT INTO discoveryinfo VALUES (4149067, 40, 6);
+INSERT INTO discoveryinfo VALUES (4190667, 40, 3);
+INSERT INTO discoveryinfo VALUES (4154591, 46, 1);
+INSERT INTO discoveryinfo VALUES (4154843, 46, 2);
+INSERT INTO discoveryinfo VALUES (4154846, 46, 2);
+INSERT INTO discoveryinfo VALUES (4154856, 46, 2);
+INSERT INTO discoveryinfo VALUES (4154862, 46, 2);
+INSERT INTO discoveryinfo VALUES (4154871, 46, 2);
+INSERT INTO discoveryinfo VALUES (4154874, 46, 2);
+INSERT INTO discoveryinfo VALUES (4154878, 46, 2);
+INSERT INTO discoveryinfo VALUES (4154881, 46, 2);
+INSERT INTO discoveryinfo VALUES (4154896, 46, 4);
+INSERT INTO discoveryinfo VALUES (4154906, 46, 4);
+INSERT INTO discoveryinfo VALUES (4154913, 46, 5);
+INSERT INTO discoveryinfo VALUES (4154920, 46, 5);
+INSERT INTO discoveryinfo VALUES (4154925, 46, 5);
+INSERT INTO discoveryinfo VALUES (4154929, 46, 5);
+INSERT INTO discoveryinfo VALUES (4154945, 46, 6);
+INSERT INTO discoveryinfo VALUES (4154947, 46, 6);
+INSERT INTO discoveryinfo VALUES (4154950, 46, 6);
+INSERT INTO discoveryinfo VALUES (4154951, 46, 6);
+INSERT INTO discoveryinfo VALUES (4154954, 46, 7);
+INSERT INTO discoveryinfo VALUES (4154955, 46, 8);
+INSERT INTO discoveryinfo VALUES (4154957, 46, 8);
+INSERT INTO discoveryinfo VALUES (4154958, 46, 9);
+INSERT INTO discoveryinfo VALUES (4154981, 46, 3);
+INSERT INTO discoveryinfo VALUES (4154982, 46, 3);
+INSERT INTO discoveryinfo VALUES (4154983, 46, 3);
+INSERT INTO discoveryinfo VALUES (4154984, 46, 3);
+INSERT INTO discoveryinfo VALUES (4154987, 46, 3);
+INSERT INTO discoveryinfo VALUES (4154990, 46, 3);
+INSERT INTO discoveryinfo VALUES (4155022, 46, 3);
+INSERT INTO discoveryinfo VALUES (4155023, 46, 3);
+INSERT INTO discoveryinfo VALUES (4155024, 46, 3);
+INSERT INTO discoveryinfo VALUES (4278339, 42, 1);
INSERT INTO discoveryinfo VALUES (4278406, 43, 2);
INSERT INTO discoveryinfo VALUES (4278410, 43, 3);
INSERT INTO discoveryinfo VALUES (4278415, 43, 4);
@@ -4976,33 +4186,20 @@ INSERT INTO discoveryinfo VALUES (4282585, 43, 14);
INSERT INTO discoveryinfo VALUES (4282592, 43, 14);
INSERT INTO discoveryinfo VALUES (4282594, 43, 15);
INSERT INTO discoveryinfo VALUES (4282598, 43, 16);
-INSERT INTO discoveryinfo VALUES (4282605, 43, 5);
-INSERT INTO discoveryinfo VALUES (4282613, 43, 11);
-INSERT INTO discoveryinfo VALUES (4283510, 43, 8);
-INSERT INTO discoveryinfo VALUES (4283574, 43, 10);
-INSERT INTO discoveryinfo VALUES (4283661, 43, 10);
-INSERT INTO discoveryinfo VALUES (4335666, 43, 2);
+INSERT INTO discoveryinfo VALUES (4282605, 44, 17);
+INSERT INTO discoveryinfo VALUES (4282613, 44, 17);
+INSERT INTO discoveryinfo VALUES (4283510, 44, 18);
+INSERT INTO discoveryinfo VALUES (4283574, 44, 19);
+INSERT INTO discoveryinfo VALUES (4283661, 44, 19);
+INSERT INTO discoveryinfo VALUES (4296825, 42, 1);
+INSERT INTO discoveryinfo VALUES (4335666, 42, 1);
INSERT INTO discoveryinfo VALUES (4335670, 43, 8);
-INSERT INTO discoveryinfo VALUES (4284205, 43, 2);
-INSERT INTO discoveryinfo VALUES (4284218, 43, 3);
-INSERT INTO discoveryinfo VALUES (4284220, 43, 8);
-INSERT INTO discoveryinfo VALUES (4284342, 43, 8);
-INSERT INTO discoveryinfo VALUES (4284343, 43, 8);
-INSERT INTO discoveryinfo VALUES (4284346, 43, 9);
-INSERT INTO discoveryinfo VALUES (4284350, 43, 10);
-INSERT INTO discoveryinfo VALUES (4284353, 43, 12);
-INSERT INTO discoveryinfo VALUES (4284354, 43, 13);
-INSERT INTO discoveryinfo VALUES (4284356, 43, 11);
-INSERT INTO discoveryinfo VALUES (4284479, 43, 14);
-INSERT INTO discoveryinfo VALUES (4284481, 43, 15);
-INSERT INTO discoveryinfo VALUES (4284483, 43, 16);
-INSERT INTO discoveryinfo VALUES (4284485, 43, 8);
INSERT INTO discoveryinfo VALUES (4322392, 47, 1);
INSERT INTO discoveryinfo VALUES (4322393, 47, 2);
INSERT INTO discoveryinfo VALUES (4322394, 47, 2);
INSERT INTO discoveryinfo VALUES (4322395, 47, 2);
INSERT INTO discoveryinfo VALUES (4322396, 47, 3);
-INSERT INTO discoveryinfo VALUES (4322398, 47, 2);
+INSERT INTO discoveryinfo VALUES (4322398, 47, 3);
INSERT INTO discoveryinfo VALUES (4322399, 47, 3);
INSERT INTO discoveryinfo VALUES (4322400, 47, 3);
INSERT INTO discoveryinfo VALUES (4322402, 47, 3);
@@ -5031,30 +4228,51 @@ INSERT INTO discoveryinfo VALUES (4322456, 47, 13);
INSERT INTO discoveryinfo VALUES (4322457, 47, 14);
INSERT INTO discoveryinfo VALUES (4322458, 47, 12);
INSERT INTO discoveryinfo VALUES (4322459, 47, 12);
-INSERT INTO discoveryinfo VALUES (4373853, 103, 12);
-INSERT INTO discoveryinfo VALUES (4373851, 103, 12);
-INSERT INTO discoveryinfo VALUES (4313955, 103, 12);
+INSERT INTO discoveryinfo VALUES (4313955, 56, 1);
+INSERT INTO discoveryinfo VALUES (4313958, 99, 2);
+INSERT INTO discoveryinfo VALUES (4313962, 100, 4);
+INSERT INTO discoveryinfo VALUES (4313969, 101, 9);
+INSERT INTO discoveryinfo VALUES (4313972, 102, 10);
INSERT INTO discoveryinfo VALUES (4313973, 103, 12);
INSERT INTO discoveryinfo VALUES (4313975, 103, 15);
-INSERT INTO discoveryinfo VALUES (4322841, 103, 12);
-INSERT INTO discoveryinfo VALUES (4328701, 103, 12);
-INSERT INTO discoveryinfo VALUES (4328703, 103, 12);
+INSERT INTO discoveryinfo VALUES (4322840, 56, 1);
+INSERT INTO discoveryinfo VALUES (4322841, 99, 2);
+INSERT INTO discoveryinfo VALUES (4322843, 100, 4);
+INSERT INTO discoveryinfo VALUES (4322846, 101, 9);
+INSERT INTO discoveryinfo VALUES (4328685, 99, 3);
+INSERT INTO discoveryinfo VALUES (4328688, 99, 3);
+INSERT INTO discoveryinfo VALUES (4328689, 99, 3);
+INSERT INTO discoveryinfo VALUES (4328690, 99, 5);
+INSERT INTO discoveryinfo VALUES (4328691, 56, 8);
+INSERT INTO discoveryinfo VALUES (4328692, 99, 7);
+INSERT INTO discoveryinfo VALUES (4328695, 99, 7);
+INSERT INTO discoveryinfo VALUES (4328696, 100, 6);
+INSERT INTO discoveryinfo VALUES (4328697, 99, 6);
+INSERT INTO discoveryinfo VALUES (4328698, 100, 6);
+INSERT INTO discoveryinfo VALUES (4328699, 99, 6);
+INSERT INTO discoveryinfo VALUES (4328700, 99, 6);
+INSERT INTO discoveryinfo VALUES (4328701, 99, 6);
+INSERT INTO discoveryinfo VALUES (4328702, 99, 6);
+INSERT INTO discoveryinfo VALUES (4328703, 99, 11);
+INSERT INTO discoveryinfo VALUES (4328704, 99, 11);
+INSERT INTO discoveryinfo VALUES (4328705, 99, 11);
INSERT INTO discoveryinfo VALUES (4328706, 103, 13);
INSERT INTO discoveryinfo VALUES (4328707, 103, 14);
-INSERT INTO discoveryinfo VALUES (4328816, 103, 12);
-INSERT INTO discoveryinfo VALUES (4328825, 103, 12);
-INSERT INTO discoveryinfo VALUES (4328826, 103, 12);
-INSERT INTO discoveryinfo VALUES (4328829, 103, 12);
-INSERT INTO discoveryinfo VALUES (4328830, 103, 12);
-INSERT INTO discoveryinfo VALUES (4328833, 103, 12);
-INSERT INTO discoveryinfo VALUES (4328891, 103, 12);
-INSERT INTO discoveryinfo VALUES (4328892, 103, 13);
-INSERT INTO discoveryinfo VALUES (4328894, 103, 14);
-INSERT INTO discoveryinfo VALUES (4328897, 103, 15);
-INSERT INTO discoveryinfo VALUES (4328902, 103, 15);
-INSERT INTO discoveryinfo VALUES (4515204, 142, 10);
-INSERT INTO discoveryinfo VALUES (4515205, 142, 10);
-INSERT INTO discoveryinfo VALUES (4515208, 142, 10);
+INSERT INTO discoveryinfo VALUES (4515176, 140, 1);
+INSERT INTO discoveryinfo VALUES (4515178, 141, 2);
+INSERT INTO discoveryinfo VALUES (4515179, 141, 3);
+INSERT INTO discoveryinfo VALUES (4515180, 141, 3);
+INSERT INTO discoveryinfo VALUES (4515182, 141, 4);
+INSERT INTO discoveryinfo VALUES (4515184, 141, 5);
+INSERT INTO discoveryinfo VALUES (4515186, 141, 5);
+INSERT INTO discoveryinfo VALUES (4515189, 141, 6);
+INSERT INTO discoveryinfo VALUES (4515190, 141, 6);
+INSERT INTO discoveryinfo VALUES (4515193, 141, 7);
+INSERT INTO discoveryinfo VALUES (4515196, 141, 7);
+INSERT INTO discoveryinfo VALUES (4515201, 141, 8);
+INSERT INTO discoveryinfo VALUES (4515204, 141, 9);
+INSERT INTO discoveryinfo VALUES (4515205, 141, 10);
+INSERT INTO discoveryinfo VALUES (4515208, 141, 10);
INSERT INTO discoveryinfo VALUES (4515267, 142, 11);
INSERT INTO discoveryinfo VALUES (4515268, 142, 11);
INSERT INTO discoveryinfo VALUES (4515306, 142, 12);
@@ -5064,26 +4282,43 @@ INSERT INTO discoveryinfo VALUES (4515382, 142, 13);
INSERT INTO discoveryinfo VALUES (4515383, 142, 13);
INSERT INTO discoveryinfo VALUES (4515385, 142, 14);
INSERT INTO discoveryinfo VALUES (4515386, 142, 15);
-INSERT INTO discoveryinfo VALUES (4481388, 142, 10);
-INSERT INTO discoveryinfo VALUES (4481391, 142, 12);
-INSERT INTO discoveryinfo VALUES (4481392, 142, 15);
-INSERT INTO discoveryinfo VALUES (4481393, 142, 11);
-INSERT INTO discoveryinfo VALUES (4481402, 142, 10);
-INSERT INTO discoveryinfo VALUES (4481404, 142, 11);
-INSERT INTO discoveryinfo VALUES (4481405, 142, 11);
-INSERT INTO discoveryinfo VALUES (4481406, 142, 10);
-INSERT INTO discoveryinfo VALUES (4481407, 142, 13);
-INSERT INTO discoveryinfo VALUES (4481408, 142, 13);
-INSERT INTO discoveryinfo VALUES (4481409, 142, 12);
-INSERT INTO discoveryinfo VALUES (4481410, 142, 14);
-INSERT INTO discoveryinfo VALUES (4481411, 142, 14);
-INSERT INTO discoveryinfo VALUES (4481412, 142, 15);
-INSERT INTO discoveryinfo VALUES (4481413, 142, 15);
-INSERT INTO discoveryinfo VALUES (4481414, 142, 15);
-INSERT INTO discoveryinfo VALUES (4481415, 142, 15);
-INSERT INTO discoveryinfo VALUES (4481416, 142, 15);
-INSERT INTO discoveryinfo VALUES (4481417, 142, 15);
-INSERT INTO discoveryinfo VALUES (4481418, 142, 15);
+INSERT INTO discoveryinfo VALUES (4481386, 40, 3);
+INSERT INTO discoveryinfo VALUES (4481387, 40, 7);
+INSERT INTO discoveryinfo VALUES (4481388, 41, 8);
+INSERT INTO discoveryinfo VALUES (4481389, 40, 5);
+INSERT INTO discoveryinfo VALUES (4481390, 40, 14);
+INSERT INTO discoveryinfo VALUES (4481391, 41, 10);
+INSERT INTO discoveryinfo VALUES (4481392, 41, 13);
+INSERT INTO discoveryinfo VALUES (4481393, 41, 9);
+INSERT INTO discoveryinfo VALUES (4481394, 40, 6);
+INSERT INTO discoveryinfo VALUES (4481395, 40, 3);
+INSERT INTO discoveryinfo VALUES (4481396, 40, 4);
+INSERT INTO discoveryinfo VALUES (4481397, 40, 4);
+INSERT INTO discoveryinfo VALUES (4481398, 40, 4);
+INSERT INTO discoveryinfo VALUES (4481399, 40, 4);
+INSERT INTO discoveryinfo VALUES (4481400, 40, 4);
+INSERT INTO discoveryinfo VALUES (4481401, 40, 5);
+INSERT INTO discoveryinfo VALUES (4481402, 41, 8);
+INSERT INTO discoveryinfo VALUES (4481403, 41, 8);
+INSERT INTO discoveryinfo VALUES (4481404, 41, 9);
+INSERT INTO discoveryinfo VALUES (4481405, 41, 9);
+INSERT INTO discoveryinfo VALUES (4481406, 41, 8);
+INSERT INTO discoveryinfo VALUES (4481407, 41, 11);
+INSERT INTO discoveryinfo VALUES (4481408, 41, 11);
+INSERT INTO discoveryinfo VALUES (4481409, 41, 10);
+INSERT INTO discoveryinfo VALUES (4481410, 41, 12);
+INSERT INTO discoveryinfo VALUES (4481411, 41, 12);
+INSERT INTO discoveryinfo VALUES (4481412, 41, 13);
+INSERT INTO discoveryinfo VALUES (4481413, 41, 13);
+INSERT INTO discoveryinfo VALUES (4481414, 41, 13);
+INSERT INTO discoveryinfo VALUES (4481415, 41, 13);
+INSERT INTO discoveryinfo VALUES (4481416, 41, 13);
+INSERT INTO discoveryinfo VALUES (4481417, 41, 13);
+INSERT INTO discoveryinfo VALUES (4481418, 41, 13);
+INSERT INTO discoveryinfo VALUES (4481419, 34, 2);
+INSERT INTO discoveryinfo VALUES (4481420, 34, 1);
+INSERT INTO discoveryinfo VALUES (4481421, 40, 6);
+INSERT INTO discoveryinfo VALUES (4481422, 40, 3);
INSERT INTO discoveryinfo VALUES (4569450, 145, 1);
INSERT INTO discoveryinfo VALUES (4569451, 145, 5);
INSERT INTO discoveryinfo VALUES (4569459, 145, 2);
@@ -5099,15 +4334,16 @@ INSERT INTO discoveryinfo VALUES (4627322, 145, 7);
INSERT INTO discoveryinfo VALUES (4627324, 145, 7);
INSERT INTO discoveryinfo VALUES (4627332, 145, 9);
INSERT INTO discoveryinfo VALUES (4627336, 145, 8);
-INSERT INTO discoveryinfo VALUES (4630742, 145, 11);
INSERT INTO discoveryinfo VALUES (4890336, 182, 1);
INSERT INTO discoveryinfo VALUES (4890497, 182, 2);
INSERT INTO discoveryinfo VALUES (4890506, 182, 3);
INSERT INTO discoveryinfo VALUES (4890535, 182, 3);
-INSERT INTO discoveryinfo VALUES (4890651, 182, 3);
-INSERT INTO discoveryinfo VALUES (4890661, 182, 11);
-INSERT INTO discoveryinfo VALUES (4890664, 182, 12);
-INSERT INTO discoveryinfo VALUES (4890679, 182, 10);
+INSERT INTO discoveryinfo VALUES (4890651, 183, 4);
+INSERT INTO discoveryinfo VALUES (4890661, 183, 5);
+INSERT INTO discoveryinfo VALUES (4890664, 183, 6);
+INSERT INTO discoveryinfo VALUES (4890669, 183, 7);
+INSERT INTO discoveryinfo VALUES (4890674, 183, 7);
+INSERT INTO discoveryinfo VALUES (4890679, 183, 8);
INSERT INTO discoveryinfo VALUES (4890766, 182, 9);
INSERT INTO discoveryinfo VALUES (4890770, 182, 10);
INSERT INTO discoveryinfo VALUES (4890776, 182, 10);
@@ -5120,13 +4356,11 @@ INSERT INTO discoveryinfo VALUES (5032226, 182, 3);
INSERT INTO discoveryinfo VALUES (5032227, 182, 12);
INSERT INTO discoveryinfo VALUES (5033231, 182, 12);
INSERT INTO discoveryinfo VALUES (5033232, 182, 12);
-INSERT INTO discoveryinfo VALUES (5033927, 182, 11);
+INSERT INTO discoveryinfo VALUES (5033927, 183, 5);
INSERT INTO discoveryinfo VALUES (5034828, 182, 15);
INSERT INTO discoveryinfo VALUES (5034833, 182, 15);
INSERT INTO discoveryinfo VALUES (5034834, 182, 15);
INSERT INTO discoveryinfo VALUES (5348496, 182, 10);
-INSERT INTO discoveryinfo VALUES (5476910, 182, 3);
-INSERT INTO discoveryinfo VALUES (5485941, 182, 9);
INSERT INTO discoveryinfo VALUES (4098244, 20, 1);
INSERT INTO discoveryinfo VALUES (4098246, 20, 2);
INSERT INTO discoveryinfo VALUES (4098252, 20, 2);
@@ -5140,7 +4374,7 @@ INSERT INTO discoveryinfo VALUES (4098680, 20, 7);
INSERT INTO discoveryinfo VALUES (4098686, 20, 8);
INSERT INTO discoveryinfo VALUES (4098698, 20, 9);
INSERT INTO discoveryinfo VALUES (4098719, 20, 10);
-INSERT INTO discoveryinfo VALUES (4098723, 20, 10);
+INSERT INTO discoveryinfo VALUES (4098723, 20, 11);
INSERT INTO discoveryinfo VALUES (4098733, 20, 12);
INSERT INTO discoveryinfo VALUES (4203976, 20, 5);
INSERT INTO discoveryinfo VALUES (4203984, 20, 5);
@@ -5148,42 +4382,6 @@ INSERT INTO discoveryinfo VALUES (4218112, 20, 2);
INSERT INTO discoveryinfo VALUES (4218256, 20, 6);
INSERT INTO discoveryinfo VALUES (4218258, 20, 6);
INSERT INTO discoveryinfo VALUES (4203968, 20, 5);
-INSERT INTO discoveryinfo VALUES (4098786, 20, 1);
-INSERT INTO discoveryinfo VALUES (4098790, 20, 1);
-INSERT INTO discoveryinfo VALUES (4098794, 20, 1);
-INSERT INTO discoveryinfo VALUES (4098812, 20, 1);
-INSERT INTO discoveryinfo VALUES (4098843, 20, 4);
-INSERT INTO discoveryinfo VALUES (4098858, 20, 2);
-INSERT INTO discoveryinfo VALUES (4098869, 20, 2);
-INSERT INTO discoveryinfo VALUES (4098978, 20, 5);
-INSERT INTO discoveryinfo VALUES (4098984, 20, 3);
-INSERT INTO discoveryinfo VALUES (4098990, 20, 3);
-INSERT INTO discoveryinfo VALUES (4098991, 20, 3);
-INSERT INTO discoveryinfo VALUES (4098996, 20, 4);
-INSERT INTO discoveryinfo VALUES (4099007, 20, 4);
-INSERT INTO discoveryinfo VALUES (4099014, 20, 7);
-INSERT INTO discoveryinfo VALUES (4099017, 20, 6);
-INSERT INTO discoveryinfo VALUES (4099024, 20, 6);
-INSERT INTO discoveryinfo VALUES (4099214, 20, 6);
-INSERT INTO discoveryinfo VALUES (4099220, 20, 6);
-INSERT INTO discoveryinfo VALUES (4099234, 20, 6);
-INSERT INTO discoveryinfo VALUES (4099313, 20, 8);
-INSERT INTO discoveryinfo VALUES (4099338, 20, 8);
-INSERT INTO discoveryinfo VALUES (4099357, 20, 8);
-INSERT INTO discoveryinfo VALUES (4099376, 20, 9);
-INSERT INTO discoveryinfo VALUES (4099424, 20, 10);
-INSERT INTO discoveryinfo VALUES (4099430, 20, 10);
-INSERT INTO discoveryinfo VALUES (4099464, 20, 12);
-INSERT INTO discoveryinfo VALUES (4241594, 20, 1);
-INSERT INTO discoveryinfo VALUES (4332518, 20, 6);
-INSERT INTO discoveryinfo VALUES (4333235, 20, 9);
-INSERT INTO discoveryinfo VALUES (4334276, 20, 4);
-INSERT INTO discoveryinfo VALUES (4373250, 20, 10);
-INSERT INTO discoveryinfo VALUES (4373251, 20, 10);
-INSERT INTO discoveryinfo VALUES (4373252, 20, 11);
-INSERT INTO discoveryinfo VALUES (4373253, 20, 11);
-INSERT INTO discoveryinfo VALUES (4374738, 20, 8);
-INSERT INTO discoveryinfo VALUES (4374739, 20, 8);
INSERT INTO discoveryinfo VALUES (3643649, 21, 1);
INSERT INTO discoveryinfo VALUES (3643706, 21, 1);
INSERT INTO discoveryinfo VALUES (3643707, 21, 3);
@@ -5226,33 +4424,10 @@ INSERT INTO discoveryinfo VALUES (4204092, 21, 9);
INSERT INTO discoveryinfo VALUES (4218268, 21, 6);
INSERT INTO discoveryinfo VALUES (4334881, 21, 7);
INSERT INTO discoveryinfo VALUES (4334882, 21, 13);
-INSERT INTO discoveryinfo VALUES (3646818, 21, 1);
-INSERT INTO discoveryinfo VALUES (3646820, 21, 1);
-INSERT INTO discoveryinfo VALUES (3646848, 21, 3);
-INSERT INTO discoveryinfo VALUES (3646849, 21, 3);
-INSERT INTO discoveryinfo VALUES (3647059, 21, 4);
-INSERT INTO discoveryinfo VALUES (3647060, 21, 4);
-INSERT INTO discoveryinfo VALUES (3647062, 21, 8);
-INSERT INTO discoveryinfo VALUES (3647073, 21, 6);
-INSERT INTO discoveryinfo VALUES (3647079, 21, 7);
-INSERT INTO discoveryinfo VALUES (3647131, 21, 8);
-INSERT INTO discoveryinfo VALUES (3647136, 21, 10);
-INSERT INTO discoveryinfo VALUES (3647138, 21, 6);
-INSERT INTO discoveryinfo VALUES (3647142, 21, 9);
-INSERT INTO discoveryinfo VALUES (3647296, 21, 9);
-INSERT INTO discoveryinfo VALUES (3647303, 21, 12);
-INSERT INTO discoveryinfo VALUES (3647308, 21, 12);
-INSERT INTO discoveryinfo VALUES (3649749, 21, 6);
-INSERT INTO discoveryinfo VALUES (3649760, 21, 6);
-INSERT INTO discoveryinfo VALUES (4241611, 21, 1);
-INSERT INTO discoveryinfo VALUES (4241612, 21, 2);
-INSERT INTO discoveryinfo VALUES (4332187, 21, 6);
-INSERT INTO discoveryinfo VALUES (4332188, 21, 6);
-INSERT INTO discoveryinfo VALUES (4332189, 21, 6);
INSERT INTO discoveryinfo VALUES (4101189, 22, 1);
INSERT INTO discoveryinfo VALUES (4101195, 22, 1);
INSERT INTO discoveryinfo VALUES (4101196, 22, 2);
-INSERT INTO discoveryinfo VALUES (4101197, 22, 3);
+INSERT INTO discoveryinfo VALUES (4101197, 22, 2);
INSERT INTO discoveryinfo VALUES (4101214, 22, 2);
INSERT INTO discoveryinfo VALUES (4101218, 22, 2);
INSERT INTO discoveryinfo VALUES (4101224, 22, 3);
@@ -5283,33 +4458,6 @@ INSERT INTO discoveryinfo VALUES (4101407, 22, 17);
INSERT INTO discoveryinfo VALUES (4101410, 22, 17);
INSERT INTO discoveryinfo VALUES (4101421, 22, 17);
INSERT INTO discoveryinfo VALUES (4204135, 22, 15);
-INSERT INTO discoveryinfo VALUES (4101526, 22, 2);
-INSERT INTO discoveryinfo VALUES (4101533, 22, 5);
-INSERT INTO discoveryinfo VALUES (4101538, 22, 3);
-INSERT INTO discoveryinfo VALUES (4101542, 22, 5);
-INSERT INTO discoveryinfo VALUES (4101549, 22, 10);
-INSERT INTO discoveryinfo VALUES (4101555, 22, 11);
-INSERT INTO discoveryinfo VALUES (4101570, 22, 12);
-INSERT INTO discoveryinfo VALUES (4101579, 22, 6);
-INSERT INTO discoveryinfo VALUES (4101582, 22, 14);
-INSERT INTO discoveryinfo VALUES (4101586, 22, 14);
-INSERT INTO discoveryinfo VALUES (4101598, 22, 13);
-INSERT INTO discoveryinfo VALUES (4101606, 22, 11);
-INSERT INTO discoveryinfo VALUES (4333394, 22, 5);
-INSERT INTO discoveryinfo VALUES (4333395, 22, 5);
-INSERT INTO discoveryinfo VALUES (4333396, 22, 5);
-INSERT INTO discoveryinfo VALUES (4333403, 22, 5);
-INSERT INTO discoveryinfo VALUES (4335123, 22, 2);
-INSERT INTO discoveryinfo VALUES (4335124, 22, 2);
-INSERT INTO discoveryinfo VALUES (4335125, 22, 2);
-INSERT INTO discoveryinfo VALUES (4335126, 22, 2);
-INSERT INTO discoveryinfo VALUES (4335127, 22, 3);
-INSERT INTO discoveryinfo VALUES (4335128, 22, 3);
-INSERT INTO discoveryinfo VALUES (4335129, 22, 3);
-INSERT INTO discoveryinfo VALUES (4335130, 22, 2);
-INSERT INTO discoveryinfo VALUES (4335131, 22, 2);
-INSERT INTO discoveryinfo VALUES (4335132, 22, 2);
-INSERT INTO discoveryinfo VALUES (4335214, 22, 2);
INSERT INTO discoveryinfo VALUES (4101783, 24, 1);
INSERT INTO discoveryinfo VALUES (4101846, 24, 2);
INSERT INTO discoveryinfo VALUES (4101870, 24, 3);
@@ -5320,68 +4468,76 @@ INSERT INTO discoveryinfo VALUES (4101904, 24, 5);
INSERT INTO discoveryinfo VALUES (4101907, 24, 6);
INSERT INTO discoveryinfo VALUES (4101909, 24, 7);
INSERT INTO discoveryinfo VALUES (4101914, 24, 8);
-INSERT INTO discoveryinfo VALUES (4102354, 24, 1);
-INSERT INTO discoveryinfo VALUES (4102358, 24, 1);
-INSERT INTO discoveryinfo VALUES (4102359, 24, 1);
-INSERT INTO discoveryinfo VALUES (4102360, 24, 1);
-INSERT INTO discoveryinfo VALUES (4102361, 24, 2);
-INSERT INTO discoveryinfo VALUES (4102362, 24, 2);
-INSERT INTO discoveryinfo VALUES (4102365, 24, 3);
-INSERT INTO discoveryinfo VALUES (4102371, 24, 3);
-INSERT INTO discoveryinfo VALUES (4102372, 24, 3);
-INSERT INTO discoveryinfo VALUES (4102373, 24, 3);
-INSERT INTO discoveryinfo VALUES (4102375, 24, 6);
-INSERT INTO discoveryinfo VALUES (4102377, 24, 4);
-INSERT INTO discoveryinfo VALUES (4102378, 24, 4);
-INSERT INTO discoveryinfo VALUES (4102379, 24, 4);
-INSERT INTO discoveryinfo VALUES (4102380, 24, 7);
-INSERT INTO discoveryinfo VALUES (4102381, 24, 8);
-INSERT INTO discoveryinfo VALUES (6095393, 272, 12);
-INSERT INTO discoveryinfo VALUES (6095410, 272, 13);
-INSERT INTO discoveryinfo VALUES (6095412, 272, 14);
-INSERT INTO discoveryinfo VALUES (6098955, 272, 12);
-INSERT INTO discoveryinfo VALUES (6098956, 272, 14);
-INSERT INTO discoveryinfo VALUES (6268735, 303, 15);
-INSERT INTO discoveryinfo VALUES (6268736, 303, 15);
-INSERT INTO discoveryinfo VALUES (6288695, 303, 15);
-INSERT INTO discoveryinfo VALUES (6271621, 303, 15);
+INSERT INTO discoveryinfo VALUES (4285195, 52, 1);
+INSERT INTO discoveryinfo VALUES (4285230, 52, 2);
+INSERT INTO discoveryinfo VALUES (4285234, 52, 3);
+INSERT INTO discoveryinfo VALUES (4285247, 52, 4);
+INSERT INTO discoveryinfo VALUES (4285263, 96, 5);
+INSERT INTO discoveryinfo VALUES (4285269, 96, 6);
+INSERT INTO discoveryinfo VALUES (4285277, 52, 7);
+INSERT INTO discoveryinfo VALUES (4285311, 97, 8);
+INSERT INTO discoveryinfo VALUES (4285319, 97, 9);
+INSERT INTO discoveryinfo VALUES (4285322, 97, 9);
+INSERT INTO discoveryinfo VALUES (4286244, 97, 10);
+INSERT INTO discoveryinfo VALUES (4286246, 97, 10);
+INSERT INTO discoveryinfo VALUES (4286247, 52, 7);
+INSERT INTO discoveryinfo VALUES (4286248, 52, 4);
+INSERT INTO discoveryinfo VALUES (6094200, 269, 1);
+INSERT INTO discoveryinfo VALUES (6070593, 269, 1);
+INSERT INTO discoveryinfo VALUES (6070926, 269, 1);
+INSERT INTO discoveryinfo VALUES (6070927, 269, 2);
+INSERT INTO discoveryinfo VALUES (6070928, 269, 2);
+INSERT INTO discoveryinfo VALUES (6070932, 270, 3);
+INSERT INTO discoveryinfo VALUES (6070933, 270, 3);
+INSERT INTO discoveryinfo VALUES (6070934, 270, 3);
+INSERT INTO discoveryinfo VALUES (6094204, 270, 3);
+INSERT INTO discoveryinfo VALUES (6094208, 270, 3);
+INSERT INTO discoveryinfo VALUES (6094211, 270, 3);
+INSERT INTO discoveryinfo VALUES (6098662, 269, 4);
+INSERT INTO discoveryinfo VALUES (6094209, 269, 4);
+INSERT INTO discoveryinfo VALUES (6094210, 269, 4);
+INSERT INTO discoveryinfo VALUES (6070594, 269, 5);
+INSERT INTO discoveryinfo VALUES (6070595, 269, 5);
+INSERT INTO discoveryinfo VALUES (6070596, 269, 5);
+INSERT INTO discoveryinfo VALUES (6095200, 269, 5);
+INSERT INTO discoveryinfo VALUES (6095389, 269, 5);
+INSERT INTO discoveryinfo VALUES (6095201, 269, 6);
+INSERT INTO discoveryinfo VALUES (6095390, 269, 7);
+INSERT INTO discoveryinfo VALUES (6095391, 269, 8);
+INSERT INTO discoveryinfo VALUES (6095393, 271, 9);
+INSERT INTO discoveryinfo VALUES (6095410, 271, 10);
+INSERT INTO discoveryinfo VALUES (6095412, 271, 11);
+INSERT INTO discoveryinfo VALUES (6095415, 272, 12);
+INSERT INTO discoveryinfo VALUES (6095416, 272, 13);
+INSERT INTO discoveryinfo VALUES (6095418, 272, 14);
+INSERT INTO discoveryinfo VALUES (6095420, 272, 15);
+INSERT INTO discoveryinfo VALUES (6099593, 270, 3);
+INSERT INTO discoveryinfo VALUES (6627208, 343, 2);
+INSERT INTO discoveryinfo VALUES (6627209, 343, 1);
+INSERT INTO discoveryinfo VALUES (6627226, 343, 3);
+INSERT INTO discoveryinfo VALUES (6627227, 343, 3);
+INSERT INTO discoveryinfo VALUES (6627233, 344, 4);
+INSERT INTO discoveryinfo VALUES (6627236, 344, 4);
+INSERT INTO discoveryinfo VALUES (6627239, 344, 4);
+INSERT INTO discoveryinfo VALUES (6627240, 344, 5);
+INSERT INTO discoveryinfo VALUES (6627242, 344, 5);
+INSERT INTO discoveryinfo VALUES (6627244, 344, 6);
+INSERT INTO discoveryinfo VALUES (6627245, 344, 7);
+INSERT INTO discoveryinfo VALUES (6627246, 344, 8);
+INSERT INTO discoveryinfo VALUES (6627247, 344, 9);
+INSERT INTO discoveryinfo VALUES (6627248, 344, 11);
+INSERT INTO discoveryinfo VALUES (6627249, 344, 10);
+INSERT INTO discoveryinfo VALUES (6627251, 346, 14);
INSERT INTO discoveryinfo VALUES (6627252, 345, 13);
+INSERT INTO discoveryinfo VALUES (6627255, 344, 12);
INSERT INTO discoveryinfo VALUES (6627266, 345, 13);
-INSERT INTO discoveryinfo VALUES (6740473, 345, 13);
-INSERT INTO discoveryinfo VALUES (7309598, 414, 1);
-INSERT INTO discoveryinfo VALUES (7309599, 414, 1);
-INSERT INTO discoveryinfo VALUES (7309601, 414, 2);
-INSERT INTO discoveryinfo VALUES (7309602, 414, 2);
-INSERT INTO discoveryinfo VALUES (7309603, 414, 2);
-INSERT INTO discoveryinfo VALUES (7309608, 414, 2);
-INSERT INTO discoveryinfo VALUES (7309609, 414, 2);
-INSERT INTO discoveryinfo VALUES (7309615, 414, 13);
-INSERT INTO discoveryinfo VALUES (7309629, 414, 13);
-INSERT INTO discoveryinfo VALUES (7309632, 414, 12);
-INSERT INTO discoveryinfo VALUES (7309633, 414, 12);
-INSERT INTO discoveryinfo VALUES (7309634, 414, 12);
-INSERT INTO discoveryinfo VALUES (7309637, 414, 13);
-INSERT INTO discoveryinfo VALUES (7309640, 414, 12);
-INSERT INTO discoveryinfo VALUES (7309641, 414, 11);
-INSERT INTO discoveryinfo VALUES (7309642, 414, 11);
-INSERT INTO discoveryinfo VALUES (7309648, 414, 14);
-INSERT INTO discoveryinfo VALUES (7309679, 414, 8);
-INSERT INTO discoveryinfo VALUES (7309688, 414, 9);
-INSERT INTO discoveryinfo VALUES (7309690, 414, 9);
-INSERT INTO discoveryinfo VALUES (7309692, 414, 9);
-INSERT INTO discoveryinfo VALUES (7309694, 414, 9);
-INSERT INTO discoveryinfo VALUES (7309695, 414, 7);
-INSERT INTO discoveryinfo VALUES (7309696, 414, 7);
-INSERT INTO discoveryinfo VALUES (7309697, 414, 7);
-INSERT INTO discoveryinfo VALUES (7309698, 414, 7);
-INSERT INTO discoveryinfo VALUES (7309699, 414, 7);
-INSERT INTO discoveryinfo VALUES (7310007, 414, 4);
-INSERT INTO discoveryinfo VALUES (7310008, 414, 4);
-INSERT INTO discoveryinfo VALUES (7310021, 414, 5);
-INSERT INTO discoveryinfo VALUES (7310031, 414, 5);
-INSERT INTO discoveryinfo VALUES (7310032, 414, 5);
-INSERT INTO discoveryinfo VALUES (7310046, 414, 10);
-INSERT INTO discoveryinfo VALUES (7310052, 414, 3);
+INSERT INTO discoveryinfo VALUES (6954070, 389, 2);
+INSERT INTO discoveryinfo VALUES (6954246, 389, 3);
+INSERT INTO discoveryinfo VALUES (6954248, 389, 4);
+INSERT INTO discoveryinfo VALUES (6997567, 389, 1);
+INSERT INTO discoveryinfo VALUES (6997569, 389, 1);
+INSERT INTO discoveryinfo VALUES (6999039, 398, 3);
+INSERT INTO discoveryinfo VALUES (6999040, 395, 3);
INSERT INTO discoveryinfo VALUES (7329608, 414, 1);
INSERT INTO discoveryinfo VALUES (7329609, 414, 1);
INSERT INTO discoveryinfo VALUES (7329610, 414, 10);
@@ -5392,6 +4548,8 @@ INSERT INTO discoveryinfo VALUES (7329614, 414, 12);
INSERT INTO discoveryinfo VALUES (7329615, 414, 12);
INSERT INTO discoveryinfo VALUES (7329616, 414, 12);
INSERT INTO discoveryinfo VALUES (7329617, 414, 13);
+INSERT INTO discoveryinfo VALUES (7329618, 414, 13);
+INSERT INTO discoveryinfo VALUES (7329619, 414, 13);
INSERT INTO discoveryinfo VALUES (7329620, 414, 13);
INSERT INTO discoveryinfo VALUES (7329621, 414, 13);
INSERT INTO discoveryinfo VALUES (7329622, 414, 14);
@@ -5404,6 +4562,8 @@ INSERT INTO discoveryinfo VALUES (7329628, 414, 2);
INSERT INTO discoveryinfo VALUES (7329629, 414, 2);
INSERT INTO discoveryinfo VALUES (7329630, 414, 2);
INSERT INTO discoveryinfo VALUES (7329631, 414, 2);
+INSERT INTO discoveryinfo VALUES (7329632, 414, 3);
+INSERT INTO discoveryinfo VALUES (7329633, 414, 3);
INSERT INTO discoveryinfo VALUES (7329634, 414, 4);
INSERT INTO discoveryinfo VALUES (7329635, 414, 4);
INSERT INTO discoveryinfo VALUES (7329636, 414, 4);
@@ -5422,28 +4582,53 @@ INSERT INTO discoveryinfo VALUES (7329648, 414, 7);
INSERT INTO discoveryinfo VALUES (7329649, 414, 8);
INSERT INTO discoveryinfo VALUES (7329650, 414, 8);
INSERT INTO discoveryinfo VALUES (7329651, 414, 8);
+INSERT INTO discoveryinfo VALUES (7329652, 414, 8);
INSERT INTO discoveryinfo VALUES (7329653, 414, 8);
-INSERT INTO discoveryinfo VALUES (7329654, 414, 2);
+INSERT INTO discoveryinfo VALUES (7329654, 414, 8);
INSERT INTO discoveryinfo VALUES (7329655, 414, 9);
INSERT INTO discoveryinfo VALUES (7329656, 414, 9);
INSERT INTO discoveryinfo VALUES (7329657, 414, 9);
INSERT INTO discoveryinfo VALUES (7329658, 414, 9);
-INSERT INTO discoveryinfo VALUES (7310119, 414, 7);
-INSERT INTO discoveryinfo VALUES (7310122, 414, 9);
-INSERT INTO discoveryinfo VALUES (7310125, 414, 13);
-INSERT INTO discoveryinfo VALUES (7310228, 414, 12);
-INSERT INTO discoveryinfo VALUES (7310233, 414, 11);
-INSERT INTO discoveryinfo VALUES (7310337, 414, 5);
-INSERT INTO discoveryinfo VALUES (7310340, 414, 5);
-INSERT INTO discoveryinfo VALUES (7327714, 414, 6);
-INSERT INTO discoveryinfo VALUES (7257151, 414, 1);
-INSERT INTO discoveryinfo VALUES (7257150, 414, 1);
-INSERT INTO discoveryinfo VALUES (6890477, 389, 1);
-INSERT INTO discoveryinfo VALUES (6954070, 389, 2);
-INSERT INTO discoveryinfo VALUES (6954246, 389, 3);
-INSERT INTO discoveryinfo VALUES (6954248, 389, 4);
-INSERT INTO discoveryinfo VALUES (6997567, 389, 1);
-INSERT INTO discoveryinfo VALUES (6997569, 389, 2);
+INSERT INTO discoveryinfo VALUES (7127431, 422, 1);
+INSERT INTO discoveryinfo VALUES (7127432, 423, 9);
+INSERT INTO discoveryinfo VALUES (7127433, 424, 12);
+INSERT INTO discoveryinfo VALUES (7146997, 422, 2);
+INSERT INTO discoveryinfo VALUES (7146998, 422, 3);
+INSERT INTO discoveryinfo VALUES (7146999, 422, 4);
+INSERT INTO discoveryinfo VALUES (7147007, 422, 4);
+INSERT INTO discoveryinfo VALUES (7147025, 422, 4);
+INSERT INTO discoveryinfo VALUES (7147026, 422, 5);
+INSERT INTO discoveryinfo VALUES (7147027, 422, 6);
+INSERT INTO discoveryinfo VALUES (7147028, 422, 7);
+INSERT INTO discoveryinfo VALUES (7147031, 422, 8);
+INSERT INTO discoveryinfo VALUES (7147034, 423, 10);
+INSERT INTO discoveryinfo VALUES (7150748, 423, 10);
+INSERT INTO discoveryinfo VALUES (7150749, 423, 10);
+INSERT INTO discoveryinfo VALUES (7150750, 423, 10);
+INSERT INTO discoveryinfo VALUES (7150751, 423, 11);
+INSERT INTO discoveryinfo VALUES (7150758, 424, 13);
+INSERT INTO discoveryinfo VALUES (7150761, 424, 14);
+INSERT INTO discoveryinfo VALUES (7150773, 424, 15);
+INSERT INTO discoveryinfo VALUES (7167271, 423, 10);
+INSERT INTO discoveryinfo VALUES (7387717, 474, 13);
+INSERT INTO discoveryinfo VALUES (7393449, 473, 1);
+INSERT INTO discoveryinfo VALUES (7393453, 473, 2);
+INSERT INTO discoveryinfo VALUES (7393455, 473, 3);
+INSERT INTO discoveryinfo VALUES (7393467, 473, 4);
+INSERT INTO discoveryinfo VALUES (7393487, 473, 5);
+INSERT INTO discoveryinfo VALUES (7393488, 473, 6);
+INSERT INTO discoveryinfo VALUES (7393489, 473, 6);
+INSERT INTO discoveryinfo VALUES (7393498, 473, 7);
+INSERT INTO discoveryinfo VALUES (7393499, 473, 7);
+INSERT INTO discoveryinfo VALUES (7393500, 470, 8);
+INSERT INTO discoveryinfo VALUES (7393507, 473, 9);
+INSERT INTO discoveryinfo VALUES (7393512, 473, 10);
+INSERT INTO discoveryinfo VALUES (7393514, 473, 10);
+INSERT INTO discoveryinfo VALUES (7393538, 473, 11);
+INSERT INTO discoveryinfo VALUES (7393542, 473, 12);
+INSERT INTO discoveryinfo VALUES (7393543, 473, 13);
+INSERT INTO discoveryinfo VALUES (7393545, 473, 14);
+INSERT INTO discoveryinfo VALUES (7393547, 473, 15);
INSERT INTO `discoveryinfo` VALUES (416144215,1,-858993460);
INSERT INTO `discoveryinfo` VALUES (416494218,10,-858993460);
diff --git a/sql/update.sql b/sql/update.sql
index 239bb5a4..bd8873d2 100644
--- a/sql/update.sql
+++ b/sql/update.sql
@@ -48,4 +48,6 @@ ALTER TABLE `charainfo` CHANGE `Orchestrion` `Orchestrion` BINARY(40) NULL DEFAU
ALTER TABLE `charainfo` CHANGE `Minions` `Minions` BINARY(37) NULL DEFAULT NULL;
ALTER TABLE `charainfo` CHANGE `QuestCompleteFlags` `QuestCompleteFlags` VARBINARY(396) NULL DEFAULT NULL;
ALTER TABLE `charainfo` ADD COLUMN `EquipDisplayFlags` INT(3) NULL DEFAULT '0' AFTER `GMRank`;
-ALTER TABLE `charainfo` ADD COLUMN `Pose` INT(3) NULL DEFAULT '0' AFTER `EquipDisplayFlags`;
\ No newline at end of file
+ALTER TABLE `charainfo` ADD COLUMN `Pose` INT(3) NULL DEFAULT '0' AFTER `EquipDisplayFlags`;
+
+ALTER TABLE `characlass` DROP PRIMARY KEY, ADD INDEX `CharacterId` (`CharacterId`);
\ No newline at end of file
diff --git a/src/common/Common.h b/src/common/Common.h
index 39fbc393..4241bd78 100644
--- a/src/common/Common.h
+++ b/src/common/Common.h
@@ -14,602 +14,726 @@
namespace Core {
namespace Common {
- // 99 is the last spawn id that seems to spawn any actor
- const uint8_t MAX_DISPLAYED_ACTORS = 99;
- const uint8_t MAX_DISPLAYED_EOBJS = 40;
+// 99 is the last spawn id that seems to spawn any actor
+const uint8_t MAX_DISPLAYED_ACTORS = 99;
+const uint8_t MAX_DISPLAYED_EOBJS = 40;
- const int32_t INVALID_GAME_OBJECT_ID = 0xE0000000;
+const int32_t INVALID_GAME_OBJECT_ID = 0xE0000000;
- struct FFXIVARR_POSITION3
- {
- float x;
- float y;
- float z;
- };
+struct FFXIVARR_POSITION3
+{
+ float x;
+ float y;
+ float z;
+};
- enum InventoryOperation : uint8_t
- {
- Discard = 0x07,
- Move = 0x08,
- Swap = 0x09,
- Merge = 0x0C,
- Split = 0x0A
- };
+enum InventoryOperation :
+ uint8_t
+{
+ Discard = 0x07,
+ Move = 0x08,
+ Swap = 0x09,
+ Merge = 0x0C,
+ Split = 0x0A
+};
- enum ClientLanguage : uint8_t
- {
- Japanese = 1,
- English = 2,
- German = 4,
- French = 8
- };
+enum ClientLanguage :
+ uint8_t
+{
+ Japanese = 1,
+ English = 2,
+ German = 4,
+ French = 8
+};
- enum EquipSlot : uint8_t
- {
- MainHand = 0,
- OffHand = 1,
- Head = 2,
- Body = 3,
- Hands = 4,
- Waist = 5,
- Legs = 6,
- Feet = 7,
- Neck = 8,
- Ear = 9,
- Wrist = 10,
- Ring1 = 11,
- Ring2 = 12,
- SoulCrystal = 13,
- };
+enum ObjKind :
+ uint8_t
+{
+ None = 0x00,
+ Player = 0x01,
+ BattleNpc = 0x02,
+ EventNpc = 0x03,
+ Treasure = 0x04,
+ Aetheryte = 0x05,
+ GatheringPoint = 0x06,
+ EventObj = 0x07,
+ MountType = 0x08,
+ Companion = 0x09, // this probably actually means minion
+ Retainer = 0x0A,
+ Area = 0x0B,
+ Housing = 0x0C,
+ Cutscene = 0x0D,
+ CardStand = 0x0E,
+};
- enum InventoryType : uint16_t
- {
- Bag0 = 0,
- Bag1 = 1,
- Bag2 = 2,
- Bag3 = 3,
+enum Stance :
+ uint8_t
+{
+ Passive = 0,
+ Active = 1,
+};
- GearSet0 = 1000,
- GearSet1 = 1001,
+enum class DisplayFlags :
+ uint16_t
+{
+ ActiveStance = 0x001,
+ Invisible = 0x020,
+ HideHead = 0x040,
+ HideWeapon = 0x080,
+ Faded = 0x100,
+ Visor = 0x800,
+};
- Currency = 2000,
- Crystal = 2001,
- //UNKNOWN_0 = 2003,
- KeyItem = 2004,
- HandIn = 2005,
- DamagedGear = 2007,
- //UNKNOWN_1 = 2008,
+enum struct ActorStatus :
+ uint8_t
+{
+ Idle = 0x01,
+ Dead = 0x02,
+ Sitting = 0x03,
+ Mounted = 0x04,
+ Crafting = 0x05,
+ Gathering = 0x06,
+ Melding = 0x07,
+ SMachine = 0x08,
+ Carry = 0x09,
+ EmoteMode = 0x0B
+};
- ArmoryOff = 3200,
- ArmoryHead = 3201,
- ArmoryBody = 3202,
- ArmoryHand = 3203,
- ArmoryWaist = 3204,
- ArmoryLegs = 3205,
- ArmoryFeet = 3206,
- ArmotyNeck = 3207,
- ArmoryEar = 3208,
- ArmoryWrist = 3209,
- ArmoryRing = 3300,
+enum GearSetSlot :
+ uint8_t
+{
+ MainHand = 0,
+ OffHand = 1,
+ Head = 2,
+ Body = 3,
+ Hands = 4,
+ Waist = 5,
+ Legs = 6,
+ Feet = 7,
+ Neck = 8,
+ Ear = 9,
+ Wrist = 10,
+ Ring1 = 11,
+ Ring2 = 12,
+ SoulCrystal = 13,
+};
- ArmorySoulCrystal = 3400,
- ArmoryMain = 3500,
+enum EquipSlotCategory :
+ uint8_t
+{
+ Unequippable = 0,
- RetainerBag0 = 10000,
- RetainerBag1 = 10001,
- RetainerBag2 = 10002,
- RetainerBag3 = 10003,
- RetainerBag4 = 10004,
- RetainerBag5 = 10005,
- RetainerBag6 = 10006,
- RetainerEquippedGear = 11000,
- RetainerGil = 12000,
- RetainerCrystal = 12001,
- RetainerMarket = 12002,
+ // main slots
- FreeCompanyBag0 = 20000,
- FreeCompanyBag1 = 20001,
- FreeCompanyBag2 = 20002,
- FreeCompanyGil = 22000,
- FreeCompanyCrystal = 22001
- };
+ CharaMainHand = 1,
+ CharaOffHand = 2,
+ CharaHead = 3,
+ CharaBody = 4,
+ CharaHands = 5,
+ CharaWaist = 6,
+ CharaLegs = 7,
+ CharaFeet = 8,
+ CharaEars = 9,
+ CharaNeck = 10,
+ CharaWrist = 11,
+ CharaRing = 12,
+ CharaSoulCrystal = 17,
- enum ContainerType : uint16_t
- {
- Unknown = 0,
- Bag = 1,
- GearSet = 2,
- CurrencyCrystal = 3,
- Armory = 4
- };
+ // specials
+
+ /*! Cannot equip gear to offhand slot */
+ MainTwoHandedWeapon = 13,
+ /*! Can be equipped in either main or offhand slot */
+ MainOrOffHand = 14, // unused
+ /*! Cannot equip gear to head */
+ BodyDisallowHead = 15,
+ /*! Cannot equip gear to hands, legs and feet slots */
+ BodyDisallowHandsLegsFeet = 16,
+ /*! Cannot equip gear to feet slot */
+ LegsDisallowFeet = 18,
+ /*! Cannot equp gear to head, hands, legs, feet slots */
+ BodyDisallowAll = 19,
+ /*! Cannot equip gear to hands slot */
+ BodyDisallowHands = 20,
+ /*! Cannot equip gear to legs & feet slots */
+ BodyDisallowLegsFeet = 21,
+};
+
+enum InventoryType :
+ uint16_t
+{
+ Bag0 = 0,
+ Bag1 = 1,
+ Bag2 = 2,
+ Bag3 = 3,
+
+ GearSet0 = 1000,
+ GearSet1 = 1001,
+
+ Currency = 2000,
+ Crystal = 2001,
+ //UNKNOWN_0 = 2003,
+ KeyItem = 2004,
+ HandIn = 2005,
+ DamagedGear = 2007,
+ //UNKNOWN_1 = 2008,
+
+ ArmoryOff = 3200,
+ ArmoryHead = 3201,
+ ArmoryBody = 3202,
+ ArmoryHand = 3203,
+ ArmoryWaist = 3204,
+ ArmoryLegs = 3205,
+ ArmoryFeet = 3206,
+ ArmoryNeck = 3207,
+ ArmoryEar = 3208,
+ ArmoryWrist = 3209,
+ ArmoryRing = 3300,
+
+ ArmorySoulCrystal = 3400,
+ ArmoryMain = 3500,
+
+ RetainerBag0 = 10000,
+ RetainerBag1 = 10001,
+ RetainerBag2 = 10002,
+ RetainerBag3 = 10003,
+ RetainerBag4 = 10004,
+ RetainerBag5 = 10005,
+ RetainerBag6 = 10006,
+ RetainerEquippedGear = 11000,
+ RetainerGil = 12000,
+ RetainerCrystal = 12001,
+ RetainerMarket = 12002,
+
+ FreeCompanyBag0 = 20000,
+ FreeCompanyBag1 = 20001,
+ FreeCompanyBag2 = 20002,
+ FreeCompanyGil = 22000,
+ FreeCompanyCrystal = 22001
+};
+
+enum ContainerType :
+ uint16_t
+{
+ Unknown = 0,
+ Bag = 1,
+ GearSet = 2,
+ CurrencyCrystal = 3,
+ Armory = 4
+};
- enum CurrencyType : uint8_t
- {
- Gil = 0x01,
- StormSeal = 0x02,
- SerpentSeal = 0x03,
- FlameSeal = 0x04,
- TomestonePhilo = 0x05,
- TomestoneMytho = 0x06,
- WolfMark = 0x07,
- TomestoneSold = 0x08,
- AlliedSeal = 0x09,
- TomestonePoet = 0x0A,
- Mgp = 0x0B,
- TomestoneLaw = 0x0C,
- TomestoneEso = 0x0D,
- TomestoneLore = 0x0E
- };
+enum CurrencyType :
+ uint8_t
+{
+ Gil = 0x01,
+ StormSeal = 0x02,
+ SerpentSeal = 0x03,
+ FlameSeal = 0x04,
+ TomestonePhilo = 0x05,
+ TomestoneMytho = 0x06,
+ WolfMark = 0x07,
+ TomestoneSold = 0x08,
+ AlliedSeal = 0x09,
+ TomestonePoet = 0x0A,
+ Mgp = 0x0B,
+ TomestoneLaw = 0x0C,
+ TomestoneEso = 0x0D,
+ TomestoneLore = 0x0E
+};
- enum CrystalType : uint8_t
- {
- FireShard = 0x01,
- IceShard = 0x02,
- WindShard = 0x03,
- EarthShard = 0x04,
- LightningShard = 0x05,
- WaterShard = 0x06,
+enum CrystalType :
+ uint8_t
+{
+ FireShard = 0x01,
+ IceShard = 0x02,
+ WindShard = 0x03,
+ EarthShard = 0x04,
+ LightningShard = 0x05,
+ WaterShard = 0x06,
- FireCrystal = 0x07,
- IceCrystal = 0x08,
- WindCrystal = 0x09,
- EarthCrystal = 0x0A,
- LightningCrystal = 0x0B,
- WaterCrystal = 0x0C,
+ FireCrystal = 0x07,
+ IceCrystal = 0x08,
+ WindCrystal = 0x09,
+ EarthCrystal = 0x0A,
+ LightningCrystal = 0x0B,
+ WaterCrystal = 0x0C,
- FireCluster = 0x0D,
- IceCluster = 0x0E,
- WindCluster = 0x0F,
- EarthCluster = 0x10,
- LightningCluster = 0x11,
- WaterCluster = 0x12
- };
+ FireCluster = 0x0D,
+ IceCluster = 0x0E,
+ WindCluster = 0x0F,
+ EarthCluster = 0x10,
+ LightningCluster = 0x11,
+ WaterCluster = 0x12
+};
- enum struct ZoneingType : uint8_t
- {
- None = 1,
- Teleport = 2,
- Return = 3,
- ReturnDead = 4,
- FadeIn = 5,
- };
+enum struct ZoneingType :
+ uint8_t
+{
+ None = 1,
+ Teleport = 2,
+ Return = 3,
+ ReturnDead = 4,
+ FadeIn = 5,
+};
- enum struct ResurrectType : uint8_t
- {
- None = 0,
- RaiseSpell = 5,
- Return = 8
- };
+enum struct ResurrectType :
+ uint8_t
+{
+ None = 0,
+ RaiseSpell = 5,
+ Return = 8
+};
- enum Gender : uint8_t
- {
- Male = 0,
- Female = 1,
- };
+enum Gender :
+ uint8_t
+{
+ Male = 0,
+ Female = 1,
+};
+enum struct GCRank :
+ uint8_t
+{
+ None = 0,
+ PrivateThirdClass = 1,
+ PrivateSecondClass = 2,
+ PrivateFirstClass = 3,
+ Corporal = 4,
+ SergeantThirdClass = 5,
+ SergeantSecondClass = 6,
+ SergeantFirstClass = 7,
+ ChiefSergeant = 8,
+ SecondLieutenant = 9,
+ FirstLieutenant = 10,
+ Captain = 11,
+ SecondCommander = 12,
+ FirstCommander = 13,
+ HighCommander = 14,
+ RearMarshal = 15,
+ ViceMarshal = 16,
+ Marshal = 17,
+ GrandMarshal = 18,
+ Champion = 19,
+};
- enum struct GCRank : uint8_t
- {
- None = 0,
- PrivateThirdClass = 1,
- PrivateSecondClass = 2,
- PrivateFirstClass = 3,
- Corporal = 4,
- SergeantThirdClass = 5,
- SergeantSecondClass = 6,
- SergeantFirstClass = 7,
- ChiefSergeant = 8,
- SecondLieutenant = 9,
- FirstLieutenant = 10,
- Captain = 11,
- SecondCommander = 12,
- FirstCommander = 13,
- HighCommander = 14,
- RearMarshal = 15,
- ViceMarshal = 16,
- Marshal = 17,
- GrandMarshal = 18,
- Champion = 19,
- };
+/**
+* Structural representation of the packet sent by the server
+* Send the entire StatusEffect list
+*/
+struct StatusEffect
+{
+ uint16_t effect_id;
+ uint16_t unknown1;
+ float duration;
+ uint32_t sourceActorId;
+};
- /**
- * Structural representation of the packet sent by the server
- * Send the entire StatusEffect list
- */
- struct StatusEffect
- {
- uint16_t effect_id;
- uint16_t unknown1;
- float duration;
- uint32_t sourceActorId;
- };
+enum CharaLook :
+ uint8_t
+{
+ Race = 0x00,
+ Gender = 0x01,
+ Tribe = 0x04,
+ Height = 0x03,
+ ModelType = 0x02, // Au Ra: changes horns/tails, everything else: seems to drastically change appearance (flip between two sets, odd/even numbers). sometimes retains hairstyle and other features
+ FaceType = 0x05,
+ HairStyle = 0x06,
+ HasHighlights = 0x07, // negative to enable, positive to disable
+ SkinColor = 0x08,
+ EyeColor = 0x09, // color of character's right eye
+ HairColor = 0x0A, // main color
+ HairColor2 = 0x0B, // highlights color
+ FaceFeatures = 0x0C, // seems to be a toggle, (-odd and +even for large face covering), opposite for small
+ FaceFeaturesColor = 0x0D,
+ Eyebrows = 0x0E,
+ EyeColor2 = 0x0F, // color of character's left eye
+ EyeShape = 0x10,
+ NoseShape = 0x11,
+ JawShape = 0x12,
+ LipStyle = 0x13, // lip colour depth and shape (negative values around -120 darker/more noticeable, positive no colour)
+ LipColor = 0x14,
+ RaceFeatureSize = 0x15,
+ RaceFeatureType = 0x16, // negative or out of range tail shapes for race result in no tail (e.g. Au Ra has max of 4 tail shapes), incorrect value can crash client
+ BustSize = 0x17, // char creator allows up to max of 100, i set to 127 cause who wouldnt but no visible difference
+ Facepaint = 0x18,
+ FacepaintColor = 0x19,
- enum CharaLook : uint8_t
- {
- Race = 0x00,
- Gender = 0x01,
- Tribe = 0x04,
- Height = 0x03,
- ModelType = 0x02, // Au Ra: changes horns/tails, everything else: seems to drastically change appearance (flip between two sets, odd/even numbers). sometimes retains hairstyle and other features
- FaceType = 0x05,
- HairStyle = 0x06,
- HasHighlights = 0x07, // negative to enable, positive to disable
- SkinColor = 0x08,
- EyeColor = 0x09, // color of character's right eye
- HairColor = 0x0A, // main color
- HairColor2 = 0x0B, // highlights color
- FaceFeatures = 0x0C, // seems to be a toggle, (-odd and +even for large face covering), opposite for small
- FaceFeaturesColor = 0x0D,
- Eyebrows = 0x0E,
- EyeColor2 = 0x0F, // color of character's left eye
- EyeShape = 0x10,
- NoseShape = 0x11,
- JawShape = 0x12,
- LipStyle = 0x13, // lip colour depth and shape (negative values around -120 darker/more noticeable, positive no colour)
- LipColor = 0x14,
- RaceFeatureSize = 0x15,
- RaceFeatureType = 0x16, // negative or out of range tail shapes for race result in no tail (e.g. Au Ra has max of 4 tail shapes), incorrect value can crash client
- BustSize = 0x17, // char creator allows up to max of 100, i set to 127 cause who wouldnt but no visible difference
- Facepaint = 0x18,
- FacepaintColor = 0x19,
+};
- };
+enum MoveType :
+ uint8_t
+{
+ Running = 0x00,
+ Walking = 0x02,
+ Strafing = 0x04,
+ Jumping = 0x10,
+ BackWalk = 0x06,
+};
- enum MoveType : uint8_t
- {
- Running = 0x00,
- Walking = 0x02,
- Strafing = 0x04,
- Jumping = 0x10,
- BackWalk = 0x06,
- };
+enum MoveState :
+ uint8_t
+{
+ No = 0x00,
+ Land = 0x02,
+ Fall = 0x04,
+};
- enum MoveState : uint8_t
- {
- None = 0x00,
- Land = 0x02,
- Fall = 0x04,
- };
-
- struct QuestActive
- {
- QuestActive()
- {
- c.questId = 0;
- c.sequence = 0;
- c.flags = 0;
- c.UI8A = 0;
- c.UI8B = 0;
- c.UI8C = 0;
- c.UI8D = 0;
- c.UI8E = 0;
- c.UI8F = 0;
- c.padding = 0;
- }
+struct QuestActive
+{
+ QuestActive()
+ {
+ c.questId = 0;
+ c.sequence = 0;
+ c.flags = 0;
+ c.UI8A = 0;
+ c.UI8B = 0;
+ c.UI8C = 0;
+ c.UI8D = 0;
+ c.UI8E = 0;
+ c.UI8F = 0;
+ c.padding = 0;
+ }
- union
- {
- struct
- {
- uint16_t questId;
- uint8_t sequence;
- uint8_t flags;
- uint8_t padding;
- uint8_t BitFlag48;
- uint8_t BitFlag40;
- uint8_t BitFlag32;
- uint8_t BitFlag24;
- uint8_t BitFlag16;
- uint8_t BitFlag8;
- uint8_t padding1;
- } a;
+ union
+ {
+ struct
+ {
+ uint16_t questId;
+ uint8_t sequence;
+ uint8_t flags;
+ uint8_t padding;
+ uint8_t BitFlag48;
+ uint8_t BitFlag40;
+ uint8_t BitFlag32;
+ uint8_t BitFlag24;
+ uint8_t BitFlag16;
+ uint8_t BitFlag8;
+ uint8_t padding1;
+ } a;
- struct
- {
- uint16_t questId;
- uint8_t sequence;
- uint8_t flags;
- uint8_t padding;
- uint8_t UI8AL : 4;
- uint8_t UI8AH : 4;
- uint8_t UI8BL : 4;
- uint8_t UI8BH : 4;
- uint8_t UI8CL : 4;
- uint8_t UI8CH : 4;
- uint8_t UI8DL : 4;
- uint8_t UI8DH : 4;
- uint8_t UI8EL : 4;
- uint8_t UI8EH : 4;
- uint8_t UI8FL : 4;
- uint8_t UI8FH : 4;
- uint8_t padding1;
- } b;
+ struct
+ {
+ uint16_t questId;
+ uint8_t sequence;
+ uint8_t flags;
+ uint8_t padding;
+ uint8_t UI8AL : 4;
+ uint8_t UI8AH : 4;
+ uint8_t UI8BL : 4;
+ uint8_t UI8BH : 4;
+ uint8_t UI8CL : 4;
+ uint8_t UI8CH : 4;
+ uint8_t UI8DL : 4;
+ uint8_t UI8DH : 4;
+ uint8_t UI8EL : 4;
+ uint8_t UI8EH : 4;
+ uint8_t UI8FL : 4;
+ uint8_t UI8FH : 4;
+ uint8_t padding1;
+ } b;
- struct
- {
- uint16_t questId;
- uint8_t sequence;
- uint8_t flags;
- uint8_t padding;
- uint8_t UI8A;
- uint8_t UI8B;
- uint8_t UI8C;
- uint8_t UI8D;
- uint8_t UI8E;
- uint8_t UI8F;
- uint8_t padding1;
- } c;
+ struct
+ {
+ uint16_t questId;
+ uint8_t sequence;
+ uint8_t flags;
+ uint8_t padding;
+ uint8_t UI8A;
+ uint8_t UI8B;
+ uint8_t UI8C;
+ uint8_t UI8D;
+ uint8_t UI8E;
+ uint8_t UI8F;
+ uint8_t padding1;
+ } c;
- //struct
- //{
- // uint16_t questId;
- // uint8_t sequence;
- // uint8_t flags;
- // uint8_t padding;
- // uint16_t UI16A;
- // uint16_t UI16B;
- // uint16_t UI16C;
- // uint8_t padding1;
- //} d;
+ //struct
+ //{
+ // uint16_t questId;
+ // uint8_t sequence;
+ // uint8_t flags;
+ // uint8_t padding;
+ // uint16_t UI16A;
+ // uint16_t UI16B;
+ // uint16_t UI16C;
+ // uint8_t padding1;
+ //} d;
- //struct
- //{
- // uint8_t padding;
- // uint32_t UI32A;
- // uint16_t padding2;
- //} e;
- };
+ //struct
+ //{
+ // uint8_t padding;
+ // uint32_t UI32A;
+ // uint16_t padding2;
+ //} e;
+ };
- };
+};
- enum struct ActionAspect : uint8_t
- {
- None = 0, // Doesn't imply unaspected
- Fire = 1,
- Ice = 2,
- Wind = 3,
- Stone = 4,
- Lightning = 5,
- Water = 6,
- Unaspected = 7 // Doesn't imply magical unaspected damage - could be unaspected physical
- };
+enum struct ActionAspect :
+ uint8_t
+{
+ None = 0, // Doesn't imply unaspected
+ Fire = 1,
+ Ice = 2,
+ Wind = 3,
+ Stone = 4,
+ Lightning = 5,
+ Water = 6,
+ Unaspected = 7 // Doesn't imply magical unaspected damage - could be unaspected physical
+};
- enum class ActionType : int8_t
- {
- WeaponOverride = -1, // Needs more investigation (takes the damage type of the equipped weapon)?
- Unknown_0 = 0,
- Slashing = 1,
- Piercing = 2,
- Blunt = 3,
- Unknown_4 = 4,
- Magical = 5,
- Darkness = 6,
- Unknown_7 = 7,
- LimitBreak = 8,
- };
+enum class ActionType :
+ int8_t
+{
+ WeaponOverride = -1, // Needs more investigation (takes the damage type of the equipped weapon)?
+ Unknown_0 = 0,
+ Slashing = 1,
+ Piercing = 2,
+ Blunt = 3,
+ Unknown_4 = 4,
+ Magical = 5,
+ Darkness = 6,
+ Unknown_7 = 7,
+ LimitBreak = 8,
+};
- enum ActionEffectType : uint8_t
- {
- Nothing = 0,
- Miss = 1,
- FullResist = 2,
- Damage = 3,
- Heal = 4,
- BlockedDamage = 5,
- ParriedDamage = 6,
- Invulnerable = 7,
- NoEffectText = 8,
- Unknown_0 = 9,
- MpLoss = 10,
- MpGain = 11,
- TpLoss = 12,
- TpGain = 13,
- GpGain = 14,
- Knockback = 33,
- Mount = 38
- };
+enum ActionEffectType :
+ uint8_t
+{
+ Nothing = 0,
+ Miss = 1,
+ FullResist = 2,
+ Damage = 3,
+ Heal = 4,
+ BlockedDamage = 5,
+ ParriedDamage = 6,
+ Invulnerable = 7,
+ NoEffectText = 8,
+ Unknown_0 = 9,
+ MpLoss = 10,
+ MpGain = 11,
+ TpLoss = 12,
+ TpGain = 13,
+ GpGain = 14,
+ Knockback = 33,
+ Mount = 38
+};
- enum class ActionHitSeverityType : uint8_t
- {
- NormalDamage = 0,
- CritHeal = 0,
- CritDamage = 1,
- NormalHeal = 1,
- DirectHitDamage = 2,
- CritDirectHitDamage = 3
- };
+enum class ActionHitSeverityType :
+ uint8_t
+{
+ NormalDamage = 0,
+ CritHeal = 0,
+ CritDamage = 1,
+ NormalHeal = 1,
+ DirectHitDamage = 2,
+ CritDirectHitDamage = 3
+};
- enum ActionEffectDisplayType : uint8_t
- {
- HideActionName = 0,
- ShowActionName = 1,
- ShowItemName = 2,
- };
+enum ActionEffectDisplayType :
+ uint8_t
+{
+ HideActionName = 0,
+ ShowActionName = 1,
+ ShowItemName = 2,
+};
- enum class ActionCollisionType : uint8_t
- {
- None,
- SingleTarget,
- Circle,
- Cone,
- Box,
- Unknown,
- Unknown2,
- PersistentArea, // for when you set aoe like asylum
- Unknown3
- };
+enum class ActionCollisionType :
+ uint8_t
+{
+ None,
+ SingleTarget,
+ Circle,
+ Cone,
+ Box,
+ Unknown,
+ Unknown2,
+ PersistentArea, // for when you set aoe like asylum
+ Unknown3
+};
- enum HandleActionType : uint8_t
- {
- Event,
- Spell,
- Teleport
- };
+enum HandleActionType :
+ uint8_t
+{
+ Event,
+ Spell,
+ Teleport
+};
- enum HandleSkillType : uint8_t
- {
- StdDamage,
- StdHeal,
- StdDot,
- };
+enum HandleSkillType :
+ uint8_t
+{
+ StdDamage,
+ StdHeal,
+ StdDot,
+};
- enum InvincibilityType : uint8_t
- {
- InvincibilityNone,
- InvincibilityRefill,
- InvincibilityStayAlive,
- };
+enum InvincibilityType :
+ uint8_t
+{
+ InvincibilityNone,
+ InvincibilityRefill,
+ InvincibilityStayAlive,
+};
- enum PlayerStateFlag : uint8_t
- {
- HideUILockChar = 0, // as the name suggests, hides the ui and logs the char...
- InCombat = 1, // in Combat, locks gearchange/return/teleport
- Casting = 2,
- InNpcEvent = 7, // when talking to an npc, locks ui giving "occupied" message
+enum PlayerStateFlag :
+ uint8_t
+{
+ HideUILockChar = 0, // as the name suggests, hides the ui and logs the char...
+ InCombat = 1, // in Combat, locks gearchange/return/teleport
+ Casting = 2,
+ InNpcEvent = 7, // when talking to an npc, locks ui giving "occupied" message
- InNpcEvent1 = 10, // Sent together with InNpcEvent, when waiting for input? just a guess...
+ InNpcEvent1 = 10, // Sent together with InNpcEvent, when waiting for input? just a guess...
- BetweenAreas = 24,
- BoundByDuty = 28,
- WatchingCutscene = 50, // this is actually just a dummy, this id is different
+ BetweenAreas = 24,
+ BoundByDuty = 28,
+ WatchingCutscene = 50, // this is actually just a dummy, this id is different
- };
+};
- enum struct FateStatus : uint8_t
- {
- Active = 2,
- Inactive = 4,
- Preparing = 7,
- Completed = 8,
- };
+enum struct FateStatus :
+ uint8_t
+{
+ Active = 2,
+ Inactive = 4,
+ Preparing = 7,
+ Completed = 8,
+};
- enum struct ChatType : uint16_t
- {
- LogKindError,
- ServerDebug,
- ServerUrgent,
- ServerNotice,
- Unused4,
- Unused5,
- Unused6,
- Unused7,
- Unused8,
- Unused9,
- Say,
- Shout,
- Tell,
- TellReceive,
- Party,
- Alliance,
- LS1,
- LS2,
- LS3,
- LS4,
- LS5,
- LS6,
- LS7,
- LS8,
- FreeCompany,
- Unused25,
- Unused26,
- NoviceNetwork,
- CustomEmote,
- StandardEmote,
- Yell,
- Unknown31,
- PartyUnk2,
- Unused33,
- Unused34,
- Unused35,
- Unused36,
- Unused37,
- Unused38,
- Unused39,
- Unused40,
- BattleDamage,
- BattleFailed,
- BattleActions,
- BattleItems,
- BattleHealing,
- BattleBeneficial,
- BattleDetrimental,
- BattleUnk48,
- BattleUnk49,
- Unused50,
- Unused51,
- Unused52,
- Unused53,
- Unused54,
- Unused55,
- Echo,
- SystemMessage,
- SystemErrorMessage,
- BattleSystem,
- GatheringSystem,
- NPCMessage,
- LootMessage,
- Unused63,
- CharProgress,
- Loot,
- Crafting,
- Gathering,
- NPCAnnouncement,
- FCAnnouncement,
- FCLogin,
- RetainerSale,
- PartySearch,
- PCSign,
- DiceRoll,
- NoviceNetworkNotice,
- Unknown76,
- Unused77,
- Unused78,
- Unused79,
- GMTell,
- GMSay,
- GMShout,
- GMYell,
- GMParty,
- GMFreeCompany,
- GMLS1,
- GMLS2,
- GMLS3,
- GMLS4,
- GMLS5,
- GMLS6,
- GMLS7,
- GMLS8,
- GMNoviceNetwork,
- Unused95,
- Unused96,
- Unused97,
- Unused98,
- Unused99,
- Unused100
- };
+enum struct ChatType :
+ uint16_t
+{
+ LogKindError,
+ ServerDebug,
+ ServerUrgent,
+ ServerNotice,
+ Unused4,
+ Unused5,
+ Unused6,
+ Unused7,
+ Unused8,
+ Unused9,
+ Say,
+ Shout,
+ Tell,
+ TellReceive,
+ Party,
+ Alliance,
+ LS1,
+ LS2,
+ LS3,
+ LS4,
+ LS5,
+ LS6,
+ LS7,
+ LS8,
+ FreeCompany,
+ Unused25,
+ Unused26,
+ NoviceNetwork,
+ CustomEmote,
+ StandardEmote,
+ Yell,
+ Unknown31,
+ PartyUnk2,
+ Unused33,
+ Unused34,
+ Unused35,
+ Unused36,
+ Unused37,
+ Unused38,
+ Unused39,
+ Unused40,
+ BattleDamage,
+ BattleFailed,
+ BattleActions,
+ BattleItems,
+ BattleHealing,
+ BattleBeneficial,
+ BattleDetrimental,
+ BattleUnk48,
+ BattleUnk49,
+ Unused50,
+ Unused51,
+ Unused52,
+ Unused53,
+ Unused54,
+ Unused55,
+ Echo,
+ SystemMessage,
+ SystemErrorMessage,
+ BattleSystem,
+ GatheringSystem,
+ NPCMessage,
+ LootMessage,
+ Unused63,
+ CharProgress,
+ Loot,
+ Crafting,
+ Gathering,
+ NPCAnnouncement,
+ FCAnnouncement,
+ FCLogin,
+ RetainerSale,
+ PartySearch,
+ PCSign,
+ DiceRoll,
+ NoviceNetworkNotice,
+ Unknown76,
+ Unused77,
+ Unused78,
+ Unused79,
+ GMTell,
+ GMSay,
+ GMShout,
+ GMYell,
+ GMParty,
+ GMFreeCompany,
+ GMLS1,
+ GMLS2,
+ GMLS3,
+ GMLS4,
+ GMLS5,
+ GMLS6,
+ GMLS7,
+ GMLS8,
+ GMNoviceNetwork,
+ Unused95,
+ Unused96,
+ Unused97,
+ Unused98,
+ Unused99,
+ Unused100
+};
- enum EquipDisplayFlags : uint8_t
- {
- HideNothing = 0x0,
- HideHead = 0x1,
- HideWeapon = 0x2,
- HideLegacyMark = 0x4,
+enum EquipDisplayFlags :
+ uint8_t
+{
+ HideNothing = 0x0,
+ HideHead = 0x1,
+ HideWeapon = 0x2,
+ HideLegacyMark = 0x4,
- Visor = 0x40,
- };
+ StoreNewItemsInArmouryChest = 0x10,
+ StoreCraftedItemsInInventory = 0x20,
- enum SkillType : uint8_t
- {
- Normal = 0x1,
- MountSkill = 0xD,
- };
+ Visor = 0x40,
+};
- typedef std::vector< PlayerStateFlag > PlayerStateFlagList;
+enum SkillType :
+ uint8_t
+{
+ Normal = 0x1,
+ MountSkill = 0xD,
+};
+
+typedef std::vector< PlayerStateFlag > PlayerStateFlagList;
} /* Common */
} /* Core */
diff --git a/src/common/CommonGen.cpp b/src/common/CommonGen.cpp
index 7ea09791..668f8cee 100644
--- a/src/common/CommonGen.cpp
+++ b/src/common/CommonGen.cpp
@@ -5,37 +5,164 @@
namespace Core {
namespace Common {
- bool operator==( const ActionCategory& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const ActionCategory& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const BeastReputationRank& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const BeastReputationRank& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const BeastTribe& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const BeastTribe& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const ClassJob& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const ClassJob& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const ContentType& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const ContentType& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const EmoteCategory& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const EmoteCategory& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const ExVersion& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const ExVersion& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const GrandCompany& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const GrandCompany& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const GuardianDeity& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const GuardianDeity& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const ItemUICategory& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const ItemUICategory& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const ItemSearchCategory& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const ItemSearchCategory& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const OnlineStatus& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const OnlineStatus& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const Race& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const Race& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const Tribe& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const Tribe& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const Town& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const Town& t ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const Weather& t, const uint8_t& g ) { return static_cast< uint8_t >( t ) == g; }
- bool operator==( const uint8_t& g, const Weather& t ) { return static_cast< uint8_t >( t ) == g; }
+bool operator==( const ActionCategory& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const ActionCategory& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const BeastReputationRank& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const BeastReputationRank& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const BeastTribe& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const BeastTribe& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const ClassJob& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const ClassJob& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const ContentType& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const ContentType& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const EmoteCategory& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const EmoteCategory& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const ExVersion& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const ExVersion& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const GrandCompany& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const GrandCompany& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const GuardianDeity& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const GuardianDeity& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const ItemUICategory& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const ItemUICategory& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const ItemSearchCategory& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const ItemSearchCategory& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const OnlineStatus& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const OnlineStatus& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const Race& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const Race& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const Tribe& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const Tribe& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const Town& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const Town& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const Weather& t, const uint8_t& g )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
+
+bool operator==( const uint8_t& g, const Weather& t )
+{
+ return static_cast< uint8_t >( t ) == g;
+}
}
}
\ No newline at end of file
diff --git a/src/common/CommonGen.h b/src/common/CommonGen.h
index 5e9bf149..dc99925d 100644
--- a/src/common/CommonGen.h
+++ b/src/common/CommonGen.h
@@ -9,552 +9,568 @@
namespace Core {
namespace Common {
- ///////////////////////////////////////////////////////////
- //ActionCategory.exd
- enum class ActionCategory : uint8_t
- {
- Autoattack = 1,
- Spell = 2,
- Weaponskill = 3,
- Ability = 4,
- Item = 5,
- DoLAbility = 6,
- DoHAbility = 7,
- Event = 8,
- LimitBreak = 9,
- System = 10,
- Artillery = 11,
- Mount = 12,
- Glamour = 13,
- ItemManipulation = 14,
- AdrenalineRush = 15,
- };
+///////////////////////////////////////////////////////////
+//ActionCategory.exd
+enum class ActionCategory :
+ uint8_t
+{
+ Autoattack = 1,
+ Spell = 2,
+ Weaponskill = 3,
+ Ability = 4,
+ Item = 5,
+ DoLAbility = 6,
+ DoHAbility = 7,
+ Event = 8,
+ LimitBreak = 9,
+ System = 10,
+ Artillery = 11,
+ Mount = 12,
+ Glamour = 13,
+ ItemManipulation = 14,
+ AdrenalineRush = 15,
+};
- ///////////////////////////////////////////////////////////
- //BeastReputationRank.exd
- enum class BeastReputationRank : uint8_t
- {
- None = 0,
- Neutral = 1,
- Recognized = 2,
- Friendly = 3,
- Trusted = 4,
- Respected = 5,
- Honored = 6,
- Sworn = 7,
- Allied = 8,
- };
+///////////////////////////////////////////////////////////
+//BeastReputationRank.exd
+enum class BeastReputationRank :
+ uint8_t
+{
+ None = 0,
+ Neutral = 1,
+ Recognized = 2,
+ Friendly = 3,
+ Trusted = 4,
+ Respected = 5,
+ Honored = 6,
+ Sworn = 7,
+ Allied = 8,
+};
- ///////////////////////////////////////////////////////////
- //BeastTribe.exd
- enum class BeastTribe : uint8_t
- {
- };
+///////////////////////////////////////////////////////////
+//BeastTribe.exd
+enum class BeastTribe :
+ uint8_t
+{
+};
- ///////////////////////////////////////////////////////////
- //ClassJob.exd
- enum class ClassJob : uint8_t
- {
- Adventurer = 0,
- Gladiator = 1,
- Pugilist = 2,
- Marauder = 3,
- Lancer = 4,
- Archer = 5,
- Conjurer = 6,
- Thaumaturge = 7,
- Carpenter = 8,
- Blacksmith = 9,
- Armorer = 10,
- Goldsmith = 11,
- Leatherworker = 12,
- Weaver = 13,
- Alchemist = 14,
- Culinarian = 15,
- Miner = 16,
- Botanist = 17,
- Fisher = 18,
- Paladin = 19,
- Monk = 20,
- Warrior = 21,
- Dragoon = 22,
- Bard = 23,
- Whitemage = 24,
- Blackmage = 25,
- Arcanist = 26,
- Summoner = 27,
- Scholar = 28,
- Rogue = 29,
- Ninja = 30,
- Machinist = 31,
- Darkknight = 32,
- Astrologian = 33,
- Samurai = 34,
- Redmage = 35,
- };
+///////////////////////////////////////////////////////////
+//ClassJob.exd
+enum class ClassJob :
+ uint8_t
+{
+ Adventurer = 0,
+ Gladiator = 1,
+ Pugilist = 2,
+ Marauder = 3,
+ Lancer = 4,
+ Archer = 5,
+ Conjurer = 6,
+ Thaumaturge = 7,
+ Carpenter = 8,
+ Blacksmith = 9,
+ Armorer = 10,
+ Goldsmith = 11,
+ Leatherworker = 12,
+ Weaver = 13,
+ Alchemist = 14,
+ Culinarian = 15,
+ Miner = 16,
+ Botanist = 17,
+ Fisher = 18,
+ Paladin = 19,
+ Monk = 20,
+ Warrior = 21,
+ Dragoon = 22,
+ Bard = 23,
+ Whitemage = 24,
+ Blackmage = 25,
+ Arcanist = 26,
+ Summoner = 27,
+ Scholar = 28,
+ Rogue = 29,
+ Ninja = 30,
+ Machinist = 31,
+ Darkknight = 32,
+ Astrologian = 33,
+ Samurai = 34,
+ Redmage = 35,
+};
- ///////////////////////////////////////////////////////////
- //ContentType.exd
- enum class ContentType : uint8_t
- {
- DutyRoulette = 1,
- Dungeons = 2,
- Guildhests = 3,
- Trials = 4,
- Raids = 5,
- PvP = 6,
- QuestBattles = 7,
- FATEs = 8,
- TreasureHunt = 9,
- Levequests = 10,
- GrandCompany = 11,
- Companions = 12,
- BeastTribeQuests = 13,
- OverallCompletion = 14,
- PlayerCommendation = 15,
- DisciplesoftheLand = 16,
- DisciplesoftheHand = 17,
- RetainerVentures = 18,
- GoldSaucer = 19,
- DeepDungeons = 21,
- WondrousTails = 24,
- CustomDeliveries = 25,
- };
+///////////////////////////////////////////////////////////
+//ContentType.exd
+enum class ContentType :
+ uint8_t
+{
+ DutyRoulette = 1,
+ Dungeons = 2,
+ Guildhests = 3,
+ Trials = 4,
+ Raids = 5,
+ PvP = 6,
+ QuestBattles = 7,
+ FATEs = 8,
+ TreasureHunt = 9,
+ Levequests = 10,
+ GrandCompany = 11,
+ Companions = 12,
+ BeastTribeQuests = 13,
+ OverallCompletion = 14,
+ PlayerCommendation = 15,
+ DisciplesoftheLand = 16,
+ DisciplesoftheHand = 17,
+ RetainerVentures = 18,
+ GoldSaucer = 19,
+ DeepDungeons = 21,
+ WondrousTails = 24,
+ CustomDeliveries = 25,
+};
- ///////////////////////////////////////////////////////////
- //EmoteCategory.exd
- enum class EmoteCategory : uint8_t
- {
- General = 1,
- Persistent = 2,
- Expressions = 3,
- };
+///////////////////////////////////////////////////////////
+//EmoteCategory.exd
+enum class EmoteCategory :
+ uint8_t
+{
+ General = 1,
+ Persistent = 2,
+ Expressions = 3,
+};
- ///////////////////////////////////////////////////////////
- //ExVersion.exd
- enum class ExVersion : uint8_t
- {
- ARealmReborn = 0,
- Heavensward = 1,
- Stormblood = 2,
- };
+///////////////////////////////////////////////////////////
+//ExVersion.exd
+enum class ExVersion :
+ uint8_t
+{
+ ARealmReborn = 0,
+ Heavensward = 1,
+ Stormblood = 2,
+};
- ///////////////////////////////////////////////////////////
- //GrandCompany.exd
- enum class GrandCompany : uint8_t
- {
- None = 0,
- Maelstrom = 1,
- OrderoftheTwinAdder = 2,
- ImmortalFlames = 3,
- };
+///////////////////////////////////////////////////////////
+//GrandCompany.exd
+enum class GrandCompany :
+ uint8_t
+{
+ None = 0,
+ Maelstrom = 1,
+ OrderoftheTwinAdder = 2,
+ ImmortalFlames = 3,
+};
- ///////////////////////////////////////////////////////////
- //GuardianDeity.exd
- enum class GuardianDeity : uint8_t
- {
- HalonetheFury = 1,
- MenphinatheLover = 2,
- ThaliaktheScholar = 3,
- NymeiatheSpinner = 4,
- LlymlaentheNavigator = 5,
- OschontheWanderer = 6,
- ByregottheBuilder = 7,
- RhalgrtheDestroyer = 8,
- AzeymatheWarden = 9,
- NaldthaltheTraders = 10,
- NophicatheMatron = 11,
- AlthyktheKeeper = 12,
- };
+///////////////////////////////////////////////////////////
+//GuardianDeity.exd
+enum class GuardianDeity :
+ uint8_t
+{
+ HalonetheFury = 1,
+ MenphinatheLover = 2,
+ ThaliaktheScholar = 3,
+ NymeiatheSpinner = 4,
+ LlymlaentheNavigator = 5,
+ OschontheWanderer = 6,
+ ByregottheBuilder = 7,
+ RhalgrtheDestroyer = 8,
+ AzeymatheWarden = 9,
+ NaldthaltheTraders = 10,
+ NophicatheMatron = 11,
+ AlthyktheKeeper = 12,
+};
- ///////////////////////////////////////////////////////////
- //ItemUICategory.exd
- enum class ItemUICategory : uint8_t
- {
- PugilistsArm = 1,
- GladiatorsArm = 2,
- MaraudersArm = 3,
- ArchersArm = 4,
- LancersArm = 5,
- OnehandedThaumaturgesArm = 6,
- TwohandedThaumaturgesArm = 7,
- OnehandedConjurersArm = 8,
- TwohandedConjurersArm = 9,
- ArcanistsGrimoire = 10,
- Shield = 11,
- CarpentersPrimaryTool = 12,
- CarpentersSecondaryTool = 13,
- BlacksmithsPrimaryTool = 14,
- BlacksmithsSecondaryTool = 15,
- ArmorersPrimaryTool = 16,
- ArmorersSecondaryTool = 17,
- GoldsmithsPrimaryTool = 18,
- GoldsmithsSecondaryTool = 19,
- LeatherworkersPrimaryTool = 20,
- LeatherworkersSecondaryTool = 21,
- WeaversPrimaryTool = 22,
- WeaversSecondaryTool = 23,
- AlchemistsPrimaryTool = 24,
- AlchemistsSecondaryTool = 25,
- CulinariansPrimaryTool = 26,
- CulinariansSecondaryTool = 27,
- MinersPrimaryTool = 28,
- MinersSecondaryTool = 29,
- BotanistsPrimaryTool = 30,
- BotanistsSecondaryTool = 31,
- FishersPrimaryTool = 32,
- FishingTackle = 33,
- Head = 34,
- Body = 35,
- Legs = 36,
- Hands = 37,
- Feet = 38,
- Waist = 39,
- Necklace = 40,
- Earrings = 41,
- Bracelets = 42,
- Ring = 43,
- Medicine = 44,
- Ingredient = 45,
- Meal = 46,
- Seafood = 47,
- Stone = 48,
- Metal = 49,
- Lumber = 50,
- Cloth = 51,
- Leather = 52,
- Bone = 53,
- Reagent = 54,
- Dye = 55,
- Part = 56,
- Furnishing = 57,
- Materia = 58,
- Crystal = 59,
- Catalyst = 60,
- Miscellany = 61,
- SoulCrystal = 62,
- Other = 63,
- ConstructionPermit = 64,
- Roof = 65,
- ExteriorWall = 66,
- Window = 67,
- Door = 68,
- RoofDecoration = 69,
- ExteriorWallDecoration = 70,
- Placard = 71,
- Fence = 72,
- InteriorWall = 73,
- Flooring = 74,
- CeilingLight = 75,
- OutdoorFurnishing = 76,
- Table = 77,
- Tabletop = 78,
- Wallmounted = 79,
- Rug = 80,
- Minion = 81,
- Gardening = 82,
- Demimateria = 83,
- RoguesArm = 84,
- SeasonalMiscellany = 85,
- TripleTriadCard = 86,
- DarkKnightsArm = 87,
- MachinistsArm = 88,
- AstrologiansArm = 89,
- AirshipHull = 90,
- AirshipRigging = 91,
- AirshipAftcastle = 92,
- AirshipForecastle = 93,
- OrchestrionRoll = 94,
- Painting = 95,
- SamuraisArm = 96,
- RedMagesArm = 97,
- ScholarsArm = 98,
- FishersSecondaryTool = 99,
- Currency = 100,
- };
+///////////////////////////////////////////////////////////
+//ItemUICategory.exd
+enum class ItemUICategory :
+ uint8_t
+{
+ PugilistsArm = 1,
+ GladiatorsArm = 2,
+ MaraudersArm = 3,
+ ArchersArm = 4,
+ LancersArm = 5,
+ OnehandedThaumaturgesArm = 6,
+ TwohandedThaumaturgesArm = 7,
+ OnehandedConjurersArm = 8,
+ TwohandedConjurersArm = 9,
+ ArcanistsGrimoire = 10,
+ Shield = 11,
+ CarpentersPrimaryTool = 12,
+ CarpentersSecondaryTool = 13,
+ BlacksmithsPrimaryTool = 14,
+ BlacksmithsSecondaryTool = 15,
+ ArmorersPrimaryTool = 16,
+ ArmorersSecondaryTool = 17,
+ GoldsmithsPrimaryTool = 18,
+ GoldsmithsSecondaryTool = 19,
+ LeatherworkersPrimaryTool = 20,
+ LeatherworkersSecondaryTool = 21,
+ WeaversPrimaryTool = 22,
+ WeaversSecondaryTool = 23,
+ AlchemistsPrimaryTool = 24,
+ AlchemistsSecondaryTool = 25,
+ CulinariansPrimaryTool = 26,
+ CulinariansSecondaryTool = 27,
+ MinersPrimaryTool = 28,
+ MinersSecondaryTool = 29,
+ BotanistsPrimaryTool = 30,
+ BotanistsSecondaryTool = 31,
+ FishersPrimaryTool = 32,
+ FishingTackle = 33,
+ Head = 34,
+ Body = 35,
+ Legs = 36,
+ Hands = 37,
+ Feet = 38,
+ Waist = 39,
+ Necklace = 40,
+ Earrings = 41,
+ Bracelets = 42,
+ Ring = 43,
+ Medicine = 44,
+ Ingredient = 45,
+ Meal = 46,
+ Seafood = 47,
+ Stone = 48,
+ Metal = 49,
+ Lumber = 50,
+ Cloth = 51,
+ Leather = 52,
+ Bone = 53,
+ Reagent = 54,
+ Dye = 55,
+ Part = 56,
+ Furnishing = 57,
+ Materia = 58,
+ Crystal = 59,
+ Catalyst = 60,
+ Miscellany = 61,
+ SoulCrystal = 62,
+ Other = 63,
+ ConstructionPermit = 64,
+ Roof = 65,
+ ExteriorWall = 66,
+ Window = 67,
+ Door = 68,
+ RoofDecoration = 69,
+ ExteriorWallDecoration = 70,
+ Placard = 71,
+ Fence = 72,
+ InteriorWall = 73,
+ Flooring = 74,
+ CeilingLight = 75,
+ OutdoorFurnishing = 76,
+ Table = 77,
+ Tabletop = 78,
+ Wallmounted = 79,
+ Rug = 80,
+ Minion = 81,
+ Gardening = 82,
+ Demimateria = 83,
+ RoguesArm = 84,
+ SeasonalMiscellany = 85,
+ TripleTriadCard = 86,
+ DarkKnightsArm = 87,
+ MachinistsArm = 88,
+ AstrologiansArm = 89,
+ AirshipHull = 90,
+ AirshipRigging = 91,
+ AirshipAftcastle = 92,
+ AirshipForecastle = 93,
+ OrchestrionRoll = 94,
+ Painting = 95,
+ SamuraisArm = 96,
+ RedMagesArm = 97,
+ ScholarsArm = 98,
+ FishersSecondaryTool = 99,
+ Currency = 100,
+};
- ///////////////////////////////////////////////////////////
- //ItemSearchCategory.exd
- enum class ItemSearchCategory : uint8_t
- {
- PrimaryArms = 1,
- PrimaryTools = 2,
- PrimaryTools1 = 3,
- Armor = 4,
- Accessories = 5,
- Medicines = 6,
- Materials = 7,
- Other = 8,
- PugilistsArms = 9,
- GladiatorsArms = 10,
- MaraudersArms = 11,
- ArchersArms = 12,
- LancersArms = 13,
- ThaumaturgesArms = 14,
- ConjurersArms = 15,
- ArcanistsArms = 16,
- Shields = 17,
- ThrowingWeapons = 18,
- CarpentersTools = 19,
- BlacksmithsTools = 20,
- ArmorersTools = 21,
- GoldsmithsTools = 22,
- LeatherworkersTools = 23,
- WeaversTools = 24,
- AlchemistsTools = 25,
- CulinariansTools = 26,
- MinersTools = 27,
- BotanistsTools = 28,
- FishersTools = 29,
- FishingTackle = 30,
- Head = 31,
- Undershirts = 32,
- Body = 33,
- Undergarments = 34,
- Legs = 35,
- Hands = 36,
- Feet = 37,
- Waist = 38,
- Necklaces = 39,
- Earrings = 40,
- Bracelets = 41,
- Rings = 42,
- Medicine = 43,
- Ingredients = 44,
- Meals = 45,
- Seafood = 46,
- Stone = 47,
- Metal = 48,
- Lumber = 49,
- Cloth = 50,
- Leather = 51,
- Bone = 52,
- Reagents = 53,
- Dyes = 54,
- WeaponParts = 55,
- Furnishings = 56,
- Materia = 57,
- Crystals = 58,
- Catalysts = 59,
- Miscellany = 60,
- SoulCrystals = 61,
- Arrows = 62,
- QuestItems = 63,
- Other1 = 64,
- ExteriorFixtures = 65,
- InteriorFixtures = 66,
- OutdoorFurnishings = 67,
- ChairsandBeds = 68,
- Tables = 69,
- Tabletop = 70,
- Wallmounted = 71,
- Rugs = 72,
- RoguesArms = 73,
- SeasonalMiscellany = 74,
- Minions = 75,
- DarkKnightsArms = 76,
- MachinistsArms = 77,
- AstrologiansArms = 78,
- AirshipComponents = 79,
- OrchestrionComponents = 80,
- GardeningItems = 81,
- Paintings = 82,
- SamuraisArms = 83,
- RedMagesArms = 84,
- ScholarsArms = 85,
- };
+///////////////////////////////////////////////////////////
+//ItemSearchCategory.exd
+enum class ItemSearchCategory :
+ uint8_t
+{
+ PrimaryArms = 1,
+ PrimaryTools = 2,
+ PrimaryTools1 = 3,
+ Armor = 4,
+ Accessories = 5,
+ Medicines = 6,
+ Materials = 7,
+ Other = 8,
+ PugilistsArms = 9,
+ GladiatorsArms = 10,
+ MaraudersArms = 11,
+ ArchersArms = 12,
+ LancersArms = 13,
+ ThaumaturgesArms = 14,
+ ConjurersArms = 15,
+ ArcanistsArms = 16,
+ Shields = 17,
+ ThrowingWeapons = 18,
+ CarpentersTools = 19,
+ BlacksmithsTools = 20,
+ ArmorersTools = 21,
+ GoldsmithsTools = 22,
+ LeatherworkersTools = 23,
+ WeaversTools = 24,
+ AlchemistsTools = 25,
+ CulinariansTools = 26,
+ MinersTools = 27,
+ BotanistsTools = 28,
+ FishersTools = 29,
+ FishingTackle = 30,
+ Head = 31,
+ Undershirts = 32,
+ Body = 33,
+ Undergarments = 34,
+ Legs = 35,
+ Hands = 36,
+ Feet = 37,
+ Waist = 38,
+ Necklaces = 39,
+ Earrings = 40,
+ Bracelets = 41,
+ Rings = 42,
+ Medicine = 43,
+ Ingredients = 44,
+ Meals = 45,
+ Seafood = 46,
+ Stone = 47,
+ Metal = 48,
+ Lumber = 49,
+ Cloth = 50,
+ Leather = 51,
+ Bone = 52,
+ Reagents = 53,
+ Dyes = 54,
+ WeaponParts = 55,
+ Furnishings = 56,
+ Materia = 57,
+ Crystals = 58,
+ Catalysts = 59,
+ Miscellany = 60,
+ SoulCrystals = 61,
+ Arrows = 62,
+ QuestItems = 63,
+ Other1 = 64,
+ ExteriorFixtures = 65,
+ InteriorFixtures = 66,
+ OutdoorFurnishings = 67,
+ ChairsandBeds = 68,
+ Tables = 69,
+ Tabletop = 70,
+ Wallmounted = 71,
+ Rugs = 72,
+ RoguesArms = 73,
+ SeasonalMiscellany = 74,
+ Minions = 75,
+ DarkKnightsArms = 76,
+ MachinistsArms = 77,
+ AstrologiansArms = 78,
+ AirshipComponents = 79,
+ OrchestrionComponents = 80,
+ GardeningItems = 81,
+ Paintings = 82,
+ SamuraisArms = 83,
+ RedMagesArms = 84,
+ ScholarsArms = 85,
+};
- ///////////////////////////////////////////////////////////
- //OnlineStatus.exd
- enum class OnlineStatus : uint8_t
- {
- Producer = 1,
- GameMaster = 2,
- GameMaster1 = 3,
- GameMaster2 = 4,
- Disconnected = 5,
- WaitingforFriendListApproval = 6,
- WaitingforLinkshellApproval = 7,
- WaitingforFreeCompanyApproval = 8,
- NotFound = 9,
- Offline = 10,
- Mentor = 11,
- Busy = 12,
- PvP = 13,
- PlayingTripleTriad = 14,
- ViewingCutscene = 15,
- UsingaChocoboPorter = 16,
- AwayfromKeyboard = 17,
- CameraMode = 18,
- LookingforRepairs = 19,
- LookingtoRepair = 20,
- LookingtoMeldMateria = 21,
- Roleplaying = 22,
- LookingforParty = 23,
- SwordforHire = 24,
- WaitingforDutyFinder = 25,
- RecruitingPartyMembers = 26,
- Mentor1 = 27,
- PvEMentor = 28,
- TradeMentor = 29,
- PvPMentor = 30,
- Returner = 31,
- NewAdventurer = 32,
- AllianceLeader = 33,
- AlliancePartyLeader = 34,
- AlliancePartyMember = 35,
- PartyLeader = 36,
- PartyMember = 37,
- PartyLeaderCrossworld = 38,
- PartyMemberCrossworld = 39,
- AnotherWorld = 40,
- SharingDuty = 41,
- SimilarDuty = 42,
- InDuty = 43,
- TrialAdventurer = 44,
- FreeCompany = 45,
- GrandCompany = 46,
- Online = 47,
- };
+///////////////////////////////////////////////////////////
+//OnlineStatus.exd
+enum class OnlineStatus :
+ uint8_t
+{
+ Producer = 1,
+ GameMaster = 2,
+ GameMaster1 = 3,
+ GameMaster2 = 4,
+ Disconnected = 5,
+ WaitingforFriendListApproval = 6,
+ WaitingforLinkshellApproval = 7,
+ WaitingforFreeCompanyApproval = 8,
+ NotFound = 9,
+ Offline = 10,
+ Mentor = 11,
+ Busy = 12,
+ PvP = 13,
+ PlayingTripleTriad = 14,
+ ViewingCutscene = 15,
+ UsingaChocoboPorter = 16,
+ AwayfromKeyboard = 17,
+ CameraMode = 18,
+ LookingforRepairs = 19,
+ LookingtoRepair = 20,
+ LookingtoMeldMateria = 21,
+ Roleplaying = 22,
+ LookingforParty = 23,
+ SwordforHire = 24,
+ WaitingforDutyFinder = 25,
+ RecruitingPartyMembers = 26,
+ Mentor1 = 27,
+ PvEMentor = 28,
+ TradeMentor = 29,
+ PvPMentor = 30,
+ Returner = 31,
+ NewAdventurer = 32,
+ AllianceLeader = 33,
+ AlliancePartyLeader = 34,
+ AlliancePartyMember = 35,
+ PartyLeader = 36,
+ PartyMember = 37,
+ PartyLeaderCrossworld = 38,
+ PartyMemberCrossworld = 39,
+ AnotherWorld = 40,
+ SharingDuty = 41,
+ SimilarDuty = 42,
+ InDuty = 43,
+ TrialAdventurer = 44,
+ FreeCompany = 45,
+ GrandCompany = 46,
+ Online = 47,
+};
- ///////////////////////////////////////////////////////////
- //Race.exd
- enum class Race : uint8_t
- {
- Hyur = 1,
- Elezen = 2,
- Lalafell = 3,
- Miqote = 4,
- Roegadyn = 5,
- AuRa = 6,
- };
+///////////////////////////////////////////////////////////
+//Race.exd
+enum class Race :
+ uint8_t
+{
+ Hyur = 1,
+ Elezen = 2,
+ Lalafell = 3,
+ Miqote = 4,
+ Roegadyn = 5,
+ AuRa = 6,
+};
- ///////////////////////////////////////////////////////////
- //Tribe.exd
- enum class Tribe : uint8_t
- {
- Midlander = 1,
- Highlander = 2,
- Wildwood = 3,
- Duskwight = 4,
- Plainsfolk = 5,
- Dunesfolk = 6,
- SeekeroftheSun = 7,
- KeeperoftheMoon = 8,
- SeaWolf = 9,
- Hellsguard = 10,
- Raen = 11,
- Xaela = 12,
- };
+///////////////////////////////////////////////////////////
+//Tribe.exd
+enum class Tribe :
+ uint8_t
+{
+ Midlander = 1,
+ Highlander = 2,
+ Wildwood = 3,
+ Duskwight = 4,
+ Plainsfolk = 5,
+ Dunesfolk = 6,
+ SeekeroftheSun = 7,
+ KeeperoftheMoon = 8,
+ SeaWolf = 9,
+ Hellsguard = 10,
+ Raen = 11,
+ Xaela = 12,
+};
- ///////////////////////////////////////////////////////////
- //Town.exd
- enum class Town : uint8_t
- {
- Nowheresville = 0,
- LimsaLominsa = 1,
- Gridania = 2,
- Uldah = 3,
- Ishgard = 4,
- Kugane = 7,
- };
+///////////////////////////////////////////////////////////
+//Town.exd
+enum class Town :
+ uint8_t
+{
+ Nowheresville = 0,
+ LimsaLominsa = 1,
+ Gridania = 2,
+ Uldah = 3,
+ Ishgard = 4,
+ Kugane = 7,
+};
- ///////////////////////////////////////////////////////////
- //Weather.exd
- enum class Weather : uint8_t
- {
- None = 0,
- ClearSkies = 1,
- FairSkies = 2,
- Clouds = 3,
- Fog = 4,
- Wind = 5,
- Gales = 6,
- Rain = 7,
- Showers = 8,
- Thunder = 9,
- Thunderstorms = 10,
- DustStorms = 11,
- Sandstorms = 12,
- HotSpells = 13,
- HeatWaves = 14,
- Snow = 15,
- Blizzards = 16,
- Gloom = 17,
- Auroras = 18,
- Darkness = 19,
- Tension = 20,
- Clouds1 = 21,
- StormClouds = 22,
- RoughSeas = 23,
- RoughSeas1 = 24,
- Louring = 25,
- HeatWaves1 = 26,
- Gloom1 = 27,
- Gales1 = 28,
- Eruptions = 29,
- FairSkies1 = 30,
- FairSkies2 = 31,
- FairSkies3 = 32,
- FairSkies4 = 33,
- FairSkies5 = 34,
- Irradiance = 35,
- CoreRadiation = 36,
- CoreRadiation1 = 37,
- CoreRadiation2 = 38,
- CoreRadiation3 = 39,
- ShelfClouds = 40,
- ShelfClouds1 = 41,
- ShelfClouds2 = 42,
- ShelfClouds3 = 43,
- Oppression = 44,
- Oppression1 = 45,
- Oppression2 = 46,
- Oppression3 = 47,
- Oppression4 = 48,
- UmbralWind = 49,
- UmbralStatic = 50,
- Smoke = 51,
- FairSkies6 = 52,
- RoyalLevin = 53,
- Hyperelectricity = 54,
- RoyalLevin1 = 55,
- Oppression5 = 56,
- Thunder1 = 57,
- Thunder2 = 58,
- CutScene = 59,
- Multiplicity = 60,
- Multiplicity1 = 61,
- Rain1 = 62,
- FairSkies7 = 63,
- Rain2 = 64,
- FairSkies8 = 65,
- Dragonstorm = 66,
- Dragonstorm1 = 67,
- Subterrain = 68,
- Concordance = 69,
- Concordance1 = 70,
- BeyondTime = 71,
- BeyondTime1 = 72,
- BeyondTime2 = 73,
- DemonicInfinity = 74,
- DemonicInfinity1 = 75,
- DemonicInfinity2 = 76,
- DimensionalDisruption = 77,
- DimensionalDisruption1 = 78,
- DimensionalDisruption2 = 79,
- Revelstorm = 80,
- Revelstorm1 = 81,
- EternalBliss = 82,
- EternalBliss1 = 83,
- Wyrmstorm = 84,
- Wyrmstorm1 = 85,
- Revelstorm2 = 86,
- Quicklevin = 87,
- Thunder3 = 88,
- DimensionalDisruption3 = 89,
- FairSkies9 = 90,
- };
+///////////////////////////////////////////////////////////
+//Weather.exd
+enum class Weather :
+ uint8_t
+{
+ None = 0,
+ ClearSkies = 1,
+ FairSkies = 2,
+ Clouds = 3,
+ Fog = 4,
+ Wind = 5,
+ Gales = 6,
+ Rain = 7,
+ Showers = 8,
+ Thunder = 9,
+ Thunderstorms = 10,
+ DustStorms = 11,
+ Sandstorms = 12,
+ HotSpells = 13,
+ HeatWaves = 14,
+ Snow = 15,
+ Blizzards = 16,
+ Gloom = 17,
+ Auroras = 18,
+ Darkness = 19,
+ Tension = 20,
+ Clouds1 = 21,
+ StormClouds = 22,
+ RoughSeas = 23,
+ RoughSeas1 = 24,
+ Louring = 25,
+ HeatWaves1 = 26,
+ Gloom1 = 27,
+ Gales1 = 28,
+ Eruptions = 29,
+ FairSkies1 = 30,
+ FairSkies2 = 31,
+ FairSkies3 = 32,
+ FairSkies4 = 33,
+ FairSkies5 = 34,
+ Irradiance = 35,
+ CoreRadiation = 36,
+ CoreRadiation1 = 37,
+ CoreRadiation2 = 38,
+ CoreRadiation3 = 39,
+ ShelfClouds = 40,
+ ShelfClouds1 = 41,
+ ShelfClouds2 = 42,
+ ShelfClouds3 = 43,
+ Oppression = 44,
+ Oppression1 = 45,
+ Oppression2 = 46,
+ Oppression3 = 47,
+ Oppression4 = 48,
+ UmbralWind = 49,
+ UmbralStatic = 50,
+ Smoke = 51,
+ FairSkies6 = 52,
+ RoyalLevin = 53,
+ Hyperelectricity = 54,
+ RoyalLevin1 = 55,
+ Oppression5 = 56,
+ Thunder1 = 57,
+ Thunder2 = 58,
+ CutScene = 59,
+ Multiplicity = 60,
+ Multiplicity1 = 61,
+ Rain1 = 62,
+ FairSkies7 = 63,
+ Rain2 = 64,
+ FairSkies8 = 65,
+ Dragonstorm = 66,
+ Dragonstorm1 = 67,
+ Subterrain = 68,
+ Concordance = 69,
+ Concordance1 = 70,
+ BeyondTime = 71,
+ BeyondTime1 = 72,
+ BeyondTime2 = 73,
+ DemonicInfinity = 74,
+ DemonicInfinity1 = 75,
+ DemonicInfinity2 = 76,
+ DimensionalDisruption = 77,
+ DimensionalDisruption1 = 78,
+ DimensionalDisruption2 = 79,
+ Revelstorm = 80,
+ Revelstorm1 = 81,
+ EternalBliss = 82,
+ EternalBliss1 = 83,
+ Wyrmstorm = 84,
+ Wyrmstorm1 = 85,
+ Revelstorm2 = 86,
+ Quicklevin = 87,
+ Thunder3 = 88,
+ DimensionalDisruption3 = 89,
+ FairSkies9 = 90,
+};
}
}
#endif
diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp
index b19253ea..2c921a9c 100644
--- a/src/common/Config/ConfigMgr.cpp
+++ b/src/common/Config/ConfigMgr.cpp
@@ -10,57 +10,57 @@
*/
bool Core::ConfigMgr::loadConfig( const std::string& configName )
{
- std::stringstream configStream;
+ std::stringstream configStream;
- // get global config
- auto configDir = boost::filesystem::path( m_configFolderRoot );
+ // get global config
+ auto configDir = boost::filesystem::path( m_configFolderRoot );
- if( !boost::filesystem::exists( configDir ) )
- {
+ if( !boost::filesystem::exists( configDir ) )
+ {
+ return false;
+ }
+
+ auto globalConfig = boost::filesystem::path( configDir / m_globalConfigFile );
+ if( !boost::filesystem::exists( globalConfig ) )
+ {
+ if( !copyDefaultConfig( globalConfig.filename().string() ) )
return false;
- }
+ }
- auto globalConfig = boost::filesystem::path( configDir / m_globalConfigFile );
- if( !boost::filesystem::exists( globalConfig ) )
- {
- if( !copyDefaultConfig( globalConfig.filename().string() ) )
- return false;
- }
+ std::ifstream globalConfigFile( globalConfig.c_str() );
+ configStream << globalConfigFile.rdbuf();
- std::ifstream globalConfigFile( globalConfig.c_str() );
- configStream << globalConfigFile.rdbuf();
+ // add some newlines just in case there's no newline at the end of the global file
+ configStream << "\n\n";
- // add some newlines just in case there's no newline at the end of the global file
- configStream << "\n\n";
+ // get local config
+ auto localConfig = boost::filesystem::path( configDir / configName );
+ if( !boost::filesystem::exists( localConfig ) )
+ {
+ if( !copyDefaultConfig( localConfig.filename().string() ) )
+ return false;
+ }
+ std::ifstream configFile( localConfig.c_str() );
+ configStream << configFile.rdbuf();
- // get local config
- auto localConfig = boost::filesystem::path( configDir / configName );
- if( !boost::filesystem::exists( localConfig ) )
- {
- if( !copyDefaultConfig( localConfig.filename().string() ) )
- return false;
- }
- std::ifstream configFile( localConfig.c_str() );
- configStream << configFile.rdbuf();
+ // parse the tree and we're fuckin done
+ boost::property_tree::read_ini( configStream, m_propTree );
- // parse the tree and we're fuckin done
- boost::property_tree::read_ini( configStream, m_propTree );
-
- return true;
+ return true;
}
bool Core::ConfigMgr::copyDefaultConfig( const std::string& configName )
{
- boost::filesystem::path configPath( m_configFolderRoot );
- configPath /= configName;
+ boost::filesystem::path configPath( m_configFolderRoot );
+ configPath /= configName;
- if( !boost::filesystem::exists( configPath.string() + m_configDefaultSuffix ) )
- {
- // no default file :(
- return false;
- }
+ if( !boost::filesystem::exists( configPath.string() + m_configDefaultSuffix ) )
+ {
+ // no default file :(
+ return false;
+ }
- boost::filesystem::copy_file( configPath.string() + m_configDefaultSuffix, configPath );
+ boost::filesystem::copy_file( configPath.string() + m_configDefaultSuffix, configPath );
- return true;
+ return true;
}
\ No newline at end of file
diff --git a/src/common/Config/ConfigMgr.h b/src/common/Config/ConfigMgr.h
index 5a9fab9c..82de18bf 100644
--- a/src/common/Config/ConfigMgr.h
+++ b/src/common/Config/ConfigMgr.h
@@ -3,43 +3,43 @@
#include
-namespace Core
+namespace Core {
+class ConfigMgr
{
- class ConfigMgr
- {
- public:
- ConfigMgr() = default;
- ~ConfigMgr() = default;
+public:
+ ConfigMgr() = default;
- bool loadConfig( const std::string& configName );
+ ~ConfigMgr() = default;
- template< class T >
- T getValue( const std::string& name, T defaultValue = T() )
- {
- try
- {
- return m_propTree.get< T >( name );
- }
- catch( ... )
- {
- return defaultValue;
- }
- }
+ bool loadConfig( const std::string& configName );
- template< class T >
- void setValue( const std::string& name, T defaultValue = T() )
- {
- m_propTree.put( name, defaultValue );
- }
+ template< class T >
+ T getValue( const std::string& name, T defaultValue = T() )
+ {
+ try
+ {
+ return m_propTree.get< T >( name );
+ }
+ catch( ... )
+ {
+ return defaultValue;
+ }
+ }
- private:
- bool copyDefaultConfig( const std::string& configName );
+ template< class T >
+ void setValue( const std::string& name, T defaultValue = T() )
+ {
+ m_propTree.put( name, defaultValue );
+ }
- boost::property_tree::ptree m_propTree;
- const std::string m_globalConfigFile = "global.ini";
- const std::string m_configFolderRoot = "./config/";
- const std::string m_configDefaultSuffix = ".default";
- };
+private:
+ bool copyDefaultConfig( const std::string& configName );
+
+ boost::property_tree::ptree m_propTree;
+ const std::string m_globalConfigFile = "global.ini";
+ const std::string m_configFolderRoot = "./config/";
+ const std::string m_configDefaultSuffix = ".default";
+};
}
#endif //SAPPHIRE_CONFIGMGR_H
diff --git a/src/common/Crypt/base64.cpp b/src/common/Crypt/base64.cpp
index 8037dec4..4f0cb9ba 100644
--- a/src/common/Crypt/base64.cpp
+++ b/src/common/Crypt/base64.cpp
@@ -1,7 +1,7 @@
/*
base64.cpp and base64.h
- Copyright (C) 2004-2008 Ren Nyffenegger
+ Copyright (C) 2004-2008 Ren� Nyffenegger
This source code is provided 'as-is', without any express or implied
warranty. In no event will the author be held liable for any damages
@@ -21,7 +21,7 @@
3. This notice may not be removed or altered from any source distribution.
- Ren Nyffenegger rene.nyffenegger@adp-gmbh.ch
+ Ren� Nyffenegger rene.nyffenegger@adp-gmbh.ch
*/
@@ -29,95 +29,105 @@
#include
static const std::string base64_chars =
-"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-"abcdefghijklmnopqrstuvwxyz"
-"0123456789+/";
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz"
+ "0123456789+/";
-static inline bool is_base64( uint8_t c ) {
- return ( isalnum( c ) || ( c == '+' ) || ( c == '/' ) );
+static inline bool is_base64( uint8_t c )
+{
+ return ( isalnum( c ) || ( c == '+' ) || ( c == '/' ) );
}
-std::string Core::Util::base64_encode( uint8_t const* bytes_to_encode, uint32_t in_len ) {
- std::string ret;
- int32_t i = 0;
- int32_t j = 0;
- uint8_t char_array_3[3];
- uint8_t char_array_4[4];
+std::string Core::Util::base64_encode( uint8_t const* bytes_to_encode, uint32_t in_len )
+{
+ std::string ret;
+ int32_t i = 0;
+ int32_t j = 0;
+ uint8_t char_array_3[3];
+ uint8_t char_array_4[4];
- while( in_len-- ) {
- char_array_3[i++] = *( bytes_to_encode++ );
- if( i == 3 ) {
- char_array_4[0] = ( char_array_3[0] & 0xfc ) >> 2;
- char_array_4[1] = ( ( char_array_3[0] & 0x03 ) << 4 ) + ( ( char_array_3[1] & 0xf0 ) >> 4 );
- char_array_4[2] = ( ( char_array_3[1] & 0x0f ) << 2 ) + ( ( char_array_3[2] & 0xc0 ) >> 6 );
- char_array_4[3] = char_array_3[2] & 0x3f;
+ while( in_len-- )
+ {
+ char_array_3[ i++ ] = *( bytes_to_encode++ );
+ if( i == 3 )
+ {
+ char_array_4[ 0 ] = ( char_array_3[ 0 ] & 0xfc ) >> 2;
+ char_array_4[ 1 ] = ( ( char_array_3[ 0 ] & 0x03 ) << 4 ) + ( ( char_array_3[ 1 ] & 0xf0 ) >> 4 );
+ char_array_4[ 2 ] = ( ( char_array_3[ 1 ] & 0x0f ) << 2 ) + ( ( char_array_3[ 2 ] & 0xc0 ) >> 6 );
+ char_array_4[ 3 ] = char_array_3[ 2 ] & 0x3f;
- for( i = 0; ( i < 4 ); i++ )
- ret += base64_chars[char_array_4[i]];
- i = 0;
- }
- }
+ for( i = 0; ( i < 4 ); i++ )
+ ret += base64_chars[ char_array_4[ i ] ];
+ i = 0;
+ }
+ }
- if( i )
- {
- for( j = i; j < 3; j++ )
- char_array_3[j] = '\0';
+ if( i )
+ {
+ for( j = i; j < 3; j++ )
+ char_array_3[ j ] = '\0';
- char_array_4[0] = ( char_array_3[0] & 0xfc ) >> 2;
- char_array_4[1] = ( ( char_array_3[0] & 0x03 ) << 4 ) + ( ( char_array_3[1] & 0xf0 ) >> 4 );
- char_array_4[2] = ( ( char_array_3[1] & 0x0f ) << 2 ) + ( ( char_array_3[2] & 0xc0 ) >> 6 );
- char_array_4[3] = char_array_3[2] & 0x3f;
+ char_array_4[ 0 ] = ( char_array_3[ 0 ] & 0xfc ) >> 2;
+ char_array_4[ 1 ] = ( ( char_array_3[ 0 ] & 0x03 ) << 4 ) + ( ( char_array_3[ 1 ] & 0xf0 ) >> 4 );
+ char_array_4[ 2 ] = ( ( char_array_3[ 1 ] & 0x0f ) << 2 ) + ( ( char_array_3[ 2 ] & 0xc0 ) >> 6 );
+ char_array_4[ 3 ] = char_array_3[ 2 ] & 0x3f;
- for( j = 0; ( j < i + 1 ); j++ )
- ret += base64_chars[char_array_4[j]];
+ for( j = 0; ( j < i + 1 ); j++ )
+ ret += base64_chars[ char_array_4[ j ] ];
- while( ( i++ < 3 ) )
- ret += '=';
+ while( ( i++ < 3 ) )
+ ret += '=';
- }
+ }
- return ret;
+ return ret;
}
-std::string Core::Util::base64_decode( std::string const& encoded_string ) {
- int32_t in_len = encoded_string.size();
- int32_t i = 0;
- int32_t j = 0;
- int32_t in_ = 0;
- uint8_t char_array_4[4], char_array_3[3];
- std::string ret;
+std::string Core::Util::base64_decode( std::string const& encoded_string )
+{
+ int32_t in_len = encoded_string.size();
+ int32_t i = 0;
+ int32_t j = 0;
+ int32_t in_ = 0;
+ uint8_t char_array_4[4], char_array_3[3];
+ std::string ret;
- while( in_len-- && ( encoded_string[in_] != '=' ) && is_base64( encoded_string[in_] ) ) {
- char_array_4[i++] = encoded_string[in_]; in_++;
- if( i == 4 ) {
- for( i = 0; i < 4; i++ )
- char_array_4[i] = static_cast< uint8_t >( base64_chars.find( char_array_4[i] ) );
+ while( in_len-- && ( encoded_string[ in_ ] != '=' ) && is_base64( encoded_string[ in_ ] ) )
+ {
+ char_array_4[ i++ ] = encoded_string[ in_ ];
+ in_++;
+ if( i == 4 )
+ {
+ for( i = 0; i < 4; i++ )
+ char_array_4[ i ] = static_cast< uint8_t >( base64_chars.find( char_array_4[ i ] ) );
- char_array_3[0] = ( char_array_4[0] << 2 ) + ( ( char_array_4[1] & 0x30 ) >> 4 );
- char_array_3[1] = ( ( char_array_4[1] & 0xf ) << 4 ) + ( ( char_array_4[2] & 0x3c ) >> 2 );
- char_array_3[2] = ( ( char_array_4[2] & 0x3 ) << 6 ) + char_array_4[3];
+ char_array_3[ 0 ] = ( char_array_4[ 0 ] << 2 ) + ( ( char_array_4[ 1 ] & 0x30 ) >> 4 );
+ char_array_3[ 1 ] = ( ( char_array_4[ 1 ] & 0xf ) << 4 ) + ( ( char_array_4[ 2 ] & 0x3c ) >> 2 );
+ char_array_3[ 2 ] = ( ( char_array_4[ 2 ] & 0x3 ) << 6 ) + char_array_4[ 3 ];
- for( i = 0; ( i < 3 ); i++ )
- ret += char_array_3[i];
- i = 0;
- }
- }
+ for( i = 0; ( i < 3 ); i++ )
+ ret += char_array_3[ i ];
+ i = 0;
+ }
+ }
- if( i ) {
- for( j = i; j < 4; j++ )
- char_array_4[j] = 0;
+ if( i )
+ {
+ for( j = i; j < 4; j++ )
+ char_array_4[ j ] = 0;
- for( j = 0; j < 4; j++ )
- char_array_4[j] = static_cast< uint8_t >( base64_chars.find( char_array_4[j] ) );
+ for( j = 0; j < 4; j++ )
+ char_array_4[ j ] = static_cast< uint8_t >( base64_chars.find( char_array_4[ j ] ) );
- char_array_3[0] = ( char_array_4[0] << 2 ) + ( ( char_array_4[1] & 0x30 ) >> 4 );
- char_array_3[1] = ( ( char_array_4[1] & 0xf ) << 4 ) + ( ( char_array_4[2] & 0x3c ) >> 2 );
- char_array_3[2] = ( ( char_array_4[2] & 0x3 ) << 6 ) + char_array_4[3];
+ char_array_3[ 0 ] = ( char_array_4[ 0 ] << 2 ) + ( ( char_array_4[ 1 ] & 0x30 ) >> 4 );
+ char_array_3[ 1 ] = ( ( char_array_4[ 1 ] & 0xf ) << 4 ) + ( ( char_array_4[ 2 ] & 0x3c ) >> 2 );
+ char_array_3[ 2 ] = ( ( char_array_4[ 2 ] & 0x3 ) << 6 ) + char_array_4[ 3 ];
- for( j = 0; ( j < i - 1 ); j++ ) ret += char_array_3[j];
- }
+ for( j = 0; ( j < i - 1 ); j++ )
+ ret += char_array_3[ j ];
+ }
- return ret;
+ return ret;
}
diff --git a/src/common/Crypt/base64.h b/src/common/Crypt/base64.h
index 3840b8af..77ba23bb 100644
--- a/src/common/Crypt/base64.h
+++ b/src/common/Crypt/base64.h
@@ -1,11 +1,10 @@
#include
-namespace Core
-{
- namespace Util
- {
- std::string base64_encode( uint8_t const*, uint32_t len );
- std::string base64_decode( std::string const& s );
- }
+namespace Core {
+namespace Util {
+std::string base64_encode( uint8_t const*, uint32_t len );
+
+std::string base64_decode( std::string const& s );
+}
}
diff --git a/src/common/Crypt/blowfish.cpp b/src/common/Crypt/blowfish.cpp
index 5b830e5b..f489a675 100644
--- a/src/common/Crypt/blowfish.cpp
+++ b/src/common/Crypt/blowfish.cpp
@@ -6,89 +6,105 @@
#include
#include "blowfish.h"
-#include "blowfish.h2" // holds the random digit tables
+#include "blowfish.h2" // holds the random digit tables
-#define S(x,i) (SBoxes[i][x.w.byte##i])
-#define bf_F(x) (((S(x,0) + S(x,1)) ^ S(x,2)) + S(x,3))
-#define ROUND(a,b,n) (a.dword ^= bf_F(b) ^ PArray[n])
+#define S( x, i ) (SBoxes[i][x.w.byte##i])
+#define bf_F( x ) (((S(x,0) + S(x,1)) ^ S(x,2)) + S(x,3))
+#define ROUND( a, b, n ) (a.dword ^= bf_F(b) ^ PArray[n])
-BlowFish::BlowFish ()
+BlowFish::BlowFish()
{
- PArray = new DWORD [18] ;
- SBoxes = new DWORD [4][256] ;
+ PArray = new DWORD[18];
+ SBoxes = new DWORD[4][256];
}
-BlowFish::~BlowFish ()
+BlowFish::~BlowFish()
{
- delete PArray ;
- delete [] SBoxes ;
+ delete PArray;
+ delete[] SBoxes;
}
- // the low level (private) encryption function
-void BlowFish::Blowfish_encipher (DWORD *xl, DWORD *xr)
+// the low level (private) encryption function
+void BlowFish::Blowfish_encipher( DWORD* xl, DWORD* xr )
{
- union aword Xl, Xr ;
+ union aword Xl, Xr;
- Xl.dword = *xl ;
- Xr.dword = *xr ;
+ Xl.dword = *xl;
+ Xr.dword = *xr;
- Xl.dword ^= PArray [0];
- ROUND (Xr, Xl, 1) ; ROUND (Xl, Xr, 2) ;
- ROUND (Xr, Xl, 3) ; ROUND (Xl, Xr, 4) ;
- ROUND (Xr, Xl, 5) ; ROUND (Xl, Xr, 6) ;
- ROUND (Xr, Xl, 7) ; ROUND (Xl, Xr, 8) ;
- ROUND (Xr, Xl, 9) ; ROUND (Xl, Xr, 10) ;
- ROUND (Xr, Xl, 11) ; ROUND (Xl, Xr, 12) ;
- ROUND (Xr, Xl, 13) ; ROUND (Xl, Xr, 14) ;
- ROUND (Xr, Xl, 15) ; ROUND (Xl, Xr, 16) ;
- Xr.dword ^= PArray [17] ;
+ Xl.dword ^= PArray[ 0 ];
+ ROUND ( Xr, Xl, 1 );
+ ROUND ( Xl, Xr, 2 );
+ ROUND ( Xr, Xl, 3 );
+ ROUND ( Xl, Xr, 4 );
+ ROUND ( Xr, Xl, 5 );
+ ROUND ( Xl, Xr, 6 );
+ ROUND ( Xr, Xl, 7 );
+ ROUND ( Xl, Xr, 8 );
+ ROUND ( Xr, Xl, 9 );
+ ROUND ( Xl, Xr, 10 );
+ ROUND ( Xr, Xl, 11 );
+ ROUND ( Xl, Xr, 12 );
+ ROUND ( Xr, Xl, 13 );
+ ROUND ( Xl, Xr, 14 );
+ ROUND ( Xr, Xl, 15 );
+ ROUND ( Xl, Xr, 16 );
+ Xr.dword ^= PArray[ 17 ];
- *xr = Xl.dword ;
- *xl = Xr.dword ;
+ *xr = Xl.dword;
+ *xl = Xr.dword;
}
- // the low level (private) decryption function
-void BlowFish::Blowfish_decipher (DWORD *xl, DWORD *xr)
+// the low level (private) decryption function
+void BlowFish::Blowfish_decipher( DWORD* xl, DWORD* xr )
{
- union aword Xl ;
- union aword Xr ;
+ union aword Xl;
+ union aword Xr;
- Xl.dword = *xl ;
- Xr.dword = *xr ;
+ Xl.dword = *xl;
+ Xr.dword = *xr;
- Xl.dword ^= PArray [17] ;
- ROUND (Xr, Xl, 16) ; ROUND (Xl, Xr, 15) ;
- ROUND (Xr, Xl, 14) ; ROUND (Xl, Xr, 13) ;
- ROUND (Xr, Xl, 12) ; ROUND (Xl, Xr, 11) ;
- ROUND (Xr, Xl, 10) ; ROUND (Xl, Xr, 9) ;
- ROUND (Xr, Xl, 8) ; ROUND (Xl, Xr, 7) ;
- ROUND (Xr, Xl, 6) ; ROUND (Xl, Xr, 5) ;
- ROUND (Xr, Xl, 4) ; ROUND (Xl, Xr, 3) ;
- ROUND (Xr, Xl, 2) ; ROUND (Xl, Xr, 1) ;
- Xr.dword ^= PArray[0];
+ Xl.dword ^= PArray[ 17 ];
+ ROUND ( Xr, Xl, 16 );
+ ROUND ( Xl, Xr, 15 );
+ ROUND ( Xr, Xl, 14 );
+ ROUND ( Xl, Xr, 13 );
+ ROUND ( Xr, Xl, 12 );
+ ROUND ( Xl, Xr, 11 );
+ ROUND ( Xr, Xl, 10 );
+ ROUND ( Xl, Xr, 9 );
+ ROUND ( Xr, Xl, 8 );
+ ROUND ( Xl, Xr, 7 );
+ ROUND ( Xr, Xl, 6 );
+ ROUND ( Xl, Xr, 5 );
+ ROUND ( Xr, Xl, 4 );
+ ROUND ( Xl, Xr, 3 );
+ ROUND ( Xr, Xl, 2 );
+ ROUND ( Xl, Xr, 1 );
+ Xr.dword ^= PArray[ 0 ];
- *xl = Xr.dword;
- *xr = Xl.dword;
+ *xl = Xr.dword;
+ *xr = Xl.dword;
}
- // constructs the enctryption sieve
-void BlowFish::initialize (BYTE key[], int32_t keybytes)
+// constructs the enctryption sieve
+void BlowFish::initialize( BYTE key[], int32_t keybytes )
{
- int i, j ;
- DWORD datal, datar ;
+ int i, j;
+ DWORD datal, datar;
- // first fill arrays from data tables
- for (i = 0 ; i < 18 ; i++)
- PArray [i] = bf_P [i] ;
+ // first fill arrays from data tables
+ for( i = 0; i < 18; i++ )
+ PArray[ i ] = bf_P[ i ];
- for (i = 0 ; i < 4 ; i++)
- {
- for (j = 0 ; j < 256 ; j++)
- SBoxes [i][j] = bf_S [i][j] ;
- }
+ for( i = 0; i < 4; i++ )
+ {
+ for( j = 0; j < 256; j++ )
+ SBoxes[ i ][ j ] = bf_S[ i ][ j ];
+ }
int32_t v12; // eax@6
int32_t v13; // ecx@6
@@ -104,156 +120,156 @@ void BlowFish::initialize (BYTE key[], int32_t keybytes)
int32_t v10 = keybytes;
- uintptr_t v9 = (uintptr_t)key;
+ uintptr_t v9 = ( uintptr_t ) key;
int32_t v8 = 0;
int32_t v11 = 0;
- do {
- v13 = (char)(*(BYTE *)(v8 + v9));
+ do
+ {
+ v13 = ( char ) ( *( BYTE* ) ( v8 + v9 ) );
v12 = v8 + 1;
- if ( v12 >= v10 )
+ if( v12 >= v10 )
v12 = 0;
- v16 = (char)*(BYTE *)(v12 + v9);
+ v16 = ( char ) *( BYTE* ) ( v12 + v9 );
v14 = v12 + 1;
- v15 = (v13 << 8) | v16;
- if ( v14 >= v10 )
+ v15 = ( v13 << 8 ) | v16;
+ if( v14 >= v10 )
v14 = 0;
- v19 = (char)*(BYTE *)(v14 + v9);
+ v19 = ( char ) *( BYTE* ) ( v14 + v9 );
v17 = v14 + 1;
- v18 = (v15 << 8) | v19;
- if ( v17 >= v10 )
+ v18 = ( v15 << 8 ) | v19;
+ if( v17 >= v10 )
v17 = 0;
- v21 = (char)*(BYTE *)(v17 + v9);
+ v21 = ( char ) *( BYTE* ) ( v17 + v9 );
v8 = v17 + 1;
- v20 = (v18 << 8) | v21;
- if ( v8 >= v10 )
+ v20 = ( v18 << 8 ) | v21;
+ if( v8 >= v10 )
v8 = 0;
- *((DWORD *)PArray + v11++) ^= v20;
- } while ( v11 < 18 );
+ *( ( DWORD* ) PArray + v11++ ) ^= v20;
+ } while( v11 < 18 );
+ datal = 0;
+ datar = 0;
- datal = 0 ;
- datar = 0 ;
+ for( i = 0; i < NPASS + 2; i += 2 )
+ {
+ Blowfish_encipher( &datal, &datar );
+ PArray[ i ] = datal;
+ PArray[ i + 1 ] = datar;
+ }
- for (i = 0 ; i < NPASS + 2 ; i += 2)
- {
- Blowfish_encipher (&datal, &datar) ;
- PArray [i] = datal ;
- PArray [i + 1] = datar ;
- }
-
- for (i = 0 ; i < 4 ; ++i)
- {
- for (j = 0 ; j < 256 ; j += 2)
- {
- Blowfish_encipher (&datal, &datar) ;
- SBoxes [i][j] = datal ;
- SBoxes [i][j + 1] = datar ;
- }
- }
+ for( i = 0; i < 4; ++i )
+ {
+ for( j = 0; j < 256; j += 2 )
+ {
+ Blowfish_encipher( &datal, &datar );
+ SBoxes[ i ][ j ] = datal;
+ SBoxes[ i ][ j + 1 ] = datar;
+ }
+ }
}
- // get output length, which must be even MOD 8
-DWORD BlowFish::GetOutputLength (DWORD lInputLong)
+// get output length, which must be even MOD 8
+DWORD BlowFish::GetOutputLength( DWORD lInputLong )
{
- DWORD lVal ;
+ DWORD lVal;
- lVal = lInputLong % 8 ; // find out if uneven number of bytes at the end
- if (lVal != 0)
- return lInputLong + 8 - lVal ;
- else
- return lInputLong ;
+ lVal = lInputLong % 8; // find out if uneven number of bytes at the end
+ if( lVal != 0 )
+ return lInputLong + 8 - lVal;
+ else
+ return lInputLong;
}
- // Encode pIntput into pOutput. Input length in lSize. Returned value
- // is length of output which will be even MOD 8 bytes. Input buffer and
- // output buffer can be the same, but be sure buffer length is even MOD 8.
-DWORD BlowFish::Encode (BYTE * pInput, BYTE * pOutput, DWORD lSize)
+// Encode pIntput into pOutput. Input length in lSize. Returned value
+// is length of output which will be even MOD 8 bytes. Input buffer and
+// output buffer can be the same, but be sure buffer length is even MOD 8.
+DWORD BlowFish::Encode( BYTE* pInput, BYTE* pOutput, DWORD lSize )
{
- DWORD lCount, lOutSize, lGoodBytes ;
- BYTE *pi, *po ;
- int i, j ;
- int SameDest = (pInput == pOutput ? 1 : 0) ;
+ DWORD lCount, lOutSize, lGoodBytes;
+ BYTE* pi, * po;
+ int i, j;
+ int SameDest = ( pInput == pOutput ? 1 : 0 );
- lOutSize = GetOutputLength (lSize) ;
- for (lCount = 0 ; lCount < lOutSize ; lCount += 8)
- {
- if (SameDest) // if encoded data is being written into input buffer
- {
- if (lCount < lSize - 7) // if not dealing with uneven bytes at end
- {
- Blowfish_encipher ((DWORD *) pInput,
- (DWORD *) (pInput + 4)) ;
- }
- else // pad end of data with null bytes to complete encryption
- {
- po = pInput + lSize ; // point at byte past the end of actual data
- j = (int) (lOutSize - lSize) ; // number of bytes to set to null
- for (i = 0 ; i < j ; i++)
- *po++ = 0 ;
- Blowfish_encipher ((DWORD *) pInput,
- (DWORD *) (pInput + 4)) ;
- }
- pInput += 8 ;
- }
- else // output buffer not equal to input buffer, so must copy
- { // input to output buffer prior to encrypting
- if (lCount < lSize - 7) // if not dealing with uneven bytes at end
- {
- pi = pInput ;
- po = pOutput ;
- for (i = 0 ; i < 8 ; i++)
+ lOutSize = GetOutputLength( lSize );
+ for( lCount = 0; lCount < lOutSize; lCount += 8 )
+ {
+ if( SameDest ) // if encoded data is being written into input buffer
+ {
+ if( lCount < lSize - 7 ) // if not dealing with uneven bytes at end
+ {
+ Blowfish_encipher( ( DWORD* ) pInput,
+ ( DWORD* ) ( pInput + 4 ) );
+ }
+ else // pad end of data with null bytes to complete encryption
+ {
+ po = pInput + lSize; // point at byte past the end of actual data
+ j = ( int ) ( lOutSize - lSize ); // number of bytes to set to null
+ for( i = 0; i < j; i++ )
+ *po++ = 0;
+ Blowfish_encipher( ( DWORD* ) pInput,
+ ( DWORD* ) ( pInput + 4 ) );
+ }
+ pInput += 8;
+ }
+ else // output buffer not equal to input buffer, so must copy
+ { // input to output buffer prior to encrypting
+ if( lCount < lSize - 7 ) // if not dealing with uneven bytes at end
+ {
+ pi = pInput;
+ po = pOutput;
+ for( i = 0; i < 8; i++ )
// copy bytes to output
- *po++ = *pi++ ;
- Blowfish_encipher ((DWORD *) pOutput, // now encrypt them
- (DWORD *) (pOutput + 4)) ;
- }
- else // pad end of data with null bytes to complete encryption
- {
- lGoodBytes = lSize - lCount ; // number of remaining data bytes
- po = pOutput ;
- for (i = 0 ; i < (int) lGoodBytes ; i++)
- *po++ = *pInput++ ;
- for (j = i ; j < 8 ; j++)
- *po++ = 0 ;
- Blowfish_encipher ((DWORD *) pOutput,
- (DWORD *) (pOutput + 4)) ;
- }
- pInput += 8 ;
- pOutput += 8 ;
- }
- }
- return lOutSize ;
- }
-
- // Decode pIntput into pOutput. Input length in lSize. Input buffer and
- // output buffer can be the same, but be sure buffer length is even MOD 8.
-void BlowFish::Decode (BYTE * pInput, BYTE * pOutput, DWORD lSize)
-{
- DWORD lCount ;
- BYTE *pi, *po ;
- int i ;
- int SameDest = (pInput == pOutput ? 1 : 0) ;
-
- for (lCount = 0 ; lCount < lSize ; lCount += 8)
- {
- if (SameDest) // if encoded data is being written into input buffer
- {
- Blowfish_decipher ((DWORD *) pInput,
- (DWORD *) (pInput + 4)) ;
- pInput += 8 ;
- }
- else // output buffer not equal to input buffer
- { // so copy input to output before decoding
- pi = pInput ;
- po = pOutput ;
- for (i = 0 ; i < 8 ; i++)
- *po++ = *pi++ ;
- Blowfish_decipher ((DWORD *) pOutput,
- (DWORD *) (pOutput + 4)) ;
- pInput += 8 ;
- pOutput += 8 ;
- }
- }
+ *po++ = *pi++;
+ Blowfish_encipher( ( DWORD* ) pOutput, // now encrypt them
+ ( DWORD* ) ( pOutput + 4 ) );
+ }
+ else // pad end of data with null bytes to complete encryption
+ {
+ lGoodBytes = lSize - lCount; // number of remaining data bytes
+ po = pOutput;
+ for( i = 0; i < ( int ) lGoodBytes; i++ )
+ *po++ = *pInput++;
+ for( j = i; j < 8; j++ )
+ *po++ = 0;
+ Blowfish_encipher( ( DWORD* ) pOutput,
+ ( DWORD* ) ( pOutput + 4 ) );
+ }
+ pInput += 8;
+ pOutput += 8;
+ }
+ }
+ return lOutSize;
+}
+
+// Decode pIntput into pOutput. Input length in lSize. Input buffer and
+// output buffer can be the same, but be sure buffer length is even MOD 8.
+void BlowFish::Decode( BYTE* pInput, BYTE* pOutput, DWORD lSize )
+{
+ DWORD lCount;
+ BYTE* pi, * po;
+ int i;
+ int SameDest = ( pInput == pOutput ? 1 : 0 );
+
+ for( lCount = 0; lCount < lSize; lCount += 8 )
+ {
+ if( SameDest ) // if encoded data is being written into input buffer
+ {
+ Blowfish_decipher( ( DWORD* ) pInput,
+ ( DWORD* ) ( pInput + 4 ) );
+ pInput += 8;
+ }
+ else // output buffer not equal to input buffer
+ { // so copy input to output before decoding
+ pi = pInput;
+ po = pOutput;
+ for( i = 0; i < 8; i++ )
+ *po++ = *pi++;
+ Blowfish_decipher( ( DWORD* ) pOutput,
+ ( DWORD* ) ( pOutput + 4 ) );
+ pInput += 8;
+ pOutput += 8;
+ }
+ }
}
diff --git a/src/common/Crypt/blowfish.h b/src/common/Crypt/blowfish.h
index 81562b33..3623a1ee 100644
--- a/src/common/Crypt/blowfish.h
+++ b/src/common/Crypt/blowfish.h
@@ -6,70 +6,79 @@
// Revised code--3/20/94
// Converted to C++ class 5/96, Jim Conger
-#define MAXKEYBYTES 56 // 448 bits max
-#define NPASS 16 // SBox passes
+#define MAXKEYBYTES 56 // 448 bits max
+#define NPASS 16 // SBox passes
-#define DWORD uint32_t
-#define WORD unsigned short
-#define BYTE uint8_t
+#define DWORD uint32_t
+#define WORD unsigned short
+#define BYTE uint8_t
class BlowFish
{
private:
- DWORD * PArray ;
- DWORD (* SBoxes)[256];
- void Blowfish_encipher (DWORD *xl, DWORD *xr) ;
- void Blowfish_decipher (DWORD *xl, DWORD *xr) ;
+ DWORD* PArray;
+ DWORD (* SBoxes)[256];
+
+ void Blowfish_encipher( DWORD* xl, DWORD* xr );
+
+ void Blowfish_decipher( DWORD* xl, DWORD* xr );
public:
- BlowFish () ;
- ~BlowFish () ;
- void initialize (BYTE key[], int32_t keybytes) ;
- DWORD GetOutputLength (DWORD lInputLong) ;
- DWORD Encode (BYTE * pInput, BYTE * pOutput, DWORD lSize) ;
- void Decode (BYTE * pInput, BYTE * pOutput, DWORD lSize) ;
+ BlowFish();
-} ;
+ ~BlowFish();
+
+ void initialize( BYTE key[], int32_t keybytes );
+
+ DWORD GetOutputLength( DWORD lInputLong );
+
+ DWORD Encode( BYTE* pInput, BYTE* pOutput, DWORD lSize );
+
+ void Decode( BYTE* pInput, BYTE* pOutput, DWORD lSize );
+
+};
// choose a byte order for your hardware
-#define ORDER_DCBA // chosing Intel in this case
+#define ORDER_DCBA // chosing Intel in this case
-#ifdef ORDER_DCBA // DCBA - little endian - intel
- union aword {
- DWORD dword;
- BYTE byte [4];
- struct {
- uint32_t byte3:8;
- uint32_t byte2:8;
- uint32_t byte1:8;
- uint32_t byte0:8;
- } w;
- };
+#ifdef ORDER_DCBA // DCBA - little endian - intel
+union aword
+{
+ DWORD dword;
+ BYTE byte[4];
+ struct
+ {
+ uint32_t byte3:8;
+ uint32_t byte2:8;
+ uint32_t byte1:8;
+ uint32_t byte0:8;
+ } w;
+};
#endif
-#ifdef ORDER_ABCD // ABCD - big endian - motorola
- union aword {
- DWORD dword;
- BYTE byte [4];
- struct {
- uint32_t byte0:8;
- uint32_t byte1:8;
- uint32_t byte2:8;
- uint32_t byte3:8;
- } w;
- };
+#ifdef ORDER_ABCD // ABCD - big endian - motorola
+union aword {
+ DWORD dword;
+ BYTE byte [4];
+ struct {
+ uint32_t byte0:8;
+ uint32_t byte1:8;
+ uint32_t byte2:8;
+ uint32_t byte3:8;
+ } w;
+};
#endif
-#ifdef ORDER_BADC // BADC - vax
- union aword {
- DWORD dword;
- BYTE byte [4];
- struct {
- uint32_t byte1:8;
- uint32_t byte0:8;
- uint32_t byte3:8;
- uint32_t byte2:8;
- } w;
+#ifdef ORDER_BADC // BADC - vax
+union aword {
+ DWORD dword;
+ BYTE byte [4];
+ struct {
+ uint32_t byte1:8;
+ uint32_t byte0:8;
+ uint32_t byte3:8;
+ uint32_t byte2:8;
+ } w;
};
#endif
#endif
\ No newline at end of file
diff --git a/src/common/Crypt/md5.cpp b/src/common/Crypt/md5.cpp
index 6f9a4152..64770119 100644
--- a/src/common/Crypt/md5.cpp
+++ b/src/common/Crypt/md5.cpp
@@ -21,236 +21,237 @@
#include
#include "md5.h"
-#define GET_UINT32(n,b,i) \
+#define GET_UINT32( n, b, i ) \
{ \
- (n) = ( (uint32_t) (b)[(i) ] ) \
- | ( (uint32_t) (b)[(i) + 1] << 8 ) \
- | ( (uint32_t) (b)[(i) + 2] << 16 ) \
- | ( (uint32_t) (b)[(i) + 3] << 24 ); \
+ (n) = ( (uint32_t) (b)[(i) ] ) \
+ | ( (uint32_t) (b)[(i) + 1] << 8 ) \
+ | ( (uint32_t) (b)[(i) + 2] << 16 ) \
+ | ( (uint32_t) (b)[(i) + 3] << 24 ); \
}
-#define PUT_UINT32(n,b,i) \
+#define PUT_UINT32( n, b, i ) \
{ \
- (b)[(i) ] = (uint8_t) ( (n) ); \
- (b)[(i) + 1] = (uint8_t) ( (n) >> 8 ); \
- (b)[(i) + 2] = (uint8_t) ( (n) >> 16 ); \
- (b)[(i) + 3] = (uint8_t) ( (n) >> 24 ); \
+ (b)[(i) ] = (uint8_t) ( (n) ); \
+ (b)[(i) + 1] = (uint8_t) ( (n) >> 8 ); \
+ (b)[(i) + 2] = (uint8_t) ( (n) >> 16 ); \
+ (b)[(i) + 3] = (uint8_t) ( (n) >> 24 ); \
}
-void Core::Util::md5_starts( md5_context *ctx )
+void Core::Util::md5_starts( md5_context* ctx )
{
- ctx->total[0] = 0;
- ctx->total[1] = 0;
+ ctx->total[ 0 ] = 0;
+ ctx->total[ 1 ] = 0;
- ctx->state[0] = 0x67452301;
- ctx->state[1] = 0xEFCDAB89;
- ctx->state[2] = 0x98BADCFE;
- ctx->state[3] = 0x10325476;
+ ctx->state[ 0 ] = 0x67452301;
+ ctx->state[ 1 ] = 0xEFCDAB89;
+ ctx->state[ 2 ] = 0x98BADCFE;
+ ctx->state[ 3 ] = 0x10325476;
}
-void md5_process( Core::Util::md5_context *ctx, uint8_t data[64] )
+void md5_process( Core::Util::md5_context* ctx, uint8_t data[64] )
{
- uint32_t X[16], A, B, C, D;
+ uint32_t X[16], A, B, C, D;
- GET_UINT32( X[0], data, 0 );
- GET_UINT32( X[1], data, 4 );
- GET_UINT32( X[2], data, 8 );
- GET_UINT32( X[3], data, 12 );
- GET_UINT32( X[4], data, 16 );
- GET_UINT32( X[5], data, 20 );
- GET_UINT32( X[6], data, 24 );
- GET_UINT32( X[7], data, 28 );
- GET_UINT32( X[8], data, 32 );
- GET_UINT32( X[9], data, 36 );
- GET_UINT32( X[10], data, 40 );
- GET_UINT32( X[11], data, 44 );
- GET_UINT32( X[12], data, 48 );
- GET_UINT32( X[13], data, 52 );
- GET_UINT32( X[14], data, 56 );
- GET_UINT32( X[15], data, 60 );
+ GET_UINT32( X[ 0 ], data, 0 );
+ GET_UINT32( X[ 1 ], data, 4 );
+ GET_UINT32( X[ 2 ], data, 8 );
+ GET_UINT32( X[ 3 ], data, 12 );
+ GET_UINT32( X[ 4 ], data, 16 );
+ GET_UINT32( X[ 5 ], data, 20 );
+ GET_UINT32( X[ 6 ], data, 24 );
+ GET_UINT32( X[ 7 ], data, 28 );
+ GET_UINT32( X[ 8 ], data, 32 );
+ GET_UINT32( X[ 9 ], data, 36 );
+ GET_UINT32( X[ 10 ], data, 40 );
+ GET_UINT32( X[ 11 ], data, 44 );
+ GET_UINT32( X[ 12 ], data, 48 );
+ GET_UINT32( X[ 13 ], data, 52 );
+ GET_UINT32( X[ 14 ], data, 56 );
+ GET_UINT32( X[ 15 ], data, 60 );
-#define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n)))
+#define S( x, n ) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n)))
-#define P(a,b,c,d,k,s,t) \
- { \
- a += F(b,c,d) + X[k] + t; a = S(a,s) + b; \
- }
+#define P( a, b, c, d, k, s, t ) \
+ { \
+ a += F(b,c,d) + X[k] + t; a = S(a,s) + b; \
+ }
- A = ctx->state[0];
- B = ctx->state[1];
- C = ctx->state[2];
- D = ctx->state[3];
+ A = ctx->state[ 0 ];
+ B = ctx->state[ 1 ];
+ C = ctx->state[ 2 ];
+ D = ctx->state[ 3 ];
-#define F(x,y,z) (z ^ (x & (y ^ z)))
+#define F( x, y, z ) (z ^ (x & (y ^ z)))
- P( A, B, C, D, 0, 7, 0xD76AA478 );
- P( D, A, B, C, 1, 12, 0xE8C7B756 );
- P( C, D, A, B, 2, 17, 0x242070DB );
- P( B, C, D, A, 3, 22, 0xC1BDCEEE );
- P( A, B, C, D, 4, 7, 0xF57C0FAF );
- P( D, A, B, C, 5, 12, 0x4787C62A );
- P( C, D, A, B, 6, 17, 0xA8304613 );
- P( B, C, D, A, 7, 22, 0xFD469501 );
- P( A, B, C, D, 8, 7, 0x698098D8 );
- P( D, A, B, C, 9, 12, 0x8B44F7AF );
- P( C, D, A, B, 10, 17, 0xFFFF5BB1 );
- P( B, C, D, A, 11, 22, 0x895CD7BE );
- P( A, B, C, D, 12, 7, 0x6B901122 );
- P( D, A, B, C, 13, 12, 0xFD987193 );
- P( C, D, A, B, 14, 17, 0xA679438E );
- P( B, C, D, A, 15, 22, 0x49B40821 );
+ P( A, B, C, D, 0, 7, 0xD76AA478 );
+ P( D, A, B, C, 1, 12, 0xE8C7B756 );
+ P( C, D, A, B, 2, 17, 0x242070DB );
+ P( B, C, D, A, 3, 22, 0xC1BDCEEE );
+ P( A, B, C, D, 4, 7, 0xF57C0FAF );
+ P( D, A, B, C, 5, 12, 0x4787C62A );
+ P( C, D, A, B, 6, 17, 0xA8304613 );
+ P( B, C, D, A, 7, 22, 0xFD469501 );
+ P( A, B, C, D, 8, 7, 0x698098D8 );
+ P( D, A, B, C, 9, 12, 0x8B44F7AF );
+ P( C, D, A, B, 10, 17, 0xFFFF5BB1 );
+ P( B, C, D, A, 11, 22, 0x895CD7BE );
+ P( A, B, C, D, 12, 7, 0x6B901122 );
+ P( D, A, B, C, 13, 12, 0xFD987193 );
+ P( C, D, A, B, 14, 17, 0xA679438E );
+ P( B, C, D, A, 15, 22, 0x49B40821 );
#undef F
-#define F(x,y,z) (y ^ (z & (x ^ y)))
+#define F( x, y, z ) (y ^ (z & (x ^ y)))
- P( A, B, C, D, 1, 5, 0xF61E2562 );
- P( D, A, B, C, 6, 9, 0xC040B340 );
- P( C, D, A, B, 11, 14, 0x265E5A51 );
- P( B, C, D, A, 0, 20, 0xE9B6C7AA );
- P( A, B, C, D, 5, 5, 0xD62F105D );
- P( D, A, B, C, 10, 9, 0x02441453 );
- P( C, D, A, B, 15, 14, 0xD8A1E681 );
- P( B, C, D, A, 4, 20, 0xE7D3FBC8 );
- P( A, B, C, D, 9, 5, 0x21E1CDE6 );
- P( D, A, B, C, 14, 9, 0xC33707D6 );
- P( C, D, A, B, 3, 14, 0xF4D50D87 );
- P( B, C, D, A, 8, 20, 0x455A14ED );
- P( A, B, C, D, 13, 5, 0xA9E3E905 );
- P( D, A, B, C, 2, 9, 0xFCEFA3F8 );
- P( C, D, A, B, 7, 14, 0x676F02D9 );
- P( B, C, D, A, 12, 20, 0x8D2A4C8A );
+ P( A, B, C, D, 1, 5, 0xF61E2562 );
+ P( D, A, B, C, 6, 9, 0xC040B340 );
+ P( C, D, A, B, 11, 14, 0x265E5A51 );
+ P( B, C, D, A, 0, 20, 0xE9B6C7AA );
+ P( A, B, C, D, 5, 5, 0xD62F105D );
+ P( D, A, B, C, 10, 9, 0x02441453 );
+ P( C, D, A, B, 15, 14, 0xD8A1E681 );
+ P( B, C, D, A, 4, 20, 0xE7D3FBC8 );
+ P( A, B, C, D, 9, 5, 0x21E1CDE6 );
+ P( D, A, B, C, 14, 9, 0xC33707D6 );
+ P( C, D, A, B, 3, 14, 0xF4D50D87 );
+ P( B, C, D, A, 8, 20, 0x455A14ED );
+ P( A, B, C, D, 13, 5, 0xA9E3E905 );
+ P( D, A, B, C, 2, 9, 0xFCEFA3F8 );
+ P( C, D, A, B, 7, 14, 0x676F02D9 );
+ P( B, C, D, A, 12, 20, 0x8D2A4C8A );
#undef F
-#define F(x,y,z) (x ^ y ^ z)
+#define F( x, y, z ) (x ^ y ^ z)
- P( A, B, C, D, 5, 4, 0xFFFA3942 );
- P( D, A, B, C, 8, 11, 0x8771F681 );
- P( C, D, A, B, 11, 16, 0x6D9D6122 );
- P( B, C, D, A, 14, 23, 0xFDE5380C );
- P( A, B, C, D, 1, 4, 0xA4BEEA44 );
- P( D, A, B, C, 4, 11, 0x4BDECFA9 );
- P( C, D, A, B, 7, 16, 0xF6BB4B60 );
- P( B, C, D, A, 10, 23, 0xBEBFBC70 );
- P( A, B, C, D, 13, 4, 0x289B7EC6 );
- P( D, A, B, C, 0, 11, 0xEAA127FA );
- P( C, D, A, B, 3, 16, 0xD4EF3085 );
- P( B, C, D, A, 6, 23, 0x04881D05 );
- P( A, B, C, D, 9, 4, 0xD9D4D039 );
- P( D, A, B, C, 12, 11, 0xE6DB99E5 );
- P( C, D, A, B, 15, 16, 0x1FA27CF8 );
- P( B, C, D, A, 2, 23, 0xC4AC5665 );
+ P( A, B, C, D, 5, 4, 0xFFFA3942 );
+ P( D, A, B, C, 8, 11, 0x8771F681 );
+ P( C, D, A, B, 11, 16, 0x6D9D6122 );
+ P( B, C, D, A, 14, 23, 0xFDE5380C );
+ P( A, B, C, D, 1, 4, 0xA4BEEA44 );
+ P( D, A, B, C, 4, 11, 0x4BDECFA9 );
+ P( C, D, A, B, 7, 16, 0xF6BB4B60 );
+ P( B, C, D, A, 10, 23, 0xBEBFBC70 );
+ P( A, B, C, D, 13, 4, 0x289B7EC6 );
+ P( D, A, B, C, 0, 11, 0xEAA127FA );
+ P( C, D, A, B, 3, 16, 0xD4EF3085 );
+ P( B, C, D, A, 6, 23, 0x04881D05 );
+ P( A, B, C, D, 9, 4, 0xD9D4D039 );
+ P( D, A, B, C, 12, 11, 0xE6DB99E5 );
+ P( C, D, A, B, 15, 16, 0x1FA27CF8 );
+ P( B, C, D, A, 2, 23, 0xC4AC5665 );
#undef F
-#define F(x,y,z) (y ^ (x | ~z))
+#define F( x, y, z ) (y ^ (x | ~z))
- P( A, B, C, D, 0, 6, 0xF4292244 );
- P( D, A, B, C, 7, 10, 0x432AFF97 );
- P( C, D, A, B, 14, 15, 0xAB9423A7 );
- P( B, C, D, A, 5, 21, 0xFC93A039 );
- P( A, B, C, D, 12, 6, 0x655B59C3 );
- P( D, A, B, C, 3, 10, 0x8F0CCC92 );
- P( C, D, A, B, 10, 15, 0xFFEFF47D );
- P( B, C, D, A, 1, 21, 0x85845DD1 );
- P( A, B, C, D, 8, 6, 0x6FA87E4F );
- P( D, A, B, C, 15, 10, 0xFE2CE6E0 );
- P( C, D, A, B, 6, 15, 0xA3014314 );
- P( B, C, D, A, 13, 21, 0x4E0811A1 );
- P( A, B, C, D, 4, 6, 0xF7537E82 );
- P( D, A, B, C, 11, 10, 0xBD3AF235 );
- P( C, D, A, B, 2, 15, 0x2AD7D2BB );
- P( B, C, D, A, 9, 21, 0xEB86D391 );
+ P( A, B, C, D, 0, 6, 0xF4292244 );
+ P( D, A, B, C, 7, 10, 0x432AFF97 );
+ P( C, D, A, B, 14, 15, 0xAB9423A7 );
+ P( B, C, D, A, 5, 21, 0xFC93A039 );
+ P( A, B, C, D, 12, 6, 0x655B59C3 );
+ P( D, A, B, C, 3, 10, 0x8F0CCC92 );
+ P( C, D, A, B, 10, 15, 0xFFEFF47D );
+ P( B, C, D, A, 1, 21, 0x85845DD1 );
+ P( A, B, C, D, 8, 6, 0x6FA87E4F );
+ P( D, A, B, C, 15, 10, 0xFE2CE6E0 );
+ P( C, D, A, B, 6, 15, 0xA3014314 );
+ P( B, C, D, A, 13, 21, 0x4E0811A1 );
+ P( A, B, C, D, 4, 6, 0xF7537E82 );
+ P( D, A, B, C, 11, 10, 0xBD3AF235 );
+ P( C, D, A, B, 2, 15, 0x2AD7D2BB );
+ P( B, C, D, A, 9, 21, 0xEB86D391 );
#undef F
- ctx->state[0] += A;
- ctx->state[1] += B;
- ctx->state[2] += C;
- ctx->state[3] += D;
+ ctx->state[ 0 ] += A;
+ ctx->state[ 1 ] += B;
+ ctx->state[ 2 ] += C;
+ ctx->state[ 3 ] += D;
}
-void Core::Util::md5_update( md5_context *ctx, uint8_t *input, uint32_t length )
+void Core::Util::md5_update( md5_context* ctx, uint8_t* input, uint32_t length )
{
- uint32_t left, fill;
+ uint32_t left, fill;
- if( !length ) return;
+ if( !length )
+ return;
- left = ctx->total[0] & 0x3F;
- fill = 64 - left;
+ left = ctx->total[ 0 ] & 0x3F;
+ fill = 64 - left;
- ctx->total[0] += length;
- ctx->total[0] &= 0xFFFFFFFF;
+ ctx->total[ 0 ] += length;
+ ctx->total[ 0 ] &= 0xFFFFFFFF;
- if( ctx->total[0] < length )
- ctx->total[1]++;
+ if( ctx->total[ 0 ] < length )
+ ctx->total[ 1 ]++;
- if( left && length >= fill )
- {
- memcpy( ( void * )( ctx->buffer + left ),
- ( void * )input, fill );
- md5_process( ctx, ctx->buffer );
- length -= fill;
- input += fill;
- left = 0;
- }
+ if( left && length >= fill )
+ {
+ memcpy( ( void* ) ( ctx->buffer + left ),
+ ( void* ) input, fill );
+ md5_process( ctx, ctx->buffer );
+ length -= fill;
+ input += fill;
+ left = 0;
+ }
- while( length >= 64 )
- {
- md5_process( ctx, input );
- length -= 64;
- input += 64;
- }
+ while( length >= 64 )
+ {
+ md5_process( ctx, input );
+ length -= 64;
+ input += 64;
+ }
- if( length )
- {
- memcpy( ( void * )( ctx->buffer + left ),
- ( void * )input, length );
- }
+ if( length )
+ {
+ memcpy( ( void* ) ( ctx->buffer + left ),
+ ( void* ) input, length );
+ }
}
static uint8_t md5_padding[64] =
+ {
+ 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ };
+
+void Core::Util::md5_finish( md5_context* ctx, uint8_t digest[16] )
{
- 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
+ uint32_t last, padn;
+ uint32_t high, low;
+ uint8_t msglen[8];
-void Core::Util::md5_finish( md5_context *ctx, uint8_t digest[16] )
-{
- uint32_t last, padn;
- uint32_t high, low;
- uint8_t msglen[8];
+ high = ( ctx->total[ 0 ] >> 29 )
+ | ( ctx->total[ 1 ] << 3 );
+ low = ( ctx->total[ 0 ] << 3 );
- high = ( ctx->total[0] >> 29 )
- | ( ctx->total[1] << 3 );
- low = ( ctx->total[0] << 3 );
+ PUT_UINT32( low, msglen, 0 );
+ PUT_UINT32( high, msglen, 4 );
- PUT_UINT32( low, msglen, 0 );
- PUT_UINT32( high, msglen, 4 );
+ last = ctx->total[ 0 ] & 0x3F;
+ padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last );
- last = ctx->total[0] & 0x3F;
- padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last );
+ md5_update( ctx, md5_padding, padn );
+ md5_update( ctx, msglen, 8 );
- md5_update( ctx, md5_padding, padn );
- md5_update( ctx, msglen, 8 );
-
- PUT_UINT32( ctx->state[0], digest, 0 );
- PUT_UINT32( ctx->state[1], digest, 4 );
- PUT_UINT32( ctx->state[2], digest, 8 );
- PUT_UINT32( ctx->state[3], digest, 12 );
+ PUT_UINT32( ctx->state[ 0 ], digest, 0 );
+ PUT_UINT32( ctx->state[ 1 ], digest, 4 );
+ PUT_UINT32( ctx->state[ 2 ], digest, 8 );
+ PUT_UINT32( ctx->state[ 3 ], digest, 12 );
}
/*
* those are the standard RFC 1321 test vectors
*/
-void Core::Util::md5( uint8_t *text, uint8_t *hash, int32_t size )
+void Core::Util::md5( uint8_t* text, uint8_t* hash, int32_t size )
{
- md5_context ctx;
- md5_starts( &ctx );
- md5_update( &ctx, ( uint8_t * )text, size );
- md5_finish( &ctx, hash );
+ md5_context ctx;
+ md5_starts( &ctx );
+ md5_update( &ctx, ( uint8_t* ) text, size );
+ md5_finish( &ctx, hash );
}
\ No newline at end of file
diff --git a/src/common/Crypt/md5.h b/src/common/Crypt/md5.h
index eada75ed..fc604b34 100644
--- a/src/common/Crypt/md5.h
+++ b/src/common/Crypt/md5.h
@@ -1,48 +1,50 @@
#ifndef _MD52_H
#define _MD52_H
+
#include
-namespace Core
+namespace Core {
+namespace Util {
+using md5_context = struct
{
- namespace Util
- {
- using md5_context = struct
- {
- uint32_t total[2];
- uint32_t state[4];
- uint8_t buffer[64];
- };
+ uint32_t total[2];
+ uint32_t state[4];
+ uint8_t buffer[64];
+};
- void md5( uint8_t *text, uint8_t *hash, int32_t size );
- void md5_starts( md5_context *ctx );
- void md5_update( md5_context *ctx, uint8_t *input, uint32_t length );
- void md5_finish( md5_context *ctx, uint8_t digest[16] );
+void md5( uint8_t* text, uint8_t* hash, int32_t size );
- static const char *msg[] =
- {
- "",
- "a",
- "abc",
- "message digest",
- "abcdefghijklmnopqrstuvwxyz",
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
- "12345678901234567890123456789012345678901234567890123456789012" \
+void md5_starts( md5_context* ctx );
+
+void md5_update( md5_context* ctx, uint8_t* input, uint32_t length );
+
+void md5_finish( md5_context* ctx, uint8_t digest[16] );
+
+static const char* msg[] =
+ {
+ "",
+ "a",
+ "abc",
+ "message digest",
+ "abcdefghijklmnopqrstuvwxyz",
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "12345678901234567890123456789012345678901234567890123456789012" \
"345678901234567890"
- };
+ };
- static const char *val[] =
- {
- "d41d8cd98f00b204e9800998ecf8427e",
- "0cc175b9c0f1b6a831c399e269772661",
- "900150983cd24fb0d6963f7d28e17f72",
- "f96b697d7cb7938d525a2f31aaf161d0",
- "c3fcd3d76192e4007dfb496cca67e13b",
- "d174ab98d277d9f5a5611c2c9f419d9f",
- "57edf4a22be3c955ac49da2e2107b67a"
- };
+static const char* val[] =
+ {
+ "d41d8cd98f00b204e9800998ecf8427e",
+ "0cc175b9c0f1b6a831c399e269772661",
+ "900150983cd24fb0d6963f7d28e17f72",
+ "f96b697d7cb7938d525a2f31aaf161d0",
+ "c3fcd3d76192e4007dfb496cca67e13b",
+ "d174ab98d277d9f5a5611c2c9f419d9f",
+ "57edf4a22be3c955ac49da2e2107b67a"
+ };
- }
+}
}
diff --git a/src/common/Database/CharaDbConnection.cpp b/src/common/Database/CharaDbConnection.cpp
deleted file mode 100644
index d3dd29a2..00000000
--- a/src/common/Database/CharaDbConnection.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-#include "CharaDbConnection.h"
-#include
-
-Core::Db::CharaDbConnection::CharaDbConnection( ConnectionInfo& connInfo ) : DbConnection( connInfo )
-{
-}
-
-Core::Db::CharaDbConnection::CharaDbConnection( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* q,
- ConnectionInfo& connInfo) : DbConnection( q, connInfo )
-{
-}
-
-Core::Db::CharaDbConnection::~CharaDbConnection()
-{
-}
-
-void Core::Db::CharaDbConnection::doPrepareStatements()
-{
- if( !m_reconnecting )
- m_stmts.resize( MAX_STATEMENTS );
-
- /// CHARA
- prepareStatement( CHARA_SEL, "SELECT ContentId, Name, Hp, Mp, Tp, Gp, Mode, Mount, InvincibleGM, Voice, "
- "Customize, ModelMainWeapon, ModelSubWeapon, ModelSystemWeapon, "
- "ModelEquip, EmoteModeType, FirstLoginTime, Language, IsNewGame, "
- "IsNewAdventurer, TerritoryType, TerritoryId, PosX, PosY, PosZ, PosR, "
- "OTerritoryType, OTerritoryId, OPosX, OPosY, OPosZ, OPosR, GuardianDeity, "
- "BirthDay, BirthMonth, Class, Status, TotalPlayTime, FirstClass, HomePoint, "
- "FavoritePoint, RestPoint, StartTown, ActiveTitle, TitleList, Achievement, "
- "Aetheryte, HowTo, Minions, Mounts, Orchestrion, EquippedMannequin, ConfigFlags, "
- "QuestCompleteFlags, OpeningSequence, QuestTracking, GrandCompany, "
- "GrandCompanyRank, Discovery, GMRank, EquipDisplayFlags, Unlocks, CFPenaltyUntil, "
- "Pose "
- "FROM charainfo WHERE CharacterId = ?;", CONNECTION_SYNC );
-
-
- prepareStatement( CHARA_UP,
- "UPDATE charainfo SET "
- "Hp = ?, Mp = ?, Tp = ?, Gp = ?, Mode = ?, Mount = ?, InvincibleGM = ?, Voice = ?, "
- "Customize = ?, ModelMainWeapon = ?, ModelSubWeapon = ?, ModelSystemWeapon = ?, "
- "ModelEquip = ?, EmoteModeType = ?, Language = ?, IsNewGame = ?, IsNewAdventurer = ?, "
- "TerritoryType = ?, TerritoryId = ?, PosX = ?, PosY = ?, PosZ = ?, PosR = ?, "
- "OTerritoryType = ?, OTerritoryId = ?, OPosX = ?, OPosY = ?, OPosZ = ?, OPosR = ?, "
- "Class = ?, Status = ?, TotalPlayTime = ?, HomePoint = ?, FavoritePoint = ?, RestPoint = ?, "
- "ActiveTitle = ?, TitleList = ?, Achievement = ?, Aetheryte = ?, HowTo = ?, Minions = ?, Mounts = ?, Orchestrion = ?, "
- "EquippedMannequin = ?, ConfigFlags = ?, QuestCompleteFlags = ?, OpeningSequence = ?, "
- "QuestTracking = ?, GrandCompany = ?, GrandCompanyRank = ?, Discovery = ?, GMRank = ?, EquipDisplayFlags = ?, Unlocks = ?, "
- "CFPenaltyUntil = ?, Pose = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
-
-
- prepareStatement( CHARA_SEL_MINIMAL, "SELECT Name, Customize, ModelEquip, TerritoryId, GuardianDeity, "
- "Class, ContentId, BirthDay, BirthMonth "
- "FROM charainfo WHERE CharacterId = ?;", CONNECTION_SYNC );
-
- prepareStatement( CHARA_INS, "INSERT INTO charainfo (AccountId, CharacterId, ContentId, Name, Hp, Mp, "
- "Customize, Voice, IsNewGame, TerritoryId, PosX, PosY, PosZ, PosR, ModelEquip, "
- "IsNewAdventurer, GuardianDeity, Birthday, BirthMonth, Class, Status, FirstClass, "
- "HomePoint, StartTown, Discovery, HowTo, QuestCompleteFlags, Unlocks, QuestTracking, "
- "Aetheryte, GMRank, Mounts, Orchestrion, UPDATE_DATE ) "
- "VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,NOW() );",
- CONNECTION_SYNC );
-
- prepareStatement( CHARA_UP_NAME, "UPDATE charainfo SET Name = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_HPMP, "UPDATE charainfo SET Hp = ?, Mp = ?, Tp = ?, Gp = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_MODE, "UPDATE charainfo SET Mode = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_MOUNT, "UPDATE charainfo SET Mount = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_INVINCIBLE, "UPDATE charainfo SET InvincibleGM = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_CUSTOMIZE, "UPDATE charainfo SET Customize = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_MODELMAINWEAP, "UPDATE charainfo SET ModelMainWeapon = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_MODELSUBWEAP, "UPDATE charainfo SET ModelSubWeapon = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_MODELSYSWEAP, "UPDATE charainfo SET ModelSystemWeapon = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_MODELEQUIP, "UPDATE charainfo SET ModelEquip = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_EMOTEMODETYPE, "UPDATE charainfo SET EmoteModeType = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_FIRSTLOGINTIME, "UPDATE charainfo SET FirstLoginTime = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_LANGUAGE, "UPDATE charainfo SET Language = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_ISNEWGAME, "UPDATE charainfo SET IsNewGame = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_ISNEWADV, "UPDATE charainfo SET IsNewAdventurer = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_TERRITORY, "UPDATE charainfo SET TerritoryType = ?, TerritoryId = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_POS, "UPDATE charainfo SET OPosX = ?, OPosY = ?, OPosZ = ?, OPosR = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_CLASS, "UPDATE charainfo SET Class = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_STATUS, "UPDATE charainfo SET Status = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_TOTALPLAYTIME, "UPDATE charainfo SET TotalPlayTime = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_HOMEPOINT, "UPDATE charainfo SET Homepoint = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_FAVOPOINT, "UPDATE charainfo SET FavoritePoint = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_TITLE, "UPDATE charainfo SET ActiveTitle = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_TITLELIST, "UPDATE charainfo SET TitleList = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_ACHIEVEMENTS, "UPDATE charainfo SET Achievement = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_AETHERYTE, "UPDATE charainfo SET Aetheryte = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_HOWTO, "UPDATE charainfo SET HowTo = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_MINIONS, "UPDATE charainfo SET Minions = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_MOUNTS, "UPDATE charainfo SET Mounts = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_GEARSET, "UPDATE charainfo SET EquippedMannequin = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_CONFIGFLAGS, "UPDATE charainfo SET ConfigFlags = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_QUESTCOMPLETE, "UPDATE charainfo SET QuestCompleteFlags = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_OPENINGSEQ, "UPDATE charainfo SET OpeningSequence = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_QUESTTRACKING, "UPDATE charainfo SET QuestTracking = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_GRANDCOMPANY, "UPDATE charainfo SET GrandCompany = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_GRANDCOMPANYRANKS, "UPDATE charainfo SET GrandCompanyRank = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_DISCOVERY, "UPDATE charainfo SET Discovery = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_GMRANK, "UPDATE charainfo SET GMRank = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_EQUIPDISPLAYFLAGS, "UPDATE charainfo SET EquipDisplayFlags = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_UNLOCKS, "UPDATE charainfo SET Unlocks = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_UP_CFPENATLY, "UPDATE charainfo SET CFPenaltyUntil = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
-
- /// SEARCH INFO
- prepareStatement( CHARA_SEARCHINFO_INS, "INSERT INTO charainfosearch (CharacterId, UPDATE_DATE ) VALUES ( ?, NOW() );", CONNECTION_BOTH );
- prepareStatement( CHARA_SEARCHINFO_UP_SELECTCLASS, "UPDATE charainfosearch SET SelectClassId = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_SEARCHINFO_UP_SELECTREGION, "UPDATE charainfosearch SET SelectRegion = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_SEARCHINFO_UP_SEARCHCOMMENT, "UPDATE charainfosearch SET SearchComment = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_SEARCHINFO_SEL, "SELECT * FROM charainfosearch WHERE CharacterId = ?;", CONNECTION_SYNC );
-
- /// QUEST INFO
- prepareStatement( CHARA_QUEST_INS, "INSERT INTO charaquestnew ( CharacterId, SlotId, QuestId, Sequence, Flags, Variables_0, "
- "Variables_1, Variables_2, Variables_3, Variables_4, "
- "Variables_5, Variables_6 ) VALUES( ?,?,?,?,?,?,?,?,?,?,?,? );", CONNECTION_ASYNC );
-
- prepareStatement( CHARA_QUEST_UP, "UPDATE charaquestnew SET Sequence = ?, Flags = ?, Variables_0 = ?, "
- "Variables_1 = ?, Variables_2 = ?, Variables_3 = ?, "
- "Variables_4 = ?, Variables_5 = ?, Variables_6 = ? "
- "WHERE CharacterId = ? AND QuestId = ?;", CONNECTION_ASYNC );
-
- prepareStatement( CHARA_QUEST_DEL, "DELETE FROM charaquestnew WHERE CharacterId = ? AND QuestId = ?;", CONNECTION_ASYNC );
-
- prepareStatement( CHARA_QUEST_SEL, "SELECT * FROM charaquestnew WHERE CharacterId = ?;", CONNECTION_SYNC );
-
- /// CLASS INFO
- prepareStatement( CHARA_CLASS_SEL, "SELECT ClassIdx, Exp, Lvl FROM characlass WHERE CharacterId = ?;", CONNECTION_SYNC );
- prepareStatement( CHARA_CLASS_INS, "INSERT INTO characlass ( CharacterId, ClassIdx, Exp, Lvl ) VALUES( ?,?,?,? );", CONNECTION_BOTH );
- prepareStatement( CHARA_CLASS_UP, "UPDATE characlass SET Exp = ?, Lvl = ? WHERE CharacterId = ? AND ClassIdx = ?;", CONNECTION_ASYNC );
- prepareStatement( CHARA_CLASS_DEL, "DELETE FROM characlass WHERE CharacterId = ?;", CONNECTION_ASYNC );
-
- /// INVENTORY INFO
- prepareStatement( CHARA_ITEMINV_INS, "INSERT INTO charaiteminventory ( CharacterId, storageId, UPDATE_DATE ) VALUES ( ?, ?, NOW() );", CONNECTION_BOTH );
-
- /// ITEM GLOBAL
- prepareStatement( CHARA_ITEMGLOBAL_INS, "INSERT INTO charaglobalitem ( CharacterId, ItemId, catalogId, UPDATE_DATE ) VALUES ( ?, ?, ?, NOW() );", CONNECTION_BOTH );
-
-
-
-
-}
diff --git a/src/common/Database/CharaDbConnection.h b/src/common/Database/CharaDbConnection.h
deleted file mode 100644
index e747a0c2..00000000
--- a/src/common/Database/CharaDbConnection.h
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef SAPPHIRE_CHARACONNECTION_H
-#define SAPPHIRE_CHARACONNECTION_H
-
-#include "DbConnection.h"
-
-namespace Core
-{
-namespace Db
-{
-class DbConnectionInfo;
-
-enum CharaDbStatements : uint32_t
-{
- CHARA_SEL,
- CHARA_SEL_MINIMAL,
- CHARA_SEARCHINFO_SEL,
- CHARA_QUEST_SEL,
- CHARA_INS,
- CHARA_UP,
- CHARA_UP_NAME,
- CHARA_UP_HPMP,
- CHARA_UP_MODE,
- CHARA_UP_MOUNT,
- CHARA_UP_INVINCIBLE,
- CHARA_UP_CUSTOMIZE,
- CHARA_UP_MODELMAINWEAP,
- CHARA_UP_MODELSUBWEAP,
- CHARA_UP_MODELSYSWEAP,
- CHARA_UP_MODELEQUIP,
- CHARA_UP_EMOTEMODETYPE,
- CHARA_UP_FIRSTLOGINTIME,
- CHARA_UP_LANGUAGE,
- CHARA_UP_ISNEWGAME,
- CHARA_UP_ISNEWADV,
- CHARA_UP_TERRITORY,
- CHARA_UP_POS,
- CHARA_UP_CLASS,
- CHARA_UP_STATUS,
- CHARA_UP_TOTALPLAYTIME,
- CHARA_UP_HOMEPOINT,
- CHARA_UP_FAVOPOINT,
- CHARA_UP_TITLE,
- CHARA_UP_TITLELIST,
- CHARA_UP_ACHIEVEMENTS,
- CHARA_UP_AETHERYTE,
- CHARA_UP_HOWTO,
- CHARA_UP_MINIONS,
- CHARA_UP_MOUNTS,
- CHARA_UP_GEARSET,
- CHARA_UP_CONFIGFLAGS,
- CHARA_UP_QUESTCOMPLETE,
- CHARA_UP_OPENINGSEQ,
- CHARA_UP_QUESTTRACKING,
- CHARA_UP_GRANDCOMPANY,
- CHARA_UP_GRANDCOMPANYRANKS,
- CHARA_UP_DISCOVERY,
- CHARA_UP_GMRANK,
- CHARA_UP_EQUIPDISPLAYFLAGS,
- CHARA_UP_UNLOCKS,
- CHARA_UP_CFPENATLY,
- CHARA_SEARCHINFO_INS,
- CHARA_SEARCHINFO_UP_SELECTCLASS,
- CHARA_SEARCHINFO_UP_SELECTREGION,
- CHARA_SEARCHINFO_UP_SEARCHCOMMENT,
-
- CHARA_QUEST_INS,
- CHARA_QUEST_UP,
- CHARA_QUEST_DEL,
-
- CHARA_CLASS_SEL,
- CHARA_CLASS_INS,
- CHARA_CLASS_UP,
- CHARA_CLASS_DEL,
-
- CHARA_ITEMINV_INS,
-
- CHARA_ITEMGLOBAL_INS,
-
- MAX_STATEMENTS
-};
-
-class CharaDbConnection : public DbConnection
-{
-public:
- using Statements = CharaDbStatements;
-
- CharaDbConnection( ConnectionInfo& connInfo );
- CharaDbConnection( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* q, ConnectionInfo &connInfo );
-
- ~CharaDbConnection();
-
- void doPrepareStatements() override;
-
-};
-
-}
-}
-
-#endif //SAPPHIRE_CHARACONNECTION_H
diff --git a/src/common/Database/DatabaseDef.h b/src/common/Database/DatabaseDef.h
index 3253242e..bb73957f 100644
--- a/src/common/Database/DatabaseDef.h
+++ b/src/common/Database/DatabaseDef.h
@@ -3,10 +3,10 @@
#include
#include "Database/DbLoader.h"
-#include "Database/CharaDbConnection.h"
+#include "Database/ZoneDbConnection.h"
#include "Database/DbWorkerPool.h"
#include "Database/PreparedStatement.h"
-extern Core::Db::DbWorkerPool< Core::Db::CharaDbConnection > g_charaDb;
+extern Core::Db::DbWorkerPool< Core::Db::ZoneDbConnection > g_charaDb;
#endif
diff --git a/src/common/Database/DbConnection.cpp b/src/common/Database/DbConnection.cpp
index 366fc954..3eb7a4d5 100644
--- a/src/common/Database/DbConnection.cpp
+++ b/src/common/Database/DbConnection.cpp
@@ -9,241 +9,242 @@
extern Core::Framework g_fw;
-Core::Db::DbConnection::DbConnection( ConnectionInfo &connInfo ) :
- m_reconnecting( false ),
- m_prepareError( false ),
- m_queue( nullptr ),
- m_pConnection( nullptr ),
- m_connectionInfo( connInfo ),
- m_connectionFlags( CONNECTION_SYNC )
+Core::Db::DbConnection::DbConnection( ConnectionInfo& connInfo ) :
+ m_reconnecting( false ),
+ m_prepareError( false ),
+ m_queue( nullptr ),
+ m_pConnection( nullptr ),
+ m_connectionInfo( connInfo ),
+ m_connectionFlags( CONNECTION_SYNC )
{
}
Core::Db::DbConnection::DbConnection( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* queue,
Core::Db::ConnectionInfo& connInfo ) :
- m_reconnecting( false ),
- m_prepareError( false ),
- m_queue( queue ),
- m_pConnection( nullptr ),
- m_connectionInfo( connInfo ),
- m_connectionFlags( CONNECTION_ASYNC )
+ m_reconnecting( false ),
+ m_prepareError( false ),
+ m_queue( queue ),
+ m_pConnection( nullptr ),
+ m_connectionInfo( connInfo ),
+ m_connectionFlags( CONNECTION_ASYNC )
{
- m_worker = boost::make_shared< DbWorker >( m_queue, this );
+ m_worker = boost::make_shared< DbWorker >( m_queue, this );
}
Core::Db::DbConnection::~DbConnection()
{
- close();
+ close();
}
void Core::Db::DbConnection::close()
{
- m_worker.reset();
- m_stmts.clear();
+ m_worker.reset();
+ m_stmts.clear();
- if( m_pConnection )
- {
- m_pConnection->close();
- m_pConnection.reset();
- }
+ if( m_pConnection )
+ {
+ m_pConnection->close();
+ m_pConnection.reset();
+ }
}
uint32_t Core::Db::DbConnection::open()
{
- boost::shared_ptr< Mysql::MySqlBase > base( new Mysql::MySqlBase() );
- Mysql::optionMap options;
- options[ MYSQL_OPT_RECONNECT ] = "1";
- options[ MYSQL_SET_CHARSET_NAME ] = "utf8";
+ boost::shared_ptr< Mysql::MySqlBase > base( new Mysql::MySqlBase() );
+ Mysql::optionMap options;
+ options[ MYSQL_OPT_RECONNECT ] = "1";
+ options[ MYSQL_SET_CHARSET_NAME ] = "utf8";
- try
- {
- m_pConnection = base->connect( m_connectionInfo.host, m_connectionInfo.user, m_connectionInfo.password,
- options, m_connectionInfo.port );
+ try
+ {
+ m_pConnection = base->connect( m_connectionInfo.host, m_connectionInfo.user, m_connectionInfo.password,
+ options, m_connectionInfo.port );
- m_pConnection->setSchema( m_connectionInfo.database );
- }
- catch( std::runtime_error& e )
- {
- g_fw.get< Logger >()->error( e.what() );
- return 1;
- }
+ m_pConnection->setSchema( m_connectionInfo.database );
+ }
+ catch( std::runtime_error& e )
+ {
+ g_fw.get< Logger >()->error( e.what() );
+ return 1;
+ }
- return 0;
+ return 0;
}
uint32_t Core::Db::DbConnection::getLastError()
{
- return m_pConnection->getErrorNo();
+ return m_pConnection->getErrorNo();
}
bool Core::Db::DbConnection::ping()
{
- return m_pConnection->ping();
+ return m_pConnection->ping();
}
bool Core::Db::DbConnection::lockIfReady()
{
- return m_mutex.try_lock();
+ return m_mutex.try_lock();
}
void Core::Db::DbConnection::unlock()
{
- m_mutex.unlock();
+ m_mutex.unlock();
}
void Core::Db::DbConnection::beginTransaction()
{
- m_pConnection->beginTransaction();
+ m_pConnection->beginTransaction();
}
void Core::Db::DbConnection::rollbackTransaction()
{
- m_pConnection->rollbackTransaction();
+ m_pConnection->rollbackTransaction();
}
void Core::Db::DbConnection::commitTransaction()
{
- m_pConnection->commitTransaction();
+ m_pConnection->commitTransaction();
}
bool Core::Db::DbConnection::execute( const std::string& sql )
{
- try
- {
- auto stmt = m_pConnection->createStatement();
- bool result = stmt->execute( sql );
- return result;
- }
- catch( std::runtime_error& e )
- {
- g_fw.get< Logger >()->error( e.what() );
- return false;
- }
+ try
+ {
+ auto stmt = m_pConnection->createStatement();
+ bool result = stmt->execute( sql );
+ return result;
+ }
+ catch( std::runtime_error& e )
+ {
+ g_fw.get< Logger >()->error( e.what() );
+ return false;
+ }
}
boost::shared_ptr< Mysql::ResultSet > Core::Db::DbConnection::query( const std::string& sql )
{
- try
- {
- auto stmt = m_pConnection->createStatement();
- auto result = stmt->executeQuery( sql );
- return result;
- }
- catch( std::runtime_error& e )
- {
- g_fw.get< Logger >()->error( e.what() );
- return nullptr;
- }
+ try
+ {
+ auto stmt = m_pConnection->createStatement();
+ auto result = stmt->executeQuery( sql );
+ return result;
+ }
+ catch( std::runtime_error& e )
+ {
+ g_fw.get< Logger >()->error( e.what() );
+ return nullptr;
+ }
}
-boost::shared_ptr< Mysql::ResultSet > Core::Db::DbConnection::query( boost::shared_ptr< Core::Db::PreparedStatement > stmt )
+boost::shared_ptr< Mysql::ResultSet >
+Core::Db::DbConnection::query( boost::shared_ptr< Core::Db::PreparedStatement > stmt )
{
- boost::shared_ptr< Mysql::ResultSet > res( nullptr );
- if( !stmt )
+ boost::shared_ptr< Mysql::ResultSet > res( nullptr );
+ if( !stmt )
+ return nullptr;
+
+ if( !ping() )
+ {
+ // naivly reconnect and hope for the best
+ open();
+ lockIfReady();
+ if( !prepareStatements() )
return nullptr;
+ }
- if( !ping() )
- {
- // naivly reconnect and hope for the best
- open();
- lockIfReady();
- if( !prepareStatements() )
- return nullptr;
- }
+ uint32_t index = stmt->getIndex();
- uint32_t index = stmt->getIndex();
+ auto pStmt = getPreparedStatement( index );
- auto pStmt = getPreparedStatement( index );
+ if( !pStmt )
+ return nullptr;
- if( !pStmt )
- return nullptr;
+ stmt->setMysqlPS( pStmt );
+ try
+ {
+ stmt->bindParameters();
+ return pStmt->executeQuery();
+ }
+ catch( std::runtime_error& e )
+ {
+ g_fw.get< Logger >()->error( e.what() );
+ return nullptr;
+ }
- stmt->setMysqlPS( pStmt );
- try
- {
- stmt->bindParameters();
- return pStmt->executeQuery();
- }
- catch( std::runtime_error& e )
- {
- g_fw.get< Logger >()->error( e.what() );
- return nullptr;
- }
-
}
bool Core::Db::DbConnection::execute( boost::shared_ptr< Core::Db::PreparedStatement > stmt )
{
- if( !stmt )
- return false;
+ if( !stmt )
+ return false;
- uint32_t index = stmt->getIndex();
+ uint32_t index = stmt->getIndex();
- auto pStmt = getPreparedStatement( index );
+ auto pStmt = getPreparedStatement( index );
- if( !pStmt )
- return false;
+ if( !pStmt )
+ return false;
- stmt->setMysqlPS( pStmt );
- try
- {
- stmt->bindParameters();
- return pStmt->execute();
- }
- catch( std::runtime_error& e )
- {
- g_fw.get< Logger >()->error( e.what() );
- return false;
- }
+ stmt->setMysqlPS( pStmt );
+ try
+ {
+ stmt->bindParameters();
+ return pStmt->execute();
+ }
+ catch( std::runtime_error& e )
+ {
+ g_fw.get< Logger >()->error( e.what() );
+ return false;
+ }
}
boost::shared_ptr< Mysql::PreparedStatement > Core::Db::DbConnection::getPreparedStatement( uint32_t index )
{
- assert( index < m_stmts.size() );
- auto ret = m_stmts[index];
- if( !ret )
- nullptr;
+ assert( index < m_stmts.size() );
+ auto ret = m_stmts[ index ];
+ if( !ret )
+ nullptr;
- return ret;
+ return ret;
}
-void Core::Db::DbConnection::prepareStatement( uint32_t index, const std::string &sql, Core::Db::ConnectionFlags flags )
+void Core::Db::DbConnection::prepareStatement( uint32_t index, const std::string& sql, Core::Db::ConnectionFlags flags )
{
- m_queries.insert( PreparedStatementMap::value_type( index, std::make_pair( sql, flags ) ) );
+ m_queries.insert( PreparedStatementMap::value_type( index, std::make_pair( sql, flags ) ) );
- // Check if specified query should be prepared on this connection
- // i.e. don't prepare async statements on synchronous connections
- // to save memory that will not be used.
- if( !( m_connectionFlags & flags ) )
- {
- m_stmts[index].reset();
- return;
- }
+ // Check if specified query should be prepared on this connection
+ // i.e. don't prepare async statements on synchronous connections
+ // to save memory that will not be used.
+ if( !( m_connectionFlags & flags ) )
+ {
+ m_stmts[ index ].reset();
+ return;
+ }
- boost::shared_ptr< Mysql::PreparedStatement > pStmt( nullptr );
+ boost::shared_ptr< Mysql::PreparedStatement > pStmt( nullptr );
- try
- {
- pStmt = m_pConnection->prepareStatement( sql );
- }
- catch( std::runtime_error& e )
- {
- g_fw.get< Logger >()->error( e.what() );
- m_prepareError = true;
- }
+ try
+ {
+ pStmt = m_pConnection->prepareStatement( sql );
+ }
+ catch( std::runtime_error& e )
+ {
+ g_fw.get< Logger >()->error( e.what() );
+ m_prepareError = true;
+ }
- m_stmts[index] = boost::shared_ptr< Mysql::PreparedStatement >( pStmt );
+ m_stmts[ index ] = boost::shared_ptr< Mysql::PreparedStatement >( pStmt );
}
bool Core::Db::DbConnection::prepareStatements()
{
- doPrepareStatements();
- return !m_prepareError;
+ doPrepareStatements();
+ return !m_prepareError;
}
diff --git a/src/common/Database/DbConnection.h b/src/common/Database/DbConnection.h
index d0fb81d5..fda87691 100644
--- a/src/common/Database/DbConnection.h
+++ b/src/common/Database/DbConnection.h
@@ -10,98 +10,117 @@
#include
#include
-namespace Mysql
-{
- class Connection;
- class ResultSet;
- class PreparedResultSet;
- class PreparedStatement;
+namespace Mysql {
+class Connection;
+
+class ResultSet;
+
+class PreparedResultSet;
+
+class PreparedStatement;
}
-namespace Core
+namespace Core {
+namespace Db {
+class DatabaseWorker;
+
+class PreparedStatement;
+
+class Operation;
+
+class DbWorker;
+
+using PreparedStmtScopedPtr = boost::scoped_ptr< PreparedStatement >;
+
+enum ConnectionFlags
{
-namespace Db
+ CONNECTION_ASYNC = 0x1,
+ CONNECTION_SYNC = 0x2,
+ CONNECTION_BOTH = CONNECTION_ASYNC | CONNECTION_SYNC
+};
+
+struct ConnectionInfo
{
- class DatabaseWorker;
- class PreparedStatement;
- class Operation;
- class DbWorker;
+ std::string user;
+ std::string password;
+ std::string database;
+ std::string host;
+ uint16_t port;
+ uint8_t syncThreads;
+ uint8_t asyncThreads;
+};
- using PreparedStmtScopedPtr = boost::scoped_ptr< PreparedStatement >;
+using PreparedStatementMap = std::map< uint32_t, std::pair< std::string, ConnectionFlags > >;
- enum ConnectionFlags
- {
- CONNECTION_ASYNC = 0x1,
- CONNECTION_SYNC = 0x2,
- CONNECTION_BOTH = CONNECTION_ASYNC | CONNECTION_SYNC
- };
+class DbConnection :
+ public boost::enable_shared_from_this< DbConnection >
+{
+public:
+ // Constructor for synchronous connections.
+ DbConnection( ConnectionInfo& connInfo );
- struct ConnectionInfo
- {
- std::string user;
- std::string password;
- std::string database;
- std::string host;
- uint16_t port;
- uint8_t syncThreads;
- uint8_t asyncThreads;
- };
+ // Constructor for asynchronous connections.
+ DbConnection( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* queue, ConnectionInfo& connInfo );
- using PreparedStatementMap = std::map< uint32_t, std::pair< std::string, ConnectionFlags > >;
+ virtual ~DbConnection();
- class DbConnection : public boost::enable_shared_from_this< DbConnection >
- {
- public:
- // Constructor for synchronous connections.
- DbConnection( ConnectionInfo& connInfo );
- // Constructor for asynchronous connections.
- DbConnection( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* queue, ConnectionInfo& connInfo );
- virtual ~DbConnection();
+ virtual uint32_t open();
- virtual uint32_t open();
- void close();
+ void close();
- bool prepareStatements();
+ bool prepareStatements();
- bool execute( const std::string& sql );
- bool execute( boost::shared_ptr< PreparedStatement > stmt );
- boost::shared_ptr< Mysql::ResultSet > query( const std::string& sql );
- boost::shared_ptr< Mysql::ResultSet > query( boost::shared_ptr< PreparedStatement > stmt );
+ bool execute( const std::string& sql );
- void beginTransaction();
- void rollbackTransaction();
- void commitTransaction();
-
- bool ping();
+ bool execute( boost::shared_ptr< PreparedStatement > stmt );
- uint32_t getLastError();
- bool lockIfReady();
+ boost::shared_ptr< Mysql::ResultSet > query( const std::string& sql );
- void unlock();
+ boost::shared_ptr< Mysql::ResultSet > query( boost::shared_ptr< PreparedStatement > stmt );
- boost::shared_ptr< Mysql::Connection > getConnection() { return m_pConnection; }
- boost::shared_ptr< Mysql::PreparedStatement > getPreparedStatement( uint32_t index );
- void prepareStatement( uint32_t index, const std::string& sql, ConnectionFlags flags );
+ void beginTransaction();
- virtual void doPrepareStatements() = 0;
+ void rollbackTransaction();
- protected:
- std::vector< boost::shared_ptr< Mysql::PreparedStatement > > m_stmts;
- PreparedStatementMap m_queries;
- bool m_reconnecting;
- bool m_prepareError;
+ void commitTransaction();
- private:
- LockedWaitQueue< boost::shared_ptr< Operation > >* m_queue;
- boost::shared_ptr< DbWorker > m_worker;
- boost::shared_ptr< Mysql::Connection > m_pConnection;
- ConnectionInfo& m_connectionInfo;
- ConnectionFlags m_connectionFlags;
- std::mutex m_mutex;
+ bool ping();
- DbConnection( DbConnection const& right ) = delete;
- DbConnection& operator=( DbConnection const& right ) = delete;
- };
+ uint32_t getLastError();
+
+ bool lockIfReady();
+
+ void unlock();
+
+ boost::shared_ptr< Mysql::Connection > getConnection()
+ {
+ return m_pConnection;
+ }
+
+ boost::shared_ptr< Mysql::PreparedStatement > getPreparedStatement( uint32_t index );
+
+ void prepareStatement( uint32_t index, const std::string& sql, ConnectionFlags flags );
+
+ virtual void doPrepareStatements() = 0;
+
+protected:
+ std::vector< boost::shared_ptr< Mysql::PreparedStatement > > m_stmts;
+ PreparedStatementMap m_queries;
+ bool m_reconnecting;
+ bool m_prepareError;
+
+private:
+ LockedWaitQueue< boost::shared_ptr< Operation > >* m_queue;
+ boost::shared_ptr< DbWorker > m_worker;
+ boost::shared_ptr< Mysql::Connection > m_pConnection;
+ ConnectionInfo& m_connectionInfo;
+ ConnectionFlags m_connectionFlags;
+ std::mutex m_mutex;
+
+ DbConnection( DbConnection const& right ) = delete;
+
+ DbConnection& operator=( DbConnection const& right ) = delete;
+};
}
}
diff --git a/src/common/Database/DbLoader.cpp b/src/common/Database/DbLoader.cpp
index 56cd4be2..db3d3f0a 100644
--- a/src/common/Database/DbLoader.cpp
+++ b/src/common/Database/DbLoader.cpp
@@ -1,6 +1,6 @@
#include "DbLoader.h"
#include
-#include "CharaDbConnection.h"
+#include "ZoneDbConnection.h"
#include "DbWorkerPool.h"
#include "Logging/Logger.h"
#include "Framework.h"
@@ -11,102 +11,104 @@ Core::Db::DbLoader::DbLoader()
{
}
-template
+template< class T >
Core::Db::DbLoader& Core::Db::DbLoader::addDb( Core::Db::DbWorkerPool< T >& pool, const ConnectionInfo& info )
{
- m_open.push([this, info, &pool]() -> bool
- {
-
+ m_open.push( [ this, info, &pool ]()->bool
+ {
+
auto pLog = g_fw.get< Logger >();
const uint8_t asyncThreads = info.asyncThreads;
const uint8_t synchThreads = info.syncThreads;
if( asyncThreads < 1 || asyncThreads > 32 )
{
- pLog->error( "database: invalid number of worker threads specified. Please pick a value between 1 and 32." );
- return false;
+ pLog->error(
+ "database: invalid number of worker threads specified. Please pick a value between 1 and 32." );
+ return false;
}
pool.setConnectionInfo( info, asyncThreads, synchThreads );
if( uint32_t error = pool.open() )
{
- // Database does not exist
- if( error == ER_BAD_DB_ERROR )
- {
- return false;
- }
+ // Database does not exist
+ if( error == ER_BAD_DB_ERROR )
+ {
+ return false;
+ }
- if( error )
- {
- pLog->error( "DatabasePool failed to open." );
- return false;
- }
+ if( error )
+ {
+ pLog->error( "DatabasePool failed to open." );
+ return false;
+ }
}
- m_close.push( [&pool] { pool.close(); } );
+ m_close.push( [ &pool ]
+ { pool.close(); } );
return true;
- });
+ } );
- m_prepare.push([this, info, &pool]() -> bool
- {
+ m_prepare.push( [ this, info, &pool ]()->bool
+ {
if( !pool.prepareStatements() )
{
- auto pLog = g_fw.get< Logger >();
- pLog->error( "Could not prepare statements of the database, see log for details." );
- return false;
+ auto pLog = g_fw.get< Logger >();
+ pLog->error( "Could not prepare statements of the database, see log for details." );
+ return false;
}
return true;
- });
+ } );
- return *this;
+ return *this;
}
bool Core::Db::DbLoader::initDbs()
{
- if( !openDatabases() )
- return false;
+ if( !openDatabases() )
+ return false;
- if( !prepareStatements() )
- return false;
+ if( !prepareStatements() )
+ return false;
- return true;
+ return true;
}
bool Core::Db::DbLoader::openDatabases()
{
- return process( m_open );
+ return process( m_open );
}
bool Core::Db::DbLoader::prepareStatements()
{
- return process( m_prepare );
+ return process( m_prepare );
}
bool Core::Db::DbLoader::process( std::queue< Predicate >& queue )
{
- while( !queue.empty() )
- {
- if( !queue.front()() )
+ while( !queue.empty() )
+ {
+ if( !queue.front()() )
+ {
+ // Close all open databases which have a registered close operation
+ while( !m_close.empty() )
{
- // Close all open databases which have a registered close operation
- while( !m_close.empty() )
- {
- m_close.top()();
- m_close.pop();
- }
-
- return false;
+ m_close.top()();
+ m_close.pop();
}
- queue.pop();
- }
- return true;
+ return false;
+ }
+
+ queue.pop();
+ }
+ return true;
}
template
Core::Db::DbLoader&
- Core::Db::DbLoader::addDb< Core::Db::CharaDbConnection >( Core::Db::DbWorkerPool< Core::Db::CharaDbConnection >&,
- const ConnectionInfo& );
+Core::Db::DbLoader::addDb< Core::Db::ZoneDbConnection >( Core::Db::DbWorkerPool< Core::Db::ZoneDbConnection >&,
+ const ConnectionInfo& );
diff --git a/src/common/Database/DbLoader.h b/src/common/Database/DbLoader.h
index acbb6944..46070de5 100644
--- a/src/common/Database/DbLoader.h
+++ b/src/common/Database/DbLoader.h
@@ -8,44 +8,43 @@
#include
#include "DbConnection.h"
-namespace Core
+namespace Core {
+namespace Db {
+
+template< class T >
+class DbWorkerPool;
+
+class DbLoader
{
- namespace Db
- {
+public:
+ DbLoader();
- template< class T >
- class DbWorkerPool;
+ template< class T >
+ DbLoader& addDb( DbWorkerPool< T >& pool, const ConnectionInfo& info );
- class DbLoader
- {
- public:
- DbLoader();
+ bool initDbs();
- template< class T >
- DbLoader& addDb( DbWorkerPool< T >& pool, const ConnectionInfo& info );
+ enum DbTypeFlags
+ {
+ DATABASE_NONE = 0,
+ DATABASE_CHARACTER = 1,
+ DATABASE_MASK_ALL = DATABASE_CHARACTER
+ };
- bool initDbs();
+private:
+ bool openDatabases();
- enum DbTypeFlags
- {
- DATABASE_NONE = 0,
- DATABASE_CHARACTER = 1,
- DATABASE_MASK_ALL = DATABASE_CHARACTER
- };
+ bool prepareStatements();
- private:
- bool openDatabases();
- bool prepareStatements();
+ using Predicate = std::function< bool() >;
+ using Closer = std::function< void() >;
- using Predicate = std::function< bool() >;
- using Closer = std::function< void() >;
+ bool process( std::queue< Predicate >& queue );
- bool process( std::queue< Predicate >& queue );
-
- std::queue< Predicate > m_open;
- std::queue< Predicate > m_prepare;
- std::stack< Closer > m_close;
- };
+ std::queue< Predicate > m_open;
+ std::queue< Predicate > m_prepare;
+ std::stack< Closer > m_close;
+};
}
}
diff --git a/src/common/Database/DbWorker.cpp b/src/common/Database/DbWorker.cpp
index 1888419e..b184b82f 100644
--- a/src/common/Database/DbWorker.cpp
+++ b/src/common/Database/DbWorker.cpp
@@ -4,34 +4,34 @@
Core::Db::DbWorker::DbWorker( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* newQueue, DbConnection* pConn )
{
- m_pConn = pConn;
- m_queue = newQueue;
- m_cancelationToken = false;
- m_workerThread = std::thread( &DbWorker::workerThread, this );
+ m_pConn = pConn;
+ m_queue = newQueue;
+ m_cancelationToken = false;
+ m_workerThread = std::thread( &DbWorker::workerThread, this );
}
Core::Db::DbWorker::~DbWorker()
{
- m_cancelationToken = true;
- m_queue->cancel();
- m_workerThread.join();
+ m_cancelationToken = true;
+ m_queue->cancel();
+ m_workerThread.join();
}
void Core::Db::DbWorker::workerThread()
{
- if( !m_queue )
+ if( !m_queue )
+ return;
+
+ while( true )
+ {
+ boost::shared_ptr< Operation > operation = nullptr;
+
+ m_queue->waitAndPop( operation );
+
+ if( m_cancelationToken || !operation )
return;
- while( true )
- {
- boost::shared_ptr< Operation > operation = nullptr;
-
- m_queue->waitAndPop( operation );
-
- if( m_cancelationToken || !operation )
- return;
-
- operation->setConnection( m_pConn );
- operation->call();
- }
+ operation->setConnection( m_pConn );
+ operation->call();
+ }
}
diff --git a/src/common/Database/DbWorker.h b/src/common/Database/DbWorker.h
index 8782f6a0..49f0dd56 100644
--- a/src/common/Database/DbWorker.h
+++ b/src/common/Database/DbWorker.h
@@ -6,34 +6,35 @@
#include "Util/LockedWaitQueue.h"
#include
-namespace Core
+namespace Core {
+namespace Db {
+class DbConnection;
+
+class Operation;
+
+class DbWorker
{
-namespace Db
-{
- class DbConnection;
- class Operation;
+public:
+ DbWorker( LockedWaitQueue< boost::shared_ptr< Operation > >* newQueue, DbConnection* connection );
- class DbWorker
- {
- public:
- DbWorker( LockedWaitQueue< boost::shared_ptr< Operation > >* newQueue, DbConnection* connection );
- ~DbWorker();
+ ~DbWorker();
- private:
- LockedWaitQueue< boost::shared_ptr< Operation > >* m_queue;
- DbConnection* m_pConn;
+private:
+ LockedWaitQueue< boost::shared_ptr< Operation > >* m_queue;
+ DbConnection* m_pConn;
- void workerThread();
- std::thread m_workerThread;
+ void workerThread();
- std::atomic< bool > m_cancelationToken;
+ std::thread m_workerThread;
- DbWorker( DbWorker const& right ) = delete;
- DbWorker& operator=( DbWorker const& right ) = delete;
- };
+ std::atomic< bool > m_cancelationToken;
+
+ DbWorker( DbWorker const& right ) = delete;
+
+ DbWorker& operator=( DbWorker const& right ) = delete;
+};
}
}
-
#endif //SAPPHIRE_DBWORKER_H
diff --git a/src/common/Database/DbWorkerPool.cpp b/src/common/Database/DbWorkerPool.cpp
index 785b857d..357c8e13 100644
--- a/src/common/Database/DbWorkerPool.cpp
+++ b/src/common/Database/DbWorkerPool.cpp
@@ -4,7 +4,7 @@
#include
#include "StatementTask.h"
#include "Operation.h"
-#include "CharaDbConnection.h"
+#include "ZoneDbConnection.h"
#include
#include "Framework.h"
@@ -12,249 +12,255 @@
extern Core::Framework g_fw;
-class PingOperation : public Core::Db::Operation
+class PingOperation :
+ public Core::Db::Operation
{
- bool execute() override
- {
- m_pConn->ping();
- return true;
- }
+ bool execute() override
+ {
+ m_pConn->ping();
+ return true;
+ }
};
template< class T >
-Core::Db::DbWorkerPool::DbWorkerPool()
- : m_queue( new Core::LockedWaitQueue< boost::shared_ptr< Operation > >() ),
- m_asyncThreads( 0 ),
- m_synchThreads( 0 )
+Core::Db::DbWorkerPool< T >::DbWorkerPool()
+ :
+ m_queue( new Core::LockedWaitQueue< boost::shared_ptr< Operation > >() ),
+ m_asyncThreads( 0 ),
+ m_synchThreads( 0 )
{
}
template< class T >
Core::Db::DbWorkerPool< T >::~DbWorkerPool()
{
- m_queue->cancel();
+ m_queue->cancel();
}
template< class T >
void Core::Db::DbWorkerPool< T >::setConnectionInfo( const ConnectionInfo& info,
uint8_t asyncThreads,
- uint8_t synchThreads)
+ uint8_t synchThreads )
{
- m_connectionInfo = info;
- m_asyncThreads = asyncThreads;
- m_synchThreads = synchThreads;
+ m_connectionInfo = info;
+ m_asyncThreads = asyncThreads;
+ m_synchThreads = synchThreads;
}
template< class T >
uint32_t Core::Db::DbWorkerPool< T >::open()
{
- auto pLog = g_fw.get< Logger >();
- pLog->info( "[DbPool] Opening DatabasePool " + getDatabaseName() +
- " Asynchronous connections: " + std::to_string( m_asyncThreads ) +
- " Synchronous connections: " + std::to_string( m_synchThreads ) );
+ auto pLog = g_fw.get< Logger >();
+ pLog->info( "[DbPool] Opening DatabasePool " + getDatabaseName() +
+ " Asynchronous connections: " + std::to_string( m_asyncThreads ) +
+ " Synchronous connections: " + std::to_string( m_synchThreads ) );
- uint32_t error = openConnections( IDX_ASYNC, m_asyncThreads );
+ uint32_t error = openConnections( IDX_ASYNC, m_asyncThreads );
- if( error )
- return error;
+ if( error )
+ return error;
- error = openConnections( IDX_SYNCH, m_synchThreads );
+ error = openConnections( IDX_SYNCH, m_synchThreads );
- if( !error )
- {
- pLog->info( "[DbPool] DatabasePool " + getDatabaseName() + " opened successfully. " +
- std::to_string( ( m_connections[IDX_SYNCH].size() + m_connections[IDX_ASYNC].size() ) ) +
- " total connections running." );
- }
+ if( !error )
+ {
+ pLog->info( "[DbPool] DatabasePool " + getDatabaseName() + " opened successfully. " +
+ std::to_string( ( m_connections[ IDX_SYNCH ].size() + m_connections[ IDX_ASYNC ].size() ) ) +
+ " total connections running." );
+ }
- return error;
+ return error;
}
template< class T >
void Core::Db::DbWorkerPool< T >::close()
{
- auto pLog = g_fw.get< Logger >();
- pLog->info("[DbPool] Closing down DatabasePool " + getDatabaseName() );
- m_connections[IDX_ASYNC].clear();
- m_connections[IDX_SYNCH].clear();
- pLog->info("[DbPool] All connections on DatabasePool " + getDatabaseName() + "closed." );
+ auto pLog = g_fw.get< Logger >();
+ pLog->info( "[DbPool] Closing down DatabasePool " + getDatabaseName() );
+ m_connections[ IDX_ASYNC ].clear();
+ m_connections[ IDX_SYNCH ].clear();
+ pLog->info( "[DbPool] All connections on DatabasePool " + getDatabaseName() + "closed." );
}
template< class T >
-bool Core::Db::DbWorkerPool::prepareStatements()
+bool Core::Db::DbWorkerPool< T >::prepareStatements()
{
- for( auto& connections : m_connections )
- for( auto& connection : connections )
+ for( auto& connections : m_connections )
+ for( auto& connection : connections )
+ {
+ connection->lockIfReady();
+ if( !connection->prepareStatements() )
{
- connection->lockIfReady();
- if( !connection->prepareStatements() )
- {
- connection->unlock();
- close();
- return false;
- }
- else
- connection->unlock();
+ connection->unlock();
+ close();
+ return false;
}
+ else
+ connection->unlock();
+ }
- return true;
+ return true;
}
template< class T >
-boost::shared_ptr< Mysql::ResultSet > Core::Db::DbWorkerPool< T >::query( const std::string& sql, boost::shared_ptr< T > connection )
+boost::shared_ptr< Mysql::ResultSet >
+Core::Db::DbWorkerPool< T >::query( const std::string& sql, boost::shared_ptr< T > connection )
{
- if( !connection )
- connection = getFreeConnection();
+ if( !connection )
+ connection = getFreeConnection();
- boost::shared_ptr< Mysql::ResultSet > result = connection->query( sql );
- connection->unlock();
+ boost::shared_ptr< Mysql::ResultSet > result = connection->query( sql );
+ connection->unlock();
- return result;
+ return result;
}
template< class T >
-boost::shared_ptr< Mysql::PreparedResultSet > Core::Db::DbWorkerPool< T >::query( boost::shared_ptr< PreparedStatement > stmt )
+boost::shared_ptr< Mysql::PreparedResultSet >
+Core::Db::DbWorkerPool< T >::query( boost::shared_ptr< PreparedStatement > stmt )
{
- auto connection = getFreeConnection();
- auto ret = boost::static_pointer_cast< Mysql::PreparedResultSet >( connection->query( stmt ) );
- connection->unlock();
+ auto connection = getFreeConnection();
+ auto ret = boost::static_pointer_cast< Mysql::PreparedResultSet >( connection->query( stmt ) );
+ connection->unlock();
- return ret;
+ return ret;
}
template< class T >
-boost::shared_ptr< Core::Db::PreparedStatement > Core::Db::DbWorkerPool< T >::getPreparedStatement( PreparedStatementIndex index )
+boost::shared_ptr< Core::Db::PreparedStatement >
+Core::Db::DbWorkerPool< T >::getPreparedStatement( PreparedStatementIndex index )
{
- return boost::make_shared< PreparedStatement >( index );
+ return boost::make_shared< PreparedStatement >( index );
}
template< class T >
void Core::Db::DbWorkerPool< T >::escapeString( std::string& str )
{
- if( str.empty() )
- return;
+ if( str.empty() )
+ return;
- char* buf = new char[str.size() * 2 + 1];
- escapeString( buf, str.c_str(), str.size() );
- str = buf;
- delete[] buf;
+ char* buf = new char[str.size() * 2 + 1];
+ escapeString( buf, str.c_str(), str.size() );
+ str = buf;
+ delete[] buf;
}
template< class T >
void Core::Db::DbWorkerPool< T >::keepAlive()
{
- for( auto& connection : m_connections[IDX_SYNCH] )
- {
- if( connection->lockIfReady() )
- {
- connection->ping();
- connection->unlock();
- }
- }
+ for( auto& connection : m_connections[ IDX_SYNCH ] )
+ {
+ if( connection->lockIfReady() )
+ {
+ connection->ping();
+ connection->unlock();
+ }
+ }
- const auto count = m_connections[IDX_ASYNC].size();
- for( uint8_t i = 0; i < count; ++i )
- enqueue( boost::make_shared< PingOperation >() );
+ const auto count = m_connections[ IDX_ASYNC ].size();
+ for( uint8_t i = 0; i < count; ++i )
+ enqueue( boost::make_shared< PingOperation >() );
}
template< class T >
uint32_t Core::Db::DbWorkerPool< T >::openConnections( InternalIndex type, uint8_t numConnections )
{
- for( uint8_t i = 0; i < numConnections; ++i )
- {
- // Create the connection
- auto connection = [&] {
- switch (type)
- {
- case IDX_ASYNC:
- return boost::make_shared< T >( m_queue.get(), m_connectionInfo );
- case IDX_SYNCH:
- return boost::make_shared< T >( m_connectionInfo );
- default:
- return boost::shared_ptr< T >( nullptr );
- }
- }();
-
- if( uint32_t error = connection->open() )
+ for( uint8_t i = 0; i < numConnections; ++i )
+ {
+ // Create the connection
+ auto connection = [ & ]
+ {
+ switch( type )
{
- // Failed to open a connection or invalid version, abort and cleanup
- m_connections[type].clear();
- return error;
+ case IDX_ASYNC:
+ return boost::make_shared< T >( m_queue.get(), m_connectionInfo );
+ case IDX_SYNCH:
+ return boost::make_shared< T >( m_connectionInfo );
+ default:
+ return boost::shared_ptr< T >( nullptr );
}
- m_connections[type].push_back( connection );
- }
+ }();
- return 0;
+ if( uint32_t error = connection->open() )
+ {
+ // Failed to open a connection or invalid version, abort and cleanup
+ m_connections[ type ].clear();
+ return error;
+ }
+ m_connections[ type ].push_back( connection );
+ }
+
+ return 0;
}
template< class T >
-unsigned long Core::Db::DbWorkerPool< T >::escapeString( char *to, const char *from, unsigned long length )
+unsigned long Core::Db::DbWorkerPool< T >::escapeString( char* to, const char* from, unsigned long length )
{
- if( !to || !from || !length )
- return 0;
+ if( !to || !from || !length )
+ return 0;
- return mysql_real_escape_string(
- m_connections[IDX_SYNCH].front()->getConnection()->getRawCon(), to, from, length );
+ return mysql_real_escape_string(
+ m_connections[ IDX_SYNCH ].front()->getConnection()->getRawCon(), to, from, length );
}
template< class T >
void Core::Db::DbWorkerPool< T >::enqueue( boost::shared_ptr< Operation > op )
{
- m_queue->push( op );
+ m_queue->push( op );
}
template< class T >
boost::shared_ptr< T > Core::Db::DbWorkerPool< T >::getFreeConnection()
{
- uint8_t i = 0;
- const auto numCons = m_connections[IDX_SYNCH].size();
- boost::shared_ptr< T > connection = nullptr;
+ uint8_t i = 0;
+ const auto numCons = m_connections[ IDX_SYNCH ].size();
+ boost::shared_ptr< T > connection = nullptr;
- while( true )
- {
- connection = m_connections[IDX_SYNCH][i++ % numCons];
+ while( true )
+ {
+ connection = m_connections[ IDX_SYNCH ][ i++ % numCons ];
- if( connection->lockIfReady() )
- break;
- }
+ if( connection->lockIfReady() )
+ break;
+ }
- return connection;
+ return connection;
}
template< class T >
const std::string& Core::Db::DbWorkerPool< T >::getDatabaseName() const
{
- return m_connectionInfo.database;
+ return m_connectionInfo.database;
}
template< class T >
void Core::Db::DbWorkerPool< T >::execute( const std::string& sql )
{
- auto task = boost::make_shared< StatementTask >( sql );
- enqueue( task );
+ auto task = boost::make_shared< StatementTask >( sql );
+ enqueue( task );
}
template< class T >
void Core::Db::DbWorkerPool< T >::execute( boost::shared_ptr< PreparedStatement > stmt )
{
- auto task = boost::make_shared< PreparedStatementTask >( stmt );
- enqueue( task );
+ auto task = boost::make_shared< PreparedStatementTask >( stmt );
+ enqueue( task );
}
template< class T >
void Core::Db::DbWorkerPool< T >::directExecute( const std::string& sql )
{
- auto connection = getFreeConnection();
- connection->execute( sql );
- connection->unlock();
+ auto connection = getFreeConnection();
+ connection->execute( sql );
+ connection->unlock();
}
template< class T >
void Core::Db::DbWorkerPool< T >::directExecute( boost::shared_ptr< PreparedStatement > stmt )
{
- auto connection = getFreeConnection();
- connection->execute( stmt );
- connection->unlock();
+ auto connection = getFreeConnection();
+ connection->execute( stmt );
+ connection->unlock();
}
/*
@@ -277,4 +283,5 @@ void DatabaseWorkerPool::ExecuteOrAppend(SQLTransaction& trans, PreparedState
}
*/
-template class Core::Db::DbWorkerPool< Core::Db::CharaDbConnection >;
+template
+class Core::Db::DbWorkerPool< Core::Db::ZoneDbConnection >;
diff --git a/src/common/Database/DbWorkerPool.h b/src/common/Database/DbWorkerPool.h
index b5722a53..9833cadb 100644
--- a/src/common/Database/DbWorkerPool.h
+++ b/src/common/Database/DbWorkerPool.h
@@ -7,80 +7,87 @@
#include
#include "Util/LockedWaitQueue.h"
#include "DbConnection.h"
-namespace Core
-{
-namespace Db
-{
+
+namespace Core {
+namespace Db {
template< typename T >
class LockedWaitQueue;
+
class Operation;
+
class PreparedStatement;
+
struct ConnectionInfo;
template< class T >
class DbWorkerPool
{
private:
- enum InternalIndex
- {
- IDX_ASYNC,
- IDX_SYNCH,
- IDX_SIZE
- };
+ enum InternalIndex
+ {
+ IDX_ASYNC,
+ IDX_SYNCH,
+ IDX_SIZE
+ };
public:
- DbWorkerPool();
+ DbWorkerPool();
- ~DbWorkerPool();
+ ~DbWorkerPool();
- void setConnectionInfo( const ConnectionInfo& info, uint8_t asyncThreads, uint8_t synchThreads);
+ void setConnectionInfo( const ConnectionInfo& info, uint8_t asyncThreads, uint8_t synchThreads );
- uint32_t open();
+ uint32_t open();
- void close();
+ void close();
- bool prepareStatements();
+ bool prepareStatements();
- inline ConnectionInfo getConnectionInfo() const
- {
- return m_connectionInfo;
- }
+ inline ConnectionInfo getConnectionInfo() const
+ {
+ return m_connectionInfo;
+ }
- // Async execution
- void execute( const std::string& sql );
- void execute( boost::shared_ptr< PreparedStatement > stmt );
+ // Async execution
+ void execute( const std::string& sql );
- // Sync execution
- void directExecute( const std::string& sql );
- void directExecute( boost::shared_ptr< PreparedStatement > stmt );
- boost::shared_ptr< Mysql::ResultSet > query( const std::string& sql, boost::shared_ptr< T > connection = nullptr );
- boost::shared_ptr< Mysql::PreparedResultSet > query( boost::shared_ptr< PreparedStatement > stmt );
+ void execute( boost::shared_ptr< PreparedStatement > stmt );
- using PreparedStatementIndex = typename T::Statements;
+ // Sync execution
+ void directExecute( const std::string& sql );
- boost::shared_ptr< PreparedStatement > getPreparedStatement( PreparedStatementIndex index );
+ void directExecute( boost::shared_ptr< PreparedStatement > stmt );
- void escapeString( std::string& str );
+ boost::shared_ptr< Mysql::ResultSet >
+ query( const std::string& sql, boost::shared_ptr< T > connection = nullptr );
- void keepAlive();
+ boost::shared_ptr< Mysql::PreparedResultSet > query( boost::shared_ptr< PreparedStatement > stmt );
+
+ using PreparedStatementIndex = typename T::Statements;
+
+ boost::shared_ptr< PreparedStatement > getPreparedStatement( PreparedStatementIndex index );
+
+ void escapeString( std::string& str );
+
+ void keepAlive();
private:
- uint32_t openConnections( InternalIndex type, uint8_t numConnections );
+ uint32_t openConnections( InternalIndex type, uint8_t numConnections );
- unsigned long escapeString( char *to, const char *from, unsigned long length );
+ unsigned long escapeString( char* to, const char* from, unsigned long length );
- void enqueue( boost::shared_ptr< Operation > op );
+ void enqueue( boost::shared_ptr< Operation > op );
- boost::shared_ptr< T > getFreeConnection();
+ boost::shared_ptr< T > getFreeConnection();
- const std::string& getDatabaseName() const;
+ const std::string& getDatabaseName() const;
- std::unique_ptr< Core::LockedWaitQueue< boost::shared_ptr< Operation > > > m_queue;
- std::array< std::vector< boost::shared_ptr< T > >, IDX_SIZE > m_connections;
- ConnectionInfo m_connectionInfo;
- uint8_t m_asyncThreads;
- uint8_t m_synchThreads;
+ std::unique_ptr< Core::LockedWaitQueue< boost::shared_ptr< Operation > > > m_queue;
+ std::array< std::vector< boost::shared_ptr< T > >, IDX_SIZE > m_connections;
+ ConnectionInfo m_connectionInfo;
+ uint8_t m_asyncThreads;
+ uint8_t m_synchThreads;
};
}
diff --git a/src/common/Database/Operation.h b/src/common/Database/Operation.h
index fff52e73..f79ebf06 100644
--- a/src/common/Database/Operation.h
+++ b/src/common/Database/Operation.h
@@ -1,38 +1,48 @@
#ifndef SAPPHIRE_OPERATION_H
#define SAPPHIRE_OPERATION_H
-namespace Mysql
-{
- class Connection;
+namespace Mysql {
+class Connection;
}
-namespace Core
+namespace Core {
+namespace Db {
+class DbConnection;
+
+class PreparedStatement;
+
+class Operation
{
-namespace Db
-{
- class DbConnection;
- class PreparedStatement;
+public:
+ Operation() :
+ m_pConn( nullptr )
+ {
+ }
- class Operation
- {
- public:
- Operation() : m_pConn( nullptr ) { }
- virtual ~Operation() { }
+ virtual ~Operation()
+ {
+ }
- virtual int call()
- {
- execute();
- return 0;
- }
- virtual bool execute() = 0;
- virtual void setConnection( DbConnection* pCon ) { m_pConn = pCon; }
+ virtual int call()
+ {
+ execute();
+ return 0;
+ }
- DbConnection* m_pConn;
+ virtual bool execute() = 0;
- private:
- Operation( Operation const& right ) = delete;
- Operation& operator=( Operation const& right ) = delete;
- };
+ virtual void setConnection( DbConnection* pCon )
+ {
+ m_pConn = pCon;
+ }
+
+ DbConnection* m_pConn;
+
+private:
+ Operation( Operation const& right ) = delete;
+
+ Operation& operator=( Operation const& right ) = delete;
+};
}
diff --git a/src/common/Database/PreparedStatement.cpp b/src/common/Database/PreparedStatement.cpp
index 84b9960c..dadfb16a 100644
--- a/src/common/Database/PreparedStatement.cpp
+++ b/src/common/Database/PreparedStatement.cpp
@@ -7,146 +7,150 @@
#include
Core::Db::PreparedStatement::PreparedStatement( uint32_t index ) :
- m_stmt( nullptr ),
- m_index( index ) { }
+ m_stmt( nullptr ),
+ m_index( index )
+{
+}
-Core::Db::PreparedStatement::~PreparedStatement() { }
+Core::Db::PreparedStatement::~PreparedStatement()
+{
+}
void Core::Db::PreparedStatement::bindParameters()
{
- assert( m_stmt );
+ assert( m_stmt );
- uint8_t i = 1;
- for( ; i < m_statementData.size(); i++ )
- {
- switch( m_statementData[i].type)
+ uint8_t i = 1;
+ for( ; i < m_statementData.size(); i++ )
+ {
+ switch( m_statementData[ i ].type )
+ {
+ case TYPE_BOOL:
+ m_stmt->setBoolean( i, m_statementData[ i ].data.boolean );
+ break;
+ case TYPE_UI:
+ m_stmt->setUInt( i, m_statementData[ i ].data.ui32 );
+ break;
+ case TYPE_I:
+ m_stmt->setInt( i, m_statementData[ i ].data.i32 );
+ break;
+ case TYPE_UI64:
+ m_stmt->setUInt64( i, m_statementData[ i ].data.ui64 );
+ break;
+ case TYPE_I64:
+ m_stmt->setInt64( i, m_statementData[ i ].data.i64 );
+ break;
+ case TYPE_DOUBLE:
+ m_stmt->setDouble( i, m_statementData[ i ].data.d );
+ break;
+ case TYPE_STRING:
+ m_stmt->setString( i, std::string( reinterpret_cast< char* >( m_statementData[ i ].binary.data() ) ) );
+ break;
+ case TYPE_BINARY:
{
- case TYPE_BOOL:
- m_stmt->setBoolean( i, m_statementData[i].data.boolean );
- break;
- case TYPE_UI:
- m_stmt->setUInt( i, m_statementData[i].data.ui32 );
- break;
- case TYPE_I:
- m_stmt->setInt( i, m_statementData[i].data.i32 );
- break;
- case TYPE_UI64:
- m_stmt->setUInt64( i, m_statementData[i].data.ui64 );
- break;
- case TYPE_I64:
- m_stmt->setInt64( i, m_statementData[i].data.i64 );
- break;
- case TYPE_DOUBLE:
- m_stmt->setDouble( i, m_statementData[i].data.d );
- break;
- case TYPE_STRING:
- m_stmt->setString( i, std::string( reinterpret_cast< char* >( m_statementData[i].binary.data() ) ) );
- break;
- case TYPE_BINARY:
- {
- std::stringstream *is = new std::stringstream;
-
- for( auto entry : m_statementData[i].binary )
- is->rdbuf()->sputc( static_cast< char > ( entry ) );
+ std::stringstream* is = new std::stringstream;
- m_stmt->setBlob( i, is );
- }
- break;
- case TYPE_NULL:
- m_stmt->setNull( i, 0 );
- break;
+ for( auto entry : m_statementData[ i ].binary )
+ is->rdbuf()->sputc( static_cast< char > ( entry ) );
+
+ m_stmt->setBlob( i, is );
}
- }
+ break;
+ case TYPE_NULL:
+ m_stmt->setNull( i, 0 );
+ break;
+ }
+ }
}
//- Bind to buffer
void Core::Db::PreparedStatement::setBool( uint8_t index, const bool value )
{
- if( index >= m_statementData.size() )
- m_statementData.resize( index + 1 );
+ if( index >= m_statementData.size() )
+ m_statementData.resize( index + 1 );
- m_statementData[index].data.boolean = value;
- m_statementData[index].type = TYPE_BOOL;
+ m_statementData[ index ].data.boolean = value;
+ m_statementData[ index ].type = TYPE_BOOL;
}
void Core::Db::PreparedStatement::setUInt( uint8_t index, uint32_t value )
{
- if( index >= m_statementData.size() )
- m_statementData.resize(index+1);
+ if( index >= m_statementData.size() )
+ m_statementData.resize( index + 1 );
- m_statementData[index].data.ui32 = value;
- m_statementData[index].type = TYPE_UI;
+ m_statementData[ index ].data.ui32 = value;
+ m_statementData[ index ].type = TYPE_UI;
}
void Core::Db::PreparedStatement::setUInt64( uint8_t index, uint64_t value )
{
- if( index >= m_statementData.size() )
- m_statementData.resize( index + 1 );
+ if( index >= m_statementData.size() )
+ m_statementData.resize( index + 1 );
- m_statementData[index].data.ui64 = value;
- m_statementData[index].type = TYPE_UI64;
+ m_statementData[ index ].data.ui64 = value;
+ m_statementData[ index ].type = TYPE_UI64;
}
void Core::Db::PreparedStatement::setInt( uint8_t index, int32_t value )
{
- if( index >= m_statementData.size() )
- m_statementData.resize( index + 1 );
+ if( index >= m_statementData.size() )
+ m_statementData.resize( index + 1 );
- m_statementData[index].data.i32 = value;
- m_statementData[index].type = TYPE_I;
+ m_statementData[ index ].data.i32 = value;
+ m_statementData[ index ].type = TYPE_I;
}
void Core::Db::PreparedStatement::setInt64( uint8_t index, int64_t value )
{
- if( index >= m_statementData.size() )
- m_statementData.resize( index + 1);
+ if( index >= m_statementData.size() )
+ m_statementData.resize( index + 1 );
- m_statementData[index].data.i64 = value;
- m_statementData[index].type = TYPE_I64;
+ m_statementData[ index ].data.i64 = value;
+ m_statementData[ index ].type = TYPE_I64;
}
void Core::Db::PreparedStatement::setDouble( uint8_t index, double value )
{
- if( index >= m_statementData.size() )
- m_statementData.resize( index + 1 );
+ if( index >= m_statementData.size() )
+ m_statementData.resize( index + 1 );
- m_statementData[index].data.d = value;
- m_statementData[index].type = TYPE_DOUBLE;
+ m_statementData[ index ].data.d = value;
+ m_statementData[ index ].type = TYPE_DOUBLE;
}
void Core::Db::PreparedStatement::setString( uint8_t index, const std::string& value )
{
- if( index >= m_statementData.size() )
- m_statementData.resize( index + 1 );
+ if( index >= m_statementData.size() )
+ m_statementData.resize( index + 1 );
- m_statementData[index].binary.resize( value.length() + 1 );
- memcpy( m_statementData[index].binary.data(), value.c_str(), value.length() + 1 );
- m_statementData[index].type = TYPE_STRING;
+ m_statementData[ index ].binary.resize( value.length() + 1 );
+ memcpy( m_statementData[ index ].binary.data(), value.c_str(), value.length() + 1 );
+ m_statementData[ index ].type = TYPE_STRING;
}
void Core::Db::PreparedStatement::setBinary( uint8_t index, const std::vector< uint8_t >& value )
{
- if( index >= m_statementData.size() )
- m_statementData.resize( index + 1 );
+ if( index >= m_statementData.size() )
+ m_statementData.resize( index + 1 );
- m_statementData[index].binary = value;
- m_statementData[index].type = TYPE_BINARY;
+ m_statementData[ index ].binary = value;
+ m_statementData[ index ].type = TYPE_BINARY;
}
void Core::Db::PreparedStatement::setNull( uint8_t index )
{
- if( index >= m_statementData.size() )
- m_statementData.resize( index + 1 );
+ if( index >= m_statementData.size() )
+ m_statementData.resize( index + 1 );
- m_statementData[index].type = TYPE_NULL;
+ m_statementData[ index ].type = TYPE_NULL;
}
uint32_t Core::Db::PreparedStatement::getIndex() const
{
- return m_index;
+ return m_index;
}
-void Core::Db::PreparedStatement::setMysqlPS( boost::shared_ptr< Mysql::PreparedStatement> pStmt )
+void Core::Db::PreparedStatement::setMysqlPS( boost::shared_ptr< Mysql::PreparedStatement > pStmt )
{
- m_stmt = pStmt;
+ m_stmt = pStmt;
}
diff --git a/src/common/Database/PreparedStatement.h b/src/common/Database/PreparedStatement.h
index fbf04de2..351d3f81 100644
--- a/src/common/Database/PreparedStatement.h
+++ b/src/common/Database/PreparedStatement.h
@@ -1,84 +1,92 @@
#ifndef SAPPHIRE_PREPAREDSTATEMENT_H
#define SAPPHIRE_PREPAREDSTATEMENT_H
+
#include
#include
#include
#include
#include "Operation.h"
-namespace Mysql
-{
- class PreparedStatement;
+namespace Mysql {
+class PreparedStatement;
}
-namespace Core
+namespace Core {
+namespace Db {
+union PreparedStatementDataUnion
{
-namespace Db
+ bool boolean;
+ uint32_t ui32;
+ int32_t i32;
+ uint64_t ui64;
+ int64_t i64;
+ double d;
+};
+
+enum PreparedStatementValueType
{
- union PreparedStatementDataUnion
- {
- bool boolean;
- uint32_t ui32;
- int32_t i32;
- uint64_t ui64;
- int64_t i64;
- double d;
- };
+ TYPE_BOOL,
+ TYPE_UI,
+ TYPE_UI64,
+ TYPE_I,
+ TYPE_I64,
+ TYPE_DOUBLE,
+ TYPE_STRING,
+ TYPE_BINARY,
+ TYPE_NULL
+};
- enum PreparedStatementValueType
- {
- TYPE_BOOL,
- TYPE_UI,
- TYPE_UI64,
- TYPE_I,
- TYPE_I64,
- TYPE_DOUBLE,
- TYPE_STRING,
- TYPE_BINARY,
- TYPE_NULL
- };
+struct PreparedStatementData
+{
+ PreparedStatementDataUnion data;
+ PreparedStatementValueType type;
+ std::vector< uint8_t > binary;
+};
- struct PreparedStatementData
- {
- PreparedStatementDataUnion data;
- PreparedStatementValueType type;
- std::vector< uint8_t > binary;
- };
+class PreparedStatement
+{
+public:
+ explicit PreparedStatement( uint32_t index );
- class PreparedStatement
- {
- public:
- explicit PreparedStatement( uint32_t index );
- ~PreparedStatement();
+ ~PreparedStatement();
- void setBool( uint8_t index, bool value );
- void setUInt( uint8_t index, uint32_t value );
- void setUInt64( uint8_t index, uint64_t value );
- void setInt( uint8_t index, int32_t value );
- void setInt64( uint8_t index, int64_t value );
- void setDouble( uint8_t index, double value );
- void setString( uint8_t index, const std::string& value );
- void setBinary( uint8_t index, const std::vector< uint8_t >& value );
- void setNull( uint8_t index );
+ void setBool( uint8_t index, bool value );
- uint32_t getIndex() const;
- void setMysqlPS( boost::shared_ptr< Mysql::PreparedStatement > pStmt );
+ void setUInt( uint8_t index, uint32_t value );
- void bindParameters();
+ void setUInt64( uint8_t index, uint64_t value );
- protected:
- boost::shared_ptr< Mysql::PreparedStatement > m_stmt;
- uint32_t m_index;
- std::vector< PreparedStatementData > m_statementData;
+ void setInt( uint8_t index, int32_t value );
- PreparedStatement( PreparedStatement const& right ) = delete;
- PreparedStatement& operator=( PreparedStatement const& right ) = delete;
- };
+ void setInt64( uint8_t index, int64_t value );
+
+ void setDouble( uint8_t index, double value );
+
+ void setString( uint8_t index, const std::string& value );
+
+ void setBinary( uint8_t index, const std::vector< uint8_t >& value );
+
+ void setNull( uint8_t index );
+
+ uint32_t getIndex() const;
+
+ void setMysqlPS( boost::shared_ptr< Mysql::PreparedStatement > pStmt );
+
+ void bindParameters();
+
+protected:
+ boost::shared_ptr< Mysql::PreparedStatement > m_stmt;
+ uint32_t m_index;
+ std::vector< PreparedStatementData > m_statementData;
+
+ PreparedStatement( PreparedStatement const& right ) = delete;
+
+ PreparedStatement& operator=( PreparedStatement const& right ) = delete;
+};
}
}
-
#endif //SAPPHIRE_PREPAREDSTATEMENT_H
diff --git a/src/common/Database/StatementTask.cpp b/src/common/Database/StatementTask.cpp
index 9422f164..25753d17 100644
--- a/src/common/Database/StatementTask.cpp
+++ b/src/common/Database/StatementTask.cpp
@@ -4,68 +4,68 @@
#include "DbConnection.h"
#include "PreparedStatement.h"
-Core::Db::StatementTask::StatementTask( const std::string &sql, bool async )
+Core::Db::StatementTask::StatementTask( const std::string& sql, bool async )
{
- m_sql = sql;
- m_hasResult = async; // If the operation is async, then there's a result
- //if (async)
- // m_result = new QueryResultPromise();
+ m_sql = sql;
+ m_hasResult = async; // If the operation is async, then there's a result
+ //if (async)
+ // m_result = new QueryResultPromise();
}
Core::Db::StatementTask::~StatementTask()
{
- //if( m_hasResult && m_result != nullptr)
- // delete m_result;
+ //if( m_hasResult && m_result != nullptr)
+ // delete m_result;
}
bool Core::Db::StatementTask::execute()
{
- if( m_hasResult )
- {
- /*ResultSet* result = m_conn->Query(m_sql);
- if (!result || !result->GetRowCount() || !result->NextRow())
- {
- delete result;
- m_result->set_value(QueryResult(NULL));
- return false;
- }
+ if( m_hasResult )
+ {
+ /*ResultSet* result = m_conn->Query(m_sql);
+ if (!result || !result->GetRowCount() || !result->NextRow())
+ {
+ delete result;
+ m_result->set_value(QueryResult(NULL));
+ return false;
+ }
- m_result->set_value(QueryResult(result));
- return true;*/
- }
+ m_result->set_value(QueryResult(result));
+ return true;*/
+ }
- return m_pConn->execute( m_sql );
+ return m_pConn->execute( m_sql );
}
-
-Core::Db::PreparedStatementTask::PreparedStatementTask( boost::shared_ptr< Core::Db::PreparedStatement > stmt, bool async ) :
- m_stmt(stmt)
- //, m_result(nullptr)
+Core::Db::PreparedStatementTask::PreparedStatementTask( boost::shared_ptr< Core::Db::PreparedStatement > stmt,
+ bool async ) :
+ m_stmt( stmt )
+//, m_result(nullptr)
{
- m_hasResult = async; // If the operation is async, then there's a result
+ m_hasResult = async; // If the operation is async, then there's a result
}
Core::Db::PreparedStatementTask::~PreparedStatementTask()
{
- //if (m_has_result && m_result != nullptr)
- // delete m_result;
+ //if (m_has_result && m_result != nullptr)
+ // delete m_result;
}
bool Core::Db::PreparedStatementTask::execute()
{
- //if (m_has_result)
- //{
- // PreparedResultSet* result = m_conn->Query(m_stmt);
- // if (!result || !result->GetRowCount())
- // {
- // delete result;
- // m_result->set_value(PreparedQueryResult(NULL));
- // return false;
- // }
- // m_result->set_value(PreparedQueryResult(result));
- // return true;
- //}
+ //if (m_has_result)
+ //{
+ // PreparedResultSet* result = m_conn->Query(m_stmt);
+ // if (!result || !result->GetRowCount())
+ // {
+ // delete result;
+ // m_result->set_value(PreparedQueryResult(NULL));
+ // return false;
+ // }
+ // m_result->set_value(PreparedQueryResult(result));
+ // return true;
+ //}
- return m_pConn->execute( m_stmt );
+ return m_pConn->execute( m_stmt );
}
diff --git a/src/common/Database/StatementTask.h b/src/common/Database/StatementTask.h
index 377c7bc6..ff30d2e3 100644
--- a/src/common/Database/StatementTask.h
+++ b/src/common/Database/StatementTask.h
@@ -5,47 +5,48 @@
#include
#include "Operation.h"
-namespace Core
+namespace Core {
+namespace Db {
+class PreparedStatement;
+
+class StatementTask :
+ public Operation
{
-namespace Db
-{
- class PreparedStatement;
+public:
- class StatementTask : public Operation
- {
- public:
+ StatementTask( const std::string& sql, bool async = false );
- StatementTask( const std::string& sql, bool async = false );
+ ~StatementTask();
- ~StatementTask();
+ bool execute() override;
- bool execute() override;
+ // QueryResultFuture getFuture() const
+ // {
+ // return m_result->get_future();
+ // }
- // QueryResultFuture getFuture() const
- // {
- // return m_result->get_future();
- // }
-
- private:
- std::string m_sql;
- bool m_hasResult;
+private:
+ std::string m_sql;
+ bool m_hasResult;
// QueryResultPromise *m_result;
- };
+};
- class PreparedStatementTask : public Operation
- {
- public:
- PreparedStatementTask( boost::shared_ptr< PreparedStatement > stmt, bool async = false);
- ~PreparedStatementTask();
+class PreparedStatementTask :
+ public Operation
+{
+public:
+ PreparedStatementTask( boost::shared_ptr< PreparedStatement > stmt, bool async = false );
- bool execute() override;
- //PreparedQueryResultFuture getFuture() { return m_result->get_future(); }
+ ~PreparedStatementTask();
- protected:
- boost::shared_ptr< PreparedStatement > m_stmt;
- bool m_hasResult;
- //PreparedQueryResultPromise* m_result;
- };
+ bool execute() override;
+ //PreparedQueryResultFuture getFuture() { return m_result->get_future(); }
+
+protected:
+ boost::shared_ptr< PreparedStatement > m_stmt;
+ bool m_hasResult;
+ //PreparedQueryResultPromise* m_result;
+};
}
}
diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp
new file mode 100644
index 00000000..cf9d9e8c
--- /dev/null
+++ b/src/common/Database/ZoneDbConnection.cpp
@@ -0,0 +1,193 @@
+#include "ZoneDbConnection.h"
+#include
+
+Core::Db::ZoneDbConnection::ZoneDbConnection( ConnectionInfo& connInfo ) :
+ DbConnection( connInfo )
+{
+}
+
+Core::Db::ZoneDbConnection::ZoneDbConnection( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* q,
+ ConnectionInfo& connInfo ) :
+ DbConnection( q, connInfo )
+{
+}
+
+Core::Db::ZoneDbConnection::~ZoneDbConnection()
+{
+}
+
+void Core::Db::ZoneDbConnection::doPrepareStatements()
+{
+ if( !m_reconnecting )
+ m_stmts.resize( MAX_STATEMENTS );
+
+ /// CHARA
+ prepareStatement( CHARA_SEL, "SELECT ContentId, Name, Hp, Mp, Tp, Gp, Mode, Mount, InvincibleGM, Voice, "
+ "Customize, ModelMainWeapon, ModelSubWeapon, ModelSystemWeapon, "
+ "ModelEquip, EmoteModeType, FirstLoginTime, Language, IsNewGame, "
+ "IsNewAdventurer, TerritoryType, TerritoryId, PosX, PosY, PosZ, PosR, "
+ "OTerritoryType, OTerritoryId, OPosX, OPosY, OPosZ, OPosR, GuardianDeity, "
+ "BirthDay, BirthMonth, Class, Status, TotalPlayTime, FirstClass, HomePoint, "
+ "FavoritePoint, RestPoint, StartTown, ActiveTitle, TitleList, Achievement, "
+ "Aetheryte, HowTo, Minions, Mounts, Orchestrion, EquippedMannequin, ConfigFlags, "
+ "QuestCompleteFlags, OpeningSequence, QuestTracking, GrandCompany, "
+ "GrandCompanyRank, Discovery, GMRank, EquipDisplayFlags, Unlocks, CFPenaltyUntil, "
+ "Pose "
+ "FROM charainfo WHERE CharacterId = ?;", CONNECTION_SYNC );
+
+
+ prepareStatement( CHARA_UP,
+ "UPDATE charainfo SET "
+ "Hp = ?, Mp = ?, Tp = ?, Gp = ?, Mode = ?, Mount = ?, InvincibleGM = ?, Voice = ?, "
+ "Customize = ?, ModelMainWeapon = ?, ModelSubWeapon = ?, ModelSystemWeapon = ?, "
+ "ModelEquip = ?, EmoteModeType = ?, Language = ?, IsNewGame = ?, IsNewAdventurer = ?, "
+ "TerritoryType = ?, TerritoryId = ?, PosX = ?, PosY = ?, PosZ = ?, PosR = ?, "
+ "OTerritoryType = ?, OTerritoryId = ?, OPosX = ?, OPosY = ?, OPosZ = ?, OPosR = ?, "
+ "Class = ?, Status = ?, TotalPlayTime = ?, HomePoint = ?, FavoritePoint = ?, RestPoint = ?, "
+ "ActiveTitle = ?, TitleList = ?, Achievement = ?, Aetheryte = ?, HowTo = ?, Minions = ?, Mounts = ?, Orchestrion = ?, "
+ "EquippedMannequin = ?, ConfigFlags = ?, QuestCompleteFlags = ?, OpeningSequence = ?, "
+ "QuestTracking = ?, GrandCompany = ?, GrandCompanyRank = ?, Discovery = ?, GMRank = ?, EquipDisplayFlags = ?, Unlocks = ?, "
+ "CFPenaltyUntil = ?, Pose = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+
+
+ prepareStatement( CHARA_SEL_MINIMAL, "SELECT Name, Customize, ModelEquip, TerritoryId, GuardianDeity, "
+ "Class, ContentId, BirthDay, BirthMonth "
+ "FROM charainfo WHERE CharacterId = ?;", CONNECTION_SYNC );
+
+ prepareStatement( CHARA_INS, "INSERT INTO charainfo (AccountId, CharacterId, ContentId, Name, Hp, Mp, "
+ "Customize, Voice, IsNewGame, TerritoryId, PosX, PosY, PosZ, PosR, ModelEquip, "
+ "IsNewAdventurer, GuardianDeity, Birthday, BirthMonth, Class, Status, FirstClass, "
+ "HomePoint, StartTown, Discovery, HowTo, QuestCompleteFlags, Unlocks, QuestTracking, "
+ "Aetheryte, GMRank, Mounts, Orchestrion, UPDATE_DATE ) "
+ "VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,NOW() );",
+ CONNECTION_SYNC );
+
+ prepareStatement( CHARA_UP_NAME, "UPDATE charainfo SET Name = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_HPMP, "UPDATE charainfo SET Hp = ?, Mp = ?, Tp = ?, Gp = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_MODE, "UPDATE charainfo SET Mode = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_MOUNT, "UPDATE charainfo SET Mount = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_INVINCIBLE, "UPDATE charainfo SET InvincibleGM = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_CUSTOMIZE, "UPDATE charainfo SET Customize = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_MODELMAINWEAP, "UPDATE charainfo SET ModelMainWeapon = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_MODELSUBWEAP, "UPDATE charainfo SET ModelSubWeapon = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_MODELSYSWEAP, "UPDATE charainfo SET ModelSystemWeapon = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_MODELEQUIP, "UPDATE charainfo SET ModelEquip = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_EMOTEMODETYPE, "UPDATE charainfo SET EmoteModeType = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_FIRSTLOGINTIME, "UPDATE charainfo SET FirstLoginTime = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_LANGUAGE, "UPDATE charainfo SET Language = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_ISNEWGAME, "UPDATE charainfo SET IsNewGame = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_ISNEWADV, "UPDATE charainfo SET IsNewAdventurer = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_TERRITORY,
+ "UPDATE charainfo SET TerritoryType = ?, TerritoryId = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_POS,
+ "UPDATE charainfo SET OPosX = ?, OPosY = ?, OPosZ = ?, OPosR = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_CLASS, "UPDATE charainfo SET Class = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_STATUS, "UPDATE charainfo SET Status = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_TOTALPLAYTIME, "UPDATE charainfo SET TotalPlayTime = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_HOMEPOINT, "UPDATE charainfo SET Homepoint = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_FAVOPOINT, "UPDATE charainfo SET FavoritePoint = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_TITLE, "UPDATE charainfo SET ActiveTitle = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_TITLELIST, "UPDATE charainfo SET TitleList = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_ACHIEVEMENTS, "UPDATE charainfo SET Achievement = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_AETHERYTE, "UPDATE charainfo SET Aetheryte = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_HOWTO, "UPDATE charainfo SET HowTo = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_MINIONS, "UPDATE charainfo SET Minions = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_MOUNTS, "UPDATE charainfo SET Mounts = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_GEARSET, "UPDATE charainfo SET EquippedMannequin = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_CONFIGFLAGS, "UPDATE charainfo SET ConfigFlags = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_QUESTCOMPLETE, "UPDATE charainfo SET QuestCompleteFlags = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_OPENINGSEQ, "UPDATE charainfo SET OpeningSequence = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_QUESTTRACKING, "UPDATE charainfo SET QuestTracking = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_GRANDCOMPANY, "UPDATE charainfo SET GrandCompany = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_GRANDCOMPANYRANKS, "UPDATE charainfo SET GrandCompanyRank = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_DISCOVERY, "UPDATE charainfo SET Discovery = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_GMRANK, "UPDATE charainfo SET GMRank = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_EQUIPDISPLAYFLAGS, "UPDATE charainfo SET EquipDisplayFlags = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_UNLOCKS, "UPDATE charainfo SET Unlocks = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_UP_CFPENATLY, "UPDATE charainfo SET CFPenaltyUntil = ? WHERE CharacterId = ?;",
+ CONNECTION_ASYNC );
+
+ /// SEARCH INFO
+ prepareStatement( CHARA_SEARCHINFO_INS,
+ "INSERT INTO charainfosearch (CharacterId, UPDATE_DATE ) VALUES ( ?, NOW() );", CONNECTION_BOTH );
+ prepareStatement( CHARA_SEARCHINFO_UP_SELECTCLASS,
+ "UPDATE charainfosearch SET SelectClassId = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_SEARCHINFO_UP_SELECTREGION,
+ "UPDATE charainfosearch SET SelectRegion = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_SEARCHINFO_UP_SEARCHCOMMENT,
+ "UPDATE charainfosearch SET SearchComment = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
+ prepareStatement( CHARA_SEL_SEARCHINFO, "SELECT * FROM charainfosearch WHERE CharacterId = ?;", CONNECTION_SYNC );
+
+ /// QUEST INFO
+ prepareStatement( CHARA_QUEST_INS,
+ "INSERT INTO charaquestnew ( CharacterId, SlotId, QuestId, Sequence, Flags, Variables_0, "
+ "Variables_1, Variables_2, Variables_3, Variables_4, "
+ "Variables_5, Variables_6 ) VALUES( ?,?,?,?,?,?,?,?,?,?,?,? );", CONNECTION_ASYNC );
+
+ prepareStatement( CHARA_QUEST_UP, "UPDATE charaquestnew SET Sequence = ?, Flags = ?, Variables_0 = ?, "
+ "Variables_1 = ?, Variables_2 = ?, Variables_3 = ?, "
+ "Variables_4 = ?, Variables_5 = ?, Variables_6 = ? "
+ "WHERE CharacterId = ? AND QuestId = ?;", CONNECTION_ASYNC );
+
+ prepareStatement( CHARA_QUEST_DEL, "DELETE FROM charaquestnew WHERE CharacterId = ? AND QuestId = ?;",
+ CONNECTION_ASYNC );
+
+ prepareStatement( CHARA_SEL_QUEST, "SELECT * FROM charaquestnew WHERE CharacterId = ?;", CONNECTION_SYNC );
+
+ /// CLASS INFO
+ prepareStatement( CHARA_CLASS_SEL, "SELECT ClassIdx, Exp, Lvl FROM characlass WHERE CharacterId = ?;",
+ CONNECTION_SYNC );
+ prepareStatement( CHARA_CLASS_INS, "INSERT INTO characlass ( CharacterId, ClassIdx, Exp, Lvl ) VALUES( ?,?,?,? );",
+ CONNECTION_BOTH );
+ prepareStatement( CHARA_CLASS_UP, "UPDATE characlass SET Exp = ?, Lvl = ? WHERE CharacterId = ? AND ClassIdx = ?;",
+ CONNECTION_ASYNC );
+ prepareStatement( CHARA_CLASS_DEL, "DELETE FROM characlass WHERE CharacterId = ?;", CONNECTION_ASYNC );
+
+ /// INVENTORY INFO
+ prepareStatement( CHARA_ITEMINV_INS,
+ "INSERT INTO charaiteminventory ( CharacterId, storageId, UPDATE_DATE ) VALUES ( ?, ?, NOW() );",
+ CONNECTION_BOTH );
+
+ /// ITEM GLOBAL
+ prepareStatement( CHARA_ITEMGLOBAL_INS,
+ "INSERT INTO charaglobalitem ( CharacterId, ItemId, catalogId, UPDATE_DATE ) VALUES ( ?, ?, ?, NOW() );",
+ CONNECTION_BOTH );
+
+ /// BNPC TEMPLATES
+ prepareStatement( ZONE_SEL_BNPCTEMPLATES,
+ "SELECT Id, Name, bNPCBaseId, bNPCNameId, mainWeaponModel, "
+ "secWeaponModel, aggressionMode, enemyType, pose, "
+ "modelChara, displayFlags, Look, Models "
+ "FROM bnpctemplate WHERE 1;",
+ CONNECTION_BOTH);
+
+ prepareStatement( CHARA_ITEMGLOBAL_UP,
+ "UPDATE charaglobalitem SET stack = ?, durability = ?, stain = ? WHERE ItemId = ?;",
+ CONNECTION_BOTH );
+
+ prepareStatement( CHARA_ITEMGLOBAL_DELETE,
+ "UPDATE charaglobalitem SET IS_DELETE = 1 WHERE ItemId = ?;",
+ CONNECTION_BOTH );
+}
diff --git a/src/common/Database/ZoneDbConnection.h b/src/common/Database/ZoneDbConnection.h
new file mode 100644
index 00000000..a2e97bae
--- /dev/null
+++ b/src/common/Database/ZoneDbConnection.h
@@ -0,0 +1,102 @@
+#ifndef SAPPHIRE_CHARACONNECTION_H
+#define SAPPHIRE_CHARACONNECTION_H
+
+#include "DbConnection.h"
+
+namespace Core {
+namespace Db {
+class DbConnectionInfo;
+
+enum ZoneDbStatements : uint32_t
+{
+ CHARA_SEL,
+ CHARA_SEL_MINIMAL,
+ CHARA_SEL_SEARCHINFO,
+ CHARA_SEL_QUEST,
+ CHARA_INS,
+ CHARA_UP,
+ CHARA_UP_NAME,
+ CHARA_UP_HPMP,
+ CHARA_UP_MODE,
+ CHARA_UP_MOUNT,
+ CHARA_UP_INVINCIBLE,
+ CHARA_UP_CUSTOMIZE,
+ CHARA_UP_MODELMAINWEAP,
+ CHARA_UP_MODELSUBWEAP,
+ CHARA_UP_MODELSYSWEAP,
+ CHARA_UP_MODELEQUIP,
+ CHARA_UP_EMOTEMODETYPE,
+ CHARA_UP_FIRSTLOGINTIME,
+ CHARA_UP_LANGUAGE,
+ CHARA_UP_ISNEWGAME,
+ CHARA_UP_ISNEWADV,
+ CHARA_UP_TERRITORY,
+ CHARA_UP_POS,
+ CHARA_UP_CLASS,
+ CHARA_UP_STATUS,
+ CHARA_UP_TOTALPLAYTIME,
+ CHARA_UP_HOMEPOINT,
+ CHARA_UP_FAVOPOINT,
+ CHARA_UP_TITLE,
+ CHARA_UP_TITLELIST,
+ CHARA_UP_ACHIEVEMENTS,
+ CHARA_UP_AETHERYTE,
+ CHARA_UP_HOWTO,
+ CHARA_UP_MINIONS,
+ CHARA_UP_MOUNTS,
+ CHARA_UP_GEARSET,
+ CHARA_UP_CONFIGFLAGS,
+ CHARA_UP_QUESTCOMPLETE,
+ CHARA_UP_OPENINGSEQ,
+ CHARA_UP_QUESTTRACKING,
+ CHARA_UP_GRANDCOMPANY,
+ CHARA_UP_GRANDCOMPANYRANKS,
+ CHARA_UP_DISCOVERY,
+ CHARA_UP_GMRANK,
+ CHARA_UP_EQUIPDISPLAYFLAGS,
+ CHARA_UP_UNLOCKS,
+ CHARA_UP_CFPENATLY,
+ CHARA_SEARCHINFO_INS,
+ CHARA_SEARCHINFO_UP_SELECTCLASS,
+ CHARA_SEARCHINFO_UP_SELECTREGION,
+ CHARA_SEARCHINFO_UP_SEARCHCOMMENT,
+
+ CHARA_QUEST_INS,
+ CHARA_QUEST_UP,
+ CHARA_QUEST_DEL,
+
+ CHARA_CLASS_SEL,
+ CHARA_CLASS_INS,
+ CHARA_CLASS_UP,
+ CHARA_CLASS_DEL,
+
+ CHARA_ITEMINV_INS,
+
+ CHARA_ITEMGLOBAL_INS,
+ CHARA_ITEMGLOBAL_UP,
+ CHARA_ITEMGLOBAL_DELETE,
+
+ ZONE_SEL_BNPCTEMPLATES,
+
+ MAX_STATEMENTS
+};
+
+class ZoneDbConnection : public DbConnection
+{
+public:
+ using Statements = ZoneDbStatements;
+
+ ZoneDbConnection( ConnectionInfo& connInfo );
+
+ ZoneDbConnection( Core::LockedWaitQueue< boost::shared_ptr< Operation > >* q, ConnectionInfo& connInfo );
+
+ ~ZoneDbConnection();
+
+ void doPrepareStatements() override;
+
+};
+
+}
+}
+
+#endif //SAPPHIRE_CHARACONNECTION_H
diff --git a/src/common/Exd/ExdData.cpp b/src/common/Exd/ExdData.cpp
index 4a455f94..b81ea48e 100644
--- a/src/common/Exd/ExdData.cpp
+++ b/src/common/Exd/ExdData.cpp
@@ -27,699 +27,700 @@ Core::Data::ExdData::~ExdData( void )
xiv::exd::Exd Core::Data::ExdData::setupDatAccess( const std::string& name, xiv::exd::Language lang )
{
- auto& cat = m_exd_data->get_category( name );
- return static_cast< xiv::exd::Exd >( cat.get_data_ln( lang ) );
+ auto& cat = m_exd_data->get_category( name );
+ return static_cast< xiv::exd::Exd >( cat.get_data_ln( lang ) );
};
bool Core::Data::ExdData::init( const std::string& path )
{
- try
- {
- m_data = boost::make_shared< xiv::dat::GameData >( path );
- m_exd_data = boost::make_shared< xiv::exd::ExdData >( *m_data );
+ try
+ {
+ m_data = boost::make_shared< xiv::dat::GameData >( path );
+ m_exd_data = boost::make_shared< xiv::exd::ExdData >( *m_data );
- m_questDat = setupDatAccess( "Quest", xiv::exd::Language::en );
- m_openingDat = setupDatAccess( "Opening", xiv::exd::Language::none );
- m_customTalkDat = setupDatAccess( "CustomTalk", xiv::exd::Language::en );
- m_aetheryteDat = setupDatAccess( "Aetheryte", xiv::exd::Language::en );
- m_levelDat = setupDatAccess( "Level", xiv::exd::Language::none );
- m_placeNameDat = setupDatAccess( "PlaceName", xiv::exd::Language::en );
- m_itemsDat = setupDatAccess( "Item", xiv::exd::Language::en );
- m_classJobCatDat = setupDatAccess( "ClassJobCategory", xiv::exd::Language::en );
- m_raceDat = setupDatAccess( "Race", xiv::exd::Language::en );
- m_eventItemDat = setupDatAccess( "EventItem", xiv::exd::Language::en );
- }
- catch( std::runtime_error )
- {
- return false;
- }
+ m_questDat = setupDatAccess( "Quest", xiv::exd::Language::en );
+ m_openingDat = setupDatAccess( "Opening", xiv::exd::Language::none );
+ m_customTalkDat = setupDatAccess( "CustomTalk", xiv::exd::Language::en );
+ m_aetheryteDat = setupDatAccess( "Aetheryte", xiv::exd::Language::en );
+ m_levelDat = setupDatAccess( "Level", xiv::exd::Language::none );
+ m_placeNameDat = setupDatAccess( "PlaceName", xiv::exd::Language::en );
+ m_itemsDat = setupDatAccess( "Item", xiv::exd::Language::en );
+ m_classJobCatDat = setupDatAccess( "ClassJobCategory", xiv::exd::Language::en );
+ m_raceDat = setupDatAccess( "Race", xiv::exd::Language::en );
+ m_eventItemDat = setupDatAccess( "EventItem", xiv::exd::Language::en );
+ }
+ catch( std::runtime_error )
+ {
+ return false;
+ }
- return true;
+ return true;
}
bool Core::Data::ExdData::loadZoneInfo()
{
- auto territoryTypeData = setupDatAccess( "TerritoryType", xiv::exd::Language::none );
- auto placeNameData = setupDatAccess( "PlaceName", xiv::exd::Language::en );
- auto mapData = setupDatAccess( "Map", xiv::exd::Language::none );
- auto weatherRate = setupDatAccess( "WeatherRate", xiv::exd::Language::none );
+ auto territoryTypeData = setupDatAccess( "TerritoryType", xiv::exd::Language::none );
+ auto placeNameData = setupDatAccess( "PlaceName", xiv::exd::Language::en );
+ auto mapData = setupDatAccess( "Map", xiv::exd::Language::none );
+ auto weatherRate = setupDatAccess( "WeatherRate", xiv::exd::Language::none );
- auto territoryTypeDataRows = territoryTypeData.get_rows();
+ auto territoryTypeDataRows = territoryTypeData.get_rows();
- for( auto row : territoryTypeDataRows )
- {
- auto& fields = row.second;
- uint32_t id = row.first;
+ for( auto row : territoryTypeDataRows )
+ {
+ auto& fields = row.second;
+ uint32_t id = row.first;
- uint16_t place_id = getField< uint16_t >( fields, 5 );
- uint16_t map_id = getField< uint16_t >( fields, 6 );
- std::string zoneStr = getField< std::string >( fields, 0 );
+ uint16_t place_id = getField< uint16_t >( fields, 5 );
+ uint16_t map_id = getField< uint16_t >( fields, 6 );
+ std::string zoneStr = getField< std::string >( fields, 0 );
- if( zoneStr.empty() )
- continue;
+ if( zoneStr.empty() )
+ continue;
- auto placeNameDataFields = placeNameData.get_row( place_id );
- std::string zone_str = getField< std::string >( placeNameDataFields, 0 );
+ auto placeNameDataFields = placeNameData.get_row( place_id );
+ std::string zone_str = getField< std::string >( placeNameDataFields, 0 );
- auto mapDataFields = mapData.get_row( map_id );
- int16_t map_index = getField< int16_t >( mapDataFields, 12 );
- bool is_two_bytes = getField< bool >( mapDataFields, 15 );
+ auto mapDataFields = mapData.get_row( map_id );
+ int16_t map_index = getField< int16_t >( mapDataFields, 12 );
+ bool is_two_bytes = getField< bool >( mapDataFields, 15 );
- uint8_t weather_rate = getField< uint8_t >( fields, 12 ) > 75 ? 0 : getField< uint8_t >( fields, 12 );
- auto weatherRateFields = weatherRate.get_row( weather_rate );
+ uint8_t weather_rate = getField< uint8_t >( fields, 12 ) > 75 ? 0 : getField< uint8_t >( fields, 12 );
+ auto weatherRateFields = weatherRate.get_row( weather_rate );
- int32_t aetheryte_index = getField< int32_t >( fields, 23 );
- uint8_t zoneType = getField< uint8_t >( fields, 9 );
+ int32_t aetheryte_index = getField< int32_t >( fields, 23 );
+ uint8_t zoneType = getField< uint8_t >( fields, 9 );
- ZoneInfo info{ 0 };
- info.id = id;
- info.zone_name = zoneStr;
- info.zone_str = zone_str;
- info.layout_id = id;
- info.discovery_index = map_index;
- info.is_two_byte = is_two_bytes;
- info.map_id = map_id;
- info.weather_rate = weather_rate; // TODO: deal with weather groups
- info.aetheryte_index = aetheryte_index;
- info.zone_type = zoneType;
+ ZoneInfo info{ 0 };
+ info.id = id;
+ info.zone_name = zoneStr;
+ info.zone_str = zone_str;
+ info.layout_id = id;
+ info.discovery_index = map_index;
+ info.is_two_byte = is_two_bytes;
+ info.map_id = map_id;
+ info.weather_rate = weather_rate; // TODO: deal with weather groups
+ info.aetheryte_index = aetheryte_index;
+ info.zone_type = zoneType;
- uint8_t sumPc = 0;
- for( size_t i = 0; i < 16; )
- {
- int32_t weatherId = getField< int32_t >( weatherRateFields, i );
+ uint8_t sumPc = 0;
+ for( size_t i = 0; i < 16; )
+ {
+ int32_t weatherId = getField< int32_t >( weatherRateFields, i );
- if( weatherId == 0 )
- break;
+ if( weatherId == 0 )
+ break;
- sumPc += getField< uint8_t >( weatherRateFields, i + 1 );
- info.weather_rate_map[sumPc] = weatherId;
+ sumPc += getField< uint8_t >( weatherRateFields, i + 1 );
+ info.weather_rate_map[ sumPc ] = weatherId;
- i += 2;
- }
+ i += 2;
+ }
- m_zoneInfoMap[id] = info;
+ m_zoneInfoMap[ id ] = info;
- }
+ }
- return true;
+ return true;
}
bool Core::Data::ExdData::loadStatusEffectInfo()
{
- auto StatusDat = setupDatAccess( "Status", xiv::exd::Language::en );
- auto rows1 = StatusDat.get_rows();
+ auto StatusDat = setupDatAccess( "Status", xiv::exd::Language::en );
+ auto rows1 = StatusDat.get_rows();
- for( auto row : rows1 )
- {
- auto& fields = row.second;
- uint32_t id = row.first;
+ for( auto row : rows1 )
+ {
+ auto& fields = row.second;
+ uint32_t id = row.first;
- StatusEffectInfo info { 0 };
- info.id = id;
- info.name = getField< std::string >( fields, 0 );
- info.lock_movement = getField< bool >( fields, 7 ); // 7
- info.lock_actions = getField< bool >( fields, 9 ); // 9
- info.lock_control = getField< bool >( fields, 10 ); // 10
- info.transfiguration = getField< bool >( fields, 11 ); // 11
- info.can_dispel = getField< bool >( fields, 13 ); // 13
- info.is_permanent = getField< bool >( fields, 15 ); // 15
- info.inflicted_by_actor = getField< bool >( fields, 17 ); // 17
- info.is_fc_buff = getField< bool >( fields, 21 ); // 21
- info.invisibility = getField< bool >( fields, 22 ); // 22
+ StatusEffectInfo info{ 0 };
+ info.id = id;
+ info.name = getField< std::string >( fields, 0 );
+ info.lock_movement = getField< bool >( fields, 7 ); // 7
+ info.lock_actions = getField< bool >( fields, 9 ); // 9
+ info.lock_control = getField< bool >( fields, 10 ); // 10
+ info.transfiguration = getField< bool >( fields, 11 ); // 11
+ info.can_dispel = getField< bool >( fields, 13 ); // 13
+ info.is_permanent = getField< bool >( fields, 15 ); // 15
+ info.inflicted_by_actor = getField< bool >( fields, 17 ); // 17
+ info.is_fc_buff = getField< bool >( fields, 21 ); // 21
+ info.invisibility = getField< bool >( fields, 22 ); // 22
- m_statusEffectInfoMap[id] = info;
- }
+ m_statusEffectInfoMap[ id ] = info;
+ }
- return true;
+ return true;
}
bool Core::Data::ExdData::loadAetheryteInfo()
{
- auto AetheryteDat = setupDatAccess( "Aetheryte", xiv::exd::Language::en );
- auto rows = AetheryteDat.get_rows();
+ auto AetheryteDat = setupDatAccess( "Aetheryte", xiv::exd::Language::en );
+ auto rows = AetheryteDat.get_rows();
- for( auto row : rows )
- {
- auto& fields = row.second;
- auto info = boost::make_shared< AetheryteInfo >();
- info->id = row.first;
- info->target_zone = getField< uint16_t >( fields, 10 );
+ for( auto row : rows )
+ {
+ auto& fields = row.second;
+ auto info = boost::make_shared< AetheryteInfo >();
+ info->id = row.first;
+ info->target_zone = getField< uint16_t >( fields, 10 );
- info->isAetheryte = getField< bool >( fields, 15 );
+ info->isAetheryte = getField< bool >( fields, 15 );
- uint16_t placename = getField< uint16_t >( fields, 8 );
- auto placeNameInfo = getPlaceNameInfo( placename );
+ uint16_t placename = getField< uint16_t >( fields, 8 );
+ auto placeNameInfo = getPlaceNameInfo( placename );
- if( placeNameInfo )
- {
- info->placename = placeNameInfo->placename;
- }
+ if( placeNameInfo )
+ {
+ info->placename = placeNameInfo->placename;
+ }
- uint16_t placename_aethernet = getField< uint16_t >( fields, 9 );
+ uint16_t placename_aethernet = getField< uint16_t >( fields, 9 );
- auto placename_aethernetInfo = getPlaceNameInfo( placename_aethernet );
+ auto placename_aethernetInfo = getPlaceNameInfo( placename_aethernet );
- if( placename_aethernetInfo )
- {
- info->placename_aethernet = placename_aethernetInfo->placename;
- }
+ if( placename_aethernetInfo )
+ {
+ info->placename_aethernet = placename_aethernetInfo->placename;
+ }
- info->levelId = getField< uint32_t >( fields, 11 );
+ info->levelId = getField< uint32_t >( fields, 11 );
- info->map_coord_x = getField< int16_t >( fields, 20 );
- info->map_coord_y = getField< int16_t >( fields, 21 );
- m_aetheryteInfoMap.emplace( std::make_pair( info->id, info ) );
- }
- return true;
+ info->map_coord_x = getField< int16_t >( fields, 20 );
+ info->map_coord_y = getField< int16_t >( fields, 21 );
+ m_aetheryteInfoMap.emplace( std::make_pair( info->id, info ) );
+ }
+ return true;
}
bool Core::Data::ExdData::loadClassJobInfo()
{
- auto ClassJobDat = setupDatAccess( "ClassJob", xiv::exd::Language::en );
- auto rows = ClassJobDat.get_rows();
+ auto ClassJobDat = setupDatAccess( "ClassJob", xiv::exd::Language::en );
+ auto rows = ClassJobDat.get_rows();
- for( auto row : rows )
- {
- auto& fields = row.second;
- ClassJobInfo info { 0 };
+ for( auto row : rows )
+ {
+ auto& fields = row.second;
+ ClassJobInfo info{ 0 };
- uint32_t id = row.first;
+ uint32_t id = row.first;
- if( id == 0 )
- continue;
+ if( id == 0 )
+ continue;
- std::string name = getField< std::string >( fields, 0 );
- std::string short_name = getField< std::string >( fields, 1 );
- int8_t exp_idx = getField< int8_t >( fields, 4 );
+ std::string name = getField< std::string >( fields, 0 );
+ std::string short_name = getField< std::string >( fields, 1 );
+ int8_t exp_idx = getField< int8_t >( fields, 4 );
-
- info.id = id;
- info.name = name;
- info.name_short = short_name;
- info.exp_idx = exp_idx;
- info.start_weapon_id = getField< int32_t >( fields, 28 );
- info.mod_hp = getField< uint16_t >( fields, 9 );
- info.mod_mpcpgp = getField< uint16_t >( fields, 10 );
- info.mod_str = getField< uint16_t >( fields, 11 );
- info.mod_vit = getField< uint16_t >( fields, 12 );
- info.mod_dex = getField< uint16_t >( fields, 13 );
- info.mod_int = getField< uint16_t >( fields, 14 );
- info.mod_mnd = getField< uint16_t >( fields, 15 );
- info.mod_pie = getField< uint16_t >( fields, 16 );
- m_classJobInfoMap[id] = info;
- }
+ info.id = id;
+ info.name = name;
+ info.name_short = short_name;
+ info.exp_idx = exp_idx;
+ info.start_weapon_id = getField< int32_t >( fields, 28 );
+ info.mod_hp = getField< uint16_t >( fields, 9 );
+ info.mod_mpcpgp = getField< uint16_t >( fields, 10 );
+ info.mod_str = getField< uint16_t >( fields, 11 );
+ info.mod_vit = getField< uint16_t >( fields, 12 );
+ info.mod_dex = getField< uint16_t >( fields, 13 );
+ info.mod_int = getField< uint16_t >( fields, 14 );
+ info.mod_mnd = getField< uint16_t >( fields, 15 );
+ info.mod_pie = getField< uint16_t >( fields, 16 );
- return true;
+ m_classJobInfoMap[ id ] = info;
+ }
+
+ return true;
}
bool Core::Data::ExdData::loadParamGrowInfo()
{
- auto ParamGrowDat = setupDatAccess( "ParamGrow", xiv::exd::Language::none );
- auto rows = ParamGrowDat.get_rows();
+ auto ParamGrowDat = setupDatAccess( "ParamGrow", xiv::exd::Language::none );
+ auto rows = ParamGrowDat.get_rows();
- for( auto row : rows )
- {
- auto& fields = row.second;
+ for( auto row : rows )
+ {
+ auto& fields = row.second;
- ParamGrowthInfo info { 0 };
- uint32_t id = row.first;
- info.level = id;
- info.needed_exp = getField< int32_t >( fields, 0 );
- info.mp_mod = getField< uint16_t >( fields, 3 ); // 3
- info.mp_const = getField< int32_t >( fields, 4 ); // 4
- info.base_secondary = getField< int32_t >( fields, 5 );// 5
- info.quest_exp_mod = getField< uint8_t >( fields, 7 ); // 7
- info.hp_mod = getField< uint16_t >(fields, 8); // 8
+ ParamGrowthInfo info{ 0 };
+ uint32_t id = row.first;
+ info.level = id;
+ info.needed_exp = getField< int32_t >( fields, 0 );
+ info.mp_mod = getField< uint16_t >( fields, 3 ); // 3
+ info.mp_const = getField< int32_t >( fields, 4 ); // 4
+ info.base_secondary = getField< int32_t >( fields, 5 );// 5
+ info.quest_exp_mod = getField< uint8_t >( fields, 7 ); // 7
+ info.hp_mod = getField< uint16_t >( fields, 8 ); // 8
- m_paramGrowthInfoMap[id] = info;
- }
+ m_paramGrowthInfoMap[ id ] = info;
+ }
- return true;
+ return true;
}
bool Core::Data::ExdData::loadTribeInfo()
{
- auto tribeDat = setupDatAccess( "Tribe", xiv::exd::Language::en );
- auto rows = tribeDat.get_rows();
+ auto tribeDat = setupDatAccess( "Tribe", xiv::exd::Language::en );
+ auto rows = tribeDat.get_rows();
- for( auto row : rows )
- {
- auto& fields = row.second;
+ for( auto row : rows )
+ {
+ auto& fields = row.second;
- TribeInfo info { 0 };
- uint32_t id = row.first;
- info.id = id;
- info.name = getField< std::string >( fields, 0 );
- info.mod_str = getField< int8_t >( fields, 4 );
- info.mod_vit = getField< int8_t >( fields, 5 );
- info.mod_dex = getField< int8_t >( fields, 6 );
- info.mod_int = getField< int8_t >( fields, 7 );
- info.mod_mnd = getField< int8_t >( fields, 8 );
- info.mod_pie = getField< int8_t >( fields, 9 );
+ TribeInfo info{ 0 };
+ uint32_t id = row.first;
+ info.id = id;
+ info.name = getField< std::string >( fields, 0 );
+ info.mod_str = getField< int8_t >( fields, 4 );
+ info.mod_vit = getField< int8_t >( fields, 5 );
+ info.mod_dex = getField< int8_t >( fields, 6 );
+ info.mod_int = getField< int8_t >( fields, 7 );
+ info.mod_mnd = getField< int8_t >( fields, 8 );
+ info.mod_pie = getField< int8_t >( fields, 9 );
- m_tribeInfoMap[id] = info;
- }
+ m_tribeInfoMap[ id ] = info;
+ }
- return true;
+ return true;
}
bool Core::Data::ExdData::loadEventActionInfo()
{
- auto EventActionDat = setupDatAccess( "EventAction", xiv::exd::Language::en );
- auto rows = EventActionDat.get_rows();
+ auto EventActionDat = setupDatAccess( "EventAction", xiv::exd::Language::en );
+ auto rows = EventActionDat.get_rows();
- for( auto row : rows )
- {
- auto& fields = row.second;
+ for( auto row : rows )
+ {
+ auto& fields = row.second;
- EventActionInfo info { 0 };
+ EventActionInfo info{ 0 };
- uint32_t id = row.first;
+ uint32_t id = row.first;
- if( id == 0 )
- {
- continue;
- }
+ if( id == 0 )
+ {
+ continue;
+ }
- std::string name = getField< std::string >( fields, 0 );
- uint8_t time = getField< uint8_t >( fields, 2 );
+ std::string name = getField< std::string >( fields, 0 );
+ uint8_t time = getField< uint8_t >( fields, 2 );
- info.id = id;
- info.name = name;
- info.castTime = time * 1000;
+ info.id = id;
+ info.name = name;
+ info.castTime = time * 1000;
- m_EventActionInfoMap[id] = info;
+ m_EventActionInfoMap[ id ] = info;
- }
+ }
- return true;
+ return true;
}
bool Core::Data::ExdData::loadActionInfo()
{
- auto ActionDat = setupDatAccess( "Action", xiv::exd::Language::en );
- auto rows = ActionDat.get_rows();
+ auto ActionDat = setupDatAccess( "Action", xiv::exd::Language::en );
+ auto rows = ActionDat.get_rows();
- for( auto row : rows )
- {
- auto& fields = row.second;
- auto info = boost::make_shared< ActionInfo >();
+ for( auto row : rows )
+ {
+ auto& fields = row.second;
+ auto info = boost::make_shared< ActionInfo >();
- uint32_t id = row.first;
- if( id == 0 )
- {
- continue;
- }
+ uint32_t id = row.first;
+ if( id == 0 )
+ {
+ continue;
+ }
- std::string name = getField< std::string >( fields, 0 ); // 0
- uint8_t category = getField< uint8_t >( fields, 3 ); // 3
+ std::string name = getField< std::string >( fields, 0 ); // 0
+ uint8_t category = getField< uint8_t >( fields, 3 ); // 3
- int8_t class_job = getField< int8_t >( fields, 10 ); // 10
- uint8_t unlock_level = getField< uint8_t >( fields, 11 ); // 11
- int8_t range = getField< int8_t >( fields, 14 ); // 13
- bool can_target_self = getField< bool >( fields, 15 ); // 14
- bool can_target_party = getField< bool>( fields, 16 ); // 15
- bool can_target_friendly = getField< bool >( fields, 17 ); // 16
- bool can_target_enemy = getField< bool >( fields, 18 ); // 17
+ int8_t class_job = getField< int8_t >( fields, 10 ); // 10
+ uint8_t unlock_level = getField< uint8_t >( fields, 11 ); // 11
+ int8_t range = getField< int8_t >( fields, 14 ); // 13
+ bool can_target_self = getField< bool >( fields, 15 ); // 14
+ bool can_target_party = getField< bool >( fields, 16 ); // 15
+ bool can_target_friendly = getField< bool >( fields, 17 ); // 16
+ bool can_target_enemy = getField< bool >( fields, 18 ); // 17
- bool is_ground_aoe = getField< bool >( fields, 21 ); // 20
- // Column 23: Seems to be related to raising skills (Raise, Resurrection, Reanimate)
- bool can_target_ko = getField< bool >( fields, 25 ); // 24
+ bool is_ground_aoe = getField< bool >( fields, 21 ); // 20
+ // Column 23: Seems to be related to raising skills (Raise, Resurrection, Reanimate)
+ bool can_target_ko = getField< bool >( fields, 25 ); // 24
- uint8_t aoe_type = getField< uint8_t >( fields, 27 ); // 26
- uint8_t aoe_range = getField< uint8_t >( fields, 28 ); // 27
- uint8_t aoe_width = getField< uint8_t >( fields, 29 ); // 28
+ uint8_t aoe_type = getField< uint8_t >( fields, 27 ); // 26
+ uint8_t aoe_range = getField< uint8_t >( fields, 28 ); // 27
+ uint8_t aoe_width = getField< uint8_t >( fields, 29 ); // 28
- uint8_t points_type = getField< uint8_t >( fields, 31 ); // 30
- uint16_t points_cost = getField< uint16_t >( fields, 32 ); // 31
+ uint8_t points_type = getField< uint8_t >( fields, 31 ); // 30
+ uint16_t points_cost = getField< uint16_t >( fields, 32 ); // 31
- bool is_instant = getField< bool >( fields, 36 ); // 35
- uint16_t cast_time = getField< uint16_t >( fields, 37 ); // 36
- uint16_t recast_time = getField< uint16_t >( fields, 38 ); // 37
+ bool is_instant = getField< bool >( fields, 36 ); // 35
+ uint16_t cast_time = getField< uint16_t >( fields, 37 ); // 36
+ uint16_t recast_time = getField< uint16_t >( fields, 38 ); // 37
- int8_t model = getField< int8_t >( fields, 40 ); // 39
- uint8_t aspect = getField< uint8_t >( fields, 41 ); // 40
+ int8_t model = getField< int8_t >( fields, 40 ); // 39
+ uint8_t aspect = getField< uint8_t >( fields, 41 ); // 40
- uint16_t toggle_status_id = getField< uint16_t >( fields, 43 ); // 42
- bool affects_position = getField< bool >( fields, 48 ); // 47
+ uint16_t toggle_status_id = getField< uint16_t >( fields, 43 ); // 42
+ bool affects_position = getField< bool >( fields, 48 ); // 47
- bool no_effect_in_battle = getField< bool >( fields, 61 ); // 60
+ bool no_effect_in_battle = getField< bool >( fields, 61 ); // 60
- info->id = id;
- info->name = name;
- info->category = category;
+ info->id = id;
+ info->name = name;
+ info->category = category;
- info->class_job = class_job;
- info->unlock_level = unlock_level;
- info->range = range;
- info->can_target_self = can_target_self;
- info->can_target_party = can_target_party;
- info->can_target_friendly = can_target_friendly;
- info->can_target_enemy = can_target_enemy;
+ info->class_job = class_job;
+ info->unlock_level = unlock_level;
+ info->range = range;
+ info->can_target_self = can_target_self;
+ info->can_target_party = can_target_party;
+ info->can_target_friendly = can_target_friendly;
+ info->can_target_enemy = can_target_enemy;
- info->can_target_ko = can_target_ko;
+ info->can_target_ko = can_target_ko;
- info->is_ground_aoe = is_ground_aoe;
+ info->is_ground_aoe = is_ground_aoe;
- info->aoe_type = aoe_type;
- info->aoe_range = aoe_range;
- info->aoe_width = aoe_width;
+ info->aoe_type = aoe_type;
+ info->aoe_range = aoe_range;
+ info->aoe_width = aoe_width;
- info->points_type = points_type;
- info->points_cost = points_cost;
+ info->points_type = points_type;
+ info->points_cost = points_cost;
- info->is_instant = is_instant;
- info->cast_time = cast_time * 100;
- info->recast_time = recast_time * 100;
+ info->is_instant = is_instant;
+ info->cast_time = cast_time * 100;
+ info->recast_time = recast_time * 100;
- info->model = model;
- info->aspect = aspect;
+ info->model = model;
+ info->aspect = aspect;
- info->toggle_status_id = toggle_status_id;
- info->affects_position = affects_position;
+ info->toggle_status_id = toggle_status_id;
+ info->affects_position = affects_position;
- info->no_effect_in_battle = no_effect_in_battle;
+ info->no_effect_in_battle = no_effect_in_battle;
- // If action type is SingleTarget with an AoE radius set, or if action type isn't SingleTarget
- info->is_aoe = ( info->aoe_type == 1 && info->aoe_width != 0 ) || ( info->aoe_type != 1 );
+ // If action type is SingleTarget with an AoE radius set, or if action type isn't SingleTarget
+ info->is_aoe = ( info->aoe_type == 1 && info->aoe_width != 0 ) || ( info->aoe_type != 1 );
- m_actionInfoMap.emplace( std::make_pair( info->id, info ) );
+ m_actionInfoMap.emplace( std::make_pair( info->id, info ) );
- }
+ }
- return true;
+ return true;
}
boost::shared_ptr< Core::Data::PlaceNameInfo >
- Core::Data::ExdData::getPlaceNameInfo( uint32_t placeNameId )
+Core::Data::ExdData::getPlaceNameInfo( uint32_t placeNameId )
{
- try
- {
- auto row = m_placeNameDat.get_row( placeNameId );
- auto info = boost::make_shared< PlaceNameInfo >();
- info->id = placeNameId;
- info->placename = getField< std::string >( row, 0 );
- return info;
- }
- catch( ... )
- {
- return nullptr;
- }
+ try
+ {
+ auto row = m_placeNameDat.get_row( placeNameId );
+ auto info = boost::make_shared< PlaceNameInfo >();
+ info->id = placeNameId;
+ info->placename = getField< std::string >( row, 0 );
+ return info;
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
- return nullptr;
+ return nullptr;
}
boost::shared_ptr< Core::Data::ItemInfo >
- Core::Data::ExdData::getItemInfo( uint32_t catalogId )
+Core::Data::ExdData::getItemInfo( uint32_t catalogId )
{
- try
- {
- auto row = m_itemsDat.get_row( catalogId );
- auto info = boost::make_shared< ItemInfo >();
- info->id = catalogId;
- info->name = getField< std::string >( row, 0 );
- info->item_level = getField< uint16_t >( row, 11 );
- info->required_level = getField< uint8_t >( row, 12 );
- info->ui_category = getField< uint8_t >( row, 17 );
- info->stack_size = getField< uint32_t >( row, 19 );
- info->is_hqable = getField< bool >( row, 20 );
- info->model_primary = getField< uint64_t >( row, 45 );
- info->model_secondary = getField< uint64_t >( row, 46 );
- info->physical_damage = getField< uint16_t >( row, 49 );
- info->magical_damage = getField< uint16_t >( row, 50 );
- info->delayMs = getField< uint16_t >( row, 51 );
- info->is_unique = getField< int16_t >( row, 64 ) != 0 ? true : false;
- info->is_untradeable = getField< uint8_t >( row, 65 ) != 0 ? true : false;
+ try
+ {
+ auto row = m_itemsDat.get_row( catalogId );
+ auto info = boost::make_shared< ItemInfo >();
+ info->id = catalogId;
+ info->name = getField< std::string >( row, 0 );
+ info->item_level = getField< uint16_t >( row, 11 );
+ info->required_level = getField< uint8_t >( row, 12 );
+ info->ui_category = getField< uint8_t >( row, 17 );
+ info->stack_size = getField< uint32_t >( row, 19 );
+ info->is_hqable = getField< bool >( row, 20 );
+ info->model_primary = getField< uint64_t >( row, 45 );
+ info->model_secondary = getField< uint64_t >( row, 46 );
+ info->physical_damage = getField< uint16_t >( row, 49 );
+ info->magical_damage = getField< uint16_t >( row, 50 );
+ info->delayMs = getField< uint16_t >( row, 51 );
+ info->is_unique = getField< int16_t >( row, 64 ) != 0 ? true : false;
+ info->is_untradeable = getField< uint8_t >( row, 65 ) != 0 ? true : false;
- return info;
- }
- catch( ... )
- {
- return nullptr;
- }
+ return info;
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
- return nullptr;
+ return nullptr;
}
boost::shared_ptr< Core::Data::AetheryteInfo >
- Core::Data::ExdData::getAetheryteInfo( uint32_t aetheryteId )
+Core::Data::ExdData::getAetheryteInfo( uint32_t aetheryteId )
{
- try
- {
- return m_aetheryteInfoMap[aetheryteId];
- }
- catch( ... )
- {
- return nullptr;
- }
+ try
+ {
+ return m_aetheryteInfoMap[ aetheryteId ];
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
- return nullptr;
+ return nullptr;
}
boost::shared_ptr< Core::Data::ActionInfo >
Core::Data::ExdData::getActionInfo( uint32_t actionId )
{
- try
- {
- return m_actionInfoMap[actionId];
- }
- catch ( ... )
- {
- return nullptr;
- }
+ try
+ {
+ return m_actionInfoMap[ actionId ];
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
- return nullptr;
+ return nullptr;
}
boost::shared_ptr< Core::Data::CustomTalkInfo >
- Core::Data::ExdData::getCustomTalkInfo( uint32_t customTalkId )
+Core::Data::ExdData::getCustomTalkInfo( uint32_t customTalkId )
{
- try
- {
- auto row = m_customTalkDat.get_row( customTalkId );
- auto info = boost::make_shared< CustomTalkInfo >();
- info->id = customTalkId;
- info->name_intern = getField< std::string >( row, 2 );
+ try
+ {
+ auto row = m_customTalkDat.get_row( customTalkId );
+ auto info = boost::make_shared< CustomTalkInfo >();
+ info->id = customTalkId;
+ info->name_intern = getField< std::string >( row, 2 );
- return info;
- }
- catch( ... )
- {
- return nullptr;
- }
+ return info;
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
- return nullptr;
+ return nullptr;
}
boost::shared_ptr< Core::Data::QuestInfo >
- Core::Data::ExdData::getQuestInfo( uint32_t questId )
+Core::Data::ExdData::getQuestInfo( uint32_t questId )
{
- try
- {
- auto row = m_questDat.get_row( questId );
- auto info = boost::make_shared< QuestInfo >();
- info->id = questId;
- info->name = getField< std::string >( row, 0 );
- info->name_intern = getField< std::string >( row, 1 );
+ try
+ {
+ auto row = m_questDat.get_row( questId );
+ auto info = boost::make_shared< QuestInfo >();
+ info->id = questId;
+ info->name = getField< std::string >( row, 0 );
+ info->name_intern = getField< std::string >( row, 1 );
- info->quest_level = getField< uint16_t >( row, 4 );
+ info->quest_level = getField< uint16_t >( row, 4 );
- info->enpc_resident_start = getField< uint32_t >( row, 40 );
- info->enpc_resident_end = getField< uint32_t >( row, 42 );
+ info->enpc_resident_start = getField< uint32_t >( row, 40 );
+ info->enpc_resident_end = getField< uint32_t >( row, 42 );
- info->reward_exp_factor = getField< uint16_t >( row, 1439 );
- info->reward_gil = getField< uint32_t >( row, 1440 );
- info->reward_gc_seals = getField< uint16_t >( row, 1442 );
+ info->reward_exp_factor = getField< uint16_t >( row, 1439 );
+ info->reward_gil = getField< uint32_t >( row, 1440 );
+ info->reward_gc_seals = getField< uint16_t >( row, 1442 );
- info->reward_item_type = getField< uint8_t >( row, 1449 );
+ info->reward_item_type = getField< uint8_t >( row, 1449 );
- for( uint32_t i = 0; i < 6; i++ )
+ for( uint32_t i = 0; i < 6; i++ )
+ {
+ uint32_t entry = getField< uint32_t >( row, i + 1450 );
+ if( entry > 0 )
+ info->reward_item.push_back( entry );
+
+ uint8_t entry1 = getField< uint8_t >( row, i + 1457 );
+ if( entry1 > 0 )
+ info->reward_item_count.push_back( entry1 );
+
+ uint8_t entry2 = getField< uint8_t >( row, i + 1464 );
+ if( entry2 > 0 )
+ info->reward_item_stain.push_back( entry2 );
+
+ }
+
+ for( uint32_t i = 0; i < 5; i++ )
+ {
+ uint32_t entry = getField< uint32_t >( row, i + 1471 );
+ if( entry > 0 )
+ info->reward_item_optional.push_back( entry );
+
+ uint8_t entry1 = getField< uint8_t >( row, i + 1476 );
+ if( entry1 > 0 )
+ info->reward_item_optional_count.push_back( entry1 );
+
+ uint8_t entry2 = getField< uint8_t >( row, i + 1486 );
+ if( entry2 > 0 )
+ info->reward_item_optional_stain.push_back( entry2 );
+ }
+
+ info->reward_emote = getField< uint8_t >( row, 1491 );
+ info->reward_action = getField< uint16_t >( row, 1492 );
+ info->reward_action_general1 = getField< uint8_t >( row, 1493 );
+ info->reward_action_general2 = getField< uint8_t >( row, 1494 );
+ info->reward_other = getField< uint8_t >( row, 1496 );
+
+ info->instanced_content_unlock = getField< uint32_t >( row, 1499 );
+
+ info->reward_tome_type = getField< uint8_t >( row, 1501 );
+ info->reward_tome_count = getField< uint8_t >( row, 1502 );
+
+ info->reward_reputation = getField< uint8_t >( row, 1503 );
+
+ for( uint32_t i = 0; i < 50; i++ )
+ {
+ std::string entry = getField< std::string >( row, i + 49 );
+ if( entry.size() > 0 )
{
- uint32_t entry = getField< uint32_t >( row, i + 1450 );
- if( entry > 0 )
- info->reward_item.push_back( entry );
-
- uint8_t entry1 = getField< uint8_t >( row, i + 1457 );
- if( entry1 > 0 )
- info->reward_item_count.push_back( entry1 );
-
- uint8_t entry2 = getField< uint8_t >( row, i + 1464 );
- if( entry2 > 0 )
- info->reward_item_stain.push_back( entry2 );
-
+ info->script_entity.push_back( entry );
+ uint32_t entry1 = getField< uint32_t >( row, i + 99 );
+ info->script_value.push_back( entry1 );
}
+ }
- for( uint32_t i = 0; i < 5; i++ )
- {
- uint32_t entry = getField< uint32_t >( row, i + 1471 );
- if( entry > 0 )
- info->reward_item_optional.push_back( entry );
+ return info;
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
- uint8_t entry1 = getField< uint8_t >( row, i + 1476 );
- if( entry1 > 0 )
- info->reward_item_optional_count.push_back( entry1 );
-
- uint8_t entry2 = getField< uint8_t >( row, i + 1486 );
- if( entry2 > 0 )
- info->reward_item_optional_stain.push_back( entry2 );
- }
-
- info->reward_emote = getField< uint8_t >( row, 1491 );
- info->reward_action = getField< uint16_t >( row, 1492 );
- info->reward_action_general1 = getField< uint8_t >( row, 1493 );
- info->reward_action_general2 = getField< uint8_t >( row, 1494 );
- info->reward_other = getField< uint8_t >( row, 1496 );
-
- info->instanced_content_unlock = getField< uint32_t >( row, 1499 );
-
- info->reward_tome_type = getField< uint8_t >( row, 1501 );
- info->reward_tome_count = getField< uint8_t >( row, 1502 );
-
- info->reward_reputation = getField< uint8_t >( row, 1503 );
-
- for( uint32_t i = 0; i < 50; i++ )
- {
- std::string entry = getField< std::string >( row, i + 49 );
- if( entry.size() > 0 )
- {
- info->script_entity.push_back( entry );
- uint32_t entry1 = getField< uint32_t >( row, i + 99 );
- info->script_value.push_back( entry1 );
- }
- }
-
- return info;
- }
- catch( ... )
- {
- return nullptr;
- }
-
- return nullptr;
+ return nullptr;
}
boost::shared_ptr< Core::Data::EventItemInfo >
- Core::Data::ExdData::getEventItemInfo( uint32_t eventItemId )
+Core::Data::ExdData::getEventItemInfo( uint32_t eventItemId )
{
- try
- {
- auto row = m_eventItemDat.get_row( eventItemId );
- auto info = boost::make_shared< EventItemInfo >();
- info->id = eventItemId;
- info->name = getField< std::string >( row, 0 );
- info->eventId = getField< uint32_t >( row, 14 );
- info->castTime = getField< uint8_t >( row, 15 ) * 1000;
- return info;
- }
- catch( ... )
- {
- return nullptr;
- }
+ try
+ {
+ auto row = m_eventItemDat.get_row( eventItemId );
+ auto info = boost::make_shared< EventItemInfo >();
+ info->id = eventItemId;
+ info->name = getField< std::string >( row, 0 );
+ info->eventId = getField< uint32_t >( row, 14 );
+ info->castTime = getField< uint8_t >( row, 15 ) * 1000;
+ return info;
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
- return nullptr;
+ return nullptr;
}
boost::shared_ptr< Core::Data::LevelInfo >
- Core::Data::ExdData::getLevelInfo( uint32_t levelId )
+Core::Data::ExdData::getLevelInfo( uint32_t levelId )
{
- try
- {
- auto row = m_levelDat.get_row( levelId );
- auto info = boost::make_shared< LevelInfo >();
- info->id = levelId;
- info->x = getField< float >( row, 0 );
- info->y = getField< float >( row, 1 );
- info->z = getField< float >( row, 2 );
- info->r = getField< float >( row, 3 );
- info->actor_id = getField< uint32_t >( row, 6 );
- info->zone_id = getField< uint16_t >( row, 9 );
- return info;
- }
- catch( ... )
- {
- return nullptr;
- }
+ try
+ {
+ auto row = m_levelDat.get_row( levelId );
+ auto info = boost::make_shared< LevelInfo >();
+ info->id = levelId;
+ info->x = getField< float >( row, 0 );
+ info->y = getField< float >( row, 1 );
+ info->z = getField< float >( row, 2 );
+ info->r = getField< float >( row, 3 );
+ info->actor_id = getField< uint32_t >( row, 6 );
+ info->zone_id = getField< uint16_t >( row, 9 );
+ return info;
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
- return nullptr;
+ return nullptr;
}
-const std::vector > Core::Data::ExdData::getAetheryteInfoForZone( uint16_t zoneId )
+const std::vector< boost::shared_ptr< Core::Data::AetheryteInfo > >
+Core::Data::ExdData::getAetheryteInfoForZone( uint16_t zoneId )
{
- std::vector< boost::shared_ptr< AetheryteInfo > > aetheryteList;
+ std::vector< boost::shared_ptr< AetheryteInfo > > aetheryteList;
- for( auto& aetheryteInfo : m_aetheryteInfoMap )
- {
- if( aetheryteInfo.second->target_zone == zoneId )
- {
- aetheryteList.push_back( aetheryteInfo.second );
- }
- }
- return aetheryteList;
+ for( auto& aetheryteInfo : m_aetheryteInfoMap )
+ {
+ if( aetheryteInfo.second->target_zone == zoneId )
+ {
+ aetheryteList.push_back( aetheryteInfo.second );
+ }
+ }
+ return aetheryteList;
}
boost::shared_ptr< Core::Data::OpeningInfo >
- Core::Data::ExdData::getOpeningInfo( uint32_t openingId )
+Core::Data::ExdData::getOpeningInfo( uint32_t openingId )
{
- try
- {
- auto row = m_openingDat.get_row( openingId );
- auto info = boost::make_shared< OpeningInfo >();
- info->id = openingId;
- info->name = getField< std::string >( row, 0 );
+ try
+ {
+ auto row = m_openingDat.get_row( openingId );
+ auto info = boost::make_shared< OpeningInfo >();
+ info->id = openingId;
+ info->name = getField< std::string >( row, 0 );
- return info;
- }
- catch( ... )
- {
- return nullptr;
- }
+ return info;
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
- return nullptr;
+ return nullptr;
}
boost::shared_ptr< Core::Data::RaceInfo >
- Core::Data::ExdData::getRaceInfo( uint32_t raceId )
+Core::Data::ExdData::getRaceInfo( uint32_t raceId )
{
- try
- {
+ try
+ {
- auto row = m_raceDat.get_row( raceId );
- auto info = boost::make_shared< RaceInfo >();
- info->id = raceId;
- info->name = getField< std::string >( row, 0 );
- info->male_body = getField< int32_t >( row, 2 );
- info->male_hands = getField< int32_t >( row, 3 );
- info->male_legs = getField< int32_t >( row, 4 );
- info->male_feet = getField< int32_t >( row, 5 );
- info->female_body = getField< int32_t >( row, 6 );
- info->female_hands = getField< int32_t >( row, 7 );
- info->female_legs = getField< int32_t >( row, 8 );
- info->female_feet = getField< int32_t >( row, 9 );
+ auto row = m_raceDat.get_row( raceId );
+ auto info = boost::make_shared< RaceInfo >();
+ info->id = raceId;
+ info->name = getField< std::string >( row, 0 );
+ info->male_body = getField< int32_t >( row, 2 );
+ info->male_hands = getField< int32_t >( row, 3 );
+ info->male_legs = getField< int32_t >( row, 4 );
+ info->male_feet = getField< int32_t >( row, 5 );
+ info->female_body = getField< int32_t >( row, 6 );
+ info->female_hands = getField< int32_t >( row, 7 );
+ info->female_legs = getField< int32_t >( row, 8 );
+ info->female_feet = getField< int32_t >( row, 9 );
- return info;
- }
- catch( ... )
- {
- return nullptr;
- }
+ return info;
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
- return nullptr;
+ return nullptr;
}
diff --git a/src/common/Exd/ExdData.h b/src/common/Exd/ExdData.h
index d17bffb8..ebc0d5c2 100644
--- a/src/common/Exd/ExdData.h
+++ b/src/common/Exd/ExdData.h
@@ -22,334 +22,350 @@ case DataType::uint64: 9
namespace Core {
- namespace Data {
+namespace Data {
- struct ZoneInfo
- {
- uint16_t id;
- std::string zone_str;
- std::string zone_name;
- uint32_t layout_id;
- uint16_t map_id;
- int16_t discovery_index;
- bool is_two_byte;
- uint16_t weather_rate;
- std::map< uint8_t, int32_t> weather_rate_map;
+struct ZoneInfo
+{
+ uint16_t id;
+ std::string zone_str;
+ std::string zone_name;
+ uint32_t layout_id;
+ uint16_t map_id;
+ int16_t discovery_index;
+ bool is_two_byte;
+ uint16_t weather_rate;
+ std::map< uint8_t, int32_t > weather_rate_map;
- int32_t aetheryte_index;
- uint8_t zone_type;
- };
+ int32_t aetheryte_index;
+ uint8_t zone_type;
+};
- struct ClassJobInfo
- {
- uint8_t id;
- std::string name;
- std::string name_short;
- uint8_t exp_idx;
- uint32_t start_weapon_id;
- uint16_t mod_hp;
- uint16_t mod_mpcpgp;
- uint16_t mod_str;
- uint16_t mod_vit;
- uint16_t mod_dex;
- uint16_t mod_int;
- uint16_t mod_mnd;
- uint16_t mod_pie;
- };
+struct ClassJobInfo
+{
+ uint8_t id;
+ std::string name;
+ std::string name_short;
+ uint8_t exp_idx;
+ uint32_t start_weapon_id;
+ uint16_t mod_hp;
+ uint16_t mod_mpcpgp;
+ uint16_t mod_str;
+ uint16_t mod_vit;
+ uint16_t mod_dex;
+ uint16_t mod_int;
+ uint16_t mod_mnd;
+ uint16_t mod_pie;
+};
- struct QuestInfo
- {
- uint32_t id;
- std::string name;
- std::string name_intern;
- uint16_t quest_level;
- uint32_t enpc_resident_start;
- uint32_t enpc_resident_end;
- uint16_t reward_exp_factor;
- uint32_t reward_gil;
- uint16_t reward_gc_seals;
- uint8_t reward_item_type;
+struct QuestInfo
+{
+ uint32_t id;
+ std::string name;
+ std::string name_intern;
+ uint16_t quest_level;
+ uint32_t enpc_resident_start;
+ uint32_t enpc_resident_end;
+ uint16_t reward_exp_factor;
+ uint32_t reward_gil;
+ uint16_t reward_gc_seals;
+ uint8_t reward_item_type;
- std::vector< uint32_t > reward_item;
- std::vector< uint8_t > reward_item_count;
- std::vector< uint8_t > reward_item_stain;
+ std::vector< uint32_t > reward_item;
+ std::vector< uint8_t > reward_item_count;
+ std::vector< uint8_t > reward_item_stain;
- std::vector< uint32_t > reward_item_optional;
- std::vector< uint8_t > reward_item_optional_count;
- std::vector< uint8_t > reward_item_optional_stain;
+ std::vector< uint32_t > reward_item_optional;
+ std::vector< uint8_t > reward_item_optional_count;
+ std::vector< uint8_t > reward_item_optional_stain;
- uint8_t reward_emote;
- uint16_t reward_action;
- uint8_t reward_action_general1;
- uint8_t reward_action_general2;
+ uint8_t reward_emote;
+ uint16_t reward_action;
+ uint8_t reward_action_general1;
+ uint8_t reward_action_general2;
- uint8_t reward_other;
+ uint8_t reward_other;
- uint32_t instanced_content_unlock;
+ uint32_t instanced_content_unlock;
- uint8_t reward_tome_type;
- uint8_t reward_tome_count;
+ uint8_t reward_tome_type;
+ uint8_t reward_tome_count;
- uint8_t reward_reputation;
+ uint8_t reward_reputation;
+ std::vector< std::string > script_entity;
+ std::vector< uint32_t > script_value;
+};
- std::vector< std::string > script_entity;
- std::vector< uint32_t > script_value;
- };
+struct EventActionInfo
+{
+ uint32_t id;
+ std::string name;
+ uint32_t castTime;
+};
- struct EventActionInfo
- {
- uint32_t id;
- std::string name;
- uint32_t castTime;
- };
+struct OpeningInfo
+{
+ uint32_t id;
+ std::string name;
+};
- struct OpeningInfo
- {
- uint32_t id;
- std::string name;
- };
+struct ParamGrowthInfo
+{
+ uint32_t level;
+ uint32_t needed_exp;
+ int16_t hp_mod;
+ int32_t mp_const;
+ int16_t mp_mod;
+ int32_t base_secondary;
+ uint16_t quest_exp_mod;
+};
- struct ParamGrowthInfo
- {
- uint32_t level;
- uint32_t needed_exp;
- int16_t hp_mod;
- int32_t mp_const;
- int16_t mp_mod;
- int32_t base_secondary;
- uint16_t quest_exp_mod;
- };
+struct CustomTalkInfo
+{
+ uint32_t id;
+ std::string name_intern;
+};
- struct CustomTalkInfo
- {
- uint32_t id;
- std::string name_intern;
- };
+struct PlaceNameInfo
+{
+ uint32_t id;
+ std::string placename;
+};
- struct PlaceNameInfo
- {
- uint32_t id;
- std::string placename;
- };
+struct AetheryteInfo
+{
+ uint32_t id;
+ std::string placename;
+ std::string placename_aethernet;
+ int32_t target_zone;
+ int32_t levelId;
+ bool isAetheryte;
- struct AetheryteInfo
- {
- uint32_t id;
- std::string placename;
- std::string placename_aethernet;
- int32_t target_zone;
- int32_t levelId;
- bool isAetheryte;
+ int16_t map_coord_x;
+ int16_t map_coord_y;
+};
- int16_t map_coord_x;
- int16_t map_coord_y;
- };
+struct RaceInfo
+{
+ uint32_t id;
+ std::string name;
+ uint32_t male_body;
+ uint32_t male_hands;
+ uint32_t male_legs;
+ uint32_t male_feet;
+ uint32_t female_body;
+ uint32_t female_hands;
+ uint32_t female_legs;
+ uint32_t female_feet;
- struct RaceInfo
- {
- uint32_t id;
- std::string name;
- uint32_t male_body;
- uint32_t male_hands;
- uint32_t male_legs;
- uint32_t male_feet;
- uint32_t female_body;
- uint32_t female_hands;
- uint32_t female_legs;
- uint32_t female_feet;
+ int8_t mod_str;
+ int8_t mod_dex;
+ int8_t mod_vit;
+ int8_t mod_int;
+ int8_t mod_mnd;
+ int8_t mod_pie;
+};
- int8_t mod_str;
- int8_t mod_dex;
- int8_t mod_vit;
- int8_t mod_int;
- int8_t mod_mnd;
- int8_t mod_pie;
- };
+struct TribeInfo
+{
+ uint32_t id;
+ std::string name;
- struct TribeInfo
- {
- uint32_t id;
- std::string name;
+ int8_t mod_str;
+ int8_t mod_dex;
+ int8_t mod_vit;
+ int8_t mod_int;
+ int8_t mod_mnd;
+ int8_t mod_pie;
+};
- int8_t mod_str;
- int8_t mod_dex;
- int8_t mod_vit;
- int8_t mod_int;
- int8_t mod_mnd;
- int8_t mod_pie;
- };
+struct LevelInfo
+{
+ uint32_t id;
+ float x;
+ float y;
+ float z;
+ float r;
+ uint32_t actor_id;
+ uint32_t zone_id;
+};
- struct LevelInfo
- {
- uint32_t id;
- float x;
- float y;
- float z;
- float r;
- uint32_t actor_id;
- uint32_t zone_id;
- };
+struct ClassJobCategoryInfo
+{
+ uint32_t id;
+ // should they add new jobs, this needs to be changed
+ bool can_equip[0x33];
+};
- struct ClassJobCategoryInfo
- {
- uint32_t id;
- // should they add new jobs, this needs to be changed
- bool can_equip[0x33];
- };
+struct ItemInfo
+{
+ uint32_t id;
+ std::string name; //0
+ uint16_t item_level; //11
+ uint8_t required_level; //12
+ uint16_t unknown_category; //15
+ uint16_t ui_category; //17
+ uint32_t stack_size; //19
+ bool is_hqable; //20
+ uint64_t model_primary; //28
+ uint64_t model_secondary; //29
+ uint16_t physical_damage; //49
+ uint16_t magical_damage; //50
+ uint16_t delayMs; //51
+ uint32_t class_job_requirement; //58
+ bool is_unique; //72
+ bool is_untradeable; //73
+ uint32_t class_job_index; //86
+};
- struct ItemInfo
- {
- uint32_t id;
- std::string name; //0
- uint16_t item_level; //11
- uint8_t required_level; //12
- uint16_t unknown_category; //15
- uint16_t ui_category; //17
- uint32_t stack_size; //19
- bool is_hqable; //20
- uint64_t model_primary; //28
- uint64_t model_secondary; //29
- uint16_t physical_damage; //49
- uint16_t magical_damage; //50
- uint16_t delayMs; //51
- uint32_t class_job_requirement; //58
- bool is_unique; //72
- bool is_untradeable; //73
- uint32_t class_job_index; //86
- };
+struct ActionInfo
+{
+ uint32_t id;
+ std::string name; // 0
+ uint16_t category; // 3
- struct ActionInfo
- {
- uint32_t id;
- std::string name; // 0
- uint16_t category; // 3
+ int8_t class_job; // 10
+ uint8_t unlock_level; // 11
+ int8_t range; // 13
+ bool can_target_self; // 14
+ bool can_target_party; // 15
+ bool can_target_friendly; // 16
+ bool can_target_enemy; // 17
- int8_t class_job; // 10
- uint8_t unlock_level; // 11
- int8_t range; // 13
- bool can_target_self; // 14
- bool can_target_party; // 15
- bool can_target_friendly; // 16
- bool can_target_enemy; // 17
+ bool is_ground_aoe; // 20
- bool is_ground_aoe; // 20
+ bool can_target_ko; // 24
- bool can_target_ko; // 24
+ uint8_t aoe_type; // 26
+ uint8_t aoe_range; // 27
+ uint8_t aoe_width; // 28
- uint8_t aoe_type; // 26
- uint8_t aoe_range; // 27
- uint8_t aoe_width; // 28
+ uint8_t points_type; // 30
+ uint16_t points_cost; // 31
- uint8_t points_type; // 30
- uint16_t points_cost; // 31
+ bool is_instant; // 35
+ uint32_t cast_time; // 36
+ uint32_t recast_time; // 37
- bool is_instant; // 35
- uint32_t cast_time; // 36
- uint32_t recast_time; // 37
+ int8_t model; // 39
+ uint8_t aspect; // 40
- int8_t model; // 39
- uint8_t aspect; // 40
-
- uint16_t toggle_status_id; // 42
+ uint16_t toggle_status_id; // 42
- bool affects_position; // 47
+ bool affects_position; // 47
- bool no_effect_in_battle; // 60
+ bool no_effect_in_battle; // 60
- bool is_aoe; // Internal only
+ bool is_aoe; // Internal only
- };
+};
- struct EventItemInfo
- {
- uint32_t id;
- std::string name; //0
- uint32_t eventId;
- uint32_t castTime;
- };
+struct EventItemInfo
+{
+ uint32_t id;
+ std::string name; //0
+ uint32_t eventId;
+ uint32_t castTime;
+};
- struct StatusEffectInfo
- {
- uint32_t id;
- std::string name; // 0
- bool lock_movement; // 7
- bool lock_actions; // 9
- bool lock_control; // 10
- bool transfiguration; // 11
- bool can_dispel; // 13
- bool is_permanent; // 15
- bool inflicted_by_actor; // 17
- bool is_fc_buff; // 21
- bool invisibility; // 22
- };
+struct StatusEffectInfo
+{
+ uint32_t id;
+ std::string name; // 0
+ bool lock_movement; // 7
+ bool lock_actions; // 9
+ bool lock_control; // 10
+ bool transfiguration; // 11
+ bool can_dispel; // 13
+ bool is_permanent; // 15
+ bool inflicted_by_actor; // 17
+ bool is_fc_buff; // 21
+ bool invisibility; // 22
+};
- class ExdData
- {
- public:
- ExdData();
- ~ExdData(void);
+class ExdData
+{
+public:
+ ExdData();
- bool init( const std::string& path );
+ ~ExdData( void );
- xiv::exd::Exd setupDatAccess( const std::string& name, xiv::exd::Language lang );
+ bool init( const std::string& path );
- template< class T >
- T getField( std::vector< xiv::exd::Field >& fields, uint32_t index )
- {
- return *boost::get< T >( &fields.at( index ) );
- }
+ xiv::exd::Exd setupDatAccess( const std::string& name, xiv::exd::Language lang );
- boost::shared_ptr m_data;
- boost::shared_ptr m_exd_data;
+ template< class T >
+ T getField( std::vector< xiv::exd::Field >& fields, uint32_t index )
+ {
+ return *boost::get< T >( &fields.at( index ) );
+ }
- xiv::exd::Exd m_questDat;
- xiv::exd::Exd m_openingDat;
- xiv::exd::Exd m_customTalkDat;
- xiv::exd::Exd m_aetheryteDat;
- xiv::exd::Exd m_levelDat;
- xiv::exd::Exd m_placeNameDat;
- xiv::exd::Exd m_itemsDat;
- xiv::exd::Exd m_classJobCatDat;
- xiv::exd::Exd m_raceDat;
- xiv::exd::Exd m_eventItemDat;
+ boost::shared_ptr< xiv::dat::GameData > m_data;
+ boost::shared_ptr< xiv::exd::ExdData > m_exd_data;
- std::map m_zoneInfoMap;
- std::map m_classJobInfoMap;
- std::map m_paramGrowthInfoMap;
- std::map m_EventActionInfoMap;
- std::map > m_actionInfoMap;
- std::map m_statusEffectInfoMap;
- std::map > m_aetheryteInfoMap;
- std::map m_tribeInfoMap;
+ xiv::exd::Exd m_questDat;
+ xiv::exd::Exd m_openingDat;
+ xiv::exd::Exd m_customTalkDat;
+ xiv::exd::Exd m_aetheryteDat;
+ xiv::exd::Exd m_levelDat;
+ xiv::exd::Exd m_placeNameDat;
+ xiv::exd::Exd m_itemsDat;
+ xiv::exd::Exd m_classJobCatDat;
+ xiv::exd::Exd m_raceDat;
+ xiv::exd::Exd m_eventItemDat;
- bool loadZoneInfo();
- bool loadClassJobInfo();
- bool loadParamGrowInfo();
- bool loadEventActionInfo();
- bool loadActionInfo();
- bool loadStatusEffectInfo();
- bool loadAetheryteInfo();
- bool loadTribeInfo();
+ std::map< uint32_t, ZoneInfo > m_zoneInfoMap;
+ std::map< uint8_t, ClassJobInfo > m_classJobInfoMap;
+ std::map< uint32_t, ParamGrowthInfo > m_paramGrowthInfoMap;
+ std::map< uint16_t, EventActionInfo > m_EventActionInfoMap;
+ std::map< uint16_t, boost::shared_ptr< ActionInfo > > m_actionInfoMap;
+ std::map< uint16_t, StatusEffectInfo > m_statusEffectInfoMap;
+ std::map< uint32_t, boost::shared_ptr< AetheryteInfo > > m_aetheryteInfoMap;
+ std::map< uint32_t, TribeInfo > m_tribeInfoMap;
- boost::shared_ptr< QuestInfo > getQuestInfo( uint32_t questId );
- boost::shared_ptr< OpeningInfo > getOpeningInfo( uint32_t openingId );
- boost::shared_ptr< CustomTalkInfo > getCustomTalkInfo( uint32_t customTalkId );
- boost::shared_ptr< AetheryteInfo > getAetheryteInfo( uint32_t aetheryteId );
- boost::shared_ptr< ActionInfo > getActionInfo( uint32_t actionId );
- boost::shared_ptr< PlaceNameInfo > getPlaceNameInfo( uint32_t placeNameId );
- boost::shared_ptr< ItemInfo > getItemInfo( uint32_t catalogId );
- boost::shared_ptr< RaceInfo > getRaceInfo( uint32_t raceId );
- boost::shared_ptr< EventItemInfo > getEventItemInfo( uint32_t eventItemId );
- boost::shared_ptr< LevelInfo > getLevelInfo( uint32_t levelId );
+ bool loadZoneInfo();
- const std::vector< boost::shared_ptr< AetheryteInfo > > getAetheryteInfoForZone( uint16_t zoneId );
+ bool loadClassJobInfo();
- };
+ bool loadParamGrowInfo();
- }
+ bool loadEventActionInfo();
+
+ bool loadActionInfo();
+
+ bool loadStatusEffectInfo();
+
+ bool loadAetheryteInfo();
+
+ bool loadTribeInfo();
+
+ boost::shared_ptr< QuestInfo > getQuestInfo( uint32_t questId );
+
+ boost::shared_ptr< OpeningInfo > getOpeningInfo( uint32_t openingId );
+
+ boost::shared_ptr< CustomTalkInfo > getCustomTalkInfo( uint32_t customTalkId );
+
+ boost::shared_ptr< AetheryteInfo > getAetheryteInfo( uint32_t aetheryteId );
+
+ boost::shared_ptr< ActionInfo > getActionInfo( uint32_t actionId );
+
+ boost::shared_ptr< PlaceNameInfo > getPlaceNameInfo( uint32_t placeNameId );
+
+ boost::shared_ptr< ItemInfo > getItemInfo( uint32_t catalogId );
+
+ boost::shared_ptr< RaceInfo > getRaceInfo( uint32_t raceId );
+
+ boost::shared_ptr< EventItemInfo > getEventItemInfo( uint32_t eventItemId );
+
+ boost::shared_ptr< LevelInfo > getLevelInfo( uint32_t levelId );
+
+ const std::vector< boost::shared_ptr< AetheryteInfo > > getAetheryteInfoForZone( uint16_t zoneId );
+
+};
+
+}
}
#endif
diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp
index b058341e..32559bbb 100644
--- a/src/common/Exd/ExdDataGenerated.cpp
+++ b/src/common/Exd/ExdDataGenerated.cpp
@@ -4,4406 +4,4417 @@
#include
-
Core::Data::Achievement::Achievement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AchievementDat.get_row( row_id );
- achievementCategory = exdData->getField< uint8_t >( row, 0 );
- name = exdData->getField< std::string >( row, 1 );
- description = exdData->getField< std::string >( row, 2 );
- points = exdData->getField< uint8_t >( row, 3 );
- title = exdData->getField< uint16_t >( row, 4 );
- item = exdData->getField< uint32_t >( row, 5 );
- icon = exdData->getField< uint16_t >( row, 6 );
- type = exdData->getField< uint8_t >( row, 8 );
- data.push_back( exdData->getField< int32_t >( row, 9 ) );
- data.push_back( exdData->getField< int32_t >( row, 10 ) );
- data.push_back( exdData->getField< int32_t >( row, 11 ) );
- data.push_back( exdData->getField< int32_t >( row, 12 ) );
- data.push_back( exdData->getField< int32_t >( row, 13 ) );
- data.push_back( exdData->getField< int32_t >( row, 14 ) );
- data.push_back( exdData->getField< int32_t >( row, 15 ) );
- data.push_back( exdData->getField< int32_t >( row, 16 ) );
- data.push_back( exdData->getField< int32_t >( row, 17 ) );
- order = exdData->getField< uint16_t >( row, 18 );
+ auto row = exdData->m_AchievementDat.get_row( row_id );
+ achievementCategory = exdData->getField< uint8_t >( row, 0 );
+ name = exdData->getField< std::string >( row, 1 );
+ description = exdData->getField< std::string >( row, 2 );
+ points = exdData->getField< uint8_t >( row, 3 );
+ title = exdData->getField< uint16_t >( row, 4 );
+ item = exdData->getField< uint32_t >( row, 5 );
+ icon = exdData->getField< uint16_t >( row, 6 );
+ type = exdData->getField< uint8_t >( row, 8 );
+ data.push_back( exdData->getField< int32_t >( row, 9 ) );
+ data.push_back( exdData->getField< int32_t >( row, 10 ) );
+ data.push_back( exdData->getField< int32_t >( row, 11 ) );
+ data.push_back( exdData->getField< int32_t >( row, 12 ) );
+ data.push_back( exdData->getField< int32_t >( row, 13 ) );
+ data.push_back( exdData->getField< int32_t >( row, 14 ) );
+ data.push_back( exdData->getField< int32_t >( row, 15 ) );
+ data.push_back( exdData->getField< int32_t >( row, 16 ) );
+ data.push_back( exdData->getField< int32_t >( row, 17 ) );
+ order = exdData->getField< uint16_t >( row, 18 );
}
Core::Data::AchievementCategory::AchievementCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AchievementCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- achievementKind = exdData->getField< uint8_t >( row, 1 );
+ auto row = exdData->m_AchievementCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ achievementKind = exdData->getField< uint8_t >( row, 1 );
}
Core::Data::AchievementKind::AchievementKind( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AchievementKindDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_AchievementKindDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::Action::Action( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ActionDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- icon = exdData->getField< uint16_t >( row, 2 );
- actionCategory = exdData->getField< uint8_t >( row, 3 );
- animationStart = exdData->getField< uint8_t >( row, 5 );
- vFX = exdData->getField< uint8_t >( row, 6 );
- animationEnd = exdData->getField< int16_t >( row, 7 );
- actionTimelineHit = exdData->getField< uint16_t >( row, 8 );
- classJob = exdData->getField< int8_t >( row, 10 );
- classJobLevel = exdData->getField< uint8_t >( row, 12 );
- isRoleAction = exdData->getField< bool >( row, 13 );
- range = exdData->getField< int8_t >( row, 14 );
- canTargetSelf = exdData->getField< bool >( row, 15 );
- canTargetParty = exdData->getField< bool >( row, 16 );
- canTargetFriendly = exdData->getField< bool >( row, 17 );
- canTargetHostile = exdData->getField< bool >( row, 18 );
- targetArea = exdData->getField< bool >( row, 21 );
- canTargetDead = exdData->getField< bool >( row, 25 );
- castType = exdData->getField< uint8_t >( row, 27 );
- effectRange = exdData->getField< uint8_t >( row, 28 );
- xAxisModifier = exdData->getField< uint8_t >( row, 29 );
- costType = exdData->getField< uint8_t >( row, 31 );
- cost = exdData->getField< uint16_t >( row, 32 );
- actionCombo = exdData->getField< uint16_t >( row, 35 );
- preservesCombo = exdData->getField< bool >( row, 36 );
- cast100ms = exdData->getField< uint16_t >( row, 37 );
- recast100ms = exdData->getField< uint16_t >( row, 38 );
- cooldownGroup = exdData->getField< uint8_t >( row, 39 );
- attackType = exdData->getField< int8_t >( row, 40 );
- aspect = exdData->getField< uint8_t >( row, 41 );
- actionProcStatus = exdData->getField< uint8_t >( row, 42 );
- statusGainSelf = exdData->getField< uint16_t >( row, 43 );
- actionData = exdData->getField< uint32_t >( row, 44 );
- classJobCategory = exdData->getField< uint8_t >( row, 45 );
- affectsPosition = exdData->getField< bool >( row, 48 );
- omen = exdData->getField< uint8_t >( row, 49 );
- isPvP = exdData->getField< bool >( row, 50 );
+ auto row = exdData->m_ActionDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ icon = exdData->getField< uint16_t >( row, 2 );
+ actionCategory = exdData->getField< uint8_t >( row, 3 );
+ animationStart = exdData->getField< uint8_t >( row, 5 );
+ vFX = exdData->getField< uint8_t >( row, 6 );
+ animationEnd = exdData->getField< int16_t >( row, 7 );
+ actionTimelineHit = exdData->getField< uint16_t >( row, 8 );
+ classJob = exdData->getField< int8_t >( row, 10 );
+ classJobLevel = exdData->getField< uint8_t >( row, 12 );
+ isRoleAction = exdData->getField< bool >( row, 13 );
+ range = exdData->getField< int8_t >( row, 14 );
+ canTargetSelf = exdData->getField< bool >( row, 15 );
+ canTargetParty = exdData->getField< bool >( row, 16 );
+ canTargetFriendly = exdData->getField< bool >( row, 17 );
+ canTargetHostile = exdData->getField< bool >( row, 18 );
+ targetArea = exdData->getField< bool >( row, 21 );
+ canTargetDead = exdData->getField< bool >( row, 25 );
+ castType = exdData->getField< uint8_t >( row, 27 );
+ effectRange = exdData->getField< uint8_t >( row, 28 );
+ xAxisModifier = exdData->getField< uint8_t >( row, 29 );
+ costType = exdData->getField< uint8_t >( row, 31 );
+ cost = exdData->getField< uint16_t >( row, 32 );
+ actionCombo = exdData->getField< uint16_t >( row, 35 );
+ preservesCombo = exdData->getField< bool >( row, 36 );
+ cast100ms = exdData->getField< uint16_t >( row, 37 );
+ recast100ms = exdData->getField< uint16_t >( row, 38 );
+ cooldownGroup = exdData->getField< uint8_t >( row, 39 );
+ attackType = exdData->getField< int8_t >( row, 40 );
+ aspect = exdData->getField< uint8_t >( row, 41 );
+ actionProcStatus = exdData->getField< uint8_t >( row, 42 );
+ statusGainSelf = exdData->getField< uint16_t >( row, 43 );
+ actionData = exdData->getField< uint32_t >( row, 44 );
+ classJobCategory = exdData->getField< uint8_t >( row, 45 );
+ affectsPosition = exdData->getField< bool >( row, 48 );
+ omen = exdData->getField< uint8_t >( row, 49 );
+ isPvP = exdData->getField< bool >( row, 50 );
}
Core::Data::ActionCastTimeline::ActionCastTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ActionCastTimelineDat.get_row( row_id );
- name = exdData->getField< uint16_t >( row, 0 );
- vFX = exdData->getField< uint16_t >( row, 1 );
+ auto row = exdData->m_ActionCastTimelineDat.get_row( row_id );
+ name = exdData->getField< uint16_t >( row, 0 );
+ vFX = exdData->getField< uint16_t >( row, 1 );
}
Core::Data::ActionCastVFX::ActionCastVFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ActionCastVFXDat.get_row( row_id );
- vFX = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_ActionCastVFXDat.get_row( row_id );
+ vFX = exdData->getField< uint16_t >( row, 0 );
}
Core::Data::ActionCategory::ActionCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ActionCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_ActionCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::ActionComboRoute::ActionComboRoute( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ActionComboRouteDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- action.push_back( exdData->getField< uint16_t >( row, 2 ) );
- action.push_back( exdData->getField< uint16_t >( row, 3 ) );
- action.push_back( exdData->getField< uint16_t >( row, 4 ) );
- action.push_back( exdData->getField< uint16_t >( row, 5 ) );
+ auto row = exdData->m_ActionComboRouteDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ action.push_back( exdData->getField< uint16_t >( row, 2 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 3 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 4 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 5 ) );
}
Core::Data::ActionIndirection::ActionIndirection( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ActionIndirectionDat.get_row( row_id );
- name = exdData->getField< int32_t >( row, 0 );
+ auto row = exdData->m_ActionIndirectionDat.get_row( row_id );
+ name = exdData->getField< int32_t >( row, 0 );
}
Core::Data::ActionParam::ActionParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ActionParamDat.get_row( row_id );
- name = exdData->getField< int16_t >( row, 0 );
+ auto row = exdData->m_ActionParamDat.get_row( row_id );
+ name = exdData->getField< int16_t >( row, 0 );
}
Core::Data::ActionProcStatus::ActionProcStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ActionProcStatusDat.get_row( row_id );
- status = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_ActionProcStatusDat.get_row( row_id );
+ status = exdData->getField< uint16_t >( row, 0 );
}
Core::Data::ActionTimeline::ActionTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ActionTimelineDat.get_row( row_id );
- key = exdData->getField< std::string >( row, 6 );
+ auto row = exdData->m_ActionTimelineDat.get_row( row_id );
+ key = exdData->getField< std::string >( row, 6 );
}
Core::Data::ActionTimelineReplace::ActionTimelineReplace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ActionTimelineReplaceDat.get_row( row_id );
- old = exdData->getField< uint16_t >( row, 0 );
- new1 = exdData->getField< uint16_t >( row, 1 );
+ auto row = exdData->m_ActionTimelineReplaceDat.get_row( row_id );
+ old = exdData->getField< uint16_t >( row, 0 );
+ new1 = exdData->getField< uint16_t >( row, 1 );
}
Core::Data::ActionTransient::ActionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ActionTransientDat.get_row( row_id );
- description = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_ActionTransientDat.get_row( row_id );
+ description = exdData->getField< std::string >( row, 0 );
}
Core::Data::Addon::Addon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AddonDat.get_row( row_id );
- text = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_AddonDat.get_row( row_id );
+ text = exdData->getField< std::string >( row, 0 );
}
Core::Data::Adventure::Adventure( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AdventureDat.get_row( row_id );
- level = exdData->getField< int32_t >( row, 0 );
- emote = exdData->getField< uint8_t >( row, 3 );
- minTime = exdData->getField< uint16_t >( row, 4 );
- maxTime = exdData->getField< uint16_t >( row, 5 );
- placeName = exdData->getField< int32_t >( row, 6 );
- iconList = exdData->getField< int32_t >( row, 7 );
- iconDiscovered = exdData->getField< int32_t >( row, 8 );
- name = exdData->getField< std::string >( row, 9 );
- impression = exdData->getField< std::string >( row, 10 );
- description = exdData->getField< std::string >( row, 11 );
- iconUndiscovered = exdData->getField< int32_t >( row, 12 );
- isInitial = exdData->getField< bool >( row, 13 );
+ auto row = exdData->m_AdventureDat.get_row( row_id );
+ level = exdData->getField< int32_t >( row, 0 );
+ emote = exdData->getField< uint8_t >( row, 3 );
+ minTime = exdData->getField< uint16_t >( row, 4 );
+ maxTime = exdData->getField< uint16_t >( row, 5 );
+ placeName = exdData->getField< int32_t >( row, 6 );
+ iconList = exdData->getField< int32_t >( row, 7 );
+ iconDiscovered = exdData->getField< int32_t >( row, 8 );
+ name = exdData->getField< std::string >( row, 9 );
+ impression = exdData->getField< std::string >( row, 10 );
+ description = exdData->getField< std::string >( row, 11 );
+ iconUndiscovered = exdData->getField< int32_t >( row, 12 );
+ isInitial = exdData->getField< bool >( row, 13 );
}
Core::Data::AdventureExPhase::AdventureExPhase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AdventureExPhaseDat.get_row( row_id );
- quest = exdData->getField< uint32_t >( row, 0 );
- adventureBegin = exdData->getField< uint32_t >( row, 1 );
- adventureEnd = exdData->getField< uint32_t >( row, 2 );
+ auto row = exdData->m_AdventureExPhaseDat.get_row( row_id );
+ quest = exdData->getField< uint32_t >( row, 0 );
+ adventureBegin = exdData->getField< uint32_t >( row, 1 );
+ adventureEnd = exdData->getField< uint32_t >( row, 2 );
}
Core::Data::AetherCurrent::AetherCurrent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AetherCurrentDat.get_row( row_id );
- quest = exdData->getField< uint32_t >( row, 0 );
+ auto row = exdData->m_AetherCurrentDat.get_row( row_id );
+ quest = exdData->getField< uint32_t >( row, 0 );
}
Core::Data::AetherCurrentCompFlgSet::AetherCurrentCompFlgSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AetherCurrentCompFlgSetDat.get_row( row_id );
- territory = exdData->getField< int32_t >( row, 0 );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 2 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 3 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 4 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 5 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 6 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 7 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 8 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 9 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 10 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 11 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 12 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 13 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 14 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 15 ) );
- aetherCurrent.push_back( exdData->getField< int32_t >( row, 16 ) );
+ auto row = exdData->m_AetherCurrentCompFlgSetDat.get_row( row_id );
+ territory = exdData->getField< int32_t >( row, 0 );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 2 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 3 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 4 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 5 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 6 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 7 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 8 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 9 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 10 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 11 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 12 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 13 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 14 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 15 ) );
+ aetherCurrent.push_back( exdData->getField< int32_t >( row, 16 ) );
}
Core::Data::AetherialWheel::AetherialWheel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AetherialWheelDat.get_row( row_id );
- itemUnprimed = exdData->getField< int32_t >( row, 0 );
- itemPrimed = exdData->getField< int32_t >( row, 1 );
- grade = exdData->getField< uint8_t >( row, 2 );
- hoursRequired = exdData->getField< uint8_t >( row, 3 );
+ auto row = exdData->m_AetherialWheelDat.get_row( row_id );
+ itemUnprimed = exdData->getField< int32_t >( row, 0 );
+ itemPrimed = exdData->getField< int32_t >( row, 1 );
+ grade = exdData->getField< uint8_t >( row, 2 );
+ hoursRequired = exdData->getField< uint8_t >( row, 3 );
}
Core::Data::Aetheryte::Aetheryte( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AetheryteDat.get_row( row_id );
- placeName = exdData->getField< uint16_t >( row, 8 );
- aethernetName = exdData->getField< uint16_t >( row, 9 );
- territory = exdData->getField< uint16_t >( row, 10 );
- level.push_back( exdData->getField< uint32_t >( row, 11 ) );
- level.push_back( exdData->getField< uint32_t >( row, 12 ) );
- level.push_back( exdData->getField< uint32_t >( row, 13 ) );
- level.push_back( exdData->getField< uint32_t >( row, 14 ) );
- isAetheryte = exdData->getField< bool >( row, 15 );
- aethernetGroup = exdData->getField< uint8_t >( row, 16 );
- map = exdData->getField< uint16_t >( row, 19 );
- aetherstreamX = exdData->getField< int16_t >( row, 20 );
- aetherstreamY = exdData->getField< int16_t >( row, 21 );
+ auto row = exdData->m_AetheryteDat.get_row( row_id );
+ placeName = exdData->getField< uint16_t >( row, 8 );
+ aethernetName = exdData->getField< uint16_t >( row, 9 );
+ territory = exdData->getField< uint16_t >( row, 10 );
+ level.push_back( exdData->getField< uint32_t >( row, 11 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 12 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 13 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 14 ) );
+ isAetheryte = exdData->getField< bool >( row, 15 );
+ aethernetGroup = exdData->getField< uint8_t >( row, 16 );
+ map = exdData->getField< uint16_t >( row, 19 );
+ aetherstreamX = exdData->getField< int16_t >( row, 20 );
+ aetherstreamY = exdData->getField< int16_t >( row, 21 );
}
Core::Data::AirshipExplorationLevel::AirshipExplorationLevel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AirshipExplorationLevelDat.get_row( row_id );
- expToNext = exdData->getField< uint32_t >( row, 1 );
+ auto row = exdData->m_AirshipExplorationLevelDat.get_row( row_id );
+ expToNext = exdData->getField< uint32_t >( row, 1 );
}
Core::Data::AirshipExplorationLog::AirshipExplorationLog( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AirshipExplorationLogDat.get_row( row_id );
- text = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_AirshipExplorationLogDat.get_row( row_id );
+ text = exdData->getField< std::string >( row, 0 );
}
-Core::Data::AirshipExplorationParamType::AirshipExplorationParamType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
+Core::Data::AirshipExplorationParamType::AirshipExplorationParamType( uint32_t row_id,
+ Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AirshipExplorationParamTypeDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_AirshipExplorationParamTypeDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::AirshipExplorationPart::AirshipExplorationPart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AirshipExplorationPartDat.get_row( row_id );
- rank = exdData->getField< uint8_t >( row, 1 );
- components = exdData->getField< uint8_t >( row, 2 );
- surveillance = exdData->getField< int16_t >( row, 3 );
- retrieval = exdData->getField< int16_t >( row, 4 );
- speed = exdData->getField< int16_t >( row, 5 );
- range = exdData->getField< int16_t >( row, 6 );
- favor = exdData->getField< int16_t >( row, 7 );
- repairMaterials = exdData->getField< uint8_t >( row, 9 );
+ auto row = exdData->m_AirshipExplorationPartDat.get_row( row_id );
+ rank = exdData->getField< uint8_t >( row, 1 );
+ components = exdData->getField< uint8_t >( row, 2 );
+ surveillance = exdData->getField< int16_t >( row, 3 );
+ retrieval = exdData->getField< int16_t >( row, 4 );
+ speed = exdData->getField< int16_t >( row, 5 );
+ range = exdData->getField< int16_t >( row, 6 );
+ favor = exdData->getField< int16_t >( row, 7 );
+ repairMaterials = exdData->getField< uint8_t >( row, 9 );
}
Core::Data::AirshipExplorationPoint::AirshipExplorationPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AirshipExplorationPointDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- nameShort = exdData->getField< std::string >( row, 1 );
- requiredLevel = exdData->getField< uint8_t >( row, 5 );
- requiredFuel = exdData->getField< uint16_t >( row, 6 );
- durationmin = exdData->getField< uint16_t >( row, 7 );
- requiredSurveillance = exdData->getField< uint8_t >( row, 10 );
- expReward = exdData->getField< uint32_t >( row, 13 );
+ auto row = exdData->m_AirshipExplorationPointDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ nameShort = exdData->getField< std::string >( row, 1 );
+ requiredLevel = exdData->getField< uint8_t >( row, 5 );
+ requiredFuel = exdData->getField< uint16_t >( row, 6 );
+ durationmin = exdData->getField< uint16_t >( row, 7 );
+ requiredSurveillance = exdData->getField< uint8_t >( row, 10 );
+ expReward = exdData->getField< uint32_t >( row, 13 );
}
Core::Data::AnimaWeapon5::AnimaWeapon5( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AnimaWeapon5Dat.get_row( row_id );
- item = exdData->getField< int32_t >( row, 0 );
- secondaryStatTotal = exdData->getField< uint8_t >( row, 2 );
- parameter.push_back( exdData->getField< uint8_t >( row, 3 ) );
- parameter.push_back( exdData->getField< uint8_t >( row, 4 ) );
- parameter.push_back( exdData->getField< uint8_t >( row, 5 ) );
- parameter.push_back( exdData->getField< uint8_t >( row, 6 ) );
- parameter.push_back( exdData->getField< uint8_t >( row, 7 ) );
+ auto row = exdData->m_AnimaWeapon5Dat.get_row( row_id );
+ item = exdData->getField< int32_t >( row, 0 );
+ secondaryStatTotal = exdData->getField< uint8_t >( row, 2 );
+ parameter.push_back( exdData->getField< uint8_t >( row, 3 ) );
+ parameter.push_back( exdData->getField< uint8_t >( row, 4 ) );
+ parameter.push_back( exdData->getField< uint8_t >( row, 5 ) );
+ parameter.push_back( exdData->getField< uint8_t >( row, 6 ) );
+ parameter.push_back( exdData->getField< uint8_t >( row, 7 ) );
}
Core::Data::AnimaWeapon5Param::AnimaWeapon5Param( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AnimaWeapon5ParamDat.get_row( row_id );
- baseParam = exdData->getField< uint8_t >( row, 0 );
- name = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_AnimaWeapon5ParamDat.get_row( row_id );
+ baseParam = exdData->getField< uint8_t >( row, 0 );
+ name = exdData->getField< std::string >( row, 1 );
}
Core::Data::AnimaWeapon5PatternGroup::AnimaWeapon5PatternGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AnimaWeapon5PatternGroupDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_AnimaWeapon5PatternGroupDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::AnimaWeapon5SpiritTalk::AnimaWeapon5SpiritTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AnimaWeapon5SpiritTalkDat.get_row( row_id );
- dialogue = exdData->getField< int32_t >( row, 0 );
+ auto row = exdData->m_AnimaWeapon5SpiritTalkDat.get_row( row_id );
+ dialogue = exdData->getField< int32_t >( row, 0 );
}
-Core::Data::AnimaWeapon5SpiritTalkParam::AnimaWeapon5SpiritTalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
+Core::Data::AnimaWeapon5SpiritTalkParam::AnimaWeapon5SpiritTalkParam( uint32_t row_id,
+ Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AnimaWeapon5SpiritTalkParamDat.get_row( row_id );
- prologue = exdData->getField< std::string >( row, 0 );
- epilogue = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_AnimaWeapon5SpiritTalkParamDat.get_row( row_id );
+ prologue = exdData->getField< std::string >( row, 0 );
+ epilogue = exdData->getField< std::string >( row, 1 );
}
Core::Data::AnimaWeapon5TradeItem::AnimaWeapon5TradeItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AnimaWeapon5TradeItemDat.get_row( row_id );
- crystalSand = exdData->getField< uint32_t >( row, 1 );
- qty = exdData->getField< uint8_t >( row, 2 );
- category = exdData->getField< uint8_t >( row, 27 );
+ auto row = exdData->m_AnimaWeapon5TradeItemDat.get_row( row_id );
+ crystalSand = exdData->getField< uint32_t >( row, 1 );
+ qty = exdData->getField< uint8_t >( row, 2 );
+ category = exdData->getField< uint8_t >( row, 27 );
}
Core::Data::AnimaWeaponFUITalk::AnimaWeaponFUITalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AnimaWeaponFUITalkDat.get_row( row_id );
- dialogue = exdData->getField< int32_t >( row, 0 );
+ auto row = exdData->m_AnimaWeaponFUITalkDat.get_row( row_id );
+ dialogue = exdData->getField< int32_t >( row, 0 );
}
Core::Data::AnimaWeaponFUITalkParam::AnimaWeaponFUITalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AnimaWeaponFUITalkParamDat.get_row( row_id );
- prologue = exdData->getField< std::string >( row, 0 );
- epilogue = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_AnimaWeaponFUITalkParamDat.get_row( row_id );
+ prologue = exdData->getField< std::string >( row, 0 );
+ epilogue = exdData->getField< std::string >( row, 1 );
}
Core::Data::AnimaWeaponIcon::AnimaWeaponIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AnimaWeaponIconDat.get_row( row_id );
- hyperconductive = exdData->getField< int32_t >( row, 0 );
- reborn = exdData->getField< int32_t >( row, 1 );
- sharpened = exdData->getField< int32_t >( row, 2 );
- zodiac = exdData->getField< int32_t >( row, 3 );
- zodiacLux = exdData->getField< int32_t >( row, 4 );
+ auto row = exdData->m_AnimaWeaponIconDat.get_row( row_id );
+ hyperconductive = exdData->getField< int32_t >( row, 0 );
+ reborn = exdData->getField< int32_t >( row, 1 );
+ sharpened = exdData->getField< int32_t >( row, 2 );
+ zodiac = exdData->getField< int32_t >( row, 3 );
+ zodiacLux = exdData->getField< int32_t >( row, 4 );
}
Core::Data::AnimaWeaponItem::AnimaWeaponItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AnimaWeaponItemDat.get_row( row_id );
- item.push_back( exdData->getField< uint32_t >( row, 0 ) );
- item.push_back( exdData->getField< uint32_t >( row, 1 ) );
- item.push_back( exdData->getField< uint32_t >( row, 2 ) );
- item.push_back( exdData->getField< uint32_t >( row, 3 ) );
- item.push_back( exdData->getField< uint32_t >( row, 4 ) );
- item.push_back( exdData->getField< uint32_t >( row, 5 ) );
- item.push_back( exdData->getField< uint32_t >( row, 6 ) );
- item.push_back( exdData->getField< uint32_t >( row, 7 ) );
- item.push_back( exdData->getField< uint32_t >( row, 8 ) );
- item.push_back( exdData->getField< uint32_t >( row, 9 ) );
- item.push_back( exdData->getField< uint32_t >( row, 10 ) );
- item.push_back( exdData->getField< uint32_t >( row, 11 ) );
- item.push_back( exdData->getField< uint32_t >( row, 12 ) );
- item.push_back( exdData->getField< uint32_t >( row, 13 ) );
+ auto row = exdData->m_AnimaWeaponItemDat.get_row( row_id );
+ item.push_back( exdData->getField< uint32_t >( row, 0 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 1 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 2 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 3 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 4 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 5 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 6 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 7 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 8 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 9 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 10 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 11 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 12 ) );
+ item.push_back( exdData->getField< uint32_t >( row, 13 ) );
}
Core::Data::AquariumFish::AquariumFish( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AquariumFishDat.get_row( row_id );
- aquariumWater = exdData->getField< uint8_t >( row, 0 );
- size = exdData->getField< uint8_t >( row, 1 );
- item = exdData->getField< uint32_t >( row, 2 );
+ auto row = exdData->m_AquariumFishDat.get_row( row_id );
+ aquariumWater = exdData->getField< uint8_t >( row, 0 );
+ size = exdData->getField< uint8_t >( row, 1 );
+ item = exdData->getField< uint32_t >( row, 2 );
}
Core::Data::AquariumWater::AquariumWater( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AquariumWaterDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_AquariumWaterDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 1 );
}
Core::Data::AttackType::AttackType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_AttackTypeDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_AttackTypeDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::Balloon::Balloon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BalloonDat.get_row( row_id );
- dialogue = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_BalloonDat.get_row( row_id );
+ dialogue = exdData->getField< std::string >( row, 1 );
}
Core::Data::BaseParam::BaseParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BaseParamDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 1 );
- description = exdData->getField< std::string >( row, 2 );
- oneHWpn = exdData->getField< uint8_t >( row, 4 );
- oH = exdData->getField< uint8_t >( row, 5 );
- head = exdData->getField< uint8_t >( row, 6 );
- chest = exdData->getField< uint8_t >( row, 7 );
- hands = exdData->getField< uint8_t >( row, 8 );
- waist = exdData->getField< uint8_t >( row, 9 );
- legs = exdData->getField< uint8_t >( row, 10 );
- feet = exdData->getField< uint8_t >( row, 11 );
- earring = exdData->getField< uint8_t >( row, 12 );
- necklace = exdData->getField< uint8_t >( row, 13 );
- bracelet = exdData->getField< uint8_t >( row, 14 );
- ring = exdData->getField< uint8_t >( row, 15 );
- twoHWpn = exdData->getField< uint8_t >( row, 16 );
- chestHead = exdData->getField< uint8_t >( row, 18 );
- chestHeadLegsFeet = exdData->getField< uint8_t >( row, 19 );
- legsFeet = exdData->getField< uint8_t >( row, 21 );
- headChestHandsLegsFeet = exdData->getField< uint8_t >( row, 22 );
- chestLegsGloves = exdData->getField< uint8_t >( row, 23 );
- chestLegsFeet = exdData->getField< uint8_t >( row, 24 );
+ auto row = exdData->m_BaseParamDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 1 );
+ description = exdData->getField< std::string >( row, 2 );
+ oneHWpn = exdData->getField< uint8_t >( row, 4 );
+ oH = exdData->getField< uint8_t >( row, 5 );
+ head = exdData->getField< uint8_t >( row, 6 );
+ chest = exdData->getField< uint8_t >( row, 7 );
+ hands = exdData->getField< uint8_t >( row, 8 );
+ waist = exdData->getField< uint8_t >( row, 9 );
+ legs = exdData->getField< uint8_t >( row, 10 );
+ feet = exdData->getField< uint8_t >( row, 11 );
+ earring = exdData->getField< uint8_t >( row, 12 );
+ necklace = exdData->getField< uint8_t >( row, 13 );
+ bracelet = exdData->getField< uint8_t >( row, 14 );
+ ring = exdData->getField< uint8_t >( row, 15 );
+ twoHWpn = exdData->getField< uint8_t >( row, 16 );
+ chestHead = exdData->getField< uint8_t >( row, 18 );
+ chestHeadLegsFeet = exdData->getField< uint8_t >( row, 19 );
+ legsFeet = exdData->getField< uint8_t >( row, 21 );
+ headChestHandsLegsFeet = exdData->getField< uint8_t >( row, 22 );
+ chestLegsGloves = exdData->getField< uint8_t >( row, 23 );
+ chestLegsFeet = exdData->getField< uint8_t >( row, 24 );
}
Core::Data::BattleLeve::BattleLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BattleLeveDat.get_row( row_id );
- enemyLevel.push_back( exdData->getField< uint16_t >( row, 16 ) );
- enemyLevel.push_back( exdData->getField< uint16_t >( row, 17 ) );
- enemyLevel.push_back( exdData->getField< uint16_t >( row, 18 ) );
- enemyLevel.push_back( exdData->getField< uint16_t >( row, 19 ) );
- enemyLevel.push_back( exdData->getField< uint16_t >( row, 20 ) );
- enemyLevel.push_back( exdData->getField< uint16_t >( row, 21 ) );
- enemyLevel.push_back( exdData->getField< uint16_t >( row, 22 ) );
- enemyLevel.push_back( exdData->getField< uint16_t >( row, 23 ) );
- bNpcName.push_back( exdData->getField< uint32_t >( row, 24 ) );
- bNpcName.push_back( exdData->getField< uint32_t >( row, 25 ) );
- bNpcName.push_back( exdData->getField< uint32_t >( row, 26 ) );
- bNpcName.push_back( exdData->getField< uint32_t >( row, 27 ) );
- bNpcName.push_back( exdData->getField< uint32_t >( row, 28 ) );
- bNpcName.push_back( exdData->getField< uint32_t >( row, 29 ) );
- bNpcName.push_back( exdData->getField< uint32_t >( row, 30 ) );
- bNpcName.push_back( exdData->getField< uint32_t >( row, 31 ) );
- itemsInvolved.push_back( exdData->getField< int32_t >( row, 32 ) );
- itemsInvolved.push_back( exdData->getField< int32_t >( row, 33 ) );
- itemsInvolved.push_back( exdData->getField< int32_t >( row, 34 ) );
- itemsInvolved.push_back( exdData->getField< int32_t >( row, 35 ) );
- itemsInvolved.push_back( exdData->getField< int32_t >( row, 36 ) );
- itemsInvolved.push_back( exdData->getField< int32_t >( row, 37 ) );
- itemsInvolved.push_back( exdData->getField< int32_t >( row, 38 ) );
- itemsInvolved.push_back( exdData->getField< int32_t >( row, 39 ) );
- itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 40 ) );
- itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 41 ) );
- itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 42 ) );
- itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 43 ) );
- itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 44 ) );
- itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 45 ) );
- itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 46 ) );
- itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 47 ) );
- itemDropRate.push_back( exdData->getField< uint8_t >( row, 48 ) );
- itemDropRate.push_back( exdData->getField< uint8_t >( row, 49 ) );
- itemDropRate.push_back( exdData->getField< uint8_t >( row, 50 ) );
- itemDropRate.push_back( exdData->getField< uint8_t >( row, 51 ) );
- itemDropRate.push_back( exdData->getField< uint8_t >( row, 52 ) );
- itemDropRate.push_back( exdData->getField< uint8_t >( row, 53 ) );
- itemDropRate.push_back( exdData->getField< uint8_t >( row, 54 ) );
- itemDropRate.push_back( exdData->getField< uint8_t >( row, 55 ) );
+ auto row = exdData->m_BattleLeveDat.get_row( row_id );
+ enemyLevel.push_back( exdData->getField< uint16_t >( row, 16 ) );
+ enemyLevel.push_back( exdData->getField< uint16_t >( row, 17 ) );
+ enemyLevel.push_back( exdData->getField< uint16_t >( row, 18 ) );
+ enemyLevel.push_back( exdData->getField< uint16_t >( row, 19 ) );
+ enemyLevel.push_back( exdData->getField< uint16_t >( row, 20 ) );
+ enemyLevel.push_back( exdData->getField< uint16_t >( row, 21 ) );
+ enemyLevel.push_back( exdData->getField< uint16_t >( row, 22 ) );
+ enemyLevel.push_back( exdData->getField< uint16_t >( row, 23 ) );
+ bNpcName.push_back( exdData->getField< uint32_t >( row, 24 ) );
+ bNpcName.push_back( exdData->getField< uint32_t >( row, 25 ) );
+ bNpcName.push_back( exdData->getField< uint32_t >( row, 26 ) );
+ bNpcName.push_back( exdData->getField< uint32_t >( row, 27 ) );
+ bNpcName.push_back( exdData->getField< uint32_t >( row, 28 ) );
+ bNpcName.push_back( exdData->getField< uint32_t >( row, 29 ) );
+ bNpcName.push_back( exdData->getField< uint32_t >( row, 30 ) );
+ bNpcName.push_back( exdData->getField< uint32_t >( row, 31 ) );
+ itemsInvolved.push_back( exdData->getField< int32_t >( row, 32 ) );
+ itemsInvolved.push_back( exdData->getField< int32_t >( row, 33 ) );
+ itemsInvolved.push_back( exdData->getField< int32_t >( row, 34 ) );
+ itemsInvolved.push_back( exdData->getField< int32_t >( row, 35 ) );
+ itemsInvolved.push_back( exdData->getField< int32_t >( row, 36 ) );
+ itemsInvolved.push_back( exdData->getField< int32_t >( row, 37 ) );
+ itemsInvolved.push_back( exdData->getField< int32_t >( row, 38 ) );
+ itemsInvolved.push_back( exdData->getField< int32_t >( row, 39 ) );
+ itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 40 ) );
+ itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 41 ) );
+ itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 42 ) );
+ itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 43 ) );
+ itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 44 ) );
+ itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 45 ) );
+ itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 46 ) );
+ itemsInvolvedQty.push_back( exdData->getField< uint8_t >( row, 47 ) );
+ itemDropRate.push_back( exdData->getField< uint8_t >( row, 48 ) );
+ itemDropRate.push_back( exdData->getField< uint8_t >( row, 49 ) );
+ itemDropRate.push_back( exdData->getField< uint8_t >( row, 50 ) );
+ itemDropRate.push_back( exdData->getField< uint8_t >( row, 51 ) );
+ itemDropRate.push_back( exdData->getField< uint8_t >( row, 52 ) );
+ itemDropRate.push_back( exdData->getField< uint8_t >( row, 53 ) );
+ itemDropRate.push_back( exdData->getField< uint8_t >( row, 54 ) );
+ itemDropRate.push_back( exdData->getField< uint8_t >( row, 55 ) );
}
Core::Data::BeastRankBonus::BeastRankBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BeastRankBonusDat.get_row( row_id );
- item = exdData->getField< uint32_t >( row, 8 );
- itemQuantity.push_back( exdData->getField< uint8_t >( row, 9 ) );
- itemQuantity.push_back( exdData->getField< uint8_t >( row, 10 ) );
- itemQuantity.push_back( exdData->getField< uint8_t >( row, 11 ) );
- itemQuantity.push_back( exdData->getField< uint8_t >( row, 12 ) );
- itemQuantity.push_back( exdData->getField< uint8_t >( row, 13 ) );
- itemQuantity.push_back( exdData->getField< uint8_t >( row, 14 ) );
- itemQuantity.push_back( exdData->getField< uint8_t >( row, 15 ) );
- itemQuantity.push_back( exdData->getField< uint8_t >( row, 16 ) );
+ auto row = exdData->m_BeastRankBonusDat.get_row( row_id );
+ item = exdData->getField< uint32_t >( row, 8 );
+ itemQuantity.push_back( exdData->getField< uint8_t >( row, 9 ) );
+ itemQuantity.push_back( exdData->getField< uint8_t >( row, 10 ) );
+ itemQuantity.push_back( exdData->getField< uint8_t >( row, 11 ) );
+ itemQuantity.push_back( exdData->getField< uint8_t >( row, 12 ) );
+ itemQuantity.push_back( exdData->getField< uint8_t >( row, 13 ) );
+ itemQuantity.push_back( exdData->getField< uint8_t >( row, 14 ) );
+ itemQuantity.push_back( exdData->getField< uint8_t >( row, 15 ) );
+ itemQuantity.push_back( exdData->getField< uint8_t >( row, 16 ) );
}
Core::Data::BeastReputationRank::BeastReputationRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BeastReputationRankDat.get_row( row_id );
- requiredReputation = exdData->getField< uint16_t >( row, 0 );
- name = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_BeastReputationRankDat.get_row( row_id );
+ requiredReputation = exdData->getField< uint16_t >( row, 0 );
+ name = exdData->getField< std::string >( row, 1 );
}
Core::Data::BeastTribe::BeastTribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BeastTribeDat.get_row( row_id );
- minLevel = exdData->getField< uint8_t >( row, 0 );
- maxLevel = exdData->getField< uint8_t >( row, 1 );
- beastRankBonus = exdData->getField< uint8_t >( row, 2 );
- iconReputation = exdData->getField< uint32_t >( row, 3 );
- icon = exdData->getField< uint32_t >( row, 4 );
- maxRank = exdData->getField< uint8_t >( row, 5 );
- alliedBeastTribeQuest = exdData->getField< uint32_t >( row, 6 );
- expansion = exdData->getField< uint8_t >( row, 7 );
- currencyItem = exdData->getField< uint32_t >( row, 8 );
- displayOrder = exdData->getField< uint8_t >( row, 9 );
- name = exdData->getField< std::string >( row, 10 );
- nameRelation = exdData->getField< std::string >( row, 18 );
+ auto row = exdData->m_BeastTribeDat.get_row( row_id );
+ minLevel = exdData->getField< uint8_t >( row, 0 );
+ maxLevel = exdData->getField< uint8_t >( row, 1 );
+ beastRankBonus = exdData->getField< uint8_t >( row, 2 );
+ iconReputation = exdData->getField< uint32_t >( row, 3 );
+ icon = exdData->getField< uint32_t >( row, 4 );
+ maxRank = exdData->getField< uint8_t >( row, 5 );
+ alliedBeastTribeQuest = exdData->getField< uint32_t >( row, 6 );
+ expansion = exdData->getField< uint8_t >( row, 7 );
+ currencyItem = exdData->getField< uint32_t >( row, 8 );
+ displayOrder = exdData->getField< uint8_t >( row, 9 );
+ name = exdData->getField< std::string >( row, 10 );
+ nameRelation = exdData->getField< std::string >( row, 18 );
}
Core::Data::Behavior::Behavior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BehaviorDat.get_row( row_id );
- balloon = exdData->getField< uint16_t >( row, 6 );
+ auto row = exdData->m_BehaviorDat.get_row( row_id );
+ balloon = exdData->getField< uint16_t >( row, 6 );
}
Core::Data::BGM::BGM( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BGMDat.get_row( row_id );
- file = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_BGMDat.get_row( row_id );
+ file = exdData->getField< std::string >( row, 0 );
}
Core::Data::BNpcAnnounceIcon::BNpcAnnounceIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BNpcAnnounceIconDat.get_row( row_id );
- icon = exdData->getField< uint32_t >( row, 0 );
+ auto row = exdData->m_BNpcAnnounceIconDat.get_row( row_id );
+ icon = exdData->getField< uint32_t >( row, 0 );
}
Core::Data::BNpcBase::BNpcBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BNpcBaseDat.get_row( row_id );
- scale = exdData->getField< float >( row, 4 );
- modelChara = exdData->getField< uint16_t >( row, 5 );
- bNpcCustomize = exdData->getField< uint16_t >( row, 6 );
- npcEquip = exdData->getField< uint16_t >( row, 7 );
- arrayEventHandler = exdData->getField< int32_t >( row, 11 );
+ auto row = exdData->m_BNpcBaseDat.get_row( row_id );
+ scale = exdData->getField< float >( row, 4 );
+ modelChara = exdData->getField< uint16_t >( row, 5 );
+ bNpcCustomize = exdData->getField< uint16_t >( row, 6 );
+ npcEquip = exdData->getField< uint16_t >( row, 7 );
+ arrayEventHandler = exdData->getField< int32_t >( row, 11 );
}
Core::Data::BNpcCustomize::BNpcCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BNpcCustomizeDat.get_row( row_id );
- race = exdData->getField< uint8_t >( row, 0 );
- gender = exdData->getField< uint8_t >( row, 1 );
- bodyType = exdData->getField< uint8_t >( row, 2 );
- height = exdData->getField< uint8_t >( row, 3 );
- tribe = exdData->getField< uint8_t >( row, 4 );
- face = exdData->getField< uint8_t >( row, 5 );
- hairStyle = exdData->getField< uint8_t >( row, 6 );
- hairHighlight = exdData->getField< uint8_t >( row, 7 );
- skinColor = exdData->getField< uint8_t >( row, 8 );
- eyeHeterochromia = exdData->getField< uint8_t >( row, 9 );
- hairColor = exdData->getField< uint8_t >( row, 10 );
- hairHighlightColor = exdData->getField< uint8_t >( row, 11 );
- facialFeature = exdData->getField< uint8_t >( row, 12 );
- facialFeatureColor = exdData->getField< uint8_t >( row, 13 );
- eyebrows = exdData->getField< uint8_t >( row, 14 );
- eyeColor = exdData->getField< uint8_t >( row, 15 );
- eyeShape = exdData->getField< uint8_t >( row, 16 );
- nose = exdData->getField< uint8_t >( row, 17 );
- jaw = exdData->getField< uint8_t >( row, 18 );
- mouth = exdData->getField< uint8_t >( row, 19 );
- lipColor = exdData->getField< uint8_t >( row, 20 );
- bustOrTone1 = exdData->getField< uint8_t >( row, 21 );
- extraFeature1 = exdData->getField< uint8_t >( row, 22 );
- extraFeature2OrBust = exdData->getField< uint8_t >( row, 23 );
- facePaint = exdData->getField< uint8_t >( row, 24 );
- facePaintColor = exdData->getField< uint8_t >( row, 25 );
+ auto row = exdData->m_BNpcCustomizeDat.get_row( row_id );
+ race = exdData->getField< uint8_t >( row, 0 );
+ gender = exdData->getField< uint8_t >( row, 1 );
+ bodyType = exdData->getField< uint8_t >( row, 2 );
+ height = exdData->getField< uint8_t >( row, 3 );
+ tribe = exdData->getField< uint8_t >( row, 4 );
+ face = exdData->getField< uint8_t >( row, 5 );
+ hairStyle = exdData->getField< uint8_t >( row, 6 );
+ hairHighlight = exdData->getField< uint8_t >( row, 7 );
+ skinColor = exdData->getField< uint8_t >( row, 8 );
+ eyeHeterochromia = exdData->getField< uint8_t >( row, 9 );
+ hairColor = exdData->getField< uint8_t >( row, 10 );
+ hairHighlightColor = exdData->getField< uint8_t >( row, 11 );
+ facialFeature = exdData->getField< uint8_t >( row, 12 );
+ facialFeatureColor = exdData->getField< uint8_t >( row, 13 );
+ eyebrows = exdData->getField< uint8_t >( row, 14 );
+ eyeColor = exdData->getField< uint8_t >( row, 15 );
+ eyeShape = exdData->getField< uint8_t >( row, 16 );
+ nose = exdData->getField< uint8_t >( row, 17 );
+ jaw = exdData->getField< uint8_t >( row, 18 );
+ mouth = exdData->getField< uint8_t >( row, 19 );
+ lipColor = exdData->getField< uint8_t >( row, 20 );
+ bustOrTone1 = exdData->getField< uint8_t >( row, 21 );
+ extraFeature1 = exdData->getField< uint8_t >( row, 22 );
+ extraFeature2OrBust = exdData->getField< uint8_t >( row, 23 );
+ facePaint = exdData->getField< uint8_t >( row, 24 );
+ facePaintColor = exdData->getField< uint8_t >( row, 25 );
}
Core::Data::BNpcName::BNpcName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BNpcNameDat.get_row( row_id );
- singular = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
+ auto row = exdData->m_BNpcNameDat.get_row( row_id );
+ singular = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
}
Core::Data::Buddy::Buddy( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BuddyDat.get_row( row_id );
- questRequirement2 = exdData->getField< int32_t >( row, 1 );
- questRequirement1 = exdData->getField< int32_t >( row, 2 );
- soundEffect4 = exdData->getField< std::string >( row, 4 );
- soundEffect3 = exdData->getField< std::string >( row, 5 );
- soundEffect2 = exdData->getField< std::string >( row, 6 );
- soundEffect1 = exdData->getField< std::string >( row, 7 );
+ auto row = exdData->m_BuddyDat.get_row( row_id );
+ questRequirement2 = exdData->getField< int32_t >( row, 1 );
+ questRequirement1 = exdData->getField< int32_t >( row, 2 );
+ soundEffect4 = exdData->getField< std::string >( row, 4 );
+ soundEffect3 = exdData->getField< std::string >( row, 5 );
+ soundEffect2 = exdData->getField< std::string >( row, 6 );
+ soundEffect1 = exdData->getField< std::string >( row, 7 );
}
Core::Data::BuddyAction::BuddyAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BuddyActionDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
- icon = exdData->getField< int32_t >( row, 2 );
- iconStatus = exdData->getField< int32_t >( row, 3 );
+ auto row = exdData->m_BuddyActionDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
+ icon = exdData->getField< int32_t >( row, 2 );
+ iconStatus = exdData->getField< int32_t >( row, 3 );
}
Core::Data::BuddyEquip::BuddyEquip( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BuddyEquipDat.get_row( row_id );
- singular = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
- name = exdData->getField< std::string >( row, 8 );
- modelTop = exdData->getField< int32_t >( row, 9 );
- modelBody = exdData->getField< int32_t >( row, 10 );
- modelLegs = exdData->getField< int32_t >( row, 11 );
- grandCompany = exdData->getField< uint8_t >( row, 12 );
- iconHead = exdData->getField< uint16_t >( row, 13 );
- iconBody = exdData->getField< uint16_t >( row, 14 );
- iconLegs = exdData->getField< uint16_t >( row, 15 );
+ auto row = exdData->m_BuddyEquipDat.get_row( row_id );
+ singular = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
+ name = exdData->getField< std::string >( row, 8 );
+ modelTop = exdData->getField< int32_t >( row, 9 );
+ modelBody = exdData->getField< int32_t >( row, 10 );
+ modelLegs = exdData->getField< int32_t >( row, 11 );
+ grandCompany = exdData->getField< uint8_t >( row, 12 );
+ iconHead = exdData->getField< uint16_t >( row, 13 );
+ iconBody = exdData->getField< uint16_t >( row, 14 );
+ iconLegs = exdData->getField< uint16_t >( row, 15 );
}
Core::Data::BuddyItem::BuddyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BuddyItemDat.get_row( row_id );
- name = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_BuddyItemDat.get_row( row_id );
+ name = exdData->getField< uint16_t >( row, 0 );
}
Core::Data::BuddyRank::BuddyRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BuddyRankDat.get_row( row_id );
- expRequired = exdData->getField< uint32_t >( row, 0 );
+ auto row = exdData->m_BuddyRankDat.get_row( row_id );
+ expRequired = exdData->getField< uint32_t >( row, 0 );
}
Core::Data::BuddySkill::BuddySkill( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_BuddySkillDat.get_row( row_id );
- buddyLevel = exdData->getField< uint8_t >( row, 0 );
- isActive = exdData->getField< bool >( row, 1 );
- defender = exdData->getField< uint16_t >( row, 2 );
- attacker = exdData->getField< uint16_t >( row, 3 );
- healer = exdData->getField< uint16_t >( row, 4 );
+ auto row = exdData->m_BuddySkillDat.get_row( row_id );
+ buddyLevel = exdData->getField< uint8_t >( row, 0 );
+ isActive = exdData->getField< bool >( row, 1 );
+ defender = exdData->getField< uint16_t >( row, 2 );
+ attacker = exdData->getField< uint16_t >( row, 3 );
+ healer = exdData->getField< uint16_t >( row, 4 );
}
Core::Data::Cabinet::Cabinet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CabinetDat.get_row( row_id );
- item = exdData->getField< int32_t >( row, 0 );
- order = exdData->getField< uint16_t >( row, 1 );
- category = exdData->getField< uint8_t >( row, 2 );
+ auto row = exdData->m_CabinetDat.get_row( row_id );
+ item = exdData->getField< int32_t >( row, 0 );
+ order = exdData->getField< uint16_t >( row, 1 );
+ category = exdData->getField< uint8_t >( row, 2 );
}
Core::Data::CabinetCategory::CabinetCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CabinetCategoryDat.get_row( row_id );
- menuOrder = exdData->getField< uint8_t >( row, 0 );
- icon = exdData->getField< int32_t >( row, 1 );
- category = exdData->getField< int32_t >( row, 2 );
+ auto row = exdData->m_CabinetCategoryDat.get_row( row_id );
+ menuOrder = exdData->getField< uint8_t >( row, 0 );
+ icon = exdData->getField< int32_t >( row, 1 );
+ category = exdData->getField< int32_t >( row, 2 );
}
Core::Data::Calendar::Calendar( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CalendarDat.get_row( row_id );
- month.push_back( exdData->getField< uint8_t >( row, 0 ) );
- month.push_back( exdData->getField< uint8_t >( row, 1 ) );
- month.push_back( exdData->getField< uint8_t >( row, 2 ) );
- month.push_back( exdData->getField< uint8_t >( row, 3 ) );
- month.push_back( exdData->getField< uint8_t >( row, 4 ) );
- month.push_back( exdData->getField< uint8_t >( row, 5 ) );
- month.push_back( exdData->getField< uint8_t >( row, 6 ) );
- month.push_back( exdData->getField< uint8_t >( row, 7 ) );
- month.push_back( exdData->getField< uint8_t >( row, 8 ) );
- month.push_back( exdData->getField< uint8_t >( row, 9 ) );
- month.push_back( exdData->getField< uint8_t >( row, 10 ) );
- month.push_back( exdData->getField< uint8_t >( row, 11 ) );
- month.push_back( exdData->getField< uint8_t >( row, 12 ) );
- month.push_back( exdData->getField< uint8_t >( row, 13 ) );
- month.push_back( exdData->getField< uint8_t >( row, 14 ) );
- month.push_back( exdData->getField< uint8_t >( row, 15 ) );
- month.push_back( exdData->getField< uint8_t >( row, 16 ) );
- month.push_back( exdData->getField< uint8_t >( row, 17 ) );
- month.push_back( exdData->getField< uint8_t >( row, 18 ) );
- month.push_back( exdData->getField< uint8_t >( row, 19 ) );
- month.push_back( exdData->getField< uint8_t >( row, 20 ) );
- month.push_back( exdData->getField< uint8_t >( row, 21 ) );
- month.push_back( exdData->getField< uint8_t >( row, 22 ) );
- month.push_back( exdData->getField< uint8_t >( row, 23 ) );
- month.push_back( exdData->getField< uint8_t >( row, 24 ) );
- month.push_back( exdData->getField< uint8_t >( row, 25 ) );
- month.push_back( exdData->getField< uint8_t >( row, 26 ) );
- month.push_back( exdData->getField< uint8_t >( row, 27 ) );
- month.push_back( exdData->getField< uint8_t >( row, 28 ) );
- month.push_back( exdData->getField< uint8_t >( row, 29 ) );
- month.push_back( exdData->getField< uint8_t >( row, 30 ) );
- month.push_back( exdData->getField< uint8_t >( row, 31 ) );
- day.push_back( exdData->getField< uint8_t >( row, 32 ) );
- day.push_back( exdData->getField< uint8_t >( row, 33 ) );
- day.push_back( exdData->getField< uint8_t >( row, 34 ) );
- day.push_back( exdData->getField< uint8_t >( row, 35 ) );
- day.push_back( exdData->getField< uint8_t >( row, 36 ) );
- day.push_back( exdData->getField< uint8_t >( row, 37 ) );
- day.push_back( exdData->getField< uint8_t >( row, 38 ) );
- day.push_back( exdData->getField< uint8_t >( row, 39 ) );
- day.push_back( exdData->getField< uint8_t >( row, 40 ) );
- day.push_back( exdData->getField< uint8_t >( row, 41 ) );
- day.push_back( exdData->getField< uint8_t >( row, 42 ) );
- day.push_back( exdData->getField< uint8_t >( row, 43 ) );
- day.push_back( exdData->getField< uint8_t >( row, 44 ) );
- day.push_back( exdData->getField< uint8_t >( row, 45 ) );
- day.push_back( exdData->getField< uint8_t >( row, 46 ) );
- day.push_back( exdData->getField< uint8_t >( row, 47 ) );
- day.push_back( exdData->getField< uint8_t >( row, 48 ) );
- day.push_back( exdData->getField< uint8_t >( row, 49 ) );
- day.push_back( exdData->getField< uint8_t >( row, 50 ) );
- day.push_back( exdData->getField< uint8_t >( row, 51 ) );
- day.push_back( exdData->getField< uint8_t >( row, 52 ) );
- day.push_back( exdData->getField< uint8_t >( row, 53 ) );
- day.push_back( exdData->getField< uint8_t >( row, 54 ) );
- day.push_back( exdData->getField< uint8_t >( row, 55 ) );
- day.push_back( exdData->getField< uint8_t >( row, 56 ) );
- day.push_back( exdData->getField< uint8_t >( row, 57 ) );
- day.push_back( exdData->getField< uint8_t >( row, 58 ) );
- day.push_back( exdData->getField< uint8_t >( row, 59 ) );
- day.push_back( exdData->getField< uint8_t >( row, 60 ) );
- day.push_back( exdData->getField< uint8_t >( row, 61 ) );
- day.push_back( exdData->getField< uint8_t >( row, 62 ) );
- day.push_back( exdData->getField< uint8_t >( row, 63 ) );
+ auto row = exdData->m_CalendarDat.get_row( row_id );
+ month.push_back( exdData->getField< uint8_t >( row, 0 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 1 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 2 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 3 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 4 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 5 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 6 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 7 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 8 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 9 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 10 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 11 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 12 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 13 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 14 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 15 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 16 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 17 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 18 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 19 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 20 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 21 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 22 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 23 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 24 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 25 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 26 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 27 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 28 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 29 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 30 ) );
+ month.push_back( exdData->getField< uint8_t >( row, 31 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 32 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 33 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 34 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 35 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 36 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 37 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 38 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 39 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 40 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 41 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 42 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 43 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 44 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 45 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 46 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 47 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 48 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 49 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 50 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 51 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 52 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 53 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 54 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 55 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 56 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 57 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 58 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 59 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 60 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 61 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 62 ) );
+ day.push_back( exdData->getField< uint8_t >( row, 63 ) );
}
Core::Data::CharaMakeCustomize::CharaMakeCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CharaMakeCustomizeDat.get_row( row_id );
- icon = exdData->getField< uint32_t >( row, 1 );
- data = exdData->getField< uint16_t >( row, 2 );
- isPurchasable = exdData->getField< bool >( row, 3 );
+ auto row = exdData->m_CharaMakeCustomizeDat.get_row( row_id );
+ icon = exdData->getField< uint32_t >( row, 1 );
+ data = exdData->getField< uint16_t >( row, 2 );
+ isPurchasable = exdData->getField< bool >( row, 3 );
}
Core::Data::CharaMakeType::CharaMakeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CharaMakeTypeDat.get_row( row_id );
- race = exdData->getField< int32_t >( row, 0 );
- tribe = exdData->getField< int32_t >( row, 1 );
- gender = exdData->getField< int8_t >( row, 2 );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3291 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3292 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3293 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3294 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3295 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3296 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3297 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3298 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3299 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3300 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3301 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3302 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3303 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3304 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3305 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3306 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3307 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3308 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3309 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3310 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3311 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3312 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3313 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3314 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3315 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3316 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3317 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3318 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3319 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3320 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3321 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3322 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3323 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3324 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3325 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3326 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3327 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3328 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3329 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3330 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3331 ) );
- facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3332 ) );
+ auto row = exdData->m_CharaMakeTypeDat.get_row( row_id );
+ race = exdData->getField< int32_t >( row, 0 );
+ tribe = exdData->getField< int32_t >( row, 1 );
+ gender = exdData->getField< int8_t >( row, 2 );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3291 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3292 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3293 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3294 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3295 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3296 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3297 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3298 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3299 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3300 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3301 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3302 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3303 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3304 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3305 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3306 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3307 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3308 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3309 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3310 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3311 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3312 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3313 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3314 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3315 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3316 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3317 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3318 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3319 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3320 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3321 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3322 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3323 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3324 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3325 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3326 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3327 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3328 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3329 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3330 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3331 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3332 ) );
}
Core::Data::ChocoboRace::ChocoboRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ChocoboRaceDat.get_row( row_id );
- chocoboRaceRank = exdData->getField< uint8_t >( row, 0 );
- chocoboRaceTerritory = exdData->getField< uint8_t >( row, 1 );
+ auto row = exdData->m_ChocoboRaceDat.get_row( row_id );
+ chocoboRaceRank = exdData->getField< uint8_t >( row, 0 );
+ chocoboRaceTerritory = exdData->getField< uint8_t >( row, 1 );
}
Core::Data::ChocoboRaceAbility::ChocoboRaceAbility( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ChocoboRaceAbilityDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
- icon = exdData->getField< uint32_t >( row, 2 );
- chocoboRaceAbilityType = exdData->getField< int8_t >( row, 3 );
- value = exdData->getField< uint8_t >( row, 4 );
+ auto row = exdData->m_ChocoboRaceAbilityDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
+ icon = exdData->getField< uint32_t >( row, 2 );
+ chocoboRaceAbilityType = exdData->getField< int8_t >( row, 3 );
+ value = exdData->getField< uint8_t >( row, 4 );
}
Core::Data::ChocoboRaceAbilityType::ChocoboRaceAbilityType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ChocoboRaceAbilityTypeDat.get_row( row_id );
- isActive = exdData->getField< bool >( row, 0 );
+ auto row = exdData->m_ChocoboRaceAbilityTypeDat.get_row( row_id );
+ isActive = exdData->getField< bool >( row, 0 );
}
Core::Data::ChocoboRaceItem::ChocoboRaceItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ChocoboRaceItemDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
- icon = exdData->getField< uint32_t >( row, 2 );
+ auto row = exdData->m_ChocoboRaceItemDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
+ icon = exdData->getField< uint32_t >( row, 2 );
}
Core::Data::ChocoboRaceRank::ChocoboRaceRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ChocoboRaceRankDat.get_row( row_id );
- ratingMin = exdData->getField< uint16_t >( row, 0 );
- ratingMax = exdData->getField< uint16_t >( row, 1 );
- name = exdData->getField< uint16_t >( row, 2 );
- fee = exdData->getField< uint16_t >( row, 3 );
- icon = exdData->getField< int32_t >( row, 4 );
+ auto row = exdData->m_ChocoboRaceRankDat.get_row( row_id );
+ ratingMin = exdData->getField< uint16_t >( row, 0 );
+ ratingMax = exdData->getField< uint16_t >( row, 1 );
+ name = exdData->getField< uint16_t >( row, 2 );
+ fee = exdData->getField< uint16_t >( row, 3 );
+ icon = exdData->getField< int32_t >( row, 4 );
}
Core::Data::ChocoboRaceStatus::ChocoboRaceStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ChocoboRaceStatusDat.get_row( row_id );
- status = exdData->getField< int32_t >( row, 0 );
+ auto row = exdData->m_ChocoboRaceStatusDat.get_row( row_id );
+ status = exdData->getField< int32_t >( row, 0 );
}
Core::Data::ChocoboRaceTerritory::ChocoboRaceTerritory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ChocoboRaceTerritoryDat.get_row( row_id );
- name = exdData->getField< uint16_t >( row, 0 );
- icon = exdData->getField< int32_t >( row, 1 );
+ auto row = exdData->m_ChocoboRaceTerritoryDat.get_row( row_id );
+ name = exdData->getField< uint16_t >( row, 0 );
+ icon = exdData->getField< int32_t >( row, 1 );
}
Core::Data::ChocoboTaxi::ChocoboTaxi( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ChocoboTaxiDat.get_row( row_id );
- location = exdData->getField< uint32_t >( row, 0 );
+ auto row = exdData->m_ChocoboTaxiDat.get_row( row_id );
+ location = exdData->getField< uint32_t >( row, 0 );
}
Core::Data::ChocoboTaxiStand::ChocoboTaxiStand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ChocoboTaxiStandDat.get_row( row_id );
- placeName = exdData->getField< std::string >( row, 8 );
+ auto row = exdData->m_ChocoboTaxiStandDat.get_row( row_id );
+ placeName = exdData->getField< std::string >( row, 8 );
}
Core::Data::ClassJob::ClassJob( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ClassJobDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- abbreviation = exdData->getField< std::string >( row, 1 );
- classJobCategory = exdData->getField< uint8_t >( row, 3 );
- expArrayIndex = exdData->getField< int8_t >( row, 4 );
- modifierHitPoints = exdData->getField< uint16_t >( row, 9 );
- modifierManaPoints = exdData->getField< uint16_t >( row, 10 );
- modifierStrength = exdData->getField< uint16_t >( row, 11 );
- modifierVitality = exdData->getField< uint16_t >( row, 12 );
- modifierDexterity = exdData->getField< uint16_t >( row, 13 );
- modifierIntelligence = exdData->getField< uint16_t >( row, 14 );
- modifierMind = exdData->getField< uint16_t >( row, 15 );
- modifierPiety = exdData->getField< uint16_t >( row, 16 );
- classJobParent = exdData->getField< uint8_t >( row, 26 );
- nameEnglish = exdData->getField< std::string >( row, 27 );
- itemStartingWeapon = exdData->getField< int32_t >( row, 28 );
- limitBreak1 = exdData->getField< uint16_t >( row, 33 );
- limitBreak2 = exdData->getField< uint16_t >( row, 34 );
- limitBreak3 = exdData->getField< uint16_t >( row, 35 );
- itemSoulCrystal = exdData->getField< uint32_t >( row, 37 );
- unlockQuest = exdData->getField< uint32_t >( row, 38 );
- relicQuest = exdData->getField< uint32_t >( row, 39 );
- prerequisite = exdData->getField< uint32_t >( row, 40 );
- startingLevel = exdData->getField< uint8_t >( row, 41 );
+ auto row = exdData->m_ClassJobDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ abbreviation = exdData->getField< std::string >( row, 1 );
+ classJobCategory = exdData->getField< uint8_t >( row, 3 );
+ expArrayIndex = exdData->getField< int8_t >( row, 4 );
+ modifierHitPoints = exdData->getField< uint16_t >( row, 9 );
+ modifierManaPoints = exdData->getField< uint16_t >( row, 10 );
+ modifierStrength = exdData->getField< uint16_t >( row, 11 );
+ modifierVitality = exdData->getField< uint16_t >( row, 12 );
+ modifierDexterity = exdData->getField< uint16_t >( row, 13 );
+ modifierIntelligence = exdData->getField< uint16_t >( row, 14 );
+ modifierMind = exdData->getField< uint16_t >( row, 15 );
+ modifierPiety = exdData->getField< uint16_t >( row, 16 );
+ classJobParent = exdData->getField< uint8_t >( row, 26 );
+ nameEnglish = exdData->getField< std::string >( row, 27 );
+ itemStartingWeapon = exdData->getField< int32_t >( row, 28 );
+ limitBreak1 = exdData->getField< uint16_t >( row, 33 );
+ limitBreak2 = exdData->getField< uint16_t >( row, 34 );
+ limitBreak3 = exdData->getField< uint16_t >( row, 35 );
+ itemSoulCrystal = exdData->getField< uint32_t >( row, 37 );
+ unlockQuest = exdData->getField< uint32_t >( row, 38 );
+ relicQuest = exdData->getField< uint32_t >( row, 39 );
+ prerequisite = exdData->getField< uint32_t >( row, 40 );
+ startingLevel = exdData->getField< uint8_t >( row, 41 );
}
Core::Data::ClassJobCategory::ClassJobCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ClassJobCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- aDV = exdData->getField< bool >( row, 1 );
- gLA = exdData->getField< bool >( row, 2 );
- pGL = exdData->getField< bool >( row, 3 );
- mRD = exdData->getField< bool >( row, 4 );
- lNC = exdData->getField< bool >( row, 5 );
- aRC = exdData->getField< bool >( row, 6 );
- cNJ = exdData->getField< bool >( row, 7 );
- tHM = exdData->getField< bool >( row, 8 );
- cRP = exdData->getField< bool >( row, 9 );
- bSM = exdData->getField< bool >( row, 10 );
- aRM = exdData->getField< bool >( row, 11 );
- gSM = exdData->getField< bool >( row, 12 );
- lTW = exdData->getField< bool >( row, 13 );
- wVR = exdData->getField< bool >( row, 14 );
- aLC = exdData->getField< bool >( row, 15 );
- cUL = exdData->getField< bool >( row, 16 );
- mIN = exdData->getField< bool >( row, 17 );
- bTN = exdData->getField< bool >( row, 18 );
- fSH = exdData->getField< bool >( row, 19 );
- pLD = exdData->getField< bool >( row, 20 );
- mNK = exdData->getField< bool >( row, 21 );
- wAR = exdData->getField< bool >( row, 22 );
- dRG = exdData->getField< bool >( row, 23 );
- bRD = exdData->getField< bool >( row, 24 );
- wHM = exdData->getField< bool >( row, 25 );
- bLM = exdData->getField< bool >( row, 26 );
- aCN = exdData->getField< bool >( row, 27 );
- sMN = exdData->getField< bool >( row, 28 );
- sCH = exdData->getField< bool >( row, 29 );
- rOG = exdData->getField< bool >( row, 30 );
- nIN = exdData->getField< bool >( row, 31 );
- mCH = exdData->getField< bool >( row, 32 );
- dRK = exdData->getField< bool >( row, 33 );
- aST = exdData->getField< bool >( row, 34 );
- sAM = exdData->getField< bool >( row, 35 );
- rDM = exdData->getField< bool >( row, 36 );
+ auto row = exdData->m_ClassJobCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ aDV = exdData->getField< bool >( row, 1 );
+ gLA = exdData->getField< bool >( row, 2 );
+ pGL = exdData->getField< bool >( row, 3 );
+ mRD = exdData->getField< bool >( row, 4 );
+ lNC = exdData->getField< bool >( row, 5 );
+ aRC = exdData->getField< bool >( row, 6 );
+ cNJ = exdData->getField< bool >( row, 7 );
+ tHM = exdData->getField< bool >( row, 8 );
+ cRP = exdData->getField< bool >( row, 9 );
+ bSM = exdData->getField< bool >( row, 10 );
+ aRM = exdData->getField< bool >( row, 11 );
+ gSM = exdData->getField< bool >( row, 12 );
+ lTW = exdData->getField< bool >( row, 13 );
+ wVR = exdData->getField< bool >( row, 14 );
+ aLC = exdData->getField< bool >( row, 15 );
+ cUL = exdData->getField< bool >( row, 16 );
+ mIN = exdData->getField< bool >( row, 17 );
+ bTN = exdData->getField< bool >( row, 18 );
+ fSH = exdData->getField< bool >( row, 19 );
+ pLD = exdData->getField< bool >( row, 20 );
+ mNK = exdData->getField< bool >( row, 21 );
+ wAR = exdData->getField< bool >( row, 22 );
+ dRG = exdData->getField< bool >( row, 23 );
+ bRD = exdData->getField< bool >( row, 24 );
+ wHM = exdData->getField< bool >( row, 25 );
+ bLM = exdData->getField< bool >( row, 26 );
+ aCN = exdData->getField< bool >( row, 27 );
+ sMN = exdData->getField< bool >( row, 28 );
+ sCH = exdData->getField< bool >( row, 29 );
+ rOG = exdData->getField< bool >( row, 30 );
+ nIN = exdData->getField< bool >( row, 31 );
+ mCH = exdData->getField< bool >( row, 32 );
+ dRK = exdData->getField< bool >( row, 33 );
+ aST = exdData->getField< bool >( row, 34 );
+ sAM = exdData->getField< bool >( row, 35 );
+ rDM = exdData->getField< bool >( row, 36 );
}
Core::Data::Companion::Companion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompanionDat.get_row( row_id );
- singular = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
- behavior = exdData->getField< uint8_t >( row, 14 );
- icon = exdData->getField< uint16_t >( row, 26 );
- cost = exdData->getField< uint8_t >( row, 30 );
- hP = exdData->getField< uint16_t >( row, 31 );
- skillAngle = exdData->getField< uint16_t >( row, 33 );
- skillCost = exdData->getField< uint8_t >( row, 34 );
- minionRace = exdData->getField< uint8_t >( row, 37 );
+ auto row = exdData->m_CompanionDat.get_row( row_id );
+ singular = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
+ behavior = exdData->getField< uint8_t >( row, 14 );
+ icon = exdData->getField< uint16_t >( row, 26 );
+ cost = exdData->getField< uint8_t >( row, 30 );
+ hP = exdData->getField< uint16_t >( row, 31 );
+ skillAngle = exdData->getField< uint16_t >( row, 33 );
+ skillCost = exdData->getField< uint8_t >( row, 34 );
+ minionRace = exdData->getField< uint8_t >( row, 37 );
}
Core::Data::CompanionMove::CompanionMove( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompanionMoveDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_CompanionMoveDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::CompanionTransient::CompanionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompanionTransientDat.get_row( row_id );
- description = exdData->getField< std::string >( row, 0 );
- descriptionEnhanced = exdData->getField< std::string >( row, 1 );
- tooltip = exdData->getField< std::string >( row, 2 );
- specialActionName = exdData->getField< std::string >( row, 3 );
- specialActionDescription = exdData->getField< std::string >( row, 4 );
- attack = exdData->getField< uint8_t >( row, 5 );
- defense = exdData->getField< uint8_t >( row, 6 );
- speed = exdData->getField< uint8_t >( row, 7 );
- hasAreaAttack = exdData->getField< bool >( row, 8 );
- strengthGate = exdData->getField< bool >( row, 9 );
- strengthEye = exdData->getField< bool >( row, 10 );
- strengthShield = exdData->getField< bool >( row, 11 );
- strengthArcana = exdData->getField< bool >( row, 12 );
- minionSkillType = exdData->getField< uint8_t >( row, 13 );
+ auto row = exdData->m_CompanionTransientDat.get_row( row_id );
+ description = exdData->getField< std::string >( row, 0 );
+ descriptionEnhanced = exdData->getField< std::string >( row, 1 );
+ tooltip = exdData->getField< std::string >( row, 2 );
+ specialActionName = exdData->getField< std::string >( row, 3 );
+ specialActionDescription = exdData->getField< std::string >( row, 4 );
+ attack = exdData->getField< uint8_t >( row, 5 );
+ defense = exdData->getField< uint8_t >( row, 6 );
+ speed = exdData->getField< uint8_t >( row, 7 );
+ hasAreaAttack = exdData->getField< bool >( row, 8 );
+ strengthGate = exdData->getField< bool >( row, 9 );
+ strengthEye = exdData->getField< bool >( row, 10 );
+ strengthShield = exdData->getField< bool >( row, 11 );
+ strengthArcana = exdData->getField< bool >( row, 12 );
+ minionSkillType = exdData->getField< uint8_t >( row, 13 );
}
Core::Data::CompanyAction::CompanyAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompanyActionDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
- icon = exdData->getField< int32_t >( row, 2 );
- fCRank = exdData->getField< uint8_t >( row, 3 );
- cost = exdData->getField< uint32_t >( row, 4 );
- order = exdData->getField< uint8_t >( row, 5 );
- purchasable = exdData->getField< bool >( row, 6 );
+ auto row = exdData->m_CompanyActionDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
+ icon = exdData->getField< int32_t >( row, 2 );
+ fCRank = exdData->getField< uint8_t >( row, 3 );
+ cost = exdData->getField< uint32_t >( row, 4 );
+ order = exdData->getField< uint8_t >( row, 5 );
+ purchasable = exdData->getField< bool >( row, 6 );
}
Core::Data::CompanyCraftDraft::CompanyCraftDraft( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompanyCraftDraftDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- companyCraftDraftCategory = exdData->getField< uint8_t >( row, 1 );
- order = exdData->getField< uint32_t >( row, 8 );
+ auto row = exdData->m_CompanyCraftDraftDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ companyCraftDraftCategory = exdData->getField< uint8_t >( row, 1 );
+ order = exdData->getField< uint32_t >( row, 8 );
}
-Core::Data::CompanyCraftDraftCategory::CompanyCraftDraftCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
+Core::Data::CompanyCraftDraftCategory::CompanyCraftDraftCategory( uint32_t row_id,
+ Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompanyCraftDraftCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_CompanyCraftDraftCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
-Core::Data::CompanyCraftManufactoryState::CompanyCraftManufactoryState( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
+Core::Data::CompanyCraftManufactoryState::CompanyCraftManufactoryState( uint32_t row_id,
+ Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompanyCraftManufactoryStateDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_CompanyCraftManufactoryStateDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::CompanyCraftPart::CompanyCraftPart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompanyCraftPartDat.get_row( row_id );
- companyCraftType = exdData->getField< uint8_t >( row, 1 );
- companyCraftProcess.push_back( exdData->getField< uint16_t >( row, 2 ) );
- companyCraftProcess.push_back( exdData->getField< uint16_t >( row, 3 ) );
- companyCraftProcess.push_back( exdData->getField< uint16_t >( row, 4 ) );
+ auto row = exdData->m_CompanyCraftPartDat.get_row( row_id );
+ companyCraftType = exdData->getField< uint8_t >( row, 1 );
+ companyCraftProcess.push_back( exdData->getField< uint16_t >( row, 2 ) );
+ companyCraftProcess.push_back( exdData->getField< uint16_t >( row, 3 ) );
+ companyCraftProcess.push_back( exdData->getField< uint16_t >( row, 4 ) );
}
Core::Data::CompanyCraftProcess::CompanyCraftProcess( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompanyCraftProcessDat.get_row( row_id );
+ auto row = exdData->m_CompanyCraftProcessDat.get_row( row_id );
}
Core::Data::CompanyCraftSequence::CompanyCraftSequence( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompanyCraftSequenceDat.get_row( row_id );
- resultItem = exdData->getField< int32_t >( row, 0 );
- companyCraftDraftCategory = exdData->getField< int32_t >( row, 2 );
- companyCraftType = exdData->getField< int32_t >( row, 3 );
- companyCraftDraft = exdData->getField< int32_t >( row, 4 );
- companyCraftPart.push_back( exdData->getField< uint16_t >( row, 5 ) );
- companyCraftPart.push_back( exdData->getField< uint16_t >( row, 6 ) );
- companyCraftPart.push_back( exdData->getField< uint16_t >( row, 7 ) );
- companyCraftPart.push_back( exdData->getField< uint16_t >( row, 8 ) );
- companyCraftPart.push_back( exdData->getField< uint16_t >( row, 9 ) );
- companyCraftPart.push_back( exdData->getField< uint16_t >( row, 10 ) );
- companyCraftPart.push_back( exdData->getField< uint16_t >( row, 11 ) );
- companyCraftPart.push_back( exdData->getField< uint16_t >( row, 12 ) );
+ auto row = exdData->m_CompanyCraftSequenceDat.get_row( row_id );
+ resultItem = exdData->getField< int32_t >( row, 0 );
+ companyCraftDraftCategory = exdData->getField< int32_t >( row, 2 );
+ companyCraftType = exdData->getField< int32_t >( row, 3 );
+ companyCraftDraft = exdData->getField< int32_t >( row, 4 );
+ companyCraftPart.push_back( exdData->getField< uint16_t >( row, 5 ) );
+ companyCraftPart.push_back( exdData->getField< uint16_t >( row, 6 ) );
+ companyCraftPart.push_back( exdData->getField< uint16_t >( row, 7 ) );
+ companyCraftPart.push_back( exdData->getField< uint16_t >( row, 8 ) );
+ companyCraftPart.push_back( exdData->getField< uint16_t >( row, 9 ) );
+ companyCraftPart.push_back( exdData->getField< uint16_t >( row, 10 ) );
+ companyCraftPart.push_back( exdData->getField< uint16_t >( row, 11 ) );
+ companyCraftPart.push_back( exdData->getField< uint16_t >( row, 12 ) );
}
Core::Data::CompanyCraftSupplyItem::CompanyCraftSupplyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompanyCraftSupplyItemDat.get_row( row_id );
- item = exdData->getField< uint32_t >( row, 0 );
+ auto row = exdData->m_CompanyCraftSupplyItemDat.get_row( row_id );
+ item = exdData->getField< uint32_t >( row, 0 );
}
Core::Data::CompanyCraftType::CompanyCraftType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompanyCraftTypeDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_CompanyCraftTypeDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::CompleteJournal::CompleteJournal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompleteJournalDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 5 );
- cutscene.push_back( exdData->getField< int32_t >( row, 6 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 7 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 8 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 9 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 10 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 11 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 12 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 13 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 14 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 15 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 16 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 17 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 18 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 19 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 20 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 21 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 22 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 23 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 24 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 25 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 26 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 27 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 28 ) );
- cutscene.push_back( exdData->getField< int32_t >( row, 29 ) );
+ auto row = exdData->m_CompleteJournalDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 5 );
+ cutscene.push_back( exdData->getField< int32_t >( row, 6 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 7 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 8 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 9 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 10 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 11 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 12 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 13 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 14 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 15 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 16 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 17 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 18 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 19 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 20 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 21 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 22 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 23 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 24 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 25 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 26 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 27 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 28 ) );
+ cutscene.push_back( exdData->getField< int32_t >( row, 29 ) );
}
Core::Data::CompleteJournalCategory::CompleteJournalCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CompleteJournalCategoryDat.get_row( row_id );
- firstQuest = exdData->getField< uint32_t >( row, 0 );
- lastQuest = exdData->getField< uint32_t >( row, 1 );
+ auto row = exdData->m_CompleteJournalCategoryDat.get_row( row_id );
+ firstQuest = exdData->getField< uint32_t >( row, 0 );
+ lastQuest = exdData->getField< uint32_t >( row, 1 );
}
Core::Data::ContentExAction::ContentExAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ContentExActionDat.get_row( row_id );
- name = exdData->getField< uint32_t >( row, 0 );
- charges = exdData->getField< uint8_t >( row, 2 );
+ auto row = exdData->m_ContentExActionDat.get_row( row_id );
+ name = exdData->getField< uint32_t >( row, 0 );
+ charges = exdData->getField< uint8_t >( row, 2 );
}
Core::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ContentFinderConditionDat.get_row( row_id );
- instanceContent = exdData->getField< uint16_t >( row, 3 );
- contentMemberType = exdData->getField< uint8_t >( row, 9 );
- classJobLevelRequired = exdData->getField< uint8_t >( row, 15 );
- classJobLevelSync = exdData->getField< uint8_t >( row, 16 );
- itemLevelRequired = exdData->getField< uint16_t >( row, 17 );
- itemLevelSync = exdData->getField< uint16_t >( row, 18 );
- contentIndicator = exdData->getField< uint8_t >( row, 24 );
- contentType = exdData->getField< uint8_t >( row, 33 );
- icon = exdData->getField< uint32_t >( row, 37 );
+ auto row = exdData->m_ContentFinderConditionDat.get_row( row_id );
+ instanceContent = exdData->getField< uint16_t >( row, 3 );
+ contentMemberType = exdData->getField< uint8_t >( row, 9 );
+ classJobLevelRequired = exdData->getField< uint8_t >( row, 15 );
+ classJobLevelSync = exdData->getField< uint8_t >( row, 16 );
+ itemLevelRequired = exdData->getField< uint16_t >( row, 17 );
+ itemLevelSync = exdData->getField< uint16_t >( row, 18 );
+ contentIndicator = exdData->getField< uint8_t >( row, 24 );
+ contentType = exdData->getField< uint8_t >( row, 33 );
+ icon = exdData->getField< uint32_t >( row, 37 );
}
-Core::Data::ContentFinderConditionTransient::ContentFinderConditionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
+Core::Data::ContentFinderConditionTransient::ContentFinderConditionTransient( uint32_t row_id,
+ Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ContentFinderConditionTransientDat.get_row( row_id );
- description = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_ContentFinderConditionTransientDat.get_row( row_id );
+ description = exdData->getField< std::string >( row, 0 );
}
Core::Data::ContentMemberType::ContentMemberType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ContentMemberTypeDat.get_row( row_id );
- tanksPerParty = exdData->getField< uint8_t >( row, 9 );
- healersPerParty = exdData->getField< uint8_t >( row, 10 );
- meleesPerParty = exdData->getField< uint8_t >( row, 11 );
- rangedPerParty = exdData->getField< uint8_t >( row, 12 );
+ auto row = exdData->m_ContentMemberTypeDat.get_row( row_id );
+ tanksPerParty = exdData->getField< uint8_t >( row, 9 );
+ healersPerParty = exdData->getField< uint8_t >( row, 10 );
+ meleesPerParty = exdData->getField< uint8_t >( row, 11 );
+ rangedPerParty = exdData->getField< uint8_t >( row, 12 );
}
Core::Data::ContentNpcTalk::ContentNpcTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ContentNpcTalkDat.get_row( row_id );
- contentTalk.push_back( exdData->getField< uint32_t >( row, 1 ) );
- contentTalk.push_back( exdData->getField< uint32_t >( row, 2 ) );
- contentTalk.push_back( exdData->getField< uint32_t >( row, 3 ) );
- contentTalk.push_back( exdData->getField< uint32_t >( row, 4 ) );
- contentTalk.push_back( exdData->getField< uint32_t >( row, 5 ) );
- contentTalk.push_back( exdData->getField< uint32_t >( row, 6 ) );
- contentTalk.push_back( exdData->getField< uint32_t >( row, 7 ) );
- contentTalk.push_back( exdData->getField< uint32_t >( row, 8 ) );
+ auto row = exdData->m_ContentNpcTalkDat.get_row( row_id );
+ contentTalk.push_back( exdData->getField< uint32_t >( row, 1 ) );
+ contentTalk.push_back( exdData->getField< uint32_t >( row, 2 ) );
+ contentTalk.push_back( exdData->getField< uint32_t >( row, 3 ) );
+ contentTalk.push_back( exdData->getField< uint32_t >( row, 4 ) );
+ contentTalk.push_back( exdData->getField< uint32_t >( row, 5 ) );
+ contentTalk.push_back( exdData->getField< uint32_t >( row, 6 ) );
+ contentTalk.push_back( exdData->getField< uint32_t >( row, 7 ) );
+ contentTalk.push_back( exdData->getField< uint32_t >( row, 8 ) );
}
Core::Data::ContentRoulette::ContentRoulette( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ContentRouletteDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 2 );
- dutyType = exdData->getField< std::string >( row, 3 );
- isInDutyFinder = exdData->getField< bool >( row, 6 );
- itemLevelRequired = exdData->getField< uint16_t >( row, 11 );
- icon = exdData->getField< uint32_t >( row, 13 );
- rewardTomeA = exdData->getField< uint16_t >( row, 15 );
- rewardTomeB = exdData->getField< uint16_t >( row, 16 );
- rewardTomeC = exdData->getField< uint16_t >( row, 17 );
- sortKey = exdData->getField< uint8_t >( row, 20 );
- contentMemberType = exdData->getField< uint8_t >( row, 22 );
- requireAllDuties = exdData->getField< bool >( row, 32 );
+ auto row = exdData->m_ContentRouletteDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 2 );
+ dutyType = exdData->getField< std::string >( row, 3 );
+ isInDutyFinder = exdData->getField< bool >( row, 6 );
+ itemLevelRequired = exdData->getField< uint16_t >( row, 11 );
+ icon = exdData->getField< uint32_t >( row, 13 );
+ rewardTomeA = exdData->getField< uint16_t >( row, 15 );
+ rewardTomeB = exdData->getField< uint16_t >( row, 16 );
+ rewardTomeC = exdData->getField< uint16_t >( row, 17 );
+ sortKey = exdData->getField< uint8_t >( row, 20 );
+ contentMemberType = exdData->getField< uint8_t >( row, 22 );
+ requireAllDuties = exdData->getField< bool >( row, 32 );
}
Core::Data::ContentsNote::ContentsNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ContentsNoteDat.get_row( row_id );
- contentType = exdData->getField< uint8_t >( row, 0 );
- requiredAmount = exdData->getField< int32_t >( row, 2 );
+ auto row = exdData->m_ContentsNoteDat.get_row( row_id );
+ contentType = exdData->getField< uint8_t >( row, 0 );
+ requiredAmount = exdData->getField< int32_t >( row, 2 );
}
Core::Data::ContentsNoteCategory::ContentsNoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ContentsNoteCategoryDat.get_row( row_id );
- type = exdData->getField< uint8_t >( row, 1 );
+ auto row = exdData->m_ContentsNoteCategoryDat.get_row( row_id );
+ type = exdData->getField< uint8_t >( row, 1 );
}
Core::Data::ContentTalk::ContentTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ContentTalkDat.get_row( row_id );
- contentTalkParam = exdData->getField< uint8_t >( row, 0 );
- text = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_ContentTalkDat.get_row( row_id );
+ contentTalkParam = exdData->getField< uint8_t >( row, 0 );
+ text = exdData->getField< std::string >( row, 1 );
}
Core::Data::ContentTalkParam::ContentTalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ContentTalkParamDat.get_row( row_id );
- param = exdData->getField< bool >( row, 0 );
- testAction = exdData->getField< uint32_t >( row, 2 );
+ auto row = exdData->m_ContentTalkParamDat.get_row( row_id );
+ param = exdData->getField< bool >( row, 0 );
+ testAction = exdData->getField< uint32_t >( row, 2 );
}
Core::Data::ContentType::ContentType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ContentTypeDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- icon = exdData->getField< uint32_t >( row, 1 );
- iconDutyFinder = exdData->getField< uint32_t >( row, 2 );
+ auto row = exdData->m_ContentTypeDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ icon = exdData->getField< uint32_t >( row, 1 );
+ iconDutyFinder = exdData->getField< uint32_t >( row, 2 );
}
Core::Data::CraftAction::CraftAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CraftActionDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
- animationStart = exdData->getField< uint16_t >( row, 2 );
- animationEnd = exdData->getField< uint16_t >( row, 3 );
- icon = exdData->getField< uint16_t >( row, 4 );
- classJob = exdData->getField< int8_t >( row, 5 );
- classJobCategory = exdData->getField< uint8_t >( row, 6 );
- classJobLevel = exdData->getField< uint8_t >( row, 7 );
- questRequirement = exdData->getField< uint32_t >( row, 8 );
- specialist = exdData->getField< bool >( row, 9 );
- cost = exdData->getField< uint8_t >( row, 11 );
- cRP = exdData->getField< int32_t >( row, 12 );
- bSM = exdData->getField< int32_t >( row, 13 );
- aRM = exdData->getField< int32_t >( row, 14 );
- gSM = exdData->getField< int32_t >( row, 15 );
- lTW = exdData->getField< int32_t >( row, 16 );
- wVR = exdData->getField< int32_t >( row, 17 );
- aLC = exdData->getField< int32_t >( row, 18 );
- cUL = exdData->getField< int32_t >( row, 19 );
+ auto row = exdData->m_CraftActionDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
+ animationStart = exdData->getField< uint16_t >( row, 2 );
+ animationEnd = exdData->getField< uint16_t >( row, 3 );
+ icon = exdData->getField< uint16_t >( row, 4 );
+ classJob = exdData->getField< int8_t >( row, 5 );
+ classJobCategory = exdData->getField< uint8_t >( row, 6 );
+ classJobLevel = exdData->getField< uint8_t >( row, 7 );
+ questRequirement = exdData->getField< uint32_t >( row, 8 );
+ specialist = exdData->getField< bool >( row, 9 );
+ cost = exdData->getField< uint8_t >( row, 11 );
+ cRP = exdData->getField< int32_t >( row, 12 );
+ bSM = exdData->getField< int32_t >( row, 13 );
+ aRM = exdData->getField< int32_t >( row, 14 );
+ gSM = exdData->getField< int32_t >( row, 15 );
+ lTW = exdData->getField< int32_t >( row, 16 );
+ wVR = exdData->getField< int32_t >( row, 17 );
+ aLC = exdData->getField< int32_t >( row, 18 );
+ cUL = exdData->getField< int32_t >( row, 19 );
}
Core::Data::CraftLeve::CraftLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CraftLeveDat.get_row( row_id );
- leve = exdData->getField< int32_t >( row, 0 );
- repeats = exdData->getField< uint8_t >( row, 2 );
+ auto row = exdData->m_CraftLeveDat.get_row( row_id );
+ leve = exdData->getField< int32_t >( row, 0 );
+ repeats = exdData->getField< uint8_t >( row, 2 );
}
Core::Data::CraftType::CraftType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CraftTypeDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 2 );
+ auto row = exdData->m_CraftTypeDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 2 );
}
Core::Data::Currency::Currency( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CurrencyDat.get_row( row_id );
- item = exdData->getField< uint32_t >( row, 0 );
- limit = exdData->getField< uint32_t >( row, 3 );
+ auto row = exdData->m_CurrencyDat.get_row( row_id );
+ item = exdData->getField< uint32_t >( row, 0 );
+ limit = exdData->getField< uint32_t >( row, 3 );
}
Core::Data::CustomTalk::CustomTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CustomTalkDat.get_row( row_id );
- iconActor = exdData->getField< uint32_t >( row, 0 );
- iconMap = exdData->getField< uint32_t >( row, 1 );
- name = exdData->getField< std::string >( row, 2 );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 3 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 4 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 5 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 6 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 7 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 8 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 9 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 10 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 11 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 12 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 13 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 14 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 15 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 16 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 17 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 18 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 19 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 20 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 21 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 22 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 23 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 24 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 25 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 26 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 27 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 28 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 29 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 30 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 31 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 32 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 33 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 34 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 35 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 36 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 37 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 38 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 39 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 40 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 41 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 42 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 43 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 44 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 45 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 46 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 47 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 48 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 49 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 50 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 51 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 52 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 53 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 54 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 55 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 56 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 57 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 58 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 59 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 60 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 61 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 62 ) );
- text = exdData->getField< bool >( row, 66 );
+ auto row = exdData->m_CustomTalkDat.get_row( row_id );
+ iconActor = exdData->getField< uint32_t >( row, 0 );
+ iconMap = exdData->getField< uint32_t >( row, 1 );
+ name = exdData->getField< std::string >( row, 2 );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 3 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 4 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 5 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 6 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 7 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 8 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 9 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 10 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 11 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 12 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 13 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 14 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 15 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 16 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 17 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 18 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 19 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 20 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 21 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 22 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 23 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 24 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 25 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 26 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 27 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 28 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 29 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 30 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 31 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 32 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 33 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 34 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 35 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 36 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 37 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 38 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 39 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 40 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 41 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 42 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 43 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 44 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 45 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 46 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 47 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 48 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 49 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 50 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 51 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 52 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 53 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 54 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 55 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 56 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 57 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 58 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 59 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 60 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 61 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 62 ) );
+ text = exdData->getField< bool >( row, 66 );
}
Core::Data::Cutscene::Cutscene( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CutsceneDat.get_row( row_id );
- path = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_CutsceneDat.get_row( row_id );
+ path = exdData->getField< std::string >( row, 0 );
}
Core::Data::CutScreenImage::CutScreenImage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_CutScreenImageDat.get_row( row_id );
- image = exdData->getField< int32_t >( row, 1 );
+ auto row = exdData->m_CutScreenImageDat.get_row( row_id );
+ image = exdData->getField< int32_t >( row, 1 );
}
Core::Data::DailySupplyItem::DailySupplyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DailySupplyItemDat.get_row( row_id );
+ auto row = exdData->m_DailySupplyItemDat.get_row( row_id );
}
Core::Data::DeepDungeonBan::DeepDungeonBan( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DeepDungeonBanDat.get_row( row_id );
- screenImage = exdData->getField< uint16_t >( row, 0 );
- logMessage = exdData->getField< uint16_t >( row, 1 );
- name = exdData->getField< uint16_t >( row, 2 );
+ auto row = exdData->m_DeepDungeonBanDat.get_row( row_id );
+ screenImage = exdData->getField< uint16_t >( row, 0 );
+ logMessage = exdData->getField< uint16_t >( row, 1 );
+ name = exdData->getField< uint16_t >( row, 2 );
}
Core::Data::DeepDungeonDanger::DeepDungeonDanger( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DeepDungeonDangerDat.get_row( row_id );
- screenImage = exdData->getField< uint16_t >( row, 0 );
- logMessage = exdData->getField< uint16_t >( row, 1 );
- name = exdData->getField< uint16_t >( row, 2 );
+ auto row = exdData->m_DeepDungeonDangerDat.get_row( row_id );
+ screenImage = exdData->getField< uint16_t >( row, 0 );
+ logMessage = exdData->getField< uint16_t >( row, 1 );
+ name = exdData->getField< uint16_t >( row, 2 );
}
Core::Data::DeepDungeonEquipment::DeepDungeonEquipment( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DeepDungeonEquipmentDat.get_row( row_id );
- icon = exdData->getField< uint32_t >( row, 0 );
- singular = exdData->getField< std::string >( row, 1 );
- plural = exdData->getField< std::string >( row, 3 );
- name = exdData->getField< std::string >( row, 9 );
- description = exdData->getField< std::string >( row, 10 );
+ auto row = exdData->m_DeepDungeonEquipmentDat.get_row( row_id );
+ icon = exdData->getField< uint32_t >( row, 0 );
+ singular = exdData->getField< std::string >( row, 1 );
+ plural = exdData->getField< std::string >( row, 3 );
+ name = exdData->getField< std::string >( row, 9 );
+ description = exdData->getField< std::string >( row, 10 );
}
Core::Data::DeepDungeonFloorEffectUI::DeepDungeonFloorEffectUI( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DeepDungeonFloorEffectUIDat.get_row( row_id );
- icon = exdData->getField< uint32_t >( row, 0 );
- name = exdData->getField< std::string >( row, 1 );
- description = exdData->getField< std::string >( row, 2 );
+ auto row = exdData->m_DeepDungeonFloorEffectUIDat.get_row( row_id );
+ icon = exdData->getField< uint32_t >( row, 0 );
+ name = exdData->getField< std::string >( row, 1 );
+ description = exdData->getField< std::string >( row, 2 );
}
Core::Data::DeepDungeonItem::DeepDungeonItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DeepDungeonItemDat.get_row( row_id );
- icon = exdData->getField< uint32_t >( row, 0 );
- singular = exdData->getField< std::string >( row, 1 );
- plural = exdData->getField< std::string >( row, 3 );
- name = exdData->getField< std::string >( row, 9 );
- tooltip = exdData->getField< std::string >( row, 10 );
- action = exdData->getField< uint32_t >( row, 11 );
+ auto row = exdData->m_DeepDungeonItemDat.get_row( row_id );
+ icon = exdData->getField< uint32_t >( row, 0 );
+ singular = exdData->getField< std::string >( row, 1 );
+ plural = exdData->getField< std::string >( row, 3 );
+ name = exdData->getField< std::string >( row, 9 );
+ tooltip = exdData->getField< std::string >( row, 10 );
+ action = exdData->getField< uint32_t >( row, 11 );
}
Core::Data::DeepDungeonStatus::DeepDungeonStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DeepDungeonStatusDat.get_row( row_id );
- screenImage = exdData->getField< uint16_t >( row, 0 );
- logMessage = exdData->getField< uint16_t >( row, 1 );
- name = exdData->getField< uint16_t >( row, 2 );
+ auto row = exdData->m_DeepDungeonStatusDat.get_row( row_id );
+ screenImage = exdData->getField< uint16_t >( row, 0 );
+ logMessage = exdData->getField< uint16_t >( row, 1 );
+ name = exdData->getField< uint16_t >( row, 2 );
}
Core::Data::DefaultTalk::DefaultTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DefaultTalkDat.get_row( row_id );
- actionTimelinePose.push_back( exdData->getField< uint16_t >( row, 5 ) );
- actionTimelinePose.push_back( exdData->getField< uint16_t >( row, 6 ) );
- actionTimelinePose.push_back( exdData->getField< uint16_t >( row, 7 ) );
- text.push_back( exdData->getField< std::string >( row, 20 ) );
- text.push_back( exdData->getField< std::string >( row, 21 ) );
- text.push_back( exdData->getField< std::string >( row, 22 ) );
+ auto row = exdData->m_DefaultTalkDat.get_row( row_id );
+ actionTimelinePose.push_back( exdData->getField< uint16_t >( row, 5 ) );
+ actionTimelinePose.push_back( exdData->getField< uint16_t >( row, 6 ) );
+ actionTimelinePose.push_back( exdData->getField< uint16_t >( row, 7 ) );
+ text.push_back( exdData->getField< std::string >( row, 20 ) );
+ text.push_back( exdData->getField< std::string >( row, 21 ) );
+ text.push_back( exdData->getField< std::string >( row, 22 ) );
}
Core::Data::DeliveryQuest::DeliveryQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DeliveryQuestDat.get_row( row_id );
- quest = exdData->getField< int32_t >( row, 0 );
+ auto row = exdData->m_DeliveryQuestDat.get_row( row_id );
+ quest = exdData->getField< int32_t >( row, 0 );
}
Core::Data::DisposalShop::DisposalShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DisposalShopDat.get_row( row_id );
- shopName = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_DisposalShopDat.get_row( row_id );
+ shopName = exdData->getField< std::string >( row, 0 );
}
Core::Data::DisposalShopFilterType::DisposalShopFilterType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DisposalShopFilterTypeDat.get_row( row_id );
- category = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_DisposalShopFilterTypeDat.get_row( row_id );
+ category = exdData->getField< std::string >( row, 0 );
}
Core::Data::DisposalShopItem::DisposalShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DisposalShopItemDat.get_row( row_id );
- itemDisposed = exdData->getField< int32_t >( row, 0 );
- itemReceived = exdData->getField< int32_t >( row, 2 );
- quantityReceived = exdData->getField< uint32_t >( row, 4 );
+ auto row = exdData->m_DisposalShopItemDat.get_row( row_id );
+ itemDisposed = exdData->getField< int32_t >( row, 0 );
+ itemReceived = exdData->getField< int32_t >( row, 2 );
+ quantityReceived = exdData->getField< uint32_t >( row, 4 );
}
Core::Data::DpsChallenge::DpsChallenge( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DpsChallengeDat.get_row( row_id );
- playerLevel = exdData->getField< uint16_t >( row, 0 );
- placeName = exdData->getField< uint16_t >( row, 1 );
- icon = exdData->getField< uint32_t >( row, 2 );
- order = exdData->getField< uint16_t >( row, 3 );
- name = exdData->getField< std::string >( row, 4 );
- description = exdData->getField< std::string >( row, 5 );
+ auto row = exdData->m_DpsChallengeDat.get_row( row_id );
+ playerLevel = exdData->getField< uint16_t >( row, 0 );
+ placeName = exdData->getField< uint16_t >( row, 1 );
+ icon = exdData->getField< uint32_t >( row, 2 );
+ order = exdData->getField< uint16_t >( row, 3 );
+ name = exdData->getField< std::string >( row, 4 );
+ description = exdData->getField< std::string >( row, 5 );
}
Core::Data::DpsChallengeOfficer::DpsChallengeOfficer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DpsChallengeOfficerDat.get_row( row_id );
- unlockQuest = exdData->getField< uint32_t >( row, 0 );
- challengeName.push_back( exdData->getField< uint16_t >( row, 1 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 2 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 3 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 4 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 5 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 6 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 7 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 8 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 9 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 10 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 11 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 12 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 13 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 14 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 15 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 16 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 17 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 18 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 19 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 20 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 21 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 22 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 23 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 24 ) );
- challengeName.push_back( exdData->getField< uint16_t >( row, 25 ) );
+ auto row = exdData->m_DpsChallengeOfficerDat.get_row( row_id );
+ unlockQuest = exdData->getField< uint32_t >( row, 0 );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 1 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 2 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 3 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 4 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 5 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 6 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 7 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 8 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 9 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 10 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 11 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 12 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 13 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 14 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 15 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 16 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 17 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 18 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 19 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 20 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 21 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 22 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 23 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 24 ) );
+ challengeName.push_back( exdData->getField< uint16_t >( row, 25 ) );
}
Core::Data::DpsChallengeTransient::DpsChallengeTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_DpsChallengeTransientDat.get_row( row_id );
- instanceContent = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_DpsChallengeTransientDat.get_row( row_id );
+ instanceContent = exdData->getField< uint16_t >( row, 0 );
}
Core::Data::Emote::Emote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EmoteDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- emoteCategory = exdData->getField< uint8_t >( row, 11 );
- emoteMode = exdData->getField< uint8_t >( row, 12 );
- hasCancelEmote = exdData->getField< bool >( row, 15 );
- drawsWeapon = exdData->getField< bool >( row, 16 );
- textCommand = exdData->getField< int32_t >( row, 18 );
- icon = exdData->getField< uint16_t >( row, 19 );
- logMessageTargeted = exdData->getField< uint16_t >( row, 20 );
- logMessageUntargeted = exdData->getField< uint16_t >( row, 21 );
+ auto row = exdData->m_EmoteDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ emoteCategory = exdData->getField< uint8_t >( row, 11 );
+ emoteMode = exdData->getField< uint8_t >( row, 12 );
+ hasCancelEmote = exdData->getField< bool >( row, 15 );
+ drawsWeapon = exdData->getField< bool >( row, 16 );
+ textCommand = exdData->getField< int32_t >( row, 18 );
+ icon = exdData->getField< uint16_t >( row, 19 );
+ logMessageTargeted = exdData->getField< uint16_t >( row, 20 );
+ logMessageUntargeted = exdData->getField< uint16_t >( row, 21 );
}
Core::Data::EmoteMode::EmoteMode( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EmoteDat.get_row( row_id );
+ auto row = exdData->m_EmoteDat.get_row( row_id );
}
Core::Data::EmoteCategory::EmoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EmoteCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_EmoteCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::ENpcBase::ENpcBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ENpcBaseDat.get_row( row_id );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 2 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 3 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 4 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 5 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 6 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 7 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 8 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 9 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 10 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 11 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 12 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 13 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 14 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 15 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 16 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 17 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 18 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 19 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 20 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 21 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 22 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 23 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 24 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 25 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 26 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 27 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 28 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 29 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 30 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 31 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 32 ) );
- eNpcData.push_back( exdData->getField< uint32_t >( row, 33 ) );
- race = exdData->getField< uint8_t >( row, 36 );
- gender = exdData->getField< uint8_t >( row, 37 );
- bodyType = exdData->getField< uint8_t >( row, 38 );
- height = exdData->getField< uint8_t >( row, 39 );
- tribe = exdData->getField< uint8_t >( row, 40 );
- face = exdData->getField< uint8_t >( row, 41 );
- hairStyle = exdData->getField< uint8_t >( row, 42 );
- hairHighlight = exdData->getField< uint8_t >( row, 43 );
- skinColor = exdData->getField< uint8_t >( row, 44 );
- eyeHeterochromia = exdData->getField< uint8_t >( row, 45 );
- hairColor = exdData->getField< uint8_t >( row, 46 );
- hairHighlightColor = exdData->getField< uint8_t >( row, 47 );
- facialFeature = exdData->getField< uint8_t >( row, 48 );
- facialFeatureColor = exdData->getField< uint8_t >( row, 49 );
- eyebrows = exdData->getField< uint8_t >( row, 50 );
- eyeColor = exdData->getField< uint8_t >( row, 51 );
- eyeShape = exdData->getField< uint8_t >( row, 52 );
- nose = exdData->getField< uint8_t >( row, 53 );
- jaw = exdData->getField< uint8_t >( row, 54 );
- mouth = exdData->getField< uint8_t >( row, 55 );
- lipColor = exdData->getField< uint8_t >( row, 56 );
- bustOrTone1 = exdData->getField< uint8_t >( row, 57 );
- extraFeature1 = exdData->getField< uint8_t >( row, 58 );
- extraFeature2OrBust = exdData->getField< uint8_t >( row, 59 );
- facePaint = exdData->getField< uint8_t >( row, 60 );
- facePaintColor = exdData->getField< uint8_t >( row, 61 );
- npcEquip = exdData->getField< uint16_t >( row, 63 );
- behavior = exdData->getField< uint16_t >( row, 64 );
- modelMainHand = exdData->getField< uint64_t >( row, 65 );
- dyeMainHand = exdData->getField< uint8_t >( row, 66 );
- modelOffHand = exdData->getField< uint64_t >( row, 67 );
- dyeOffHand = exdData->getField< uint8_t >( row, 68 );
- modelHead = exdData->getField< uint32_t >( row, 69 );
- dyeHead = exdData->getField< uint8_t >( row, 70 );
- visor = exdData->getField< bool >( row, 71 );
- modelBody = exdData->getField< uint32_t >( row, 72 );
- dyeBody = exdData->getField< uint8_t >( row, 73 );
- modelHands = exdData->getField< uint32_t >( row, 74 );
- dyeHands = exdData->getField< uint8_t >( row, 75 );
- modelLegs = exdData->getField< uint32_t >( row, 76 );
- dyeLegs = exdData->getField< uint8_t >( row, 77 );
- modelFeet = exdData->getField< uint32_t >( row, 78 );
- dyeFeet = exdData->getField< uint8_t >( row, 79 );
- modelEars = exdData->getField< uint32_t >( row, 80 );
- dyeEars = exdData->getField< uint8_t >( row, 81 );
- modelNeck = exdData->getField< uint32_t >( row, 82 );
- dyeNeck = exdData->getField< uint8_t >( row, 83 );
- modelWrists = exdData->getField< uint32_t >( row, 84 );
- dyeWrists = exdData->getField< uint8_t >( row, 85 );
- modelLeftRing = exdData->getField< uint32_t >( row, 86 );
- dyeLeftRing = exdData->getField< uint8_t >( row, 87 );
- modelRightRing = exdData->getField< uint32_t >( row, 88 );
- dyeRightRing = exdData->getField< uint8_t >( row, 89 );
- balloon = exdData->getField< uint16_t >( row, 91 );
+ auto row = exdData->m_ENpcBaseDat.get_row( row_id );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 2 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 3 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 4 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 5 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 6 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 7 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 8 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 9 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 10 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 11 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 12 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 13 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 14 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 15 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 16 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 17 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 18 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 19 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 20 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 21 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 22 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 23 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 24 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 25 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 26 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 27 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 28 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 29 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 30 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 31 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 32 ) );
+ eNpcData.push_back( exdData->getField< uint32_t >( row, 33 ) );
+ race = exdData->getField< uint8_t >( row, 36 );
+ gender = exdData->getField< uint8_t >( row, 37 );
+ bodyType = exdData->getField< uint8_t >( row, 38 );
+ height = exdData->getField< uint8_t >( row, 39 );
+ tribe = exdData->getField< uint8_t >( row, 40 );
+ face = exdData->getField< uint8_t >( row, 41 );
+ hairStyle = exdData->getField< uint8_t >( row, 42 );
+ hairHighlight = exdData->getField< uint8_t >( row, 43 );
+ skinColor = exdData->getField< uint8_t >( row, 44 );
+ eyeHeterochromia = exdData->getField< uint8_t >( row, 45 );
+ hairColor = exdData->getField< uint8_t >( row, 46 );
+ hairHighlightColor = exdData->getField< uint8_t >( row, 47 );
+ facialFeature = exdData->getField< uint8_t >( row, 48 );
+ facialFeatureColor = exdData->getField< uint8_t >( row, 49 );
+ eyebrows = exdData->getField< uint8_t >( row, 50 );
+ eyeColor = exdData->getField< uint8_t >( row, 51 );
+ eyeShape = exdData->getField< uint8_t >( row, 52 );
+ nose = exdData->getField< uint8_t >( row, 53 );
+ jaw = exdData->getField< uint8_t >( row, 54 );
+ mouth = exdData->getField< uint8_t >( row, 55 );
+ lipColor = exdData->getField< uint8_t >( row, 56 );
+ bustOrTone1 = exdData->getField< uint8_t >( row, 57 );
+ extraFeature1 = exdData->getField< uint8_t >( row, 58 );
+ extraFeature2OrBust = exdData->getField< uint8_t >( row, 59 );
+ facePaint = exdData->getField< uint8_t >( row, 60 );
+ facePaintColor = exdData->getField< uint8_t >( row, 61 );
+ npcEquip = exdData->getField< uint16_t >( row, 63 );
+ behavior = exdData->getField< uint16_t >( row, 64 );
+ modelMainHand = exdData->getField< uint64_t >( row, 65 );
+ dyeMainHand = exdData->getField< uint8_t >( row, 66 );
+ modelOffHand = exdData->getField< uint64_t >( row, 67 );
+ dyeOffHand = exdData->getField< uint8_t >( row, 68 );
+ modelHead = exdData->getField< uint32_t >( row, 69 );
+ dyeHead = exdData->getField< uint8_t >( row, 70 );
+ visor = exdData->getField< bool >( row, 71 );
+ modelBody = exdData->getField< uint32_t >( row, 72 );
+ dyeBody = exdData->getField< uint8_t >( row, 73 );
+ modelHands = exdData->getField< uint32_t >( row, 74 );
+ dyeHands = exdData->getField< uint8_t >( row, 75 );
+ modelLegs = exdData->getField< uint32_t >( row, 76 );
+ dyeLegs = exdData->getField< uint8_t >( row, 77 );
+ modelFeet = exdData->getField< uint32_t >( row, 78 );
+ dyeFeet = exdData->getField< uint8_t >( row, 79 );
+ modelEars = exdData->getField< uint32_t >( row, 80 );
+ dyeEars = exdData->getField< uint8_t >( row, 81 );
+ modelNeck = exdData->getField< uint32_t >( row, 82 );
+ dyeNeck = exdData->getField< uint8_t >( row, 83 );
+ modelWrists = exdData->getField< uint32_t >( row, 84 );
+ dyeWrists = exdData->getField< uint8_t >( row, 85 );
+ modelLeftRing = exdData->getField< uint32_t >( row, 86 );
+ dyeLeftRing = exdData->getField< uint8_t >( row, 87 );
+ modelRightRing = exdData->getField< uint32_t >( row, 88 );
+ dyeRightRing = exdData->getField< uint8_t >( row, 89 );
+ balloon = exdData->getField< uint16_t >( row, 91 );
}
Core::Data::ENpcResident::ENpcResident( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ENpcResidentDat.get_row( row_id );
- singular = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
- title = exdData->getField< std::string >( row, 8 );
- map = exdData->getField< uint8_t >( row, 9 );
+ auto row = exdData->m_ENpcResidentDat.get_row( row_id );
+ singular = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
+ title = exdData->getField< std::string >( row, 8 );
+ map = exdData->getField< uint8_t >( row, 9 );
}
Core::Data::EObj::EObj( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EObjDat.get_row( row_id );
- data = exdData->getField< uint32_t >( row, 9 );
+ auto row = exdData->m_EObjDat.get_row( row_id );
+ data = exdData->getField< uint32_t >( row, 9 );
}
Core::Data::EObjName::EObjName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EObjNameDat.get_row( row_id );
- singular = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_EObjNameDat.get_row( row_id );
+ singular = exdData->getField< std::string >( row, 0 );
}
Core::Data::EquipRaceCategory::EquipRaceCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EquipRaceCategoryDat.get_row( row_id );
- hyur = exdData->getField< bool >( row, 0 );
- elezen = exdData->getField< bool >( row, 1 );
- lalafell = exdData->getField< bool >( row, 2 );
- miqote = exdData->getField< bool >( row, 3 );
- roegadyn = exdData->getField< bool >( row, 4 );
- auRa = exdData->getField< bool >( row, 5 );
- male = exdData->getField< bool >( row, 6 );
- female = exdData->getField< bool >( row, 7 );
+ auto row = exdData->m_EquipRaceCategoryDat.get_row( row_id );
+ hyur = exdData->getField< bool >( row, 0 );
+ elezen = exdData->getField< bool >( row, 1 );
+ lalafell = exdData->getField< bool >( row, 2 );
+ miqote = exdData->getField< bool >( row, 3 );
+ roegadyn = exdData->getField< bool >( row, 4 );
+ auRa = exdData->getField< bool >( row, 5 );
+ male = exdData->getField< bool >( row, 6 );
+ female = exdData->getField< bool >( row, 7 );
}
Core::Data::EquipSlotCategory::EquipSlotCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EquipSlotCategoryDat.get_row( row_id );
- mainHand = exdData->getField< int8_t >( row, 0 );
- offHand = exdData->getField< int8_t >( row, 1 );
- head = exdData->getField< int8_t >( row, 2 );
- body = exdData->getField< int8_t >( row, 3 );
- gloves = exdData->getField< int8_t >( row, 4 );
- waist = exdData->getField< int8_t >( row, 5 );
- legs = exdData->getField< int8_t >( row, 6 );
- feet = exdData->getField< int8_t >( row, 7 );
- ears = exdData->getField< int8_t >( row, 8 );
- neck = exdData->getField< int8_t >( row, 9 );
- wrists = exdData->getField< int8_t >( row, 10 );
- fingerL = exdData->getField< int8_t >( row, 11 );
- fingerR = exdData->getField< int8_t >( row, 12 );
- soulCrystal = exdData->getField< int8_t >( row, 13 );
+ auto row = exdData->m_EquipSlotCategoryDat.get_row( row_id );
+ mainHand = exdData->getField< int8_t >( row, 0 );
+ offHand = exdData->getField< int8_t >( row, 1 );
+ head = exdData->getField< int8_t >( row, 2 );
+ body = exdData->getField< int8_t >( row, 3 );
+ gloves = exdData->getField< int8_t >( row, 4 );
+ waist = exdData->getField< int8_t >( row, 5 );
+ legs = exdData->getField< int8_t >( row, 6 );
+ feet = exdData->getField< int8_t >( row, 7 );
+ ears = exdData->getField< int8_t >( row, 8 );
+ neck = exdData->getField< int8_t >( row, 9 );
+ wrists = exdData->getField< int8_t >( row, 10 );
+ fingerL = exdData->getField< int8_t >( row, 11 );
+ fingerR = exdData->getField< int8_t >( row, 12 );
+ soulCrystal = exdData->getField< int8_t >( row, 13 );
}
Core::Data::EurekaAethernet::EurekaAethernet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EurekaAethernetDat.get_row( row_id );
- location = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_EurekaAethernetDat.get_row( row_id );
+ location = exdData->getField< uint16_t >( row, 0 );
}
Core::Data::EurekaGrowData::EurekaGrowData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EurekaGrowDataDat.get_row( row_id );
- baseResistance = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_EurekaGrowDataDat.get_row( row_id );
+ baseResistance = exdData->getField< uint16_t >( row, 0 );
}
-Core::Data::EurekaSphereElementAdjust::EurekaSphereElementAdjust( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
+Core::Data::EurekaSphereElementAdjust::EurekaSphereElementAdjust( uint32_t row_id,
+ Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EurekaSphereElementAdjustDat.get_row( row_id );
- powerModifier = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_EurekaSphereElementAdjustDat.get_row( row_id );
+ powerModifier = exdData->getField< uint16_t >( row, 0 );
}
Core::Data::EventAction::EventAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EventActionDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- icon = exdData->getField< uint16_t >( row, 1 );
- castTime = exdData->getField< uint8_t >( row, 2 );
+ auto row = exdData->m_EventActionDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ icon = exdData->getField< uint16_t >( row, 1 );
+ castTime = exdData->getField< uint8_t >( row, 2 );
}
Core::Data::EventIconPriority::EventIconPriority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EventIconPriorityDat.get_row( row_id );
- icon.push_back( exdData->getField< uint32_t >( row, 0 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 1 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 2 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 3 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 4 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 5 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 6 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 7 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 8 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 9 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 10 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 11 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 12 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 13 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 14 ) );
- icon.push_back( exdData->getField< uint32_t >( row, 15 ) );
+ auto row = exdData->m_EventIconPriorityDat.get_row( row_id );
+ icon.push_back( exdData->getField< uint32_t >( row, 0 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 1 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 2 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 3 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 4 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 5 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 6 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 7 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 8 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 9 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 10 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 11 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 12 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 13 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 14 ) );
+ icon.push_back( exdData->getField< uint32_t >( row, 15 ) );
}
Core::Data::EventIconType::EventIconType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EventIconTypeDat.get_row( row_id );
- npcIconAvailable = exdData->getField< uint32_t >( row, 0 );
- mapIconAvailable = exdData->getField< uint32_t >( row, 1 );
- npcIconInvalid = exdData->getField< uint32_t >( row, 2 );
- mapIconInvalid = exdData->getField< uint32_t >( row, 3 );
- iconRange = exdData->getField< uint8_t >( row, 4 );
+ auto row = exdData->m_EventIconTypeDat.get_row( row_id );
+ npcIconAvailable = exdData->getField< uint32_t >( row, 0 );
+ mapIconAvailable = exdData->getField< uint32_t >( row, 1 );
+ npcIconInvalid = exdData->getField< uint32_t >( row, 2 );
+ mapIconInvalid = exdData->getField< uint32_t >( row, 3 );
+ iconRange = exdData->getField< uint8_t >( row, 4 );
}
Core::Data::EventItem::EventItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EventItemDat.get_row( row_id );
- singular = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
- rarity = exdData->getField< int8_t >( row, 5 );
- name = exdData->getField< std::string >( row, 9 );
- icon = exdData->getField< uint16_t >( row, 10 );
- stackSize = exdData->getField< uint8_t >( row, 12 );
- quest = exdData->getField< uint32_t >( row, 14 );
- castTime = exdData->getField< uint8_t >( row, 15 );
+ auto row = exdData->m_EventItemDat.get_row( row_id );
+ singular = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
+ rarity = exdData->getField< int8_t >( row, 5 );
+ name = exdData->getField< std::string >( row, 9 );
+ icon = exdData->getField< uint16_t >( row, 10 );
+ stackSize = exdData->getField< uint8_t >( row, 12 );
+ quest = exdData->getField< uint32_t >( row, 14 );
+ castTime = exdData->getField< uint8_t >( row, 15 );
}
Core::Data::EventItemHelp::EventItemHelp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_EventItemHelpDat.get_row( row_id );
- description = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_EventItemHelpDat.get_row( row_id );
+ description = exdData->getField< std::string >( row, 0 );
}
Core::Data::ExVersion::ExVersion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ExVersionDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_ExVersionDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::Fate::Fate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FateDat.get_row( row_id );
- eurekaFate = exdData->getField< uint8_t >( row, 0 );
- location = exdData->getField< uint32_t >( row, 2 );
- classJobLevel = exdData->getField< uint8_t >( row, 3 );
- classJobLevelMax = exdData->getField< uint8_t >( row, 4 );
- eventItem = exdData->getField< uint32_t >( row, 5 );
- iconObjective = exdData->getField< uint32_t >( row, 10 );
- iconMap = exdData->getField< uint32_t >( row, 11 );
- music = exdData->getField< int32_t >( row, 13 );
- name = exdData->getField< std::string >( row, 27 );
- description = exdData->getField< std::string >( row, 28 );
- objective = exdData->getField< std::string >( row, 29 );
- statusText.push_back( exdData->getField< std::string >( row, 30 ) );
- statusText.push_back( exdData->getField< std::string >( row, 31 ) );
- statusText.push_back( exdData->getField< std::string >( row, 32 ) );
- arrayIndex = exdData->getField< uint32_t >( row, 33 );
+ auto row = exdData->m_FateDat.get_row( row_id );
+ eurekaFate = exdData->getField< uint8_t >( row, 0 );
+ location = exdData->getField< uint32_t >( row, 2 );
+ classJobLevel = exdData->getField< uint8_t >( row, 3 );
+ classJobLevelMax = exdData->getField< uint8_t >( row, 4 );
+ eventItem = exdData->getField< uint32_t >( row, 5 );
+ iconObjective = exdData->getField< uint32_t >( row, 10 );
+ iconMap = exdData->getField< uint32_t >( row, 11 );
+ music = exdData->getField< int32_t >( row, 13 );
+ name = exdData->getField< std::string >( row, 27 );
+ description = exdData->getField< std::string >( row, 28 );
+ objective = exdData->getField< std::string >( row, 29 );
+ statusText.push_back( exdData->getField< std::string >( row, 30 ) );
+ statusText.push_back( exdData->getField< std::string >( row, 31 ) );
+ statusText.push_back( exdData->getField< std::string >( row, 32 ) );
+ arrayIndex = exdData->getField< uint32_t >( row, 33 );
}
Core::Data::FCActivity::FCActivity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FCActivityDat.get_row( row_id );
- text = exdData->getField< std::string >( row, 0 );
- fCActivityCategory = exdData->getField< uint8_t >( row, 4 );
+ auto row = exdData->m_FCActivityDat.get_row( row_id );
+ text = exdData->getField< std::string >( row, 0 );
+ fCActivityCategory = exdData->getField< uint8_t >( row, 4 );
}
Core::Data::FCActivityCategory::FCActivityCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FCActivityCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_FCActivityCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 1 );
}
Core::Data::FCAuthority::FCAuthority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FCAuthorityDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- fCAuthorityCategory = exdData->getField< int32_t >( row, 1 );
+ auto row = exdData->m_FCAuthorityDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ fCAuthorityCategory = exdData->getField< int32_t >( row, 1 );
}
Core::Data::FCAuthorityCategory::FCAuthorityCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FCAuthorityCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_FCAuthorityCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::FCChestName::FCChestName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FCChestNameDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_FCChestNameDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::FccShop::FccShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FccShopDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_FccShopDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::FCHierarchy::FCHierarchy( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FCHierarchyDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_FCHierarchyDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::FCProfile::FCProfile( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FCProfileDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_FCProfileDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 1 );
}
Core::Data::FCReputation::FCReputation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FCReputationDat.get_row( row_id );
- pointsToNext = exdData->getField< uint32_t >( row, 0 );
- requiredPoints = exdData->getField< uint32_t >( row, 1 );
- name = exdData->getField< std::string >( row, 4 );
+ auto row = exdData->m_FCReputationDat.get_row( row_id );
+ pointsToNext = exdData->getField< uint32_t >( row, 0 );
+ requiredPoints = exdData->getField< uint32_t >( row, 1 );
+ name = exdData->getField< std::string >( row, 4 );
}
Core::Data::FCRights::FCRights( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FCRightsDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
- icon = exdData->getField< uint16_t >( row, 2 );
- fCRank = exdData->getField< uint8_t >( row, 3 );
+ auto row = exdData->m_FCRightsDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
+ icon = exdData->getField< uint16_t >( row, 2 );
+ fCRank = exdData->getField< uint8_t >( row, 3 );
}
Core::Data::FieldMarker::FieldMarker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FieldMarkerDat.get_row( row_id );
- vFX = exdData->getField< int32_t >( row, 0 );
- icon = exdData->getField< uint16_t >( row, 1 );
+ auto row = exdData->m_FieldMarkerDat.get_row( row_id );
+ vFX = exdData->getField< int32_t >( row, 0 );
+ icon = exdData->getField< uint16_t >( row, 1 );
}
Core::Data::FishingSpot::FishingSpot( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FishingSpotDat.get_row( row_id );
- gatheringLevel = exdData->getField< uint8_t >( row, 0 );
- bigFishOnReach = exdData->getField< std::string >( row, 1 );
- bigFishOnEnd = exdData->getField< std::string >( row, 2 );
- fishingSpotCategory = exdData->getField< uint8_t >( row, 3 );
- territoryType = exdData->getField< uint16_t >( row, 5 );
- x = exdData->getField< int16_t >( row, 6 );
- z = exdData->getField< int16_t >( row, 7 );
- radius = exdData->getField< uint16_t >( row, 8 );
- item.push_back( exdData->getField< int32_t >( row, 10 ) );
- item.push_back( exdData->getField< int32_t >( row, 11 ) );
- item.push_back( exdData->getField< int32_t >( row, 12 ) );
- item.push_back( exdData->getField< int32_t >( row, 13 ) );
- item.push_back( exdData->getField< int32_t >( row, 14 ) );
- item.push_back( exdData->getField< int32_t >( row, 15 ) );
- item.push_back( exdData->getField< int32_t >( row, 16 ) );
- item.push_back( exdData->getField< int32_t >( row, 17 ) );
- item.push_back( exdData->getField< int32_t >( row, 18 ) );
- item.push_back( exdData->getField< int32_t >( row, 19 ) );
- placeName = exdData->getField< uint16_t >( row, 20 );
+ auto row = exdData->m_FishingSpotDat.get_row( row_id );
+ gatheringLevel = exdData->getField< uint8_t >( row, 0 );
+ bigFishOnReach = exdData->getField< std::string >( row, 1 );
+ bigFishOnEnd = exdData->getField< std::string >( row, 2 );
+ fishingSpotCategory = exdData->getField< uint8_t >( row, 3 );
+ territoryType = exdData->getField< uint16_t >( row, 5 );
+ x = exdData->getField< int16_t >( row, 6 );
+ z = exdData->getField< int16_t >( row, 7 );
+ radius = exdData->getField< uint16_t >( row, 8 );
+ item.push_back( exdData->getField< int32_t >( row, 10 ) );
+ item.push_back( exdData->getField< int32_t >( row, 11 ) );
+ item.push_back( exdData->getField< int32_t >( row, 12 ) );
+ item.push_back( exdData->getField< int32_t >( row, 13 ) );
+ item.push_back( exdData->getField< int32_t >( row, 14 ) );
+ item.push_back( exdData->getField< int32_t >( row, 15 ) );
+ item.push_back( exdData->getField< int32_t >( row, 16 ) );
+ item.push_back( exdData->getField< int32_t >( row, 17 ) );
+ item.push_back( exdData->getField< int32_t >( row, 18 ) );
+ item.push_back( exdData->getField< int32_t >( row, 19 ) );
+ placeName = exdData->getField< uint16_t >( row, 20 );
}
Core::Data::FishParameter::FishParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_FishParameterDat.get_row( row_id );
- text = exdData->getField< std::string >( row, 0 );
- item = exdData->getField< int32_t >( row, 1 );
- gatheringItemLevel = exdData->getField< uint16_t >( row, 2 );
- territoryType = exdData->getField< int32_t >( row, 4 );
- isFish = exdData->getField< bool >( row, 5 );
- gatheringSubCategory = exdData->getField< uint16_t >( row, 6 );
+ auto row = exdData->m_FishParameterDat.get_row( row_id );
+ text = exdData->getField< std::string >( row, 0 );
+ item = exdData->getField< int32_t >( row, 1 );
+ gatheringItemLevel = exdData->getField< uint16_t >( row, 2 );
+ territoryType = exdData->getField< int32_t >( row, 4 );
+ isFish = exdData->getField< bool >( row, 5 );
+ gatheringSubCategory = exdData->getField< uint16_t >( row, 6 );
}
Core::Data::GardeningSeed::GardeningSeed( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GardeningSeedDat.get_row( row_id );
- item = exdData->getField< uint32_t >( row, 0 );
- icon = exdData->getField< uint32_t >( row, 2 );
+ auto row = exdData->m_GardeningSeedDat.get_row( row_id );
+ item = exdData->getField< uint32_t >( row, 0 );
+ icon = exdData->getField< uint32_t >( row, 2 );
}
Core::Data::GatheringCondition::GatheringCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringConditionDat.get_row( row_id );
- text = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_GatheringConditionDat.get_row( row_id );
+ text = exdData->getField< std::string >( row, 0 );
}
Core::Data::GatheringExp::GatheringExp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringExpDat.get_row( row_id );
- exp = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_GatheringExpDat.get_row( row_id );
+ exp = exdData->getField< uint16_t >( row, 0 );
}
Core::Data::GatheringItem::GatheringItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringItemDat.get_row( row_id );
- item = exdData->getField< int32_t >( row, 0 );
- gatheringItemLevel = exdData->getField< uint16_t >( row, 1 );
- isHidden = exdData->getField< bool >( row, 2 );
+ auto row = exdData->m_GatheringItemDat.get_row( row_id );
+ item = exdData->getField< int32_t >( row, 0 );
+ gatheringItemLevel = exdData->getField< uint16_t >( row, 1 );
+ isHidden = exdData->getField< bool >( row, 2 );
}
-Core::Data::GatheringItemLevelConvertTable::GatheringItemLevelConvertTable( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
+Core::Data::GatheringItemLevelConvertTable::GatheringItemLevelConvertTable( uint32_t row_id,
+ Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringItemLevelConvertTableDat.get_row( row_id );
- gatheringItemLevel = exdData->getField< uint8_t >( row, 0 );
- stars = exdData->getField< uint8_t >( row, 1 );
+ auto row = exdData->m_GatheringItemLevelConvertTableDat.get_row( row_id );
+ gatheringItemLevel = exdData->getField< uint8_t >( row, 0 );
+ stars = exdData->getField< uint8_t >( row, 1 );
}
Core::Data::GatheringItemPoint::GatheringItemPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringItemPointDat.get_row( row_id );
- gatheringPoint = exdData->getField< uint32_t >( row, 0 );
+ auto row = exdData->m_GatheringItemPointDat.get_row( row_id );
+ gatheringPoint = exdData->getField< uint32_t >( row, 0 );
}
Core::Data::GatheringNotebookList::GatheringNotebookList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringNotebookListDat.get_row( row_id );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 1 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 2 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 3 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 4 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 5 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 6 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 7 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 8 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 9 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 10 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 11 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 12 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 13 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 14 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 15 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 16 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 17 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 18 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 19 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 20 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 21 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 22 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 23 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 24 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 25 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 26 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 27 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 28 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 29 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 30 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 31 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 32 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 33 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 34 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 35 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 36 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 37 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 38 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 39 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 40 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 41 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 42 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 43 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 44 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 45 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 46 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 47 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 48 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 49 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 50 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 51 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 52 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 53 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 54 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 55 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 56 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 57 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 58 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 59 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 60 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 61 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 62 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 63 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 64 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 65 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 66 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 67 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 68 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 69 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 70 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 71 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 72 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 73 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 74 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 75 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 76 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 77 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 78 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 79 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 80 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 81 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 82 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 83 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 84 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 85 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 86 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 87 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 88 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 89 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 90 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 91 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 92 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 93 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 94 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 95 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 96 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 97 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 98 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 99 ) );
- gatheringItem.push_back( exdData->getField< int32_t >( row, 100 ) );
+ auto row = exdData->m_GatheringNotebookListDat.get_row( row_id );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 1 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 2 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 3 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 4 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 5 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 6 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 7 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 8 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 9 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 10 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 11 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 12 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 13 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 14 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 15 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 16 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 17 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 18 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 19 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 20 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 21 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 22 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 23 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 24 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 25 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 26 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 27 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 28 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 29 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 30 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 31 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 32 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 33 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 34 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 35 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 36 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 37 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 38 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 39 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 40 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 41 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 42 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 43 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 44 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 45 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 46 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 47 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 48 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 49 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 50 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 51 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 52 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 53 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 54 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 55 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 56 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 57 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 58 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 59 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 60 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 61 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 62 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 63 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 64 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 65 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 66 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 67 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 68 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 69 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 70 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 71 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 72 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 73 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 74 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 75 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 76 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 77 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 78 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 79 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 80 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 81 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 82 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 83 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 84 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 85 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 86 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 87 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 88 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 89 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 90 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 91 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 92 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 93 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 94 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 95 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 96 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 97 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 98 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 99 ) );
+ gatheringItem.push_back( exdData->getField< int32_t >( row, 100 ) );
}
Core::Data::GatheringPoint::GatheringPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringPointDat.get_row( row_id );
- gatheringPointBase = exdData->getField< int32_t >( row, 1 );
- gatheringPointBonus.push_back( exdData->getField< uint16_t >( row, 3 ) );
- gatheringPointBonus.push_back( exdData->getField< uint16_t >( row, 4 ) );
- territoryType = exdData->getField< uint16_t >( row, 5 );
- placeName = exdData->getField< uint16_t >( row, 6 );
- gatheringSubCategory = exdData->getField< uint16_t >( row, 7 );
+ auto row = exdData->m_GatheringPointDat.get_row( row_id );
+ gatheringPointBase = exdData->getField< int32_t >( row, 1 );
+ gatheringPointBonus.push_back( exdData->getField< uint16_t >( row, 3 ) );
+ gatheringPointBonus.push_back( exdData->getField< uint16_t >( row, 4 ) );
+ territoryType = exdData->getField< uint16_t >( row, 5 );
+ placeName = exdData->getField< uint16_t >( row, 6 );
+ gatheringSubCategory = exdData->getField< uint16_t >( row, 7 );
}
Core::Data::GatheringPointBase::GatheringPointBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringPointBaseDat.get_row( row_id );
- gatheringType = exdData->getField< int32_t >( row, 0 );
- gatheringLevel = exdData->getField< uint8_t >( row, 1 );
- item.push_back( exdData->getField< int32_t >( row, 2 ) );
- item.push_back( exdData->getField< int32_t >( row, 3 ) );
- item.push_back( exdData->getField< int32_t >( row, 4 ) );
- item.push_back( exdData->getField< int32_t >( row, 5 ) );
- item.push_back( exdData->getField< int32_t >( row, 6 ) );
- item.push_back( exdData->getField< int32_t >( row, 7 ) );
- item.push_back( exdData->getField< int32_t >( row, 8 ) );
- item.push_back( exdData->getField< int32_t >( row, 9 ) );
- isLimited = exdData->getField< bool >( row, 10 );
+ auto row = exdData->m_GatheringPointBaseDat.get_row( row_id );
+ gatheringType = exdData->getField< int32_t >( row, 0 );
+ gatheringLevel = exdData->getField< uint8_t >( row, 1 );
+ item.push_back( exdData->getField< int32_t >( row, 2 ) );
+ item.push_back( exdData->getField< int32_t >( row, 3 ) );
+ item.push_back( exdData->getField< int32_t >( row, 4 ) );
+ item.push_back( exdData->getField< int32_t >( row, 5 ) );
+ item.push_back( exdData->getField< int32_t >( row, 6 ) );
+ item.push_back( exdData->getField< int32_t >( row, 7 ) );
+ item.push_back( exdData->getField< int32_t >( row, 8 ) );
+ item.push_back( exdData->getField< int32_t >( row, 9 ) );
+ isLimited = exdData->getField< bool >( row, 10 );
}
Core::Data::GatheringPointBonus::GatheringPointBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringPointBonusDat.get_row( row_id );
- condition = exdData->getField< uint8_t >( row, 0 );
- conditionValue = exdData->getField< uint16_t >( row, 1 );
- bonusType = exdData->getField< uint8_t >( row, 3 );
- bonusValue = exdData->getField< uint16_t >( row, 4 );
+ auto row = exdData->m_GatheringPointBonusDat.get_row( row_id );
+ condition = exdData->getField< uint8_t >( row, 0 );
+ conditionValue = exdData->getField< uint16_t >( row, 1 );
+ bonusType = exdData->getField< uint8_t >( row, 3 );
+ bonusValue = exdData->getField< uint16_t >( row, 4 );
}
Core::Data::GatheringPointBonusType::GatheringPointBonusType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringPointBonusTypeDat.get_row( row_id );
- text = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_GatheringPointBonusTypeDat.get_row( row_id );
+ text = exdData->getField< std::string >( row, 0 );
}
Core::Data::GatheringPointName::GatheringPointName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringPointNameDat.get_row( row_id );
- singular = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
+ auto row = exdData->m_GatheringPointNameDat.get_row( row_id );
+ singular = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
}
Core::Data::GatheringSubCategory::GatheringSubCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringSubCategoryDat.get_row( row_id );
- item = exdData->getField< int32_t >( row, 4 );
- folkloreBook = exdData->getField< std::string >( row, 5 );
+ auto row = exdData->m_GatheringSubCategoryDat.get_row( row_id );
+ item = exdData->getField< int32_t >( row, 4 );
+ folkloreBook = exdData->getField< std::string >( row, 5 );
}
Core::Data::GatheringType::GatheringType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GatheringTypeDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- iconMain = exdData->getField< int32_t >( row, 1 );
- iconOff = exdData->getField< int32_t >( row, 2 );
+ auto row = exdData->m_GatheringTypeDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ iconMain = exdData->getField< int32_t >( row, 1 );
+ iconOff = exdData->getField< int32_t >( row, 2 );
}
Core::Data::GcArmyExpedition::GcArmyExpedition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GcArmyExpeditionDat.get_row( row_id );
- requiredFlag = exdData->getField< uint8_t >( row, 0 );
- unlockFlag = exdData->getField< uint8_t >( row, 1 );
- requiredLevel = exdData->getField< uint8_t >( row, 2 );
- requiredSeals = exdData->getField< uint16_t >( row, 3 );
- rewardExperience = exdData->getField< uint32_t >( row, 4 );
- percentBase = exdData->getField< uint8_t >( row, 5 );
- gcArmyExpeditionType = exdData->getField< uint8_t >( row, 7 );
- name = exdData->getField< std::string >( row, 8 );
- description = exdData->getField< std::string >( row, 9 );
+ auto row = exdData->m_GcArmyExpeditionDat.get_row( row_id );
+ requiredFlag = exdData->getField< uint8_t >( row, 0 );
+ unlockFlag = exdData->getField< uint8_t >( row, 1 );
+ requiredLevel = exdData->getField< uint8_t >( row, 2 );
+ requiredSeals = exdData->getField< uint16_t >( row, 3 );
+ rewardExperience = exdData->getField< uint32_t >( row, 4 );
+ percentBase = exdData->getField< uint8_t >( row, 5 );
+ gcArmyExpeditionType = exdData->getField< uint8_t >( row, 7 );
+ name = exdData->getField< std::string >( row, 8 );
+ description = exdData->getField< std::string >( row, 9 );
}
-Core::Data::GcArmyExpeditionMemberBonus::GcArmyExpeditionMemberBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
+Core::Data::GcArmyExpeditionMemberBonus::GcArmyExpeditionMemberBonus( uint32_t row_id,
+ Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GcArmyExpeditionMemberBonusDat.get_row( row_id );
- race = exdData->getField< uint8_t >( row, 0 );
- classJob = exdData->getField< uint8_t >( row, 1 );
+ auto row = exdData->m_GcArmyExpeditionMemberBonusDat.get_row( row_id );
+ race = exdData->getField< uint8_t >( row, 0 );
+ classJob = exdData->getField< uint8_t >( row, 1 );
}
Core::Data::GcArmyExpeditionType::GcArmyExpeditionType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GcArmyExpeditionTypeDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_GcArmyExpeditionTypeDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::GcArmyMemberGrow::GcArmyMemberGrow( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GcArmyMemberGrowDat.get_row( row_id );
- classJob = exdData->getField< uint8_t >( row, 0 );
- classBook = exdData->getField< int32_t >( row, 1 );
+ auto row = exdData->m_GcArmyMemberGrowDat.get_row( row_id );
+ classJob = exdData->getField< uint8_t >( row, 0 );
+ classBook = exdData->getField< int32_t >( row, 1 );
}
Core::Data::GcArmyTraining::GcArmyTraining( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GcArmyTrainingDat.get_row( row_id );
- physicalBonus = exdData->getField< int8_t >( row, 0 );
- mentalBonus = exdData->getField< int8_t >( row, 1 );
- tacticalBonus = exdData->getField< int8_t >( row, 2 );
- experience = exdData->getField< uint32_t >( row, 3 );
- name = exdData->getField< std::string >( row, 4 );
- description = exdData->getField< std::string >( row, 5 );
+ auto row = exdData->m_GcArmyTrainingDat.get_row( row_id );
+ physicalBonus = exdData->getField< int8_t >( row, 0 );
+ mentalBonus = exdData->getField< int8_t >( row, 1 );
+ tacticalBonus = exdData->getField< int8_t >( row, 2 );
+ experience = exdData->getField< uint32_t >( row, 3 );
+ name = exdData->getField< std::string >( row, 4 );
+ description = exdData->getField< std::string >( row, 5 );
}
Core::Data::GCRankGridaniaFemaleText::GCRankGridaniaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GCRankGridaniaFemaleTextDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
- nameRank = exdData->getField< std::string >( row, 8 );
+ auto row = exdData->m_GCRankGridaniaFemaleTextDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
+ nameRank = exdData->getField< std::string >( row, 8 );
}
Core::Data::GCRankGridaniaMaleText::GCRankGridaniaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GCRankGridaniaMaleTextDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
- nameRank = exdData->getField< std::string >( row, 8 );
+ auto row = exdData->m_GCRankGridaniaMaleTextDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
+ nameRank = exdData->getField< std::string >( row, 8 );
}
Core::Data::GCRankLimsaFemaleText::GCRankLimsaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GCRankLimsaFemaleTextDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
- nameRank = exdData->getField< std::string >( row, 8 );
+ auto row = exdData->m_GCRankLimsaFemaleTextDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
+ nameRank = exdData->getField< std::string >( row, 8 );
}
Core::Data::GCRankLimsaMaleText::GCRankLimsaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GCRankLimsaMaleTextDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
- nameRank = exdData->getField< std::string >( row, 8 );
+ auto row = exdData->m_GCRankLimsaMaleTextDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
+ nameRank = exdData->getField< std::string >( row, 8 );
}
Core::Data::GCRankUldahFemaleText::GCRankUldahFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GCRankUldahFemaleTextDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
- nameRank = exdData->getField< std::string >( row, 8 );
+ auto row = exdData->m_GCRankUldahFemaleTextDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
+ nameRank = exdData->getField< std::string >( row, 8 );
}
Core::Data::GCRankUldahMaleText::GCRankUldahMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GCRankUldahMaleTextDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
- nameRank = exdData->getField< std::string >( row, 8 );
+ auto row = exdData->m_GCRankUldahMaleTextDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
+ nameRank = exdData->getField< std::string >( row, 8 );
}
Core::Data::GCScripShopCategory::GCScripShopCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GCScripShopCategoryDat.get_row( row_id );
- grandCompany = exdData->getField< int8_t >( row, 0 );
- tier = exdData->getField< int8_t >( row, 1 );
- subCategory = exdData->getField< int8_t >( row, 2 );
+ auto row = exdData->m_GCScripShopCategoryDat.get_row( row_id );
+ grandCompany = exdData->getField< int8_t >( row, 0 );
+ tier = exdData->getField< int8_t >( row, 1 );
+ subCategory = exdData->getField< int8_t >( row, 2 );
}
Core::Data::GCScripShopItem::GCScripShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GCScripShopItemDat.get_row( row_id );
- item = exdData->getField< int32_t >( row, 0 );
- requiredGrandCompanyRank = exdData->getField< int32_t >( row, 1 );
- costGCSeals = exdData->getField< uint32_t >( row, 2 );
- sortKey = exdData->getField< uint8_t >( row, 3 );
+ auto row = exdData->m_GCScripShopItemDat.get_row( row_id );
+ item = exdData->getField< int32_t >( row, 0 );
+ requiredGrandCompanyRank = exdData->getField< int32_t >( row, 1 );
+ costGCSeals = exdData->getField< uint32_t >( row, 2 );
+ sortKey = exdData->getField< uint8_t >( row, 3 );
}
Core::Data::GCShop::GCShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GCShopDat.get_row( row_id );
- grandCompany = exdData->getField< int8_t >( row, 0 );
+ auto row = exdData->m_GCShopDat.get_row( row_id );
+ grandCompany = exdData->getField< int8_t >( row, 0 );
}
Core::Data::GCShopItemCategory::GCShopItemCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GCShopItemCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_GCShopItemCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::GCSupplyDuty::GCSupplyDuty( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GCSupplyDutyDat.get_row( row_id );
+ auto row = exdData->m_GCSupplyDutyDat.get_row( row_id );
}
Core::Data::GCSupplyDutyReward::GCSupplyDutyReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GCSupplyDutyRewardDat.get_row( row_id );
- experienceSupply = exdData->getField< uint32_t >( row, 0 );
- experienceProvisioning = exdData->getField< uint32_t >( row, 1 );
- sealsExpertDelivery = exdData->getField< uint32_t >( row, 2 );
- sealsSupply = exdData->getField< uint32_t >( row, 3 );
- sealsProvisioning = exdData->getField< uint32_t >( row, 4 );
+ auto row = exdData->m_GCSupplyDutyRewardDat.get_row( row_id );
+ experienceSupply = exdData->getField< uint32_t >( row, 0 );
+ experienceProvisioning = exdData->getField< uint32_t >( row, 1 );
+ sealsExpertDelivery = exdData->getField< uint32_t >( row, 2 );
+ sealsSupply = exdData->getField< uint32_t >( row, 3 );
+ sealsProvisioning = exdData->getField< uint32_t >( row, 4 );
}
Core::Data::GeneralAction::GeneralAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GeneralActionDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
- action = exdData->getField< uint16_t >( row, 3 );
- icon = exdData->getField< int32_t >( row, 7 );
+ auto row = exdData->m_GeneralActionDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
+ action = exdData->getField< uint16_t >( row, 3 );
+ icon = exdData->getField< int32_t >( row, 7 );
}
Core::Data::GilShop::GilShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GilShopDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_GilShopDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::GilShopItem::GilShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GilShopItemDat.get_row( row_id );
- item = exdData->getField< int32_t >( row, 0 );
- rowRequired.push_back( exdData->getField< int32_t >( row, 3 ) );
- rowRequired.push_back( exdData->getField< int32_t >( row, 4 ) );
- rowRequired.push_back( exdData->getField< int32_t >( row, 5 ) );
- stateRequired = exdData->getField< uint16_t >( row, 7 );
- patch = exdData->getField< uint16_t >( row, 8 );
+ auto row = exdData->m_GilShopItemDat.get_row( row_id );
+ item = exdData->getField< int32_t >( row, 0 );
+ rowRequired.push_back( exdData->getField< int32_t >( row, 3 ) );
+ rowRequired.push_back( exdData->getField< int32_t >( row, 4 ) );
+ rowRequired.push_back( exdData->getField< int32_t >( row, 5 ) );
+ stateRequired = exdData->getField< uint16_t >( row, 7 );
+ patch = exdData->getField< uint16_t >( row, 8 );
}
Core::Data::GoldSaucerTextData::GoldSaucerTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GoldSaucerTextDataDat.get_row( row_id );
- text = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_GoldSaucerTextDataDat.get_row( row_id );
+ text = exdData->getField< std::string >( row, 0 );
}
Core::Data::GrandCompany::GrandCompany( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GrandCompanyDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_GrandCompanyDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::GrandCompanyRank::GrandCompanyRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GrandCompanyRankDat.get_row( row_id );
- tier = exdData->getField< uint8_t >( row, 0 );
- order = exdData->getField< uint8_t >( row, 1 );
- maxSeals = exdData->getField< uint32_t >( row, 2 );
- requiredSeals = exdData->getField< uint32_t >( row, 3 );
- iconMaelstrom = exdData->getField< int32_t >( row, 4 );
- iconSerpents = exdData->getField< int32_t >( row, 5 );
- iconFlames = exdData->getField< int32_t >( row, 6 );
- questMaelstrom = exdData->getField< int32_t >( row, 7 );
- questSerpents = exdData->getField< int32_t >( row, 8 );
- questFlames = exdData->getField< int32_t >( row, 9 );
+ auto row = exdData->m_GrandCompanyRankDat.get_row( row_id );
+ tier = exdData->getField< uint8_t >( row, 0 );
+ order = exdData->getField< uint8_t >( row, 1 );
+ maxSeals = exdData->getField< uint32_t >( row, 2 );
+ requiredSeals = exdData->getField< uint32_t >( row, 3 );
+ iconMaelstrom = exdData->getField< int32_t >( row, 4 );
+ iconSerpents = exdData->getField< int32_t >( row, 5 );
+ iconFlames = exdData->getField< int32_t >( row, 6 );
+ questMaelstrom = exdData->getField< int32_t >( row, 7 );
+ questSerpents = exdData->getField< int32_t >( row, 8 );
+ questFlames = exdData->getField< int32_t >( row, 9 );
}
Core::Data::GuardianDeity::GuardianDeity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GuardianDeityDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
- icon = exdData->getField< uint16_t >( row, 2 );
+ auto row = exdData->m_GuardianDeityDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
+ icon = exdData->getField< uint16_t >( row, 2 );
}
Core::Data::GuildleveAssignment::GuildleveAssignment( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GuildleveAssignmentDat.get_row( row_id );
- quest.push_back( exdData->getField< uint32_t >( row, 2 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 3 ) );
+ auto row = exdData->m_GuildleveAssignmentDat.get_row( row_id );
+ quest.push_back( exdData->getField< uint32_t >( row, 2 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 3 ) );
}
Core::Data::GuildOrderGuide::GuildOrderGuide( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GuildOrderGuideDat.get_row( row_id );
+ auto row = exdData->m_GuildOrderGuideDat.get_row( row_id );
}
Core::Data::GuildOrderOfficer::GuildOrderOfficer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_GuildOrderOfficerDat.get_row( row_id );
+ auto row = exdData->m_GuildOrderOfficerDat.get_row( row_id );
}
Core::Data::HouseRetainerPose::HouseRetainerPose( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_HouseRetainerPoseDat.get_row( row_id );
- actionTimeline = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_HouseRetainerPoseDat.get_row( row_id );
+ actionTimeline = exdData->getField< uint16_t >( row, 0 );
}
Core::Data::HousingFurniture::HousingFurniture( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_HousingFurnitureDat.get_row( row_id );
- modelKey = exdData->getField< uint16_t >( row, 0 );
- housingItemCategory = exdData->getField< uint8_t >( row, 1 );
- usageType = exdData->getField< uint8_t >( row, 2 );
- usageParameter = exdData->getField< uint32_t >( row, 3 );
- housingLayoutLimit = exdData->getField< uint8_t >( row, 4 );
- event = exdData->getField< uint32_t >( row, 6 );
- item = exdData->getField< uint32_t >( row, 7 );
- destroyOnRemoval = exdData->getField< bool >( row, 8 );
+ auto row = exdData->m_HousingFurnitureDat.get_row( row_id );
+ modelKey = exdData->getField< uint16_t >( row, 0 );
+ housingItemCategory = exdData->getField< uint8_t >( row, 1 );
+ usageType = exdData->getField< uint8_t >( row, 2 );
+ usageParameter = exdData->getField< uint32_t >( row, 3 );
+ housingLayoutLimit = exdData->getField< uint8_t >( row, 4 );
+ event = exdData->getField< uint32_t >( row, 6 );
+ item = exdData->getField< uint32_t >( row, 7 );
+ destroyOnRemoval = exdData->getField< bool >( row, 8 );
}
Core::Data::HousingYardObject::HousingYardObject( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_HousingYardObjectDat.get_row( row_id );
- modelKey = exdData->getField< uint8_t >( row, 0 );
- housingItemCategory = exdData->getField< uint8_t >( row, 1 );
- usageType = exdData->getField< uint8_t >( row, 2 );
- usageParameter = exdData->getField< uint32_t >( row, 3 );
- housingLayoutLimit = exdData->getField< uint8_t >( row, 4 );
- event = exdData->getField< uint32_t >( row, 5 );
- item = exdData->getField< uint32_t >( row, 6 );
- destroyOnRemoval = exdData->getField< bool >( row, 7 );
+ auto row = exdData->m_HousingYardObjectDat.get_row( row_id );
+ modelKey = exdData->getField< uint8_t >( row, 0 );
+ housingItemCategory = exdData->getField< uint8_t >( row, 1 );
+ usageType = exdData->getField< uint8_t >( row, 2 );
+ usageParameter = exdData->getField< uint32_t >( row, 3 );
+ housingLayoutLimit = exdData->getField< uint8_t >( row, 4 );
+ event = exdData->getField< uint32_t >( row, 5 );
+ item = exdData->getField< uint32_t >( row, 6 );
+ destroyOnRemoval = exdData->getField< bool >( row, 7 );
}
Core::Data::InstanceContent::InstanceContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_InstanceContentDat.get_row( row_id );
- instanceContentType = exdData->getField< uint8_t >( row, 0 );
- weekRestriction = exdData->getField< uint8_t >( row, 1 );
- timeLimitmin = exdData->getField< uint16_t >( row, 2 );
- name = exdData->getField< std::string >( row, 3 );
- bGM = exdData->getField< uint16_t >( row, 5 );
- territoryType = exdData->getField< uint32_t >( row, 9 );
- instanceContentTextDataBossStart = exdData->getField< uint32_t >( row, 13 );
- instanceContentTextDataBossEnd = exdData->getField< uint32_t >( row, 14 );
- bNpcBaseBoss = exdData->getField< uint32_t >( row, 15 );
- instanceContentTextDataObjectiveStart = exdData->getField< uint32_t >( row, 16 );
- instanceContentTextDataObjectiveEnd = exdData->getField< uint32_t >( row, 17 );
- sortKey = exdData->getField< uint16_t >( row, 18 );
- newPlayerBonusA = exdData->getField< uint16_t >( row, 21 );
- newPlayerBonusB = exdData->getField< uint16_t >( row, 22 );
- finalBossCurrencyA = exdData->getField< uint16_t >( row, 24 );
- finalBossCurrencyB = exdData->getField< uint16_t >( row, 25 );
- finalBossCurrencyC = exdData->getField< uint16_t >( row, 26 );
- instanceContentBuff = exdData->getField< int32_t >( row, 52 );
- partyCondition = exdData->getField< uint8_t >( row, 56 );
+ auto row = exdData->m_InstanceContentDat.get_row( row_id );
+ instanceContentType = exdData->getField< uint8_t >( row, 0 );
+ weekRestriction = exdData->getField< uint8_t >( row, 1 );
+ timeLimitmin = exdData->getField< uint16_t >( row, 2 );
+ name = exdData->getField< std::string >( row, 3 );
+ bGM = exdData->getField< uint16_t >( row, 5 );
+ territoryType = exdData->getField< uint32_t >( row, 9 );
+ instanceContentTextDataBossStart = exdData->getField< uint32_t >( row, 13 );
+ instanceContentTextDataBossEnd = exdData->getField< uint32_t >( row, 14 );
+ bNpcBaseBoss = exdData->getField< uint32_t >( row, 15 );
+ instanceContentTextDataObjectiveStart = exdData->getField< uint32_t >( row, 16 );
+ instanceContentTextDataObjectiveEnd = exdData->getField< uint32_t >( row, 17 );
+ sortKey = exdData->getField< uint16_t >( row, 18 );
+ newPlayerBonusA = exdData->getField< uint16_t >( row, 21 );
+ newPlayerBonusB = exdData->getField< uint16_t >( row, 22 );
+ finalBossCurrencyA = exdData->getField< uint16_t >( row, 24 );
+ finalBossCurrencyB = exdData->getField< uint16_t >( row, 25 );
+ finalBossCurrencyC = exdData->getField< uint16_t >( row, 26 );
+ instanceContentBuff = exdData->getField< int32_t >( row, 52 );
+ partyCondition = exdData->getField< uint8_t >( row, 56 );
}
Core::Data::InstanceContentBuff::InstanceContentBuff( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_InstanceContentBuffDat.get_row( row_id );
- echoStart = exdData->getField< uint16_t >( row, 0 );
- echoDeath = exdData->getField< uint16_t >( row, 1 );
+ auto row = exdData->m_InstanceContentBuffDat.get_row( row_id );
+ echoStart = exdData->getField< uint16_t >( row, 0 );
+ echoDeath = exdData->getField< uint16_t >( row, 1 );
}
Core::Data::InstanceContentTextData::InstanceContentTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_InstanceContentTextDataDat.get_row( row_id );
- text = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_InstanceContentTextDataDat.get_row( row_id );
+ text = exdData->getField< std::string >( row, 0 );
}
Core::Data::Item::Item( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ItemDat.get_row( row_id );
- singular = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
- startsWithVowel = exdData->getField< int8_t >( row, 4 );
- description = exdData->getField< std::string >( row, 8 );
- name = exdData->getField< std::string >( row, 9 );
- icon = exdData->getField< uint16_t >( row, 10 );
- levelItem = exdData->getField< uint16_t >( row, 11 );
- rarity = exdData->getField< uint8_t >( row, 12 );
- filterGroup = exdData->getField< uint8_t >( row, 13 );
- stain = exdData->getField< uint32_t >( row, 14 );
- itemUICategory = exdData->getField< uint8_t >( row, 15 );
- itemSearchCategory = exdData->getField< uint8_t >( row, 16 );
- equipSlotCategory = exdData->getField< uint8_t >( row, 17 );
- stackSize = exdData->getField< uint32_t >( row, 19 );
- isUnique = exdData->getField< bool >( row, 20 );
- isUntradable = exdData->getField< bool >( row, 21 );
- isIndisposable = exdData->getField< bool >( row, 22 );
- priceMid = exdData->getField< uint32_t >( row, 24 );
- priceLow = exdData->getField< uint32_t >( row, 25 );
- canBeHq = exdData->getField< bool >( row, 26 );
- isDyeable = exdData->getField< bool >( row, 27 );
- isCrestWorthy = exdData->getField< bool >( row, 28 );
- itemAction = exdData->getField< uint16_t >( row, 29 );
- cooldowns = exdData->getField< uint16_t >( row, 31 );
- classJobRepair = exdData->getField< uint8_t >( row, 32 );
- itemRepair = exdData->getField< int32_t >( row, 33 );
- itemGlamour = exdData->getField< int32_t >( row, 34 );
- salvage = exdData->getField< uint16_t >( row, 35 );
- isCollectable = exdData->getField< bool >( row, 36 );
- aetherialReduce = exdData->getField< uint16_t >( row, 37 );
- levelEquip = exdData->getField< uint8_t >( row, 38 );
- equipRestriction = exdData->getField< uint8_t >( row, 40 );
- classJobCategory = exdData->getField< uint8_t >( row, 41 );
- grandCompany = exdData->getField< uint8_t >( row, 42 );
- itemSeries = exdData->getField< uint8_t >( row, 43 );
- baseParamModifier = exdData->getField< uint8_t >( row, 44 );
- modelMain = exdData->getField< uint64_t >( row, 45 );
- modelSub = exdData->getField< uint64_t >( row, 46 );
- classJobUse = exdData->getField< uint8_t >( row, 47 );
- damagePhys = exdData->getField< uint16_t >( row, 49 );
- damageMag = exdData->getField< uint16_t >( row, 50 );
- delayms = exdData->getField< uint16_t >( row, 51 );
- blockRate = exdData->getField< uint16_t >( row, 53 );
- block = exdData->getField< uint16_t >( row, 54 );
- defensePhys = exdData->getField< uint16_t >( row, 55 );
- defenseMag = exdData->getField< uint16_t >( row, 56 );
- itemSpecialBonus = exdData->getField< uint8_t >( row, 69 );
- itemSpecialBonusParam = exdData->getField< uint8_t >( row, 70 );
- materializeType = exdData->getField< uint8_t >( row, 83 );
- materiaSlotCount = exdData->getField< uint8_t >( row, 84 );
- isAdvancedMeldingPermitted = exdData->getField< bool >( row, 85 );
- isPvP = exdData->getField< bool >( row, 86 );
+ auto row = exdData->m_ItemDat.get_row( row_id );
+ singular = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
+ startsWithVowel = exdData->getField< int8_t >( row, 4 );
+ description = exdData->getField< std::string >( row, 8 );
+ name = exdData->getField< std::string >( row, 9 );
+ icon = exdData->getField< uint16_t >( row, 10 );
+ levelItem = exdData->getField< uint16_t >( row, 11 );
+ rarity = exdData->getField< uint8_t >( row, 12 );
+ filterGroup = exdData->getField< uint8_t >( row, 13 );
+ stain = exdData->getField< uint32_t >( row, 14 );
+ itemUICategory = exdData->getField< uint8_t >( row, 15 );
+ itemSearchCategory = exdData->getField< uint8_t >( row, 16 );
+ equipSlotCategory = exdData->getField< uint8_t >( row, 17 );
+ stackSize = exdData->getField< uint32_t >( row, 19 );
+ isUnique = exdData->getField< bool >( row, 20 );
+ isUntradable = exdData->getField< bool >( row, 21 );
+ isIndisposable = exdData->getField< bool >( row, 22 );
+ isEquippable = exdData->getField< bool >( row, 23 );
+ priceMid = exdData->getField< uint32_t >( row, 24 );
+ priceLow = exdData->getField< uint32_t >( row, 25 );
+ canBeHq = exdData->getField< bool >( row, 26 );
+ isDyeable = exdData->getField< bool >( row, 27 );
+ isCrestWorthy = exdData->getField< bool >( row, 28 );
+ itemAction = exdData->getField< uint16_t >( row, 29 );
+ cooldowns = exdData->getField< uint16_t >( row, 31 );
+ classJobRepair = exdData->getField< uint8_t >( row, 32 );
+ itemRepair = exdData->getField< int32_t >( row, 33 );
+ itemGlamour = exdData->getField< int32_t >( row, 34 );
+ salvage = exdData->getField< uint16_t >( row, 35 );
+ isCollectable = exdData->getField< bool >( row, 36 );
+ aetherialReduce = exdData->getField< uint16_t >( row, 37 );
+ levelEquip = exdData->getField< uint8_t >( row, 38 );
+ equipRestriction = exdData->getField< uint8_t >( row, 40 );
+ classJobCategory = exdData->getField< uint8_t >( row, 41 );
+ grandCompany = exdData->getField< uint8_t >( row, 42 );
+ itemSeries = exdData->getField< uint8_t >( row, 43 );
+ baseParamModifier = exdData->getField< uint8_t >( row, 44 );
+ modelMain = exdData->getField< uint64_t >( row, 45 );
+ modelSub = exdData->getField< uint64_t >( row, 46 );
+ classJobUse = exdData->getField< uint8_t >( row, 47 );
+ damagePhys = exdData->getField< uint16_t >( row, 49 );
+ damageMag = exdData->getField< uint16_t >( row, 50 );
+ delayms = exdData->getField< uint16_t >( row, 51 );
+ blockRate = exdData->getField< uint16_t >( row, 53 );
+ block = exdData->getField< uint16_t >( row, 54 );
+ defensePhys = exdData->getField< uint16_t >( row, 55 );
+ defenseMag = exdData->getField< uint16_t >( row, 56 );
+ itemSpecialBonus = exdData->getField< uint8_t >( row, 69 );
+ itemSpecialBonusParam = exdData->getField< uint8_t >( row, 70 );
+ materializeType = exdData->getField< uint8_t >( row, 83 );
+ materiaSlotCount = exdData->getField< uint8_t >( row, 84 );
+ isAdvancedMeldingPermitted = exdData->getField< bool >( row, 85 );
+ isPvP = exdData->getField< bool >( row, 86 );
}
Core::Data::ItemAction::ItemAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ItemActionDat.get_row( row_id );
- type = exdData->getField< uint16_t >( row, 4 );
- data.push_back( exdData->getField< uint16_t >( row, 5 ) );
- data.push_back( exdData->getField< uint16_t >( row, 6 ) );
- data.push_back( exdData->getField< uint16_t >( row, 7 ) );
- data.push_back( exdData->getField< uint16_t >( row, 8 ) );
- data.push_back( exdData->getField< uint16_t >( row, 9 ) );
- data.push_back( exdData->getField< uint16_t >( row, 10 ) );
- data.push_back( exdData->getField< uint16_t >( row, 11 ) );
- data.push_back( exdData->getField< uint16_t >( row, 12 ) );
- data.push_back( exdData->getField< uint16_t >( row, 13 ) );
- dataHQ.push_back( exdData->getField< uint16_t >( row, 14 ) );
- dataHQ.push_back( exdData->getField< uint16_t >( row, 15 ) );
- dataHQ.push_back( exdData->getField< uint16_t >( row, 16 ) );
- dataHQ.push_back( exdData->getField< uint16_t >( row, 17 ) );
- dataHQ.push_back( exdData->getField< uint16_t >( row, 18 ) );
- dataHQ.push_back( exdData->getField< uint16_t >( row, 19 ) );
- dataHQ.push_back( exdData->getField< uint16_t >( row, 20 ) );
- dataHQ.push_back( exdData->getField< uint16_t >( row, 21 ) );
- dataHQ.push_back( exdData->getField< uint16_t >( row, 22 ) );
+ auto row = exdData->m_ItemActionDat.get_row( row_id );
+ type = exdData->getField< uint16_t >( row, 4 );
+ data.push_back( exdData->getField< uint16_t >( row, 5 ) );
+ data.push_back( exdData->getField< uint16_t >( row, 6 ) );
+ data.push_back( exdData->getField< uint16_t >( row, 7 ) );
+ data.push_back( exdData->getField< uint16_t >( row, 8 ) );
+ data.push_back( exdData->getField< uint16_t >( row, 9 ) );
+ data.push_back( exdData->getField< uint16_t >( row, 10 ) );
+ data.push_back( exdData->getField< uint16_t >( row, 11 ) );
+ data.push_back( exdData->getField< uint16_t >( row, 12 ) );
+ data.push_back( exdData->getField< uint16_t >( row, 13 ) );
+ dataHQ.push_back( exdData->getField< uint16_t >( row, 14 ) );
+ dataHQ.push_back( exdData->getField< uint16_t >( row, 15 ) );
+ dataHQ.push_back( exdData->getField< uint16_t >( row, 16 ) );
+ dataHQ.push_back( exdData->getField< uint16_t >( row, 17 ) );
+ dataHQ.push_back( exdData->getField< uint16_t >( row, 18 ) );
+ dataHQ.push_back( exdData->getField< uint16_t >( row, 19 ) );
+ dataHQ.push_back( exdData->getField< uint16_t >( row, 20 ) );
+ dataHQ.push_back( exdData->getField< uint16_t >( row, 21 ) );
+ dataHQ.push_back( exdData->getField< uint16_t >( row, 22 ) );
}
Core::Data::ItemFood::ItemFood( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ItemFoodDat.get_row( row_id );
+ auto row = exdData->m_ItemFoodDat.get_row( row_id );
}
Core::Data::ItemSearchCategory::ItemSearchCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ItemSearchCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- icon = exdData->getField< int32_t >( row, 1 );
- category = exdData->getField< uint8_t >( row, 2 );
- order = exdData->getField< uint8_t >( row, 3 );
- classJob = exdData->getField< int8_t >( row, 4 );
+ auto row = exdData->m_ItemSearchCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ icon = exdData->getField< int32_t >( row, 1 );
+ category = exdData->getField< uint8_t >( row, 2 );
+ order = exdData->getField< uint8_t >( row, 3 );
+ classJob = exdData->getField< int8_t >( row, 4 );
}
Core::Data::ItemSeries::ItemSeries( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ItemSeriesDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_ItemSeriesDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::ItemSpecialBonus::ItemSpecialBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ItemSpecialBonusDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_ItemSpecialBonusDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::ItemUICategory::ItemUICategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ItemUICategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- icon = exdData->getField< int32_t >( row, 1 );
- orderMinor = exdData->getField< uint8_t >( row, 2 );
- orderMajor = exdData->getField< uint8_t >( row, 3 );
+ auto row = exdData->m_ItemUICategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ icon = exdData->getField< int32_t >( row, 1 );
+ orderMinor = exdData->getField< uint8_t >( row, 2 );
+ orderMajor = exdData->getField< uint8_t >( row, 3 );
}
Core::Data::JournalCategory::JournalCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_JournalCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- journalSection = exdData->getField< uint8_t >( row, 3 );
+ auto row = exdData->m_JournalCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ journalSection = exdData->getField< uint8_t >( row, 3 );
}
Core::Data::JournalGenre::JournalGenre( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_JournalGenreDat.get_row( row_id );
- icon = exdData->getField< int32_t >( row, 0 );
- journalCategory = exdData->getField< uint8_t >( row, 1 );
- name = exdData->getField< std::string >( row, 2 );
+ auto row = exdData->m_JournalGenreDat.get_row( row_id );
+ icon = exdData->getField< int32_t >( row, 0 );
+ journalCategory = exdData->getField< uint8_t >( row, 1 );
+ name = exdData->getField< std::string >( row, 2 );
}
Core::Data::JournalSection::JournalSection( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_JournalSectionDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_JournalSectionDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::Leve::Leve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_LeveDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
- leveClient = exdData->getField< int32_t >( row, 2 );
- leveAssignmentType = exdData->getField< int32_t >( row, 3 );
- classJobLevel = exdData->getField< uint16_t >( row, 5 );
- allowanceCost = exdData->getField< uint8_t >( row, 7 );
- placeNameStart = exdData->getField< int32_t >( row, 9 );
- placeNameIssued = exdData->getField< int32_t >( row, 10 );
- classJobCategory = exdData->getField< uint8_t >( row, 12 );
- journalGenre = exdData->getField< int32_t >( row, 13 );
- placeNameStartZone = exdData->getField< int32_t >( row, 15 );
- iconCityState = exdData->getField< int32_t >( row, 16 );
- dataId = exdData->getField< int32_t >( row, 17 );
- expReward = exdData->getField< uint32_t >( row, 21 );
- gilReward = exdData->getField< uint32_t >( row, 22 );
- leveRewardItem = exdData->getField< uint16_t >( row, 23 );
- leveVfx = exdData->getField< uint8_t >( row, 24 );
- leveVfxFrame = exdData->getField< uint8_t >( row, 25 );
- levelLevemete = exdData->getField< uint32_t >( row, 26 );
- iconIssuer = exdData->getField< int32_t >( row, 27 );
- levelStart = exdData->getField< uint32_t >( row, 29 );
- bGM = exdData->getField< uint16_t >( row, 30 );
+ auto row = exdData->m_LeveDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
+ leveClient = exdData->getField< int32_t >( row, 2 );
+ leveAssignmentType = exdData->getField< int32_t >( row, 3 );
+ classJobLevel = exdData->getField< uint16_t >( row, 5 );
+ allowanceCost = exdData->getField< uint8_t >( row, 7 );
+ placeNameStart = exdData->getField< int32_t >( row, 9 );
+ placeNameIssued = exdData->getField< int32_t >( row, 10 );
+ classJobCategory = exdData->getField< uint8_t >( row, 12 );
+ journalGenre = exdData->getField< int32_t >( row, 13 );
+ placeNameStartZone = exdData->getField< int32_t >( row, 15 );
+ iconCityState = exdData->getField< int32_t >( row, 16 );
+ dataId = exdData->getField< int32_t >( row, 17 );
+ expReward = exdData->getField< uint32_t >( row, 21 );
+ gilReward = exdData->getField< uint32_t >( row, 22 );
+ leveRewardItem = exdData->getField< uint16_t >( row, 23 );
+ leveVfx = exdData->getField< uint8_t >( row, 24 );
+ leveVfxFrame = exdData->getField< uint8_t >( row, 25 );
+ levelLevemete = exdData->getField< uint32_t >( row, 26 );
+ iconIssuer = exdData->getField< int32_t >( row, 27 );
+ levelStart = exdData->getField< uint32_t >( row, 29 );
+ bGM = exdData->getField< uint16_t >( row, 30 );
}
Core::Data::LeveAssignmentType::LeveAssignmentType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_LeveAssignmentTypeDat.get_row( row_id );
- isFaction = exdData->getField< bool >( row, 0 );
- icon = exdData->getField< int32_t >( row, 1 );
- name = exdData->getField< std::string >( row, 2 );
+ auto row = exdData->m_LeveAssignmentTypeDat.get_row( row_id );
+ isFaction = exdData->getField< bool >( row, 0 );
+ icon = exdData->getField< int32_t >( row, 1 );
+ name = exdData->getField< std::string >( row, 2 );
}
Core::Data::LeveClient::LeveClient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_LeveClientDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_LeveClientDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::Level::Level( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_LevelDat.get_row( row_id );
- x = exdData->getField< float >( row, 0 );
- y = exdData->getField< float >( row, 1 );
- z = exdData->getField< float >( row, 2 );
- yaw = exdData->getField< float >( row, 3 );
- radius = exdData->getField< float >( row, 4 );
- type = exdData->getField< uint8_t >( row, 5 );
- objectKey = exdData->getField< uint32_t >( row, 6 );
- map = exdData->getField< uint16_t >( row, 7 );
- eventId = exdData->getField< uint32_t >( row, 8 );
- territory = exdData->getField< uint16_t >( row, 9 );
+ auto row = exdData->m_LevelDat.get_row( row_id );
+ x = exdData->getField< float >( row, 0 );
+ y = exdData->getField< float >( row, 1 );
+ z = exdData->getField< float >( row, 2 );
+ yaw = exdData->getField< float >( row, 3 );
+ radius = exdData->getField< float >( row, 4 );
+ type = exdData->getField< uint8_t >( row, 5 );
+ objectKey = exdData->getField< uint32_t >( row, 6 );
+ map = exdData->getField< uint16_t >( row, 7 );
+ eventId = exdData->getField< uint32_t >( row, 8 );
+ territory = exdData->getField< uint16_t >( row, 9 );
}
Core::Data::LeveRewardItem::LeveRewardItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_LeveRewardItemDat.get_row( row_id );
+ auto row = exdData->m_LeveRewardItemDat.get_row( row_id );
}
Core::Data::LeveRewardItemGroup::LeveRewardItemGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_LeveRewardItemGroupDat.get_row( row_id );
+ auto row = exdData->m_LeveRewardItemGroupDat.get_row( row_id );
}
Core::Data::LeveVfx::LeveVfx( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_LeveVfxDat.get_row( row_id );
- effect = exdData->getField< std::string >( row, 0 );
- icon = exdData->getField< int32_t >( row, 1 );
+ auto row = exdData->m_LeveVfxDat.get_row( row_id );
+ effect = exdData->getField< std::string >( row, 0 );
+ icon = exdData->getField< int32_t >( row, 1 );
}
Core::Data::LogFilter::LogFilter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_LogFilterDat.get_row( row_id );
- logKind = exdData->getField< uint16_t >( row, 1 );
- name = exdData->getField< std::string >( row, 6 );
- example = exdData->getField< std::string >( row, 7 );
+ auto row = exdData->m_LogFilterDat.get_row( row_id );
+ logKind = exdData->getField< uint16_t >( row, 1 );
+ name = exdData->getField< std::string >( row, 6 );
+ example = exdData->getField< std::string >( row, 7 );
}
Core::Data::LogKind::LogKind( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_LogKindDat.get_row( row_id );
- format = exdData->getField< std::string >( row, 1 );
- name = exdData->getField< std::string >( row, 2 );
- example = exdData->getField< std::string >( row, 3 );
- logKindCategoryText = exdData->getField< uint8_t >( row, 4 );
+ auto row = exdData->m_LogKindDat.get_row( row_id );
+ format = exdData->getField< std::string >( row, 1 );
+ name = exdData->getField< std::string >( row, 2 );
+ example = exdData->getField< std::string >( row, 3 );
+ logKindCategoryText = exdData->getField< uint8_t >( row, 4 );
}
Core::Data::LogKindCategoryText::LogKindCategoryText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_LogKindCategoryTextDat.get_row( row_id );
- text = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_LogKindCategoryTextDat.get_row( row_id );
+ text = exdData->getField< std::string >( row, 0 );
}
Core::Data::LogMessage::LogMessage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_LogMessageDat.get_row( row_id );
- logKind = exdData->getField< uint16_t >( row, 0 );
- text = exdData->getField< std::string >( row, 4 );
+ auto row = exdData->m_LogMessageDat.get_row( row_id );
+ logKind = exdData->getField< uint16_t >( row, 0 );
+ text = exdData->getField< std::string >( row, 4 );
}
Core::Data::MacroIcon::MacroIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MacroIconDat.get_row( row_id );
- icon = exdData->getField< int32_t >( row, 0 );
+ auto row = exdData->m_MacroIconDat.get_row( row_id );
+ icon = exdData->getField< int32_t >( row, 0 );
}
Core::Data::MacroIconRedirectOld::MacroIconRedirectOld( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MacroIconRedirectOldDat.get_row( row_id );
- iconOld = exdData->getField< uint32_t >( row, 0 );
- iconNew = exdData->getField< int32_t >( row, 1 );
+ auto row = exdData->m_MacroIconRedirectOldDat.get_row( row_id );
+ iconOld = exdData->getField< uint32_t >( row, 0 );
+ iconNew = exdData->getField< int32_t >( row, 1 );
}
Core::Data::MainCommand::MainCommand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MainCommandDat.get_row( row_id );
- icon = exdData->getField< int32_t >( row, 0 );
- mainCommandCategory = exdData->getField< uint8_t >( row, 2 );
- name = exdData->getField< std::string >( row, 4 );
- description = exdData->getField< std::string >( row, 5 );
+ auto row = exdData->m_MainCommandDat.get_row( row_id );
+ icon = exdData->getField< int32_t >( row, 0 );
+ mainCommandCategory = exdData->getField< uint8_t >( row, 2 );
+ name = exdData->getField< std::string >( row, 4 );
+ description = exdData->getField< std::string >( row, 5 );
}
Core::Data::MainCommandCategory::MainCommandCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MainCommandCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_MainCommandCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 1 );
}
Core::Data::Map::Map( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MapDat.get_row( row_id );
- hierarchy = exdData->getField< uint8_t >( row, 3 );
- mapMarkerRange = exdData->getField< uint16_t >( row, 4 );
- id = exdData->getField< std::string >( row, 5 );
- sizeFactor = exdData->getField< uint16_t >( row, 6 );
- offsetX = exdData->getField< int16_t >( row, 7 );
- offsetY = exdData->getField< int16_t >( row, 8 );
- placeNameRegion = exdData->getField< uint16_t >( row, 9 );
- placeName = exdData->getField< uint16_t >( row, 10 );
- placeNameSub = exdData->getField< uint16_t >( row, 11 );
- discoveryIndex = exdData->getField< int16_t >( row, 12 );
- territoryType = exdData->getField< uint16_t >( row, 14 );
- discoveryArrayByte = exdData->getField< bool >( row, 15 );
+ auto row = exdData->m_MapDat.get_row( row_id );
+ hierarchy = exdData->getField< uint8_t >( row, 3 );
+ mapMarkerRange = exdData->getField< uint16_t >( row, 4 );
+ id = exdData->getField< std::string >( row, 5 );
+ sizeFactor = exdData->getField< uint16_t >( row, 6 );
+ offsetX = exdData->getField< int16_t >( row, 7 );
+ offsetY = exdData->getField< int16_t >( row, 8 );
+ placeNameRegion = exdData->getField< uint16_t >( row, 9 );
+ placeName = exdData->getField< uint16_t >( row, 10 );
+ placeNameSub = exdData->getField< uint16_t >( row, 11 );
+ discoveryIndex = exdData->getField< int16_t >( row, 12 );
+ territoryType = exdData->getField< uint16_t >( row, 14 );
+ discoveryArrayByte = exdData->getField< bool >( row, 15 );
}
Core::Data::MapMarker::MapMarker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MapMarkerDat.get_row( row_id );
- x = exdData->getField< int16_t >( row, 0 );
- y = exdData->getField< int16_t >( row, 1 );
- icon = exdData->getField< uint16_t >( row, 2 );
- placeNameSubtext = exdData->getField< uint16_t >( row, 3 );
- subtextOrientation = exdData->getField< uint8_t >( row, 4 );
- mapMarkerRegion = exdData->getField< uint8_t >( row, 5 );
- type = exdData->getField< uint8_t >( row, 6 );
- dataType = exdData->getField< uint8_t >( row, 7 );
- dataKey = exdData->getField< uint16_t >( row, 8 );
+ auto row = exdData->m_MapMarkerDat.get_row( row_id );
+ x = exdData->getField< int16_t >( row, 0 );
+ y = exdData->getField< int16_t >( row, 1 );
+ icon = exdData->getField< uint16_t >( row, 2 );
+ placeNameSubtext = exdData->getField< uint16_t >( row, 3 );
+ subtextOrientation = exdData->getField< uint8_t >( row, 4 );
+ mapMarkerRegion = exdData->getField< uint8_t >( row, 5 );
+ type = exdData->getField< uint8_t >( row, 6 );
+ dataType = exdData->getField< uint8_t >( row, 7 );
+ dataKey = exdData->getField< uint16_t >( row, 8 );
}
Core::Data::MapMarkerRegion::MapMarkerRegion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MapMarkerRegionDat.get_row( row_id );
- x = exdData->getField< int16_t >( row, 0 );
+ auto row = exdData->m_MapMarkerRegionDat.get_row( row_id );
+ x = exdData->getField< int16_t >( row, 0 );
}
Core::Data::MapSymbol::MapSymbol( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MapSymbolDat.get_row( row_id );
- icon = exdData->getField< int32_t >( row, 0 );
- placeName = exdData->getField< int32_t >( row, 1 );
+ auto row = exdData->m_MapSymbolDat.get_row( row_id );
+ icon = exdData->getField< int32_t >( row, 0 );
+ placeName = exdData->getField< int32_t >( row, 1 );
}
Core::Data::Marker::Marker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MarkerDat.get_row( row_id );
- icon = exdData->getField< int32_t >( row, 0 );
- name = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_MarkerDat.get_row( row_id );
+ icon = exdData->getField< int32_t >( row, 0 );
+ name = exdData->getField< std::string >( row, 1 );
}
Core::Data::MasterpieceSupplyDuty::MasterpieceSupplyDuty( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MasterpieceSupplyDutyDat.get_row( row_id );
- classJob = exdData->getField< uint8_t >( row, 0 );
- classJobLevel = exdData->getField< uint8_t >( row, 1 );
- rewardCurrency = exdData->getField< uint16_t >( row, 2 );
+ auto row = exdData->m_MasterpieceSupplyDutyDat.get_row( row_id );
+ classJob = exdData->getField< uint8_t >( row, 0 );
+ classJobLevel = exdData->getField< uint8_t >( row, 1 );
+ rewardCurrency = exdData->getField< uint16_t >( row, 2 );
}
-Core::Data::MasterpieceSupplyMultiplier::MasterpieceSupplyMultiplier( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
+Core::Data::MasterpieceSupplyMultiplier::MasterpieceSupplyMultiplier( uint32_t row_id,
+ Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MasterpieceSupplyMultiplierDat.get_row( row_id );
- xpMultiplier.push_back( exdData->getField< uint16_t >( row, 0 ) );
- xpMultiplier.push_back( exdData->getField< uint16_t >( row, 1 ) );
- currencyMultiplier.push_back( exdData->getField< uint16_t >( row, 4 ) );
- currencyMultiplier.push_back( exdData->getField< uint16_t >( row, 5 ) );
+ auto row = exdData->m_MasterpieceSupplyMultiplierDat.get_row( row_id );
+ xpMultiplier.push_back( exdData->getField< uint16_t >( row, 0 ) );
+ xpMultiplier.push_back( exdData->getField< uint16_t >( row, 1 ) );
+ currencyMultiplier.push_back( exdData->getField< uint16_t >( row, 4 ) );
+ currencyMultiplier.push_back( exdData->getField< uint16_t >( row, 5 ) );
}
Core::Data::Materia::Materia( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MateriaDat.get_row( row_id );
- item.push_back( exdData->getField< int32_t >( row, 0 ) );
- item.push_back( exdData->getField< int32_t >( row, 1 ) );
- item.push_back( exdData->getField< int32_t >( row, 2 ) );
- item.push_back( exdData->getField< int32_t >( row, 3 ) );
- item.push_back( exdData->getField< int32_t >( row, 4 ) );
- item.push_back( exdData->getField< int32_t >( row, 5 ) );
- item.push_back( exdData->getField< int32_t >( row, 6 ) );
- item.push_back( exdData->getField< int32_t >( row, 7 ) );
- item.push_back( exdData->getField< int32_t >( row, 8 ) );
- item.push_back( exdData->getField< int32_t >( row, 9 ) );
- baseParam = exdData->getField< uint8_t >( row, 10 );
- value.push_back( exdData->getField< uint8_t >( row, 11 ) );
- value.push_back( exdData->getField< uint8_t >( row, 12 ) );
- value.push_back( exdData->getField< uint8_t >( row, 13 ) );
- value.push_back( exdData->getField< uint8_t >( row, 14 ) );
- value.push_back( exdData->getField< uint8_t >( row, 15 ) );
- value.push_back( exdData->getField< uint8_t >( row, 16 ) );
- value.push_back( exdData->getField< uint8_t >( row, 17 ) );
- value.push_back( exdData->getField< uint8_t >( row, 18 ) );
- value.push_back( exdData->getField< uint8_t >( row, 19 ) );
- value.push_back( exdData->getField< uint8_t >( row, 20 ) );
+ auto row = exdData->m_MateriaDat.get_row( row_id );
+ item.push_back( exdData->getField< int32_t >( row, 0 ) );
+ item.push_back( exdData->getField< int32_t >( row, 1 ) );
+ item.push_back( exdData->getField< int32_t >( row, 2 ) );
+ item.push_back( exdData->getField< int32_t >( row, 3 ) );
+ item.push_back( exdData->getField< int32_t >( row, 4 ) );
+ item.push_back( exdData->getField< int32_t >( row, 5 ) );
+ item.push_back( exdData->getField< int32_t >( row, 6 ) );
+ item.push_back( exdData->getField< int32_t >( row, 7 ) );
+ item.push_back( exdData->getField< int32_t >( row, 8 ) );
+ item.push_back( exdData->getField< int32_t >( row, 9 ) );
+ baseParam = exdData->getField< uint8_t >( row, 10 );
+ value.push_back( exdData->getField< uint8_t >( row, 11 ) );
+ value.push_back( exdData->getField< uint8_t >( row, 12 ) );
+ value.push_back( exdData->getField< uint8_t >( row, 13 ) );
+ value.push_back( exdData->getField< uint8_t >( row, 14 ) );
+ value.push_back( exdData->getField< uint8_t >( row, 15 ) );
+ value.push_back( exdData->getField< uint8_t >( row, 16 ) );
+ value.push_back( exdData->getField< uint8_t >( row, 17 ) );
+ value.push_back( exdData->getField< uint8_t >( row, 18 ) );
+ value.push_back( exdData->getField< uint8_t >( row, 19 ) );
+ value.push_back( exdData->getField< uint8_t >( row, 20 ) );
}
Core::Data::MinionRace::MinionRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MinionRaceDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_MinionRaceDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::MinionRules::MinionRules( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MinionRulesDat.get_row( row_id );
- rule = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_MinionRulesDat.get_row( row_id );
+ rule = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
}
Core::Data::MinionSkillType::MinionSkillType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MinionSkillTypeDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_MinionSkillTypeDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::MobHuntTarget::MobHuntTarget( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MobHuntTargetDat.get_row( row_id );
- name = exdData->getField< uint16_t >( row, 0 );
- fATE = exdData->getField< uint16_t >( row, 1 );
- icon = exdData->getField< uint32_t >( row, 2 );
- territoryType = exdData->getField< uint16_t >( row, 3 );
- placeName = exdData->getField< uint16_t >( row, 4 );
+ auto row = exdData->m_MobHuntTargetDat.get_row( row_id );
+ name = exdData->getField< uint16_t >( row, 0 );
+ fATE = exdData->getField< uint16_t >( row, 1 );
+ icon = exdData->getField< uint32_t >( row, 2 );
+ territoryType = exdData->getField< uint16_t >( row, 3 );
+ placeName = exdData->getField< uint16_t >( row, 4 );
}
Core::Data::ModelChara::ModelChara( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ModelCharaDat.get_row( row_id );
- type = exdData->getField< uint8_t >( row, 0 );
- model = exdData->getField< uint16_t >( row, 1 );
- base = exdData->getField< uint8_t >( row, 2 );
- variant = exdData->getField< uint8_t >( row, 3 );
+ auto row = exdData->m_ModelCharaDat.get_row( row_id );
+ type = exdData->getField< uint8_t >( row, 0 );
+ model = exdData->getField< uint16_t >( row, 1 );
+ base = exdData->getField< uint8_t >( row, 2 );
+ variant = exdData->getField< uint8_t >( row, 3 );
}
Core::Data::MonsterNote::MonsterNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MonsterNoteDat.get_row( row_id );
- monsterNoteTarget.push_back( exdData->getField< uint16_t >( row, 0 ) );
- monsterNoteTarget.push_back( exdData->getField< uint16_t >( row, 1 ) );
- monsterNoteTarget.push_back( exdData->getField< uint16_t >( row, 2 ) );
- monsterNoteTarget.push_back( exdData->getField< uint16_t >( row, 3 ) );
- count.push_back( exdData->getField< uint8_t >( row, 4 ) );
- count.push_back( exdData->getField< uint8_t >( row, 5 ) );
- count.push_back( exdData->getField< uint8_t >( row, 6 ) );
- count.push_back( exdData->getField< uint8_t >( row, 7 ) );
- reward = exdData->getField< uint32_t >( row, 8 );
- name = exdData->getField< std::string >( row, 9 );
+ auto row = exdData->m_MonsterNoteDat.get_row( row_id );
+ monsterNoteTarget.push_back( exdData->getField< uint16_t >( row, 0 ) );
+ monsterNoteTarget.push_back( exdData->getField< uint16_t >( row, 1 ) );
+ monsterNoteTarget.push_back( exdData->getField< uint16_t >( row, 2 ) );
+ monsterNoteTarget.push_back( exdData->getField< uint16_t >( row, 3 ) );
+ count.push_back( exdData->getField< uint8_t >( row, 4 ) );
+ count.push_back( exdData->getField< uint8_t >( row, 5 ) );
+ count.push_back( exdData->getField< uint8_t >( row, 6 ) );
+ count.push_back( exdData->getField< uint8_t >( row, 7 ) );
+ reward = exdData->getField< uint32_t >( row, 8 );
+ name = exdData->getField< std::string >( row, 9 );
}
Core::Data::MonsterNoteTarget::MonsterNoteTarget( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MonsterNoteTargetDat.get_row( row_id );
- bNpcName = exdData->getField< uint16_t >( row, 0 );
- icon = exdData->getField< int32_t >( row, 1 );
+ auto row = exdData->m_MonsterNoteTargetDat.get_row( row_id );
+ bNpcName = exdData->getField< uint16_t >( row, 0 );
+ icon = exdData->getField< int32_t >( row, 1 );
}
Core::Data::Mount::Mount( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MountDat.get_row( row_id );
- singular = exdData->getField< std::string >( row, 0 );
- plural = exdData->getField< std::string >( row, 2 );
- flyingCondition = exdData->getField< uint8_t >( row, 10 );
- isFlying = exdData->getField< uint8_t >( row, 14 );
- rideBGM = exdData->getField< uint16_t >( row, 17 );
- order = exdData->getField< int16_t >( row, 29 );
- icon = exdData->getField< uint16_t >( row, 30 );
+ auto row = exdData->m_MountDat.get_row( row_id );
+ singular = exdData->getField< std::string >( row, 0 );
+ plural = exdData->getField< std::string >( row, 2 );
+ flyingCondition = exdData->getField< uint8_t >( row, 10 );
+ isFlying = exdData->getField< uint8_t >( row, 14 );
+ rideBGM = exdData->getField< uint16_t >( row, 17 );
+ order = exdData->getField< int16_t >( row, 29 );
+ icon = exdData->getField< uint16_t >( row, 30 );
}
Core::Data::MountAction::MountAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MountActionDat.get_row( row_id );
- action.push_back( exdData->getField< uint16_t >( row, 0 ) );
- action.push_back( exdData->getField< uint16_t >( row, 1 ) );
- action.push_back( exdData->getField< uint16_t >( row, 2 ) );
- action.push_back( exdData->getField< uint16_t >( row, 3 ) );
- action.push_back( exdData->getField< uint16_t >( row, 4 ) );
- action.push_back( exdData->getField< uint16_t >( row, 5 ) );
+ auto row = exdData->m_MountActionDat.get_row( row_id );
+ action.push_back( exdData->getField< uint16_t >( row, 0 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 1 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 2 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 3 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 4 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 5 ) );
}
Core::Data::MoveTimeline::MoveTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MoveTimelineDat.get_row( row_id );
- idle = exdData->getField< uint16_t >( row, 0 );
- moveForward = exdData->getField< uint16_t >( row, 1 );
- moveBack = exdData->getField< uint16_t >( row, 2 );
- moveLeft = exdData->getField< uint16_t >( row, 3 );
- moveRight = exdData->getField< uint16_t >( row, 4 );
- moveUp = exdData->getField< uint16_t >( row, 5 );
- moveDown = exdData->getField< uint16_t >( row, 6 );
- moveTurnLeft = exdData->getField< uint16_t >( row, 7 );
- moveTurnRight = exdData->getField< uint16_t >( row, 8 );
- extra = exdData->getField< uint16_t >( row, 9 );
+ auto row = exdData->m_MoveTimelineDat.get_row( row_id );
+ idle = exdData->getField< uint16_t >( row, 0 );
+ moveForward = exdData->getField< uint16_t >( row, 1 );
+ moveBack = exdData->getField< uint16_t >( row, 2 );
+ moveLeft = exdData->getField< uint16_t >( row, 3 );
+ moveRight = exdData->getField< uint16_t >( row, 4 );
+ moveUp = exdData->getField< uint16_t >( row, 5 );
+ moveDown = exdData->getField< uint16_t >( row, 6 );
+ moveTurnLeft = exdData->getField< uint16_t >( row, 7 );
+ moveTurnRight = exdData->getField< uint16_t >( row, 8 );
+ extra = exdData->getField< uint16_t >( row, 9 );
}
Core::Data::MoveVfx::MoveVfx( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_MoveVfxDat.get_row( row_id );
- zero = exdData->getField< uint16_t >( row, 0 );
- one = exdData->getField< uint16_t >( row, 1 );
+ auto row = exdData->m_MoveVfxDat.get_row( row_id );
+ zero = exdData->getField< uint16_t >( row, 0 );
+ one = exdData->getField< uint16_t >( row, 1 );
}
Core::Data::NpcEquip::NpcEquip( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_NpcEquipDat.get_row( row_id );
- modelMainHand = exdData->getField< uint64_t >( row, 0 );
- dyeMainHand = exdData->getField< uint8_t >( row, 1 );
- modelOffHand = exdData->getField< uint64_t >( row, 2 );
- dyeOffHand = exdData->getField< uint8_t >( row, 3 );
- modelHead = exdData->getField< uint32_t >( row, 4 );
- dyeHead = exdData->getField< uint8_t >( row, 5 );
- visor = exdData->getField< bool >( row, 6 );
- modelBody = exdData->getField< uint32_t >( row, 7 );
- dyeBody = exdData->getField< uint8_t >( row, 8 );
- modelHands = exdData->getField< uint32_t >( row, 9 );
- dyeHands = exdData->getField< uint8_t >( row, 10 );
- modelLegs = exdData->getField< uint32_t >( row, 11 );
- dyeLegs = exdData->getField< uint8_t >( row, 12 );
- modelFeet = exdData->getField< uint32_t >( row, 13 );
- dyeFeet = exdData->getField< uint8_t >( row, 14 );
- modelEars = exdData->getField< uint32_t >( row, 15 );
- dyeEars = exdData->getField< uint8_t >( row, 16 );
- modelNeck = exdData->getField< uint32_t >( row, 17 );
- dyeNeck = exdData->getField< uint8_t >( row, 18 );
- modelWrists = exdData->getField< uint32_t >( row, 19 );
- dyeWrists = exdData->getField< uint8_t >( row, 20 );
- modelLeftRing = exdData->getField< uint32_t >( row, 21 );
- dyeLeftRing = exdData->getField< uint8_t >( row, 22 );
- modelRightRing = exdData->getField< uint32_t >( row, 23 );
- dyeRightRing = exdData->getField< uint8_t >( row, 24 );
+ auto row = exdData->m_NpcEquipDat.get_row( row_id );
+ modelMainHand = exdData->getField< uint64_t >( row, 0 );
+ dyeMainHand = exdData->getField< uint8_t >( row, 1 );
+ modelOffHand = exdData->getField< uint64_t >( row, 2 );
+ dyeOffHand = exdData->getField< uint8_t >( row, 3 );
+ modelHead = exdData->getField< uint32_t >( row, 4 );
+ dyeHead = exdData->getField< uint8_t >( row, 5 );
+ visor = exdData->getField< bool >( row, 6 );
+ modelBody = exdData->getField< uint32_t >( row, 7 );
+ dyeBody = exdData->getField< uint8_t >( row, 8 );
+ modelHands = exdData->getField< uint32_t >( row, 9 );
+ dyeHands = exdData->getField< uint8_t >( row, 10 );
+ modelLegs = exdData->getField< uint32_t >( row, 11 );
+ dyeLegs = exdData->getField< uint8_t >( row, 12 );
+ modelFeet = exdData->getField< uint32_t >( row, 13 );
+ dyeFeet = exdData->getField< uint8_t >( row, 14 );
+ modelEars = exdData->getField< uint32_t >( row, 15 );
+ dyeEars = exdData->getField< uint8_t >( row, 16 );
+ modelNeck = exdData->getField< uint32_t >( row, 17 );
+ dyeNeck = exdData->getField< uint8_t >( row, 18 );
+ modelWrists = exdData->getField< uint32_t >( row, 19 );
+ dyeWrists = exdData->getField< uint8_t >( row, 20 );
+ modelLeftRing = exdData->getField< uint32_t >( row, 21 );
+ dyeLeftRing = exdData->getField< uint8_t >( row, 22 );
+ modelRightRing = exdData->getField< uint32_t >( row, 23 );
+ dyeRightRing = exdData->getField< uint8_t >( row, 24 );
}
Core::Data::Omen::Omen( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_OmenDat.get_row( row_id );
- fileName = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_OmenDat.get_row( row_id );
+ fileName = exdData->getField< std::string >( row, 0 );
}
Core::Data::OnlineStatus::OnlineStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_OnlineStatusDat.get_row( row_id );
- priority = exdData->getField< uint8_t >( row, 2 );
- name = exdData->getField< std::string >( row, 3 );
- icon = exdData->getField< uint32_t >( row, 4 );
+ auto row = exdData->m_OnlineStatusDat.get_row( row_id );
+ priority = exdData->getField< uint8_t >( row, 2 );
+ name = exdData->getField< std::string >( row, 3 );
+ icon = exdData->getField< uint32_t >( row, 4 );
}
Core::Data::Opening::Opening( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_OpeningDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_OpeningDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::Orchestrion::Orchestrion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_OrchestrionDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_OrchestrionDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
}
Core::Data::OrchestrionCategory::OrchestrionCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_OrchestrionCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_OrchestrionCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::OrchestrionPath::OrchestrionPath( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_OrchestrionPathDat.get_row( row_id );
- file = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_OrchestrionPathDat.get_row( row_id );
+ file = exdData->getField< std::string >( row, 0 );
}
Core::Data::OrchestrionUiparam::OrchestrionUiparam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_OrchestrionUiparamDat.get_row( row_id );
- orchestrionCategory = exdData->getField< uint8_t >( row, 0 );
- order = exdData->getField< uint16_t >( row, 1 );
+ auto row = exdData->m_OrchestrionUiparamDat.get_row( row_id );
+ orchestrionCategory = exdData->getField< uint8_t >( row, 0 );
+ order = exdData->getField< uint16_t >( row, 1 );
}
Core::Data::ParamGrow::ParamGrow( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ParamGrowDat.get_row( row_id );
- expToNext = exdData->getField< int32_t >( row, 0 );
- additionalActions = exdData->getField< uint8_t >( row, 1 );
- mpModifier = exdData->getField< int32_t >( row, 4 );
- baseSpeed = exdData->getField< int32_t >( row, 5 );
- levelModifier = exdData->getField< int32_t >( row, 6 );
- questExpModifier = exdData->getField< uint8_t >( row, 7 );
- hpModifier = exdData->getField< uint16_t >( row, 8 );
- huntingLogExpReward = exdData->getField< int32_t >( row, 9 );
+ auto row = exdData->m_ParamGrowDat.get_row( row_id );
+ expToNext = exdData->getField< int32_t >( row, 0 );
+ additionalActions = exdData->getField< uint8_t >( row, 1 );
+ mpModifier = exdData->getField< int32_t >( row, 4 );
+ baseSpeed = exdData->getField< int32_t >( row, 5 );
+ levelModifier = exdData->getField< int32_t >( row, 6 );
+ questExpModifier = exdData->getField< uint8_t >( row, 7 );
+ hpModifier = exdData->getField< uint16_t >( row, 8 );
+ huntingLogExpReward = exdData->getField< int32_t >( row, 9 );
}
Core::Data::Perform::Perform( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_PerformDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- modelKey = exdData->getField< uint64_t >( row, 2 );
- animationStart = exdData->getField< uint16_t >( row, 3 );
- animationEnd = exdData->getField< uint16_t >( row, 4 );
- animationIdle = exdData->getField< uint16_t >( row, 5 );
- animationPlay01 = exdData->getField< uint16_t >( row, 6 );
- animationPlay02 = exdData->getField< uint16_t >( row, 7 );
- stopAnimation = exdData->getField< int32_t >( row, 8 );
- instrument = exdData->getField< std::string >( row, 9 );
- transient = exdData->getField< uint8_t >( row, 11 );
+ auto row = exdData->m_PerformDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ modelKey = exdData->getField< uint64_t >( row, 2 );
+ animationStart = exdData->getField< uint16_t >( row, 3 );
+ animationEnd = exdData->getField< uint16_t >( row, 4 );
+ animationIdle = exdData->getField< uint16_t >( row, 5 );
+ animationPlay01 = exdData->getField< uint16_t >( row, 6 );
+ animationPlay02 = exdData->getField< uint16_t >( row, 7 );
+ stopAnimation = exdData->getField< int32_t >( row, 8 );
+ instrument = exdData->getField< std::string >( row, 9 );
+ transient = exdData->getField< uint8_t >( row, 11 );
}
Core::Data::PerformTransient::PerformTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_PerformTransientDat.get_row( row_id );
- text = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_PerformTransientDat.get_row( row_id );
+ text = exdData->getField< std::string >( row, 0 );
}
Core::Data::Pet::Pet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_PetDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_PetDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::PetAction::PetAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_PetActionDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
- action = exdData->getField< uint16_t >( row, 3 );
- pet = exdData->getField< uint8_t >( row, 4 );
+ auto row = exdData->m_PetActionDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
+ action = exdData->getField< uint16_t >( row, 3 );
+ pet = exdData->getField< uint8_t >( row, 4 );
}
Core::Data::Picture::Picture( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_PictureDat.get_row( row_id );
- item = exdData->getField< int32_t >( row, 0 );
- image = exdData->getField< int32_t >( row, 1 );
- signature = exdData->getField< int32_t >( row, 2 );
+ auto row = exdData->m_PictureDat.get_row( row_id );
+ item = exdData->getField< int32_t >( row, 0 );
+ image = exdData->getField< int32_t >( row, 1 );
+ signature = exdData->getField< int32_t >( row, 2 );
}
Core::Data::PlaceName::PlaceName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_PlaceNameDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- nameNoArticle = exdData->getField< std::string >( row, 2 );
+ auto row = exdData->m_PlaceNameDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ nameNoArticle = exdData->getField< std::string >( row, 2 );
}
Core::Data::PublicContent::PublicContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_PublicContentDat.get_row( row_id );
- timeLimit = exdData->getField< uint16_t >( row, 1 );
- mapIcon = exdData->getField< uint32_t >( row, 2 );
- name = exdData->getField< std::string >( row, 3 );
- territoryType = exdData->getField< uint16_t >( row, 7 );
+ auto row = exdData->m_PublicContentDat.get_row( row_id );
+ timeLimit = exdData->getField< uint16_t >( row, 1 );
+ mapIcon = exdData->getField< uint32_t >( row, 2 );
+ name = exdData->getField< std::string >( row, 3 );
+ territoryType = exdData->getField< uint16_t >( row, 7 );
}
Core::Data::PvPActionSort::PvPActionSort( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_PvPActionSortDat.get_row( row_id );
- name = exdData->getField< uint8_t >( row, 0 );
- action = exdData->getField< uint16_t >( row, 1 );
+ auto row = exdData->m_PvPActionSortDat.get_row( row_id );
+ name = exdData->getField< uint8_t >( row, 0 );
+ action = exdData->getField< uint16_t >( row, 1 );
}
Core::Data::Quest::Quest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_QuestDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- id = exdData->getField< std::string >( row, 1 );
- expansion = exdData->getField< uint8_t >( row, 2 );
- classJobCategory0 = exdData->getField< uint8_t >( row, 3 );
- classJobLevel0 = exdData->getField< uint16_t >( row, 4 );
- questLevelOffset = exdData->getField< uint8_t >( row, 5 );
- classJobCategory1 = exdData->getField< uint8_t >( row, 7 );
- classJobLevel1 = exdData->getField< uint16_t >( row, 8 );
- previousQuestJoin = exdData->getField< uint8_t >( row, 9 );
- previousQuest0 = exdData->getField< uint32_t >( row, 10 );
- previousQuest1 = exdData->getField< uint32_t >( row, 12 );
- previousQuest2 = exdData->getField< uint32_t >( row, 13 );
- questLockJoin = exdData->getField< uint8_t >( row, 14 );
- questLock.push_back( exdData->getField< uint32_t >( row, 15 ) );
- questLock.push_back( exdData->getField< uint32_t >( row, 16 ) );
- classJobUnlock = exdData->getField< uint8_t >( row, 20 );
- grandCompany = exdData->getField< uint8_t >( row, 21 );
- grandCompanyRank = exdData->getField< uint8_t >( row, 22 );
- instanceContentJoin = exdData->getField< uint8_t >( row, 23 );
- instanceContent.push_back( exdData->getField< uint32_t >( row, 24 ) );
- instanceContent.push_back( exdData->getField< uint32_t >( row, 25 ) );
- instanceContent.push_back( exdData->getField< uint32_t >( row, 26 ) );
- bellStart = exdData->getField< uint16_t >( row, 30 );
- bellEnd = exdData->getField< uint16_t >( row, 31 );
- beastTribe = exdData->getField< uint8_t >( row, 32 );
- beastReputationRank = exdData->getField< uint8_t >( row, 33 );
- mountRequired = exdData->getField< int32_t >( row, 37 );
- isHouseRequired = exdData->getField< bool >( row, 38 );
- eNpcResidentStart = exdData->getField< uint32_t >( row, 40 );
- eNpcResidentEnd = exdData->getField< uint32_t >( row, 42 );
- isRepeatable = exdData->getField< bool >( row, 43 );
- repeatIntervalType = exdData->getField< uint8_t >( row, 44 );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 50 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 51 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 52 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 53 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 54 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 55 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 56 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 57 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 58 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 59 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 60 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 61 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 62 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 63 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 64 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 65 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 66 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 67 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 68 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 69 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 70 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 71 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 72 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 73 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 74 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 75 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 76 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 77 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 78 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 79 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 80 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 81 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 82 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 83 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 84 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 85 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 86 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 87 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 88 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 89 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 90 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 91 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 92 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 93 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 94 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 95 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 96 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 97 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 98 ) );
- scriptInstruction.push_back( exdData->getField< std::string >( row, 99 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 100 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 101 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 102 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 103 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 104 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 105 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 106 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 107 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 108 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 109 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 110 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 111 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 112 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 113 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 114 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 115 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 116 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 117 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 118 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 119 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 120 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 121 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 122 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 123 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 124 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 125 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 126 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 127 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 128 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 129 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 130 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 131 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 132 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 133 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 134 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 135 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 136 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 137 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 138 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 139 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 140 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 141 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 142 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 143 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 144 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 145 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 146 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 147 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 148 ) );
- scriptArg.push_back( exdData->getField< uint32_t >( row, 149 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1222 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1223 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1224 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1225 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1226 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1227 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1228 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1229 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1230 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1231 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1232 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1233 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1234 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1235 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1236 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1237 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1238 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1239 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1240 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1241 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1242 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1243 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1244 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1245 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1246 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1247 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1248 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1249 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1250 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1251 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1252 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1253 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1254 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1255 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1256 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1257 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1258 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1259 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1260 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1261 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1262 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1263 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1264 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1265 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1266 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1267 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1268 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1269 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1270 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1271 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1272 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1273 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1274 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1275 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1276 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1277 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1278 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1279 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1280 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1281 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1282 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1283 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1284 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1285 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1286 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1287 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1288 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1289 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1290 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1291 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1292 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1293 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1294 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1295 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1296 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1297 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1298 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1299 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1300 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1301 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1302 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1303 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1304 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1305 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1306 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1307 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1308 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1309 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1310 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1311 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1312 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1313 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1314 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1315 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1316 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1317 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1318 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1319 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1320 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1321 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1322 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1323 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1324 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1325 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1326 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1327 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1328 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1329 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1330 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1331 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1332 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1333 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1334 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1335 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1336 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1337 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1338 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1339 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1340 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1341 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1342 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1343 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1344 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1345 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1346 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1347 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1348 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1349 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1350 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1351 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1352 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1353 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1354 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1355 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1356 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1357 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1358 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1359 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1360 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1361 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1362 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1363 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1364 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1365 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1366 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1367 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1368 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1369 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1370 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1371 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1372 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1373 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1374 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1375 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1376 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1377 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1378 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1379 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1380 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1381 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1382 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1383 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1384 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1385 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1386 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1387 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1388 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1389 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1390 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1391 ) );
- level.push_back( exdData->getField< uint32_t >( row, 1392 ) );
- classJobRequired = exdData->getField< uint8_t >( row, 1438 );
- expFactor = exdData->getField< uint16_t >( row, 1440 );
- gilReward = exdData->getField< uint32_t >( row, 1441 );
- gCSeals = exdData->getField< uint16_t >( row, 1443 );
- itemCatalyst.push_back( exdData->getField< uint8_t >( row, 1444 ) );
- itemCatalyst.push_back( exdData->getField< uint8_t >( row, 1445 ) );
- itemCatalyst.push_back( exdData->getField< uint8_t >( row, 1446 ) );
- itemCountCatalyst.push_back( exdData->getField< uint8_t >( row, 1447 ) );
- itemCountCatalyst.push_back( exdData->getField< uint8_t >( row, 1448 ) );
- itemCountCatalyst.push_back( exdData->getField< uint8_t >( row, 1449 ) );
- itemRewardType = exdData->getField< uint8_t >( row, 1450 );
- itemReward0.push_back( exdData->getField< uint32_t >( row, 1451 ) );
- itemReward0.push_back( exdData->getField< uint32_t >( row, 1452 ) );
- itemReward0.push_back( exdData->getField< uint32_t >( row, 1453 ) );
- itemReward0.push_back( exdData->getField< uint32_t >( row, 1454 ) );
- itemReward0.push_back( exdData->getField< uint32_t >( row, 1455 ) );
- itemReward0.push_back( exdData->getField< uint32_t >( row, 1456 ) );
- itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1458 ) );
- itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1459 ) );
- itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1460 ) );
- itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1461 ) );
- itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1462 ) );
- itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1463 ) );
- stainReward0.push_back( exdData->getField< uint8_t >( row, 1465 ) );
- stainReward0.push_back( exdData->getField< uint8_t >( row, 1466 ) );
- stainReward0.push_back( exdData->getField< uint8_t >( row, 1467 ) );
- stainReward0.push_back( exdData->getField< uint8_t >( row, 1468 ) );
- stainReward0.push_back( exdData->getField< uint8_t >( row, 1469 ) );
- stainReward0.push_back( exdData->getField< uint8_t >( row, 1470 ) );
- itemReward1.push_back( exdData->getField< uint32_t >( row, 1472 ) );
- itemReward1.push_back( exdData->getField< uint32_t >( row, 1473 ) );
- itemReward1.push_back( exdData->getField< uint32_t >( row, 1474 ) );
- itemReward1.push_back( exdData->getField< uint32_t >( row, 1475 ) );
- itemReward1.push_back( exdData->getField< uint32_t >( row, 1476 ) );
- itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1477 ) );
- itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1478 ) );
- itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1479 ) );
- itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1480 ) );
- itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1481 ) );
- isHQReward1.push_back( exdData->getField< bool >( row, 1482 ) );
- isHQReward1.push_back( exdData->getField< bool >( row, 1483 ) );
- isHQReward1.push_back( exdData->getField< bool >( row, 1484 ) );
- isHQReward1.push_back( exdData->getField< bool >( row, 1485 ) );
- isHQReward1.push_back( exdData->getField< bool >( row, 1486 ) );
- stainReward1.push_back( exdData->getField< uint8_t >( row, 1487 ) );
- stainReward1.push_back( exdData->getField< uint8_t >( row, 1488 ) );
- stainReward1.push_back( exdData->getField< uint8_t >( row, 1489 ) );
- stainReward1.push_back( exdData->getField< uint8_t >( row, 1490 ) );
- stainReward1.push_back( exdData->getField< uint8_t >( row, 1491 ) );
- emoteReward = exdData->getField< uint8_t >( row, 1492 );
- actionReward = exdData->getField< uint16_t >( row, 1493 );
- generalActionReward.push_back( exdData->getField< uint8_t >( row, 1494 ) );
- generalActionReward.push_back( exdData->getField< uint8_t >( row, 1495 ) );
- otherReward = exdData->getField< uint8_t >( row, 1497 );
- instanceContentUnlock = exdData->getField< uint32_t >( row, 1500 );
- tomestoneReward = exdData->getField< uint8_t >( row, 1502 );
- tomestoneCountReward = exdData->getField< uint8_t >( row, 1503 );
- reputationReward = exdData->getField< uint8_t >( row, 1504 );
- placeName = exdData->getField< uint16_t >( row, 1505 );
- journalGenre = exdData->getField< uint8_t >( row, 1506 );
- icon = exdData->getField< uint32_t >( row, 1508 );
- iconSpecial = exdData->getField< uint32_t >( row, 1509 );
- eventIconType = exdData->getField< uint8_t >( row, 1512 );
- sortKey = exdData->getField< uint16_t >( row, 1514 );
+ auto row = exdData->m_QuestDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ id = exdData->getField< std::string >( row, 1 );
+ expansion = exdData->getField< uint8_t >( row, 2 );
+ classJobCategory0 = exdData->getField< uint8_t >( row, 3 );
+ classJobLevel0 = exdData->getField< uint16_t >( row, 4 );
+ questLevelOffset = exdData->getField< uint8_t >( row, 5 );
+ classJobCategory1 = exdData->getField< uint8_t >( row, 7 );
+ classJobLevel1 = exdData->getField< uint16_t >( row, 8 );
+ previousQuestJoin = exdData->getField< uint8_t >( row, 9 );
+ previousQuest0 = exdData->getField< uint32_t >( row, 10 );
+ previousQuest1 = exdData->getField< uint32_t >( row, 12 );
+ previousQuest2 = exdData->getField< uint32_t >( row, 13 );
+ questLockJoin = exdData->getField< uint8_t >( row, 14 );
+ questLock.push_back( exdData->getField< uint32_t >( row, 15 ) );
+ questLock.push_back( exdData->getField< uint32_t >( row, 16 ) );
+ classJobUnlock = exdData->getField< uint8_t >( row, 20 );
+ grandCompany = exdData->getField< uint8_t >( row, 21 );
+ grandCompanyRank = exdData->getField< uint8_t >( row, 22 );
+ instanceContentJoin = exdData->getField< uint8_t >( row, 23 );
+ instanceContent.push_back( exdData->getField< uint32_t >( row, 24 ) );
+ instanceContent.push_back( exdData->getField< uint32_t >( row, 25 ) );
+ instanceContent.push_back( exdData->getField< uint32_t >( row, 26 ) );
+ bellStart = exdData->getField< uint16_t >( row, 30 );
+ bellEnd = exdData->getField< uint16_t >( row, 31 );
+ beastTribe = exdData->getField< uint8_t >( row, 32 );
+ beastReputationRank = exdData->getField< uint8_t >( row, 33 );
+ mountRequired = exdData->getField< int32_t >( row, 37 );
+ isHouseRequired = exdData->getField< bool >( row, 38 );
+ eNpcResidentStart = exdData->getField< uint32_t >( row, 40 );
+ eNpcResidentEnd = exdData->getField< uint32_t >( row, 42 );
+ isRepeatable = exdData->getField< bool >( row, 43 );
+ repeatIntervalType = exdData->getField< uint8_t >( row, 44 );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 50 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 51 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 52 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 53 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 54 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 55 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 56 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 57 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 58 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 59 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 60 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 61 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 62 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 63 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 64 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 65 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 66 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 67 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 68 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 69 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 70 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 71 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 72 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 73 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 74 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 75 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 76 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 77 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 78 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 79 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 80 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 81 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 82 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 83 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 84 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 85 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 86 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 87 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 88 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 89 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 90 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 91 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 92 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 93 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 94 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 95 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 96 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 97 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 98 ) );
+ scriptInstruction.push_back( exdData->getField< std::string >( row, 99 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 100 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 101 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 102 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 103 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 104 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 105 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 106 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 107 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 108 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 109 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 110 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 111 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 112 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 113 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 114 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 115 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 116 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 117 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 118 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 119 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 120 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 121 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 122 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 123 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 124 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 125 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 126 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 127 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 128 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 129 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 130 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 131 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 132 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 133 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 134 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 135 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 136 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 137 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 138 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 139 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 140 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 141 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 142 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 143 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 144 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 145 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 146 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 147 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 148 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( row, 149 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1222 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1223 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1224 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1225 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1226 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1227 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1228 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1229 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1230 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1231 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1232 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1233 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1234 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1235 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1236 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1237 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1238 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1239 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1240 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1241 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1242 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1243 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1244 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1245 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1246 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1247 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1248 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1249 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1250 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1251 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1252 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1253 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1254 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1255 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1256 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1257 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1258 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1259 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1260 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1261 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1262 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1263 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1264 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1265 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1266 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1267 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1268 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1269 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1270 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1271 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1272 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1273 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1274 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1275 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1276 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1277 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1278 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1279 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1280 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1281 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1282 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1283 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1284 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1285 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1286 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1287 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1288 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1289 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1290 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1291 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1292 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1293 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1294 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1295 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1296 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1297 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1298 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1299 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1300 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1301 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1302 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1303 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1304 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1305 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1306 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1307 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1308 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1309 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1310 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1311 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1312 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1313 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1314 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1315 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1316 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1317 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1318 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1319 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1320 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1321 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1322 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1323 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1324 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1325 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1326 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1327 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1328 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1329 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1330 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1331 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1332 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1333 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1334 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1335 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1336 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1337 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1338 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1339 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1340 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1341 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1342 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1343 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1344 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1345 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1346 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1347 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1348 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1349 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1350 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1351 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1352 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1353 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1354 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1355 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1356 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1357 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1358 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1359 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1360 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1361 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1362 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1363 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1364 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1365 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1366 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1367 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1368 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1369 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1370 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1371 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1372 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1373 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1374 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1375 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1376 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1377 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1378 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1379 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1380 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1381 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1382 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1383 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1384 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1385 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1386 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1387 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1388 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1389 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1390 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1391 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1392 ) );
+ classJobRequired = exdData->getField< uint8_t >( row, 1438 );
+ expFactor = exdData->getField< uint16_t >( row, 1440 );
+ gilReward = exdData->getField< uint32_t >( row, 1441 );
+ gCSeals = exdData->getField< uint16_t >( row, 1443 );
+ itemCatalyst.push_back( exdData->getField< uint8_t >( row, 1444 ) );
+ itemCatalyst.push_back( exdData->getField< uint8_t >( row, 1445 ) );
+ itemCatalyst.push_back( exdData->getField< uint8_t >( row, 1446 ) );
+ itemCountCatalyst.push_back( exdData->getField< uint8_t >( row, 1447 ) );
+ itemCountCatalyst.push_back( exdData->getField< uint8_t >( row, 1448 ) );
+ itemCountCatalyst.push_back( exdData->getField< uint8_t >( row, 1449 ) );
+ itemRewardType = exdData->getField< uint8_t >( row, 1450 );
+ itemReward0.push_back( exdData->getField< uint32_t >( row, 1451 ) );
+ itemReward0.push_back( exdData->getField< uint32_t >( row, 1452 ) );
+ itemReward0.push_back( exdData->getField< uint32_t >( row, 1453 ) );
+ itemReward0.push_back( exdData->getField< uint32_t >( row, 1454 ) );
+ itemReward0.push_back( exdData->getField< uint32_t >( row, 1455 ) );
+ itemReward0.push_back( exdData->getField< uint32_t >( row, 1456 ) );
+ itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1458 ) );
+ itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1459 ) );
+ itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1460 ) );
+ itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1461 ) );
+ itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1462 ) );
+ itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1463 ) );
+ stainReward0.push_back( exdData->getField< uint8_t >( row, 1465 ) );
+ stainReward0.push_back( exdData->getField< uint8_t >( row, 1466 ) );
+ stainReward0.push_back( exdData->getField< uint8_t >( row, 1467 ) );
+ stainReward0.push_back( exdData->getField< uint8_t >( row, 1468 ) );
+ stainReward0.push_back( exdData->getField< uint8_t >( row, 1469 ) );
+ stainReward0.push_back( exdData->getField< uint8_t >( row, 1470 ) );
+ itemReward1.push_back( exdData->getField< uint32_t >( row, 1472 ) );
+ itemReward1.push_back( exdData->getField< uint32_t >( row, 1473 ) );
+ itemReward1.push_back( exdData->getField< uint32_t >( row, 1474 ) );
+ itemReward1.push_back( exdData->getField< uint32_t >( row, 1475 ) );
+ itemReward1.push_back( exdData->getField< uint32_t >( row, 1476 ) );
+ itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1477 ) );
+ itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1478 ) );
+ itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1479 ) );
+ itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1480 ) );
+ itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1481 ) );
+ isHQReward1.push_back( exdData->getField< bool >( row, 1482 ) );
+ isHQReward1.push_back( exdData->getField< bool >( row, 1483 ) );
+ isHQReward1.push_back( exdData->getField< bool >( row, 1484 ) );
+ isHQReward1.push_back( exdData->getField< bool >( row, 1485 ) );
+ isHQReward1.push_back( exdData->getField< bool >( row, 1486 ) );
+ stainReward1.push_back( exdData->getField< uint8_t >( row, 1487 ) );
+ stainReward1.push_back( exdData->getField< uint8_t >( row, 1488 ) );
+ stainReward1.push_back( exdData->getField< uint8_t >( row, 1489 ) );
+ stainReward1.push_back( exdData->getField< uint8_t >( row, 1490 ) );
+ stainReward1.push_back( exdData->getField< uint8_t >( row, 1491 ) );
+ emoteReward = exdData->getField< uint8_t >( row, 1492 );
+ actionReward = exdData->getField< uint16_t >( row, 1493 );
+ generalActionReward.push_back( exdData->getField< uint8_t >( row, 1494 ) );
+ generalActionReward.push_back( exdData->getField< uint8_t >( row, 1495 ) );
+ otherReward = exdData->getField< uint8_t >( row, 1497 );
+ instanceContentUnlock = exdData->getField< uint32_t >( row, 1500 );
+ tomestoneReward = exdData->getField< uint8_t >( row, 1502 );
+ tomestoneCountReward = exdData->getField< uint8_t >( row, 1503 );
+ reputationReward = exdData->getField< uint8_t >( row, 1504 );
+ placeName = exdData->getField< uint16_t >( row, 1505 );
+ journalGenre = exdData->getField< uint8_t >( row, 1506 );
+ icon = exdData->getField< uint32_t >( row, 1508 );
+ iconSpecial = exdData->getField< uint32_t >( row, 1509 );
+ eventIconType = exdData->getField< uint8_t >( row, 1512 );
+ sortKey = exdData->getField< uint16_t >( row, 1514 );
}
Core::Data::QuestClassJobReward::QuestClassJobReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_QuestClassJobRewardDat.get_row( row_id );
- classJobCategory = exdData->getField< uint8_t >( row, 0 );
- rewardItem.push_back( exdData->getField< uint32_t >( row, 1 ) );
- rewardItem.push_back( exdData->getField< uint32_t >( row, 2 ) );
- rewardItem.push_back( exdData->getField< uint32_t >( row, 3 ) );
- rewardItem.push_back( exdData->getField< uint32_t >( row, 4 ) );
- rewardAmount.push_back( exdData->getField< uint8_t >( row, 5 ) );
- rewardAmount.push_back( exdData->getField< uint8_t >( row, 6 ) );
- rewardAmount.push_back( exdData->getField< uint8_t >( row, 7 ) );
- rewardAmount.push_back( exdData->getField< uint8_t >( row, 8 ) );
- requiredItem.push_back( exdData->getField< uint32_t >( row, 9 ) );
- requiredItem.push_back( exdData->getField< uint32_t >( row, 10 ) );
- requiredItem.push_back( exdData->getField< uint32_t >( row, 11 ) );
- requiredItem.push_back( exdData->getField< uint32_t >( row, 12 ) );
- requiredAmount.push_back( exdData->getField< uint8_t >( row, 13 ) );
- requiredAmount.push_back( exdData->getField< uint8_t >( row, 14 ) );
- requiredAmount.push_back( exdData->getField< uint8_t >( row, 15 ) );
- requiredAmount.push_back( exdData->getField< uint8_t >( row, 16 ) );
+ auto row = exdData->m_QuestClassJobRewardDat.get_row( row_id );
+ classJobCategory = exdData->getField< uint8_t >( row, 0 );
+ rewardItem.push_back( exdData->getField< uint32_t >( row, 1 ) );
+ rewardItem.push_back( exdData->getField< uint32_t >( row, 2 ) );
+ rewardItem.push_back( exdData->getField< uint32_t >( row, 3 ) );
+ rewardItem.push_back( exdData->getField< uint32_t >( row, 4 ) );
+ rewardAmount.push_back( exdData->getField< uint8_t >( row, 5 ) );
+ rewardAmount.push_back( exdData->getField< uint8_t >( row, 6 ) );
+ rewardAmount.push_back( exdData->getField< uint8_t >( row, 7 ) );
+ rewardAmount.push_back( exdData->getField< uint8_t >( row, 8 ) );
+ requiredItem.push_back( exdData->getField< uint32_t >( row, 9 ) );
+ requiredItem.push_back( exdData->getField< uint32_t >( row, 10 ) );
+ requiredItem.push_back( exdData->getField< uint32_t >( row, 11 ) );
+ requiredItem.push_back( exdData->getField< uint32_t >( row, 12 ) );
+ requiredAmount.push_back( exdData->getField< uint8_t >( row, 13 ) );
+ requiredAmount.push_back( exdData->getField< uint8_t >( row, 14 ) );
+ requiredAmount.push_back( exdData->getField< uint8_t >( row, 15 ) );
+ requiredAmount.push_back( exdData->getField< uint8_t >( row, 16 ) );
}
Core::Data::QuestRepeatFlag::QuestRepeatFlag( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_QuestRepeatFlagDat.get_row( row_id );
- quest = exdData->getField< uint32_t >( row, 0 );
+ auto row = exdData->m_QuestRepeatFlagDat.get_row( row_id );
+ quest = exdData->getField< uint32_t >( row, 0 );
}
Core::Data::QuestRewardOther::QuestRewardOther( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_QuestRewardOtherDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_QuestRewardOtherDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 1 );
}
Core::Data::QuickChat::QuickChat( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_QuickChatDat.get_row( row_id );
- nameAction = exdData->getField< std::string >( row, 0 );
- icon = exdData->getField< int32_t >( row, 1 );
- addon = exdData->getField< int32_t >( row, 2 );
- quickChatTransient = exdData->getField< int8_t >( row, 3 );
+ auto row = exdData->m_QuickChatDat.get_row( row_id );
+ nameAction = exdData->getField< std::string >( row, 0 );
+ icon = exdData->getField< int32_t >( row, 1 );
+ addon = exdData->getField< int32_t >( row, 2 );
+ quickChatTransient = exdData->getField< int8_t >( row, 3 );
}
Core::Data::QuickChatTransient::QuickChatTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_QuickChatTransientDat.get_row( row_id );
- textOutput = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_QuickChatTransientDat.get_row( row_id );
+ textOutput = exdData->getField< std::string >( row, 0 );
}
Core::Data::Race::Race( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RaceDat.get_row( row_id );
- masculine = exdData->getField< std::string >( row, 0 );
- feminine = exdData->getField< std::string >( row, 1 );
- rSEMBody = exdData->getField< int32_t >( row, 2 );
- rSEMHands = exdData->getField< int32_t >( row, 3 );
- rSEMLegs = exdData->getField< int32_t >( row, 4 );
- rSEMFeet = exdData->getField< int32_t >( row, 5 );
- rSEFBody = exdData->getField< int32_t >( row, 6 );
- rSEFHands = exdData->getField< int32_t >( row, 7 );
- rSEFLegs = exdData->getField< int32_t >( row, 8 );
- rSEFFeet = exdData->getField< int32_t >( row, 9 );
+ auto row = exdData->m_RaceDat.get_row( row_id );
+ masculine = exdData->getField< std::string >( row, 0 );
+ feminine = exdData->getField< std::string >( row, 1 );
+ rSEMBody = exdData->getField< int32_t >( row, 2 );
+ rSEMHands = exdData->getField< int32_t >( row, 3 );
+ rSEMLegs = exdData->getField< int32_t >( row, 4 );
+ rSEMFeet = exdData->getField< int32_t >( row, 5 );
+ rSEFBody = exdData->getField< int32_t >( row, 6 );
+ rSEFHands = exdData->getField< int32_t >( row, 7 );
+ rSEFLegs = exdData->getField< int32_t >( row, 8 );
+ rSEFFeet = exdData->getField< int32_t >( row, 9 );
}
Core::Data::RacingChocoboItem::RacingChocoboItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RacingChocoboItemDat.get_row( row_id );
- item = exdData->getField< int32_t >( row, 0 );
- category = exdData->getField< uint8_t >( row, 1 );
- param.push_back( exdData->getField< uint8_t >( row, 2 ) );
- param.push_back( exdData->getField< uint8_t >( row, 3 ) );
+ auto row = exdData->m_RacingChocoboItemDat.get_row( row_id );
+ item = exdData->getField< int32_t >( row, 0 );
+ category = exdData->getField< uint8_t >( row, 1 );
+ param.push_back( exdData->getField< uint8_t >( row, 2 ) );
+ param.push_back( exdData->getField< uint8_t >( row, 3 ) );
}
Core::Data::RacingChocoboName::RacingChocoboName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RacingChocoboNameDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_RacingChocoboNameDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
-Core::Data::RacingChocoboNameCategory::RacingChocoboNameCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
+Core::Data::RacingChocoboNameCategory::RacingChocoboNameCategory( uint32_t row_id,
+ Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RacingChocoboNameCategoryDat.get_row( row_id );
- sortKey = exdData->getField< uint8_t >( row, 0 );
- name = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_RacingChocoboNameCategoryDat.get_row( row_id );
+ sortKey = exdData->getField< uint8_t >( row, 0 );
+ name = exdData->getField< std::string >( row, 1 );
}
Core::Data::RacingChocoboNameInfo::RacingChocoboNameInfo( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RacingChocoboNameInfoDat.get_row( row_id );
- racingChocoboNameCategory = exdData->getField< uint8_t >( row, 0 );
+ auto row = exdData->m_RacingChocoboNameInfoDat.get_row( row_id );
+ racingChocoboNameCategory = exdData->getField< uint8_t >( row, 0 );
}
Core::Data::RacingChocoboParam::RacingChocoboParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RacingChocoboParamDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_RacingChocoboParamDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::Recipe::Recipe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RecipeDat.get_row( row_id );
- craftType = exdData->getField< int32_t >( row, 1 );
- recipeLevelTable = exdData->getField< uint16_t >( row, 2 );
- itemResult = exdData->getField< int32_t >( row, 3 );
- amountResult = exdData->getField< uint8_t >( row, 4 );
- recipeElement = exdData->getField< uint8_t >( row, 25 );
- isSecondary = exdData->getField< bool >( row, 27 );
- difficultyFactor = exdData->getField< uint16_t >( row, 28 );
- qualityFactor = exdData->getField< uint16_t >( row, 29 );
- durabilityFactor = exdData->getField< uint16_t >( row, 30 );
- requiredCraftsmanship = exdData->getField< uint16_t >( row, 32 );
- requiredControl = exdData->getField< uint16_t >( row, 33 );
- quickSynthCraftsmanship = exdData->getField< uint16_t >( row, 34 );
- quickSynthControl = exdData->getField< uint16_t >( row, 35 );
- secretRecipeBook = exdData->getField< uint16_t >( row, 36 );
- canQuickSynth = exdData->getField< bool >( row, 37 );
- canHq = exdData->getField< bool >( row, 38 );
- expRewarded = exdData->getField< bool >( row, 39 );
- statusRequired = exdData->getField< int32_t >( row, 40 );
- itemRequired = exdData->getField< int32_t >( row, 41 );
- isSpecializationRequired = exdData->getField< bool >( row, 42 );
+ auto row = exdData->m_RecipeDat.get_row( row_id );
+ craftType = exdData->getField< int32_t >( row, 1 );
+ recipeLevelTable = exdData->getField< uint16_t >( row, 2 );
+ itemResult = exdData->getField< int32_t >( row, 3 );
+ amountResult = exdData->getField< uint8_t >( row, 4 );
+ recipeElement = exdData->getField< uint8_t >( row, 25 );
+ isSecondary = exdData->getField< bool >( row, 27 );
+ difficultyFactor = exdData->getField< uint16_t >( row, 28 );
+ qualityFactor = exdData->getField< uint16_t >( row, 29 );
+ durabilityFactor = exdData->getField< uint16_t >( row, 30 );
+ requiredCraftsmanship = exdData->getField< uint16_t >( row, 32 );
+ requiredControl = exdData->getField< uint16_t >( row, 33 );
+ quickSynthCraftsmanship = exdData->getField< uint16_t >( row, 34 );
+ quickSynthControl = exdData->getField< uint16_t >( row, 35 );
+ secretRecipeBook = exdData->getField< uint16_t >( row, 36 );
+ canQuickSynth = exdData->getField< bool >( row, 37 );
+ canHq = exdData->getField< bool >( row, 38 );
+ expRewarded = exdData->getField< bool >( row, 39 );
+ statusRequired = exdData->getField< int32_t >( row, 40 );
+ itemRequired = exdData->getField< int32_t >( row, 41 );
+ isSpecializationRequired = exdData->getField< bool >( row, 42 );
}
Core::Data::RecipeElement::RecipeElement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RecipeElementDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_RecipeElementDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::RecipeLevelTable::RecipeLevelTable( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RecipeLevelTableDat.get_row( row_id );
- classJobLevel = exdData->getField< uint8_t >( row, 0 );
- stars = exdData->getField< uint8_t >( row, 1 );
- difficulty = exdData->getField< uint16_t >( row, 3 );
- quality = exdData->getField< int16_t >( row, 4 );
- durability = exdData->getField< uint16_t >( row, 5 );
+ auto row = exdData->m_RecipeLevelTableDat.get_row( row_id );
+ classJobLevel = exdData->getField< uint8_t >( row, 0 );
+ stars = exdData->getField< uint8_t >( row, 1 );
+ difficulty = exdData->getField< uint16_t >( row, 3 );
+ quality = exdData->getField< int16_t >( row, 4 );
+ durability = exdData->getField< uint16_t >( row, 5 );
}
Core::Data::RecipeNotebookList::RecipeNotebookList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RecipeNotebookListDat.get_row( row_id );
- recipe.push_back( exdData->getField< int32_t >( row, 1 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 2 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 3 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 4 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 5 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 6 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 7 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 8 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 9 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 10 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 11 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 12 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 13 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 14 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 15 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 16 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 17 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 18 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 19 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 20 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 21 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 22 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 23 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 24 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 25 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 26 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 27 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 28 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 29 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 30 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 31 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 32 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 33 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 34 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 35 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 36 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 37 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 38 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 39 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 40 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 41 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 42 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 43 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 44 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 45 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 46 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 47 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 48 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 49 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 50 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 51 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 52 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 53 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 54 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 55 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 56 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 57 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 58 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 59 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 60 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 61 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 62 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 63 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 64 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 65 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 66 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 67 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 68 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 69 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 70 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 71 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 72 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 73 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 74 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 75 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 76 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 77 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 78 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 79 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 80 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 81 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 82 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 83 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 84 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 85 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 86 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 87 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 88 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 89 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 90 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 91 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 92 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 93 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 94 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 95 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 96 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 97 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 98 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 99 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 100 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 101 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 102 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 103 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 104 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 105 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 106 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 107 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 108 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 109 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 110 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 111 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 112 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 113 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 114 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 115 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 116 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 117 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 118 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 119 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 120 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 121 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 122 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 123 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 124 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 125 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 126 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 127 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 128 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 129 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 130 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 131 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 132 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 133 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 134 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 135 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 136 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 137 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 138 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 139 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 140 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 141 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 142 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 143 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 144 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 145 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 146 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 147 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 148 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 149 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 150 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 151 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 152 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 153 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 154 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 155 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 156 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 157 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 158 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 159 ) );
- recipe.push_back( exdData->getField< int32_t >( row, 160 ) );
+ auto row = exdData->m_RecipeNotebookListDat.get_row( row_id );
+ recipe.push_back( exdData->getField< int32_t >( row, 1 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 2 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 3 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 4 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 5 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 6 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 7 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 8 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 9 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 10 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 11 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 12 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 13 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 14 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 15 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 16 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 17 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 18 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 19 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 20 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 21 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 22 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 23 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 24 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 25 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 26 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 27 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 28 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 29 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 30 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 31 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 32 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 33 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 34 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 35 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 36 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 37 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 38 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 39 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 40 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 41 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 42 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 43 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 44 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 45 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 46 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 47 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 48 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 49 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 50 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 51 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 52 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 53 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 54 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 55 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 56 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 57 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 58 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 59 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 60 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 61 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 62 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 63 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 64 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 65 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 66 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 67 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 68 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 69 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 70 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 71 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 72 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 73 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 74 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 75 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 76 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 77 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 78 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 79 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 80 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 81 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 82 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 83 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 84 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 85 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 86 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 87 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 88 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 89 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 90 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 91 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 92 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 93 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 94 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 95 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 96 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 97 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 98 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 99 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 100 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 101 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 102 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 103 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 104 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 105 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 106 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 107 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 108 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 109 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 110 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 111 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 112 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 113 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 114 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 115 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 116 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 117 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 118 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 119 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 120 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 121 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 122 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 123 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 124 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 125 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 126 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 127 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 128 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 129 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 130 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 131 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 132 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 133 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 134 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 135 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 136 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 137 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 138 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 139 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 140 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 141 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 142 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 143 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 144 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 145 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 146 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 147 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 148 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 149 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 150 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 151 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 152 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 153 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 154 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 155 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 156 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 157 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 158 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 159 ) );
+ recipe.push_back( exdData->getField< int32_t >( row, 160 ) );
}
Core::Data::RecommendContents::RecommendContents( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RecommendContentsDat.get_row( row_id );
- level = exdData->getField< int32_t >( row, 0 );
+ auto row = exdData->m_RecommendContentsDat.get_row( row_id );
+ level = exdData->getField< int32_t >( row, 0 );
}
Core::Data::Relic::Relic( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RelicDat.get_row( row_id );
- itemAtma = exdData->getField< uint32_t >( row, 0 );
- itemAnimus = exdData->getField< uint32_t >( row, 1 );
- icon = exdData->getField< int32_t >( row, 2 );
+ auto row = exdData->m_RelicDat.get_row( row_id );
+ itemAtma = exdData->getField< uint32_t >( row, 0 );
+ itemAnimus = exdData->getField< uint32_t >( row, 1 );
+ icon = exdData->getField< int32_t >( row, 2 );
}
Core::Data::Relic3::Relic3( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_Relic3Dat.get_row( row_id );
- itemAnimus = exdData->getField< uint32_t >( row, 0 );
- itemScroll = exdData->getField< uint32_t >( row, 1 );
- materiaLimit = exdData->getField< uint8_t >( row, 2 );
- itemNovus = exdData->getField< uint32_t >( row, 3 );
- icon = exdData->getField< int32_t >( row, 4 );
+ auto row = exdData->m_Relic3Dat.get_row( row_id );
+ itemAnimus = exdData->getField< uint32_t >( row, 0 );
+ itemScroll = exdData->getField< uint32_t >( row, 1 );
+ materiaLimit = exdData->getField< uint8_t >( row, 2 );
+ itemNovus = exdData->getField< uint32_t >( row, 3 );
+ icon = exdData->getField< int32_t >( row, 4 );
}
Core::Data::RelicItem::RelicItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RelicItemDat.get_row( row_id );
- gladiatorItem = exdData->getField< uint32_t >( row, 1 );
- pugilistItem = exdData->getField< uint32_t >( row, 2 );
- marauderItem = exdData->getField< uint32_t >( row, 3 );
- lancerItem = exdData->getField< uint32_t >( row, 4 );
- archerItem = exdData->getField< uint32_t >( row, 5 );
- conjurerItem = exdData->getField< uint32_t >( row, 6 );
- thaumaturgeItem = exdData->getField< uint32_t >( row, 7 );
- arcanistSMNItem = exdData->getField< uint32_t >( row, 8 );
- arcanistSCHItem = exdData->getField< uint32_t >( row, 9 );
- shieldItem = exdData->getField< uint32_t >( row, 10 );
- rogueItem = exdData->getField< uint32_t >( row, 11 );
+ auto row = exdData->m_RelicItemDat.get_row( row_id );
+ gladiatorItem = exdData->getField< uint32_t >( row, 1 );
+ pugilistItem = exdData->getField< uint32_t >( row, 2 );
+ marauderItem = exdData->getField< uint32_t >( row, 3 );
+ lancerItem = exdData->getField< uint32_t >( row, 4 );
+ archerItem = exdData->getField< uint32_t >( row, 5 );
+ conjurerItem = exdData->getField< uint32_t >( row, 6 );
+ thaumaturgeItem = exdData->getField< uint32_t >( row, 7 );
+ arcanistSMNItem = exdData->getField< uint32_t >( row, 8 );
+ arcanistSCHItem = exdData->getField< uint32_t >( row, 9 );
+ shieldItem = exdData->getField< uint32_t >( row, 10 );
+ rogueItem = exdData->getField< uint32_t >( row, 11 );
}
Core::Data::RelicNote::RelicNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RelicNoteDat.get_row( row_id );
- eventItem = exdData->getField< uint32_t >( row, 0 );
- monsterNoteTargetNM.push_back( exdData->getField< uint16_t >( row, 21 ) );
- monsterNoteTargetNM.push_back( exdData->getField< uint16_t >( row, 22 ) );
- monsterNoteTargetNM.push_back( exdData->getField< uint16_t >( row, 23 ) );
- leve.push_back( exdData->getField< uint16_t >( row, 31 ) );
- leve.push_back( exdData->getField< uint16_t >( row, 32 ) );
- leve.push_back( exdData->getField< uint16_t >( row, 33 ) );
+ auto row = exdData->m_RelicNoteDat.get_row( row_id );
+ eventItem = exdData->getField< uint32_t >( row, 0 );
+ monsterNoteTargetNM.push_back( exdData->getField< uint16_t >( row, 21 ) );
+ monsterNoteTargetNM.push_back( exdData->getField< uint16_t >( row, 22 ) );
+ monsterNoteTargetNM.push_back( exdData->getField< uint16_t >( row, 23 ) );
+ leve.push_back( exdData->getField< uint16_t >( row, 31 ) );
+ leve.push_back( exdData->getField< uint16_t >( row, 32 ) );
+ leve.push_back( exdData->getField< uint16_t >( row, 33 ) );
}
Core::Data::RelicNoteCategory::RelicNoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RelicNoteCategoryDat.get_row( row_id );
- text = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_RelicNoteCategoryDat.get_row( row_id );
+ text = exdData->getField< std::string >( row, 1 );
}
Core::Data::RetainerTask::RetainerTask( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RetainerTaskDat.get_row( row_id );
- isRandom = exdData->getField< bool >( row, 0 );
- classJobCategory = exdData->getField< uint8_t >( row, 1 );
- retainerLevel = exdData->getField< uint8_t >( row, 2 );
- retainerTaskParameter = exdData->getField< uint16_t >( row, 4 );
- ventureCost = exdData->getField< uint16_t >( row, 5 );
- maxTimemin = exdData->getField< uint16_t >( row, 6 );
- experience = exdData->getField< int32_t >( row, 7 );
- requiredItemLevel = exdData->getField< uint16_t >( row, 8 );
- requiredGathering = exdData->getField< uint16_t >( row, 11 );
- task = exdData->getField< uint16_t >( row, 13 );
+ auto row = exdData->m_RetainerTaskDat.get_row( row_id );
+ isRandom = exdData->getField< bool >( row, 0 );
+ classJobCategory = exdData->getField< uint8_t >( row, 1 );
+ retainerLevel = exdData->getField< uint8_t >( row, 2 );
+ retainerTaskParameter = exdData->getField< uint16_t >( row, 4 );
+ ventureCost = exdData->getField< uint16_t >( row, 5 );
+ maxTimemin = exdData->getField< uint16_t >( row, 6 );
+ experience = exdData->getField< int32_t >( row, 7 );
+ requiredItemLevel = exdData->getField< uint16_t >( row, 8 );
+ requiredGathering = exdData->getField< uint16_t >( row, 11 );
+ task = exdData->getField< uint16_t >( row, 13 );
}
Core::Data::RetainerTaskLvRange::RetainerTaskLvRange( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RetainerTaskLvRangeDat.get_row( row_id );
- min = exdData->getField< uint8_t >( row, 0 );
- max = exdData->getField< uint8_t >( row, 1 );
+ auto row = exdData->m_RetainerTaskLvRangeDat.get_row( row_id );
+ min = exdData->getField< uint8_t >( row, 0 );
+ max = exdData->getField< uint8_t >( row, 1 );
}
Core::Data::RetainerTaskNormal::RetainerTaskNormal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RetainerTaskNormalDat.get_row( row_id );
- item = exdData->getField< int32_t >( row, 0 );
- quantity0 = exdData->getField< uint8_t >( row, 1 );
- quantity1 = exdData->getField< uint8_t >( row, 2 );
- quantity2 = exdData->getField< uint8_t >( row, 3 );
- gatheringLog = exdData->getField< int16_t >( row, 4 );
- fishingLog = exdData->getField< int16_t >( row, 5 );
+ auto row = exdData->m_RetainerTaskNormalDat.get_row( row_id );
+ item = exdData->getField< int32_t >( row, 0 );
+ quantity0 = exdData->getField< uint8_t >( row, 1 );
+ quantity1 = exdData->getField< uint8_t >( row, 2 );
+ quantity2 = exdData->getField< uint8_t >( row, 3 );
+ gatheringLog = exdData->getField< int16_t >( row, 4 );
+ fishingLog = exdData->getField< int16_t >( row, 5 );
}
Core::Data::RetainerTaskParameter::RetainerTaskParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RetainerTaskParameterDat.get_row( row_id );
- itemLevelDoW.push_back( exdData->getField< int16_t >( row, 0 ) );
- itemLevelDoW.push_back( exdData->getField< int16_t >( row, 1 ) );
- gatheringDoL.push_back( exdData->getField< int16_t >( row, 2 ) );
- gatheringDoL.push_back( exdData->getField< int16_t >( row, 3 ) );
- gatheringFSH.push_back( exdData->getField< int16_t >( row, 4 ) );
- gatheringFSH.push_back( exdData->getField< int16_t >( row, 5 ) );
+ auto row = exdData->m_RetainerTaskParameterDat.get_row( row_id );
+ itemLevelDoW.push_back( exdData->getField< int16_t >( row, 0 ) );
+ itemLevelDoW.push_back( exdData->getField< int16_t >( row, 1 ) );
+ gatheringDoL.push_back( exdData->getField< int16_t >( row, 2 ) );
+ gatheringDoL.push_back( exdData->getField< int16_t >( row, 3 ) );
+ gatheringFSH.push_back( exdData->getField< int16_t >( row, 4 ) );
+ gatheringFSH.push_back( exdData->getField< int16_t >( row, 5 ) );
}
Core::Data::RetainerTaskRandom::RetainerTaskRandom( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_RetainerTaskRandomDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- requirement = exdData->getField< int16_t >( row, 1 );
+ auto row = exdData->m_RetainerTaskRandomDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ requirement = exdData->getField< int16_t >( row, 1 );
}
Core::Data::Salvage::Salvage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SalvageDat.get_row( row_id );
- optimalSkill = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_SalvageDat.get_row( row_id );
+ optimalSkill = exdData->getField< uint16_t >( row, 0 );
}
Core::Data::SatisfactionNpc::SatisfactionNpc( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SatisfactionNpcDat.get_row( row_id );
- npc = exdData->getField< int32_t >( row, 0 );
- questRequired = exdData->getField< int32_t >( row, 1 );
- deliveriesPerWeek = exdData->getField< uint8_t >( row, 3 );
- supplyIndex.push_back( exdData->getField< int32_t >( row, 4 ) );
- supplyIndex.push_back( exdData->getField< int32_t >( row, 5 ) );
- supplyIndex.push_back( exdData->getField< int32_t >( row, 6 ) );
- supplyIndex.push_back( exdData->getField< int32_t >( row, 7 ) );
- supplyIndex.push_back( exdData->getField< int32_t >( row, 8 ) );
- supplyIndex.push_back( exdData->getField< int32_t >( row, 9 ) );
- satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 10 ) );
- satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 11 ) );
- satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 12 ) );
- satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 13 ) );
- satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 14 ) );
- satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 15 ) );
- icon = exdData->getField< int32_t >( row, 70 );
+ auto row = exdData->m_SatisfactionNpcDat.get_row( row_id );
+ npc = exdData->getField< int32_t >( row, 0 );
+ questRequired = exdData->getField< int32_t >( row, 1 );
+ deliveriesPerWeek = exdData->getField< uint8_t >( row, 3 );
+ supplyIndex.push_back( exdData->getField< int32_t >( row, 4 ) );
+ supplyIndex.push_back( exdData->getField< int32_t >( row, 5 ) );
+ supplyIndex.push_back( exdData->getField< int32_t >( row, 6 ) );
+ supplyIndex.push_back( exdData->getField< int32_t >( row, 7 ) );
+ supplyIndex.push_back( exdData->getField< int32_t >( row, 8 ) );
+ supplyIndex.push_back( exdData->getField< int32_t >( row, 9 ) );
+ satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 10 ) );
+ satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 11 ) );
+ satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 12 ) );
+ satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 13 ) );
+ satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 14 ) );
+ satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 15 ) );
+ icon = exdData->getField< int32_t >( row, 70 );
}
Core::Data::SatisfactionSupply::SatisfactionSupply( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SatisfactionSupplyDat.get_row( row_id );
- slot = exdData->getField< uint8_t >( row, 0 );
- probability = exdData->getField< uint8_t >( row, 1 );
- item = exdData->getField< int32_t >( row, 2 );
- collectabilityLow = exdData->getField< uint16_t >( row, 3 );
- collectabilityMid = exdData->getField< uint16_t >( row, 4 );
- collectabilityHigh = exdData->getField< uint16_t >( row, 5 );
- reward = exdData->getField< uint16_t >( row, 6 );
+ auto row = exdData->m_SatisfactionSupplyDat.get_row( row_id );
+ slot = exdData->getField< uint8_t >( row, 0 );
+ probability = exdData->getField< uint8_t >( row, 1 );
+ item = exdData->getField< int32_t >( row, 2 );
+ collectabilityLow = exdData->getField< uint16_t >( row, 3 );
+ collectabilityMid = exdData->getField< uint16_t >( row, 4 );
+ collectabilityHigh = exdData->getField< uint16_t >( row, 5 );
+ reward = exdData->getField< uint16_t >( row, 6 );
}
Core::Data::SatisfactionSupplyReward::SatisfactionSupplyReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SatisfactionSupplyRewardDat.get_row( row_id );
- satisfactionLow = exdData->getField< uint16_t >( row, 10 );
- satisfactionMid = exdData->getField< uint16_t >( row, 11 );
- satisfactionHigh = exdData->getField< uint16_t >( row, 12 );
- gilLow = exdData->getField< uint16_t >( row, 13 );
- gilMid = exdData->getField< uint16_t >( row, 14 );
- gilHigh = exdData->getField< uint16_t >( row, 15 );
+ auto row = exdData->m_SatisfactionSupplyRewardDat.get_row( row_id );
+ satisfactionLow = exdData->getField< uint16_t >( row, 10 );
+ satisfactionMid = exdData->getField< uint16_t >( row, 11 );
+ satisfactionHigh = exdData->getField< uint16_t >( row, 12 );
+ gilLow = exdData->getField< uint16_t >( row, 13 );
+ gilMid = exdData->getField< uint16_t >( row, 14 );
+ gilHigh = exdData->getField< uint16_t >( row, 15 );
}
Core::Data::ScenarioTree::ScenarioTree( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ScenarioTreeDat.get_row( row_id );
- type = exdData->getField< uint8_t >( row, 0 );
- image = exdData->getField< uint16_t >( row, 1 );
+ auto row = exdData->m_ScenarioTreeDat.get_row( row_id );
+ type = exdData->getField< uint8_t >( row, 0 );
+ image = exdData->getField< uint16_t >( row, 1 );
}
Core::Data::ScenarioTreeTips::ScenarioTreeTips( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ScenarioTreeTipsDat.get_row( row_id );
- tips1 = exdData->getField< uint32_t >( row, 1 );
- tips2 = exdData->getField< uint32_t >( row, 3 );
+ auto row = exdData->m_ScenarioTreeTipsDat.get_row( row_id );
+ tips1 = exdData->getField< uint32_t >( row, 1 );
+ tips2 = exdData->getField< uint32_t >( row, 3 );
}
-Core::Data::ScenarioTreeTipsClassQuest::ScenarioTreeTipsClassQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
+Core::Data::ScenarioTreeTipsClassQuest::ScenarioTreeTipsClassQuest( uint32_t row_id,
+ Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ScenarioTreeTipsClassQuestDat.get_row( row_id );
- quest = exdData->getField< uint32_t >( row, 0 );
- requiredLevel = exdData->getField< uint16_t >( row, 1 );
- requiredExpansion = exdData->getField< uint8_t >( row, 2 );
- requiredQuest = exdData->getField< uint32_t >( row, 3 );
+ auto row = exdData->m_ScenarioTreeTipsClassQuestDat.get_row( row_id );
+ quest = exdData->getField< uint32_t >( row, 0 );
+ requiredLevel = exdData->getField< uint16_t >( row, 1 );
+ requiredExpansion = exdData->getField< uint8_t >( row, 2 );
+ requiredQuest = exdData->getField< uint32_t >( row, 3 );
}
Core::Data::ScenarioTreeTipsQuest::ScenarioTreeTipsQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ScenarioTreeTipsQuestDat.get_row( row_id );
- level = exdData->getField< uint32_t >( row, 0 );
+ auto row = exdData->m_ScenarioTreeTipsQuestDat.get_row( row_id );
+ level = exdData->getField< uint32_t >( row, 0 );
}
Core::Data::ScenarioType::ScenarioType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ScenarioTypeDat.get_row( row_id );
- type = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_ScenarioTypeDat.get_row( row_id );
+ type = exdData->getField< std::string >( row, 0 );
}
Core::Data::ScreenImage::ScreenImage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ScreenImageDat.get_row( row_id );
- image = exdData->getField< uint32_t >( row, 0 );
+ auto row = exdData->m_ScreenImageDat.get_row( row_id );
+ image = exdData->getField< uint32_t >( row, 0 );
}
Core::Data::SecretRecipeBook::SecretRecipeBook( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SecretRecipeBookDat.get_row( row_id );
- item = exdData->getField< int32_t >( row, 0 );
- name = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_SecretRecipeBookDat.get_row( row_id );
+ item = exdData->getField< int32_t >( row, 0 );
+ name = exdData->getField< std::string >( row, 1 );
}
Core::Data::SkyIsland2Mission::SkyIsland2Mission( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SkyIsland2MissionDat.get_row( row_id );
- item1 = exdData->getField< uint32_t >( row, 0 );
- item2 = exdData->getField< uint32_t >( row, 1 );
- objective1 = exdData->getField< uint16_t >( row, 4 );
- requiredAmount1 = exdData->getField< uint8_t >( row, 6 );
- objective2 = exdData->getField< uint16_t >( row, 9 );
- requiredAmount2 = exdData->getField< uint8_t >( row, 11 );
- objective3 = exdData->getField< uint16_t >( row, 14 );
- image = exdData->getField< uint32_t >( row, 20 );
+ auto row = exdData->m_SkyIsland2MissionDat.get_row( row_id );
+ item1 = exdData->getField< uint32_t >( row, 0 );
+ item2 = exdData->getField< uint32_t >( row, 1 );
+ objective1 = exdData->getField< uint16_t >( row, 4 );
+ requiredAmount1 = exdData->getField< uint8_t >( row, 6 );
+ objective2 = exdData->getField< uint16_t >( row, 9 );
+ requiredAmount2 = exdData->getField< uint8_t >( row, 11 );
+ objective3 = exdData->getField< uint16_t >( row, 14 );
+ image = exdData->getField< uint32_t >( row, 20 );
}
Core::Data::SkyIsland2MissionDetail::SkyIsland2MissionDetail( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SkyIsland2MissionDetailDat.get_row( row_id );
- type = exdData->getField< uint8_t >( row, 0 );
- range = exdData->getField< uint8_t >( row, 2 );
- eObj = exdData->getField< uint32_t >( row, 4 );
- objective = exdData->getField< std::string >( row, 7 );
+ auto row = exdData->m_SkyIsland2MissionDetailDat.get_row( row_id );
+ type = exdData->getField< uint8_t >( row, 0 );
+ range = exdData->getField< uint8_t >( row, 2 );
+ eObj = exdData->getField< uint32_t >( row, 4 );
+ objective = exdData->getField< std::string >( row, 7 );
}
Core::Data::SkyIsland2MissionType::SkyIsland2MissionType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SkyIsland2MissionTypeDat.get_row( row_id );
- type = exdData->getField< bool >( row, 0 );
+ auto row = exdData->m_SkyIsland2MissionTypeDat.get_row( row_id );
+ type = exdData->getField< bool >( row, 0 );
}
Core::Data::SkyIsland2RangeType::SkyIsland2RangeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SkyIsland2RangeTypeDat.get_row( row_id );
- type = exdData->getField< uint8_t >( row, 0 );
+ auto row = exdData->m_SkyIsland2RangeTypeDat.get_row( row_id );
+ type = exdData->getField< uint8_t >( row, 0 );
}
Core::Data::SpearfishingItem::SpearfishingItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SpearfishingItemDat.get_row( row_id );
- description = exdData->getField< std::string >( row, 0 );
- item = exdData->getField< int32_t >( row, 1 );
- gatheringItemLevel = exdData->getField< uint16_t >( row, 2 );
- territoryType = exdData->getField< uint16_t >( row, 4 );
- isVisible = exdData->getField< bool >( row, 5 );
+ auto row = exdData->m_SpearfishingItemDat.get_row( row_id );
+ description = exdData->getField< std::string >( row, 0 );
+ item = exdData->getField< int32_t >( row, 1 );
+ gatheringItemLevel = exdData->getField< uint16_t >( row, 2 );
+ territoryType = exdData->getField< uint16_t >( row, 4 );
+ isVisible = exdData->getField< bool >( row, 5 );
}
Core::Data::SpearfishingNotebook::SpearfishingNotebook( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SpearfishingNotebookDat.get_row( row_id );
- gatheringLevel = exdData->getField< uint8_t >( row, 0 );
- territoryType = exdData->getField< int32_t >( row, 2 );
- x = exdData->getField< int16_t >( row, 3 );
- y = exdData->getField< int16_t >( row, 4 );
- radius = exdData->getField< uint16_t >( row, 5 );
- placeName = exdData->getField< uint16_t >( row, 7 );
- gatheringPointBase = exdData->getField< uint16_t >( row, 9 );
+ auto row = exdData->m_SpearfishingNotebookDat.get_row( row_id );
+ gatheringLevel = exdData->getField< uint8_t >( row, 0 );
+ territoryType = exdData->getField< int32_t >( row, 2 );
+ x = exdData->getField< int16_t >( row, 3 );
+ y = exdData->getField< int16_t >( row, 4 );
+ radius = exdData->getField< uint16_t >( row, 5 );
+ placeName = exdData->getField< uint16_t >( row, 7 );
+ gatheringPointBase = exdData->getField< uint16_t >( row, 9 );
}
Core::Data::SpecialShop::SpecialShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SpecialShopDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- questItem.push_back( exdData->getField< int32_t >( row, 1201 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1202 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1203 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1204 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1205 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1206 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1207 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1208 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1209 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1210 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1211 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1212 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1213 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1214 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1215 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1216 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1217 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1218 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1219 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1220 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1221 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1222 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1223 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1224 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1225 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1226 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1227 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1228 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1229 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1230 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1231 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1232 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1233 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1234 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1235 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1236 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1237 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1238 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1239 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1240 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1241 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1242 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1243 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1244 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1245 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1246 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1247 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1248 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1249 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1250 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1251 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1252 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1253 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1254 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1255 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1256 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1257 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1258 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1259 ) );
- questItem.push_back( exdData->getField< int32_t >( row, 1260 ) );
- questShop = exdData->getField< int32_t >( row, 1863 );
+ auto row = exdData->m_SpecialShopDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ questItem.push_back( exdData->getField< int32_t >( row, 1201 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1202 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1203 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1204 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1205 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1206 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1207 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1208 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1209 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1210 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1211 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1212 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1213 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1214 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1215 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1216 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1217 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1218 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1219 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1220 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1221 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1222 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1223 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1224 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1225 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1226 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1227 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1228 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1229 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1230 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1231 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1232 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1233 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1234 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1235 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1236 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1237 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1238 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1239 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1240 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1241 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1242 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1243 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1244 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1245 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1246 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1247 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1248 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1249 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1250 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1251 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1252 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1253 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1254 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1255 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1256 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1257 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1258 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1259 ) );
+ questItem.push_back( exdData->getField< int32_t >( row, 1260 ) );
+ questShop = exdData->getField< int32_t >( row, 1863 );
}
Core::Data::SpecialShopItemCategory::SpecialShopItemCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SpecialShopItemCategoryDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_SpecialShopItemCategoryDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::Stain::Stain( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_StainDat.get_row( row_id );
- color = exdData->getField< uint32_t >( row, 0 );
- shade = exdData->getField< uint8_t >( row, 1 );
- name = exdData->getField< std::string >( row, 2 );
+ auto row = exdData->m_StainDat.get_row( row_id );
+ color = exdData->getField< uint32_t >( row, 0 );
+ shade = exdData->getField< uint8_t >( row, 1 );
+ name = exdData->getField< std::string >( row, 2 );
}
Core::Data::StainTransient::StainTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_StainTransientDat.get_row( row_id );
- item1 = exdData->getField< uint32_t >( row, 0 );
- item2 = exdData->getField< uint32_t >( row, 1 );
+ auto row = exdData->m_StainTransientDat.get_row( row_id );
+ item1 = exdData->getField< uint32_t >( row, 0 );
+ item2 = exdData->getField< uint32_t >( row, 1 );
}
Core::Data::Status::Status( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_StatusDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- description = exdData->getField< std::string >( row, 1 );
- icon = exdData->getField< uint16_t >( row, 2 );
- maxStacks = exdData->getField< uint8_t >( row, 3 );
- category = exdData->getField< uint8_t >( row, 4 );
- hitEffect = exdData->getField< uint8_t >( row, 5 );
- vFX = exdData->getField< uint8_t >( row, 6 );
- lockMovement = exdData->getField< bool >( row, 7 );
- lockActions = exdData->getField< bool >( row, 9 );
- lockControl = exdData->getField< bool >( row, 10 );
- transfiguration = exdData->getField< bool >( row, 11 );
- canDispel = exdData->getField< bool >( row, 13 );
- inflictedByActor = exdData->getField< bool >( row, 14 );
- isPermanent = exdData->getField< bool >( row, 15 );
- isFcBuff = exdData->getField< bool >( row, 21 );
- invisibility = exdData->getField< bool >( row, 22 );
+ auto row = exdData->m_StatusDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ description = exdData->getField< std::string >( row, 1 );
+ icon = exdData->getField< uint16_t >( row, 2 );
+ maxStacks = exdData->getField< uint8_t >( row, 3 );
+ category = exdData->getField< uint8_t >( row, 4 );
+ hitEffect = exdData->getField< uint8_t >( row, 5 );
+ vFX = exdData->getField< uint8_t >( row, 6 );
+ lockMovement = exdData->getField< bool >( row, 7 );
+ lockActions = exdData->getField< bool >( row, 9 );
+ lockControl = exdData->getField< bool >( row, 10 );
+ transfiguration = exdData->getField< bool >( row, 11 );
+ canDispel = exdData->getField< bool >( row, 13 );
+ inflictedByActor = exdData->getField< bool >( row, 14 );
+ isPermanent = exdData->getField< bool >( row, 15 );
+ isFcBuff = exdData->getField< bool >( row, 21 );
+ invisibility = exdData->getField< bool >( row, 22 );
}
Core::Data::StatusHitEffect::StatusHitEffect( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_StatusHitEffectDat.get_row( row_id );
- location = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_StatusHitEffectDat.get_row( row_id );
+ location = exdData->getField< uint16_t >( row, 0 );
}
Core::Data::StatusLoopVFX::StatusLoopVFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_StatusLoopVFXDat.get_row( row_id );
- location = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_StatusLoopVFXDat.get_row( row_id );
+ location = exdData->getField< uint16_t >( row, 0 );
}
Core::Data::Story::Story( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_StoryDat.get_row( row_id );
+ auto row = exdData->m_StoryDat.get_row( row_id );
}
Core::Data::SubmarineExploration::SubmarineExploration( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SubmarineExplorationDat.get_row( row_id );
- destination = exdData->getField< std::string >( row, 0 );
- location = exdData->getField< std::string >( row, 1 );
- rankReq = exdData->getField< uint8_t >( row, 5 );
- ceruleumTankReq = exdData->getField< uint8_t >( row, 6 );
- durationmin = exdData->getField< uint16_t >( row, 7 );
- distanceForSurvey = exdData->getField< uint8_t >( row, 8 );
- expReward = exdData->getField< uint32_t >( row, 9 );
+ auto row = exdData->m_SubmarineExplorationDat.get_row( row_id );
+ destination = exdData->getField< std::string >( row, 0 );
+ location = exdData->getField< std::string >( row, 1 );
+ rankReq = exdData->getField< uint8_t >( row, 5 );
+ ceruleumTankReq = exdData->getField< uint8_t >( row, 6 );
+ durationmin = exdData->getField< uint16_t >( row, 7 );
+ distanceForSurvey = exdData->getField< uint8_t >( row, 8 );
+ expReward = exdData->getField< uint32_t >( row, 9 );
}
Core::Data::SubmarinePart::SubmarinePart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SubmarinePartDat.get_row( row_id );
- slot = exdData->getField< uint8_t >( row, 0 );
- rank = exdData->getField< uint8_t >( row, 1 );
- components = exdData->getField< uint8_t >( row, 2 );
- surveillance = exdData->getField< int16_t >( row, 3 );
- retrieval = exdData->getField< int16_t >( row, 4 );
- speed = exdData->getField< int16_t >( row, 5 );
- range = exdData->getField< int16_t >( row, 6 );
- favor = exdData->getField< int16_t >( row, 7 );
- repairMaterials = exdData->getField< uint8_t >( row, 9 );
+ auto row = exdData->m_SubmarinePartDat.get_row( row_id );
+ slot = exdData->getField< uint8_t >( row, 0 );
+ rank = exdData->getField< uint8_t >( row, 1 );
+ components = exdData->getField< uint8_t >( row, 2 );
+ surveillance = exdData->getField< int16_t >( row, 3 );
+ retrieval = exdData->getField< int16_t >( row, 4 );
+ speed = exdData->getField< int16_t >( row, 5 );
+ range = exdData->getField< int16_t >( row, 6 );
+ favor = exdData->getField< int16_t >( row, 7 );
+ repairMaterials = exdData->getField< uint8_t >( row, 9 );
}
Core::Data::SubmarineRank::SubmarineRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SubmarineRankDat.get_row( row_id );
- rank = exdData->getField< uint16_t >( row, 0 );
- expToNext = exdData->getField< uint32_t >( row, 1 );
+ auto row = exdData->m_SubmarineRankDat.get_row( row_id );
+ rank = exdData->getField< uint16_t >( row, 0 );
+ expToNext = exdData->getField< uint32_t >( row, 1 );
}
Core::Data::SwitchTalk::SwitchTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_SwitchTalkDat.get_row( row_id );
- quest.push_back( exdData->getField< uint32_t >( row, 2 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 3 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 4 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 5 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 6 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 7 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 8 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 9 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 10 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 11 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 12 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 13 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 14 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 15 ) );
- quest.push_back( exdData->getField< uint32_t >( row, 16 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 17 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 18 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 19 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 20 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 21 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 22 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 23 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 24 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 25 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 26 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 27 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 28 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 29 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 30 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 31 ) );
- defaultTalk.push_back( exdData->getField< uint32_t >( row, 32 ) );
+ auto row = exdData->m_SwitchTalkDat.get_row( row_id );
+ quest.push_back( exdData->getField< uint32_t >( row, 2 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 3 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 4 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 5 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 6 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 7 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 8 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 9 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 10 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 11 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 12 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 13 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 14 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 15 ) );
+ quest.push_back( exdData->getField< uint32_t >( row, 16 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 17 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 18 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 19 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 20 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 21 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 22 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 23 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 24 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 25 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 26 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 27 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 28 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 29 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 30 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 31 ) );
+ defaultTalk.push_back( exdData->getField< uint32_t >( row, 32 ) );
}
Core::Data::TerritoryType::TerritoryType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TerritoryTypeDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- bg = exdData->getField< std::string >( row, 1 );
- placeNameRegion = exdData->getField< uint16_t >( row, 3 );
- placeNameZone = exdData->getField< uint16_t >( row, 4 );
- placeName = exdData->getField< uint16_t >( row, 5 );
- map = exdData->getField< uint16_t >( row, 6 );
- territoryIntendedUse = exdData->getField< uint8_t >( row, 9 );
- weatherRate = exdData->getField< uint8_t >( row, 12 );
- arrayEventHandler = exdData->getField< uint32_t >( row, 22 );
- aetheryte = exdData->getField< int32_t >( row, 24 );
+ auto row = exdData->m_TerritoryTypeDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ bg = exdData->getField< std::string >( row, 1 );
+ placeNameRegion = exdData->getField< uint16_t >( row, 3 );
+ placeNameZone = exdData->getField< uint16_t >( row, 4 );
+ placeName = exdData->getField< uint16_t >( row, 5 );
+ map = exdData->getField< uint16_t >( row, 6 );
+ territoryIntendedUse = exdData->getField< uint8_t >( row, 9 );
+ weatherRate = exdData->getField< uint8_t >( row, 12 );
+ arrayEventHandler = exdData->getField< uint32_t >( row, 22 );
+ aetheryte = exdData->getField< int32_t >( row, 24 );
}
Core::Data::TextCommand::TextCommand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TextCommandDat.get_row( row_id );
- command = exdData->getField< std::string >( row, 5 );
- shortCommand = exdData->getField< std::string >( row, 6 );
- description = exdData->getField< std::string >( row, 7 );
- alias = exdData->getField< std::string >( row, 8 );
- shortAlias = exdData->getField< std::string >( row, 9 );
+ auto row = exdData->m_TextCommandDat.get_row( row_id );
+ command = exdData->getField< std::string >( row, 5 );
+ shortCommand = exdData->getField< std::string >( row, 6 );
+ description = exdData->getField< std::string >( row, 7 );
+ alias = exdData->getField< std::string >( row, 8 );
+ shortAlias = exdData->getField< std::string >( row, 9 );
}
Core::Data::Title::Title( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TitleDat.get_row( row_id );
- masculine = exdData->getField< std::string >( row, 0 );
- feminine = exdData->getField< std::string >( row, 1 );
- isPrefix = exdData->getField< bool >( row, 2 );
+ auto row = exdData->m_TitleDat.get_row( row_id );
+ masculine = exdData->getField< std::string >( row, 0 );
+ feminine = exdData->getField< std::string >( row, 1 );
+ isPrefix = exdData->getField< bool >( row, 2 );
}
Core::Data::Tomestones::Tomestones( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TomestonesDat.get_row( row_id );
- weeklyLimit = exdData->getField< uint16_t >( row, 0 );
+ auto row = exdData->m_TomestonesDat.get_row( row_id );
+ weeklyLimit = exdData->getField< uint16_t >( row, 0 );
}
Core::Data::TomestonesItem::TomestonesItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TomestonesItemDat.get_row( row_id );
- item = exdData->getField< int32_t >( row, 0 );
- tomestones = exdData->getField< int32_t >( row, 2 );
+ auto row = exdData->m_TomestonesItemDat.get_row( row_id );
+ item = exdData->getField< int32_t >( row, 0 );
+ tomestones = exdData->getField< int32_t >( row, 2 );
}
Core::Data::TopicSelect::TopicSelect( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TopicSelectDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_TopicSelectDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::Town::Town( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TownDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- icon = exdData->getField< int32_t >( row, 1 );
+ auto row = exdData->m_TownDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ icon = exdData->getField< int32_t >( row, 1 );
}
Core::Data::Trait::Trait( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TraitDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- icon = exdData->getField< int32_t >( row, 1 );
- classJob = exdData->getField< uint8_t >( row, 2 );
- level = exdData->getField< uint8_t >( row, 3 );
- value = exdData->getField< int16_t >( row, 5 );
- classJobCategory = exdData->getField< uint8_t >( row, 6 );
+ auto row = exdData->m_TraitDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ icon = exdData->getField< int32_t >( row, 1 );
+ classJob = exdData->getField< uint8_t >( row, 2 );
+ level = exdData->getField< uint8_t >( row, 3 );
+ value = exdData->getField< int16_t >( row, 5 );
+ classJobCategory = exdData->getField< uint8_t >( row, 6 );
}
Core::Data::TraitRecast::TraitRecast( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TraitRecastDat.get_row( row_id );
- trait = exdData->getField< uint16_t >( row, 0 );
- action = exdData->getField< uint16_t >( row, 1 );
- timeds = exdData->getField< uint16_t >( row, 2 );
+ auto row = exdData->m_TraitRecastDat.get_row( row_id );
+ trait = exdData->getField< uint16_t >( row, 0 );
+ action = exdData->getField< uint16_t >( row, 1 );
+ timeds = exdData->getField< uint16_t >( row, 2 );
}
Core::Data::TraitTransient::TraitTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TraitTransientDat.get_row( row_id );
- description = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_TraitTransientDat.get_row( row_id );
+ description = exdData->getField< std::string >( row, 0 );
}
Core::Data::Transformation::Transformation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TransformationDat.get_row( row_id );
- model = exdData->getField< int16_t >( row, 1 );
- bNpcCustomize = exdData->getField< int32_t >( row, 2 );
- bNpcEquip = exdData->getField< int32_t >( row, 3 );
- action.push_back( exdData->getField< uint16_t >( row, 4 ) );
- action.push_back( exdData->getField< uint16_t >( row, 5 ) );
- action.push_back( exdData->getField< uint16_t >( row, 6 ) );
- action.push_back( exdData->getField< uint16_t >( row, 7 ) );
- action.push_back( exdData->getField< uint16_t >( row, 8 ) );
- action.push_back( exdData->getField< uint16_t >( row, 9 ) );
- speed = exdData->getField< float >( row, 12 );
- scale = exdData->getField< float >( row, 13 );
- isPvP = exdData->getField< bool >( row, 14 );
- isEvent = exdData->getField< bool >( row, 15 );
- playerCamera = exdData->getField< bool >( row, 16 );
+ auto row = exdData->m_TransformationDat.get_row( row_id );
+ model = exdData->getField< int16_t >( row, 1 );
+ bNpcCustomize = exdData->getField< int32_t >( row, 2 );
+ bNpcEquip = exdData->getField< int32_t >( row, 3 );
+ action.push_back( exdData->getField< uint16_t >( row, 4 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 5 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 6 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 7 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 8 ) );
+ action.push_back( exdData->getField< uint16_t >( row, 9 ) );
+ speed = exdData->getField< float >( row, 12 );
+ scale = exdData->getField< float >( row, 13 );
+ isPvP = exdData->getField< bool >( row, 14 );
+ isEvent = exdData->getField< bool >( row, 15 );
+ playerCamera = exdData->getField< bool >( row, 16 );
}
Core::Data::Treasure::Treasure( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TreasureDat.get_row( row_id );
- item = exdData->getField< uint32_t >( row, 8 );
+ auto row = exdData->m_TreasureDat.get_row( row_id );
+ item = exdData->getField< uint32_t >( row, 8 );
}
Core::Data::TreasureHuntRank::TreasureHuntRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TreasureHuntRankDat.get_row( row_id );
- icon = exdData->getField< uint32_t >( row, 1 );
- itemName = exdData->getField< int32_t >( row, 2 );
- keyItemName = exdData->getField< int32_t >( row, 3 );
- instanceMap = exdData->getField< int32_t >( row, 4 );
- maxPartySize = exdData->getField< uint8_t >( row, 5 );
- minPartySize = exdData->getField< uint8_t >( row, 6 );
+ auto row = exdData->m_TreasureHuntRankDat.get_row( row_id );
+ icon = exdData->getField< uint32_t >( row, 1 );
+ itemName = exdData->getField< int32_t >( row, 2 );
+ keyItemName = exdData->getField< int32_t >( row, 3 );
+ instanceMap = exdData->getField< int32_t >( row, 4 );
+ maxPartySize = exdData->getField< uint8_t >( row, 5 );
+ minPartySize = exdData->getField< uint8_t >( row, 6 );
}
Core::Data::Tribe::Tribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TribeDat.get_row( row_id );
- masculine = exdData->getField< std::string >( row, 0 );
- feminine = exdData->getField< std::string >( row, 1 );
- sTR = exdData->getField< int8_t >( row, 4 );
- dEX = exdData->getField< int8_t >( row, 5 );
- vIT = exdData->getField< int8_t >( row, 6 );
- iNT = exdData->getField< int8_t >( row, 7 );
- mND = exdData->getField< int8_t >( row, 8 );
- pIE = exdData->getField< int8_t >( row, 9 );
+ auto row = exdData->m_TribeDat.get_row( row_id );
+ masculine = exdData->getField< std::string >( row, 0 );
+ feminine = exdData->getField< std::string >( row, 1 );
+ sTR = exdData->getField< int8_t >( row, 4 );
+ dEX = exdData->getField< int8_t >( row, 5 );
+ vIT = exdData->getField< int8_t >( row, 6 );
+ iNT = exdData->getField< int8_t >( row, 7 );
+ mND = exdData->getField< int8_t >( row, 8 );
+ pIE = exdData->getField< int8_t >( row, 9 );
}
Core::Data::TripleTriad::TripleTriad( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TripleTriadDat.get_row( row_id );
- tripleTriadCardFixed.push_back( exdData->getField< uint16_t >( row, 0 ) );
- tripleTriadCardFixed.push_back( exdData->getField< uint16_t >( row, 1 ) );
- tripleTriadCardFixed.push_back( exdData->getField< uint16_t >( row, 2 ) );
- tripleTriadCardFixed.push_back( exdData->getField< uint16_t >( row, 3 ) );
- tripleTriadCardFixed.push_back( exdData->getField< uint16_t >( row, 4 ) );
- tripleTriadCardVariable.push_back( exdData->getField< uint16_t >( row, 5 ) );
- tripleTriadCardVariable.push_back( exdData->getField< uint16_t >( row, 6 ) );
- tripleTriadCardVariable.push_back( exdData->getField< uint16_t >( row, 7 ) );
- tripleTriadCardVariable.push_back( exdData->getField< uint16_t >( row, 8 ) );
- tripleTriadCardVariable.push_back( exdData->getField< uint16_t >( row, 9 ) );
- tripleTriadRule.push_back( exdData->getField< uint8_t >( row, 10 ) );
- tripleTriadRule.push_back( exdData->getField< uint8_t >( row, 11 ) );
- usesRegionalRules = exdData->getField< bool >( row, 12 );
- fee = exdData->getField< uint16_t >( row, 13 );
- previousQuestJoin = exdData->getField< uint8_t >( row, 14 );
- previousQuest.push_back( exdData->getField< uint32_t >( row, 15 ) );
- previousQuest.push_back( exdData->getField< uint32_t >( row, 16 ) );
- previousQuest.push_back( exdData->getField< uint32_t >( row, 17 ) );
- startTime = exdData->getField< uint16_t >( row, 18 );
- endTime = exdData->getField< uint16_t >( row, 19 );
- defaultTalkChallenge = exdData->getField< uint32_t >( row, 20 );
- defaultTalkUnavailable = exdData->getField< uint32_t >( row, 21 );
- defaultTalkNPCWin = exdData->getField< uint32_t >( row, 22 );
- defaultTalkDraw = exdData->getField< uint32_t >( row, 23 );
- defaultTalkPCWin = exdData->getField< uint32_t >( row, 24 );
- itemPossibleReward.push_back( exdData->getField< uint32_t >( row, 26 ) );
- itemPossibleReward.push_back( exdData->getField< uint32_t >( row, 27 ) );
- itemPossibleReward.push_back( exdData->getField< uint32_t >( row, 28 ) );
- itemPossibleReward.push_back( exdData->getField< uint32_t >( row, 29 ) );
+ auto row = exdData->m_TripleTriadDat.get_row( row_id );
+ tripleTriadCardFixed.push_back( exdData->getField< uint16_t >( row, 0 ) );
+ tripleTriadCardFixed.push_back( exdData->getField< uint16_t >( row, 1 ) );
+ tripleTriadCardFixed.push_back( exdData->getField< uint16_t >( row, 2 ) );
+ tripleTriadCardFixed.push_back( exdData->getField< uint16_t >( row, 3 ) );
+ tripleTriadCardFixed.push_back( exdData->getField< uint16_t >( row, 4 ) );
+ tripleTriadCardVariable.push_back( exdData->getField< uint16_t >( row, 5 ) );
+ tripleTriadCardVariable.push_back( exdData->getField< uint16_t >( row, 6 ) );
+ tripleTriadCardVariable.push_back( exdData->getField< uint16_t >( row, 7 ) );
+ tripleTriadCardVariable.push_back( exdData->getField< uint16_t >( row, 8 ) );
+ tripleTriadCardVariable.push_back( exdData->getField< uint16_t >( row, 9 ) );
+ tripleTriadRule.push_back( exdData->getField< uint8_t >( row, 10 ) );
+ tripleTriadRule.push_back( exdData->getField< uint8_t >( row, 11 ) );
+ usesRegionalRules = exdData->getField< bool >( row, 12 );
+ fee = exdData->getField< uint16_t >( row, 13 );
+ previousQuestJoin = exdData->getField< uint8_t >( row, 14 );
+ previousQuest.push_back( exdData->getField< uint32_t >( row, 15 ) );
+ previousQuest.push_back( exdData->getField< uint32_t >( row, 16 ) );
+ previousQuest.push_back( exdData->getField< uint32_t >( row, 17 ) );
+ startTime = exdData->getField< uint16_t >( row, 18 );
+ endTime = exdData->getField< uint16_t >( row, 19 );
+ defaultTalkChallenge = exdData->getField< uint32_t >( row, 20 );
+ defaultTalkUnavailable = exdData->getField< uint32_t >( row, 21 );
+ defaultTalkNPCWin = exdData->getField< uint32_t >( row, 22 );
+ defaultTalkDraw = exdData->getField< uint32_t >( row, 23 );
+ defaultTalkPCWin = exdData->getField< uint32_t >( row, 24 );
+ itemPossibleReward.push_back( exdData->getField< uint32_t >( row, 26 ) );
+ itemPossibleReward.push_back( exdData->getField< uint32_t >( row, 27 ) );
+ itemPossibleReward.push_back( exdData->getField< uint32_t >( row, 28 ) );
+ itemPossibleReward.push_back( exdData->getField< uint32_t >( row, 29 ) );
}
Core::Data::TripleTriadCard::TripleTriadCard( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TripleTriadCardDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
- startsWithVowel = exdData->getField< int8_t >( row, 4 );
- description = exdData->getField< std::string >( row, 8 );
+ auto row = exdData->m_TripleTriadCardDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
+ startsWithVowel = exdData->getField< int8_t >( row, 4 );
+ description = exdData->getField< std::string >( row, 8 );
}
Core::Data::TripleTriadCardRarity::TripleTriadCardRarity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TripleTriadCardRarityDat.get_row( row_id );
- stars = exdData->getField< uint8_t >( row, 0 );
+ auto row = exdData->m_TripleTriadCardRarityDat.get_row( row_id );
+ stars = exdData->getField< uint8_t >( row, 0 );
}
Core::Data::TripleTriadCardResident::TripleTriadCardResident( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TripleTriadCardResidentDat.get_row( row_id );
- top = exdData->getField< uint8_t >( row, 1 );
- bottom = exdData->getField< uint8_t >( row, 2 );
- left = exdData->getField< uint8_t >( row, 3 );
- right = exdData->getField< uint8_t >( row, 4 );
- tripleTriadCardRarity = exdData->getField< uint8_t >( row, 5 );
- tripleTriadCardType = exdData->getField< uint8_t >( row, 6 );
- saleValue = exdData->getField< uint16_t >( row, 7 );
- sortKey = exdData->getField< uint8_t >( row, 8 );
+ auto row = exdData->m_TripleTriadCardResidentDat.get_row( row_id );
+ top = exdData->getField< uint8_t >( row, 1 );
+ bottom = exdData->getField< uint8_t >( row, 2 );
+ left = exdData->getField< uint8_t >( row, 3 );
+ right = exdData->getField< uint8_t >( row, 4 );
+ tripleTriadCardRarity = exdData->getField< uint8_t >( row, 5 );
+ tripleTriadCardType = exdData->getField< uint8_t >( row, 6 );
+ saleValue = exdData->getField< uint16_t >( row, 7 );
+ sortKey = exdData->getField< uint8_t >( row, 8 );
}
Core::Data::TripleTriadCardType::TripleTriadCardType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TripleTriadCardTypeDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_TripleTriadCardTypeDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::TripleTriadCompetition::TripleTriadCompetition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TripleTriadCompetitionDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_TripleTriadCompetitionDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::TripleTriadRule::TripleTriadRule( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TripleTriadRuleDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_TripleTriadRuleDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::Tutorial::Tutorial( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TutorialDat.get_row( row_id );
- exp = exdData->getField< uint32_t >( row, 4 );
- gil = exdData->getField< uint32_t >( row, 5 );
- rewardTank = exdData->getField< uint32_t >( row, 6 );
- rewardMelee = exdData->getField< uint32_t >( row, 7 );
- rewardRanged = exdData->getField< uint32_t >( row, 8 );
- objective = exdData->getField< uint32_t >( row, 9 );
+ auto row = exdData->m_TutorialDat.get_row( row_id );
+ exp = exdData->getField< uint32_t >( row, 4 );
+ gil = exdData->getField< uint32_t >( row, 5 );
+ rewardTank = exdData->getField< uint32_t >( row, 6 );
+ rewardMelee = exdData->getField< uint32_t >( row, 7 );
+ rewardRanged = exdData->getField< uint32_t >( row, 8 );
+ objective = exdData->getField< uint32_t >( row, 9 );
}
Core::Data::TutorialDPS::TutorialDPS( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TutorialDPSDat.get_row( row_id );
- objective = exdData->getField< uint8_t >( row, 0 );
+ auto row = exdData->m_TutorialDPSDat.get_row( row_id );
+ objective = exdData->getField< uint8_t >( row, 0 );
}
Core::Data::TutorialHealer::TutorialHealer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TutorialHealerDat.get_row( row_id );
- objective = exdData->getField< uint8_t >( row, 0 );
+ auto row = exdData->m_TutorialHealerDat.get_row( row_id );
+ objective = exdData->getField< uint8_t >( row, 0 );
}
Core::Data::TutorialTank::TutorialTank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_TutorialTankDat.get_row( row_id );
- objective = exdData->getField< uint8_t >( row, 0 );
+ auto row = exdData->m_TutorialTankDat.get_row( row_id );
+ objective = exdData->getField< uint8_t >( row, 0 );
}
Core::Data::VaseFlower::VaseFlower( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_VaseFlowerDat.get_row( row_id );
- item = exdData->getField< uint32_t >( row, 3 );
+ auto row = exdData->m_VaseFlowerDat.get_row( row_id );
+ item = exdData->getField< uint32_t >( row, 3 );
}
Core::Data::VFX::VFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_VFXDat.get_row( row_id );
- location = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_VFXDat.get_row( row_id );
+ location = exdData->getField< std::string >( row, 0 );
}
Core::Data::Warp::Warp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_WarpDat.get_row( row_id );
- level = exdData->getField< uint32_t >( row, 0 );
- placeName = exdData->getField< uint16_t >( row, 1 );
- defaultTalk1 = exdData->getField< uint32_t >( row, 2 );
- defaultTalk2 = exdData->getField< uint32_t >( row, 3 );
- defaultTalk3 = exdData->getField< uint32_t >( row, 4 );
- warpCondition = exdData->getField< uint16_t >( row, 5 );
- warpLogic = exdData->getField< uint16_t >( row, 6 );
+ auto row = exdData->m_WarpDat.get_row( row_id );
+ level = exdData->getField< uint32_t >( row, 0 );
+ placeName = exdData->getField< uint16_t >( row, 1 );
+ defaultTalk1 = exdData->getField< uint32_t >( row, 2 );
+ defaultTalk2 = exdData->getField< uint32_t >( row, 3 );
+ defaultTalk3 = exdData->getField< uint32_t >( row, 4 );
+ warpCondition = exdData->getField< uint16_t >( row, 5 );
+ warpLogic = exdData->getField< uint16_t >( row, 6 );
}
Core::Data::WarpCondition::WarpCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_WarpConditionDat.get_row( row_id );
- requiredQuest1 = exdData->getField< uint32_t >( row, 2 );
- requiredQuest2 = exdData->getField< uint32_t >( row, 3 );
- dRequiredQuest3 = exdData->getField< uint32_t >( row, 4 );
- requiredQuest4 = exdData->getField< uint32_t >( row, 5 );
+ auto row = exdData->m_WarpConditionDat.get_row( row_id );
+ requiredQuest1 = exdData->getField< uint32_t >( row, 2 );
+ requiredQuest2 = exdData->getField< uint32_t >( row, 3 );
+ dRequiredQuest3 = exdData->getField< uint32_t >( row, 4 );
+ requiredQuest4 = exdData->getField< uint32_t >( row, 5 );
}
Core::Data::Weather::Weather( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_WeatherDat.get_row( row_id );
- icon = exdData->getField< int32_t >( row, 0 );
- name = exdData->getField< std::string >( row, 1 );
- description = exdData->getField< std::string >( row, 2 );
+ auto row = exdData->m_WeatherDat.get_row( row_id );
+ icon = exdData->getField< int32_t >( row, 0 );
+ name = exdData->getField< std::string >( row, 1 );
+ description = exdData->getField< std::string >( row, 2 );
}
Core::Data::WeatherGroup::WeatherGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_WeatherGroupDat.get_row( row_id );
- weatherRate = exdData->getField< int32_t >( row, 1 );
+ auto row = exdData->m_WeatherGroupDat.get_row( row_id );
+ weatherRate = exdData->getField< int32_t >( row, 1 );
}
Core::Data::WeatherRate::WeatherRate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_WeatherRateDat.get_row( row_id );
+ auto row = exdData->m_WeatherRateDat.get_row( row_id );
}
Core::Data::WeddingBGM::WeddingBGM( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_WeddingBGMDat.get_row( row_id );
- song = exdData->getField< uint16_t >( row, 0 );
- songName = exdData->getField< std::string >( row, 1 );
+ auto row = exdData->m_WeddingBGMDat.get_row( row_id );
+ song = exdData->getField< uint16_t >( row, 0 );
+ songName = exdData->getField< std::string >( row, 1 );
}
Core::Data::WeeklyBingoOrderData::WeeklyBingoOrderData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_WeeklyBingoOrderDataDat.get_row( row_id );
- data = exdData->getField< uint32_t >( row, 1 );
- text = exdData->getField< uint8_t >( row, 3 );
- icon = exdData->getField< uint32_t >( row, 4 );
+ auto row = exdData->m_WeeklyBingoOrderDataDat.get_row( row_id );
+ data = exdData->getField< uint32_t >( row, 1 );
+ text = exdData->getField< uint8_t >( row, 3 );
+ icon = exdData->getField< uint32_t >( row, 4 );
}
Core::Data::WeeklyBingoRewardData::WeeklyBingoRewardData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_WeeklyBingoRewardDataDat.get_row( row_id );
- rewardItem2 = exdData->getField< uint32_t >( row, 10 );
- rewardHQ2 = exdData->getField< bool >( row, 11 );
- rewardQuantity2 = exdData->getField< uint16_t >( row, 12 );
+ auto row = exdData->m_WeeklyBingoRewardDataDat.get_row( row_id );
+ rewardItem2 = exdData->getField< uint32_t >( row, 10 );
+ rewardHQ2 = exdData->getField< bool >( row, 11 );
+ rewardQuantity2 = exdData->getField< uint16_t >( row, 12 );
}
Core::Data::WeeklyBingoText::WeeklyBingoText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_WeeklyBingoTextDat.get_row( row_id );
- description = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_WeeklyBingoTextDat.get_row( row_id );
+ description = exdData->getField< std::string >( row, 0 );
}
Core::Data::World::World( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_WorldDat.get_row( row_id );
- dataCenter = exdData->getField< uint8_t >( row, 1 );
+ auto row = exdData->m_WorldDat.get_row( row_id );
+ dataCenter = exdData->getField< uint8_t >( row, 1 );
}
Core::Data::WorldDCGroupType::WorldDCGroupType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_WorldDCGroupTypeDat.get_row( row_id );
- name = exdData->getField< std::string >( row, 0 );
+ auto row = exdData->m_WorldDCGroupTypeDat.get_row( row_id );
+ name = exdData->getField< std::string >( row, 0 );
}
Core::Data::YKW::YKW( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_YKWDat.get_row( row_id );
- item = exdData->getField< uint32_t >( row, 1 );
- location.push_back( exdData->getField< uint16_t >( row, 2 ) );
- location.push_back( exdData->getField< uint16_t >( row, 3 ) );
- location.push_back( exdData->getField< uint16_t >( row, 4 ) );
+ auto row = exdData->m_YKWDat.get_row( row_id );
+ item = exdData->getField< uint32_t >( row, 1 );
+ location.push_back( exdData->getField< uint16_t >( row, 2 ) );
+ location.push_back( exdData->getField< uint16_t >( row, 3 ) );
+ location.push_back( exdData->getField< uint16_t >( row, 4 ) );
}
Core::Data::ZoneSharedGroup::ZoneSharedGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
- auto row = exdData->m_ZoneSharedGroupDat.get_row( row_id );
- quest1 = exdData->getField< uint32_t >( row, 2 );
- quest2 = exdData->getField< uint32_t >( row, 6 );
- quest3 = exdData->getField< uint32_t >( row, 10 );
- quest4 = exdData->getField< uint32_t >( row, 14 );
- quest5 = exdData->getField< uint32_t >( row, 18 );
- quest6 = exdData->getField< uint32_t >( row, 22 );
+ auto row = exdData->m_ZoneSharedGroupDat.get_row( row_id );
+ quest1 = exdData->getField< uint32_t >( row, 2 );
+ quest2 = exdData->getField< uint32_t >( row, 6 );
+ quest3 = exdData->getField< uint32_t >( row, 10 );
+ quest4 = exdData->getField< uint32_t >( row, 14 );
+ quest5 = exdData->getField< uint32_t >( row, 18 );
+ quest6 = exdData->getField< uint32_t >( row, 22 );
}
@@ -4417,393 +4428,393 @@ Core::Data::ExdDataGenerated::~ExdDataGenerated()
xiv::exd::Exd Core::Data::ExdDataGenerated::setupDatAccess( const std::string& name, xiv::exd::Language lang )
{
- auto& cat = m_exd_data->get_category( name );
- return static_cast< xiv::exd::Exd >( cat.get_data_ln( lang ) );
+ auto& cat = m_exd_data->get_category( name );
+ return static_cast< xiv::exd::Exd >( cat.get_data_ln( lang ) );
};
void Core::Data::ExdDataGenerated::loadIdList( xiv::exd::Exd& data, std::set< uint32_t >& outIdList )
{
- auto pDataRows = data.get_rows();
+ auto pDataRows = data.get_rows();
- for( auto row : pDataRows )
- {
- uint32_t id = row.first;
- outIdList.insert( id );
- }
+ for( auto row : pDataRows )
+ {
+ uint32_t id = row.first;
+ outIdList.insert( id );
+ }
}
bool Core::Data::ExdDataGenerated::init( const std::string& path )
{
- try
- {
- m_data = boost::make_shared< xiv::dat::GameData >( path );
- m_exd_data = boost::make_shared< xiv::exd::ExdData >( *m_data );
+ try
+ {
+ m_data = boost::make_shared< xiv::dat::GameData >( path );
+ m_exd_data = boost::make_shared< xiv::exd::ExdData >( *m_data );
- m_AchievementDat = setupDatAccess( "Achievement", xiv::exd::Language::en );
- m_AchievementCategoryDat = setupDatAccess( "AchievementCategory", xiv::exd::Language::en );
- m_AchievementKindDat = setupDatAccess( "AchievementKind", xiv::exd::Language::en );
- m_ActionDat = setupDatAccess( "Action", xiv::exd::Language::en );
- m_ActionCastTimelineDat = setupDatAccess( "ActionCastTimeline", xiv::exd::Language::none );
- m_ActionCastVFXDat = setupDatAccess( "ActionCastVFX", xiv::exd::Language::none );
- m_ActionCategoryDat = setupDatAccess( "ActionCategory", xiv::exd::Language::en );
- m_ActionComboRouteDat = setupDatAccess( "ActionComboRoute", xiv::exd::Language::en );
- m_ActionIndirectionDat = setupDatAccess( "ActionIndirection", xiv::exd::Language::none );
- m_ActionParamDat = setupDatAccess( "ActionParam", xiv::exd::Language::none );
- m_ActionProcStatusDat = setupDatAccess( "ActionProcStatus", xiv::exd::Language::none );
- m_ActionTimelineDat = setupDatAccess( "ActionTimeline", xiv::exd::Language::none );
- m_ActionTimelineReplaceDat = setupDatAccess( "ActionTimelineReplace", xiv::exd::Language::none );
- m_ActionTransientDat = setupDatAccess( "ActionTransient", xiv::exd::Language::en );
- m_AddonDat = setupDatAccess( "Addon", xiv::exd::Language::en );
- m_AdventureDat = setupDatAccess( "Adventure", xiv::exd::Language::en );
- m_AdventureExPhaseDat = setupDatAccess( "AdventureExPhase", xiv::exd::Language::none );
- m_AetherCurrentDat = setupDatAccess( "AetherCurrent", xiv::exd::Language::none );
- m_AetherCurrentCompFlgSetDat = setupDatAccess( "AetherCurrentCompFlgSet", xiv::exd::Language::none );
- m_AetherialWheelDat = setupDatAccess( "AetherialWheel", xiv::exd::Language::none );
- m_AetheryteDat = setupDatAccess( "Aetheryte", xiv::exd::Language::en );
- m_AirshipExplorationLevelDat = setupDatAccess( "AirshipExplorationLevel", xiv::exd::Language::none );
- m_AirshipExplorationLogDat = setupDatAccess( "AirshipExplorationLog", xiv::exd::Language::en );
- m_AirshipExplorationParamTypeDat = setupDatAccess( "AirshipExplorationParamType", xiv::exd::Language::en );
- m_AirshipExplorationPartDat = setupDatAccess( "AirshipExplorationPart", xiv::exd::Language::none );
- m_AirshipExplorationPointDat = setupDatAccess( "AirshipExplorationPoint", xiv::exd::Language::en );
- m_AnimaWeapon5Dat = setupDatAccess( "AnimaWeapon5", xiv::exd::Language::none );
- m_AnimaWeapon5ParamDat = setupDatAccess( "AnimaWeapon5Param", xiv::exd::Language::en );
- m_AnimaWeapon5PatternGroupDat = setupDatAccess( "AnimaWeapon5PatternGroup", xiv::exd::Language::en );
- m_AnimaWeapon5SpiritTalkDat = setupDatAccess( "AnimaWeapon5SpiritTalk", xiv::exd::Language::none );
- m_AnimaWeapon5SpiritTalkParamDat = setupDatAccess( "AnimaWeapon5SpiritTalkParam", xiv::exd::Language::en );
- m_AnimaWeapon5TradeItemDat = setupDatAccess( "AnimaWeapon5TradeItem", xiv::exd::Language::none );
- m_AnimaWeaponFUITalkDat = setupDatAccess( "AnimaWeaponFUITalk", xiv::exd::Language::none );
- m_AnimaWeaponFUITalkParamDat = setupDatAccess( "AnimaWeaponFUITalkParam", xiv::exd::Language::en );
- m_AnimaWeaponIconDat = setupDatAccess( "AnimaWeaponIcon", xiv::exd::Language::none );
- m_AnimaWeaponItemDat = setupDatAccess( "AnimaWeaponItem", xiv::exd::Language::none );
- m_AquariumFishDat = setupDatAccess( "AquariumFish", xiv::exd::Language::none );
- m_AquariumWaterDat = setupDatAccess( "AquariumWater", xiv::exd::Language::en );
- m_AttackTypeDat = setupDatAccess( "AttackType", xiv::exd::Language::en );
- m_BalloonDat = setupDatAccess( "Balloon", xiv::exd::Language::en );
- m_BaseParamDat = setupDatAccess( "BaseParam", xiv::exd::Language::en );
- m_BattleLeveDat = setupDatAccess( "BattleLeve", xiv::exd::Language::none );
- m_BeastRankBonusDat = setupDatAccess( "BeastRankBonus", xiv::exd::Language::none );
- m_BeastReputationRankDat = setupDatAccess( "BeastReputationRank", xiv::exd::Language::en );
- m_BeastTribeDat = setupDatAccess( "BeastTribe", xiv::exd::Language::en );
- m_BehaviorDat = setupDatAccess( "Behavior", xiv::exd::Language::none );
- m_BGMDat = setupDatAccess( "BGM", xiv::exd::Language::none );
- m_BNpcAnnounceIconDat = setupDatAccess( "BNpcAnnounceIcon", xiv::exd::Language::none );
- m_BNpcBaseDat = setupDatAccess( "BNpcBase", xiv::exd::Language::none );
- m_BNpcCustomizeDat = setupDatAccess( "BNpcCustomize", xiv::exd::Language::none );
- m_BNpcNameDat = setupDatAccess( "BNpcName", xiv::exd::Language::en );
- m_BuddyDat = setupDatAccess( "Buddy", xiv::exd::Language::none );
- m_BuddyActionDat = setupDatAccess( "BuddyAction", xiv::exd::Language::en );
- m_BuddyEquipDat = setupDatAccess( "BuddyEquip", xiv::exd::Language::en );
- m_BuddyItemDat = setupDatAccess( "BuddyItem", xiv::exd::Language::none );
- m_BuddyRankDat = setupDatAccess( "BuddyRank", xiv::exd::Language::none );
- m_BuddySkillDat = setupDatAccess( "BuddySkill", xiv::exd::Language::none );
- m_CabinetDat = setupDatAccess( "Cabinet", xiv::exd::Language::none );
- m_CabinetCategoryDat = setupDatAccess( "CabinetCategory", xiv::exd::Language::none );
- m_CalendarDat = setupDatAccess( "Calendar", xiv::exd::Language::none );
- m_CharaMakeCustomizeDat = setupDatAccess( "CharaMakeCustomize", xiv::exd::Language::none );
- m_CharaMakeTypeDat = setupDatAccess( "CharaMakeType", xiv::exd::Language::en );
- m_ChocoboRaceDat = setupDatAccess( "ChocoboRace", xiv::exd::Language::none );
- m_ChocoboRaceAbilityDat = setupDatAccess( "ChocoboRaceAbility", xiv::exd::Language::en );
- m_ChocoboRaceAbilityTypeDat = setupDatAccess( "ChocoboRaceAbilityType", xiv::exd::Language::none );
- m_ChocoboRaceItemDat = setupDatAccess( "ChocoboRaceItem", xiv::exd::Language::en );
- m_ChocoboRaceRankDat = setupDatAccess( "ChocoboRaceRank", xiv::exd::Language::none );
- m_ChocoboRaceStatusDat = setupDatAccess( "ChocoboRaceStatus", xiv::exd::Language::none );
- m_ChocoboRaceTerritoryDat = setupDatAccess( "ChocoboRaceTerritory", xiv::exd::Language::none );
- m_ChocoboTaxiDat = setupDatAccess( "ChocoboTaxi", xiv::exd::Language::none );
- m_ChocoboTaxiStandDat = setupDatAccess( "ChocoboTaxiStand", xiv::exd::Language::en );
- m_ClassJobDat = setupDatAccess( "ClassJob", xiv::exd::Language::en );
- m_ClassJobCategoryDat = setupDatAccess( "ClassJobCategory", xiv::exd::Language::en );
- m_CompanionDat = setupDatAccess( "Companion", xiv::exd::Language::en );
- m_CompanionMoveDat = setupDatAccess( "CompanionMove", xiv::exd::Language::en );
- m_CompanionTransientDat = setupDatAccess( "CompanionTransient", xiv::exd::Language::en );
- m_CompanyActionDat = setupDatAccess( "CompanyAction", xiv::exd::Language::en );
- m_CompanyCraftDraftDat = setupDatAccess( "CompanyCraftDraft", xiv::exd::Language::en );
- m_CompanyCraftDraftCategoryDat = setupDatAccess( "CompanyCraftDraftCategory", xiv::exd::Language::en );
- m_CompanyCraftManufactoryStateDat = setupDatAccess( "CompanyCraftManufactoryState", xiv::exd::Language::en );
- m_CompanyCraftPartDat = setupDatAccess( "CompanyCraftPart", xiv::exd::Language::none );
- m_CompanyCraftProcessDat = setupDatAccess( "CompanyCraftProcess", xiv::exd::Language::none );
- m_CompanyCraftSequenceDat = setupDatAccess( "CompanyCraftSequence", xiv::exd::Language::none );
- m_CompanyCraftSupplyItemDat = setupDatAccess( "CompanyCraftSupplyItem", xiv::exd::Language::none );
- m_CompanyCraftTypeDat = setupDatAccess( "CompanyCraftType", xiv::exd::Language::en );
- m_CompleteJournalDat = setupDatAccess( "CompleteJournal", xiv::exd::Language::en );
- m_CompleteJournalCategoryDat = setupDatAccess( "CompleteJournalCategory", xiv::exd::Language::none );
- m_ContentExActionDat = setupDatAccess( "ContentExAction", xiv::exd::Language::none );
- m_ContentFinderConditionDat = setupDatAccess( "ContentFinderCondition", xiv::exd::Language::en );
- m_ContentFinderConditionTransientDat = setupDatAccess( "ContentFinderConditionTransient", xiv::exd::Language::en );
- m_ContentMemberTypeDat = setupDatAccess( "ContentMemberType", xiv::exd::Language::none );
- m_ContentNpcTalkDat = setupDatAccess( "ContentNpcTalk", xiv::exd::Language::none );
- m_ContentRouletteDat = setupDatAccess( "ContentRoulette", xiv::exd::Language::en );
- m_ContentsNoteDat = setupDatAccess( "ContentsNote", xiv::exd::Language::en );
- m_ContentsNoteCategoryDat = setupDatAccess( "ContentsNoteCategory", xiv::exd::Language::none );
- m_ContentTalkDat = setupDatAccess( "ContentTalk", xiv::exd::Language::en );
- m_ContentTalkParamDat = setupDatAccess( "ContentTalkParam", xiv::exd::Language::none );
- m_ContentTypeDat = setupDatAccess( "ContentType", xiv::exd::Language::en );
- m_CraftActionDat = setupDatAccess( "CraftAction", xiv::exd::Language::en );
- m_CraftLeveDat = setupDatAccess( "CraftLeve", xiv::exd::Language::none );
- m_CraftTypeDat = setupDatAccess( "CraftType", xiv::exd::Language::en );
- m_CurrencyDat = setupDatAccess( "Currency", xiv::exd::Language::none );
- m_CustomTalkDat = setupDatAccess( "CustomTalk", xiv::exd::Language::en );
- m_CutsceneDat = setupDatAccess( "Cutscene", xiv::exd::Language::none );
- m_CutScreenImageDat = setupDatAccess( "CutScreenImage", xiv::exd::Language::none );
- m_DailySupplyItemDat = setupDatAccess( "DailySupplyItem", xiv::exd::Language::none );
- m_DeepDungeonBanDat = setupDatAccess( "DeepDungeonBan", xiv::exd::Language::none );
- m_DeepDungeonDangerDat = setupDatAccess( "DeepDungeonDanger", xiv::exd::Language::none );
- m_DeepDungeonEquipmentDat = setupDatAccess( "DeepDungeonEquipment", xiv::exd::Language::en );
- m_DeepDungeonFloorEffectUIDat = setupDatAccess( "DeepDungeonFloorEffectUI", xiv::exd::Language::en );
- m_DeepDungeonItemDat = setupDatAccess( "DeepDungeonItem", xiv::exd::Language::en );
- m_DeepDungeonStatusDat = setupDatAccess( "DeepDungeonStatus", xiv::exd::Language::none );
- m_DefaultTalkDat = setupDatAccess( "DefaultTalk", xiv::exd::Language::en );
- m_DeliveryQuestDat = setupDatAccess( "DeliveryQuest", xiv::exd::Language::none );
- m_DisposalShopDat = setupDatAccess( "DisposalShop", xiv::exd::Language::en );
- m_DisposalShopFilterTypeDat = setupDatAccess( "DisposalShopFilterType", xiv::exd::Language::en );
- m_DisposalShopItemDat = setupDatAccess( "DisposalShopItem", xiv::exd::Language::none );
- m_DpsChallengeDat = setupDatAccess( "DpsChallenge", xiv::exd::Language::en );
- m_DpsChallengeOfficerDat = setupDatAccess( "DpsChallengeOfficer", xiv::exd::Language::none );
- m_DpsChallengeTransientDat = setupDatAccess( "DpsChallengeTransient", xiv::exd::Language::none );
- m_EmoteDat = setupDatAccess( "Emote", xiv::exd::Language::en );
- m_EmoteCategoryDat = setupDatAccess( "EmoteCategory", xiv::exd::Language::en );
- m_EmoteModeDat = setupDatAccess( "EmoteMode", xiv::exd::Language::none );
- m_ENpcBaseDat = setupDatAccess( "ENpcBase", xiv::exd::Language::none );
- m_ENpcResidentDat = setupDatAccess( "ENpcResident", xiv::exd::Language::en );
- m_EObjDat = setupDatAccess( "EObj", xiv::exd::Language::none );
- m_EObjNameDat = setupDatAccess( "EObjName", xiv::exd::Language::en );
- m_EquipRaceCategoryDat = setupDatAccess( "EquipRaceCategory", xiv::exd::Language::none );
- m_EquipSlotCategoryDat = setupDatAccess( "EquipSlotCategory", xiv::exd::Language::none );
- m_EurekaAethernetDat = setupDatAccess( "EurekaAethernet", xiv::exd::Language::none );
- m_EurekaGrowDataDat = setupDatAccess( "EurekaGrowData", xiv::exd::Language::none );
- m_EurekaSphereElementAdjustDat = setupDatAccess( "EurekaSphereElementAdjust", xiv::exd::Language::none );
- m_EventActionDat = setupDatAccess( "EventAction", xiv::exd::Language::en );
- m_EventIconPriorityDat = setupDatAccess( "EventIconPriority", xiv::exd::Language::none );
- m_EventIconTypeDat = setupDatAccess( "EventIconType", xiv::exd::Language::none );
- m_EventItemDat = setupDatAccess( "EventItem", xiv::exd::Language::en );
- m_EventItemHelpDat = setupDatAccess( "EventItemHelp", xiv::exd::Language::en );
- m_ExVersionDat = setupDatAccess( "ExVersion", xiv::exd::Language::en );
- m_FateDat = setupDatAccess( "Fate", xiv::exd::Language::en );
- m_FCActivityDat = setupDatAccess( "FCActivity", xiv::exd::Language::en );
- m_FCActivityCategoryDat = setupDatAccess( "FCActivityCategory", xiv::exd::Language::en );
- m_FCAuthorityDat = setupDatAccess( "FCAuthority", xiv::exd::Language::en );
- m_FCAuthorityCategoryDat = setupDatAccess( "FCAuthorityCategory", xiv::exd::Language::en );
- m_FCChestNameDat = setupDatAccess( "FCChestName", xiv::exd::Language::en );
- m_FccShopDat = setupDatAccess( "FccShop", xiv::exd::Language::en );
- m_FCHierarchyDat = setupDatAccess( "FCHierarchy", xiv::exd::Language::en );
- m_FCProfileDat = setupDatAccess( "FCProfile", xiv::exd::Language::en );
- m_FCReputationDat = setupDatAccess( "FCReputation", xiv::exd::Language::en );
- m_FCRightsDat = setupDatAccess( "FCRights", xiv::exd::Language::en );
- m_FieldMarkerDat = setupDatAccess( "FieldMarker", xiv::exd::Language::en );
- m_FishingSpotDat = setupDatAccess( "FishingSpot", xiv::exd::Language::en );
- m_FishParameterDat = setupDatAccess( "FishParameter", xiv::exd::Language::en );
- m_GardeningSeedDat = setupDatAccess( "GardeningSeed", xiv::exd::Language::none );
- m_GatheringConditionDat = setupDatAccess( "GatheringCondition", xiv::exd::Language::en );
- m_GatheringExpDat = setupDatAccess( "GatheringExp", xiv::exd::Language::none );
- m_GatheringItemDat = setupDatAccess( "GatheringItem", xiv::exd::Language::none );
- m_GatheringItemLevelConvertTableDat = setupDatAccess( "GatheringItemLevelConvertTable", xiv::exd::Language::none );
- m_GatheringItemPointDat = setupDatAccess( "GatheringItemPoint", xiv::exd::Language::none );
- m_GatheringNotebookListDat = setupDatAccess( "GatheringNotebookList", xiv::exd::Language::none );
- m_GatheringPointDat = setupDatAccess( "GatheringPoint", xiv::exd::Language::none );
- m_GatheringPointBaseDat = setupDatAccess( "GatheringPointBase", xiv::exd::Language::none );
- m_GatheringPointBonusDat = setupDatAccess( "GatheringPointBonus", xiv::exd::Language::none );
- m_GatheringPointBonusTypeDat = setupDatAccess( "GatheringPointBonusType", xiv::exd::Language::en );
- m_GatheringPointNameDat = setupDatAccess( "GatheringPointName", xiv::exd::Language::en );
- m_GatheringSubCategoryDat = setupDatAccess( "GatheringSubCategory", xiv::exd::Language::en );
- m_GatheringTypeDat = setupDatAccess( "GatheringType", xiv::exd::Language::en );
- m_GcArmyExpeditionDat = setupDatAccess( "GcArmyExpedition", xiv::exd::Language::en );
- m_GcArmyExpeditionMemberBonusDat = setupDatAccess( "GcArmyExpeditionMemberBonus", xiv::exd::Language::none );
- m_GcArmyExpeditionTypeDat = setupDatAccess( "GcArmyExpeditionType", xiv::exd::Language::en );
- m_GcArmyMemberGrowDat = setupDatAccess( "GcArmyMemberGrow", xiv::exd::Language::none );
- m_GcArmyTrainingDat = setupDatAccess( "GcArmyTraining", xiv::exd::Language::en );
- m_GCRankGridaniaFemaleTextDat = setupDatAccess( "GCRankGridaniaFemaleText", xiv::exd::Language::en );
- m_GCRankGridaniaMaleTextDat = setupDatAccess( "GCRankGridaniaMaleText", xiv::exd::Language::en );
- m_GCRankLimsaFemaleTextDat = setupDatAccess( "GCRankLimsaFemaleText", xiv::exd::Language::en );
- m_GCRankLimsaMaleTextDat = setupDatAccess( "GCRankLimsaMaleText", xiv::exd::Language::en );
- m_GCRankUldahFemaleTextDat = setupDatAccess( "GCRankUldahFemaleText", xiv::exd::Language::en );
- m_GCRankUldahMaleTextDat = setupDatAccess( "GCRankUldahMaleText", xiv::exd::Language::en );
- m_GCScripShopCategoryDat = setupDatAccess( "GCScripShopCategory", xiv::exd::Language::none );
- m_GCScripShopItemDat = setupDatAccess( "GCScripShopItem", xiv::exd::Language::none );
- m_GCShopDat = setupDatAccess( "GCShop", xiv::exd::Language::none );
- m_GCShopItemCategoryDat = setupDatAccess( "GCShopItemCategory", xiv::exd::Language::en );
- m_GCSupplyDutyDat = setupDatAccess( "GCSupplyDuty", xiv::exd::Language::none );
- m_GCSupplyDutyRewardDat = setupDatAccess( "GCSupplyDutyReward", xiv::exd::Language::none );
- m_GeneralActionDat = setupDatAccess( "GeneralAction", xiv::exd::Language::en );
- m_GilShopDat = setupDatAccess( "GilShop", xiv::exd::Language::en );
- m_GilShopItemDat = setupDatAccess( "GilShopItem", xiv::exd::Language::none );
- m_GoldSaucerTextDataDat = setupDatAccess( "GoldSaucerTextData", xiv::exd::Language::en );
- m_GrandCompanyDat = setupDatAccess( "GrandCompany", xiv::exd::Language::en );
- m_GrandCompanyRankDat = setupDatAccess( "GrandCompanyRank", xiv::exd::Language::none );
- m_GuardianDeityDat = setupDatAccess( "GuardianDeity", xiv::exd::Language::en );
- m_GuildleveAssignmentDat = setupDatAccess( "GuildleveAssignment", xiv::exd::Language::none );
- m_GuildOrderGuideDat = setupDatAccess( "GuildOrderGuide", xiv::exd::Language::none );
- m_GuildOrderOfficerDat = setupDatAccess( "GuildOrderOfficer", xiv::exd::Language::none );
- m_HouseRetainerPoseDat = setupDatAccess( "HouseRetainerPose", xiv::exd::Language::none );
- m_HousingFurnitureDat = setupDatAccess( "HousingFurniture", xiv::exd::Language::none );
- m_HousingYardObjectDat = setupDatAccess( "HousingYardObject", xiv::exd::Language::none );
- m_InstanceContentDat = setupDatAccess( "InstanceContent", xiv::exd::Language::en );
- m_InstanceContentBuffDat = setupDatAccess( "InstanceContentBuff", xiv::exd::Language::none );
- m_InstanceContentTextDataDat = setupDatAccess( "InstanceContentTextData", xiv::exd::Language::en );
- m_ItemDat = setupDatAccess( "Item", xiv::exd::Language::en );
- m_ItemActionDat = setupDatAccess( "ItemAction", xiv::exd::Language::none );
- m_ItemFoodDat = setupDatAccess( "ItemFood", xiv::exd::Language::none );
- m_ItemSearchCategoryDat = setupDatAccess( "ItemSearchCategory", xiv::exd::Language::en );
- m_ItemSeriesDat = setupDatAccess( "ItemSeries", xiv::exd::Language::en );
- m_ItemSpecialBonusDat = setupDatAccess( "ItemSpecialBonus", xiv::exd::Language::en );
- m_ItemUICategoryDat = setupDatAccess( "ItemUICategory", xiv::exd::Language::en );
- m_JournalCategoryDat = setupDatAccess( "JournalCategory", xiv::exd::Language::en );
- m_JournalGenreDat = setupDatAccess( "JournalGenre", xiv::exd::Language::en );
- m_JournalSectionDat = setupDatAccess( "JournalSection", xiv::exd::Language::en );
- m_LeveDat = setupDatAccess( "Leve", xiv::exd::Language::en );
- m_LeveAssignmentTypeDat = setupDatAccess( "LeveAssignmentType", xiv::exd::Language::en );
- m_LeveClientDat = setupDatAccess( "LeveClient", xiv::exd::Language::en );
- m_LevelDat = setupDatAccess( "Level", xiv::exd::Language::none );
- m_LeveRewardItemDat = setupDatAccess( "LeveRewardItem", xiv::exd::Language::none );
- m_LeveRewardItemGroupDat = setupDatAccess( "LeveRewardItemGroup", xiv::exd::Language::none );
- m_LeveVfxDat = setupDatAccess( "LeveVfx", xiv::exd::Language::none );
- m_LogFilterDat = setupDatAccess( "LogFilter", xiv::exd::Language::en );
- m_LogKindDat = setupDatAccess( "LogKind", xiv::exd::Language::en );
- m_LogKindCategoryTextDat = setupDatAccess( "LogKindCategoryText", xiv::exd::Language::en );
- m_LogMessageDat = setupDatAccess( "LogMessage", xiv::exd::Language::en );
- m_MacroIconDat = setupDatAccess( "MacroIcon", xiv::exd::Language::none );
- m_MacroIconRedirectOldDat = setupDatAccess( "MacroIconRedirectOld", xiv::exd::Language::none );
- m_MainCommandDat = setupDatAccess( "MainCommand", xiv::exd::Language::en );
- m_MainCommandCategoryDat = setupDatAccess( "MainCommandCategory", xiv::exd::Language::en );
- m_MapDat = setupDatAccess( "Map", xiv::exd::Language::none );
- m_MapMarkerDat = setupDatAccess( "MapMarker", xiv::exd::Language::none );
- m_MapMarkerRegionDat = setupDatAccess( "MapMarkerRegion", xiv::exd::Language::none );
- m_MapSymbolDat = setupDatAccess( "MapSymbol", xiv::exd::Language::none );
- m_MarkerDat = setupDatAccess( "Marker", xiv::exd::Language::en );
- m_MasterpieceSupplyDutyDat = setupDatAccess( "MasterpieceSupplyDuty", xiv::exd::Language::none );
- m_MasterpieceSupplyMultiplierDat = setupDatAccess( "MasterpieceSupplyMultiplier", xiv::exd::Language::none );
- m_MateriaDat = setupDatAccess( "Materia", xiv::exd::Language::none );
- m_MinionRaceDat = setupDatAccess( "MinionRace", xiv::exd::Language::en );
- m_MinionRulesDat = setupDatAccess( "MinionRules", xiv::exd::Language::en );
- m_MinionSkillTypeDat = setupDatAccess( "MinionSkillType", xiv::exd::Language::en );
- m_MobHuntTargetDat = setupDatAccess( "MobHuntTarget", xiv::exd::Language::none );
- m_ModelCharaDat = setupDatAccess( "ModelChara", xiv::exd::Language::none );
- m_MonsterNoteDat = setupDatAccess( "MonsterNote", xiv::exd::Language::en );
- m_MonsterNoteTargetDat = setupDatAccess( "MonsterNoteTarget", xiv::exd::Language::none );
- m_MountDat = setupDatAccess( "Mount", xiv::exd::Language::en );
- m_MountActionDat = setupDatAccess( "MountAction", xiv::exd::Language::none );
- m_MoveTimelineDat = setupDatAccess( "MoveTimeline", xiv::exd::Language::none );
- m_MoveVfxDat = setupDatAccess( "MoveVfx", xiv::exd::Language::none );
- m_NpcEquipDat = setupDatAccess( "NpcEquip", xiv::exd::Language::none );
- m_OmenDat = setupDatAccess( "Omen", xiv::exd::Language::none );
- m_OnlineStatusDat = setupDatAccess( "OnlineStatus", xiv::exd::Language::en );
- m_OpeningDat = setupDatAccess( "Opening", xiv::exd::Language::none );
- m_OrchestrionDat = setupDatAccess( "Orchestrion", xiv::exd::Language::en );
- m_OrchestrionCategoryDat = setupDatAccess( "OrchestrionCategory", xiv::exd::Language::en );
- m_OrchestrionPathDat = setupDatAccess( "OrchestrionPath", xiv::exd::Language::none );
- m_OrchestrionUiparamDat = setupDatAccess( "OrchestrionUiparam", xiv::exd::Language::none );
- m_ParamGrowDat = setupDatAccess( "ParamGrow", xiv::exd::Language::none );
- m_PerformDat = setupDatAccess( "Perform", xiv::exd::Language::en );
- m_PerformTransientDat = setupDatAccess( "PerformTransient", xiv::exd::Language::en );
- m_PetDat = setupDatAccess( "Pet", xiv::exd::Language::en );
- m_PetActionDat = setupDatAccess( "PetAction", xiv::exd::Language::en );
- m_PictureDat = setupDatAccess( "Picture", xiv::exd::Language::none );
- m_PlaceNameDat = setupDatAccess( "PlaceName", xiv::exd::Language::en );
- m_PublicContentDat = setupDatAccess( "PublicContent", xiv::exd::Language::en );
- m_PvPActionSortDat = setupDatAccess( "PvPActionSort", xiv::exd::Language::none );
- m_QuestDat = setupDatAccess( "Quest", xiv::exd::Language::en );
- m_QuestClassJobRewardDat = setupDatAccess( "QuestClassJobReward", xiv::exd::Language::none );
- m_QuestRepeatFlagDat = setupDatAccess( "QuestRepeatFlag", xiv::exd::Language::none );
- m_QuestRewardOtherDat = setupDatAccess( "QuestRewardOther", xiv::exd::Language::en );
- m_QuickChatDat = setupDatAccess( "QuickChat", xiv::exd::Language::en );
- m_QuickChatTransientDat = setupDatAccess( "QuickChatTransient", xiv::exd::Language::en );
- m_RaceDat = setupDatAccess( "Race", xiv::exd::Language::en );
- m_RacingChocoboItemDat = setupDatAccess( "RacingChocoboItem", xiv::exd::Language::none );
- m_RacingChocoboNameDat = setupDatAccess( "RacingChocoboName", xiv::exd::Language::en );
- m_RacingChocoboNameCategoryDat = setupDatAccess( "RacingChocoboNameCategory", xiv::exd::Language::en );
- m_RacingChocoboNameInfoDat = setupDatAccess( "RacingChocoboNameInfo", xiv::exd::Language::none );
- m_RacingChocoboParamDat = setupDatAccess( "RacingChocoboParam", xiv::exd::Language::en );
- m_RecipeDat = setupDatAccess( "Recipe", xiv::exd::Language::none );
- m_RecipeElementDat = setupDatAccess( "RecipeElement", xiv::exd::Language::en );
- m_RecipeLevelTableDat = setupDatAccess( "RecipeLevelTable", xiv::exd::Language::none );
- m_RecipeNotebookListDat = setupDatAccess( "RecipeNotebookList", xiv::exd::Language::none );
- m_RecommendContentsDat = setupDatAccess( "RecommendContents", xiv::exd::Language::none );
- m_RelicDat = setupDatAccess( "Relic", xiv::exd::Language::none );
- m_Relic3Dat = setupDatAccess( "Relic3", xiv::exd::Language::none );
- m_RelicItemDat = setupDatAccess( "RelicItem", xiv::exd::Language::none );
- m_RelicNoteDat = setupDatAccess( "RelicNote", xiv::exd::Language::none );
- m_RelicNoteCategoryDat = setupDatAccess( "RelicNoteCategory", xiv::exd::Language::en );
- m_RetainerTaskDat = setupDatAccess( "RetainerTask", xiv::exd::Language::none );
- m_RetainerTaskLvRangeDat = setupDatAccess( "RetainerTaskLvRange", xiv::exd::Language::none );
- m_RetainerTaskNormalDat = setupDatAccess( "RetainerTaskNormal", xiv::exd::Language::none );
- m_RetainerTaskParameterDat = setupDatAccess( "RetainerTaskParameter", xiv::exd::Language::none );
- m_RetainerTaskRandomDat = setupDatAccess( "RetainerTaskRandom", xiv::exd::Language::en );
- m_SalvageDat = setupDatAccess( "Salvage", xiv::exd::Language::none );
- m_SatisfactionNpcDat = setupDatAccess( "SatisfactionNpc", xiv::exd::Language::none );
- m_SatisfactionSupplyDat = setupDatAccess( "SatisfactionSupply", xiv::exd::Language::none );
- m_SatisfactionSupplyRewardDat = setupDatAccess( "SatisfactionSupplyReward", xiv::exd::Language::none );
- m_ScenarioTreeDat = setupDatAccess( "ScenarioTree", xiv::exd::Language::none );
- m_ScenarioTreeTipsDat = setupDatAccess( "ScenarioTreeTips", xiv::exd::Language::none );
- m_ScenarioTreeTipsClassQuestDat = setupDatAccess( "ScenarioTreeTipsClassQuest", xiv::exd::Language::none );
- m_ScenarioTreeTipsQuestDat = setupDatAccess( "ScenarioTreeTipsQuest", xiv::exd::Language::none );
- m_ScenarioTypeDat = setupDatAccess( "ScenarioType", xiv::exd::Language::en );
- m_ScreenImageDat = setupDatAccess( "ScreenImage", xiv::exd::Language::none );
- m_SecretRecipeBookDat = setupDatAccess( "SecretRecipeBook", xiv::exd::Language::en );
- m_SkyIsland2MissionDat = setupDatAccess( "SkyIsland2Mission", xiv::exd::Language::en );
- m_SkyIsland2MissionDetailDat = setupDatAccess( "SkyIsland2MissionDetail", xiv::exd::Language::en );
- m_SkyIsland2MissionTypeDat = setupDatAccess( "SkyIsland2MissionType", xiv::exd::Language::none );
- m_SkyIsland2RangeTypeDat = setupDatAccess( "SkyIsland2RangeType", xiv::exd::Language::none );
- m_SpearfishingItemDat = setupDatAccess( "SpearfishingItem", xiv::exd::Language::en );
- m_SpearfishingNotebookDat = setupDatAccess( "SpearfishingNotebook", xiv::exd::Language::none );
- m_SpecialShopDat = setupDatAccess( "SpecialShop", xiv::exd::Language::en );
- m_SpecialShopItemCategoryDat = setupDatAccess( "SpecialShopItemCategory", xiv::exd::Language::en );
- m_StainDat = setupDatAccess( "Stain", xiv::exd::Language::en );
- m_StainTransientDat = setupDatAccess( "StainTransient", xiv::exd::Language::none );
- m_StatusDat = setupDatAccess( "Status", xiv::exd::Language::en );
- m_StatusHitEffectDat = setupDatAccess( "StatusHitEffect", xiv::exd::Language::none );
- m_StatusLoopVFXDat = setupDatAccess( "StatusLoopVFX", xiv::exd::Language::none );
- m_StoryDat = setupDatAccess( "Story", xiv::exd::Language::none );
- m_SubmarineExplorationDat = setupDatAccess( "SubmarineExploration", xiv::exd::Language::en );
- m_SubmarinePartDat = setupDatAccess( "SubmarinePart", xiv::exd::Language::none );
- m_SubmarineRankDat = setupDatAccess( "SubmarineRank", xiv::exd::Language::none );
- m_SwitchTalkDat = setupDatAccess( "SwitchTalk", xiv::exd::Language::none );
- m_TerritoryTypeDat = setupDatAccess( "TerritoryType", xiv::exd::Language::none );
- m_TextCommandDat = setupDatAccess( "TextCommand", xiv::exd::Language::en );
- m_TitleDat = setupDatAccess( "Title", xiv::exd::Language::en );
- m_TomestonesDat = setupDatAccess( "Tomestones", xiv::exd::Language::none );
- m_TomestonesItemDat = setupDatAccess( "TomestonesItem", xiv::exd::Language::none );
- m_TopicSelectDat = setupDatAccess( "TopicSelect", xiv::exd::Language::en );
- m_TownDat = setupDatAccess( "Town", xiv::exd::Language::en );
- m_TraitDat = setupDatAccess( "Trait", xiv::exd::Language::en );
- m_TraitRecastDat = setupDatAccess( "TraitRecast", xiv::exd::Language::none );
- m_TraitTransientDat = setupDatAccess( "TraitTransient", xiv::exd::Language::en );
- m_TransformationDat = setupDatAccess( "Transformation", xiv::exd::Language::none );
- m_TreasureDat = setupDatAccess( "Treasure", xiv::exd::Language::en );
- m_TreasureHuntRankDat = setupDatAccess( "TreasureHuntRank", xiv::exd::Language::none );
- m_TribeDat = setupDatAccess( "Tribe", xiv::exd::Language::en );
- m_TripleTriadDat = setupDatAccess( "TripleTriad", xiv::exd::Language::none );
- m_TripleTriadCardDat = setupDatAccess( "TripleTriadCard", xiv::exd::Language::en );
- m_TripleTriadCardRarityDat = setupDatAccess( "TripleTriadCardRarity", xiv::exd::Language::none );
- m_TripleTriadCardResidentDat = setupDatAccess( "TripleTriadCardResident", xiv::exd::Language::none );
- m_TripleTriadCardTypeDat = setupDatAccess( "TripleTriadCardType", xiv::exd::Language::en );
- m_TripleTriadCompetitionDat = setupDatAccess( "TripleTriadCompetition", xiv::exd::Language::en );
- m_TripleTriadRuleDat = setupDatAccess( "TripleTriadRule", xiv::exd::Language::en );
- m_TutorialDat = setupDatAccess( "Tutorial", xiv::exd::Language::none );
- m_TutorialDPSDat = setupDatAccess( "TutorialDPS", xiv::exd::Language::none );
- m_TutorialHealerDat = setupDatAccess( "TutorialHealer", xiv::exd::Language::none );
- m_TutorialTankDat = setupDatAccess( "TutorialTank", xiv::exd::Language::none );
- m_VaseFlowerDat = setupDatAccess( "VaseFlower", xiv::exd::Language::none );
- m_VFXDat = setupDatAccess( "VFX", xiv::exd::Language::none );
- m_WarpDat = setupDatAccess( "Warp", xiv::exd::Language::en );
- m_WarpConditionDat = setupDatAccess( "WarpCondition", xiv::exd::Language::none );
- m_WeatherDat = setupDatAccess( "Weather", xiv::exd::Language::en );
- m_WeatherGroupDat = setupDatAccess( "WeatherGroup", xiv::exd::Language::none );
- m_WeatherRateDat = setupDatAccess( "WeatherRate", xiv::exd::Language::none );
- m_WeddingBGMDat = setupDatAccess( "WeddingBGM", xiv::exd::Language::en );
- m_WeeklyBingoOrderDataDat = setupDatAccess( "WeeklyBingoOrderData", xiv::exd::Language::none );
- m_WeeklyBingoRewardDataDat = setupDatAccess( "WeeklyBingoRewardData", xiv::exd::Language::none );
- m_WeeklyBingoTextDat = setupDatAccess( "WeeklyBingoText", xiv::exd::Language::en );
- m_WorldDat = setupDatAccess( "World", xiv::exd::Language::none );
- m_WorldDCGroupTypeDat = setupDatAccess( "WorldDCGroupType", xiv::exd::Language::none );
- m_YKWDat = setupDatAccess( "YKW", xiv::exd::Language::en );
- m_ZoneSharedGroupDat = setupDatAccess( "ZoneSharedGroup", xiv::exd::Language::none );
+ m_AchievementDat = setupDatAccess( "Achievement", xiv::exd::Language::en );
+ m_AchievementCategoryDat = setupDatAccess( "AchievementCategory", xiv::exd::Language::en );
+ m_AchievementKindDat = setupDatAccess( "AchievementKind", xiv::exd::Language::en );
+ m_ActionDat = setupDatAccess( "Action", xiv::exd::Language::en );
+ m_ActionCastTimelineDat = setupDatAccess( "ActionCastTimeline", xiv::exd::Language::none );
+ m_ActionCastVFXDat = setupDatAccess( "ActionCastVFX", xiv::exd::Language::none );
+ m_ActionCategoryDat = setupDatAccess( "ActionCategory", xiv::exd::Language::en );
+ m_ActionComboRouteDat = setupDatAccess( "ActionComboRoute", xiv::exd::Language::en );
+ m_ActionIndirectionDat = setupDatAccess( "ActionIndirection", xiv::exd::Language::none );
+ m_ActionParamDat = setupDatAccess( "ActionParam", xiv::exd::Language::none );
+ m_ActionProcStatusDat = setupDatAccess( "ActionProcStatus", xiv::exd::Language::none );
+ m_ActionTimelineDat = setupDatAccess( "ActionTimeline", xiv::exd::Language::none );
+ m_ActionTimelineReplaceDat = setupDatAccess( "ActionTimelineReplace", xiv::exd::Language::none );
+ m_ActionTransientDat = setupDatAccess( "ActionTransient", xiv::exd::Language::en );
+ m_AddonDat = setupDatAccess( "Addon", xiv::exd::Language::en );
+ m_AdventureDat = setupDatAccess( "Adventure", xiv::exd::Language::en );
+ m_AdventureExPhaseDat = setupDatAccess( "AdventureExPhase", xiv::exd::Language::none );
+ m_AetherCurrentDat = setupDatAccess( "AetherCurrent", xiv::exd::Language::none );
+ m_AetherCurrentCompFlgSetDat = setupDatAccess( "AetherCurrentCompFlgSet", xiv::exd::Language::none );
+ m_AetherialWheelDat = setupDatAccess( "AetherialWheel", xiv::exd::Language::none );
+ m_AetheryteDat = setupDatAccess( "Aetheryte", xiv::exd::Language::en );
+ m_AirshipExplorationLevelDat = setupDatAccess( "AirshipExplorationLevel", xiv::exd::Language::none );
+ m_AirshipExplorationLogDat = setupDatAccess( "AirshipExplorationLog", xiv::exd::Language::en );
+ m_AirshipExplorationParamTypeDat = setupDatAccess( "AirshipExplorationParamType", xiv::exd::Language::en );
+ m_AirshipExplorationPartDat = setupDatAccess( "AirshipExplorationPart", xiv::exd::Language::none );
+ m_AirshipExplorationPointDat = setupDatAccess( "AirshipExplorationPoint", xiv::exd::Language::en );
+ m_AnimaWeapon5Dat = setupDatAccess( "AnimaWeapon5", xiv::exd::Language::none );
+ m_AnimaWeapon5ParamDat = setupDatAccess( "AnimaWeapon5Param", xiv::exd::Language::en );
+ m_AnimaWeapon5PatternGroupDat = setupDatAccess( "AnimaWeapon5PatternGroup", xiv::exd::Language::en );
+ m_AnimaWeapon5SpiritTalkDat = setupDatAccess( "AnimaWeapon5SpiritTalk", xiv::exd::Language::none );
+ m_AnimaWeapon5SpiritTalkParamDat = setupDatAccess( "AnimaWeapon5SpiritTalkParam", xiv::exd::Language::en );
+ m_AnimaWeapon5TradeItemDat = setupDatAccess( "AnimaWeapon5TradeItem", xiv::exd::Language::none );
+ m_AnimaWeaponFUITalkDat = setupDatAccess( "AnimaWeaponFUITalk", xiv::exd::Language::none );
+ m_AnimaWeaponFUITalkParamDat = setupDatAccess( "AnimaWeaponFUITalkParam", xiv::exd::Language::en );
+ m_AnimaWeaponIconDat = setupDatAccess( "AnimaWeaponIcon", xiv::exd::Language::none );
+ m_AnimaWeaponItemDat = setupDatAccess( "AnimaWeaponItem", xiv::exd::Language::none );
+ m_AquariumFishDat = setupDatAccess( "AquariumFish", xiv::exd::Language::none );
+ m_AquariumWaterDat = setupDatAccess( "AquariumWater", xiv::exd::Language::en );
+ m_AttackTypeDat = setupDatAccess( "AttackType", xiv::exd::Language::en );
+ m_BalloonDat = setupDatAccess( "Balloon", xiv::exd::Language::en );
+ m_BaseParamDat = setupDatAccess( "BaseParam", xiv::exd::Language::en );
+ m_BattleLeveDat = setupDatAccess( "BattleLeve", xiv::exd::Language::none );
+ m_BeastRankBonusDat = setupDatAccess( "BeastRankBonus", xiv::exd::Language::none );
+ m_BeastReputationRankDat = setupDatAccess( "BeastReputationRank", xiv::exd::Language::en );
+ m_BeastTribeDat = setupDatAccess( "BeastTribe", xiv::exd::Language::en );
+ m_BehaviorDat = setupDatAccess( "Behavior", xiv::exd::Language::none );
+ m_BGMDat = setupDatAccess( "BGM", xiv::exd::Language::none );
+ m_BNpcAnnounceIconDat = setupDatAccess( "BNpcAnnounceIcon", xiv::exd::Language::none );
+ m_BNpcBaseDat = setupDatAccess( "BNpcBase", xiv::exd::Language::none );
+ m_BNpcCustomizeDat = setupDatAccess( "BNpcCustomize", xiv::exd::Language::none );
+ m_BNpcNameDat = setupDatAccess( "BNpcName", xiv::exd::Language::en );
+ m_BuddyDat = setupDatAccess( "Buddy", xiv::exd::Language::none );
+ m_BuddyActionDat = setupDatAccess( "BuddyAction", xiv::exd::Language::en );
+ m_BuddyEquipDat = setupDatAccess( "BuddyEquip", xiv::exd::Language::en );
+ m_BuddyItemDat = setupDatAccess( "BuddyItem", xiv::exd::Language::none );
+ m_BuddyRankDat = setupDatAccess( "BuddyRank", xiv::exd::Language::none );
+ m_BuddySkillDat = setupDatAccess( "BuddySkill", xiv::exd::Language::none );
+ m_CabinetDat = setupDatAccess( "Cabinet", xiv::exd::Language::none );
+ m_CabinetCategoryDat = setupDatAccess( "CabinetCategory", xiv::exd::Language::none );
+ m_CalendarDat = setupDatAccess( "Calendar", xiv::exd::Language::none );
+ m_CharaMakeCustomizeDat = setupDatAccess( "CharaMakeCustomize", xiv::exd::Language::none );
+ m_CharaMakeTypeDat = setupDatAccess( "CharaMakeType", xiv::exd::Language::en );
+ m_ChocoboRaceDat = setupDatAccess( "ChocoboRace", xiv::exd::Language::none );
+ m_ChocoboRaceAbilityDat = setupDatAccess( "ChocoboRaceAbility", xiv::exd::Language::en );
+ m_ChocoboRaceAbilityTypeDat = setupDatAccess( "ChocoboRaceAbilityType", xiv::exd::Language::none );
+ m_ChocoboRaceItemDat = setupDatAccess( "ChocoboRaceItem", xiv::exd::Language::en );
+ m_ChocoboRaceRankDat = setupDatAccess( "ChocoboRaceRank", xiv::exd::Language::none );
+ m_ChocoboRaceStatusDat = setupDatAccess( "ChocoboRaceStatus", xiv::exd::Language::none );
+ m_ChocoboRaceTerritoryDat = setupDatAccess( "ChocoboRaceTerritory", xiv::exd::Language::none );
+ m_ChocoboTaxiDat = setupDatAccess( "ChocoboTaxi", xiv::exd::Language::none );
+ m_ChocoboTaxiStandDat = setupDatAccess( "ChocoboTaxiStand", xiv::exd::Language::en );
+ m_ClassJobDat = setupDatAccess( "ClassJob", xiv::exd::Language::en );
+ m_ClassJobCategoryDat = setupDatAccess( "ClassJobCategory", xiv::exd::Language::en );
+ m_CompanionDat = setupDatAccess( "Companion", xiv::exd::Language::en );
+ m_CompanionMoveDat = setupDatAccess( "CompanionMove", xiv::exd::Language::en );
+ m_CompanionTransientDat = setupDatAccess( "CompanionTransient", xiv::exd::Language::en );
+ m_CompanyActionDat = setupDatAccess( "CompanyAction", xiv::exd::Language::en );
+ m_CompanyCraftDraftDat = setupDatAccess( "CompanyCraftDraft", xiv::exd::Language::en );
+ m_CompanyCraftDraftCategoryDat = setupDatAccess( "CompanyCraftDraftCategory", xiv::exd::Language::en );
+ m_CompanyCraftManufactoryStateDat = setupDatAccess( "CompanyCraftManufactoryState", xiv::exd::Language::en );
+ m_CompanyCraftPartDat = setupDatAccess( "CompanyCraftPart", xiv::exd::Language::none );
+ m_CompanyCraftProcessDat = setupDatAccess( "CompanyCraftProcess", xiv::exd::Language::none );
+ m_CompanyCraftSequenceDat = setupDatAccess( "CompanyCraftSequence", xiv::exd::Language::none );
+ m_CompanyCraftSupplyItemDat = setupDatAccess( "CompanyCraftSupplyItem", xiv::exd::Language::none );
+ m_CompanyCraftTypeDat = setupDatAccess( "CompanyCraftType", xiv::exd::Language::en );
+ m_CompleteJournalDat = setupDatAccess( "CompleteJournal", xiv::exd::Language::en );
+ m_CompleteJournalCategoryDat = setupDatAccess( "CompleteJournalCategory", xiv::exd::Language::none );
+ m_ContentExActionDat = setupDatAccess( "ContentExAction", xiv::exd::Language::none );
+ m_ContentFinderConditionDat = setupDatAccess( "ContentFinderCondition", xiv::exd::Language::en );
+ m_ContentFinderConditionTransientDat = setupDatAccess( "ContentFinderConditionTransient", xiv::exd::Language::en );
+ m_ContentMemberTypeDat = setupDatAccess( "ContentMemberType", xiv::exd::Language::none );
+ m_ContentNpcTalkDat = setupDatAccess( "ContentNpcTalk", xiv::exd::Language::none );
+ m_ContentRouletteDat = setupDatAccess( "ContentRoulette", xiv::exd::Language::en );
+ m_ContentsNoteDat = setupDatAccess( "ContentsNote", xiv::exd::Language::en );
+ m_ContentsNoteCategoryDat = setupDatAccess( "ContentsNoteCategory", xiv::exd::Language::none );
+ m_ContentTalkDat = setupDatAccess( "ContentTalk", xiv::exd::Language::en );
+ m_ContentTalkParamDat = setupDatAccess( "ContentTalkParam", xiv::exd::Language::none );
+ m_ContentTypeDat = setupDatAccess( "ContentType", xiv::exd::Language::en );
+ m_CraftActionDat = setupDatAccess( "CraftAction", xiv::exd::Language::en );
+ m_CraftLeveDat = setupDatAccess( "CraftLeve", xiv::exd::Language::none );
+ m_CraftTypeDat = setupDatAccess( "CraftType", xiv::exd::Language::en );
+ m_CurrencyDat = setupDatAccess( "Currency", xiv::exd::Language::none );
+ m_CustomTalkDat = setupDatAccess( "CustomTalk", xiv::exd::Language::en );
+ m_CutsceneDat = setupDatAccess( "Cutscene", xiv::exd::Language::none );
+ m_CutScreenImageDat = setupDatAccess( "CutScreenImage", xiv::exd::Language::none );
+ m_DailySupplyItemDat = setupDatAccess( "DailySupplyItem", xiv::exd::Language::none );
+ m_DeepDungeonBanDat = setupDatAccess( "DeepDungeonBan", xiv::exd::Language::none );
+ m_DeepDungeonDangerDat = setupDatAccess( "DeepDungeonDanger", xiv::exd::Language::none );
+ m_DeepDungeonEquipmentDat = setupDatAccess( "DeepDungeonEquipment", xiv::exd::Language::en );
+ m_DeepDungeonFloorEffectUIDat = setupDatAccess( "DeepDungeonFloorEffectUI", xiv::exd::Language::en );
+ m_DeepDungeonItemDat = setupDatAccess( "DeepDungeonItem", xiv::exd::Language::en );
+ m_DeepDungeonStatusDat = setupDatAccess( "DeepDungeonStatus", xiv::exd::Language::none );
+ m_DefaultTalkDat = setupDatAccess( "DefaultTalk", xiv::exd::Language::en );
+ m_DeliveryQuestDat = setupDatAccess( "DeliveryQuest", xiv::exd::Language::none );
+ m_DisposalShopDat = setupDatAccess( "DisposalShop", xiv::exd::Language::en );
+ m_DisposalShopFilterTypeDat = setupDatAccess( "DisposalShopFilterType", xiv::exd::Language::en );
+ m_DisposalShopItemDat = setupDatAccess( "DisposalShopItem", xiv::exd::Language::none );
+ m_DpsChallengeDat = setupDatAccess( "DpsChallenge", xiv::exd::Language::en );
+ m_DpsChallengeOfficerDat = setupDatAccess( "DpsChallengeOfficer", xiv::exd::Language::none );
+ m_DpsChallengeTransientDat = setupDatAccess( "DpsChallengeTransient", xiv::exd::Language::none );
+ m_EmoteDat = setupDatAccess( "Emote", xiv::exd::Language::en );
+ m_EmoteCategoryDat = setupDatAccess( "EmoteCategory", xiv::exd::Language::en );
+ m_EmoteModeDat = setupDatAccess( "EmoteMode", xiv::exd::Language::none );
+ m_ENpcBaseDat = setupDatAccess( "ENpcBase", xiv::exd::Language::none );
+ m_ENpcResidentDat = setupDatAccess( "ENpcResident", xiv::exd::Language::en );
+ m_EObjDat = setupDatAccess( "EObj", xiv::exd::Language::none );
+ m_EObjNameDat = setupDatAccess( "EObjName", xiv::exd::Language::en );
+ m_EquipRaceCategoryDat = setupDatAccess( "EquipRaceCategory", xiv::exd::Language::none );
+ m_EquipSlotCategoryDat = setupDatAccess( "EquipSlotCategory", xiv::exd::Language::none );
+ m_EurekaAethernetDat = setupDatAccess( "EurekaAethernet", xiv::exd::Language::none );
+ m_EurekaGrowDataDat = setupDatAccess( "EurekaGrowData", xiv::exd::Language::none );
+ m_EurekaSphereElementAdjustDat = setupDatAccess( "EurekaSphereElementAdjust", xiv::exd::Language::none );
+ m_EventActionDat = setupDatAccess( "EventAction", xiv::exd::Language::en );
+ m_EventIconPriorityDat = setupDatAccess( "EventIconPriority", xiv::exd::Language::none );
+ m_EventIconTypeDat = setupDatAccess( "EventIconType", xiv::exd::Language::none );
+ m_EventItemDat = setupDatAccess( "EventItem", xiv::exd::Language::en );
+ m_EventItemHelpDat = setupDatAccess( "EventItemHelp", xiv::exd::Language::en );
+ m_ExVersionDat = setupDatAccess( "ExVersion", xiv::exd::Language::en );
+ m_FateDat = setupDatAccess( "Fate", xiv::exd::Language::en );
+ m_FCActivityDat = setupDatAccess( "FCActivity", xiv::exd::Language::en );
+ m_FCActivityCategoryDat = setupDatAccess( "FCActivityCategory", xiv::exd::Language::en );
+ m_FCAuthorityDat = setupDatAccess( "FCAuthority", xiv::exd::Language::en );
+ m_FCAuthorityCategoryDat = setupDatAccess( "FCAuthorityCategory", xiv::exd::Language::en );
+ m_FCChestNameDat = setupDatAccess( "FCChestName", xiv::exd::Language::en );
+ m_FccShopDat = setupDatAccess( "FccShop", xiv::exd::Language::en );
+ m_FCHierarchyDat = setupDatAccess( "FCHierarchy", xiv::exd::Language::en );
+ m_FCProfileDat = setupDatAccess( "FCProfile", xiv::exd::Language::en );
+ m_FCReputationDat = setupDatAccess( "FCReputation", xiv::exd::Language::en );
+ m_FCRightsDat = setupDatAccess( "FCRights", xiv::exd::Language::en );
+ m_FieldMarkerDat = setupDatAccess( "FieldMarker", xiv::exd::Language::en );
+ m_FishingSpotDat = setupDatAccess( "FishingSpot", xiv::exd::Language::en );
+ m_FishParameterDat = setupDatAccess( "FishParameter", xiv::exd::Language::en );
+ m_GardeningSeedDat = setupDatAccess( "GardeningSeed", xiv::exd::Language::none );
+ m_GatheringConditionDat = setupDatAccess( "GatheringCondition", xiv::exd::Language::en );
+ m_GatheringExpDat = setupDatAccess( "GatheringExp", xiv::exd::Language::none );
+ m_GatheringItemDat = setupDatAccess( "GatheringItem", xiv::exd::Language::none );
+ m_GatheringItemLevelConvertTableDat = setupDatAccess( "GatheringItemLevelConvertTable", xiv::exd::Language::none );
+ m_GatheringItemPointDat = setupDatAccess( "GatheringItemPoint", xiv::exd::Language::none );
+ m_GatheringNotebookListDat = setupDatAccess( "GatheringNotebookList", xiv::exd::Language::none );
+ m_GatheringPointDat = setupDatAccess( "GatheringPoint", xiv::exd::Language::none );
+ m_GatheringPointBaseDat = setupDatAccess( "GatheringPointBase", xiv::exd::Language::none );
+ m_GatheringPointBonusDat = setupDatAccess( "GatheringPointBonus", xiv::exd::Language::none );
+ m_GatheringPointBonusTypeDat = setupDatAccess( "GatheringPointBonusType", xiv::exd::Language::en );
+ m_GatheringPointNameDat = setupDatAccess( "GatheringPointName", xiv::exd::Language::en );
+ m_GatheringSubCategoryDat = setupDatAccess( "GatheringSubCategory", xiv::exd::Language::en );
+ m_GatheringTypeDat = setupDatAccess( "GatheringType", xiv::exd::Language::en );
+ m_GcArmyExpeditionDat = setupDatAccess( "GcArmyExpedition", xiv::exd::Language::en );
+ m_GcArmyExpeditionMemberBonusDat = setupDatAccess( "GcArmyExpeditionMemberBonus", xiv::exd::Language::none );
+ m_GcArmyExpeditionTypeDat = setupDatAccess( "GcArmyExpeditionType", xiv::exd::Language::en );
+ m_GcArmyMemberGrowDat = setupDatAccess( "GcArmyMemberGrow", xiv::exd::Language::none );
+ m_GcArmyTrainingDat = setupDatAccess( "GcArmyTraining", xiv::exd::Language::en );
+ m_GCRankGridaniaFemaleTextDat = setupDatAccess( "GCRankGridaniaFemaleText", xiv::exd::Language::en );
+ m_GCRankGridaniaMaleTextDat = setupDatAccess( "GCRankGridaniaMaleText", xiv::exd::Language::en );
+ m_GCRankLimsaFemaleTextDat = setupDatAccess( "GCRankLimsaFemaleText", xiv::exd::Language::en );
+ m_GCRankLimsaMaleTextDat = setupDatAccess( "GCRankLimsaMaleText", xiv::exd::Language::en );
+ m_GCRankUldahFemaleTextDat = setupDatAccess( "GCRankUldahFemaleText", xiv::exd::Language::en );
+ m_GCRankUldahMaleTextDat = setupDatAccess( "GCRankUldahMaleText", xiv::exd::Language::en );
+ m_GCScripShopCategoryDat = setupDatAccess( "GCScripShopCategory", xiv::exd::Language::none );
+ m_GCScripShopItemDat = setupDatAccess( "GCScripShopItem", xiv::exd::Language::none );
+ m_GCShopDat = setupDatAccess( "GCShop", xiv::exd::Language::none );
+ m_GCShopItemCategoryDat = setupDatAccess( "GCShopItemCategory", xiv::exd::Language::en );
+ m_GCSupplyDutyDat = setupDatAccess( "GCSupplyDuty", xiv::exd::Language::none );
+ m_GCSupplyDutyRewardDat = setupDatAccess( "GCSupplyDutyReward", xiv::exd::Language::none );
+ m_GeneralActionDat = setupDatAccess( "GeneralAction", xiv::exd::Language::en );
+ m_GilShopDat = setupDatAccess( "GilShop", xiv::exd::Language::en );
+ m_GilShopItemDat = setupDatAccess( "GilShopItem", xiv::exd::Language::none );
+ m_GoldSaucerTextDataDat = setupDatAccess( "GoldSaucerTextData", xiv::exd::Language::en );
+ m_GrandCompanyDat = setupDatAccess( "GrandCompany", xiv::exd::Language::en );
+ m_GrandCompanyRankDat = setupDatAccess( "GrandCompanyRank", xiv::exd::Language::none );
+ m_GuardianDeityDat = setupDatAccess( "GuardianDeity", xiv::exd::Language::en );
+ m_GuildleveAssignmentDat = setupDatAccess( "GuildleveAssignment", xiv::exd::Language::none );
+ m_GuildOrderGuideDat = setupDatAccess( "GuildOrderGuide", xiv::exd::Language::none );
+ m_GuildOrderOfficerDat = setupDatAccess( "GuildOrderOfficer", xiv::exd::Language::none );
+ m_HouseRetainerPoseDat = setupDatAccess( "HouseRetainerPose", xiv::exd::Language::none );
+ m_HousingFurnitureDat = setupDatAccess( "HousingFurniture", xiv::exd::Language::none );
+ m_HousingYardObjectDat = setupDatAccess( "HousingYardObject", xiv::exd::Language::none );
+ m_InstanceContentDat = setupDatAccess( "InstanceContent", xiv::exd::Language::en );
+ m_InstanceContentBuffDat = setupDatAccess( "InstanceContentBuff", xiv::exd::Language::none );
+ m_InstanceContentTextDataDat = setupDatAccess( "InstanceContentTextData", xiv::exd::Language::en );
+ m_ItemDat = setupDatAccess( "Item", xiv::exd::Language::en );
+ m_ItemActionDat = setupDatAccess( "ItemAction", xiv::exd::Language::none );
+ m_ItemFoodDat = setupDatAccess( "ItemFood", xiv::exd::Language::none );
+ m_ItemSearchCategoryDat = setupDatAccess( "ItemSearchCategory", xiv::exd::Language::en );
+ m_ItemSeriesDat = setupDatAccess( "ItemSeries", xiv::exd::Language::en );
+ m_ItemSpecialBonusDat = setupDatAccess( "ItemSpecialBonus", xiv::exd::Language::en );
+ m_ItemUICategoryDat = setupDatAccess( "ItemUICategory", xiv::exd::Language::en );
+ m_JournalCategoryDat = setupDatAccess( "JournalCategory", xiv::exd::Language::en );
+ m_JournalGenreDat = setupDatAccess( "JournalGenre", xiv::exd::Language::en );
+ m_JournalSectionDat = setupDatAccess( "JournalSection", xiv::exd::Language::en );
+ m_LeveDat = setupDatAccess( "Leve", xiv::exd::Language::en );
+ m_LeveAssignmentTypeDat = setupDatAccess( "LeveAssignmentType", xiv::exd::Language::en );
+ m_LeveClientDat = setupDatAccess( "LeveClient", xiv::exd::Language::en );
+ m_LevelDat = setupDatAccess( "Level", xiv::exd::Language::none );
+ m_LeveRewardItemDat = setupDatAccess( "LeveRewardItem", xiv::exd::Language::none );
+ m_LeveRewardItemGroupDat = setupDatAccess( "LeveRewardItemGroup", xiv::exd::Language::none );
+ m_LeveVfxDat = setupDatAccess( "LeveVfx", xiv::exd::Language::none );
+ m_LogFilterDat = setupDatAccess( "LogFilter", xiv::exd::Language::en );
+ m_LogKindDat = setupDatAccess( "LogKind", xiv::exd::Language::en );
+ m_LogKindCategoryTextDat = setupDatAccess( "LogKindCategoryText", xiv::exd::Language::en );
+ m_LogMessageDat = setupDatAccess( "LogMessage", xiv::exd::Language::en );
+ m_MacroIconDat = setupDatAccess( "MacroIcon", xiv::exd::Language::none );
+ m_MacroIconRedirectOldDat = setupDatAccess( "MacroIconRedirectOld", xiv::exd::Language::none );
+ m_MainCommandDat = setupDatAccess( "MainCommand", xiv::exd::Language::en );
+ m_MainCommandCategoryDat = setupDatAccess( "MainCommandCategory", xiv::exd::Language::en );
+ m_MapDat = setupDatAccess( "Map", xiv::exd::Language::none );
+ m_MapMarkerDat = setupDatAccess( "MapMarker", xiv::exd::Language::none );
+ m_MapMarkerRegionDat = setupDatAccess( "MapMarkerRegion", xiv::exd::Language::none );
+ m_MapSymbolDat = setupDatAccess( "MapSymbol", xiv::exd::Language::none );
+ m_MarkerDat = setupDatAccess( "Marker", xiv::exd::Language::en );
+ m_MasterpieceSupplyDutyDat = setupDatAccess( "MasterpieceSupplyDuty", xiv::exd::Language::none );
+ m_MasterpieceSupplyMultiplierDat = setupDatAccess( "MasterpieceSupplyMultiplier", xiv::exd::Language::none );
+ m_MateriaDat = setupDatAccess( "Materia", xiv::exd::Language::none );
+ m_MinionRaceDat = setupDatAccess( "MinionRace", xiv::exd::Language::en );
+ m_MinionRulesDat = setupDatAccess( "MinionRules", xiv::exd::Language::en );
+ m_MinionSkillTypeDat = setupDatAccess( "MinionSkillType", xiv::exd::Language::en );
+ m_MobHuntTargetDat = setupDatAccess( "MobHuntTarget", xiv::exd::Language::none );
+ m_ModelCharaDat = setupDatAccess( "ModelChara", xiv::exd::Language::none );
+ m_MonsterNoteDat = setupDatAccess( "MonsterNote", xiv::exd::Language::en );
+ m_MonsterNoteTargetDat = setupDatAccess( "MonsterNoteTarget", xiv::exd::Language::none );
+ m_MountDat = setupDatAccess( "Mount", xiv::exd::Language::en );
+ m_MountActionDat = setupDatAccess( "MountAction", xiv::exd::Language::none );
+ m_MoveTimelineDat = setupDatAccess( "MoveTimeline", xiv::exd::Language::none );
+ m_MoveVfxDat = setupDatAccess( "MoveVfx", xiv::exd::Language::none );
+ m_NpcEquipDat = setupDatAccess( "NpcEquip", xiv::exd::Language::none );
+ m_OmenDat = setupDatAccess( "Omen", xiv::exd::Language::none );
+ m_OnlineStatusDat = setupDatAccess( "OnlineStatus", xiv::exd::Language::en );
+ m_OpeningDat = setupDatAccess( "Opening", xiv::exd::Language::none );
+ m_OrchestrionDat = setupDatAccess( "Orchestrion", xiv::exd::Language::en );
+ m_OrchestrionCategoryDat = setupDatAccess( "OrchestrionCategory", xiv::exd::Language::en );
+ m_OrchestrionPathDat = setupDatAccess( "OrchestrionPath", xiv::exd::Language::none );
+ m_OrchestrionUiparamDat = setupDatAccess( "OrchestrionUiparam", xiv::exd::Language::none );
+ m_ParamGrowDat = setupDatAccess( "ParamGrow", xiv::exd::Language::none );
+ m_PerformDat = setupDatAccess( "Perform", xiv::exd::Language::en );
+ m_PerformTransientDat = setupDatAccess( "PerformTransient", xiv::exd::Language::en );
+ m_PetDat = setupDatAccess( "Pet", xiv::exd::Language::en );
+ m_PetActionDat = setupDatAccess( "PetAction", xiv::exd::Language::en );
+ m_PictureDat = setupDatAccess( "Picture", xiv::exd::Language::none );
+ m_PlaceNameDat = setupDatAccess( "PlaceName", xiv::exd::Language::en );
+ m_PublicContentDat = setupDatAccess( "PublicContent", xiv::exd::Language::en );
+ m_PvPActionSortDat = setupDatAccess( "PvPActionSort", xiv::exd::Language::none );
+ m_QuestDat = setupDatAccess( "Quest", xiv::exd::Language::en );
+ m_QuestClassJobRewardDat = setupDatAccess( "QuestClassJobReward", xiv::exd::Language::none );
+ m_QuestRepeatFlagDat = setupDatAccess( "QuestRepeatFlag", xiv::exd::Language::none );
+ m_QuestRewardOtherDat = setupDatAccess( "QuestRewardOther", xiv::exd::Language::en );
+ m_QuickChatDat = setupDatAccess( "QuickChat", xiv::exd::Language::en );
+ m_QuickChatTransientDat = setupDatAccess( "QuickChatTransient", xiv::exd::Language::en );
+ m_RaceDat = setupDatAccess( "Race", xiv::exd::Language::en );
+ m_RacingChocoboItemDat = setupDatAccess( "RacingChocoboItem", xiv::exd::Language::none );
+ m_RacingChocoboNameDat = setupDatAccess( "RacingChocoboName", xiv::exd::Language::en );
+ m_RacingChocoboNameCategoryDat = setupDatAccess( "RacingChocoboNameCategory", xiv::exd::Language::en );
+ m_RacingChocoboNameInfoDat = setupDatAccess( "RacingChocoboNameInfo", xiv::exd::Language::none );
+ m_RacingChocoboParamDat = setupDatAccess( "RacingChocoboParam", xiv::exd::Language::en );
+ m_RecipeDat = setupDatAccess( "Recipe", xiv::exd::Language::none );
+ m_RecipeElementDat = setupDatAccess( "RecipeElement", xiv::exd::Language::en );
+ m_RecipeLevelTableDat = setupDatAccess( "RecipeLevelTable", xiv::exd::Language::none );
+ m_RecipeNotebookListDat = setupDatAccess( "RecipeNotebookList", xiv::exd::Language::none );
+ m_RecommendContentsDat = setupDatAccess( "RecommendContents", xiv::exd::Language::none );
+ m_RelicDat = setupDatAccess( "Relic", xiv::exd::Language::none );
+ m_Relic3Dat = setupDatAccess( "Relic3", xiv::exd::Language::none );
+ m_RelicItemDat = setupDatAccess( "RelicItem", xiv::exd::Language::none );
+ m_RelicNoteDat = setupDatAccess( "RelicNote", xiv::exd::Language::none );
+ m_RelicNoteCategoryDat = setupDatAccess( "RelicNoteCategory", xiv::exd::Language::en );
+ m_RetainerTaskDat = setupDatAccess( "RetainerTask", xiv::exd::Language::none );
+ m_RetainerTaskLvRangeDat = setupDatAccess( "RetainerTaskLvRange", xiv::exd::Language::none );
+ m_RetainerTaskNormalDat = setupDatAccess( "RetainerTaskNormal", xiv::exd::Language::none );
+ m_RetainerTaskParameterDat = setupDatAccess( "RetainerTaskParameter", xiv::exd::Language::none );
+ m_RetainerTaskRandomDat = setupDatAccess( "RetainerTaskRandom", xiv::exd::Language::en );
+ m_SalvageDat = setupDatAccess( "Salvage", xiv::exd::Language::none );
+ m_SatisfactionNpcDat = setupDatAccess( "SatisfactionNpc", xiv::exd::Language::none );
+ m_SatisfactionSupplyDat = setupDatAccess( "SatisfactionSupply", xiv::exd::Language::none );
+ m_SatisfactionSupplyRewardDat = setupDatAccess( "SatisfactionSupplyReward", xiv::exd::Language::none );
+ m_ScenarioTreeDat = setupDatAccess( "ScenarioTree", xiv::exd::Language::none );
+ m_ScenarioTreeTipsDat = setupDatAccess( "ScenarioTreeTips", xiv::exd::Language::none );
+ m_ScenarioTreeTipsClassQuestDat = setupDatAccess( "ScenarioTreeTipsClassQuest", xiv::exd::Language::none );
+ m_ScenarioTreeTipsQuestDat = setupDatAccess( "ScenarioTreeTipsQuest", xiv::exd::Language::none );
+ m_ScenarioTypeDat = setupDatAccess( "ScenarioType", xiv::exd::Language::en );
+ m_ScreenImageDat = setupDatAccess( "ScreenImage", xiv::exd::Language::none );
+ m_SecretRecipeBookDat = setupDatAccess( "SecretRecipeBook", xiv::exd::Language::en );
+ m_SkyIsland2MissionDat = setupDatAccess( "SkyIsland2Mission", xiv::exd::Language::en );
+ m_SkyIsland2MissionDetailDat = setupDatAccess( "SkyIsland2MissionDetail", xiv::exd::Language::en );
+ m_SkyIsland2MissionTypeDat = setupDatAccess( "SkyIsland2MissionType", xiv::exd::Language::none );
+ m_SkyIsland2RangeTypeDat = setupDatAccess( "SkyIsland2RangeType", xiv::exd::Language::none );
+ m_SpearfishingItemDat = setupDatAccess( "SpearfishingItem", xiv::exd::Language::en );
+ m_SpearfishingNotebookDat = setupDatAccess( "SpearfishingNotebook", xiv::exd::Language::none );
+ m_SpecialShopDat = setupDatAccess( "SpecialShop", xiv::exd::Language::en );
+ m_SpecialShopItemCategoryDat = setupDatAccess( "SpecialShopItemCategory", xiv::exd::Language::en );
+ m_StainDat = setupDatAccess( "Stain", xiv::exd::Language::en );
+ m_StainTransientDat = setupDatAccess( "StainTransient", xiv::exd::Language::none );
+ m_StatusDat = setupDatAccess( "Status", xiv::exd::Language::en );
+ m_StatusHitEffectDat = setupDatAccess( "StatusHitEffect", xiv::exd::Language::none );
+ m_StatusLoopVFXDat = setupDatAccess( "StatusLoopVFX", xiv::exd::Language::none );
+ m_StoryDat = setupDatAccess( "Story", xiv::exd::Language::none );
+ m_SubmarineExplorationDat = setupDatAccess( "SubmarineExploration", xiv::exd::Language::en );
+ m_SubmarinePartDat = setupDatAccess( "SubmarinePart", xiv::exd::Language::none );
+ m_SubmarineRankDat = setupDatAccess( "SubmarineRank", xiv::exd::Language::none );
+ m_SwitchTalkDat = setupDatAccess( "SwitchTalk", xiv::exd::Language::none );
+ m_TerritoryTypeDat = setupDatAccess( "TerritoryType", xiv::exd::Language::none );
+ m_TextCommandDat = setupDatAccess( "TextCommand", xiv::exd::Language::en );
+ m_TitleDat = setupDatAccess( "Title", xiv::exd::Language::en );
+ m_TomestonesDat = setupDatAccess( "Tomestones", xiv::exd::Language::none );
+ m_TomestonesItemDat = setupDatAccess( "TomestonesItem", xiv::exd::Language::none );
+ m_TopicSelectDat = setupDatAccess( "TopicSelect", xiv::exd::Language::en );
+ m_TownDat = setupDatAccess( "Town", xiv::exd::Language::en );
+ m_TraitDat = setupDatAccess( "Trait", xiv::exd::Language::en );
+ m_TraitRecastDat = setupDatAccess( "TraitRecast", xiv::exd::Language::none );
+ m_TraitTransientDat = setupDatAccess( "TraitTransient", xiv::exd::Language::en );
+ m_TransformationDat = setupDatAccess( "Transformation", xiv::exd::Language::none );
+ m_TreasureDat = setupDatAccess( "Treasure", xiv::exd::Language::en );
+ m_TreasureHuntRankDat = setupDatAccess( "TreasureHuntRank", xiv::exd::Language::none );
+ m_TribeDat = setupDatAccess( "Tribe", xiv::exd::Language::en );
+ m_TripleTriadDat = setupDatAccess( "TripleTriad", xiv::exd::Language::none );
+ m_TripleTriadCardDat = setupDatAccess( "TripleTriadCard", xiv::exd::Language::en );
+ m_TripleTriadCardRarityDat = setupDatAccess( "TripleTriadCardRarity", xiv::exd::Language::none );
+ m_TripleTriadCardResidentDat = setupDatAccess( "TripleTriadCardResident", xiv::exd::Language::none );
+ m_TripleTriadCardTypeDat = setupDatAccess( "TripleTriadCardType", xiv::exd::Language::en );
+ m_TripleTriadCompetitionDat = setupDatAccess( "TripleTriadCompetition", xiv::exd::Language::en );
+ m_TripleTriadRuleDat = setupDatAccess( "TripleTriadRule", xiv::exd::Language::en );
+ m_TutorialDat = setupDatAccess( "Tutorial", xiv::exd::Language::none );
+ m_TutorialDPSDat = setupDatAccess( "TutorialDPS", xiv::exd::Language::none );
+ m_TutorialHealerDat = setupDatAccess( "TutorialHealer", xiv::exd::Language::none );
+ m_TutorialTankDat = setupDatAccess( "TutorialTank", xiv::exd::Language::none );
+ m_VaseFlowerDat = setupDatAccess( "VaseFlower", xiv::exd::Language::none );
+ m_VFXDat = setupDatAccess( "VFX", xiv::exd::Language::none );
+ m_WarpDat = setupDatAccess( "Warp", xiv::exd::Language::en );
+ m_WarpConditionDat = setupDatAccess( "WarpCondition", xiv::exd::Language::none );
+ m_WeatherDat = setupDatAccess( "Weather", xiv::exd::Language::en );
+ m_WeatherGroupDat = setupDatAccess( "WeatherGroup", xiv::exd::Language::none );
+ m_WeatherRateDat = setupDatAccess( "WeatherRate", xiv::exd::Language::none );
+ m_WeddingBGMDat = setupDatAccess( "WeddingBGM", xiv::exd::Language::en );
+ m_WeeklyBingoOrderDataDat = setupDatAccess( "WeeklyBingoOrderData", xiv::exd::Language::none );
+ m_WeeklyBingoRewardDataDat = setupDatAccess( "WeeklyBingoRewardData", xiv::exd::Language::none );
+ m_WeeklyBingoTextDat = setupDatAccess( "WeeklyBingoText", xiv::exd::Language::en );
+ m_WorldDat = setupDatAccess( "World", xiv::exd::Language::none );
+ m_WorldDCGroupTypeDat = setupDatAccess( "WorldDCGroupType", xiv::exd::Language::none );
+ m_YKWDat = setupDatAccess( "YKW", xiv::exd::Language::en );
+ m_ZoneSharedGroupDat = setupDatAccess( "ZoneSharedGroup", xiv::exd::Language::none );
- }
- catch( std::runtime_error )
- {
- return false;
- }
+ }
+ catch( std::runtime_error )
+ {
+ return false;
+ }
- return true;
+ return true;
}
///////////////////////////////////////////////////////////////
diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h
index c0f9d8e4..59ba567e 100644
--- a/src/common/Exd/ExdDataGenerated.h
+++ b/src/common/Exd/ExdDataGenerated.h
@@ -377,6883 +377,7239 @@ struct ZoneSharedGroup;
struct Achievement
{
- uint8_t achievementCategory;
- std::string name;
- std::string description;
- uint8_t points;
- uint16_t title;
- uint32_t item;
- uint16_t icon;
- uint8_t type;
- std::vector< int32_t > data;
- uint16_t order;
+ uint8_t achievementCategory;
+ std::string name;
+ std::string description;
+ uint8_t points;
+ uint16_t title;
+ uint32_t item;
+ uint16_t icon;
+ uint8_t type;
+ std::vector< int32_t > data;
+ uint16_t order;
- Achievement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Achievement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AchievementCategory
{
- std::string name;
- uint8_t achievementKind;
+ std::string name;
+ uint8_t achievementKind;
- AchievementCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AchievementCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AchievementKind
{
- std::string name;
+ std::string name;
- AchievementKind( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AchievementKind( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Action
{
- std::string name;
- uint16_t icon;
- uint8_t actionCategory;
- uint8_t animationStart;
- uint8_t vFX;
- int16_t animationEnd;
- uint16_t actionTimelineHit;
- int8_t classJob;
- uint8_t classJobLevel;
- bool isRoleAction;
- int8_t range;
- bool canTargetSelf;
- bool canTargetParty;
- bool canTargetFriendly;
- bool canTargetHostile;
- bool targetArea;
- bool canTargetDead;
- uint8_t castType;
- uint8_t effectRange;
- uint8_t xAxisModifier;
- uint8_t costType;
- uint16_t cost;
- uint16_t actionCombo;
- bool preservesCombo;
- uint16_t cast100ms;
- uint16_t recast100ms;
- uint8_t cooldownGroup;
- int8_t attackType;
- uint8_t aspect;
- uint8_t actionProcStatus;
- uint16_t statusGainSelf;
- uint32_t actionData;
- uint8_t classJobCategory;
- bool affectsPosition;
- uint8_t omen;
- bool isPvP;
+ std::string name;
+ uint16_t icon;
+ uint8_t actionCategory;
+ uint8_t animationStart;
+ uint8_t vFX;
+ int16_t animationEnd;
+ uint16_t actionTimelineHit;
+ int8_t classJob;
+ uint8_t classJobLevel;
+ bool isRoleAction;
+ int8_t range;
+ bool canTargetSelf;
+ bool canTargetParty;
+ bool canTargetFriendly;
+ bool canTargetHostile;
+ bool targetArea;
+ bool canTargetDead;
+ uint8_t castType;
+ uint8_t effectRange;
+ uint8_t xAxisModifier;
+ uint8_t costType;
+ uint16_t cost;
+ uint16_t actionCombo;
+ bool preservesCombo;
+ uint16_t cast100ms;
+ uint16_t recast100ms;
+ uint8_t cooldownGroup;
+ int8_t attackType;
+ uint8_t aspect;
+ uint8_t actionProcStatus;
+ uint16_t statusGainSelf;
+ uint32_t actionData;
+ uint8_t classJobCategory;
+ bool affectsPosition;
+ uint8_t omen;
+ bool isPvP;
- Action( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Action( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ActionCastTimeline
{
- uint16_t name;
- uint16_t vFX;
+ uint16_t name;
+ uint16_t vFX;
- ActionCastTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ActionCastTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ActionCastVFX
{
- uint16_t vFX;
+ uint16_t vFX;
- ActionCastVFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ActionCastVFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ActionCategory
{
- std::string name;
+ std::string name;
- ActionCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ActionCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ActionComboRoute
{
- std::string name;
- std::vector< uint16_t > action;
+ std::string name;
+ std::vector< uint16_t > action;
- ActionComboRoute( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ActionComboRoute( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ActionIndirection
{
- int32_t name;
+ int32_t name;
- ActionIndirection( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ActionIndirection( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ActionParam
{
- int16_t name;
+ int16_t name;
- ActionParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ActionParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ActionProcStatus
{
- uint16_t status;
+ uint16_t status;
- ActionProcStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ActionProcStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ActionTimeline
{
- std::string key;
+ std::string key;
- ActionTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ActionTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ActionTimelineReplace
{
- uint16_t old;
- uint16_t new1;
+ uint16_t old;
+ uint16_t new1;
- ActionTimelineReplace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ActionTimelineReplace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ActionTransient
{
- std::string description;
+ std::string description;
- ActionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ActionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Addon
{
- std::string text;
+ std::string text;
- Addon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Addon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Adventure
{
- int32_t level;
- uint8_t emote;
- uint16_t minTime;
- uint16_t maxTime;
- int32_t placeName;
- int32_t iconList;
- int32_t iconDiscovered;
- std::string name;
- std::string impression;
- std::string description;
- int32_t iconUndiscovered;
- bool isInitial;
+ int32_t level;
+ uint8_t emote;
+ uint16_t minTime;
+ uint16_t maxTime;
+ int32_t placeName;
+ int32_t iconList;
+ int32_t iconDiscovered;
+ std::string name;
+ std::string impression;
+ std::string description;
+ int32_t iconUndiscovered;
+ bool isInitial;
- Adventure( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Adventure( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AdventureExPhase
{
- uint32_t quest;
- uint32_t adventureBegin;
- uint32_t adventureEnd;
+ uint32_t quest;
+ uint32_t adventureBegin;
+ uint32_t adventureEnd;
- AdventureExPhase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AdventureExPhase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AetherCurrent
{
- uint32_t quest;
+ uint32_t quest;
- AetherCurrent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AetherCurrent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AetherCurrentCompFlgSet
{
- int32_t territory;
- std::vector< int32_t > aetherCurrent;
+ int32_t territory;
+ std::vector< int32_t > aetherCurrent;
- AetherCurrentCompFlgSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AetherCurrentCompFlgSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AetherialWheel
{
- int32_t itemUnprimed;
- int32_t itemPrimed;
- uint8_t grade;
- uint8_t hoursRequired;
+ int32_t itemUnprimed;
+ int32_t itemPrimed;
+ uint8_t grade;
+ uint8_t hoursRequired;
- AetherialWheel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AetherialWheel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Aetheryte
{
- uint16_t placeName;
- uint16_t aethernetName;
- uint16_t territory;
- std::vector< uint32_t > level;
- bool isAetheryte;
- uint8_t aethernetGroup;
- uint16_t map;
- int16_t aetherstreamX;
- int16_t aetherstreamY;
+ uint16_t placeName;
+ uint16_t aethernetName;
+ uint16_t territory;
+ std::vector< uint32_t > level;
+ bool isAetheryte;
+ uint8_t aethernetGroup;
+ uint16_t map;
+ int16_t aetherstreamX;
+ int16_t aetherstreamY;
- Aetheryte( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Aetheryte( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AirshipExplorationLevel
{
- uint32_t expToNext;
+ uint32_t expToNext;
- AirshipExplorationLevel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AirshipExplorationLevel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AirshipExplorationLog
{
- std::string text;
+ std::string text;
- AirshipExplorationLog( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AirshipExplorationLog( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AirshipExplorationParamType
{
- std::string name;
+ std::string name;
- AirshipExplorationParamType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AirshipExplorationParamType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AirshipExplorationPart
{
- uint8_t rank;
- uint8_t components;
- int16_t surveillance;
- int16_t retrieval;
- int16_t speed;
- int16_t range;
- int16_t favor;
- uint8_t repairMaterials;
+ uint8_t rank;
+ uint8_t components;
+ int16_t surveillance;
+ int16_t retrieval;
+ int16_t speed;
+ int16_t range;
+ int16_t favor;
+ uint8_t repairMaterials;
- AirshipExplorationPart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AirshipExplorationPart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AirshipExplorationPoint
{
- std::string name;
- std::string nameShort;
- uint8_t requiredLevel;
- uint16_t requiredFuel;
- uint16_t durationmin;
- uint8_t requiredSurveillance;
- uint32_t expReward;
+ std::string name;
+ std::string nameShort;
+ uint8_t requiredLevel;
+ uint16_t requiredFuel;
+ uint16_t durationmin;
+ uint8_t requiredSurveillance;
+ uint32_t expReward;
- AirshipExplorationPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AirshipExplorationPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AnimaWeapon5
{
- int32_t item;
- uint8_t secondaryStatTotal;
- std::vector< uint8_t > parameter;
+ int32_t item;
+ uint8_t secondaryStatTotal;
+ std::vector< uint8_t > parameter;
- AnimaWeapon5( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AnimaWeapon5( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AnimaWeapon5Param
{
- uint8_t baseParam;
- std::string name;
+ uint8_t baseParam;
+ std::string name;
- AnimaWeapon5Param( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AnimaWeapon5Param( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AnimaWeapon5PatternGroup
{
- std::string name;
+ std::string name;
- AnimaWeapon5PatternGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AnimaWeapon5PatternGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AnimaWeapon5SpiritTalk
{
- int32_t dialogue;
+ int32_t dialogue;
- AnimaWeapon5SpiritTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AnimaWeapon5SpiritTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AnimaWeapon5SpiritTalkParam
{
- std::string prologue;
- std::string epilogue;
+ std::string prologue;
+ std::string epilogue;
- AnimaWeapon5SpiritTalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AnimaWeapon5SpiritTalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AnimaWeapon5TradeItem
{
- uint32_t crystalSand;
- uint8_t qty;
- uint8_t category;
+ uint32_t crystalSand;
+ uint8_t qty;
+ uint8_t category;
- AnimaWeapon5TradeItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AnimaWeapon5TradeItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AnimaWeaponFUITalk
{
- int32_t dialogue;
+ int32_t dialogue;
- AnimaWeaponFUITalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AnimaWeaponFUITalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AnimaWeaponFUITalkParam
{
- std::string prologue;
- std::string epilogue;
+ std::string prologue;
+ std::string epilogue;
- AnimaWeaponFUITalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AnimaWeaponFUITalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AnimaWeaponIcon
{
- int32_t hyperconductive;
- int32_t reborn;
- int32_t sharpened;
- int32_t zodiac;
- int32_t zodiacLux;
+ int32_t hyperconductive;
+ int32_t reborn;
+ int32_t sharpened;
+ int32_t zodiac;
+ int32_t zodiacLux;
- AnimaWeaponIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AnimaWeaponIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AnimaWeaponItem
{
- std::vector< uint32_t > item;
+ std::vector< uint32_t > item;
- AnimaWeaponItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AnimaWeaponItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AquariumFish
{
- uint8_t aquariumWater;
- uint8_t size;
- uint32_t item;
+ uint8_t aquariumWater;
+ uint8_t size;
+ uint32_t item;
- AquariumFish( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AquariumFish( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AquariumWater
{
- std::string name;
+ std::string name;
- AquariumWater( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AquariumWater( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct AttackType
{
- std::string name;
+ std::string name;
- AttackType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ AttackType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Balloon
{
- std::string dialogue;
+ std::string dialogue;
- Balloon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Balloon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BaseParam
{
- std::string name;
- std::string description;
- uint8_t oneHWpn;
- uint8_t oH;
- uint8_t head;
- uint8_t chest;
- uint8_t hands;
- uint8_t waist;
- uint8_t legs;
- uint8_t feet;
- uint8_t earring;
- uint8_t necklace;
- uint8_t bracelet;
- uint8_t ring;
- uint8_t twoHWpn;
- uint8_t chestHead;
- uint8_t chestHeadLegsFeet;
- uint8_t legsFeet;
- uint8_t headChestHandsLegsFeet;
- uint8_t chestLegsGloves;
- uint8_t chestLegsFeet;
+ std::string name;
+ std::string description;
+ uint8_t oneHWpn;
+ uint8_t oH;
+ uint8_t head;
+ uint8_t chest;
+ uint8_t hands;
+ uint8_t waist;
+ uint8_t legs;
+ uint8_t feet;
+ uint8_t earring;
+ uint8_t necklace;
+ uint8_t bracelet;
+ uint8_t ring;
+ uint8_t twoHWpn;
+ uint8_t chestHead;
+ uint8_t chestHeadLegsFeet;
+ uint8_t legsFeet;
+ uint8_t headChestHandsLegsFeet;
+ uint8_t chestLegsGloves;
+ uint8_t chestLegsFeet;
- BaseParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BaseParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BattleLeve
{
- std::vector< uint16_t > enemyLevel;
- std::vector< uint32_t > bNpcName;
- std::vector< int32_t > itemsInvolved;
- std::vector< uint8_t > itemsInvolvedQty;
- std::vector< uint8_t > itemDropRate;
+ std::vector< uint16_t > enemyLevel;
+ std::vector< uint32_t > bNpcName;
+ std::vector< int32_t > itemsInvolved;
+ std::vector< uint8_t > itemsInvolvedQty;
+ std::vector< uint8_t > itemDropRate;
- BattleLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BattleLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BeastRankBonus
{
- uint32_t item;
- std::vector< uint8_t > itemQuantity;
+ uint32_t item;
+ std::vector< uint8_t > itemQuantity;
- BeastRankBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BeastRankBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BeastReputationRank
{
- uint16_t requiredReputation;
- std::string name;
+ uint16_t requiredReputation;
+ std::string name;
- BeastReputationRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BeastReputationRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BeastTribe
{
- uint8_t minLevel;
- uint8_t maxLevel;
- uint8_t beastRankBonus;
- uint32_t iconReputation;
- uint32_t icon;
- uint8_t maxRank;
- uint32_t alliedBeastTribeQuest;
- uint8_t expansion;
- uint32_t currencyItem;
- uint8_t displayOrder;
- std::string name;
- std::string nameRelation;
+ uint8_t minLevel;
+ uint8_t maxLevel;
+ uint8_t beastRankBonus;
+ uint32_t iconReputation;
+ uint32_t icon;
+ uint8_t maxRank;
+ uint32_t alliedBeastTribeQuest;
+ uint8_t expansion;
+ uint32_t currencyItem;
+ uint8_t displayOrder;
+ std::string name;
+ std::string nameRelation;
- BeastTribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BeastTribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Behavior
{
- uint16_t balloon;
+ uint16_t balloon;
- Behavior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Behavior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BGM
{
- std::string file;
+ std::string file;
- BGM( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BGM( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BNpcAnnounceIcon
{
- uint32_t icon;
+ uint32_t icon;
- BNpcAnnounceIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BNpcAnnounceIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BNpcBase
{
- float scale;
- uint16_t modelChara;
- uint16_t bNpcCustomize;
- uint16_t npcEquip;
- int32_t arrayEventHandler;
+ float scale;
+ uint16_t modelChara;
+ uint16_t bNpcCustomize;
+ uint16_t npcEquip;
+ int32_t arrayEventHandler;
- BNpcBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BNpcBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BNpcCustomize
{
- uint8_t race;
- uint8_t gender;
- uint8_t bodyType;
- uint8_t height;
- uint8_t tribe;
- uint8_t face;
- uint8_t hairStyle;
- uint8_t hairHighlight;
- uint8_t skinColor;
- uint8_t eyeHeterochromia;
- uint8_t hairColor;
- uint8_t hairHighlightColor;
- uint8_t facialFeature;
- uint8_t facialFeatureColor;
- uint8_t eyebrows;
- uint8_t eyeColor;
- uint8_t eyeShape;
- uint8_t nose;
- uint8_t jaw;
- uint8_t mouth;
- uint8_t lipColor;
- uint8_t bustOrTone1;
- uint8_t extraFeature1;
- uint8_t extraFeature2OrBust;
- uint8_t facePaint;
- uint8_t facePaintColor;
+ uint8_t race;
+ uint8_t gender;
+ uint8_t bodyType;
+ uint8_t height;
+ uint8_t tribe;
+ uint8_t face;
+ uint8_t hairStyle;
+ uint8_t hairHighlight;
+ uint8_t skinColor;
+ uint8_t eyeHeterochromia;
+ uint8_t hairColor;
+ uint8_t hairHighlightColor;
+ uint8_t facialFeature;
+ uint8_t facialFeatureColor;
+ uint8_t eyebrows;
+ uint8_t eyeColor;
+ uint8_t eyeShape;
+ uint8_t nose;
+ uint8_t jaw;
+ uint8_t mouth;
+ uint8_t lipColor;
+ uint8_t bustOrTone1;
+ uint8_t extraFeature1;
+ uint8_t extraFeature2OrBust;
+ uint8_t facePaint;
+ uint8_t facePaintColor;
- BNpcCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BNpcCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BNpcName
{
- std::string singular;
- std::string plural;
+ std::string singular;
+ std::string plural;
- BNpcName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BNpcName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Buddy
{
- int32_t questRequirement2;
- int32_t questRequirement1;
- std::string soundEffect4;
- std::string soundEffect3;
- std::string soundEffect2;
- std::string soundEffect1;
+ int32_t questRequirement2;
+ int32_t questRequirement1;
+ std::string soundEffect4;
+ std::string soundEffect3;
+ std::string soundEffect2;
+ std::string soundEffect1;
- Buddy( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Buddy( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BuddyAction
{
- std::string name;
- std::string description;
- int32_t icon;
- int32_t iconStatus;
+ std::string name;
+ std::string description;
+ int32_t icon;
+ int32_t iconStatus;
- BuddyAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BuddyAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BuddyEquip
{
- std::string singular;
- std::string plural;
- std::string name;
- int32_t modelTop;
- int32_t modelBody;
- int32_t modelLegs;
- uint8_t grandCompany;
- uint16_t iconHead;
- uint16_t iconBody;
- uint16_t iconLegs;
+ std::string singular;
+ std::string plural;
+ std::string name;
+ int32_t modelTop;
+ int32_t modelBody;
+ int32_t modelLegs;
+ uint8_t grandCompany;
+ uint16_t iconHead;
+ uint16_t iconBody;
+ uint16_t iconLegs;
- BuddyEquip( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BuddyEquip( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BuddyItem
{
- uint16_t name;
+ uint16_t name;
- BuddyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BuddyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BuddyRank
{
- uint32_t expRequired;
+ uint32_t expRequired;
- BuddyRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BuddyRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct BuddySkill
{
- uint8_t buddyLevel;
- bool isActive;
- uint16_t defender;
- uint16_t attacker;
- uint16_t healer;
+ uint8_t buddyLevel;
+ bool isActive;
+ uint16_t defender;
+ uint16_t attacker;
+ uint16_t healer;
- BuddySkill( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ BuddySkill( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Cabinet
{
- int32_t item;
- uint16_t order;
- uint8_t category;
+ int32_t item;
+ uint16_t order;
+ uint8_t category;
- Cabinet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Cabinet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CabinetCategory
{
- uint8_t menuOrder;
- int32_t icon;
- int32_t category;
+ uint8_t menuOrder;
+ int32_t icon;
+ int32_t category;
- CabinetCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CabinetCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Calendar
{
- std::vector< uint8_t > month;
- std::vector< uint8_t > day;
+ std::vector< uint8_t > month;
+ std::vector< uint8_t > day;
- Calendar( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Calendar( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CharaMakeCustomize
{
- uint32_t icon;
- uint16_t data;
- bool isPurchasable;
+ uint32_t icon;
+ uint16_t data;
+ bool isPurchasable;
- CharaMakeCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CharaMakeCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CharaMakeType
{
- int32_t race;
- int32_t tribe;
- int8_t gender;
- std::vector< int32_t > facialFeatureIcon;
+ int32_t race;
+ int32_t tribe;
+ int8_t gender;
+ std::vector< int32_t > facialFeatureIcon;
- CharaMakeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CharaMakeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ChocoboRace
{
- uint8_t chocoboRaceRank;
- uint8_t chocoboRaceTerritory;
+ uint8_t chocoboRaceRank;
+ uint8_t chocoboRaceTerritory;
- ChocoboRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ChocoboRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ChocoboRaceAbility
{
- std::string name;
- std::string description;
- uint32_t icon;
- int8_t chocoboRaceAbilityType;
- uint8_t value;
+ std::string name;
+ std::string description;
+ uint32_t icon;
+ int8_t chocoboRaceAbilityType;
+ uint8_t value;
- ChocoboRaceAbility( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ChocoboRaceAbility( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ChocoboRaceAbilityType
{
- bool isActive;
+ bool isActive;
- ChocoboRaceAbilityType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ChocoboRaceAbilityType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ChocoboRaceItem
{
- std::string name;
- std::string description;
- uint32_t icon;
+ std::string name;
+ std::string description;
+ uint32_t icon;
- ChocoboRaceItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ChocoboRaceItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ChocoboRaceRank
{
- uint16_t ratingMin;
- uint16_t ratingMax;
- uint16_t name;
- uint16_t fee;
- int32_t icon;
+ uint16_t ratingMin;
+ uint16_t ratingMax;
+ uint16_t name;
+ uint16_t fee;
+ int32_t icon;
- ChocoboRaceRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ChocoboRaceRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ChocoboRaceStatus
{
- int32_t status;
+ int32_t status;
- ChocoboRaceStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ChocoboRaceStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ChocoboRaceTerritory
{
- uint16_t name;
- int32_t icon;
+ uint16_t name;
+ int32_t icon;
- ChocoboRaceTerritory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ChocoboRaceTerritory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ChocoboTaxi
{
- uint32_t location;
+ uint32_t location;
- ChocoboTaxi( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ChocoboTaxi( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ChocoboTaxiStand
{
- std::string placeName;
+ std::string placeName;
- ChocoboTaxiStand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ChocoboTaxiStand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ClassJob
{
- std::string name;
- std::string abbreviation;
- uint8_t classJobCategory;
- int8_t expArrayIndex;
- uint16_t modifierHitPoints;
- uint16_t modifierManaPoints;
- uint16_t modifierStrength;
- uint16_t modifierVitality;
- uint16_t modifierDexterity;
- uint16_t modifierIntelligence;
- uint16_t modifierMind;
- uint16_t modifierPiety;
- uint8_t classJobParent;
- std::string nameEnglish;
- int32_t itemStartingWeapon;
- uint16_t limitBreak1;
- uint16_t limitBreak2;
- uint16_t limitBreak3;
- uint32_t itemSoulCrystal;
- uint32_t unlockQuest;
- uint32_t relicQuest;
- uint32_t prerequisite;
- uint8_t startingLevel;
+ std::string name;
+ std::string abbreviation;
+ uint8_t classJobCategory;
+ int8_t expArrayIndex;
+ uint16_t modifierHitPoints;
+ uint16_t modifierManaPoints;
+ uint16_t modifierStrength;
+ uint16_t modifierVitality;
+ uint16_t modifierDexterity;
+ uint16_t modifierIntelligence;
+ uint16_t modifierMind;
+ uint16_t modifierPiety;
+ uint8_t classJobParent;
+ std::string nameEnglish;
+ int32_t itemStartingWeapon;
+ uint16_t limitBreak1;
+ uint16_t limitBreak2;
+ uint16_t limitBreak3;
+ uint32_t itemSoulCrystal;
+ uint32_t unlockQuest;
+ uint32_t relicQuest;
+ uint32_t prerequisite;
+ uint8_t startingLevel;
- ClassJob( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ClassJob( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ClassJobCategory
{
- std::string name;
- bool aDV;
- bool gLA;
- bool pGL;
- bool mRD;
- bool lNC;
- bool aRC;
- bool cNJ;
- bool tHM;
- bool cRP;
- bool bSM;
- bool aRM;
- bool gSM;
- bool lTW;
- bool wVR;
- bool aLC;
- bool cUL;
- bool mIN;
- bool bTN;
- bool fSH;
- bool pLD;
- bool mNK;
- bool wAR;
- bool dRG;
- bool bRD;
- bool wHM;
- bool bLM;
- bool aCN;
- bool sMN;
- bool sCH;
- bool rOG;
- bool nIN;
- bool mCH;
- bool dRK;
- bool aST;
- bool sAM;
- bool rDM;
+ std::string name;
+ bool aDV;
+ bool gLA;
+ bool pGL;
+ bool mRD;
+ bool lNC;
+ bool aRC;
+ bool cNJ;
+ bool tHM;
+ bool cRP;
+ bool bSM;
+ bool aRM;
+ bool gSM;
+ bool lTW;
+ bool wVR;
+ bool aLC;
+ bool cUL;
+ bool mIN;
+ bool bTN;
+ bool fSH;
+ bool pLD;
+ bool mNK;
+ bool wAR;
+ bool dRG;
+ bool bRD;
+ bool wHM;
+ bool bLM;
+ bool aCN;
+ bool sMN;
+ bool sCH;
+ bool rOG;
+ bool nIN;
+ bool mCH;
+ bool dRK;
+ bool aST;
+ bool sAM;
+ bool rDM;
- ClassJobCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ClassJobCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Companion
{
- std::string singular;
- std::string plural;
- uint8_t behavior;
- uint16_t icon;
- uint8_t cost;
- uint16_t hP;
- uint16_t skillAngle;
- uint8_t skillCost;
- uint8_t minionRace;
+ std::string singular;
+ std::string plural;
+ uint8_t behavior;
+ uint16_t icon;
+ uint8_t cost;
+ uint16_t hP;
+ uint16_t skillAngle;
+ uint8_t skillCost;
+ uint8_t minionRace;
- Companion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Companion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompanionMove
{
- std::string name;
+ std::string name;
- CompanionMove( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompanionMove( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompanionTransient
{
- std::string description;
- std::string descriptionEnhanced;
- std::string tooltip;
- std::string specialActionName;
- std::string specialActionDescription;
- uint8_t attack;
- uint8_t defense;
- uint8_t speed;
- bool hasAreaAttack;
- bool strengthGate;
- bool strengthEye;
- bool strengthShield;
- bool strengthArcana;
- uint8_t minionSkillType;
+ std::string description;
+ std::string descriptionEnhanced;
+ std::string tooltip;
+ std::string specialActionName;
+ std::string specialActionDescription;
+ uint8_t attack;
+ uint8_t defense;
+ uint8_t speed;
+ bool hasAreaAttack;
+ bool strengthGate;
+ bool strengthEye;
+ bool strengthShield;
+ bool strengthArcana;
+ uint8_t minionSkillType;
- CompanionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompanionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompanyAction
{
- std::string name;
- std::string description;
- int32_t icon;
- uint8_t fCRank;
- uint32_t cost;
- uint8_t order;
- bool purchasable;
+ std::string name;
+ std::string description;
+ int32_t icon;
+ uint8_t fCRank;
+ uint32_t cost;
+ uint8_t order;
+ bool purchasable;
- CompanyAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompanyAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompanyCraftDraft
{
- std::string name;
- uint8_t companyCraftDraftCategory;
- uint32_t order;
+ std::string name;
+ uint8_t companyCraftDraftCategory;
+ uint32_t order;
- CompanyCraftDraft( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompanyCraftDraft( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompanyCraftDraftCategory
{
- std::string name;
+ std::string name;
- CompanyCraftDraftCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompanyCraftDraftCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompanyCraftManufactoryState
{
- std::string name;
+ std::string name;
- CompanyCraftManufactoryState( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompanyCraftManufactoryState( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompanyCraftPart
{
- uint8_t companyCraftType;
- std::vector< uint16_t > companyCraftProcess;
+ uint8_t companyCraftType;
+ std::vector< uint16_t > companyCraftProcess;
- CompanyCraftPart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompanyCraftPart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompanyCraftProcess
{
- CompanyCraftProcess( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompanyCraftProcess( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompanyCraftSequence
{
- int32_t resultItem;
- int32_t companyCraftDraftCategory;
- int32_t companyCraftType;
- int32_t companyCraftDraft;
- std::vector< uint16_t > companyCraftPart;
+ int32_t resultItem;
+ int32_t companyCraftDraftCategory;
+ int32_t companyCraftType;
+ int32_t companyCraftDraft;
+ std::vector< uint16_t > companyCraftPart;
- CompanyCraftSequence( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompanyCraftSequence( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompanyCraftSupplyItem
{
- uint32_t item;
+ uint32_t item;
- CompanyCraftSupplyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompanyCraftSupplyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompanyCraftType
{
- std::string name;
+ std::string name;
- CompanyCraftType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompanyCraftType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompleteJournal
{
- std::string name;
- std::vector< int32_t > cutscene;
+ std::string name;
+ std::vector< int32_t > cutscene;
- CompleteJournal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompleteJournal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CompleteJournalCategory
{
- uint32_t firstQuest;
- uint32_t lastQuest;
+ uint32_t firstQuest;
+ uint32_t lastQuest;
- CompleteJournalCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CompleteJournalCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ContentExAction
{
- uint32_t name;
- uint8_t charges;
+ uint32_t name;
+ uint8_t charges;
- ContentExAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ContentExAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ContentFinderCondition
{
- uint16_t instanceContent;
- uint8_t contentMemberType;
- uint8_t classJobLevelRequired;
- uint8_t classJobLevelSync;
- uint16_t itemLevelRequired;
- uint16_t itemLevelSync;
- uint8_t contentIndicator;
- uint8_t contentType;
- uint32_t icon;
+ uint16_t instanceContent;
+ uint8_t contentMemberType;
+ uint8_t classJobLevelRequired;
+ uint8_t classJobLevelSync;
+ uint16_t itemLevelRequired;
+ uint16_t itemLevelSync;
+ uint8_t contentIndicator;
+ uint8_t contentType;
+ uint32_t icon;
- ContentFinderCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ContentFinderCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ContentFinderConditionTransient
{
- std::string description;
+ std::string description;
- ContentFinderConditionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ContentFinderConditionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ContentMemberType
{
- uint8_t tanksPerParty;
- uint8_t healersPerParty;
- uint8_t meleesPerParty;
- uint8_t rangedPerParty;
+ uint8_t tanksPerParty;
+ uint8_t healersPerParty;
+ uint8_t meleesPerParty;
+ uint8_t rangedPerParty;
- ContentMemberType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ContentMemberType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ContentNpcTalk
{
- std::vector< uint32_t > contentTalk;
+ std::vector< uint32_t > contentTalk;
- ContentNpcTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ContentNpcTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ContentRoulette
{
- std::string name;
- std::string description;
- std::string dutyType;
- bool isInDutyFinder;
- uint16_t itemLevelRequired;
- uint32_t icon;
- uint16_t rewardTomeA;
- uint16_t rewardTomeB;
- uint16_t rewardTomeC;
- uint8_t sortKey;
- uint8_t contentMemberType;
- bool requireAllDuties;
+ std::string name;
+ std::string description;
+ std::string dutyType;
+ bool isInDutyFinder;
+ uint16_t itemLevelRequired;
+ uint32_t icon;
+ uint16_t rewardTomeA;
+ uint16_t rewardTomeB;
+ uint16_t rewardTomeC;
+ uint8_t sortKey;
+ uint8_t contentMemberType;
+ bool requireAllDuties;
- ContentRoulette( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ContentRoulette( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ContentsNote
{
- uint8_t contentType;
- int32_t requiredAmount;
+ uint8_t contentType;
+ int32_t requiredAmount;
- ContentsNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ContentsNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ContentsNoteCategory
{
- uint8_t type;
+ uint8_t type;
- ContentsNoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ContentsNoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ContentTalk
{
- uint8_t contentTalkParam;
- std::string text;
+ uint8_t contentTalkParam;
+ std::string text;
- ContentTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ContentTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ContentTalkParam
{
- bool param;
- uint32_t testAction;
+ bool param;
+ uint32_t testAction;
- ContentTalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ContentTalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ContentType
{
- std::string name;
- uint32_t icon;
- uint32_t iconDutyFinder;
+ std::string name;
+ uint32_t icon;
+ uint32_t iconDutyFinder;
- ContentType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ContentType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CraftAction
{
- std::string name;
- std::string description;
- uint16_t animationStart;
- uint16_t animationEnd;
- uint16_t icon;
- int8_t classJob;
- uint8_t classJobCategory;
- uint8_t classJobLevel;
- uint32_t questRequirement;
- bool specialist;
- uint8_t cost;
- int32_t cRP;
- int32_t bSM;
- int32_t aRM;
- int32_t gSM;
- int32_t lTW;
- int32_t wVR;
- int32_t aLC;
- int32_t cUL;
+ std::string name;
+ std::string description;
+ uint16_t animationStart;
+ uint16_t animationEnd;
+ uint16_t icon;
+ int8_t classJob;
+ uint8_t classJobCategory;
+ uint8_t classJobLevel;
+ uint32_t questRequirement;
+ bool specialist;
+ uint8_t cost;
+ int32_t cRP;
+ int32_t bSM;
+ int32_t aRM;
+ int32_t gSM;
+ int32_t lTW;
+ int32_t wVR;
+ int32_t aLC;
+ int32_t cUL;
- CraftAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CraftAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CraftLeve
{
- int32_t leve;
- uint8_t repeats;
+ int32_t leve;
+ uint8_t repeats;
- CraftLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CraftLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CraftType
{
- std::string name;
+ std::string name;
- CraftType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CraftType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Currency
{
- uint32_t item;
- uint32_t limit;
+ uint32_t item;
+ uint32_t limit;
- Currency( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Currency( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CustomTalk
{
- uint32_t iconActor;
- uint32_t iconMap;
- std::string name;
- std::vector< std::string > scriptInstruction;
- std::vector< uint32_t > scriptArg;
- bool text;
+ uint32_t iconActor;
+ uint32_t iconMap;
+ std::string name;
+ std::vector< std::string > scriptInstruction;
+ std::vector< uint32_t > scriptArg;
+ bool text;
- CustomTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CustomTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Cutscene
{
- std::string path;
+ std::string path;
- Cutscene( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Cutscene( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct CutScreenImage
{
- int32_t image;
+ int32_t image;
- CutScreenImage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ CutScreenImage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DailySupplyItem
{
- DailySupplyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DailySupplyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DeepDungeonBan
{
- uint16_t screenImage;
- uint16_t logMessage;
- uint16_t name;
+ uint16_t screenImage;
+ uint16_t logMessage;
+ uint16_t name;
- DeepDungeonBan( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DeepDungeonBan( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DeepDungeonDanger
{
- uint16_t screenImage;
- uint16_t logMessage;
- uint16_t name;
+ uint16_t screenImage;
+ uint16_t logMessage;
+ uint16_t name;
- DeepDungeonDanger( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DeepDungeonDanger( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DeepDungeonEquipment
{
- uint32_t icon;
- std::string singular;
- std::string plural;
- std::string name;
- std::string description;
+ uint32_t icon;
+ std::string singular;
+ std::string plural;
+ std::string name;
+ std::string description;
- DeepDungeonEquipment( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DeepDungeonEquipment( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DeepDungeonFloorEffectUI
{
- uint32_t icon;
- std::string name;
- std::string description;
+ uint32_t icon;
+ std::string name;
+ std::string description;
- DeepDungeonFloorEffectUI( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DeepDungeonFloorEffectUI( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DeepDungeonItem
{
- uint32_t icon;
- std::string singular;
- std::string plural;
- std::string name;
- std::string tooltip;
- uint32_t action;
+ uint32_t icon;
+ std::string singular;
+ std::string plural;
+ std::string name;
+ std::string tooltip;
+ uint32_t action;
- DeepDungeonItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DeepDungeonItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DeepDungeonStatus
{
- uint16_t screenImage;
- uint16_t logMessage;
- uint16_t name;
+ uint16_t screenImage;
+ uint16_t logMessage;
+ uint16_t name;
- DeepDungeonStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DeepDungeonStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DefaultTalk
{
- std::vector< uint16_t > actionTimelinePose;
- std::vector< std::string > text;
+ std::vector< uint16_t > actionTimelinePose;
+ std::vector< std::string > text;
- DefaultTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DefaultTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DeliveryQuest
{
- int32_t quest;
+ int32_t quest;
- DeliveryQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DeliveryQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DisposalShop
{
- std::string shopName;
+ std::string shopName;
- DisposalShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DisposalShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DisposalShopFilterType
{
- std::string category;
+ std::string category;
- DisposalShopFilterType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DisposalShopFilterType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DisposalShopItem
{
- int32_t itemDisposed;
- int32_t itemReceived;
- uint32_t quantityReceived;
+ int32_t itemDisposed;
+ int32_t itemReceived;
+ uint32_t quantityReceived;
- DisposalShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DisposalShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DpsChallenge
{
- uint16_t playerLevel;
- uint16_t placeName;
- uint32_t icon;
- uint16_t order;
- std::string name;
- std::string description;
+ uint16_t playerLevel;
+ uint16_t placeName;
+ uint32_t icon;
+ uint16_t order;
+ std::string name;
+ std::string description;
- DpsChallenge( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DpsChallenge( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DpsChallengeOfficer
{
- uint32_t unlockQuest;
- std::vector< uint16_t > challengeName;
+ uint32_t unlockQuest;
+ std::vector< uint16_t > challengeName;
- DpsChallengeOfficer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DpsChallengeOfficer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct DpsChallengeTransient
{
- uint16_t instanceContent;
+ uint16_t instanceContent;
- DpsChallengeTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ DpsChallengeTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Emote
{
- std::string name;
- uint8_t emoteCategory;
- int32_t textCommand;
- uint16_t icon;
- uint16_t logMessageTargeted;
- uint16_t logMessageUntargeted;
- uint8_t emoteMode;
- bool hasCancelEmote;
- bool drawsWeapon;
+ std::string name;
+ uint8_t emoteCategory;
+ int32_t textCommand;
+ uint16_t icon;
+ uint16_t logMessageTargeted;
+ uint16_t logMessageUntargeted;
+ uint8_t emoteMode;
+ bool hasCancelEmote;
+ bool drawsWeapon;
- Emote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Emote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EmoteCategory
{
- std::string name;
+ std::string name;
- EmoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EmoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EmoteMode
{
- std::string name;
- uint8_t emoteCategory;
- int32_t textCommand;
- uint16_t icon;
- uint16_t logMessageTargeted;
- uint16_t logMessageUntargeted;
+ std::string name;
+ uint8_t emoteCategory;
+ int32_t textCommand;
+ uint16_t icon;
+ uint16_t logMessageTargeted;
+ uint16_t logMessageUntargeted;
- EmoteMode( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EmoteMode( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ENpcBase
{
- std::vector< uint32_t > eNpcData;
- uint8_t race;
- uint8_t gender;
- uint8_t bodyType;
- uint8_t height;
- uint8_t tribe;
- uint8_t face;
- uint8_t hairStyle;
- uint8_t hairHighlight;
- uint8_t skinColor;
- uint8_t eyeHeterochromia;
- uint8_t hairColor;
- uint8_t hairHighlightColor;
- uint8_t facialFeature;
- uint8_t facialFeatureColor;
- uint8_t eyebrows;
- uint8_t eyeColor;
- uint8_t eyeShape;
- uint8_t nose;
- uint8_t jaw;
- uint8_t mouth;
- uint8_t lipColor;
- uint8_t bustOrTone1;
- uint8_t extraFeature1;
- uint8_t extraFeature2OrBust;
- uint8_t facePaint;
- uint8_t facePaintColor;
- uint16_t npcEquip;
- uint16_t behavior;
- uint64_t modelMainHand;
- uint8_t dyeMainHand;
- uint64_t modelOffHand;
- uint8_t dyeOffHand;
- uint32_t modelHead;
- uint8_t dyeHead;
- bool visor;
- uint32_t modelBody;
- uint8_t dyeBody;
- uint32_t modelHands;
- uint8_t dyeHands;
- uint32_t modelLegs;
- uint8_t dyeLegs;
- uint32_t modelFeet;
- uint8_t dyeFeet;
- uint32_t modelEars;
- uint8_t dyeEars;
- uint32_t modelNeck;
- uint8_t dyeNeck;
- uint32_t modelWrists;
- uint8_t dyeWrists;
- uint32_t modelLeftRing;
- uint8_t dyeLeftRing;
- uint32_t modelRightRing;
- uint8_t dyeRightRing;
- uint16_t balloon;
+ std::vector< uint32_t > eNpcData;
+ uint8_t race;
+ uint8_t gender;
+ uint8_t bodyType;
+ uint8_t height;
+ uint8_t tribe;
+ uint8_t face;
+ uint8_t hairStyle;
+ uint8_t hairHighlight;
+ uint8_t skinColor;
+ uint8_t eyeHeterochromia;
+ uint8_t hairColor;
+ uint8_t hairHighlightColor;
+ uint8_t facialFeature;
+ uint8_t facialFeatureColor;
+ uint8_t eyebrows;
+ uint8_t eyeColor;
+ uint8_t eyeShape;
+ uint8_t nose;
+ uint8_t jaw;
+ uint8_t mouth;
+ uint8_t lipColor;
+ uint8_t bustOrTone1;
+ uint8_t extraFeature1;
+ uint8_t extraFeature2OrBust;
+ uint8_t facePaint;
+ uint8_t facePaintColor;
+ uint16_t npcEquip;
+ uint16_t behavior;
+ uint64_t modelMainHand;
+ uint8_t dyeMainHand;
+ uint64_t modelOffHand;
+ uint8_t dyeOffHand;
+ uint32_t modelHead;
+ uint8_t dyeHead;
+ bool visor;
+ uint32_t modelBody;
+ uint8_t dyeBody;
+ uint32_t modelHands;
+ uint8_t dyeHands;
+ uint32_t modelLegs;
+ uint8_t dyeLegs;
+ uint32_t modelFeet;
+ uint8_t dyeFeet;
+ uint32_t modelEars;
+ uint8_t dyeEars;
+ uint32_t modelNeck;
+ uint8_t dyeNeck;
+ uint32_t modelWrists;
+ uint8_t dyeWrists;
+ uint32_t modelLeftRing;
+ uint8_t dyeLeftRing;
+ uint32_t modelRightRing;
+ uint8_t dyeRightRing;
+ uint16_t balloon;
- ENpcBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ENpcBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ENpcResident
{
- std::string singular;
- std::string plural;
- std::string title;
- uint8_t map;
+ std::string singular;
+ std::string plural;
+ std::string title;
+ uint8_t map;
- ENpcResident( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ENpcResident( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EObj
{
- uint32_t data;
+ uint32_t data;
- EObj( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EObj( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EObjName
{
- std::string singular;
+ std::string singular;
- EObjName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EObjName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EquipRaceCategory
{
- bool hyur;
- bool elezen;
- bool lalafell;
- bool miqote;
- bool roegadyn;
- bool auRa;
- bool male;
- bool female;
+ bool hyur;
+ bool elezen;
+ bool lalafell;
+ bool miqote;
+ bool roegadyn;
+ bool auRa;
+ bool male;
+ bool female;
- EquipRaceCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EquipRaceCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EquipSlotCategory
{
- int8_t mainHand;
- int8_t offHand;
- int8_t head;
- int8_t body;
- int8_t gloves;
- int8_t waist;
- int8_t legs;
- int8_t feet;
- int8_t ears;
- int8_t neck;
- int8_t wrists;
- int8_t fingerL;
- int8_t fingerR;
- int8_t soulCrystal;
+ int8_t mainHand;
+ int8_t offHand;
+ int8_t head;
+ int8_t body;
+ int8_t gloves;
+ int8_t waist;
+ int8_t legs;
+ int8_t feet;
+ int8_t ears;
+ int8_t neck;
+ int8_t wrists;
+ int8_t fingerL;
+ int8_t fingerR;
+ int8_t soulCrystal;
- EquipSlotCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EquipSlotCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EurekaAethernet
{
- uint16_t location;
+ uint16_t location;
- EurekaAethernet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EurekaAethernet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EurekaGrowData
{
- uint16_t baseResistance;
+ uint16_t baseResistance;
- EurekaGrowData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EurekaGrowData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EurekaSphereElementAdjust
{
- uint16_t powerModifier;
+ uint16_t powerModifier;
- EurekaSphereElementAdjust( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EurekaSphereElementAdjust( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EventAction
{
- std::string name;
- uint16_t icon;
- uint8_t castTime;
+ std::string name;
+ uint16_t icon;
+ uint8_t castTime;
- EventAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EventAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EventIconPriority
{
- std::vector< uint32_t > icon;
+ std::vector< uint32_t > icon;
- EventIconPriority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EventIconPriority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EventIconType
{
- uint32_t npcIconAvailable;
- uint32_t mapIconAvailable;
- uint32_t npcIconInvalid;
- uint32_t mapIconInvalid;
- uint8_t iconRange;
+ uint32_t npcIconAvailable;
+ uint32_t mapIconAvailable;
+ uint32_t npcIconInvalid;
+ uint32_t mapIconInvalid;
+ uint8_t iconRange;
- EventIconType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EventIconType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EventItem
{
- std::string singular;
- std::string plural;
- int8_t rarity;
- std::string name;
- uint16_t icon;
- uint8_t stackSize;
- uint32_t quest;
- uint8_t castTime;
+ std::string singular;
+ std::string plural;
+ int8_t rarity;
+ std::string name;
+ uint16_t icon;
+ uint8_t stackSize;
+ uint32_t quest;
+ uint8_t castTime;
- EventItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EventItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct EventItemHelp
{
- std::string description;
+ std::string description;
- EventItemHelp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ EventItemHelp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ExVersion
{
- std::string name;
+ std::string name;
- ExVersion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ExVersion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Fate
{
- uint8_t eurekaFate;
- uint32_t location;
- uint8_t classJobLevel;
- uint8_t classJobLevelMax;
- uint32_t eventItem;
- uint32_t iconObjective;
- uint32_t iconMap;
- int32_t music;
- std::string name;
- std::string description;
- std::string objective;
- std::vector< std::string > statusText;
- uint32_t arrayIndex;
+ uint8_t eurekaFate;
+ uint32_t location;
+ uint8_t classJobLevel;
+ uint8_t classJobLevelMax;
+ uint32_t eventItem;
+ uint32_t iconObjective;
+ uint32_t iconMap;
+ int32_t music;
+ std::string name;
+ std::string description;
+ std::string objective;
+ std::vector< std::string > statusText;
+ uint32_t arrayIndex;
- Fate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Fate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FCActivity
{
- std::string text;
- uint8_t fCActivityCategory;
+ std::string text;
+ uint8_t fCActivityCategory;
- FCActivity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FCActivity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FCActivityCategory
{
- std::string name;
+ std::string name;
- FCActivityCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FCActivityCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FCAuthority
{
- std::string name;
- int32_t fCAuthorityCategory;
+ std::string name;
+ int32_t fCAuthorityCategory;
- FCAuthority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FCAuthority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FCAuthorityCategory
{
- std::string name;
+ std::string name;
- FCAuthorityCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FCAuthorityCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FCChestName
{
- std::string name;
+ std::string name;
- FCChestName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FCChestName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FccShop
{
- std::string name;
+ std::string name;
- FccShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FccShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FCHierarchy
{
- std::string name;
+ std::string name;
- FCHierarchy( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FCHierarchy( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FCProfile
{
- std::string name;
+ std::string name;
- FCProfile( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FCProfile( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FCReputation
{
- uint32_t pointsToNext;
- uint32_t requiredPoints;
- std::string name;
+ uint32_t pointsToNext;
+ uint32_t requiredPoints;
+ std::string name;
- FCReputation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FCReputation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FCRights
{
- std::string name;
- std::string description;
- uint16_t icon;
- uint8_t fCRank;
+ std::string name;
+ std::string description;
+ uint16_t icon;
+ uint8_t fCRank;
- FCRights( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FCRights( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FieldMarker
{
- int32_t vFX;
- uint16_t icon;
+ int32_t vFX;
+ uint16_t icon;
- FieldMarker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FieldMarker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FishingSpot
{
- uint8_t gatheringLevel;
- std::string bigFishOnReach;
- std::string bigFishOnEnd;
- uint8_t fishingSpotCategory;
- uint16_t territoryType;
- int16_t x;
- int16_t z;
- uint16_t radius;
- std::vector< int32_t > item;
- uint16_t placeName;
+ uint8_t gatheringLevel;
+ std::string bigFishOnReach;
+ std::string bigFishOnEnd;
+ uint8_t fishingSpotCategory;
+ uint16_t territoryType;
+ int16_t x;
+ int16_t z;
+ uint16_t radius;
+ std::vector< int32_t > item;
+ uint16_t placeName;
- FishingSpot( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FishingSpot( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct FishParameter
{
- std::string text;
- int32_t item;
- uint16_t gatheringItemLevel;
- int32_t territoryType;
- bool isFish;
- uint16_t gatheringSubCategory;
+ std::string text;
+ int32_t item;
+ uint16_t gatheringItemLevel;
+ int32_t territoryType;
+ bool isFish;
+ uint16_t gatheringSubCategory;
- FishParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ FishParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GardeningSeed
{
- uint32_t item;
- uint32_t icon;
+ uint32_t item;
+ uint32_t icon;
- GardeningSeed( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GardeningSeed( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringCondition
{
- std::string text;
+ std::string text;
- GatheringCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringExp
{
- uint16_t exp;
+ uint16_t exp;
- GatheringExp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringExp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringItem
{
- int32_t item;
- uint16_t gatheringItemLevel;
- bool isHidden;
+ int32_t item;
+ uint16_t gatheringItemLevel;
+ bool isHidden;
- GatheringItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringItemLevelConvertTable
{
- uint8_t gatheringItemLevel;
- uint8_t stars;
+ uint8_t gatheringItemLevel;
+ uint8_t stars;
- GatheringItemLevelConvertTable( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringItemLevelConvertTable( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringItemPoint
{
- uint32_t gatheringPoint;
+ uint32_t gatheringPoint;
- GatheringItemPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringItemPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringNotebookList
{
- std::vector< int32_t > gatheringItem;
+ std::vector< int32_t > gatheringItem;
- GatheringNotebookList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringNotebookList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringPoint
{
- int32_t gatheringPointBase;
- std::vector< uint16_t > gatheringPointBonus;
- uint16_t territoryType;
- uint16_t placeName;
- uint16_t gatheringSubCategory;
+ int32_t gatheringPointBase;
+ std::vector< uint16_t > gatheringPointBonus;
+ uint16_t territoryType;
+ uint16_t placeName;
+ uint16_t gatheringSubCategory;
- GatheringPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringPointBase
{
- int32_t gatheringType;
- uint8_t gatheringLevel;
- std::vector< int32_t > item;
- bool isLimited;
+ int32_t gatheringType;
+ uint8_t gatheringLevel;
+ std::vector< int32_t > item;
+ bool isLimited;
- GatheringPointBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringPointBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringPointBonus
{
- uint8_t condition;
- uint16_t conditionValue;
- uint8_t bonusType;
- uint16_t bonusValue;
+ uint8_t condition;
+ uint16_t conditionValue;
+ uint8_t bonusType;
+ uint16_t bonusValue;
- GatheringPointBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringPointBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringPointBonusType
{
- std::string text;
+ std::string text;
- GatheringPointBonusType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringPointBonusType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringPointName
{
- std::string singular;
- std::string plural;
+ std::string singular;
+ std::string plural;
- GatheringPointName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringPointName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringSubCategory
{
- int32_t item;
- std::string folkloreBook;
+ int32_t item;
+ std::string folkloreBook;
- GatheringSubCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringSubCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GatheringType
{
- std::string name;
- int32_t iconMain;
- int32_t iconOff;
+ std::string name;
+ int32_t iconMain;
+ int32_t iconOff;
- GatheringType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GatheringType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GcArmyExpedition
{
- uint8_t requiredFlag;
- uint8_t unlockFlag;
- uint8_t requiredLevel;
- uint16_t requiredSeals;
- uint32_t rewardExperience;
- uint8_t percentBase;
- uint8_t gcArmyExpeditionType;
- std::string name;
- std::string description;
+ uint8_t requiredFlag;
+ uint8_t unlockFlag;
+ uint8_t requiredLevel;
+ uint16_t requiredSeals;
+ uint32_t rewardExperience;
+ uint8_t percentBase;
+ uint8_t gcArmyExpeditionType;
+ std::string name;
+ std::string description;
- GcArmyExpedition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GcArmyExpedition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GcArmyExpeditionMemberBonus
{
- uint8_t race;
- uint8_t classJob;
+ uint8_t race;
+ uint8_t classJob;
- GcArmyExpeditionMemberBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GcArmyExpeditionMemberBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GcArmyExpeditionType
{
- std::string name;
+ std::string name;
- GcArmyExpeditionType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GcArmyExpeditionType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GcArmyMemberGrow
{
- uint8_t classJob;
- int32_t classBook;
+ uint8_t classJob;
+ int32_t classBook;
- GcArmyMemberGrow( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GcArmyMemberGrow( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GcArmyTraining
{
- int8_t physicalBonus;
- int8_t mentalBonus;
- int8_t tacticalBonus;
- uint32_t experience;
- std::string name;
- std::string description;
+ int8_t physicalBonus;
+ int8_t mentalBonus;
+ int8_t tacticalBonus;
+ uint32_t experience;
+ std::string name;
+ std::string description;
- GcArmyTraining( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GcArmyTraining( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GCRankGridaniaFemaleText
{
- std::string name;
- std::string plural;
- std::string nameRank;
+ std::string name;
+ std::string plural;
+ std::string nameRank;
- GCRankGridaniaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GCRankGridaniaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GCRankGridaniaMaleText
{
- std::string name;
- std::string plural;
- std::string nameRank;
+ std::string name;
+ std::string plural;
+ std::string nameRank;
- GCRankGridaniaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GCRankGridaniaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GCRankLimsaFemaleText
{
- std::string name;
- std::string plural;
- std::string nameRank;
+ std::string name;
+ std::string plural;
+ std::string nameRank;
- GCRankLimsaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GCRankLimsaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GCRankLimsaMaleText
{
- std::string name;
- std::string plural;
- std::string nameRank;
+ std::string name;
+ std::string plural;
+ std::string nameRank;
- GCRankLimsaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GCRankLimsaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GCRankUldahFemaleText
{
- std::string name;
- std::string plural;
- std::string nameRank;
+ std::string name;
+ std::string plural;
+ std::string nameRank;
- GCRankUldahFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GCRankUldahFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GCRankUldahMaleText
{
- std::string name;
- std::string plural;
- std::string nameRank;
+ std::string name;
+ std::string plural;
+ std::string nameRank;
- GCRankUldahMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GCRankUldahMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GCScripShopCategory
{
- int8_t grandCompany;
- int8_t tier;
- int8_t subCategory;
+ int8_t grandCompany;
+ int8_t tier;
+ int8_t subCategory;
- GCScripShopCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GCScripShopCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GCScripShopItem
{
- int32_t item;
- int32_t requiredGrandCompanyRank;
- uint32_t costGCSeals;
- uint8_t sortKey;
+ int32_t item;
+ int32_t requiredGrandCompanyRank;
+ uint32_t costGCSeals;
+ uint8_t sortKey;
- GCScripShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GCScripShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GCShop
{
- int8_t grandCompany;
+ int8_t grandCompany;
- GCShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GCShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GCShopItemCategory
{
- std::string name;
+ std::string name;
- GCShopItemCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GCShopItemCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GCSupplyDuty
{
- GCSupplyDuty( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GCSupplyDuty( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GCSupplyDutyReward
{
- uint32_t experienceSupply;
- uint32_t experienceProvisioning;
- uint32_t sealsExpertDelivery;
- uint32_t sealsSupply;
- uint32_t sealsProvisioning;
+ uint32_t experienceSupply;
+ uint32_t experienceProvisioning;
+ uint32_t sealsExpertDelivery;
+ uint32_t sealsSupply;
+ uint32_t sealsProvisioning;
- GCSupplyDutyReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GCSupplyDutyReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GeneralAction
{
- std::string name;
- std::string description;
- uint16_t action;
- int32_t icon;
+ std::string name;
+ std::string description;
+ uint16_t action;
+ int32_t icon;
- GeneralAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GeneralAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GilShop
{
- std::string name;
+ std::string name;
- GilShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GilShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GilShopItem
{
- int32_t item;
- std::vector< int32_t > rowRequired;
- uint16_t stateRequired;
- uint16_t patch;
+ int32_t item;
+ std::vector< int32_t > rowRequired;
+ uint16_t stateRequired;
+ uint16_t patch;
- GilShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GilShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GoldSaucerTextData
{
- std::string text;
+ std::string text;
- GoldSaucerTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GoldSaucerTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GrandCompany
{
- std::string name;
+ std::string name;
- GrandCompany( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GrandCompany( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GrandCompanyRank
{
- uint8_t tier;
- uint8_t order;
- uint32_t maxSeals;
- uint32_t requiredSeals;
- int32_t iconMaelstrom;
- int32_t iconSerpents;
- int32_t iconFlames;
- int32_t questMaelstrom;
- int32_t questSerpents;
- int32_t questFlames;
+ uint8_t tier;
+ uint8_t order;
+ uint32_t maxSeals;
+ uint32_t requiredSeals;
+ int32_t iconMaelstrom;
+ int32_t iconSerpents;
+ int32_t iconFlames;
+ int32_t questMaelstrom;
+ int32_t questSerpents;
+ int32_t questFlames;
- GrandCompanyRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GrandCompanyRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GuardianDeity
{
- std::string name;
- std::string description;
- uint16_t icon;
+ std::string name;
+ std::string description;
+ uint16_t icon;
- GuardianDeity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GuardianDeity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GuildleveAssignment
{
- std::vector< uint32_t > quest;
+ std::vector< uint32_t > quest;
- GuildleveAssignment( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GuildleveAssignment( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GuildOrderGuide
{
- GuildOrderGuide( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GuildOrderGuide( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct GuildOrderOfficer
{
- GuildOrderOfficer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ GuildOrderOfficer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct HouseRetainerPose
{
- uint16_t actionTimeline;
+ uint16_t actionTimeline;
- HouseRetainerPose( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ HouseRetainerPose( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct HousingFurniture
{
- uint16_t modelKey;
- uint8_t housingItemCategory;
- uint8_t usageType;
- uint32_t usageParameter;
- uint8_t housingLayoutLimit;
- uint32_t event;
- uint32_t item;
- bool destroyOnRemoval;
+ uint16_t modelKey;
+ uint8_t housingItemCategory;
+ uint8_t usageType;
+ uint32_t usageParameter;
+ uint8_t housingLayoutLimit;
+ uint32_t event;
+ uint32_t item;
+ bool destroyOnRemoval;
- HousingFurniture( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ HousingFurniture( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct HousingYardObject
{
- uint8_t modelKey;
- uint8_t housingItemCategory;
- uint8_t usageType;
- uint32_t usageParameter;
- uint8_t housingLayoutLimit;
- uint32_t event;
- uint32_t item;
- bool destroyOnRemoval;
+ uint8_t modelKey;
+ uint8_t housingItemCategory;
+ uint8_t usageType;
+ uint32_t usageParameter;
+ uint8_t housingLayoutLimit;
+ uint32_t event;
+ uint32_t item;
+ bool destroyOnRemoval;
- HousingYardObject( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ HousingYardObject( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct InstanceContent
{
- uint8_t instanceContentType;
- uint8_t weekRestriction;
- uint16_t timeLimitmin;
- std::string name;
- uint16_t bGM;
- uint32_t territoryType;
- uint32_t instanceContentTextDataBossStart;
- uint32_t instanceContentTextDataBossEnd;
- uint32_t bNpcBaseBoss;
- uint32_t instanceContentTextDataObjectiveStart;
- uint32_t instanceContentTextDataObjectiveEnd;
- uint16_t sortKey;
- uint16_t newPlayerBonusA;
- uint16_t newPlayerBonusB;
- uint16_t finalBossCurrencyA;
- uint16_t finalBossCurrencyB;
- uint16_t finalBossCurrencyC;
- int32_t instanceContentBuff;
- uint8_t partyCondition;
+ uint8_t instanceContentType;
+ uint8_t weekRestriction;
+ uint16_t timeLimitmin;
+ std::string name;
+ uint16_t bGM;
+ uint32_t territoryType;
+ uint32_t instanceContentTextDataBossStart;
+ uint32_t instanceContentTextDataBossEnd;
+ uint32_t bNpcBaseBoss;
+ uint32_t instanceContentTextDataObjectiveStart;
+ uint32_t instanceContentTextDataObjectiveEnd;
+ uint16_t sortKey;
+ uint16_t newPlayerBonusA;
+ uint16_t newPlayerBonusB;
+ uint16_t finalBossCurrencyA;
+ uint16_t finalBossCurrencyB;
+ uint16_t finalBossCurrencyC;
+ int32_t instanceContentBuff;
+ uint8_t partyCondition;
- InstanceContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ InstanceContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct InstanceContentBuff
{
- uint16_t echoStart;
- uint16_t echoDeath;
+ uint16_t echoStart;
+ uint16_t echoDeath;
- InstanceContentBuff( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ InstanceContentBuff( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct InstanceContentTextData
{
- std::string text;
+ std::string text;
- InstanceContentTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ InstanceContentTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Item
{
- std::string singular;
- std::string plural;
- int8_t startsWithVowel;
- std::string description;
- std::string name;
- uint16_t icon;
- uint16_t levelItem;
- uint8_t rarity;
- uint8_t filterGroup;
- uint32_t stain;
- uint8_t itemUICategory;
- uint8_t itemSearchCategory;
- uint8_t equipSlotCategory;
- uint32_t stackSize;
- bool isUnique;
- bool isUntradable;
- bool isIndisposable;
- uint32_t priceMid;
- uint32_t priceLow;
- bool canBeHq;
- bool isDyeable;
- bool isCrestWorthy;
- uint16_t itemAction;
- uint16_t cooldowns;
- uint8_t classJobRepair;
- int32_t itemRepair;
- int32_t itemGlamour;
- uint16_t salvage;
- bool isCollectable;
- uint16_t aetherialReduce;
- uint8_t levelEquip;
- uint8_t equipRestriction;
- uint8_t classJobCategory;
- uint8_t grandCompany;
- uint8_t itemSeries;
- uint8_t baseParamModifier;
- uint64_t modelMain;
- uint64_t modelSub;
- uint8_t classJobUse;
- uint16_t damagePhys;
- uint16_t damageMag;
- uint16_t delayms;
- uint16_t blockRate;
- uint16_t block;
- uint16_t defensePhys;
- uint16_t defenseMag;
- uint8_t itemSpecialBonus;
- uint8_t itemSpecialBonusParam;
- uint8_t materializeType;
- uint8_t materiaSlotCount;
- bool isAdvancedMeldingPermitted;
- bool isPvP;
+ std::string singular;
+ std::string plural;
+ int8_t startsWithVowel;
+ std::string description;
+ std::string name;
+ uint16_t icon;
+ uint16_t levelItem;
+ uint8_t rarity;
+ uint8_t filterGroup;
+ uint32_t stain;
+ uint8_t itemUICategory;
+ uint8_t itemSearchCategory;
+ uint8_t equipSlotCategory;
+ uint32_t stackSize;
+ bool isUnique;
+ bool isUntradable;
+ bool isIndisposable;
+ bool isEquippable;
+ uint32_t priceMid;
+ uint32_t priceLow;
+ bool canBeHq;
+ bool isDyeable;
+ bool isCrestWorthy;
+ uint16_t itemAction;
+ uint16_t cooldowns;
+ uint8_t classJobRepair;
+ int32_t itemRepair;
+ int32_t itemGlamour;
+ uint16_t salvage;
+ bool isCollectable;
+ uint16_t aetherialReduce;
+ uint8_t levelEquip;
+ uint8_t equipRestriction;
+ uint8_t classJobCategory;
+ uint8_t grandCompany;
+ uint8_t itemSeries;
+ uint8_t baseParamModifier;
+ uint64_t modelMain;
+ uint64_t modelSub;
+ uint8_t classJobUse;
+ uint16_t damagePhys;
+ uint16_t damageMag;
+ uint16_t delayms;
+ uint16_t blockRate;
+ uint16_t block;
+ uint16_t defensePhys;
+ uint16_t defenseMag;
+ uint8_t itemSpecialBonus;
+ uint8_t itemSpecialBonusParam;
+ uint8_t materializeType;
+ uint8_t materiaSlotCount;
+ bool isAdvancedMeldingPermitted;
+ bool isPvP;
- Item( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Item( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ItemAction
{
- uint16_t type;
- std::vector< uint16_t > data;
- std::vector< uint16_t > dataHQ;
+ uint16_t type;
+ std::vector< uint16_t > data;
+ std::vector< uint16_t > dataHQ;
- ItemAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ItemAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ItemFood
{
- ItemFood( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ItemFood( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ItemSearchCategory
{
- std::string name;
- int32_t icon;
- uint8_t category;
- uint8_t order;
- int8_t classJob;
+ std::string name;
+ int32_t icon;
+ uint8_t category;
+ uint8_t order;
+ int8_t classJob;
- ItemSearchCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ItemSearchCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ItemSeries
{
- std::string name;
+ std::string name;
- ItemSeries( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ItemSeries( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ItemSpecialBonus
{
- std::string name;
+ std::string name;
- ItemSpecialBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ItemSpecialBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ItemUICategory
{
- std::string name;
- int32_t icon;
- uint8_t orderMinor;
- uint8_t orderMajor;
+ std::string name;
+ int32_t icon;
+ uint8_t orderMinor;
+ uint8_t orderMajor;
- ItemUICategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ItemUICategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct JournalCategory
{
- std::string name;
- uint8_t journalSection;
+ std::string name;
+ uint8_t journalSection;
- JournalCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ JournalCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct JournalGenre
{
- int32_t icon;
- uint8_t journalCategory;
- std::string name;
+ int32_t icon;
+ uint8_t journalCategory;
+ std::string name;
- JournalGenre( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ JournalGenre( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct JournalSection
{
- std::string name;
+ std::string name;
- JournalSection( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ JournalSection( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Leve
{
- std::string name;
- std::string description;
- int32_t leveClient;
- int32_t leveAssignmentType;
- uint16_t classJobLevel;
- uint8_t allowanceCost;
- int32_t placeNameStart;
- int32_t placeNameIssued;
- uint8_t classJobCategory;
- int32_t journalGenre;
- int32_t placeNameStartZone;
- int32_t iconCityState;
- int32_t dataId;
- uint32_t expReward;
- uint32_t gilReward;
- uint16_t leveRewardItem;
- uint8_t leveVfx;
- uint8_t leveVfxFrame;
- uint32_t levelLevemete;
- int32_t iconIssuer;
- uint32_t levelStart;
- uint16_t bGM;
+ std::string name;
+ std::string description;
+ int32_t leveClient;
+ int32_t leveAssignmentType;
+ uint16_t classJobLevel;
+ uint8_t allowanceCost;
+ int32_t placeNameStart;
+ int32_t placeNameIssued;
+ uint8_t classJobCategory;
+ int32_t journalGenre;
+ int32_t placeNameStartZone;
+ int32_t iconCityState;
+ int32_t dataId;
+ uint32_t expReward;
+ uint32_t gilReward;
+ uint16_t leveRewardItem;
+ uint8_t leveVfx;
+ uint8_t leveVfxFrame;
+ uint32_t levelLevemete;
+ int32_t iconIssuer;
+ uint32_t levelStart;
+ uint16_t bGM;
- Leve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Leve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct LeveAssignmentType
{
- bool isFaction;
- int32_t icon;
- std::string name;
+ bool isFaction;
+ int32_t icon;
+ std::string name;
- LeveAssignmentType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ LeveAssignmentType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct LeveClient
{
- std::string name;
+ std::string name;
- LeveClient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ LeveClient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Level
{
- float x;
- float y;
- float z;
- float yaw;
- float radius;
- uint8_t type;
- uint32_t objectKey;
- uint16_t map;
- uint32_t eventId;
- uint16_t territory;
+ float x;
+ float y;
+ float z;
+ float yaw;
+ float radius;
+ uint8_t type;
+ uint32_t objectKey;
+ uint16_t map;
+ uint32_t eventId;
+ uint16_t territory;
- Level( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Level( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct LeveRewardItem
{
- LeveRewardItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ LeveRewardItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct LeveRewardItemGroup
{
- LeveRewardItemGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ LeveRewardItemGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct LeveVfx
{
- std::string effect;
- int32_t icon;
+ std::string effect;
+ int32_t icon;
- LeveVfx( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ LeveVfx( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct LogFilter
{
- uint16_t logKind;
- std::string name;
- std::string example;
+ uint16_t logKind;
+ std::string name;
+ std::string example;
- LogFilter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ LogFilter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct LogKind
{
- std::string format;
- std::string name;
- std::string example;
- uint8_t logKindCategoryText;
+ std::string format;
+ std::string name;
+ std::string example;
+ uint8_t logKindCategoryText;
- LogKind( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ LogKind( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct LogKindCategoryText
{
- std::string text;
+ std::string text;
- LogKindCategoryText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ LogKindCategoryText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct LogMessage
{
- uint16_t logKind;
- std::string text;
+ uint16_t logKind;
+ std::string text;
- LogMessage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ LogMessage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MacroIcon
{
- int32_t icon;
+ int32_t icon;
- MacroIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MacroIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MacroIconRedirectOld
{
- uint32_t iconOld;
- int32_t iconNew;
+ uint32_t iconOld;
+ int32_t iconNew;
- MacroIconRedirectOld( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MacroIconRedirectOld( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MainCommand
{
- int32_t icon;
- uint8_t mainCommandCategory;
- std::string name;
- std::string description;
+ int32_t icon;
+ uint8_t mainCommandCategory;
+ std::string name;
+ std::string description;
- MainCommand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MainCommand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MainCommandCategory
{
- std::string name;
+ std::string name;
- MainCommandCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MainCommandCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Map
{
- uint8_t hierarchy;
- uint16_t mapMarkerRange;
- std::string id;
- uint16_t sizeFactor;
- int16_t offsetX;
- int16_t offsetY;
- uint16_t placeNameRegion;
- uint16_t placeName;
- uint16_t placeNameSub;
- int16_t discoveryIndex;
- uint16_t territoryType;
- bool discoveryArrayByte;
+ uint8_t hierarchy;
+ uint16_t mapMarkerRange;
+ std::string id;
+ uint16_t sizeFactor;
+ int16_t offsetX;
+ int16_t offsetY;
+ uint16_t placeNameRegion;
+ uint16_t placeName;
+ uint16_t placeNameSub;
+ int16_t discoveryIndex;
+ uint16_t territoryType;
+ bool discoveryArrayByte;
- Map( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Map( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MapMarker
{
- int16_t x;
- int16_t y;
- uint16_t icon;
- uint16_t placeNameSubtext;
- uint8_t subtextOrientation;
- uint8_t mapMarkerRegion;
- uint8_t type;
- uint8_t dataType;
- uint16_t dataKey;
+ int16_t x;
+ int16_t y;
+ uint16_t icon;
+ uint16_t placeNameSubtext;
+ uint8_t subtextOrientation;
+ uint8_t mapMarkerRegion;
+ uint8_t type;
+ uint8_t dataType;
+ uint16_t dataKey;
- MapMarker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MapMarker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MapMarkerRegion
{
- int16_t x;
+ int16_t x;
- MapMarkerRegion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MapMarkerRegion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MapSymbol
{
- int32_t icon;
- int32_t placeName;
+ int32_t icon;
+ int32_t placeName;
- MapSymbol( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MapSymbol( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Marker
{
- int32_t icon;
- std::string name;
+ int32_t icon;
+ std::string name;
- Marker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Marker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MasterpieceSupplyDuty
{
- uint8_t classJob;
- uint8_t classJobLevel;
- uint16_t rewardCurrency;
+ uint8_t classJob;
+ uint8_t classJobLevel;
+ uint16_t rewardCurrency;
- MasterpieceSupplyDuty( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MasterpieceSupplyDuty( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MasterpieceSupplyMultiplier
{
- std::vector< uint16_t > xpMultiplier;
- std::vector< uint16_t > currencyMultiplier;
+ std::vector< uint16_t > xpMultiplier;
+ std::vector< uint16_t > currencyMultiplier;
- MasterpieceSupplyMultiplier( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MasterpieceSupplyMultiplier( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Materia
{
- std::vector< int32_t > item;
- uint8_t baseParam;
- std::vector< uint8_t > value;
+ std::vector< int32_t > item;
+ uint8_t baseParam;
+ std::vector< uint8_t > value;
- Materia( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Materia( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MinionRace
{
- std::string name;
+ std::string name;
- MinionRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MinionRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MinionRules
{
- std::string rule;
- std::string description;
+ std::string rule;
+ std::string description;
- MinionRules( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MinionRules( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MinionSkillType
{
- std::string name;
+ std::string name;
- MinionSkillType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MinionSkillType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MobHuntTarget
{
- uint16_t name;
- uint16_t fATE;
- uint32_t icon;
- uint16_t territoryType;
- uint16_t placeName;
+ uint16_t name;
+ uint16_t fATE;
+ uint32_t icon;
+ uint16_t territoryType;
+ uint16_t placeName;
- MobHuntTarget( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MobHuntTarget( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ModelChara
{
- uint8_t type;
- uint16_t model;
- uint8_t base;
- uint8_t variant;
+ uint8_t type;
+ uint16_t model;
+ uint8_t base;
+ uint8_t variant;
- ModelChara( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ModelChara( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MonsterNote
{
- std::vector< uint16_t > monsterNoteTarget;
- std::vector< uint8_t > count;
- uint32_t reward;
- std::string name;
+ std::vector< uint16_t > monsterNoteTarget;
+ std::vector< uint8_t > count;
+ uint32_t reward;
+ std::string name;
- MonsterNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MonsterNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MonsterNoteTarget
{
- uint16_t bNpcName;
- int32_t icon;
+ uint16_t bNpcName;
+ int32_t icon;
- MonsterNoteTarget( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MonsterNoteTarget( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Mount
{
- std::string singular;
- std::string plural;
- uint8_t flyingCondition;
- uint8_t isFlying;
- uint16_t rideBGM;
- int16_t order;
- uint16_t icon;
+ std::string singular;
+ std::string plural;
+ uint8_t flyingCondition;
+ uint8_t isFlying;
+ uint16_t rideBGM;
+ int16_t order;
+ uint16_t icon;
- Mount( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Mount( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MountAction
{
- std::vector< uint16_t > action;
+ std::vector< uint16_t > action;
- MountAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MountAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MoveTimeline
{
- uint16_t idle;
- uint16_t moveForward;
- uint16_t moveBack;
- uint16_t moveLeft;
- uint16_t moveRight;
- uint16_t moveUp;
- uint16_t moveDown;
- uint16_t moveTurnLeft;
- uint16_t moveTurnRight;
- uint16_t extra;
+ uint16_t idle;
+ uint16_t moveForward;
+ uint16_t moveBack;
+ uint16_t moveLeft;
+ uint16_t moveRight;
+ uint16_t moveUp;
+ uint16_t moveDown;
+ uint16_t moveTurnLeft;
+ uint16_t moveTurnRight;
+ uint16_t extra;
- MoveTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MoveTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct MoveVfx
{
- uint16_t zero;
- uint16_t one;
+ uint16_t zero;
+ uint16_t one;
- MoveVfx( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ MoveVfx( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct NpcEquip
{
- uint64_t modelMainHand;
- uint8_t dyeMainHand;
- uint64_t modelOffHand;
- uint8_t dyeOffHand;
- uint32_t modelHead;
- uint8_t dyeHead;
- bool visor;
- uint32_t modelBody;
- uint8_t dyeBody;
- uint32_t modelHands;
- uint8_t dyeHands;
- uint32_t modelLegs;
- uint8_t dyeLegs;
- uint32_t modelFeet;
- uint8_t dyeFeet;
- uint32_t modelEars;
- uint8_t dyeEars;
- uint32_t modelNeck;
- uint8_t dyeNeck;
- uint32_t modelWrists;
- uint8_t dyeWrists;
- uint32_t modelLeftRing;
- uint8_t dyeLeftRing;
- uint32_t modelRightRing;
- uint8_t dyeRightRing;
+ uint64_t modelMainHand;
+ uint8_t dyeMainHand;
+ uint64_t modelOffHand;
+ uint8_t dyeOffHand;
+ uint32_t modelHead;
+ uint8_t dyeHead;
+ bool visor;
+ uint32_t modelBody;
+ uint8_t dyeBody;
+ uint32_t modelHands;
+ uint8_t dyeHands;
+ uint32_t modelLegs;
+ uint8_t dyeLegs;
+ uint32_t modelFeet;
+ uint8_t dyeFeet;
+ uint32_t modelEars;
+ uint8_t dyeEars;
+ uint32_t modelNeck;
+ uint8_t dyeNeck;
+ uint32_t modelWrists;
+ uint8_t dyeWrists;
+ uint32_t modelLeftRing;
+ uint8_t dyeLeftRing;
+ uint32_t modelRightRing;
+ uint8_t dyeRightRing;
- NpcEquip( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ NpcEquip( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Omen
{
- std::string fileName;
+ std::string fileName;
- Omen( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Omen( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct OnlineStatus
{
- uint8_t priority;
- std::string name;
- uint32_t icon;
+ uint8_t priority;
+ std::string name;
+ uint32_t icon;
- OnlineStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ OnlineStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Opening
{
- std::string name;
+ std::string name;
- Opening( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Opening( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Orchestrion
{
- std::string name;
- std::string description;
+ std::string name;
+ std::string description;
- Orchestrion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Orchestrion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct OrchestrionCategory
{
- std::string name;
+ std::string name;
- OrchestrionCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ OrchestrionCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct OrchestrionPath
{
- std::string file;
+ std::string file;
- OrchestrionPath( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ OrchestrionPath( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct OrchestrionUiparam
{
- uint8_t orchestrionCategory;
- uint16_t order;
+ uint8_t orchestrionCategory;
+ uint16_t order;
- OrchestrionUiparam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ OrchestrionUiparam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ParamGrow
{
- int32_t expToNext;
- uint8_t additionalActions;
- int32_t mpModifier;
- int32_t baseSpeed;
- int32_t levelModifier;
- uint8_t questExpModifier;
- uint16_t hpModifier;
- int32_t huntingLogExpReward;
+ int32_t expToNext;
+ uint8_t additionalActions;
+ int32_t mpModifier;
+ int32_t baseSpeed;
+ int32_t levelModifier;
+ uint8_t questExpModifier;
+ uint16_t hpModifier;
+ int32_t huntingLogExpReward;
- ParamGrow( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ParamGrow( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Perform
{
- std::string name;
- uint64_t modelKey;
- uint16_t animationStart;
- uint16_t animationEnd;
- uint16_t animationIdle;
- uint16_t animationPlay01;
- uint16_t animationPlay02;
- int32_t stopAnimation;
- std::string instrument;
- uint8_t transient;
+ std::string name;
+ uint64_t modelKey;
+ uint16_t animationStart;
+ uint16_t animationEnd;
+ uint16_t animationIdle;
+ uint16_t animationPlay01;
+ uint16_t animationPlay02;
+ int32_t stopAnimation;
+ std::string instrument;
+ uint8_t transient;
- Perform( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Perform( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct PerformTransient
{
- std::string text;
+ std::string text;
- PerformTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ PerformTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Pet
{
- std::string name;
+ std::string name;
- Pet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Pet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct PetAction
{
- std::string name;
- std::string description;
- uint16_t action;
- uint8_t pet;
+ std::string name;
+ std::string description;
+ uint16_t action;
+ uint8_t pet;
- PetAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ PetAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Picture
{
- int32_t item;
- int32_t image;
- int32_t signature;
+ int32_t item;
+ int32_t image;
+ int32_t signature;
- Picture( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Picture( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct PlaceName
{
- std::string name;
- std::string nameNoArticle;
+ std::string name;
+ std::string nameNoArticle;
- PlaceName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ PlaceName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct PublicContent
{
- uint16_t timeLimit;
- uint32_t mapIcon;
- std::string name;
- uint16_t territoryType;
+ uint16_t timeLimit;
+ uint32_t mapIcon;
+ std::string name;
+ uint16_t territoryType;
- PublicContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ PublicContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct PvPActionSort
{
- uint8_t name;
- uint16_t action;
+ uint8_t name;
+ uint16_t action;
- PvPActionSort( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ PvPActionSort( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Quest
{
- std::string name;
- std::string id;
- uint8_t expansion;
- uint8_t classJobCategory0;
- uint16_t classJobLevel0;
- uint8_t questLevelOffset;
- uint8_t classJobCategory1;
- uint16_t classJobLevel1;
- uint8_t previousQuestJoin;
- uint32_t previousQuest0;
- uint32_t previousQuest1;
- uint32_t previousQuest2;
- uint8_t questLockJoin;
- std::vector< uint32_t > questLock;
- uint8_t classJobUnlock;
- uint8_t grandCompany;
- uint8_t grandCompanyRank;
- uint8_t instanceContentJoin;
- std::vector< uint32_t > instanceContent;
- uint16_t bellStart;
- uint16_t bellEnd;
- uint8_t beastTribe;
- uint8_t beastReputationRank;
- int32_t mountRequired;
- bool isHouseRequired;
- uint32_t eNpcResidentStart;
- uint32_t eNpcResidentEnd;
- bool isRepeatable;
- uint8_t repeatIntervalType;
- std::vector< std::string > scriptInstruction;
- std::vector< uint32_t > scriptArg;
- std::vector< uint32_t > level;
- uint8_t classJobRequired;
- uint16_t expFactor;
- uint32_t gilReward;
- uint16_t gCSeals;
- std::vector< uint8_t > itemCatalyst;
- std::vector< uint8_t > itemCountCatalyst;
- uint8_t itemRewardType;
- std::vector< uint32_t > itemReward0;
- std::vector< uint8_t > itemCountReward0;
- std::vector< uint8_t > stainReward0;
- std::vector< uint32_t > itemReward1;
- std::vector< uint8_t > itemCountReward1;
- std::vector< bool > isHQReward1;
- std::vector< uint8_t > stainReward1;
- uint8_t emoteReward;
- uint16_t actionReward;
- std::vector< uint8_t > generalActionReward;
- uint8_t otherReward;
- uint32_t instanceContentUnlock;
- uint8_t tomestoneReward;
- uint8_t tomestoneCountReward;
- uint8_t reputationReward;
- uint16_t placeName;
- uint8_t journalGenre;
- uint32_t icon;
- uint32_t iconSpecial;
- uint8_t eventIconType;
- uint16_t sortKey;
+ std::string name;
+ std::string id;
+ uint8_t expansion;
+ uint8_t classJobCategory0;
+ uint16_t classJobLevel0;
+ uint8_t questLevelOffset;
+ uint8_t classJobCategory1;
+ uint16_t classJobLevel1;
+ uint8_t previousQuestJoin;
+ uint32_t previousQuest0;
+ uint32_t previousQuest1;
+ uint32_t previousQuest2;
+ uint8_t questLockJoin;
+ std::vector< uint32_t > questLock;
+ uint8_t classJobUnlock;
+ uint8_t grandCompany;
+ uint8_t grandCompanyRank;
+ uint8_t instanceContentJoin;
+ std::vector< uint32_t > instanceContent;
+ uint16_t bellStart;
+ uint16_t bellEnd;
+ uint8_t beastTribe;
+ uint8_t beastReputationRank;
+ int32_t mountRequired;
+ bool isHouseRequired;
+ uint32_t eNpcResidentStart;
+ uint32_t eNpcResidentEnd;
+ bool isRepeatable;
+ uint8_t repeatIntervalType;
+ std::vector< std::string > scriptInstruction;
+ std::vector< uint32_t > scriptArg;
+ std::vector< uint32_t > level;
+ uint8_t classJobRequired;
+ uint16_t expFactor;
+ uint32_t gilReward;
+ uint16_t gCSeals;
+ std::vector< uint8_t > itemCatalyst;
+ std::vector< uint8_t > itemCountCatalyst;
+ uint8_t itemRewardType;
+ std::vector< uint32_t > itemReward0;
+ std::vector< uint8_t > itemCountReward0;
+ std::vector< uint8_t > stainReward0;
+ std::vector< uint32_t > itemReward1;
+ std::vector< uint8_t > itemCountReward1;
+ std::vector< bool > isHQReward1;
+ std::vector< uint8_t > stainReward1;
+ uint8_t emoteReward;
+ uint16_t actionReward;
+ std::vector< uint8_t > generalActionReward;
+ uint8_t otherReward;
+ uint32_t instanceContentUnlock;
+ uint8_t tomestoneReward;
+ uint8_t tomestoneCountReward;
+ uint8_t reputationReward;
+ uint16_t placeName;
+ uint8_t journalGenre;
+ uint32_t icon;
+ uint32_t iconSpecial;
+ uint8_t eventIconType;
+ uint16_t sortKey;
- Quest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Quest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct QuestClassJobReward
{
- uint8_t classJobCategory;
- std::vector< uint32_t > rewardItem;
- std::vector< uint8_t > rewardAmount;
- std::vector< uint32_t > requiredItem;
- std::vector< uint8_t > requiredAmount;
+ uint8_t classJobCategory;
+ std::vector< uint32_t > rewardItem;
+ std::vector< uint8_t > rewardAmount;
+ std::vector< uint32_t > requiredItem;
+ std::vector< uint8_t > requiredAmount;
- QuestClassJobReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ QuestClassJobReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct QuestRepeatFlag
{
- uint32_t quest;
+ uint32_t quest;
- QuestRepeatFlag( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ QuestRepeatFlag( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct QuestRewardOther
{
- std::string name;
+ std::string name;
- QuestRewardOther( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ QuestRewardOther( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct QuickChat
{
- std::string nameAction;
- int32_t icon;
- int32_t addon;
- int8_t quickChatTransient;
+ std::string nameAction;
+ int32_t icon;
+ int32_t addon;
+ int8_t quickChatTransient;
- QuickChat( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ QuickChat( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct QuickChatTransient
{
- std::string textOutput;
+ std::string textOutput;
- QuickChatTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ QuickChatTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Race
{
- std::string masculine;
- std::string feminine;
- int32_t rSEMBody;
- int32_t rSEMHands;
- int32_t rSEMLegs;
- int32_t rSEMFeet;
- int32_t rSEFBody;
- int32_t rSEFHands;
- int32_t rSEFLegs;
- int32_t rSEFFeet;
+ std::string masculine;
+ std::string feminine;
+ int32_t rSEMBody;
+ int32_t rSEMHands;
+ int32_t rSEMLegs;
+ int32_t rSEMFeet;
+ int32_t rSEFBody;
+ int32_t rSEFHands;
+ int32_t rSEFLegs;
+ int32_t rSEFFeet;
- Race( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Race( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RacingChocoboItem
{
- int32_t item;
- uint8_t category;
- std::vector< uint8_t > param;
+ int32_t item;
+ uint8_t category;
+ std::vector< uint8_t > param;
- RacingChocoboItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RacingChocoboItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RacingChocoboName
{
- std::string name;
+ std::string name;
- RacingChocoboName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RacingChocoboName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RacingChocoboNameCategory
{
- uint8_t sortKey;
- std::string name;
+ uint8_t sortKey;
+ std::string name;
- RacingChocoboNameCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RacingChocoboNameCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RacingChocoboNameInfo
{
- uint8_t racingChocoboNameCategory;
+ uint8_t racingChocoboNameCategory;
- RacingChocoboNameInfo( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RacingChocoboNameInfo( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RacingChocoboParam
{
- std::string name;
+ std::string name;
- RacingChocoboParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RacingChocoboParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Recipe
{
- int32_t craftType;
- uint16_t recipeLevelTable;
- int32_t itemResult;
- uint8_t amountResult;
- uint8_t recipeElement;
- bool isSecondary;
- uint16_t difficultyFactor;
- uint16_t qualityFactor;
- uint16_t durabilityFactor;
- uint16_t requiredCraftsmanship;
- uint16_t requiredControl;
- uint16_t quickSynthCraftsmanship;
- uint16_t quickSynthControl;
- uint16_t secretRecipeBook;
- bool canQuickSynth;
- bool canHq;
- bool expRewarded;
- int32_t statusRequired;
- int32_t itemRequired;
- bool isSpecializationRequired;
+ int32_t craftType;
+ uint16_t recipeLevelTable;
+ int32_t itemResult;
+ uint8_t amountResult;
+ uint8_t recipeElement;
+ bool isSecondary;
+ uint16_t difficultyFactor;
+ uint16_t qualityFactor;
+ uint16_t durabilityFactor;
+ uint16_t requiredCraftsmanship;
+ uint16_t requiredControl;
+ uint16_t quickSynthCraftsmanship;
+ uint16_t quickSynthControl;
+ uint16_t secretRecipeBook;
+ bool canQuickSynth;
+ bool canHq;
+ bool expRewarded;
+ int32_t statusRequired;
+ int32_t itemRequired;
+ bool isSpecializationRequired;
- Recipe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Recipe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RecipeElement
{
- std::string name;
+ std::string name;
- RecipeElement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RecipeElement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RecipeLevelTable
{
- uint8_t classJobLevel;
- uint8_t stars;
- uint16_t difficulty;
- int16_t quality;
- uint16_t durability;
+ uint8_t classJobLevel;
+ uint8_t stars;
+ uint16_t difficulty;
+ int16_t quality;
+ uint16_t durability;
- RecipeLevelTable( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RecipeLevelTable( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RecipeNotebookList
{
- std::vector< int32_t > recipe;
+ std::vector< int32_t > recipe;
- RecipeNotebookList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RecipeNotebookList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RecommendContents
{
- int32_t level;
+ int32_t level;
- RecommendContents( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RecommendContents( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Relic
{
- uint32_t itemAtma;
- uint32_t itemAnimus;
- int32_t icon;
+ uint32_t itemAtma;
+ uint32_t itemAnimus;
+ int32_t icon;
- Relic( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Relic( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Relic3
{
- uint32_t itemAnimus;
- uint32_t itemScroll;
- uint8_t materiaLimit;
- uint32_t itemNovus;
- int32_t icon;
+ uint32_t itemAnimus;
+ uint32_t itemScroll;
+ uint8_t materiaLimit;
+ uint32_t itemNovus;
+ int32_t icon;
- Relic3( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Relic3( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RelicItem
{
- uint32_t gladiatorItem;
- uint32_t pugilistItem;
- uint32_t marauderItem;
- uint32_t lancerItem;
- uint32_t archerItem;
- uint32_t conjurerItem;
- uint32_t thaumaturgeItem;
- uint32_t arcanistSMNItem;
- uint32_t arcanistSCHItem;
- uint32_t shieldItem;
- uint32_t rogueItem;
+ uint32_t gladiatorItem;
+ uint32_t pugilistItem;
+ uint32_t marauderItem;
+ uint32_t lancerItem;
+ uint32_t archerItem;
+ uint32_t conjurerItem;
+ uint32_t thaumaturgeItem;
+ uint32_t arcanistSMNItem;
+ uint32_t arcanistSCHItem;
+ uint32_t shieldItem;
+ uint32_t rogueItem;
- RelicItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RelicItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RelicNote
{
- uint32_t eventItem;
- std::vector< uint16_t > monsterNoteTargetNM;
- std::vector< uint16_t > leve;
+ uint32_t eventItem;
+ std::vector< uint16_t > monsterNoteTargetNM;
+ std::vector< uint16_t > leve;
- RelicNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RelicNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RelicNoteCategory
{
- std::string text;
+ std::string text;
- RelicNoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RelicNoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RetainerTask
{
- bool isRandom;
- uint8_t classJobCategory;
- uint8_t retainerLevel;
- uint16_t retainerTaskParameter;
- uint16_t ventureCost;
- uint16_t maxTimemin;
- int32_t experience;
- uint16_t requiredItemLevel;
- uint16_t requiredGathering;
- uint16_t task;
+ bool isRandom;
+ uint8_t classJobCategory;
+ uint8_t retainerLevel;
+ uint16_t retainerTaskParameter;
+ uint16_t ventureCost;
+ uint16_t maxTimemin;
+ int32_t experience;
+ uint16_t requiredItemLevel;
+ uint16_t requiredGathering;
+ uint16_t task;
- RetainerTask( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RetainerTask( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RetainerTaskLvRange
{
- uint8_t min;
- uint8_t max;
+ uint8_t min;
+ uint8_t max;
- RetainerTaskLvRange( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RetainerTaskLvRange( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RetainerTaskNormal
{
- int32_t item;
- uint8_t quantity0;
- uint8_t quantity1;
- uint8_t quantity2;
- int16_t gatheringLog;
- int16_t fishingLog;
+ int32_t item;
+ uint8_t quantity0;
+ uint8_t quantity1;
+ uint8_t quantity2;
+ int16_t gatheringLog;
+ int16_t fishingLog;
- RetainerTaskNormal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RetainerTaskNormal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RetainerTaskParameter
{
- std::vector< int16_t > itemLevelDoW;
- std::vector< int16_t > gatheringDoL;
- std::vector< int16_t > gatheringFSH;
+ std::vector< int16_t > itemLevelDoW;
+ std::vector< int16_t > gatheringDoL;
+ std::vector< int16_t > gatheringFSH;
- RetainerTaskParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RetainerTaskParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct RetainerTaskRandom
{
- std::string name;
- int16_t requirement;
+ std::string name;
+ int16_t requirement;
- RetainerTaskRandom( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ RetainerTaskRandom( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Salvage
{
- uint16_t optimalSkill;
+ uint16_t optimalSkill;
- Salvage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Salvage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SatisfactionNpc
{
- int32_t npc;
- int32_t questRequired;
- uint8_t deliveriesPerWeek;
- std::vector< int32_t > supplyIndex;
- std::vector< uint16_t > satisfactionRequired;
- int32_t icon;
+ int32_t npc;
+ int32_t questRequired;
+ uint8_t deliveriesPerWeek;
+ std::vector< int32_t > supplyIndex;
+ std::vector< uint16_t > satisfactionRequired;
+ int32_t icon;
- SatisfactionNpc( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SatisfactionNpc( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SatisfactionSupply
{
- uint8_t slot;
- uint8_t probability;
- int32_t item;
- uint16_t collectabilityLow;
- uint16_t collectabilityMid;
- uint16_t collectabilityHigh;
- uint16_t reward;
+ uint8_t slot;
+ uint8_t probability;
+ int32_t item;
+ uint16_t collectabilityLow;
+ uint16_t collectabilityMid;
+ uint16_t collectabilityHigh;
+ uint16_t reward;
- SatisfactionSupply( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SatisfactionSupply( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SatisfactionSupplyReward
{
- uint16_t satisfactionLow;
- uint16_t satisfactionMid;
- uint16_t satisfactionHigh;
- uint16_t gilLow;
- uint16_t gilMid;
- uint16_t gilHigh;
+ uint16_t satisfactionLow;
+ uint16_t satisfactionMid;
+ uint16_t satisfactionHigh;
+ uint16_t gilLow;
+ uint16_t gilMid;
+ uint16_t gilHigh;
- SatisfactionSupplyReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SatisfactionSupplyReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ScenarioTree
{
- uint8_t type;
- uint16_t image;
+ uint8_t type;
+ uint16_t image;
- ScenarioTree( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ScenarioTree( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ScenarioTreeTips
{
- uint32_t tips1;
- uint32_t tips2;
+ uint32_t tips1;
+ uint32_t tips2;
- ScenarioTreeTips( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ScenarioTreeTips( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ScenarioTreeTipsClassQuest
{
- uint32_t quest;
- uint16_t requiredLevel;
- uint8_t requiredExpansion;
- uint32_t requiredQuest;
+ uint32_t quest;
+ uint16_t requiredLevel;
+ uint8_t requiredExpansion;
+ uint32_t requiredQuest;
- ScenarioTreeTipsClassQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ScenarioTreeTipsClassQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ScenarioTreeTipsQuest
{
- uint32_t level;
+ uint32_t level;
- ScenarioTreeTipsQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ScenarioTreeTipsQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ScenarioType
{
- std::string type;
+ std::string type;
- ScenarioType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ScenarioType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ScreenImage
{
- uint32_t image;
+ uint32_t image;
- ScreenImage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ScreenImage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SecretRecipeBook
{
- int32_t item;
- std::string name;
+ int32_t item;
+ std::string name;
- SecretRecipeBook( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SecretRecipeBook( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SkyIsland2Mission
{
- uint32_t item1;
- uint32_t item2;
- uint16_t objective1;
- uint8_t requiredAmount1;
- uint16_t objective2;
- uint8_t requiredAmount2;
- uint16_t objective3;
- uint32_t image;
+ uint32_t item1;
+ uint32_t item2;
+ uint16_t objective1;
+ uint8_t requiredAmount1;
+ uint16_t objective2;
+ uint8_t requiredAmount2;
+ uint16_t objective3;
+ uint32_t image;
- SkyIsland2Mission( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SkyIsland2Mission( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SkyIsland2MissionDetail
{
- uint8_t type;
- uint8_t range;
- uint32_t eObj;
- std::string objective;
+ uint8_t type;
+ uint8_t range;
+ uint32_t eObj;
+ std::string objective;
- SkyIsland2MissionDetail( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SkyIsland2MissionDetail( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SkyIsland2MissionType
{
- bool type;
+ bool type;
- SkyIsland2MissionType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SkyIsland2MissionType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SkyIsland2RangeType
{
- uint8_t type;
+ uint8_t type;
- SkyIsland2RangeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SkyIsland2RangeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SpearfishingItem
{
- std::string description;
- int32_t item;
- uint16_t gatheringItemLevel;
- uint16_t territoryType;
- bool isVisible;
+ std::string description;
+ int32_t item;
+ uint16_t gatheringItemLevel;
+ uint16_t territoryType;
+ bool isVisible;
- SpearfishingItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SpearfishingItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SpearfishingNotebook
{
- uint8_t gatheringLevel;
- int32_t territoryType;
- int16_t x;
- int16_t y;
- uint16_t radius;
- uint16_t placeName;
- uint16_t gatheringPointBase;
+ uint8_t gatheringLevel;
+ int32_t territoryType;
+ int16_t x;
+ int16_t y;
+ uint16_t radius;
+ uint16_t placeName;
+ uint16_t gatheringPointBase;
- SpearfishingNotebook( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SpearfishingNotebook( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SpecialShop
{
- std::string name;
- std::vector< int32_t > questItem;
- int32_t questShop;
+ std::string name;
+ std::vector< int32_t > questItem;
+ int32_t questShop;
- SpecialShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SpecialShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SpecialShopItemCategory
{
- std::string name;
+ std::string name;
- SpecialShopItemCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SpecialShopItemCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Stain
{
- uint32_t color;
- uint8_t shade;
- std::string name;
+ uint32_t color;
+ uint8_t shade;
+ std::string name;
- Stain( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Stain( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct StainTransient
{
- uint32_t item1;
- uint32_t item2;
+ uint32_t item1;
+ uint32_t item2;
- StainTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ StainTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Status
{
- std::string name;
- std::string description;
- uint16_t icon;
- uint8_t maxStacks;
- uint8_t category;
- uint8_t hitEffect;
- uint8_t vFX;
- bool lockMovement;
- bool lockActions;
- bool lockControl;
- bool transfiguration;
- bool canDispel;
- bool inflictedByActor;
- bool isPermanent;
- bool isFcBuff;
- bool invisibility;
+ std::string name;
+ std::string description;
+ uint16_t icon;
+ uint8_t maxStacks;
+ uint8_t category;
+ uint8_t hitEffect;
+ uint8_t vFX;
+ bool lockMovement;
+ bool lockActions;
+ bool lockControl;
+ bool transfiguration;
+ bool canDispel;
+ bool inflictedByActor;
+ bool isPermanent;
+ bool isFcBuff;
+ bool invisibility;
- Status( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Status( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct StatusHitEffect
{
- uint16_t location;
+ uint16_t location;
- StatusHitEffect( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ StatusHitEffect( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct StatusLoopVFX
{
- uint16_t location;
+ uint16_t location;
- StatusLoopVFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ StatusLoopVFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Story
{
- Story( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Story( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SubmarineExploration
{
- std::string destination;
- std::string location;
- uint8_t rankReq;
- uint8_t ceruleumTankReq;
- uint16_t durationmin;
- uint8_t distanceForSurvey;
- uint32_t expReward;
+ std::string destination;
+ std::string location;
+ uint8_t rankReq;
+ uint8_t ceruleumTankReq;
+ uint16_t durationmin;
+ uint8_t distanceForSurvey;
+ uint32_t expReward;
- SubmarineExploration( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SubmarineExploration( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SubmarinePart
{
- uint8_t slot;
- uint8_t rank;
- uint8_t components;
- int16_t surveillance;
- int16_t retrieval;
- int16_t speed;
- int16_t range;
- int16_t favor;
- uint8_t repairMaterials;
+ uint8_t slot;
+ uint8_t rank;
+ uint8_t components;
+ int16_t surveillance;
+ int16_t retrieval;
+ int16_t speed;
+ int16_t range;
+ int16_t favor;
+ uint8_t repairMaterials;
- SubmarinePart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SubmarinePart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SubmarineRank
{
- uint16_t rank;
- uint32_t expToNext;
+ uint16_t rank;
+ uint32_t expToNext;
- SubmarineRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SubmarineRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct SwitchTalk
{
- std::vector< uint32_t > quest;
- std::vector< uint32_t > defaultTalk;
+ std::vector< uint32_t > quest;
+ std::vector< uint32_t > defaultTalk;
- SwitchTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ SwitchTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TerritoryType
{
- std::string name;
- std::string bg;
- uint16_t placeNameRegion;
- uint16_t placeNameZone;
- uint16_t placeName;
- uint16_t map;
- uint8_t territoryIntendedUse;
- uint8_t weatherRate;
- uint32_t arrayEventHandler;
- int32_t aetheryte;
+ std::string name;
+ std::string bg;
+ uint16_t placeNameRegion;
+ uint16_t placeNameZone;
+ uint16_t placeName;
+ uint16_t map;
+ uint8_t territoryIntendedUse;
+ uint8_t weatherRate;
+ uint32_t arrayEventHandler;
+ int32_t aetheryte;
- TerritoryType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TerritoryType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TextCommand
{
- std::string command;
- std::string shortCommand;
- std::string description;
- std::string alias;
- std::string shortAlias;
+ std::string command;
+ std::string shortCommand;
+ std::string description;
+ std::string alias;
+ std::string shortAlias;
- TextCommand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TextCommand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Title
{
- std::string masculine;
- std::string feminine;
- bool isPrefix;
+ std::string masculine;
+ std::string feminine;
+ bool isPrefix;
- Title( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Title( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Tomestones
{
- uint16_t weeklyLimit;
+ uint16_t weeklyLimit;
- Tomestones( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Tomestones( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TomestonesItem
{
- int32_t item;
- int32_t tomestones;
+ int32_t item;
+ int32_t tomestones;
- TomestonesItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TomestonesItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TopicSelect
{
- std::string name;
+ std::string name;
- TopicSelect( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TopicSelect( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Town
{
- std::string name;
- int32_t icon;
+ std::string name;
+ int32_t icon;
- Town( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Town( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Trait
{
- std::string name;
- int32_t icon;
- uint8_t classJob;
- uint8_t level;
- int16_t value;
- uint8_t classJobCategory;
+ std::string name;
+ int32_t icon;
+ uint8_t classJob;
+ uint8_t level;
+ int16_t value;
+ uint8_t classJobCategory;
- Trait( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Trait( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TraitRecast
{
- uint16_t trait;
- uint16_t action;
- uint16_t timeds;
+ uint16_t trait;
+ uint16_t action;
+ uint16_t timeds;
- TraitRecast( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TraitRecast( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TraitTransient
{
- std::string description;
+ std::string description;
- TraitTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TraitTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Transformation
{
- int16_t model;
- int32_t bNpcCustomize;
- int32_t bNpcEquip;
- std::vector< uint16_t > action;
- float speed;
- float scale;
- bool isPvP;
- bool isEvent;
- bool playerCamera;
+ int16_t model;
+ int32_t bNpcCustomize;
+ int32_t bNpcEquip;
+ std::vector< uint16_t > action;
+ float speed;
+ float scale;
+ bool isPvP;
+ bool isEvent;
+ bool playerCamera;
- Transformation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Transformation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Treasure
{
- uint32_t item;
+ uint32_t item;
- Treasure( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Treasure( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TreasureHuntRank
{
- uint32_t icon;
- int32_t itemName;
- int32_t keyItemName;
- int32_t instanceMap;
- uint8_t maxPartySize;
- uint8_t minPartySize;
+ uint32_t icon;
+ int32_t itemName;
+ int32_t keyItemName;
+ int32_t instanceMap;
+ uint8_t maxPartySize;
+ uint8_t minPartySize;
- TreasureHuntRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TreasureHuntRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Tribe
{
- std::string masculine;
- std::string feminine;
- int8_t sTR;
- int8_t dEX;
- int8_t vIT;
- int8_t iNT;
- int8_t mND;
- int8_t pIE;
+ std::string masculine;
+ std::string feminine;
+ int8_t sTR;
+ int8_t dEX;
+ int8_t vIT;
+ int8_t iNT;
+ int8_t mND;
+ int8_t pIE;
- Tribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Tribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TripleTriad
{
- std::vector< uint16_t > tripleTriadCardFixed;
- std::vector< uint16_t > tripleTriadCardVariable;
- std::vector< uint8_t > tripleTriadRule;
- bool usesRegionalRules;
- uint16_t fee;
- uint8_t previousQuestJoin;
- std::vector< uint32_t > previousQuest;
- uint16_t startTime;
- uint16_t endTime;
- uint32_t defaultTalkChallenge;
- uint32_t defaultTalkUnavailable;
- uint32_t defaultTalkNPCWin;
- uint32_t defaultTalkDraw;
- uint32_t defaultTalkPCWin;
- std::vector< uint32_t > itemPossibleReward;
+ std::vector< uint16_t > tripleTriadCardFixed;
+ std::vector< uint16_t > tripleTriadCardVariable;
+ std::vector< uint8_t > tripleTriadRule;
+ bool usesRegionalRules;
+ uint16_t fee;
+ uint8_t previousQuestJoin;
+ std::vector< uint32_t > previousQuest;
+ uint16_t startTime;
+ uint16_t endTime;
+ uint32_t defaultTalkChallenge;
+ uint32_t defaultTalkUnavailable;
+ uint32_t defaultTalkNPCWin;
+ uint32_t defaultTalkDraw;
+ uint32_t defaultTalkPCWin;
+ std::vector< uint32_t > itemPossibleReward;
- TripleTriad( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TripleTriad( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TripleTriadCard
{
- std::string name;
- int8_t startsWithVowel;
- std::string description;
+ std::string name;
+ int8_t startsWithVowel;
+ std::string description;
- TripleTriadCard( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TripleTriadCard( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TripleTriadCardRarity
{
- uint8_t stars;
+ uint8_t stars;
- TripleTriadCardRarity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TripleTriadCardRarity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TripleTriadCardResident
{
- uint8_t top;
- uint8_t bottom;
- uint8_t left;
- uint8_t right;
- uint8_t tripleTriadCardRarity;
- uint8_t tripleTriadCardType;
- uint16_t saleValue;
- uint8_t sortKey;
+ uint8_t top;
+ uint8_t bottom;
+ uint8_t left;
+ uint8_t right;
+ uint8_t tripleTriadCardRarity;
+ uint8_t tripleTriadCardType;
+ uint16_t saleValue;
+ uint8_t sortKey;
- TripleTriadCardResident( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TripleTriadCardResident( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TripleTriadCardType
{
- std::string name;
+ std::string name;
- TripleTriadCardType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TripleTriadCardType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TripleTriadCompetition
{
- std::string name;
+ std::string name;
- TripleTriadCompetition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TripleTriadCompetition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TripleTriadRule
{
- std::string name;
+ std::string name;
- TripleTriadRule( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TripleTriadRule( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Tutorial
{
- uint32_t exp;
- uint32_t gil;
- uint32_t rewardTank;
- uint32_t rewardMelee;
- uint32_t rewardRanged;
- uint32_t objective;
+ uint32_t exp;
+ uint32_t gil;
+ uint32_t rewardTank;
+ uint32_t rewardMelee;
+ uint32_t rewardRanged;
+ uint32_t objective;
- Tutorial( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Tutorial( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TutorialDPS
{
- uint8_t objective;
+ uint8_t objective;
- TutorialDPS( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TutorialDPS( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TutorialHealer
{
- uint8_t objective;
+ uint8_t objective;
- TutorialHealer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TutorialHealer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct TutorialTank
{
- uint8_t objective;
+ uint8_t objective;
- TutorialTank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ TutorialTank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct VaseFlower
{
- uint32_t item;
+ uint32_t item;
- VaseFlower( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ VaseFlower( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct VFX
{
- std::string location;
+ std::string location;
- VFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ VFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Warp
{
- uint32_t level;
- uint16_t placeName;
- uint32_t defaultTalk1;
- uint32_t defaultTalk2;
- uint32_t defaultTalk3;
- uint16_t warpCondition;
- uint16_t warpLogic;
+ uint32_t level;
+ uint16_t placeName;
+ uint32_t defaultTalk1;
+ uint32_t defaultTalk2;
+ uint32_t defaultTalk3;
+ uint16_t warpCondition;
+ uint16_t warpLogic;
- Warp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Warp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct WarpCondition
{
- uint32_t requiredQuest1;
- uint32_t requiredQuest2;
- uint32_t dRequiredQuest3;
- uint32_t requiredQuest4;
+ uint32_t requiredQuest1;
+ uint32_t requiredQuest2;
+ uint32_t dRequiredQuest3;
+ uint32_t requiredQuest4;
- WarpCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ WarpCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct Weather
{
- int32_t icon;
- std::string name;
- std::string description;
+ int32_t icon;
+ std::string name;
+ std::string description;
- Weather( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ Weather( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct WeatherGroup
{
- int32_t weatherRate;
+ int32_t weatherRate;
- WeatherGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ WeatherGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct WeatherRate
{
- WeatherRate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ WeatherRate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct WeddingBGM
{
- uint16_t song;
- std::string songName;
+ uint16_t song;
+ std::string songName;
- WeddingBGM( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ WeddingBGM( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct WeeklyBingoOrderData
{
- uint32_t data;
- uint8_t text;
- uint32_t icon;
+ uint32_t data;
+ uint8_t text;
+ uint32_t icon;
- WeeklyBingoOrderData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ WeeklyBingoOrderData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct WeeklyBingoRewardData
{
- uint32_t rewardItem2;
- bool rewardHQ2;
- uint16_t rewardQuantity2;
+ uint32_t rewardItem2;
+ bool rewardHQ2;
+ uint16_t rewardQuantity2;
- WeeklyBingoRewardData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ WeeklyBingoRewardData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct WeeklyBingoText
{
- std::string description;
+ std::string description;
- WeeklyBingoText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ WeeklyBingoText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct World
{
- uint8_t dataCenter;
+ uint8_t dataCenter;
- World( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ World( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct WorldDCGroupType
{
- std::string name;
+ std::string name;
- WorldDCGroupType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ WorldDCGroupType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct YKW
{
- uint32_t item;
- std::vector< uint16_t > location;
+ uint32_t item;
+ std::vector< uint16_t > location;
- YKW( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ YKW( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
struct ZoneSharedGroup
{
- uint32_t quest1;
- uint32_t quest2;
- uint32_t quest3;
- uint32_t quest4;
- uint32_t quest5;
- uint32_t quest6;
+ uint32_t quest1;
+ uint32_t quest2;
+ uint32_t quest3;
+ uint32_t quest4;
+ uint32_t quest5;
+ uint32_t quest6;
- ZoneSharedGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+ ZoneSharedGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
+class ExdDataGenerated
+{
+public:
+ ExdDataGenerated();
- class ExdDataGenerated
+ ~ExdDataGenerated();
+
+ bool init( const std::string& path );
+
+ xiv::exd::Exd setupDatAccess( const std::string& name, xiv::exd::Language lang );
+
+ template< class T >
+ T getField( std::vector< xiv::exd::Field >& fields, uint32_t index )
{
- public:
- ExdDataGenerated();
- ~ExdDataGenerated();
+ return *boost::get< T >( &fields.at( index ) );
+ }
- bool init( const std::string& path );
+ void loadIdList( xiv::exd::Exd& data, std::set< uint32_t >& outIdList );
- xiv::exd::Exd setupDatAccess( const std::string& name, xiv::exd::Language lang );
+ boost::shared_ptr< xiv::dat::GameData > m_data;
+ boost::shared_ptr< xiv::exd::ExdData > m_exd_data;
- template< class T >
- T getField( std::vector< xiv::exd::Field >& fields, uint32_t index )
- {
- return *boost::get< T >( &fields.at( index ) );
- }
-
- void loadIdList( xiv::exd::Exd& data, std::set< uint32_t >& outIdList );
-
- boost::shared_ptr< xiv::dat::GameData > m_data;
- boost::shared_ptr< xiv::exd::ExdData > m_exd_data;
-
- xiv::exd::Exd m_AchievementDat;
- xiv::exd::Exd m_AchievementCategoryDat;
- xiv::exd::Exd m_AchievementKindDat;
- xiv::exd::Exd m_ActionDat;
- xiv::exd::Exd m_ActionCastTimelineDat;
- xiv::exd::Exd m_ActionCastVFXDat;
- xiv::exd::Exd m_ActionCategoryDat;
- xiv::exd::Exd m_ActionComboRouteDat;
- xiv::exd::Exd m_ActionIndirectionDat;
- xiv::exd::Exd m_ActionParamDat;
- xiv::exd::Exd m_ActionProcStatusDat;
- xiv::exd::Exd m_ActionTimelineDat;
- xiv::exd::Exd m_ActionTimelineReplaceDat;
- xiv::exd::Exd m_ActionTransientDat;
- xiv::exd::Exd m_AddonDat;
- xiv::exd::Exd m_AdventureDat;
- xiv::exd::Exd m_AdventureExPhaseDat;
- xiv::exd::Exd m_AetherCurrentDat;
- xiv::exd::Exd m_AetherCurrentCompFlgSetDat;
- xiv::exd::Exd m_AetherialWheelDat;
- xiv::exd::Exd m_AetheryteDat;
- xiv::exd::Exd m_AirshipExplorationLevelDat;
- xiv::exd::Exd m_AirshipExplorationLogDat;
- xiv::exd::Exd m_AirshipExplorationParamTypeDat;
- xiv::exd::Exd m_AirshipExplorationPartDat;
- xiv::exd::Exd m_AirshipExplorationPointDat;
- xiv::exd::Exd m_AnimaWeapon5Dat;
- xiv::exd::Exd m_AnimaWeapon5ParamDat;
- xiv::exd::Exd m_AnimaWeapon5PatternGroupDat;
- xiv::exd::Exd m_AnimaWeapon5SpiritTalkDat;
- xiv::exd::Exd m_AnimaWeapon5SpiritTalkParamDat;
- xiv::exd::Exd m_AnimaWeapon5TradeItemDat;
- xiv::exd::Exd m_AnimaWeaponFUITalkDat;
- xiv::exd::Exd m_AnimaWeaponFUITalkParamDat;
- xiv::exd::Exd m_AnimaWeaponIconDat;
- xiv::exd::Exd m_AnimaWeaponItemDat;
- xiv::exd::Exd m_AquariumFishDat;
- xiv::exd::Exd m_AquariumWaterDat;
- xiv::exd::Exd m_AttackTypeDat;
- xiv::exd::Exd m_BalloonDat;
- xiv::exd::Exd m_BaseParamDat;
- xiv::exd::Exd m_BattleLeveDat;
- xiv::exd::Exd m_BeastRankBonusDat;
- xiv::exd::Exd m_BeastReputationRankDat;
- xiv::exd::Exd m_BeastTribeDat;
- xiv::exd::Exd m_BehaviorDat;
- xiv::exd::Exd m_BGMDat;
- xiv::exd::Exd m_BNpcAnnounceIconDat;
- xiv::exd::Exd m_BNpcBaseDat;
- xiv::exd::Exd m_BNpcCustomizeDat;
- xiv::exd::Exd m_BNpcNameDat;
- xiv::exd::Exd m_BuddyDat;
- xiv::exd::Exd m_BuddyActionDat;
- xiv::exd::Exd m_BuddyEquipDat;
- xiv::exd::Exd m_BuddyItemDat;
- xiv::exd::Exd m_BuddyRankDat;
- xiv::exd::Exd m_BuddySkillDat;
- xiv::exd::Exd m_CabinetDat;
- xiv::exd::Exd m_CabinetCategoryDat;
- xiv::exd::Exd m_CalendarDat;
- xiv::exd::Exd m_CharaMakeCustomizeDat;
- xiv::exd::Exd m_CharaMakeTypeDat;
- xiv::exd::Exd m_ChocoboRaceDat;
- xiv::exd::Exd m_ChocoboRaceAbilityDat;
- xiv::exd::Exd m_ChocoboRaceAbilityTypeDat;
- xiv::exd::Exd m_ChocoboRaceItemDat;
- xiv::exd::Exd m_ChocoboRaceRankDat;
- xiv::exd::Exd m_ChocoboRaceStatusDat;
- xiv::exd::Exd m_ChocoboRaceTerritoryDat;
- xiv::exd::Exd m_ChocoboTaxiDat;
- xiv::exd::Exd m_ChocoboTaxiStandDat;
- xiv::exd::Exd m_ClassJobDat;
- xiv::exd::Exd m_ClassJobCategoryDat;
- xiv::exd::Exd m_CompanionDat;
- xiv::exd::Exd m_CompanionMoveDat;
- xiv::exd::Exd m_CompanionTransientDat;
- xiv::exd::Exd m_CompanyActionDat;
- xiv::exd::Exd m_CompanyCraftDraftDat;
- xiv::exd::Exd m_CompanyCraftDraftCategoryDat;
- xiv::exd::Exd m_CompanyCraftManufactoryStateDat;
- xiv::exd::Exd m_CompanyCraftPartDat;
- xiv::exd::Exd m_CompanyCraftProcessDat;
- xiv::exd::Exd m_CompanyCraftSequenceDat;
- xiv::exd::Exd m_CompanyCraftSupplyItemDat;
- xiv::exd::Exd m_CompanyCraftTypeDat;
- xiv::exd::Exd m_CompleteJournalDat;
- xiv::exd::Exd m_CompleteJournalCategoryDat;
- xiv::exd::Exd m_ContentExActionDat;
- xiv::exd::Exd m_ContentFinderConditionDat;
- xiv::exd::Exd m_ContentFinderConditionTransientDat;
- xiv::exd::Exd m_ContentMemberTypeDat;
- xiv::exd::Exd m_ContentNpcTalkDat;
- xiv::exd::Exd m_ContentRouletteDat;
- xiv::exd::Exd m_ContentsNoteDat;
- xiv::exd::Exd m_ContentsNoteCategoryDat;
- xiv::exd::Exd m_ContentTalkDat;
- xiv::exd::Exd m_ContentTalkParamDat;
- xiv::exd::Exd m_ContentTypeDat;
- xiv::exd::Exd m_CraftActionDat;
- xiv::exd::Exd m_CraftLeveDat;
- xiv::exd::Exd m_CraftTypeDat;
- xiv::exd::Exd m_CurrencyDat;
- xiv::exd::Exd m_CustomTalkDat;
- xiv::exd::Exd m_CutsceneDat;
- xiv::exd::Exd m_CutScreenImageDat;
- xiv::exd::Exd m_DailySupplyItemDat;
- xiv::exd::Exd m_DeepDungeonBanDat;
- xiv::exd::Exd m_DeepDungeonDangerDat;
- xiv::exd::Exd m_DeepDungeonEquipmentDat;
- xiv::exd::Exd m_DeepDungeonFloorEffectUIDat;
- xiv::exd::Exd m_DeepDungeonItemDat;
- xiv::exd::Exd m_DeepDungeonStatusDat;
- xiv::exd::Exd m_DefaultTalkDat;
- xiv::exd::Exd m_DeliveryQuestDat;
- xiv::exd::Exd m_DisposalShopDat;
- xiv::exd::Exd m_DisposalShopFilterTypeDat;
- xiv::exd::Exd m_DisposalShopItemDat;
- xiv::exd::Exd m_DpsChallengeDat;
- xiv::exd::Exd m_DpsChallengeOfficerDat;
- xiv::exd::Exd m_DpsChallengeTransientDat;
- xiv::exd::Exd m_EmoteDat;
- xiv::exd::Exd m_EmoteCategoryDat;
- xiv::exd::Exd m_EmoteModeDat;
- xiv::exd::Exd m_ENpcBaseDat;
- xiv::exd::Exd m_ENpcResidentDat;
- xiv::exd::Exd m_EObjDat;
- xiv::exd::Exd m_EObjNameDat;
- xiv::exd::Exd m_EquipRaceCategoryDat;
- xiv::exd::Exd m_EquipSlotCategoryDat;
- xiv::exd::Exd m_EurekaAethernetDat;
- xiv::exd::Exd m_EurekaGrowDataDat;
- xiv::exd::Exd m_EurekaSphereElementAdjustDat;
- xiv::exd::Exd m_EventActionDat;
- xiv::exd::Exd m_EventIconPriorityDat;
- xiv::exd::Exd m_EventIconTypeDat;
- xiv::exd::Exd m_EventItemDat;
- xiv::exd::Exd m_EventItemHelpDat;
- xiv::exd::Exd m_ExVersionDat;
- xiv::exd::Exd m_FateDat;
- xiv::exd::Exd m_FCActivityDat;
- xiv::exd::Exd m_FCActivityCategoryDat;
- xiv::exd::Exd m_FCAuthorityDat;
- xiv::exd::Exd m_FCAuthorityCategoryDat;
- xiv::exd::Exd m_FCChestNameDat;
- xiv::exd::Exd m_FccShopDat;
- xiv::exd::Exd m_FCHierarchyDat;
- xiv::exd::Exd m_FCProfileDat;
- xiv::exd::Exd m_FCReputationDat;
- xiv::exd::Exd m_FCRightsDat;
- xiv::exd::Exd m_FieldMarkerDat;
- xiv::exd::Exd m_FishingSpotDat;
- xiv::exd::Exd m_FishParameterDat;
- xiv::exd::Exd m_GardeningSeedDat;
- xiv::exd::Exd m_GatheringConditionDat;
- xiv::exd::Exd m_GatheringExpDat;
- xiv::exd::Exd m_GatheringItemDat;
- xiv::exd::Exd m_GatheringItemLevelConvertTableDat;
- xiv::exd::Exd m_GatheringItemPointDat;
- xiv::exd::Exd m_GatheringNotebookListDat;
- xiv::exd::Exd m_GatheringPointDat;
- xiv::exd::Exd m_GatheringPointBaseDat;
- xiv::exd::Exd m_GatheringPointBonusDat;
- xiv::exd::Exd m_GatheringPointBonusTypeDat;
- xiv::exd::Exd m_GatheringPointNameDat;
- xiv::exd::Exd m_GatheringSubCategoryDat;
- xiv::exd::Exd m_GatheringTypeDat;
- xiv::exd::Exd m_GcArmyExpeditionDat;
- xiv::exd::Exd m_GcArmyExpeditionMemberBonusDat;
- xiv::exd::Exd m_GcArmyExpeditionTypeDat;
- xiv::exd::Exd m_GcArmyMemberGrowDat;
- xiv::exd::Exd m_GcArmyTrainingDat;
- xiv::exd::Exd m_GCRankGridaniaFemaleTextDat;
- xiv::exd::Exd m_GCRankGridaniaMaleTextDat;
- xiv::exd::Exd m_GCRankLimsaFemaleTextDat;
- xiv::exd::Exd m_GCRankLimsaMaleTextDat;
- xiv::exd::Exd m_GCRankUldahFemaleTextDat;
- xiv::exd::Exd m_GCRankUldahMaleTextDat;
- xiv::exd::Exd m_GCScripShopCategoryDat;
- xiv::exd::Exd m_GCScripShopItemDat;
- xiv::exd::Exd m_GCShopDat;
- xiv::exd::Exd m_GCShopItemCategoryDat;
- xiv::exd::Exd m_GCSupplyDutyDat;
- xiv::exd::Exd m_GCSupplyDutyRewardDat;
- xiv::exd::Exd m_GeneralActionDat;
- xiv::exd::Exd m_GilShopDat;
- xiv::exd::Exd m_GilShopItemDat;
- xiv::exd::Exd m_GoldSaucerTextDataDat;
- xiv::exd::Exd m_GrandCompanyDat;
- xiv::exd::Exd m_GrandCompanyRankDat;
- xiv::exd::Exd m_GuardianDeityDat;
- xiv::exd::Exd m_GuildleveAssignmentDat;
- xiv::exd::Exd m_GuildOrderGuideDat;
- xiv::exd::Exd m_GuildOrderOfficerDat;
- xiv::exd::Exd m_HouseRetainerPoseDat;
- xiv::exd::Exd m_HousingFurnitureDat;
- xiv::exd::Exd m_HousingYardObjectDat;
- xiv::exd::Exd m_InstanceContentDat;
- xiv::exd::Exd m_InstanceContentBuffDat;
- xiv::exd::Exd m_InstanceContentTextDataDat;
- xiv::exd::Exd m_ItemDat;
- xiv::exd::Exd m_ItemActionDat;
- xiv::exd::Exd m_ItemFoodDat;
- xiv::exd::Exd m_ItemSearchCategoryDat;
- xiv::exd::Exd m_ItemSeriesDat;
- xiv::exd::Exd m_ItemSpecialBonusDat;
- xiv::exd::Exd m_ItemUICategoryDat;
- xiv::exd::Exd m_JournalCategoryDat;
- xiv::exd::Exd m_JournalGenreDat;
- xiv::exd::Exd m_JournalSectionDat;
- xiv::exd::Exd m_LeveDat;
- xiv::exd::Exd m_LeveAssignmentTypeDat;
- xiv::exd::Exd m_LeveClientDat;
- xiv::exd::Exd m_LevelDat;
- xiv::exd::Exd m_LeveRewardItemDat;
- xiv::exd::Exd m_LeveRewardItemGroupDat;
- xiv::exd::Exd m_LeveVfxDat;
- xiv::exd::Exd m_LogFilterDat;
- xiv::exd::Exd m_LogKindDat;
- xiv::exd::Exd m_LogKindCategoryTextDat;
- xiv::exd::Exd m_LogMessageDat;
- xiv::exd::Exd m_MacroIconDat;
- xiv::exd::Exd m_MacroIconRedirectOldDat;
- xiv::exd::Exd m_MainCommandDat;
- xiv::exd::Exd m_MainCommandCategoryDat;
- xiv::exd::Exd m_MapDat;
- xiv::exd::Exd m_MapMarkerDat;
- xiv::exd::Exd m_MapMarkerRegionDat;
- xiv::exd::Exd m_MapSymbolDat;
- xiv::exd::Exd m_MarkerDat;
- xiv::exd::Exd m_MasterpieceSupplyDutyDat;
- xiv::exd::Exd m_MasterpieceSupplyMultiplierDat;
- xiv::exd::Exd m_MateriaDat;
- xiv::exd::Exd m_MinionRaceDat;
- xiv::exd::Exd m_MinionRulesDat;
- xiv::exd::Exd m_MinionSkillTypeDat;
- xiv::exd::Exd m_MobHuntTargetDat;
- xiv::exd::Exd m_ModelCharaDat;
- xiv::exd::Exd m_MonsterNoteDat;
- xiv::exd::Exd m_MonsterNoteTargetDat;
- xiv::exd::Exd m_MountDat;
- xiv::exd::Exd m_MountActionDat;
- xiv::exd::Exd m_MoveTimelineDat;
- xiv::exd::Exd m_MoveVfxDat;
- xiv::exd::Exd m_NpcEquipDat;
- xiv::exd::Exd m_OmenDat;
- xiv::exd::Exd m_OnlineStatusDat;
- xiv::exd::Exd m_OpeningDat;
- xiv::exd::Exd m_OrchestrionDat;
- xiv::exd::Exd m_OrchestrionCategoryDat;
- xiv::exd::Exd m_OrchestrionPathDat;
- xiv::exd::Exd m_OrchestrionUiparamDat;
- xiv::exd::Exd m_ParamGrowDat;
- xiv::exd::Exd m_PerformDat;
- xiv::exd::Exd m_PerformTransientDat;
- xiv::exd::Exd m_PetDat;
- xiv::exd::Exd m_PetActionDat;
- xiv::exd::Exd m_PictureDat;
- xiv::exd::Exd m_PlaceNameDat;
- xiv::exd::Exd m_PublicContentDat;
- xiv::exd::Exd m_PvPActionSortDat;
- xiv::exd::Exd m_QuestDat;
- xiv::exd::Exd m_QuestClassJobRewardDat;
- xiv::exd::Exd m_QuestRepeatFlagDat;
- xiv::exd::Exd m_QuestRewardOtherDat;
- xiv::exd::Exd m_QuickChatDat;
- xiv::exd::Exd m_QuickChatTransientDat;
- xiv::exd::Exd m_RaceDat;
- xiv::exd::Exd m_RacingChocoboItemDat;
- xiv::exd::Exd m_RacingChocoboNameDat;
- xiv::exd::Exd m_RacingChocoboNameCategoryDat;
- xiv::exd::Exd m_RacingChocoboNameInfoDat;
- xiv::exd::Exd m_RacingChocoboParamDat;
- xiv::exd::Exd m_RecipeDat;
- xiv::exd::Exd m_RecipeElementDat;
- xiv::exd::Exd m_RecipeLevelTableDat;
- xiv::exd::Exd m_RecipeNotebookListDat;
- xiv::exd::Exd m_RecommendContentsDat;
- xiv::exd::Exd m_RelicDat;
- xiv::exd::Exd m_Relic3Dat;
- xiv::exd::Exd m_RelicItemDat;
- xiv::exd::Exd m_RelicNoteDat;
- xiv::exd::Exd m_RelicNoteCategoryDat;
- xiv::exd::Exd m_RetainerTaskDat;
- xiv::exd::Exd m_RetainerTaskLvRangeDat;
- xiv::exd::Exd m_RetainerTaskNormalDat;
- xiv::exd::Exd m_RetainerTaskParameterDat;
- xiv::exd::Exd m_RetainerTaskRandomDat;
- xiv::exd::Exd m_SalvageDat;
- xiv::exd::Exd m_SatisfactionNpcDat;
- xiv::exd::Exd m_SatisfactionSupplyDat;
- xiv::exd::Exd m_SatisfactionSupplyRewardDat;
- xiv::exd::Exd m_ScenarioTreeDat;
- xiv::exd::Exd m_ScenarioTreeTipsDat;
- xiv::exd::Exd m_ScenarioTreeTipsClassQuestDat;
- xiv::exd::Exd m_ScenarioTreeTipsQuestDat;
- xiv::exd::Exd m_ScenarioTypeDat;
- xiv::exd::Exd m_ScreenImageDat;
- xiv::exd::Exd m_SecretRecipeBookDat;
- xiv::exd::Exd m_SkyIsland2MissionDat;
- xiv::exd::Exd m_SkyIsland2MissionDetailDat;
- xiv::exd::Exd m_SkyIsland2MissionTypeDat;
- xiv::exd::Exd m_SkyIsland2RangeTypeDat;
- xiv::exd::Exd m_SpearfishingItemDat;
- xiv::exd::Exd m_SpearfishingNotebookDat;
- xiv::exd::Exd m_SpecialShopDat;
- xiv::exd::Exd m_SpecialShopItemCategoryDat;
- xiv::exd::Exd m_StainDat;
- xiv::exd::Exd m_StainTransientDat;
- xiv::exd::Exd m_StatusDat;
- xiv::exd::Exd m_StatusHitEffectDat;
- xiv::exd::Exd m_StatusLoopVFXDat;
- xiv::exd::Exd m_StoryDat;
- xiv::exd::Exd m_SubmarineExplorationDat;
- xiv::exd::Exd m_SubmarinePartDat;
- xiv::exd::Exd m_SubmarineRankDat;
- xiv::exd::Exd m_SwitchTalkDat;
- xiv::exd::Exd m_TerritoryTypeDat;
- xiv::exd::Exd m_TextCommandDat;
- xiv::exd::Exd m_TitleDat;
- xiv::exd::Exd m_TomestonesDat;
- xiv::exd::Exd m_TomestonesItemDat;
- xiv::exd::Exd m_TopicSelectDat;
- xiv::exd::Exd m_TownDat;
- xiv::exd::Exd m_TraitDat;
- xiv::exd::Exd m_TraitRecastDat;
- xiv::exd::Exd m_TraitTransientDat;
- xiv::exd::Exd m_TransformationDat;
- xiv::exd::Exd m_TreasureDat;
- xiv::exd::Exd m_TreasureHuntRankDat;
- xiv::exd::Exd m_TribeDat;
- xiv::exd::Exd m_TripleTriadDat;
- xiv::exd::Exd m_TripleTriadCardDat;
- xiv::exd::Exd m_TripleTriadCardRarityDat;
- xiv::exd::Exd m_TripleTriadCardResidentDat;
- xiv::exd::Exd m_TripleTriadCardTypeDat;
- xiv::exd::Exd m_TripleTriadCompetitionDat;
- xiv::exd::Exd m_TripleTriadRuleDat;
- xiv::exd::Exd m_TutorialDat;
- xiv::exd::Exd m_TutorialDPSDat;
- xiv::exd::Exd m_TutorialHealerDat;
- xiv::exd::Exd m_TutorialTankDat;
- xiv::exd::Exd m_VaseFlowerDat;
- xiv::exd::Exd m_VFXDat;
- xiv::exd::Exd m_WarpDat;
- xiv::exd::Exd m_WarpConditionDat;
- xiv::exd::Exd m_WeatherDat;
- xiv::exd::Exd m_WeatherGroupDat;
- xiv::exd::Exd m_WeatherRateDat;
- xiv::exd::Exd m_WeddingBGMDat;
- xiv::exd::Exd m_WeeklyBingoOrderDataDat;
- xiv::exd::Exd m_WeeklyBingoRewardDataDat;
- xiv::exd::Exd m_WeeklyBingoTextDat;
- xiv::exd::Exd m_WorldDat;
- xiv::exd::Exd m_WorldDCGroupTypeDat;
- xiv::exd::Exd m_YKWDat;
- xiv::exd::Exd m_ZoneSharedGroupDat;
+ xiv::exd::Exd m_AchievementDat;
+ xiv::exd::Exd m_AchievementCategoryDat;
+ xiv::exd::Exd m_AchievementKindDat;
+ xiv::exd::Exd m_ActionDat;
+ xiv::exd::Exd m_ActionCastTimelineDat;
+ xiv::exd::Exd m_ActionCastVFXDat;
+ xiv::exd::Exd m_ActionCategoryDat;
+ xiv::exd::Exd m_ActionComboRouteDat;
+ xiv::exd::Exd m_ActionIndirectionDat;
+ xiv::exd::Exd m_ActionParamDat;
+ xiv::exd::Exd m_ActionProcStatusDat;
+ xiv::exd::Exd m_ActionTimelineDat;
+ xiv::exd::Exd m_ActionTimelineReplaceDat;
+ xiv::exd::Exd m_ActionTransientDat;
+ xiv::exd::Exd m_AddonDat;
+ xiv::exd::Exd m_AdventureDat;
+ xiv::exd::Exd m_AdventureExPhaseDat;
+ xiv::exd::Exd m_AetherCurrentDat;
+ xiv::exd::Exd m_AetherCurrentCompFlgSetDat;
+ xiv::exd::Exd m_AetherialWheelDat;
+ xiv::exd::Exd m_AetheryteDat;
+ xiv::exd::Exd m_AirshipExplorationLevelDat;
+ xiv::exd::Exd m_AirshipExplorationLogDat;
+ xiv::exd::Exd m_AirshipExplorationParamTypeDat;
+ xiv::exd::Exd m_AirshipExplorationPartDat;
+ xiv::exd::Exd m_AirshipExplorationPointDat;
+ xiv::exd::Exd m_AnimaWeapon5Dat;
+ xiv::exd::Exd m_AnimaWeapon5ParamDat;
+ xiv::exd::Exd m_AnimaWeapon5PatternGroupDat;
+ xiv::exd::Exd m_AnimaWeapon5SpiritTalkDat;
+ xiv::exd::Exd m_AnimaWeapon5SpiritTalkParamDat;
+ xiv::exd::Exd m_AnimaWeapon5TradeItemDat;
+ xiv::exd::Exd m_AnimaWeaponFUITalkDat;
+ xiv::exd::Exd m_AnimaWeaponFUITalkParamDat;
+ xiv::exd::Exd m_AnimaWeaponIconDat;
+ xiv::exd::Exd m_AnimaWeaponItemDat;
+ xiv::exd::Exd m_AquariumFishDat;
+ xiv::exd::Exd m_AquariumWaterDat;
+ xiv::exd::Exd m_AttackTypeDat;
+ xiv::exd::Exd m_BalloonDat;
+ xiv::exd::Exd m_BaseParamDat;
+ xiv::exd::Exd m_BattleLeveDat;
+ xiv::exd::Exd m_BeastRankBonusDat;
+ xiv::exd::Exd m_BeastReputationRankDat;
+ xiv::exd::Exd m_BeastTribeDat;
+ xiv::exd::Exd m_BehaviorDat;
+ xiv::exd::Exd m_BGMDat;
+ xiv::exd::Exd m_BNpcAnnounceIconDat;
+ xiv::exd::Exd m_BNpcBaseDat;
+ xiv::exd::Exd m_BNpcCustomizeDat;
+ xiv::exd::Exd m_BNpcNameDat;
+ xiv::exd::Exd m_BuddyDat;
+ xiv::exd::Exd m_BuddyActionDat;
+ xiv::exd::Exd m_BuddyEquipDat;
+ xiv::exd::Exd m_BuddyItemDat;
+ xiv::exd::Exd m_BuddyRankDat;
+ xiv::exd::Exd m_BuddySkillDat;
+ xiv::exd::Exd m_CabinetDat;
+ xiv::exd::Exd m_CabinetCategoryDat;
+ xiv::exd::Exd m_CalendarDat;
+ xiv::exd::Exd m_CharaMakeCustomizeDat;
+ xiv::exd::Exd m_CharaMakeTypeDat;
+ xiv::exd::Exd m_ChocoboRaceDat;
+ xiv::exd::Exd m_ChocoboRaceAbilityDat;
+ xiv::exd::Exd m_ChocoboRaceAbilityTypeDat;
+ xiv::exd::Exd m_ChocoboRaceItemDat;
+ xiv::exd::Exd m_ChocoboRaceRankDat;
+ xiv::exd::Exd m_ChocoboRaceStatusDat;
+ xiv::exd::Exd m_ChocoboRaceTerritoryDat;
+ xiv::exd::Exd m_ChocoboTaxiDat;
+ xiv::exd::Exd m_ChocoboTaxiStandDat;
+ xiv::exd::Exd m_ClassJobDat;
+ xiv::exd::Exd m_ClassJobCategoryDat;
+ xiv::exd::Exd m_CompanionDat;
+ xiv::exd::Exd m_CompanionMoveDat;
+ xiv::exd::Exd m_CompanionTransientDat;
+ xiv::exd::Exd m_CompanyActionDat;
+ xiv::exd::Exd m_CompanyCraftDraftDat;
+ xiv::exd::Exd m_CompanyCraftDraftCategoryDat;
+ xiv::exd::Exd m_CompanyCraftManufactoryStateDat;
+ xiv::exd::Exd m_CompanyCraftPartDat;
+ xiv::exd::Exd m_CompanyCraftProcessDat;
+ xiv::exd::Exd m_CompanyCraftSequenceDat;
+ xiv::exd::Exd m_CompanyCraftSupplyItemDat;
+ xiv::exd::Exd m_CompanyCraftTypeDat;
+ xiv::exd::Exd m_CompleteJournalDat;
+ xiv::exd::Exd m_CompleteJournalCategoryDat;
+ xiv::exd::Exd m_ContentExActionDat;
+ xiv::exd::Exd m_ContentFinderConditionDat;
+ xiv::exd::Exd m_ContentFinderConditionTransientDat;
+ xiv::exd::Exd m_ContentMemberTypeDat;
+ xiv::exd::Exd m_ContentNpcTalkDat;
+ xiv::exd::Exd m_ContentRouletteDat;
+ xiv::exd::Exd m_ContentsNoteDat;
+ xiv::exd::Exd m_ContentsNoteCategoryDat;
+ xiv::exd::Exd m_ContentTalkDat;
+ xiv::exd::Exd m_ContentTalkParamDat;
+ xiv::exd::Exd m_ContentTypeDat;
+ xiv::exd::Exd m_CraftActionDat;
+ xiv::exd::Exd m_CraftLeveDat;
+ xiv::exd::Exd m_CraftTypeDat;
+ xiv::exd::Exd m_CurrencyDat;
+ xiv::exd::Exd m_CustomTalkDat;
+ xiv::exd::Exd m_CutsceneDat;
+ xiv::exd::Exd m_CutScreenImageDat;
+ xiv::exd::Exd m_DailySupplyItemDat;
+ xiv::exd::Exd m_DeepDungeonBanDat;
+ xiv::exd::Exd m_DeepDungeonDangerDat;
+ xiv::exd::Exd m_DeepDungeonEquipmentDat;
+ xiv::exd::Exd m_DeepDungeonFloorEffectUIDat;
+ xiv::exd::Exd m_DeepDungeonItemDat;
+ xiv::exd::Exd m_DeepDungeonStatusDat;
+ xiv::exd::Exd m_DefaultTalkDat;
+ xiv::exd::Exd m_DeliveryQuestDat;
+ xiv::exd::Exd m_DisposalShopDat;
+ xiv::exd::Exd m_DisposalShopFilterTypeDat;
+ xiv::exd::Exd m_DisposalShopItemDat;
+ xiv::exd::Exd m_DpsChallengeDat;
+ xiv::exd::Exd m_DpsChallengeOfficerDat;
+ xiv::exd::Exd m_DpsChallengeTransientDat;
+ xiv::exd::Exd m_EmoteDat;
+ xiv::exd::Exd m_EmoteCategoryDat;
+ xiv::exd::Exd m_EmoteModeDat;
+ xiv::exd::Exd m_ENpcBaseDat;
+ xiv::exd::Exd m_ENpcResidentDat;
+ xiv::exd::Exd m_EObjDat;
+ xiv::exd::Exd m_EObjNameDat;
+ xiv::exd::Exd m_EquipRaceCategoryDat;
+ xiv::exd::Exd m_EquipSlotCategoryDat;
+ xiv::exd::Exd m_EurekaAethernetDat;
+ xiv::exd::Exd m_EurekaGrowDataDat;
+ xiv::exd::Exd m_EurekaSphereElementAdjustDat;
+ xiv::exd::Exd m_EventActionDat;
+ xiv::exd::Exd m_EventIconPriorityDat;
+ xiv::exd::Exd m_EventIconTypeDat;
+ xiv::exd::Exd m_EventItemDat;
+ xiv::exd::Exd m_EventItemHelpDat;
+ xiv::exd::Exd m_ExVersionDat;
+ xiv::exd::Exd m_FateDat;
+ xiv::exd::Exd m_FCActivityDat;
+ xiv::exd::Exd m_FCActivityCategoryDat;
+ xiv::exd::Exd m_FCAuthorityDat;
+ xiv::exd::Exd m_FCAuthorityCategoryDat;
+ xiv::exd::Exd m_FCChestNameDat;
+ xiv::exd::Exd m_FccShopDat;
+ xiv::exd::Exd m_FCHierarchyDat;
+ xiv::exd::Exd m_FCProfileDat;
+ xiv::exd::Exd m_FCReputationDat;
+ xiv::exd::Exd m_FCRightsDat;
+ xiv::exd::Exd m_FieldMarkerDat;
+ xiv::exd::Exd m_FishingSpotDat;
+ xiv::exd::Exd m_FishParameterDat;
+ xiv::exd::Exd m_GardeningSeedDat;
+ xiv::exd::Exd m_GatheringConditionDat;
+ xiv::exd::Exd m_GatheringExpDat;
+ xiv::exd::Exd m_GatheringItemDat;
+ xiv::exd::Exd m_GatheringItemLevelConvertTableDat;
+ xiv::exd::Exd m_GatheringItemPointDat;
+ xiv::exd::Exd m_GatheringNotebookListDat;
+ xiv::exd::Exd m_GatheringPointDat;
+ xiv::exd::Exd m_GatheringPointBaseDat;
+ xiv::exd::Exd m_GatheringPointBonusDat;
+ xiv::exd::Exd m_GatheringPointBonusTypeDat;
+ xiv::exd::Exd m_GatheringPointNameDat;
+ xiv::exd::Exd m_GatheringSubCategoryDat;
+ xiv::exd::Exd m_GatheringTypeDat;
+ xiv::exd::Exd m_GcArmyExpeditionDat;
+ xiv::exd::Exd m_GcArmyExpeditionMemberBonusDat;
+ xiv::exd::Exd m_GcArmyExpeditionTypeDat;
+ xiv::exd::Exd m_GcArmyMemberGrowDat;
+ xiv::exd::Exd m_GcArmyTrainingDat;
+ xiv::exd::Exd m_GCRankGridaniaFemaleTextDat;
+ xiv::exd::Exd m_GCRankGridaniaMaleTextDat;
+ xiv::exd::Exd m_GCRankLimsaFemaleTextDat;
+ xiv::exd::Exd m_GCRankLimsaMaleTextDat;
+ xiv::exd::Exd m_GCRankUldahFemaleTextDat;
+ xiv::exd::Exd m_GCRankUldahMaleTextDat;
+ xiv::exd::Exd m_GCScripShopCategoryDat;
+ xiv::exd::Exd m_GCScripShopItemDat;
+ xiv::exd::Exd m_GCShopDat;
+ xiv::exd::Exd m_GCShopItemCategoryDat;
+ xiv::exd::Exd m_GCSupplyDutyDat;
+ xiv::exd::Exd m_GCSupplyDutyRewardDat;
+ xiv::exd::Exd m_GeneralActionDat;
+ xiv::exd::Exd m_GilShopDat;
+ xiv::exd::Exd m_GilShopItemDat;
+ xiv::exd::Exd m_GoldSaucerTextDataDat;
+ xiv::exd::Exd m_GrandCompanyDat;
+ xiv::exd::Exd m_GrandCompanyRankDat;
+ xiv::exd::Exd m_GuardianDeityDat;
+ xiv::exd::Exd m_GuildleveAssignmentDat;
+ xiv::exd::Exd m_GuildOrderGuideDat;
+ xiv::exd::Exd m_GuildOrderOfficerDat;
+ xiv::exd::Exd m_HouseRetainerPoseDat;
+ xiv::exd::Exd m_HousingFurnitureDat;
+ xiv::exd::Exd m_HousingYardObjectDat;
+ xiv::exd::Exd m_InstanceContentDat;
+ xiv::exd::Exd m_InstanceContentBuffDat;
+ xiv::exd::Exd m_InstanceContentTextDataDat;
+ xiv::exd::Exd m_ItemDat;
+ xiv::exd::Exd m_ItemActionDat;
+ xiv::exd::Exd m_ItemFoodDat;
+ xiv::exd::Exd m_ItemSearchCategoryDat;
+ xiv::exd::Exd m_ItemSeriesDat;
+ xiv::exd::Exd m_ItemSpecialBonusDat;
+ xiv::exd::Exd m_ItemUICategoryDat;
+ xiv::exd::Exd m_JournalCategoryDat;
+ xiv::exd::Exd m_JournalGenreDat;
+ xiv::exd::Exd m_JournalSectionDat;
+ xiv::exd::Exd m_LeveDat;
+ xiv::exd::Exd m_LeveAssignmentTypeDat;
+ xiv::exd::Exd m_LeveClientDat;
+ xiv::exd::Exd m_LevelDat;
+ xiv::exd::Exd m_LeveRewardItemDat;
+ xiv::exd::Exd m_LeveRewardItemGroupDat;
+ xiv::exd::Exd m_LeveVfxDat;
+ xiv::exd::Exd m_LogFilterDat;
+ xiv::exd::Exd m_LogKindDat;
+ xiv::exd::Exd m_LogKindCategoryTextDat;
+ xiv::exd::Exd m_LogMessageDat;
+ xiv::exd::Exd m_MacroIconDat;
+ xiv::exd::Exd m_MacroIconRedirectOldDat;
+ xiv::exd::Exd m_MainCommandDat;
+ xiv::exd::Exd m_MainCommandCategoryDat;
+ xiv::exd::Exd m_MapDat;
+ xiv::exd::Exd m_MapMarkerDat;
+ xiv::exd::Exd m_MapMarkerRegionDat;
+ xiv::exd::Exd m_MapSymbolDat;
+ xiv::exd::Exd m_MarkerDat;
+ xiv::exd::Exd m_MasterpieceSupplyDutyDat;
+ xiv::exd::Exd m_MasterpieceSupplyMultiplierDat;
+ xiv::exd::Exd m_MateriaDat;
+ xiv::exd::Exd m_MinionRaceDat;
+ xiv::exd::Exd m_MinionRulesDat;
+ xiv::exd::Exd m_MinionSkillTypeDat;
+ xiv::exd::Exd m_MobHuntTargetDat;
+ xiv::exd::Exd m_ModelCharaDat;
+ xiv::exd::Exd m_MonsterNoteDat;
+ xiv::exd::Exd m_MonsterNoteTargetDat;
+ xiv::exd::Exd m_MountDat;
+ xiv::exd::Exd m_MountActionDat;
+ xiv::exd::Exd m_MoveTimelineDat;
+ xiv::exd::Exd m_MoveVfxDat;
+ xiv::exd::Exd m_NpcEquipDat;
+ xiv::exd::Exd m_OmenDat;
+ xiv::exd::Exd m_OnlineStatusDat;
+ xiv::exd::Exd m_OpeningDat;
+ xiv::exd::Exd m_OrchestrionDat;
+ xiv::exd::Exd m_OrchestrionCategoryDat;
+ xiv::exd::Exd m_OrchestrionPathDat;
+ xiv::exd::Exd m_OrchestrionUiparamDat;
+ xiv::exd::Exd m_ParamGrowDat;
+ xiv::exd::Exd m_PerformDat;
+ xiv::exd::Exd m_PerformTransientDat;
+ xiv::exd::Exd m_PetDat;
+ xiv::exd::Exd m_PetActionDat;
+ xiv::exd::Exd m_PictureDat;
+ xiv::exd::Exd m_PlaceNameDat;
+ xiv::exd::Exd m_PublicContentDat;
+ xiv::exd::Exd m_PvPActionSortDat;
+ xiv::exd::Exd m_QuestDat;
+ xiv::exd::Exd m_QuestClassJobRewardDat;
+ xiv::exd::Exd m_QuestRepeatFlagDat;
+ xiv::exd::Exd m_QuestRewardOtherDat;
+ xiv::exd::Exd m_QuickChatDat;
+ xiv::exd::Exd m_QuickChatTransientDat;
+ xiv::exd::Exd m_RaceDat;
+ xiv::exd::Exd m_RacingChocoboItemDat;
+ xiv::exd::Exd m_RacingChocoboNameDat;
+ xiv::exd::Exd m_RacingChocoboNameCategoryDat;
+ xiv::exd::Exd m_RacingChocoboNameInfoDat;
+ xiv::exd::Exd m_RacingChocoboParamDat;
+ xiv::exd::Exd m_RecipeDat;
+ xiv::exd::Exd m_RecipeElementDat;
+ xiv::exd::Exd m_RecipeLevelTableDat;
+ xiv::exd::Exd m_RecipeNotebookListDat;
+ xiv::exd::Exd m_RecommendContentsDat;
+ xiv::exd::Exd m_RelicDat;
+ xiv::exd::Exd m_Relic3Dat;
+ xiv::exd::Exd m_RelicItemDat;
+ xiv::exd::Exd m_RelicNoteDat;
+ xiv::exd::Exd m_RelicNoteCategoryDat;
+ xiv::exd::Exd m_RetainerTaskDat;
+ xiv::exd::Exd m_RetainerTaskLvRangeDat;
+ xiv::exd::Exd m_RetainerTaskNormalDat;
+ xiv::exd::Exd m_RetainerTaskParameterDat;
+ xiv::exd::Exd m_RetainerTaskRandomDat;
+ xiv::exd::Exd m_SalvageDat;
+ xiv::exd::Exd m_SatisfactionNpcDat;
+ xiv::exd::Exd m_SatisfactionSupplyDat;
+ xiv::exd::Exd m_SatisfactionSupplyRewardDat;
+ xiv::exd::Exd m_ScenarioTreeDat;
+ xiv::exd::Exd m_ScenarioTreeTipsDat;
+ xiv::exd::Exd m_ScenarioTreeTipsClassQuestDat;
+ xiv::exd::Exd m_ScenarioTreeTipsQuestDat;
+ xiv::exd::Exd m_ScenarioTypeDat;
+ xiv::exd::Exd m_ScreenImageDat;
+ xiv::exd::Exd m_SecretRecipeBookDat;
+ xiv::exd::Exd m_SkyIsland2MissionDat;
+ xiv::exd::Exd m_SkyIsland2MissionDetailDat;
+ xiv::exd::Exd m_SkyIsland2MissionTypeDat;
+ xiv::exd::Exd m_SkyIsland2RangeTypeDat;
+ xiv::exd::Exd m_SpearfishingItemDat;
+ xiv::exd::Exd m_SpearfishingNotebookDat;
+ xiv::exd::Exd m_SpecialShopDat;
+ xiv::exd::Exd m_SpecialShopItemCategoryDat;
+ xiv::exd::Exd m_StainDat;
+ xiv::exd::Exd m_StainTransientDat;
+ xiv::exd::Exd m_StatusDat;
+ xiv::exd::Exd m_StatusHitEffectDat;
+ xiv::exd::Exd m_StatusLoopVFXDat;
+ xiv::exd::Exd m_StoryDat;
+ xiv::exd::Exd m_SubmarineExplorationDat;
+ xiv::exd::Exd m_SubmarinePartDat;
+ xiv::exd::Exd m_SubmarineRankDat;
+ xiv::exd::Exd m_SwitchTalkDat;
+ xiv::exd::Exd m_TerritoryTypeDat;
+ xiv::exd::Exd m_TextCommandDat;
+ xiv::exd::Exd m_TitleDat;
+ xiv::exd::Exd m_TomestonesDat;
+ xiv::exd::Exd m_TomestonesItemDat;
+ xiv::exd::Exd m_TopicSelectDat;
+ xiv::exd::Exd m_TownDat;
+ xiv::exd::Exd m_TraitDat;
+ xiv::exd::Exd m_TraitRecastDat;
+ xiv::exd::Exd m_TraitTransientDat;
+ xiv::exd::Exd m_TransformationDat;
+ xiv::exd::Exd m_TreasureDat;
+ xiv::exd::Exd m_TreasureHuntRankDat;
+ xiv::exd::Exd m_TribeDat;
+ xiv::exd::Exd m_TripleTriadDat;
+ xiv::exd::Exd m_TripleTriadCardDat;
+ xiv::exd::Exd m_TripleTriadCardRarityDat;
+ xiv::exd::Exd m_TripleTriadCardResidentDat;
+ xiv::exd::Exd m_TripleTriadCardTypeDat;
+ xiv::exd::Exd m_TripleTriadCompetitionDat;
+ xiv::exd::Exd m_TripleTriadRuleDat;
+ xiv::exd::Exd m_TutorialDat;
+ xiv::exd::Exd m_TutorialDPSDat;
+ xiv::exd::Exd m_TutorialHealerDat;
+ xiv::exd::Exd m_TutorialTankDat;
+ xiv::exd::Exd m_VaseFlowerDat;
+ xiv::exd::Exd m_VFXDat;
+ xiv::exd::Exd m_WarpDat;
+ xiv::exd::Exd m_WarpConditionDat;
+ xiv::exd::Exd m_WeatherDat;
+ xiv::exd::Exd m_WeatherGroupDat;
+ xiv::exd::Exd m_WeatherRateDat;
+ xiv::exd::Exd m_WeddingBGMDat;
+ xiv::exd::Exd m_WeeklyBingoOrderDataDat;
+ xiv::exd::Exd m_WeeklyBingoRewardDataDat;
+ xiv::exd::Exd m_WeeklyBingoTextDat;
+ xiv::exd::Exd m_WorldDat;
+ xiv::exd::Exd m_WorldDCGroupTypeDat;
+ xiv::exd::Exd m_YKWDat;
+ xiv::exd::Exd m_ZoneSharedGroupDat;
- using AchievementPtr = boost::shared_ptr< Achievement >;
- using AchievementCategoryPtr = boost::shared_ptr< AchievementCategory >;
- using AchievementKindPtr = boost::shared_ptr< AchievementKind >;
- using ActionPtr = boost::shared_ptr< Action >;
- using ActionCastTimelinePtr = boost::shared_ptr< ActionCastTimeline >;
- using ActionCastVFXPtr = boost::shared_ptr< ActionCastVFX >;
- using ActionCategoryPtr = boost::shared_ptr< ActionCategory >;
- using ActionComboRoutePtr = boost::shared_ptr< ActionComboRoute >;
- using ActionIndirectionPtr = boost::shared_ptr< ActionIndirection >;
- using ActionParamPtr = boost::shared_ptr< ActionParam >;
- using ActionProcStatusPtr = boost::shared_ptr< ActionProcStatus >;
- using ActionTimelinePtr = boost::shared_ptr< ActionTimeline >;
- using ActionTimelineReplacePtr = boost::shared_ptr< ActionTimelineReplace >;
- using ActionTransientPtr = boost::shared_ptr< ActionTransient >;
- using AddonPtr = boost::shared_ptr< Addon >;
- using AdventurePtr = boost::shared_ptr< Adventure >;
- using AdventureExPhasePtr = boost::shared_ptr< AdventureExPhase >;
- using AetherCurrentPtr = boost::shared_ptr< AetherCurrent >;
- using AetherCurrentCompFlgSetPtr = boost::shared_ptr< AetherCurrentCompFlgSet >;
- using AetherialWheelPtr = boost::shared_ptr< AetherialWheel >;
- using AetherytePtr = boost::shared_ptr< Aetheryte >;
- using AirshipExplorationLevelPtr = boost::shared_ptr< AirshipExplorationLevel >;
- using AirshipExplorationLogPtr = boost::shared_ptr< AirshipExplorationLog >;
- using AirshipExplorationParamTypePtr = boost::shared_ptr< AirshipExplorationParamType >;
- using AirshipExplorationPartPtr = boost::shared_ptr< AirshipExplorationPart >;
- using AirshipExplorationPointPtr = boost::shared_ptr< AirshipExplorationPoint >;
- using AnimaWeapon5Ptr = boost::shared_ptr< AnimaWeapon5 >;
- using AnimaWeapon5ParamPtr = boost::shared_ptr< AnimaWeapon5Param >;
- using AnimaWeapon5PatternGroupPtr = boost::shared_ptr< AnimaWeapon5PatternGroup >;
- using AnimaWeapon5SpiritTalkPtr = boost::shared_ptr< AnimaWeapon5SpiritTalk >;
- using AnimaWeapon5SpiritTalkParamPtr = boost::shared_ptr< AnimaWeapon5SpiritTalkParam >;
- using AnimaWeapon5TradeItemPtr = boost::shared_ptr< AnimaWeapon5TradeItem >;
- using AnimaWeaponFUITalkPtr = boost::shared_ptr< AnimaWeaponFUITalk >;
- using AnimaWeaponFUITalkParamPtr = boost::shared_ptr< AnimaWeaponFUITalkParam >;
- using AnimaWeaponIconPtr = boost::shared_ptr< AnimaWeaponIcon >;
- using AnimaWeaponItemPtr = boost::shared_ptr< AnimaWeaponItem >;
- using AquariumFishPtr = boost::shared_ptr< AquariumFish >;
- using AquariumWaterPtr = boost::shared_ptr< AquariumWater >;
- using AttackTypePtr = boost::shared_ptr< AttackType >;
- using BalloonPtr = boost::shared_ptr< Balloon >;
- using BaseParamPtr = boost::shared_ptr< BaseParam >;
- using BattleLevePtr = boost::shared_ptr< BattleLeve >;
- using BeastRankBonusPtr = boost::shared_ptr< BeastRankBonus >;
- using BeastReputationRankPtr = boost::shared_ptr< BeastReputationRank >;
- using BeastTribePtr = boost::shared_ptr< BeastTribe >;
- using BehaviorPtr = boost::shared_ptr< Behavior >;
- using BGMPtr = boost::shared_ptr< BGM >;
- using BNpcAnnounceIconPtr = boost::shared_ptr< BNpcAnnounceIcon >;
- using BNpcBasePtr = boost::shared_ptr< BNpcBase >;
- using BNpcCustomizePtr = boost::shared_ptr< BNpcCustomize >;
- using BNpcNamePtr = boost::shared_ptr< BNpcName >;
- using BuddyPtr = boost::shared_ptr< Buddy >;
- using BuddyActionPtr = boost::shared_ptr< BuddyAction >;
- using BuddyEquipPtr = boost::shared_ptr< BuddyEquip >;
- using BuddyItemPtr = boost::shared_ptr< BuddyItem >;
- using BuddyRankPtr = boost::shared_ptr< BuddyRank >;
- using BuddySkillPtr = boost::shared_ptr< BuddySkill >;
- using CabinetPtr = boost::shared_ptr< Cabinet >;
- using CabinetCategoryPtr = boost::shared_ptr< CabinetCategory >;
- using CalendarPtr = boost::shared_ptr< Calendar >;
- using CharaMakeCustomizePtr = boost::shared_ptr< CharaMakeCustomize >;
- using CharaMakeTypePtr = boost::shared_ptr< CharaMakeType >;
- using ChocoboRacePtr = boost::shared_ptr< ChocoboRace >;
- using ChocoboRaceAbilityPtr = boost::shared_ptr< ChocoboRaceAbility >;
- using ChocoboRaceAbilityTypePtr = boost::shared_ptr< ChocoboRaceAbilityType >;
- using ChocoboRaceItemPtr = boost::shared_ptr< ChocoboRaceItem >;
- using ChocoboRaceRankPtr = boost::shared_ptr< ChocoboRaceRank >;
- using ChocoboRaceStatusPtr = boost::shared_ptr< ChocoboRaceStatus >;
- using ChocoboRaceTerritoryPtr = boost::shared_ptr< ChocoboRaceTerritory >;
- using ChocoboTaxiPtr = boost::shared_ptr< ChocoboTaxi >;
- using ChocoboTaxiStandPtr = boost::shared_ptr< ChocoboTaxiStand >;
- using ClassJobPtr = boost::shared_ptr< ClassJob >;
- using ClassJobCategoryPtr = boost::shared_ptr< ClassJobCategory >;
- using CompanionPtr = boost::shared_ptr< Companion >;
- using CompanionMovePtr = boost::shared_ptr< CompanionMove >;
- using CompanionTransientPtr = boost::shared_ptr< CompanionTransient >;
- using CompanyActionPtr = boost::shared_ptr< CompanyAction >;
- using CompanyCraftDraftPtr = boost::shared_ptr< CompanyCraftDraft >;
- using CompanyCraftDraftCategoryPtr = boost::shared_ptr< CompanyCraftDraftCategory >;
- using CompanyCraftManufactoryStatePtr = boost::shared_ptr< CompanyCraftManufactoryState >;
- using CompanyCraftPartPtr = boost::shared_ptr< CompanyCraftPart >;
- using CompanyCraftProcessPtr = boost::shared_ptr< CompanyCraftProcess >;
- using CompanyCraftSequencePtr = boost::shared_ptr< CompanyCraftSequence >;
- using CompanyCraftSupplyItemPtr = boost::shared_ptr< CompanyCraftSupplyItem >;
- using CompanyCraftTypePtr = boost::shared_ptr< CompanyCraftType >;
- using CompleteJournalPtr = boost::shared_ptr< CompleteJournal >;
- using CompleteJournalCategoryPtr = boost::shared_ptr< CompleteJournalCategory >;
- using ContentExActionPtr = boost::shared_ptr< ContentExAction >;
- using ContentFinderConditionPtr = boost::shared_ptr< ContentFinderCondition >;
- using ContentFinderConditionTransientPtr = boost::shared_ptr< ContentFinderConditionTransient >;
- using ContentMemberTypePtr = boost::shared_ptr< ContentMemberType >;
- using ContentNpcTalkPtr = boost::shared_ptr< ContentNpcTalk >;
- using ContentRoulettePtr = boost::shared_ptr< ContentRoulette >;
- using ContentsNotePtr = boost::shared_ptr< ContentsNote >;
- using ContentsNoteCategoryPtr = boost::shared_ptr< ContentsNoteCategory >;
- using ContentTalkPtr = boost::shared_ptr< ContentTalk >;
- using ContentTalkParamPtr = boost::shared_ptr< ContentTalkParam >;
- using ContentTypePtr = boost::shared_ptr< ContentType >;
- using CraftActionPtr = boost::shared_ptr< CraftAction >;
- using CraftLevePtr = boost::shared_ptr< CraftLeve >;
- using CraftTypePtr = boost::shared_ptr< CraftType >;
- using CurrencyPtr = boost::shared_ptr< Currency >;
- using CustomTalkPtr = boost::shared_ptr< CustomTalk >;
- using CutscenePtr = boost::shared_ptr< Cutscene >;
- using CutScreenImagePtr = boost::shared_ptr< CutScreenImage >;
- using DailySupplyItemPtr = boost::shared_ptr< DailySupplyItem >;
- using DeepDungeonBanPtr = boost::shared_ptr< DeepDungeonBan >;
- using DeepDungeonDangerPtr = boost::shared_ptr< DeepDungeonDanger >;
- using DeepDungeonEquipmentPtr = boost::shared_ptr< DeepDungeonEquipment >;
- using DeepDungeonFloorEffectUIPtr = boost::shared_ptr< DeepDungeonFloorEffectUI >;
- using DeepDungeonItemPtr = boost::shared_ptr< DeepDungeonItem >;
- using DeepDungeonStatusPtr = boost::shared_ptr< DeepDungeonStatus >;
- using DefaultTalkPtr = boost::shared_ptr< DefaultTalk >;
- using DeliveryQuestPtr = boost::shared_ptr< DeliveryQuest >;
- using DisposalShopPtr = boost::shared_ptr< DisposalShop >;
- using DisposalShopFilterTypePtr = boost::shared_ptr< DisposalShopFilterType >;
- using DisposalShopItemPtr = boost::shared_ptr< DisposalShopItem >;
- using DpsChallengePtr = boost::shared_ptr< DpsChallenge >;
- using DpsChallengeOfficerPtr = boost::shared_ptr< DpsChallengeOfficer >;
- using DpsChallengeTransientPtr = boost::shared_ptr< DpsChallengeTransient >;
- using EmotePtr = boost::shared_ptr< Emote >;
- using EmoteCategoryPtr = boost::shared_ptr< EmoteCategory >;
- using ENpcBasePtr = boost::shared_ptr< ENpcBase >;
- using ENpcResidentPtr = boost::shared_ptr< ENpcResident >;
- using EObjPtr = boost::shared_ptr< EObj >;
- using EObjNamePtr = boost::shared_ptr< EObjName >;
- using EquipRaceCategoryPtr = boost::shared_ptr< EquipRaceCategory >;
- using EquipSlotCategoryPtr = boost::shared_ptr< EquipSlotCategory >;
- using EurekaAethernetPtr = boost::shared_ptr< EurekaAethernet >;
- using EurekaGrowDataPtr = boost::shared_ptr< EurekaGrowData >;
- using EurekaSphereElementAdjustPtr = boost::shared_ptr< EurekaSphereElementAdjust >;
- using EventActionPtr = boost::shared_ptr< EventAction >;
- using EventIconPriorityPtr = boost::shared_ptr< EventIconPriority >;
- using EventIconTypePtr = boost::shared_ptr< EventIconType >;
- using EventItemPtr = boost::shared_ptr< EventItem >;
- using EventItemHelpPtr = boost::shared_ptr< EventItemHelp >;
- using ExVersionPtr = boost::shared_ptr< ExVersion >;
- using FatePtr = boost::shared_ptr< Fate >;
- using FCActivityPtr = boost::shared_ptr< FCActivity >;
- using FCActivityCategoryPtr = boost::shared_ptr< FCActivityCategory >;
- using FCAuthorityPtr = boost::shared_ptr< FCAuthority >;
- using FCAuthorityCategoryPtr = boost::shared_ptr< FCAuthorityCategory >;
- using FCChestNamePtr = boost::shared_ptr< FCChestName >;
- using FccShopPtr = boost::shared_ptr< FccShop >;
- using FCHierarchyPtr = boost::shared_ptr< FCHierarchy >;
- using FCProfilePtr = boost::shared_ptr< FCProfile >;
- using FCReputationPtr = boost::shared_ptr< FCReputation >;
- using FCRightsPtr = boost::shared_ptr< FCRights >;
- using FieldMarkerPtr = boost::shared_ptr< FieldMarker >;
- using FishingSpotPtr = boost::shared_ptr< FishingSpot >;
- using FishParameterPtr = boost::shared_ptr< FishParameter >;
- using GardeningSeedPtr = boost::shared_ptr< GardeningSeed >;
- using GatheringConditionPtr = boost::shared_ptr< GatheringCondition >;
- using GatheringExpPtr = boost::shared_ptr< GatheringExp >;
- using GatheringItemPtr = boost::shared_ptr< GatheringItem >;
- using GatheringItemLevelConvertTablePtr = boost::shared_ptr< GatheringItemLevelConvertTable >;
- using GatheringItemPointPtr = boost::shared_ptr< GatheringItemPoint >;
- using GatheringNotebookListPtr = boost::shared_ptr< GatheringNotebookList >;
- using GatheringPointPtr = boost::shared_ptr< GatheringPoint >;
- using GatheringPointBasePtr = boost::shared_ptr< GatheringPointBase >;
- using GatheringPointBonusPtr = boost::shared_ptr< GatheringPointBonus >;
- using GatheringPointBonusTypePtr = boost::shared_ptr< GatheringPointBonusType >;
- using GatheringPointNamePtr = boost::shared_ptr< GatheringPointName >;
- using GatheringSubCategoryPtr = boost::shared_ptr< GatheringSubCategory >;
- using GatheringTypePtr = boost::shared_ptr< GatheringType >;
- using GcArmyExpeditionPtr = boost::shared_ptr< GcArmyExpedition >;
- using GcArmyExpeditionMemberBonusPtr = boost::shared_ptr< GcArmyExpeditionMemberBonus >;
- using GcArmyExpeditionTypePtr = boost::shared_ptr< GcArmyExpeditionType >;
- using GcArmyMemberGrowPtr = boost::shared_ptr< GcArmyMemberGrow >;
- using GcArmyTrainingPtr = boost::shared_ptr< GcArmyTraining >;
- using GCRankGridaniaFemaleTextPtr = boost::shared_ptr< GCRankGridaniaFemaleText >;
- using GCRankGridaniaMaleTextPtr = boost::shared_ptr< GCRankGridaniaMaleText >;
- using GCRankLimsaFemaleTextPtr = boost::shared_ptr< GCRankLimsaFemaleText >;
- using GCRankLimsaMaleTextPtr = boost::shared_ptr< GCRankLimsaMaleText >;
- using GCRankUldahFemaleTextPtr = boost::shared_ptr< GCRankUldahFemaleText >;
- using GCRankUldahMaleTextPtr = boost::shared_ptr< GCRankUldahMaleText >;
- using GCScripShopCategoryPtr = boost::shared_ptr< GCScripShopCategory >;
- using GCScripShopItemPtr = boost::shared_ptr< GCScripShopItem >;
- using GCShopPtr = boost::shared_ptr< GCShop >;
- using GCShopItemCategoryPtr = boost::shared_ptr< GCShopItemCategory >;
- using GCSupplyDutyPtr = boost::shared_ptr< GCSupplyDuty >;
- using GCSupplyDutyRewardPtr = boost::shared_ptr< GCSupplyDutyReward >;
- using GeneralActionPtr = boost::shared_ptr< GeneralAction >;
- using GilShopPtr = boost::shared_ptr< GilShop >;
- using GilShopItemPtr = boost::shared_ptr< GilShopItem >;
- using GoldSaucerTextDataPtr = boost::shared_ptr< GoldSaucerTextData >;
- using GrandCompanyPtr = boost::shared_ptr< GrandCompany >;
- using GrandCompanyRankPtr = boost::shared_ptr< GrandCompanyRank >;
- using GuardianDeityPtr = boost::shared_ptr< GuardianDeity >;
- using GuildleveAssignmentPtr = boost::shared_ptr< GuildleveAssignment >;
- using GuildOrderGuidePtr = boost::shared_ptr< GuildOrderGuide >;
- using GuildOrderOfficerPtr = boost::shared_ptr< GuildOrderOfficer >;
- using HouseRetainerPosePtr = boost::shared_ptr< HouseRetainerPose >;
- using HousingFurniturePtr = boost::shared_ptr< HousingFurniture >;
- using HousingYardObjectPtr = boost::shared_ptr< HousingYardObject >;
- using InstanceContentPtr = boost::shared_ptr< InstanceContent >;
- using InstanceContentBuffPtr = boost::shared_ptr< InstanceContentBuff >;
- using InstanceContentTextDataPtr = boost::shared_ptr< InstanceContentTextData >;
- using ItemPtr = boost::shared_ptr< Item >;
- using ItemActionPtr = boost::shared_ptr< ItemAction >;
- using ItemFoodPtr = boost::shared_ptr< ItemFood >;
- using ItemSearchCategoryPtr = boost::shared_ptr< ItemSearchCategory >;
- using ItemSeriesPtr = boost::shared_ptr< ItemSeries >;
- using ItemSpecialBonusPtr = boost::shared_ptr< ItemSpecialBonus >;
- using ItemUICategoryPtr = boost::shared_ptr< ItemUICategory >;
- using JournalCategoryPtr = boost::shared_ptr< JournalCategory >;
- using JournalGenrePtr = boost::shared_ptr< JournalGenre >;
- using JournalSectionPtr = boost::shared_ptr< JournalSection >;
- using LevePtr = boost::shared_ptr< Leve >;
- using LeveAssignmentTypePtr = boost::shared_ptr< LeveAssignmentType >;
- using LeveClientPtr = boost::shared_ptr< LeveClient >;
- using LevelPtr = boost::shared_ptr< Level >;
- using LeveRewardItemPtr = boost::shared_ptr< LeveRewardItem >;
- using LeveRewardItemGroupPtr = boost::shared_ptr< LeveRewardItemGroup >;
- using LeveVfxPtr = boost::shared_ptr< LeveVfx >;
- using LogFilterPtr = boost::shared_ptr< LogFilter >;
- using LogKindPtr = boost::shared_ptr< LogKind >;
- using LogKindCategoryTextPtr = boost::shared_ptr< LogKindCategoryText >;
- using LogMessagePtr = boost::shared_ptr< LogMessage >;
- using MacroIconPtr = boost::shared_ptr< MacroIcon >;
- using MacroIconRedirectOldPtr = boost::shared_ptr< MacroIconRedirectOld >;
- using MainCommandPtr = boost::shared_ptr< MainCommand >;
- using MainCommandCategoryPtr = boost::shared_ptr< MainCommandCategory >;
- using MapPtr = boost::shared_ptr< Map >;
- using MapMarkerPtr = boost::shared_ptr< MapMarker >;
- using MapMarkerRegionPtr = boost::shared_ptr< MapMarkerRegion >;
- using MapSymbolPtr = boost::shared_ptr< MapSymbol >;
- using MarkerPtr = boost::shared_ptr< Marker >;
- using MasterpieceSupplyDutyPtr = boost::shared_ptr< MasterpieceSupplyDuty >;
- using MasterpieceSupplyMultiplierPtr = boost::shared_ptr< MasterpieceSupplyMultiplier >;
- using MateriaPtr = boost::shared_ptr< Materia >;
- using MinionRacePtr = boost::shared_ptr< MinionRace >;
- using MinionRulesPtr = boost::shared_ptr< MinionRules >;
- using MinionSkillTypePtr = boost::shared_ptr< MinionSkillType >;
- using MobHuntTargetPtr = boost::shared_ptr< MobHuntTarget >;
- using ModelCharaPtr = boost::shared_ptr< ModelChara >;
- using MonsterNotePtr = boost::shared_ptr< MonsterNote >;
- using MonsterNoteTargetPtr = boost::shared_ptr< MonsterNoteTarget >;
- using MountPtr = boost::shared_ptr< Mount >;
- using MountActionPtr = boost::shared_ptr< MountAction >;
- using MoveTimelinePtr = boost::shared_ptr< MoveTimeline >;
- using MoveVfxPtr = boost::shared_ptr< MoveVfx >;
- using NpcEquipPtr = boost::shared_ptr< NpcEquip >;
- using OmenPtr = boost::shared_ptr< Omen >;
- using OnlineStatusPtr = boost::shared_ptr< OnlineStatus >;
- using OpeningPtr = boost::shared_ptr< Opening >;
- using OrchestrionPtr = boost::shared_ptr< Orchestrion >;
- using OrchestrionCategoryPtr = boost::shared_ptr< OrchestrionCategory >;
- using OrchestrionPathPtr = boost::shared_ptr< OrchestrionPath >;
- using OrchestrionUiparamPtr = boost::shared_ptr< OrchestrionUiparam >;
- using ParamGrowPtr = boost::shared_ptr< ParamGrow >;
- using PerformPtr = boost::shared_ptr< Perform >;
- using PerformTransientPtr = boost::shared_ptr< PerformTransient >;
- using PetPtr = boost::shared_ptr< Pet >;
- using PetActionPtr = boost::shared_ptr< PetAction >;
- using PicturePtr = boost::shared_ptr< Picture >;
- using PlaceNamePtr = boost::shared_ptr< PlaceName >;
- using PublicContentPtr = boost::shared_ptr< PublicContent >;
- using PvPActionSortPtr = boost::shared_ptr< PvPActionSort >;
- using QuestPtr = boost::shared_ptr< Quest >;
- using QuestClassJobRewardPtr = boost::shared_ptr< QuestClassJobReward >;
- using QuestRepeatFlagPtr = boost::shared_ptr< QuestRepeatFlag >;
- using QuestRewardOtherPtr = boost::shared_ptr< QuestRewardOther >;
- using QuickChatPtr = boost::shared_ptr< QuickChat >;
- using QuickChatTransientPtr = boost::shared_ptr< QuickChatTransient >;
- using RacePtr = boost::shared_ptr< Race >;
- using RacingChocoboItemPtr = boost::shared_ptr< RacingChocoboItem >;
- using RacingChocoboNamePtr = boost::shared_ptr< RacingChocoboName >;
- using RacingChocoboNameCategoryPtr = boost::shared_ptr< RacingChocoboNameCategory >;
- using RacingChocoboNameInfoPtr = boost::shared_ptr< RacingChocoboNameInfo >;
- using RacingChocoboParamPtr = boost::shared_ptr< RacingChocoboParam >;
- using RecipePtr = boost::shared_ptr< Recipe >;
- using RecipeElementPtr = boost::shared_ptr< RecipeElement >;
- using RecipeLevelTablePtr = boost::shared_ptr< RecipeLevelTable >;
- using RecipeNotebookListPtr = boost::shared_ptr< RecipeNotebookList >;
- using RecommendContentsPtr = boost::shared_ptr< RecommendContents >;
- using RelicPtr = boost::shared_ptr< Relic >;
- using Relic3Ptr = boost::shared_ptr< Relic3 >;
- using RelicItemPtr = boost::shared_ptr< RelicItem >;
- using RelicNotePtr = boost::shared_ptr< RelicNote >;
- using RelicNoteCategoryPtr = boost::shared_ptr< RelicNoteCategory >;
- using RetainerTaskPtr = boost::shared_ptr< RetainerTask >;
- using RetainerTaskLvRangePtr = boost::shared_ptr< RetainerTaskLvRange >;
- using RetainerTaskNormalPtr = boost::shared_ptr< RetainerTaskNormal >;
- using RetainerTaskParameterPtr = boost::shared_ptr< RetainerTaskParameter >;
- using RetainerTaskRandomPtr = boost::shared_ptr< RetainerTaskRandom >;
- using SalvagePtr = boost::shared_ptr< Salvage >;
- using SatisfactionNpcPtr = boost::shared_ptr< SatisfactionNpc >;
- using SatisfactionSupplyPtr = boost::shared_ptr< SatisfactionSupply >;
- using SatisfactionSupplyRewardPtr = boost::shared_ptr< SatisfactionSupplyReward >;
- using ScenarioTreePtr = boost::shared_ptr< ScenarioTree >;
- using ScenarioTreeTipsPtr = boost::shared_ptr< ScenarioTreeTips >;
- using ScenarioTreeTipsClassQuestPtr = boost::shared_ptr< ScenarioTreeTipsClassQuest >;
- using ScenarioTreeTipsQuestPtr = boost::shared_ptr< ScenarioTreeTipsQuest >;
- using ScenarioTypePtr = boost::shared_ptr< ScenarioType >;
- using ScreenImagePtr = boost::shared_ptr< ScreenImage >;
- using SecretRecipeBookPtr = boost::shared_ptr< SecretRecipeBook >;
- using SkyIsland2MissionPtr = boost::shared_ptr< SkyIsland2Mission >;
- using SkyIsland2MissionDetailPtr = boost::shared_ptr< SkyIsland2MissionDetail >;
- using SkyIsland2MissionTypePtr = boost::shared_ptr< SkyIsland2MissionType >;
- using SkyIsland2RangeTypePtr = boost::shared_ptr< SkyIsland2RangeType >;
- using SpearfishingItemPtr = boost::shared_ptr< SpearfishingItem >;
- using SpearfishingNotebookPtr = boost::shared_ptr< SpearfishingNotebook >;
- using SpecialShopPtr = boost::shared_ptr< SpecialShop >;
- using SpecialShopItemCategoryPtr = boost::shared_ptr< SpecialShopItemCategory >;
- using StainPtr = boost::shared_ptr< Stain >;
- using StainTransientPtr = boost::shared_ptr< StainTransient >;
- using StatusPtr = boost::shared_ptr< Status >;
- using StatusHitEffectPtr = boost::shared_ptr< StatusHitEffect >;
- using StatusLoopVFXPtr = boost::shared_ptr< StatusLoopVFX >;
- using StoryPtr = boost::shared_ptr< Story >;
- using SubmarineExplorationPtr = boost::shared_ptr< SubmarineExploration >;
- using SubmarinePartPtr = boost::shared_ptr< SubmarinePart >;
- using SubmarineRankPtr = boost::shared_ptr< SubmarineRank >;
- using SwitchTalkPtr = boost::shared_ptr< SwitchTalk >;
- using TerritoryTypePtr = boost::shared_ptr< TerritoryType >;
- using TextCommandPtr = boost::shared_ptr< TextCommand >;
- using TitlePtr = boost::shared_ptr< Title >;
- using TomestonesPtr = boost::shared_ptr< Tomestones >;
- using TomestonesItemPtr = boost::shared_ptr< TomestonesItem >;
- using TopicSelectPtr = boost::shared_ptr< TopicSelect >;
- using TownPtr = boost::shared_ptr< Town >;
- using TraitPtr = boost::shared_ptr< Trait >;
- using TraitRecastPtr = boost::shared_ptr< TraitRecast >;
- using TraitTransientPtr = boost::shared_ptr< TraitTransient >;
- using TransformationPtr = boost::shared_ptr< Transformation >;
- using TreasurePtr = boost::shared_ptr< Treasure >;
- using TreasureHuntRankPtr = boost::shared_ptr< TreasureHuntRank >;
- using TribePtr = boost::shared_ptr< Tribe >;
- using TripleTriadPtr = boost::shared_ptr< TripleTriad >;
- using TripleTriadCardPtr = boost::shared_ptr< TripleTriadCard >;
- using TripleTriadCardRarityPtr = boost::shared_ptr< TripleTriadCardRarity >;
- using TripleTriadCardResidentPtr = boost::shared_ptr< TripleTriadCardResident >;
- using TripleTriadCardTypePtr = boost::shared_ptr< TripleTriadCardType >;
- using TripleTriadCompetitionPtr = boost::shared_ptr< TripleTriadCompetition >;
- using TripleTriadRulePtr = boost::shared_ptr< TripleTriadRule >;
- using TutorialPtr = boost::shared_ptr< Tutorial >;
- using TutorialDPSPtr = boost::shared_ptr< TutorialDPS >;
- using TutorialHealerPtr = boost::shared_ptr< TutorialHealer >;
- using TutorialTankPtr = boost::shared_ptr< TutorialTank >;
- using VaseFlowerPtr = boost::shared_ptr< VaseFlower >;
- using VFXPtr = boost::shared_ptr< VFX >;
- using WarpPtr = boost::shared_ptr< Warp >;
- using WarpConditionPtr = boost::shared_ptr< WarpCondition >;
- using WeatherPtr = boost::shared_ptr< Weather >;
- using WeatherGroupPtr = boost::shared_ptr< WeatherGroup >;
- using WeatherRatePtr = boost::shared_ptr< WeatherRate >;
- using WeddingBGMPtr = boost::shared_ptr< WeddingBGM >;
- using WeeklyBingoOrderDataPtr = boost::shared_ptr< WeeklyBingoOrderData >;
- using WeeklyBingoRewardDataPtr = boost::shared_ptr< WeeklyBingoRewardData >;
- using WeeklyBingoTextPtr = boost::shared_ptr< WeeklyBingoText >;
- using WorldPtr = boost::shared_ptr< World >;
- using WorldDCGroupTypePtr = boost::shared_ptr< WorldDCGroupType >;
- using YKWPtr = boost::shared_ptr< YKW >;
- using ZoneSharedGroupPtr = boost::shared_ptr< ZoneSharedGroup >;
+ using AchievementPtr = boost::shared_ptr< Achievement >;
+ using AchievementCategoryPtr = boost::shared_ptr< AchievementCategory >;
+ using AchievementKindPtr = boost::shared_ptr< AchievementKind >;
+ using ActionPtr = boost::shared_ptr< Action >;
+ using ActionCastTimelinePtr = boost::shared_ptr< ActionCastTimeline >;
+ using ActionCastVFXPtr = boost::shared_ptr< ActionCastVFX >;
+ using ActionCategoryPtr = boost::shared_ptr< ActionCategory >;
+ using ActionComboRoutePtr = boost::shared_ptr< ActionComboRoute >;
+ using ActionIndirectionPtr = boost::shared_ptr< ActionIndirection >;
+ using ActionParamPtr = boost::shared_ptr< ActionParam >;
+ using ActionProcStatusPtr = boost::shared_ptr< ActionProcStatus >;
+ using ActionTimelinePtr = boost::shared_ptr< ActionTimeline >;
+ using ActionTimelineReplacePtr = boost::shared_ptr< ActionTimelineReplace >;
+ using ActionTransientPtr = boost::shared_ptr< ActionTransient >;
+ using AddonPtr = boost::shared_ptr< Addon >;
+ using AdventurePtr = boost::shared_ptr< Adventure >;
+ using AdventureExPhasePtr = boost::shared_ptr< AdventureExPhase >;
+ using AetherCurrentPtr = boost::shared_ptr< AetherCurrent >;
+ using AetherCurrentCompFlgSetPtr = boost::shared_ptr< AetherCurrentCompFlgSet >;
+ using AetherialWheelPtr = boost::shared_ptr< AetherialWheel >;
+ using AetherytePtr = boost::shared_ptr< Aetheryte >;
+ using AirshipExplorationLevelPtr = boost::shared_ptr< AirshipExplorationLevel >;
+ using AirshipExplorationLogPtr = boost::shared_ptr< AirshipExplorationLog >;
+ using AirshipExplorationParamTypePtr = boost::shared_ptr< AirshipExplorationParamType >;
+ using AirshipExplorationPartPtr = boost::shared_ptr< AirshipExplorationPart >;
+ using AirshipExplorationPointPtr = boost::shared_ptr< AirshipExplorationPoint >;
+ using AnimaWeapon5Ptr = boost::shared_ptr< AnimaWeapon5 >;
+ using AnimaWeapon5ParamPtr = boost::shared_ptr< AnimaWeapon5Param >;
+ using AnimaWeapon5PatternGroupPtr = boost::shared_ptr< AnimaWeapon5PatternGroup >;
+ using AnimaWeapon5SpiritTalkPtr = boost::shared_ptr< AnimaWeapon5SpiritTalk >;
+ using AnimaWeapon5SpiritTalkParamPtr = boost::shared_ptr< AnimaWeapon5SpiritTalkParam >;
+ using AnimaWeapon5TradeItemPtr = boost::shared_ptr< AnimaWeapon5TradeItem >;
+ using AnimaWeaponFUITalkPtr = boost::shared_ptr< AnimaWeaponFUITalk >;
+ using AnimaWeaponFUITalkParamPtr = boost::shared_ptr< AnimaWeaponFUITalkParam >;
+ using AnimaWeaponIconPtr = boost::shared_ptr< AnimaWeaponIcon >;
+ using AnimaWeaponItemPtr = boost::shared_ptr< AnimaWeaponItem >;
+ using AquariumFishPtr = boost::shared_ptr< AquariumFish >;
+ using AquariumWaterPtr = boost::shared_ptr< AquariumWater >;
+ using AttackTypePtr = boost::shared_ptr< AttackType >;
+ using BalloonPtr = boost::shared_ptr< Balloon >;
+ using BaseParamPtr = boost::shared_ptr< BaseParam >;
+ using BattleLevePtr = boost::shared_ptr< BattleLeve >;
+ using BeastRankBonusPtr = boost::shared_ptr< BeastRankBonus >;
+ using BeastReputationRankPtr = boost::shared_ptr< BeastReputationRank >;
+ using BeastTribePtr = boost::shared_ptr< BeastTribe >;
+ using BehaviorPtr = boost::shared_ptr< Behavior >;
+ using BGMPtr = boost::shared_ptr< BGM >;
+ using BNpcAnnounceIconPtr = boost::shared_ptr< BNpcAnnounceIcon >;
+ using BNpcBasePtr = boost::shared_ptr< BNpcBase >;
+ using BNpcCustomizePtr = boost::shared_ptr< BNpcCustomize >;
+ using BNpcNamePtr = boost::shared_ptr< BNpcName >;
+ using BuddyPtr = boost::shared_ptr< Buddy >;
+ using BuddyActionPtr = boost::shared_ptr< BuddyAction >;
+ using BuddyEquipPtr = boost::shared_ptr< BuddyEquip >;
+ using BuddyItemPtr = boost::shared_ptr< BuddyItem >;
+ using BuddyRankPtr = boost::shared_ptr< BuddyRank >;
+ using BuddySkillPtr = boost::shared_ptr< BuddySkill >;
+ using CabinetPtr = boost::shared_ptr< Cabinet >;
+ using CabinetCategoryPtr = boost::shared_ptr< CabinetCategory >;
+ using CalendarPtr = boost::shared_ptr< Calendar >;
+ using CharaMakeCustomizePtr = boost::shared_ptr< CharaMakeCustomize >;
+ using CharaMakeTypePtr = boost::shared_ptr< CharaMakeType >;
+ using ChocoboRacePtr = boost::shared_ptr< ChocoboRace >;
+ using ChocoboRaceAbilityPtr = boost::shared_ptr< ChocoboRaceAbility >;
+ using ChocoboRaceAbilityTypePtr = boost::shared_ptr< ChocoboRaceAbilityType >;
+ using ChocoboRaceItemPtr = boost::shared_ptr< ChocoboRaceItem >;
+ using ChocoboRaceRankPtr = boost::shared_ptr< ChocoboRaceRank >;
+ using ChocoboRaceStatusPtr = boost::shared_ptr< ChocoboRaceStatus >;
+ using ChocoboRaceTerritoryPtr = boost::shared_ptr< ChocoboRaceTerritory >;
+ using ChocoboTaxiPtr = boost::shared_ptr< ChocoboTaxi >;
+ using ChocoboTaxiStandPtr = boost::shared_ptr< ChocoboTaxiStand >;
+ using ClassJobPtr = boost::shared_ptr< ClassJob >;
+ using ClassJobCategoryPtr = boost::shared_ptr< ClassJobCategory >;
+ using CompanionPtr = boost::shared_ptr< Companion >;
+ using CompanionMovePtr = boost::shared_ptr< CompanionMove >;
+ using CompanionTransientPtr = boost::shared_ptr< CompanionTransient >;
+ using CompanyActionPtr = boost::shared_ptr< CompanyAction >;
+ using CompanyCraftDraftPtr = boost::shared_ptr< CompanyCraftDraft >;
+ using CompanyCraftDraftCategoryPtr = boost::shared_ptr< CompanyCraftDraftCategory >;
+ using CompanyCraftManufactoryStatePtr = boost::shared_ptr< CompanyCraftManufactoryState >;
+ using CompanyCraftPartPtr = boost::shared_ptr< CompanyCraftPart >;
+ using CompanyCraftProcessPtr = boost::shared_ptr< CompanyCraftProcess >;
+ using CompanyCraftSequencePtr = boost::shared_ptr< CompanyCraftSequence >;
+ using CompanyCraftSupplyItemPtr = boost::shared_ptr< CompanyCraftSupplyItem >;
+ using CompanyCraftTypePtr = boost::shared_ptr< CompanyCraftType >;
+ using CompleteJournalPtr = boost::shared_ptr< CompleteJournal >;
+ using CompleteJournalCategoryPtr = boost::shared_ptr< CompleteJournalCategory >;
+ using ContentExActionPtr = boost::shared_ptr< ContentExAction >;
+ using ContentFinderConditionPtr = boost::shared_ptr< ContentFinderCondition >;
+ using ContentFinderConditionTransientPtr = boost::shared_ptr< ContentFinderConditionTransient >;
+ using ContentMemberTypePtr = boost::shared_ptr< ContentMemberType >;
+ using ContentNpcTalkPtr = boost::shared_ptr< ContentNpcTalk >;
+ using ContentRoulettePtr = boost::shared_ptr< ContentRoulette >;
+ using ContentsNotePtr = boost::shared_ptr< ContentsNote >;
+ using ContentsNoteCategoryPtr = boost::shared_ptr< ContentsNoteCategory >;
+ using ContentTalkPtr = boost::shared_ptr< ContentTalk >;
+ using ContentTalkParamPtr = boost::shared_ptr< ContentTalkParam >;
+ using ContentTypePtr = boost::shared_ptr< ContentType >;
+ using CraftActionPtr = boost::shared_ptr< CraftAction >;
+ using CraftLevePtr = boost::shared_ptr< CraftLeve >;
+ using CraftTypePtr = boost::shared_ptr< CraftType >;
+ using CurrencyPtr = boost::shared_ptr< Currency >;
+ using CustomTalkPtr = boost::shared_ptr< CustomTalk >;
+ using CutscenePtr = boost::shared_ptr< Cutscene >;
+ using CutScreenImagePtr = boost::shared_ptr< CutScreenImage >;
+ using DailySupplyItemPtr = boost::shared_ptr< DailySupplyItem >;
+ using DeepDungeonBanPtr = boost::shared_ptr< DeepDungeonBan >;
+ using DeepDungeonDangerPtr = boost::shared_ptr< DeepDungeonDanger >;
+ using DeepDungeonEquipmentPtr = boost::shared_ptr< DeepDungeonEquipment >;
+ using DeepDungeonFloorEffectUIPtr = boost::shared_ptr< DeepDungeonFloorEffectUI >;
+ using DeepDungeonItemPtr = boost::shared_ptr< DeepDungeonItem >;
+ using DeepDungeonStatusPtr = boost::shared_ptr< DeepDungeonStatus >;
+ using DefaultTalkPtr = boost::shared_ptr< DefaultTalk >;
+ using DeliveryQuestPtr = boost::shared_ptr< DeliveryQuest >;
+ using DisposalShopPtr = boost::shared_ptr< DisposalShop >;
+ using DisposalShopFilterTypePtr = boost::shared_ptr< DisposalShopFilterType >;
+ using DisposalShopItemPtr = boost::shared_ptr< DisposalShopItem >;
+ using DpsChallengePtr = boost::shared_ptr< DpsChallenge >;
+ using DpsChallengeOfficerPtr = boost::shared_ptr< DpsChallengeOfficer >;
+ using DpsChallengeTransientPtr = boost::shared_ptr< DpsChallengeTransient >;
+ using EmotePtr = boost::shared_ptr< Emote >;
+ using EmoteCategoryPtr = boost::shared_ptr< EmoteCategory >;
+ using ENpcBasePtr = boost::shared_ptr< ENpcBase >;
+ using ENpcResidentPtr = boost::shared_ptr< ENpcResident >;
+ using EObjPtr = boost::shared_ptr< EObj >;
+ using EObjNamePtr = boost::shared_ptr< EObjName >;
+ using EquipRaceCategoryPtr = boost::shared_ptr< EquipRaceCategory >;
+ using EquipSlotCategoryPtr = boost::shared_ptr< EquipSlotCategory >;
+ using EurekaAethernetPtr = boost::shared_ptr< EurekaAethernet >;
+ using EurekaGrowDataPtr = boost::shared_ptr< EurekaGrowData >;
+ using EurekaSphereElementAdjustPtr = boost::shared_ptr< EurekaSphereElementAdjust >;
+ using EventActionPtr = boost::shared_ptr< EventAction >;
+ using EventIconPriorityPtr = boost::shared_ptr< EventIconPriority >;
+ using EventIconTypePtr = boost::shared_ptr< EventIconType >;
+ using EventItemPtr = boost::shared_ptr< EventItem >;
+ using EventItemHelpPtr = boost::shared_ptr< EventItemHelp >;
+ using ExVersionPtr = boost::shared_ptr< ExVersion >;
+ using FatePtr = boost::shared_ptr< Fate >;
+ using FCActivityPtr = boost::shared_ptr< FCActivity >;
+ using FCActivityCategoryPtr = boost::shared_ptr< FCActivityCategory >;
+ using FCAuthorityPtr = boost::shared_ptr< FCAuthority >;
+ using FCAuthorityCategoryPtr = boost::shared_ptr< FCAuthorityCategory >;
+ using FCChestNamePtr = boost::shared_ptr< FCChestName >;
+ using FccShopPtr = boost::shared_ptr< FccShop >;
+ using FCHierarchyPtr = boost::shared_ptr< FCHierarchy >;
+ using FCProfilePtr = boost::shared_ptr< FCProfile >;
+ using FCReputationPtr = boost::shared_ptr< FCReputation >;
+ using FCRightsPtr = boost::shared_ptr< FCRights >;
+ using FieldMarkerPtr = boost::shared_ptr< FieldMarker >;
+ using FishingSpotPtr = boost::shared_ptr< FishingSpot >;
+ using FishParameterPtr = boost::shared_ptr< FishParameter >;
+ using GardeningSeedPtr = boost::shared_ptr< GardeningSeed >;
+ using GatheringConditionPtr = boost::shared_ptr< GatheringCondition >;
+ using GatheringExpPtr = boost::shared_ptr< GatheringExp >;
+ using GatheringItemPtr = boost::shared_ptr< GatheringItem >;
+ using GatheringItemLevelConvertTablePtr = boost::shared_ptr< GatheringItemLevelConvertTable >;
+ using GatheringItemPointPtr = boost::shared_ptr< GatheringItemPoint >;
+ using GatheringNotebookListPtr = boost::shared_ptr< GatheringNotebookList >;
+ using GatheringPointPtr = boost::shared_ptr< GatheringPoint >;
+ using GatheringPointBasePtr = boost::shared_ptr< GatheringPointBase >;
+ using GatheringPointBonusPtr = boost::shared_ptr< GatheringPointBonus >;
+ using GatheringPointBonusTypePtr = boost::shared_ptr< GatheringPointBonusType >;
+ using GatheringPointNamePtr = boost::shared_ptr< GatheringPointName >;
+ using GatheringSubCategoryPtr = boost::shared_ptr< GatheringSubCategory >;
+ using GatheringTypePtr = boost::shared_ptr< GatheringType >;
+ using GcArmyExpeditionPtr = boost::shared_ptr< GcArmyExpedition >;
+ using GcArmyExpeditionMemberBonusPtr = boost::shared_ptr< GcArmyExpeditionMemberBonus >;
+ using GcArmyExpeditionTypePtr = boost::shared_ptr< GcArmyExpeditionType >;
+ using GcArmyMemberGrowPtr = boost::shared_ptr< GcArmyMemberGrow >;
+ using GcArmyTrainingPtr = boost::shared_ptr< GcArmyTraining >;
+ using GCRankGridaniaFemaleTextPtr = boost::shared_ptr< GCRankGridaniaFemaleText >;
+ using GCRankGridaniaMaleTextPtr = boost::shared_ptr< GCRankGridaniaMaleText >;
+ using GCRankLimsaFemaleTextPtr = boost::shared_ptr< GCRankLimsaFemaleText >;
+ using GCRankLimsaMaleTextPtr = boost::shared_ptr< GCRankLimsaMaleText >;
+ using GCRankUldahFemaleTextPtr = boost::shared_ptr< GCRankUldahFemaleText >;
+ using GCRankUldahMaleTextPtr = boost::shared_ptr< GCRankUldahMaleText >;
+ using GCScripShopCategoryPtr = boost::shared_ptr< GCScripShopCategory >;
+ using GCScripShopItemPtr = boost::shared_ptr< GCScripShopItem >;
+ using GCShopPtr = boost::shared_ptr< GCShop >;
+ using GCShopItemCategoryPtr = boost::shared_ptr< GCShopItemCategory >;
+ using GCSupplyDutyPtr = boost::shared_ptr< GCSupplyDuty >;
+ using GCSupplyDutyRewardPtr = boost::shared_ptr< GCSupplyDutyReward >;
+ using GeneralActionPtr = boost::shared_ptr< GeneralAction >;
+ using GilShopPtr = boost::shared_ptr< GilShop >;
+ using GilShopItemPtr = boost::shared_ptr< GilShopItem >;
+ using GoldSaucerTextDataPtr = boost::shared_ptr< GoldSaucerTextData >;
+ using GrandCompanyPtr = boost::shared_ptr< GrandCompany >;
+ using GrandCompanyRankPtr = boost::shared_ptr< GrandCompanyRank >;
+ using GuardianDeityPtr = boost::shared_ptr< GuardianDeity >;
+ using GuildleveAssignmentPtr = boost::shared_ptr< GuildleveAssignment >;
+ using GuildOrderGuidePtr = boost::shared_ptr< GuildOrderGuide >;
+ using GuildOrderOfficerPtr = boost::shared_ptr< GuildOrderOfficer >;
+ using HouseRetainerPosePtr = boost::shared_ptr< HouseRetainerPose >;
+ using HousingFurniturePtr = boost::shared_ptr< HousingFurniture >;
+ using HousingYardObjectPtr = boost::shared_ptr< HousingYardObject >;
+ using InstanceContentPtr = boost::shared_ptr< InstanceContent >;
+ using InstanceContentBuffPtr = boost::shared_ptr< InstanceContentBuff >;
+ using InstanceContentTextDataPtr = boost::shared_ptr< InstanceContentTextData >;
+ using ItemPtr = boost::shared_ptr< Item >;
+ using ItemActionPtr = boost::shared_ptr< ItemAction >;
+ using ItemFoodPtr = boost::shared_ptr< ItemFood >;
+ using ItemSearchCategoryPtr = boost::shared_ptr< ItemSearchCategory >;
+ using ItemSeriesPtr = boost::shared_ptr< ItemSeries >;
+ using ItemSpecialBonusPtr = boost::shared_ptr< ItemSpecialBonus >;
+ using ItemUICategoryPtr = boost::shared_ptr< ItemUICategory >;
+ using JournalCategoryPtr = boost::shared_ptr< JournalCategory >;
+ using JournalGenrePtr = boost::shared_ptr< JournalGenre >;
+ using JournalSectionPtr = boost::shared_ptr< JournalSection >;
+ using LevePtr = boost::shared_ptr< Leve >;
+ using LeveAssignmentTypePtr = boost::shared_ptr< LeveAssignmentType >;
+ using LeveClientPtr = boost::shared_ptr< LeveClient >;
+ using LevelPtr = boost::shared_ptr< Level >;
+ using LeveRewardItemPtr = boost::shared_ptr< LeveRewardItem >;
+ using LeveRewardItemGroupPtr = boost::shared_ptr< LeveRewardItemGroup >;
+ using LeveVfxPtr = boost::shared_ptr< LeveVfx >;
+ using LogFilterPtr = boost::shared_ptr< LogFilter >;
+ using LogKindPtr = boost::shared_ptr< LogKind >;
+ using LogKindCategoryTextPtr = boost::shared_ptr< LogKindCategoryText >;
+ using LogMessagePtr = boost::shared_ptr< LogMessage >;
+ using MacroIconPtr = boost::shared_ptr< MacroIcon >;
+ using MacroIconRedirectOldPtr = boost::shared_ptr< MacroIconRedirectOld >;
+ using MainCommandPtr = boost::shared_ptr< MainCommand >;
+ using MainCommandCategoryPtr = boost::shared_ptr< MainCommandCategory >;
+ using MapPtr = boost::shared_ptr< Map >;
+ using MapMarkerPtr = boost::shared_ptr< MapMarker >;
+ using MapMarkerRegionPtr = boost::shared_ptr< MapMarkerRegion >;
+ using MapSymbolPtr = boost::shared_ptr< MapSymbol >;
+ using MarkerPtr = boost::shared_ptr< Marker >;
+ using MasterpieceSupplyDutyPtr = boost::shared_ptr< MasterpieceSupplyDuty >;
+ using MasterpieceSupplyMultiplierPtr = boost::shared_ptr< MasterpieceSupplyMultiplier >;
+ using MateriaPtr = boost::shared_ptr< Materia >;
+ using MinionRacePtr = boost::shared_ptr< MinionRace >;
+ using MinionRulesPtr = boost::shared_ptr< MinionRules >;
+ using MinionSkillTypePtr = boost::shared_ptr< MinionSkillType >;
+ using MobHuntTargetPtr = boost::shared_ptr< MobHuntTarget >;
+ using ModelCharaPtr = boost::shared_ptr< ModelChara >;
+ using MonsterNotePtr = boost::shared_ptr< MonsterNote >;
+ using MonsterNoteTargetPtr = boost::shared_ptr< MonsterNoteTarget >;
+ using MountPtr = boost::shared_ptr< Mount >;
+ using MountActionPtr = boost::shared_ptr< MountAction >;
+ using MoveTimelinePtr = boost::shared_ptr< MoveTimeline >;
+ using MoveVfxPtr = boost::shared_ptr< MoveVfx >;
+ using NpcEquipPtr = boost::shared_ptr< NpcEquip >;
+ using OmenPtr = boost::shared_ptr< Omen >;
+ using OnlineStatusPtr = boost::shared_ptr< OnlineStatus >;
+ using OpeningPtr = boost::shared_ptr< Opening >;
+ using OrchestrionPtr = boost::shared_ptr< Orchestrion >;
+ using OrchestrionCategoryPtr = boost::shared_ptr< OrchestrionCategory >;
+ using OrchestrionPathPtr = boost::shared_ptr< OrchestrionPath >;
+ using OrchestrionUiparamPtr = boost::shared_ptr< OrchestrionUiparam >;
+ using ParamGrowPtr = boost::shared_ptr< ParamGrow >;
+ using PerformPtr = boost::shared_ptr< Perform >;
+ using PerformTransientPtr = boost::shared_ptr< PerformTransient >;
+ using PetPtr = boost::shared_ptr< Pet >;
+ using PetActionPtr = boost::shared_ptr< PetAction >;
+ using PicturePtr = boost::shared_ptr< Picture >;
+ using PlaceNamePtr = boost::shared_ptr< PlaceName >;
+ using PublicContentPtr = boost::shared_ptr< PublicContent >;
+ using PvPActionSortPtr = boost::shared_ptr< PvPActionSort >;
+ using QuestPtr = boost::shared_ptr< Quest >;
+ using QuestClassJobRewardPtr = boost::shared_ptr< QuestClassJobReward >;
+ using QuestRepeatFlagPtr = boost::shared_ptr< QuestRepeatFlag >;
+ using QuestRewardOtherPtr = boost::shared_ptr< QuestRewardOther >;
+ using QuickChatPtr = boost::shared_ptr< QuickChat >;
+ using QuickChatTransientPtr = boost::shared_ptr< QuickChatTransient >;
+ using RacePtr = boost::shared_ptr< Race >;
+ using RacingChocoboItemPtr = boost::shared_ptr< RacingChocoboItem >;
+ using RacingChocoboNamePtr = boost::shared_ptr< RacingChocoboName >;
+ using RacingChocoboNameCategoryPtr = boost::shared_ptr< RacingChocoboNameCategory >;
+ using RacingChocoboNameInfoPtr = boost::shared_ptr< RacingChocoboNameInfo >;
+ using RacingChocoboParamPtr = boost::shared_ptr< RacingChocoboParam >;
+ using RecipePtr = boost::shared_ptr< Recipe >;
+ using RecipeElementPtr = boost::shared_ptr< RecipeElement >;
+ using RecipeLevelTablePtr = boost::shared_ptr< RecipeLevelTable >;
+ using RecipeNotebookListPtr = boost::shared_ptr< RecipeNotebookList >;
+ using RecommendContentsPtr = boost::shared_ptr< RecommendContents >;
+ using RelicPtr = boost::shared_ptr< Relic >;
+ using Relic3Ptr = boost::shared_ptr< Relic3 >;
+ using RelicItemPtr = boost::shared_ptr< RelicItem >;
+ using RelicNotePtr = boost::shared_ptr< RelicNote >;
+ using RelicNoteCategoryPtr = boost::shared_ptr< RelicNoteCategory >;
+ using RetainerTaskPtr = boost::shared_ptr< RetainerTask >;
+ using RetainerTaskLvRangePtr = boost::shared_ptr< RetainerTaskLvRange >;
+ using RetainerTaskNormalPtr = boost::shared_ptr< RetainerTaskNormal >;
+ using RetainerTaskParameterPtr = boost::shared_ptr< RetainerTaskParameter >;
+ using RetainerTaskRandomPtr = boost::shared_ptr< RetainerTaskRandom >;
+ using SalvagePtr = boost::shared_ptr< Salvage >;
+ using SatisfactionNpcPtr = boost::shared_ptr< SatisfactionNpc >;
+ using SatisfactionSupplyPtr = boost::shared_ptr< SatisfactionSupply >;
+ using SatisfactionSupplyRewardPtr = boost::shared_ptr< SatisfactionSupplyReward >;
+ using ScenarioTreePtr = boost::shared_ptr< ScenarioTree >;
+ using ScenarioTreeTipsPtr = boost::shared_ptr< ScenarioTreeTips >;
+ using ScenarioTreeTipsClassQuestPtr = boost::shared_ptr< ScenarioTreeTipsClassQuest >;
+ using ScenarioTreeTipsQuestPtr = boost::shared_ptr< ScenarioTreeTipsQuest >;
+ using ScenarioTypePtr = boost::shared_ptr< ScenarioType >;
+ using ScreenImagePtr = boost::shared_ptr< ScreenImage >;
+ using SecretRecipeBookPtr = boost::shared_ptr< SecretRecipeBook >;
+ using SkyIsland2MissionPtr = boost::shared_ptr< SkyIsland2Mission >;
+ using SkyIsland2MissionDetailPtr = boost::shared_ptr< SkyIsland2MissionDetail >;
+ using SkyIsland2MissionTypePtr = boost::shared_ptr< SkyIsland2MissionType >;
+ using SkyIsland2RangeTypePtr = boost::shared_ptr< SkyIsland2RangeType >;
+ using SpearfishingItemPtr = boost::shared_ptr< SpearfishingItem >;
+ using SpearfishingNotebookPtr = boost::shared_ptr< SpearfishingNotebook >;
+ using SpecialShopPtr = boost::shared_ptr< SpecialShop >;
+ using SpecialShopItemCategoryPtr = boost::shared_ptr< SpecialShopItemCategory >;
+ using StainPtr = boost::shared_ptr< Stain >;
+ using StainTransientPtr = boost::shared_ptr< StainTransient >;
+ using StatusPtr = boost::shared_ptr< Status >;
+ using StatusHitEffectPtr = boost::shared_ptr< StatusHitEffect >;
+ using StatusLoopVFXPtr = boost::shared_ptr< StatusLoopVFX >;
+ using StoryPtr = boost::shared_ptr< Story >;
+ using SubmarineExplorationPtr = boost::shared_ptr< SubmarineExploration >;
+ using SubmarinePartPtr = boost::shared_ptr< SubmarinePart >;
+ using SubmarineRankPtr = boost::shared_ptr< SubmarineRank >;
+ using SwitchTalkPtr = boost::shared_ptr< SwitchTalk >;
+ using TerritoryTypePtr = boost::shared_ptr< TerritoryType >;
+ using TextCommandPtr = boost::shared_ptr< TextCommand >;
+ using TitlePtr = boost::shared_ptr< Title >;
+ using TomestonesPtr = boost::shared_ptr< Tomestones >;
+ using TomestonesItemPtr = boost::shared_ptr< TomestonesItem >;
+ using TopicSelectPtr = boost::shared_ptr< TopicSelect >;
+ using TownPtr = boost::shared_ptr< Town >;
+ using TraitPtr = boost::shared_ptr< Trait >;
+ using TraitRecastPtr = boost::shared_ptr< TraitRecast >;
+ using TraitTransientPtr = boost::shared_ptr< TraitTransient >;
+ using TransformationPtr = boost::shared_ptr< Transformation >;
+ using TreasurePtr = boost::shared_ptr< Treasure >;
+ using TreasureHuntRankPtr = boost::shared_ptr< TreasureHuntRank >;
+ using TribePtr = boost::shared_ptr< Tribe >;
+ using TripleTriadPtr = boost::shared_ptr< TripleTriad >;
+ using TripleTriadCardPtr = boost::shared_ptr< TripleTriadCard >;
+ using TripleTriadCardRarityPtr = boost::shared_ptr< TripleTriadCardRarity >;
+ using TripleTriadCardResidentPtr = boost::shared_ptr< TripleTriadCardResident >;
+ using TripleTriadCardTypePtr = boost::shared_ptr< TripleTriadCardType >;
+ using TripleTriadCompetitionPtr = boost::shared_ptr< TripleTriadCompetition >;
+ using TripleTriadRulePtr = boost::shared_ptr< TripleTriadRule >;
+ using TutorialPtr = boost::shared_ptr< Tutorial >;
+ using TutorialDPSPtr = boost::shared_ptr< TutorialDPS >;
+ using TutorialHealerPtr = boost::shared_ptr< TutorialHealer >;
+ using TutorialTankPtr = boost::shared_ptr< TutorialTank >;
+ using VaseFlowerPtr = boost::shared_ptr< VaseFlower >;
+ using VFXPtr = boost::shared_ptr< VFX >;
+ using WarpPtr = boost::shared_ptr< Warp >;
+ using WarpConditionPtr = boost::shared_ptr< WarpCondition >;
+ using WeatherPtr = boost::shared_ptr< Weather >;
+ using WeatherGroupPtr = boost::shared_ptr< WeatherGroup >;
+ using WeatherRatePtr = boost::shared_ptr< WeatherRate >;
+ using WeddingBGMPtr = boost::shared_ptr< WeddingBGM >;
+ using WeeklyBingoOrderDataPtr = boost::shared_ptr< WeeklyBingoOrderData >;
+ using WeeklyBingoRewardDataPtr = boost::shared_ptr< WeeklyBingoRewardData >;
+ using WeeklyBingoTextPtr = boost::shared_ptr< WeeklyBingoText >;
+ using WorldPtr = boost::shared_ptr< World >;
+ using WorldDCGroupTypePtr = boost::shared_ptr< WorldDCGroupType >;
+ using YKWPtr = boost::shared_ptr< YKW >;
+ using ZoneSharedGroupPtr = boost::shared_ptr< ZoneSharedGroup >;
- template< class T >
- boost::shared_ptr< T > get( uint32_t id )
- {
- try
- {
- auto info = boost::make_shared< T >( id, this );
- return info;
- }
- catch( ... )
- {
- return nullptr;
- }
- return nullptr;
- }
+ template< class T >
+ boost::shared_ptr< T > get( uint32_t id )
+ {
+ try
+ {
+ auto info = boost::make_shared< T >( id, this );
+ return info;
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
+ return nullptr;
+ }
- std::set< uint32_t > m_AchievementIdList;
- std::set< uint32_t > m_AchievementCategoryIdList;
- std::set< uint32_t > m_AchievementKindIdList;
- std::set< uint32_t > m_ActionIdList;
- std::set< uint32_t > m_ActionCastTimelineIdList;
- std::set< uint32_t > m_ActionCastVFXIdList;
- std::set< uint32_t > m_ActionCategoryIdList;
- std::set< uint32_t > m_ActionComboRouteIdList;
- std::set< uint32_t > m_ActionIndirectionIdList;
- std::set< uint32_t > m_ActionParamIdList;
- std::set< uint32_t > m_ActionProcStatusIdList;
- std::set< uint32_t > m_ActionTimelineIdList;
- std::set< uint32_t > m_ActionTimelineReplaceIdList;
- std::set< uint32_t > m_ActionTransientIdList;
- std::set< uint32_t > m_AddonIdList;
- std::set< uint32_t > m_AdventureIdList;
- std::set< uint32_t > m_AdventureExPhaseIdList;
- std::set< uint32_t > m_AetherCurrentIdList;
- std::set< uint32_t > m_AetherCurrentCompFlgSetIdList;
- std::set< uint32_t > m_AetherialWheelIdList;
- std::set< uint32_t > m_AetheryteIdList;
- std::set< uint32_t > m_AirshipExplorationLevelIdList;
- std::set< uint32_t > m_AirshipExplorationLogIdList;
- std::set< uint32_t > m_AirshipExplorationParamTypeIdList;
- std::set< uint32_t > m_AirshipExplorationPartIdList;
- std::set< uint32_t > m_AirshipExplorationPointIdList;
- std::set< uint32_t > m_AnimaWeapon5IdList;
- std::set< uint32_t > m_AnimaWeapon5ParamIdList;
- std::set< uint32_t > m_AnimaWeapon5PatternGroupIdList;
- std::set< uint32_t > m_AnimaWeapon5SpiritTalkIdList;
- std::set< uint32_t > m_AnimaWeapon5SpiritTalkParamIdList;
- std::set< uint32_t > m_AnimaWeapon5TradeItemIdList;
- std::set< uint32_t > m_AnimaWeaponFUITalkIdList;
- std::set< uint32_t > m_AnimaWeaponFUITalkParamIdList;
- std::set< uint32_t > m_AnimaWeaponIconIdList;
- std::set< uint32_t > m_AnimaWeaponItemIdList;
- std::set< uint32_t > m_AquariumFishIdList;
- std::set< uint32_t > m_AquariumWaterIdList;
- std::set< uint32_t > m_AttackTypeIdList;
- std::set< uint32_t > m_BalloonIdList;
- std::set< uint32_t > m_BaseParamIdList;
- std::set< uint32_t > m_BattleLeveIdList;
- std::set< uint32_t > m_BeastRankBonusIdList;
- std::set< uint32_t > m_BeastReputationRankIdList;
- std::set< uint32_t > m_BeastTribeIdList;
- std::set< uint32_t > m_BehaviorIdList;
- std::set< uint32_t > m_BGMIdList;
- std::set< uint32_t > m_BNpcAnnounceIconIdList;
- std::set< uint32_t > m_BNpcBaseIdList;
- std::set< uint32_t > m_BNpcCustomizeIdList;
- std::set< uint32_t > m_BNpcNameIdList;
- std::set< uint32_t > m_BuddyIdList;
- std::set< uint32_t > m_BuddyActionIdList;
- std::set< uint32_t > m_BuddyEquipIdList;
- std::set< uint32_t > m_BuddyItemIdList;
- std::set< uint32_t > m_BuddyRankIdList;
- std::set< uint32_t > m_BuddySkillIdList;
- std::set< uint32_t > m_CabinetIdList;
- std::set< uint32_t > m_CabinetCategoryIdList;
- std::set< uint32_t > m_CalendarIdList;
- std::set< uint32_t > m_CharaMakeCustomizeIdList;
- std::set< uint32_t > m_CharaMakeTypeIdList;
- std::set< uint32_t > m_ChocoboRaceIdList;
- std::set< uint32_t > m_ChocoboRaceAbilityIdList;
- std::set< uint32_t > m_ChocoboRaceAbilityTypeIdList;
- std::set< uint32_t > m_ChocoboRaceItemIdList;
- std::set< uint32_t > m_ChocoboRaceRankIdList;
- std::set< uint32_t > m_ChocoboRaceStatusIdList;
- std::set< uint32_t > m_ChocoboRaceTerritoryIdList;
- std::set< uint32_t > m_ChocoboTaxiIdList;
- std::set< uint32_t > m_ChocoboTaxiStandIdList;
- std::set< uint32_t > m_ClassJobIdList;
- std::set< uint32_t > m_ClassJobCategoryIdList;
- std::set< uint32_t > m_CompanionIdList;
- std::set< uint32_t > m_CompanionMoveIdList;
- std::set< uint32_t > m_CompanionTransientIdList;
- std::set< uint32_t > m_CompanyActionIdList;
- std::set< uint32_t > m_CompanyCraftDraftIdList;
- std::set< uint32_t > m_CompanyCraftDraftCategoryIdList;
- std::set< uint32_t > m_CompanyCraftManufactoryStateIdList;
- std::set< uint32_t > m_CompanyCraftPartIdList;
- std::set< uint32_t > m_CompanyCraftProcessIdList;
- std::set< uint32_t > m_CompanyCraftSequenceIdList;
- std::set< uint32_t > m_CompanyCraftSupplyItemIdList;
- std::set< uint32_t > m_CompanyCraftTypeIdList;
- std::set< uint32_t > m_CompleteJournalIdList;
- std::set< uint32_t > m_CompleteJournalCategoryIdList;
- std::set< uint32_t > m_ContentExActionIdList;
- std::set< uint32_t > m_ContentFinderConditionIdList;
- std::set< uint32_t > m_ContentFinderConditionTransientIdList;
- std::set< uint32_t > m_ContentMemberTypeIdList;
- std::set< uint32_t > m_ContentNpcTalkIdList;
- std::set< uint32_t > m_ContentRouletteIdList;
- std::set< uint32_t > m_ContentsNoteIdList;
- std::set< uint32_t > m_ContentsNoteCategoryIdList;
- std::set< uint32_t > m_ContentTalkIdList;
- std::set< uint32_t > m_ContentTalkParamIdList;
- std::set< uint32_t > m_ContentTypeIdList;
- std::set< uint32_t > m_CraftActionIdList;
- std::set< uint32_t > m_CraftLeveIdList;
- std::set< uint32_t > m_CraftTypeIdList;
- std::set< uint32_t > m_CurrencyIdList;
- std::set< uint32_t > m_CustomTalkIdList;
- std::set< uint32_t > m_CutsceneIdList;
- std::set< uint32_t > m_CutScreenImageIdList;
- std::set< uint32_t > m_DailySupplyItemIdList;
- std::set< uint32_t > m_DeepDungeonBanIdList;
- std::set< uint32_t > m_DeepDungeonDangerIdList;
- std::set< uint32_t > m_DeepDungeonEquipmentIdList;
- std::set< uint32_t > m_DeepDungeonFloorEffectUIIdList;
- std::set< uint32_t > m_DeepDungeonItemIdList;
- std::set< uint32_t > m_DeepDungeonStatusIdList;
- std::set< uint32_t > m_DefaultTalkIdList;
- std::set< uint32_t > m_DeliveryQuestIdList;
- std::set< uint32_t > m_DisposalShopIdList;
- std::set< uint32_t > m_DisposalShopFilterTypeIdList;
- std::set< uint32_t > m_DisposalShopItemIdList;
- std::set< uint32_t > m_DpsChallengeIdList;
- std::set< uint32_t > m_DpsChallengeOfficerIdList;
- std::set< uint32_t > m_DpsChallengeTransientIdList;
- std::set< uint32_t > m_EmoteIdList;
- std::set< uint32_t > m_EmoteModeIdList;
- std::set< uint32_t > m_EmoteCategoryIdList;
- std::set< uint32_t > m_ENpcBaseIdList;
- std::set< uint32_t > m_ENpcResidentIdList;
- std::set< uint32_t > m_EObjIdList;
- std::set< uint32_t > m_EObjNameIdList;
- std::set< uint32_t > m_EquipRaceCategoryIdList;
- std::set< uint32_t > m_EquipSlotCategoryIdList;
- std::set< uint32_t > m_EurekaAethernetIdList;
- std::set< uint32_t > m_EurekaGrowDataIdList;
- std::set< uint32_t > m_EurekaSphereElementAdjustIdList;
- std::set< uint32_t > m_EventActionIdList;
- std::set< uint32_t > m_EventIconPriorityIdList;
- std::set< uint32_t > m_EventIconTypeIdList;
- std::set< uint32_t > m_EventItemIdList;
- std::set< uint32_t > m_EventItemHelpIdList;
- std::set< uint32_t > m_ExVersionIdList;
- std::set< uint32_t > m_FateIdList;
- std::set< uint32_t > m_FCActivityIdList;
- std::set< uint32_t > m_FCActivityCategoryIdList;
- std::set< uint32_t > m_FCAuthorityIdList;
- std::set< uint32_t > m_FCAuthorityCategoryIdList;
- std::set< uint32_t > m_FCChestNameIdList;
- std::set< uint32_t > m_FccShopIdList;
- std::set< uint32_t > m_FCHierarchyIdList;
- std::set< uint32_t > m_FCProfileIdList;
- std::set< uint32_t > m_FCReputationIdList;
- std::set< uint32_t > m_FCRightsIdList;
- std::set< uint32_t > m_FieldMarkerIdList;
- std::set< uint32_t > m_FishingSpotIdList;
- std::set< uint32_t > m_FishParameterIdList;
- std::set< uint32_t > m_GardeningSeedIdList;
- std::set< uint32_t > m_GatheringConditionIdList;
- std::set< uint32_t > m_GatheringExpIdList;
- std::set< uint32_t > m_GatheringItemIdList;
- std::set< uint32_t > m_GatheringItemLevelConvertTableIdList;
- std::set< uint32_t > m_GatheringItemPointIdList;
- std::set< uint32_t > m_GatheringNotebookListIdList;
- std::set< uint32_t > m_GatheringPointIdList;
- std::set< uint32_t > m_GatheringPointBaseIdList;
- std::set< uint32_t > m_GatheringPointBonusIdList;
- std::set< uint32_t > m_GatheringPointBonusTypeIdList;
- std::set< uint32_t > m_GatheringPointNameIdList;
- std::set< uint32_t > m_GatheringSubCategoryIdList;
- std::set< uint32_t > m_GatheringTypeIdList;
- std::set< uint32_t > m_GcArmyExpeditionIdList;
- std::set< uint32_t > m_GcArmyExpeditionMemberBonusIdList;
- std::set< uint32_t > m_GcArmyExpeditionTypeIdList;
- std::set< uint32_t > m_GcArmyMemberGrowIdList;
- std::set< uint32_t > m_GcArmyTrainingIdList;
- std::set< uint32_t > m_GCRankGridaniaFemaleTextIdList;
- std::set< uint32_t > m_GCRankGridaniaMaleTextIdList;
- std::set< uint32_t > m_GCRankLimsaFemaleTextIdList;
- std::set< uint32_t > m_GCRankLimsaMaleTextIdList;
- std::set< uint32_t > m_GCRankUldahFemaleTextIdList;
- std::set< uint32_t > m_GCRankUldahMaleTextIdList;
- std::set< uint32_t > m_GCScripShopCategoryIdList;
- std::set< uint32_t > m_GCScripShopItemIdList;
- std::set< uint32_t > m_GCShopIdList;
- std::set< uint32_t > m_GCShopItemCategoryIdList;
- std::set< uint32_t > m_GCSupplyDutyIdList;
- std::set< uint32_t > m_GCSupplyDutyRewardIdList;
- std::set< uint32_t > m_GeneralActionIdList;
- std::set< uint32_t > m_GilShopIdList;
- std::set< uint32_t > m_GilShopItemIdList;
- std::set< uint32_t > m_GoldSaucerTextDataIdList;
- std::set< uint32_t > m_GrandCompanyIdList;
- std::set< uint32_t > m_GrandCompanyRankIdList;
- std::set< uint32_t > m_GuardianDeityIdList;
- std::set< uint32_t > m_GuildleveAssignmentIdList;
- std::set< uint32_t > m_GuildOrderGuideIdList;
- std::set< uint32_t > m_GuildOrderOfficerIdList;
- std::set< uint32_t > m_HouseRetainerPoseIdList;
- std::set< uint32_t > m_HousingFurnitureIdList;
- std::set< uint32_t > m_HousingYardObjectIdList;
- std::set< uint32_t > m_InstanceContentIdList;
- std::set< uint32_t > m_InstanceContentBuffIdList;
- std::set< uint32_t > m_InstanceContentTextDataIdList;
- std::set< uint32_t > m_ItemIdList;
- std::set< uint32_t > m_ItemActionIdList;
- std::set< uint32_t > m_ItemFoodIdList;
- std::set< uint32_t > m_ItemSearchCategoryIdList;
- std::set< uint32_t > m_ItemSeriesIdList;
- std::set< uint32_t > m_ItemSpecialBonusIdList;
- std::set< uint32_t > m_ItemUICategoryIdList;
- std::set< uint32_t > m_JournalCategoryIdList;
- std::set< uint32_t > m_JournalGenreIdList;
- std::set< uint32_t > m_JournalSectionIdList;
- std::set< uint32_t > m_LeveIdList;
- std::set< uint32_t > m_LeveAssignmentTypeIdList;
- std::set< uint32_t > m_LeveClientIdList;
- std::set< uint32_t > m_LevelIdList;
- std::set< uint32_t > m_LeveRewardItemIdList;
- std::set< uint32_t > m_LeveRewardItemGroupIdList;
- std::set< uint32_t > m_LeveVfxIdList;
- std::set< uint32_t > m_LogFilterIdList;
- std::set< uint32_t > m_LogKindIdList;
- std::set< uint32_t > m_LogKindCategoryTextIdList;
- std::set< uint32_t > m_LogMessageIdList;
- std::set< uint32_t > m_MacroIconIdList;
- std::set< uint32_t > m_MacroIconRedirectOldIdList;
- std::set< uint32_t > m_MainCommandIdList;
- std::set< uint32_t > m_MainCommandCategoryIdList;
- std::set< uint32_t > m_MapIdList;
- std::set< uint32_t > m_MapMarkerIdList;
- std::set< uint32_t > m_MapMarkerRegionIdList;
- std::set< uint32_t > m_MapSymbolIdList;
- std::set< uint32_t > m_MarkerIdList;
- std::set< uint32_t > m_MasterpieceSupplyDutyIdList;
- std::set< uint32_t > m_MasterpieceSupplyMultiplierIdList;
- std::set< uint32_t > m_MateriaIdList;
- std::set< uint32_t > m_MinionRaceIdList;
- std::set< uint32_t > m_MinionRulesIdList;
- std::set< uint32_t > m_MinionSkillTypeIdList;
- std::set< uint32_t > m_MobHuntTargetIdList;
- std::set< uint32_t > m_ModelCharaIdList;
- std::set< uint32_t > m_MonsterNoteIdList;
- std::set< uint32_t > m_MonsterNoteTargetIdList;
- std::set< uint32_t > m_MountIdList;
- std::set< uint32_t > m_MountActionIdList;
- std::set< uint32_t > m_MoveTimelineIdList;
- std::set< uint32_t > m_MoveVfxIdList;
- std::set< uint32_t > m_NpcEquipIdList;
- std::set< uint32_t > m_OmenIdList;
- std::set< uint32_t > m_OnlineStatusIdList;
- std::set< uint32_t > m_OpeningIdList;
- std::set< uint32_t > m_OrchestrionIdList;
- std::set< uint32_t > m_OrchestrionCategoryIdList;
- std::set< uint32_t > m_OrchestrionPathIdList;
- std::set< uint32_t > m_OrchestrionUiparamIdList;
- std::set< uint32_t > m_ParamGrowIdList;
- std::set< uint32_t > m_PerformIdList;
- std::set< uint32_t > m_PerformTransientIdList;
- std::set< uint32_t > m_PetIdList;
- std::set< uint32_t > m_PetActionIdList;
- std::set< uint32_t > m_PictureIdList;
- std::set< uint32_t > m_PlaceNameIdList;
- std::set< uint32_t > m_PublicContentIdList;
- std::set< uint32_t > m_PvPActionSortIdList;
- std::set< uint32_t > m_QuestIdList;
- std::set< uint32_t > m_QuestClassJobRewardIdList;
- std::set< uint32_t > m_QuestRepeatFlagIdList;
- std::set< uint32_t > m_QuestRewardOtherIdList;
- std::set< uint32_t > m_QuickChatIdList;
- std::set< uint32_t > m_QuickChatTransientIdList;
- std::set< uint32_t > m_RaceIdList;
- std::set< uint32_t > m_RacingChocoboItemIdList;
- std::set< uint32_t > m_RacingChocoboNameIdList;
- std::set< uint32_t > m_RacingChocoboNameCategoryIdList;
- std::set< uint32_t > m_RacingChocoboNameInfoIdList;
- std::set< uint32_t > m_RacingChocoboParamIdList;
- std::set< uint32_t > m_RecipeIdList;
- std::set< uint32_t > m_RecipeElementIdList;
- std::set< uint32_t > m_RecipeLevelTableIdList;
- std::set< uint32_t > m_RecipeNotebookListIdList;
- std::set< uint32_t > m_RecommendContentsIdList;
- std::set< uint32_t > m_RelicIdList;
- std::set< uint32_t > m_Relic3IdList;
- std::set< uint32_t > m_RelicItemIdList;
- std::set< uint32_t > m_RelicNoteIdList;
- std::set< uint32_t > m_RelicNoteCategoryIdList;
- std::set< uint32_t > m_RetainerTaskIdList;
- std::set< uint32_t > m_RetainerTaskLvRangeIdList;
- std::set< uint32_t > m_RetainerTaskNormalIdList;
- std::set< uint32_t > m_RetainerTaskParameterIdList;
- std::set< uint32_t > m_RetainerTaskRandomIdList;
- std::set< uint32_t > m_SalvageIdList;
- std::set< uint32_t > m_SatisfactionNpcIdList;
- std::set< uint32_t > m_SatisfactionSupplyIdList;
- std::set< uint32_t > m_SatisfactionSupplyRewardIdList;
- std::set< uint32_t > m_ScenarioTreeIdList;
- std::set< uint32_t > m_ScenarioTreeTipsIdList;
- std::set< uint32_t > m_ScenarioTreeTipsClassQuestIdList;
- std::set< uint32_t > m_ScenarioTreeTipsQuestIdList;
- std::set< uint32_t > m_ScenarioTypeIdList;
- std::set< uint32_t > m_ScreenImageIdList;
- std::set< uint32_t > m_SecretRecipeBookIdList;
- std::set< uint32_t > m_SkyIsland2MissionIdList;
- std::set< uint32_t > m_SkyIsland2MissionDetailIdList;
- std::set< uint32_t > m_SkyIsland2MissionTypeIdList;
- std::set< uint32_t > m_SkyIsland2RangeTypeIdList;
- std::set< uint32_t > m_SpearfishingItemIdList;
- std::set< uint32_t > m_SpearfishingNotebookIdList;
- std::set< uint32_t > m_SpecialShopIdList;
- std::set< uint32_t > m_SpecialShopItemCategoryIdList;
- std::set< uint32_t > m_StainIdList;
- std::set< uint32_t > m_StainTransientIdList;
- std::set< uint32_t > m_StatusIdList;
- std::set< uint32_t > m_StatusHitEffectIdList;
- std::set< uint32_t > m_StatusLoopVFXIdList;
- std::set< uint32_t > m_StoryIdList;
- std::set< uint32_t > m_SubmarineExplorationIdList;
- std::set< uint32_t > m_SubmarinePartIdList;
- std::set< uint32_t > m_SubmarineRankIdList;
- std::set< uint32_t > m_SwitchTalkIdList;
- std::set< uint32_t > m_TerritoryTypeIdList;
- std::set< uint32_t > m_TextCommandIdList;
- std::set< uint32_t > m_TitleIdList;
- std::set< uint32_t > m_TomestonesIdList;
- std::set< uint32_t > m_TomestonesItemIdList;
- std::set< uint32_t > m_TopicSelectIdList;
- std::set< uint32_t > m_TownIdList;
- std::set< uint32_t > m_TraitIdList;
- std::set< uint32_t > m_TraitRecastIdList;
- std::set< uint32_t > m_TraitTransientIdList;
- std::set< uint32_t > m_TransformationIdList;
- std::set< uint32_t > m_TreasureIdList;
- std::set< uint32_t > m_TreasureHuntRankIdList;
- std::set< uint32_t > m_TribeIdList;
- std::set< uint32_t > m_TripleTriadIdList;
- std::set< uint32_t > m_TripleTriadCardIdList;
- std::set< uint32_t > m_TripleTriadCardRarityIdList;
- std::set< uint32_t > m_TripleTriadCardResidentIdList;
- std::set< uint32_t > m_TripleTriadCardTypeIdList;
- std::set< uint32_t > m_TripleTriadCompetitionIdList;
- std::set< uint32_t > m_TripleTriadRuleIdList;
- std::set< uint32_t > m_TutorialIdList;
- std::set< uint32_t > m_TutorialDPSIdList;
- std::set< uint32_t > m_TutorialHealerIdList;
- std::set< uint32_t > m_TutorialTankIdList;
- std::set< uint32_t > m_VaseFlowerIdList;
- std::set< uint32_t > m_VFXIdList;
- std::set< uint32_t > m_WarpIdList;
- std::set< uint32_t > m_WarpConditionIdList;
- std::set< uint32_t > m_WeatherIdList;
- std::set< uint32_t > m_WeatherGroupIdList;
- std::set< uint32_t > m_WeatherRateIdList;
- std::set< uint32_t > m_WeddingBGMIdList;
- std::set< uint32_t > m_WeeklyBingoOrderDataIdList;
- std::set< uint32_t > m_WeeklyBingoRewardDataIdList;
- std::set< uint32_t > m_WeeklyBingoTextIdList;
- std::set< uint32_t > m_WorldIdList;
- std::set< uint32_t > m_WorldDCGroupTypeIdList;
- std::set< uint32_t > m_YKWIdList;
- std::set< uint32_t > m_ZoneSharedGroupIdList;
+ std::set< uint32_t > m_AchievementIdList;
+ std::set< uint32_t > m_AchievementCategoryIdList;
+ std::set< uint32_t > m_AchievementKindIdList;
+ std::set< uint32_t > m_ActionIdList;
+ std::set< uint32_t > m_ActionCastTimelineIdList;
+ std::set< uint32_t > m_ActionCastVFXIdList;
+ std::set< uint32_t > m_ActionCategoryIdList;
+ std::set< uint32_t > m_ActionComboRouteIdList;
+ std::set< uint32_t > m_ActionIndirectionIdList;
+ std::set< uint32_t > m_ActionParamIdList;
+ std::set< uint32_t > m_ActionProcStatusIdList;
+ std::set< uint32_t > m_ActionTimelineIdList;
+ std::set< uint32_t > m_ActionTimelineReplaceIdList;
+ std::set< uint32_t > m_ActionTransientIdList;
+ std::set< uint32_t > m_AddonIdList;
+ std::set< uint32_t > m_AdventureIdList;
+ std::set< uint32_t > m_AdventureExPhaseIdList;
+ std::set< uint32_t > m_AetherCurrentIdList;
+ std::set< uint32_t > m_AetherCurrentCompFlgSetIdList;
+ std::set< uint32_t > m_AetherialWheelIdList;
+ std::set< uint32_t > m_AetheryteIdList;
+ std::set< uint32_t > m_AirshipExplorationLevelIdList;
+ std::set< uint32_t > m_AirshipExplorationLogIdList;
+ std::set< uint32_t > m_AirshipExplorationParamTypeIdList;
+ std::set< uint32_t > m_AirshipExplorationPartIdList;
+ std::set< uint32_t > m_AirshipExplorationPointIdList;
+ std::set< uint32_t > m_AnimaWeapon5IdList;
+ std::set< uint32_t > m_AnimaWeapon5ParamIdList;
+ std::set< uint32_t > m_AnimaWeapon5PatternGroupIdList;
+ std::set< uint32_t > m_AnimaWeapon5SpiritTalkIdList;
+ std::set< uint32_t > m_AnimaWeapon5SpiritTalkParamIdList;
+ std::set< uint32_t > m_AnimaWeapon5TradeItemIdList;
+ std::set< uint32_t > m_AnimaWeaponFUITalkIdList;
+ std::set< uint32_t > m_AnimaWeaponFUITalkParamIdList;
+ std::set< uint32_t > m_AnimaWeaponIconIdList;
+ std::set< uint32_t > m_AnimaWeaponItemIdList;
+ std::set< uint32_t > m_AquariumFishIdList;
+ std::set< uint32_t > m_AquariumWaterIdList;
+ std::set< uint32_t > m_AttackTypeIdList;
+ std::set< uint32_t > m_BalloonIdList;
+ std::set< uint32_t > m_BaseParamIdList;
+ std::set< uint32_t > m_BattleLeveIdList;
+ std::set< uint32_t > m_BeastRankBonusIdList;
+ std::set< uint32_t > m_BeastReputationRankIdList;
+ std::set< uint32_t > m_BeastTribeIdList;
+ std::set< uint32_t > m_BehaviorIdList;
+ std::set< uint32_t > m_BGMIdList;
+ std::set< uint32_t > m_BNpcAnnounceIconIdList;
+ std::set< uint32_t > m_BNpcBaseIdList;
+ std::set< uint32_t > m_BNpcCustomizeIdList;
+ std::set< uint32_t > m_BNpcNameIdList;
+ std::set< uint32_t > m_BuddyIdList;
+ std::set< uint32_t > m_BuddyActionIdList;
+ std::set< uint32_t > m_BuddyEquipIdList;
+ std::set< uint32_t > m_BuddyItemIdList;
+ std::set< uint32_t > m_BuddyRankIdList;
+ std::set< uint32_t > m_BuddySkillIdList;
+ std::set< uint32_t > m_CabinetIdList;
+ std::set< uint32_t > m_CabinetCategoryIdList;
+ std::set< uint32_t > m_CalendarIdList;
+ std::set< uint32_t > m_CharaMakeCustomizeIdList;
+ std::set< uint32_t > m_CharaMakeTypeIdList;
+ std::set< uint32_t > m_ChocoboRaceIdList;
+ std::set< uint32_t > m_ChocoboRaceAbilityIdList;
+ std::set< uint32_t > m_ChocoboRaceAbilityTypeIdList;
+ std::set< uint32_t > m_ChocoboRaceItemIdList;
+ std::set< uint32_t > m_ChocoboRaceRankIdList;
+ std::set< uint32_t > m_ChocoboRaceStatusIdList;
+ std::set< uint32_t > m_ChocoboRaceTerritoryIdList;
+ std::set< uint32_t > m_ChocoboTaxiIdList;
+ std::set< uint32_t > m_ChocoboTaxiStandIdList;
+ std::set< uint32_t > m_ClassJobIdList;
+ std::set< uint32_t > m_ClassJobCategoryIdList;
+ std::set< uint32_t > m_CompanionIdList;
+ std::set< uint32_t > m_CompanionMoveIdList;
+ std::set< uint32_t > m_CompanionTransientIdList;
+ std::set< uint32_t > m_CompanyActionIdList;
+ std::set< uint32_t > m_CompanyCraftDraftIdList;
+ std::set< uint32_t > m_CompanyCraftDraftCategoryIdList;
+ std::set< uint32_t > m_CompanyCraftManufactoryStateIdList;
+ std::set< uint32_t > m_CompanyCraftPartIdList;
+ std::set< uint32_t > m_CompanyCraftProcessIdList;
+ std::set< uint32_t > m_CompanyCraftSequenceIdList;
+ std::set< uint32_t > m_CompanyCraftSupplyItemIdList;
+ std::set< uint32_t > m_CompanyCraftTypeIdList;
+ std::set< uint32_t > m_CompleteJournalIdList;
+ std::set< uint32_t > m_CompleteJournalCategoryIdList;
+ std::set< uint32_t > m_ContentExActionIdList;
+ std::set< uint32_t > m_ContentFinderConditionIdList;
+ std::set< uint32_t > m_ContentFinderConditionTransientIdList;
+ std::set< uint32_t > m_ContentMemberTypeIdList;
+ std::set< uint32_t > m_ContentNpcTalkIdList;
+ std::set< uint32_t > m_ContentRouletteIdList;
+ std::set< uint32_t > m_ContentsNoteIdList;
+ std::set< uint32_t > m_ContentsNoteCategoryIdList;
+ std::set< uint32_t > m_ContentTalkIdList;
+ std::set< uint32_t > m_ContentTalkParamIdList;
+ std::set< uint32_t > m_ContentTypeIdList;
+ std::set< uint32_t > m_CraftActionIdList;
+ std::set< uint32_t > m_CraftLeveIdList;
+ std::set< uint32_t > m_CraftTypeIdList;
+ std::set< uint32_t > m_CurrencyIdList;
+ std::set< uint32_t > m_CustomTalkIdList;
+ std::set< uint32_t > m_CutsceneIdList;
+ std::set< uint32_t > m_CutScreenImageIdList;
+ std::set< uint32_t > m_DailySupplyItemIdList;
+ std::set< uint32_t > m_DeepDungeonBanIdList;
+ std::set< uint32_t > m_DeepDungeonDangerIdList;
+ std::set< uint32_t > m_DeepDungeonEquipmentIdList;
+ std::set< uint32_t > m_DeepDungeonFloorEffectUIIdList;
+ std::set< uint32_t > m_DeepDungeonItemIdList;
+ std::set< uint32_t > m_DeepDungeonStatusIdList;
+ std::set< uint32_t > m_DefaultTalkIdList;
+ std::set< uint32_t > m_DeliveryQuestIdList;
+ std::set< uint32_t > m_DisposalShopIdList;
+ std::set< uint32_t > m_DisposalShopFilterTypeIdList;
+ std::set< uint32_t > m_DisposalShopItemIdList;
+ std::set< uint32_t > m_DpsChallengeIdList;
+ std::set< uint32_t > m_DpsChallengeOfficerIdList;
+ std::set< uint32_t > m_DpsChallengeTransientIdList;
+ std::set< uint32_t > m_EmoteIdList;
+ std::set< uint32_t > m_EmoteModeIdList;
+ std::set< uint32_t > m_EmoteCategoryIdList;
+ std::set< uint32_t > m_ENpcBaseIdList;
+ std::set< uint32_t > m_ENpcResidentIdList;
+ std::set< uint32_t > m_EObjIdList;
+ std::set< uint32_t > m_EObjNameIdList;
+ std::set< uint32_t > m_EquipRaceCategoryIdList;
+ std::set< uint32_t > m_EquipSlotCategoryIdList;
+ std::set< uint32_t > m_EurekaAethernetIdList;
+ std::set< uint32_t > m_EurekaGrowDataIdList;
+ std::set< uint32_t > m_EurekaSphereElementAdjustIdList;
+ std::set< uint32_t > m_EventActionIdList;
+ std::set< uint32_t > m_EventIconPriorityIdList;
+ std::set< uint32_t > m_EventIconTypeIdList;
+ std::set< uint32_t > m_EventItemIdList;
+ std::set< uint32_t > m_EventItemHelpIdList;
+ std::set< uint32_t > m_ExVersionIdList;
+ std::set< uint32_t > m_FateIdList;
+ std::set< uint32_t > m_FCActivityIdList;
+ std::set< uint32_t > m_FCActivityCategoryIdList;
+ std::set< uint32_t > m_FCAuthorityIdList;
+ std::set< uint32_t > m_FCAuthorityCategoryIdList;
+ std::set< uint32_t > m_FCChestNameIdList;
+ std::set< uint32_t > m_FccShopIdList;
+ std::set< uint32_t > m_FCHierarchyIdList;
+ std::set< uint32_t > m_FCProfileIdList;
+ std::set< uint32_t > m_FCReputationIdList;
+ std::set< uint32_t > m_FCRightsIdList;
+ std::set< uint32_t > m_FieldMarkerIdList;
+ std::set< uint32_t > m_FishingSpotIdList;
+ std::set< uint32_t > m_FishParameterIdList;
+ std::set< uint32_t > m_GardeningSeedIdList;
+ std::set< uint32_t > m_GatheringConditionIdList;
+ std::set< uint32_t > m_GatheringExpIdList;
+ std::set< uint32_t > m_GatheringItemIdList;
+ std::set< uint32_t > m_GatheringItemLevelConvertTableIdList;
+ std::set< uint32_t > m_GatheringItemPointIdList;
+ std::set< uint32_t > m_GatheringNotebookListIdList;
+ std::set< uint32_t > m_GatheringPointIdList;
+ std::set< uint32_t > m_GatheringPointBaseIdList;
+ std::set< uint32_t > m_GatheringPointBonusIdList;
+ std::set< uint32_t > m_GatheringPointBonusTypeIdList;
+ std::set< uint32_t > m_GatheringPointNameIdList;
+ std::set< uint32_t > m_GatheringSubCategoryIdList;
+ std::set< uint32_t > m_GatheringTypeIdList;
+ std::set< uint32_t > m_GcArmyExpeditionIdList;
+ std::set< uint32_t > m_GcArmyExpeditionMemberBonusIdList;
+ std::set< uint32_t > m_GcArmyExpeditionTypeIdList;
+ std::set< uint32_t > m_GcArmyMemberGrowIdList;
+ std::set< uint32_t > m_GcArmyTrainingIdList;
+ std::set< uint32_t > m_GCRankGridaniaFemaleTextIdList;
+ std::set< uint32_t > m_GCRankGridaniaMaleTextIdList;
+ std::set< uint32_t > m_GCRankLimsaFemaleTextIdList;
+ std::set< uint32_t > m_GCRankLimsaMaleTextIdList;
+ std::set< uint32_t > m_GCRankUldahFemaleTextIdList;
+ std::set< uint32_t > m_GCRankUldahMaleTextIdList;
+ std::set< uint32_t > m_GCScripShopCategoryIdList;
+ std::set< uint32_t > m_GCScripShopItemIdList;
+ std::set< uint32_t > m_GCShopIdList;
+ std::set< uint32_t > m_GCShopItemCategoryIdList;
+ std::set< uint32_t > m_GCSupplyDutyIdList;
+ std::set< uint32_t > m_GCSupplyDutyRewardIdList;
+ std::set< uint32_t > m_GeneralActionIdList;
+ std::set< uint32_t > m_GilShopIdList;
+ std::set< uint32_t > m_GilShopItemIdList;
+ std::set< uint32_t > m_GoldSaucerTextDataIdList;
+ std::set< uint32_t > m_GrandCompanyIdList;
+ std::set< uint32_t > m_GrandCompanyRankIdList;
+ std::set< uint32_t > m_GuardianDeityIdList;
+ std::set< uint32_t > m_GuildleveAssignmentIdList;
+ std::set< uint32_t > m_GuildOrderGuideIdList;
+ std::set< uint32_t > m_GuildOrderOfficerIdList;
+ std::set< uint32_t > m_HouseRetainerPoseIdList;
+ std::set< uint32_t > m_HousingFurnitureIdList;
+ std::set< uint32_t > m_HousingYardObjectIdList;
+ std::set< uint32_t > m_InstanceContentIdList;
+ std::set< uint32_t > m_InstanceContentBuffIdList;
+ std::set< uint32_t > m_InstanceContentTextDataIdList;
+ std::set< uint32_t > m_ItemIdList;
+ std::set< uint32_t > m_ItemActionIdList;
+ std::set< uint32_t > m_ItemFoodIdList;
+ std::set< uint32_t > m_ItemSearchCategoryIdList;
+ std::set< uint32_t > m_ItemSeriesIdList;
+ std::set< uint32_t > m_ItemSpecialBonusIdList;
+ std::set< uint32_t > m_ItemUICategoryIdList;
+ std::set< uint32_t > m_JournalCategoryIdList;
+ std::set< uint32_t > m_JournalGenreIdList;
+ std::set< uint32_t > m_JournalSectionIdList;
+ std::set< uint32_t > m_LeveIdList;
+ std::set< uint32_t > m_LeveAssignmentTypeIdList;
+ std::set< uint32_t > m_LeveClientIdList;
+ std::set< uint32_t > m_LevelIdList;
+ std::set< uint32_t > m_LeveRewardItemIdList;
+ std::set< uint32_t > m_LeveRewardItemGroupIdList;
+ std::set< uint32_t > m_LeveVfxIdList;
+ std::set< uint32_t > m_LogFilterIdList;
+ std::set< uint32_t > m_LogKindIdList;
+ std::set< uint32_t > m_LogKindCategoryTextIdList;
+ std::set< uint32_t > m_LogMessageIdList;
+ std::set< uint32_t > m_MacroIconIdList;
+ std::set< uint32_t > m_MacroIconRedirectOldIdList;
+ std::set< uint32_t > m_MainCommandIdList;
+ std::set< uint32_t > m_MainCommandCategoryIdList;
+ std::set< uint32_t > m_MapIdList;
+ std::set< uint32_t > m_MapMarkerIdList;
+ std::set< uint32_t > m_MapMarkerRegionIdList;
+ std::set< uint32_t > m_MapSymbolIdList;
+ std::set< uint32_t > m_MarkerIdList;
+ std::set< uint32_t > m_MasterpieceSupplyDutyIdList;
+ std::set< uint32_t > m_MasterpieceSupplyMultiplierIdList;
+ std::set< uint32_t > m_MateriaIdList;
+ std::set< uint32_t > m_MinionRaceIdList;
+ std::set< uint32_t > m_MinionRulesIdList;
+ std::set< uint32_t > m_MinionSkillTypeIdList;
+ std::set< uint32_t > m_MobHuntTargetIdList;
+ std::set< uint32_t > m_ModelCharaIdList;
+ std::set< uint32_t > m_MonsterNoteIdList;
+ std::set< uint32_t > m_MonsterNoteTargetIdList;
+ std::set< uint32_t > m_MountIdList;
+ std::set< uint32_t > m_MountActionIdList;
+ std::set< uint32_t > m_MoveTimelineIdList;
+ std::set< uint32_t > m_MoveVfxIdList;
+ std::set< uint32_t > m_NpcEquipIdList;
+ std::set< uint32_t > m_OmenIdList;
+ std::set< uint32_t > m_OnlineStatusIdList;
+ std::set< uint32_t > m_OpeningIdList;
+ std::set< uint32_t > m_OrchestrionIdList;
+ std::set< uint32_t > m_OrchestrionCategoryIdList;
+ std::set< uint32_t > m_OrchestrionPathIdList;
+ std::set< uint32_t > m_OrchestrionUiparamIdList;
+ std::set< uint32_t > m_ParamGrowIdList;
+ std::set< uint32_t > m_PerformIdList;
+ std::set< uint32_t > m_PerformTransientIdList;
+ std::set< uint32_t > m_PetIdList;
+ std::set< uint32_t > m_PetActionIdList;
+ std::set< uint32_t > m_PictureIdList;
+ std::set< uint32_t > m_PlaceNameIdList;
+ std::set< uint32_t > m_PublicContentIdList;
+ std::set< uint32_t > m_PvPActionSortIdList;
+ std::set< uint32_t > m_QuestIdList;
+ std::set< uint32_t > m_QuestClassJobRewardIdList;
+ std::set< uint32_t > m_QuestRepeatFlagIdList;
+ std::set< uint32_t > m_QuestRewardOtherIdList;
+ std::set< uint32_t > m_QuickChatIdList;
+ std::set< uint32_t > m_QuickChatTransientIdList;
+ std::set< uint32_t > m_RaceIdList;
+ std::set< uint32_t > m_RacingChocoboItemIdList;
+ std::set< uint32_t > m_RacingChocoboNameIdList;
+ std::set< uint32_t > m_RacingChocoboNameCategoryIdList;
+ std::set< uint32_t > m_RacingChocoboNameInfoIdList;
+ std::set< uint32_t > m_RacingChocoboParamIdList;
+ std::set< uint32_t > m_RecipeIdList;
+ std::set< uint32_t > m_RecipeElementIdList;
+ std::set< uint32_t > m_RecipeLevelTableIdList;
+ std::set< uint32_t > m_RecipeNotebookListIdList;
+ std::set< uint32_t > m_RecommendContentsIdList;
+ std::set< uint32_t > m_RelicIdList;
+ std::set< uint32_t > m_Relic3IdList;
+ std::set< uint32_t > m_RelicItemIdList;
+ std::set< uint32_t > m_RelicNoteIdList;
+ std::set< uint32_t > m_RelicNoteCategoryIdList;
+ std::set< uint32_t > m_RetainerTaskIdList;
+ std::set< uint32_t > m_RetainerTaskLvRangeIdList;
+ std::set< uint32_t > m_RetainerTaskNormalIdList;
+ std::set< uint32_t > m_RetainerTaskParameterIdList;
+ std::set< uint32_t > m_RetainerTaskRandomIdList;
+ std::set< uint32_t > m_SalvageIdList;
+ std::set< uint32_t > m_SatisfactionNpcIdList;
+ std::set< uint32_t > m_SatisfactionSupplyIdList;
+ std::set< uint32_t > m_SatisfactionSupplyRewardIdList;
+ std::set< uint32_t > m_ScenarioTreeIdList;
+ std::set< uint32_t > m_ScenarioTreeTipsIdList;
+ std::set< uint32_t > m_ScenarioTreeTipsClassQuestIdList;
+ std::set< uint32_t > m_ScenarioTreeTipsQuestIdList;
+ std::set< uint32_t > m_ScenarioTypeIdList;
+ std::set< uint32_t > m_ScreenImageIdList;
+ std::set< uint32_t > m_SecretRecipeBookIdList;
+ std::set< uint32_t > m_SkyIsland2MissionIdList;
+ std::set< uint32_t > m_SkyIsland2MissionDetailIdList;
+ std::set< uint32_t > m_SkyIsland2MissionTypeIdList;
+ std::set< uint32_t > m_SkyIsland2RangeTypeIdList;
+ std::set< uint32_t > m_SpearfishingItemIdList;
+ std::set< uint32_t > m_SpearfishingNotebookIdList;
+ std::set< uint32_t > m_SpecialShopIdList;
+ std::set< uint32_t > m_SpecialShopItemCategoryIdList;
+ std::set< uint32_t > m_StainIdList;
+ std::set< uint32_t > m_StainTransientIdList;
+ std::set< uint32_t > m_StatusIdList;
+ std::set< uint32_t > m_StatusHitEffectIdList;
+ std::set< uint32_t > m_StatusLoopVFXIdList;
+ std::set< uint32_t > m_StoryIdList;
+ std::set< uint32_t > m_SubmarineExplorationIdList;
+ std::set< uint32_t > m_SubmarinePartIdList;
+ std::set< uint32_t > m_SubmarineRankIdList;
+ std::set< uint32_t > m_SwitchTalkIdList;
+ std::set< uint32_t > m_TerritoryTypeIdList;
+ std::set< uint32_t > m_TextCommandIdList;
+ std::set< uint32_t > m_TitleIdList;
+ std::set< uint32_t > m_TomestonesIdList;
+ std::set< uint32_t > m_TomestonesItemIdList;
+ std::set< uint32_t > m_TopicSelectIdList;
+ std::set< uint32_t > m_TownIdList;
+ std::set< uint32_t > m_TraitIdList;
+ std::set< uint32_t > m_TraitRecastIdList;
+ std::set< uint32_t > m_TraitTransientIdList;
+ std::set< uint32_t > m_TransformationIdList;
+ std::set< uint32_t > m_TreasureIdList;
+ std::set< uint32_t > m_TreasureHuntRankIdList;
+ std::set< uint32_t > m_TribeIdList;
+ std::set< uint32_t > m_TripleTriadIdList;
+ std::set< uint32_t > m_TripleTriadCardIdList;
+ std::set< uint32_t > m_TripleTriadCardRarityIdList;
+ std::set< uint32_t > m_TripleTriadCardResidentIdList;
+ std::set< uint32_t > m_TripleTriadCardTypeIdList;
+ std::set< uint32_t > m_TripleTriadCompetitionIdList;
+ std::set< uint32_t > m_TripleTriadRuleIdList;
+ std::set< uint32_t > m_TutorialIdList;
+ std::set< uint32_t > m_TutorialDPSIdList;
+ std::set< uint32_t > m_TutorialHealerIdList;
+ std::set< uint32_t > m_TutorialTankIdList;
+ std::set< uint32_t > m_VaseFlowerIdList;
+ std::set< uint32_t > m_VFXIdList;
+ std::set< uint32_t > m_WarpIdList;
+ std::set< uint32_t > m_WarpConditionIdList;
+ std::set< uint32_t > m_WeatherIdList;
+ std::set< uint32_t > m_WeatherGroupIdList;
+ std::set< uint32_t > m_WeatherRateIdList;
+ std::set< uint32_t > m_WeddingBGMIdList;
+ std::set< uint32_t > m_WeeklyBingoOrderDataIdList;
+ std::set< uint32_t > m_WeeklyBingoRewardDataIdList;
+ std::set< uint32_t > m_WeeklyBingoTextIdList;
+ std::set< uint32_t > m_WorldIdList;
+ std::set< uint32_t > m_WorldDCGroupTypeIdList;
+ std::set< uint32_t > m_YKWIdList;
+ std::set< uint32_t > m_ZoneSharedGroupIdList;
-const std::set< uint32_t >& getAchievementIdList()
-{
- if( m_AchievementIdList.size() == 0 )
+ const std::set< uint32_t >& getAchievementIdList()
+ {
+ if( m_AchievementIdList.size() == 0 )
loadIdList( m_AchievementDat, m_AchievementIdList );
- return m_AchievementIdList;
-}
-const std::set< uint32_t >& getAchievementCategoryIdList()
-{
- if( m_AchievementCategoryIdList.size() == 0 )
+ return m_AchievementIdList;
+ }
+
+ const std::set< uint32_t >& getAchievementCategoryIdList()
+ {
+ if( m_AchievementCategoryIdList.size() == 0 )
loadIdList( m_AchievementCategoryDat, m_AchievementCategoryIdList );
- return m_AchievementCategoryIdList;
-}
-const std::set< uint32_t >& getAchievementKindIdList()
-{
- if( m_AchievementKindIdList.size() == 0 )
+ return m_AchievementCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getAchievementKindIdList()
+ {
+ if( m_AchievementKindIdList.size() == 0 )
loadIdList( m_AchievementKindDat, m_AchievementKindIdList );
- return m_AchievementKindIdList;
-}
-const std::set< uint32_t >& getActionIdList()
-{
- if( m_ActionIdList.size() == 0 )
+ return m_AchievementKindIdList;
+ }
+
+ const std::set< uint32_t >& getActionIdList()
+ {
+ if( m_ActionIdList.size() == 0 )
loadIdList( m_ActionDat, m_ActionIdList );
- return m_ActionIdList;
-}
-const std::set< uint32_t >& getActionCastTimelineIdList()
-{
- if( m_ActionCastTimelineIdList.size() == 0 )
+ return m_ActionIdList;
+ }
+
+ const std::set< uint32_t >& getActionCastTimelineIdList()
+ {
+ if( m_ActionCastTimelineIdList.size() == 0 )
loadIdList( m_ActionCastTimelineDat, m_ActionCastTimelineIdList );
- return m_ActionCastTimelineIdList;
-}
-const std::set< uint32_t >& getActionCastVFXIdList()
-{
- if( m_ActionCastVFXIdList.size() == 0 )
+ return m_ActionCastTimelineIdList;
+ }
+
+ const std::set< uint32_t >& getActionCastVFXIdList()
+ {
+ if( m_ActionCastVFXIdList.size() == 0 )
loadIdList( m_ActionCastVFXDat, m_ActionCastVFXIdList );
- return m_ActionCastVFXIdList;
-}
-const std::set< uint32_t >& getActionCategoryIdList()
-{
- if( m_ActionCategoryIdList.size() == 0 )
+ return m_ActionCastVFXIdList;
+ }
+
+ const std::set< uint32_t >& getActionCategoryIdList()
+ {
+ if( m_ActionCategoryIdList.size() == 0 )
loadIdList( m_ActionCategoryDat, m_ActionCategoryIdList );
- return m_ActionCategoryIdList;
-}
-const std::set< uint32_t >& getActionComboRouteIdList()
-{
- if( m_ActionComboRouteIdList.size() == 0 )
+ return m_ActionCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getActionComboRouteIdList()
+ {
+ if( m_ActionComboRouteIdList.size() == 0 )
loadIdList( m_ActionComboRouteDat, m_ActionComboRouteIdList );
- return m_ActionComboRouteIdList;
-}
-const std::set< uint32_t >& getActionIndirectionIdList()
-{
- if( m_ActionIndirectionIdList.size() == 0 )
+ return m_ActionComboRouteIdList;
+ }
+
+ const std::set< uint32_t >& getActionIndirectionIdList()
+ {
+ if( m_ActionIndirectionIdList.size() == 0 )
loadIdList( m_ActionIndirectionDat, m_ActionIndirectionIdList );
- return m_ActionIndirectionIdList;
-}
-const std::set< uint32_t >& getActionParamIdList()
-{
- if( m_ActionParamIdList.size() == 0 )
+ return m_ActionIndirectionIdList;
+ }
+
+ const std::set< uint32_t >& getActionParamIdList()
+ {
+ if( m_ActionParamIdList.size() == 0 )
loadIdList( m_ActionParamDat, m_ActionParamIdList );
- return m_ActionParamIdList;
-}
-const std::set< uint32_t >& getActionProcStatusIdList()
-{
- if( m_ActionProcStatusIdList.size() == 0 )
+ return m_ActionParamIdList;
+ }
+
+ const std::set< uint32_t >& getActionProcStatusIdList()
+ {
+ if( m_ActionProcStatusIdList.size() == 0 )
loadIdList( m_ActionProcStatusDat, m_ActionProcStatusIdList );
- return m_ActionProcStatusIdList;
-}
-const std::set< uint32_t >& getActionTimelineIdList()
-{
- if( m_ActionTimelineIdList.size() == 0 )
+ return m_ActionProcStatusIdList;
+ }
+
+ const std::set< uint32_t >& getActionTimelineIdList()
+ {
+ if( m_ActionTimelineIdList.size() == 0 )
loadIdList( m_ActionTimelineDat, m_ActionTimelineIdList );
- return m_ActionTimelineIdList;
-}
-const std::set< uint32_t >& getActionTimelineReplaceIdList()
-{
- if( m_ActionTimelineReplaceIdList.size() == 0 )
+ return m_ActionTimelineIdList;
+ }
+
+ const std::set< uint32_t >& getActionTimelineReplaceIdList()
+ {
+ if( m_ActionTimelineReplaceIdList.size() == 0 )
loadIdList( m_ActionTimelineReplaceDat, m_ActionTimelineReplaceIdList );
- return m_ActionTimelineReplaceIdList;
-}
-const std::set< uint32_t >& getActionTransientIdList()
-{
- if( m_ActionTransientIdList.size() == 0 )
+ return m_ActionTimelineReplaceIdList;
+ }
+
+ const std::set< uint32_t >& getActionTransientIdList()
+ {
+ if( m_ActionTransientIdList.size() == 0 )
loadIdList( m_ActionTransientDat, m_ActionTransientIdList );
- return m_ActionTransientIdList;
-}
-const std::set< uint32_t >& getAddonIdList()
-{
- if( m_AddonIdList.size() == 0 )
+ return m_ActionTransientIdList;
+ }
+
+ const std::set< uint32_t >& getAddonIdList()
+ {
+ if( m_AddonIdList.size() == 0 )
loadIdList( m_AddonDat, m_AddonIdList );
- return m_AddonIdList;
-}
-const std::set< uint32_t >& getAdventureIdList()
-{
- if( m_AdventureIdList.size() == 0 )
+ return m_AddonIdList;
+ }
+
+ const std::set< uint32_t >& getAdventureIdList()
+ {
+ if( m_AdventureIdList.size() == 0 )
loadIdList( m_AdventureDat, m_AdventureIdList );
- return m_AdventureIdList;
-}
-const std::set< uint32_t >& getAdventureExPhaseIdList()
-{
- if( m_AdventureExPhaseIdList.size() == 0 )
+ return m_AdventureIdList;
+ }
+
+ const std::set< uint32_t >& getAdventureExPhaseIdList()
+ {
+ if( m_AdventureExPhaseIdList.size() == 0 )
loadIdList( m_AdventureExPhaseDat, m_AdventureExPhaseIdList );
- return m_AdventureExPhaseIdList;
-}
-const std::set< uint32_t >& getAetherCurrentIdList()
-{
- if( m_AetherCurrentIdList.size() == 0 )
+ return m_AdventureExPhaseIdList;
+ }
+
+ const std::set< uint32_t >& getAetherCurrentIdList()
+ {
+ if( m_AetherCurrentIdList.size() == 0 )
loadIdList( m_AetherCurrentDat, m_AetherCurrentIdList );
- return m_AetherCurrentIdList;
-}
-const std::set< uint32_t >& getAetherCurrentCompFlgSetIdList()
-{
- if( m_AetherCurrentCompFlgSetIdList.size() == 0 )
+ return m_AetherCurrentIdList;
+ }
+
+ const std::set< uint32_t >& getAetherCurrentCompFlgSetIdList()
+ {
+ if( m_AetherCurrentCompFlgSetIdList.size() == 0 )
loadIdList( m_AetherCurrentCompFlgSetDat, m_AetherCurrentCompFlgSetIdList );
- return m_AetherCurrentCompFlgSetIdList;
-}
-const std::set< uint32_t >& getAetherialWheelIdList()
-{
- if( m_AetherialWheelIdList.size() == 0 )
+ return m_AetherCurrentCompFlgSetIdList;
+ }
+
+ const std::set< uint32_t >& getAetherialWheelIdList()
+ {
+ if( m_AetherialWheelIdList.size() == 0 )
loadIdList( m_AetherialWheelDat, m_AetherialWheelIdList );
- return m_AetherialWheelIdList;
-}
-const std::set< uint32_t >& getAetheryteIdList()
-{
- if( m_AetheryteIdList.size() == 0 )
+ return m_AetherialWheelIdList;
+ }
+
+ const std::set< uint32_t >& getAetheryteIdList()
+ {
+ if( m_AetheryteIdList.size() == 0 )
loadIdList( m_AetheryteDat, m_AetheryteIdList );
- return m_AetheryteIdList;
-}
-const std::set< uint32_t >& getAirshipExplorationLevelIdList()
-{
- if( m_AirshipExplorationLevelIdList.size() == 0 )
+ return m_AetheryteIdList;
+ }
+
+ const std::set< uint32_t >& getAirshipExplorationLevelIdList()
+ {
+ if( m_AirshipExplorationLevelIdList.size() == 0 )
loadIdList( m_AirshipExplorationLevelDat, m_AirshipExplorationLevelIdList );
- return m_AirshipExplorationLevelIdList;
-}
-const std::set< uint32_t >& getAirshipExplorationLogIdList()
-{
- if( m_AirshipExplorationLogIdList.size() == 0 )
+ return m_AirshipExplorationLevelIdList;
+ }
+
+ const std::set< uint32_t >& getAirshipExplorationLogIdList()
+ {
+ if( m_AirshipExplorationLogIdList.size() == 0 )
loadIdList( m_AirshipExplorationLogDat, m_AirshipExplorationLogIdList );
- return m_AirshipExplorationLogIdList;
-}
-const std::set< uint32_t >& getAirshipExplorationParamTypeIdList()
-{
- if( m_AirshipExplorationParamTypeIdList.size() == 0 )
+ return m_AirshipExplorationLogIdList;
+ }
+
+ const std::set< uint32_t >& getAirshipExplorationParamTypeIdList()
+ {
+ if( m_AirshipExplorationParamTypeIdList.size() == 0 )
loadIdList( m_AirshipExplorationParamTypeDat, m_AirshipExplorationParamTypeIdList );
- return m_AirshipExplorationParamTypeIdList;
-}
-const std::set< uint32_t >& getAirshipExplorationPartIdList()
-{
- if( m_AirshipExplorationPartIdList.size() == 0 )
+ return m_AirshipExplorationParamTypeIdList;
+ }
+
+ const std::set< uint32_t >& getAirshipExplorationPartIdList()
+ {
+ if( m_AirshipExplorationPartIdList.size() == 0 )
loadIdList( m_AirshipExplorationPartDat, m_AirshipExplorationPartIdList );
- return m_AirshipExplorationPartIdList;
-}
-const std::set< uint32_t >& getAirshipExplorationPointIdList()
-{
- if( m_AirshipExplorationPointIdList.size() == 0 )
+ return m_AirshipExplorationPartIdList;
+ }
+
+ const std::set< uint32_t >& getAirshipExplorationPointIdList()
+ {
+ if( m_AirshipExplorationPointIdList.size() == 0 )
loadIdList( m_AirshipExplorationPointDat, m_AirshipExplorationPointIdList );
- return m_AirshipExplorationPointIdList;
-}
-const std::set< uint32_t >& getAnimaWeapon5IdList()
-{
- if( m_AnimaWeapon5IdList.size() == 0 )
+ return m_AirshipExplorationPointIdList;
+ }
+
+ const std::set< uint32_t >& getAnimaWeapon5IdList()
+ {
+ if( m_AnimaWeapon5IdList.size() == 0 )
loadIdList( m_AnimaWeapon5Dat, m_AnimaWeapon5IdList );
- return m_AnimaWeapon5IdList;
-}
-const std::set< uint32_t >& getAnimaWeapon5ParamIdList()
-{
- if( m_AnimaWeapon5ParamIdList.size() == 0 )
+ return m_AnimaWeapon5IdList;
+ }
+
+ const std::set< uint32_t >& getAnimaWeapon5ParamIdList()
+ {
+ if( m_AnimaWeapon5ParamIdList.size() == 0 )
loadIdList( m_AnimaWeapon5ParamDat, m_AnimaWeapon5ParamIdList );
- return m_AnimaWeapon5ParamIdList;
-}
-const std::set< uint32_t >& getAnimaWeapon5PatternGroupIdList()
-{
- if( m_AnimaWeapon5PatternGroupIdList.size() == 0 )
+ return m_AnimaWeapon5ParamIdList;
+ }
+
+ const std::set< uint32_t >& getAnimaWeapon5PatternGroupIdList()
+ {
+ if( m_AnimaWeapon5PatternGroupIdList.size() == 0 )
loadIdList( m_AnimaWeapon5PatternGroupDat, m_AnimaWeapon5PatternGroupIdList );
- return m_AnimaWeapon5PatternGroupIdList;
-}
-const std::set< uint32_t >& getAnimaWeapon5SpiritTalkIdList()
-{
- if( m_AnimaWeapon5SpiritTalkIdList.size() == 0 )
+ return m_AnimaWeapon5PatternGroupIdList;
+ }
+
+ const std::set< uint32_t >& getAnimaWeapon5SpiritTalkIdList()
+ {
+ if( m_AnimaWeapon5SpiritTalkIdList.size() == 0 )
loadIdList( m_AnimaWeapon5SpiritTalkDat, m_AnimaWeapon5SpiritTalkIdList );
- return m_AnimaWeapon5SpiritTalkIdList;
-}
-const std::set< uint32_t >& getAnimaWeapon5SpiritTalkParamIdList()
-{
- if( m_AnimaWeapon5SpiritTalkParamIdList.size() == 0 )
+ return m_AnimaWeapon5SpiritTalkIdList;
+ }
+
+ const std::set< uint32_t >& getAnimaWeapon5SpiritTalkParamIdList()
+ {
+ if( m_AnimaWeapon5SpiritTalkParamIdList.size() == 0 )
loadIdList( m_AnimaWeapon5SpiritTalkParamDat, m_AnimaWeapon5SpiritTalkParamIdList );
- return m_AnimaWeapon5SpiritTalkParamIdList;
-}
-const std::set< uint32_t >& getAnimaWeapon5TradeItemIdList()
-{
- if( m_AnimaWeapon5TradeItemIdList.size() == 0 )
+ return m_AnimaWeapon5SpiritTalkParamIdList;
+ }
+
+ const std::set< uint32_t >& getAnimaWeapon5TradeItemIdList()
+ {
+ if( m_AnimaWeapon5TradeItemIdList.size() == 0 )
loadIdList( m_AnimaWeapon5TradeItemDat, m_AnimaWeapon5TradeItemIdList );
- return m_AnimaWeapon5TradeItemIdList;
-}
-const std::set< uint32_t >& getAnimaWeaponFUITalkIdList()
-{
- if( m_AnimaWeaponFUITalkIdList.size() == 0 )
+ return m_AnimaWeapon5TradeItemIdList;
+ }
+
+ const std::set< uint32_t >& getAnimaWeaponFUITalkIdList()
+ {
+ if( m_AnimaWeaponFUITalkIdList.size() == 0 )
loadIdList( m_AnimaWeaponFUITalkDat, m_AnimaWeaponFUITalkIdList );
- return m_AnimaWeaponFUITalkIdList;
-}
-const std::set< uint32_t >& getAnimaWeaponFUITalkParamIdList()
-{
- if( m_AnimaWeaponFUITalkParamIdList.size() == 0 )
+ return m_AnimaWeaponFUITalkIdList;
+ }
+
+ const std::set< uint32_t >& getAnimaWeaponFUITalkParamIdList()
+ {
+ if( m_AnimaWeaponFUITalkParamIdList.size() == 0 )
loadIdList( m_AnimaWeaponFUITalkParamDat, m_AnimaWeaponFUITalkParamIdList );
- return m_AnimaWeaponFUITalkParamIdList;
-}
-const std::set< uint32_t >& getAnimaWeaponIconIdList()
-{
- if( m_AnimaWeaponIconIdList.size() == 0 )
+ return m_AnimaWeaponFUITalkParamIdList;
+ }
+
+ const std::set< uint32_t >& getAnimaWeaponIconIdList()
+ {
+ if( m_AnimaWeaponIconIdList.size() == 0 )
loadIdList( m_AnimaWeaponIconDat, m_AnimaWeaponIconIdList );
- return m_AnimaWeaponIconIdList;
-}
-const std::set< uint32_t >& getAnimaWeaponItemIdList()
-{
- if( m_AnimaWeaponItemIdList.size() == 0 )
+ return m_AnimaWeaponIconIdList;
+ }
+
+ const std::set< uint32_t >& getAnimaWeaponItemIdList()
+ {
+ if( m_AnimaWeaponItemIdList.size() == 0 )
loadIdList( m_AnimaWeaponItemDat, m_AnimaWeaponItemIdList );
- return m_AnimaWeaponItemIdList;
-}
-const std::set< uint32_t >& getAquariumFishIdList()
-{
- if( m_AquariumFishIdList.size() == 0 )
+ return m_AnimaWeaponItemIdList;
+ }
+
+ const std::set< uint32_t >& getAquariumFishIdList()
+ {
+ if( m_AquariumFishIdList.size() == 0 )
loadIdList( m_AquariumFishDat, m_AquariumFishIdList );
- return m_AquariumFishIdList;
-}
-const std::set< uint32_t >& getAquariumWaterIdList()
-{
- if( m_AquariumWaterIdList.size() == 0 )
+ return m_AquariumFishIdList;
+ }
+
+ const std::set< uint32_t >& getAquariumWaterIdList()
+ {
+ if( m_AquariumWaterIdList.size() == 0 )
loadIdList( m_AquariumWaterDat, m_AquariumWaterIdList );
- return m_AquariumWaterIdList;
-}
-const std::set< uint32_t >& getAttackTypeIdList()
-{
- if( m_AttackTypeIdList.size() == 0 )
+ return m_AquariumWaterIdList;
+ }
+
+ const std::set< uint32_t >& getAttackTypeIdList()
+ {
+ if( m_AttackTypeIdList.size() == 0 )
loadIdList( m_AttackTypeDat, m_AttackTypeIdList );
- return m_AttackTypeIdList;
-}
-const std::set< uint32_t >& getBalloonIdList()
-{
- if( m_BalloonIdList.size() == 0 )
+ return m_AttackTypeIdList;
+ }
+
+ const std::set< uint32_t >& getBalloonIdList()
+ {
+ if( m_BalloonIdList.size() == 0 )
loadIdList( m_BalloonDat, m_BalloonIdList );
- return m_BalloonIdList;
-}
-const std::set< uint32_t >& getBaseParamIdList()
-{
- if( m_BaseParamIdList.size() == 0 )
+ return m_BalloonIdList;
+ }
+
+ const std::set< uint32_t >& getBaseParamIdList()
+ {
+ if( m_BaseParamIdList.size() == 0 )
loadIdList( m_BaseParamDat, m_BaseParamIdList );
- return m_BaseParamIdList;
-}
-const std::set< uint32_t >& getBattleLeveIdList()
-{
- if( m_BattleLeveIdList.size() == 0 )
+ return m_BaseParamIdList;
+ }
+
+ const std::set< uint32_t >& getBattleLeveIdList()
+ {
+ if( m_BattleLeveIdList.size() == 0 )
loadIdList( m_BattleLeveDat, m_BattleLeveIdList );
- return m_BattleLeveIdList;
-}
-const std::set< uint32_t >& getBeastRankBonusIdList()
-{
- if( m_BeastRankBonusIdList.size() == 0 )
+ return m_BattleLeveIdList;
+ }
+
+ const std::set< uint32_t >& getBeastRankBonusIdList()
+ {
+ if( m_BeastRankBonusIdList.size() == 0 )
loadIdList( m_BeastRankBonusDat, m_BeastRankBonusIdList );
- return m_BeastRankBonusIdList;
-}
-const std::set< uint32_t >& getBeastReputationRankIdList()
-{
- if( m_BeastReputationRankIdList.size() == 0 )
+ return m_BeastRankBonusIdList;
+ }
+
+ const std::set< uint32_t >& getBeastReputationRankIdList()
+ {
+ if( m_BeastReputationRankIdList.size() == 0 )
loadIdList( m_BeastReputationRankDat, m_BeastReputationRankIdList );
- return m_BeastReputationRankIdList;
-}
-const std::set< uint32_t >& getBeastTribeIdList()
-{
- if( m_BeastTribeIdList.size() == 0 )
+ return m_BeastReputationRankIdList;
+ }
+
+ const std::set< uint32_t >& getBeastTribeIdList()
+ {
+ if( m_BeastTribeIdList.size() == 0 )
loadIdList( m_BeastTribeDat, m_BeastTribeIdList );
- return m_BeastTribeIdList;
-}
-const std::set< uint32_t >& getBehaviorIdList()
-{
- if( m_BehaviorIdList.size() == 0 )
+ return m_BeastTribeIdList;
+ }
+
+ const std::set< uint32_t >& getBehaviorIdList()
+ {
+ if( m_BehaviorIdList.size() == 0 )
loadIdList( m_BehaviorDat, m_BehaviorIdList );
- return m_BehaviorIdList;
-}
-const std::set< uint32_t >& getBGMIdList()
-{
- if( m_BGMIdList.size() == 0 )
+ return m_BehaviorIdList;
+ }
+
+ const std::set< uint32_t >& getBGMIdList()
+ {
+ if( m_BGMIdList.size() == 0 )
loadIdList( m_BGMDat, m_BGMIdList );
- return m_BGMIdList;
-}
-const std::set< uint32_t >& getBNpcAnnounceIconIdList()
-{
- if( m_BNpcAnnounceIconIdList.size() == 0 )
+ return m_BGMIdList;
+ }
+
+ const std::set< uint32_t >& getBNpcAnnounceIconIdList()
+ {
+ if( m_BNpcAnnounceIconIdList.size() == 0 )
loadIdList( m_BNpcAnnounceIconDat, m_BNpcAnnounceIconIdList );
- return m_BNpcAnnounceIconIdList;
-}
-const std::set< uint32_t >& getBNpcBaseIdList()
-{
- if( m_BNpcBaseIdList.size() == 0 )
+ return m_BNpcAnnounceIconIdList;
+ }
+
+ const std::set< uint32_t >& getBNpcBaseIdList()
+ {
+ if( m_BNpcBaseIdList.size() == 0 )
loadIdList( m_BNpcBaseDat, m_BNpcBaseIdList );
- return m_BNpcBaseIdList;
-}
-const std::set< uint32_t >& getBNpcCustomizeIdList()
-{
- if( m_BNpcCustomizeIdList.size() == 0 )
+ return m_BNpcBaseIdList;
+ }
+
+ const std::set< uint32_t >& getBNpcCustomizeIdList()
+ {
+ if( m_BNpcCustomizeIdList.size() == 0 )
loadIdList( m_BNpcCustomizeDat, m_BNpcCustomizeIdList );
- return m_BNpcCustomizeIdList;
-}
-const std::set< uint32_t >& getBNpcNameIdList()
-{
- if( m_BNpcNameIdList.size() == 0 )
+ return m_BNpcCustomizeIdList;
+ }
+
+ const std::set< uint32_t >& getBNpcNameIdList()
+ {
+ if( m_BNpcNameIdList.size() == 0 )
loadIdList( m_BNpcNameDat, m_BNpcNameIdList );
- return m_BNpcNameIdList;
-}
-const std::set< uint32_t >& getBuddyIdList()
-{
- if( m_BuddyIdList.size() == 0 )
+ return m_BNpcNameIdList;
+ }
+
+ const std::set< uint32_t >& getBuddyIdList()
+ {
+ if( m_BuddyIdList.size() == 0 )
loadIdList( m_BuddyDat, m_BuddyIdList );
- return m_BuddyIdList;
-}
-const std::set< uint32_t >& getBuddyActionIdList()
-{
- if( m_BuddyActionIdList.size() == 0 )
+ return m_BuddyIdList;
+ }
+
+ const std::set< uint32_t >& getBuddyActionIdList()
+ {
+ if( m_BuddyActionIdList.size() == 0 )
loadIdList( m_BuddyActionDat, m_BuddyActionIdList );
- return m_BuddyActionIdList;
-}
-const std::set< uint32_t >& getBuddyEquipIdList()
-{
- if( m_BuddyEquipIdList.size() == 0 )
+ return m_BuddyActionIdList;
+ }
+
+ const std::set< uint32_t >& getBuddyEquipIdList()
+ {
+ if( m_BuddyEquipIdList.size() == 0 )
loadIdList( m_BuddyEquipDat, m_BuddyEquipIdList );
- return m_BuddyEquipIdList;
-}
-const std::set< uint32_t >& getBuddyItemIdList()
-{
- if( m_BuddyItemIdList.size() == 0 )
+ return m_BuddyEquipIdList;
+ }
+
+ const std::set< uint32_t >& getBuddyItemIdList()
+ {
+ if( m_BuddyItemIdList.size() == 0 )
loadIdList( m_BuddyItemDat, m_BuddyItemIdList );
- return m_BuddyItemIdList;
-}
-const std::set< uint32_t >& getBuddyRankIdList()
-{
- if( m_BuddyRankIdList.size() == 0 )
+ return m_BuddyItemIdList;
+ }
+
+ const std::set< uint32_t >& getBuddyRankIdList()
+ {
+ if( m_BuddyRankIdList.size() == 0 )
loadIdList( m_BuddyRankDat, m_BuddyRankIdList );
- return m_BuddyRankIdList;
-}
-const std::set< uint32_t >& getBuddySkillIdList()
-{
- if( m_BuddySkillIdList.size() == 0 )
+ return m_BuddyRankIdList;
+ }
+
+ const std::set< uint32_t >& getBuddySkillIdList()
+ {
+ if( m_BuddySkillIdList.size() == 0 )
loadIdList( m_BuddySkillDat, m_BuddySkillIdList );
- return m_BuddySkillIdList;
-}
-const std::set< uint32_t >& getCabinetIdList()
-{
- if( m_CabinetIdList.size() == 0 )
+ return m_BuddySkillIdList;
+ }
+
+ const std::set< uint32_t >& getCabinetIdList()
+ {
+ if( m_CabinetIdList.size() == 0 )
loadIdList( m_CabinetDat, m_CabinetIdList );
- return m_CabinetIdList;
-}
-const std::set< uint32_t >& getCabinetCategoryIdList()
-{
- if( m_CabinetCategoryIdList.size() == 0 )
+ return m_CabinetIdList;
+ }
+
+ const std::set< uint32_t >& getCabinetCategoryIdList()
+ {
+ if( m_CabinetCategoryIdList.size() == 0 )
loadIdList( m_CabinetCategoryDat, m_CabinetCategoryIdList );
- return m_CabinetCategoryIdList;
-}
-const std::set< uint32_t >& getCalendarIdList()
-{
- if( m_CalendarIdList.size() == 0 )
+ return m_CabinetCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getCalendarIdList()
+ {
+ if( m_CalendarIdList.size() == 0 )
loadIdList( m_CalendarDat, m_CalendarIdList );
- return m_CalendarIdList;
-}
-const std::set< uint32_t >& getCharaMakeCustomizeIdList()
-{
- if( m_CharaMakeCustomizeIdList.size() == 0 )
+ return m_CalendarIdList;
+ }
+
+ const std::set< uint32_t >& getCharaMakeCustomizeIdList()
+ {
+ if( m_CharaMakeCustomizeIdList.size() == 0 )
loadIdList( m_CharaMakeCustomizeDat, m_CharaMakeCustomizeIdList );
- return m_CharaMakeCustomizeIdList;
-}
-const std::set< uint32_t >& getCharaMakeTypeIdList()
-{
- if( m_CharaMakeTypeIdList.size() == 0 )
+ return m_CharaMakeCustomizeIdList;
+ }
+
+ const std::set< uint32_t >& getCharaMakeTypeIdList()
+ {
+ if( m_CharaMakeTypeIdList.size() == 0 )
loadIdList( m_CharaMakeTypeDat, m_CharaMakeTypeIdList );
- return m_CharaMakeTypeIdList;
-}
-const std::set< uint32_t >& getChocoboRaceIdList()
-{
- if( m_ChocoboRaceIdList.size() == 0 )
+ return m_CharaMakeTypeIdList;
+ }
+
+ const std::set< uint32_t >& getChocoboRaceIdList()
+ {
+ if( m_ChocoboRaceIdList.size() == 0 )
loadIdList( m_ChocoboRaceDat, m_ChocoboRaceIdList );
- return m_ChocoboRaceIdList;
-}
-const std::set< uint32_t >& getChocoboRaceAbilityIdList()
-{
- if( m_ChocoboRaceAbilityIdList.size() == 0 )
+ return m_ChocoboRaceIdList;
+ }
+
+ const std::set< uint32_t >& getChocoboRaceAbilityIdList()
+ {
+ if( m_ChocoboRaceAbilityIdList.size() == 0 )
loadIdList( m_ChocoboRaceAbilityDat, m_ChocoboRaceAbilityIdList );
- return m_ChocoboRaceAbilityIdList;
-}
-const std::set< uint32_t >& getChocoboRaceAbilityTypeIdList()
-{
- if( m_ChocoboRaceAbilityTypeIdList.size() == 0 )
+ return m_ChocoboRaceAbilityIdList;
+ }
+
+ const std::set< uint32_t >& getChocoboRaceAbilityTypeIdList()
+ {
+ if( m_ChocoboRaceAbilityTypeIdList.size() == 0 )
loadIdList( m_ChocoboRaceAbilityTypeDat, m_ChocoboRaceAbilityTypeIdList );
- return m_ChocoboRaceAbilityTypeIdList;
-}
-const std::set< uint32_t >& getChocoboRaceItemIdList()
-{
- if( m_ChocoboRaceItemIdList.size() == 0 )
+ return m_ChocoboRaceAbilityTypeIdList;
+ }
+
+ const std::set< uint32_t >& getChocoboRaceItemIdList()
+ {
+ if( m_ChocoboRaceItemIdList.size() == 0 )
loadIdList( m_ChocoboRaceItemDat, m_ChocoboRaceItemIdList );
- return m_ChocoboRaceItemIdList;
-}
-const std::set< uint32_t >& getChocoboRaceRankIdList()
-{
- if( m_ChocoboRaceRankIdList.size() == 0 )
+ return m_ChocoboRaceItemIdList;
+ }
+
+ const std::set< uint32_t >& getChocoboRaceRankIdList()
+ {
+ if( m_ChocoboRaceRankIdList.size() == 0 )
loadIdList( m_ChocoboRaceRankDat, m_ChocoboRaceRankIdList );
- return m_ChocoboRaceRankIdList;
-}
-const std::set< uint32_t >& getChocoboRaceStatusIdList()
-{
- if( m_ChocoboRaceStatusIdList.size() == 0 )
+ return m_ChocoboRaceRankIdList;
+ }
+
+ const std::set< uint32_t >& getChocoboRaceStatusIdList()
+ {
+ if( m_ChocoboRaceStatusIdList.size() == 0 )
loadIdList( m_ChocoboRaceStatusDat, m_ChocoboRaceStatusIdList );
- return m_ChocoboRaceStatusIdList;
-}
-const std::set< uint32_t >& getChocoboRaceTerritoryIdList()
-{
- if( m_ChocoboRaceTerritoryIdList.size() == 0 )
+ return m_ChocoboRaceStatusIdList;
+ }
+
+ const std::set< uint32_t >& getChocoboRaceTerritoryIdList()
+ {
+ if( m_ChocoboRaceTerritoryIdList.size() == 0 )
loadIdList( m_ChocoboRaceTerritoryDat, m_ChocoboRaceTerritoryIdList );
- return m_ChocoboRaceTerritoryIdList;
-}
-const std::set< uint32_t >& getChocoboTaxiIdList()
-{
- if( m_ChocoboTaxiIdList.size() == 0 )
+ return m_ChocoboRaceTerritoryIdList;
+ }
+
+ const std::set< uint32_t >& getChocoboTaxiIdList()
+ {
+ if( m_ChocoboTaxiIdList.size() == 0 )
loadIdList( m_ChocoboTaxiDat, m_ChocoboTaxiIdList );
- return m_ChocoboTaxiIdList;
-}
-const std::set< uint32_t >& getChocoboTaxiStandIdList()
-{
- if( m_ChocoboTaxiStandIdList.size() == 0 )
+ return m_ChocoboTaxiIdList;
+ }
+
+ const std::set< uint32_t >& getChocoboTaxiStandIdList()
+ {
+ if( m_ChocoboTaxiStandIdList.size() == 0 )
loadIdList( m_ChocoboTaxiStandDat, m_ChocoboTaxiStandIdList );
- return m_ChocoboTaxiStandIdList;
-}
-const std::set< uint32_t >& getClassJobIdList()
-{
- if( m_ClassJobIdList.size() == 0 )
+ return m_ChocoboTaxiStandIdList;
+ }
+
+ const std::set< uint32_t >& getClassJobIdList()
+ {
+ if( m_ClassJobIdList.size() == 0 )
loadIdList( m_ClassJobDat, m_ClassJobIdList );
- return m_ClassJobIdList;
-}
-const std::set< uint32_t >& getClassJobCategoryIdList()
-{
- if( m_ClassJobCategoryIdList.size() == 0 )
+ return m_ClassJobIdList;
+ }
+
+ const std::set< uint32_t >& getClassJobCategoryIdList()
+ {
+ if( m_ClassJobCategoryIdList.size() == 0 )
loadIdList( m_ClassJobCategoryDat, m_ClassJobCategoryIdList );
- return m_ClassJobCategoryIdList;
-}
-const std::set< uint32_t >& getCompanionIdList()
-{
- if( m_CompanionIdList.size() == 0 )
+ return m_ClassJobCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getCompanionIdList()
+ {
+ if( m_CompanionIdList.size() == 0 )
loadIdList( m_CompanionDat, m_CompanionIdList );
- return m_CompanionIdList;
-}
-const std::set< uint32_t >& getCompanionMoveIdList()
-{
- if( m_CompanionMoveIdList.size() == 0 )
+ return m_CompanionIdList;
+ }
+
+ const std::set< uint32_t >& getCompanionMoveIdList()
+ {
+ if( m_CompanionMoveIdList.size() == 0 )
loadIdList( m_CompanionMoveDat, m_CompanionMoveIdList );
- return m_CompanionMoveIdList;
-}
-const std::set< uint32_t >& getCompanionTransientIdList()
-{
- if( m_CompanionTransientIdList.size() == 0 )
+ return m_CompanionMoveIdList;
+ }
+
+ const std::set< uint32_t >& getCompanionTransientIdList()
+ {
+ if( m_CompanionTransientIdList.size() == 0 )
loadIdList( m_CompanionTransientDat, m_CompanionTransientIdList );
- return m_CompanionTransientIdList;
-}
-const std::set< uint32_t >& getCompanyActionIdList()
-{
- if( m_CompanyActionIdList.size() == 0 )
+ return m_CompanionTransientIdList;
+ }
+
+ const std::set< uint32_t >& getCompanyActionIdList()
+ {
+ if( m_CompanyActionIdList.size() == 0 )
loadIdList( m_CompanyActionDat, m_CompanyActionIdList );
- return m_CompanyActionIdList;
-}
-const std::set< uint32_t >& getCompanyCraftDraftIdList()
-{
- if( m_CompanyCraftDraftIdList.size() == 0 )
+ return m_CompanyActionIdList;
+ }
+
+ const std::set< uint32_t >& getCompanyCraftDraftIdList()
+ {
+ if( m_CompanyCraftDraftIdList.size() == 0 )
loadIdList( m_CompanyCraftDraftDat, m_CompanyCraftDraftIdList );
- return m_CompanyCraftDraftIdList;
-}
-const std::set< uint32_t >& getCompanyCraftDraftCategoryIdList()
-{
- if( m_CompanyCraftDraftCategoryIdList.size() == 0 )
+ return m_CompanyCraftDraftIdList;
+ }
+
+ const std::set< uint32_t >& getCompanyCraftDraftCategoryIdList()
+ {
+ if( m_CompanyCraftDraftCategoryIdList.size() == 0 )
loadIdList( m_CompanyCraftDraftCategoryDat, m_CompanyCraftDraftCategoryIdList );
- return m_CompanyCraftDraftCategoryIdList;
-}
-const std::set< uint32_t >& getCompanyCraftManufactoryStateIdList()
-{
- if( m_CompanyCraftManufactoryStateIdList.size() == 0 )
+ return m_CompanyCraftDraftCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getCompanyCraftManufactoryStateIdList()
+ {
+ if( m_CompanyCraftManufactoryStateIdList.size() == 0 )
loadIdList( m_CompanyCraftManufactoryStateDat, m_CompanyCraftManufactoryStateIdList );
- return m_CompanyCraftManufactoryStateIdList;
-}
-const std::set< uint32_t >& getCompanyCraftPartIdList()
-{
- if( m_CompanyCraftPartIdList.size() == 0 )
+ return m_CompanyCraftManufactoryStateIdList;
+ }
+
+ const std::set< uint32_t >& getCompanyCraftPartIdList()
+ {
+ if( m_CompanyCraftPartIdList.size() == 0 )
loadIdList( m_CompanyCraftPartDat, m_CompanyCraftPartIdList );
- return m_CompanyCraftPartIdList;
-}
-const std::set< uint32_t >& getCompanyCraftProcessIdList()
-{
- if( m_CompanyCraftProcessIdList.size() == 0 )
+ return m_CompanyCraftPartIdList;
+ }
+
+ const std::set< uint32_t >& getCompanyCraftProcessIdList()
+ {
+ if( m_CompanyCraftProcessIdList.size() == 0 )
loadIdList( m_CompanyCraftProcessDat, m_CompanyCraftProcessIdList );
- return m_CompanyCraftProcessIdList;
-}
-const std::set< uint32_t >& getCompanyCraftSequenceIdList()
-{
- if( m_CompanyCraftSequenceIdList.size() == 0 )
+ return m_CompanyCraftProcessIdList;
+ }
+
+ const std::set< uint32_t >& getCompanyCraftSequenceIdList()
+ {
+ if( m_CompanyCraftSequenceIdList.size() == 0 )
loadIdList( m_CompanyCraftSequenceDat, m_CompanyCraftSequenceIdList );
- return m_CompanyCraftSequenceIdList;
-}
-const std::set< uint32_t >& getCompanyCraftSupplyItemIdList()
-{
- if( m_CompanyCraftSupplyItemIdList.size() == 0 )
+ return m_CompanyCraftSequenceIdList;
+ }
+
+ const std::set< uint32_t >& getCompanyCraftSupplyItemIdList()
+ {
+ if( m_CompanyCraftSupplyItemIdList.size() == 0 )
loadIdList( m_CompanyCraftSupplyItemDat, m_CompanyCraftSupplyItemIdList );
- return m_CompanyCraftSupplyItemIdList;
-}
-const std::set< uint32_t >& getCompanyCraftTypeIdList()
-{
- if( m_CompanyCraftTypeIdList.size() == 0 )
+ return m_CompanyCraftSupplyItemIdList;
+ }
+
+ const std::set< uint32_t >& getCompanyCraftTypeIdList()
+ {
+ if( m_CompanyCraftTypeIdList.size() == 0 )
loadIdList( m_CompanyCraftTypeDat, m_CompanyCraftTypeIdList );
- return m_CompanyCraftTypeIdList;
-}
-const std::set< uint32_t >& getCompleteJournalIdList()
-{
- if( m_CompleteJournalIdList.size() == 0 )
+ return m_CompanyCraftTypeIdList;
+ }
+
+ const std::set< uint32_t >& getCompleteJournalIdList()
+ {
+ if( m_CompleteJournalIdList.size() == 0 )
loadIdList( m_CompleteJournalDat, m_CompleteJournalIdList );
- return m_CompleteJournalIdList;
-}
-const std::set< uint32_t >& getCompleteJournalCategoryIdList()
-{
- if( m_CompleteJournalCategoryIdList.size() == 0 )
+ return m_CompleteJournalIdList;
+ }
+
+ const std::set< uint32_t >& getCompleteJournalCategoryIdList()
+ {
+ if( m_CompleteJournalCategoryIdList.size() == 0 )
loadIdList( m_CompleteJournalCategoryDat, m_CompleteJournalCategoryIdList );
- return m_CompleteJournalCategoryIdList;
-}
-const std::set< uint32_t >& getContentExActionIdList()
-{
- if( m_ContentExActionIdList.size() == 0 )
+ return m_CompleteJournalCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getContentExActionIdList()
+ {
+ if( m_ContentExActionIdList.size() == 0 )
loadIdList( m_ContentExActionDat, m_ContentExActionIdList );
- return m_ContentExActionIdList;
-}
-const std::set< uint32_t >& getContentFinderConditionIdList()
-{
- if( m_ContentFinderConditionIdList.size() == 0 )
+ return m_ContentExActionIdList;
+ }
+
+ const std::set< uint32_t >& getContentFinderConditionIdList()
+ {
+ if( m_ContentFinderConditionIdList.size() == 0 )
loadIdList( m_ContentFinderConditionDat, m_ContentFinderConditionIdList );
- return m_ContentFinderConditionIdList;
-}
-const std::set< uint32_t >& getContentFinderConditionTransientIdList()
-{
- if( m_ContentFinderConditionTransientIdList.size() == 0 )
+ return m_ContentFinderConditionIdList;
+ }
+
+ const std::set< uint32_t >& getContentFinderConditionTransientIdList()
+ {
+ if( m_ContentFinderConditionTransientIdList.size() == 0 )
loadIdList( m_ContentFinderConditionTransientDat, m_ContentFinderConditionTransientIdList );
- return m_ContentFinderConditionTransientIdList;
-}
-const std::set< uint32_t >& getContentMemberTypeIdList()
-{
- if( m_ContentMemberTypeIdList.size() == 0 )
+ return m_ContentFinderConditionTransientIdList;
+ }
+
+ const std::set< uint32_t >& getContentMemberTypeIdList()
+ {
+ if( m_ContentMemberTypeIdList.size() == 0 )
loadIdList( m_ContentMemberTypeDat, m_ContentMemberTypeIdList );
- return m_ContentMemberTypeIdList;
-}
-const std::set< uint32_t >& getContentNpcTalkIdList()
-{
- if( m_ContentNpcTalkIdList.size() == 0 )
+ return m_ContentMemberTypeIdList;
+ }
+
+ const std::set< uint32_t >& getContentNpcTalkIdList()
+ {
+ if( m_ContentNpcTalkIdList.size() == 0 )
loadIdList( m_ContentNpcTalkDat, m_ContentNpcTalkIdList );
- return m_ContentNpcTalkIdList;
-}
-const std::set< uint32_t >& getContentRouletteIdList()
-{
- if( m_ContentRouletteIdList.size() == 0 )
+ return m_ContentNpcTalkIdList;
+ }
+
+ const std::set< uint32_t >& getContentRouletteIdList()
+ {
+ if( m_ContentRouletteIdList.size() == 0 )
loadIdList( m_ContentRouletteDat, m_ContentRouletteIdList );
- return m_ContentRouletteIdList;
-}
-const std::set< uint32_t >& getContentsNoteIdList()
-{
- if( m_ContentsNoteIdList.size() == 0 )
+ return m_ContentRouletteIdList;
+ }
+
+ const std::set< uint32_t >& getContentsNoteIdList()
+ {
+ if( m_ContentsNoteIdList.size() == 0 )
loadIdList( m_ContentsNoteDat, m_ContentsNoteIdList );
- return m_ContentsNoteIdList;
-}
-const std::set< uint32_t >& getContentsNoteCategoryIdList()
-{
- if( m_ContentsNoteCategoryIdList.size() == 0 )
+ return m_ContentsNoteIdList;
+ }
+
+ const std::set< uint32_t >& getContentsNoteCategoryIdList()
+ {
+ if( m_ContentsNoteCategoryIdList.size() == 0 )
loadIdList( m_ContentsNoteCategoryDat, m_ContentsNoteCategoryIdList );
- return m_ContentsNoteCategoryIdList;
-}
-const std::set< uint32_t >& getContentTalkIdList()
-{
- if( m_ContentTalkIdList.size() == 0 )
+ return m_ContentsNoteCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getContentTalkIdList()
+ {
+ if( m_ContentTalkIdList.size() == 0 )
loadIdList( m_ContentTalkDat, m_ContentTalkIdList );
- return m_ContentTalkIdList;
-}
-const std::set< uint32_t >& getContentTalkParamIdList()
-{
- if( m_ContentTalkParamIdList.size() == 0 )
+ return m_ContentTalkIdList;
+ }
+
+ const std::set< uint32_t >& getContentTalkParamIdList()
+ {
+ if( m_ContentTalkParamIdList.size() == 0 )
loadIdList( m_ContentTalkParamDat, m_ContentTalkParamIdList );
- return m_ContentTalkParamIdList;
-}
-const std::set< uint32_t >& getContentTypeIdList()
-{
- if( m_ContentTypeIdList.size() == 0 )
+ return m_ContentTalkParamIdList;
+ }
+
+ const std::set< uint32_t >& getContentTypeIdList()
+ {
+ if( m_ContentTypeIdList.size() == 0 )
loadIdList( m_ContentTypeDat, m_ContentTypeIdList );
- return m_ContentTypeIdList;
-}
-const std::set< uint32_t >& getCraftActionIdList()
-{
- if( m_CraftActionIdList.size() == 0 )
+ return m_ContentTypeIdList;
+ }
+
+ const std::set< uint32_t >& getCraftActionIdList()
+ {
+ if( m_CraftActionIdList.size() == 0 )
loadIdList( m_CraftActionDat, m_CraftActionIdList );
- return m_CraftActionIdList;
-}
-const std::set< uint32_t >& getCraftLeveIdList()
-{
- if( m_CraftLeveIdList.size() == 0 )
+ return m_CraftActionIdList;
+ }
+
+ const std::set< uint32_t >& getCraftLeveIdList()
+ {
+ if( m_CraftLeveIdList.size() == 0 )
loadIdList( m_CraftLeveDat, m_CraftLeveIdList );
- return m_CraftLeveIdList;
-}
-const std::set< uint32_t >& getCraftTypeIdList()
-{
- if( m_CraftTypeIdList.size() == 0 )
+ return m_CraftLeveIdList;
+ }
+
+ const std::set< uint32_t >& getCraftTypeIdList()
+ {
+ if( m_CraftTypeIdList.size() == 0 )
loadIdList( m_CraftTypeDat, m_CraftTypeIdList );
- return m_CraftTypeIdList;
-}
-const std::set< uint32_t >& getCurrencyIdList()
-{
- if( m_CurrencyIdList.size() == 0 )
+ return m_CraftTypeIdList;
+ }
+
+ const std::set< uint32_t >& getCurrencyIdList()
+ {
+ if( m_CurrencyIdList.size() == 0 )
loadIdList( m_CurrencyDat, m_CurrencyIdList );
- return m_CurrencyIdList;
-}
-const std::set< uint32_t >& getCustomTalkIdList()
-{
- if( m_CustomTalkIdList.size() == 0 )
+ return m_CurrencyIdList;
+ }
+
+ const std::set< uint32_t >& getCustomTalkIdList()
+ {
+ if( m_CustomTalkIdList.size() == 0 )
loadIdList( m_CustomTalkDat, m_CustomTalkIdList );
- return m_CustomTalkIdList;
-}
-const std::set< uint32_t >& getCutsceneIdList()
-{
- if( m_CutsceneIdList.size() == 0 )
+ return m_CustomTalkIdList;
+ }
+
+ const std::set< uint32_t >& getCutsceneIdList()
+ {
+ if( m_CutsceneIdList.size() == 0 )
loadIdList( m_CutsceneDat, m_CutsceneIdList );
- return m_CutsceneIdList;
-}
-const std::set< uint32_t >& getCutScreenImageIdList()
-{
- if( m_CutScreenImageIdList.size() == 0 )
+ return m_CutsceneIdList;
+ }
+
+ const std::set< uint32_t >& getCutScreenImageIdList()
+ {
+ if( m_CutScreenImageIdList.size() == 0 )
loadIdList( m_CutScreenImageDat, m_CutScreenImageIdList );
- return m_CutScreenImageIdList;
-}
-const std::set< uint32_t >& getDailySupplyItemIdList()
-{
- if( m_DailySupplyItemIdList.size() == 0 )
+ return m_CutScreenImageIdList;
+ }
+
+ const std::set< uint32_t >& getDailySupplyItemIdList()
+ {
+ if( m_DailySupplyItemIdList.size() == 0 )
loadIdList( m_DailySupplyItemDat, m_DailySupplyItemIdList );
- return m_DailySupplyItemIdList;
-}
-const std::set< uint32_t >& getDeepDungeonBanIdList()
-{
- if( m_DeepDungeonBanIdList.size() == 0 )
+ return m_DailySupplyItemIdList;
+ }
+
+ const std::set< uint32_t >& getDeepDungeonBanIdList()
+ {
+ if( m_DeepDungeonBanIdList.size() == 0 )
loadIdList( m_DeepDungeonBanDat, m_DeepDungeonBanIdList );
- return m_DeepDungeonBanIdList;
-}
-const std::set< uint32_t >& getDeepDungeonDangerIdList()
-{
- if( m_DeepDungeonDangerIdList.size() == 0 )
+ return m_DeepDungeonBanIdList;
+ }
+
+ const std::set< uint32_t >& getDeepDungeonDangerIdList()
+ {
+ if( m_DeepDungeonDangerIdList.size() == 0 )
loadIdList( m_DeepDungeonDangerDat, m_DeepDungeonDangerIdList );
- return m_DeepDungeonDangerIdList;
-}
-const std::set< uint32_t >& getDeepDungeonEquipmentIdList()
-{
- if( m_DeepDungeonEquipmentIdList.size() == 0 )
+ return m_DeepDungeonDangerIdList;
+ }
+
+ const std::set< uint32_t >& getDeepDungeonEquipmentIdList()
+ {
+ if( m_DeepDungeonEquipmentIdList.size() == 0 )
loadIdList( m_DeepDungeonEquipmentDat, m_DeepDungeonEquipmentIdList );
- return m_DeepDungeonEquipmentIdList;
-}
-const std::set< uint32_t >& getDeepDungeonFloorEffectUIIdList()
-{
- if( m_DeepDungeonFloorEffectUIIdList.size() == 0 )
+ return m_DeepDungeonEquipmentIdList;
+ }
+
+ const std::set< uint32_t >& getDeepDungeonFloorEffectUIIdList()
+ {
+ if( m_DeepDungeonFloorEffectUIIdList.size() == 0 )
loadIdList( m_DeepDungeonFloorEffectUIDat, m_DeepDungeonFloorEffectUIIdList );
- return m_DeepDungeonFloorEffectUIIdList;
-}
-const std::set< uint32_t >& getDeepDungeonItemIdList()
-{
- if( m_DeepDungeonItemIdList.size() == 0 )
+ return m_DeepDungeonFloorEffectUIIdList;
+ }
+
+ const std::set< uint32_t >& getDeepDungeonItemIdList()
+ {
+ if( m_DeepDungeonItemIdList.size() == 0 )
loadIdList( m_DeepDungeonItemDat, m_DeepDungeonItemIdList );
- return m_DeepDungeonItemIdList;
-}
-const std::set< uint32_t >& getDeepDungeonStatusIdList()
-{
- if( m_DeepDungeonStatusIdList.size() == 0 )
+ return m_DeepDungeonItemIdList;
+ }
+
+ const std::set< uint32_t >& getDeepDungeonStatusIdList()
+ {
+ if( m_DeepDungeonStatusIdList.size() == 0 )
loadIdList( m_DeepDungeonStatusDat, m_DeepDungeonStatusIdList );
- return m_DeepDungeonStatusIdList;
-}
-const std::set< uint32_t >& getDefaultTalkIdList()
-{
- if( m_DefaultTalkIdList.size() == 0 )
+ return m_DeepDungeonStatusIdList;
+ }
+
+ const std::set< uint32_t >& getDefaultTalkIdList()
+ {
+ if( m_DefaultTalkIdList.size() == 0 )
loadIdList( m_DefaultTalkDat, m_DefaultTalkIdList );
- return m_DefaultTalkIdList;
-}
-const std::set< uint32_t >& getDeliveryQuestIdList()
-{
- if( m_DeliveryQuestIdList.size() == 0 )
+ return m_DefaultTalkIdList;
+ }
+
+ const std::set< uint32_t >& getDeliveryQuestIdList()
+ {
+ if( m_DeliveryQuestIdList.size() == 0 )
loadIdList( m_DeliveryQuestDat, m_DeliveryQuestIdList );
- return m_DeliveryQuestIdList;
-}
-const std::set< uint32_t >& getDisposalShopIdList()
-{
- if( m_DisposalShopIdList.size() == 0 )
+ return m_DeliveryQuestIdList;
+ }
+
+ const std::set< uint32_t >& getDisposalShopIdList()
+ {
+ if( m_DisposalShopIdList.size() == 0 )
loadIdList( m_DisposalShopDat, m_DisposalShopIdList );
- return m_DisposalShopIdList;
-}
-const std::set< uint32_t >& getDisposalShopFilterTypeIdList()
-{
- if( m_DisposalShopFilterTypeIdList.size() == 0 )
+ return m_DisposalShopIdList;
+ }
+
+ const std::set< uint32_t >& getDisposalShopFilterTypeIdList()
+ {
+ if( m_DisposalShopFilterTypeIdList.size() == 0 )
loadIdList( m_DisposalShopFilterTypeDat, m_DisposalShopFilterTypeIdList );
- return m_DisposalShopFilterTypeIdList;
-}
-const std::set< uint32_t >& getDisposalShopItemIdList()
-{
- if( m_DisposalShopItemIdList.size() == 0 )
+ return m_DisposalShopFilterTypeIdList;
+ }
+
+ const std::set< uint32_t >& getDisposalShopItemIdList()
+ {
+ if( m_DisposalShopItemIdList.size() == 0 )
loadIdList( m_DisposalShopItemDat, m_DisposalShopItemIdList );
- return m_DisposalShopItemIdList;
-}
-const std::set< uint32_t >& getDpsChallengeIdList()
-{
- if( m_DpsChallengeIdList.size() == 0 )
+ return m_DisposalShopItemIdList;
+ }
+
+ const std::set< uint32_t >& getDpsChallengeIdList()
+ {
+ if( m_DpsChallengeIdList.size() == 0 )
loadIdList( m_DpsChallengeDat, m_DpsChallengeIdList );
- return m_DpsChallengeIdList;
-}
-const std::set< uint32_t >& getDpsChallengeOfficerIdList()
-{
- if( m_DpsChallengeOfficerIdList.size() == 0 )
+ return m_DpsChallengeIdList;
+ }
+
+ const std::set< uint32_t >& getDpsChallengeOfficerIdList()
+ {
+ if( m_DpsChallengeOfficerIdList.size() == 0 )
loadIdList( m_DpsChallengeOfficerDat, m_DpsChallengeOfficerIdList );
- return m_DpsChallengeOfficerIdList;
-}
-const std::set< uint32_t >& getDpsChallengeTransientIdList()
-{
- if( m_DpsChallengeTransientIdList.size() == 0 )
+ return m_DpsChallengeOfficerIdList;
+ }
+
+ const std::set< uint32_t >& getDpsChallengeTransientIdList()
+ {
+ if( m_DpsChallengeTransientIdList.size() == 0 )
loadIdList( m_DpsChallengeTransientDat, m_DpsChallengeTransientIdList );
- return m_DpsChallengeTransientIdList;
-}
-const std::set< uint32_t >& getEmoteIdList()
-{
- if( m_EmoteIdList.size() == 0 )
+ return m_DpsChallengeTransientIdList;
+ }
+
+ const std::set< uint32_t >& getEmoteIdList()
+ {
+ if( m_EmoteIdList.size() == 0 )
loadIdList( m_EmoteDat, m_EmoteIdList );
- return m_EmoteIdList;
-}
-const std::set< uint32_t >& getEmoteModeIdList()
-{
- if( m_EmoteModeIdList.size() == 0 )
- loadIdList( m_EmoteModeDat, m_EmoteModeIdList );
- return m_EmoteModeIdList;
-}
-const std::set< uint32_t >& getEmoteCategoryIdList()
-{
- if( m_EmoteCategoryIdList.size() == 0 )
+ return m_EmoteIdList;
+ }
+
+ const std::set< uint32_t >& getEmoteModeIdList()
+ {
+ if( m_EmoteModeIdList.size() == 0 )
+ loadIdList( m_EmoteModeDat, m_EmoteModeIdList );
+ return m_EmoteModeIdList;
+ }
+
+ const std::set< uint32_t >& getEmoteCategoryIdList()
+ {
+ if( m_EmoteCategoryIdList.size() == 0 )
loadIdList( m_EmoteCategoryDat, m_EmoteCategoryIdList );
- return m_EmoteCategoryIdList;
-}
-const std::set< uint32_t >& getENpcBaseIdList()
-{
- if( m_ENpcBaseIdList.size() == 0 )
+ return m_EmoteCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getENpcBaseIdList()
+ {
+ if( m_ENpcBaseIdList.size() == 0 )
loadIdList( m_ENpcBaseDat, m_ENpcBaseIdList );
- return m_ENpcBaseIdList;
-}
-const std::set< uint32_t >& getENpcResidentIdList()
-{
- if( m_ENpcResidentIdList.size() == 0 )
+ return m_ENpcBaseIdList;
+ }
+
+ const std::set< uint32_t >& getENpcResidentIdList()
+ {
+ if( m_ENpcResidentIdList.size() == 0 )
loadIdList( m_ENpcResidentDat, m_ENpcResidentIdList );
- return m_ENpcResidentIdList;
-}
-const std::set< uint32_t >& getEObjIdList()
-{
- if( m_EObjIdList.size() == 0 )
+ return m_ENpcResidentIdList;
+ }
+
+ const std::set< uint32_t >& getEObjIdList()
+ {
+ if( m_EObjIdList.size() == 0 )
loadIdList( m_EObjDat, m_EObjIdList );
- return m_EObjIdList;
-}
-const std::set< uint32_t >& getEObjNameIdList()
-{
- if( m_EObjNameIdList.size() == 0 )
+ return m_EObjIdList;
+ }
+
+ const std::set< uint32_t >& getEObjNameIdList()
+ {
+ if( m_EObjNameIdList.size() == 0 )
loadIdList( m_EObjNameDat, m_EObjNameIdList );
- return m_EObjNameIdList;
-}
-const std::set< uint32_t >& getEquipRaceCategoryIdList()
-{
- if( m_EquipRaceCategoryIdList.size() == 0 )
+ return m_EObjNameIdList;
+ }
+
+ const std::set< uint32_t >& getEquipRaceCategoryIdList()
+ {
+ if( m_EquipRaceCategoryIdList.size() == 0 )
loadIdList( m_EquipRaceCategoryDat, m_EquipRaceCategoryIdList );
- return m_EquipRaceCategoryIdList;
-}
-const std::set< uint32_t >& getEquipSlotCategoryIdList()
-{
- if( m_EquipSlotCategoryIdList.size() == 0 )
+ return m_EquipRaceCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getEquipSlotCategoryIdList()
+ {
+ if( m_EquipSlotCategoryIdList.size() == 0 )
loadIdList( m_EquipSlotCategoryDat, m_EquipSlotCategoryIdList );
- return m_EquipSlotCategoryIdList;
-}
-const std::set< uint32_t >& getEurekaAethernetIdList()
-{
- if( m_EurekaAethernetIdList.size() == 0 )
+ return m_EquipSlotCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getEurekaAethernetIdList()
+ {
+ if( m_EurekaAethernetIdList.size() == 0 )
loadIdList( m_EurekaAethernetDat, m_EurekaAethernetIdList );
- return m_EurekaAethernetIdList;
-}
-const std::set< uint32_t >& getEurekaGrowDataIdList()
-{
- if( m_EurekaGrowDataIdList.size() == 0 )
+ return m_EurekaAethernetIdList;
+ }
+
+ const std::set< uint32_t >& getEurekaGrowDataIdList()
+ {
+ if( m_EurekaGrowDataIdList.size() == 0 )
loadIdList( m_EurekaGrowDataDat, m_EurekaGrowDataIdList );
- return m_EurekaGrowDataIdList;
-}
-const std::set< uint32_t >& getEurekaSphereElementAdjustIdList()
-{
- if( m_EurekaSphereElementAdjustIdList.size() == 0 )
+ return m_EurekaGrowDataIdList;
+ }
+
+ const std::set< uint32_t >& getEurekaSphereElementAdjustIdList()
+ {
+ if( m_EurekaSphereElementAdjustIdList.size() == 0 )
loadIdList( m_EurekaSphereElementAdjustDat, m_EurekaSphereElementAdjustIdList );
- return m_EurekaSphereElementAdjustIdList;
-}
-const std::set< uint32_t >& getEventActionIdList()
-{
- if( m_EventActionIdList.size() == 0 )
+ return m_EurekaSphereElementAdjustIdList;
+ }
+
+ const std::set< uint32_t >& getEventActionIdList()
+ {
+ if( m_EventActionIdList.size() == 0 )
loadIdList( m_EventActionDat, m_EventActionIdList );
- return m_EventActionIdList;
-}
-const std::set< uint32_t >& getEventIconPriorityIdList()
-{
- if( m_EventIconPriorityIdList.size() == 0 )
+ return m_EventActionIdList;
+ }
+
+ const std::set< uint32_t >& getEventIconPriorityIdList()
+ {
+ if( m_EventIconPriorityIdList.size() == 0 )
loadIdList( m_EventIconPriorityDat, m_EventIconPriorityIdList );
- return m_EventIconPriorityIdList;
-}
-const std::set< uint32_t >& getEventIconTypeIdList()
-{
- if( m_EventIconTypeIdList.size() == 0 )
+ return m_EventIconPriorityIdList;
+ }
+
+ const std::set< uint32_t >& getEventIconTypeIdList()
+ {
+ if( m_EventIconTypeIdList.size() == 0 )
loadIdList( m_EventIconTypeDat, m_EventIconTypeIdList );
- return m_EventIconTypeIdList;
-}
-const std::set< uint32_t >& getEventItemIdList()
-{
- if( m_EventItemIdList.size() == 0 )
+ return m_EventIconTypeIdList;
+ }
+
+ const std::set< uint32_t >& getEventItemIdList()
+ {
+ if( m_EventItemIdList.size() == 0 )
loadIdList( m_EventItemDat, m_EventItemIdList );
- return m_EventItemIdList;
-}
-const std::set< uint32_t >& getEventItemHelpIdList()
-{
- if( m_EventItemHelpIdList.size() == 0 )
+ return m_EventItemIdList;
+ }
+
+ const std::set< uint32_t >& getEventItemHelpIdList()
+ {
+ if( m_EventItemHelpIdList.size() == 0 )
loadIdList( m_EventItemHelpDat, m_EventItemHelpIdList );
- return m_EventItemHelpIdList;
-}
-const std::set< uint32_t >& getExVersionIdList()
-{
- if( m_ExVersionIdList.size() == 0 )
+ return m_EventItemHelpIdList;
+ }
+
+ const std::set< uint32_t >& getExVersionIdList()
+ {
+ if( m_ExVersionIdList.size() == 0 )
loadIdList( m_ExVersionDat, m_ExVersionIdList );
- return m_ExVersionIdList;
-}
-const std::set< uint32_t >& getFateIdList()
-{
- if( m_FateIdList.size() == 0 )
+ return m_ExVersionIdList;
+ }
+
+ const std::set< uint32_t >& getFateIdList()
+ {
+ if( m_FateIdList.size() == 0 )
loadIdList( m_FateDat, m_FateIdList );
- return m_FateIdList;
-}
-const std::set< uint32_t >& getFCActivityIdList()
-{
- if( m_FCActivityIdList.size() == 0 )
+ return m_FateIdList;
+ }
+
+ const std::set< uint32_t >& getFCActivityIdList()
+ {
+ if( m_FCActivityIdList.size() == 0 )
loadIdList( m_FCActivityDat, m_FCActivityIdList );
- return m_FCActivityIdList;
-}
-const std::set< uint32_t >& getFCActivityCategoryIdList()
-{
- if( m_FCActivityCategoryIdList.size() == 0 )
+ return m_FCActivityIdList;
+ }
+
+ const std::set< uint32_t >& getFCActivityCategoryIdList()
+ {
+ if( m_FCActivityCategoryIdList.size() == 0 )
loadIdList( m_FCActivityCategoryDat, m_FCActivityCategoryIdList );
- return m_FCActivityCategoryIdList;
-}
-const std::set< uint32_t >& getFCAuthorityIdList()
-{
- if( m_FCAuthorityIdList.size() == 0 )
+ return m_FCActivityCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getFCAuthorityIdList()
+ {
+ if( m_FCAuthorityIdList.size() == 0 )
loadIdList( m_FCAuthorityDat, m_FCAuthorityIdList );
- return m_FCAuthorityIdList;
-}
-const std::set< uint32_t >& getFCAuthorityCategoryIdList()
-{
- if( m_FCAuthorityCategoryIdList.size() == 0 )
+ return m_FCAuthorityIdList;
+ }
+
+ const std::set< uint32_t >& getFCAuthorityCategoryIdList()
+ {
+ if( m_FCAuthorityCategoryIdList.size() == 0 )
loadIdList( m_FCAuthorityCategoryDat, m_FCAuthorityCategoryIdList );
- return m_FCAuthorityCategoryIdList;
-}
-const std::set< uint32_t >& getFCChestNameIdList()
-{
- if( m_FCChestNameIdList.size() == 0 )
+ return m_FCAuthorityCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getFCChestNameIdList()
+ {
+ if( m_FCChestNameIdList.size() == 0 )
loadIdList( m_FCChestNameDat, m_FCChestNameIdList );
- return m_FCChestNameIdList;
-}
-const std::set< uint32_t >& getFccShopIdList()
-{
- if( m_FccShopIdList.size() == 0 )
+ return m_FCChestNameIdList;
+ }
+
+ const std::set< uint32_t >& getFccShopIdList()
+ {
+ if( m_FccShopIdList.size() == 0 )
loadIdList( m_FccShopDat, m_FccShopIdList );
- return m_FccShopIdList;
-}
-const std::set< uint32_t >& getFCHierarchyIdList()
-{
- if( m_FCHierarchyIdList.size() == 0 )
+ return m_FccShopIdList;
+ }
+
+ const std::set< uint32_t >& getFCHierarchyIdList()
+ {
+ if( m_FCHierarchyIdList.size() == 0 )
loadIdList( m_FCHierarchyDat, m_FCHierarchyIdList );
- return m_FCHierarchyIdList;
-}
-const std::set< uint32_t >& getFCProfileIdList()
-{
- if( m_FCProfileIdList.size() == 0 )
+ return m_FCHierarchyIdList;
+ }
+
+ const std::set< uint32_t >& getFCProfileIdList()
+ {
+ if( m_FCProfileIdList.size() == 0 )
loadIdList( m_FCProfileDat, m_FCProfileIdList );
- return m_FCProfileIdList;
-}
-const std::set< uint32_t >& getFCReputationIdList()
-{
- if( m_FCReputationIdList.size() == 0 )
+ return m_FCProfileIdList;
+ }
+
+ const std::set< uint32_t >& getFCReputationIdList()
+ {
+ if( m_FCReputationIdList.size() == 0 )
loadIdList( m_FCReputationDat, m_FCReputationIdList );
- return m_FCReputationIdList;
-}
-const std::set< uint32_t >& getFCRightsIdList()
-{
- if( m_FCRightsIdList.size() == 0 )
+ return m_FCReputationIdList;
+ }
+
+ const std::set< uint32_t >& getFCRightsIdList()
+ {
+ if( m_FCRightsIdList.size() == 0 )
loadIdList( m_FCRightsDat, m_FCRightsIdList );
- return m_FCRightsIdList;
-}
-const std::set< uint32_t >& getFieldMarkerIdList()
-{
- if( m_FieldMarkerIdList.size() == 0 )
+ return m_FCRightsIdList;
+ }
+
+ const std::set< uint32_t >& getFieldMarkerIdList()
+ {
+ if( m_FieldMarkerIdList.size() == 0 )
loadIdList( m_FieldMarkerDat, m_FieldMarkerIdList );
- return m_FieldMarkerIdList;
-}
-const std::set< uint32_t >& getFishingSpotIdList()
-{
- if( m_FishingSpotIdList.size() == 0 )
+ return m_FieldMarkerIdList;
+ }
+
+ const std::set< uint32_t >& getFishingSpotIdList()
+ {
+ if( m_FishingSpotIdList.size() == 0 )
loadIdList( m_FishingSpotDat, m_FishingSpotIdList );
- return m_FishingSpotIdList;
-}
-const std::set< uint32_t >& getFishParameterIdList()
-{
- if( m_FishParameterIdList.size() == 0 )
+ return m_FishingSpotIdList;
+ }
+
+ const std::set< uint32_t >& getFishParameterIdList()
+ {
+ if( m_FishParameterIdList.size() == 0 )
loadIdList( m_FishParameterDat, m_FishParameterIdList );
- return m_FishParameterIdList;
-}
-const std::set< uint32_t >& getGardeningSeedIdList()
-{
- if( m_GardeningSeedIdList.size() == 0 )
+ return m_FishParameterIdList;
+ }
+
+ const std::set< uint32_t >& getGardeningSeedIdList()
+ {
+ if( m_GardeningSeedIdList.size() == 0 )
loadIdList( m_GardeningSeedDat, m_GardeningSeedIdList );
- return m_GardeningSeedIdList;
-}
-const std::set< uint32_t >& getGatheringConditionIdList()
-{
- if( m_GatheringConditionIdList.size() == 0 )
+ return m_GardeningSeedIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringConditionIdList()
+ {
+ if( m_GatheringConditionIdList.size() == 0 )
loadIdList( m_GatheringConditionDat, m_GatheringConditionIdList );
- return m_GatheringConditionIdList;
-}
-const std::set< uint32_t >& getGatheringExpIdList()
-{
- if( m_GatheringExpIdList.size() == 0 )
+ return m_GatheringConditionIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringExpIdList()
+ {
+ if( m_GatheringExpIdList.size() == 0 )
loadIdList( m_GatheringExpDat, m_GatheringExpIdList );
- return m_GatheringExpIdList;
-}
-const std::set< uint32_t >& getGatheringItemIdList()
-{
- if( m_GatheringItemIdList.size() == 0 )
+ return m_GatheringExpIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringItemIdList()
+ {
+ if( m_GatheringItemIdList.size() == 0 )
loadIdList( m_GatheringItemDat, m_GatheringItemIdList );
- return m_GatheringItemIdList;
-}
-const std::set< uint32_t >& getGatheringItemLevelConvertTableIdList()
-{
- if( m_GatheringItemLevelConvertTableIdList.size() == 0 )
+ return m_GatheringItemIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringItemLevelConvertTableIdList()
+ {
+ if( m_GatheringItemLevelConvertTableIdList.size() == 0 )
loadIdList( m_GatheringItemLevelConvertTableDat, m_GatheringItemLevelConvertTableIdList );
- return m_GatheringItemLevelConvertTableIdList;
-}
-const std::set< uint32_t >& getGatheringItemPointIdList()
-{
- if( m_GatheringItemPointIdList.size() == 0 )
+ return m_GatheringItemLevelConvertTableIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringItemPointIdList()
+ {
+ if( m_GatheringItemPointIdList.size() == 0 )
loadIdList( m_GatheringItemPointDat, m_GatheringItemPointIdList );
- return m_GatheringItemPointIdList;
-}
-const std::set< uint32_t >& getGatheringNotebookListIdList()
-{
- if( m_GatheringNotebookListIdList.size() == 0 )
+ return m_GatheringItemPointIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringNotebookListIdList()
+ {
+ if( m_GatheringNotebookListIdList.size() == 0 )
loadIdList( m_GatheringNotebookListDat, m_GatheringNotebookListIdList );
- return m_GatheringNotebookListIdList;
-}
-const std::set< uint32_t >& getGatheringPointIdList()
-{
- if( m_GatheringPointIdList.size() == 0 )
+ return m_GatheringNotebookListIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringPointIdList()
+ {
+ if( m_GatheringPointIdList.size() == 0 )
loadIdList( m_GatheringPointDat, m_GatheringPointIdList );
- return m_GatheringPointIdList;
-}
-const std::set< uint32_t >& getGatheringPointBaseIdList()
-{
- if( m_GatheringPointBaseIdList.size() == 0 )
+ return m_GatheringPointIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringPointBaseIdList()
+ {
+ if( m_GatheringPointBaseIdList.size() == 0 )
loadIdList( m_GatheringPointBaseDat, m_GatheringPointBaseIdList );
- return m_GatheringPointBaseIdList;
-}
-const std::set< uint32_t >& getGatheringPointBonusIdList()
-{
- if( m_GatheringPointBonusIdList.size() == 0 )
+ return m_GatheringPointBaseIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringPointBonusIdList()
+ {
+ if( m_GatheringPointBonusIdList.size() == 0 )
loadIdList( m_GatheringPointBonusDat, m_GatheringPointBonusIdList );
- return m_GatheringPointBonusIdList;
-}
-const std::set< uint32_t >& getGatheringPointBonusTypeIdList()
-{
- if( m_GatheringPointBonusTypeIdList.size() == 0 )
+ return m_GatheringPointBonusIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringPointBonusTypeIdList()
+ {
+ if( m_GatheringPointBonusTypeIdList.size() == 0 )
loadIdList( m_GatheringPointBonusTypeDat, m_GatheringPointBonusTypeIdList );
- return m_GatheringPointBonusTypeIdList;
-}
-const std::set< uint32_t >& getGatheringPointNameIdList()
-{
- if( m_GatheringPointNameIdList.size() == 0 )
+ return m_GatheringPointBonusTypeIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringPointNameIdList()
+ {
+ if( m_GatheringPointNameIdList.size() == 0 )
loadIdList( m_GatheringPointNameDat, m_GatheringPointNameIdList );
- return m_GatheringPointNameIdList;
-}
-const std::set< uint32_t >& getGatheringSubCategoryIdList()
-{
- if( m_GatheringSubCategoryIdList.size() == 0 )
+ return m_GatheringPointNameIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringSubCategoryIdList()
+ {
+ if( m_GatheringSubCategoryIdList.size() == 0 )
loadIdList( m_GatheringSubCategoryDat, m_GatheringSubCategoryIdList );
- return m_GatheringSubCategoryIdList;
-}
-const std::set< uint32_t >& getGatheringTypeIdList()
-{
- if( m_GatheringTypeIdList.size() == 0 )
+ return m_GatheringSubCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getGatheringTypeIdList()
+ {
+ if( m_GatheringTypeIdList.size() == 0 )
loadIdList( m_GatheringTypeDat, m_GatheringTypeIdList );
- return m_GatheringTypeIdList;
-}
-const std::set< uint32_t >& getGcArmyExpeditionIdList()
-{
- if( m_GcArmyExpeditionIdList.size() == 0 )
+ return m_GatheringTypeIdList;
+ }
+
+ const std::set< uint32_t >& getGcArmyExpeditionIdList()
+ {
+ if( m_GcArmyExpeditionIdList.size() == 0 )
loadIdList( m_GcArmyExpeditionDat, m_GcArmyExpeditionIdList );
- return m_GcArmyExpeditionIdList;
-}
-const std::set< uint32_t >& getGcArmyExpeditionMemberBonusIdList()
-{
- if( m_GcArmyExpeditionMemberBonusIdList.size() == 0 )
+ return m_GcArmyExpeditionIdList;
+ }
+
+ const std::set< uint32_t >& getGcArmyExpeditionMemberBonusIdList()
+ {
+ if( m_GcArmyExpeditionMemberBonusIdList.size() == 0 )
loadIdList( m_GcArmyExpeditionMemberBonusDat, m_GcArmyExpeditionMemberBonusIdList );
- return m_GcArmyExpeditionMemberBonusIdList;
-}
-const std::set< uint32_t >& getGcArmyExpeditionTypeIdList()
-{
- if( m_GcArmyExpeditionTypeIdList.size() == 0 )
+ return m_GcArmyExpeditionMemberBonusIdList;
+ }
+
+ const std::set< uint32_t >& getGcArmyExpeditionTypeIdList()
+ {
+ if( m_GcArmyExpeditionTypeIdList.size() == 0 )
loadIdList( m_GcArmyExpeditionTypeDat, m_GcArmyExpeditionTypeIdList );
- return m_GcArmyExpeditionTypeIdList;
-}
-const std::set< uint32_t >& getGcArmyMemberGrowIdList()
-{
- if( m_GcArmyMemberGrowIdList.size() == 0 )
+ return m_GcArmyExpeditionTypeIdList;
+ }
+
+ const std::set< uint32_t >& getGcArmyMemberGrowIdList()
+ {
+ if( m_GcArmyMemberGrowIdList.size() == 0 )
loadIdList( m_GcArmyMemberGrowDat, m_GcArmyMemberGrowIdList );
- return m_GcArmyMemberGrowIdList;
-}
-const std::set< uint32_t >& getGcArmyTrainingIdList()
-{
- if( m_GcArmyTrainingIdList.size() == 0 )
+ return m_GcArmyMemberGrowIdList;
+ }
+
+ const std::set< uint32_t >& getGcArmyTrainingIdList()
+ {
+ if( m_GcArmyTrainingIdList.size() == 0 )
loadIdList( m_GcArmyTrainingDat, m_GcArmyTrainingIdList );
- return m_GcArmyTrainingIdList;
-}
-const std::set< uint32_t >& getGCRankGridaniaFemaleTextIdList()
-{
- if( m_GCRankGridaniaFemaleTextIdList.size() == 0 )
+ return m_GcArmyTrainingIdList;
+ }
+
+ const std::set< uint32_t >& getGCRankGridaniaFemaleTextIdList()
+ {
+ if( m_GCRankGridaniaFemaleTextIdList.size() == 0 )
loadIdList( m_GCRankGridaniaFemaleTextDat, m_GCRankGridaniaFemaleTextIdList );
- return m_GCRankGridaniaFemaleTextIdList;
-}
-const std::set< uint32_t >& getGCRankGridaniaMaleTextIdList()
-{
- if( m_GCRankGridaniaMaleTextIdList.size() == 0 )
+ return m_GCRankGridaniaFemaleTextIdList;
+ }
+
+ const std::set< uint32_t >& getGCRankGridaniaMaleTextIdList()
+ {
+ if( m_GCRankGridaniaMaleTextIdList.size() == 0 )
loadIdList( m_GCRankGridaniaMaleTextDat, m_GCRankGridaniaMaleTextIdList );
- return m_GCRankGridaniaMaleTextIdList;
-}
-const std::set< uint32_t >& getGCRankLimsaFemaleTextIdList()
-{
- if( m_GCRankLimsaFemaleTextIdList.size() == 0 )
+ return m_GCRankGridaniaMaleTextIdList;
+ }
+
+ const std::set< uint32_t >& getGCRankLimsaFemaleTextIdList()
+ {
+ if( m_GCRankLimsaFemaleTextIdList.size() == 0 )
loadIdList( m_GCRankLimsaFemaleTextDat, m_GCRankLimsaFemaleTextIdList );
- return m_GCRankLimsaFemaleTextIdList;
-}
-const std::set< uint32_t >& getGCRankLimsaMaleTextIdList()
-{
- if( m_GCRankLimsaMaleTextIdList.size() == 0 )
+ return m_GCRankLimsaFemaleTextIdList;
+ }
+
+ const std::set< uint32_t >& getGCRankLimsaMaleTextIdList()
+ {
+ if( m_GCRankLimsaMaleTextIdList.size() == 0 )
loadIdList( m_GCRankLimsaMaleTextDat, m_GCRankLimsaMaleTextIdList );
- return m_GCRankLimsaMaleTextIdList;
-}
-const std::set< uint32_t >& getGCRankUldahFemaleTextIdList()
-{
- if( m_GCRankUldahFemaleTextIdList.size() == 0 )
+ return m_GCRankLimsaMaleTextIdList;
+ }
+
+ const std::set< uint32_t >& getGCRankUldahFemaleTextIdList()
+ {
+ if( m_GCRankUldahFemaleTextIdList.size() == 0 )
loadIdList( m_GCRankUldahFemaleTextDat, m_GCRankUldahFemaleTextIdList );
- return m_GCRankUldahFemaleTextIdList;
-}
-const std::set< uint32_t >& getGCRankUldahMaleTextIdList()
-{
- if( m_GCRankUldahMaleTextIdList.size() == 0 )
+ return m_GCRankUldahFemaleTextIdList;
+ }
+
+ const std::set< uint32_t >& getGCRankUldahMaleTextIdList()
+ {
+ if( m_GCRankUldahMaleTextIdList.size() == 0 )
loadIdList( m_GCRankUldahMaleTextDat, m_GCRankUldahMaleTextIdList );
- return m_GCRankUldahMaleTextIdList;
-}
-const std::set< uint32_t >& getGCScripShopCategoryIdList()
-{
- if( m_GCScripShopCategoryIdList.size() == 0 )
+ return m_GCRankUldahMaleTextIdList;
+ }
+
+ const std::set< uint32_t >& getGCScripShopCategoryIdList()
+ {
+ if( m_GCScripShopCategoryIdList.size() == 0 )
loadIdList( m_GCScripShopCategoryDat, m_GCScripShopCategoryIdList );
- return m_GCScripShopCategoryIdList;
-}
-const std::set< uint32_t >& getGCScripShopItemIdList()
-{
- if( m_GCScripShopItemIdList.size() == 0 )
+ return m_GCScripShopCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getGCScripShopItemIdList()
+ {
+ if( m_GCScripShopItemIdList.size() == 0 )
loadIdList( m_GCScripShopItemDat, m_GCScripShopItemIdList );
- return m_GCScripShopItemIdList;
-}
-const std::set< uint32_t >& getGCShopIdList()
-{
- if( m_GCShopIdList.size() == 0 )
+ return m_GCScripShopItemIdList;
+ }
+
+ const std::set< uint32_t >& getGCShopIdList()
+ {
+ if( m_GCShopIdList.size() == 0 )
loadIdList( m_GCShopDat, m_GCShopIdList );
- return m_GCShopIdList;
-}
-const std::set< uint32_t >& getGCShopItemCategoryIdList()
-{
- if( m_GCShopItemCategoryIdList.size() == 0 )
+ return m_GCShopIdList;
+ }
+
+ const std::set< uint32_t >& getGCShopItemCategoryIdList()
+ {
+ if( m_GCShopItemCategoryIdList.size() == 0 )
loadIdList( m_GCShopItemCategoryDat, m_GCShopItemCategoryIdList );
- return m_GCShopItemCategoryIdList;
-}
-const std::set< uint32_t >& getGCSupplyDutyIdList()
-{
- if( m_GCSupplyDutyIdList.size() == 0 )
+ return m_GCShopItemCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getGCSupplyDutyIdList()
+ {
+ if( m_GCSupplyDutyIdList.size() == 0 )
loadIdList( m_GCSupplyDutyDat, m_GCSupplyDutyIdList );
- return m_GCSupplyDutyIdList;
-}
-const std::set< uint32_t >& getGCSupplyDutyRewardIdList()
-{
- if( m_GCSupplyDutyRewardIdList.size() == 0 )
+ return m_GCSupplyDutyIdList;
+ }
+
+ const std::set< uint32_t >& getGCSupplyDutyRewardIdList()
+ {
+ if( m_GCSupplyDutyRewardIdList.size() == 0 )
loadIdList( m_GCSupplyDutyRewardDat, m_GCSupplyDutyRewardIdList );
- return m_GCSupplyDutyRewardIdList;
-}
-const std::set< uint32_t >& getGeneralActionIdList()
-{
- if( m_GeneralActionIdList.size() == 0 )
+ return m_GCSupplyDutyRewardIdList;
+ }
+
+ const std::set< uint32_t >& getGeneralActionIdList()
+ {
+ if( m_GeneralActionIdList.size() == 0 )
loadIdList( m_GeneralActionDat, m_GeneralActionIdList );
- return m_GeneralActionIdList;
-}
-const std::set< uint32_t >& getGilShopIdList()
-{
- if( m_GilShopIdList.size() == 0 )
+ return m_GeneralActionIdList;
+ }
+
+ const std::set< uint32_t >& getGilShopIdList()
+ {
+ if( m_GilShopIdList.size() == 0 )
loadIdList( m_GilShopDat, m_GilShopIdList );
- return m_GilShopIdList;
-}
-const std::set< uint32_t >& getGilShopItemIdList()
-{
- if( m_GilShopItemIdList.size() == 0 )
+ return m_GilShopIdList;
+ }
+
+ const std::set< uint32_t >& getGilShopItemIdList()
+ {
+ if( m_GilShopItemIdList.size() == 0 )
loadIdList( m_GilShopItemDat, m_GilShopItemIdList );
- return m_GilShopItemIdList;
-}
-const std::set< uint32_t >& getGoldSaucerTextDataIdList()
-{
- if( m_GoldSaucerTextDataIdList.size() == 0 )
+ return m_GilShopItemIdList;
+ }
+
+ const std::set< uint32_t >& getGoldSaucerTextDataIdList()
+ {
+ if( m_GoldSaucerTextDataIdList.size() == 0 )
loadIdList( m_GoldSaucerTextDataDat, m_GoldSaucerTextDataIdList );
- return m_GoldSaucerTextDataIdList;
-}
-const std::set< uint32_t >& getGrandCompanyIdList()
-{
- if( m_GrandCompanyIdList.size() == 0 )
+ return m_GoldSaucerTextDataIdList;
+ }
+
+ const std::set< uint32_t >& getGrandCompanyIdList()
+ {
+ if( m_GrandCompanyIdList.size() == 0 )
loadIdList( m_GrandCompanyDat, m_GrandCompanyIdList );
- return m_GrandCompanyIdList;
-}
-const std::set< uint32_t >& getGrandCompanyRankIdList()
-{
- if( m_GrandCompanyRankIdList.size() == 0 )
+ return m_GrandCompanyIdList;
+ }
+
+ const std::set< uint32_t >& getGrandCompanyRankIdList()
+ {
+ if( m_GrandCompanyRankIdList.size() == 0 )
loadIdList( m_GrandCompanyRankDat, m_GrandCompanyRankIdList );
- return m_GrandCompanyRankIdList;
-}
-const std::set< uint32_t >& getGuardianDeityIdList()
-{
- if( m_GuardianDeityIdList.size() == 0 )
+ return m_GrandCompanyRankIdList;
+ }
+
+ const std::set< uint32_t >& getGuardianDeityIdList()
+ {
+ if( m_GuardianDeityIdList.size() == 0 )
loadIdList( m_GuardianDeityDat, m_GuardianDeityIdList );
- return m_GuardianDeityIdList;
-}
-const std::set< uint32_t >& getGuildleveAssignmentIdList()
-{
- if( m_GuildleveAssignmentIdList.size() == 0 )
+ return m_GuardianDeityIdList;
+ }
+
+ const std::set< uint32_t >& getGuildleveAssignmentIdList()
+ {
+ if( m_GuildleveAssignmentIdList.size() == 0 )
loadIdList( m_GuildleveAssignmentDat, m_GuildleveAssignmentIdList );
- return m_GuildleveAssignmentIdList;
-}
-const std::set< uint32_t >& getGuildOrderGuideIdList()
-{
- if( m_GuildOrderGuideIdList.size() == 0 )
+ return m_GuildleveAssignmentIdList;
+ }
+
+ const std::set< uint32_t >& getGuildOrderGuideIdList()
+ {
+ if( m_GuildOrderGuideIdList.size() == 0 )
loadIdList( m_GuildOrderGuideDat, m_GuildOrderGuideIdList );
- return m_GuildOrderGuideIdList;
-}
-const std::set< uint32_t >& getGuildOrderOfficerIdList()
-{
- if( m_GuildOrderOfficerIdList.size() == 0 )
+ return m_GuildOrderGuideIdList;
+ }
+
+ const std::set< uint32_t >& getGuildOrderOfficerIdList()
+ {
+ if( m_GuildOrderOfficerIdList.size() == 0 )
loadIdList( m_GuildOrderOfficerDat, m_GuildOrderOfficerIdList );
- return m_GuildOrderOfficerIdList;
-}
-const std::set< uint32_t >& getHouseRetainerPoseIdList()
-{
- if( m_HouseRetainerPoseIdList.size() == 0 )
+ return m_GuildOrderOfficerIdList;
+ }
+
+ const std::set< uint32_t >& getHouseRetainerPoseIdList()
+ {
+ if( m_HouseRetainerPoseIdList.size() == 0 )
loadIdList( m_HouseRetainerPoseDat, m_HouseRetainerPoseIdList );
- return m_HouseRetainerPoseIdList;
-}
-const std::set< uint32_t >& getHousingFurnitureIdList()
-{
- if( m_HousingFurnitureIdList.size() == 0 )
+ return m_HouseRetainerPoseIdList;
+ }
+
+ const std::set< uint32_t >& getHousingFurnitureIdList()
+ {
+ if( m_HousingFurnitureIdList.size() == 0 )
loadIdList( m_HousingFurnitureDat, m_HousingFurnitureIdList );
- return m_HousingFurnitureIdList;
-}
-const std::set< uint32_t >& getHousingYardObjectIdList()
-{
- if( m_HousingYardObjectIdList.size() == 0 )
+ return m_HousingFurnitureIdList;
+ }
+
+ const std::set< uint32_t >& getHousingYardObjectIdList()
+ {
+ if( m_HousingYardObjectIdList.size() == 0 )
loadIdList( m_HousingYardObjectDat, m_HousingYardObjectIdList );
- return m_HousingYardObjectIdList;
-}
-const std::set< uint32_t >& getInstanceContentIdList()
-{
- if( m_InstanceContentIdList.size() == 0 )
+ return m_HousingYardObjectIdList;
+ }
+
+ const std::set< uint32_t >& getInstanceContentIdList()
+ {
+ if( m_InstanceContentIdList.size() == 0 )
loadIdList( m_InstanceContentDat, m_InstanceContentIdList );
- return m_InstanceContentIdList;
-}
-const std::set< uint32_t >& getInstanceContentBuffIdList()
-{
- if( m_InstanceContentBuffIdList.size() == 0 )
+ return m_InstanceContentIdList;
+ }
+
+ const std::set< uint32_t >& getInstanceContentBuffIdList()
+ {
+ if( m_InstanceContentBuffIdList.size() == 0 )
loadIdList( m_InstanceContentBuffDat, m_InstanceContentBuffIdList );
- return m_InstanceContentBuffIdList;
-}
-const std::set< uint32_t >& getInstanceContentTextDataIdList()
-{
- if( m_InstanceContentTextDataIdList.size() == 0 )
+ return m_InstanceContentBuffIdList;
+ }
+
+ const std::set< uint32_t >& getInstanceContentTextDataIdList()
+ {
+ if( m_InstanceContentTextDataIdList.size() == 0 )
loadIdList( m_InstanceContentTextDataDat, m_InstanceContentTextDataIdList );
- return m_InstanceContentTextDataIdList;
-}
-const std::set< uint32_t >& getItemIdList()
-{
- if( m_ItemIdList.size() == 0 )
+ return m_InstanceContentTextDataIdList;
+ }
+
+ const std::set< uint32_t >& getItemIdList()
+ {
+ if( m_ItemIdList.size() == 0 )
loadIdList( m_ItemDat, m_ItemIdList );
- return m_ItemIdList;
-}
-const std::set< uint32_t >& getItemActionIdList()
-{
- if( m_ItemActionIdList.size() == 0 )
+ return m_ItemIdList;
+ }
+
+ const std::set< uint32_t >& getItemActionIdList()
+ {
+ if( m_ItemActionIdList.size() == 0 )
loadIdList( m_ItemActionDat, m_ItemActionIdList );
- return m_ItemActionIdList;
-}
-const std::set< uint32_t >& getItemFoodIdList()
-{
- if( m_ItemFoodIdList.size() == 0 )
+ return m_ItemActionIdList;
+ }
+
+ const std::set< uint32_t >& getItemFoodIdList()
+ {
+ if( m_ItemFoodIdList.size() == 0 )
loadIdList( m_ItemFoodDat, m_ItemFoodIdList );
- return m_ItemFoodIdList;
-}
-const std::set< uint32_t >& getItemSearchCategoryIdList()
-{
- if( m_ItemSearchCategoryIdList.size() == 0 )
+ return m_ItemFoodIdList;
+ }
+
+ const std::set< uint32_t >& getItemSearchCategoryIdList()
+ {
+ if( m_ItemSearchCategoryIdList.size() == 0 )
loadIdList( m_ItemSearchCategoryDat, m_ItemSearchCategoryIdList );
- return m_ItemSearchCategoryIdList;
-}
-const std::set< uint32_t >& getItemSeriesIdList()
-{
- if( m_ItemSeriesIdList.size() == 0 )
+ return m_ItemSearchCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getItemSeriesIdList()
+ {
+ if( m_ItemSeriesIdList.size() == 0 )
loadIdList( m_ItemSeriesDat, m_ItemSeriesIdList );
- return m_ItemSeriesIdList;
-}
-const std::set< uint32_t >& getItemSpecialBonusIdList()
-{
- if( m_ItemSpecialBonusIdList.size() == 0 )
+ return m_ItemSeriesIdList;
+ }
+
+ const std::set< uint32_t >& getItemSpecialBonusIdList()
+ {
+ if( m_ItemSpecialBonusIdList.size() == 0 )
loadIdList( m_ItemSpecialBonusDat, m_ItemSpecialBonusIdList );
- return m_ItemSpecialBonusIdList;
-}
-const std::set< uint32_t >& getItemUICategoryIdList()
-{
- if( m_ItemUICategoryIdList.size() == 0 )
+ return m_ItemSpecialBonusIdList;
+ }
+
+ const std::set< uint32_t >& getItemUICategoryIdList()
+ {
+ if( m_ItemUICategoryIdList.size() == 0 )
loadIdList( m_ItemUICategoryDat, m_ItemUICategoryIdList );
- return m_ItemUICategoryIdList;
-}
-const std::set< uint32_t >& getJournalCategoryIdList()
-{
- if( m_JournalCategoryIdList.size() == 0 )
+ return m_ItemUICategoryIdList;
+ }
+
+ const std::set< uint32_t >& getJournalCategoryIdList()
+ {
+ if( m_JournalCategoryIdList.size() == 0 )
loadIdList( m_JournalCategoryDat, m_JournalCategoryIdList );
- return m_JournalCategoryIdList;
-}
-const std::set< uint32_t >& getJournalGenreIdList()
-{
- if( m_JournalGenreIdList.size() == 0 )
+ return m_JournalCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getJournalGenreIdList()
+ {
+ if( m_JournalGenreIdList.size() == 0 )
loadIdList( m_JournalGenreDat, m_JournalGenreIdList );
- return m_JournalGenreIdList;
-}
-const std::set< uint32_t >& getJournalSectionIdList()
-{
- if( m_JournalSectionIdList.size() == 0 )
+ return m_JournalGenreIdList;
+ }
+
+ const std::set< uint32_t >& getJournalSectionIdList()
+ {
+ if( m_JournalSectionIdList.size() == 0 )
loadIdList( m_JournalSectionDat, m_JournalSectionIdList );
- return m_JournalSectionIdList;
-}
-const std::set< uint32_t >& getLeveIdList()
-{
- if( m_LeveIdList.size() == 0 )
+ return m_JournalSectionIdList;
+ }
+
+ const std::set< uint32_t >& getLeveIdList()
+ {
+ if( m_LeveIdList.size() == 0 )
loadIdList( m_LeveDat, m_LeveIdList );
- return m_LeveIdList;
-}
-const std::set< uint32_t >& getLeveAssignmentTypeIdList()
-{
- if( m_LeveAssignmentTypeIdList.size() == 0 )
+ return m_LeveIdList;
+ }
+
+ const std::set< uint32_t >& getLeveAssignmentTypeIdList()
+ {
+ if( m_LeveAssignmentTypeIdList.size() == 0 )
loadIdList( m_LeveAssignmentTypeDat, m_LeveAssignmentTypeIdList );
- return m_LeveAssignmentTypeIdList;
-}
-const std::set< uint32_t >& getLeveClientIdList()
-{
- if( m_LeveClientIdList.size() == 0 )
+ return m_LeveAssignmentTypeIdList;
+ }
+
+ const std::set< uint32_t >& getLeveClientIdList()
+ {
+ if( m_LeveClientIdList.size() == 0 )
loadIdList( m_LeveClientDat, m_LeveClientIdList );
- return m_LeveClientIdList;
-}
-const std::set< uint32_t >& getLevelIdList()
-{
- if( m_LevelIdList.size() == 0 )
+ return m_LeveClientIdList;
+ }
+
+ const std::set< uint32_t >& getLevelIdList()
+ {
+ if( m_LevelIdList.size() == 0 )
loadIdList( m_LevelDat, m_LevelIdList );
- return m_LevelIdList;
-}
-const std::set< uint32_t >& getLeveRewardItemIdList()
-{
- if( m_LeveRewardItemIdList.size() == 0 )
+ return m_LevelIdList;
+ }
+
+ const std::set< uint32_t >& getLeveRewardItemIdList()
+ {
+ if( m_LeveRewardItemIdList.size() == 0 )
loadIdList( m_LeveRewardItemDat, m_LeveRewardItemIdList );
- return m_LeveRewardItemIdList;
-}
-const std::set< uint32_t >& getLeveRewardItemGroupIdList()
-{
- if( m_LeveRewardItemGroupIdList.size() == 0 )
+ return m_LeveRewardItemIdList;
+ }
+
+ const std::set< uint32_t >& getLeveRewardItemGroupIdList()
+ {
+ if( m_LeveRewardItemGroupIdList.size() == 0 )
loadIdList( m_LeveRewardItemGroupDat, m_LeveRewardItemGroupIdList );
- return m_LeveRewardItemGroupIdList;
-}
-const std::set< uint32_t >& getLeveVfxIdList()
-{
- if( m_LeveVfxIdList.size() == 0 )
+ return m_LeveRewardItemGroupIdList;
+ }
+
+ const std::set< uint32_t >& getLeveVfxIdList()
+ {
+ if( m_LeveVfxIdList.size() == 0 )
loadIdList( m_LeveVfxDat, m_LeveVfxIdList );
- return m_LeveVfxIdList;
-}
-const std::set< uint32_t >& getLogFilterIdList()
-{
- if( m_LogFilterIdList.size() == 0 )
+ return m_LeveVfxIdList;
+ }
+
+ const std::set< uint32_t >& getLogFilterIdList()
+ {
+ if( m_LogFilterIdList.size() == 0 )
loadIdList( m_LogFilterDat, m_LogFilterIdList );
- return m_LogFilterIdList;
-}
-const std::set< uint32_t >& getLogKindIdList()
-{
- if( m_LogKindIdList.size() == 0 )
+ return m_LogFilterIdList;
+ }
+
+ const std::set< uint32_t >& getLogKindIdList()
+ {
+ if( m_LogKindIdList.size() == 0 )
loadIdList( m_LogKindDat, m_LogKindIdList );
- return m_LogKindIdList;
-}
-const std::set< uint32_t >& getLogKindCategoryTextIdList()
-{
- if( m_LogKindCategoryTextIdList.size() == 0 )
+ return m_LogKindIdList;
+ }
+
+ const std::set< uint32_t >& getLogKindCategoryTextIdList()
+ {
+ if( m_LogKindCategoryTextIdList.size() == 0 )
loadIdList( m_LogKindCategoryTextDat, m_LogKindCategoryTextIdList );
- return m_LogKindCategoryTextIdList;
-}
-const std::set< uint32_t >& getLogMessageIdList()
-{
- if( m_LogMessageIdList.size() == 0 )
+ return m_LogKindCategoryTextIdList;
+ }
+
+ const std::set< uint32_t >& getLogMessageIdList()
+ {
+ if( m_LogMessageIdList.size() == 0 )
loadIdList( m_LogMessageDat, m_LogMessageIdList );
- return m_LogMessageIdList;
-}
-const std::set< uint32_t >& getMacroIconIdList()
-{
- if( m_MacroIconIdList.size() == 0 )
+ return m_LogMessageIdList;
+ }
+
+ const std::set< uint32_t >& getMacroIconIdList()
+ {
+ if( m_MacroIconIdList.size() == 0 )
loadIdList( m_MacroIconDat, m_MacroIconIdList );
- return m_MacroIconIdList;
-}
-const std::set< uint32_t >& getMacroIconRedirectOldIdList()
-{
- if( m_MacroIconRedirectOldIdList.size() == 0 )
+ return m_MacroIconIdList;
+ }
+
+ const std::set< uint32_t >& getMacroIconRedirectOldIdList()
+ {
+ if( m_MacroIconRedirectOldIdList.size() == 0 )
loadIdList( m_MacroIconRedirectOldDat, m_MacroIconRedirectOldIdList );
- return m_MacroIconRedirectOldIdList;
-}
-const std::set< uint32_t >& getMainCommandIdList()
-{
- if( m_MainCommandIdList.size() == 0 )
+ return m_MacroIconRedirectOldIdList;
+ }
+
+ const std::set< uint32_t >& getMainCommandIdList()
+ {
+ if( m_MainCommandIdList.size() == 0 )
loadIdList( m_MainCommandDat, m_MainCommandIdList );
- return m_MainCommandIdList;
-}
-const std::set< uint32_t >& getMainCommandCategoryIdList()
-{
- if( m_MainCommandCategoryIdList.size() == 0 )
+ return m_MainCommandIdList;
+ }
+
+ const std::set< uint32_t >& getMainCommandCategoryIdList()
+ {
+ if( m_MainCommandCategoryIdList.size() == 0 )
loadIdList( m_MainCommandCategoryDat, m_MainCommandCategoryIdList );
- return m_MainCommandCategoryIdList;
-}
-const std::set< uint32_t >& getMapIdList()
-{
- if( m_MapIdList.size() == 0 )
+ return m_MainCommandCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getMapIdList()
+ {
+ if( m_MapIdList.size() == 0 )
loadIdList( m_MapDat, m_MapIdList );
- return m_MapIdList;
-}
-const std::set< uint32_t >& getMapMarkerIdList()
-{
- if( m_MapMarkerIdList.size() == 0 )
+ return m_MapIdList;
+ }
+
+ const std::set< uint32_t >& getMapMarkerIdList()
+ {
+ if( m_MapMarkerIdList.size() == 0 )
loadIdList( m_MapMarkerDat, m_MapMarkerIdList );
- return m_MapMarkerIdList;
-}
-const std::set< uint32_t >& getMapMarkerRegionIdList()
-{
- if( m_MapMarkerRegionIdList.size() == 0 )
+ return m_MapMarkerIdList;
+ }
+
+ const std::set< uint32_t >& getMapMarkerRegionIdList()
+ {
+ if( m_MapMarkerRegionIdList.size() == 0 )
loadIdList( m_MapMarkerRegionDat, m_MapMarkerRegionIdList );
- return m_MapMarkerRegionIdList;
-}
-const std::set< uint32_t >& getMapSymbolIdList()
-{
- if( m_MapSymbolIdList.size() == 0 )
+ return m_MapMarkerRegionIdList;
+ }
+
+ const std::set< uint32_t >& getMapSymbolIdList()
+ {
+ if( m_MapSymbolIdList.size() == 0 )
loadIdList( m_MapSymbolDat, m_MapSymbolIdList );
- return m_MapSymbolIdList;
-}
-const std::set< uint32_t >& getMarkerIdList()
-{
- if( m_MarkerIdList.size() == 0 )
+ return m_MapSymbolIdList;
+ }
+
+ const std::set< uint32_t >& getMarkerIdList()
+ {
+ if( m_MarkerIdList.size() == 0 )
loadIdList( m_MarkerDat, m_MarkerIdList );
- return m_MarkerIdList;
-}
-const std::set< uint32_t >& getMasterpieceSupplyDutyIdList()
-{
- if( m_MasterpieceSupplyDutyIdList.size() == 0 )
+ return m_MarkerIdList;
+ }
+
+ const std::set< uint32_t >& getMasterpieceSupplyDutyIdList()
+ {
+ if( m_MasterpieceSupplyDutyIdList.size() == 0 )
loadIdList( m_MasterpieceSupplyDutyDat, m_MasterpieceSupplyDutyIdList );
- return m_MasterpieceSupplyDutyIdList;
-}
-const std::set< uint32_t >& getMasterpieceSupplyMultiplierIdList()
-{
- if( m_MasterpieceSupplyMultiplierIdList.size() == 0 )
+ return m_MasterpieceSupplyDutyIdList;
+ }
+
+ const std::set< uint32_t >& getMasterpieceSupplyMultiplierIdList()
+ {
+ if( m_MasterpieceSupplyMultiplierIdList.size() == 0 )
loadIdList( m_MasterpieceSupplyMultiplierDat, m_MasterpieceSupplyMultiplierIdList );
- return m_MasterpieceSupplyMultiplierIdList;
-}
-const std::set< uint32_t >& getMateriaIdList()
-{
- if( m_MateriaIdList.size() == 0 )
+ return m_MasterpieceSupplyMultiplierIdList;
+ }
+
+ const std::set< uint32_t >& getMateriaIdList()
+ {
+ if( m_MateriaIdList.size() == 0 )
loadIdList( m_MateriaDat, m_MateriaIdList );
- return m_MateriaIdList;
-}
-const std::set< uint32_t >& getMinionRaceIdList()
-{
- if( m_MinionRaceIdList.size() == 0 )
+ return m_MateriaIdList;
+ }
+
+ const std::set< uint32_t >& getMinionRaceIdList()
+ {
+ if( m_MinionRaceIdList.size() == 0 )
loadIdList( m_MinionRaceDat, m_MinionRaceIdList );
- return m_MinionRaceIdList;
-}
-const std::set< uint32_t >& getMinionRulesIdList()
-{
- if( m_MinionRulesIdList.size() == 0 )
+ return m_MinionRaceIdList;
+ }
+
+ const std::set< uint32_t >& getMinionRulesIdList()
+ {
+ if( m_MinionRulesIdList.size() == 0 )
loadIdList( m_MinionRulesDat, m_MinionRulesIdList );
- return m_MinionRulesIdList;
-}
-const std::set< uint32_t >& getMinionSkillTypeIdList()
-{
- if( m_MinionSkillTypeIdList.size() == 0 )
+ return m_MinionRulesIdList;
+ }
+
+ const std::set< uint32_t >& getMinionSkillTypeIdList()
+ {
+ if( m_MinionSkillTypeIdList.size() == 0 )
loadIdList( m_MinionSkillTypeDat, m_MinionSkillTypeIdList );
- return m_MinionSkillTypeIdList;
-}
-const std::set< uint32_t >& getMobHuntTargetIdList()
-{
- if( m_MobHuntTargetIdList.size() == 0 )
+ return m_MinionSkillTypeIdList;
+ }
+
+ const std::set< uint32_t >& getMobHuntTargetIdList()
+ {
+ if( m_MobHuntTargetIdList.size() == 0 )
loadIdList( m_MobHuntTargetDat, m_MobHuntTargetIdList );
- return m_MobHuntTargetIdList;
-}
-const std::set< uint32_t >& getModelCharaIdList()
-{
- if( m_ModelCharaIdList.size() == 0 )
+ return m_MobHuntTargetIdList;
+ }
+
+ const std::set< uint32_t >& getModelCharaIdList()
+ {
+ if( m_ModelCharaIdList.size() == 0 )
loadIdList( m_ModelCharaDat, m_ModelCharaIdList );
- return m_ModelCharaIdList;
-}
-const std::set< uint32_t >& getMonsterNoteIdList()
-{
- if( m_MonsterNoteIdList.size() == 0 )
+ return m_ModelCharaIdList;
+ }
+
+ const std::set< uint32_t >& getMonsterNoteIdList()
+ {
+ if( m_MonsterNoteIdList.size() == 0 )
loadIdList( m_MonsterNoteDat, m_MonsterNoteIdList );
- return m_MonsterNoteIdList;
-}
-const std::set< uint32_t >& getMonsterNoteTargetIdList()
-{
- if( m_MonsterNoteTargetIdList.size() == 0 )
+ return m_MonsterNoteIdList;
+ }
+
+ const std::set< uint32_t >& getMonsterNoteTargetIdList()
+ {
+ if( m_MonsterNoteTargetIdList.size() == 0 )
loadIdList( m_MonsterNoteTargetDat, m_MonsterNoteTargetIdList );
- return m_MonsterNoteTargetIdList;
-}
-const std::set< uint32_t >& getMountIdList()
-{
- if( m_MountIdList.size() == 0 )
+ return m_MonsterNoteTargetIdList;
+ }
+
+ const std::set< uint32_t >& getMountIdList()
+ {
+ if( m_MountIdList.size() == 0 )
loadIdList( m_MountDat, m_MountIdList );
- return m_MountIdList;
-}
-const std::set< uint32_t >& getMountActionIdList()
-{
- if( m_MountActionIdList.size() == 0 )
+ return m_MountIdList;
+ }
+
+ const std::set< uint32_t >& getMountActionIdList()
+ {
+ if( m_MountActionIdList.size() == 0 )
loadIdList( m_MountActionDat, m_MountActionIdList );
- return m_MountActionIdList;
-}
-const std::set< uint32_t >& getMoveTimelineIdList()
-{
- if( m_MoveTimelineIdList.size() == 0 )
+ return m_MountActionIdList;
+ }
+
+ const std::set< uint32_t >& getMoveTimelineIdList()
+ {
+ if( m_MoveTimelineIdList.size() == 0 )
loadIdList( m_MoveTimelineDat, m_MoveTimelineIdList );
- return m_MoveTimelineIdList;
-}
-const std::set< uint32_t >& getMoveVfxIdList()
-{
- if( m_MoveVfxIdList.size() == 0 )
+ return m_MoveTimelineIdList;
+ }
+
+ const std::set< uint32_t >& getMoveVfxIdList()
+ {
+ if( m_MoveVfxIdList.size() == 0 )
loadIdList( m_MoveVfxDat, m_MoveVfxIdList );
- return m_MoveVfxIdList;
-}
-const std::set< uint32_t >& getNpcEquipIdList()
-{
- if( m_NpcEquipIdList.size() == 0 )
+ return m_MoveVfxIdList;
+ }
+
+ const std::set< uint32_t >& getNpcEquipIdList()
+ {
+ if( m_NpcEquipIdList.size() == 0 )
loadIdList( m_NpcEquipDat, m_NpcEquipIdList );
- return m_NpcEquipIdList;
-}
-const std::set< uint32_t >& getOmenIdList()
-{
- if( m_OmenIdList.size() == 0 )
+ return m_NpcEquipIdList;
+ }
+
+ const std::set< uint32_t >& getOmenIdList()
+ {
+ if( m_OmenIdList.size() == 0 )
loadIdList( m_OmenDat, m_OmenIdList );
- return m_OmenIdList;
-}
-const std::set< uint32_t >& getOnlineStatusIdList()
-{
- if( m_OnlineStatusIdList.size() == 0 )
+ return m_OmenIdList;
+ }
+
+ const std::set< uint32_t >& getOnlineStatusIdList()
+ {
+ if( m_OnlineStatusIdList.size() == 0 )
loadIdList( m_OnlineStatusDat, m_OnlineStatusIdList );
- return m_OnlineStatusIdList;
-}
-const std::set< uint32_t >& getOpeningIdList()
-{
- if( m_OpeningIdList.size() == 0 )
+ return m_OnlineStatusIdList;
+ }
+
+ const std::set< uint32_t >& getOpeningIdList()
+ {
+ if( m_OpeningIdList.size() == 0 )
loadIdList( m_OpeningDat, m_OpeningIdList );
- return m_OpeningIdList;
-}
-const std::set< uint32_t >& getOrchestrionIdList()
-{
- if( m_OrchestrionIdList.size() == 0 )
+ return m_OpeningIdList;
+ }
+
+ const std::set< uint32_t >& getOrchestrionIdList()
+ {
+ if( m_OrchestrionIdList.size() == 0 )
loadIdList( m_OrchestrionDat, m_OrchestrionIdList );
- return m_OrchestrionIdList;
-}
-const std::set< uint32_t >& getOrchestrionCategoryIdList()
-{
- if( m_OrchestrionCategoryIdList.size() == 0 )
+ return m_OrchestrionIdList;
+ }
+
+ const std::set< uint32_t >& getOrchestrionCategoryIdList()
+ {
+ if( m_OrchestrionCategoryIdList.size() == 0 )
loadIdList( m_OrchestrionCategoryDat, m_OrchestrionCategoryIdList );
- return m_OrchestrionCategoryIdList;
-}
-const std::set< uint32_t >& getOrchestrionPathIdList()
-{
- if( m_OrchestrionPathIdList.size() == 0 )
+ return m_OrchestrionCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getOrchestrionPathIdList()
+ {
+ if( m_OrchestrionPathIdList.size() == 0 )
loadIdList( m_OrchestrionPathDat, m_OrchestrionPathIdList );
- return m_OrchestrionPathIdList;
-}
-const std::set< uint32_t >& getOrchestrionUiparamIdList()
-{
- if( m_OrchestrionUiparamIdList.size() == 0 )
+ return m_OrchestrionPathIdList;
+ }
+
+ const std::set< uint32_t >& getOrchestrionUiparamIdList()
+ {
+ if( m_OrchestrionUiparamIdList.size() == 0 )
loadIdList( m_OrchestrionUiparamDat, m_OrchestrionUiparamIdList );
- return m_OrchestrionUiparamIdList;
-}
-const std::set< uint32_t >& getParamGrowIdList()
-{
- if( m_ParamGrowIdList.size() == 0 )
+ return m_OrchestrionUiparamIdList;
+ }
+
+ const std::set< uint32_t >& getParamGrowIdList()
+ {
+ if( m_ParamGrowIdList.size() == 0 )
loadIdList( m_ParamGrowDat, m_ParamGrowIdList );
- return m_ParamGrowIdList;
-}
-const std::set< uint32_t >& getPerformIdList()
-{
- if( m_PerformIdList.size() == 0 )
+ return m_ParamGrowIdList;
+ }
+
+ const std::set< uint32_t >& getPerformIdList()
+ {
+ if( m_PerformIdList.size() == 0 )
loadIdList( m_PerformDat, m_PerformIdList );
- return m_PerformIdList;
-}
-const std::set< uint32_t >& getPerformTransientIdList()
-{
- if( m_PerformTransientIdList.size() == 0 )
+ return m_PerformIdList;
+ }
+
+ const std::set< uint32_t >& getPerformTransientIdList()
+ {
+ if( m_PerformTransientIdList.size() == 0 )
loadIdList( m_PerformTransientDat, m_PerformTransientIdList );
- return m_PerformTransientIdList;
-}
-const std::set< uint32_t >& getPetIdList()
-{
- if( m_PetIdList.size() == 0 )
+ return m_PerformTransientIdList;
+ }
+
+ const std::set< uint32_t >& getPetIdList()
+ {
+ if( m_PetIdList.size() == 0 )
loadIdList( m_PetDat, m_PetIdList );
- return m_PetIdList;
-}
-const std::set< uint32_t >& getPetActionIdList()
-{
- if( m_PetActionIdList.size() == 0 )
+ return m_PetIdList;
+ }
+
+ const std::set< uint32_t >& getPetActionIdList()
+ {
+ if( m_PetActionIdList.size() == 0 )
loadIdList( m_PetActionDat, m_PetActionIdList );
- return m_PetActionIdList;
-}
-const std::set< uint32_t >& getPictureIdList()
-{
- if( m_PictureIdList.size() == 0 )
+ return m_PetActionIdList;
+ }
+
+ const std::set< uint32_t >& getPictureIdList()
+ {
+ if( m_PictureIdList.size() == 0 )
loadIdList( m_PictureDat, m_PictureIdList );
- return m_PictureIdList;
-}
-const std::set< uint32_t >& getPlaceNameIdList()
-{
- if( m_PlaceNameIdList.size() == 0 )
+ return m_PictureIdList;
+ }
+
+ const std::set< uint32_t >& getPlaceNameIdList()
+ {
+ if( m_PlaceNameIdList.size() == 0 )
loadIdList( m_PlaceNameDat, m_PlaceNameIdList );
- return m_PlaceNameIdList;
-}
-const std::set< uint32_t >& getPublicContentIdList()
-{
- if( m_PublicContentIdList.size() == 0 )
+ return m_PlaceNameIdList;
+ }
+
+ const std::set< uint32_t >& getPublicContentIdList()
+ {
+ if( m_PublicContentIdList.size() == 0 )
loadIdList( m_PublicContentDat, m_PublicContentIdList );
- return m_PublicContentIdList;
-}
-const std::set< uint32_t >& getPvPActionSortIdList()
-{
- if( m_PvPActionSortIdList.size() == 0 )
+ return m_PublicContentIdList;
+ }
+
+ const std::set< uint32_t >& getPvPActionSortIdList()
+ {
+ if( m_PvPActionSortIdList.size() == 0 )
loadIdList( m_PvPActionSortDat, m_PvPActionSortIdList );
- return m_PvPActionSortIdList;
-}
-const std::set< uint32_t >& getQuestIdList()
-{
- if( m_QuestIdList.size() == 0 )
+ return m_PvPActionSortIdList;
+ }
+
+ const std::set< uint32_t >& getQuestIdList()
+ {
+ if( m_QuestIdList.size() == 0 )
loadIdList( m_QuestDat, m_QuestIdList );
- return m_QuestIdList;
-}
-const std::set< uint32_t >& getQuestClassJobRewardIdList()
-{
- if( m_QuestClassJobRewardIdList.size() == 0 )
+ return m_QuestIdList;
+ }
+
+ const std::set< uint32_t >& getQuestClassJobRewardIdList()
+ {
+ if( m_QuestClassJobRewardIdList.size() == 0 )
loadIdList( m_QuestClassJobRewardDat, m_QuestClassJobRewardIdList );
- return m_QuestClassJobRewardIdList;
-}
-const std::set< uint32_t >& getQuestRepeatFlagIdList()
-{
- if( m_QuestRepeatFlagIdList.size() == 0 )
+ return m_QuestClassJobRewardIdList;
+ }
+
+ const std::set< uint32_t >& getQuestRepeatFlagIdList()
+ {
+ if( m_QuestRepeatFlagIdList.size() == 0 )
loadIdList( m_QuestRepeatFlagDat, m_QuestRepeatFlagIdList );
- return m_QuestRepeatFlagIdList;
-}
-const std::set< uint32_t >& getQuestRewardOtherIdList()
-{
- if( m_QuestRewardOtherIdList.size() == 0 )
+ return m_QuestRepeatFlagIdList;
+ }
+
+ const std::set< uint32_t >& getQuestRewardOtherIdList()
+ {
+ if( m_QuestRewardOtherIdList.size() == 0 )
loadIdList( m_QuestRewardOtherDat, m_QuestRewardOtherIdList );
- return m_QuestRewardOtherIdList;
-}
-const std::set< uint32_t >& getQuickChatIdList()
-{
- if( m_QuickChatIdList.size() == 0 )
+ return m_QuestRewardOtherIdList;
+ }
+
+ const std::set< uint32_t >& getQuickChatIdList()
+ {
+ if( m_QuickChatIdList.size() == 0 )
loadIdList( m_QuickChatDat, m_QuickChatIdList );
- return m_QuickChatIdList;
-}
-const std::set< uint32_t >& getQuickChatTransientIdList()
-{
- if( m_QuickChatTransientIdList.size() == 0 )
+ return m_QuickChatIdList;
+ }
+
+ const std::set< uint32_t >& getQuickChatTransientIdList()
+ {
+ if( m_QuickChatTransientIdList.size() == 0 )
loadIdList( m_QuickChatTransientDat, m_QuickChatTransientIdList );
- return m_QuickChatTransientIdList;
-}
-const std::set< uint32_t >& getRaceIdList()
-{
- if( m_RaceIdList.size() == 0 )
+ return m_QuickChatTransientIdList;
+ }
+
+ const std::set< uint32_t >& getRaceIdList()
+ {
+ if( m_RaceIdList.size() == 0 )
loadIdList( m_RaceDat, m_RaceIdList );
- return m_RaceIdList;
-}
-const std::set< uint32_t >& getRacingChocoboItemIdList()
-{
- if( m_RacingChocoboItemIdList.size() == 0 )
+ return m_RaceIdList;
+ }
+
+ const std::set< uint32_t >& getRacingChocoboItemIdList()
+ {
+ if( m_RacingChocoboItemIdList.size() == 0 )
loadIdList( m_RacingChocoboItemDat, m_RacingChocoboItemIdList );
- return m_RacingChocoboItemIdList;
-}
-const std::set< uint32_t >& getRacingChocoboNameIdList()
-{
- if( m_RacingChocoboNameIdList.size() == 0 )
+ return m_RacingChocoboItemIdList;
+ }
+
+ const std::set< uint32_t >& getRacingChocoboNameIdList()
+ {
+ if( m_RacingChocoboNameIdList.size() == 0 )
loadIdList( m_RacingChocoboNameDat, m_RacingChocoboNameIdList );
- return m_RacingChocoboNameIdList;
-}
-const std::set< uint32_t >& getRacingChocoboNameCategoryIdList()
-{
- if( m_RacingChocoboNameCategoryIdList.size() == 0 )
+ return m_RacingChocoboNameIdList;
+ }
+
+ const std::set< uint32_t >& getRacingChocoboNameCategoryIdList()
+ {
+ if( m_RacingChocoboNameCategoryIdList.size() == 0 )
loadIdList( m_RacingChocoboNameCategoryDat, m_RacingChocoboNameCategoryIdList );
- return m_RacingChocoboNameCategoryIdList;
-}
-const std::set< uint32_t >& getRacingChocoboNameInfoIdList()
-{
- if( m_RacingChocoboNameInfoIdList.size() == 0 )
+ return m_RacingChocoboNameCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getRacingChocoboNameInfoIdList()
+ {
+ if( m_RacingChocoboNameInfoIdList.size() == 0 )
loadIdList( m_RacingChocoboNameInfoDat, m_RacingChocoboNameInfoIdList );
- return m_RacingChocoboNameInfoIdList;
-}
-const std::set< uint32_t >& getRacingChocoboParamIdList()
-{
- if( m_RacingChocoboParamIdList.size() == 0 )
+ return m_RacingChocoboNameInfoIdList;
+ }
+
+ const std::set< uint32_t >& getRacingChocoboParamIdList()
+ {
+ if( m_RacingChocoboParamIdList.size() == 0 )
loadIdList( m_RacingChocoboParamDat, m_RacingChocoboParamIdList );
- return m_RacingChocoboParamIdList;
-}
-const std::set< uint32_t >& getRecipeIdList()
-{
- if( m_RecipeIdList.size() == 0 )
+ return m_RacingChocoboParamIdList;
+ }
+
+ const std::set< uint32_t >& getRecipeIdList()
+ {
+ if( m_RecipeIdList.size() == 0 )
loadIdList( m_RecipeDat, m_RecipeIdList );
- return m_RecipeIdList;
-}
-const std::set< uint32_t >& getRecipeElementIdList()
-{
- if( m_RecipeElementIdList.size() == 0 )
+ return m_RecipeIdList;
+ }
+
+ const std::set< uint32_t >& getRecipeElementIdList()
+ {
+ if( m_RecipeElementIdList.size() == 0 )
loadIdList( m_RecipeElementDat, m_RecipeElementIdList );
- return m_RecipeElementIdList;
-}
-const std::set< uint32_t >& getRecipeLevelTableIdList()
-{
- if( m_RecipeLevelTableIdList.size() == 0 )
+ return m_RecipeElementIdList;
+ }
+
+ const std::set< uint32_t >& getRecipeLevelTableIdList()
+ {
+ if( m_RecipeLevelTableIdList.size() == 0 )
loadIdList( m_RecipeLevelTableDat, m_RecipeLevelTableIdList );
- return m_RecipeLevelTableIdList;
-}
-const std::set< uint32_t >& getRecipeNotebookListIdList()
-{
- if( m_RecipeNotebookListIdList.size() == 0 )
+ return m_RecipeLevelTableIdList;
+ }
+
+ const std::set< uint32_t >& getRecipeNotebookListIdList()
+ {
+ if( m_RecipeNotebookListIdList.size() == 0 )
loadIdList( m_RecipeNotebookListDat, m_RecipeNotebookListIdList );
- return m_RecipeNotebookListIdList;
-}
-const std::set< uint32_t >& getRecommendContentsIdList()
-{
- if( m_RecommendContentsIdList.size() == 0 )
+ return m_RecipeNotebookListIdList;
+ }
+
+ const std::set< uint32_t >& getRecommendContentsIdList()
+ {
+ if( m_RecommendContentsIdList.size() == 0 )
loadIdList( m_RecommendContentsDat, m_RecommendContentsIdList );
- return m_RecommendContentsIdList;
-}
-const std::set< uint32_t >& getRelicIdList()
-{
- if( m_RelicIdList.size() == 0 )
+ return m_RecommendContentsIdList;
+ }
+
+ const std::set< uint32_t >& getRelicIdList()
+ {
+ if( m_RelicIdList.size() == 0 )
loadIdList( m_RelicDat, m_RelicIdList );
- return m_RelicIdList;
-}
-const std::set< uint32_t >& getRelic3IdList()
-{
- if( m_Relic3IdList.size() == 0 )
+ return m_RelicIdList;
+ }
+
+ const std::set< uint32_t >& getRelic3IdList()
+ {
+ if( m_Relic3IdList.size() == 0 )
loadIdList( m_Relic3Dat, m_Relic3IdList );
- return m_Relic3IdList;
-}
-const std::set< uint32_t >& getRelicItemIdList()
-{
- if( m_RelicItemIdList.size() == 0 )
+ return m_Relic3IdList;
+ }
+
+ const std::set< uint32_t >& getRelicItemIdList()
+ {
+ if( m_RelicItemIdList.size() == 0 )
loadIdList( m_RelicItemDat, m_RelicItemIdList );
- return m_RelicItemIdList;
-}
-const std::set< uint32_t >& getRelicNoteIdList()
-{
- if( m_RelicNoteIdList.size() == 0 )
+ return m_RelicItemIdList;
+ }
+
+ const std::set< uint32_t >& getRelicNoteIdList()
+ {
+ if( m_RelicNoteIdList.size() == 0 )
loadIdList( m_RelicNoteDat, m_RelicNoteIdList );
- return m_RelicNoteIdList;
-}
-const std::set< uint32_t >& getRelicNoteCategoryIdList()
-{
- if( m_RelicNoteCategoryIdList.size() == 0 )
+ return m_RelicNoteIdList;
+ }
+
+ const std::set< uint32_t >& getRelicNoteCategoryIdList()
+ {
+ if( m_RelicNoteCategoryIdList.size() == 0 )
loadIdList( m_RelicNoteCategoryDat, m_RelicNoteCategoryIdList );
- return m_RelicNoteCategoryIdList;
-}
-const std::set< uint32_t >& getRetainerTaskIdList()
-{
- if( m_RetainerTaskIdList.size() == 0 )
+ return m_RelicNoteCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getRetainerTaskIdList()
+ {
+ if( m_RetainerTaskIdList.size() == 0 )
loadIdList( m_RetainerTaskDat, m_RetainerTaskIdList );
- return m_RetainerTaskIdList;
-}
-const std::set< uint32_t >& getRetainerTaskLvRangeIdList()
-{
- if( m_RetainerTaskLvRangeIdList.size() == 0 )
+ return m_RetainerTaskIdList;
+ }
+
+ const std::set< uint32_t >& getRetainerTaskLvRangeIdList()
+ {
+ if( m_RetainerTaskLvRangeIdList.size() == 0 )
loadIdList( m_RetainerTaskLvRangeDat, m_RetainerTaskLvRangeIdList );
- return m_RetainerTaskLvRangeIdList;
-}
-const std::set< uint32_t >& getRetainerTaskNormalIdList()
-{
- if( m_RetainerTaskNormalIdList.size() == 0 )
+ return m_RetainerTaskLvRangeIdList;
+ }
+
+ const std::set< uint32_t >& getRetainerTaskNormalIdList()
+ {
+ if( m_RetainerTaskNormalIdList.size() == 0 )
loadIdList( m_RetainerTaskNormalDat, m_RetainerTaskNormalIdList );
- return m_RetainerTaskNormalIdList;
-}
-const std::set< uint32_t >& getRetainerTaskParameterIdList()
-{
- if( m_RetainerTaskParameterIdList.size() == 0 )
+ return m_RetainerTaskNormalIdList;
+ }
+
+ const std::set< uint32_t >& getRetainerTaskParameterIdList()
+ {
+ if( m_RetainerTaskParameterIdList.size() == 0 )
loadIdList( m_RetainerTaskParameterDat, m_RetainerTaskParameterIdList );
- return m_RetainerTaskParameterIdList;
-}
-const std::set< uint32_t >& getRetainerTaskRandomIdList()
-{
- if( m_RetainerTaskRandomIdList.size() == 0 )
+ return m_RetainerTaskParameterIdList;
+ }
+
+ const std::set< uint32_t >& getRetainerTaskRandomIdList()
+ {
+ if( m_RetainerTaskRandomIdList.size() == 0 )
loadIdList( m_RetainerTaskRandomDat, m_RetainerTaskRandomIdList );
- return m_RetainerTaskRandomIdList;
-}
-const std::set< uint32_t >& getSalvageIdList()
-{
- if( m_SalvageIdList.size() == 0 )
+ return m_RetainerTaskRandomIdList;
+ }
+
+ const std::set< uint32_t >& getSalvageIdList()
+ {
+ if( m_SalvageIdList.size() == 0 )
loadIdList( m_SalvageDat, m_SalvageIdList );
- return m_SalvageIdList;
-}
-const std::set< uint32_t >& getSatisfactionNpcIdList()
-{
- if( m_SatisfactionNpcIdList.size() == 0 )
+ return m_SalvageIdList;
+ }
+
+ const std::set< uint32_t >& getSatisfactionNpcIdList()
+ {
+ if( m_SatisfactionNpcIdList.size() == 0 )
loadIdList( m_SatisfactionNpcDat, m_SatisfactionNpcIdList );
- return m_SatisfactionNpcIdList;
-}
-const std::set< uint32_t >& getSatisfactionSupplyIdList()
-{
- if( m_SatisfactionSupplyIdList.size() == 0 )
+ return m_SatisfactionNpcIdList;
+ }
+
+ const std::set< uint32_t >& getSatisfactionSupplyIdList()
+ {
+ if( m_SatisfactionSupplyIdList.size() == 0 )
loadIdList( m_SatisfactionSupplyDat, m_SatisfactionSupplyIdList );
- return m_SatisfactionSupplyIdList;
-}
-const std::set< uint32_t >& getSatisfactionSupplyRewardIdList()
-{
- if( m_SatisfactionSupplyRewardIdList.size() == 0 )
+ return m_SatisfactionSupplyIdList;
+ }
+
+ const std::set< uint32_t >& getSatisfactionSupplyRewardIdList()
+ {
+ if( m_SatisfactionSupplyRewardIdList.size() == 0 )
loadIdList( m_SatisfactionSupplyRewardDat, m_SatisfactionSupplyRewardIdList );
- return m_SatisfactionSupplyRewardIdList;
-}
-const std::set< uint32_t >& getScenarioTreeIdList()
-{
- if( m_ScenarioTreeIdList.size() == 0 )
+ return m_SatisfactionSupplyRewardIdList;
+ }
+
+ const std::set< uint32_t >& getScenarioTreeIdList()
+ {
+ if( m_ScenarioTreeIdList.size() == 0 )
loadIdList( m_ScenarioTreeDat, m_ScenarioTreeIdList );
- return m_ScenarioTreeIdList;
-}
-const std::set< uint32_t >& getScenarioTreeTipsIdList()
-{
- if( m_ScenarioTreeTipsIdList.size() == 0 )
+ return m_ScenarioTreeIdList;
+ }
+
+ const std::set< uint32_t >& getScenarioTreeTipsIdList()
+ {
+ if( m_ScenarioTreeTipsIdList.size() == 0 )
loadIdList( m_ScenarioTreeTipsDat, m_ScenarioTreeTipsIdList );
- return m_ScenarioTreeTipsIdList;
-}
-const std::set< uint32_t >& getScenarioTreeTipsClassQuestIdList()
-{
- if( m_ScenarioTreeTipsClassQuestIdList.size() == 0 )
+ return m_ScenarioTreeTipsIdList;
+ }
+
+ const std::set< uint32_t >& getScenarioTreeTipsClassQuestIdList()
+ {
+ if( m_ScenarioTreeTipsClassQuestIdList.size() == 0 )
loadIdList( m_ScenarioTreeTipsClassQuestDat, m_ScenarioTreeTipsClassQuestIdList );
- return m_ScenarioTreeTipsClassQuestIdList;
-}
-const std::set< uint32_t >& getScenarioTreeTipsQuestIdList()
-{
- if( m_ScenarioTreeTipsQuestIdList.size() == 0 )
+ return m_ScenarioTreeTipsClassQuestIdList;
+ }
+
+ const std::set< uint32_t >& getScenarioTreeTipsQuestIdList()
+ {
+ if( m_ScenarioTreeTipsQuestIdList.size() == 0 )
loadIdList( m_ScenarioTreeTipsQuestDat, m_ScenarioTreeTipsQuestIdList );
- return m_ScenarioTreeTipsQuestIdList;
-}
-const std::set< uint32_t >& getScenarioTypeIdList()
-{
- if( m_ScenarioTypeIdList.size() == 0 )
+ return m_ScenarioTreeTipsQuestIdList;
+ }
+
+ const std::set< uint32_t >& getScenarioTypeIdList()
+ {
+ if( m_ScenarioTypeIdList.size() == 0 )
loadIdList( m_ScenarioTypeDat, m_ScenarioTypeIdList );
- return m_ScenarioTypeIdList;
-}
-const std::set< uint32_t >& getScreenImageIdList()
-{
- if( m_ScreenImageIdList.size() == 0 )
+ return m_ScenarioTypeIdList;
+ }
+
+ const std::set< uint32_t >& getScreenImageIdList()
+ {
+ if( m_ScreenImageIdList.size() == 0 )
loadIdList( m_ScreenImageDat, m_ScreenImageIdList );
- return m_ScreenImageIdList;
-}
-const std::set< uint32_t >& getSecretRecipeBookIdList()
-{
- if( m_SecretRecipeBookIdList.size() == 0 )
+ return m_ScreenImageIdList;
+ }
+
+ const std::set< uint32_t >& getSecretRecipeBookIdList()
+ {
+ if( m_SecretRecipeBookIdList.size() == 0 )
loadIdList( m_SecretRecipeBookDat, m_SecretRecipeBookIdList );
- return m_SecretRecipeBookIdList;
-}
-const std::set< uint32_t >& getSkyIsland2MissionIdList()
-{
- if( m_SkyIsland2MissionIdList.size() == 0 )
+ return m_SecretRecipeBookIdList;
+ }
+
+ const std::set< uint32_t >& getSkyIsland2MissionIdList()
+ {
+ if( m_SkyIsland2MissionIdList.size() == 0 )
loadIdList( m_SkyIsland2MissionDat, m_SkyIsland2MissionIdList );
- return m_SkyIsland2MissionIdList;
-}
-const std::set< uint32_t >& getSkyIsland2MissionDetailIdList()
-{
- if( m_SkyIsland2MissionDetailIdList.size() == 0 )
+ return m_SkyIsland2MissionIdList;
+ }
+
+ const std::set< uint32_t >& getSkyIsland2MissionDetailIdList()
+ {
+ if( m_SkyIsland2MissionDetailIdList.size() == 0 )
loadIdList( m_SkyIsland2MissionDetailDat, m_SkyIsland2MissionDetailIdList );
- return m_SkyIsland2MissionDetailIdList;
-}
-const std::set< uint32_t >& getSkyIsland2MissionTypeIdList()
-{
- if( m_SkyIsland2MissionTypeIdList.size() == 0 )
+ return m_SkyIsland2MissionDetailIdList;
+ }
+
+ const std::set< uint32_t >& getSkyIsland2MissionTypeIdList()
+ {
+ if( m_SkyIsland2MissionTypeIdList.size() == 0 )
loadIdList( m_SkyIsland2MissionTypeDat, m_SkyIsland2MissionTypeIdList );
- return m_SkyIsland2MissionTypeIdList;
-}
-const std::set< uint32_t >& getSkyIsland2RangeTypeIdList()
-{
- if( m_SkyIsland2RangeTypeIdList.size() == 0 )
+ return m_SkyIsland2MissionTypeIdList;
+ }
+
+ const std::set< uint32_t >& getSkyIsland2RangeTypeIdList()
+ {
+ if( m_SkyIsland2RangeTypeIdList.size() == 0 )
loadIdList( m_SkyIsland2RangeTypeDat, m_SkyIsland2RangeTypeIdList );
- return m_SkyIsland2RangeTypeIdList;
-}
-const std::set< uint32_t >& getSpearfishingItemIdList()
-{
- if( m_SpearfishingItemIdList.size() == 0 )
+ return m_SkyIsland2RangeTypeIdList;
+ }
+
+ const std::set< uint32_t >& getSpearfishingItemIdList()
+ {
+ if( m_SpearfishingItemIdList.size() == 0 )
loadIdList( m_SpearfishingItemDat, m_SpearfishingItemIdList );
- return m_SpearfishingItemIdList;
-}
-const std::set< uint32_t >& getSpearfishingNotebookIdList()
-{
- if( m_SpearfishingNotebookIdList.size() == 0 )
+ return m_SpearfishingItemIdList;
+ }
+
+ const std::set< uint32_t >& getSpearfishingNotebookIdList()
+ {
+ if( m_SpearfishingNotebookIdList.size() == 0 )
loadIdList( m_SpearfishingNotebookDat, m_SpearfishingNotebookIdList );
- return m_SpearfishingNotebookIdList;
-}
-const std::set< uint32_t >& getSpecialShopIdList()
-{
- if( m_SpecialShopIdList.size() == 0 )
+ return m_SpearfishingNotebookIdList;
+ }
+
+ const std::set< uint32_t >& getSpecialShopIdList()
+ {
+ if( m_SpecialShopIdList.size() == 0 )
loadIdList( m_SpecialShopDat, m_SpecialShopIdList );
- return m_SpecialShopIdList;
-}
-const std::set< uint32_t >& getSpecialShopItemCategoryIdList()
-{
- if( m_SpecialShopItemCategoryIdList.size() == 0 )
+ return m_SpecialShopIdList;
+ }
+
+ const std::set< uint32_t >& getSpecialShopItemCategoryIdList()
+ {
+ if( m_SpecialShopItemCategoryIdList.size() == 0 )
loadIdList( m_SpecialShopItemCategoryDat, m_SpecialShopItemCategoryIdList );
- return m_SpecialShopItemCategoryIdList;
-}
-const std::set< uint32_t >& getStainIdList()
-{
- if( m_StainIdList.size() == 0 )
+ return m_SpecialShopItemCategoryIdList;
+ }
+
+ const std::set< uint32_t >& getStainIdList()
+ {
+ if( m_StainIdList.size() == 0 )
loadIdList( m_StainDat, m_StainIdList );
- return m_StainIdList;
-}
-const std::set< uint32_t >& getStainTransientIdList()
-{
- if( m_StainTransientIdList.size() == 0 )
+ return m_StainIdList;
+ }
+
+ const std::set< uint32_t >& getStainTransientIdList()
+ {
+ if( m_StainTransientIdList.size() == 0 )
loadIdList( m_StainTransientDat, m_StainTransientIdList );
- return m_StainTransientIdList;
-}
-const std::set< uint32_t >& getStatusIdList()
-{
- if( m_StatusIdList.size() == 0 )
+ return m_StainTransientIdList;
+ }
+
+ const std::set< uint32_t >& getStatusIdList()
+ {
+ if( m_StatusIdList.size() == 0 )
loadIdList( m_StatusDat, m_StatusIdList );
- return m_StatusIdList;
-}
-const std::set< uint32_t >& getStatusHitEffectIdList()
-{
- if( m_StatusHitEffectIdList.size() == 0 )
+ return m_StatusIdList;
+ }
+
+ const std::set< uint32_t >& getStatusHitEffectIdList()
+ {
+ if( m_StatusHitEffectIdList.size() == 0 )
loadIdList( m_StatusHitEffectDat, m_StatusHitEffectIdList );
- return m_StatusHitEffectIdList;
-}
-const std::set< uint32_t >& getStatusLoopVFXIdList()
-{
- if( m_StatusLoopVFXIdList.size() == 0 )
+ return m_StatusHitEffectIdList;
+ }
+
+ const std::set< uint32_t >& getStatusLoopVFXIdList()
+ {
+ if( m_StatusLoopVFXIdList.size() == 0 )
loadIdList( m_StatusLoopVFXDat, m_StatusLoopVFXIdList );
- return m_StatusLoopVFXIdList;
-}
-const std::set< uint32_t >& getStoryIdList()
-{
- if( m_StoryIdList.size() == 0 )
+ return m_StatusLoopVFXIdList;
+ }
+
+ const std::set< uint32_t >& getStoryIdList()
+ {
+ if( m_StoryIdList.size() == 0 )
loadIdList( m_StoryDat, m_StoryIdList );
- return m_StoryIdList;
-}
-const std::set< uint32_t >& getSubmarineExplorationIdList()
-{
- if( m_SubmarineExplorationIdList.size() == 0 )
+ return m_StoryIdList;
+ }
+
+ const std::set< uint32_t >& getSubmarineExplorationIdList()
+ {
+ if( m_SubmarineExplorationIdList.size() == 0 )
loadIdList( m_SubmarineExplorationDat, m_SubmarineExplorationIdList );
- return m_SubmarineExplorationIdList;
-}
-const std::set< uint32_t >& getSubmarinePartIdList()
-{
- if( m_SubmarinePartIdList.size() == 0 )
+ return m_SubmarineExplorationIdList;
+ }
+
+ const std::set< uint32_t >& getSubmarinePartIdList()
+ {
+ if( m_SubmarinePartIdList.size() == 0 )
loadIdList( m_SubmarinePartDat, m_SubmarinePartIdList );
- return m_SubmarinePartIdList;
-}
-const std::set< uint32_t >& getSubmarineRankIdList()
-{
- if( m_SubmarineRankIdList.size() == 0 )
+ return m_SubmarinePartIdList;
+ }
+
+ const std::set< uint32_t >& getSubmarineRankIdList()
+ {
+ if( m_SubmarineRankIdList.size() == 0 )
loadIdList( m_SubmarineRankDat, m_SubmarineRankIdList );
- return m_SubmarineRankIdList;
-}
-const std::set< uint32_t >& getSwitchTalkIdList()
-{
- if( m_SwitchTalkIdList.size() == 0 )
+ return m_SubmarineRankIdList;
+ }
+
+ const std::set< uint32_t >& getSwitchTalkIdList()
+ {
+ if( m_SwitchTalkIdList.size() == 0 )
loadIdList( m_SwitchTalkDat, m_SwitchTalkIdList );
- return m_SwitchTalkIdList;
-}
-const std::set< uint32_t >& getTerritoryTypeIdList()
-{
- if( m_TerritoryTypeIdList.size() == 0 )
+ return m_SwitchTalkIdList;
+ }
+
+ const std::set< uint32_t >& getTerritoryTypeIdList()
+ {
+ if( m_TerritoryTypeIdList.size() == 0 )
loadIdList( m_TerritoryTypeDat, m_TerritoryTypeIdList );
- return m_TerritoryTypeIdList;
-}
-const std::set< uint32_t >& getTextCommandIdList()
-{
- if( m_TextCommandIdList.size() == 0 )
+ return m_TerritoryTypeIdList;
+ }
+
+ const std::set< uint32_t >& getTextCommandIdList()
+ {
+ if( m_TextCommandIdList.size() == 0 )
loadIdList( m_TextCommandDat, m_TextCommandIdList );
- return m_TextCommandIdList;
-}
-const std::set< uint32_t >& getTitleIdList()
-{
- if( m_TitleIdList.size() == 0 )
+ return m_TextCommandIdList;
+ }
+
+ const std::set< uint32_t >& getTitleIdList()
+ {
+ if( m_TitleIdList.size() == 0 )
loadIdList( m_TitleDat, m_TitleIdList );
- return m_TitleIdList;
-}
-const std::set< uint32_t >& getTomestonesIdList()
-{
- if( m_TomestonesIdList.size() == 0 )
+ return m_TitleIdList;
+ }
+
+ const std::set< uint32_t >& getTomestonesIdList()
+ {
+ if( m_TomestonesIdList.size() == 0 )
loadIdList( m_TomestonesDat, m_TomestonesIdList );
- return m_TomestonesIdList;
-}
-const std::set< uint32_t >& getTomestonesItemIdList()
-{
- if( m_TomestonesItemIdList.size() == 0 )
+ return m_TomestonesIdList;
+ }
+
+ const std::set< uint32_t >& getTomestonesItemIdList()
+ {
+ if( m_TomestonesItemIdList.size() == 0 )
loadIdList( m_TomestonesItemDat, m_TomestonesItemIdList );
- return m_TomestonesItemIdList;
-}
-const std::set< uint32_t >& getTopicSelectIdList()
-{
- if( m_TopicSelectIdList.size() == 0 )
+ return m_TomestonesItemIdList;
+ }
+
+ const std::set< uint32_t >& getTopicSelectIdList()
+ {
+ if( m_TopicSelectIdList.size() == 0 )
loadIdList( m_TopicSelectDat, m_TopicSelectIdList );
- return m_TopicSelectIdList;
-}
-const std::set< uint32_t >& getTownIdList()
-{
- if( m_TownIdList.size() == 0 )
+ return m_TopicSelectIdList;
+ }
+
+ const std::set< uint32_t >& getTownIdList()
+ {
+ if( m_TownIdList.size() == 0 )
loadIdList( m_TownDat, m_TownIdList );
- return m_TownIdList;
-}
-const std::set< uint32_t >& getTraitIdList()
-{
- if( m_TraitIdList.size() == 0 )
+ return m_TownIdList;
+ }
+
+ const std::set< uint32_t >& getTraitIdList()
+ {
+ if( m_TraitIdList.size() == 0 )
loadIdList( m_TraitDat, m_TraitIdList );
- return m_TraitIdList;
-}
-const std::set< uint32_t >& getTraitRecastIdList()
-{
- if( m_TraitRecastIdList.size() == 0 )
+ return m_TraitIdList;
+ }
+
+ const std::set< uint32_t >& getTraitRecastIdList()
+ {
+ if( m_TraitRecastIdList.size() == 0 )
loadIdList( m_TraitRecastDat, m_TraitRecastIdList );
- return m_TraitRecastIdList;
-}
-const std::set< uint32_t >& getTraitTransientIdList()
-{
- if( m_TraitTransientIdList.size() == 0 )
+ return m_TraitRecastIdList;
+ }
+
+ const std::set< uint32_t >& getTraitTransientIdList()
+ {
+ if( m_TraitTransientIdList.size() == 0 )
loadIdList( m_TraitTransientDat, m_TraitTransientIdList );
- return m_TraitTransientIdList;
-}
-const std::set< uint32_t >& getTransformationIdList()
-{
- if( m_TransformationIdList.size() == 0 )
+ return m_TraitTransientIdList;
+ }
+
+ const std::set< uint32_t >& getTransformationIdList()
+ {
+ if( m_TransformationIdList.size() == 0 )
loadIdList( m_TransformationDat, m_TransformationIdList );
- return m_TransformationIdList;
-}
-const std::set< uint32_t >& getTreasureIdList()
-{
- if( m_TreasureIdList.size() == 0 )
+ return m_TransformationIdList;
+ }
+
+ const std::set< uint32_t >& getTreasureIdList()
+ {
+ if( m_TreasureIdList.size() == 0 )
loadIdList( m_TreasureDat, m_TreasureIdList );
- return m_TreasureIdList;
-}
-const std::set< uint32_t >& getTreasureHuntRankIdList()
-{
- if( m_TreasureHuntRankIdList.size() == 0 )
+ return m_TreasureIdList;
+ }
+
+ const std::set< uint32_t >& getTreasureHuntRankIdList()
+ {
+ if( m_TreasureHuntRankIdList.size() == 0 )
loadIdList( m_TreasureHuntRankDat, m_TreasureHuntRankIdList );
- return m_TreasureHuntRankIdList;
-}
-const std::set< uint32_t >& getTribeIdList()
-{
- if( m_TribeIdList.size() == 0 )
+ return m_TreasureHuntRankIdList;
+ }
+
+ const std::set< uint32_t >& getTribeIdList()
+ {
+ if( m_TribeIdList.size() == 0 )
loadIdList( m_TribeDat, m_TribeIdList );
- return m_TribeIdList;
-}
-const std::set< uint32_t >& getTripleTriadIdList()
-{
- if( m_TripleTriadIdList.size() == 0 )
+ return m_TribeIdList;
+ }
+
+ const std::set< uint32_t >& getTripleTriadIdList()
+ {
+ if( m_TripleTriadIdList.size() == 0 )
loadIdList( m_TripleTriadDat, m_TripleTriadIdList );
- return m_TripleTriadIdList;
-}
-const std::set< uint32_t >& getTripleTriadCardIdList()
-{
- if( m_TripleTriadCardIdList.size() == 0 )
+ return m_TripleTriadIdList;
+ }
+
+ const std::set< uint32_t >& getTripleTriadCardIdList()
+ {
+ if( m_TripleTriadCardIdList.size() == 0 )
loadIdList( m_TripleTriadCardDat, m_TripleTriadCardIdList );
- return m_TripleTriadCardIdList;
-}
-const std::set< uint32_t >& getTripleTriadCardRarityIdList()
-{
- if( m_TripleTriadCardRarityIdList.size() == 0 )
+ return m_TripleTriadCardIdList;
+ }
+
+ const std::set< uint32_t >& getTripleTriadCardRarityIdList()
+ {
+ if( m_TripleTriadCardRarityIdList.size() == 0 )
loadIdList( m_TripleTriadCardRarityDat, m_TripleTriadCardRarityIdList );
- return m_TripleTriadCardRarityIdList;
-}
-const std::set< uint32_t >& getTripleTriadCardResidentIdList()
-{
- if( m_TripleTriadCardResidentIdList.size() == 0 )
+ return m_TripleTriadCardRarityIdList;
+ }
+
+ const std::set< uint32_t >& getTripleTriadCardResidentIdList()
+ {
+ if( m_TripleTriadCardResidentIdList.size() == 0 )
loadIdList( m_TripleTriadCardResidentDat, m_TripleTriadCardResidentIdList );
- return m_TripleTriadCardResidentIdList;
-}
-const std::set< uint32_t >& getTripleTriadCardTypeIdList()
-{
- if( m_TripleTriadCardTypeIdList.size() == 0 )
+ return m_TripleTriadCardResidentIdList;
+ }
+
+ const std::set< uint32_t >& getTripleTriadCardTypeIdList()
+ {
+ if( m_TripleTriadCardTypeIdList.size() == 0 )
loadIdList( m_TripleTriadCardTypeDat, m_TripleTriadCardTypeIdList );
- return m_TripleTriadCardTypeIdList;
-}
-const std::set< uint32_t >& getTripleTriadCompetitionIdList()
-{
- if( m_TripleTriadCompetitionIdList.size() == 0 )
+ return m_TripleTriadCardTypeIdList;
+ }
+
+ const std::set< uint32_t >& getTripleTriadCompetitionIdList()
+ {
+ if( m_TripleTriadCompetitionIdList.size() == 0 )
loadIdList( m_TripleTriadCompetitionDat, m_TripleTriadCompetitionIdList );
- return m_TripleTriadCompetitionIdList;
-}
-const std::set< uint32_t >& getTripleTriadRuleIdList()
-{
- if( m_TripleTriadRuleIdList.size() == 0 )
+ return m_TripleTriadCompetitionIdList;
+ }
+
+ const std::set< uint32_t >& getTripleTriadRuleIdList()
+ {
+ if( m_TripleTriadRuleIdList.size() == 0 )
loadIdList( m_TripleTriadRuleDat, m_TripleTriadRuleIdList );
- return m_TripleTriadRuleIdList;
-}
-const std::set< uint32_t >& getTutorialIdList()
-{
- if( m_TutorialIdList.size() == 0 )
+ return m_TripleTriadRuleIdList;
+ }
+
+ const std::set< uint32_t >& getTutorialIdList()
+ {
+ if( m_TutorialIdList.size() == 0 )
loadIdList( m_TutorialDat, m_TutorialIdList );
- return m_TutorialIdList;
-}
-const std::set< uint32_t >& getTutorialDPSIdList()
-{
- if( m_TutorialDPSIdList.size() == 0 )
+ return m_TutorialIdList;
+ }
+
+ const std::set< uint32_t >& getTutorialDPSIdList()
+ {
+ if( m_TutorialDPSIdList.size() == 0 )
loadIdList( m_TutorialDPSDat, m_TutorialDPSIdList );
- return m_TutorialDPSIdList;
-}
-const std::set< uint32_t >& getTutorialHealerIdList()
-{
- if( m_TutorialHealerIdList.size() == 0 )
+ return m_TutorialDPSIdList;
+ }
+
+ const std::set< uint32_t >& getTutorialHealerIdList()
+ {
+ if( m_TutorialHealerIdList.size() == 0 )
loadIdList( m_TutorialHealerDat, m_TutorialHealerIdList );
- return m_TutorialHealerIdList;
-}
-const std::set< uint32_t >& getTutorialTankIdList()
-{
- if( m_TutorialTankIdList.size() == 0 )
+ return m_TutorialHealerIdList;
+ }
+
+ const std::set< uint32_t >& getTutorialTankIdList()
+ {
+ if( m_TutorialTankIdList.size() == 0 )
loadIdList( m_TutorialTankDat, m_TutorialTankIdList );
- return m_TutorialTankIdList;
-}
-const std::set< uint32_t >& getVaseFlowerIdList()
-{
- if( m_VaseFlowerIdList.size() == 0 )
+ return m_TutorialTankIdList;
+ }
+
+ const std::set< uint32_t >& getVaseFlowerIdList()
+ {
+ if( m_VaseFlowerIdList.size() == 0 )
loadIdList( m_VaseFlowerDat, m_VaseFlowerIdList );
- return m_VaseFlowerIdList;
-}
-const std::set< uint32_t >& getVFXIdList()
-{
- if( m_VFXIdList.size() == 0 )
+ return m_VaseFlowerIdList;
+ }
+
+ const std::set< uint32_t >& getVFXIdList()
+ {
+ if( m_VFXIdList.size() == 0 )
loadIdList( m_VFXDat, m_VFXIdList );
- return m_VFXIdList;
-}
-const std::set< uint32_t >& getWarpIdList()
-{
- if( m_WarpIdList.size() == 0 )
+ return m_VFXIdList;
+ }
+
+ const std::set< uint32_t >& getWarpIdList()
+ {
+ if( m_WarpIdList.size() == 0 )
loadIdList( m_WarpDat, m_WarpIdList );
- return m_WarpIdList;
-}
-const std::set< uint32_t >& getWarpConditionIdList()
-{
- if( m_WarpConditionIdList.size() == 0 )
+ return m_WarpIdList;
+ }
+
+ const std::set< uint32_t >& getWarpConditionIdList()
+ {
+ if( m_WarpConditionIdList.size() == 0 )
loadIdList( m_WarpConditionDat, m_WarpConditionIdList );
- return m_WarpConditionIdList;
-}
-const std::set< uint32_t >& getWeatherIdList()
-{
- if( m_WeatherIdList.size() == 0 )
+ return m_WarpConditionIdList;
+ }
+
+ const std::set< uint32_t >& getWeatherIdList()
+ {
+ if( m_WeatherIdList.size() == 0 )
loadIdList( m_WeatherDat, m_WeatherIdList );
- return m_WeatherIdList;
-}
-const std::set< uint32_t >& getWeatherGroupIdList()
-{
- if( m_WeatherGroupIdList.size() == 0 )
+ return m_WeatherIdList;
+ }
+
+ const std::set< uint32_t >& getWeatherGroupIdList()
+ {
+ if( m_WeatherGroupIdList.size() == 0 )
loadIdList( m_WeatherGroupDat, m_WeatherGroupIdList );
- return m_WeatherGroupIdList;
-}
-const std::set< uint32_t >& getWeatherRateIdList()
-{
- if( m_WeatherRateIdList.size() == 0 )
+ return m_WeatherGroupIdList;
+ }
+
+ const std::set< uint32_t >& getWeatherRateIdList()
+ {
+ if( m_WeatherRateIdList.size() == 0 )
loadIdList( m_WeatherRateDat, m_WeatherRateIdList );
- return m_WeatherRateIdList;
-}
-const std::set< uint32_t >& getWeddingBGMIdList()
-{
- if( m_WeddingBGMIdList.size() == 0 )
+ return m_WeatherRateIdList;
+ }
+
+ const std::set< uint32_t >& getWeddingBGMIdList()
+ {
+ if( m_WeddingBGMIdList.size() == 0 )
loadIdList( m_WeddingBGMDat, m_WeddingBGMIdList );
- return m_WeddingBGMIdList;
-}
-const std::set< uint32_t >& getWeeklyBingoOrderDataIdList()
-{
- if( m_WeeklyBingoOrderDataIdList.size() == 0 )
+ return m_WeddingBGMIdList;
+ }
+
+ const std::set< uint32_t >& getWeeklyBingoOrderDataIdList()
+ {
+ if( m_WeeklyBingoOrderDataIdList.size() == 0 )
loadIdList( m_WeeklyBingoOrderDataDat, m_WeeklyBingoOrderDataIdList );
- return m_WeeklyBingoOrderDataIdList;
-}
-const std::set< uint32_t >& getWeeklyBingoRewardDataIdList()
-{
- if( m_WeeklyBingoRewardDataIdList.size() == 0 )
+ return m_WeeklyBingoOrderDataIdList;
+ }
+
+ const std::set< uint32_t >& getWeeklyBingoRewardDataIdList()
+ {
+ if( m_WeeklyBingoRewardDataIdList.size() == 0 )
loadIdList( m_WeeklyBingoRewardDataDat, m_WeeklyBingoRewardDataIdList );
- return m_WeeklyBingoRewardDataIdList;
-}
-const std::set< uint32_t >& getWeeklyBingoTextIdList()
-{
- if( m_WeeklyBingoTextIdList.size() == 0 )
+ return m_WeeklyBingoRewardDataIdList;
+ }
+
+ const std::set< uint32_t >& getWeeklyBingoTextIdList()
+ {
+ if( m_WeeklyBingoTextIdList.size() == 0 )
loadIdList( m_WeeklyBingoTextDat, m_WeeklyBingoTextIdList );
- return m_WeeklyBingoTextIdList;
-}
-const std::set< uint32_t >& getWorldIdList()
-{
- if( m_WorldIdList.size() == 0 )
+ return m_WeeklyBingoTextIdList;
+ }
+
+ const std::set< uint32_t >& getWorldIdList()
+ {
+ if( m_WorldIdList.size() == 0 )
loadIdList( m_WorldDat, m_WorldIdList );
- return m_WorldIdList;
-}
-const std::set< uint32_t >& getWorldDCGroupTypeIdList()
-{
- if( m_WorldDCGroupTypeIdList.size() == 0 )
+ return m_WorldIdList;
+ }
+
+ const std::set< uint32_t >& getWorldDCGroupTypeIdList()
+ {
+ if( m_WorldDCGroupTypeIdList.size() == 0 )
loadIdList( m_WorldDCGroupTypeDat, m_WorldDCGroupTypeIdList );
- return m_WorldDCGroupTypeIdList;
-}
-const std::set< uint32_t >& getYKWIdList()
-{
- if( m_YKWIdList.size() == 0 )
+ return m_WorldDCGroupTypeIdList;
+ }
+
+ const std::set< uint32_t >& getYKWIdList()
+ {
+ if( m_YKWIdList.size() == 0 )
loadIdList( m_YKWDat, m_YKWIdList );
- return m_YKWIdList;
-}
-const std::set< uint32_t >& getZoneSharedGroupIdList()
-{
- if( m_ZoneSharedGroupIdList.size() == 0 )
+ return m_YKWIdList;
+ }
+
+ const std::set< uint32_t >& getZoneSharedGroupIdList()
+ {
+ if( m_ZoneSharedGroupIdList.size() == 0 )
loadIdList( m_ZoneSharedGroupDat, m_ZoneSharedGroupIdList );
- return m_ZoneSharedGroupIdList;
-}
+ return m_ZoneSharedGroupIdList;
+ }
- };
+};
}
}
diff --git a/src/common/Forwards.h b/src/common/Forwards.h
index 663d5468..aad65318 100644
--- a/src/common/Forwards.h
+++ b/src/common/Forwards.h
@@ -3,35 +3,34 @@
#include
-namespace Core
-{
+namespace Core {
- class ConfigMgr;
+class ConfigMgr;
- typedef boost::shared_ptr< ConfigMgr > ConfigMgrPtr;
+typedef boost::shared_ptr< ConfigMgr > ConfigMgrPtr;
- namespace Network
- {
- class Hive;
- class Acceptor;
- class Connection;
+namespace Network {
+class Hive;
- typedef boost::shared_ptr< Hive > HivePtr;
- typedef boost::shared_ptr< Acceptor > AcceptorPtr;
- typedef boost::shared_ptr< Connection > ConnectionPtr;
+class Acceptor;
- namespace Packets
- {
- class GamePacket;
- class FFXIVPacketBase;
+class Connection;
- typedef boost::shared_ptr< GamePacket > GamePacketPtr;
- typedef boost::shared_ptr< FFXIVPacketBase > FFXIVPacketBasePtr;
- }
+typedef boost::shared_ptr< Hive > HivePtr;
+typedef boost::shared_ptr< Acceptor > AcceptorPtr;
+typedef boost::shared_ptr< Connection > ConnectionPtr;
- }
+namespace Packets {
+class GamePacket;
+class FFXIVPacketBase;
+
+typedef boost::shared_ptr< GamePacket > GamePacketPtr;
+typedef boost::shared_ptr< FFXIVPacketBase > FFXIVPacketBasePtr;
+}
+
+}
}
diff --git a/src/common/Framework.h b/src/common/Framework.h
index d6e57fbc..0f6b57b2 100644
--- a/src/common/Framework.h
+++ b/src/common/Framework.h
@@ -7,30 +7,29 @@
#include
#include
-namespace Core
+namespace Core {
+
+class Framework
{
+ using TypenameToObject = std::map< std::type_index, boost::shared_ptr< void > >;
+ TypenameToObject ObjectMap;
- class Framework
- {
- using TypenameToObject = std::map< std::type_index, boost::shared_ptr< void > >;
- TypenameToObject ObjectMap;
+public:
+ template< typename T >
+ boost::shared_ptr< T > get()
+ {
+ auto iType = ObjectMap.find( typeid( T ) );
+ assert( !( iType == ObjectMap.end() ) );
+ return boost::static_pointer_cast< T >( iType->second );
+ }
- public:
- template< typename T >
- boost::shared_ptr< T > get()
- {
- auto iType = ObjectMap.find( typeid( T ) );
- assert( !( iType == ObjectMap.end() ) );
- return boost::static_pointer_cast< T >( iType->second );
- }
-
- template< typename T >
- void set( boost::shared_ptr< T > value )
- {
- assert( value ); // why would anyone store nullptrs....
- ObjectMap[typeid( T )] = value;
- }
- };
+ template< typename T >
+ void set( boost::shared_ptr< T > value )
+ {
+ assert( value ); // why would anyone store nullptrs....
+ ObjectMap[ typeid( T ) ] = value;
+ }
+};
}
diff --git a/src/common/Logging/Logger.cpp b/src/common/Logging/Logger.cpp
index 6beb7a6e..4e00701e 100644
--- a/src/common/Logging/Logger.cpp
+++ b/src/common/Logging/Logger.cpp
@@ -17,72 +17,75 @@
namespace Core {
- Logger::Logger()
- {
+Logger::Logger()
+{
- }
+}
- Logger::~Logger()
- {
+Logger::~Logger()
+{
- }
+}
- void Logger::setLogPath(const std::string& logPath)
- {
- m_logFile = logPath;
- }
+void Logger::setLogPath( const std::string& logPath )
+{
+ m_logFile = logPath;
+}
- void Logger::init()
- {
+void Logger::init()
+{
- auto format = (
- boost::log::expressions::stream <<
- boost::log::expressions::format_date_time< boost::posix_time::ptime >("TimeStamp", "[%H:%M:%S]") <<
- "[" << boost::log::trivial::severity << "] " <<
- boost::log::expressions::smessage
- );
+ auto format = (
+ boost::log::expressions::stream <<
+ boost::log::expressions::format_date_time< boost::posix_time::ptime >(
+ "TimeStamp", "[%H:%M:%S]" ) <<
+ "[" << boost::log::trivial::severity << "] " <<
+ boost::log::expressions::smessage
+ );
- boost::log::add_file_log
- (
- boost::log::keywords::file_name = m_logFile + "%Y-%m-%d.log", /*< file name pattern >*/
- boost::log::keywords::rotation_size = 10 * 1024 * 1024, /*< rotate files every 10 MiB... >*/
- boost::log::keywords::time_based_rotation = boost::log::sinks::file::rotation_at_time_point(0, 0, 0), /*< ...or at midnight >*/
- boost::log::keywords::open_mode = std::ios::app,
- boost::log::keywords::format = format,
- boost::log::keywords::auto_flush = true
- );
+ boost::log::add_file_log
+ (
+ boost::log::keywords::file_name =
+ m_logFile + "%Y-%m-%d.log", /*< file name pattern >*/
+ boost::log::keywords::rotation_size =
+ 10 * 1024 * 1024, /*< rotate files every 10 MiB... >*/
+ boost::log::keywords::time_based_rotation = boost::log::sinks::file::rotation_at_time_point( 0, 0,
+ 0 ), /*< ...or at midnight >*/
+ boost::log::keywords::open_mode = std::ios::app,
+ boost::log::keywords::format = format,
+ boost::log::keywords::auto_flush = true
+ );
- boost::log::add_console_log(std::cout, boost::log::keywords::format = format);
+ boost::log::add_console_log( std::cout, boost::log::keywords::format = format );
- boost::log::add_common_attributes();
- }
+ boost::log::add_common_attributes();
+}
- void Logger::Log(LoggingSeverity logSev, const std::string& text)
- {
- BOOST_LOG_SEV(m_lg, (boost::log::trivial::severity_level)logSev) << text;
- }
+void Logger::Log( LoggingSeverity logSev, const std::string& text )
+{
+ BOOST_LOG_SEV( m_lg, ( boost::log::trivial::severity_level ) logSev ) << text;
+}
- void Logger::error( const std::string& text )
- {
- BOOST_LOG_SEV( m_lg, boost::log::trivial::severity_level::error ) << text;
- }
+void Logger::error( const std::string& text )
+{
+ BOOST_LOG_SEV( m_lg, boost::log::trivial::severity_level::error ) << text;
+}
- void Logger::info( const std::string& text )
- {
- BOOST_LOG_SEV( m_lg, boost::log::trivial::severity_level::info ) << text;
- }
+void Logger::info( const std::string& text )
+{
+ BOOST_LOG_SEV( m_lg, boost::log::trivial::severity_level::info ) << text;
+}
- void Logger::debug( const std::string& text )
- {
- BOOST_LOG_SEV( m_lg, boost::log::trivial::severity_level::debug ) << text;
- }
-
- void Logger::fatal( const std::string& text )
- {
- BOOST_LOG_SEV( m_lg, boost::log::trivial::severity_level::fatal ) << text;
- }
+void Logger::debug( const std::string& text )
+{
+ BOOST_LOG_SEV( m_lg, boost::log::trivial::severity_level::debug ) << text;
+}
+void Logger::fatal( const std::string& text )
+{
+ BOOST_LOG_SEV( m_lg, boost::log::trivial::severity_level::fatal ) << text;
+}
}
\ No newline at end of file
diff --git a/src/common/Logging/Logger.h b/src/common/Logging/Logger.h
index 731ba5d0..f85ad5e9 100644
--- a/src/common/Logging/Logger.h
+++ b/src/common/Logging/Logger.h
@@ -6,46 +6,48 @@
namespace Core {
- enum struct LoggingSeverity : uint8_t
- {
- trace = 0,
- debug = 1,
- info = 2,
- warning = 3,
- error = 4,
- fatal = 5
- };
+enum struct LoggingSeverity :
+ uint8_t
+{
+ trace = 0,
+ debug = 1,
+ info = 2,
+ warning = 3,
+ error = 4,
+ fatal = 5
+};
- class Logger
- {
+class Logger
+{
- private:
- boost::log::sources::severity_logger_mt< boost::log::trivial::severity_level > m_lg;
+private:
+ boost::log::sources::severity_logger_mt< boost::log::trivial::severity_level > m_lg;
- std::string m_logFile;
+ std::string m_logFile;
- public:
- Logger();
+public:
+ Logger();
- ~Logger();
+ ~Logger();
- void init();
+ void init();
- void Log(LoggingSeverity logSev, const std::string& text);
+ void Log( LoggingSeverity logSev, const std::string& text );
- void error( const std::string& text );
- void info( const std::string& text );
- void debug( const std::string& text );
- void fatal( const std::string& text );
+ void error( const std::string& text );
- void setLogPath(const std::string& logPath);
+ void info( const std::string& text );
- };
+ void debug( const std::string& text );
+ void fatal( const std::string& text );
+
+ void setLogPath( const std::string& logPath );
+
+};
}
-
#endif
\ No newline at end of file
diff --git a/src/common/Network/Acceptor.cpp b/src/common/Network/Acceptor.cpp
index 3560b90d..94134845 100644
--- a/src/common/Network/Acceptor.cpp
+++ b/src/common/Network/Acceptor.cpp
@@ -4,127 +4,127 @@
#include
#include
-namespace Core
+namespace Core {
+namespace Network {
+
+//-----------------------------------------------------------------------------
+
+Acceptor::Acceptor( HivePtr hive )
+ :
+ m_hive( hive ),
+ m_acceptor( hive->GetService() ),
+ m_io_strand( hive->GetService() ),
+ m_error_state( 0 )
{
- namespace Network
- {
-
- //-----------------------------------------------------------------------------
-
- Acceptor::Acceptor( HivePtr hive )
- : m_hive( hive ),
- m_acceptor( hive->GetService() ),
- m_io_strand( hive->GetService() ),
- m_error_state( 0 )
- {
- }
-
- Acceptor::~Acceptor()
- {
- }
-
-
- bool Acceptor::OnAccept( ConnectionPtr connection, const std::string & host, uint16_t port )
- {
- return true;
- }
-
- void Acceptor::OnError( const boost::system::error_code & error )
- {
-
- }
-
-
- void Acceptor::StartError( const boost::system::error_code & error )
- {
- if( boost::interprocess::ipcdetail::atomic_cas32( &m_error_state, 1, 0 ) == 0 )
- {
- boost::system::error_code ec;
- m_acceptor.cancel( ec );
- m_acceptor.close( ec );
- OnError( error );
- }
- }
-
- void Acceptor::DispatchAccept( ConnectionPtr connection )
- {
- m_acceptor.async_accept( connection->GetSocket(),
- connection->GetStrand().wrap( boost::bind( &Acceptor::HandleAccept,
- shared_from_this(),
- _1,
- connection ) ) );
- }
-
- void Acceptor::HandleAccept( const boost::system::error_code & error, ConnectionPtr connection )
- {
- if( error || HasError() || m_hive->HasStopped() )
- {
- connection->StartError( error );
- }
- else
- {
- if( connection->GetSocket().is_open() )
- {
- if( OnAccept( connection,
- connection->GetSocket().remote_endpoint().address().to_string(),
- connection->GetSocket().remote_endpoint().port() ) )
- {
- connection->OnAccept( m_acceptor.local_endpoint().address().to_string(), m_acceptor.local_endpoint().port() );
- connection->Recv();
- }
- }
- else
- {
- connection->StartError( error );
- }
- }
- }
-
- void Acceptor::Stop()
- {
-
- }
-
- void Acceptor::Accept( ConnectionPtr connection )
- {
- m_io_strand.post( boost::bind( &Acceptor::DispatchAccept, shared_from_this(), connection ) );
- }
-
- void Acceptor::Listen( const std::string & host, const uint16_t & port )
- {
- try
- {
- boost::asio::ip::tcp::resolver resolver( m_hive->GetService() );
- boost::asio::ip::tcp::resolver::query query( host, std::to_string( port ) );
- boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve( query );
-
- m_acceptor.open( endpoint.protocol() );
- m_acceptor.set_option( boost::asio::ip::tcp::acceptor::reuse_address( false ) );
- m_acceptor.bind( endpoint );
- m_acceptor.listen( boost::asio::socket_base::max_connections );
- }
- catch( ... )
- {
- // this should not happen
- assert( true );
- }
-
- }
-
- HivePtr Acceptor::GetHive()
- {
- return m_hive;
- }
-
- boost::asio::ip::tcp::acceptor & Acceptor::GetAcceptor()
- {
- return m_acceptor;
- }
-
- bool Acceptor::HasError()
- {
- return ( boost::interprocess::ipcdetail::atomic_cas32( &m_error_state, 1, 1 ) == 1 );
- }
-
- }
+}
+
+Acceptor::~Acceptor()
+{
+}
+
+
+bool Acceptor::OnAccept( ConnectionPtr connection, const std::string& host, uint16_t port )
+{
+ return true;
+}
+
+void Acceptor::OnError( const boost::system::error_code& error )
+{
+
+}
+
+
+void Acceptor::StartError( const boost::system::error_code& error )
+{
+ if( boost::interprocess::ipcdetail::atomic_cas32( &m_error_state, 1, 0 ) == 0 )
+ {
+ boost::system::error_code ec;
+ m_acceptor.cancel( ec );
+ m_acceptor.close( ec );
+ OnError( error );
+ }
+}
+
+void Acceptor::DispatchAccept( ConnectionPtr connection )
+{
+ m_acceptor.async_accept( connection->GetSocket(),
+ connection->GetStrand().wrap( boost::bind( &Acceptor::HandleAccept,
+ shared_from_this(),
+ _1,
+ connection ) ) );
+}
+
+void Acceptor::HandleAccept( const boost::system::error_code& error, ConnectionPtr connection )
+{
+ if( error || HasError() || m_hive->HasStopped() )
+ {
+ connection->StartError( error );
+ }
+ else
+ {
+ if( connection->GetSocket().is_open() )
+ {
+ if( OnAccept( connection,
+ connection->GetSocket().remote_endpoint().address().to_string(),
+ connection->GetSocket().remote_endpoint().port() ) )
+ {
+ connection->OnAccept( m_acceptor.local_endpoint().address().to_string(),
+ m_acceptor.local_endpoint().port() );
+ connection->Recv();
+ }
+ }
+ else
+ {
+ connection->StartError( error );
+ }
+ }
+}
+
+void Acceptor::Stop()
+{
+
+}
+
+void Acceptor::Accept( ConnectionPtr connection )
+{
+ m_io_strand.post( boost::bind( &Acceptor::DispatchAccept, shared_from_this(), connection ) );
+}
+
+void Acceptor::Listen( const std::string& host, const uint16_t& port )
+{
+ try
+ {
+ boost::asio::ip::tcp::resolver resolver( m_hive->GetService() );
+ boost::asio::ip::tcp::resolver::query query( host, std::to_string( port ) );
+ boost::asio::ip::tcp::endpoint endpoint = *resolver.resolve( query );
+
+ m_acceptor.open( endpoint.protocol() );
+ m_acceptor.set_option( boost::asio::ip::tcp::acceptor::reuse_address( false ) );
+ m_acceptor.bind( endpoint );
+ m_acceptor.listen( boost::asio::socket_base::max_connections );
+ }
+ catch( ... )
+ {
+ // this should not happen
+ assert( true );
+ }
+
+}
+
+HivePtr Acceptor::GetHive()
+{
+ return m_hive;
+}
+
+boost::asio::ip::tcp::acceptor& Acceptor::GetAcceptor()
+{
+ return m_acceptor;
+}
+
+bool Acceptor::HasError()
+{
+ return ( boost::interprocess::ipcdetail::atomic_cas32( &m_error_state, 1, 1 ) == 1 );
+}
+
+}
}
diff --git a/src/common/Network/Acceptor.h b/src/common/Network/Acceptor.h
index 01cfb606..b70b10e6 100644
--- a/src/common/Network/Acceptor.h
+++ b/src/common/Network/Acceptor.h
@@ -7,72 +7,76 @@
#include
#include "Forwards.h"
-namespace Core
+namespace Core {
+namespace Network {
+
+class Connection;
+
+class Acceptor :
+ public boost::enable_shared_from_this< Acceptor >
{
- namespace Network
- {
+ friend class Hive;
- class Connection;
+private:
+ HivePtr m_hive;
+ boost::asio::ip::tcp::acceptor m_acceptor;
+ boost::asio::strand m_io_strand;
+ volatile uint32_t m_error_state;
- class Acceptor : public boost::enable_shared_from_this< Acceptor >
- {
- friend class Hive;
+private:
+ Acceptor( const Acceptor& rhs );
- private:
- HivePtr m_hive;
- boost::asio::ip::tcp::acceptor m_acceptor;
- boost::asio::strand m_io_strand;
- volatile uint32_t m_error_state;
+ Acceptor& operator=( const Acceptor& rhs );
- private:
- Acceptor( const Acceptor & rhs );
- Acceptor & operator =( const Acceptor & rhs );
- void StartError( const boost::system::error_code & error );
- void DispatchAccept( ConnectionPtr connection );
- void HandleAccept( const boost::system::error_code & error, ConnectionPtr connection );
+ void StartError( const boost::system::error_code& error );
- private:
- // Called when a connection has connected to the server. This function
- // should return true to invoke the connection's OnAccept function if the
- // connection will be kept. If the connection will not be kept, the
- // connection's Disconnect function should be called and the function
- // should return false.
- virtual bool OnAccept( ConnectionPtr connection, const std::string & host, uint16_t port );
+ void DispatchAccept( ConnectionPtr connection );
- // Called when an error is encountered. Most typically, this is when the
- // acceptor is being closed via the Stop function or if the Listen is
- // called on an address that is not available.
- virtual void OnError( const boost::system::error_code & error );
+ void HandleAccept( const boost::system::error_code& error, ConnectionPtr connection );
- public:
- Acceptor( HivePtr hive );
- virtual ~Acceptor();
+private:
+ // Called when a connection has connected to the server. This function
+ // should return true to invoke the connection's OnAccept function if the
+ // connection will be kept. If the connection will not be kept, the
+ // connection's Disconnect function should be called and the function
+ // should return false.
+ virtual bool OnAccept( ConnectionPtr connection, const std::string& host, uint16_t port );
- // Returns the Hive object.
- HivePtr GetHive();
+ // Called when an error is encountered. Most typically, this is when the
+ // acceptor is being closed via the Stop function or if the Listen is
+ // called on an address that is not available.
+ virtual void OnError( const boost::system::error_code& error );
- // Returns the acceptor object.
- boost::asio::ip::tcp::acceptor & GetAcceptor();
+public:
+ Acceptor( HivePtr hive );
- // Returns the strand object.
- boost::asio::strand & GetStrand();
+ virtual ~Acceptor();
- // Returns true if this object has an error associated with it.
- bool HasError();
+ // Returns the Hive object.
+ HivePtr GetHive();
- public:
- // Begin listening on the specific network interface.
- void Listen( const std::string & host, const uint16_t & port );
+ // Returns the acceptor object.
+ boost::asio::ip::tcp::acceptor& GetAcceptor();
- // Posts the connection to the listening interface. The next client that
- // connections will be given this connection. If multiple calls to Accept
- // are called at a time, then they are accepted in a FIFO order.
- void Accept( ConnectionPtr connection );
+ // Returns the strand object.
+ boost::asio::strand& GetStrand();
- // Stop the Acceptor from listening.
- void Stop();
- };
+ // Returns true if this object has an error associated with it.
+ bool HasError();
- }
+public:
+ // Begin listening on the specific network interface.
+ void Listen( const std::string& host, const uint16_t& port );
+
+ // Posts the connection to the listening interface. The next client that
+ // connections will be given this connection. If multiple calls to Accept
+ // are called at a time, then they are accepted in a FIFO order.
+ void Accept( ConnectionPtr connection );
+
+ // Stop the Acceptor from listening.
+ void Stop();
+};
+
+}
}
#endif
diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h
index 94619fb9..acb94a39 100644
--- a/src/common/Network/CommonActorControl.h
+++ b/src/common/Network/CommonActorControl.h
@@ -12,288 +12,295 @@
// They are also defined within the Core::Common namespace to avoid collisions.
// +---------------------------------------------------------------------------
namespace Core {
- namespace Network {
- namespace ActorControl {
+namespace Network {
+namespace ActorControl {
- enum ActorControlType : uint16_t
- {
- /*! Toggles weapon status -> Sheathed/UnSheathed
- \param param1 status 0|1 */
- ToggleWeapon = 0x00,
- /*! Toggles Autoattack status on/off
- \param param1 status 0|1 */
- AutoAttack = 0x01,
- SetStatus = 0x02,
- CastStart = 0x03,
- ToggleAggro = 0x04,
- ClassJobChange = 0x05,
- DefeatMsg = 0x06,
- GainExpMsg = 0x07,
+enum ActorControlType :
+ uint16_t
+{
+ /*! Toggles weapon status -> Sheathed/UnSheathed
+ \param param1 status 0|1 */
+ ToggleWeapon = 0x00,
+ /*! Toggles Autoattack status on/off
+ \param param1 status 0|1 */
+ AutoAttack = 0x01,
+ SetStatus = 0x02,
+ CastStart = 0x03,
+ ToggleAggro = 0x04,
+ ClassJobChange = 0x05,
+ DefeatMsg = 0x06,
+ GainExpMsg = 0x07,
- LevelUpEffect = 0x0A,
+ LevelUpEffect = 0x0A,
- ExpChainMsg = 0x0C,
- HpSetStat = 0x0D,
- DeathAnimation = 0x0E,
- CastInterrupt = 0x0F,
+ ExpChainMsg = 0x0C,
+ HpSetStat = 0x0D,
+ DeathAnimation = 0x0E,
+ CastInterrupt = 0x0F,
- ActionStart = 0x11,
+ ActionStart = 0x11,
- StatusEffectGain = 0x14,
- StatusEffectLose = 0x15,
+ StatusEffectGain = 0x14,
+ StatusEffectLose = 0x15,
- HPFloatingText = 0x17,
- UpdateRestedExp = 0x018,
- Unk2 = 0x19,
+ HPFloatingText = 0x17,
+ UpdateRestedExp = 0x018,
+ Unk2 = 0x19,
- Flee = 0x1B,
+ Flee = 0x1B,
- Unk3 = 0x20, // Animation related?
+ Unk3 = 0x20, // Animation related?
- CombatIndicationShow = 0x22,
+ CombatIndicationShow = 0x22,
- SpawnEffect = 0x25,
- ToggleInvisible = 0x26,
+ SpawnEffect = 0x25,
+ ToggleInvisible = 0x26,
- ToggleActionUnlock = 0x29,
+ ToggleActionUnlock = 0x29,
- UpdateUiExp = 0x2B,
- DmgTakenMsg = 0x2D,
+ UpdateUiExp = 0x2B,
+ DmgTakenMsg = 0x2D,
- SetTarget = 0x32,
- ToggleNameHidden = 0x36,
+ SetTarget = 0x32,
+ ToggleNameHidden = 0x36,
- LimitbreakStart = 0x47,
- LimitbreakPartyStart = 0x48,
- BubbleText = 0x49,
+ LimitbreakStart = 0x47,
+ LimitbreakPartyStart = 0x48,
+ BubbleText = 0x49,
- DamageEffect = 0x50,
- RaiseAnimation = 0x51,
- TreasureScreenMsg = 0x57,
- SetOwnerId = 0x59,
- ItemRepairMsg = 0x5C,
+ DamageEffect = 0x50,
+ RaiseAnimation = 0x51,
+ TreasureScreenMsg = 0x57,
+ SetOwnerId = 0x59,
+ ItemRepairMsg = 0x5C,
- DirectorInit = 0x64,
- DirectorClear = 0x65,
+ DirectorInit = 0x64,
+ DirectorClear = 0x65,
- LeveStartAnim = 0x66,
- LeveStartError = 0x67,
- DirectorEObjMod = 0x6A,
+ LeveStartAnim = 0x66,
+ LeveStartError = 0x67,
+ DirectorEObjMod = 0x6A,
- DirectorUpdate = 0x6D,
+ DirectorUpdate = 0x6D,
- ItemObtainMsg = 0x75,
- DutyQuestScreenMsg = 0x7B,
+ ItemObtainMsg = 0x75,
+ DutyQuestScreenMsg = 0x7B,
- ItemObtainIcon = 0x84,
- FateItemFailMsg = 0x85,
- ItemFailMsg = 0x86,
- ActionLearnMsg1 = 0x87,
+ ItemObtainIcon = 0x84,
+ FateItemFailMsg = 0x85,
+ ItemFailMsg = 0x86,
+ ActionLearnMsg1 = 0x87,
- FreeEventPos = 0x8A,
+ FreeEventPos = 0x8A,
- SetBGM = 0xA1,
+ SetBGM = 0xA1,
- UnlockAetherCurrentMsg = 0xA4,
+ UnlockAetherCurrentMsg = 0xA4,
- RemoveName = 0xA8,
+ RemoveName = 0xA8,
- ScreenFadeOut = 0xAA,
+ ScreenFadeOut = 0xAA,
- ZoneIn = 0xC8,
- ZoneInDefaultPos = 0xC9,
+ ZoneIn = 0xC8,
+ ZoneInDefaultPos = 0xC9,
- TeleportStart = 0xCB,
+ TeleportStart = 0xCB,
- TeleportDone = 0xCD,
- TeleportDoneFadeOut = 0xCE,
- DespawnZoneScreenMsg = 0xCF,
+ TeleportDone = 0xCD,
+ TeleportDoneFadeOut = 0xCE,
+ DespawnZoneScreenMsg = 0xCF,
- InstanceSelectDlg = 0xD2,
- ActorDespawnEffect = 0xD4,
+ InstanceSelectDlg = 0xD2,
+ ActorDespawnEffect = 0xD4,
- CompanionUnlock = 0xFD,
- ObtainBarding = 0xFE,
- EquipBarding = 0xFF,
+ CompanionUnlock = 0xFD,
+ ObtainBarding = 0xFE,
+ EquipBarding = 0xFF,
- CompanionMsg1 = 0x102,
- CompanionMsg2 = 0x103,
- ShowPetHotbar = 0x104,
+ CompanionMsg1 = 0x102,
+ CompanionMsg2 = 0x103,
+ ShowPetHotbar = 0x104,
- ActionLearnMsg = 0x109,
- ActorFadeOut = 0x10A,
- ActorFadeIn = 0x10B,
- WithdrawMsg = 0x10C,
- OrderMinion = 0x10D,
- ToggleMinion = 0x10E,
- LearnMinion = 0x10F,
- ActorFateOut1 = 0x110,
+ ActionLearnMsg = 0x109,
+ ActorFadeOut = 0x10A,
+ ActorFadeIn = 0x10B,
+ WithdrawMsg = 0x10C,
+ OrderMinion = 0x10D,
+ ToggleMinion = 0x10E,
+ LearnMinion = 0x10F,
+ ActorFateOut1 = 0x110,
- Emote = 0x122,
- EmoteInterrupt = 0x123,
+ Emote = 0x122,
+ EmoteInterrupt = 0x123,
- SetPose = 0x127,
+ SetPose = 0x127,
- CraftingUnk = 0x12C,
+ CraftingUnk = 0x12C,
- GatheringSenseMsg = 0x130,
- PartyMsg = 0x131,
- GatheringSenseMsg1 = 0x132,
+ GatheringSenseMsg = 0x130,
+ PartyMsg = 0x131,
+ GatheringSenseMsg1 = 0x132,
- GatheringSenseMsg2 = 0x138,
+ GatheringSenseMsg2 = 0x138,
- FishingMsg = 0x140,
+ FishingMsg = 0x140,
- FishingBaitMsg = 0x145,
+ FishingBaitMsg = 0x145,
- FishingReachMsg = 0x147,
- FishingFailMsg = 0x148,
+ FishingReachMsg = 0x147,
+ FishingFailMsg = 0x148,
- MateriaConvertMsg = 0x15E,
- MeldSuccessMsg = 0x15F,
- MeldFailMsg = 0x160,
- MeldModeToggle = 0x161,
+ MateriaConvertMsg = 0x15E,
+ MeldSuccessMsg = 0x15F,
+ MeldFailMsg = 0x160,
+ MeldModeToggle = 0x161,
- AetherRestoreMsg = 0x163,
+ AetherRestoreMsg = 0x163,
- DyeMsg = 0x168,
+ DyeMsg = 0x168,
- ToggleCrestMsg = 0x16A,
- ToggleBulkCrestMsg = 0x16B,
- MateriaRemoveMsg = 0x16C,
- GlamourCastMsg = 0x16D,
- GlamourRemoveMsg = 0x16E,
+ ToggleCrestMsg = 0x16A,
+ ToggleBulkCrestMsg = 0x16B,
+ MateriaRemoveMsg = 0x16C,
+ GlamourCastMsg = 0x16D,
+ GlamourRemoveMsg = 0x16E,
- RelicInfuseMsg = 0x179,
+ RelicInfuseMsg = 0x179,
- AetherReductionDlg = 0x17D,
+ AetherReductionDlg = 0x17D,
- Unk6 = 0x19C,
- EObjAnimation = 0x19D,
+ Unk6 = 0x19C,
+ EObjAnimation = 0x19D,
- SetTitle = 0x1F4,
+ SetTitle = 0x1F4,
- SetStatusIcon = 0x1F8,
- LimitBreakGauge = 0x1F9, // Max level, amount, build type (chop sound), lb type(0=pve lb 1=pvp lb)
- SetHomepoint = 0x1FB,
- SetFavorite = 0x1FC,
- LearnTeleport = 0x1FD,
+ SetStatusIcon = 0x1F8,
+ LimitBreakGauge = 0x1F9, // Max level, amount, build type (chop sound), lb type(0=pve lb 1=pvp lb)
+ SetHomepoint = 0x1FB,
+ SetFavorite = 0x1FC,
+ LearnTeleport = 0x1FD,
- OpenRecommendationGuide = 0x200,
- ArmoryErrorMsg = 0x201,
+ OpenRecommendationGuide = 0x200,
+ ArmoryErrorMsg = 0x201,
- AchievementPopup = 0x203,
+ AchievementPopup = 0x203,
- Unk7 = 0x205, // LogMessage?
- AchievementMsg = 0x206,
+ Unk7 = 0x205, // LogMessage?
+ AchievementMsg = 0x206,
- SetItemLevel = 0x209,
+ SetItemLevel = 0x209,
- ChallengeEntryCompleteMsg = 0x20B,
- ChallengeEntryUnlockMsg = 0x20C,
+ ChallengeEntryCompleteMsg = 0x20B,
+ ChallengeEntryUnlockMsg = 0x20C,
- GilTrailMsg = 0x211,
+ GilTrailMsg = 0x211,
- SetMaxGearSets = 0x230,
+ SetMaxGearSets = 0x230,
- SetCharaGearParamUI = 0x260,
+ SetCharaGearParamUI = 0x260,
+ ToggleWireframeRendering = 0x261,
- GearSetEquipMsg = 0x321,
+ GearSetEquipMsg = 0x321,
- SetFestival = 0x386, // param1: festival.exd index
+ SetFestival = 0x386, // param1: festival.exd index
- ToggleOrchestrionUnlock = 0x396,
- Dismount = 0x3A0,
+ ToggleOrchestrionUnlock = 0x396,
+ Dismount = 0x3A0,
- // Duty Recorder
- BeginReplayAck = 0x3A1,
- EndReplayAck = 0x3A2,
+ // Duty Recorder
+ BeginReplayAck = 0x3A1,
+ EndReplayAck = 0x3A2,
- // PvP Duel
- SetPvPState = 0x5E0, // param3 must be 6 to engage a duel (hardcoded in the client)
- EndDuelSession = 0x5E1, // because someone went oob?
- StartDuelCountdown = 0x5E2, // begins a countdown; also does some duel bgm thing.
- StartDuel = 0x5E3, // actually all it does is set the challenger actor id;
- DuelResultScreen = 0x5E4, // win/lose thing, also reset a target id just like what EndDuelSession does.
+ // PvP Duel
+ SetPvPState = 0x5E0, // param3 must be 6 to engage a duel (hardcoded in the client)
+ EndDuelSession = 0x5E1, // because someone went oob?
+ StartDuelCountdown = 0x5E2, // begins a countdown; also does some duel bgm thing.
+ StartDuel = 0x5E3, // actually all it does is set the challenger actor id;
+ DuelResultScreen = 0x5E4, // win/lose thing, also reset a target id just like what EndDuelSession does.
- // Duty Action
- SetDutyActionId = 0x5E8, // ContentExAction
- SetDutyActionHud = 0x5E9, // disable/enable
- SetDutyActionActive = 0x5EA,
- SetDutyActionRemaining = 0x5EB,
- };
+ // Duty Action
+ SetDutyActionId = 0x5E8, // ContentExAction
+ SetDutyActionHud = 0x5E9, // disable/enable
+ SetDutyActionActive = 0x5EA,
+ SetDutyActionRemaining = 0x5EB,
+};
- enum ClientTriggerType
- {
- ToggleSheathe = 0x01,
- ToggleAutoAttack = 0x02,
- ChangeTarget = 0x03,
+enum ClientTriggerType
+{
+ ToggleSheathe = 0x01,
+ ToggleAutoAttack = 0x02,
+ ChangeTarget = 0x03,
- DismountReq = 0x65,
+ DismountReq = 0x65,
- RemoveStatusEffect = 0x68,
- CastCancel = 0x69,
+ RemoveStatusEffect = 0x68,
+ CastCancel = 0x69,
- Return = 0xC8, // return dead / accept raise
- FinishZoning = 0xC9,
- Teleport = 0xCA,
+ Return = 0xC8, // return dead / accept raise
+ FinishZoning = 0xC9,
+ Teleport = 0xCA,
- MarkPlayer = 0x12D, // Mark player, visible to party only
- SetTitleReq = 0x12E,
- TitleList = 0x12F,
+ Examine = 0x12C,
+ MarkPlayer = 0x12D, // Mark player, visible to party only
+ SetTitleReq = 0x12E,
+ TitleList = 0x12F,
- UpdatedSeenHowTos = 0x133,
- AllotAttribute = 0x135,
+ UpdatedSeenHowTos = 0x133,
+ AllotAttribute = 0x135,
- ClearWaymarks = 0x13A,
- CameraMode = 0x13B, // param12, 1 = camera mode enable, 0 = disable
+ ClearWaymarks = 0x13A,
+ CameraMode = 0x13B, // param12, 1 = camera mode enable, 0 = disable
+ CharaNameReq = 0x13D, // requests character name by content id
+ HuntingLogDetails = 0x194,
- HuntingLogDetails = 0x194,
+ Timers = 0x1AB,
- Timers = 0x1AB,
+ DyeItem = 0x1B5,
- DyeItem = 0x1B5,
+ RequestChocoboInventory = 0x1C4,
- RequestChocoboInventory = 0x1C4,
+ EmoteReq = 0x1F4,
+ EmoteCancel = 0x1F6,
+ PersistentEmoteCancel = 0x1F7,
+ PoseChange = 0x1F9,
+ PoseReapply = 0x1FA,
+ PoseCancel = 0x1FB,
- EmoteReq = 0x1F4,
- EmoteCancel = 0x1F6,
- PersistentEmoteCancel = 0x1F7,
- PoseChange = 0x1F9,
- PoseReapply = 0x1FA,
- PoseCancel = 0x1FB,
+ AchievementCrit = 0x202,
+ AchievementComp = 0x203,
+ AchievementCatChat = 0x206,
- AchievementCrit = 0x202,
- AchievementComp = 0x203,
- AchievementCatChat = 0x206,
+ QuestJournalUpdateQuestVisibility = 0x2BE,
+ QuestJournalClosed = 0x2BF,
+ AbandonQuest = 0x320,
- DirectorInitFinish = 0x321,
+ DirectorInitFinish = 0x321,
- DirectorSync = 0x328, // unsure what exactly triggers it, starts director when returning to instance though
+ DirectorSync = 0x328, // unsure what exactly triggers it, starts director when returning to instance though
- EnterTerritoryEventFinished = 0x330,
- RequestInstanceLeave = 0x333, // df menu button
+ EnterTerritoryEventFinished = 0x330,
+ RequestInstanceLeave = 0x333, // df menu button
- AchievementCritReq = 0x3E8,
- AchievementList = 0x3E9,
+ AchievementCritReq = 0x3E8,
+ AchievementList = 0x3E9,
- CompanionAction = 0x6A4,
- CompanionSetBarding = 0x6A5,
- CompanionActionUnlock = 0x6A6,
+ CompanionAction = 0x6A4,
+ CompanionSetBarding = 0x6A5,
+ CompanionActionUnlock = 0x6A6,
- OpenPerformInstrumentUI = 0x71C,
+ OpenPerformInstrumentUI = 0x71C,
- StartReplay = 0x7BC,
- EndReplay = 0x7BD, // request for restoring the original player state (actor, buff, gauge, etc..)
+ StartReplay = 0x7BC,
+ EndReplay = 0x7BD, // request for restoring the original player state (actor, buff, gauge, etc..)
- OpenDuelUI = 0x898, // Open a duel ui
- DuelRequestResult = 0x899, // either accept/reject
+ OpenDuelUI = 0x898, // Open a duel ui
+ DuelRequestResult = 0x899, // either accept/reject
- };
+};
- } /* ActorControl */
- } /* Common */
+} /* ActorControl */
+} /* Common */
} /* Core */
#endif
diff --git a/src/common/Network/CommonNetwork.h b/src/common/Network/CommonNetwork.h
index a6901f2e..1ce7c50b 100644
--- a/src/common/Network/CommonNetwork.h
+++ b/src/common/Network/CommonNetwork.h
@@ -53,31 +53,31 @@ namespace Packets {
*/
struct FFXIVARR_PACKET_HEADER
{
- /** Unknown data, no actual use has been determined */
- uint64_t unknown_0;
- uint64_t unknown_8;
- /** Represents the number of milliseconds since epoch that the packet was sent. */
- uint64_t timestamp;
- /** The size of the packet header and its payload */
- uint32_t size;
- /** The type of this connection - 1 zone, 2 chat*/
- uint16_t connectionType;
- /** The number of packet segments that follow. */
- uint16_t count;
- uint8_t unknown_20;
- /** Indicates if the data segments of this packet are compressed. */
- uint8_t isCompressed;
- uint32_t unknown_24;
+ /** Unknown data, no actual use has been determined */
+ uint64_t unknown_0;
+ uint64_t unknown_8;
+ /** Represents the number of milliseconds since epoch that the packet was sent. */
+ uint64_t timestamp;
+ /** The size of the packet header and its payload */
+ uint32_t size;
+ /** The type of this connection - 1 zone, 2 chat*/
+ uint16_t connectionType;
+ /** The number of packet segments that follow. */
+ uint16_t count;
+ uint8_t unknown_20;
+ /** Indicates if the data segments of this packet are compressed. */
+ uint8_t isCompressed;
+ uint32_t unknown_24;
};
-inline ostream& operator << ( ostream& os, const FFXIVARR_PACKET_HEADER& hdr )
+inline ostream& operator<<( ostream& os, const FFXIVARR_PACKET_HEADER& hdr )
{
- return os.write( reinterpret_cast< const char* >( &hdr ), sizeof hdr );
+ return os.write( reinterpret_cast< const char* >( &hdr ), sizeof hdr );
}
-inline istream& operator >> ( istream& is, FFXIVARR_PACKET_HEADER& hdr )
+inline istream& operator>>( istream& is, FFXIVARR_PACKET_HEADER& hdr )
{
- return is.read( reinterpret_cast< char* >( &hdr ), sizeof hdr );
+ return is.read( reinterpret_cast< char* >( &hdr ), sizeof hdr );
}
/**
@@ -97,37 +97,41 @@ inline istream& operator >> ( istream& is, FFXIVARR_PACKET_HEADER& hdr )
*/
struct FFXIVARR_PACKET_SEGMENT_HEADER
{
- /** The size of the segment header and its data. */
- uint32_t size;
- /** The session ID this segment describes. */
- uint32_t source_actor;
- /** The session ID this packet is being delivered to. */
- uint32_t target_actor;
- /** The segment type. (1, 2, 3, 7, 8, 9, 10) */
- uint16_t type;
- uint16_t padding;
+ /** The size of the segment header and its data. */
+ uint32_t size;
+ /** The session ID this segment describes. */
+ uint32_t source_actor;
+ /** The session ID this packet is being delivered to. */
+ uint32_t target_actor;
+ /** The segment type. (1, 2, 3, 7, 8, 9, 10) */
+ uint16_t type;
+ uint16_t padding;
};
-inline ostream& operator << ( ostream& os, const FFXIVARR_PACKET_SEGMENT_HEADER& hdr )
+inline ostream& operator<<( ostream& os, const FFXIVARR_PACKET_SEGMENT_HEADER& hdr )
{
- return os.write( reinterpret_cast< const char* >( &hdr ), sizeof hdr );
+ return os.write( reinterpret_cast< const char* >( &hdr ), sizeof hdr );
}
-inline istream& operator >> ( istream& is, FFXIVARR_PACKET_SEGMENT_HEADER& hdr )
+inline istream& operator>>( istream& is, FFXIVARR_PACKET_SEGMENT_HEADER& hdr )
{
- return is.read( reinterpret_cast< char* >( &hdr ), sizeof hdr );
+ return is.read( reinterpret_cast< char* >( &hdr ), sizeof hdr );
}
-template < int T > struct FFXIVIpcBasePacket
+template< int T >
+struct FFXIVIpcBasePacket
{
- /** Creates a constant representing the IPC type */
- enum { _ServerIpcType = T };
+ /** Creates a constant representing the IPC type */
+ enum
+ {
+ _ServerIpcType = T
+ };
};
struct FFXIVARR_PACKET_RAW
{
- FFXIVARR_PACKET_SEGMENT_HEADER segHdr;
- std::vector< uint8_t > data;
+ FFXIVARR_PACKET_SEGMENT_HEADER segHdr;
+ std::vector< uint8_t > data;
};
/**
@@ -137,11 +141,11 @@ struct FFXIVARR_PACKET_RAW
*/
enum FFXIVARR_SEGMENT_TYPE
{
- SEGMENTTYPE_SESSIONINIT = 1,
- SEGMENTTYPE_IPC = 3,
- SEGMENTTYPE_KEEPALIVE = 7,
- //SEGMENTTYPE_RESPONSE = 8,
- SEGMENTTYPE_ENCRYPTIONINIT = 9,
+ SEGMENTTYPE_SESSIONINIT = 1,
+ SEGMENTTYPE_IPC = 3,
+ SEGMENTTYPE_KEEPALIVE = 7,
+ //SEGMENTTYPE_RESPONSE = 8,
+ SEGMENTTYPE_ENCRYPTIONINIT = 9,
};
/**
@@ -159,22 +163,22 @@ enum FFXIVARR_SEGMENT_TYPE
*/
struct FFXIVARR_IPC_HEADER
{
- uint16_t reserved;
- uint16_t type;
- uint16_t padding;
- uint16_t serverId;
- uint32_t timestamp;
- uint32_t padding1;
+ uint16_t reserved;
+ uint16_t type;
+ uint16_t padding;
+ uint16_t serverId;
+ uint32_t timestamp;
+ uint32_t padding1;
};
-inline ostream& operator << ( ostream& os, const FFXIVARR_IPC_HEADER& hdr )
+inline ostream& operator<<( ostream& os, const FFXIVARR_IPC_HEADER& hdr )
{
- return os.write( reinterpret_cast< const char* >( &hdr ), sizeof hdr );
+ return os.write( reinterpret_cast< const char* >( &hdr ), sizeof hdr );
}
-inline istream& operator >> ( istream& is, FFXIVARR_IPC_HEADER& hdr )
+inline istream& operator>>( istream& is, FFXIVARR_IPC_HEADER& hdr )
{
- return is.read( reinterpret_cast< char* >( &hdr ), sizeof hdr );
+ return is.read( reinterpret_cast< char* >( &hdr ), sizeof hdr );
}
} /* Packets */
diff --git a/src/common/Network/Connection.cpp b/src/common/Network/Connection.cpp
index 6e4040b2..9b314f18 100644
--- a/src/common/Network/Connection.cpp
+++ b/src/common/Network/Connection.cpp
@@ -4,207 +4,210 @@
#include
namespace Core {
- namespace Network {
- //-----------------------------------------------------------------------------
+namespace Network {
+//-----------------------------------------------------------------------------
- Connection::Connection( HivePtr hive )
- : m_hive( hive ),
- m_socket( hive->GetService() ),
- m_io_strand( hive->GetService() ),
- m_receive_buffer_size( 32000 ),
- m_error_state( 0 )
- {
- }
+Connection::Connection( HivePtr hive )
+ :
+ m_hive( hive ),
+ m_socket( hive->GetService() ),
+ m_io_strand( hive->GetService() ),
+ m_receive_buffer_size( 32000 ),
+ m_error_state( 0 )
+{
+}
- Connection::~Connection()
- {
- }
+Connection::~Connection()
+{
+}
- void Connection::Bind( const std::string & ip, uint16_t port )
- {
- boost::asio::ip::tcp::endpoint endpoint( boost::asio::ip::address::from_string( ip ), port );
- m_socket.open( endpoint.protocol() );
- m_socket.set_option( boost::asio::ip::tcp::acceptor::reuse_address( false ) );
- m_socket.bind( endpoint );
- }
+void Connection::Bind( const std::string& ip, uint16_t port )
+{
+ boost::asio::ip::tcp::endpoint endpoint( boost::asio::ip::address::from_string( ip ), port );
+ m_socket.open( endpoint.protocol() );
+ m_socket.set_option( boost::asio::ip::tcp::acceptor::reuse_address( false ) );
+ m_socket.bind( endpoint );
+}
- void Connection::StartSend()
- {
- if( !m_pending_sends.empty() )
- {
- boost::asio::async_write( m_socket,
- boost::asio::buffer( m_pending_sends.front() ),
- m_io_strand.wrap( boost::bind( &Connection::HandleSend,
- shared_from_this(),
- boost::asio::placeholders::error,
- m_pending_sends.begin() ) ) );
- }
- }
+void Connection::StartSend()
+{
+ if( !m_pending_sends.empty() )
+ {
+ boost::asio::async_write( m_socket,
+ boost::asio::buffer( m_pending_sends.front() ),
+ m_io_strand.wrap( boost::bind( &Connection::HandleSend,
+ shared_from_this(),
+ boost::asio::placeholders::error,
+ m_pending_sends.begin() ) ) );
+ }
+}
- void Connection::StartRecv( int32_t total_bytes )
- {
- if( total_bytes > 0 )
- {
- m_recv_buffer.resize( total_bytes );
- boost::asio::async_read( m_socket,
- boost::asio::buffer( m_recv_buffer ),
- m_io_strand.wrap( boost::bind( &Connection::HandleRecv,
- shared_from_this(),
- _1,
- _2 ) ) );
- }
- else
- {
- m_recv_buffer.resize( m_receive_buffer_size );
- m_socket.async_read_some( boost::asio::buffer( m_recv_buffer ),
- m_io_strand.wrap( boost::bind( &Connection::HandleRecv,
- shared_from_this(),
- _1,
- _2 ) ) );
- }
- }
+void Connection::StartRecv( int32_t total_bytes )
+{
+ if( total_bytes > 0 )
+ {
+ m_recv_buffer.resize( total_bytes );
+ boost::asio::async_read( m_socket,
+ boost::asio::buffer( m_recv_buffer ),
+ m_io_strand.wrap( boost::bind( &Connection::HandleRecv,
+ shared_from_this(),
+ _1,
+ _2 ) ) );
+ }
+ else
+ {
+ m_recv_buffer.resize( m_receive_buffer_size );
+ m_socket.async_read_some( boost::asio::buffer( m_recv_buffer ),
+ m_io_strand.wrap( boost::bind( &Connection::HandleRecv,
+ shared_from_this(),
+ _1,
+ _2 ) ) );
+ }
+}
- void Connection::StartError( const boost::system::error_code & error )
- {
- if( boost::interprocess::ipcdetail::atomic_cas32( &m_error_state, 1, 0 ) == 0 )
- {
- boost::system::error_code ec;
- m_socket.shutdown( boost::asio::ip::tcp::socket::shutdown_both, ec );
- m_socket.close( ec );
- OnError( error );
- }
- }
+void Connection::StartError( const boost::system::error_code& error )
+{
+ if( boost::interprocess::ipcdetail::atomic_cas32( &m_error_state, 1, 0 ) == 0 )
+ {
+ boost::system::error_code ec;
+ m_socket.shutdown( boost::asio::ip::tcp::socket::shutdown_both, ec );
+ m_socket.close( ec );
+ OnError( error );
+ }
+}
- void Connection::HandleConnect( const boost::system::error_code & error )
- {
- if( error || HasError() || m_hive->HasStopped() )
- {
- StartError( error );
- }
- else
- {
- if( m_socket.is_open() )
- {
- OnConnect( m_socket.remote_endpoint().address().to_string(), m_socket.remote_endpoint().port() );
- Recv();
- }
- else
- {
- StartError( error );
- }
- }
- }
+void Connection::HandleConnect( const boost::system::error_code& error )
+{
+ if( error || HasError() || m_hive->HasStopped() )
+ {
+ StartError( error );
+ }
+ else
+ {
+ if( m_socket.is_open() )
+ {
+ OnConnect( m_socket.remote_endpoint().address().to_string(), m_socket.remote_endpoint().port() );
+ Recv();
+ }
+ else
+ {
+ StartError( error );
+ }
+ }
+}
- void Connection::HandleSend( const boost::system::error_code & error, std::list< std::vector< uint8_t > >::iterator itr )
- {
- if( error || HasError() || m_hive->HasStopped() )
- {
- StartError( error );
- }
- else
- {
- OnSend( *itr );
- m_pending_sends.erase( itr );
- StartSend();
- }
- }
+void
+Connection::HandleSend( const boost::system::error_code& error, std::list< std::vector< uint8_t > >::iterator itr )
+{
+ if( error || HasError() || m_hive->HasStopped() )
+ {
+ StartError( error );
+ }
+ else
+ {
+ OnSend( *itr );
+ m_pending_sends.erase( itr );
+ StartSend();
+ }
+}
- void Connection::HandleRecv( const boost::system::error_code & error, int32_t actual_bytes )
- {
- if( error || HasError() || m_hive->HasStopped() )
- {
- StartError( error );
- }
- else
- {
- m_recv_buffer.resize( actual_bytes );
- OnRecv( m_recv_buffer );
- Recv();
- m_pending_recvs.pop_front();
- if( !m_pending_recvs.empty() )
- {
- StartRecv( m_pending_recvs.front() );
- }
- }
- }
+void Connection::HandleRecv( const boost::system::error_code& error, int32_t actual_bytes )
+{
+ if( error || HasError() || m_hive->HasStopped() )
+ {
+ StartError( error );
+ }
+ else
+ {
+ m_recv_buffer.resize( actual_bytes );
+ OnRecv( m_recv_buffer );
+ Recv();
+ m_pending_recvs.pop_front();
+ if( !m_pending_recvs.empty() )
+ {
+ StartRecv( m_pending_recvs.front() );
+ }
+ }
+}
- void Connection::DispatchSend( std::vector< uint8_t > buffer )
- {
- bool should_start_send = m_pending_sends.empty();
- m_pending_sends.push_back( buffer );
- if( should_start_send )
- {
- StartSend();
- }
- }
+void Connection::DispatchSend( std::vector< uint8_t > buffer )
+{
+ bool should_start_send = m_pending_sends.empty();
+ m_pending_sends.push_back( buffer );
+ if( should_start_send )
+ {
+ StartSend();
+ }
+}
- void Connection::DispatchRecv( int32_t total_bytes )
- {
- bool should_start_receive = m_pending_recvs.empty();
- m_pending_recvs.push_back( total_bytes );
- if( should_start_receive )
- {
- StartRecv( total_bytes );
- }
- }
+void Connection::DispatchRecv( int32_t total_bytes )
+{
+ bool should_start_receive = m_pending_recvs.empty();
+ m_pending_recvs.push_back( total_bytes );
+ if( should_start_receive )
+ {
+ StartRecv( total_bytes );
+ }
+}
- void Connection::Connect( const std::string & host, uint16_t port)
- {
- boost::asio::ip::tcp::resolver resolver( m_hive->GetService() );
- boost::asio::ip::tcp::resolver::query query( host, std::to_string( port ) );
- boost::asio::ip::tcp::resolver::iterator iterator = resolver.resolve( query );
- m_socket.async_connect( *iterator, m_io_strand.wrap( boost::bind( &Connection::HandleConnect, shared_from_this(), _1 ) ) );
+void Connection::Connect( const std::string& host, uint16_t port )
+{
+ boost::asio::ip::tcp::resolver resolver( m_hive->GetService() );
+ boost::asio::ip::tcp::resolver::query query( host, std::to_string( port ) );
+ boost::asio::ip::tcp::resolver::iterator iterator = resolver.resolve( query );
+ m_socket.async_connect( *iterator,
+ m_io_strand.wrap( boost::bind( &Connection::HandleConnect, shared_from_this(), _1 ) ) );
- }
+}
- void Connection::Disconnect()
- {
- OnDisconnect();
- m_socket.close();
- }
+void Connection::Disconnect()
+{
+ OnDisconnect();
+ m_socket.close();
+}
- void Connection::Recv( int32_t total_bytes )
- {
- m_io_strand.post( boost::bind( &Connection::DispatchRecv, shared_from_this(), total_bytes ) );
- }
+void Connection::Recv( int32_t total_bytes )
+{
+ m_io_strand.post( boost::bind( &Connection::DispatchRecv, shared_from_this(), total_bytes ) );
+}
- void Connection::Send( const std::vector< uint8_t > & buffer )
- {
- m_io_strand.post( boost::bind( &Connection::DispatchSend, shared_from_this(), buffer ) );
- }
+void Connection::Send( const std::vector< uint8_t >& buffer )
+{
+ m_io_strand.post( boost::bind( &Connection::DispatchSend, shared_from_this(), buffer ) );
+}
- boost::asio::ip::tcp::socket & Connection::GetSocket()
- {
- return m_socket;
- }
+boost::asio::ip::tcp::socket& Connection::GetSocket()
+{
+ return m_socket;
+}
- boost::asio::strand & Connection::GetStrand()
- {
- return m_io_strand;
- }
+boost::asio::strand& Connection::GetStrand()
+{
+ return m_io_strand;
+}
- HivePtr Connection::GetHive()
- {
- return m_hive;
- }
+HivePtr Connection::GetHive()
+{
+ return m_hive;
+}
- void Connection::SetReceiveBufferSize( int32_t size )
- {
- m_receive_buffer_size = size;
- }
+void Connection::SetReceiveBufferSize( int32_t size )
+{
+ m_receive_buffer_size = size;
+}
- int32_t Connection::GetReceiveBufferSize() const
- {
- return m_receive_buffer_size;
- }
+int32_t Connection::GetReceiveBufferSize() const
+{
+ return m_receive_buffer_size;
+}
- bool Connection::HasError()
- {
- return ( boost::interprocess::ipcdetail::atomic_cas32( &m_error_state, 1, 1 ) == 1 );
- }
+bool Connection::HasError()
+{
+ return ( boost::interprocess::ipcdetail::atomic_cas32( &m_error_state, 1, 1 ) == 1 );
+}
- }
+}
}
//-----------------------------------------------------------------------------
\ No newline at end of file
diff --git a/src/common/Network/Connection.h b/src/common/Network/Connection.h
index 342d79c6..bb4decf6 100644
--- a/src/common/Network/Connection.h
+++ b/src/common/Network/Connection.h
@@ -14,130 +14,156 @@
namespace Core {
- namespace Network {
- //-----------------------------------------------------------------------------
+namespace Network {
+//-----------------------------------------------------------------------------
- class Hive;
- class Acceptor;
- class Connection;
+class Hive;
- //-----------------------------------------------------------------------------
+class Acceptor;
- class Connection : public boost::enable_shared_from_this< Connection >
- {
- friend class Acceptor;
- friend class Hive;
+class Connection;
- protected:
- HivePtr m_hive;
- boost::asio::ip::tcp::socket m_socket;
- boost::asio::strand m_io_strand;
- std::vector< uint8_t > m_recv_buffer;
- std::list< int32_t > m_pending_recvs;
- std::list< std::vector< uint8_t > > m_pending_sends;
- int32_t m_receive_buffer_size;
- volatile uint32_t m_error_state;
+//-----------------------------------------------------------------------------
+
+class Connection :
+ public boost::enable_shared_from_this< Connection >
+{
+ friend class Acceptor;
+
+ friend class Hive;
+
+protected:
+ HivePtr m_hive;
+ boost::asio::ip::tcp::socket m_socket;
+ boost::asio::strand m_io_strand;
+ std::vector< uint8_t > m_recv_buffer;
+ std::list< int32_t > m_pending_recvs;
+ std::list< std::vector< uint8_t > > m_pending_sends;
+ int32_t m_receive_buffer_size;
+ volatile uint32_t m_error_state;
- Connection( HivePtr hive );
- virtual ~Connection();
+ Connection( HivePtr hive );
- private:
- Connection( const Connection & rhs );
- Connection & operator =( const Connection & rhs );
- void StartSend();
- void StartRecv( int32_t total_bytes );
- void StartError( const boost::system::error_code & error );
- void DispatchSend( std::vector< uint8_t > buffer );
- void DispatchRecv( int32_t total_bytes );
- void HandleConnect( const boost::system::error_code & error );
- void HandleSend( const boost::system::error_code & error, std::list< std::vector< uint8_t > >::iterator itr );
- void HandleRecv( const boost::system::error_code & error, int32_t actual_bytes );
+ virtual ~Connection();
+
+private:
+ Connection( const Connection& rhs );
+
+ Connection& operator=( const Connection& rhs );
+
+ void StartSend();
+
+ void StartRecv( int32_t total_bytes );
+
+ void StartError( const boost::system::error_code& error );
+
+ void DispatchSend( std::vector< uint8_t > buffer );
+
+ void DispatchRecv( int32_t total_bytes );
+
+ void HandleConnect( const boost::system::error_code& error );
+
+ void HandleSend( const boost::system::error_code& error, std::list< std::vector< uint8_t > >::iterator itr );
+
+ void HandleRecv( const boost::system::error_code& error, int32_t actual_bytes );
- private:
- // Called when the connection has successfully connected to the local host.
- virtual void OnAccept( const std::string & host, uint16_t port ) {};
+private:
+ // Called when the connection has successfully connected to the local host.
+ virtual void OnAccept( const std::string& host, uint16_t port )
+ {
+ };
- // Called when the connection has successfully connected to the remote host.
- virtual void OnConnect( const std::string & host, uint16_t port ) {};
+ // Called when the connection has successfully connected to the remote host.
+ virtual void OnConnect( const std::string& host, uint16_t port )
+ {
+ };
- // Called when data has been sent by the connection.
- virtual void OnSend( const std::vector< uint8_t > & buffer ) {};
+ // Called when data has been sent by the connection.
+ virtual void OnSend( const std::vector< uint8_t >& buffer )
+ {
+ };
- // Called when data has been received by the connection.
- virtual void OnRecv( std::vector< uint8_t > & buffer ) {};
+ // Called when data has been received by the connection.
+ virtual void OnRecv( std::vector< uint8_t >& buffer )
+ {
+ };
- // Called when an error is encountered.
- virtual void OnError( const boost::system::error_code & error ) {};
+ // Called when an error is encountered.
+ virtual void OnError( const boost::system::error_code& error )
+ {
+ };
- // Called when the connection has been disconnected
- virtual void OnDisconnect() {};
+ // Called when the connection has been disconnected
+ virtual void OnDisconnect()
+ {
+ };
- public:
- // Returns the Hive object.
- HivePtr GetHive();
+public:
+ // Returns the Hive object.
+ HivePtr GetHive();
- // Returns the socket object.
- boost::asio::ip::tcp::socket & GetSocket();
+ // Returns the socket object.
+ boost::asio::ip::tcp::socket& GetSocket();
- // Returns the strand object.
- boost::asio::strand & GetStrand();
+ // Returns the strand object.
+ boost::asio::strand& GetStrand();
- // Sets the application specific receive buffer size used. For stream
- // based protocols such as HTTP, you want this to be pretty large, like
- // 64kb. For packet based protocols, then it will be much smaller,
- // usually 512b - 8kb depending on the protocol. The default value is
- // 4kb.
- void SetReceiveBufferSize( int32_t size );
+ // Sets the application specific receive buffer size used. For stream
+ // based protocols such as HTTP, you want this to be pretty large, like
+ // 64kb. For packet based protocols, then it will be much smaller,
+ // usually 512b - 8kb depending on the protocol. The default value is
+ // 4kb.
+ void SetReceiveBufferSize( int32_t size );
- // Returns the size of the receive buffer size of the current object.
- int32_t GetReceiveBufferSize() const;
+ // Returns the size of the receive buffer size of the current object.
+ int32_t GetReceiveBufferSize() const;
- // Returns true if this object has an error associated with it.
- bool HasError();
+ // Returns true if this object has an error associated with it.
+ bool HasError();
- // Binds the socket to the specified interface.
- void Bind( const std::string & ip, uint16_t port );
+ // Binds the socket to the specified interface.
+ void Bind( const std::string& ip, uint16_t port );
- // Starts an a/synchronous connect.
- void Connect( const std::string & host, uint16_t port );
+ // Starts an a/synchronous connect.
+ void Connect( const std::string& host, uint16_t port );
- // Posts data to be sent to the connection.
- void Send( const std::vector< uint8_t > & buffer );
+ // Posts data to be sent to the connection.
+ void Send( const std::vector< uint8_t >& buffer );
- // Posts a recv for the connection to process. If total_bytes is 0, then
- // as many bytes as possible up to GetReceiveBufferSize() will be
- // waited for. If Recv is not 0, then the connection will wait for exactly
- // total_bytes before invoking OnRecv.
- void Recv( int32_t total_bytes = 0 );
+ // Posts a recv for the connection to process. If total_bytes is 0, then
+ // as many bytes as possible up to GetReceiveBufferSize() will be
+ // waited for. If Recv is not 0, then the connection will wait for exactly
+ // total_bytes before invoking OnRecv.
+ void Recv( int32_t total_bytes = 0 );
- // Posts an asynchronous disconnect event for the object to process.
- void Disconnect();
- };
+ // Posts an asynchronous disconnect event for the object to process.
+ void Disconnect();
+};
- //-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
- //-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
- template
- boost::shared_ptr< T > addServerToHive( const std::string& listenIp, uint32_t port, HivePtr pHive )
- {
- try
- {
- AcceptorPtr acceptor( new Acceptor( pHive ) );
- acceptor->Listen( listenIp, port );
- boost::shared_ptr< T > connection( new T( pHive, acceptor ) );
- acceptor->Accept( connection );
- return connection;
- }
- catch( std::runtime_error e )
- {
- throw;
- }
- }
+template< class T >
+boost::shared_ptr< T > addServerToHive( const std::string& listenIp, uint32_t port, HivePtr pHive )
+{
+ try
+ {
+ AcceptorPtr acceptor( new Acceptor( pHive ) );
+ acceptor->Listen( listenIp, port );
+ boost::shared_ptr< T > connection( new T( pHive, acceptor ) );
+ acceptor->Accept( connection );
+ return connection;
+ }
+ catch( std::runtime_error e )
+ {
+ throw;
+ }
+}
- }
+}
}
diff --git a/src/common/Network/GamePacketNew.h b/src/common/Network/GamePacketNew.h
index aae33508..6512000b 100644
--- a/src/common/Network/GamePacketNew.h
+++ b/src/common/Network/GamePacketNew.h
@@ -22,7 +22,7 @@ namespace Packets {
// Must forward define these in order to enable the compiler to produce the
// correct template functions.
-template < typename T, typename T1 >
+template< typename T, typename T1 >
class FFXIVIpcPacket;
template< class T >
@@ -38,34 +38,41 @@ using LobbyChannelPacket = FFXIVIpcPacket< T, ServerLobbyIpcType >;
template< class T, typename... Args >
boost::shared_ptr< ZoneChannelPacket< T > > makeZonePacket( Args... args )
{
- return boost::make_shared< ZoneChannelPacket< T > >( args... );
+ return boost::make_shared< ZoneChannelPacket< T > >( args... );
+}
+
+template< class T, typename... Args >
+boost::shared_ptr< T > makeWrappedPacket( Args... args )
+{
+ return boost::make_shared< T >( args... );
}
template< class T, typename... Args >
boost::shared_ptr< ChatChannelPacket< T > > makeChatPacket( Args... args )
{
- return boost::make_shared< ChatChannelPacket< T > >( args... );
+ return boost::make_shared< ChatChannelPacket< T > >( args... );
}
template< class T, typename... Args >
boost::shared_ptr< LobbyChannelPacket< T > > makeLobbyPacket( Args... args )
{
- return boost::make_shared< LobbyChannelPacket< T > >( args... );
+ return boost::make_shared< LobbyChannelPacket< T > >( args... );
}
/**
* The base implementation of a game packet. Needed for parsing packets.
*/
-template < typename T1 >
+template< typename T1 >
class FFXIVIpcPacketBase
{
public:
- virtual ~FFXIVIpcPacketBase() = default;
- /**
- * @brief Gets the IPC type of this packet. (Useful for determining the
- * type of a parsed packet.)
- */
- virtual T1 ipcType() = 0;
+ virtual ~FFXIVIpcPacketBase() = default;
+
+ /**
+ * @brief Gets the IPC type of this packet. (Useful for determining the
+ * type of a parsed packet.)
+ */
+ virtual T1 ipcType() = 0;
};
////////////////////////////////////////////////7
@@ -73,238 +80,256 @@ public:
class FFXIVPacketBase
{
public:
- FFXIVPacketBase() :
- m_segmentType( 0 )
- {
- initializeSegmentHeader();
- }
+ FFXIVPacketBase() :
+ m_segmentType( 0 )
+ {
+ initializeSegmentHeader();
+ }
- FFXIVPacketBase( uint16_t segmentType, uint32_t sourceActorId, uint32_t targetActorId ) :
- m_segmentType( segmentType )
- {
- initializeSegmentHeader();
- setSourceActor( sourceActorId );
- setTargetActor( targetActorId );
- }
+ FFXIVPacketBase( uint16_t segmentType, uint32_t sourceActorId, uint32_t targetActorId ) :
+ m_segmentType( segmentType )
+ {
+ initializeSegmentHeader();
+ setSourceActor( sourceActorId );
+ setTargetActor( targetActorId );
+ }
- std::size_t getSize() const
- {
- return m_segHdr.size;
- }
+ std::size_t getSize() const
+ {
+ return m_segHdr.size;
+ }
- virtual std::vector< uint8_t > getData() const
- {
- return {};
- }
+ virtual std::vector< uint8_t > getData() const
+ {
+ return {};
+ }
protected:
- /** The segment header */
- FFXIVARR_PACKET_SEGMENT_HEADER m_segHdr;
- uint16_t m_segmentType;
+ /** The segment header */
+ FFXIVARR_PACKET_SEGMENT_HEADER m_segHdr;
+ uint16_t m_segmentType;
public:
- virtual uint32_t getContentSize() { return 0; };
- virtual std::vector< uint8_t > getContent() { return{}; };
+ virtual uint32_t getContentSize()
+ {
+ return 0;
+ };
- /**
- * @brief Gets the segment type of this packet.
- */
- uint16_t getSegmentType() const
- {
- return m_segmentType;
- }
+ virtual std::vector< uint8_t > getContent()
+ {
+ return {};
+ };
- /**
- * @brief Sets the source actor id for this packet.
- * @param actorId The source actor id.
- */
- void setSourceActor( uint32_t actorId )
- {
- m_segHdr.source_actor = actorId;
- };
+ /**
+ * @brief Gets the segment type of this packet.
+ */
+ uint16_t getSegmentType() const
+ {
+ return m_segmentType;
+ }
- /**
- * @brief Gets the source actor id for this packet.
- * @return The source actor id.
- */
- uint32_t getSourceActor() const
- {
- return m_segHdr.source_actor;
- };
+ /**
+ * @brief Sets the source actor id for this packet.
+ * @param actorId The source actor id.
+ */
+ void setSourceActor( uint32_t actorId )
+ {
+ m_segHdr.source_actor = actorId;
+ };
- /**
- * @brief Sets the target actor id for this packet.
- * @param actorId The target actor id.
- */
- void setTargetActor( uint32_t actorId )
- {
- m_segHdr.target_actor = actorId;
- };
+ /**
+ * @brief Gets the source actor id for this packet.
+ * @return The source actor id.
+ */
+ uint32_t getSourceActor() const
+ {
+ return m_segHdr.source_actor;
+ };
- /**
- * @brief Gets the target actor id for this packet.
- */
- uint32_t getTargetActor( void ) const
- {
- return m_segHdr.target_actor;
- };
+ /**
+ * @brief Sets the target actor id for this packet.
+ * @param actorId The target actor id.
+ */
+ void setTargetActor( uint32_t actorId )
+ {
+ m_segHdr.target_actor = actorId;
+ };
- /** Initializes the fields of the segment header structure */
- virtual void initializeSegmentHeader( void )
- {
- // Zero out the structure.
- memset( &m_segHdr, 0, sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) );
+ /**
+ * @brief Gets the target actor id for this packet.
+ */
+ uint32_t getTargetActor( void ) const
+ {
+ return m_segHdr.target_actor;
+ };
- // Set the values of static fields.
- // The size must be the sum of the segment header and the content
- m_segHdr.size = sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) + getContentSize();
- m_segHdr.type = getSegmentType();
- }
+ /** Initializes the fields of the segment header structure */
+ virtual void initializeSegmentHeader( void )
+ {
+ // Zero out the structure.
+ memset( &m_segHdr, 0, sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) );
+
+ // Set the values of static fields.
+ // The size must be the sum of the segment header and the content
+ m_segHdr.size = sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) + getContentSize();
+ m_segHdr.type = getSegmentType();
+ }
};
-template < typename T, typename T1 >
-class FFXIVIpcPacket : public FFXIVIpcPacketBase< T1 >, public FFXIVPacketBase
+template< typename T, typename T1 >
+class FFXIVIpcPacket :
+ public FFXIVIpcPacketBase< T1 >, public FFXIVPacketBase
{
public:
- FFXIVIpcPacket< T, T1 >( uint32_t sourceActorId, uint32_t targetActorId ) :
- FFXIVPacketBase( 3, sourceActorId, targetActorId )
- {
- initialize();
- };
+ FFXIVIpcPacket< T, T1 >( uint32_t sourceActorId, uint32_t targetActorId ) :
+ FFXIVPacketBase( 3, sourceActorId, targetActorId )
+ {
+ initialize();
+ };
- FFXIVIpcPacket< T, T1 >( uint32_t sourceActorId ) :
- FFXIVPacketBase( 3, sourceActorId, sourceActorId )
- {
- initialize();
- };
+ FFXIVIpcPacket< T, T1 >( uint32_t sourceActorId ) :
+ FFXIVPacketBase( 3, sourceActorId, sourceActorId )
+ {
+ initialize();
+ };
- FFXIVIpcPacket< T, T1 >( const FFXIVARR_PACKET_RAW& rawPacket )
- {
- auto ipcHdrSize = sizeof( FFXIVARR_IPC_HEADER );
- auto copySize = std::min< uint32_t >( sizeof( T ), rawPacket.segHdr.size - ipcHdrSize );
+ FFXIVIpcPacket< T, T1 >( const FFXIVARR_PACKET_RAW& rawPacket )
+ {
+ auto ipcHdrSize = sizeof( FFXIVARR_IPC_HEADER );
+ auto copySize = std::min< uint32_t >( sizeof( T ), rawPacket.segHdr.size - ipcHdrSize );
- memcpy( &m_segHdr, &rawPacket.segHdr, sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) );
- memcpy( &m_data, &rawPacket.data[0] + ipcHdrSize, copySize );
+ memcpy( &m_segHdr, &rawPacket.segHdr, sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) );
+ memcpy( &m_data, &rawPacket.data[ 0 ] + ipcHdrSize, copySize );
- memset( &m_ipcHdr, 0, ipcHdrSize );
- m_ipcHdr.type = static_cast< ServerZoneIpcType >( m_data._ServerIpcType );
- }
+ memset( &m_ipcHdr, 0, ipcHdrSize );
+ m_ipcHdr.type = static_cast< ServerZoneIpcType >( m_data._ServerIpcType );
+ }
- uint32_t getContentSize() override
- {
- return sizeof( FFXIVARR_IPC_HEADER ) + sizeof( T );
- }
+ uint32_t getContentSize() override
+ {
+ return sizeof( FFXIVARR_IPC_HEADER ) + sizeof( T );
+ }
- std::vector< uint8_t > getContent() override
- {
- std::vector< uint8_t > content( getContentSize() );
- memcpy( content.data(), &m_ipcHdr, sizeof( FFXIVARR_IPC_HEADER ) );
- memcpy( content.data() + sizeof( FFXIVARR_IPC_HEADER ), &m_data, sizeof( T ) );
- return content;
- }
+ std::vector< uint8_t > getContent() override
+ {
+ std::vector< uint8_t > content( getContentSize() );
+ memcpy( content.data(), &m_ipcHdr, sizeof( FFXIVARR_IPC_HEADER ) );
+ memcpy( content.data() + sizeof( FFXIVARR_IPC_HEADER ), &m_data, sizeof( T ) );
+ return content;
+ }
- std::vector< uint8_t > getData() const override
- {
- auto segmentHeaderSize = sizeof( FFXIVARR_PACKET_SEGMENT_HEADER );
- auto ipcHeaderSize = sizeof( FFXIVARR_IPC_HEADER );
- auto dataSize = sizeof( m_data );
+ std::vector< uint8_t > getData() const override
+ {
+ auto segmentHeaderSize = sizeof( FFXIVARR_PACKET_SEGMENT_HEADER );
+ auto ipcHeaderSize = sizeof( FFXIVARR_IPC_HEADER );
+ auto dataSize = sizeof( m_data );
- std::vector< uint8_t > data( segmentHeaderSize + ipcHeaderSize + dataSize );
+ std::vector< uint8_t > data( segmentHeaderSize + ipcHeaderSize + dataSize );
- memcpy( &data[0], &m_segHdr, segmentHeaderSize );
- memcpy( &data[segmentHeaderSize], &m_ipcHdr, ipcHeaderSize );
- memcpy( &data[segmentHeaderSize + ipcHeaderSize], &m_data, dataSize );
+ memcpy( &data[ 0 ], &m_segHdr, segmentHeaderSize );
+ memcpy( &data[ segmentHeaderSize ], &m_ipcHdr, ipcHeaderSize );
+ memcpy( &data[ segmentHeaderSize + ipcHeaderSize ], &m_data, dataSize );
- return data;
- }
+ return data;
+ }
- virtual T1 ipcType()
- {
- return static_cast< T1 >( m_data._ServerIpcType );
- };
+ T1 ipcType() override
+ {
+ return static_cast< T1 >( m_data._ServerIpcType );
+ };
- /** Gets a reference to the underlying IPC data structure. */
- T& data() { return m_data; };
+ /** Gets a reference to the underlying IPC data structure. */
+ T& data()
+ {
+ return m_data;
+ };
- const T& data() const { return m_data; }
+ const T& data() const
+ {
+ return m_data;
+ }
protected:
- /** Initializes the fields of the header structures */
- virtual void initialize()
- {
- // Zero out the structures.
- memset( &m_ipcHdr, 0, sizeof( FFXIVARR_IPC_HEADER ) );
- memset( &m_data, 0, sizeof( T ) );
+ /** Initializes the fields of the header structures */
+ virtual void initialize()
+ {
+ // Zero out the structures.
+ memset( &m_ipcHdr, 0, sizeof( FFXIVARR_IPC_HEADER ) );
+ memset( &m_data, 0, sizeof( T ) );
- // The IPC type itself.
- m_ipcHdr.type = static_cast< ServerZoneIpcType >( m_data._ServerIpcType );
- m_ipcHdr.timestamp = static_cast< uint32_t >( Util::getTimeSeconds() );
- m_segHdr.size = sizeof( T ) + sizeof( FFXIVARR_IPC_HEADER ) + sizeof( FFXIVARR_PACKET_SEGMENT_HEADER );
- };
+ // The IPC type itself.
+ m_ipcHdr.type = static_cast< ServerZoneIpcType >( m_data._ServerIpcType );
+ m_ipcHdr.timestamp = static_cast< uint32_t >( Util::getTimeSeconds() );
+ m_segHdr.size = sizeof( T ) + sizeof( FFXIVARR_IPC_HEADER ) + sizeof( FFXIVARR_PACKET_SEGMENT_HEADER );
+ };
protected:
- /** The IPC packet header */
- FFXIVARR_IPC_HEADER m_ipcHdr;
- /** The underlying data portion of the packet as a structure */
- T m_data;
+ /** The IPC packet header */
+ FFXIVARR_IPC_HEADER m_ipcHdr;
+ /** The underlying data portion of the packet as a structure */
+ T m_data;
};
-class FFXIVRawPacket : public FFXIVPacketBase
+class FFXIVRawPacket :
+ public FFXIVPacketBase
{
public:
- FFXIVRawPacket( uint16_t type, uint32_t size, uint32_t sourceActorId, uint32_t targetActorId ) :
- m_data( std::vector< uint8_t >( size - sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) ) ),
- FFXIVPacketBase( type, sourceActorId, targetActorId )
- {
- initialize();
- m_segHdr.size = size;
- };
+ FFXIVRawPacket( uint16_t type, uint32_t size, uint32_t sourceActorId, uint32_t targetActorId ) :
+ m_data( std::vector< uint8_t >( size - sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) ) ),
+ FFXIVPacketBase( type, sourceActorId, targetActorId )
+ {
+ initialize();
+ m_segHdr.size = size;
+ };
- FFXIVRawPacket( char* data, uint16_t size ) :
- m_data( std::vector< uint8_t >( size ) )
- {
- auto segmentHdrSize = sizeof( FFXIVARR_PACKET_SEGMENT_HEADER );
+ FFXIVRawPacket( char* data, uint16_t size ) :
+ m_data( std::vector< uint8_t >( size ) )
+ {
+ auto segmentHdrSize = sizeof( FFXIVARR_PACKET_SEGMENT_HEADER );
- memcpy( &m_data[0], data + segmentHdrSize, size - segmentHdrSize );
- memcpy( &m_segHdr, data, segmentHdrSize );
- }
+ memcpy( &m_data[ 0 ], data + segmentHdrSize, size - segmentHdrSize );
+ memcpy( &m_segHdr, data, segmentHdrSize );
+ }
- uint32_t getContentSize() override
- {
- return m_data.size();
- }
+ uint32_t getContentSize() override
+ {
+ return m_data.size();
+ }
- std::vector< uint8_t > getContent() override
- {
- return m_data;
- }
+ std::vector< uint8_t > getContent() override
+ {
+ return m_data;
+ }
- virtual std::vector< uint8_t > getData() const override
- {
- std::vector< uint8_t > data( sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) + m_data.size() );
+ virtual std::vector< uint8_t > getData() const override
+ {
+ std::vector< uint8_t > data( sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) + m_data.size() );
- memcpy( &data[0], &m_segHdr, sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) );
- memcpy( &data[sizeof( FFXIVARR_PACKET_SEGMENT_HEADER )], &m_data[0], m_data.size() );
+ memcpy( &data[ 0 ], &m_segHdr, sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) );
+ memcpy( &data[ sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) ], &m_data[ 0 ], m_data.size() );
- return data;
- }
+ return data;
+ }
- /** Gets a reference to the underlying IPC data structure. */
- std::vector< uint8_t >& data() { return m_data; };
+ /** Gets a reference to the underlying IPC data structure. */
+ std::vector< uint8_t >& data()
+ {
+ return m_data;
+ };
protected:
- /** Initializes the fields of the header structures */
- virtual void initialize()
- {
- // Zero out the structures.
- memset( &m_data[0], 0, m_data.size() );
- };
+ /** Initializes the fields of the header structures */
+ virtual void initialize()
+ {
+ // Zero out the structures.
+ memset( &m_data[ 0 ], 0, m_data.size() );
+ };
protected:
- /** The underlying data portion of the packet as a structure */
- std::vector< uint8_t > m_data;
+ /** The underlying data portion of the packet as a structure */
+ std::vector< uint8_t > m_data;
};
diff --git a/src/common/Network/GamePacketParser.cpp b/src/common/Network/GamePacketParser.cpp
index 52cfe1a3..77add05c 100644
--- a/src/common/Network/GamePacketParser.cpp
+++ b/src/common/Network/GamePacketParser.cpp
@@ -5,122 +5,122 @@
using namespace Core::Network::Packets;
-PacketParseResult Core::Network::Packets::getHeader( const std::vector< uint8_t > &buffer,
+PacketParseResult Core::Network::Packets::getHeader( const std::vector< uint8_t >& buffer,
const uint32_t offset,
- FFXIVARR_PACKET_HEADER &header )
+ FFXIVARR_PACKET_HEADER& header )
{
- const auto headerSize = sizeof( FFXIVARR_PACKET_HEADER );
+ const auto headerSize = sizeof( FFXIVARR_PACKET_HEADER );
- // Check if we have enough bytes in the buffer.
- auto remainingBytes = buffer.size() - offset;
- if( remainingBytes < headerSize )
- return Incomplete;
+ // Check if we have enough bytes in the buffer.
+ auto remainingBytes = buffer.size() - offset;
+ if( remainingBytes < headerSize )
+ return Incomplete;
- // Copy packet header.
- memcpy( &header, buffer.data() + offset, headerSize );
+ // Copy packet header.
+ memcpy( &header, buffer.data() + offset, headerSize );
- if( !checkHeader(header) )
- return Malformed;
+ if( !checkHeader( header ) )
+ return Malformed;
- return Success;
+ return Success;
}
-PacketParseResult Core::Network::Packets::getSegmentHeader( const std::vector< uint8_t > &buffer,
+PacketParseResult Core::Network::Packets::getSegmentHeader( const std::vector< uint8_t >& buffer,
const uint32_t offset,
- FFXIVARR_PACKET_SEGMENT_HEADER &header )
+ FFXIVARR_PACKET_SEGMENT_HEADER& header )
{
- const auto headerSize = sizeof( FFXIVARR_PACKET_SEGMENT_HEADER );
+ const auto headerSize = sizeof( FFXIVARR_PACKET_SEGMENT_HEADER );
- // Check if we have enough bytes in the buffer.
- auto remainingBytes = buffer.size() - offset;
- if( remainingBytes < headerSize )
- return Incomplete;
+ // Check if we have enough bytes in the buffer.
+ auto remainingBytes = buffer.size() - offset;
+ if( remainingBytes < headerSize )
+ return Incomplete;
- // Copy segment header
- memcpy( &header, buffer.data() + offset, headerSize );
+ // Copy segment header
+ memcpy( &header, buffer.data() + offset, headerSize );
- return Success;
+ return Success;
}
-PacketParseResult Core::Network::Packets::getPackets( const std::vector< uint8_t > &buffer,
+PacketParseResult Core::Network::Packets::getPackets( const std::vector< uint8_t >& buffer,
const uint32_t offset,
- const FFXIVARR_PACKET_HEADER &packetHeader,
- std::vector< FFXIVARR_PACKET_RAW > &packets )
+ const FFXIVARR_PACKET_HEADER& packetHeader,
+ std::vector< FFXIVARR_PACKET_RAW >& packets )
{
- // sanity check: check there's enough bytes in the buffer
- const auto bytesExpected = packetHeader.size - sizeof( struct FFXIVARR_PACKET_HEADER );
- if( buffer.size() - offset < bytesExpected )
- return Incomplete;
+ // sanity check: check there's enough bytes in the buffer
+ const auto bytesExpected = packetHeader.size - sizeof( struct FFXIVARR_PACKET_HEADER );
+ if( buffer.size() - offset < bytesExpected )
+ return Incomplete;
- // Loop each message
- uint32_t count = 0;
- uint32_t bytesProcessed = 0;
- while( count < packetHeader.count )
- {
- FFXIVARR_PACKET_RAW rawPacket;
+ // Loop each message
+ uint32_t count = 0;
+ uint32_t bytesProcessed = 0;
+ while( count < packetHeader.count )
+ {
+ FFXIVARR_PACKET_RAW rawPacket;
- // Copy ipc packet message
- const auto packetResult = getPacket( buffer, offset + bytesProcessed, rawPacket );
- if( packetResult != Success )
- return packetResult;
+ // Copy ipc packet message
+ const auto packetResult = getPacket( buffer, offset + bytesProcessed, rawPacket );
+ if( packetResult != Success )
+ return packetResult;
- // NOTE: isn't rawPacket is allocated on stack?
- // why is okay to do this?
- packets.push_back( rawPacket );
+ // NOTE: isn't rawPacket is allocated on stack?
+ // why is okay to do this?
+ packets.push_back( rawPacket );
- // Add message size and count
- bytesProcessed += rawPacket.segHdr.size;
- count += 1;
- }
+ // Add message size and count
+ bytesProcessed += rawPacket.segHdr.size;
+ count += 1;
+ }
- // sanity check: check if we processed all bytes.
- // this check can fail if size of messages don't add up to size reported from packet header.
- if( bytesExpected != bytesProcessed )
- return Malformed;
+ // sanity check: check if we processed all bytes.
+ // this check can fail if size of messages don't add up to size reported from packet header.
+ if( bytesExpected != bytesProcessed )
+ return Malformed;
- return Success;
+ return Success;
}
-PacketParseResult Core::Network::Packets::getPacket( const std::vector< uint8_t > &buffer, const uint32_t offset,
- FFXIVARR_PACKET_RAW &packet )
+PacketParseResult Core::Network::Packets::getPacket( const std::vector< uint8_t >& buffer, const uint32_t offset,
+ FFXIVARR_PACKET_RAW& packet )
{
- // Copy segment header
- const auto headerResult = getSegmentHeader( buffer, offset, packet.segHdr );
- if( headerResult != Success )
- return headerResult;
+ // Copy segment header
+ const auto headerResult = getSegmentHeader( buffer, offset, packet.segHdr );
+ if( headerResult != Success )
+ return headerResult;
- // Check header sanity and it's size
- if( !checkSegmentHeader( packet.segHdr ) )
- return Malformed;
+ // Check header sanity and it's size
+ if( !checkSegmentHeader( packet.segHdr ) )
+ return Malformed;
- const auto dataOffset = offset + sizeof( struct FFXIVARR_PACKET_SEGMENT_HEADER );
- const auto dataSize = packet.segHdr.size;
+ const auto dataOffset = offset + sizeof( struct FFXIVARR_PACKET_SEGMENT_HEADER );
+ const auto dataSize = packet.segHdr.size;
- // Allocate data buffer and copy
- packet.data.resize( dataSize );
- memcpy( packet.data.data(), buffer.data() + dataOffset, dataSize );
+ // Allocate data buffer and copy
+ packet.data.resize( dataSize );
+ memcpy( packet.data.data(), buffer.data() + dataOffset, dataSize );
- return Success;
+ return Success;
}
-bool Core::Network::Packets::checkHeader( const FFXIVARR_PACKET_HEADER &header )
+bool Core::Network::Packets::checkHeader( const FFXIVARR_PACKET_HEADER& header )
{
- // Max size of the packet is capped at 1MB for now.
- if( header.size > 1 * 1024 * 1024 )
- return false;
+ // Max size of the packet is capped at 1MB for now.
+ if( header.size > 1 * 1024 * 1024 )
+ return false;
- // Max number of message is capped at 255 for now.
- if( header.count > 255 )
- return false;
+ // Max number of message is capped at 255 for now.
+ if( header.count > 255 )
+ return false;
- return true;
+ return true;
}
-bool Core::Network::Packets::checkSegmentHeader( const FFXIVARR_PACKET_SEGMENT_HEADER &header )
+bool Core::Network::Packets::checkSegmentHeader( const FFXIVARR_PACKET_SEGMENT_HEADER& header )
{
- // Max size of individual message is capped at 256KB for now.
- if( header.size > 256 * 1024 )
- return false;
+ // Max size of individual message is capped at 256KB for now.
+ if( header.size > 256 * 1024 )
+ return false;
- return true;
+ return true;
}
diff --git a/src/common/Network/GamePacketParser.h b/src/common/Network/GamePacketParser.h
index 6f870bd2..2a2ce58c 100644
--- a/src/common/Network/GamePacketParser.h
+++ b/src/common/Network/GamePacketParser.h
@@ -1,47 +1,49 @@
#ifndef _GAMEPACKETPARSER_H
#define _GAMEPACKETPARSER_H
+
#include "CommonNetwork.h"
namespace Core {
namespace Network {
namespace Packets {
- enum PacketParseResult
- {
- /// Dissected game packet successfully
- Success,
+enum PacketParseResult
+{
+ /// Dissected game packet successfully
+ Success,
- /// Buffer is too short to dissect a message.
- Incomplete,
+ /// Buffer is too short to dissect a message.
+ Incomplete,
- /// Invalid data detected.
- Malformed
- };
+ /// Invalid data detected.
+ Malformed
+};
- /// Read packet header from buffer with given offset.
- /// Buffer with given offset must be pointing to start of the new FFXIV packet.
- PacketParseResult getHeader( const std::vector< uint8_t > &buffer, const uint32_t offset,
- FFXIVARR_PACKET_HEADER &header );
+/// Read packet header from buffer with given offset.
+/// Buffer with given offset must be pointing to start of the new FFXIV packet.
+PacketParseResult getHeader( const std::vector< uint8_t >& buffer, const uint32_t offset,
+ FFXIVARR_PACKET_HEADER& header );
- /// Read packet header from buffer with given offset.
- /// Buffer with given offset must be pointing to start of FFXIVARR_PACKET_SEGMENT_HEADER data.
- /// Keep in mind that this function does check for data validity. Call checkSegmentHeader() if that's needed.
- PacketParseResult getSegmentHeader( const std::vector< uint8_t > &buffer, const uint32_t offset,
- FFXIVARR_PACKET_SEGMENT_HEADER &header );
+/// Read packet header from buffer with given offset.
+/// Buffer with given offset must be pointing to start of FFXIVARR_PACKET_SEGMENT_HEADER data.
+/// Keep in mind that this function does check for data validity. Call checkSegmentHeader() if that's needed.
+PacketParseResult getSegmentHeader( const std::vector< uint8_t >& buffer, const uint32_t offset,
+ FFXIVARR_PACKET_SEGMENT_HEADER& header );
- /// Read packets from the buffer with given offset.
- /// Buffer with given offset must be pointing to end of FFXIVARR_PACKET_HEADER data.
- PacketParseResult getPackets( const std::vector< uint8_t > &buffer, const uint32_t offset,
- const FFXIVARR_PACKET_HEADER &header,
- std::vector< Packets::FFXIVARR_PACKET_RAW > &packets );
+/// Read packets from the buffer with given offset.
+/// Buffer with given offset must be pointing to end of FFXIVARR_PACKET_HEADER data.
+PacketParseResult getPackets( const std::vector< uint8_t >& buffer, const uint32_t offset,
+ const FFXIVARR_PACKET_HEADER& header,
+ std::vector< Packets::FFXIVARR_PACKET_RAW >& packets );
- /// Read single packet from the buffer with given offset.
- /// Buffer with an offset must be pointing to start of FFXIVARR_PACKET_SEGMENT_HEADER data.
- PacketParseResult getPacket( const std::vector< uint8_t > &buffer, const uint32_t offset,
- FFXIVARR_PACKET_RAW &packet );
+/// Read single packet from the buffer with given offset.
+/// Buffer with an offset must be pointing to start of FFXIVARR_PACKET_SEGMENT_HEADER data.
+PacketParseResult getPacket( const std::vector< uint8_t >& buffer, const uint32_t offset,
+ FFXIVARR_PACKET_RAW& packet );
- bool checkHeader(const FFXIVARR_PACKET_HEADER &header);
- bool checkSegmentHeader(const FFXIVARR_PACKET_SEGMENT_HEADER &header);
+bool checkHeader( const FFXIVARR_PACKET_HEADER& header );
+
+bool checkSegmentHeader( const FFXIVARR_PACKET_SEGMENT_HEADER& header );
}
}
diff --git a/src/common/Network/Hive.cpp b/src/common/Network/Hive.cpp
index 41cf0e25..73c12895 100644
--- a/src/common/Network/Hive.cpp
+++ b/src/common/Network/Hive.cpp
@@ -4,58 +4,59 @@
#include "Hive.h"
namespace Core {
- namespace Network {
+namespace Network {
- //-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
- Hive::Hive()
- : m_work_ptr( new boost::asio::io_service::work( m_io_service ) ),
- m_shutdown( 0 )
- {
- }
+Hive::Hive()
+ :
+ m_work_ptr( new boost::asio::io_service::work( m_io_service ) ),
+ m_shutdown( 0 )
+{
+}
- Hive::~Hive()
- {
- }
+Hive::~Hive()
+{
+}
- boost::asio::io_service & Hive::GetService()
- {
- return m_io_service;
- }
+boost::asio::io_service& Hive::GetService()
+{
+ return m_io_service;
+}
- bool Hive::HasStopped()
- {
- return ( boost::interprocess::ipcdetail::atomic_cas32( &m_shutdown, 1, 1 ) == 1 );
- }
+bool Hive::HasStopped()
+{
+ return ( boost::interprocess::ipcdetail::atomic_cas32( &m_shutdown, 1, 1 ) == 1 );
+}
- void Hive::Poll()
- {
- m_io_service.poll();
- }
+void Hive::Poll()
+{
+ m_io_service.poll();
+}
- void Hive::Run()
- {
- m_io_service.run();
- }
+void Hive::Run()
+{
+ m_io_service.run();
+}
- void Hive::Stop()
- {
- if( boost::interprocess::ipcdetail::atomic_cas32( &m_shutdown, 1, 0 ) == 0 )
- {
- m_work_ptr.reset();
- m_io_service.run();
- m_io_service.stop();
- }
- }
+void Hive::Stop()
+{
+ if( boost::interprocess::ipcdetail::atomic_cas32( &m_shutdown, 1, 0 ) == 0 )
+ {
+ m_work_ptr.reset();
+ m_io_service.run();
+ m_io_service.stop();
+ }
+}
- void Hive::Reset()
- {
- if( boost::interprocess::ipcdetail::atomic_cas32( &m_shutdown, 0, 1 ) == 1 )
- {
- m_io_service.reset();
- m_work_ptr.reset( new boost::asio::io_service::work( m_io_service ) );
- }
- }
+void Hive::Reset()
+{
+ if( boost::interprocess::ipcdetail::atomic_cas32( &m_shutdown, 0, 1 ) == 1 )
+ {
+ m_io_service.reset();
+ m_work_ptr.reset( new boost::asio::io_service::work( m_io_service ) );
+ }
+}
- }
+}
}
\ No newline at end of file
diff --git a/src/common/Network/Hive.h b/src/common/Network/Hive.h
index 0448cfc8..4e77ae8a 100644
--- a/src/common/Network/Hive.h
+++ b/src/common/Network/Hive.h
@@ -6,49 +6,52 @@
#include
namespace Core {
- namespace Network {
+namespace Network {
- class Hive : public boost::enable_shared_from_this< Hive >
- {
- private:
- boost::asio::io_service m_io_service;
- boost::shared_ptr< boost::asio::io_service::work > m_work_ptr;
- volatile uint32_t m_shutdown;
+class Hive :
+ public boost::enable_shared_from_this< Hive >
+{
+private:
+ boost::asio::io_service m_io_service;
+ boost::shared_ptr< boost::asio::io_service::work > m_work_ptr;
+ volatile uint32_t m_shutdown;
- private:
- Hive( const Hive & rhs );
- Hive & operator =( const Hive & rhs );
+private:
+ Hive( const Hive& rhs );
- public:
- Hive();
- virtual ~Hive();
+ Hive& operator=( const Hive& rhs );
- // Returns the io_service of this object.
- boost::asio::io_service & GetService();
+public:
+ Hive();
- // Returns true if the Stop function has been called.
- bool HasStopped();
+ virtual ~Hive();
- // Polls the networking subsystem once from the current thread and
- // returns.
- void Poll();
+ // Returns the io_service of this object.
+ boost::asio::io_service& GetService();
- // Runs the networking system on the current thread. This function blocks
- // until the networking system is stopped, so do not call on a single
- // threaded application with no other means of being able to call Stop
- // unless you code in such logic.
- void Run();
+ // Returns true if the Stop function has been called.
+ bool HasStopped();
- // Stops the networking system. All work is finished and no more
- // networking interactions will be possible afterwards until Reset is called.
- void Stop();
+ // Polls the networking subsystem once from the current thread and
+ // returns.
+ void Poll();
- // Restarts the networking system after Stop as been called. A new work
- // object is created ad the shutdown flag is cleared.
- void Reset();
- };
+ // Runs the networking system on the current thread. This function blocks
+ // until the networking system is stopped, so do not call on a single
+ // threaded application with no other means of being able to call Stop
+ // unless you code in such logic.
+ void Run();
- }
+ // Stops the networking system. All work is finished and no more
+ // networking interactions will be possible afterwards until Reset is called.
+ void Stop();
+
+ // Restarts the networking system after Stop as been called. A new work
+ // object is created ad the shutdown flag is cleared.
+ void Reset();
+};
+
+}
}
//-----------------------------------------------------------------------------
#endif
\ No newline at end of file
diff --git a/src/common/Network/PacketContainer.cpp b/src/common/Network/PacketContainer.cpp
index 73f5c134..a51196a4 100644
--- a/src/common/Network/PacketContainer.cpp
+++ b/src/common/Network/PacketContainer.cpp
@@ -10,81 +10,81 @@
#include
Core::Network::Packets::PacketContainer::PacketContainer( uint32_t segmentTargetOverride ) :
- m_segmentTargetOverride( segmentTargetOverride )
+ m_segmentTargetOverride( segmentTargetOverride )
{
- memset( &m_ipcHdr, 0, sizeof( FFXIVARR_PACKET_HEADER ) );
- m_ipcHdr.size = sizeof( FFXIVARR_PACKET_HEADER );
- m_ipcHdr.count = 0;
+ memset( &m_ipcHdr, 0, sizeof( FFXIVARR_PACKET_HEADER ) );
+ m_ipcHdr.size = sizeof( FFXIVARR_PACKET_HEADER );
+ m_ipcHdr.count = 0;
}
Core::Network::Packets::PacketContainer::~PacketContainer()
{
- m_entryList.clear();
+ m_entryList.clear();
}
void Core::Network::Packets::PacketContainer::addPacket( Core::Network::Packets::FFXIVPacketBasePtr entry )
{
- m_entryList.push_back( entry );
+ m_entryList.push_back( entry );
- m_ipcHdr.size += entry->getSize();
- m_ipcHdr.count++;
+ m_ipcHdr.size += entry->getSize();
+ m_ipcHdr.count++;
}
void Core::Network::Packets::PacketContainer::fillSendBuffer( std::vector< uint8_t >& sendBuffer )
{
- std::vector< uint8_t > tempBuffer( m_ipcHdr.size );
- memset( &tempBuffer[0], 0, m_ipcHdr.size );
+ std::vector< uint8_t > tempBuffer( m_ipcHdr.size );
+ memset( &tempBuffer[ 0 ], 0, m_ipcHdr.size );
- using namespace std::chrono;
- auto ms = duration_cast< milliseconds >( system_clock::now().time_since_epoch() );
- uint64_t tick = ms.count();
- m_ipcHdr.unknown_0 = 0xE2465DFF41a05252;
- m_ipcHdr.unknown_8 = 0x75C4997B4D642A7F;
- m_ipcHdr.timestamp = tick;
- m_ipcHdr.unknown_20 = 1;
+ using namespace std::chrono;
+ auto ms = duration_cast< milliseconds >( system_clock::now().time_since_epoch() );
+ uint64_t tick = ms.count();
+ m_ipcHdr.unknown_0 = 0xE2465DFF41a05252;
+ m_ipcHdr.unknown_8 = 0x75C4997B4D642A7F;
+ m_ipcHdr.timestamp = tick;
+ m_ipcHdr.unknown_20 = 1;
- memcpy( &tempBuffer[0], &m_ipcHdr, sizeof( FFXIVARR_PACKET_HEADER ) );
+ memcpy( &tempBuffer[ 0 ], &m_ipcHdr, sizeof( FFXIVARR_PACKET_HEADER ) );
- auto it = m_entryList.begin();
- std::size_t offset = 0;
+ auto it = m_entryList.begin();
+ std::size_t offset = 0;
- if( m_entryList.size() > 1 )
- offset = 0;
+ if( m_entryList.size() > 1 )
+ offset = 0;
- for( ; it != m_entryList.end(); ++it )
- {
- auto pPacket = (*it);
+ for( ; it != m_entryList.end(); ++it )
+ {
+ auto pPacket = ( *it );
- if( m_segmentTargetOverride != 0 && pPacket->getSegmentType() == SEGMENTTYPE_IPC )
- {
- pPacket->setTargetActor( m_segmentTargetOverride );
- }
+ if( m_segmentTargetOverride != 0 && pPacket->getSegmentType() == SEGMENTTYPE_IPC )
+ {
+ pPacket->setTargetActor( m_segmentTargetOverride );
+ }
- auto data = pPacket->getData();
- memcpy( &tempBuffer[0] + sizeof( FFXIVARR_PACKET_HEADER ) + offset, &data[0], pPacket->getSize() );
- offset += pPacket->getSize();
- }
+ auto data = pPacket->getData();
+ memcpy( &tempBuffer[ 0 ] + sizeof( FFXIVARR_PACKET_HEADER ) + offset, &data[ 0 ], pPacket->getSize() );
+ offset += pPacket->getSize();
+ }
- sendBuffer.assign( &tempBuffer[0], &tempBuffer[0] + m_ipcHdr.size );
+ sendBuffer.assign( &tempBuffer[ 0 ], &tempBuffer[ 0 ] + m_ipcHdr.size );
}
std::string Core::Network::Packets::PacketContainer::toString()
{
- std::vector< uint8_t > tmpBuffer;
+ std::vector< uint8_t > tmpBuffer;
- fillSendBuffer( tmpBuffer );
+ fillSendBuffer( tmpBuffer );
- std::string str = "\n";
- for( uint32_t i = 0; i < m_ipcHdr.size; i++ )
- {
- str += boost::str( boost::format( "%|02X|" ) % static_cast< int32_t >( tmpBuffer[i] & 0xFF ) ) + " ";
+ std::string str = "\n";
+ for( uint32_t i = 0; i < m_ipcHdr.size; i++ )
+ {
+ str += boost::str( boost::format( "%|02X|" ) % static_cast< int32_t >( tmpBuffer[ i ] & 0xFF ) ) + " ";
- if( ( i + 1 ) % 16 == 0 )
- str += "\n";
- }
- str += "\n";
+ if( ( i + 1 ) % 16 == 0 )
+ str += "\n";
+ }
+ str += "\n";
- return str;
+ return str;
}
diff --git a/src/common/Network/PacketContainer.h b/src/common/Network/PacketContainer.h
index 373954bd..041c349b 100644
--- a/src/common/Network/PacketContainer.h
+++ b/src/common/Network/PacketContainer.h
@@ -17,21 +17,22 @@ typedef boost::shared_ptr< FFXIVPacketBase > FFXIVPacketBasePtr;
class PacketContainer
{
public:
- PacketContainer( uint32_t segmentTargetOverride = 0 );
- ~PacketContainer();
+ PacketContainer( uint32_t segmentTargetOverride = 0 );
- void addPacket( FFXIVPacketBasePtr entry );
+ ~PacketContainer();
- FFXIVARR_PACKET_HEADER m_ipcHdr;
+ void addPacket( FFXIVPacketBasePtr entry );
- std::vector< FFXIVPacketBasePtr > m_entryList;
+ FFXIVARR_PACKET_HEADER m_ipcHdr;
- std::string toString();
+ std::vector< FFXIVPacketBasePtr > m_entryList;
- void fillSendBuffer( std::vector< uint8_t >& sendBuffer );
+ std::string toString();
+
+ void fillSendBuffer( std::vector< uint8_t >& sendBuffer );
private:
- uint32_t m_segmentTargetOverride;
+ uint32_t m_segmentTargetOverride;
};
diff --git a/src/common/Network/PacketDef/Chat/ServerChatDef.h b/src/common/Network/PacketDef/Chat/ServerChatDef.h
index 19a22b97..50353c32 100644
--- a/src/common/Network/PacketDef/Chat/ServerChatDef.h
+++ b/src/common/Network/PacketDef/Chat/ServerChatDef.h
@@ -13,25 +13,27 @@ namespace Server {
* Structural representation of the packet sent by the server as response
* to a tell request
*/
-struct FFXIVIpcTell : FFXIVIpcBasePacket
+struct FFXIVIpcTell :
+ FFXIVIpcBasePacket< Tell >
{
- uint32_t u1;
- uint16_t u2a;
- uint16_t u2b;
- uint8_t preName;
- uint8_t u3a;
- uint8_t u3b; //Setting this to 1 seems to mark the tell as a GM tell (More research needed)
- char receipientName[32];
- char msg[1031];
+ uint32_t u1;
+ uint16_t u2a;
+ uint16_t u2b;
+ uint8_t preName;
+ uint8_t u3a;
+ uint8_t u3b; //Setting this to 1 seems to mark the tell as a GM tell (More research needed)
+ char receipientName[32];
+ char msg[1031];
};
- /**
+/**
* Structural representation of the packet sent by the server as response
* to a failed tell because of unavailable target player
*/
-struct FFXIVIpcTellErrNotFound : FFXIVIpcBasePacket
+struct FFXIVIpcTellErrNotFound :
+ FFXIVIpcBasePacket< TellErrNotFound >
{
- char receipientName[32];
+ char receipientName[32];
};
} /* Server */
diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h
index 72381f75..263fb39d 100644
--- a/src/common/Network/PacketDef/Ipcs.h
+++ b/src/common/Network/PacketDef/Ipcs.h
@@ -7,291 +7,306 @@ namespace Core {
namespace Network {
namespace Packets {
- ////////////////////////////////////////////////////////////////////////////////
- /// Lobby Connection IPC Codes
- /**
- * Server IPC Lobby Type Codes.
- */
- enum ServerLobbyIpcType : uint16_t
- {
- LobbyError = 0x0002,
- LobbyServiceAccountList = 0x000C,
- LobbyCharList = 0x000D,
- LobbyCharCreate = 0x000E,
- LobbyEnterWorld = 0x000F,
- LobbyServerList = 0x0015,
- LobbyRetainerList = 0x0017,
-
- };
-
- /**
- * Client IPC Lobby Type Codes.
- */
- enum ClientLobbyIpcType : uint16_t
- {
- ReqCharList = 0x0003,
- ReqEnterWorld = 0x0004,
- ReqServiceAccountList = 0x0005,
-
- ReqCharDelete = 0x000A,
- ReqCharCreate = 0x000B,
- };
-
- ////////////////////////////////////////////////////////////////////////////////
- /// Zone Connection IPC Codes
- /**
- * Server IPC Zone Type Codes.
- */
- enum ServerZoneIpcType : uint16_t
- {
-
- // static opcode ( the ones that rarely, if ever, change )
- Ping = 0x0065,
- Init = 0x0066,
-
- ActorFreeSpawn = 0x0191,
- InitZone = 0x019A,
-
- AddStatusEffect = 0x0141,
- ActorControl142 = 0x0142,
- ActorControl143 = 0x0143,
- ActorControl144 = 0x0144,
- UpdateHpMpTp = 0x0145,
-
- ///////////////////////////////////////////////////
-
- ChatBanned = 0x006B,
- Logout = 0x0077, // updated 4.3
- CFNotify = 0x0078,
- CFMemberStatus = 0x0079,
- CFDutyInfo = 0x007A,
- CFPlayerInNeed = 0x007F,
-
- SocialRequestError = 0x00AD,
+////////////////////////////////////////////////////////////////////////////////
+/// Lobby Connection IPC Codes
+/**
+* Server IPC Lobby Type Codes.
+*/
+enum ServerLobbyIpcType :
+ uint16_t
+{
+ LobbyError = 0x0002,
+ LobbyServiceAccountList = 0x000C,
+ LobbyCharList = 0x000D,
+ LobbyCharCreate = 0x000E,
+ LobbyEnterWorld = 0x000F,
+ LobbyServerList = 0x0015,
+ LobbyRetainerList = 0x0017,
+
+};
+
+/**
+* Client IPC Lobby Type Codes.
+*/
+enum ClientLobbyIpcType :
+ uint16_t
+{
+ ReqCharList = 0x0003,
+ ReqEnterWorld = 0x0004,
+ ReqServiceAccountList = 0x0005,
+
+ ReqCharDelete = 0x000A,
+ ReqCharCreate = 0x000B,
+};
+
+////////////////////////////////////////////////////////////////////////////////
+/// Zone Connection IPC Codes
+/**
+* Server IPC Zone Type Codes.
+*/
+enum ServerZoneIpcType :
+ uint16_t
+{
+
+ // static opcode ( the ones that rarely, if ever, change )
+ Ping = 0x0065,
+ Init = 0x0066,
+
+ ActorFreeSpawn = 0x0191,
+ InitZone = 0x019A,
+
+ AddStatusEffect = 0x0141,
+ ActorControl142 = 0x0142,
+ ActorControl143 = 0x0143,
+ ActorControl144 = 0x0144,
+ UpdateHpMpTp = 0x0145,
+
+ ///////////////////////////////////////////////////
+
+ ChatBanned = 0x006B,
+ Logout = 0x0077, // updated 4.3
+ CFNotify = 0x0078,
+ CFMemberStatus = 0x0079,
+ CFDutyInfo = 0x007A,
+ CFPlayerInNeed = 0x007F,
+
+ SocialRequestError = 0x00AD,
+
+ CFRegistered = 0x00B8, // updated 4.1
+ SocialRequestResponse = 0x00BB, // updated 4.1
+ CancelAllianceForming = 0x00C6, // updated 4.2
- CFRegistered = 0x00B8, // updated 4.1
- SocialRequestResponse = 0x00BB, // updated 4.1
- CancelAllianceForming = 0x00C6, // updated 4.2
- Playtime = 0x00F5, // updated 4.3
- Chat = 0x00F7, // updated 4.3
- SocialList = 0x00FD, // updated 4.3
- UpdateSearchInfo = 0x0100, // updated 4.3
- InitSearchInfo = 0x0101, // updated 4.3
+ Playtime = 0x00F5, // updated 4.3
+ Chat = 0x00F7, // updated 4.3
+ SocialList = 0x00FD, // updated 4.3
- ServerNotice = 0x0106, // updated 4.3
- SetOnlineStatus = 0x0107, // updated 4.3
+ UpdateSearchInfo = 0x0100, // updated 4.3
+ InitSearchInfo = 0x0101, // updated 4.3
+ ExamineSearchComment = 0x0102, // updated 4.1
- CountdownInitiate = 0x0111, // updated 4.3
- CountdownCancel = 0x0112, // updated 4.3
+ ServerNotice = 0x0106, // updated 4.3
+ SetOnlineStatus = 0x0107, // updated 4.3
- BlackList = 0x0115, // updated 4.3
- LogMessage = 0x00D0,
+ CountdownInitiate = 0x0111, // updated 4.3
+ CountdownCancel = 0x0112, // updated 4.3
- LinkshellList = 0x011C, // updated 4.3
- CharaFreeCompanyTag = 0x013B, // updated 4.3
- FreeCompanyBoardMsg = 0x013C, // updated 4.3
- FreeCompanyInfo = 0x013D, // updated 4.3
+ BlackList = 0x0115, // updated 4.3
- StatusEffectList = 0x014E, // updated 4.3
- Effect = 0x0151, // updated 4.3
- AoeEffect8 = 0x0154, // updated 4.3
- AoeEffect16 = 0x0155, // updated 4.3
- AoeEffect24 = 0x0156, // updated 4.3
- AoeEffect32 = 0x0157, // updated 4.3
- PersistantEffect = 0x0158, // updated 4.3
+ LogMessage = 0x00D0,
- GCAffiliation = 0x0162, // updated 4.3
+ LinkshellList = 0x011C, // updated 4.3
- PlayerSpawn = 0x0172, // updated 4.3
- NpcSpawn = 0x0173, // updated 4.3
- ActorMove = 0x0174, // updated 4.3
- ActorSetPos = 0x0176, // updated 4.3
+ ExamineFreeCompanyInfo = 0x013A, // updated 4.1
+ CharaFreeCompanyTag = 0x013B, // updated 4.3
+ FreeCompanyBoardMsg = 0x013C, // updated 4.3
+ FreeCompanyInfo = 0x013D, // updated 4.3
- ActorCast = 0x0178, // updated 4.3
+ StatusEffectList = 0x014E, // updated 4.3
+ Effect = 0x0151, // updated 4.3
+ AoeEffect8 = 0x0154, // updated 4.3
+ AoeEffect16 = 0x0155, // updated 4.3
+ AoeEffect24 = 0x0156, // updated 4.3
+ AoeEffect32 = 0x0157, // updated 4.3
+ PersistantEffect = 0x0158, // updated 4.3
- PartyList = 0x017A, // updated 4.3
- HateList = 0x017B, // updated 4.3
+ GCAffiliation = 0x0162, // updated 4.3
- ObjectSpawn = 0x017D, // updated 4.3
- ObjectDespawn = 0x017E, // updated 4.3
+ PlayerSpawn = 0x0172, // updated 4.3
+ NpcSpawn = 0x0173, // updated 4.3
+ ActorMove = 0x0174, // updated 4.3
+ ActorSetPos = 0x0176, // updated 4.3
- SetLevelSync = 0x017F, // updated 4.3
- SilentSetClassJob = 0x0180, // updated 4.3 - seems to be the case, not sure if it's actually used for anything
+ ActorCast = 0x0178, // updated 4.3
- InitUI = 0x0181, // updated 4.3
- PlayerStats = 0x0182, // updated 4.3
- ActorOwner = 0x0183, // updated 4.3 ?
- PlayerStateFlags = 0x0184, // updated 4.3
- PlayerClassInfo = 0x0185, // updated 4.3
- ModelEquip = 0x0186, // updated 4.3
+ PartyList = 0x017A, // updated 4.3
+ HateList = 0x017B, // updated 4.3
- UpdateClassInfo = 0x018A, // updated 4.3
+ ObjectSpawn = 0x017D, // updated 4.3
+ ObjectDespawn = 0x017E, // updated 4.3
- ItemInfo = 0x0190, // updated 4.3
- ContainerInfo = 0x0192, // updated 4.3
- InventoryTransactionFinish = 0x0193, // updated 4.3
- InventoryTransaction = 0x0194, // updated 4.3
- CurrencyCrystalInfo = 0x0195, // updated 4.3
- InventoryActionAck = 0x0197, // updated 4.3
- UpdateInventorySlot = 0x0198, // updated 4.3
+ SetLevelSync = 0x017F, // updated 4.3
+ SilentSetClassJob = 0x0180, // updated 4.3 - seems to be the case, not sure if it's actually used for anything
- EventPlay = 0x01A6, // updated 4.3
- EventOpenGilShop = 0x01AD, // updated 4.3
- DirectorPlayScene = 0x01AA, // updated 4.3
+ InitUI = 0x0181, // updated 4.3
+ PlayerStats = 0x0182, // updated 4.3
+ ActorOwner = 0x0183, // updated 4.3 ?
+ PlayerStateFlags = 0x0184, // updated 4.3
+ PlayerClassInfo = 0x0185, // updated 4.3
+ ModelEquip = 0x0186, // updated 4.3
+ Examine = 0x0187, // updated 4.3
+ CharaNameReq = 0x0189, // updated 4.3
+ UpdateClassInfo = 0x018A, // updated 4.3
- EventStart = 0x01AF, // updated 4.3
- EventFinish = 0x01B0, // updated 4.3
+ ItemInfo = 0x0190, // updated 4.3
+ ContainerInfo = 0x0192, // updated 4.3
+ InventoryTransactionFinish = 0x0193, // updated 4.3
+ InventoryTransaction = 0x0194, // updated 4.3
+ CurrencyCrystalInfo = 0x0195, // updated 4.3
+ InventoryActionAck = 0x0197, // updated 4.3
+ UpdateInventorySlot = 0x0198, // updated 4.3
- EventLinkshell = 0x1169,
+ EventPlay = 0x01A6, // updated 4.3
+ EventOpenGilShop = 0x01AD, // updated 4.3
+ DirectorPlayScene = 0x01AA, // updated 4.3
- QuestActiveList = 0x01C3, // updated 4.3
- QuestUpdate = 0x01C4, // updated 4.3
- QuestCompleteList = 0x01C5, // updated 4.3
+ EventStart = 0x01AF, // updated 4.3
+ EventFinish = 0x01B0, // updated 4.3
- QuestFinish = 0x01C6, // updated 4.3
- MSQTrackerComplete = 0x01C7, // updated 4.3
- MSQTrackerProgress = 0x01C8, // updated 4.3
+ EventLinkshell = 0x1169,
- QuestMessage = 0x01CE, // updated 4.3
+ QuestActiveList = 0x01C3, // updated 4.3
+ QuestUpdate = 0x01C4, // updated 4.3
+ QuestCompleteList = 0x01C5, // updated 4.3
- QuestTracker = 0x01D3, // updated 4.3
+ QuestFinish = 0x01C6, // updated 4.3
+ MSQTrackerComplete = 0x01C7, // updated 4.3
+ MSQTrackerProgress = 0x01C8, // updated 4.3
- Mount = 0x01E3, // updated 4.3
+ QuestMessage = 0x01CE, // updated 4.3
- DirectorVars = 0x01E5, // updated 4.3
+ QuestTracker = 0x01D3, // updated 4.3
- CFAvailableContents = 0x01FD, // updated 4.2
+ Mount = 0x01E3, // updated 4.3
- WeatherChange = 0x0200, // updated 4.3
- PlayerTitleList = 0x0201, // updated 4.3
- Discovery = 0x0202, // updated 4.3
+ DirectorVars = 0x01E5, // updated 4.3
- EorzeaTimeOffset = 0x0204, // updated 4.3
+ CFAvailableContents = 0x01FD, // updated 4.2
- EquipDisplayFlags = 0x0210, // updated 4.3
+ WeatherChange = 0x0200, // updated 4.3
+ PlayerTitleList = 0x0201, // updated 4.3
+ Discovery = 0x0202, // updated 4.3
- WardInfo = 0x0224, // updated 4.3
- WardHousingPermission = 0x022D, // updated 4.3
- WardYardInfo = 0x022F, // updated 4.3
+ EorzeaTimeOffset = 0x0204, // updated 4.3
- DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
- PerformNote = 0x0286, // updated 4.3
+ EquipDisplayFlags = 0x0210, // updated 4.3
- PrepareZoning = 0x0291, // updated 4.3
- ActorGauge = 0x0292, // updated 4.3
+ WardInfo = 0x0224, // updated 4.3
+ WardHousingPermission = 0x022D, // updated 4.3
+ WardYardInfo = 0x022F, // updated 4.3
+ DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
+ PerformNote = 0x0286, // updated 4.3
+ PrepareZoning = 0x0291, // updated 4.3
+ ActorGauge = 0x0292, // updated 4.3
- // Unknown IPC types that still need to be sent
- // TODO: figure all these out properly
- IPCTYPE_UNK_320 = 0x024C, // updated 4.3
- IPCTYPE_UNK_322 = 0x024E, // updated 4.3
- };
- /**
- * Client IPC Zone Type Codes.
- */
- enum ClientZoneIpcType : uint16_t
- {
+ // Unknown IPC types that still need to be sent
+ // TODO: figure all these out properly
+ IPCTYPE_UNK_320 = 0x024C, // updated 4.3
+ IPCTYPE_UNK_322 = 0x024E, // updated 4.3
- PingHandler = 0x0065, // unchanged 4.3
- InitHandler = 0x0066, // unchanged 4.3
+};
- FinishLoadingHandler = 0x0069, // unchanged 4.3
+/**
+* Client IPC Zone Type Codes.
+*/
+enum ClientZoneIpcType :
+ uint16_t
+{
- CFCommenceHandler = 0x006F,
+ PingHandler = 0x0065, // unchanged 4.3
+ InitHandler = 0x0066, // unchanged 4.3
+ FinishLoadingHandler = 0x0069, // unchanged 4.3
+ CFCommenceHandler = 0x006F,
- CFRegisterDuty = 0x0071,
- CFRegisterRoulette = 0x0072,
- PlayTimeHandler = 0x0073, // unchanged 4.3
- LogoutHandler = 0x0074, // unchanged 4.3
- CFDutyInfoHandler = 0x0078, // updated 4.2
+ CFRegisterDuty = 0x0071,
+ CFRegisterRoulette = 0x0072,
+ PlayTimeHandler = 0x0073, // unchanged 4.3
+ LogoutHandler = 0x0074, // unchanged 4.3
- SocialReqSendHandler = 0x00AE, // updated 4.1
- CreateCrossWorldLS = 0x00AF, // updated 4.3
+ CFDutyInfoHandler = 0x0078, // updated 4.2
- ChatHandler = 0x00D3, // updated 4.3
+ SocialReqSendHandler = 0x00AE, // updated 4.1
+ CreateCrossWorldLS = 0x00AF, // updated 4.3
- SocialListHandler = 0x00DB, // updated 4.3
- ReqSearchInfoHandler = 0x00E0, // updated 4.3
- SetSearchInfoHandler = 0x00DE, // updated 4.3
+ ChatHandler = 0x00D3, // updated 4.3
- BlackListHandler = 0x00EC, // updated 4.3
- PlayerSearchHandler = 0x00E2, // updated 4.2
+ SocialListHandler = 0x00DB, // updated 4.3
+ ReqSearchInfoHandler = 0x00E0, // updated 4.3
+ ReqExamineSearchCommentHandler = 0x00E1, // updated 4.1
- LinkshellListHandler = 0x00F4, // updated 4.3
+ SetSearchInfoHandler = 0x00DE, // updated 4.3
- SearchMarketboard = 0x0103, // updated 4.3
+ BlackListHandler = 0x00EC, // updated 4.3
+ PlayerSearchHandler = 0x00E2, // updated 4.2
- FcInfoReqHandler = 0x011A, // updated 4.2
+ LinkshellListHandler = 0x00F4, // updated 4.3
- ReqMarketWishList = 0x012C, // updated 4.3
+ SearchMarketboard = 0x0103, // updated 4.3
+ ReqExamineFcInfo = 0x010F, // updated 4.1
- ReqJoinNoviceNetwork = 0x0129, // updated 4.2
+ FcInfoReqHandler = 0x011A, // updated 4.2
- ReqCountdownInitiate = 0x0138, // updated 4.3
- ReqCountdownCancel = 0x0139, // updated 4.3
- ClearWaymarks = 0x013A, // updated 4.3
+ ReqMarketWishList = 0x012C, // updated 4.3
- ZoneLineHandler = 0x013C, // updated 4.3
- ClientTrigger = 0x013D, // updated 4.3
- DiscoveryHandler = 0x013E, // updated 4.3
+ ReqJoinNoviceNetwork = 0x0129, // updated 4.2
- AddWaymark = 0x013F, // updated 4.3
+ ReqCountdownInitiate = 0x0138, // updated 4.3
+ ReqCountdownCancel = 0x0139, // updated 4.3
+ ClearWaymarks = 0x013A, // updated 4.3
- SkillHandler = 0x0140, // updated 4.3
- GMCommand1 = 0x0141, // updated 4.3
- GMCommand2 = 0x0142, // updated 4.3
+ ZoneLineHandler = 0x013C, // updated 4.3
+ ClientTrigger = 0x013D, // updated 4.3
+ DiscoveryHandler = 0x013E, // updated 4.3
- UpdatePositionHandler = 0x0144, // updated 4.3
- UpdatePositionInstance = 0x0183, // updated 4.3
+ AddWaymark = 0x013F, // updated 4.3
- InventoryModifyHandler = 0x014B, // updated 4.3
+ SkillHandler = 0x0140, // updated 4.3
+ GMCommand1 = 0x0141, // updated 4.3
+ GMCommand2 = 0x0142, // updated 4.3
- TalkEventHandler = 0x0154, // updated 4.3
- EmoteEventHandler = 0x0155, // updated 4.3
- WithinRangeEventHandler = 0x0156, // updated 4.3
- OutOfRangeEventHandler = 0x0157, // updated 4.3
- EnterTeriEventHandler = 0x0158, // updated 4.3
+ UpdatePositionHandler = 0x0144, // updated 4.3
+ UpdatePositionInstance = 0x0183, // updated 4.3
- ReturnEventHandler = 0x015D, // updated 4.3
- TradeReturnEventHandler = 0x015E, // updated 4.3
+ InventoryModifyHandler = 0x014B, // updated 4.3
- LinkshellEventHandler = 0x0150, // updated 4.1 ??
- LinkshellEventHandler1 = 0x0151, // updated 4.1 ??
+ TalkEventHandler = 0x0154, // updated 4.3
+ EmoteEventHandler = 0x0155, // updated 4.3
+ WithinRangeEventHandler = 0x0156, // updated 4.3
+ OutOfRangeEventHandler = 0x0157, // updated 4.3
+ EnterTeriEventHandler = 0x0158, // updated 4.3
- PerformNoteHandler = 0x029B, // updated 4.3
+ ReturnEventHandler = 0x015D, // updated 4.3
+ TradeReturnEventHandler = 0x015E, // updated 4.3
- ReqEquipDisplayFlagsChange = 0x0178, // updated 4.3
+ LinkshellEventHandler = 0x0150, // updated 4.1 ??
+ LinkshellEventHandler1 = 0x0151, // updated 4.1 ??
+ PerformNoteHandler = 0x029B, // updated 4.3
- };
+ ReqEquipDisplayFlagsChange = 0x0178, // updated 4.3
- ////////////////////////////////////////////////////////////////////////////////
- /// Chat Connection IPC Codes
- /**
- * Server IPC Chat Type Codes.
- */
- enum ServerChatIpcType : uint16_t
- {
- Tell = 0x0064, // updated for sb
- TellErrNotFound = 0x0066,
- };
- /**
- * Client IPC Chat Type Codes.
- */
- enum ClientChatIpcType : uint16_t
- {
- TellReq = 0x0064,
- };
+};
+
+////////////////////////////////////////////////////////////////////////////////
+/// Chat Connection IPC Codes
+/**
+* Server IPC Chat Type Codes.
+*/
+enum ServerChatIpcType :
+ uint16_t
+{
+ Tell = 0x0064, // updated for sb
+ TellErrNotFound = 0x0066,
+};
+
+/**
+* Client IPC Chat Type Codes.
+*/
+enum ClientChatIpcType :
+ uint16_t
+{
+ TellReq = 0x0064,
+};
} /* Packets */
diff --git a/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h b/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h
index 92d1f304..05132749 100644
--- a/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h
+++ b/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h
@@ -9,133 +9,140 @@ namespace Network {
namespace Packets {
namespace Server {
-struct FFXIVIpcRetainerList : FFXIVIpcBasePacket
+struct FFXIVIpcRetainerList :
+ FFXIVIpcBasePacket< LobbyRetainerList >
{
- uint8_t padding[0x210];
+ uint8_t padding[0x210];
};
/**
*/
-struct FFXIVIpcServiceIdInfo : FFXIVIpcBasePacket
+struct FFXIVIpcServiceIdInfo :
+ FFXIVIpcBasePacket< LobbyServiceAccountList >
{
- uint64_t seq;
- uint8_t padding;
- uint8_t numServiceAccounts;
- uint8_t u1;
- uint8_t u2;
- uint32_t padding1;
+ uint64_t seq;
+ uint8_t padding;
+ uint8_t numServiceAccounts;
+ uint8_t u1;
+ uint8_t u2;
+ uint32_t padding1;
- struct
- {
- uint32_t id;
- uint32_t unknown;
- uint32_t index;
- char name[0x44];
- } serviceAccount[8];
+ struct
+ {
+ uint32_t id;
+ uint32_t unknown;
+ uint32_t index;
+ char name[0x44];
+ } serviceAccount[8];
};
-struct FFXIVIpcServerList : FFXIVIpcBasePacket
+struct FFXIVIpcServerList :
+ FFXIVIpcBasePacket< LobbyServerList >
{
- uint64_t seq;
- uint16_t final;
- uint16_t offset;
- uint32_t numServers;
- uint32_t padding;
- uint32_t padding1;
+ uint64_t seq;
+ uint16_t final;
+ uint16_t offset;
+ uint32_t numServers;
+ uint32_t padding;
+ uint32_t padding1;
- struct
- {
- uint16_t id;
- uint16_t index;
- uint32_t flags; // 0x02 = World not accepting new characters
- uint32_t padding1;
- uint32_t icon; // 2 = bonus XP star
- uint32_t padding2;
- char name[0x40];
- } server[6];
+ struct
+ {
+ uint16_t id;
+ uint16_t index;
+ uint32_t flags; // 0x02 = World not accepting new characters
+ uint32_t padding1;
+ uint32_t icon; // 2 = bonus XP star
+ uint32_t padding2;
+ char name[0x40];
+ } server[6];
};
-struct FFXIVIpcCharList : FFXIVIpcBasePacket
+struct FFXIVIpcCharList :
+ FFXIVIpcBasePacket< LobbyCharList >
{
- uint64_t seq;
- uint8_t counter; // current packet count * 4, count * 4 +1 on last packet.
- uint8_t numInPacket; // always 2??
- uint16_t padding;
- uint8_t unknown1;
- uint8_t unknown2;
- uint8_t unknown3;
- uint8_t unknown4; // 0x80 in case of last packet
- uint32_t unknown5[7];
- uint8_t unknown6; // 0x80 in case of last packet
- uint8_t veteranRank;
- uint8_t unknown7;
- uint8_t padding1;
- uint32_t daysSubscribed;
- uint32_t remainingDays;
- uint32_t daysToNextRank;
- uint16_t maxCharOnWorld;
- uint16_t unknown8;
- uint32_t entitledExpansion;
- uint32_t padding2;
+ uint64_t seq;
+ uint8_t counter; // current packet count * 4, count * 4 +1 on last packet.
+ uint8_t numInPacket; // always 2??
+ uint16_t padding;
+ uint8_t unknown1;
+ uint8_t unknown2;
+ uint8_t unknown3;
+ uint8_t unknown4; // 0x80 in case of last packet
+ uint32_t unknown5[7];
+ uint8_t unknown6; // 0x80 in case of last packet
+ uint8_t veteranRank;
+ uint8_t unknown7;
+ uint8_t padding1;
+ uint32_t daysSubscribed;
+ uint32_t remainingDays;
+ uint32_t daysToNextRank;
+ uint16_t maxCharOnWorld;
+ uint16_t unknown8;
+ uint32_t entitledExpansion;
+ uint32_t padding2;
- struct CharaDetails
- {
- uint32_t uniqueId;
- uint32_t padding;
- uint64_t contentId;
- uint32_t index;
- uint32_t padding2;
- uint16_t serverId;
- uint16_t serverId1;
- char nameChara[32];
- char nameServer[32];
- char nameServer1[32];
- char charDetailJson[1028];
- } charaDetails[2];
+ struct CharaDetails
+ {
+ uint32_t uniqueId;
+ uint32_t padding;
+ uint64_t contentId;
+ uint32_t index;
+ uint32_t padding2;
+ uint16_t serverId;
+ uint16_t serverId1;
+ char nameChara[32];
+ char nameServer[32];
+ char nameServer1[32];
+ char charDetailJson[1028];
+ } charaDetails[2];
};
-struct FFXIVIpcEnterWorld : FFXIVIpcBasePacket
+struct FFXIVIpcEnterWorld :
+ FFXIVIpcBasePacket< LobbyEnterWorld >
{
- uint64_t seq;
- uint32_t charId;
- uint32_t padding;
- uint64_t contentId;
- uint32_t padding2;
- char sid[66];
- uint16_t port;
- char host[48];
- uint64_t padding3;
- uint64_t padding4;
+ uint64_t seq;
+ uint32_t charId;
+ uint32_t padding;
+ uint64_t contentId;
+ uint32_t padding2;
+ char sid[66];
+ uint16_t port;
+ char host[48];
+ uint64_t padding3;
+ uint64_t padding4;
};
-struct FFXIVIpcCharCreate : FFXIVIpcBasePacket
+struct FFXIVIpcCharCreate :
+ FFXIVIpcBasePacket< LobbyCharCreate >
{
- uint64_t seq;
- uint8_t unknown;
- uint8_t unknown_2;
- uint8_t type;
- uint8_t padding;
- uint32_t unknown_3;
- uint32_t unknown_4;
- uint32_t unknown_5;
- uint64_t content_id;
- uint16_t unknown_7;
- uint16_t unknown_8;
- uint32_t unknown_9;
- uint16_t unknown_10;
- char name[32];
- char world[32];
+ uint64_t seq;
+ uint8_t unknown;
+ uint8_t unknown_2;
+ uint8_t type;
+ uint8_t padding;
+ uint32_t unknown_3;
+ uint32_t unknown_4;
+ uint32_t unknown_5;
+ uint64_t content_id;
+ uint16_t unknown_7;
+ uint16_t unknown_8;
+ uint32_t unknown_9;
+ uint16_t unknown_10;
+ char name[32];
+ char world[32];
};
-struct FFXIVIpcLobbyError : FFXIVIpcBasePacket
+struct FFXIVIpcLobbyError :
+ FFXIVIpcBasePacket< LobbyError >
{
- uint64_t seq;
- uint32_t error_id;
- uint32_t param;
- uint16_t message_id;
- char message[516];
+ uint64_t seq;
+ uint32_t error_id;
+ uint32_t param;
+ uint16_t message_id;
+ char message[516];
};
}
diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h
index 3b77195f..3f751d4f 100644
--- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h
+++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h
@@ -9,160 +9,178 @@ namespace Network {
namespace Packets {
namespace Client {
-struct FFXIVIpcGmCommand1 : FFXIVIpcBasePacket< GMCommand1 >
+struct FFXIVIpcGmCommand1 :
+ FFXIVIpcBasePacket< GMCommand1 >
{
- /* 0000 */ uint32_t commandId;
- /* 0004 */ uint32_t param1;
- /* 0008 */ uint32_t param2;
- /* 000C */ uint8_t unknown_C[0xC];
- /* 0018 */ uint32_t param3;
+ /* 0000 */ uint32_t commandId;
+ /* 0004 */ uint32_t param1;
+ /* 0008 */ uint32_t param2;
+ /* 000C */ uint8_t unknown_C[0xC];
+ /* 0018 */ uint32_t param3;
};
-struct FFXIVIpcGmCommand2 : FFXIVIpcBasePacket< GMCommand2 >
+struct FFXIVIpcGmCommand2 :
+ FFXIVIpcBasePacket< GMCommand2 >
{
- /* 0000 */ uint32_t commandId;
- /* 0004 */ char unk_4[0x10];
- /* 0014 */ char param1[0x20];
+ /* 0000 */ uint32_t commandId;
+ /* 0004 */ char unk_4[0x10];
+ /* 0014 */ char param1[0x20];
};
-struct FFXIVIpcClientTrigger : FFXIVIpcBasePacket< ClientTrigger >
+struct FFXIVIpcClientTrigger :
+ FFXIVIpcBasePacket< ClientTrigger >
{
- /* 0000 */ uint16_t commandId;
- /* 0002 */ uint8_t unk_2[2];
- /* 0004 */ uint32_t param11;
- /* 0008 */ uint32_t param12;
- /* 000C */ uint32_t param2;
- /* 0010 */ char unk_10[8];
- /* 0018 */ uint64_t param3;
+ /* 0000 */ uint16_t commandId;
+ /* 0002 */ uint8_t unk_2[2];
+ /* 0004 */ uint32_t param11;
+ /* 0008 */ uint32_t param12;
+ /* 000C */ uint32_t param2;
+ /* 0010 */ char unk_10[8];
+ /* 0018 */ uint64_t param3;
};
-struct FFXIVIpcSkillHandler : FFXIVIpcBasePacket< SkillHandler >
+struct FFXIVIpcSkillHandler :
+ FFXIVIpcBasePacket< SkillHandler >
{
- /* 0000 */ char pad_0000[1];
- /* 0001 */ uint8_t type;
- /* 0002 */ char pad_0002[2];
- /* 0004 */ uint32_t actionId;
- /* 0008 */ uint32_t useCount;
- /* 000C */ char pad_000C[4];
- /* 0010 */ uint64_t targetId;
+ /* 0000 */ char pad_0000[1];
+ /* 0001 */ uint8_t type;
+ /* 0002 */ char pad_0002[2];
+ /* 0004 */ uint32_t actionId;
+ /* 0008 */ uint32_t useCount;
+ /* 000C */ char pad_000C[4];
+ /* 0010 */ uint64_t targetId;
};
-struct FFXIVIpcZoneLineHandler : FFXIVIpcBasePacket< ZoneLineHandler >
+struct FFXIVIpcZoneLineHandler :
+ FFXIVIpcBasePacket< ZoneLineHandler >
{
- /* 0000 */ uint32_t zoneLineId;
+ /* 0000 */ uint32_t zoneLineId;
};
-struct FFXIVIpcDiscoveryHandler : FFXIVIpcBasePacket< DiscoveryHandler >
+struct FFXIVIpcDiscoveryHandler :
+ FFXIVIpcBasePacket< DiscoveryHandler >
{
- /* 0000 */ uint32_t positionRef;
+ /* 0000 */ uint32_t positionRef;
};
-struct FFXIVIpcEventHandlerReturn : FFXIVIpcBasePacket< ReturnEventHandler >
+struct FFXIVIpcEventHandlerReturn :
+ FFXIVIpcBasePacket< ReturnEventHandler >
{
- /* 0000 */ uint32_t eventId;
- /* 0004 */ uint16_t scene;
- /* 0006 */ uint16_t param1;
- /* 0008 */ uint16_t param2;
- /* 000A */ char pad_000A[2];
- /* 000C */ uint16_t param3;
- /* 000E */ char pad_000E[2];
- /* 0010 */ uint16_t param4;
+ /* 0000 */ uint32_t eventId;
+ /* 0004 */ uint16_t scene;
+ /* 0006 */ uint16_t param1;
+ /* 0008 */ uint16_t param2;
+ /* 000A */ char pad_000A[2];
+ /* 000C */ uint16_t param3;
+ /* 000E */ char pad_000E[2];
+ /* 0010 */ uint16_t param4;
};
-struct FFXIVIpcEnterTerritoryHandler : FFXIVIpcBasePacket< EnterTeriEventHandler >
+struct FFXIVIpcEnterTerritoryHandler :
+ FFXIVIpcBasePacket< EnterTeriEventHandler >
{
- /* 0000 */ uint32_t eventId;
- /* 0004 */ uint16_t param1;
- /* 0006 */ uint16_t param2;
+ /* 0000 */ uint32_t eventId;
+ /* 0004 */ uint16_t param1;
+ /* 0006 */ uint16_t param2;
};
-struct FFXIVIpcEventHandlerOutsideRange : FFXIVIpcBasePacket< OutOfRangeEventHandler >
+struct FFXIVIpcEventHandlerOutsideRange :
+ FFXIVIpcBasePacket< OutOfRangeEventHandler >
{
- /* 0000 */ uint32_t param1;
- /* 0004 */ uint32_t eventId;
- /* 0008 */ Common::FFXIVARR_POSITION3 position;
+ /* 0000 */ uint32_t param1;
+ /* 0004 */ uint32_t eventId;
+ /* 0008 */ Common::FFXIVARR_POSITION3 position;
};
-struct FFXIVIpcEventHandlerWithinRange : FFXIVIpcBasePacket< WithinRangeEventHandler >
+struct FFXIVIpcEventHandlerWithinRange :
+ FFXIVIpcBasePacket< WithinRangeEventHandler >
{
- /* 0000 */ uint32_t param1;
- /* 0004 */ uint32_t eventId;
- /* 0008 */ Common::FFXIVARR_POSITION3 position;
+ /* 0000 */ uint32_t param1;
+ /* 0004 */ uint32_t eventId;
+ /* 0008 */ Common::FFXIVARR_POSITION3 position;
};
-struct FFXIVIpcEventHandlerEmote : FFXIVIpcBasePacket< EmoteEventHandler >
+struct FFXIVIpcEventHandlerEmote :
+ FFXIVIpcBasePacket< EmoteEventHandler >
{
- /* 0000 */ uint64_t actorId;
- /* 0008 */ uint32_t eventId;
- /* 000C */ uint16_t emoteId;
+ /* 0000 */ uint64_t actorId;
+ /* 0008 */ uint32_t eventId;
+ /* 000C */ uint16_t emoteId;
};
-struct FFXIVIpcEventHandlerTalk : FFXIVIpcBasePacket< TalkEventHandler >
+struct FFXIVIpcEventHandlerTalk :
+ FFXIVIpcBasePacket< TalkEventHandler >
{
- /* 0000 */ uint64_t actorId;
- /* 0008 */ uint32_t eventId;
+ /* 0000 */ uint64_t actorId;
+ /* 0008 */ uint32_t eventId;
};
-struct FFXIVIpcPingHandler : FFXIVIpcBasePacket< PingHandler >
+struct FFXIVIpcPingHandler :
+ FFXIVIpcBasePacket< PingHandler >
{
- /* 0000 */ uint32_t timestamp; // maybe lol..
+ /* 0000 */ uint32_t timestamp; // maybe lol..
};
-struct FFXIVIpcSetSearchInfo : FFXIVIpcBasePacket< SetSearchInfoHandler >
+struct FFXIVIpcSetSearchInfo :
+ FFXIVIpcBasePacket< SetSearchInfoHandler >
{
- union
- {
- /* 0000 */ uint64_t status;
- struct
- {
- /* 0000 */ uint32_t status1;
- /* 0004 */ uint32_t status2;
- };
- };
+ union
+ {
+ /* 0000 */ uint64_t status;
+ struct
+ {
+ /* 0000 */ uint32_t status1;
+ /* 0004 */ uint32_t status2;
+ };
+ };
- /* 0008 */ char pad_0008[9];
- /* 0011 */ Common::ClientLanguage language;
- /* 0012 */ char searchComment[193];
+ /* 0008 */ char pad_0008[9];
+ /* 0011 */ Common::ClientLanguage language;
+ /* 0012 */ char searchComment[193];
};
-struct FFXIVIpcTellHandler : FFXIVIpcBasePacket< TellReq >
+struct FFXIVIpcTellHandler :
+ FFXIVIpcBasePacket< TellReq >
{
- /* 0000 */ char pad_0000[4];
- /* 0004 */ char targetPCName[32];
- /* 0024 */ char message[1012];
+ /* 0000 */ char pad_0000[4];
+ /* 0004 */ char targetPCName[32];
+ /* 0024 */ char message[1012];
};
-struct FFXIVIpcChatHandler : FFXIVIpcBasePacket< ChatHandler >
+struct FFXIVIpcChatHandler :
+ FFXIVIpcBasePacket< ChatHandler >
{
- /* 0000 */ char pad_0000[4];
- /* 0004 */ uint32_t sourceId;
- /* 0008 */ char pad_0008[16];
- /* 0018 */ Common::ChatType chatType;
- /* 001A */ char message[1012];
+ /* 0000 */ char pad_0000[4];
+ /* 0004 */ uint32_t sourceId;
+ /* 0008 */ char pad_0008[16];
+ /* 0018 */ Common::ChatType chatType;
+ /* 001A */ char message[1012];
};
-struct FFXIVIpcLinkshellEventHandler : FFXIVIpcBasePacket< LinkshellEventHandler >
+struct FFXIVIpcLinkshellEventHandler :
+ FFXIVIpcBasePacket< LinkshellEventHandler >
{
- /* 0000 */ uint32_t eventId;
- /* 0004 */ uint16_t scene;
- /* 0006 */ char pad_0006[1];
- /* 0007 */ char lsName[21];
+ /* 0000 */ uint32_t eventId;
+ /* 0004 */ uint16_t scene;
+ /* 0006 */ char pad_0006[1];
+ /* 0007 */ char lsName[21];
};
-struct FFXIVIpcInventoryModifyHandler : FFXIVIpcBasePacket< InventoryModifyHandler >
+struct FFXIVIpcInventoryModifyHandler :
+ FFXIVIpcBasePacket< InventoryModifyHandler >
{
- /* 0000 */ uint32_t seq;
- /* 0004 */ Common::InventoryOperation action;
- /* 0005 */ char pad_0005[3];
- /* 0008 */ uint16_t splitCount; // todo: check packet handler in game and see if this is sent as a u16 or u32
- /* 000A */ char pad_000A[2];
- /* 000C */ uint16_t fromContainer;
- /* 000E */ char pad_000E[2];
- /* 0010 */ uint8_t fromSlot;
- /* 0011 */ char pad_0011[15];
- /* 0020 */ uint16_t toContainer;
- /* 0022 */ char pad_0022[2];
- /* 0024 */ uint8_t toSlot;
+ /* 0000 */ uint32_t seq;
+ /* 0004 */ Common::InventoryOperation action;
+ /* 0005 */ char pad_0005[7];
+ /* 000C */ uint16_t fromContainer;
+ /* 000E */ char pad_000E[2];
+ /* 0010 */ uint8_t fromSlot;
+ /* 0011 */ char pad_0011[15];
+ /* 0020 */ uint16_t toContainer;
+ /* 0022 */ char pad_0022[2];
+ /* 0024 */ uint8_t toSlot;
+ /* 0025 */ uint8_t pad_0025[3];
+ /* 0028 */ uint32_t splitCount;
};
}
diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h
index 6524d7fc..83c639cf 100644
--- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h
+++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h
@@ -19,59 +19,65 @@ namespace Server {
* Structural representation of the packet sent by the server as response
* to a ping packet
*/
-struct FFXIVIpcPing : FFXIVIpcBasePacket
+struct FFXIVIpcPing :
+ FFXIVIpcBasePacket< Ping >
{
- /* 0000 */ uint64_t timeInMilliseconds;
- /* 0008 */ uint8_t unknown_8[0x38];
+ /* 0000 */ uint64_t timeInMilliseconds;
+ /* 0008 */ uint8_t unknown_8[0x38];
};
/**
* Structural representation of the packet sent by the server as response
* to a ping packet
*/
-struct FFXIVIpcInit : FFXIVIpcBasePacket
+struct FFXIVIpcInit :
+ FFXIVIpcBasePacket< Init >
{
- uint64_t unknown;
- uint32_t charId;
- uint32_t unknown1;
+ uint64_t unknown;
+ uint32_t charId;
+ uint32_t unknown1;
};
/**
* Structural representation of the packet sent by the server
* carrying chat messages
*/
-struct FFXIVIpcChat : FFXIVIpcBasePacket
+struct FFXIVIpcChat :
+ FFXIVIpcBasePacket< Chat >
{
- /* 0000 */ uint8_t padding[14]; //Maybe this is SubCode, or some kind of talker ID...
- Common::ChatType chatType;
- char name[32];
- char msg[1012];
+ /* 0000 */ uint8_t padding[14]; //Maybe this is SubCode, or some kind of talker ID...
+ Common::ChatType chatType;
+ char name[32];
+ char msg[1012];
};
-struct FFXIVIpcChatBanned : FFXIVIpcBasePacket
+struct FFXIVIpcChatBanned :
+ FFXIVIpcBasePacket< ChatBanned >
{
- uint8_t padding[4]; // I was not sure reinterpreting ZST is valid behavior in C++.
- // client doesn't care about the data (zero sized) for this opcode anyway.
+ uint8_t padding[4]; // I was not sure reinterpreting ZST is valid behavior in C++.
+ // client doesn't care about the data (zero sized) for this opcode anyway.
};
/**
* Structural representation of the packet sent by the server
* carrying chat messages
*/
-struct FFXIVIpcLogout : FFXIVIpcBasePacket
+struct FFXIVIpcLogout :
+ FFXIVIpcBasePacket< Logout >
{
- uint32_t flags1;
- uint32_t flags2;
+ uint32_t flags1;
+ uint32_t flags2;
};
/**
* Structural representation of the packet sent by the server
* sent to show the play time
*/
-struct FFXIVIpcPlayTime : FFXIVIpcBasePacket
+struct FFXIVIpcPlayTime :
+ FFXIVIpcBasePacket< Playtime >
{
- uint32_t playTimeInMinutes;
- uint32_t padding;
+ uint32_t playTimeInMinutes;
+ uint32_t padding;
};
@@ -79,219 +85,264 @@ struct FFXIVIpcPlayTime : FFXIVIpcBasePacket
* Structural representation of the packet sent by the server
* with a list of players ( party list | friend list | search results )
*/
-struct PlayerEntry {
- uint64_t contentId;
- uint8_t bytes[12];
- uint16_t zoneId;
- uint16_t zoneId1;
- char bytes1[8];
- uint64_t onlineStatusMask;
- uint8_t classJob;
- uint8_t padding;
- uint8_t level;
- uint8_t padding1;
- uint16_t padding2;
- uint8_t one;
- char name[0x20];
- char fcTag[9];
+struct PlayerEntry
+{
+ uint64_t contentId;
+ uint8_t bytes[12];
+ uint16_t zoneId;
+ uint16_t zoneId1;
+ char bytes1[8];
+ uint64_t onlineStatusMask;
+ uint8_t classJob;
+ uint8_t padding;
+ uint8_t level;
+ uint8_t padding1;
+ uint16_t padding2;
+ uint8_t one;
+ char name[0x20];
+ char fcTag[9];
};
-struct FFXIVIpcSocialList : FFXIVIpcBasePacket
+struct FFXIVIpcSocialList :
+ FFXIVIpcBasePacket< SocialList >
{
- uint32_t padding;
- uint32_t padding1;
- uint32_t padding2;
- uint8_t type;
- uint8_t sequence;
- uint16_t padding3;
+ uint32_t padding;
+ uint32_t padding1;
+ uint32_t padding2;
+ uint8_t type;
+ uint8_t sequence;
+ uint16_t padding3;
- PlayerEntry entries[10];
+ PlayerEntry entries[10];
};
-struct FFXIVIpcSetSearchInfo : FFXIVIpcBasePacket
+struct FFXIVIpcSetSearchInfo :
+ FFXIVIpcBasePacket< UpdateSearchInfo >
{
- uint64_t onlineStatusFlags;
- uint64_t unknown;
- uint32_t unknown1;
- uint8_t padding;
- uint8_t selectRegion;
- char searchMessage[193];
- uint8_t padding2;
+ uint64_t onlineStatusFlags;
+ uint64_t unknown;
+ uint32_t unknown1;
+ uint8_t padding;
+ uint8_t selectRegion;
+ char searchMessage[193];
+ uint8_t padding2;
};
-struct FFXIVIpcInitSearchInfo : FFXIVIpcBasePacket
+struct FFXIVIpcInitSearchInfo :
+ FFXIVIpcBasePacket< InitSearchInfo >
{
- uint64_t onlineStatusFlags;
- uint64_t unknown;
- uint8_t unknown1;
- uint8_t selectRegion;
- char searchMessage[193];
- char padding[5];
+ uint64_t onlineStatusFlags;
+ uint64_t unknown;
+ uint8_t unknown1;
+ uint8_t selectRegion;
+ char searchMessage[193];
+ char padding[5];
+};
+
+struct FFXIVIpcExamineSearchComment :
+ FFXIVIpcBasePacket< ExamineSearchComment >
+{
+ uint32_t charId;
+ // packet only has 196 bytes after the charid
+ // likely utf8
+ char searchComment[195];
+ char padding;
};
/**
* Structural representation of the packet sent by the server
* to display a server notice message
*/
-struct FFXIVIpcServerNotice : FFXIVIpcBasePacket
+struct FFXIVIpcServerNotice :
+ FFXIVIpcBasePacket< ServerNotice >
{
- /* 0000 */ uint8_t padding;
- char message[307];
+ /* 0000 */ uint8_t padding;
+ char message[307];
};
-struct FFXIVIpcSetOnlineStatus : FFXIVIpcBasePacket
+struct FFXIVIpcSetOnlineStatus :
+ FFXIVIpcBasePacket< SetOnlineStatus >
{
- uint64_t onlineStatusFlags;
+ uint64_t onlineStatusFlags;
};
-struct FFXIVIpcBlackList : FFXIVIpcBasePacket
+struct FFXIVIpcBlackList :
+ FFXIVIpcBasePacket< BlackList >
{
- struct BlEntry
- {
- uint64_t contentId;
- char name[32];
- } entry[20];
- uint8_t padding;
- uint8_t padding1;
- uint16_t sequence;
- uint32_t padding2;
+ struct BlEntry
+ {
+ uint64_t contentId;
+ char name[32];
+ } entry[20];
+ uint8_t padding;
+ uint8_t padding1;
+ uint16_t sequence;
+ uint32_t padding2;
};
-struct FFXIVIpcLogMessage : FFXIVIpcBasePacket
+struct FFXIVIpcLogMessage :
+ FFXIVIpcBasePacket< LogMessage >
{
- uint32_t field_0;
- uint32_t field_4;
- uint32_t field_8;
- uint32_t field_12;
- uint32_t category;
- uint32_t logMessage;
- uint8_t field_24;
- uint8_t field_25;
- uint8_t field_26[32];
- uint32_t field_58;
+ uint32_t field_0;
+ uint32_t field_4;
+ uint32_t field_8;
+ uint32_t field_12;
+ uint32_t category;
+ uint32_t logMessage;
+ uint8_t field_24;
+ uint8_t field_25;
+ uint8_t field_26[32];
+ uint32_t field_58;
};
-struct FFXIVIpcLinkshellList : FFXIVIpcBasePacket
+struct FFXIVIpcLinkshellList :
+ FFXIVIpcBasePacket< LinkshellList >
{
- struct LsEntry
- {
- uint64_t lsId;
- uint64_t unknownId;
- uint8_t unknown;
- uint8_t rank;
- uint16_t padding;
- uint8_t lsName[20];
- } entry[8];
+ struct LsEntry
+ {
+ uint64_t lsId;
+ uint64_t unknownId;
+ uint8_t unknown;
+ uint8_t rank;
+ uint16_t padding;
+ uint8_t lsName[20];
+ } entry[8];
};
-struct FFXIVIpcStatusEffectList : FFXIVIpcBasePacket
+struct FFXIVIpcExamineFreeCompanyInfo :
+ FFXIVIpcBasePacket< ExamineFreeCompanyInfo >
{
- uint8_t classId;
- uint8_t level1;
- uint16_t level;
- uint32_t current_hp;
- uint32_t max_hp;
- uint16_t current_mp;
- uint16_t max_mp;
- uint16_t currentTp;
- uint16_t unknown1;
- Common::StatusEffect effect[30];
- uint32_t padding;
+ char unknown[0x20]; // likely fc allegiance/icon/housing info etc
+ uint32_t charId;
+ uint32_t fcTimeCreated;
+ char unknown2[0x10];
+ uint16_t unknown3;
+ char fcName[0x14]; // 20 char limit
+ uint16_t padding;
+ char fcTag[0x05]; // 5 char tag limit
+ uint16_t padding2; // null terminator?
+ char fcLeader[0x20]; // leader name (32 bytes)
+ char fcSlogan[192]; // source: https://ffxiv.gamerescape.com/wiki/Free_Company (packet cap confirms this size also)
+ char padding3; // null terminator?
+ char fcEstateProfile[20]; // todo: size needs confirmation
+ uint32_t padding4;
};
-struct FFXIVGCAffiliation : FFXIVIpcBasePacket
+struct FFXIVIpcStatusEffectList :
+ FFXIVIpcBasePacket< StatusEffectList >
{
- uint8_t gcId;
- uint8_t gcRank[3];
+ uint8_t classId;
+ uint8_t level1;
+ uint16_t level;
+ uint32_t current_hp;
+ uint32_t max_hp;
+ uint16_t current_mp;
+ uint16_t max_mp;
+ uint16_t currentTp;
+ uint16_t unknown1;
+ Common::StatusEffect effect[30];
+ uint32_t padding;
+};
+
+struct FFXIVGCAffiliation :
+ FFXIVIpcBasePacket< GCAffiliation >
+{
+ uint8_t gcId;
+ uint8_t gcRank[3];
};
/**
* Structural representation of the packet sent by the server
* add a status effect
*/
-struct FFXIVIpcAddStatusEffect : FFXIVIpcBasePacket
+struct FFXIVIpcAddStatusEffect :
+ FFXIVIpcBasePacket< AddStatusEffect >
{
- uint32_t unknown;
- uint32_t actor_id;
- uint8_t unknown1;
- uint8_t unknown2;
- uint16_t padding1;
- uint32_t current_hp;
- uint16_t current_mp;
- uint16_t current_tp;
- uint32_t max_hp;
- uint16_t max_mp;
- uint16_t max_something;
- uint8_t effect_index; // which position do i display this
- uint8_t unknown3;
- uint16_t effect_id;
- uint16_t param;
- uint16_t unknown5; // Sort this out (old right half of power/param property)
- float duration;
- uint32_t actor_id1;
- uint8_t unknown4[52];
+ uint32_t unknown;
+ uint32_t actor_id;
+ uint8_t unknown1;
+ uint8_t unknown2;
+ uint16_t padding1;
+ uint32_t current_hp;
+ uint16_t current_mp;
+ uint16_t current_tp;
+ uint32_t max_hp;
+ uint16_t max_mp;
+ uint16_t max_something;
+ uint8_t effect_index; // which position do i display this
+ uint8_t unknown3;
+ uint16_t effect_id;
+ uint16_t param;
+ uint16_t unknown5; // Sort this out (old right half of power/param property)
+ float duration;
+ uint32_t actor_id1;
+ uint8_t unknown4[52];
};
/**
* Structural representation of the packet sent by the server
* to update certain player details / status
*/
-struct FFXIVIpcActorControl142 : FFXIVIpcBasePacket
+struct FFXIVIpcActorControl142 :
+ FFXIVIpcBasePacket< ActorControl142 >
{
- /* 0000 */ uint16_t category;
- /* 0002 */ uint16_t padding;
- /* 0004 */ uint32_t param1;
- /* 0008 */ uint32_t param2;
- /* 000C */ uint32_t param3;
- /* 0010 */ uint32_t param4;
- /* 0014 */ uint32_t padding1;
+ /* 0000 */ uint16_t category;
+ /* 0002 */ uint16_t padding;
+ /* 0004 */ uint32_t param1;
+ /* 0008 */ uint32_t param2;
+ /* 000C */ uint32_t param3;
+ /* 0010 */ uint32_t param4;
+ /* 0014 */ uint32_t padding1;
};
/**
* Structural representation of the packet sent by the server
* to update certain player details / status
*/
-struct FFXIVIpcActorControl143 : FFXIVIpcBasePacket
+struct FFXIVIpcActorControl143 :
+ FFXIVIpcBasePacket< ActorControl143 >
{
- /* 0000 */ uint16_t category;
- /* 0002 */ uint16_t padding;
- /* 0004 */ uint32_t param1;
- /* 0008 */ uint32_t param2;
- /* 000C */ uint32_t param3;
- /* 0010 */ uint32_t param4;
- /* 0014 */ uint32_t param5;
- /* 0018 */ uint32_t param6;
- /* 0018 */ uint32_t padding1;
+ /* 0000 */ uint16_t category;
+ /* 0002 */ uint16_t padding;
+ /* 0004 */ uint32_t param1;
+ /* 0008 */ uint32_t param2;
+ /* 000C */ uint32_t param3;
+ /* 0010 */ uint32_t param4;
+ /* 0014 */ uint32_t param5;
+ /* 0018 */ uint32_t param6;
+ /* 0018 */ uint32_t padding1;
};
/**
* Structural representation of the packet sent by the server
* to update certain player details / status
*/
-struct FFXIVIpcActorControl144 : FFXIVIpcBasePacket
+struct FFXIVIpcActorControl144 :
+ FFXIVIpcBasePacket< ActorControl144 >
{
- /* 0000 */ uint16_t category;
- /* 0002 */ uint16_t padding;
- /* 0004 */ uint32_t param1;
- /* 0008 */ uint32_t param2;
- /* 000C */ uint32_t param3;
- /* 0010 */ uint32_t param4;
- /* 0014 */ uint32_t padding1;
- /* 0018 */ uint64_t targetId;
+ /* 0000 */ uint16_t category;
+ /* 0002 */ uint16_t padding;
+ /* 0004 */ uint32_t param1;
+ /* 0008 */ uint32_t param2;
+ /* 000C */ uint32_t param3;
+ /* 0010 */ uint32_t param4;
+ /* 0014 */ uint32_t padding1;
+ /* 0018 */ uint64_t targetId;
};
/**
* Structural representation of the packet sent by the server
* to update HP / MP / TP
*/
-struct FFXIVIpcUpdateHpMpTp : FFXIVIpcBasePacket
+struct FFXIVIpcUpdateHpMpTp :
+ FFXIVIpcBasePacket< UpdateHpMpTp >
{
- /* 0000 */ uint32_t hp;
- /* 0004 */ uint16_t mp;
- /* 0006 */ uint16_t tp;
- /* 0008 */ uint32_t unknown_8;
- /* 000C */ uint32_t unknown_12;
+ /* 0000 */ uint32_t hp;
+ /* 0004 */ uint16_t mp;
+ /* 0006 */ uint16_t tp;
+ /* 0008 */ uint32_t unknown_8;
+ /* 000C */ uint32_t unknown_12;
};
@@ -301,344 +352,371 @@ struct FFXIVIpcUpdateHpMpTp : FFXIVIpcBasePacket
*/
struct EffectEntry
{
- Common::ActionEffectType effectType;
- Common::ActionHitSeverityType hitSeverity;
- uint8_t param;
- int8_t bonusPercent; // shows an additional percentage in the battle log, will not change the damage number sent & shown
- uint8_t valueMultiplier; // This multiplies whatever value is in the 'value' param by 10. Possibly a workaround for big numbers
- uint8_t flags;
- int16_t value;
+ Common::ActionEffectType effectType;
+ Common::ActionHitSeverityType hitSeverity;
+ uint8_t param;
+ int8_t bonusPercent; // shows an additional percentage in the battle log, will not change the damage number sent & shown
+ uint8_t valueMultiplier; // This multiplies whatever value is in the 'value' param by 10. Possibly a workaround for big numbers
+ uint8_t flags;
+ int16_t value;
};
struct EffectHeader
{
- uint64_t animationTargetId; // who the animation targets
- uint32_t actionId; // what the casting player casts, shown in battle log/ui
+ uint64_t animationTargetId; // who the animation targets
+ uint32_t actionId; // what the casting player casts, shown in battle log/ui
- uint32_t globalEffectCounter; // seems to only increment on retail?
- float animationLockTime; // maybe? doesn't seem to do anything
+ uint32_t globalEffectCounter; // seems to only increment on retail?
+ float animationLockTime; // maybe? doesn't seem to do anything
- uint32_t someTargetId; // always 00 00 00 E0, 0x0E000000 is the internal def for INVALID TARGET ID
+ uint32_t someTargetId; // always 00 00 00 E0, 0x0E000000 is the internal def for INVALID TARGET ID
- uint16_t hiddenAnimation; // if 0, always shows animation, otherwise hides it. counts up by 1 for each animation skipped on a caster
+ uint16_t hiddenAnimation; // if 0, always shows animation, otherwise hides it. counts up by 1 for each animation skipped on a caster
- uint16_t rotation;
+ uint16_t rotation;
- uint16_t actionAnimationId; // the animation that is played by the casting character
- uint8_t unknown1E; // can be 0,1,2 - maybe other values? - doesn't do anything?
+ uint16_t actionAnimationId; // the animation that is played by the casting character
+ uint8_t unknown1E; // can be 0,1,2 - maybe other values? - doesn't do anything?
- Common::ActionEffectDisplayType effectDisplayType;
+ Common::ActionEffectDisplayType effectDisplayType;
- uint8_t unknown20; // is read by handler, runs code which gets the LODWORD of animationLockTime (wtf?)
- uint8_t effectCount; // ignores effects if 0, otherwise parses all of them
+ uint8_t unknown20; // is read by handler, runs code which gets the LODWORD of animationLockTime (wtf?)
+ uint8_t effectCount; // ignores effects if 0, otherwise parses all of them
- uint32_t padding_22[2];
+ uint32_t padding_22[2];
};
-struct FFXIVIpcEffect : FFXIVIpcBasePacket
+struct FFXIVIpcEffect :
+ FFXIVIpcBasePacket< Effect >
{
- EffectHeader header;
+ EffectHeader header;
- EffectEntry effects[8];
+ EffectEntry effects[8];
- uint16_t padding_6A[3];
+ uint16_t padding_6A[3];
- uint32_t effectTargetId; // who the effect targets
- uint32_t effectFlags; // nonzero = effects do nothing, no battle log, no ui text - only shows animations
+ uint32_t effectTargetId; // who the effect targets
+ uint32_t effectFlags; // nonzero = effects do nothing, no battle log, no ui text - only shows animations
- uint32_t padding_78;
+ uint32_t padding_78;
};
template< int size >
struct FFXIVIpcAoeEffect
{
- EffectHeader header;
+ EffectHeader header;
- EffectEntry effects[size];
+ EffectEntry effects[size];
- uint16_t padding_6A[3];
+ uint16_t padding_6A[3];
- uint32_t effectTargetId[size];
- Common::FFXIVARR_POSITION3 position;
- uint32_t effectFlags;
+ uint32_t effectTargetId[size];
+ Common::FFXIVARR_POSITION3 position;
+ uint32_t effectFlags;
- uint32_t padding_78;
+ uint32_t padding_78;
};
-struct FFXIVIpcAoeEffect8 : FFXIVIpcBasePacket< AoeEffect8 >, FFXIVIpcAoeEffect< 8 > {};
-struct FFXIVIpcAoeEffect16 : FFXIVIpcBasePacket< AoeEffect16 >, FFXIVIpcAoeEffect< 16 > {};
-struct FFXIVIpcAoeEffect24 : FFXIVIpcBasePacket< AoeEffect24 >, FFXIVIpcAoeEffect< 24 > {};
-struct FFXIVIpcAoeEffect32 : FFXIVIpcBasePacket< AoeEffect32 >, FFXIVIpcAoeEffect< 32 > {};
+struct FFXIVIpcAoeEffect8 :
+ FFXIVIpcBasePacket< AoeEffect8 >, FFXIVIpcAoeEffect< 8 >
+{
+};
+struct FFXIVIpcAoeEffect16 :
+ FFXIVIpcBasePacket< AoeEffect16 >, FFXIVIpcAoeEffect< 16 >
+{
+};
+struct FFXIVIpcAoeEffect24 :
+ FFXIVIpcBasePacket< AoeEffect24 >, FFXIVIpcAoeEffect< 24 >
+{
+};
+struct FFXIVIpcAoeEffect32 :
+ FFXIVIpcBasePacket< AoeEffect32 >, FFXIVIpcAoeEffect< 32 >
+{
+};
/**
* Structural representation of the packet sent by the server
* to spawn an actor
*/
-struct FFXIVIpcPlayerSpawn : FFXIVIpcBasePacket
+struct FFXIVIpcPlayerSpawn :
+ FFXIVIpcBasePacket< PlayerSpawn >
{
- uint16_t title;
- uint16_t u1b;
- uint8_t u2b;
- uint8_t u2ab;
- uint8_t gmRank;
- uint8_t u3b;
+ uint16_t title;
+ uint16_t u1b;
+ uint8_t u2b;
+ uint8_t u2ab;
+ uint8_t gmRank;
+ uint8_t u3b;
- uint8_t u3a;
- uint8_t onlineStatus;
- uint8_t u3c;
- uint8_t pose;
+ uint8_t u3a;
+ uint8_t onlineStatus;
+ uint8_t u3c;
+ uint8_t pose;
- uint32_t u4;
+ uint32_t u4;
- uint64_t targetId;
- uint32_t u6;
- uint32_t u7;
- uint64_t mainWeaponModel;
- uint64_t secWeaponModel;
- uint64_t craftToolModel;
+ uint64_t targetId;
+ uint32_t u6;
+ uint32_t u7;
+ uint64_t mainWeaponModel;
+ uint64_t secWeaponModel;
+ uint64_t craftToolModel;
- uint32_t u14;
- uint32_t u15;
- uint32_t bNPCBase;
- uint32_t bNPCName;
- uint32_t u18;
- uint32_t u19;
- uint32_t directorId;
- uint32_t ownerId;
- uint32_t u22;
- uint32_t hPMax;
- uint32_t hPCurr;
- uint32_t displayFlags;
- uint16_t fateID;
- uint16_t mPCurr;
- uint16_t tPCurr;
- uint16_t mPMax;
- uint16_t tPMax;
- uint16_t modelChara;
- uint16_t rotation;
- uint16_t activeMinion;
- uint8_t spawnIndex;
- uint8_t state;
- uint8_t persistentEmote;
- uint8_t modelType; // modelType -> eventSystemDefine
- uint8_t subtype;
- uint8_t voice;
- uint16_t u25c;
- uint8_t enemyType;
- uint8_t level;
- uint8_t classJob;
- uint8_t u26d;
- uint16_t u27a;
- uint8_t currentMount;
- uint8_t mountHead;
- uint8_t mountBody;
- uint8_t mountFeet;
- uint8_t mountColor;
- uint8_t scale;
- uint32_t u29b;
- uint32_t u30b;
- Common::StatusEffect effect[30];
- Common::FFXIVARR_POSITION3 pos;
- uint32_t models[10];
- char name[32];
- uint8_t look[26];
- char fcTag[6];
- uint32_t unk30;
+ uint32_t u14;
+ uint32_t u15;
+ uint32_t bNPCBase;
+ uint32_t bNPCName;
+ uint32_t u18;
+ uint32_t u19;
+ uint32_t directorId;
+ uint32_t ownerId;
+ uint32_t u22;
+ uint32_t hPMax;
+ uint32_t hPCurr;
+ uint32_t displayFlags;
+ uint16_t fateID;
+ uint16_t mPCurr;
+ uint16_t tPCurr;
+ uint16_t mPMax;
+ uint16_t tPMax;
+ uint16_t modelChara;
+ uint16_t rotation;
+ uint16_t activeMinion;
+ uint8_t spawnIndex;
+ uint8_t state;
+ uint8_t persistentEmote;
+ uint8_t modelType;
+ uint8_t subtype;
+ uint8_t voice;
+ uint16_t u25c;
+ uint8_t enemyType;
+ uint8_t level;
+ uint8_t classJob;
+ uint8_t u26d;
+ uint16_t u27a;
+ uint8_t currentMount;
+ uint8_t mountHead;
+ uint8_t mountBody;
+ uint8_t mountFeet;
+ uint8_t mountColor;
+ uint8_t scale;
+ uint32_t u29b;
+ uint32_t u30b;
+ Common::StatusEffect effect[30];
+ Common::FFXIVARR_POSITION3 pos;
+ uint32_t models[10];
+ char name[32];
+ uint8_t look[26];
+ char fcTag[6];
+ uint32_t unk30;
};
/**
* Structural representation of the packet sent by the server
* to spawn an actor
*/
-struct FFXIVIpcNpcSpawn : FFXIVIpcBasePacket
+struct FFXIVIpcNpcSpawn :
+ FFXIVIpcBasePacket< NpcSpawn >
{
- uint32_t gimmickId; // needs to be existing in the map, mob will snap to it
- uint8_t u2b;
- uint8_t u2ab;
- uint8_t gmRank;
- uint8_t u3b;
+ uint32_t gimmickId; // needs to be existing in the map, mob will snap to it
+ uint8_t u2b;
+ uint8_t u2ab;
+ uint8_t gmRank;
+ uint8_t u3b;
- uint8_t u3a;
- uint8_t onlineStatus;
- uint8_t u3c;
- uint8_t pose;
+ uint8_t aggressionMode; // 1 passive, 2 aggressive
+ uint8_t onlineStatus;
+ uint8_t u3c;
+ uint8_t pose;
- uint32_t u4;
+ uint32_t u4;
- uint64_t targetId;
- uint32_t u6;
- uint32_t u7;
- uint64_t mainWeaponModel;
- uint64_t secWeaponModel;
- uint64_t craftToolModel;
+ uint64_t targetId;
+ uint32_t u6;
+ uint32_t u7;
+ uint64_t mainWeaponModel;
+ uint64_t secWeaponModel;
+ uint64_t craftToolModel;
- uint32_t u14;
- uint32_t u15;
- uint32_t bNPCBase;
- uint32_t bNPCName;
- uint32_t u18;
- uint32_t u19;
- uint32_t directorId;
- uint32_t ownerId;
- uint32_t u22;
- uint32_t hPMax;
- uint32_t hPCurr;
- uint32_t displayFlags;
- uint16_t fateID;
- uint16_t mPCurr;
- uint16_t tPCurr;
- uint16_t mPMax;
- uint16_t tPMax;
- uint16_t modelChara;
- uint16_t rotation;
- uint16_t activeMinion;
- uint8_t spawnIndex;
- uint8_t state;
- uint8_t persistantEmote;
- uint8_t modelType;
- uint8_t subtype;
- uint8_t voice;
- uint16_t u25c;
- uint8_t enemyType;
- uint8_t level;
- uint8_t classJob;
- uint8_t u26d;
- uint16_t u27a;
- uint8_t currentMount;
- uint8_t mountHead;
- uint8_t mountBody;
- uint8_t mountFeet;
- uint8_t mountColor;
- uint8_t scale;
- uint32_t u29b;
- uint32_t u30b;
- Common::StatusEffect effect[30];
- Common::FFXIVARR_POSITION3 pos;
- uint32_t models[10];
- char name[32];
- uint8_t look[26];
- char fcTag[6];
- uint32_t unk30;
+ uint32_t u14;
+ uint32_t u15;
+ uint32_t bNPCBase;
+ uint32_t bNPCName;
+ uint32_t u18;
+ uint32_t u19;
+ uint32_t directorId;
+ uint32_t spawnerId;
+ uint32_t parentActorId;
+ uint32_t hPMax;
+ uint32_t hPCurr;
+ uint32_t displayFlags;
+ uint16_t fateID;
+ uint16_t mPCurr;
+ uint16_t tPCurr;
+ uint16_t mPMax;
+ uint16_t tPMax;
+ uint16_t modelChara;
+ uint16_t rotation;
+ uint16_t activeMinion;
+ uint8_t spawnIndex;
+ uint8_t state;
+ uint8_t persistantEmote;
+ uint8_t modelType;
+ uint8_t subtype;
+ uint8_t voice;
+ uint16_t u25c;
+ uint8_t enemyType;
+ uint8_t level;
+ uint8_t classJob;
+ uint8_t u26d;
+ uint16_t u27a;
+ uint8_t currentMount;
+ uint8_t mountHead;
+ uint8_t mountBody;
+ uint8_t mountFeet;
+ uint8_t mountColor;
+ uint8_t scale;
+ uint32_t u29b;
+ uint32_t u30b;
+ Common::StatusEffect effect[30];
+ Common::FFXIVARR_POSITION3 pos;
+ uint32_t models[10];
+ char name[32];
+ uint8_t look[26];
+ char fcTag[6];
+ uint32_t unk30;
+ uint32_t unk31;
+ uint8_t bNPCPartSlot;
+ uint8_t unk32;
+ uint16_t unk33;
+ uint32_t unk34;
};
/**
* Structural representation of the packet sent by the server
* to show player movement
*/
-struct FFXIVIpcActorFreeSpawn : FFXIVIpcBasePacket
+struct FFXIVIpcActorFreeSpawn :
+ FFXIVIpcBasePacket< ActorFreeSpawn >
{
- uint32_t spawnId;
- uint32_t actorId;
+ uint32_t spawnId;
+ uint32_t actorId;
};
/**
* Structural representation of the packet sent by the server
* to show player movement
*/
-struct FFXIVIpcActorMove : FFXIVIpcBasePacket
+struct FFXIVIpcActorMove :
+ FFXIVIpcBasePacket< ActorMove >
{
- /* 0000 */ uint8_t rotation;
- /* 0001 */ uint8_t unknown_1;
- /* 0002 */ uint8_t unknown_2;
- /* 0003 */ uint8_t unknown_3;
- /* 0004 */ uint16_t unknown_4;
- /* 0006 */ uint16_t posX;
- /* 0008 */ uint16_t posY;
- /* 000a */ uint16_t posZ;
- /* 000C */ uint32_t unknown_12;
+ /* 0000 */ uint8_t rotation;
+ /* 0001 */ uint8_t unknown_1;
+ /* 0002 */ uint8_t unknown_2;
+ /* 0003 */ uint8_t unknown_3;
+ /* 0004 */ uint16_t unknown_4;
+ /* 0006 */ uint16_t posX;
+ /* 0008 */ uint16_t posY;
+ /* 000a */ uint16_t posZ;
+ /* 000C */ uint32_t unknown_12;
};
/**
* Structural representation of the packet sent by the server
* to set an actors position
*/
-struct FFXIVIpcActorSetPos : FFXIVIpcBasePacket
+struct FFXIVIpcActorSetPos :
+ FFXIVIpcBasePacket< ActorSetPos >
{
- uint16_t r16;
- uint8_t waitForLoad;
- uint8_t unknown1;
- uint32_t unknown2;
- float x;
- float y;
- float z;
- uint32_t unknown3;
+ uint16_t r16;
+ uint8_t waitForLoad;
+ uint8_t unknown1;
+ uint32_t unknown2;
+ float x;
+ float y;
+ float z;
+ uint32_t unknown3;
};
-
/**
* Structural representation of the packet sent by the server
* to start an actors casting
*/
-struct FFXIVIpcActorCast : FFXIVIpcBasePacket
+struct FFXIVIpcActorCast :
+ FFXIVIpcBasePacket< ActorCast >
{
- uint16_t action_id;
- Common::SkillType skillType;
- uint8_t unknown;
- uint32_t unknown_1; // Also action id
- float cast_time;
- uint32_t target_id;
- float rotation; // In radians
- uint32_t unknown_2;
- uint16_t posX;
- uint16_t posY;
- uint16_t posZ;
- uint16_t unknown_3;
+ uint16_t action_id;
+ Common::SkillType skillType;
+ uint8_t unknown;
+ uint32_t unknown_1; // Also action id
+ float cast_time;
+ uint32_t target_id;
+ float rotation; // In radians
+ uint32_t unknown_2;
+ uint16_t posX;
+ uint16_t posY;
+ uint16_t posZ;
+ uint16_t unknown_3;
};
-struct FFXIVIpcHateList : FFXIVIpcBasePacket
+struct FFXIVIpcHateList :
+ FFXIVIpcBasePacket< HateList >
{
- uint32_t numEntries;
- struct LsEntry
- {
- uint32_t actorId;
- uint8_t hatePercent;
- uint8_t unknown;
- uint16_t padding;
- } entry[32];
- uint32_t padding;
+ uint32_t numEntries;
+ struct LsEntry
+ {
+ uint32_t actorId;
+ uint8_t hatePercent;
+ uint8_t unknown;
+ uint16_t padding;
+ } entry[32];
+ uint32_t padding;
};
-struct FFXIVIpcUpdateClassInfo : FFXIVIpcBasePacket
+struct FFXIVIpcUpdateClassInfo :
+ FFXIVIpcBasePacket< UpdateClassInfo >
{
- uint8_t classId;
- uint8_t level1;
- uint16_t level;
- uint32_t nextLevelIndex;
- uint32_t currentExp;
- uint32_t restedExp;
+ uint8_t classId;
+ uint8_t level1;
+ uint16_t level;
+ uint32_t nextLevelIndex;
+ uint32_t currentExp;
+ uint32_t restedExp;
};
/**
* Structural representation of the packet sent by the server
* to send the titles available to the player
*/
-struct FFXIVIpcPlayerTitleList : FFXIVIpcBasePacket
+struct FFXIVIpcPlayerTitleList :
+ FFXIVIpcBasePacket< PlayerTitleList >
{
- uint8_t titleList[48];
+ uint8_t titleList[48];
};
/**
* Structural representation of the packet sent by the server
* to initialize a zone for the player
*/
-struct FFXIVIpcInitZone : FFXIVIpcBasePacket
+struct FFXIVIpcInitZone :
+ FFXIVIpcBasePacket< InitZone >
{
- uint16_t serverId;
- uint16_t zoneId;
- uint16_t unknown1;
- uint16_t unknown2;
- uint32_t unknown3;
- uint32_t unknown4;
- uint8_t weatherId;
- uint8_t bitmask;
- uint16_t unknown5;
- uint16_t festivalId;
- uint16_t unknown7;
- uint32_t unknown8;
- Common::FFXIVARR_POSITION3 pos;
+ uint16_t serverId;
+ uint16_t zoneId;
+ uint16_t unknown1;
+ uint16_t unknown2;
+ uint32_t unknown3;
+ uint32_t unknown4;
+ uint8_t weatherId;
+ uint8_t bitmask;
+ uint16_t unknown5;
+ uint16_t festivalId;
+ uint16_t additionalFestivalId;
+ uint32_t unknown8;
+ Common::FFXIVARR_POSITION3 pos;
};
@@ -646,147 +724,148 @@ struct FFXIVIpcInitZone : FFXIVIpcBasePacket
* Structural representation of the packet sent by the server to initialize
* the client UI upon initial connection.
*/
-struct FFXIVIpcInitUI : FFXIVIpcBasePacket
+struct FFXIVIpcInitUI :
+ FFXIVIpcBasePacket< InitUI >
{
- // plain C types for a bit until the packet is actually fixed.
- // makes conversion between different editors easier.
- uint64_t contentId;
- unsigned int unknown8;
- unsigned int unknownC;
- unsigned int charId;
- unsigned int restedExp;
- unsigned int companionCurrentExp;
- unsigned int unknown1C;
- unsigned int fishCaught;
- unsigned int useBaitCatalogId;
- unsigned int unknown28;
- unsigned short unknownPvp2C;
- unsigned short unknown3;
- unsigned int pvpFrontlineOverallCampaigns;
- unsigned int unknownTimestamp34;
- unsigned int unknownTimestamp38;
- unsigned int unknown3C;
- unsigned int unknown40;
- unsigned int unknown44;
- float companionTimePassed;
- unsigned int unknown4C;
- unsigned short unknown50;
- unsigned short unknownPvp52[4];
- unsigned short playerCommendations;
- unsigned short unknown5C;
- unsigned short unknown5E;
- unsigned short pvpFrontlineWeeklyCampaigns;
- unsigned short enhancedAnimaGlassProgress;
- unsigned short unknown64[4]; // needs confirmation, probably pvp total/weeklies
- unsigned short pvpRivalWingsTotalMatches;
- unsigned short pvpRivalWingsTotalVictories;
- unsigned short pvpRivalWingsWeeklyMatches; // needs confirmation
- unsigned short pvpRivalWingsWeeklyVictories; // needs confirmation
- unsigned char maxLevel;
- unsigned char expansion;
- unsigned char unknown76;
- unsigned char race;
- unsigned char tribe;
- unsigned char gender;
- unsigned char currentJob;
- unsigned char currentClass;
- unsigned char deity;
- unsigned char namedayMonth;
- unsigned char namedayDay;
- unsigned char cityState;
- unsigned char homepoint;
- unsigned char unknown81;
- unsigned char petHotBar;
- unsigned char companionRank;
- unsigned char companionStars;
- unsigned char companionSp;
- unsigned char companionUnk86;
- unsigned char companionColor;
- unsigned char companionFavoFeed;
- unsigned char unknown89;
- unsigned char unknown8A[4];
- unsigned char hasRelicBook;
- unsigned char relicBookId;
- unsigned char unknown90[4];
- unsigned char craftingMasterMask;
- unsigned char unknown95[10];
- unsigned char unknown9F[2];
- unsigned char unknownA1[3];
- unsigned int exp[25];
- unsigned int unknown108;
- unsigned int pvpTotalExp;
- unsigned int unknownPvp110;
- unsigned int pvpExp;
- unsigned int pvpFrontlineOverallRanks[3];
- unsigned int exploratoryMissionNextTimestamp;
- unsigned short levels[25];
- unsigned short unknown15C[9];
- unsigned short fishingRecordsFish[26];
- unsigned short fishingRecordsFishWeight[26];
- unsigned short beastExp[11];
- unsigned short unknown1EA[5];
- unsigned short pvpFrontlineWeeklyRanks[3];
- unsigned short unknownMask1FA[3];
- unsigned char companionName[21];
- unsigned char companionDefRank;
- unsigned char companionAttRank;
- unsigned char companionHealRank;
- unsigned char mountGuideMask[16];
- char name[32];
- unsigned char unknownOword[16];
- unsigned char unknown258;
- unsigned char unlockBitmask[64];
- unsigned char aetheryte[17];
- unsigned char discovery[421];
- unsigned char howto[33];
- unsigned char minions[38];
- unsigned char chocoboTaxiMask[8];
- unsigned char watchedCutscenes[111];
- unsigned char companionBardingMask[9];
- unsigned char companionEquippedHead;
- unsigned char companionEquippedBody;
- unsigned char companionEquippedLegs;
- unsigned char unknown519[4];
- unsigned char unknownMask51D[11];
- unsigned char fishingGuideMask[89];
- unsigned char fishingSpotVisited[25];
- unsigned char unknown59A[15];
- unsigned char unknown5A9[2];
- unsigned char unknownPvp5AB[2];
- unsigned char pvpLevel;
- unsigned char beastRank[11];
- unsigned char unknown5B9[11];
- unsigned char pose;
- unsigned char weaponPose;
- unsigned char unknownMask5C4[3];
- unsigned char unknown5C9[2];
- unsigned char challengeLogComplete[9];
- unsigned char unknown5D4[9];
- unsigned char unknownMask5DD[28];
- unsigned char relicCompletion[12];
- unsigned char sightseeingMask[26];
- unsigned char huntingMarkMask[55];
- unsigned char tripleTriadCards[29];
- unsigned char unknownMask673[10];
- unsigned char unknown67D;
- unsigned char aetherCurrentMask[22];
- unsigned char unknown694[3];
- unsigned char orchestrionMask[40];
- unsigned char hallOfNoviceCompleteMask[3];
- unsigned char animaCompletion[11];
- unsigned char unknown6CD[3];
- unsigned char unknownMask6C0[11];
- unsigned char unknownMask6DB[13];
- unsigned char unlockedRaids[28];
- unsigned char unlockedDungeons[18];
- unsigned char unlockedGuildhests[10];
- unsigned char unlockedTrials[7];
- unsigned char unlockedPvp[5];
- unsigned char clearedRaids[28];
- unsigned char clearedDungeons[18];
- unsigned char clearedGuildhests[10];
- unsigned char clearedTrials[7];
- unsigned char clearedPvp[5];
+ // plain C types for a bit until the packet is actually fixed.
+ // makes conversion between different editors easier.
+ uint64_t contentId;
+ unsigned int unknown8;
+ unsigned int unknownC;
+ unsigned int charId;
+ unsigned int restedExp;
+ unsigned int companionCurrentExp;
+ unsigned int unknown1C;
+ unsigned int fishCaught;
+ unsigned int useBaitCatalogId;
+ unsigned int unknown28;
+ unsigned short unknownPvp2C;
+ unsigned short unknown3;
+ unsigned int pvpFrontlineOverallCampaigns;
+ unsigned int unknownTimestamp34;
+ unsigned int unknownTimestamp38;
+ unsigned int unknown3C;
+ unsigned int unknown40;
+ unsigned int unknown44;
+ float companionTimePassed;
+ unsigned int unknown4C;
+ unsigned short unknown50;
+ unsigned short unknownPvp52[4];
+ unsigned short playerCommendations;
+ unsigned short unknown5C;
+ unsigned short unknown5E;
+ unsigned short pvpFrontlineWeeklyCampaigns;
+ unsigned short enhancedAnimaGlassProgress;
+ unsigned short unknown64[4]; // needs confirmation, probably pvp total/weeklies
+ unsigned short pvpRivalWingsTotalMatches;
+ unsigned short pvpRivalWingsTotalVictories;
+ unsigned short pvpRivalWingsWeeklyMatches; // needs confirmation
+ unsigned short pvpRivalWingsWeeklyVictories; // needs confirmation
+ unsigned char maxLevel;
+ unsigned char expansion;
+ unsigned char unknown76;
+ unsigned char race;
+ unsigned char tribe;
+ unsigned char gender;
+ unsigned char currentJob;
+ unsigned char currentClass;
+ unsigned char deity;
+ unsigned char namedayMonth;
+ unsigned char namedayDay;
+ unsigned char cityState;
+ unsigned char homepoint;
+ unsigned char unknown81;
+ unsigned char petHotBar;
+ unsigned char companionRank;
+ unsigned char companionStars;
+ unsigned char companionSp;
+ unsigned char companionUnk86;
+ unsigned char companionColor;
+ unsigned char companionFavoFeed;
+ unsigned char unknown89;
+ unsigned char unknown8A[4];
+ unsigned char hasRelicBook;
+ unsigned char relicBookId;
+ unsigned char unknown90[4];
+ unsigned char craftingMasterMask;
+ unsigned char unknown95[10];
+ unsigned char unknown9F[2];
+ unsigned char unknownA1[3];
+ unsigned int exp[25];
+ unsigned int unknown108;
+ unsigned int pvpTotalExp;
+ unsigned int unknownPvp110;
+ unsigned int pvpExp;
+ unsigned int pvpFrontlineOverallRanks[3];
+ unsigned int exploratoryMissionNextTimestamp;
+ unsigned short levels[25];
+ unsigned short unknown15C[9];
+ unsigned short fishingRecordsFish[26];
+ unsigned short fishingRecordsFishWeight[26];
+ unsigned short beastExp[11];
+ unsigned short unknown1EA[5];
+ unsigned short pvpFrontlineWeeklyRanks[3];
+ unsigned short unknownMask1FA[3];
+ unsigned char companionName[21];
+ unsigned char companionDefRank;
+ unsigned char companionAttRank;
+ unsigned char companionHealRank;
+ unsigned char mountGuideMask[16];
+ char name[32];
+ unsigned char unknownOword[16];
+ unsigned char unknown258;
+ unsigned char unlockBitmask[64];
+ unsigned char aetheryte[17];
+ unsigned char discovery[421];
+ unsigned char howto[33];
+ unsigned char minions[38];
+ unsigned char chocoboTaxiMask[8];
+ unsigned char watchedCutscenes[111];
+ unsigned char companionBardingMask[9];
+ unsigned char companionEquippedHead;
+ unsigned char companionEquippedBody;
+ unsigned char companionEquippedLegs;
+ unsigned char unknown519[4];
+ unsigned char unknownMask51D[11];
+ unsigned char fishingGuideMask[89];
+ unsigned char fishingSpotVisited[25];
+ unsigned char unknown59A[15];
+ unsigned char unknown5A9[2];
+ unsigned char unknownPvp5AB[2];
+ unsigned char pvpLevel;
+ unsigned char beastRank[11];
+ unsigned char unknown5B9[11];
+ unsigned char pose;
+ unsigned char weaponPose;
+ unsigned char unknownMask5C4[3];
+ unsigned char unknown5C9[2];
+ unsigned char challengeLogComplete[9];
+ unsigned char unknown5D4[9];
+ unsigned char unknownMask5DD[28];
+ unsigned char relicCompletion[12];
+ unsigned char sightseeingMask[26];
+ unsigned char huntingMarkMask[55];
+ unsigned char tripleTriadCards[29];
+ unsigned char unknownMask673[10];
+ unsigned char unknown67D;
+ unsigned char aetherCurrentMask[22];
+ unsigned char unknown694[3];
+ unsigned char orchestrionMask[40];
+ unsigned char hallOfNoviceCompleteMask[3];
+ unsigned char animaCompletion[11];
+ unsigned char unknown6CD[3];
+ unsigned char unknownMask6C0[11];
+ unsigned char unknownMask6DB[13];
+ unsigned char unlockedRaids[28];
+ unsigned char unlockedDungeons[18];
+ unsigned char unlockedGuildhests[10];
+ unsigned char unlockedTrials[7];
+ unsigned char unlockedPvp[5];
+ unsigned char clearedRaids[28];
+ unsigned char clearedDungeons[18];
+ unsigned char clearedGuildhests[10];
+ unsigned char clearedTrials[7];
+ unsigned char clearedPvp[5];
};
@@ -794,202 +873,261 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket
* Structural representation of the packet sent by the server
* to set a players stats
*/
-struct FFXIVIpcPlayerStats : FFXIVIpcBasePacket
+struct FFXIVIpcPlayerStats :
+ FFXIVIpcBasePacket< PlayerStats >
{
- uint32_t strength;
- uint32_t dexterity;
- uint32_t vitality;
- uint32_t intelligence;
- uint32_t mind;
- uint32_t piety;
- uint32_t hp;
- uint32_t mp;
- uint32_t tp;
- uint32_t unknown;
- uint32_t unknown_1;
- uint32_t unknown_2;
- uint32_t tenacity;
- uint32_t attack;
- uint32_t defense;
- uint32_t accuracy;
- uint32_t spellSpeed;
- uint32_t magicDefense;
- uint32_t criticalHitRate;
- uint32_t resistanceSlashing;
- uint32_t resistancePiercing;
- uint32_t resistanceBlunt;
- uint32_t attackMagicPotency;
- uint32_t healingMagicPotency;
- uint32_t fire;
- uint32_t ice;
- uint32_t wind;
- uint32_t earth;
- uint32_t lightning;
- uint32_t water;
- uint32_t determination;
- uint32_t skillSpeed;
- uint32_t spellSpeed1;
- uint32_t spellSpeedMod;
- uint32_t unknown_6;
- uint32_t craftsmanship;
- uint32_t control;
- uint32_t gathering;
- uint32_t perception;
- uint32_t resistanceSlow;
- uint32_t resistanceSilence;
- uint32_t resistanceBlind;
- uint32_t resistancePoison;
- uint32_t resistanceStun;
- uint32_t resistanceSleep;
- uint32_t resistanceBind;
- uint32_t resistanceHeavy;
- uint32_t unknown_7[9]; // possibly level sync stats.
+ uint32_t strength;
+ uint32_t dexterity;
+ uint32_t vitality;
+ uint32_t intelligence;
+ uint32_t mind;
+ uint32_t piety;
+ uint32_t hp;
+ uint32_t mp;
+ uint32_t tp;
+ uint32_t unknown;
+ uint32_t unknown_1;
+ uint32_t unknown_2;
+ uint32_t tenacity;
+ uint32_t attack;
+ uint32_t defense;
+ uint32_t accuracy;
+ uint32_t spellSpeed;
+ uint32_t magicDefense;
+ uint32_t criticalHitRate;
+ uint32_t resistanceSlashing;
+ uint32_t resistancePiercing;
+ uint32_t resistanceBlunt;
+ uint32_t attackMagicPotency;
+ uint32_t healingMagicPotency;
+ uint32_t fire;
+ uint32_t ice;
+ uint32_t wind;
+ uint32_t earth;
+ uint32_t lightning;
+ uint32_t water;
+ uint32_t determination;
+ uint32_t skillSpeed;
+ uint32_t spellSpeed1;
+ uint32_t spellSpeedMod;
+ uint32_t unknown_6;
+ uint32_t craftsmanship;
+ uint32_t control;
+ uint32_t gathering;
+ uint32_t perception;
+ uint32_t resistanceSlow;
+ uint32_t resistanceSilence;
+ uint32_t resistanceBlind;
+ uint32_t resistancePoison;
+ uint32_t resistanceStun;
+ uint32_t resistanceSleep;
+ uint32_t resistanceBind;
+ uint32_t resistanceHeavy;
+ uint32_t unknown_7[9]; // possibly level sync stats.
};
/**
* Structural representation of the packet sent by the server
* to set an actors current owner
*/
-struct FFXIVIpcActorOwner : FFXIVIpcBasePacket
+struct FFXIVIpcActorOwner :
+ FFXIVIpcBasePacket< ActorOwner >
{
- uint8_t type;
- uint8_t padding[7];
- uint32_t actorId;
- uint32_t actorId2;
+ uint8_t type;
+ uint8_t padding[7];
+ uint32_t actorId;
+ uint32_t actorId2;
};
/**
* Structural representation of the packet sent by the server
* to set a players state
*/
-struct FFXIVIpcPlayerStateFlags : FFXIVIpcBasePacket
+struct FFXIVIpcPlayerStateFlags :
+ FFXIVIpcBasePacket< PlayerStateFlags >
{
- uint8_t flags[12];
- uint32_t padding;
+ uint8_t flags[12];
+ uint32_t padding;
};
/**
* Structural representation of the packet sent by the server
* containing current class information
*/
-struct FFXIVIpcPlayerClassInfo : FFXIVIpcBasePacket
+struct FFXIVIpcPlayerClassInfo :
+ FFXIVIpcBasePacket< PlayerClassInfo >
{
- uint16_t classId;
- uint8_t unknown;
- uint8_t isSpecialist;
- uint16_t level; // Locks actions, equipment, prob more
- uint16_t level1; // Locks roles, prob more
- uint32_t roleActions[10];
+ uint16_t classId;
+ uint8_t unknown;
+ uint8_t isSpecialist;
+ uint16_t level; // Locks actions, equipment, prob more
+ uint16_t level1; // Locks roles, prob more
+ uint32_t roleActions[10];
};
/**
* Structural representation of the packet sent by the server
* to update a players appearance
*/
-struct FFXIVIpcModelEquip : FFXIVIpcBasePacket
+struct FFXIVIpcModelEquip :
+ FFXIVIpcBasePacket< ModelEquip >
{
- /* 0000 */ uint64_t mainWeapon;
- /* 0008 */ uint64_t offWeapon;
- /* 0010 */ uint32_t padding1;
- /* 0014 */ uint32_t models[10];
- /* 003C */ uint32_t padding2;
+ /* 0000 */ uint64_t mainWeapon;
+ /* 0008 */ uint64_t offWeapon;
+ /* 0010 */ uint32_t padding1;
+ /* 0014 */ uint32_t models[10];
+ /* 003C */ uint32_t padding2;
+};
+
+struct FFXIVIpcExamine :
+ FFXIVIpcBasePacket< Examine >
+{
+ uint8_t unkFlag1;
+ uint8_t unkFlag2;
+ char classJob;
+ char level;
+ uint16_t padding;
+ uint16_t titleId;
+ char grandCompany;
+ char grandCompanyRank;
+
+ char unknown[6];
+ uint32_t u6_fromPSpawn;
+ uint32_t u7_fromPSpawn;
+ char padding1[8];
+ uint64_t mainWeaponModel;
+ uint64_t secWeaponModel;
+ char unknown2[16];
+ struct ItemData
+ {
+ uint32_t catalogId;
+ uint32_t appearanceCatalogId;
+ uint64_t crafterId;
+ uint8_t quality;
+ uint8_t unknown[3];
+ struct Materia
+ {
+ uint16_t materiaId;
+ uint16_t tier;
+ } materia[5];
+ } entries[14];
+ char name[32];
+ char padding2;
+ char unk3[16];
+ char look[26];
+ char padding3[5];
+ uint32_t models[10];
+ char unknown4[200];
+};
+
+struct FFXIVIpcCharaNameReq :
+ FFXIVIpcBasePacket< CharaNameReq >
+{
+ uint64_t contentId;
+ char name[32];
};
/**
* Structural representation of the packet sent by the server
* to update a players appearance
*/
-struct FFXIVIpcItemInfo : FFXIVIpcBasePacket
+struct FFXIVIpcItemInfo :
+ FFXIVIpcBasePacket< ItemInfo >
{
- uint32_t sequence;
- uint32_t unknown;
- uint16_t containerId;
- uint16_t slot;
- uint32_t quantity;
- uint32_t catalogId;
- uint32_t reservedFlag;
- uint64_t signatureId;
- uint8_t hqFlag;
- uint8_t unknown2;
- uint16_t condition;
- uint16_t spiritBond;
- uint16_t color;
- uint32_t glamourCatalogId;
- uint16_t materia1;
- uint16_t materia2;
- uint16_t materia3;
- uint16_t materia4;
- uint16_t materia5;
- uint8_t buffer1;
- uint8_t buffer2;
- uint8_t buffer3;
- uint8_t buffer4;
- uint8_t buffer5;
- uint8_t padding;
- uint32_t unknown10;
+ uint32_t sequence;
+ uint32_t unknown;
+ uint16_t containerId;
+ uint16_t slot;
+ uint32_t quantity;
+ uint32_t catalogId;
+ uint32_t reservedFlag;
+ uint64_t signatureId;
+ uint8_t hqFlag;
+ uint8_t unknown2;
+ uint16_t condition;
+ uint16_t spiritBond;
+ uint16_t stain;
+ uint32_t glamourCatalogId;
+ uint16_t materia1;
+ uint16_t materia2;
+ uint16_t materia3;
+ uint16_t materia4;
+ uint16_t materia5;
+ uint8_t buffer1;
+ uint8_t buffer2;
+ uint8_t buffer3;
+ uint8_t buffer4;
+ uint8_t buffer5;
+ uint8_t padding;
+ uint32_t unknown10;
};
/**
* Structural representation of the packet sent by the server
* to update a players appearance
*/
-struct FFXIVIpcContainerInfo : FFXIVIpcBasePacket
+struct FFXIVIpcContainerInfo :
+ FFXIVIpcBasePacket< ContainerInfo >
{
- uint32_t sequence;
- uint32_t numItems;
- uint32_t containerId;
- uint32_t unknown;
+ uint32_t sequence;
+ uint32_t numItems;
+ uint32_t containerId;
+ uint32_t unknown;
};
/**
* Structural representation of the packet sent by the server
* to update a players appearance
*/
-struct FFXIVIpcCurrencyCrystalInfo : FFXIVIpcBasePacket
+struct FFXIVIpcCurrencyCrystalInfo :
+ FFXIVIpcBasePacket< CurrencyCrystalInfo >
{
- uint32_t sequence;
- uint16_t containerId;
- uint16_t slot;
- uint32_t quantity;
- uint32_t unknown;
- uint32_t catalogId;
- uint32_t unknown1;
- uint32_t unknown2;
- uint32_t unknown3;
+ uint32_t sequence;
+ uint16_t containerId;
+ uint16_t slot;
+ uint32_t quantity;
+ uint32_t unknown;
+ uint32_t catalogId;
+ uint32_t unknown1;
+ uint32_t unknown2;
+ uint32_t unknown3;
};
-struct FFXIVIpcInventoryTransactionFinish : FFXIVIpcBasePacket
+struct FFXIVIpcInventoryTransactionFinish :
+ FFXIVIpcBasePacket< InventoryTransactionFinish >
{
- uint32_t transactionId;
- uint32_t transactionId1;
- uint64_t padding;
+ uint32_t transactionId;
+ uint32_t transactionId1;
+ uint64_t padding;
};
-struct FFXIVIpcInventoryTransaction : FFXIVIpcBasePacket
+struct FFXIVIpcInventoryTransaction :
+ FFXIVIpcBasePacket< InventoryTransaction >
{
- uint32_t transactionId;
- uint8_t type;
- uint8_t padding;
- uint16_t padding1;
- uint32_t ownerId;
- uint32_t storageId;
- uint16_t slotId;
- uint16_t padding2;
- uint32_t stackSize;
- uint32_t catalogId;
- uint32_t someActorId;
- int32_t targetStorageId;
- uint32_t padding3[3];
+ uint32_t transactionId;
+ uint8_t type;
+ uint8_t padding;
+ uint16_t padding1;
+ uint32_t ownerId;
+ uint32_t storageId;
+ uint16_t slotId;
+ uint16_t padding2;
+ uint32_t stackSize;
+ uint32_t catalogId;
+ uint32_t someActorId;
+ int32_t targetStorageId;
+ uint32_t padding3[3];
};
-struct FFXIVIpcInventoryActionAck : FFXIVIpcBasePacket
+struct FFXIVIpcInventoryActionAck :
+ FFXIVIpcBasePacket< InventoryActionAck >
{
- uint32_t sequence;
- uint16_t type;
- uint16_t padding;
- uint32_t padding1;
- uint32_t padding2;
+ uint32_t sequence;
+ uint16_t type;
+ uint16_t padding;
+ uint32_t padding1;
+ uint32_t padding2;
};
@@ -997,48 +1135,50 @@ struct FFXIVIpcInventoryActionAck : FFXIVIpcBasePacket
* Structural representation of the packet sent by the server
* to update a slot in the inventory
*/
-struct FFXIVIpcUpdateInventorySlot : FFXIVIpcBasePacket
+struct FFXIVIpcUpdateInventorySlot :
+ FFXIVIpcBasePacket< UpdateInventorySlot >
{
- uint32_t sequence;
- uint32_t unknown;
- uint16_t containerId;
- uint16_t slot;
- uint32_t quantity;
- uint32_t catalogId;
- uint32_t reservedFlag;
- uint64_t signatureId;
- uint16_t hqFlag;
- uint16_t condition;
- uint16_t spiritBond;
- uint16_t color;
- uint32_t glamourCatalogId;
- uint16_t materia1;
- uint16_t materia2;
- uint16_t materia3;
- uint16_t materia4;
- uint16_t materia5;
- uint8_t buffer1;
- uint8_t buffer2;
- uint8_t buffer3;
- uint8_t buffer4;
- uint8_t buffer5;
- uint8_t padding;
- uint32_t unknown10;
+ uint32_t sequence;
+ uint32_t unknown;
+ uint16_t containerId;
+ uint16_t slot;
+ uint32_t quantity;
+ uint32_t catalogId;
+ uint32_t reservedFlag;
+ uint64_t signatureId;
+ uint16_t hqFlag;
+ uint16_t condition;
+ uint16_t spiritBond;
+ uint16_t color;
+ uint32_t glamourCatalogId;
+ uint16_t materia1;
+ uint16_t materia2;
+ uint16_t materia3;
+ uint16_t materia4;
+ uint16_t materia5;
+ uint8_t buffer1;
+ uint8_t buffer2;
+ uint8_t buffer3;
+ uint8_t buffer4;
+ uint8_t buffer5;
+ uint8_t padding;
+ uint32_t unknown10;
};
/**
* Structural representation of the packet sent by the server
* to start an event, not actually playing it, but registering
*/
-struct FFXIVIpcEventStart : FFXIVIpcBasePacket
+struct FFXIVIpcEventStart :
+ FFXIVIpcBasePacket< EventStart >
{
- /* 0000 */ uint64_t actorId;
- /* 0008 */ uint32_t eventId;
- /* 000C */ uint8_t param1;
- /* 000D */ uint8_t param2;
- /* 000E */ uint16_t padding;
- /* 0010 */ uint32_t param3;
- /* 0014 */ uint32_t padding1;
+ /* 0000 */ uint64_t actorId;
+ /* 0008 */ uint32_t eventId;
+ /* 000C */ uint8_t param1;
+ /* 000D */ uint8_t param2;
+ /* 000E */ uint16_t padding;
+ /* 0010 */ uint32_t param3;
+ /* 0014 */ uint32_t padding1;
};
@@ -1046,62 +1186,66 @@ struct FFXIVIpcEventStart : FFXIVIpcBasePacket
* Structural representation of the packet sent by the server
* to play an event
*/
-struct FFXIVIpcEventPlay : FFXIVIpcBasePacket
+struct FFXIVIpcEventPlay :
+ FFXIVIpcBasePacket< EventPlay >
{
- uint64_t actorId;
- uint32_t eventId;
- uint16_t scene;
- uint16_t padding;
- uint32_t flags;
- uint32_t param3;
- uint8_t param4;
- uint8_t padding1[3];
- uint32_t param5;
- uint8_t unknown[8];
+ uint64_t actorId;
+ uint32_t eventId;
+ uint16_t scene;
+ uint16_t padding;
+ uint32_t flags;
+ uint32_t param3;
+ uint8_t param4;
+ uint8_t padding1[3];
+ uint32_t param5;
+ uint8_t unknown[8];
};
- /**
+/**
* Structural representation of the packet sent by the server
* to play an event
*/
-struct FFXIVIpcDirectorPlayScene : FFXIVIpcBasePacket
+struct FFXIVIpcDirectorPlayScene :
+ FFXIVIpcBasePacket< DirectorPlayScene >
{
- uint64_t actorId;
- uint32_t eventId;
- uint16_t scene;
- uint16_t padding;
- uint32_t flags;
- uint32_t param3;
- uint8_t param4;
- uint8_t padding1[3];
- uint32_t param5;
- uint8_t unknown8[0x08];
- uint8_t unknown[0x38];
+ uint64_t actorId;
+ uint32_t eventId;
+ uint16_t scene;
+ uint16_t padding;
+ uint32_t flags;
+ uint32_t param3;
+ uint8_t param4;
+ uint8_t padding1[3];
+ uint32_t param5;
+ uint8_t unknown8[0x08];
+ uint8_t unknown[0x38];
};
/**
* Structural representation of the packet sent by the server
* to finish an event
*/
-struct FFXIVIpcEventFinish : FFXIVIpcBasePacket
+struct FFXIVIpcEventFinish :
+ FFXIVIpcBasePacket< EventFinish >
{
- /* 0000 */ uint32_t eventId;
- /* 0004 */ uint8_t param1;
- /* 0005 */ uint8_t param2;
- /* 0006 */ uint16_t padding;
- /* 0008 */ uint32_t param3;
- /* 000C */ uint32_t padding1;
+ /* 0000 */ uint32_t eventId;
+ /* 0004 */ uint8_t param1;
+ /* 0005 */ uint8_t param2;
+ /* 0006 */ uint16_t padding;
+ /* 0008 */ uint32_t param3;
+ /* 000C */ uint32_t padding1;
};
-struct FFXIVIpcEventOpenGilShop : FFXIVIpcBasePacket
+struct FFXIVIpcEventOpenGilShop :
+ FFXIVIpcBasePacket< EventOpenGilShop >
{
- uint64_t actorId;
- uint32_t eventId;
- uint16_t scene;
- uint16_t padding;
- uint32_t sceneFlags;
+ uint64_t actorId;
+ uint32_t eventId;
+ uint16_t scene;
+ uint16_t padding;
+ uint32_t sceneFlags;
- uint32_t unknown_wtf[0x101];
+ uint32_t unknown_wtf[0x101];
};
@@ -1109,59 +1253,64 @@ struct FFXIVIpcEventOpenGilShop : FFXIVIpcBasePacket
* Structural representation of the packet sent by the server
* to respond to a linkshell creation event
*/
-struct FFXIVIpcEventLinkshell : FFXIVIpcBasePacket
+struct FFXIVIpcEventLinkshell :
+ FFXIVIpcBasePacket< EventLinkshell >
{
- uint32_t eventId;
- uint8_t scene;
- uint8_t param1;
- uint8_t param2;
- uint8_t param3;
- uint32_t unknown1;
- uint32_t unknown2;
- uint32_t unknown3;
- uint32_t unknown4;
+ uint32_t eventId;
+ uint8_t scene;
+ uint8_t param1;
+ uint8_t param2;
+ uint8_t param3;
+ uint32_t unknown1;
+ uint32_t unknown2;
+ uint32_t unknown3;
+ uint32_t unknown4;
};
/**
* Structural representation of the packet sent by the server
* to send the active quests
*/
-struct FFXIVIpcQuestActiveList : FFXIVIpcBasePacket
+struct FFXIVIpcQuestActiveList :
+ FFXIVIpcBasePacket< QuestActiveList >
{
- Common::QuestActive activeQuests[30];
+ Common::QuestActive activeQuests[30];
};
/**
* Structural representation of the packet sent by the server
* to send update a quest slot
*/
-struct FFXIVIpcQuestUpdate : FFXIVIpcBasePacket
+struct FFXIVIpcQuestUpdate :
+ FFXIVIpcBasePacket< QuestUpdate >
{
- uint16_t slot;
- uint16_t padding;
- Common::QuestActive questInfo;
+ uint16_t slot;
+ uint16_t padding;
+ Common::QuestActive questInfo;
};
/**
* Structural representation of the packet sent by the server
* to send the completed quests mask
*/
-struct FFXIVIpcQuestCompleteList : FFXIVIpcBasePacket
+struct FFXIVIpcQuestCompleteList :
+ FFXIVIpcBasePacket< QuestCompleteList >
{
- uint8_t questCompleteMask[396];
- uint8_t unknownCompleteMask[32];
+ uint8_t questCompleteMask[396];
+ uint8_t unknownCompleteMask[32];
};
/**
* Structural representation of the packet sent by the server
* to finish a quest
*/
-struct FFXIVIpcQuestFinish : FFXIVIpcBasePacket
+struct FFXIVIpcQuestFinish :
+ FFXIVIpcBasePacket< QuestFinish >
{
- uint16_t questId;
- uint8_t flag1;
- uint8_t flag2;
- uint32_t padding;
+ uint16_t questId;
+ uint8_t flag1;
+ uint8_t flag2;
+ uint32_t padding;
};
/**
@@ -1171,76 +1320,83 @@ struct FFXIVIpcQuestFinish : FFXIVIpcBasePacket
* type 1 icon
* type 5 status
*/
-struct FFXIVIpcQuestMessage : FFXIVIpcBasePacket
+struct FFXIVIpcQuestMessage :
+ FFXIVIpcBasePacket< QuestMessage >
{
- /* 0000 */ uint32_t questId;
- /* 0000 */ uint8_t msgId;
- /* 0000 */ uint8_t type;
- /* 0000 */ uint16_t padding1;
- /* 0000 */ uint32_t var1;
- /* 0000 */ uint32_t var2;
+ /* 0000 */ uint32_t questId;
+ /* 0000 */ uint8_t msgId;
+ /* 0000 */ uint8_t type;
+ /* 0000 */ uint16_t padding1;
+ /* 0000 */ uint32_t var1;
+ /* 0000 */ uint32_t var2;
};
-struct FFXIVIpcQuestTracker : FFXIVIpcBasePacket
+struct FFXIVIpcQuestTracker :
+ FFXIVIpcBasePacket< QuestTracker >
{
- struct TrackerEntry
- {
- uint8_t active;
- uint8_t questIndex;
- } entry[5];
- uint16_t padding[3];
+ struct TrackerEntry
+ {
+ uint8_t active;
+ uint8_t questIndex;
+ } entry[5];
+ uint16_t padding[3];
};
-struct FFXIVIpcWeatherChange : FFXIVIpcBasePacket
+struct FFXIVIpcWeatherChange :
+ FFXIVIpcBasePacket< WeatherChange >
{
- uint32_t weatherId;
- float delay;
+ uint32_t weatherId;
+ float delay;
};
/**
* Structural representation of the packet sent by the server
* to send a unviel a map
*/
-struct FFXIVIpcDiscovery : FFXIVIpcBasePacket
+struct FFXIVIpcDiscovery :
+ FFXIVIpcBasePacket< Discovery >
{
- /* 0000 */ uint32_t map_part_id;
- /* 0004 */ uint32_t map_id;
+ /* 0000 */ uint32_t map_part_id;
+ /* 0004 */ uint32_t map_id;
};
/**
* UNKOWN TYPE
*/
-struct FFXIVARR_IPC_UNK322 : FFXIVIpcBasePacket
+struct FFXIVARR_IPC_UNK322 :
+ FFXIVIpcBasePacket< IPCTYPE_UNK_322 >
{
- /* 0000 */ uint8_t unk[8];
+ /* 0000 */ uint8_t unk[8];
};
/**
* UNKOWN TYPE
*/
-struct FFXIVARR_IPC_UNK320 : FFXIVIpcBasePacket
+struct FFXIVARR_IPC_UNK320 :
+ FFXIVIpcBasePacket< IPCTYPE_UNK_320 >
{
- /* 0000 */ uint8_t unk[0x38];
+ /* 0000 */ uint8_t unk[0x38];
};
/**
* Structural representation of the packet sent by the server
* prepare zoning, showing screenmessage
*/
-struct FFXIVIpcPrepareZoning : FFXIVIpcBasePacket
+struct FFXIVIpcPrepareZoning :
+ FFXIVIpcBasePacket< PrepareZoning >
{
- uint32_t logMessage;
- uint16_t targetZone;
- uint16_t animation;
- uint8_t param4;
- uint8_t hideChar;
- uint8_t fadeOut;
- uint8_t param7;
- uint8_t fadeOutTime;
- uint8_t unknown;
- uint16_t padding;
+ uint32_t logMessage;
+ uint16_t targetZone;
+ uint16_t animation;
+ uint8_t param4;
+ uint8_t hideChar;
+ uint8_t fadeOut;
+ uint8_t param7;
+ uint8_t fadeOutTime;
+ uint8_t unknown;
+ uint16_t padding;
};
/**
@@ -1249,17 +1405,18 @@ struct FFXIVIpcPrepareZoning : FFXIVIpcBasePacket
*
* See https://gist.github.com/Minoost/c35843c4c8a7a931f31fdaac9bce64c2
*/
-struct FFXIVIpcCFNotify : FFXIVIpcBasePacket
+struct FFXIVIpcCFNotify :
+ FFXIVIpcBasePacket< CFNotify >
{
- uint32_t state1; // 3 = cancelled, 4 = duty ready
- uint32_t state2; // if state1 == 3, state2 is cancelled reason
+ uint32_t state1; // 3 = cancelled, 4 = duty ready
+ uint32_t state2; // if state1 == 3, state2 is cancelled reason
- uint32_t param1; // usually classJobId
- uint32_t param2; // usually flag
- uint32_t param3; // usually languages, sometimes join in progress timestamp
+ uint32_t param1; // usually classJobId
+ uint32_t param2; // usually flag
+ uint32_t param3; // usually languages, sometimes join in progress timestamp
- uint16_t param4; // usually roulette id
- uint16_t contents[5];
+ uint16_t param4; // usually roulette id
+ uint16_t contents[5];
};
/**
@@ -1269,212 +1426,231 @@ struct FFXIVIpcCFNotify : FFXIVIpcBasePacket
* Do note that this packet has to come early in login phase (around initui packet)
* or it won't be applied until you reconnect
*/
-struct FFXIVIpcCFAvailableContents : FFXIVIpcBasePacket
+struct FFXIVIpcCFAvailableContents :
+ FFXIVIpcBasePacket< CFAvailableContents >
{
- uint8_t contents[0x48];
+ uint8_t contents[0x48];
};
/**
* Structural representation of the packet sent by the server
* to update adventure in needs in duty roulette
*/
-struct FFXIVIpcCFPlayerInNeed : FFXIVIpcBasePacket
+struct FFXIVIpcCFPlayerInNeed :
+ FFXIVIpcBasePacket< CFPlayerInNeed >
{
- // Ordered by roulette id
- uint8_t inNeeds[0x10];
+ // Ordered by roulette id
+ uint8_t inNeeds[0x10];
};
/**
* Structural representation of the packet sent by the server
* to update duty info in general
*/
-struct FFXIVIpcCFDutyInfo : FFXIVIpcBasePacket
+struct FFXIVIpcCFDutyInfo :
+ FFXIVIpcBasePacket< CFDutyInfo >
{
- uint8_t penaltyTime;
- uint8_t unknown[7];
+ uint8_t penaltyTime;
+ uint8_t unknown[7];
};
-struct FFXIVIpcCFRegisterDuty : FFXIVIpcBasePacket
+struct FFXIVIpcCFRegisterDuty :
+ FFXIVIpcBasePacket< CFRegisterDuty >
{
- uint32_t unknown0; // 0x301
- uint8_t rouletteId; // if it's a daily roulette
- uint8_t unknown1; // 0xDB
- uint16_t contentId;
+ uint32_t unknown0; // 0x301
+ uint8_t rouletteId; // if it's a daily roulette
+ uint8_t unknown1; // 0xDB
+ uint16_t contentId;
};
-struct FFXIVIpcCFMemberStatus : FFXIVIpcBasePacket
+struct FFXIVIpcCFMemberStatus :
+ FFXIVIpcBasePacket< CFMemberStatus >
{
- uint16_t contentId;
- uint16_t unknown1;
- uint8_t status;
- uint8_t currentTank;
- uint8_t currentDps;
- uint8_t currentHealer;
- uint8_t estimatedTime;
- uint8_t unknown2[3];
- uint32_t unknown3;
+ uint16_t contentId;
+ uint16_t unknown1;
+ uint8_t status;
+ uint8_t currentTank;
+ uint8_t currentDps;
+ uint8_t currentHealer;
+ uint8_t estimatedTime;
+ uint8_t unknown2[3];
+ uint32_t unknown3;
};
-struct FFXIVIpcEorzeaTimeOffset : FFXIVIpcBasePacket
+struct FFXIVIpcEorzeaTimeOffset :
+ FFXIVIpcBasePacket< EorzeaTimeOffset >
{
- uint64_t timestamp;
+ uint64_t timestamp;
};
/**
* Structural representation of the packet sent by the server
* to set the gear show/hide status of a character
*/
-struct FFXIVIpcEquipDisplayFlags : FFXIVIpcBasePacket
+struct FFXIVIpcEquipDisplayFlags :
+ FFXIVIpcBasePacket< EquipDisplayFlags >
{
- uint8_t bitmask;
+ uint8_t bitmask;
};
/**
* Structural representation of the packet sent by the server
* to mount a player
*/
-struct FFXIVIpcMount : FFXIVIpcBasePacket
+struct FFXIVIpcMount :
+ FFXIVIpcBasePacket< Mount >
{
- uint32_t id;
+ uint32_t id;
};
/**
* Structural representation of the packet sent by the server
* to mount a player
*/
-struct FFXIVIpcDirectorVars : FFXIVIpcBasePacket
+struct FFXIVIpcDirectorVars :
+ FFXIVIpcBasePacket< DirectorVars >
{
- /*! DirectorType | ContentId */
- uint32_t m_directorId;
- /*! currect sequence */
- uint8_t m_sequence;
- /*! current branch */
- uint8_t m_branch;
- /*! raw storage for flags/vars */
- uint8_t m_unionData[10];
+ /*! DirectorType | ContentId */
+ uint32_t m_directorId;
+ /*! currect sequence */
+ uint8_t m_sequence;
+ /*! current branch */
+ uint8_t m_branch;
+ /*! raw storage for flags/vars */
+ uint8_t m_unionData[10];
};
-struct FFXIVIpcActorGauge : FFXIVIpcBasePacket
+struct FFXIVIpcActorGauge :
+ FFXIVIpcBasePacket< ActorGauge >
{
- uint8_t classJobId;
- uint8_t data[15]; // depends on classJobId
+ uint8_t classJobId;
+ uint8_t data[15]; // depends on classJobId
};
-struct FFXIVIpcPerformNote : FFXIVIpcBasePacket
+struct FFXIVIpcPerformNote :
+ FFXIVIpcBasePacket< PerformNote >
{
- uint8_t data[32];
+ uint8_t data[32];
};
-struct FFXIVIpcWardInfo : FFXIVIpcBasePacket
+struct FFXIVIpcWardInfo :
+ FFXIVIpcBasePacket< WardInfo >
{
- uint16_t unknown0;
- uint16_t wardNum; // set 1 for "Mist, Ward 2"
- uint16_t zoneId;
- uint16_t worldId;
- uint8_t unknown1;
- uint8_t subInstance; // (default : 1/2)
- uint8_t unknown3;
- uint8_t unknown4;
- uint8_t unknown5;
- uint8_t unknown6;
- uint8_t unknown7;
- uint8_t unknown8;
- struct {
- uint8_t houseSize; //1 = small, 2 = middle, 3 = big; 1
- uint8_t houseState; //1 = for sell, 2 = sold, 3 = hasOwner, 0x0A = House sharing; 2
- uint8_t iconColor; //HouseState has to be 3; 1 = Private, 2 = FC House; 4
- uint8_t iconAddIcon; //Heart Icon = 2; 6
- uint32_t unknown9; //can be 0 (default) maybe fcId; 8
- uint32_t fcIcon; //can be 0 (default); 12
- uint32_t fcIconColor; //can be 0 (default); 16
- uint16_t houseRoofId; //18
- uint16_t houseFacadeId;//20
- uint16_t houseWindowId;//22
- uint16_t houseDoorId;//24
- uint8_t gardenData[4];//28
- uint16_t gardenSignId; //For fcIcon; 30
- uint16_t gardenFenceId; //32
- uint8_t color[8]; //40
- } landSet[30];
+ uint16_t unknown0;
+ uint16_t wardNum; // set 1 for "Mist, Ward 2"
+ uint16_t zoneId;
+ uint16_t worldId;
+ uint8_t unknown1;
+ uint8_t subInstance; // (default : 1/2)
+ uint8_t unknown3;
+ uint8_t unknown4;
+ uint8_t unknown5;
+ uint8_t unknown6;
+ uint8_t unknown7;
+ uint8_t unknown8;
+ struct
+ {
+ uint8_t houseSize; //1 = small, 2 = middle, 3 = big; 1
+ uint8_t houseState; //1 = for sell, 2 = sold, 3 = hasOwner, 0x0A = House sharing; 2
+ uint8_t iconColor; //HouseState has to be 3; 1 = Private, 2 = FC House; 4
+ uint8_t iconAddIcon; //Heart Icon = 2; 6
+ uint32_t unknown9; //can be 0 (default) maybe fcId; 8
+ uint32_t fcIcon; //can be 0 (default); 12
+ uint32_t fcIconColor; //can be 0 (default); 16
+ uint16_t houseRoofId; //18
+ uint16_t houseFacadeId;//20
+ uint16_t houseWindowId;//22
+ uint16_t houseDoorId;//24
+ uint8_t gardenData[4];//28
+ uint16_t gardenSignId; //For fcIcon; 30
+ uint16_t gardenFenceId; //32
+ uint8_t color[8]; //40
+ } landSet[30];
};
-struct FFXIVIpcWardYardInfo : FFXIVIpcBasePacket
+struct FFXIVIpcWardYardInfo :
+ FFXIVIpcBasePacket< WardYardInfo >
{
- /* consistency check? */
- uint32_t unknown1; //always 0xFFFFFFFF
- uint32_t unknown2; //always 0xFFFFFFFF
- uint8_t unknown3; //always 0xFF
- /* --- */
- uint8_t packetNum;
- uint16_t packetTotal;
- struct
- {
- uint32_t itemId;
- uint16_t itemRotation;
- uint16_t pos_x;
- uint16_t pos_y;
- uint16_t pos_z;
- } object[100];
+ /* consistency check? */
+ uint32_t unknown1; //always 0xFFFFFFFF
+ uint32_t unknown2; //always 0xFFFFFFFF
+ uint8_t unknown3; //always 0xFF
+ /* --- */
+ uint8_t packetNum;
+ uint16_t packetTotal;
+ struct
+ {
+ uint32_t itemId;
+ uint16_t itemRotation;
+ uint16_t pos_x;
+ uint16_t pos_y;
+ uint16_t pos_z;
+ } object[100];
};
-struct FFXIVIpcMSQTrackerProgress : FFXIVIpcBasePacket
+struct FFXIVIpcMSQTrackerProgress :
+ FFXIVIpcBasePacket< MSQTrackerProgress >
{
- uint32_t id;
- uint32_t padding;
+ uint32_t id;
+ uint32_t padding;
};
-struct FFXIVIpcMSQTrackerComplete : FFXIVIpcBasePacket
+struct FFXIVIpcMSQTrackerComplete :
+ FFXIVIpcBasePacket< MSQTrackerComplete >
{
- uint32_t id;
- uint32_t padding1;
- uint64_t padding2;
- uint64_t padding3;
- uint64_t padding4; // last 4 bytes is uint32_t but who cares
+ uint32_t id;
+ uint32_t padding1;
+ uint64_t padding2;
+ uint64_t padding3;
+ uint64_t padding4; // last 4 bytes is uint32_t but who cares
};
-struct FFXIVIpcObjectSpawn : FFXIVIpcBasePacket
+struct FFXIVIpcObjectSpawn :
+ FFXIVIpcBasePacket< ObjectSpawn >
{
- uint8_t spawnIndex;
- uint8_t objKind;
- uint8_t state;
- uint8_t unknown3;
- uint32_t objId;
- uint32_t actorId;
- uint32_t levelId;
- uint32_t unknown10;
- uint32_t someActorId14;
- uint32_t gimmickId;
- float scale;
- int16_t unknown20a;
- uint16_t rotation;
- int16_t unknown24a;
- int16_t unknown24b;
- uint16_t unknown28a;
- int16_t unknown28c;
- uint32_t unknown2C;
- Common::FFXIVARR_POSITION3 position;
- int16_t unknown3C;
- int16_t unknown3E;
+ uint8_t spawnIndex;
+ uint8_t objKind;
+ uint8_t state;
+ uint8_t unknown3;
+ uint32_t objId;
+ uint32_t actorId;
+ uint32_t levelId;
+ uint32_t unknown10;
+ uint32_t someActorId14;
+ uint32_t gimmickId;
+ float scale;
+ int16_t unknown20a;
+ uint16_t rotation;
+ int16_t unknown24a;
+ int16_t unknown24b;
+ uint16_t unknown28a;
+ int16_t unknown28c;
+ uint32_t unknown2C;
+ Common::FFXIVARR_POSITION3 position;
+ int16_t unknown3C;
+ int16_t unknown3E;
};
-struct FFXIVIpcObjectDespawn : FFXIVIpcBasePacket
+struct FFXIVIpcObjectDespawn :
+ FFXIVIpcBasePacket< ObjectDespawn >
{
- uint8_t spawnIndex;
- uint8_t padding[7];
+ uint8_t spawnIndex;
+ uint8_t padding[7];
};
-struct FFXIVIpcDuelChallenge : FFXIVIpcBasePacket
+struct FFXIVIpcDuelChallenge :
+ FFXIVIpcBasePacket< DuelChallenge >
{
- uint8_t otherClassJobId;
- uint8_t otherLevel; // class job level
- uint8_t challengeByYou; // 0 if the other challenges you, 1 if you challenges the other.
- uint8_t otherItemLevel;
+ uint8_t otherClassJobId;
+ uint8_t otherLevel; // class job level
+ uint8_t challengeByYou; // 0 if the other challenges you, 1 if you challenges the other.
+ uint8_t otherItemLevel;
- uint32_t otherActorId;
+ uint32_t otherActorId;
- char otherName[32];
+ char otherName[32];
};
diff --git a/src/common/Util/LockedQueue.h b/src/common/Util/LockedQueue.h
index 02cd24f9..18d143a3 100644
--- a/src/common/Util/LockedQueue.h
+++ b/src/common/Util/LockedQueue.h
@@ -1,4 +1,5 @@
#pragma once
+
#include
#include
#include
@@ -7,118 +8,120 @@
namespace Core {
- template
- class LockedQueue
- {
- public:
- LockedQueue();
- ~LockedQueue();
+template< class T >
+class LockedQueue
+{
+public:
+ LockedQueue();
- T pop();
+ ~LockedQueue();
- //we can pass this in by reference, instead of copying
- void push(const T object);
+ T pop();
- //we can pass this in by reference
- //this will push it onto the queue, and swap the object
- // with a default-constructed T at the same time.
- void push_swap(T& object);
- void push_reset(T& object);
+ //we can pass this in by reference, instead of copying
+ void push( const T object );
+
+ //we can pass this in by reference
+ //this will push it onto the queue, and swap the object
+ // with a default-constructed T at the same time.
+ void push_swap( T& object );
+
+ void push_reset( T& object );
- std::size_t size();
+ std::size_t size();
- protected:
- std::queue m_queue;
- std::mutex m_mutex;
+protected:
+ std::queue< T > m_queue;
+ std::mutex m_mutex;
- };
+};
- template
- LockedQueue::LockedQueue()
- {
+template< class T >
+LockedQueue< T >::LockedQueue()
+{
- }
+}
- template
- std::size_t LockedQueue::size()
- {
- std::lock_guard lock( m_mutex);
- return m_queue.size();
- }
+template< class T >
+std::size_t LockedQueue< T >::size()
+{
+ std::lock_guard< std::mutex > lock( m_mutex );
+ return m_queue.size();
+}
- template
- LockedQueue::~LockedQueue()
- {
+template< class T >
+LockedQueue< T >::~LockedQueue()
+{
- }
+}
- template
- T LockedQueue::pop()
- {
- std::lock_guard lock( m_mutex);
+template< class T >
+T LockedQueue< T >::pop()
+{
+ std::lock_guard< std::mutex > lock( m_mutex );
- if( m_queue.empty())
- {
- return T();
- }
+ if( m_queue.empty() )
+ {
+ return T();
+ }
- T result = m_queue.front();
+ T result = m_queue.front();
- m_queue.pop();
+ m_queue.pop();
- return result;
- }
+ return result;
+}
- template
- void LockedQueue::push(const T object)
- {
- std::lock_guard lock( m_mutex);
- m_queue.push(object);
- }
+template< class T >
+void LockedQueue< T >::push( const T object )
+{
+ std::lock_guard< std::mutex > lock( m_mutex );
+ m_queue.push( object );
+}
- template
- void LockedQueue::push_swap(T& object)
- {
- std::lock_guard lock( m_mutex);
+template< class T >
+void LockedQueue< T >::push_swap( T& object )
+{
+ std::lock_guard< std::mutex > lock( m_mutex );
- m_queue.push(object);
+ m_queue.push( object );
- T default_ctored_object = T();
- //this is a special swap that will do a legit naive swap normally,
- // except if there exists a function called T::swap(), which is
- // specialized and possibly faster.
- boost::swap(object, default_ctored_object);
+ T default_ctored_object = T();
+ //this is a special swap that will do a legit naive swap normally,
+ // except if there exists a function called T::swap(), which is
+ // specialized and possibly faster.
+ boost::swap( object, default_ctored_object );
- //default_ctored_object is now the value of object, and it will go out
- // of scope here. In the case that T is a shared_ptr of some kind,
- // this will allow that the object on the queue is the *last* shared_ptr
- // in existance by the time this function returns.
+ //default_ctored_object is now the value of object, and it will go out
+ // of scope here. In the case that T is a shared_ptr of some kind,
+ // this will allow that the object on the queue is the *last* shared_ptr
+ // in existance by the time this function returns.
- }
+}
- template
- void LockedQueue::push_reset(T& object)
- {
- std::lock_guard lock( m_mutex);
+template< class T >
+void LockedQueue< T >::push_reset( T& object )
+{
+ std::lock_guard< std::mutex > lock( m_mutex );
- m_queue.push(object);
+ m_queue.push( object );
- T default_ctored_object = T();
+ T default_ctored_object = T();
- object.reset();
+ object.reset();
- //default_ctored_object is now the value of object, and it will go out
- // of scope here. In the case that T is a shared_ptr of some kind,
- // this will allow that the object on the queue is the *last* shared_ptr
- // in existance by the time this function returns.
+ //default_ctored_object is now the value of object, and it will go out
+ // of scope here. In the case that T is a shared_ptr of some kind,
+ // this will allow that the object on the queue is the *last* shared_ptr
+ // in existance by the time this function returns.
- }
+}
}
\ No newline at end of file
diff --git a/src/common/Util/LockedWaitQueue.h b/src/common/Util/LockedWaitQueue.h
index 1ac2eae9..e07103cf 100644
--- a/src/common/Util/LockedWaitQueue.h
+++ b/src/common/Util/LockedWaitQueue.h
@@ -8,90 +8,97 @@
#include
#include
-namespace Core
-{
+namespace Core {
template< typename T >
class LockedWaitQueue
{
private:
- std::mutex m_queueLock;
- std::queue< T > m_queue;
- std::condition_variable m_condition;
- std::atomic m_shutdown;
+ std::mutex m_queueLock;
+ std::queue< T > m_queue;
+ std::condition_variable m_condition;
+ std::atomic< bool > m_shutdown;
public:
- LockedWaitQueue() : m_shutdown(false) { }
+ LockedWaitQueue< T >() :
+ m_shutdown( false )
+ {
+ }
- void push( const T& value )
+ void push( const T& value )
+ {
+ std::lock_guard< std::mutex > lock( m_queueLock );
+ m_queue.push( std::move( value ) );
+
+ m_condition.notify_one();
+ }
+
+ bool empty()
+ {
+ std::lock_guard< std::mutex > lock( m_queueLock );
+
+ return m_queue.empty();
+ }
+
+ bool pop( T& value )
+ {
+ std::lock_guard< std::mutex > lock( m_queueLock );
+
+ if( m_queue.empty() || m_shutdown )
+ return false;
+
+ value = m_queue.front();
+
+ m_queue.pop();
+
+ return true;
+ }
+
+ void waitAndPop( T& value )
+ {
+ std::unique_lock< std::mutex > lock( m_queueLock );
+
+ while( m_queue.empty() && !m_shutdown )
+ m_condition.wait( lock );
+
+ if( m_queue.empty() || m_shutdown )
+ return;
+
+ value = m_queue.front();
+
+ m_queue.pop();
+ }
+
+ void cancel()
+ {
+ std::unique_lock< std::mutex > lock( m_queueLock );
+
+ while( !m_queue.empty() )
{
- std::lock_guard< std::mutex > lock( m_queueLock );
- m_queue.push( std::move( value ) );
+ T& value = m_queue.front();
- m_condition.notify_one();
+ deleteQueuedObject( value );
+
+ m_queue.pop();
}
- bool empty()
- {
- std::lock_guard< std::mutex > lock( m_queueLock );
+ m_shutdown = true;
- return m_queue.empty();
- }
-
- bool pop( T& value )
- {
- std::lock_guard< std::mutex > lock( m_queueLock );
-
- if( m_queue.empty() || m_shutdown )
- return false;
-
- value = m_queue.front();
-
- m_queue.pop();
-
- return true;
- }
-
- void waitAndPop( T& value )
- {
- std::unique_lock< std::mutex > lock( m_queueLock );
-
- while( m_queue.empty() && !m_shutdown )
- m_condition.wait(lock);
-
- if( m_queue.empty() || m_shutdown )
- return;
-
- value = m_queue.front();
-
- m_queue.pop();
- }
-
- void cancel()
- {
- std::unique_lock< std::mutex > lock( m_queueLock );
-
- while( !m_queue.empty() )
- {
- T& value = m_queue.front();
-
- deleteQueuedObject( value );
-
- m_queue.pop();
- }
-
- m_shutdown = true;
-
- m_condition.notify_all();
- }
+ m_condition.notify_all();
+ }
private:
- template< typename E = T >
- typename std::enable_if< std::is_pointer< E >::value >::type deleteQueuedObject( E& obj ) { delete obj; }
+ template< typename E = T >
+ typename std::enable_if< std::is_pointer< E >::value >::type deleteQueuedObject( E& obj )
+ {
+ delete obj;
+ }
- template< typename E = T >
- typename std::enable_if< !std::is_pointer< E >::value >::type deleteQueuedObject( E const& ) { }
+ template< typename E = T >
+ typename std::enable_if< !std::is_pointer< E >::value >::type deleteQueuedObject( E const& )
+ {
+ }
};
}
diff --git a/src/common/Util/SpawnIndexAllocator.h b/src/common/Util/SpawnIndexAllocator.h
index d6af5a40..dad5fdf8 100644
--- a/src/common/Util/SpawnIndexAllocator.h
+++ b/src/common/Util/SpawnIndexAllocator.h
@@ -5,103 +5,102 @@
#include
#include
-namespace Core
+namespace Core {
+namespace Util {
+template< typename T, typename ActorIdType = uint32_t >
+class SpawnIndexAllocator
{
-namespace Util
-{
- template< typename T, typename ActorIdType = uint32_t >
- class SpawnIndexAllocator
- {
- public:
- static_assert( std::is_same< T, uint8_t >::value || std::is_same< T, uint16_t >::value ||
- std::is_same< T, uint32_t >::value || std::is_same< T, uint64_t >::value,
- "T must be uint8_t, uint16_t, uint32_t, uint64_t" );
+public:
+ static_assert( std::is_same< T, uint8_t >::value || std::is_same< T, uint16_t >::value ||
+ std::is_same< T, uint32_t >::value || std::is_same< T, uint64_t >::value,
+ "T must be uint8_t, uint16_t, uint32_t, uint64_t" );
- SpawnIndexAllocator() :
- m_maxSlotId( 0 ),
- m_reserveFirstSlot( false )
- { }
+ SpawnIndexAllocator() :
+ m_maxSlotId( 0 ),
+ m_reserveFirstSlot( false )
+ {
+ }
- void init( T maxSlotId, bool reserveFirstSlot = false )
- {
- m_maxSlotId = maxSlotId;
- m_reserveFirstSlot = reserveFirstSlot;
+ void init( T maxSlotId, bool reserveFirstSlot = false )
+ {
+ m_maxSlotId = maxSlotId;
+ m_reserveFirstSlot = reserveFirstSlot;
- setupQueue();
+ setupQueue();
- // todo: reserve max slot id in map to prevent any runtime reshashing
- }
+ // todo: reserve max slot id in map to prevent any runtime reshashing
+ }
- T freeUsedSpawnIndex( ActorIdType actorId )
- {
- auto it = m_actorIdToAllocatedMap.find( actorId );
- if( it == m_actorIdToAllocatedMap.end() )
- return 0;
+ T freeUsedSpawnIndex( ActorIdType actorId )
+ {
+ auto it = m_actorIdToAllocatedMap.find( actorId );
+ if( it == m_actorIdToAllocatedMap.end() )
+ return 0;
- auto index = it->second;
- m_availableIds.push( index );
- m_actorIdToAllocatedMap.erase( it );
+ auto index = it->second;
+ m_availableIds.push( index );
+ m_actorIdToAllocatedMap.erase( it );
- return index;
- }
+ return index;
+ }
- T getNextFreeSpawnIndex( ActorIdType actorId )
- {
- assert( m_maxSlotId != 0 );
+ T getNextFreeSpawnIndex( ActorIdType actorId )
+ {
+ assert( m_maxSlotId != 0 );
- if( m_availableIds.empty() )
- return getAllocFailId();
+ if( m_availableIds.empty() )
+ return getAllocFailId();
- auto nextId = m_availableIds.front();
- m_availableIds.pop();
+ auto nextId = m_availableIds.front();
+ m_availableIds.pop();
- m_actorIdToAllocatedMap[actorId] = nextId;
+ m_actorIdToAllocatedMap[ actorId ] = nextId;
- return nextId;
- }
+ return nextId;
+ }
- void freeAllSpawnIndexes()
- {
- setupQueue();
+ void freeAllSpawnIndexes()
+ {
+ setupQueue();
- m_actorIdToAllocatedMap.clear();
- }
+ m_actorIdToAllocatedMap.clear();
+ }
- bool isSpawnIndexValid( T spawnIndex )
- {
- return spawnIndex != getAllocFailId();
- }
+ bool isSpawnIndexValid( T spawnIndex )
+ {
+ return spawnIndex != getAllocFailId();
+ }
- constexpr T getAllocFailId() const
- {
- return static_cast< T >( -1 );
- }
+ constexpr T getAllocFailId() const
+ {
+ return static_cast< T >( -1 );
+ }
- protected:
- void setupQueue()
- {
- assert( m_maxSlotId != 0 );
+protected:
+ void setupQueue()
+ {
+ assert( m_maxSlotId != 0 );
- while( !m_availableIds.empty() )
- m_availableIds.pop();
+ while( !m_availableIds.empty() )
+ m_availableIds.pop();
- uint32_t start = 0;
+ uint32_t start = 0;
- // slot 0 is reserved when used for spawning actors/players otherwise the local player actor spawnIndex
- // will be used by another actor and despawn the local player
- if( m_reserveFirstSlot )
- start = 1;
+ // slot 0 is reserved when used for spawning actors/players otherwise the local player actor spawnIndex
+ // will be used by another actor and despawn the local player
+ if( m_reserveFirstSlot )
+ start = 1;
- for( uint32_t i = start; i < m_maxSlotId; i++ )
- m_availableIds.push( i );
- }
+ for( uint32_t i = start; i < m_maxSlotId; i++ )
+ m_availableIds.push( i );
+ }
- std::queue< T > m_availableIds;
- std::unordered_map< ActorIdType, T > m_actorIdToAllocatedMap;
+ std::queue< T > m_availableIds;
+ std::unordered_map< ActorIdType, T > m_actorIdToAllocatedMap;
- T m_maxSlotId;
- bool m_reserveFirstSlot;
- };
+ T m_maxSlotId;
+ bool m_reserveFirstSlot;
+};
}
}
diff --git a/src/common/Util/Util.cpp b/src/common/Util/Util.cpp
index 48c565ae..56e277ba 100644
--- a/src/common/Util/Util.cpp
+++ b/src/common/Util/Util.cpp
@@ -4,102 +4,102 @@
std::string Core::Util::binaryToHexString( uint8_t* pBinData, uint16_t size )
{
- std::string outStr;
+ std::string outStr;
- for( uint32_t i = 0; i < size; i++ )
- {
- outStr += boost::str( boost::format( "%|02X|" ) % ( int32_t ) ( pBinData[i] & 0xFF ) );
- }
+ for( uint32_t i = 0; i < size; i++ )
+ {
+ outStr += boost::str( boost::format( "%|02X|" ) % ( int32_t ) ( pBinData[ i ] & 0xFF ) );
+ }
- return outStr;
+ return outStr;
}
std::string Core::Util::binaryToHexDump( uint8_t* pBinData, uint16_t size )
{
- int bytesPerLine = 16;
- constexpr char hexChars[] = "0123456789ABCDEF";
-
- int offsetBlock = 8 + 3;
- int byteBlock = offsetBlock + bytesPerLine * 3 + ( bytesPerLine - 1 ) / 8 + 2;
- int lineLength = byteBlock + bytesPerLine + 1;
+ int bytesPerLine = 16;
+ constexpr char hexChars[] = "0123456789ABCDEF";
- std::string line ( lineLength, ' ' );
- int numLines = ( size + bytesPerLine - 1 ) / bytesPerLine;
-
+ int offsetBlock = 8 + 3;
+ int byteBlock = offsetBlock + bytesPerLine * 3 + ( bytesPerLine - 1 ) / 8 + 2;
+ int lineLength = byteBlock + bytesPerLine + 1;
- std::string outStr;
+ std::string line( lineLength, ' ' );
+ int numLines = ( size + bytesPerLine - 1 ) / bytesPerLine;
- for( uint32_t i = 0; i < size; i += bytesPerLine )
- {
- line[0] = hexChars[( i >> 28 ) & 0xF];
- line[1] = hexChars[( i >> 24 ) & 0xF];
- line[2] = hexChars[( i >> 20 ) & 0xF];
- line[3] = hexChars[( i >> 16 ) & 0xF];
- line[4] = hexChars[( i >> 12 ) & 0xF];
- line[5] = hexChars[( i >> 8 ) & 0xF];
- line[6] = hexChars[( i >> 4 ) & 0xF];
- line[7] = hexChars[( i >> 0 ) & 0xF];
- int hexColumn = offsetBlock;
- int charColumn = byteBlock;
+ std::string outStr;
- for( int j = 0; j < bytesPerLine; j++ )
+ for( uint32_t i = 0; i < size; i += bytesPerLine )
+ {
+ line[ 0 ] = hexChars[ ( i >> 28 ) & 0xF ];
+ line[ 1 ] = hexChars[ ( i >> 24 ) & 0xF ];
+ line[ 2 ] = hexChars[ ( i >> 20 ) & 0xF ];
+ line[ 3 ] = hexChars[ ( i >> 16 ) & 0xF ];
+ line[ 4 ] = hexChars[ ( i >> 12 ) & 0xF ];
+ line[ 5 ] = hexChars[ ( i >> 8 ) & 0xF ];
+ line[ 6 ] = hexChars[ ( i >> 4 ) & 0xF ];
+ line[ 7 ] = hexChars[ ( i >> 0 ) & 0xF ];
+
+ int hexColumn = offsetBlock;
+ int charColumn = byteBlock;
+
+ for( int j = 0; j < bytesPerLine; j++ )
+ {
+ if( j > 0 && ( j & 7 ) == 0 )
{
- if( j > 0 && ( j & 7 ) == 0)
- {
- hexColumn++;
- }
-
- if( i + j >= size )
- {
- line[hexColumn] = ' ';
- line[hexColumn + 1] = ' ';
- line[charColumn] = ' ';
- }
- else
- {
- uint8_t by = pBinData[i + j];
- line[hexColumn] = hexChars[( by >> 4 ) & 0xF];
- line[hexColumn + 1] = hexChars[by & 0xF];
- line[charColumn] = by < 32 ? '.' : static_cast< char >( by );
- }
-
- hexColumn += 3;
- charColumn++;
+ hexColumn++;
}
- outStr += line + "\n";
- }
+ if( i + j >= size )
+ {
+ line[ hexColumn ] = ' ';
+ line[ hexColumn + 1 ] = ' ';
+ line[ charColumn ] = ' ';
+ }
+ else
+ {
+ uint8_t by = pBinData[ i + j ];
+ line[ hexColumn ] = hexChars[ ( by >> 4 ) & 0xF ];
+ line[ hexColumn + 1 ] = hexChars[ by & 0xF ];
+ line[ charColumn ] = by < 32 ? '.' : static_cast< char >( by );
+ }
- return outStr;
+ hexColumn += 3;
+ charColumn++;
+ }
+
+ outStr += line + "\n";
+ }
+
+ return outStr;
}
uint64_t Core::Util::getTimeMs()
{
- std::chrono::milliseconds epoch = std::chrono::duration_cast< std::chrono::milliseconds >
- ( std::chrono::system_clock::now().time_since_epoch() );
- return epoch.count();
+ std::chrono::milliseconds epoch = std::chrono::duration_cast< std::chrono::milliseconds >
+ ( std::chrono::system_clock::now().time_since_epoch() );
+ return epoch.count();
}
int64_t Core::Util::getTimeSeconds()
{
- std::chrono::seconds epoch = std::chrono::seconds( std::time( nullptr ) );
- return epoch.count();
+ std::chrono::seconds epoch = std::chrono::seconds( std::time( nullptr ) );
+ return epoch.count();
}
uint64_t Core::Util::getEorzeanTimeStamp()
{
- return static_cast< uint64_t >( getTimeSeconds() * 20.571428571428573f );
+ return static_cast< uint64_t >( getTimeSeconds() * 20.571428571428573f );
}
void Core::Util::valueToFlagByteIndexValue( uint32_t inVal, uint8_t& outVal, uint16_t& outIndex )
{
- uint32_t id = inVal;
- outIndex = id / 8;
- uint8_t bitIndex = id % 8;
+ uint32_t id = inVal;
+ outIndex = id / 8;
+ uint8_t bitIndex = id % 8;
- outVal = 1 << bitIndex;
+ outVal = 1 << bitIndex;
}
diff --git a/src/common/Util/UtilMath.cpp b/src/common/Util/UtilMath.cpp
index 680998d1..890d986c 100644
--- a/src/common/Util/UtilMath.cpp
+++ b/src/common/Util/UtilMath.cpp
@@ -3,69 +3,69 @@
float Core::Math::Util::distanceSq( float x, float y, float z, float x1, float y1, float z1 )
{
- float deltaX = x - x1;
- float deltaY = y - y1;
- float deltaZ = z - z1;
+ float deltaX = x - x1;
+ float deltaY = y - y1;
+ float deltaZ = z - z1;
- return ( deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ );
+ return ( deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ );
}
float Core::Math::Util::distance( float x, float y, float z, float x1, float y1, float z1 )
{
- return sqrtf( distanceSq( x, y, z, x1, y1, z1 ) );
+ return sqrtf( distanceSq( x, y, z, x1, y1, z1 ) );
}
float Core::Math::Util::distance2DSq( float x, float y, float x1, float y1 )
{
- float deltaX = x - x1;
- float deltaY = y - y1;
- return ( deltaX * deltaX + deltaY * deltaY );
+ float deltaX = x - x1;
+ float deltaY = y - y1;
+ return ( deltaX * deltaX + deltaY * deltaY );
}
float Core::Math::Util::distance2D( float x, float y, float x1, float y1 )
{
- return sqrtf( distance2DSq( x, y, x1, y1 ) );
+ return sqrtf( distance2DSq( x, y, x1, y1 ) );
}
float Core::Math::Util::calcAngTo( float x, float y, float x1, float y1 )
{
- float dx = x - x1;
- float dy = y - y1;
- if( dy != 0.0f )
- {
- return atan2( dy, dx );
- }
- else
- {
- return 0.0f;
- }
+ float dx = x - x1;
+ float dy = y - y1;
+ if( dy != 0.0f )
+ {
+ return atan2( dy, dx );
+ }
+ else
+ {
+ return 0.0f;
+ }
}
float Core::Math::Util::calcAngFrom( float x, float y, float x1, float y1 )
{
- float dx = x - x1;
- float dy = y - y1;
- if( dy != 0.0f )
- {
- return atan2( dy, dx );
- }
- else
- {
- return 0.0f;
- }
+ float dx = x - x1;
+ float dy = y - y1;
+ if( dy != 0.0f )
+ {
+ return atan2( dy, dx );
+ }
+ else
+ {
+ return 0.0f;
+ }
}
uint16_t Core::Math::Util::floatToUInt16( float val )
{
- return static_cast< uint16_t >( 0x8000 + val * 32.767f );
+ return static_cast< uint16_t >( 0x8000 + val * 32.767f );
}
uint16_t Core::Math::Util::floatToUInt16Rot( float val )
{
- return static_cast< uint16_t >( 0x8000 * ( ( val + PI ) ) / PI );
+ return static_cast< uint16_t >( 0x8000 * ( ( val + PI ) ) / PI );
}
uint8_t Core::Math::Util::floatToUInt8Rot( float val )
{
- return static_cast< uint8_t >( 0x80 * ( ( val + PI ) ) / PI );
+ return static_cast< uint8_t >( 0x80 * ( ( val + PI ) ) / PI );
}
\ No newline at end of file
diff --git a/src/common/Util/UtilMath.h b/src/common/Util/UtilMath.h
index 68feeabe..5826b08f 100644
--- a/src/common/Util/UtilMath.h
+++ b/src/common/Util/UtilMath.h
@@ -22,24 +22,26 @@ float calcAngTo( float x, float y, float x1, float y1 );
float calcAngFrom( float x, float y, float x1, float y1 );
uint16_t floatToUInt16( float val );
+
uint16_t floatToUInt16Rot( float val );
+
uint8_t floatToUInt8Rot( float val );
template
-
+ < typename T >
T clamp( T val, T minimum, T maximum )
{
- if (val > maximum)
- {
- return maximum;
- }
-
- if (val < minimum)
- {
- return minimum;
- }
+ if( val > maximum )
+ {
+ return maximum;
+ }
- return val;
+ if( val < minimum )
+ {
+ return minimum;
+ }
+
+ return val;
}
}
}
diff --git a/src/common/Version.h b/src/common/Version.h
index 3a02b99e..3b795fc6 100644
--- a/src/common/Version.h
+++ b/src/common/Version.h
@@ -4,12 +4,12 @@
#include
namespace Core {
- namespace Version {
+namespace Version {
- extern const std::string GIT_HASH;
- extern const std::string VERSION;
+extern const std::string GIT_HASH;
+extern const std::string VERSION;
- } /* Version */
+} /* Version */
} /* Core */
#endif
diff --git a/src/libraries b/src/libraries
index 61712f8f..b89d9a2d 160000
--- a/src/libraries
+++ b/src/libraries
@@ -1 +1 @@
-Subproject commit 61712f8f11892d12ad6878a80b9b89b318908558
+Subproject commit b89d9a2dfcca81ab4241e791a0a78bb9ea34036c
diff --git a/src/servers/Scripts/action/ActionReturn6.cpp b/src/servers/Scripts/action/ActionReturn6.cpp
index 7afc07e1..09169014 100644
--- a/src/servers/Scripts/action/ActionReturn6.cpp
+++ b/src/servers/Scripts/action/ActionReturn6.cpp
@@ -2,14 +2,17 @@
#include "../ScriptObject.h"
#include
-class ActionReturn6 : public ActionScript
+class ActionReturn6 :
+ public ActionScript
{
public:
- ActionReturn6() : ActionScript( 6 )
- {}
+ ActionReturn6() :
+ ActionScript( 6 )
+ {
+ }
- void onCastFinish( Core::Entity::Player& player, Core::Entity::Chara& targetActor ) override
- {
- player.returnToHomepoint();
- }
+ void onCastFinish( Core::Entity::Player& player, Core::Entity::Chara& targetActor ) override
+ {
+ player.returnToHomepoint();
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/action/ActionSprint3.cpp b/src/servers/Scripts/action/ActionSprint3.cpp
index b630cd8b..b44746ae 100644
--- a/src/servers/Scripts/action/ActionSprint3.cpp
+++ b/src/servers/Scripts/action/ActionSprint3.cpp
@@ -1,14 +1,17 @@
#include
#include
-class ActionSprint3 : public ActionScript
+class ActionSprint3 :
+ public ActionScript
{
public:
- ActionSprint3() : ActionScript( 3 )
- {}
+ ActionSprint3() :
+ ActionScript( 3 )
+ {
+ }
- void onCastFinish( Core::Entity::Player& player, Core::Entity::Chara& targetActor ) override
- {
- player.addStatusEffectByIdIfNotExist( 50, 20000, player, 30 );
- }
+ void onCastFinish( Core::Entity::Player& player, Core::Entity::Chara& targetActor ) override
+ {
+ player.addStatusEffectByIdIfNotExist( 50, 20000, player, 30 );
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/common/Aethernet.cpp b/src/servers/Scripts/common/Aethernet.cpp
index b925564e..3391049b 100644
--- a/src/servers/Scripts/common/Aethernet.cpp
+++ b/src/servers/Scripts/common/Aethernet.cpp
@@ -10,37 +10,41 @@
#define AETHERYTE_MENU_FAVORITE_POINT 4
#define AETHERYTE_MENU_FAVORITE_POINT_SECURITY_TOKEN 5
-class Aethernet : public EventScript
+class Aethernet :
+ public EventScript
{
public:
- Aethernet() : EventScript( EVENTSCRIPT_AETHERNET_ID )
- {}
+ Aethernet() :
+ EventScript( EVENTSCRIPT_AETHERNET_ID )
+ {
+ }
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- if( player.isAetheryteRegistered( eventId & 0xFFFF ) )
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ if( player.isAetheryteRegistered( eventId & 0xFFFF ) )
+ {
+ player.playScene( eventId, 2, 0, []( Entity::Player& player, const Event::SceneResult& result )
{
- player.playScene( eventId, 2, 0, []( Entity::Player& player, const Event::SceneResult& result )
- {
- if( result.param1 == 256 )
- {
- player.teleport( result.param2, 2 );
- }
- } );
- }
- else
- {
- player.eventActionStart( eventId, ACTION_ATTUNE, []( Entity::Player& player, uint32_t eventId, uint64_t additional )
- {
- player.registerAetheryte( eventId & 0xFFFF );
- player.playScene( eventId, 3, 0, 0, 0 );
- },
- [] ( Entity::Player& ply, uint32_t evntId, uint64_t additional )
- {
+ if( result.param1 == 256 )
+ {
+ player.teleport( result.param2, 2 );
+ }
+ } );
+ }
+ else
+ {
+ player.eventActionStart( eventId, ACTION_ATTUNE,
+ []( Entity::Player& player, uint32_t eventId, uint64_t additional )
+ {
+ player.registerAetheryte( eventId & 0xFFFF );
+ player.playScene( eventId, 3, 0, 0, 0 );
+ },
+ []( Entity::Player& ply, uint32_t evntId, uint64_t additional )
+ {
- }, 0 );
+ }, 0 );
- }
+ }
- }
+ }
};
diff --git a/src/servers/Scripts/common/Aetheryte.cpp b/src/servers/Scripts/common/Aetheryte.cpp
index d883bd3c..39c920e7 100644
--- a/src/servers/Scripts/common/Aetheryte.cpp
+++ b/src/servers/Scripts/common/Aetheryte.cpp
@@ -12,58 +12,63 @@
#define AETHERYTE_MENU_FAVORITE_POINT 4
#define AETHERYTE_MENU_FAVORITE_POINT_SECURITY_TOKEN 5
-class Aetheryte : public EventScript
+class Aetheryte :
+ public EventScript
{
public:
- Aetheryte() : EventScript( EVENTSCRIPT_AETHERYTE_ID )
- {}
+ Aetheryte() :
+ EventScript( EVENTSCRIPT_AETHERYTE_ID )
+ {
+ }
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- if( player.isAetheryteRegistered( eventId & 0xFFFF ) )
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ if( player.isAetheryteRegistered( eventId & 0xFFFF ) )
+ {
+ player.playScene( eventId, 0, 1, []( Entity::Player& player, const Event::SceneResult& result )
{
- player.playScene( eventId, 0, 1, []( Entity::Player& player, const Event::SceneResult& result )
- {
- if( result.param1 == 256 ) // set homepoint
- {
- player.setHomepoint( result.eventId & 0xFFFF );
- player.sendQuestMessage( result.eventId, 2, 0xEA, 0, 0 );
- } else if( result.param1 == 512 ) // aethernet access
- {
- if( result.param2 == 4 )
- {
- player.teleport( result.param3, 2 );
- }
- else if( result.param2 == 2 ) // register favored destination
- {
+ if( result.param1 == 256 ) // set homepoint
+ {
+ player.setHomepoint( result.eventId & 0xFFFF );
+ player.sendQuestMessage( result.eventId, 2, 0xEA, 0, 0 );
+ }
+ else if( result.param1 == 512 ) // aethernet access
+ {
+ if( result.param2 == 4 )
+ {
+ player.teleport( result.param3, 2 );
+ }
+ else if( result.param2 == 2 ) // register favored destination
+ {
- }
+ }
// else if( param2 == 0xC3E1 ) // register free destination
// {
//
// }
- }
- } );
- }
- else
- {
- player.eventActionStart( eventId, ACTION_ATTUNE, []( Entity::Player& player, uint32_t eventId, uint64_t additional )
- {
- player.registerAetheryte( eventId & 0xFFFF );
+ }
+ } );
+ }
+ else
+ {
+ player.eventActionStart( eventId, ACTION_ATTUNE,
+ []( Entity::Player& player, uint32_t eventId, uint64_t additional )
+ {
+ player.registerAetheryte( eventId & 0xFFFF );
- if( player.isActionLearned( ACTION_TELEPORT ) )
- {
- player.sendQuestMessage( eventId, 0, 2, 0, 0 );
- }
- else
- {
- player.sendQuestMessage( eventId, 0, 1, 1, 0 );
- player.learnAction( ACTION_TELEPORT );
- }
- },
- [] ( Entity::Player& player, uint32_t eventId, uint64_t additional )
- {}, 0 );
- }
- }
+ if( player.isActionLearned( ACTION_TELEPORT ) )
+ {
+ player.sendQuestMessage( eventId, 0, 2, 0, 0 );
+ }
+ else
+ {
+ player.sendQuestMessage( eventId, 0, 1, 1, 0 );
+ player.learnAction( ACTION_TELEPORT );
+ }
+ },
+ []( Entity::Player& player, uint32_t eventId, uint64_t additional )
+ {}, 0 );
+ }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp b/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp
index 137c5a02..746fa79d 100644
--- a/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp
+++ b/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp
@@ -1,37 +1,40 @@
#include
#include
-class CmnDefCutSceneReplay : public EventScript
+class CmnDefCutSceneReplay :
+ public EventScript
{
public:
- CmnDefCutSceneReplay() : EventScript( 721028 )
- {}
+ CmnDefCutSceneReplay() :
+ EventScript( 721028 )
+ {
+ }
- void Scene00000( Entity::Player& player )
- {
- auto callback = [this]( Entity::Player& player, const Event::SceneResult& result )
+ void Scene00000( Entity::Player& player )
+ {
+ auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
+ {
+ if( result.param2 != 0 )
{
- if( result.param2 != 0 )
- {
- Scene00001( player, result.param2 );
- }
- };
+ Scene00001( player, result.param2 );
+ }
+ };
- player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1, callback );
- }
+ player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1, callback );
+ }
- void Scene00001( Entity::Player& player, uint16_t returnScene )
- {
- auto callback = []( Entity::Player& player, const Event::SceneResult& result )
- {
- // todo: this is fucked
- };
+ void Scene00001( Entity::Player& player, uint16_t returnScene )
+ {
+ auto callback = []( Entity::Player& player, const Event::SceneResult& result )
+ {
+ // todo: this is fucked
+ };
- player.playScene( getId(), 1, 0xFB2EC8F8, 0, 1, returnScene, callback );
- }
+ player.playScene( getId(), 1, 0xFB2EC8F8, 0, 1, returnScene, callback );
+ }
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- Scene00000( player );
- }
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ Scene00000( player );
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp
index cced1ec6..3b990e2d 100644
--- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp
+++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp
@@ -1,19 +1,22 @@
#include
#include
-class CmnDefHousingSignboard : public EventScript
+class CmnDefHousingSignboard :
+ public EventScript
{
public:
- CmnDefHousingSignboard() : EventScript( 721031 )
- {}
+ CmnDefHousingSignboard() :
+ EventScript( 721031 )
+ {
+ }
- void Scene00000( Entity::Player& player )
- {
- player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1 );
- }
+ void Scene00000( Entity::Player& player )
+ {
+ player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1 );
+ }
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- Scene00000( player );
- }
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ Scene00000( player );
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/common/CmnDefInnBed.cpp b/src/servers/Scripts/common/CmnDefInnBed.cpp
index 8c09c3c3..f1b59824 100644
--- a/src/servers/Scripts/common/CmnDefInnBed.cpp
+++ b/src/servers/Scripts/common/CmnDefInnBed.cpp
@@ -1,57 +1,60 @@
#include
#include
-class CmnDefInnBed : public EventScript
+class CmnDefInnBed :
+ public EventScript
{
public:
- CmnDefInnBed() : EventScript( 720916 )
- {}
+ CmnDefInnBed() :
+ EventScript( 720916 )
+ {
+ }
- // menu
- void Scene00000( Entity::Player& player )
- {
- auto callback = [this]( Entity::Player& player, const Event::SceneResult& result )
- {
- if( result.param2 > 0 )
- Scene00001( player, result.param2 );
- };
+ // menu
+ void Scene00000( Entity::Player& player )
+ {
+ auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
+ {
+ if( result.param2 > 0 )
+ Scene00001( player, result.param2 );
+ };
- player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1, callback );
- }
+ player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1, callback );
+ }
- // lay down
- void Scene00001( Entity::Player& player, uint16_t param )
- {
- auto callback = [this]( Entity::Player& player, const Event::SceneResult& result )
- {
- Scene00002( player, result.param2 );
- };
+ // lay down
+ void Scene00001( Entity::Player& player, uint16_t param )
+ {
+ auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
+ {
+ Scene00002( player, result.param2 );
+ };
- player.playScene( getId(), 1, 0xF32E48F8, 0, 1, param, callback );
- }
+ player.playScene( getId(), 1, 0xF32E48F8, 0, 1, param, callback );
+ }
- // logout
- void Scene00002( Entity::Player& player, uint16_t param )
- {
- player.playScene( getId(), 2, 0xF32E48F8, 0, 1, param, nullptr );
- }
+ // logout
+ void Scene00002( Entity::Player& player, uint16_t param )
+ {
+ player.playScene( getId(), 2, 0xF32E48F8, 0, 1, param, nullptr );
+ }
- // wake up
- void Scene00100( Entity::Player& player )
- {
- auto callback = []( Entity::Player& player, const Event::SceneResult& result )
- { };
+ // wake up
+ void Scene00100( Entity::Player& player )
+ {
+ auto callback = []( Entity::Player& player, const Event::SceneResult& result )
+ {};
- player.playScene( getId(), 100, 0x800, 0, 0, callback );
- }
+ player.playScene( getId(), 100, 0x800, 0, 0, callback );
+ }
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- Scene00000( player );
- }
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ Scene00000( player );
+ }
- void onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
- {
- Scene00100( player );
- }
+ void onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
+ {
+ Scene00100( player );
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/common/CmnDefLinkShell.cpp b/src/servers/Scripts/common/CmnDefLinkShell.cpp
index 81d174b8..0faba511 100644
--- a/src/servers/Scripts/common/CmnDefLinkShell.cpp
+++ b/src/servers/Scripts/common/CmnDefLinkShell.cpp
@@ -5,55 +5,58 @@
#define ACTION_RENAME 3
#define ACTION_REMOVE 4
-class CmnDefLinkShell : public EventScript
+class CmnDefLinkShell :
+ public EventScript
{
public:
- CmnDefLinkShell() : EventScript( 0xB0006 )
- {}
+ CmnDefLinkShell() :
+ EventScript( 0xB0006 )
+ {
+ }
- void Scene00001( Entity::Player& player )
- {
- auto callback = [this]( Entity::Player& player, const Event::SceneResult& result )
+ void Scene00001( Entity::Player& player )
+ {
+ auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
+ {
+ switch( result.param2 )
{
- switch( result.param2 )
- {
- case ACTION_CREATE:
- Scene00002( player );
- break;
+ case ACTION_CREATE:
+ Scene00002( player );
+ break;
- case ACTION_RENAME:
- Scene00003( player );
- break;
+ case ACTION_RENAME:
+ Scene00003( player );
+ break;
- case ACTION_REMOVE:
- Scene00004( player );
- break;
- }
- };
+ case ACTION_REMOVE:
+ Scene00004( player );
+ break;
+ }
+ };
- player.playScene( getId(), 1, 0, 0, 0, callback );
- }
+ player.playScene( getId(), 1, 0, 0, 0, callback );
+ }
- // create linkshell
- void Scene00002( Entity::Player& player )
- {
- player.playScene( getId(), 2, 0, 0, 0 );
- }
+ // create linkshell
+ void Scene00002( Entity::Player& player )
+ {
+ player.playScene( getId(), 2, 0, 0, 0 );
+ }
- // rename linkshell
- void Scene00003( Entity::Player& player )
- {
- player.playScene( getId(), 3, 0, 0, 0 );
- }
+ // rename linkshell
+ void Scene00003( Entity::Player& player )
+ {
+ player.playScene( getId(), 3, 0, 0, 0 );
+ }
- // remove linkshell
- void Scene00004( Entity::Player& player )
- {
- player.playScene( getId(), 4, 0, 0, 0 );
- }
+ // remove linkshell
+ void Scene00004( Entity::Player& player )
+ {
+ player.playScene( getId(), 4, 0, 0, 0 );
+ }
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- Scene00001( player );
- }
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ Scene00001( player );
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/common/CmnDefMarketBoardGridania.cpp b/src/servers/Scripts/common/CmnDefMarketBoardGridania.cpp
index 292bdaa9..47c7c8b6 100644
--- a/src/servers/Scripts/common/CmnDefMarketBoardGridania.cpp
+++ b/src/servers/Scripts/common/CmnDefMarketBoardGridania.cpp
@@ -1,19 +1,22 @@
#include
#include
-class CmnDefMarketBoardGridania : public EventScript
+class CmnDefMarketBoardGridania :
+ public EventScript
{
public:
- CmnDefMarketBoardGridania() : EventScript( 0xB0027 )
- {}
+ CmnDefMarketBoardGridania() :
+ EventScript( 0xB0027 )
+ {
+ }
- void Scene00000( Entity::Player& player )
- {
- player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1 );
- }
+ void Scene00000( Entity::Player& player )
+ {
+ player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1 );
+ }
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- Scene00000( player );
- }
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ Scene00000( player );
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/common/CmnDefMogLetter.cpp b/src/servers/Scripts/common/CmnDefMogLetter.cpp
index 424ebb53..1a921c1b 100644
--- a/src/servers/Scripts/common/CmnDefMogLetter.cpp
+++ b/src/servers/Scripts/common/CmnDefMogLetter.cpp
@@ -1,22 +1,25 @@
#include
#include
-class CmnDefMogLetter : public EventScript
+class CmnDefMogLetter :
+ public EventScript
{
public:
- CmnDefMogLetter() : EventScript( 720898 )
- {}
+ CmnDefMogLetter() :
+ EventScript( 720898 )
+ {
+ }
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- Scene00000( player );
- }
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ Scene00000( player );
+ }
- void Scene00000( Entity::Player& player )
- {
- player.playScene( getId(), 0, 0,
- [&]( Entity::Player& player, const Event::SceneResult& result )
- {
- } );
- }
+ void Scene00000( Entity::Player& player )
+ {
+ player.playScene( getId(), 0, 0,
+ [ & ]( Entity::Player& player, const Event::SceneResult& result )
+ {
+ } );
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/common/CmnDefNpcRepair.cpp b/src/servers/Scripts/common/CmnDefNpcRepair.cpp
index 18be6f72..08656651 100644
--- a/src/servers/Scripts/common/CmnDefNpcRepair.cpp
+++ b/src/servers/Scripts/common/CmnDefNpcRepair.cpp
@@ -1,19 +1,22 @@
#include
#include
-class CmnDefNpcRepair : public EventScript
+class CmnDefNpcRepair :
+ public EventScript
{
public:
- CmnDefNpcRepair() : EventScript( 0xB0013 )
- {}
+ CmnDefNpcRepair() :
+ EventScript( 0xB0013 )
+ {
+ }
- void Scene00000( Entity::Player& player )
- {
- player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1 );
- }
+ void Scene00000( Entity::Player& player )
+ {
+ player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1 );
+ }
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- Scene00000( player );
- }
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ Scene00000( player );
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/common/CmnDefWeatherForeCast.cpp b/src/servers/Scripts/common/CmnDefWeatherForeCast.cpp
index 7676b46c..82305449 100644
--- a/src/servers/Scripts/common/CmnDefWeatherForeCast.cpp
+++ b/src/servers/Scripts/common/CmnDefWeatherForeCast.cpp
@@ -1,22 +1,25 @@
#include
#include
-class CmnDefWeatherForeCast : public EventScript
+class CmnDefWeatherForeCast :
+ public EventScript
{
public:
- CmnDefWeatherForeCast() : EventScript( 721100 )
- {}
+ CmnDefWeatherForeCast() :
+ EventScript( 721100 )
+ {
+ }
- void Scene00000( Entity::Player& player )
- {
- player.playScene( getId(), 0, HIDE_HOTBAR,
- [&]( Entity::Player& player, const Event::SceneResult& result )
- {
- } );
- }
+ void Scene00000( Entity::Player& player )
+ {
+ player.playScene( getId(), 0, HIDE_HOTBAR,
+ [ & ]( Entity::Player& player, const Event::SceneResult& result )
+ {
+ } );
+ }
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- Scene00000( player );
- }
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ Scene00000( player );
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/common/ComDefMobHuntBoard.cpp b/src/servers/Scripts/common/ComDefMobHuntBoard.cpp
index 1c0281a5..c328bb5d 100644
--- a/src/servers/Scripts/common/ComDefMobHuntBoard.cpp
+++ b/src/servers/Scripts/common/ComDefMobHuntBoard.cpp
@@ -1,19 +1,22 @@
#include
#include
-class ComDefMobHuntBoard : public EventScript
+class ComDefMobHuntBoard :
+ public EventScript
{
public:
- ComDefMobHuntBoard() : EventScript( 0xB00CA )
- {}
+ ComDefMobHuntBoard() :
+ EventScript( 0xB00CA )
+ {
+ }
- void Scene00000( Entity::Player& player )
- {
- player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1 );
- }
+ void Scene00000( Entity::Player& player )
+ {
+ player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1 );
+ }
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- Scene00000( player );
- }
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ Scene00000( player );
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/common/GilShop.cpp b/src/servers/Scripts/common/GilShop.cpp
index 8ff007f4..4181e5c0 100644
--- a/src/servers/Scripts/common/GilShop.cpp
+++ b/src/servers/Scripts/common/GilShop.cpp
@@ -1,48 +1,51 @@
#include
#include
-class GilShop : public EventScript
+class GilShop :
+ public EventScript
{
public:
- GilShop() : EventScript( 0x00040001 )
- {}
+ GilShop() :
+ EventScript( 0x00040001 )
+ {
+ }
- constexpr static auto SCENE_FLAGS = HIDE_HOTBAR | NO_DEFAULT_CAMERA;
+ constexpr static auto SCENE_FLAGS = HIDE_HOTBAR | NO_DEFAULT_CAMERA;
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- player.playScene( eventId, 0, SCENE_FLAGS, 0, 2, shopCallback );
- }
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ player.playScene( eventId, 0, SCENE_FLAGS, 0, 2, shopCallback );
+ }
private:
- static void shopInteractionCallback( Entity::Player& player, const Event::SceneResult& result )
- {
- // item purchase
- if( result.param1 == 768 )
+ static void shopInteractionCallback( Entity::Player& player, const Event::SceneResult& result )
+ {
+ // item purchase
+ if( result.param1 == 768 )
+ {
+ // buy
+ if( result.param2 == 1 )
{
- // buy
- if( result.param2 == 1 )
- {
- }
-
- // sell
- else if( result.param2 == 2 )
- {
-
- }
-
- player.sendDebug( "got tradeQuantity: " + std::to_string( result.param4 ) );
- player.playGilShop( result.eventId, SCENE_FLAGS, shopInteractionCallback );
- return;
}
- // exit
- player.playScene( result.eventId, 255, SCENE_FLAGS );
- }
+ // sell
+ else if( result.param2 == 2 )
+ {
- static void shopCallback( Entity::Player& player, const Event::SceneResult& result )
- {
+ }
+
+ player.sendDebug( "got tradeQuantity: " + std::to_string( result.param4 ) );
player.playGilShop( result.eventId, SCENE_FLAGS, shopInteractionCallback );
- }
+ return;
+ }
+
+ // exit
+ player.playScene( result.eventId, 255, SCENE_FLAGS );
+ }
+
+ static void shopCallback( Entity::Player& player, const Event::SceneResult& result )
+ {
+ player.playGilShop( result.eventId, SCENE_FLAGS, shopInteractionCallback );
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/common/HouFurOrchestrion.cpp b/src/servers/Scripts/common/HouFurOrchestrion.cpp
index 514f86a9..bfdc35b6 100644
--- a/src/servers/Scripts/common/HouFurOrchestrion.cpp
+++ b/src/servers/Scripts/common/HouFurOrchestrion.cpp
@@ -1,19 +1,22 @@
#include
#include
-class HouFurOrchestrion : public EventScript
+class HouFurOrchestrion :
+ public EventScript
{
public:
- HouFurOrchestrion() : EventScript( 721226 )
- {}
+ HouFurOrchestrion() :
+ EventScript( 721226 )
+ {
+ }
- void Scene00000( Entity::Player& player )
- {
- player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1 );
- }
+ void Scene00000( Entity::Player& player )
+ {
+ player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1 );
+ }
- void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
- {
- Scene00000( player );
- }
+ void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
+ {
+ Scene00000( player );
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/AkhAfahAmphitheatreExtreme.cpp b/src/servers/Scripts/instances/AkhAfahAmphitheatreExtreme.cpp
index fadf0cf5..ee9b597c 100644
--- a/src/servers/Scripts/instances/AkhAfahAmphitheatreExtreme.cpp
+++ b/src/servers/Scripts/instances/AkhAfahAmphitheatreExtreme.cpp
@@ -1,40 +1,50 @@
#include
#include
-class AkhAfahAmphitheatreExtreme : public InstanceContentScript
+class AkhAfahAmphitheatreExtreme :
+ public InstanceContentScript
{
public:
- AkhAfahAmphitheatreExtreme() : InstanceContentScript( 20025 )
- { }
+ AkhAfahAmphitheatreExtreme() :
+ InstanceContentScript( 20025 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "unknown_0", 2004238, 4772738, 4, { -1.210436f, 0.000000f, -0.715586f }, 1.000000f, 0.000000f );
- instance->registerEObj( "sgvf_r1fc_b0472", 2004239, 4797573, 4, { 1.181316f, -0.000000f, 1.563968f }, 1.000000f, 0.000000f );
- // States -> wind_def wind_def_anim wind_pop wind_pop_anim
- instance->registerEObj( "sgvf_r1fc_b0471", 2004240, 4841629, 4, { 11.000000f, 0.000000f, -11.000000f }, 1.000000f, 0.793709f );
- // States -> magi_def magi_def_anim magi_pop magi_pop_anim
- instance->registerEObj( "sgvf_r1fc_b0471_1", 2004349, 4841631, 4, { 12.811310f, -0.000000f, 9.376424f }, 1.000000f, 0.000000f );
- // States -> magi_def magi_def_anim magi_pop magi_pop_anim
- instance->registerEObj( "sgvf_r1fc_b0471_2", 2004350, 4841632, 4, { -8.033875f, 0.000000f, 10.406790f }, 1.000000f, 0.000000f );
- // States -> magi_def magi_def_anim magi_pop magi_pop_anim
- instance->registerEObj( "sgvf_r1fc_b0471_3", 2004351, 4841633, 4, { -8.319038f, -0.000001f, -10.997720f }, 1.000000f, 0.000000f );
- // States -> magi_def magi_def_anim magi_pop magi_pop_anim
- instance->registerEObj( "Entrance", 2000182, 4738599, 5, { 9.717670f, 0.000000f, 14.522430f }, 1.000000f, 0.000000f );
- // States -> vf_lock_on vf_lock_of
- instance->registerEObj( "Exit", 2000139, 0, 4, { 0.000000f, 0.000000f, -15.000000f }, 1.000000f, 0.000000f );
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "unknown_0", 2004238, 4772738, 4, { -1.210436f, 0.000000f, -0.715586f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "sgvf_r1fc_b0472", 2004239, 4797573, 4, { 1.181316f, -0.000000f, 1.563968f }, 1.000000f,
+ 0.000000f );
+ // States -> wind_def wind_def_anim wind_pop wind_pop_anim
+ instance->registerEObj( "sgvf_r1fc_b0471", 2004240, 4841629, 4, { 11.000000f, 0.000000f, -11.000000f }, 1.000000f,
+ 0.793709f );
+ // States -> magi_def magi_def_anim magi_pop magi_pop_anim
+ instance->registerEObj( "sgvf_r1fc_b0471_1", 2004349, 4841631, 4, { 12.811310f, -0.000000f, 9.376424f }, 1.000000f,
+ 0.000000f );
+ // States -> magi_def magi_def_anim magi_pop magi_pop_anim
+ instance->registerEObj( "sgvf_r1fc_b0471_2", 2004350, 4841632, 4, { -8.033875f, 0.000000f, 10.406790f }, 1.000000f,
+ 0.000000f );
+ // States -> magi_def magi_def_anim magi_pop magi_pop_anim
+ instance->registerEObj( "sgvf_r1fc_b0471_3", 2004351, 4841633, 4, { -8.319038f, -0.000001f, -10.997720f },
+ 1.000000f, 0.000000f );
+ // States -> magi_def magi_def_anim magi_pop magi_pop_anim
+ instance->registerEObj( "Entrance", 2000182, 4738599, 5, { 9.717670f, 0.000000f, 14.522430f }, 1.000000f,
+ 0.000000f );
+ // States -> vf_lock_on vf_lock_of
+ instance->registerEObj( "Exit", 2000139, 0, 4, { 0.000000f, 0.000000f, -15.000000f }, 1.000000f, 0.000000f );
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp
index 711fae97..f5030961 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp
@@ -1,30 +1,35 @@
#include
#include
-class ThePalaceoftheDeadFloors101110 : public InstanceContentScript
+class ThePalaceoftheDeadFloors101110 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors101110() : InstanceContentScript( 60011 )
- { }
+ ThePalaceoftheDeadFloors101110() :
+ InstanceContentScript( 60011 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6527847, 4, { -300.000000f, 0.000026f, -237.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- instance->registerEObj( "sgvf_w_lvd_b0959_1", 2000608, 6544382, 4, { 301.149902f, -0.045413f, 285.247589f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6527847, 4, { -300.000000f, 0.000026f, -237.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ instance->registerEObj( "sgvf_w_lvd_b0959_1", 2000608, 6544382, 4, { 301.149902f, -0.045413f, 285.247589f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp
index 855e7490..0b13ff79 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors110 : public InstanceContentScript
+class ThePalaceoftheDeadFloors110 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors110() : InstanceContentScript( 60001 )
- { }
+ ThePalaceoftheDeadFloors110() :
+ InstanceContentScript( 60001 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2002872, 6324883, 4, { -300.000000f, -0.000010f, -220.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2002872, 6324883, 4, { -300.000000f, -0.000010f, -220.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp
index a7c11f16..1b4a904b 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors111120 : public InstanceContentScript
+class ThePalaceoftheDeadFloors111120 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors111120() : InstanceContentScript( 60012 )
- { }
+ ThePalaceoftheDeadFloors111120() :
+ InstanceContentScript( 60012 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6535115, 4, { -300.000000f, 0.000026f, -237.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6535115, 4, { -300.000000f, 0.000026f, -237.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp
index 2a437c06..51a8eae2 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors1120 : public InstanceContentScript
+class ThePalaceoftheDeadFloors1120 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors1120() : InstanceContentScript( 60002 )
- { }
+ ThePalaceoftheDeadFloors1120() :
+ InstanceContentScript( 60002 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6353850, 4, { -300.000000f, 0.000026f, -237.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6353850, 4, { -300.000000f, 0.000026f, -237.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp
index dcaa393a..67089369 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors121130 : public InstanceContentScript
+class ThePalaceoftheDeadFloors121130 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors121130() : InstanceContentScript( 60013 )
- { }
+ ThePalaceoftheDeadFloors121130() :
+ InstanceContentScript( 60013 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6535115, 4, { -300.000000f, 0.000026f, -237.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6535115, 4, { -300.000000f, 0.000026f, -237.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp
index 4188d6e8..29d00cd1 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors131140 : public InstanceContentScript
+class ThePalaceoftheDeadFloors131140 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors131140() : InstanceContentScript( 60014 )
- { }
+ ThePalaceoftheDeadFloors131140() :
+ InstanceContentScript( 60014 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6535683, 4, { -300.000000f, -0.000205f, -237.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6535683, 4, { -300.000000f, -0.000205f, -237.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp
index 5c3523d5..3607b3ff 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors141150 : public InstanceContentScript
+class ThePalaceoftheDeadFloors141150 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors141150() : InstanceContentScript( 60015 )
- { }
+ ThePalaceoftheDeadFloors141150() :
+ InstanceContentScript( 60015 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6535683, 4, { -300.000000f, -0.000205f, -237.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6535683, 4, { -300.000000f, -0.000205f, -237.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp
index 802de0e8..cbf9ef60 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors151160 : public InstanceContentScript
+class ThePalaceoftheDeadFloors151160 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors151160() : InstanceContentScript( 60016 )
- { }
+ ThePalaceoftheDeadFloors151160() :
+ InstanceContentScript( 60016 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6534547, 4, { -301.179504f, 0.130118f, -301.014709f }, 1.000000f, -0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6534547, 4, { -301.179504f, 0.130118f, -301.014709f },
+ 1.000000f, -0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp
index 4b892ff3..521c63e0 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors161170 : public InstanceContentScript
+class ThePalaceoftheDeadFloors161170 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors161170() : InstanceContentScript( 60017 )
- { }
+ ThePalaceoftheDeadFloors161170() :
+ InstanceContentScript( 60017 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6534547, 4, { -301.179504f, 0.130118f, -301.014709f }, 1.000000f, -0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6534547, 4, { -301.179504f, 0.130118f, -301.014709f },
+ 1.000000f, -0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp
index 38adbaca..b0a9337c 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors171180 : public InstanceContentScript
+class ThePalaceoftheDeadFloors171180 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors171180() : InstanceContentScript( 60018 )
- { }
+ ThePalaceoftheDeadFloors171180() :
+ InstanceContentScript( 60018 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6534547, 4, { -301.179504f, 0.130118f, -301.014709f }, 1.000000f, -0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6534547, 4, { -301.179504f, 0.130118f, -301.014709f },
+ 1.000000f, -0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp
index dedc42fc..86e16dd9 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors181190 : public InstanceContentScript
+class ThePalaceoftheDeadFloors181190 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors181190() : InstanceContentScript( 60019 )
- { }
+ ThePalaceoftheDeadFloors181190() :
+ InstanceContentScript( 60019 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6534547, 4, { -301.179504f, 0.130118f, -301.014709f }, 1.000000f, -0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6534547, 4, { -301.179504f, 0.130118f, -301.014709f },
+ 1.000000f, -0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp
index df4d3f25..b4e8f66e 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors191200 : public InstanceContentScript
+class ThePalaceoftheDeadFloors191200 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors191200() : InstanceContentScript( 60020 )
- { }
+ ThePalaceoftheDeadFloors191200() :
+ InstanceContentScript( 60020 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6534547, 4, { -301.179504f, 0.130118f, -301.014709f }, 1.000000f, -0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6534547, 4, { -301.179504f, 0.130118f, -301.014709f },
+ 1.000000f, -0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp
index f529b0a7..c91696de 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors2130 : public InstanceContentScript
+class ThePalaceoftheDeadFloors2130 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors2130() : InstanceContentScript( 60003 )
- { }
+ ThePalaceoftheDeadFloors2130() :
+ InstanceContentScript( 60003 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2002872, 6387948, 4, { -300.000000f, -0.116918f, -237.513199f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2002872, 6387948, 4, { -300.000000f, -0.116918f, -237.513199f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp
index 9566958d..493f2f3f 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp
@@ -1,36 +1,47 @@
#include
#include
-class ThePalaceoftheDeadFloors3140 : public InstanceContentScript
+class ThePalaceoftheDeadFloors3140 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors3140() : InstanceContentScript( 60004 )
- { }
+ ThePalaceoftheDeadFloors3140() :
+ InstanceContentScript( 60004 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6367892, 4, { -300.000000f, 0.000000f, -225.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- instance->registerEObj( "sgvf_w_lvd_b0959_1", 2002872, 6392196, 4, { 300.000000f, 0.000000f, 374.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- instance->registerEObj( "unknown_0", 2007351, 6277715, 4, { 300.036102f, 0.000000f, 373.916687f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_1", 2007352, 6394671, 4, { 307.159912f, 0.000000f, 370.556702f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_2", 2007353, 6394677, 4, { 305.303894f, 0.000000f, 380.231415f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_3", 2007354, 6394673, 4, { 296.024109f, -0.000000f, 381.100189f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_4", 2007355, 6394675, 4, { 291.561890f, 0.000000f, 372.412689f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_5", 2007356, 6394674, 4, { 298.511902f, 0.000000f, 366.134003f }, 1.000000f, 0.000000f );
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6367892, 4, { -300.000000f, 0.000000f, -225.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ instance->registerEObj( "sgvf_w_lvd_b0959_1", 2002872, 6392196, 4, { 300.000000f, 0.000000f, 374.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ instance->registerEObj( "unknown_0", 2007351, 6277715, 4, { 300.036102f, 0.000000f, 373.916687f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_1", 2007352, 6394671, 4, { 307.159912f, 0.000000f, 370.556702f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_2", 2007353, 6394677, 4, { 305.303894f, 0.000000f, 380.231415f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_3", 2007354, 6394673, 4, { 296.024109f, -0.000000f, 381.100189f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_4", 2007355, 6394675, 4, { 291.561890f, 0.000000f, 372.412689f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_5", 2007356, 6394674, 4, { 298.511902f, 0.000000f, 366.134003f }, 1.000000f,
+ 0.000000f );
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp
index 67e35bca..c89b2c1b 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp
@@ -1,36 +1,47 @@
#include
#include
-class ThePalaceoftheDeadFloors4150 : public InstanceContentScript
+class ThePalaceoftheDeadFloors4150 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors4150() : InstanceContentScript( 60005 )
- { }
+ ThePalaceoftheDeadFloors4150() :
+ InstanceContentScript( 60005 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6367892, 4, { -300.000000f, 0.000000f, -225.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- instance->registerEObj( "sgvf_w_lvd_b0959_1", 2002872, 6392196, 4, { 300.000000f, 0.000000f, 374.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- instance->registerEObj( "unknown_0", 2007351, 6277715, 4, { 300.036102f, 0.000000f, 373.916687f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_1", 2007352, 6394671, 4, { 307.159912f, 0.000000f, 370.556702f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_2", 2007353, 6394677, 4, { 305.303894f, 0.000000f, 380.231415f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_3", 2007354, 6394673, 4, { 296.024109f, -0.000000f, 381.100189f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_4", 2007355, 6394675, 4, { 291.561890f, 0.000000f, 372.412689f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_5", 2007356, 6394674, 4, { 298.511902f, 0.000000f, 366.134003f }, 1.000000f, 0.000000f );
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6367892, 4, { -300.000000f, 0.000000f, -225.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ instance->registerEObj( "sgvf_w_lvd_b0959_1", 2002872, 6392196, 4, { 300.000000f, 0.000000f, 374.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ instance->registerEObj( "unknown_0", 2007351, 6277715, 4, { 300.036102f, 0.000000f, 373.916687f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_1", 2007352, 6394671, 4, { 307.159912f, 0.000000f, 370.556702f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_2", 2007353, 6394677, 4, { 305.303894f, 0.000000f, 380.231415f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_3", 2007354, 6394673, 4, { 296.024109f, -0.000000f, 381.100189f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_4", 2007355, 6394675, 4, { 291.561890f, 0.000000f, 372.412689f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_5", 2007356, 6394674, 4, { 298.511902f, 0.000000f, 366.134003f }, 1.000000f,
+ 0.000000f );
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp
index 108b616e..77d1f9d4 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors5160 : public InstanceContentScript
+class ThePalaceoftheDeadFloors5160 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors5160() : InstanceContentScript( 60006 )
- { }
+ ThePalaceoftheDeadFloors5160() :
+ InstanceContentScript( 60006 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6521120, 4, { -300.000000f, 3.189805f, -241.061096f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6521120, 4, { -300.000000f, 3.189805f, -241.061096f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp
index e97c0a35..d3dec50e 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors6170 : public InstanceContentScript
+class ThePalaceoftheDeadFloors6170 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors6170() : InstanceContentScript( 60007 )
- { }
+ ThePalaceoftheDeadFloors6170() :
+ InstanceContentScript( 60007 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6521120, 4, { -300.000000f, 3.189805f, -241.061096f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6521120, 4, { -300.000000f, 3.189805f, -241.061096f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp
index 2cac3524..7642c7d3 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp
@@ -1,28 +1,32 @@
#include
#include
-class ThePalaceoftheDeadFloors7180 : public InstanceContentScript
+class ThePalaceoftheDeadFloors7180 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors7180() : InstanceContentScript( 60008 )
- { }
+ ThePalaceoftheDeadFloors7180() :
+ InstanceContentScript( 60008 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6521120, 4, { -300.000000f, 3.189805f, -241.061096f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6521120, 4, { -300.000000f, 3.189805f, -241.061096f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp
index 6e883ccf..1f21f2dd 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp
@@ -1,30 +1,35 @@
#include
#include
-class ThePalaceoftheDeadFloors8190 : public InstanceContentScript
+class ThePalaceoftheDeadFloors8190 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors8190() : InstanceContentScript( 60009 )
- { }
+ ThePalaceoftheDeadFloors8190() :
+ InstanceContentScript( 60009 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6527847, 4, { -300.000000f, 0.000026f, -237.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- instance->registerEObj( "sgvf_w_lvd_b0959_1", 2000608, 6544382, 4, { 301.149902f, -0.045413f, 285.247589f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6527847, 4, { -300.000000f, 0.000026f, -237.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ instance->registerEObj( "sgvf_w_lvd_b0959_1", 2000608, 6544382, 4, { 301.149902f, -0.045413f, 285.247589f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp
index 28f672d8..86aa9594 100644
--- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp
+++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp
@@ -1,30 +1,35 @@
#include
#include
-class ThePalaceoftheDeadFloors91100 : public InstanceContentScript
+class ThePalaceoftheDeadFloors91100 :
+ public InstanceContentScript
{
public:
- ThePalaceoftheDeadFloors91100() : InstanceContentScript( 60010 )
- { }
+ ThePalaceoftheDeadFloors91100() :
+ InstanceContentScript( 60010 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6527847, 4, { -300.000000f, 0.000026f, -237.000000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- instance->registerEObj( "sgvf_w_lvd_b0959_1", 2000608, 6544382, 4, { 301.149902f, -0.045413f, 285.247589f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0959", 2000608, 6527847, 4, { -300.000000f, 0.000026f, -237.000000f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
+ instance->registerEObj( "sgvf_w_lvd_b0959_1", 2000608, 6544382, 4, { 301.149902f, -0.045413f, 285.247589f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_on2off vf_bextwall_off
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp b/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp
index e4350243..89237978 100644
--- a/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp
+++ b/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp
@@ -1,26 +1,29 @@
#include
#include
-class AlaMhigo : public InstanceContentScript
+class AlaMhigo :
+ public InstanceContentScript
{
public:
- AlaMhigo() : InstanceContentScript( 56 )
- { }
+ AlaMhigo() :
+ InstanceContentScript( 56 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
+ void onInit( InstanceContentPtr instance ) override
+ {
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp b/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp
index f0934771..527291ac 100644
--- a/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp
+++ b/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp
@@ -1,149 +1,231 @@
#include
#include
-class AmdaporKeep : public InstanceContentScript
+class AmdaporKeep :
+ public InstanceContentScript
{
public:
- AmdaporKeep() : InstanceContentScript( 14 )
- { }
+ AmdaporKeep() :
+ InstanceContentScript( 14 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgbg_f1d3_a1_gar2", 2000551, 4277027, 4, { -3.577190f, 48.000000f, -12.625050f }, 1.000000f, 0.000000f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_1", 2000552, 4277005, 4, { 21.455280f, 48.000011f, -12.604770f }, 1.000000f, 0.000000f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_2", 2000553, 4277029, 4, { -3.963791f, 48.000000f, 9.699657f }, 1.000000f, 0.000000f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_3", 2000554, 4277028, 4, { 21.081841f, 47.999920f, 9.731779f }, 1.000000f, 0.000000f );
- // States -> on off vfx_on
- instance->registerEObj( "Entrance", 2000491, 4246565, 5, { -254.388702f, -8.857766f, -0.323940f }, 1.000000f, 0.000000f );
- // States -> vf_lock_on vf_lock_of
- instance->registerEObj( "unknown_0", 2000492, 0, 4, { -266.179810f, -9.200000f, -0.162207f }, 1.000000f, 0.000000f );
- instance->registerEObj( "Exit", 2000493, 4246574, 4, { -12.466670f, 48.285069f, -0.015320f }, 0.991760f, 0.000048f );
- // States -> vf_htras1_on vf_htras1_of
- instance->registerEObj( "sgvf_w_lvd_b0094", 2000494, 4246576, 4, { -81.527344f, 0.000003f, -1.602537f }, 1.000000f, 0.000000f );
- // States -> vf_line_on vf_line_of
- instance->registerEObj( "sgvf_w_lvd_b0118", 2000495, 4246594, 4, { -81.412201f, 0.000003f, 0.186550f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "sgvf_w_lvd_b0094_1", 2000496, 4246595, 4, { 199.816895f, 21.957701f, -104.781303f }, 0.991760f, 0.000048f );
- // States -> vf_line_on vf_line_of
- instance->registerEObj( "sgpl_w_lvd_b0118_f1d2", 2000497, 4246596, 4, { 200.915497f, 21.957701f, -104.598198f }, 0.991760f, 0.000048f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "sgvf_w_lvd_b0249", 2000498, 4246617, 4, { 34.775269f, 48.081181f, 0.381470f }, 0.991760f, 0.000048f );
- // States -> vf_line_on vf_line_of
- instance->registerEObj( "sgvf_w_lvd_b0250", 2000499, 4246618, 4, { 34.775269f, 48.081181f, -0.839294f }, 0.991760f, 0.000048f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "Shortcut", 2000700, 0, 4, { -246.833496f, -8.499996f, 4.016408f }, 1.000000f, 0.000000f );
- instance->registerEObj( "Aetherialflow", 2000500, 4247835, 4, { -10.236110f, -0.000000f, -0.015320f }, 0.991760f, 0.000048f );
- instance->registerEObj( "PresenceChamberdoor", 2000502, 4308888, 4, { 60.483269f, 48.174511f, -0.015320f }, 0.991760f, 0.000048f );
- instance->registerEObj( "BloodyTranseptdoor", 2000687, 4308274, 4, { 199.985397f, 22.200001f, -103.389503f }, 1.000000f, 0.000000f );
- instance->registerEObj( "sgvf_f1d1_b0008", 2002741, 4388278, 4, { -82.462273f, 0.000002f, 0.045686f }, 1.000000f, 0.000000f );
- // States -> vf_baria1_off vf_baria_on
- instance->registerEObj( "sgbg_f1d3_a1_gar1", 2000509, 4271520, 4, { 134.111496f, 22.079769f, -5.935791f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_1", 2000510, 4271522, 4, { 142.229202f, 22.079769f, -6.088379f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_2", 2000511, 4271529, 4, { 158.129196f, 22.079769f, -6.088379f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_3", 2000512, 4271531, 4, { 133.958893f, 22.079769f, 6.271362f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_4", 2000513, 4271532, 4, { 142.015594f, 22.079769f, 6.271362f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_5", 2000514, 4271533, 4, { 158.190201f, 22.079769f, 6.271362f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_6", 2000521, 4274657, 4, { 193.987900f, 22.110291f, 42.099609f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_7", 2000522, 4274656, 4, { 193.804794f, 22.079769f, 57.938480f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_8", 2000523, 4274655, 4, { 193.804794f, 22.079769f, 65.964722f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_9", 2000524, 4274661, 4, { 206.317093f, 22.079769f, 42.038570f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_10", 2000525, 4274660, 4, { 206.286697f, 22.079769f, 57.968990f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_11", 2000526, 4274659, 4, { 206.286697f, 22.079769f, 65.995239f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_12", 2000533, 4274648, 4, { 241.992798f, 22.079769f, -6.332520f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_13", 2000534, 4274649, 4, { 258.075806f, 22.079769f, -6.332520f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_14", 2000535, 4274650, 4, { 265.949493f, 22.079769f, -6.271484f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_15", 2000536, 4274651, 4, { 241.931793f, 22.079769f, 6.240906f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_16", 2000537, 4274652, 4, { 258.075806f, 22.079769f, 6.271362f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_17", 2000538, 4274653, 4, { 266.071503f, 22.079769f, 6.271362f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_18", 2000545, 4274662, 4, { 193.804794f, 22.079769f, -34.042912f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_19", 2000546, 4274667, 4, { 193.804794f, 22.079769f, -42.008121f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_20", 2000547, 4274666, 4, { 193.804794f, 22.079769f, -58.335270f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_21", 2000548, 4274663, 4, { 206.317093f, 22.079769f, -33.890320f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_22", 2000549, 4274665, 4, { 206.317093f, 22.079769f, -41.916561f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar1_23", 2000550, 4274664, 4, { 206.317093f, 22.079769f, -58.274231f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_f1d3_a1_gar2_4", 2000503, 4274671, 4, { 134.111496f, 22.079769f, -5.935791f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_5", 2000504, 4274672, 4, { 142.229202f, 22.079769f, -6.088379f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_6", 2000505, 4274673, 4, { 158.129196f, 22.079769f, -6.088379f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_7", 2000506, 4274674, 4, { 133.958893f, 22.079769f, 6.271362f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_8", 2000507, 4274675, 4, { 142.015594f, 22.079769f, 6.271362f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_9", 2000508, 4274676, 4, { 158.190201f, 22.079769f, 6.271362f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_10", 2000515, 4274685, 4, { 193.987900f, 22.110291f, 42.099609f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_11", 2000516, 4274684, 4, { 193.804794f, 22.079769f, 57.938480f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_12", 2000517, 4274683, 4, { 193.804794f, 22.079769f, 65.964722f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_13", 2000518, 4274688, 4, { 206.317093f, 22.079769f, 42.038570f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_14", 2000519, 4274687, 4, { 206.317093f, 22.079769f, 57.968990f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_15", 2000520, 4274686, 4, { 206.317093f, 22.079769f, 65.995239f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_16", 2000527, 4274677, 4, { 241.992798f, 22.079769f, -6.332520f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_17", 2000528, 4274678, 4, { 258.075806f, 22.079769f, -6.332520f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_18", 2000529, 4274679, 4, { 265.949493f, 22.079769f, -6.271484f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_19", 2000530, 4274680, 4, { 241.931793f, 22.079769f, 6.271362f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_20", 2000531, 4274681, 4, { 258.075806f, 22.079769f, 6.271362f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_21", 2000532, 4274682, 4, { 266.071503f, 22.079769f, 6.271362f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_22", 2000539, 4274689, 4, { 193.804794f, 22.079769f, -34.042912f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_23", 2000540, 4274694, 4, { 193.804794f, 22.079769f, -42.008121f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_24", 2000541, 4274693, 4, { 193.804794f, 22.079769f, -58.335270f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_25", 2000542, 4274690, 4, { 206.317093f, 22.079769f, -33.890320f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_26", 2000543, 4274692, 4, { 206.317093f, 22.079769f, -41.916561f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "sgbg_f1d3_a1_gar2_27", 2000544, 4274691, 4, { 206.317093f, 22.079769f, -58.274231f }, 0.991760f, 0.000048f );
- // States -> on off vfx_on
- instance->registerEObj( "Entrance_1", 2000182, 5608623, 5, { -156.520401f, -2.800003f, -5.140180f }, 1.000000f, 0.000000f );
- // States -> vf_lock_on vf_lock_of
- instance->registerEObj( "sgvf_w_lvd_b0118_1", 2002872, 5608617, 4, { -154.662003f, -2.800003f, 5.028913f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "unknown_1", 2002735, 0, 4, { -151.232193f, -2.822998f, 0.289556f }, 1.174927f, -1.570451f );
- instance->registerEObj( "sgvf_w_lvd_b0118_2", 2005128, 5608619, 4, { -112.240501f, -2.800003f, -0.701091f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "unknown_2", 2002735, 0, 4, { -46.585720f, 0.045776f, 0.190301f }, 1.179312f, -1.570451f );
- instance->registerEObj( "sgvf_w_lvd_b0118_3", 2002872, 5608620, 4, { -46.476231f, 0.000000f, -0.510445f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "Exit_1", 2000139, 0, 4, { -7.766907f, -0.015320f, 0.015198f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgvf_f1d3_bo189", 2000561, 4248559, 4, { 200.121902f, 21.988159f, -114.000000f }, 1.000000f, 0.000048f );
- instance->registerEObj( "sgbg_col_wall_00", 2000555, 4249099, 4, { 200.000000f, 21.988159f, -151.822800f }, 0.991760f, 0.000048f );
- instance->registerEObj( "Aetherialflow_1", 2000501, 4247838, 4, { 200.061005f, 22.000000f, -165.266006f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_col_wall_00_1", 2000556, 4249100, 4, { 200.000000f, 21.988159f, -146.822800f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_col_wall_00_2", 2000557, 4249101, 4, { 200.000000f, 21.988159f, -141.822800f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_col_wall_00_3", 2000560, 4249104, 4, { 200.000000f, 21.988159f, -126.822800f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_col_wall_00_4", 2000602, 4253048, 4, { 200.000000f, 21.988159f, -121.822800f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_col_wall_00_5", 2000559, 4249103, 4, { 200.000000f, 21.988159f, -131.822800f }, 0.991760f, 0.000048f );
- instance->registerEObj( "sgbg_col_wall_00_6", 2000558, 4249102, 4, { 200.000000f, 21.957701f, -136.838501f }, 0.991760f, 0.000048f );
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgbg_f1d3_a1_gar2", 2000551, 4277027, 4, { -3.577190f, 48.000000f, -12.625050f },
+ 1.000000f, 0.000000f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_1", 2000552, 4277005, 4, { 21.455280f, 48.000011f, -12.604770f },
+ 1.000000f, 0.000000f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_2", 2000553, 4277029, 4, { -3.963791f, 48.000000f, 9.699657f },
+ 1.000000f, 0.000000f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_3", 2000554, 4277028, 4, { 21.081841f, 47.999920f, 9.731779f },
+ 1.000000f, 0.000000f );
+ // States -> on off vfx_on
+ instance->registerEObj( "Entrance", 2000491, 4246565, 5, { -254.388702f, -8.857766f, -0.323940f }, 1.000000f,
+ 0.000000f );
+ // States -> vf_lock_on vf_lock_of
+ instance->registerEObj( "unknown_0", 2000492, 0, 4, { -266.179810f, -9.200000f, -0.162207f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "Exit", 2000493, 4246574, 4, { -12.466670f, 48.285069f, -0.015320f }, 0.991760f,
+ 0.000048f );
+ // States -> vf_htras1_on vf_htras1_of
+ instance->registerEObj( "sgvf_w_lvd_b0094", 2000494, 4246576, 4, { -81.527344f, 0.000003f, -1.602537f }, 1.000000f,
+ 0.000000f );
+ // States -> vf_line_on vf_line_of
+ instance->registerEObj( "sgvf_w_lvd_b0118", 2000495, 4246594, 4, { -81.412201f, 0.000003f, 0.186550f }, 1.000000f,
+ 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "sgvf_w_lvd_b0094_1", 2000496, 4246595, 4, { 199.816895f, 21.957701f, -104.781303f },
+ 0.991760f, 0.000048f );
+ // States -> vf_line_on vf_line_of
+ instance->registerEObj( "sgpl_w_lvd_b0118_f1d2", 2000497, 4246596, 4, { 200.915497f, 21.957701f, -104.598198f },
+ 0.991760f, 0.000048f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "sgvf_w_lvd_b0249", 2000498, 4246617, 4, { 34.775269f, 48.081181f, 0.381470f }, 0.991760f,
+ 0.000048f );
+ // States -> vf_line_on vf_line_of
+ instance->registerEObj( "sgvf_w_lvd_b0250", 2000499, 4246618, 4, { 34.775269f, 48.081181f, -0.839294f }, 0.991760f,
+ 0.000048f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "Shortcut", 2000700, 0, 4, { -246.833496f, -8.499996f, 4.016408f }, 1.000000f, 0.000000f );
+ instance->registerEObj( "Aetherialflow", 2000500, 4247835, 4, { -10.236110f, -0.000000f, -0.015320f }, 0.991760f,
+ 0.000048f );
+ instance->registerEObj( "PresenceChamberdoor", 2000502, 4308888, 4, { 60.483269f, 48.174511f, -0.015320f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "BloodyTranseptdoor", 2000687, 4308274, 4, { 199.985397f, 22.200001f, -103.389503f },
+ 1.000000f, 0.000000f );
+ instance->registerEObj( "sgvf_f1d1_b0008", 2002741, 4388278, 4, { -82.462273f, 0.000002f, 0.045686f }, 1.000000f,
+ 0.000000f );
+ // States -> vf_baria1_off vf_baria_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar1", 2000509, 4271520, 4, { 134.111496f, 22.079769f, -5.935791f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_1", 2000510, 4271522, 4, { 142.229202f, 22.079769f, -6.088379f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_2", 2000511, 4271529, 4, { 158.129196f, 22.079769f, -6.088379f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_3", 2000512, 4271531, 4, { 133.958893f, 22.079769f, 6.271362f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_4", 2000513, 4271532, 4, { 142.015594f, 22.079769f, 6.271362f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_5", 2000514, 4271533, 4, { 158.190201f, 22.079769f, 6.271362f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_6", 2000521, 4274657, 4, { 193.987900f, 22.110291f, 42.099609f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_7", 2000522, 4274656, 4, { 193.804794f, 22.079769f, 57.938480f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_8", 2000523, 4274655, 4, { 193.804794f, 22.079769f, 65.964722f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_9", 2000524, 4274661, 4, { 206.317093f, 22.079769f, 42.038570f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_10", 2000525, 4274660, 4, { 206.286697f, 22.079769f, 57.968990f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_11", 2000526, 4274659, 4, { 206.286697f, 22.079769f, 65.995239f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_12", 2000533, 4274648, 4, { 241.992798f, 22.079769f, -6.332520f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_13", 2000534, 4274649, 4, { 258.075806f, 22.079769f, -6.332520f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_14", 2000535, 4274650, 4, { 265.949493f, 22.079769f, -6.271484f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_15", 2000536, 4274651, 4, { 241.931793f, 22.079769f, 6.240906f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_16", 2000537, 4274652, 4, { 258.075806f, 22.079769f, 6.271362f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_17", 2000538, 4274653, 4, { 266.071503f, 22.079769f, 6.271362f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_18", 2000545, 4274662, 4, { 193.804794f, 22.079769f, -34.042912f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_19", 2000546, 4274667, 4, { 193.804794f, 22.079769f, -42.008121f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_20", 2000547, 4274666, 4, { 193.804794f, 22.079769f, -58.335270f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_21", 2000548, 4274663, 4, { 206.317093f, 22.079769f, -33.890320f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_22", 2000549, 4274665, 4, { 206.317093f, 22.079769f, -41.916561f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar1_23", 2000550, 4274664, 4, { 206.317093f, 22.079769f, -58.274231f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_4", 2000503, 4274671, 4, { 134.111496f, 22.079769f, -5.935791f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_5", 2000504, 4274672, 4, { 142.229202f, 22.079769f, -6.088379f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_6", 2000505, 4274673, 4, { 158.129196f, 22.079769f, -6.088379f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_7", 2000506, 4274674, 4, { 133.958893f, 22.079769f, 6.271362f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_8", 2000507, 4274675, 4, { 142.015594f, 22.079769f, 6.271362f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_9", 2000508, 4274676, 4, { 158.190201f, 22.079769f, 6.271362f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_10", 2000515, 4274685, 4, { 193.987900f, 22.110291f, 42.099609f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_11", 2000516, 4274684, 4, { 193.804794f, 22.079769f, 57.938480f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_12", 2000517, 4274683, 4, { 193.804794f, 22.079769f, 65.964722f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_13", 2000518, 4274688, 4, { 206.317093f, 22.079769f, 42.038570f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_14", 2000519, 4274687, 4, { 206.317093f, 22.079769f, 57.968990f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_15", 2000520, 4274686, 4, { 206.317093f, 22.079769f, 65.995239f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_16", 2000527, 4274677, 4, { 241.992798f, 22.079769f, -6.332520f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_17", 2000528, 4274678, 4, { 258.075806f, 22.079769f, -6.332520f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_18", 2000529, 4274679, 4, { 265.949493f, 22.079769f, -6.271484f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_19", 2000530, 4274680, 4, { 241.931793f, 22.079769f, 6.271362f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_20", 2000531, 4274681, 4, { 258.075806f, 22.079769f, 6.271362f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_21", 2000532, 4274682, 4, { 266.071503f, 22.079769f, 6.271362f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_22", 2000539, 4274689, 4, { 193.804794f, 22.079769f, -34.042912f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_23", 2000540, 4274694, 4, { 193.804794f, 22.079769f, -42.008121f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_24", 2000541, 4274693, 4, { 193.804794f, 22.079769f, -58.335270f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_25", 2000542, 4274690, 4, { 206.317093f, 22.079769f, -33.890320f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_26", 2000543, 4274692, 4, { 206.317093f, 22.079769f, -41.916561f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "sgbg_f1d3_a1_gar2_27", 2000544, 4274691, 4, { 206.317093f, 22.079769f, -58.274231f },
+ 0.991760f, 0.000048f );
+ // States -> on off vfx_on
+ instance->registerEObj( "Entrance_1", 2000182, 5608623, 5, { -156.520401f, -2.800003f, -5.140180f }, 1.000000f,
+ 0.000000f );
+ // States -> vf_lock_on vf_lock_of
+ instance->registerEObj( "sgvf_w_lvd_b0118_1", 2002872, 5608617, 4, { -154.662003f, -2.800003f, 5.028913f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "unknown_1", 2002735, 0, 4, { -151.232193f, -2.822998f, 0.289556f }, 1.174927f,
+ -1.570451f );
+ instance->registerEObj( "sgvf_w_lvd_b0118_2", 2005128, 5608619, 4, { -112.240501f, -2.800003f, -0.701091f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "unknown_2", 2002735, 0, 4, { -46.585720f, 0.045776f, 0.190301f }, 1.179312f, -1.570451f );
+ instance->registerEObj( "sgvf_w_lvd_b0118_3", 2002872, 5608620, 4, { -46.476231f, 0.000000f, -0.510445f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "Exit_1", 2000139, 0, 4, { -7.766907f, -0.015320f, 0.015198f }, 0.991760f, 0.000048f );
+ instance->registerEObj( "sgvf_f1d3_bo189", 2000561, 4248559, 4, { 200.121902f, 21.988159f, -114.000000f },
+ 1.000000f, 0.000048f );
+ instance->registerEObj( "sgbg_col_wall_00", 2000555, 4249099, 4, { 200.000000f, 21.988159f, -151.822800f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "Aetherialflow_1", 2000501, 4247838, 4, { 200.061005f, 22.000000f, -165.266006f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_col_wall_00_1", 2000556, 4249100, 4, { 200.000000f, 21.988159f, -146.822800f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_col_wall_00_2", 2000557, 4249101, 4, { 200.000000f, 21.988159f, -141.822800f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_col_wall_00_3", 2000560, 4249104, 4, { 200.000000f, 21.988159f, -126.822800f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_col_wall_00_4", 2000602, 4253048, 4, { 200.000000f, 21.988159f, -121.822800f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_col_wall_00_5", 2000559, 4249103, 4, { 200.000000f, 21.988159f, -131.822800f },
+ 0.991760f, 0.000048f );
+ instance->registerEObj( "sgbg_col_wall_00_6", 2000558, 4249102, 4, { 200.000000f, 21.957701f, -136.838501f },
+ 0.991760f, 0.000048f );
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp b/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp
index 512146c4..27cf8230 100644
--- a/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp
+++ b/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp
@@ -1,66 +1,95 @@
#include
#include
-class AmdaporKeepHard : public InstanceContentScript
+class AmdaporKeepHard :
+ public InstanceContentScript
{
public:
- AmdaporKeepHard() : InstanceContentScript( 29 )
- { }
+ AmdaporKeepHard() :
+ InstanceContentScript( 29 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "sgvf_w_lvd_b0118", 2002872, 5040923, 4, { 203.452301f, 0.116688f, 208.657593f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "unknown_0", 2002735, 0, 4, { 199.471802f, 0.116693f, 210.128204f }, 1.000000f, 0.000000f );
- instance->registerEObj( "sgbg_f1d7_a4_scy01", 2005153, 5619221, 4, { 198.706802f, -20.000010f, 229.113907f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_1", 2004696, 5009720, 4, { -200.316895f, -4.301562f, -43.621670f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_2", 2004697, 5009721, 4, { -47.771290f, -0.000000f, -71.658272f }, 1.000000f, 0.000000f );
- instance->registerEObj( "sgbg_f1d7_a1_evl01", 2004698, 5031991, 4, { -125.087196f, -2.000000f, 28.417601f }, 1.000000f, -0.000000f );
- // States -> evils_def evils_off_anim evils_on evils_on_anim
- instance->registerEObj( "sgvf_f1d7_b0574", 2004699, 5031992, 4, { -104.790604f, -2.000000f, 47.174728f }, 1.000000f, 0.000000f );
- // States -> vf_baria1_off vf_baria_on
- instance->registerEObj( "unknown_3", 2004700, 0, 4, { 2.343430f, 48.179089f, -2.083742f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_4", 2004702, 5009732, 4, { 125.604897f, 43.999989f, 3.999085f }, 1.000000f, 0.005971f );
- instance->registerEObj( "unknown_5", 2004701, 0, 4, { 149.666000f, 44.200001f, -0.006115f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_6", 2004703, 5010816, 4, { 196.927399f, 44.000019f, -101.381798f }, 1.000000f, 0.000000f );
- instance->registerEObj( "sgbg_f1d7_a1_evl01_1", 2004704, 5032163, 4, { 199.696106f, 44.000000f, -181.197006f }, 1.000000f, 0.000000f );
- // States -> evils_def evils_off_anim evils_on evils_on_anim
- instance->registerEObj( "Aetherialflow", 2004705, 5032164, 4, { 199.682800f, 44.163898f, -180.392395f }, 1.000000f, -0.000000f );
- instance->registerEObj( "Fellorb", 2004706, 5009746, 4, { 200.094101f, -0.000008f, 0.050249f }, 1.000000f, 0.000000f );
- instance->registerEObj( "Aetherialflow_1", 2004707, 5033533, 4, { 199.899506f, 0.000000f, -3.297300f }, 1.000000f, -0.000000f );
- instance->registerEObj( "unknown_7", 2004768, 5033548, 4, { 210.649307f, 0.116687f, -6.120441f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_8", 2004769, 5033549, 4, { 189.489807f, 0.116688f, -6.804901f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_9", 2004770, 5033551, 4, { 204.506500f, 0.116687f, 9.902725f }, 1.000000f, 0.000000f );
- instance->registerEObj( "sgvf_w_lvd_b0118_1", 2004708, 5034801, 4, { -119.510101f, -2.400002f, 18.885540f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "sgvf_w_lvd_b0118_2", 2002872, 5034800, 4, { -130.314606f, -2.400000f, -18.221069f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "unknown_10", 2002735, 0, 4, { -125.041801f, -1.964380f, -20.543480f }, 1.000000f, 0.000000f );
- instance->registerEObj( "sgpl_f1d7_a1_gar0", 2004996, 5390927, 4, { -112.845497f, -2.400000f, 12.122500f }, 1.000000f, 0.785314f );
- instance->registerEObj( "sgpl_f1d7_a1_gar0_1", 2004997, 5390928, 4, { -112.845497f, -2.400000f, -12.378100f }, 1.000000f, 0.785457f );
- instance->registerEObj( "sgpl_f1d7_a1_gar0_2", 2004998, 5390929, 4, { -137.250000f, -2.400000f, 12.122500f }, 1.000000f, -0.785410f );
- instance->registerEObj( "sgpl_f1d7_a1_gar0_3", 2004999, 5390930, 4, { -137.396194f, -2.400000f, -12.366500f }, 1.000000f, -0.785398f );
- instance->registerEObj( "sgvf_w_lvd_b0118_3", 2004782, 5038257, 4, { 198.459198f, 43.991699f, -172.369705f }, 1.000000f, 0.000048f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "sgvf_w_lvd_b0118_4", 2002872, 5038255, 4, { 197.802597f, 43.991699f, -125.932701f }, 1.000000f, -0.000000f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "unknown_11", 2002735, 0, 4, { 199.511703f, 44.022221f, -130.601303f }, 1.000000f, -0.000000f );
- instance->registerEObj( "Entrance", 2000182, 5018466, 5, { -255.724792f, -9.199999f, -5.249732f }, 1.000000f, 0.000000f );
- // States -> vf_lock_on vf_lock_of
- instance->registerEObj( "Shortcut", 2000700, 0, 4, { -252.173401f, -9.199999f, 5.737248f }, 1.000000f, 0.000000f );
- instance->registerEObj( "Exit", 2000139, 0, 4, { 200.798599f, -0.000008f, 240.880905f }, 1.000000f, 0.000000f );
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "sgvf_w_lvd_b0118", 2002872, 5040923, 4, { 203.452301f, 0.116688f, 208.657593f }, 1.000000f,
+ 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "unknown_0", 2002735, 0, 4, { 199.471802f, 0.116693f, 210.128204f }, 1.000000f, 0.000000f );
+ instance->registerEObj( "sgbg_f1d7_a4_scy01", 2005153, 5619221, 4, { 198.706802f, -20.000010f, 229.113907f },
+ 1.000000f, 0.000000f );
+ instance->registerEObj( "unknown_1", 2004696, 5009720, 4, { -200.316895f, -4.301562f, -43.621670f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_2", 2004697, 5009721, 4, { -47.771290f, -0.000000f, -71.658272f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "sgbg_f1d7_a1_evl01", 2004698, 5031991, 4, { -125.087196f, -2.000000f, 28.417601f },
+ 1.000000f, -0.000000f );
+ // States -> evils_def evils_off_anim evils_on evils_on_anim
+ instance->registerEObj( "sgvf_f1d7_b0574", 2004699, 5031992, 4, { -104.790604f, -2.000000f, 47.174728f }, 1.000000f,
+ 0.000000f );
+ // States -> vf_baria1_off vf_baria_on
+ instance->registerEObj( "unknown_3", 2004700, 0, 4, { 2.343430f, 48.179089f, -2.083742f }, 1.000000f, 0.000000f );
+ instance->registerEObj( "unknown_4", 2004702, 5009732, 4, { 125.604897f, 43.999989f, 3.999085f }, 1.000000f,
+ 0.005971f );
+ instance->registerEObj( "unknown_5", 2004701, 0, 4, { 149.666000f, 44.200001f, -0.006115f }, 1.000000f, 0.000000f );
+ instance->registerEObj( "unknown_6", 2004703, 5010816, 4, { 196.927399f, 44.000019f, -101.381798f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "sgbg_f1d7_a1_evl01_1", 2004704, 5032163, 4, { 199.696106f, 44.000000f, -181.197006f },
+ 1.000000f, 0.000000f );
+ // States -> evils_def evils_off_anim evils_on evils_on_anim
+ instance->registerEObj( "Aetherialflow", 2004705, 5032164, 4, { 199.682800f, 44.163898f, -180.392395f }, 1.000000f,
+ -0.000000f );
+ instance->registerEObj( "Fellorb", 2004706, 5009746, 4, { 200.094101f, -0.000008f, 0.050249f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "Aetherialflow_1", 2004707, 5033533, 4, { 199.899506f, 0.000000f, -3.297300f }, 1.000000f,
+ -0.000000f );
+ instance->registerEObj( "unknown_7", 2004768, 5033548, 4, { 210.649307f, 0.116687f, -6.120441f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_8", 2004769, 5033549, 4, { 189.489807f, 0.116688f, -6.804901f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_9", 2004770, 5033551, 4, { 204.506500f, 0.116687f, 9.902725f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "sgvf_w_lvd_b0118_1", 2004708, 5034801, 4, { -119.510101f, -2.400002f, 18.885540f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "sgvf_w_lvd_b0118_2", 2002872, 5034800, 4, { -130.314606f, -2.400000f, -18.221069f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "unknown_10", 2002735, 0, 4, { -125.041801f, -1.964380f, -20.543480f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "sgpl_f1d7_a1_gar0", 2004996, 5390927, 4, { -112.845497f, -2.400000f, 12.122500f },
+ 1.000000f, 0.785314f );
+ instance->registerEObj( "sgpl_f1d7_a1_gar0_1", 2004997, 5390928, 4, { -112.845497f, -2.400000f, -12.378100f },
+ 1.000000f, 0.785457f );
+ instance->registerEObj( "sgpl_f1d7_a1_gar0_2", 2004998, 5390929, 4, { -137.250000f, -2.400000f, 12.122500f },
+ 1.000000f, -0.785410f );
+ instance->registerEObj( "sgpl_f1d7_a1_gar0_3", 2004999, 5390930, 4, { -137.396194f, -2.400000f, -12.366500f },
+ 1.000000f, -0.785398f );
+ instance->registerEObj( "sgvf_w_lvd_b0118_3", 2004782, 5038257, 4, { 198.459198f, 43.991699f, -172.369705f },
+ 1.000000f, 0.000048f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "sgvf_w_lvd_b0118_4", 2002872, 5038255, 4, { 197.802597f, 43.991699f, -125.932701f },
+ 1.000000f, -0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "unknown_11", 2002735, 0, 4, { 199.511703f, 44.022221f, -130.601303f }, 1.000000f,
+ -0.000000f );
+ instance->registerEObj( "Entrance", 2000182, 5018466, 5, { -255.724792f, -9.199999f, -5.249732f }, 1.000000f,
+ 0.000000f );
+ // States -> vf_lock_on vf_lock_of
+ instance->registerEObj( "Shortcut", 2000700, 0, 4, { -252.173401f, -9.199999f, 5.737248f }, 1.000000f, 0.000000f );
+ instance->registerEObj( "Exit", 2000139, 0, 4, { 200.798599f, -0.000008f, 240.880905f }, 1.000000f, 0.000000f );
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp b/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp
index ec9e761e..29aeaebb 100644
--- a/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp
+++ b/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp
@@ -1,58 +1,85 @@
#include
#include
-class BaelsarsWall : public InstanceContentScript
+class BaelsarsWall :
+ public InstanceContentScript
{
public:
- BaelsarsWall() : InstanceContentScript( 48 )
- { }
+ BaelsarsWall() :
+ InstanceContentScript( 48 )
+ {
+ }
- void onInit( InstanceContentPtr instance ) override
- {
- instance->registerEObj( "unknown_0", 2002735, 0, 4, { -173.966797f, 3.049999f, 52.443710f }, 1.000000f, 0.000000f );
- instance->registerEObj( "sgvf_w_lvd_b0118", 2002872, 6588628, 4, { -173.612198f, 3.049997f, 52.688000f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "sgvf_w_lvd_b0118_1", 2002872, 6588629, 4, { -154.029907f, 3.049906f, 72.262756f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "unknown_1", 2002735, 0, 4, { 95.577843f, -300.028412f, 0.707827f }, 1.000000f, -1.570451f );
- instance->registerEObj( "sgvf_w_lvd_b0118_2", 2002872, 6588652, 4, { 95.163948f, -300.028198f, 0.952097f }, 1.000000f, -1.570451f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "sgvf_w_lvd_b0118_3", 2002872, 6588653, 4, { 135.748398f, -300.000092f, 0.172490f }, 1.000000f, 0.000000f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "sgvf_w_lvd_b0118_4", 2002872, 6588667, 4, { 371.527588f, 212.000000f, 391.566010f }, 1.000000f, -0.000000f );
- // States -> vf_bextwall_on vf_bextwall_of
- instance->registerEObj( "unknown_2", 2002735, 0, 4, { 371.795685f, 212.000000f, 391.643097f }, 1.000000f, -1.570451f );
- instance->registerEObj( "Shortcut", 2000700, 0, 4, { -230.764297f, -0.932137f, -173.143600f }, 1.000000f, 0.000000f );
- instance->registerEObj( "Exit", 2000139, 0, 4, { 352.071411f, 212.000000f, 391.988892f }, 0.991760f, 0.000048f );
- instance->registerEObj( "Entrance", 2000182, 6562675, 5, { -228.044006f, -0.901261f, -183.153198f }, 1.000000f, 0.000000f );
- // States -> vf_lock_on vf_lock_of
- instance->registerEObj( "Imperialidentificationkey", 2007567, 0, 4, { -202.837997f, -0.966086f, -62.488140f }, 1.000000f, 0.000000f );
- instance->registerEObj( "Securityterminal", 2007571, 6640773, 4, { -206.023102f, 2.815013f, -48.897739f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_3", 2007575, 6501039, 4, { -203.861694f, 1.804717f, -49.827511f }, 1.000000f, 0.000000f );
- instance->registerEObj( "Imperialidentificationkey_1", 2007568, 0, 4, { -176.569397f, 2.150000f, 17.400681f }, 1.000000f, 0.000000f );
- instance->registerEObj( "Securityterminal_1", 2007572, 6516973, 4, { -187.083206f, 2.707914f, 19.031469f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_4", 2007576, 6502290, 4, { -174.854904f, 2.100000f, 23.458460f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_5", 2007776, 6500492, 4, { -126.770897f, 2.000089f, 72.952606f }, 1.000000f, 0.000000f );
- instance->registerEObj( "Controlpanel", 2007580, 0, 4, { -0.003809f, -299.760315f, 0.024599f }, 2.000000f, 0.000048f );
- instance->registerEObj( "Controlpanel_1", 2007581, 0, 4, { 177.511993f, -298.963196f, 4.224624f }, 0.991760f, 0.000048f );
- instance->registerEObj( "Controlpanel_2", 2007582, 6523203, 4, { 177.434006f, -298.072601f, 6.243333f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_6", 2007601, 6516974, 4, { 176.321396f, -299.105713f, 0.250570f }, 1.000000f, 0.000000f );
- instance->registerEObj( "Imperialidentificationkey_2", 2007569, 0, 4, { 317.032288f, 169.000107f, 230.153503f }, 1.000000f, 0.000000f );
- instance->registerEObj( "Securityterminal_2", 2007573, 6488516, 4, { 320.921600f, 169.867996f, 243.976807f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_7", 2007577, 6488509, 4, { 328.225189f, 169.000107f, 244.581894f }, 1.000000f, 0.000000f );
- instance->registerEObj( "unknown_8", 2007578, 6777152, 4, { 382.790100f, 203.000000f, 357.169403f }, 1.000000f, 0.000000f );
+ void onInit( InstanceContentPtr instance ) override
+ {
+ instance->registerEObj( "unknown_0", 2002735, 0, 4, { -173.966797f, 3.049999f, 52.443710f }, 1.000000f, 0.000000f );
+ instance->registerEObj( "sgvf_w_lvd_b0118", 2002872, 6588628, 4, { -173.612198f, 3.049997f, 52.688000f }, 1.000000f,
+ 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "sgvf_w_lvd_b0118_1", 2002872, 6588629, 4, { -154.029907f, 3.049906f, 72.262756f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "unknown_1", 2002735, 0, 4, { 95.577843f, -300.028412f, 0.707827f }, 1.000000f,
+ -1.570451f );
+ instance->registerEObj( "sgvf_w_lvd_b0118_2", 2002872, 6588652, 4, { 95.163948f, -300.028198f, 0.952097f },
+ 1.000000f, -1.570451f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "sgvf_w_lvd_b0118_3", 2002872, 6588653, 4, { 135.748398f, -300.000092f, 0.172490f },
+ 1.000000f, 0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "sgvf_w_lvd_b0118_4", 2002872, 6588667, 4, { 371.527588f, 212.000000f, 391.566010f },
+ 1.000000f, -0.000000f );
+ // States -> vf_bextwall_on vf_bextwall_of
+ instance->registerEObj( "unknown_2", 2002735, 0, 4, { 371.795685f, 212.000000f, 391.643097f }, 1.000000f,
+ -1.570451f );
+ instance->registerEObj( "Shortcut", 2000700, 0, 4, { -230.764297f, -0.932137f, -173.143600f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "Exit", 2000139, 0, 4, { 352.071411f, 212.000000f, 391.988892f }, 0.991760f, 0.000048f );
+ instance->registerEObj( "Entrance", 2000182, 6562675, 5, { -228.044006f, -0.901261f, -183.153198f }, 1.000000f,
+ 0.000000f );
+ // States -> vf_lock_on vf_lock_of
+ instance->registerEObj( "Imperialidentificationkey", 2007567, 0, 4, { -202.837997f, -0.966086f, -62.488140f },
+ 1.000000f, 0.000000f );
+ instance->registerEObj( "Securityterminal", 2007571, 6640773, 4, { -206.023102f, 2.815013f, -48.897739f },
+ 1.000000f, 0.000000f );
+ instance->registerEObj( "unknown_3", 2007575, 6501039, 4, { -203.861694f, 1.804717f, -49.827511f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "Imperialidentificationkey_1", 2007568, 0, 4, { -176.569397f, 2.150000f, 17.400681f },
+ 1.000000f, 0.000000f );
+ instance->registerEObj( "Securityterminal_1", 2007572, 6516973, 4, { -187.083206f, 2.707914f, 19.031469f },
+ 1.000000f, 0.000000f );
+ instance->registerEObj( "unknown_4", 2007576, 6502290, 4, { -174.854904f, 2.100000f, 23.458460f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_5", 2007776, 6500492, 4, { -126.770897f, 2.000089f, 72.952606f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "Controlpanel", 2007580, 0, 4, { -0.003809f, -299.760315f, 0.024599f }, 2.000000f,
+ 0.000048f );
+ instance->registerEObj( "Controlpanel_1", 2007581, 0, 4, { 177.511993f, -298.963196f, 4.224624f }, 0.991760f,
+ 0.000048f );
+ instance->registerEObj( "Controlpanel_2", 2007582, 6523203, 4, { 177.434006f, -298.072601f, 6.243333f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_6", 2007601, 6516974, 4, { 176.321396f, -299.105713f, 0.250570f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "Imperialidentificationkey_2", 2007569, 0, 4, { 317.032288f, 169.000107f, 230.153503f },
+ 1.000000f, 0.000000f );
+ instance->registerEObj( "Securityterminal_2", 2007573, 6488516, 4, { 320.921600f, 169.867996f, 243.976807f },
+ 1.000000f, 0.000000f );
+ instance->registerEObj( "unknown_7", 2007577, 6488509, 4, { 328.225189f, 169.000107f, 244.581894f }, 1.000000f,
+ 0.000000f );
+ instance->registerEObj( "unknown_8", 2007578, 6777152, 4, { 382.790100f, 203.000000f, 357.169403f }, 1.000000f,
+ 0.000000f );
- }
+ }
- void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
- {
+ void onUpdate( InstanceContentPtr instance, uint32_t currTime ) override
+ {
- }
+ }
- void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
- uint16_t param2 ) override
- {
+ void onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
+ uint16_t param2 ) override
+ {
- }
+ }
};
\ No newline at end of file
diff --git a/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp b/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp
index 2ca73d36..d05ad9e1 100644
--- a/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp
+++ b/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp
@@ -1,26 +1,29 @@
#include