diff --git a/.gitignore b/.gitignore
index 97aa43f5..0747ffb3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -106,4 +106,7 @@ src/libraries/external/boost_*
src/servers/Server_Common/Version\.cpp
# edit and continue files
-/enc_temp_folder
\ No newline at end of file
+/enc_temp_folder
+
+# travis-ci build mtime cache
+.mtime_cache
diff --git a/.travis.yml b/.travis.yml
index 6c5c62cd..21eb7833 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,24 +1,44 @@
+---
language: c++
-sudo: enabled
-before_install:
- - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
- - sudo add-apt-repository universe
- - sudo apt-get update
- - sudo apt-get install -y software-properties-common
- - sudo apt-get update
- - sudo apt-get install gcc-7 g++-7 gcc-7-multilib g++-7-multilib cmake3 -y
- - sudo apt-get install libboost-dev libboost-all-dev libmysqlclient-dev -y
- - sudo apt-get install libmysqlcppconn-dev -y
-compiler:
- - g++
-
-
+sudo: enabled
+
+git:
+ depth: 5
+
+matrix:
+ include:
+ - os: linux
+ addons:
+ apt:
+ sources:
+ - ubuntu-toolchain-r-test
+ packages:
+ - gcc-7
+ - g++-7
+ env:
+ - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
+
+# Setup cache
+cache:
+ directories:
+ - build
+ - .mtime_cache
+
+# Setup build matrix and dependencies
+before_install:
+ - eval "${MATRIX_EVAL}"
+ - gem install --no-ri --no-rdoc mtime_cache
+ - sudo apt-get update
+ - sudo apt-get install -y libboost-dev libboost-all-dev
+ - sudo apt-get install -y libmysqlclient-dev libmysqlcppconn-dev
+
# Build steps
script:
- - g++ --version
- - mkdir build
+ - $CXX --version
+ - mtime_cache src/**/*.{%{cpp}} -c .mtime_cache/cache.json
+ - mkdir -p build
- cd build
- - cmake .. -DSAPPHIRE_BOOST_VER="1.54.0" -DCMAKE_CXX_COMPILER=g++-7 && make -j 3
+ - cmake .. -DSAPPHIRE_BOOST_VER="1.54.0" && make -j 3
- cd ..
- bash sql_import.sh
diff --git a/CMakeSettings.json b/CMakeSettings.json
index 33a965bf..90e895cd 100644
--- a/CMakeSettings.json
+++ b/CMakeSettings.json
@@ -56,6 +56,62 @@
"value": "-vc140"
}
]
+ },
+ {
+ "name": "x86-Debug",
+ "generator": "Visual Studio 15 2017",
+ "configurationType": "Debug",
+ "buildRoot": "${env.USERPROFILE}\\CMakeBuild\\${workspaceHash}\\build\\${name}",
+ "cmakeCommandArgs": "-DCMAKE_BUILD_TYPE=\"Debug\"",
+ "buildCommandArgs": "-m -v:minimal",
+ "variables": [
+ {
+ "name": "Boost_COMPILER",
+ "value": "-vc141"
+ }
+ ]
+ },
+ {
+ "name": "x86-Release",
+ "generator": "Visual Studio 15 2017",
+ "configurationType": "Release",
+ "buildRoot": "${env.USERPROFILE}\\CMakeBuild\\${workspaceHash}\\build\\${name}",
+ "cmakeCommandArgs": "",
+ "buildCommandArgs": "-m -v:minimal",
+ "variables": [
+ {
+ "name": "Boost_COMPILER",
+ "value": "-vc141"
+ }
+ ]
+ },
+ {
+ "name": "x64-Debug",
+ "generator": "Visual Studio 15 2017 Win64",
+ "configurationType": "Debug",
+ "buildRoot": "${env.USERPROFILE}\\CMakeBuild\\${workspaceHash}\\build\\${name}",
+ "cmakeCommandArgs": "-DCMAKE_BUILD_TYPE=\"Debug\"",
+ "buildCommandArgs": "-m -v:minimal",
+ "variables": [
+ {
+ "name": "Boost_COMPILER",
+ "value": "-vc141"
+ }
+ ]
+ },
+ {
+ "name": "x64-Release",
+ "generator": "Visual Studio 15 2017 Win64",
+ "configurationType": "Release",
+ "buildRoot": "${env.USERPROFILE}\\CMakeBuild\\${workspaceHash}\\build\\${name}",
+ "cmakeCommandArgs": "",
+ "buildCommandArgs": "-m -v:minimal",
+ "variables": [
+ {
+ "name": "Boost_COMPILER",
+ "value": "-vc141"
+ }
+ ]
}
]
}
diff --git a/bin/config/settings_zone.xml b/bin/config/settings_zone.xml
index b1ab6081..18d33bf6 100644
--- a/bin/config/settings_zone.xml
+++ b/bin/config/settings_zone.xml
@@ -7,6 +7,8 @@
127.0.0.1
C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv
+
+ ../scripts/chai
127.0.0.1
diff --git a/sql/charaglobalitem.sql b/sql/charaglobalitem.sql
index bca3438b..86025c3e 100644
--- a/sql/charaglobalitem.sql
+++ b/sql/charaglobalitem.sql
@@ -48,7 +48,7 @@ CREATE TABLE `charaglobalitem` (
`buffer_4` int(3) DEFAULT '0',
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`itemId`),
KEY `CharacterId` (`CharacterId`),
KEY `storageId` (`storageId`),
diff --git a/sql/charainfo.sql b/sql/charainfo.sql
index 5a1bbfa6..4a03dd4a 100644
--- a/sql/charainfo.sql
+++ b/sql/charainfo.sql
@@ -15,7 +15,7 @@ CREATE TABLE `charainfo` (
`AccountId` int(11) NOT NULL,
`CharacterId` decimal(20,0) NOT NULL,
`ContentId` bigint(20) DEFAULT NULL,
- `Name` varchar(32) COLLATE latin1_general_ci DEFAULT NULL,
+ `Name` varchar(32) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
`Hp` bigint(20) DEFAULT '200',
`Mp` bigint(20) DEFAULT '200',
`Tp` bigint(20) DEFAULT '0',
@@ -75,7 +75,8 @@ CREATE TABLE `charainfo` (
`GMRank` int(3) DEFAULT '0',
`Unlocks` binary(64) DEFAULT NULL,
`CFPenaltyUntil` int(11) DEFAULT NULL,
- `UPDATE_DATE` datetime DEFAULT NULL
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`CharacterId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- Dumping data for table sapphire.charainfo: 0 rows
diff --git a/sql/charainfoblacklist.sql b/sql/charainfoblacklist.sql
index c263c5fe..332c1851 100644
--- a/sql/charainfoblacklist.sql
+++ b/sql/charainfoblacklist.sql
@@ -27,7 +27,7 @@ CREATE TABLE `charainfoblacklist` (
`CharacterIdList` blob,
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` date DEFAULT NULL,
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`CharacterId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
diff --git a/sql/charainfofriendlist.sql b/sql/charainfofriendlist.sql
index f65c174f..04943f3d 100644
--- a/sql/charainfofriendlist.sql
+++ b/sql/charainfofriendlist.sql
@@ -28,7 +28,7 @@ CREATE TABLE `charainfofriendlist` (
`InviteDataList` blob,
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` date DEFAULT NULL,
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`CharacterId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
diff --git a/sql/charainfolinkshell.sql b/sql/charainfolinkshell.sql
index 1a608f23..cb583e2c 100644
--- a/sql/charainfolinkshell.sql
+++ b/sql/charainfolinkshell.sql
@@ -27,7 +27,7 @@ CREATE TABLE `charainfolinkshell` (
`LinkshellIdList` binary(64) DEFAULT NULL,
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` date DEFAULT NULL,
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`CharacterId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
diff --git a/sql/charainfosearch.sql b/sql/charainfosearch.sql
index 8d88bd54..50651c4b 100644
--- a/sql/charainfosearch.sql
+++ b/sql/charainfosearch.sql
@@ -29,7 +29,7 @@ CREATE TABLE `charainfosearch` (
`SearchComment` binary(193) DEFAULT "",
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` date DEFAULT NULL
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
diff --git a/sql/charaitemcrystal.sql b/sql/charaitemcrystal.sql
index e7fa731c..1f9c2d57 100644
--- a/sql/charaitemcrystal.sql
+++ b/sql/charaitemcrystal.sql
@@ -47,7 +47,7 @@ CREATE TABLE `charaitemcrystal` (
`container_17` int(20) DEFAULT '0',
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`idx`),
KEY `CharacterId` (`CharacterId`)
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
diff --git a/sql/charaitemcurrency.sql b/sql/charaitemcurrency.sql
index e3d2c4cb..681dc036 100644
--- a/sql/charaitemcurrency.sql
+++ b/sql/charaitemcurrency.sql
@@ -41,7 +41,7 @@ CREATE TABLE `charaitemcurrency` (
`container_11` int(20) NOT NULL DEFAULT '0',
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`idx`),
UNIQUE KEY `CharacterId` (`CharacterId`)
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
diff --git a/sql/charaitemgearset.sql b/sql/charaitemgearset.sql
index b318d00d..8bd9e314 100644
--- a/sql/charaitemgearset.sql
+++ b/sql/charaitemgearset.sql
@@ -43,7 +43,7 @@ CREATE TABLE `charaitemgearset` (
`container_13` int(20) DEFAULT '0',
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`CharacterId`,`storageId`),
UNIQUE KEY `idx` (`idx`)
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
diff --git a/sql/charaiteminventory.sql b/sql/charaiteminventory.sql
index e3bcd1b3..34a4d281 100644
--- a/sql/charaiteminventory.sql
+++ b/sql/charaiteminventory.sql
@@ -54,7 +54,7 @@ CREATE TABLE IF NOT EXISTS `charaiteminventory` (
`container_34` int(20) DEFAULT '0',
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`CharacterId`,`storageId`),
UNIQUE KEY `idx` (`idx`)
) ENGINE=MyISAM AUTO_INCREMENT=161 DEFAULT CHARSET=utf8;
diff --git a/sql/charaquest.sql b/sql/charaquest.sql
deleted file mode 100644
index 3faacc74..00000000
--- a/sql/charaquest.sql
+++ /dev/null
@@ -1,309 +0,0 @@
-SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
-SET time_zone = "+00:00";
-
-CREATE TABLE charaquest (
- `QuestId_0` int(5) DEFAULT '0',
- `Sequence_0` int(3) DEFAULT '0',
- `Flags_0` int(3) DEFAULT '0',
- `Variables_0_0` int(3) DEFAULT '0',
- `Variables_0_1` int(3) DEFAULT '0',
- `Variables_0_2` int(3) DEFAULT '0',
- `Variables_0_3` int(3) DEFAULT '0',
- `Variables_0_4` int(3) DEFAULT '0',
- `Variables_0_5` int(3) DEFAULT '0',
- `Variables_0_6` int(3) DEFAULT '0',
- `QuestId_1` int(5) DEFAULT '0',
- `Sequence_1` int(3) DEFAULT '0',
- `Flags_1` int(3) DEFAULT '0',
- `Variables_1_0` int(3) DEFAULT '0',
- `Variables_1_1` int(3) DEFAULT '0',
- `Variables_1_2` int(3) DEFAULT '0',
- `Variables_1_3` int(3) DEFAULT '0',
- `Variables_1_4` int(3) DEFAULT '0',
- `Variables_1_5` int(3) DEFAULT '0',
- `Variables_1_6` int(3) DEFAULT '0',
- `QuestId_2` int(5) DEFAULT '0',
- `Sequence_2` int(3) DEFAULT '0',
- `Flags_2` int(3) DEFAULT '0',
- `Variables_2_0` int(3) DEFAULT '0',
- `Variables_2_1` int(3) DEFAULT '0',
- `Variables_2_2` int(3) DEFAULT '0',
- `Variables_2_3` int(3) DEFAULT '0',
- `Variables_2_4` int(3) DEFAULT '0',
- `Variables_2_5` int(3) DEFAULT '0',
- `Variables_2_6` int(3) DEFAULT '0',
- `QuestId_3` int(5) DEFAULT '0',
- `Sequence_3` int(3) DEFAULT '0',
- `Flags_3` int(3) DEFAULT '0',
- `Variables_3_0` int(3) DEFAULT '0',
- `Variables_3_1` int(3) DEFAULT '0',
- `Variables_3_2` int(3) DEFAULT '0',
- `Variables_3_3` int(3) DEFAULT '0',
- `Variables_3_4` int(3) DEFAULT '0',
- `Variables_3_5` int(3) DEFAULT '0',
- `Variables_3_6` int(3) DEFAULT '0',
- `QuestId_4` int(5) DEFAULT '0',
- `Sequence_4` int(3) DEFAULT '0',
- `Flags_4` int(3) DEFAULT '0',
- `Variables_4_0` int(3) DEFAULT '0',
- `Variables_4_1` int(3) DEFAULT '0',
- `Variables_4_2` int(3) DEFAULT '0',
- `Variables_4_3` int(3) DEFAULT '0',
- `Variables_4_4` int(3) DEFAULT '0',
- `Variables_4_5` int(3) DEFAULT '0',
- `Variables_4_6` int(3) DEFAULT '0',
- `QuestId_5` int(5) DEFAULT '0',
- `Sequence_5` int(3) DEFAULT '0',
- `Flags_5` int(3) DEFAULT '0',
- `Variables_5_0` int(3) DEFAULT '0',
- `Variables_5_1` int(3) DEFAULT '0',
- `Variables_5_2` int(3) DEFAULT '0',
- `Variables_5_3` int(3) DEFAULT '0',
- `Variables_5_4` int(3) DEFAULT '0',
- `Variables_5_5` int(3) DEFAULT '0',
- `Variables_5_6` int(3) DEFAULT '0',
- `QuestId_6` int(5) DEFAULT '0',
- `Sequence_6` int(3) DEFAULT '0',
- `Flags_6` int(3) DEFAULT '0',
- `Variables_6_0` int(3) DEFAULT '0',
- `Variables_6_1` int(3) DEFAULT '0',
- `Variables_6_2` int(3) DEFAULT '0',
- `Variables_6_3` int(3) DEFAULT '0',
- `Variables_6_4` int(3) DEFAULT '0',
- `Variables_6_5` int(3) DEFAULT '0',
- `Variables_6_6` int(3) DEFAULT '0',
- `QuestId_7` int(5) DEFAULT '0',
- `Sequence_7` int(3) DEFAULT '0',
- `Flags_7` int(3) DEFAULT '0',
- `Variables_7_0` int(3) DEFAULT '0',
- `Variables_7_1` int(3) DEFAULT '0',
- `Variables_7_2` int(3) DEFAULT '0',
- `Variables_7_3` int(3) DEFAULT '0',
- `Variables_7_4` int(3) DEFAULT '0',
- `Variables_7_5` int(3) DEFAULT '0',
- `Variables_7_6` int(3) DEFAULT '0',
- `QuestId_8` int(5) DEFAULT '0',
- `Sequence_8` int(3) DEFAULT '0',
- `Flags_8` int(3) DEFAULT '0',
- `Variables_8_0` int(3) DEFAULT '0',
- `Variables_8_1` int(3) DEFAULT '0',
- `Variables_8_2` int(3) DEFAULT '0',
- `Variables_8_3` int(3) DEFAULT '0',
- `Variables_8_4` int(3) DEFAULT '0',
- `Variables_8_5` int(3) DEFAULT '0',
- `Variables_8_6` int(3) DEFAULT '0',
- `QuestId_9` int(5) DEFAULT '0',
- `Sequence_9` int(3) DEFAULT '0',
- `Flags_9` int(3) DEFAULT '0',
- `Variables_9_0` int(3) DEFAULT '0',
- `Variables_9_1` int(3) DEFAULT '0',
- `Variables_9_2` int(3) DEFAULT '0',
- `Variables_9_3` int(3) DEFAULT '0',
- `Variables_9_4` int(3) DEFAULT '0',
- `Variables_9_5` int(3) DEFAULT '0',
- `Variables_9_6` int(3) DEFAULT '0',
- `QuestId_10` int(5) DEFAULT '0',
- `Sequence_10` int(3) DEFAULT '0',
- `Flags_10` int(3) DEFAULT '0',
- `Variables_10_0` int(3) DEFAULT '0',
- `Variables_10_1` int(3) DEFAULT '0',
- `Variables_10_2` int(3) DEFAULT '0',
- `Variables_10_3` int(3) DEFAULT '0',
- `Variables_10_4` int(3) DEFAULT '0',
- `Variables_10_5` int(3) DEFAULT '0',
- `Variables_10_6` int(3) DEFAULT '0',
- `QuestId_11` int(5) DEFAULT '0',
- `Sequence_11` int(3) DEFAULT '0',
- `Flags_11` int(3) DEFAULT '0',
- `Variables_11_0` int(3) DEFAULT '0',
- `Variables_11_1` int(3) DEFAULT '0',
- `Variables_11_2` int(3) DEFAULT '0',
- `Variables_11_3` int(3) DEFAULT '0',
- `Variables_11_4` int(3) DEFAULT '0',
- `Variables_11_5` int(3) DEFAULT '0',
- `Variables_11_6` int(3) DEFAULT '0',
- `QuestId_12` int(5) DEFAULT '0',
- `Sequence_12` int(3) DEFAULT '0',
- `Flags_12` int(3) DEFAULT '0',
- `Variables_12_0` int(3) DEFAULT '0',
- `Variables_12_1` int(3) DEFAULT '0',
- `Variables_12_2` int(3) DEFAULT '0',
- `Variables_12_3` int(3) DEFAULT '0',
- `Variables_12_4` int(3) DEFAULT '0',
- `Variables_12_5` int(3) DEFAULT '0',
- `Variables_12_6` int(3) DEFAULT '0',
- `QuestId_13` int(5) DEFAULT '0',
- `Sequence_13` int(3) DEFAULT '0',
- `Flags_13` int(3) DEFAULT '0',
- `Variables_13_0` int(3) DEFAULT '0',
- `Variables_13_1` int(3) DEFAULT '0',
- `Variables_13_2` int(3) DEFAULT '0',
- `Variables_13_3` int(3) DEFAULT '0',
- `Variables_13_4` int(3) DEFAULT '0',
- `Variables_13_5` int(3) DEFAULT '0',
- `Variables_13_6` int(3) DEFAULT '0',
- `QuestId_14` int(5) DEFAULT '0',
- `Sequence_14` int(3) DEFAULT '0',
- `Flags_14` int(3) DEFAULT '0',
- `Variables_14_0` int(3) DEFAULT '0',
- `Variables_14_1` int(3) DEFAULT '0',
- `Variables_14_2` int(3) DEFAULT '0',
- `Variables_14_3` int(3) DEFAULT '0',
- `Variables_14_4` int(3) DEFAULT '0',
- `Variables_14_5` int(3) DEFAULT '0',
- `Variables_14_6` int(3) DEFAULT '0',
- `QuestId_15` int(5) DEFAULT '0',
- `Sequence_15` int(3) DEFAULT '0',
- `Flags_15` int(3) DEFAULT '0',
- `Variables_15_0` int(3) DEFAULT '0',
- `Variables_15_1` int(3) DEFAULT '0',
- `Variables_15_2` int(3) DEFAULT '0',
- `Variables_15_3` int(3) DEFAULT '0',
- `Variables_15_4` int(3) DEFAULT '0',
- `Variables_15_5` int(3) DEFAULT '0',
- `Variables_15_6` int(3) DEFAULT '0',
- `QuestId_16` int(5) DEFAULT '0',
- `Sequence_16` int(3) DEFAULT '0',
- `Flags_16` int(3) DEFAULT '0',
- `Variables_16_0` int(3) DEFAULT '0',
- `Variables_16_1` int(3) DEFAULT '0',
- `Variables_16_2` int(3) DEFAULT '0',
- `Variables_16_3` int(3) DEFAULT '0',
- `Variables_16_4` int(3) DEFAULT '0',
- `Variables_16_5` int(3) DEFAULT '0',
- `Variables_16_6` int(3) DEFAULT '0',
- `QuestId_17` int(5) DEFAULT '0',
- `Sequence_17` int(3) DEFAULT '0',
- `Flags_17` int(3) DEFAULT '0',
- `Variables_17_0` int(3) DEFAULT '0',
- `Variables_17_1` int(3) DEFAULT '0',
- `Variables_17_2` int(3) DEFAULT '0',
- `Variables_17_3` int(3) DEFAULT '0',
- `Variables_17_4` int(3) DEFAULT '0',
- `Variables_17_5` int(3) DEFAULT '0',
- `Variables_17_6` int(3) DEFAULT '0',
- `QuestId_18` int(5) DEFAULT '0',
- `Sequence_18` int(3) DEFAULT '0',
- `Flags_18` int(3) DEFAULT '0',
- `Variables_18_0` int(3) DEFAULT '0',
- `Variables_18_1` int(3) DEFAULT '0',
- `Variables_18_2` int(3) DEFAULT '0',
- `Variables_18_3` int(3) DEFAULT '0',
- `Variables_18_4` int(3) DEFAULT '0',
- `Variables_18_5` int(3) DEFAULT '0',
- `Variables_18_6` int(3) DEFAULT '0',
- `QuestId_19` int(5) DEFAULT '0',
- `Sequence_19` int(3) DEFAULT '0',
- `Flags_19` int(3) DEFAULT '0',
- `Variables_19_0` int(3) DEFAULT '0',
- `Variables_19_1` int(3) DEFAULT '0',
- `Variables_19_2` int(3) DEFAULT '0',
- `Variables_19_3` int(3) DEFAULT '0',
- `Variables_19_4` int(3) DEFAULT '0',
- `Variables_19_5` int(3) DEFAULT '0',
- `Variables_19_6` int(3) DEFAULT '0',
- `QuestId_20` int(5) DEFAULT '0',
- `Sequence_20` int(3) DEFAULT '0',
- `Flags_20` int(3) DEFAULT '0',
- `Variables_20_0` int(3) DEFAULT '0',
- `Variables_20_1` int(3) DEFAULT '0',
- `Variables_20_2` int(3) DEFAULT '0',
- `Variables_20_3` int(3) DEFAULT '0',
- `Variables_20_4` int(3) DEFAULT '0',
- `Variables_20_5` int(3) DEFAULT '0',
- `Variables_20_6` int(3) DEFAULT '0',
- `QuestId_21` int(5) DEFAULT '0',
- `Sequence_21` int(3) DEFAULT '0',
- `Flags_21` int(3) DEFAULT '0',
- `Variables_21_0` int(3) DEFAULT '0',
- `Variables_21_1` int(3) DEFAULT '0',
- `Variables_21_2` int(3) DEFAULT '0',
- `Variables_21_3` int(3) DEFAULT '0',
- `Variables_21_4` int(3) DEFAULT '0',
- `Variables_21_5` int(3) DEFAULT '0',
- `Variables_21_6` int(3) DEFAULT '0',
- `QuestId_22` int(5) DEFAULT '0',
- `Sequence_22` int(3) DEFAULT '0',
- `Flags_22` int(3) DEFAULT '0',
- `Variables_22_0` int(3) DEFAULT '0',
- `Variables_22_1` int(3) DEFAULT '0',
- `Variables_22_2` int(3) DEFAULT '0',
- `Variables_22_3` int(3) DEFAULT '0',
- `Variables_22_4` int(3) DEFAULT '0',
- `Variables_22_5` int(3) DEFAULT '0',
- `Variables_22_6` int(3) DEFAULT '0',
- `QuestId_23` int(5) DEFAULT '0',
- `Sequence_23` int(3) DEFAULT '0',
- `Flags_23` int(3) DEFAULT '0',
- `Variables_23_0` int(3) DEFAULT '0',
- `Variables_23_1` int(3) DEFAULT '0',
- `Variables_23_2` int(3) DEFAULT '0',
- `Variables_23_3` int(3) DEFAULT '0',
- `Variables_23_4` int(3) DEFAULT '0',
- `Variables_23_5` int(3) DEFAULT '0',
- `Variables_23_6` int(3) DEFAULT '0',
- `QuestId_24` int(5) DEFAULT '0',
- `Sequence_24` int(3) DEFAULT '0',
- `Flags_24` int(3) DEFAULT '0',
- `Variables_24_0` int(3) DEFAULT '0',
- `Variables_24_1` int(3) DEFAULT '0',
- `Variables_24_2` int(3) DEFAULT '0',
- `Variables_24_3` int(3) DEFAULT '0',
- `Variables_24_4` int(3) DEFAULT '0',
- `Variables_24_5` int(3) DEFAULT '0',
- `Variables_24_6` int(3) DEFAULT '0',
- `QuestId_25` int(5) DEFAULT '0',
- `Sequence_25` int(3) DEFAULT '0',
- `Flags_25` int(3) DEFAULT '0',
- `Variables_25_0` int(3) DEFAULT '0',
- `Variables_25_1` int(3) DEFAULT '0',
- `Variables_25_2` int(3) DEFAULT '0',
- `Variables_25_3` int(3) DEFAULT '0',
- `Variables_25_4` int(3) DEFAULT '0',
- `Variables_25_5` int(3) DEFAULT '0',
- `Variables_25_6` int(3) DEFAULT '0',
- `QuestId_26` int(5) DEFAULT '0',
- `Sequence_26` int(3) DEFAULT '0',
- `Flags_26` int(3) DEFAULT '0',
- `Variables_26_0` int(3) DEFAULT '0',
- `Variables_26_1` int(3) DEFAULT '0',
- `Variables_26_2` int(3) DEFAULT '0',
- `Variables_26_3` int(3) DEFAULT '0',
- `Variables_26_4` int(3) DEFAULT '0',
- `Variables_26_5` int(3) DEFAULT '0',
- `Variables_26_6` int(3) DEFAULT '0',
- `QuestId_27` int(5) DEFAULT '0',
- `Sequence_27` int(3) DEFAULT '0',
- `Flags_27` int(3) DEFAULT '0',
- `Variables_27_0` int(3) DEFAULT '0',
- `Variables_27_1` int(3) DEFAULT '0',
- `Variables_27_2` int(3) DEFAULT '0',
- `Variables_27_3` int(3) DEFAULT '0',
- `Variables_27_4` int(3) DEFAULT '0',
- `Variables_27_5` int(3) DEFAULT '0',
- `Variables_27_6` int(3) DEFAULT '0',
- `QuestId_28` int(5) DEFAULT '0',
- `Sequence_28` int(3) DEFAULT '0',
- `Flags_28` int(3) DEFAULT '0',
- `Variables_28_0` int(3) DEFAULT '0',
- `Variables_28_1` int(3) DEFAULT '0',
- `Variables_28_2` int(3) DEFAULT '0',
- `Variables_28_3` int(3) DEFAULT '0',
- `Variables_28_4` int(3) DEFAULT '0',
- `Variables_28_5` int(3) DEFAULT '0',
- `Variables_28_6` int(3) DEFAULT '0',
- `QuestId_29` int(5) DEFAULT '0',
- `Sequence_29` int(3) DEFAULT '0',
- `Flags_29` int(3) DEFAULT '0',
- `Variables_29_0` int(3) DEFAULT '0',
- `Variables_29_1` int(3) DEFAULT '0',
- `Variables_29_2` int(3) DEFAULT '0',
- `Variables_29_3` int(3) DEFAULT '0',
- `Variables_29_4` int(3) DEFAULT '0',
- `Variables_29_5` int(3) DEFAULT '0',
- `Variables_29_6` int(3) DEFAULT '0',
- `CharacterId` int(20) DEFAULT '0',
- `IS_DELETE` int(3) DEFAULT '0',
- `IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` date DEFAULT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
diff --git a/sql/charaquestnew.sql b/sql/charaquestnew.sql
index ec1b0f16..98279a0d 100644
--- a/sql/charaquestnew.sql
+++ b/sql/charaquestnew.sql
@@ -16,5 +16,5 @@ CREATE TABLE charaquestnew (
`Variables_6` int(3) DEFAULT '0',
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` date
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
\ No newline at end of file
diff --git a/sql/charastatus.sql b/sql/charastatus.sql
index 231b9319..a601aab5 100644
--- a/sql/charastatus.sql
+++ b/sql/charastatus.sql
@@ -101,7 +101,7 @@ CREATE TABLE `charastatus` (
`CharacterId` int(20) DEFAULT NULL,
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` date DEFAULT NULL
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
diff --git a/sql/import.bat b/sql/import.bat
new file mode 100644
index 00000000..73359eae
--- /dev/null
+++ b/sql/import.bat
@@ -0,0 +1,48 @@
+@ECHO OFF
+SETLOCAL
+REM =============
+REM IMPORT CONFIG
+REM =============
+REM NOTE: No spaces before or after the '='!!!
+
+REM =============
+SET PATH_MYSQL="Path\to\mysql.exe"
+SET PATH_MYSQLADMIN="Path\to\mysqladmin.exe"
+SET PATH_SQL="Path\to\Sapphire\sql"
+
+SET USER=root
+SET PASSWORD=
+SET DBADDRESS=localhost
+SET DBPORT=3306
+SET DBNAME=sapphire
+REM =============
+
+IF DEFINED PASSWORD (SET PASSWORD=-p%PASSWORD%)
+
+ECHO Deleteing old database
+%PATH_MYSQLADMIN% -h %DBADDRESS% -u %USER% %PASSWORD% DROP %DBNAME%
+
+ECHO Creating new database
+%PATH_MYSQLADMIN% -h %DBADDRESS% -u %USER% %PASSWORD% CREATE %DBNAME%
+
+ECHO Loading tables into the database
+cd %PATH_SQL%
+FOR %%X IN (*.sql) DO (
+ IF "%%X"=="update.sql" (
+ REM handle update.sql last
+ ) ELSE (
+ ECHO Importing %%X
+ %PATH_MYSQL% %DBNAME% -h %DBADDRESS% -u %USER% < %%X
+ )
+)
+
+IF EXIST "update.sql" (
+ ECHO Importing update.sql
+ %PATH_MYSQL% %DBNAME% -h %DBADDRESS% -u %USER% < update.sql
+)
+
+ECHO Finished!
+
+ENDLOCAL
+PAUSE
+@ECHO ON
diff --git a/sql/infolinkshell.sql b/sql/infolinkshell.sql
index a9e54d6c..b8c84b19 100644
--- a/sql/infolinkshell.sql
+++ b/sql/infolinkshell.sql
@@ -31,7 +31,7 @@ CREATE TABLE `infolinkshell` (
`InviteIdList` blob,
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` date DEFAULT NULL,
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`LinkshellId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
diff --git a/sql/uniqueiddata.sql b/sql/uniqueiddata.sql
index e397fbec..0ca048ad 100644
--- a/sql/uniqueiddata.sql
+++ b/sql/uniqueiddata.sql
@@ -27,7 +27,7 @@ CREATE TABLE `uniqueiddata` (
`IdName` varchar(16) DEFAULT 'NOT SET',
`IS_DELETE` int(3) DEFAULT '0',
`IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0',
- `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
+ `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`NextId`)
) ENGINE=MyISAM AUTO_INCREMENT=1000447 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
diff --git a/sql/update.sql b/sql/update.sql
index e69de29b..a2a9c38e 100644
--- a/sql/update.sql
+++ b/sql/update.sql
@@ -0,0 +1,44 @@
+ALTER TABLE charainfo
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE charastatus
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE charainfoblacklist
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE charaglobalitem
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE charainfofriendlist
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE charainfolinkshell
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE charainfosearch
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE charaitemcrystal
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE charaitemcurrency
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE charaitemgearset
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE charaiteminventory
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE charaquestnew
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE infolinkshell
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE uniqueiddata
+MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
+
+ALTER TABLE charainfo
+ADD `Orchestrion` binary(38) DEFAULT NULL AFTER `Mounts`;
diff --git a/src/servers/Server_Common/Common.h b/src/servers/Server_Common/Common.h
index faf95222..8a93eb84 100644
--- a/src/servers/Server_Common/Common.h
+++ b/src/servers/Server_Common/Common.h
@@ -13,828 +13,840 @@
// They are also defined within the Core::Common namespace to avoid collisions.
// +---------------------------------------------------------------------------
namespace Core {
-namespace Common {
+ namespace Common {
- // 99 is the last spawn id that seems to spawn any actor
- const uint8_t MAX_DISPLAYED_ACTORS = 99;
+ // 99 is the last spawn id that seems to spawn any actor
+ const uint8_t MAX_DISPLAYED_ACTORS = 99;
- 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;
- };
-
- 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 InventoryType : uint16_t
- {
- Bag0 = 0,
- Bag1 = 1,
- Bag2 = 2,
- Bag3 = 3,
-
- GearSet0 = 1000,
- GearSet1 = 1001,
-
- Currency = 2000,
- Crystal = 2001,
- //UNKNOWN_0 = 2003,
- KeyItem = 2004,
- DamagedGear = 2007,
- //UNKNOWN_1 = 2008,
-
- ArmoryOff = 3200,
- ArmoryHead = 3201,
- ArmoryBody = 3202,
- ArmoryHand = 3203,
- ArmoryWaist = 3204,
- ArmoryLegs = 3205,
- ArmoryFeet = 3206,
- ArmotyNeck = 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 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 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,
- };
-
- /**
- * 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 RegionType : uint8_t
- {
- normal,
- instance,
- };
-
- enum TerritoryIntendedUseType : uint8_t //ToDo: Add The Rest of The Territory Types and Have Better Names For Them
- {
- Town = 0,
- OpenWorld = 1,
- Inn = 2,
- Dungeon = 3,
- JailArea = 5,
- OpeningArea = 6,
- BeforeTrialDung = 7,
- AllianceRaid = 8,
- OpenWorldInstanceBattle = 9,
- Trial = 10,
- HousingArea = 13,
- HousingPrivateArea = 14,
- MSQPrivateArea = 15,
- Raids = 16,
- RaidFights = 17,
- ChocoboTutorial = 21,
- Wedding = 22,
- BeginnerTutorial = 27,
- PalaceOfTheDead = 31,
- };
-
- 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 : uint16_t
- {
- Run = 0x00,
- Walk = 0x02,
- Strafe = 0x04,
- Jump = 0x100,
- Fall = 0x400,
- Land = 0x200,
- };
-
- struct QuestActive
- {
- QuestActive()
+ struct FFXIVARR_POSITION3
{
- 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;
- }
+ float x;
+ float y;
+ float z;
+ };
-
- union
+ enum EquipSlot : uint8_t
{
- 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;
+ 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,
+ };
- 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;
+ enum InventoryType : uint16_t
+ {
+ Bag0 = 0,
+ Bag1 = 1,
+ Bag2 = 2,
+ Bag3 = 3,
- 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;
+ GearSet0 = 1000,
+ GearSet1 = 1001,
- //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;
+ Currency = 2000,
+ Crystal = 2001,
+ //UNKNOWN_0 = 2003,
+ KeyItem = 2004,
+ DamagedGear = 2007,
+ //UNKNOWN_1 = 2008,
- //struct
- //{
- // uint8_t padding;
- // uint32_t UI32A;
- // uint16_t padding2;
- //} e;
+ ArmoryOff = 3200,
+ ArmoryHead = 3201,
+ ArmoryBody = 3202,
+ ArmoryHand = 3203,
+ ArmoryWaist = 3204,
+ ArmoryLegs = 3205,
+ ArmoryFeet = 3206,
+ ArmotyNeck = 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 EventType : uint16_t
- {
- Quest = 0x0001,
- ChocoRent = 0x0002,
- Shop = 0x0004,
- Aetheryte = 0x0005,
- GuildLeveAssign = 0x0006,
- DefaultTalk = 0x0009,
- CustomTalk = 0x000B,
- CraftLeve = 0x000E,
- ChocoPort = 0x0012,
- Opening = 0x0013,
- GCShop = 0x0016,
- GuildOrderGuide = 0x0017,
- GuildOrderOfficer = 0x0018,
- Stories = 0x001A,
- FcTalk = 0x001F,
- };
-
- 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 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,
- Mount = 38
- };
-
- enum class ActionHitSeverityType : uint8_t
- {
- NormalDamage = 0,
- CritHeal = 0,
- CritDamage = 1,
- NormalHeal = 1,
- DirectHitDamage = 2,
- CritDirectHitDamage = 3
- };
-
- 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 HandleSkillType : uint8_t
- {
- StdDamage,
- StdHeal,
- StdDot,
- };
-
- enum InvincibilityType : uint8_t
- {
- InvincibilityNone,
- InvincibilityRefill,
- InvincibilityStayAlive,
- };
-
- enum struct PlayerStateFlag : uint8_t
- {
- SomeFlag,
- NoCombat,
- Combat,
- Casting,
- StatusAffliction,
- StatusAffliction1,
- Occupied,
- Occupied1,
- Occupied2,
- Occupied3,
-
- BoundByDuty,
- Occupied4,
- DuelingArea,
- TradeOpen,
- Occupied5,
- HandlingItems,
- Crafting,
- PreparingToCraft,
- Gathering,
- Fishing,
-
- BeingRaised,
- BetweenAreas,
- Stealthed,
- InnRoom,
- Jumping,
- AutoRun,
- Occupied6,
- BetweenAreas1,
- SystemError,
- LoggingOut,
-
- InvalidLocation,
- WaitingForDuty,
- BoundByDuty1,
- Mounting,
- WatchingCutscene,
- WaitingForDutyFinder,
- CreatingCharacter,
- Jumping1,
- PvpDisplay,
- StatusAfflication2,
-
- Mounting1,
- CarryingItem,
- UsingPartyFinder,
- HousingFunctions,
- Transformed,
- FreeTrail,
- BeingMoved,
- Mounting2,
- StatusAffliction3,
- StatusAffliction4,
-
- RegisteringRaceOrMatch,
- WaitingForRaceOrMatch,
- WaitingForTripleTriadMatch,
- InFlight,
- WatchingCutscene1,
- DeepDungeon,
- Swimming,
- Diving,
- RegisteringTripleTriad,
- WaitingTripleTriad,
- InCrossWorldParty
-
- };
-
- enum struct FateStatus : uint8_t
- {
- Active = 2,
- Inactive = 4,
- Preparing = 7,
- Completed = 8,
- };
-
- enum ActorControlType : uint16_t
- {
- ToggleWeapon = 0x01,
- SetStatus = 0x02,
- CastStart = 0x03,
- ToggleAggro = 0x04,
- ClassJobChange = 0x05,
- DefeatMsg = 0x06,
- GainExpMsg = 0x07,
-
- LevelUpEffect = 0x0A,
-
- ExpChainMsg = 0x0C,
- HpSetStat = 0x0D,
- DeathAnimation = 0x0E,
- CastInterrupt = 0x0F,
-
- ActionStart = 0x11,
-
- StatusEffectGain = 0x14,
- StatusEffectLose = 0x15,
-
- HPFloatingText = 0x17,
- UpdateRestedExp = 0x018,
- Unk2 = 0x19,
-
- Flee = 0x1B,
-
- Unk3 = 0x20, // Animation related?
-
- CombatIndicationShow = 0x22,
-
- SpawnEffect = 0x25,
- ToggleInvisible = 0x26,
-
- ToggleActionUnlock = 0x29,
-
- UpdateUiExp = 0x2B,
- DmgTakenMsg = 0x2D,
+ 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 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,
+ };
+
+ /**
+ * 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 RegionType : uint8_t
+ {
+ normal,
+ instance,
+ };
+
+ enum TerritoryIntendedUseType : uint8_t //ToDo: Add The Rest of The Territory Types and Have Better Names For Them
+ {
+ Town = 0,
+ OpenWorld = 1,
+ Inn = 2,
+ Dungeon = 3,
+ JailArea = 5,
+ OpeningArea = 6,
+ BeforeTrialDung = 7,
+ AllianceRaid = 8,
+ OpenWorldInstanceBattle = 9,
+ Trial = 10,
+ HousingArea = 13,
+ HousingPrivateArea = 14,
+ MSQPrivateArea = 15,
+ Raids = 16,
+ RaidFights = 17,
+ ChocoboTutorial = 21,
+ Wedding = 22,
+ BeginnerTutorial = 27,
+ PalaceOfTheDead = 31,
+ };
+
+ 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 : uint16_t
+ {
+ Run = 0x00,
+ Walk = 0x02,
+ Strafe = 0x04,
+ Jump = 0x100,
+ Fall = 0x400,
+ Land = 0x200,
+ };
+
+ 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;
+
+ 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;
+ // uint16_t UI16A;
+ // uint16_t UI16B;
+ // uint16_t UI16C;
+ // uint8_t padding1;
+ //} d;
+
+ //struct
+ //{
+ // uint8_t padding;
+ // uint32_t UI32A;
+ // uint16_t padding2;
+ //} e;
+ };
+
+
+ };
+
+ enum EventType : uint16_t
+ {
+ Quest = 0x0001,
+ ChocoRent = 0x0002,
+ Shop = 0x0004,
+ Aetheryte = 0x0005,
+ GuildLeveAssign = 0x0006,
+ DefaultTalk = 0x0009,
+ CustomTalk = 0x000B,
+ CraftLeve = 0x000E,
+ ChocoPort = 0x0012,
+ Opening = 0x0013,
+ GCShop = 0x0016,
+ GuildOrderGuide = 0x0017,
+ GuildOrderOfficer = 0x0018,
+ Stories = 0x001A,
+ FcTalk = 0x001F,
+ };
+
+ 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 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,
+ Mount = 38
+ };
+
+ enum class ActionHitSeverityType : uint8_t
+ {
+ NormalDamage = 0,
+ CritHeal = 0,
+ CritDamage = 1,
+ NormalHeal = 1,
+ DirectHitDamage = 2,
+ CritDirectHitDamage = 3
+ };
+
+ 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 HandleSkillType : uint8_t
+ {
+ StdDamage,
+ StdHeal,
+ StdDot,
+ };
+
+ enum InvincibilityType : uint8_t
+ {
+ InvincibilityNone,
+ InvincibilityRefill,
+ InvincibilityStayAlive,
+ };
+
+ enum struct PlayerStateFlag : uint8_t
+ {
+ SomeFlag,
+ NoCombat,
+ Combat,
+ Casting,
+ StatusAffliction,
+ StatusAffliction1,
+ Occupied,
+ Occupied1,
+ Occupied2,
+ Occupied3,
+
+ BoundByDuty,
+ Occupied4,
+ DuelingArea,
+ TradeOpen,
+ Occupied5,
+ HandlingItems,
+ Crafting,
+ PreparingToCraft,
+ Gathering,
+ Fishing,
+
+ BeingRaised,
+ BetweenAreas,
+ Stealthed,
+ InnRoom,
+ Jumping,
+ AutoRun,
+ Occupied6,
+ BetweenAreas1,
+ SystemError,
+ LoggingOut,
+
+ InvalidLocation,
+ WaitingForDuty,
+ BoundByDuty1,
+ Mounting,
+ WatchingCutscene,
+ WaitingForDutyFinder,
+ CreatingCharacter,
+ Jumping1,
+ PvpDisplay,
+ StatusAfflication2,
+
+ Mounting1,
+ CarryingItem,
+ UsingPartyFinder,
+ HousingFunctions,
+ Transformed,
+ FreeTrail,
+ BeingMoved,
+ Mounting2,
+ StatusAffliction3,
+ StatusAffliction4,
+
+ RegisteringRaceOrMatch,
+ WaitingForRaceOrMatch,
+ WaitingForTripleTriadMatch,
+ InFlight,
+ WatchingCutscene1,
+ DeepDungeon,
+ Swimming,
+ Diving,
+ RegisteringTripleTriad,
+ WaitingTripleTriad,
+ InCrossWorldParty
+
+ };
+
+ enum struct FateStatus : uint8_t
+ {
+ Active = 2,
+ Inactive = 4,
+ Preparing = 7,
+ Completed = 8,
+ };
+
+ enum ActorControlType : uint16_t
+ {
+ ToggleWeapon = 0x01,
+ SetStatus = 0x02,
+ CastStart = 0x03,
+ ToggleAggro = 0x04,
+ ClassJobChange = 0x05,
+ DefeatMsg = 0x06,
+ GainExpMsg = 0x07,
+
+ LevelUpEffect = 0x0A,
+
+ ExpChainMsg = 0x0C,
+ HpSetStat = 0x0D,
+ DeathAnimation = 0x0E,
+ CastInterrupt = 0x0F,
+
+ ActionStart = 0x11,
+
+ StatusEffectGain = 0x14,
+ StatusEffectLose = 0x15,
+
+ HPFloatingText = 0x17,
+ UpdateRestedExp = 0x018,
+ Unk2 = 0x19,
+
+ Flee = 0x1B,
+
+ Unk3 = 0x20, // Animation related?
+
+ CombatIndicationShow = 0x22,
+
+ SpawnEffect = 0x25,
+ ToggleInvisible = 0x26,
+
+ ToggleActionUnlock = 0x29,
+
+ 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,
- LeveStartAnim = 0x66,
- LeveStartError = 0x67,
- PlayerNameGrayout = 0x6A,
+ LeveStartAnim = 0x66,
+ LeveStartError = 0x67,
+ PlayerNameGrayout = 0x6A,
- 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,
- 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,
+ Emote = 0x122,
- 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,
-
- RelicInfuseMsg = 0x179,
-
- AetherReductionDlg = 0x17D,
-
- Unk6 = 0x19C,
-
- SetTitle = 0x1F4,
-
- SetStatusIcon = 0x1F8,
-
- SetHomepoint = 0x1FB,
- SetFavorite = 0x1FC,
- LearnTeleport = 0x1FD,
-
- ArmoryErrorMsg = 0x201,
-
- AchievementPopup = 0x203,
-
- Unk7 = 0x205, // LogMessage?
- AchievementMsg = 0x206,
-
- SetItemLevel = 0x209,
-
- ChallengeEntryCompleteMsg = 0x20B,
- ChallengeEntryUnlockMsg = 0x20C,
-
- GilTrailMsg = 0x211,
-
- SetMaxGearSets = 0x230,
-
- SetCharaGearParamUI = 0x260,
-
- GearSetEquipMsg = 0x321,
-
- ToggleOrchestrionUnlock = 0x396,
- Dismount = 0x3a0
- };
-
- 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,
-
- Visor = 0x40,
- };
-
- enum SkillType : uint8_t
- {
- Normal = 0x1,
- MountSkill = 0xD,
- };
-
- enum SocialCategory : uint8_t
- {
- Party = 1,
- Friends = 2,
- FreeCompanyPetition = 4,
- FreeCompany = 5,
- };
-
- // todo: rename SocialRequestAction and SocialRequestResponse cause they seem ambiguous
- enum class SocialRequestAction : uint8_t
- {
- Invite = 1,
- Cancel = 2,
- Accept = 3,
- Decline = 4,
- };
-
- enum class SocialRequestResponse : uint8_t
- {
- Decline,
- Accept,
- Cancel,
- };
-
- struct ServerEntry
- {
- uint32_t serverId;
- uint32_t flags;
- };
-
- typedef std::vector< PlayerStateFlag > PlayerStateFlagList;
-
-} /* Common */
+ ToggleCrestMsg = 0x16A,
+ ToggleBulkCrestMsg = 0x16B,
+ MateriaRemoveMsg = 0x16C,
+ GlamourCastMsg = 0x16D,
+ GlamourRemoveMsg = 0x16E,
+
+ RelicInfuseMsg = 0x179,
+
+ AetherReductionDlg = 0x17D,
+
+ Unk6 = 0x19C,
+
+ SetTitle = 0x1F4,
+
+ SetStatusIcon = 0x1F8,
+
+ SetHomepoint = 0x1FB,
+ SetFavorite = 0x1FC,
+ LearnTeleport = 0x1FD,
+
+ ArmoryErrorMsg = 0x201,
+
+ AchievementPopup = 0x203,
+
+ Unk7 = 0x205, // LogMessage?
+ AchievementMsg = 0x206,
+
+ SetItemLevel = 0x209,
+
+ ChallengeEntryCompleteMsg = 0x20B,
+ ChallengeEntryUnlockMsg = 0x20C,
+
+ GilTrailMsg = 0x211,
+
+ SetMaxGearSets = 0x230,
+
+ SetCharaGearParamUI = 0x260,
+
+ GearSetEquipMsg = 0x321,
+
+ ToggleOrchestrionUnlock = 0x396,
+ Dismount = 0x3a0
+ };
+
+ 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,
+ LegacyMark = 0x4,
+
+ Visor = 0x40,
+ };
+
+ enum SkillType : uint8_t
+ {
+ Normal = 0x1,
+ MountSkill = 0xD,
+ };
+
+ /*! ModelType as found in eventsystemdefine.exd */
+
+ enum SocialCategory : uint8_t
+ {
+ Party = 1,
+ Friends = 2,
+ FreeCompanyPetition = 4,
+ FreeCompany = 5,
+ };
+
+ // todo: rename SocialRequestAction and SocialRequestResponse cause they seem ambiguous
+ enum class SocialRequestAction : uint8_t
+ {
+ Invite = 1,
+ Cancel = 2,
+ Accept = 3,
+ Decline = 4,
+ };
+
+ enum class SocialRequestResponse : uint8_t
+ {
+ Decline,
+ Accept,
+ Cancel,
+ };
+
+ struct ServerEntry
+ {
+ uint32_t serverId;
+ uint32_t flags;
+ };
+
+ enum ModelType : uint8_t
+ {
+ Human = 1,
+ DemiHuman = 2,
+ Monster = 3,
+ SharedGroup = 4,
+ Parts = 5
+ };
+
+ typedef std::vector< PlayerStateFlag > PlayerStateFlagList;
+
+ } /* Common */
} /* Core */
#endif
diff --git a/src/servers/Server_Common/Database/CharaDbConnection.cpp b/src/servers/Server_Common/Database/CharaDbConnection.cpp
index 7ed7aada..ce5a1a7e 100644
--- a/src/servers/Server_Common/Database/CharaDbConnection.cpp
+++ b/src/servers/Server_Common/Database/CharaDbConnection.cpp
@@ -27,7 +27,7 @@ void Core::Db::CharaDbConnection::doPrepareStatements()
"OTerritoryType, OTerritoryId, OPosX, OPosY, OPosZ, OPosR, GuardianDeity, "
"BirthDay, BirthMonth, Class, Status, TotalPlayTime, FirstClass, HomePoint, "
"FavoritePoint, RestPoint, StartTown, ActiveTitle, TitleList, Achievement, "
- "Aetheryte, HowTo, Minions, Mounts, EquippedMannequin, ConfigFlags, "
+ "Aetheryte, HowTo, Minions, Mounts, Orchestrion, EquippedMannequin, ConfigFlags, "
"QuestCompleteFlags, OpeningSequence, QuestTracking, GrandCompany, "
"GrandCompanyRank, Discovery, GMRank, Unlocks, CFPenaltyUntil "
"FROM charainfo WHERE CharacterId = ?;", CONNECTION_SYNC );
@@ -41,7 +41,7 @@ void Core::Db::CharaDbConnection::doPrepareStatements()
"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 = ?, "
+ "ActiveTitle = ?, TitleList = ?, Achievement = ?, Aetheryte = ?, HowTo = ?, Minions = ?, Mounts = ?, Orchestrion = ?, "
"EquippedMannequin = ?, ConfigFlags = ?, QuestCompleteFlags = ?, OpeningSequence = ?, "
"QuestTracking = ?, GrandCompany = ?, GrandCompanyRank = ?, Discovery = ?, GMRank = ?, Unlocks = ?, "
"CFPenaltyUntil = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
@@ -55,8 +55,8 @@ void Core::Db::CharaDbConnection::doPrepareStatements()
"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, UPDATE_DATE ) "
- "VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,NOW() );",
+ "Aetheryte, GMRank, Mounts, Orchestrion, UPDATE_DATE ) "
+ "VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,NOW() );",
CONNECTION_SYNC );
prepareStatement( CHARA_UP_NAME, "UPDATE charainfo SET Name = ? WHERE CharacterId = ?;", CONNECTION_ASYNC );
diff --git a/src/servers/Server_Common/Network/PacketDef/Ipcs.h b/src/servers/Server_Common/Network/PacketDef/Ipcs.h
index 2a0cadc5..82ec4da7 100644
--- a/src/servers/Server_Common/Network/PacketDef/Ipcs.h
+++ b/src/servers/Server_Common/Network/PacketDef/Ipcs.h
@@ -136,7 +136,9 @@ namespace Packets {
IPCTYPE_UNK_320 = 0x0207, // updated 4.1
IPCTYPE_UNK_322 = 0x0209, // updated 4.1
- ActorGauge = 0x249
+ ActorGauge = 0x0249,
+
+ PerformNote = 0x0252,
};
// TODO: Include structures for the individual packet segment types
@@ -199,6 +201,7 @@ namespace Packets {
ReqEquipDisplayFlagsChange = 0x014C, // updated 4.1 ??
+ PerformNoteHandler = 0x0160,
};
////////////////////////////////////////////////////////////////////////////////
diff --git a/src/servers/Server_Common/Network/PacketDef/Zone/ServerZoneDef.h b/src/servers/Server_Common/Network/PacketDef/Zone/ServerZoneDef.h
index 1808a5ae..77991860 100644
--- a/src/servers/Server_Common/Network/PacketDef/Zone/ServerZoneDef.h
+++ b/src/servers/Server_Common/Network/PacketDef/Zone/ServerZoneDef.h
@@ -1337,6 +1337,12 @@ struct FFXIVIpcActorGauge : FFXIVIpcBasePacket
uint8_t data[15]; // depends on classJobId
};
+struct FFXIVIpcPerformNote : FFXIVIpcBasePacket
+{
+ uint8_t data[32];
+};
+
+
} /* Server */
} /* Packets */
} /* Network */
diff --git a/src/servers/Server_REST/PlayerMinimal.cpp b/src/servers/Server_REST/PlayerMinimal.cpp
index 5ca8410a..724475b8 100644
--- a/src/servers/Server_REST/PlayerMinimal.cpp
+++ b/src/servers/Server_REST/PlayerMinimal.cpp
@@ -153,6 +153,8 @@ namespace Core {
std::vector< uint8_t > discovery( 411 );
std::vector< uint8_t > questComplete( 200 );
std::vector< uint8_t > unlocks( 64 );
+ std::vector< uint8_t > mountGuide( 13 );
+ std::vector< uint8_t > orchestrion( 38 );
std::vector< uint8_t > modelEquip( 40 );
std::vector< uint8_t > questTracking8( 10 );
std::vector< int16_t > questTracking = { -1, -1, -1, -1, -1 };
@@ -255,6 +257,8 @@ namespace Core {
stmt->setBinary( 29, questTracking8 );
stmt->setBinary( 30, aetherytes );
stmt->setInt( 31, m_gmRank );
+ stmt->setBinary( 32, mountGuide );
+ stmt->setBinary( 33, orchestrion );
g_charaDb.directExecute( stmt );
auto stmtSearchInfo = g_charaDb.getPreparedStatement( Db::CharaDbStatements::CHARA_SEARCHINFO_INS );
diff --git a/src/servers/Server_REST/Session.cpp b/src/servers/Server_REST/Session.cpp
index 6cd54ff3..e9b876dd 100644
--- a/src/servers/Server_REST/Session.cpp
+++ b/src/servers/Server_REST/Session.cpp
@@ -1,11 +1,11 @@
#include "Session.h"
namespace Core {
- Session::Session( void )
+ Session::Session()
{
}
- Session::~Session( void )
+ Session::~Session()
{
}
diff --git a/src/servers/Server_REST/Session.h b/src/servers/Server_REST/Session.h
index a2b98116..46a39289 100644
--- a/src/servers/Server_REST/Session.h
+++ b/src/servers/Server_REST/Session.h
@@ -20,8 +20,8 @@ namespace Core {
std::string newCharName;
- Session( void );
- ~Session( void );
+ Session();
+ ~Session();
uint32_t getIp() const;
diff --git a/src/servers/Server_Zone/Action/Action.cpp b/src/servers/Server_Zone/Action/Action.cpp
index e5d60e2c..21e09e0a 100644
--- a/src/servers/Server_Zone/Action/Action.cpp
+++ b/src/servers/Server_Zone/Action/Action.cpp
@@ -12,7 +12,7 @@ Core::Action::Action::~Action()
}
-uint32_t Core::Action::Action::getId() const
+uint16_t Core::Action::Action::getId() const
{
return m_id;
}
diff --git a/src/servers/Server_Zone/Action/Action.h b/src/servers/Server_Zone/Action/Action.h
index c9bcff77..9e0e79b6 100644
--- a/src/servers/Server_Zone/Action/Action.h
+++ b/src/servers/Server_Zone/Action/Action.h
@@ -13,7 +13,7 @@ namespace Core { namespace Action {
Action();
virtual ~Action();
- uint32_t getId() const;
+ uint16_t getId() const;
Common::HandleActionType getHandleActionType() const;
@@ -41,7 +41,7 @@ namespace Core { namespace Action {
virtual bool update();
protected:
- uint32_t m_id;
+ uint16_t m_id;
Common::HandleActionType m_handleActionType;
uint64_t m_startTime;
diff --git a/src/servers/Server_Zone/Action/ActionCast.cpp b/src/servers/Server_Zone/Action/ActionCast.cpp
index 00fac4bc..b9fcbcd2 100644
--- a/src/servers/Server_Zone/Action/ActionCast.cpp
+++ b/src/servers/Server_Zone/Action/ActionCast.cpp
@@ -26,7 +26,7 @@ Core::Action::ActionCast::ActionCast()
m_handleActionType = Common::HandleActionType::Event;
}
-Core::Action::ActionCast::ActionCast( Entity::ActorPtr pActor, Entity::ActorPtr pTarget, uint32_t actionId )
+Core::Action::ActionCast::ActionCast( Entity::ActorPtr pActor, Entity::ActorPtr pTarget, uint16_t actionId )
{
m_startTime = 0;
m_id = actionId;
@@ -37,10 +37,7 @@ Core::Action::ActionCast::ActionCast( Entity::ActorPtr pActor, Entity::ActorPtr
m_bInterrupt = false;
}
-Core::Action::ActionCast::~ActionCast()
-{
-
-}
+Core::Action::ActionCast::~ActionCast() = default;
void Core::Action::ActionCast::onStart()
{
diff --git a/src/servers/Server_Zone/Action/ActionCast.h b/src/servers/Server_Zone/Action/ActionCast.h
index 9cff002c..897ad7c1 100644
--- a/src/servers/Server_Zone/Action/ActionCast.h
+++ b/src/servers/Server_Zone/Action/ActionCast.h
@@ -14,7 +14,7 @@ namespace Core { namespace Action {
ActionCast();
~ActionCast();
- ActionCast( Entity::ActorPtr pActor, Entity::ActorPtr pTarget, uint32_t actionId );
+ ActionCast( Entity::ActorPtr pActor, Entity::ActorPtr pTarget, uint16_t actionId );
void onStart() override;
void onFinish() override;
diff --git a/src/servers/Server_Zone/Action/ActionCollision.cpp b/src/servers/Server_Zone/Action/ActionCollision.cpp
index a0ab372e..bfae7a60 100644
--- a/src/servers/Server_Zone/Action/ActionCollision.cpp
+++ b/src/servers/Server_Zone/Action/ActionCollision.cpp
@@ -50,7 +50,10 @@ bool ActionCollision::isActorApplicable( ActorPtr actorPtr, TargetFilter targetF
return ( actorApplicable && actorPtr->isAlive() );
}
-std::set< Core::Entity::ActorPtr > ActionCollision::getActorsHitFromAction( FFXIVARR_POSITION3 aoePosition, std::set< ActorPtr > actorsInRange, boost::shared_ptr< Core::Data::ActionInfo > actionInfo, TargetFilter targetFilter )
+std::set< Core::Entity::ActorPtr > ActionCollision::getActorsHitFromAction( FFXIVARR_POSITION3 aoePosition,
+ std::set< ActorPtr > actorsInRange,
+ boost::shared_ptr< Core::Data::ActionInfo > actionInfo,
+ TargetFilter targetFilter )
{
std::set< ActorPtr > actorsCollided;
diff --git a/src/servers/Server_Zone/Action/ActionCollision.h b/src/servers/Server_Zone/Action/ActionCollision.h
index cff25934..05ec923e 100644
--- a/src/servers/Server_Zone/Action/ActionCollision.h
+++ b/src/servers/Server_Zone/Action/ActionCollision.h
@@ -23,11 +23,17 @@ namespace Core {
public:
static bool isActorApplicable( ActorPtr actorPtr, TargetFilter targetFilter );
- static std::set< ActorPtr > getActorsHitFromAction( Common::FFXIVARR_POSITION3 aoePosition, std::set< ActorPtr > actorsInRange, boost::shared_ptr< Data::ActionInfo > actionInfo, TargetFilter targetFilter );
+ static std::set< ActorPtr > getActorsHitFromAction( Common::FFXIVARR_POSITION3 aoePosition,
+ std::set< ActorPtr > actorsInRange,
+ boost::shared_ptr< Data::ActionInfo > actionInfo,
+ TargetFilter targetFilter );
private:
- static bool radiusCollision( Common::FFXIVARR_POSITION3 actorPosition, Common::FFXIVARR_POSITION3 aoePosition, uint16_t radius );
- static bool boxCollision( Common::FFXIVARR_POSITION3 actorPosition, Common::FFXIVARR_POSITION3 aoePosition, uint16_t width, uint16_t height );
+ static bool radiusCollision( Common::FFXIVARR_POSITION3 actorPosition, Common::FFXIVARR_POSITION3 aoePosition,
+ uint16_t radius );
+
+ static bool boxCollision( Common::FFXIVARR_POSITION3 actorPosition, Common::FFXIVARR_POSITION3 aoePosition,
+ uint16_t width, uint16_t height );
};
diff --git a/src/servers/Server_Zone/Action/ActionMount.cpp b/src/servers/Server_Zone/Action/ActionMount.cpp
index cf60fbe1..26c7cddd 100644
--- a/src/servers/Server_Zone/Action/ActionMount.cpp
+++ b/src/servers/Server_Zone/Action/ActionMount.cpp
@@ -26,7 +26,7 @@ Core::Action::ActionMount::ActionMount()
m_handleActionType = Common::HandleActionType::Event;
}
-Core::Action::ActionMount::ActionMount( Entity::ActorPtr pActor, uint32_t mountId )
+Core::Action::ActionMount::ActionMount( Entity::ActorPtr pActor, uint16_t mountId )
{
m_startTime = 0;
m_id = mountId;
@@ -54,7 +54,8 @@ void Core::Action::ActionMount::onStart()
castPacket.data().action_id = m_id;
castPacket.data().skillType = Common::SkillType::MountSkill;
castPacket.data().unknown_1 = m_id;
- castPacket.data().cast_time = static_cast< float >( m_castTime / 1000 ); // This is used for the cast bar above the target bar of the caster.
+ // This is used for the cast bar above the target bar of the caster.
+ castPacket.data().cast_time = static_cast< float >( m_castTime / 1000 );
castPacket.data().target_id = m_pSource->getAsPlayer()->getId();
m_pSource->sendToInRangeSet( castPacket, true );
@@ -101,7 +102,7 @@ void Core::Action::ActionMount::onInterrupt()
m_pSource->getAsPlayer()->sendStateFlags();
auto control = ActorControlPacket142( m_pSource->getId(), ActorControlType::CastInterrupt,
- 0x219, 1, m_id, 0 );
+ 0x219, 1, m_id, 0 );
// Note: When cast interrupt from taking too much damage, set the last value to 1. This enables the cast interrupt effect. Example:
// auto control = ActorControlPacket142( m_pSource->getId(), ActorControlType::CastInterrupt, 0x219, 1, m_id, 0 );
diff --git a/src/servers/Server_Zone/Action/ActionMount.h b/src/servers/Server_Zone/Action/ActionMount.h
index cdd68e3d..6c970869 100644
--- a/src/servers/Server_Zone/Action/ActionMount.h
+++ b/src/servers/Server_Zone/Action/ActionMount.h
@@ -14,7 +14,7 @@ namespace Core { namespace Action {
ActionMount();
~ActionMount();
- ActionMount( Entity::ActorPtr pActor, uint32_t mountId );
+ ActionMount( Entity::ActorPtr pActor, uint16_t mountId );
void onStart() override;
void onFinish() override;
diff --git a/src/servers/Server_Zone/Action/ActionTeleport.cpp b/src/servers/Server_Zone/Action/ActionTeleport.cpp
index 282065e0..37ebbfbd 100644
--- a/src/servers/Server_Zone/Action/ActionTeleport.cpp
+++ b/src/servers/Server_Zone/Action/ActionTeleport.cpp
@@ -90,7 +90,7 @@ void Core::Action::ActionTeleport::onFinish()
effectPacket.data().actionTextId = 5;
effectPacket.data().unknown_5 = 1;
effectPacket.data().numEffects = 1;
- effectPacket.data().rotation = static_cast< uint16_t >( 0x8000 * ((pPlayer->getRotation() + 3.1415926)) / 3.1415926 );
+ effectPacket.data().rotation = static_cast< uint16_t >( 0x8000 * ( (pPlayer->getRotation() + 3.1415926) ) / 3.1415926 );
effectPacket.data().effectTarget = pPlayer->getId();
pPlayer->sendToInRangeSet( effectPacket, true );
@@ -108,7 +108,7 @@ void Core::Action::ActionTeleport::onInterrupt()
m_pSource->getAsPlayer()->sendStateFlags();
auto control = ActorControlPacket142( m_pSource->getId(), ActorControlType::CastInterrupt,
- 0x219, 0x04, m_id, 0 );
+ 0x219, 0x04, m_id, 0 );
m_pSource->sendToInRangeSet( control, true );
}
diff --git a/src/servers/Server_Zone/Action/EventItemAction.cpp b/src/servers/Server_Zone/Action/EventItemAction.cpp
index f309ee20..567f689c 100644
--- a/src/servers/Server_Zone/Action/EventItemAction.cpp
+++ b/src/servers/Server_Zone/Action/EventItemAction.cpp
@@ -22,7 +22,7 @@ Core::Action::EventItemAction::EventItemAction()
m_handleActionType = Common::HandleActionType::Event;
}
-Core::Action::EventItemAction::EventItemAction( Entity::ActorPtr pActor, uint32_t eventId, uint32_t action,
+Core::Action::EventItemAction::EventItemAction( Entity::ActorPtr pActor, uint32_t eventId, uint16_t action,
ActionCallback finishRef, ActionCallback interruptRef, uint64_t additional )
{
m_additional = additional;
@@ -37,10 +37,7 @@ Core::Action::EventItemAction::EventItemAction( Entity::ActorPtr pActor, uint32_
m_bInterrupt = false;
}
-Core::Action::EventItemAction::~EventItemAction()
-{
-
-}
+Core::Action::EventItemAction::~EventItemAction() = default;
void Core::Action::EventItemAction::onStart()
{
diff --git a/src/servers/Server_Zone/Action/EventItemAction.h b/src/servers/Server_Zone/Action/EventItemAction.h
index c3c92b50..71bc5e89 100644
--- a/src/servers/Server_Zone/Action/EventItemAction.h
+++ b/src/servers/Server_Zone/Action/EventItemAction.h
@@ -13,7 +13,7 @@ namespace Core { namespace Action {
EventItemAction();
~EventItemAction();
- EventItemAction( Entity::ActorPtr pActor, uint32_t eventId, uint32_t action,
+ EventItemAction( Entity::ActorPtr pActor, uint32_t eventId, uint16_t action,
ActionCallback finishRef, ActionCallback interruptRef, uint64_t additional );
void onStart() override;
diff --git a/src/servers/Server_Zone/Actor/Actor.cpp b/src/servers/Server_Zone/Actor/Actor.cpp
index dcf572d0..02d9543d 100644
--- a/src/servers/Server_Zone/Actor/Actor.cpp
+++ b/src/servers/Server_Zone/Actor/Actor.cpp
@@ -59,13 +59,13 @@ std::string Core::Entity::Actor::getName() const
/*! \return true if the actor is of type player */
bool Core::Entity::Actor::isPlayer() const
{
- return m_type == ActorType::Player;
+ return m_objKind == ObjKind::Player;
}
/*! \return true if the actor is of type mob */
bool Core::Entity::Actor::isMob() const
{
- return m_type == ActorType::BattleNpc;
+ return m_objKind == ObjKind::BattleNpc;
}
/*! \return list of actors currently in range */
@@ -210,7 +210,6 @@ void Core::Entity::Actor::setInvincibilityType( Common::InvincibilityType type )
m_invincibilityType = type;
}
-
/*! \return current status of the actor */
Core::Entity::Actor::ActorStatus Core::Entity::Actor::getStatus() const
{
@@ -450,7 +449,7 @@ Core::Entity::ActorPtr Core::Entity::Actor::getClosestActor()
// arbitrary high number
float minDistance = 10000;
- for( auto pCurAct : m_inRangeActors )
+ for( const auto& pCurAct : m_inRangeActors )
{
float distance = Math::Util::distance( getPos().x,
getPos().y,
@@ -492,11 +491,11 @@ void Core::Entity::Actor::sendToInRangeSet( Network::Packets::GamePacketPtr pPac
if( m_inRangePlayers.empty() )
return;
- for( auto pCurAct : m_inRangePlayers )
+ for( const auto &pCurAct : m_inRangePlayers )
{
assert( pCurAct );
- pPacket->setValAt( 0x04, m_id );
- pPacket->setValAt( 0x08, pCurAct->m_id );
+ pPacket->setValAt< uint32_t >( 0x04, m_id );
+ pPacket->setValAt< uint32_t >( 0x08, pCurAct->m_id );
// it might be that the player DC'd in which case the session would be invalid
pCurAct->queuePacket( pPacket );
}
@@ -625,8 +624,8 @@ void Core::Entity::Actor::autoAttack( ActorPtr pTarget )
m_lastAttack = tick;
srand( static_cast< uint32_t >( tick ) );
- uint32_t damage = 10 + rand() % 12;
- uint32_t variation = 0 + rand() % 4;
+ uint16_t damage = static_cast< uint16_t >( 10 + rand() % 12 );
+ uint32_t variation = static_cast< uint32_t >( 0 + rand() % 4 );
ZoneChannelPacket< FFXIVIpcEffect > effectPacket( getId() );
effectPacket.data().targetId = pTarget->getId();
@@ -657,7 +656,8 @@ ChaiScript Skill Handler.
\param GamePacketPtr to send
\param bool should be send to self?
*/
-void Core::Entity::Actor::handleScriptSkill( uint32_t type, uint32_t actionId, uint64_t param1, uint64_t param2, Entity::Actor& pTarget )
+void Core::Entity::Actor::handleScriptSkill( uint32_t type, uint16_t actionId, uint64_t param1,
+ uint64_t param2, Entity::Actor& pTarget )
{
if ( isPlayer() )
@@ -709,14 +709,16 @@ void Core::Entity::Actor::handleScriptSkill( uint32_t type, uint32_t actionId, u
else
{
- std::set< ActorPtr > actorsCollided = ActionCollision::getActorsHitFromAction( pTarget.getPos(), getInRangeActors( true ), actionInfoPtr, TargetFilter::Enemies );
+ auto actorsCollided = ActionCollision::getActorsHitFromAction( pTarget.getPos(), getInRangeActors( true ),
+ actionInfoPtr, TargetFilter::Enemies );
- for ( auto pHitActor : actorsCollided )
+ for ( const auto& pHitActor : actorsCollided )
{
effectPacket.data().targetId = pHitActor->getId();
effectPacket.data().effectTarget = pHitActor->getId();
- sendToInRangeSet( effectPacket, true ); // todo: send to range of what? ourselves? when mob script hits this is going to be lacking
+ // todo: send to range of what? ourselves? when mob script hits this is going to be lacking
+ sendToInRangeSet( effectPacket, true );
pHitActor->takeDamage( static_cast< uint32_t >( param1 ) );
@@ -756,9 +758,11 @@ void Core::Entity::Actor::handleScriptSkill( uint32_t type, uint32_t actionId, u
}
else
{
- // todo: get proper packets: the following was just kind of thrown together from what we know. atm buggy (packets look "delayed" from client)
+ // todo: get proper packets: the following was just kind of thrown together from what we know.
+ // atm buggy (packets look "delayed" from client)
- std::set< ActorPtr > actorsCollided = ActionCollision::getActorsHitFromAction( pTarget.getPos(), getInRangeActors( true ), actionInfoPtr, TargetFilter::Allies );
+ auto actorsCollided = ActionCollision::getActorsHitFromAction( pTarget.getPos(), getInRangeActors( true ),
+ actionInfoPtr, TargetFilter::Allies );
for ( auto pHitActor : actorsCollided )
{
@@ -823,4 +827,14 @@ void Core::Entity::Actor::removeSingleStatusEffectFromId( uint32_t id )
Core::StatusEffect::StatusEffectContainerPtr Core::Entity::Actor::getStatusEffectContainer() const
{
return m_pStatusEffectContainer;
-}
\ No newline at end of file
+}
+
+float Core::Entity::Actor::getRotation() const
+{
+ return m_rot;
+}
+
+void Core::Entity::Actor::setRotation( float rot )
+{
+ m_rot = rot;
+}
diff --git a/src/servers/Server_Zone/Actor/Actor.h b/src/servers/Server_Zone/Actor/Actor.h
index 5a784f28..6e14f8c0 100644
--- a/src/servers/Server_Zone/Actor/Actor.h
+++ b/src/servers/Server_Zone/Actor/Actor.h
@@ -20,21 +20,23 @@ namespace Entity {
class Actor : public boost::enable_shared_from_this< Actor >
{
public:
- enum ActorType : uint8_t
+ enum ObjKind : uint8_t
{
None = 0x00,
Player = 0x01,
BattleNpc = 0x02,
EventNpc = 0x03,
- unk1 = 0x04,
- AetheryteNpc = 0x05,
- ResourceNode = 0x06,
+ Treasure = 0x04,
+ Aetheryte = 0x05,
+ GatheringPoint = 0x06,
EventObj = 0x07,
Mount = 0x08,
- Minion = 0x09,
+ Companion = 0x09,
Retainer = 0x0A,
- unk2 = 0x0B,
- Furniture = 0x0C,
+ Area = 0x0B,
+ Housing = 0x0C,
+ Cutscene = 0x0D,
+ CardStand = 0x0E,
};
enum Stance : uint8_t
@@ -125,7 +127,7 @@ protected:
/*! Id of the actor */
uint32_t m_id;
/*! Type of the actor */
- ActorType m_type;
+ ObjKind m_objKind;
/*! Ptr to the ZoneObj the actor belongs to */
ZonePtr m_pCurrentZone;
/*! Last tick time for the actor ( in ms ) */
@@ -175,15 +177,9 @@ public:
void setPosition( const Common::FFXIVARR_POSITION3& pos );
void setPosition( float x, float y, float z );
- void setRotation( float rot )
- {
- m_rot = rot;
- }
+ void setRotation( float rot );
- float getRotation() const
- {
- return m_rot;
- }
+ float getRotation() const;
Common::FFXIVARR_POSITION3& getPos();
@@ -247,7 +243,7 @@ public:
void setStatus( ActorStatus status );
- void handleScriptSkill( uint32_t type, uint32_t actionId, uint64_t param1, uint64_t param2, Entity::Actor& target );
+ void handleScriptSkill( uint32_t type, uint16_t actionId, uint64_t param1, uint64_t param2, Entity::Actor& target );
virtual void autoAttack( ActorPtr pTarget );
diff --git a/src/servers/Server_Zone/Actor/BattleNpc.cpp b/src/servers/Server_Zone/Actor/BattleNpc.cpp
index d990369d..0bd002f7 100644
--- a/src/servers/Server_Zone/Actor/BattleNpc.cpp
+++ b/src/servers/Server_Zone/Actor/BattleNpc.cpp
@@ -29,7 +29,7 @@ uint32_t Core::Entity::BattleNpc::m_nextID = 1149241694;
Core::Entity::BattleNpc::BattleNpc()
{
m_id = 0;
- m_type = ActorType::BattleNpc;
+ m_objKind = ObjKind::BattleNpc;
m_status = ActorStatus::Idle;
}
@@ -38,8 +38,8 @@ Core::Entity::BattleNpc::~BattleNpc()
}
-Core::Entity::BattleNpc::BattleNpc( uint32_t modelId, uint32_t nameid, const Common::FFXIVARR_POSITION3& spawnPos,
- uint32_t sizeId, uint32_t type, uint32_t level, uint32_t behaviour,
+Core::Entity::BattleNpc::BattleNpc( uint16_t modelId, uint16_t nameid, const Common::FFXIVARR_POSITION3& spawnPos,
+ uint16_t bnpcBaseId, uint32_t type, uint8_t level, uint8_t behaviour,
uint32_t mobType )
{
BattleNpc::m_nextID++;
@@ -49,10 +49,10 @@ Core::Entity::BattleNpc::BattleNpc( uint32_t modelId, uint32_t nameid, const Com
m_pos = spawnPos;
m_posOrigin = spawnPos;
- m_type = ActorType::BattleNpc;
+ m_objKind = ObjKind::BattleNpc;
m_mode = MODE_IDLE;
- m_targetId = INVALID_GAME_OBJECT_ID;
+ m_targetId = static_cast< uint64_t >( INVALID_GAME_OBJECT_ID );
m_maxHp = 150;
m_maxMp = 100;
@@ -66,14 +66,14 @@ Core::Entity::BattleNpc::BattleNpc( uint32_t modelId, uint32_t nameid, const Com
m_currentStance = Stance::Passive;
m_class = ClassJob::Gladiator;
- m_level = level > 0 ? level : 70;
+ m_level = level > uint8_t{0} ? level : uint8_t{70};
m_modelId = modelId;
m_nameId = nameid;
m_behavior = behaviour;
- m_bnpcBaseId = sizeId;
+ m_bnpcBaseId = bnpcBaseId;
m_status = ActorStatus::Idle;
@@ -83,7 +83,7 @@ Core::Entity::BattleNpc::BattleNpc( uint32_t modelId, uint32_t nameid, const Com
m_invincibilityType = InvincibilityType::InvincibilityNone;
- //m_type = static_cast< Common::ActorType >( type );
+ //m_type = static_cast< Common::ObjKind >( type );
}
@@ -147,7 +147,7 @@ void Core::Entity::BattleNpc::spawn( Core::Entity::PlayerPtr pTarget )
spawnPacket.data().rotation = Math::Util::floatToUInt16Rot( getRotation() );
- spawnPacket.data().type = static_cast< uint8_t >( m_type );
+ spawnPacket.data().type = static_cast< uint8_t >( m_objKind );
spawnPacket.data().state = static_cast< uint8_t >( m_status );
@@ -189,7 +189,7 @@ uint8_t Core::Entity::BattleNpc::getbehavior() const
void Core::Entity::BattleNpc::hateListAdd( Core::Entity::ActorPtr pActor, int32_t hateAmount )
{
- HateListEntry* hateEntry = new HateListEntry();
+ auto hateEntry = new HateListEntry();
hateEntry->m_hateAmount = hateAmount;
hateEntry->m_pActor = pActor;
@@ -253,7 +253,7 @@ bool Core::Entity::BattleNpc::moveTo( Common::FFXIVARR_POSITION3& pos )
return true;
float rot = Math::Util::calcAngFrom( getPos().x, getPos().z, pos.x, pos.z );
- float newRot = PI - rot + (PI / 2);
+ float newRot = PI - rot + ( PI / 2 );
face( pos );
float angle = Math::Util::calcAngFrom( getPos().x, getPos().z, pos.x, pos.z ) + PI;
@@ -262,7 +262,7 @@ bool Core::Entity::BattleNpc::moveTo( Common::FFXIVARR_POSITION3& pos )
float y = ( getPos().y + pos.y ) * 0.5f; // fake value while there is no collision
float z = static_cast< float >( sinf( angle ) * 1.1f );
- Common::FFXIVARR_POSITION3 newPos;
+ Common::FFXIVARR_POSITION3 newPos{};
newPos.x = getPos().x + x;
newPos.y = y;
@@ -270,13 +270,11 @@ bool Core::Entity::BattleNpc::moveTo( Common::FFXIVARR_POSITION3& pos )
setPosition( newPos );
- Common::FFXIVARR_POSITION3 tmpPos;
+ Common::FFXIVARR_POSITION3 tmpPos{};
tmpPos.x = getPos().x + x;
tmpPos.y = y;
tmpPos.z = getPos().z + z;
-
- angle = angle * 2;
setPosition( tmpPos );
setRotation(newRot);
@@ -384,7 +382,7 @@ void Core::Entity::BattleNpc::hateListUpdate( Core::Entity::ActorPtr pActor, int
}
}
- HateListEntry* hateEntry = new HateListEntry();
+ auto hateEntry = new HateListEntry();
hateEntry->m_hateAmount = hateAmount;
hateEntry->m_pActor = pActor;
m_hateList.insert( hateEntry );
@@ -427,7 +425,7 @@ void Core::Entity::BattleNpc::onDeath()
if( pHateEntry->m_pActor->isPlayer() ) // && pHateEntry->m_hateAmount >= plsBeHatedThisMuchAtLeast )
{
uint8_t level = pHateEntry->m_pActor->getLevel();
- auto levelDiff = (int)this->m_level - (int)level;
+ auto levelDiff = static_cast< int32_t >( this->m_level ) - level;
auto cappedLevelDiff = Math::Util::clamp( levelDiff, 1, 6 );
auto expNeeded = g_exdData.m_paramGrowthInfoMap[m_level + cappedLevelDiff - 1].needed_exp;
@@ -449,7 +447,7 @@ void Core::Entity::BattleNpc::onDeath()
// todo: this is actually retarded, we need real rand()
- srand( static_cast< unsigned int> ( time( NULL ) ) );
+ srand( static_cast< uint32_t > ( time( nullptr ) ) );
auto pPlayer = pHateEntry->m_pActor->getAsPlayer();
pPlayer->gainExp( exp );
@@ -517,7 +515,7 @@ void Core::Entity::BattleNpc::update( int64_t currTime )
{
ActorPtr pClosestActor = getClosestActor();
- if( ( pClosestActor != nullptr ) && pClosestActor->isAlive() )
+ if( pClosestActor && pClosestActor->isAlive() )
{
distance = Math::Util::distance( getPos().x, getPos().y, getPos().z,
pClosestActor->getPos().x,
@@ -543,9 +541,9 @@ void Core::Entity::BattleNpc::update( int64_t currTime )
if( pClosestActor != nullptr )
{
distance = Math::Util::distance( getPos().x, getPos().y, getPos().z,
- pClosestActor->getPos().x,
- pClosestActor->getPos().y,
- pClosestActor->getPos().z );
+ pClosestActor->getPos().x,
+ pClosestActor->getPos().y,
+ pClosestActor->getPos().z );
if( distance > 4 )
moveTo( pClosestActor->getPos() );
diff --git a/src/servers/Server_Zone/Actor/BattleNpc.h b/src/servers/Server_Zone/Actor/BattleNpc.h
index f74f9536..d6e92e85 100644
--- a/src/servers/Server_Zone/Actor/BattleNpc.h
+++ b/src/servers/Server_Zone/Actor/BattleNpc.h
@@ -27,7 +27,8 @@ public:
BattleNpc();
~BattleNpc();
- BattleNpc( uint32_t modelId, uint32_t nameid, const Common::FFXIVARR_POSITION3& spawnPos, uint32_t sizeId = 0, uint32_t type = 2, uint32_t level = 0, uint32_t behaviour = 1, uint32_t mobType = 0 );
+ BattleNpc( uint16_t modelId, uint16_t nameid, const Common::FFXIVARR_POSITION3& spawnPos, uint16_t bnpcBaseId = 0,
+ uint32_t type = 2, uint8_t level = 0, uint8_t behaviour = 1, uint32_t mobType = 0 );
//BattleNpc( uint32_t modelId,
// uint32_t nameId,
diff --git a/src/servers/Server_Zone/Actor/Player.cpp b/src/servers/Server_Zone/Actor/Player.cpp
index 6474ef01..2caab4b3 100644
--- a/src/servers/Server_Zone/Actor/Player.cpp
+++ b/src/servers/Server_Zone/Actor/Player.cpp
@@ -76,7 +76,7 @@ Core::Entity::Player::Player() :
m_mount( 0 )
{
m_id = 0;
- m_type = ActorType::Player;
+ m_objKind = ObjKind::Player;
m_currentStance = Stance::Passive;
m_onlineStatus = 0;
m_queuedZoneing = nullptr;
@@ -895,9 +895,7 @@ Core::Entity::ActorPtr Core::Entity::Player::lookupTargetById( uint64_t targetId
for( auto actor : inRange )
{
if( actor->getId() == targetId )
- {
targetActor = actor;
- }
}
return targetActor;
}
@@ -1185,6 +1183,11 @@ const uint8_t * Core::Entity::Player::getOrchestrionBitmask() const
return m_orchestrion;
}
+const uint8_t * Core::Entity::Player::getMountGuideBitmask() const
+{
+ return m_mountGuide;
+}
+
uint64_t Core::Entity::Player::getContentId() const
{
return m_contentId;
@@ -1209,26 +1212,27 @@ void Core::Entity::Player::queuePacket( Core::Network::Packets::GamePacketPtr pP
{
auto pSession = g_serverZone.getSession( m_id );
- if( pSession )
- {
- auto pZoneCon = pSession->getZoneConnection();
+ if( !pSession )
+ return;
+
+ auto pZoneCon = pSession->getZoneConnection();
+
+ if( pZoneCon )
+ pZoneCon->queueOutPacket( pPacket );
- if( pZoneCon )
- pZoneCon->queueOutPacket( pPacket );
- }
}
void Core::Entity::Player::queueChatPacket( Core::Network::Packets::GamePacketPtr pPacket )
{
auto pSession = g_serverZone.getSession( m_id );
- if( pSession )
- {
- auto pChatCon = pSession->getChatConnection();
+ if( !pSession )
+ return;
- if( pChatCon )
- pChatCon->queueOutPacket( pPacket );
- }
+ auto pChatCon = pSession->getChatConnection();
+
+ if( pChatCon )
+ pChatCon->queueOutPacket( pPacket );
}
bool Core::Entity::Player::isLoadingComplete() const
@@ -1460,7 +1464,8 @@ void Core::Entity::Player::mount( uint32_t id )
void Core::Entity::Player::dismount()
{
- sendToInRangeSet( ActorControlPacket142( getId(), ActorControlType::SetStatus, static_cast< uint8_t >( Entity::Actor::ActorStatus::Idle )), true );
+ sendToInRangeSet( ActorControlPacket142( getId(), ActorControlType::SetStatus,
+ static_cast< uint8_t >( Entity::Actor::ActorStatus::Idle )), true );
sendToInRangeSet( ActorControlPacket143( getId(), ActorControlType::Dismount, 1 ), true );
m_mount = 0;
}
@@ -1473,7 +1478,8 @@ uint8_t Core::Entity::Player::getCurrentMount() const
void Core::Entity::Player::autoAttack( ActorPtr pTarget )
{
- auto mainWeap = m_pInventory->getItemAt(Inventory::GearSet0, Inventory::EquipSlot::MainHand);
+ auto mainWeap = m_pInventory->getItemAt( Inventory::GearSet0,
+ Inventory::EquipSlot::MainHand );
pTarget->onActionHostile( shared_from_this() );
//uint64_t tick = Util::getTimeMs();
@@ -1482,9 +1488,9 @@ void Core::Entity::Player::autoAttack( ActorPtr pTarget )
uint32_t damage = static_cast< uint32_t >( mainWeap->getAutoAttackDmg() );
uint32_t variation = 0 + rand() % 3;
- if ( getClass() == ClassJob::Machinist||
- getClass() == ClassJob::Bard ||
- getClass() == ClassJob::Archer )
+ if( getClass() == ClassJob::Machinist ||
+ getClass() == ClassJob::Bard ||
+ getClass() == ClassJob::Archer )
{
ZoneChannelPacket< FFXIVIpcEffect > effectPacket(getId());
effectPacket.data().targetId = pTarget->getId();
@@ -1510,7 +1516,7 @@ void Core::Entity::Player::autoAttack( ActorPtr pTarget )
ZoneChannelPacket< FFXIVIpcEffect > effectPacket(getId());
effectPacket.data().targetId = pTarget->getId();
effectPacket.data().actionAnimationId = 7;
- // effectPacket.data().unknown_2 = variation;
+ // effectPacket.data().unknown_2 = variation;
effectPacket.data().numEffects = 1;
effectPacket.data().unknown_61 = 1;
effectPacket.data().unknown_62 = 1;
@@ -1549,7 +1555,7 @@ uint32_t Core::Entity::Player::getCFPenaltyMinutes() const
auto endTimestamp = getCFPenaltyTimestamp();
// check if penalty timestamp already passed current time
- if (currentTimestamp > endTimestamp)
+ if( currentTimestamp > endTimestamp )
return 0;
auto deltaTime = endTimestamp - currentTimestamp;
@@ -1559,7 +1565,7 @@ uint32_t Core::Entity::Player::getCFPenaltyMinutes() const
void Core::Entity::Player::setCFPenaltyMinutes( uint32_t minutes )
{
auto currentTimestamp = Core::Util::getTimeSeconds();
- setCFPenaltyTimestamp(static_cast< uint32_t >( currentTimestamp + minutes * 60 ));
+ setCFPenaltyTimestamp( static_cast< uint32_t >( currentTimestamp + minutes * 60 ) );
}
uint8_t Core::Entity::Player::getOpeningSequence() const
diff --git a/src/servers/Server_Zone/Actor/Player.h b/src/servers/Server_Zone/Actor/Player.h
index 19ed8d71..4688e5a5 100644
--- a/src/servers/Server_Zone/Actor/Player.h
+++ b/src/servers/Server_Zone/Actor/Player.h
@@ -215,7 +215,7 @@ public:
/*! get the current system hand model */
uint64_t getModelSystemWeapon() const;
/*! return a const pointer to the model array */
- const uint32_t * getModelArray() const;
+ const uint32_t* getModelArray() const;
/*! return the equipment model in a specified equipment slot */
uint32_t getModelForSlot( Inventory::EquipSlot slot );
/*! set the equipment model in a specified equipment slot */
@@ -254,13 +254,13 @@ public:
/*! change class or job to given class / job */
void setClassJob( Core::Common::ClassJob classJob );
/*! returns a pointer to the class array */
- uint16_t * getClassArray();
+ uint16_t* getClassArray();
/*! returns a const pointer to the class array */
- const uint16_t * getClassArray() const;
+ const uint16_t* getClassArray() const;
/*! returns a pointer to the exp array */
- uint32_t * getExpArray();
+ uint32_t* getExpArray();
/*! returns a const pointer to the exp array */
- const uint32_t * getExpArray() const;
+ const uint32_t* getExpArray() const;
// Base Look / Stats / Params
//////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -283,7 +283,7 @@ public:
/*! return the grand company */
uint8_t getGc() const;
/*! return the grand company rank */
- const uint8_t * getGcRankArray() const;
+ const uint8_t* getGcRankArray() const;
/*! set look at index */
void setLookAt( uint8_t index, uint8_t value );
/*! set the voice Id */
@@ -293,7 +293,7 @@ public:
/*! set the grand company rank */
void setGcRankAt( uint8_t index, uint8_t rank );
/*! return a const pointer to the look array */
- const uint8_t * getLookArray() const;
+ const uint8_t* getLookArray() const;
/*! returns true if the player is currently in combat */
bool isInCombat() const;
/*! sets players combat state */
@@ -329,7 +329,7 @@ public:
/*! prepares zoning / fades out the screen */
void prepareZoning( uint16_t targetZone, bool fadeOut, uint8_t fadoutTime = 0, uint16_t animation = 0 );
/*! get player's title list (available titles) */
- uint8_t * getTitleList();
+ uint8_t* getTitleList();
/*! get player's active title */
uint16_t getTitle() const;
/*! add title to player title list */
@@ -360,7 +360,7 @@ public:
/*! return a const pointer to the aetheryte unlock bitmask array */
int8_t getAetheryteMaskAt( uint8_t index ) const;
/*! return a pointer to the aetheryte unlock bitmask array */
- uint8_t * getAetheryteArray();
+ uint8_t* getAetheryteArray();
/*! set homepoint */
void setHomepoint( uint8_t aetheryteId );
/*! get homepoint */
@@ -368,13 +368,13 @@ public:
/*! discover subarea subid fo map map_id, also send udpate packet */
void discover( int16_t map_id, int16_t sub_id );
/*! return a pointer to the discovery bitmask array */
- uint8_t * getDiscoveryBitmask();
+ uint8_t* getDiscoveryBitmask();
/*! helper/debug function to reset all discovered areas */
void resetDiscovery();
/*! get a pointer to the howto bitmask array */
- uint8_t * getHowToArray();
+ uint8_t* getHowToArray();
/*! get a const pointer to the howto bitmask array */
- const uint8_t * getHowToArray() const;
+ const uint8_t* getHowToArray() const;
/*! update bitmask for how-to's seen */
void updateHowtosSeen( uint32_t howToId );
/*! learn an action / update the unlock bitmask. */
@@ -384,9 +384,11 @@ public:
/*! check if an action is already unlocked in the bitmask. */
bool isActionLearned( uint8_t actionId ) const;
/*! return a const pointer to the unlock bitmask array */
- const uint8_t * getUnlockBitmask() const;
+ const uint8_t* getUnlockBitmask() const;
/*! return a const pointer to the orchestrion bitmask array */
- const uint8_t * getOrchestrionBitmask() const;
+ const uint8_t* getOrchestrionBitmask() const;
+ /*! return a const pointer to the mount guide bitmask array */
+ const uint8_t* getMountGuideBitmask() const;
// Spawn handling
@@ -522,7 +524,6 @@ public:
void setEorzeaTimeOffset( uint64_t timestamp );
-
// Database
void updateDbAllQuests() const;
void deleteQuest( uint16_t questId ) const;
@@ -575,7 +576,7 @@ private:
uint8_t m_titleList[48];
uint8_t m_howTo[33];
uint8_t m_minions[33];
- uint8_t m_mounts[13];
+ uint8_t m_mountGuide[13];
uint8_t m_homePoint;
uint8_t m_startTown;
uint16_t m_townWarpFstFlags;
diff --git a/src/servers/Server_Zone/Actor/PlayerEvent.cpp b/src/servers/Server_Zone/Actor/PlayerEvent.cpp
index ee6451c6..9c0a1b02 100644
--- a/src/servers/Server_Zone/Actor/PlayerEvent.cpp
+++ b/src/servers/Server_Zone/Actor/PlayerEvent.cpp
@@ -69,9 +69,9 @@ void Core::Entity::Player::removeEvent( uint32_t eventId )
void Core::Entity::Player::checkEvent( uint32_t eventId )
{
auto pEvent = getEvent( eventId );
- if( pEvent )
- if( !pEvent->hasPlayedScene() )
- eventFinish( eventId, 1 );
+
+ if( pEvent && !pEvent->hasPlayedScene() )
+ eventFinish( eventId, 1 );
}
@@ -282,7 +282,8 @@ void Core::Entity::Player::eventItemActionStart( uint32_t eventId,
void Core::Entity::Player::onLogin()
{
- for( auto& child : g_serverZone.getConfig()->getChild( "Settings.Parameters.MotDArray" ) ) {
+ for( auto& child : g_serverZone.getConfig()->getChild( "Settings.Parameters.MotDArray" ) )
+ {
sendNotice( child.second.data() );
}
}
diff --git a/src/servers/Server_Zone/Actor/PlayerInventory.cpp b/src/servers/Server_Zone/Actor/PlayerInventory.cpp
index 2ed3b165..8eaf65c9 100644
--- a/src/servers/Server_Zone/Actor/PlayerInventory.cpp
+++ b/src/servers/Server_Zone/Actor/PlayerInventory.cpp
@@ -195,9 +195,7 @@ bool Core::Entity::Player::tryAddItem( uint16_t catalogId, uint32_t quantity )
for( uint16_t i = 0; i < 4; i++ )
{
if( m_pInventory->addItem( i, -1, catalogId, quantity ) != -1 )
- {
return true;
- }
}
return false;
}
diff --git a/src/servers/Server_Zone/Actor/PlayerQuest.cpp b/src/servers/Server_Zone/Actor/PlayerQuest.cpp
index 06c728b2..3940954f 100644
--- a/src/servers/Server_Zone/Actor/PlayerQuest.cpp
+++ b/src/servers/Server_Zone/Actor/PlayerQuest.cpp
@@ -45,7 +45,7 @@ void Core::Entity::Player::removeQuest( uint16_t questId )
{
ZoneChannelPacket< FFXIVIpcQuestUpdate > questUpdatePacket( getId() );
- questUpdatePacket.data().slot = idx;
+ questUpdatePacket.data().slot = static_cast< uint8_t >( idx );
questUpdatePacket.data().questInfo.c.questId = 0;
questUpdatePacket.data().questInfo.c.sequence = 0xFF;
queuePacket( questUpdatePacket );
@@ -62,7 +62,7 @@ void Core::Entity::Player::removeQuest( uint16_t questId )
m_questTracking[ii] = -1;
}
- boost::shared_ptr pQuest = m_activeQuests[idx];
+ boost::shared_ptr< QuestActive > pQuest = m_activeQuests[idx];
m_activeQuests[idx].reset();
m_questIdToQuestIdx.erase( questId );
@@ -1023,6 +1023,7 @@ bool Core::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t optional
auto paramGrowth = g_exdData.m_paramGrowthInfoMap[questInfo->quest_level];
+ // TODO: use the correct formula, this one is wrong
uint32_t exp = ( questInfo->reward_exp_factor * paramGrowth.quest_exp_mod * ( 45 + 5 * questInfo->quest_level) ) / 100;
exp = exp + ( questInfo->reward_exp_factor / 100 ) * 10000;
diff --git a/src/servers/Server_Zone/Actor/PlayerSql.cpp b/src/servers/Server_Zone/Actor/PlayerSql.cpp
index 737c9754..46fdd8d8 100644
--- a/src/servers/Server_Zone/Actor/PlayerSql.cpp
+++ b/src/servers/Server_Zone/Actor/PlayerSql.cpp
@@ -152,6 +152,12 @@ bool Core::Entity::Player::load( uint32_t charId, Core::SessionPtr pSession )
auto titleList = res->getBlobVector( "TitleList" );
memcpy( reinterpret_cast< char* >( m_titleList ), titleList.data(), titleList.size() );
+
+ auto mountGuide = res->getBlobVector( "Mounts" );
+ memcpy( reinterpret_cast< char* >( m_mountGuide ), mountGuide.data(), mountGuide.size() );
+
+ auto orchestrion = res->getBlobVector( "Orchestrion" );
+ memcpy( reinterpret_cast< char* >( m_orchestrion ), orchestrion.data(), orchestrion.size() );
auto gcRank = res->getBlobVector( "GrandCompanyRank" );
memcpy( reinterpret_cast< char* >( m_gcRank ), gcRank.data(), gcRank.size() );
@@ -296,10 +302,10 @@ void Core::Entity::Player::updateSql()
"TerritoryType 18, TerritoryId 19, PosX 20, PosY 21, PosZ 22, PosR 23, "
"OTerritoryType 24, OTerritoryId 25, OPosX 26, OPosY 27, OPosZ 28, OPosR 29, "
"Class 30, Status 31, TotalPlayTime 32, HomePoint 33, FavoritePoint 34, RestPoint 35, "
- "ActiveTitle 36, TitleList 37, Achievement 38, Aetheryte 39, HowTo 40, Minions 41, Mounts 42, "
- "EquippedMannequin 43, ConfigFlags 44, QuestCompleteFlags 45, OpeningSequence 46, "
- "QuestTracking 47, GrandCompany 48, GrandCompanyRank 49, Discovery 50, GMRank 51, Unlocks 52, "
- "CFPenaltyUntil 53"*/
+ "ActiveTitle 36, TitleList 37, Achievement 38, Aetheryte 39, HowTo 40, Minions 41, Mounts 42, Orchestrion 43, "
+ "EquippedMannequin 44, ConfigFlags 45, QuestCompleteFlags 46, OpeningSequence 47, "
+ "QuestTracking 48, GrandCompany 49, GrandCompanyRank 50, Discovery 51, GMRank 52, Unlocks 53, "
+ "CFPenaltyUntil 54"*/
auto stmt = g_charaDb.getPreparedStatement( Core::Db::CharaDbStatements::CHARA_UP );
stmt->setInt( 1, getHp() );
@@ -370,40 +376,44 @@ void Core::Entity::Player::updateSql()
memcpy( minionsVec.data(), m_minions, sizeof( m_minions ) );
stmt->setBinary( 41, minionsVec );
- std::vector< uint8_t > mountsVec( sizeof( m_mounts ) );
- memcpy( mountsVec.data(), m_mounts, sizeof( m_mounts ) );
+ std::vector< uint8_t > mountsVec( sizeof( m_mountGuide ) );
+ memcpy( mountsVec.data(), m_mountGuide, sizeof( m_mountGuide ) );
stmt->setBinary( 42, mountsVec );
- stmt->setInt( 43, 0 ); // EquippedMannequin
+ std::vector< uint8_t > orchestrionVec( sizeof( m_orchestrion ) );
+ memcpy( orchestrionVec.data(), m_orchestrion, sizeof( m_orchestrion ) );
+ stmt->setBinary( 42, mountsVec );
- stmt->setInt( 44, 0 ); // DisplayFlags
+ stmt->setInt( 44, 0 ); // EquippedMannequin
+
+ stmt->setInt( 45, 0 ); // DisplayFlags
std::vector< uint8_t > questCompleteVec( sizeof( m_questCompleteFlags ) );
memcpy( questCompleteVec.data(), m_questCompleteFlags, sizeof( m_questCompleteFlags ) );
- stmt->setBinary( 45, questCompleteVec );
+ stmt->setBinary( 46, questCompleteVec );
- stmt->setInt( 46, m_openingSequence );
+ stmt->setInt( 47, m_openingSequence );
std::vector< uint8_t > questTrackerVec( sizeof( m_questTracking ) );
memcpy( questTrackerVec.data(), m_questTracking, sizeof( m_questTracking ) );
- stmt->setBinary( 47, questTrackerVec );
+ stmt->setBinary( 48, questTrackerVec );
- stmt->setInt( 48, m_gc ); // DisplayFlags
+ stmt->setInt( 49, m_gc ); // DisplayFlags
- stmt->setBinary( 49, { m_gcRank[0], m_gcRank[1], m_gcRank[2] } );
+ stmt->setBinary( 50, { m_gcRank[0], m_gcRank[1], m_gcRank[2] } );
std::vector< uint8_t > discoveryVec( sizeof( m_discovery ) );
memcpy( discoveryVec.data(), m_discovery, sizeof( m_discovery ) );
- stmt->setBinary( 50, discoveryVec );
+ stmt->setBinary( 51, discoveryVec );
- stmt->setInt( 51, m_gmRank );
+ stmt->setInt( 52, m_gmRank );
std::vector< uint8_t > unlockVec( sizeof( m_unlocks ) );
memcpy( unlockVec.data(), m_unlocks, sizeof( m_unlocks ) );
- stmt->setBinary( 52, unlockVec );
+ stmt->setBinary( 53, unlockVec );
- stmt->setInt( 53, m_cfPenaltyUntil );
+ stmt->setInt( 54, m_cfPenaltyUntil );
- stmt->setInt( 54, m_id );
+ stmt->setInt( 55, m_id );
g_charaDb.execute( stmt );
@@ -416,8 +426,6 @@ void Core::Entity::Player::updateSql()
////// Class
updateDbClass();
- memset( m_orchestrion, 0, sizeof( m_orchestrion ) );
-
}
void Core::Entity::Player::updateDbClass() const
diff --git a/src/servers/Server_Zone/Event/EventHelper.cpp b/src/servers/Server_Zone/Event/EventHelper.cpp
index 18308399..e59b322b 100644
--- a/src/servers/Server_Zone/Event/EventHelper.cpp
+++ b/src/servers/Server_Zone/Event/EventHelper.cpp
@@ -12,47 +12,45 @@ std::string Core::Event::getEventName( uint32_t eventId )
{
uint16_t eventType = eventId >> 16;
+ auto unknown = std::string{ "unknown" };
+
switch( eventType )
{
case EventType::Quest:
{
auto questInfo = g_exdData.getQuestInfo( eventId );
- if( questInfo )
- {
- std::string name = questInfo->name_intern;
- std::size_t pos = name.find_first_of( "_" );
+ if( !questInfo )
+ return unknown + "Quest";
- return questInfo->name_intern.substr( 0, pos );
- }
+ std::string name = questInfo->name_intern;
+ std::size_t pos = name.find_first_of( "_" );
+
+ return questInfo->name_intern.substr( 0, pos );
}
- break;
case EventType::CustomTalk:
{
auto customTalkInfo = g_exdData.getCustomTalkInfo( eventId );
- if( customTalkInfo )
- {
- std::string name = customTalkInfo->name_intern;
- std::size_t pos = name.find_first_of( "_" );
+ if( !customTalkInfo )
+ return unknown + "CustomTalk";
- return customTalkInfo->name_intern.substr( 0, pos );
- }
+ std::string name = customTalkInfo->name_intern;
+ std::size_t pos = name.find_first_of( "_" );
+ return customTalkInfo->name_intern.substr( 0, pos );
}
- break;
case EventType::Opening:
{
auto openingInfo = g_exdData.getOpeningInfo( eventId );
if( openingInfo )
return openingInfo->name;
+ return unknown + "Opening";
}
- break;
case EventType::Aetheryte:
{
auto aetherInfo = g_exdData.getAetheryteInfo( eventId & 0xFFFF );
if( aetherInfo->isAetheryte )
return "Aetheryte";
return "Aethernet";
-
}
case EventType::ChocoPort:
{
@@ -60,11 +58,9 @@ std::string Core::Event::getEventName( uint32_t eventId )
}
default:
{
- return "";
-
+ return unknown;
}
}
- return "";
}
uint32_t Core::Event::mapEventActorToRealActor( uint32_t eventActorId )
diff --git a/src/servers/Server_Zone/Network/GameConnection.cpp b/src/servers/Server_Zone/Network/GameConnection.cpp
index 4e4c5a90..07d5e8a3 100644
--- a/src/servers/Server_Zone/Network/GameConnection.cpp
+++ b/src/servers/Server_Zone/Network/GameConnection.cpp
@@ -93,16 +93,15 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive,
setZoneHandler( ClientZoneIpcType::CFRegisterRoulette, "CFRegisterRoulette", &GameConnection::cfRegisterRoulette );
setZoneHandler( ClientZoneIpcType::CFCommenceHandler, "CFDutyAccepted", &GameConnection::cfDutyAccepted);
- setZoneHandler( ClientZoneIpcType::ReqEquipDisplayFlagsChange, "ReqEquipDisplayFlagsChange",&GameConnection::reqEquipDisplayFlagsHandler);
+ setZoneHandler( ClientZoneIpcType::ReqEquipDisplayFlagsChange, "ReqEquipDisplayFlagsChange", &GameConnection::reqEquipDisplayFlagsHandler );
+
+ setZoneHandler( ClientZoneIpcType::PerformNoteHandler, "PerformNoteHandler", &GameConnection::performNoteHandler );
setChatHandler( ClientChatIpcType::TellReq, "TellReq", &GameConnection::tellHandler);
}
-Core::Network::GameConnection::~GameConnection()
-{
-
-}
+Core::Network::GameConnection::~GameConnection() = default;
// overwrite the parents onConnect for our game socket needs
@@ -125,39 +124,40 @@ void Core::Network::GameConnection::OnRecv( std::vector< uint8_t > & buffer )
{
// This is assumed packet always start with valid FFXIVARR_PACKET_HEADER for now.
- Packets::FFXIVARR_PACKET_HEADER packetHeader;
- const auto headerResult = Packets::getHeader(buffer, 0, packetHeader);
+ Packets::FFXIVARR_PACKET_HEADER packetHeader{};
+ const auto headerResult = Packets::getHeader( buffer, 0, packetHeader );
- if (headerResult == Incomplete)
+ if( headerResult == Incomplete )
{
- g_log.info("Dropping connection due to incomplete packet header.");
- g_log.info("FIXME: Packet message bounary is not implemented.");
+ g_log.info( "Dropping connection due to incomplete packet header." );
+ g_log.info( "FIXME: Packet message bounary is not implemented." );
Disconnect();
return;
}
- if (headerResult == Malformed)
+ if( headerResult == Malformed )
{
- g_log.info("Dropping connection due to malformed packet header.");
+ g_log.info( "Dropping connection due to malformed packet header." );
Disconnect();
return;
}
// Dissect packet list
std::vector< Packets::FFXIVARR_PACKET_RAW > packetList;
- const auto packetResult = Packets::getPackets(buffer, sizeof(struct FFXIVARR_PACKET_HEADER), packetHeader, packetList);
+ const auto packetResult = Packets::getPackets( buffer, sizeof( struct FFXIVARR_PACKET_HEADER ),
+ packetHeader, packetList );
- if (packetResult == Incomplete)
+ if( packetResult == Incomplete )
{
- g_log.info("Dropping connection due to incomplete packets.");
- g_log.info("FIXME: Packet message bounary is not implemented.");
+ g_log.info( "Dropping connection due to incomplete packets." );
+ g_log.info( "FIXME: Packet message bounary is not implemented." );
Disconnect();
return;
}
if (packetResult == Malformed)
{
- g_log.info("Dropping connection due to malformed packets.");
+ g_log.info( "Dropping connection due to malformed packets." );
Disconnect();
return;
}
@@ -256,7 +256,7 @@ void Core::Network::GameConnection::handlePacket( Core::Network::Packets::GamePa
}
-void Core::Network::GameConnection::sendPackets( Packets::PacketContainer * pPacket )
+void Core::Network::GameConnection::sendPackets( Packets::PacketContainer* pPacket )
{
//g_log.Log(LoggingSeverity::info, pPacket->toString());
std::vector< uint8_t > sendBuffer;
@@ -270,7 +270,7 @@ void Core::Network::GameConnection::processInQueue()
// handle the incoming game packets
while( auto pPacket = m_inQueue.pop() )
{
- handlePacket(pPacket);
+ handlePacket( pPacket );
}
}
@@ -303,7 +303,7 @@ void Core::Network::GameConnection::processOutQueue()
}
-void Core::Network::GameConnection::sendSinglePacket( Packets::GamePacket * pPacket )
+void Core::Network::GameConnection::sendSinglePacket( Packets::GamePacket* pPacket )
{
PacketContainer pRP = PacketContainer();
pRP.addPacket( *pPacket );
@@ -337,7 +337,7 @@ void Core::Network::GameConnection::injectPacket( const std::string& packetpath,
fclose( fp );
// cycle through the packet entries and queue each one
- for( int32_t k = 0x18; k < size;)
+ for( int32_t k = 0x18; k < size; )
{
uint32_t tmpId = pPlayer->getId();
// replace ids in the entryheader if needed
@@ -360,7 +360,7 @@ void Core::Network::GameConnection::injectPacket( const std::string& packetpath,
}
void Core::Network::GameConnection::handlePackets( const Core::Network::Packets::FFXIVARR_PACKET_HEADER& ipcHeader,
- const std::vector& packetData )
+ const std::vector< Core::Network::Packets::FFXIVARR_PACKET_RAW >& packetData )
{
// if a session is set, update the last time it recieved a game packet
if( m_pSession )
@@ -368,8 +368,6 @@ void Core::Network::GameConnection::handlePackets( const Core::Network::Packets:
for( auto inPacket : packetData )
{
-
-
switch( inPacket.segHdr.type )
{
case 1:
@@ -392,7 +390,8 @@ void Core::Network::GameConnection::handlePackets( const Core::Network::Packets:
}
session = g_serverZone.getSession( playerId );
}
- else if( !session->isValid() || ( session->getPlayer() && session->getPlayer()->getLastPing() != 0 ) ) //TODO: Catch more things in lobby and send real errors
+ //TODO: Catch more things in lobby and send real errors
+ else if( !session->isValid() || ( session->getPlayer() && session->getPlayer()->getLastPing() != 0 ) )
{
g_log.error( "[" + std::string(id) + "] Session INVALID, disconnecting" );
Disconnect();
@@ -458,58 +457,5 @@ void Core::Network::GameConnection::handlePackets( const Core::Network::Packets:
}
}
-
- //// try to retrieve the session for this id
- //auto session = g_serverZone.getSession( inPacket.segHdr.source_actor );
- //auto pCon = boost::static_pointer_cast< GameConnection, Connection >( shared_from_this() );
-
- //// check if this is a zoning notification
- //if( *reinterpret_cast< uint16_t* >( &inPacket.data[2] ) == 0x9999 )
- //{
-
- // // if we already have a session in this connection, reload the player
- // if( session )
- // g_serverZone.updateSession( inPacket.segHdr.source_actor );
- // else
- // {
- // // if not, create a new session
- // g_serverZone.createSession( inPacket.segHdr.source_actor );
- // session = g_serverZone.getSession( inPacket.segHdr.source_actor );
- // }
-
- // // set the zoneingType for the player so the correct animation can be played
- // auto pPlayer = session->getPlayer();
- // ZoneingType zoneType = static_cast< ZoneingType >( *reinterpret_cast< uint16_t* >( &inPacket.data[18] ) );
- // switch( zoneType )
- // {
- // case ZoneingType::Teleport:
- // pPlayer->setTeleporting( true );
- // break;
- // case ZoneingType::Return:
- // pPlayer->setReturning( true );
- // break;
- // default:
- // break;
- // }
- // // place this connection in the session
- // session->setZoneConnection( pCon );
- // // actually perform the zoning
- // session->getPlayer()->setZone( *reinterpret_cast< uint16_t* >( &inPacket.data[16] ) );
- //}
- //else
- //{
- // if( !session )
- // {
- // g_serverZone.createSession( inPacket.segHdr.source_actor );
- // session = g_serverZone.getSession( inPacket.segHdr.source_actor );
- // session->setZoneConnection( pCon );
- // }
-
- // queueInPacket( GamePacketPtr( new GamePacket( inPacket ) ) );
- //}
-
- //// if not set, set the session for this connection
- //if( !m_pSession && session )
- // m_pSession = session;
}
}
diff --git a/src/servers/Server_Zone/Network/GameConnection.h b/src/servers/Server_Zone/Network/GameConnection.h
index cea1dec9..97332266 100644
--- a/src/servers/Server_Zone/Network/GameConnection.h
+++ b/src/servers/Server_Zone/Network/GameConnection.h
@@ -66,7 +66,7 @@ public:
void OnError( const boost::system::error_code & error ) override;
void handlePackets( const Packets::FFXIVARR_PACKET_HEADER& ipcHeader,
- const std::vector& packetData );
+ const std::vector< Packets::FFXIVARR_PACKET_RAW >& packetData );
void queueInPacket( Packets::GamePacketPtr inPacket );
void queueOutPacket( Packets::GamePacketPtr outPacket );
@@ -119,6 +119,8 @@ public:
DECLARE_HANDLER( reqEquipDisplayFlagsHandler );
+ DECLARE_HANDLER( performNoteHandler );
+
DECLARE_HANDLER( tellHandler );
};
diff --git a/src/servers/Server_Zone/Network/Handlers/ActionHandler.cpp b/src/servers/Server_Zone/Network/Handlers/ActionHandler.cpp
index 0374f957..94aa4e71 100644
--- a/src/servers/Server_Zone/Network/Handlers/ActionHandler.cpp
+++ b/src/servers/Server_Zone/Network/Handlers/ActionHandler.cpp
@@ -52,7 +52,7 @@ void Core::Network::GameConnection::actionHandler( const Packets::GamePacket& in
uint64_t param1 = inPacket.getValAt< uint64_t >( 0x24 );
uint32_t param11 = inPacket.getValAt< uint32_t >( 0x24 );
uint32_t param12 = inPacket.getValAt< uint32_t >( 0x28 );
- uint32_t param2 = inPacket.getValAt< uint32_t >( 0x2c );
+ uint32_t param2 = inPacket.getValAt< uint32_t >( 0x2C );
uint64_t param3 = inPacket.getValAt< uint64_t >( 0x38 );
g_log.debug( "[" + std::to_string( m_pSession->getId() ) + "] Incoming action: " +
@@ -115,7 +115,7 @@ void Core::Network::GameConnection::actionHandler( const Packets::GamePacket& in
}
case 0x69: // Cancel cast
{
- if( pPlayer->getCurrentAction() != nullptr )
+ if( pPlayer->getCurrentAction() )
pPlayer->getCurrentAction()->setInterrupted();
break;
}
@@ -190,8 +190,6 @@ void Core::Network::GameConnection::actionHandler( const Packets::GamePacket& in
break;
case ZoneingType::FadeIn:
break;
- default:
- break;
}
pPlayer->setZoningType( Common::ZoneingType::None );
@@ -216,7 +214,7 @@ void Core::Network::GameConnection::actionHandler( const Packets::GamePacket& in
pow( fromAetheryte->map_coord_y - targetAetheryte->map_coord_y, 2 ) ) / 2 ) + 100 );
// cap at 999 gil
- cost = cost > 999 ? 999 : cost;
+ cost = cost > uint16_t{999} ? uint16_t{999} : cost;
bool insufficientGil = pPlayer->getCurrency( Inventory::CurrencyType::Gil ) < cost;
// todo: figure out what param1 really does
diff --git a/src/servers/Server_Zone/Network/Handlers/InventoryHandler.cpp b/src/servers/Server_Zone/Network/Handlers/InventoryHandler.cpp
index 37804aac..7decaea0 100644
--- a/src/servers/Server_Zone/Network/Handlers/InventoryHandler.cpp
+++ b/src/servers/Server_Zone/Network/Handlers/InventoryHandler.cpp
@@ -39,59 +39,59 @@ using namespace Core::Network::Packets::Server;
void Core::Network::GameConnection::inventoryModifyHandler( const Packets::GamePacket& inPacket,
Entity::PlayerPtr pPlayer )
{
- uint32_t seq = inPacket.getValAt< uint32_t >( 0x20 );
- uint8_t action = inPacket.getValAt< uint8_t >( 0x24 );
- uint8_t fromSlot = inPacket.getValAt< uint8_t >( 0x30 );
- uint8_t toSlot = inPacket.getValAt< uint8_t >( 0x44 );
- uint16_t fromContainer = inPacket.getValAt< uint16_t >( 0x2C );
- uint16_t toContainer = inPacket.getValAt< uint16_t >( 0x40 );
+ uint32_t seq = inPacket.getValAt< uint32_t >( 0x20 );
+ uint8_t action = inPacket.getValAt< uint8_t >( 0x24 );
+ uint8_t fromSlot = inPacket.getValAt< uint8_t >( 0x30 );
+ uint8_t toSlot = inPacket.getValAt< uint8_t >( 0x44 );
+ uint16_t fromContainer = inPacket.getValAt< uint16_t >( 0x2C );
+ uint16_t toContainer = inPacket.getValAt< uint16_t >( 0x40 );
- ZoneChannelPacket< FFXIVIpcInventoryActionAck > ackPacket( pPlayer->getId() );
- ackPacket.data().sequence = seq;
- ackPacket.data().type = 7;
- pPlayer->queuePacket( ackPacket );
+ ZoneChannelPacket< FFXIVIpcInventoryActionAck > ackPacket( pPlayer->getId() );
+ ackPacket.data().sequence = seq;
+ ackPacket.data().type = 7;
+ pPlayer->queuePacket( ackPacket );
- g_log.debug( inPacket.toString() );
- g_log.debug( "InventoryAction: " + std::to_string( action ) );
+ g_log.debug( inPacket.toString() );
+ g_log.debug( "InventoryAction: " + std::to_string( action ) );
- // TODO: other inventory operations need to be implemented
- switch( action )
- {
+ // TODO: other inventory operations need to be implemented
+ switch( action )
+ {
- case 0x07: // discard item action
- {
- pPlayer->getInventory()->discardItem( fromContainer, fromSlot );
- }
- break;
+ case 0x07: // discard item action
+ {
+ pPlayer->getInventory()->discardItem( fromContainer, fromSlot );
+ }
+ break;
- case 0x08: // move item action
- {
- pPlayer->getInventory()->moveItem( fromContainer, fromSlot, toContainer, toSlot );
- }
- break;
+ case 0x08: // move item action
+ {
+ pPlayer->getInventory()->moveItem( fromContainer, fromSlot, toContainer, toSlot );
+ }
+ break;
- case 0x09: // swap item action
- {
- pPlayer->getInventory()->swapItem( fromContainer, fromSlot, toContainer, toSlot );
- }
- break;
+ case 0x09: // swap item action
+ {
+ pPlayer->getInventory()->swapItem( fromContainer, fromSlot, toContainer, toSlot );
+ }
+ break;
- case 0x0C: // merge stack action
- {
+ case 0x0C: // merge stack action
+ {
- }
- break;
+ }
+ break;
- case 0x0A: // split stack action
- {
+ case 0x0A: // split stack action
+ {
- }
- break;
+ }
+ break;
- default:
+ default:
+ break;
- break;
- }
+ }
}
diff --git a/src/servers/Server_Zone/Network/Handlers/PacketHandlers.cpp b/src/servers/Server_Zone/Network/Handlers/PacketHandlers.cpp
index 99239694..96f4a58c 100644
--- a/src/servers/Server_Zone/Network/Handlers/PacketHandlers.cpp
+++ b/src/servers/Server_Zone/Network/Handlers/PacketHandlers.cpp
@@ -286,6 +286,7 @@ void Core::Network::GameConnection::updatePositionHandler( const Packets::GamePa
void Core::Network::GameConnection::reqEquipDisplayFlagsHandler( const Packets::GamePacket& inPacket,
Entity::PlayerPtr pPlayer )
{
+ g_log.info( "[" + std::to_string( pPlayer->getId() ) + "] Setting EquipDisplayFlags to " + std::to_string( inPacket.getValAt< uint8_t >( 0x20 ) ) );
pPlayer->setEquipDisplayFlags( inPacket.getValAt< uint8_t >( 0x20 ) );
}
@@ -300,7 +301,7 @@ void Core::Network::GameConnection::zoneLineHandler( const Packets::GamePacket&
auto pLine = g_zoneMgr.getZonePosition( zoneLineId );
- Common::FFXIVARR_POSITION3 targetPos;
+ Common::FFXIVARR_POSITION3 targetPos{};
uint32_t targetZone;
float rotation = 0.0f;
@@ -482,6 +483,12 @@ void Core::Network::GameConnection::socialListHandler( const Packets::GamePacket
}
+void Core::Network::GameConnection::socialReqSendHandler(const Packets::GamePacket& inPacket,
+ Entity::PlayerPtr pPlayer)
+{
+ g_log.debug("send");
+}
+
void Core::Network::GameConnection::chatHandler( const Packets::GamePacket& inPacket,
Entity::PlayerPtr pPlayer )
{
@@ -554,7 +561,7 @@ void Core::Network::GameConnection::tellHandler( const Packets::GamePacket& inPa
if( !pSession )
{
- GamePacketNew< FFXIVIpcTellErrNotFound, ServerChatIpcType > tellErrPacket( pPlayer->getId() );
+ ChatChannelPacket< FFXIVIpcTellErrNotFound > tellErrPacket( pPlayer->getId() );
strcpy( tellErrPacket.data().receipientName, targetPcName.c_str() );
sendSinglePacket( tellErrPacket );
@@ -587,7 +594,7 @@ void Core::Network::GameConnection::tellHandler( const Packets::GamePacket& inPa
return;
}
- GamePacketNew< FFXIVIpcTell, ServerChatIpcType > tellPacket( pPlayer->getId() );
+ ChatChannelPacket< FFXIVIpcTell > tellPacket( pPlayer->getId() );
strcpy( tellPacket.data().msg, msg.c_str() );
strcpy( tellPacket.data().receipientName, pPlayer->getName().c_str() );
// TODO: do these have a meaning?
@@ -597,3 +604,14 @@ void Core::Network::GameConnection::tellHandler( const Packets::GamePacket& inPa
pTargetPlayer->queueChatPacket( tellPacket );
}
+
+void Core::Network::GameConnection::performNoteHandler( const Packets::GamePacket& inPacket,
+ Entity::PlayerPtr pPlayer )
+{
+ GamePacketNew< FFXIVIpcPerformNote, ServerZoneIpcType > performPacket( pPlayer->getId() );
+
+ uint8_t inVal = inPacket.getValAt< uint8_t >( 0x20 );
+ memcpy( &performPacket.data().data[0], &inVal, 32 );
+
+ pPlayer->sendToInRangeSet( performPacket );
+}
diff --git a/src/servers/Server_Zone/Network/PacketWrappers/InitUIPacket.h b/src/servers/Server_Zone/Network/PacketWrappers/InitUIPacket.h
index aa3ad80b..13d48cc7 100644
--- a/src/servers/Server_Zone/Network/PacketWrappers/InitUIPacket.h
+++ b/src/servers/Server_Zone/Network/PacketWrappers/InitUIPacket.h
@@ -64,8 +64,7 @@ private:
memcpy( m_data.orchestrionMask, player->getOrchestrionBitmask(), sizeof( m_data.orchestrionMask ) );
- memset( m_data.mountGuideMask, 0xFF, sizeof( m_data.mountGuideMask) );
- memset( m_data.fishingGuideMask, 0xFF, sizeof( m_data.fishingGuideMask ) );
+ memcpy( m_data.mountGuideMask, player->getMountGuideBitmask(), sizeof( m_data.mountGuideMask) );
memcpy( m_data.unlockBitmask, player->getUnlockBitmask(), sizeof( m_data.unlockBitmask ) );
diff --git a/src/servers/Server_Zone/Script/ScriptManager.cpp b/src/servers/Server_Zone/Script/ScriptManager.cpp
index bc42558c..acb30e3b 100644
--- a/src/servers/Server_Zone/Script/ScriptManager.cpp
+++ b/src/servers/Server_Zone/Script/ScriptManager.cpp
@@ -23,7 +23,6 @@
extern Core::Logger g_log;
extern Core::Data::ExdData g_exdData;
extern Core::ServerZone g_serverZone;
-extern Core::Scripting::ScriptManager g_scriptManager;
Core::Scripting::ScriptManager::ScriptManager()
{
@@ -38,6 +37,8 @@ Core::Scripting::ScriptManager::~ScriptManager()
void Core::Scripting::ScriptManager::loadDir( std::string dirname, std::set& chaiFiles )
{
+ g_log.info( "ScriptEngine: loading scripts from " + dirname );
+
boost::filesystem::path targetDir( dirname );
boost::filesystem::recursive_directory_iterator iter( targetDir ), eod;
@@ -67,7 +68,8 @@ void Core::Scripting::ScriptManager::onPlayerFirstEnterWorld( Core::Entity::Play
}
}
-bool Core::Scripting::ScriptManager::registerBnpcTemplate( std::string templateName, uint32_t bnpcBaseId, uint32_t bnpcNameId, uint32_t modelId, std::string aiName )
+bool Core::Scripting::ScriptManager::registerBnpcTemplate( std::string templateName, uint32_t bnpcBaseId,
+ uint32_t bnpcNameId, uint32_t modelId, std::string aiName )
{
return g_serverZone.registerBnpcTemplate( templateName, bnpcBaseId, bnpcNameId, modelId, aiName );
}
@@ -79,7 +81,7 @@ void Core::Scripting::ScriptManager::reload()
init();
}
-const boost::shared_ptr& Core::Scripting::ScriptManager::getHandler() const
+const boost::shared_ptr< chaiscript::ChaiScript >& Core::Scripting::ScriptManager::getHandler() const
{
return m_pChaiHandler;
}
@@ -90,12 +92,13 @@ bool Core::Scripting::ScriptManager::onTalk( Core::Entity::PlayerPtr pPlayer, ui
std::string eventName = "onTalk";
std::string objName = Event::getEventName( eventId );
- pPlayer->sendDebug("Actor: " +
- std::to_string( actorId ) + " -> " + std::to_string( Core::Event::mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ) ) +
- " \neventId: " +
- std::to_string( eventId ) +
- " (0x" + boost::str( boost::format( "%|08X|" )
- % static_cast< uint64_t >( eventId & 0xFFFFFFF ) ) + ")" );
+ pPlayer->sendDebug( "Actor: " +
+ std::to_string( actorId ) + " -> " +
+ std::to_string( Core::Event::mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ) ) +
+ " \neventId: " +
+ std::to_string( eventId ) +
+ " (0x" + boost::str( boost::format( "%|08X|" )
+ % static_cast< uint64_t >( eventId & 0xFFFFFFF ) ) + ")" );
uint16_t eventType = eventId >> 16;
@@ -107,7 +110,8 @@ bool Core::Scripting::ScriptManager::onTalk( Core::Entity::PlayerPtr pPlayer, ui
pPlayer->eventStart( actorId, eventId, Event::Event::Talk, 0, 0 );
- auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, uint32_t, Entity::Player&, uint64_t ) > >( eventName );
+ auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &,
+ uint32_t, Entity::Player&, uint64_t ) > >( eventName );
fn( obj, eventId, *pPlayer, actorId );
pPlayer->checkEvent( eventId );
@@ -146,7 +150,8 @@ bool Core::Scripting::ScriptManager::onEnterTerritory( Core::Entity::PlayerPtr p
pPlayer->eventStart( pPlayer->getId(), eventId, Event::Event::EnterTerritory, 0, pPlayer->getZoneId() );
- auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, uint32_t, Entity::Player&, uint16_t, uint16_t ) > >( eventName );
+ auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, uint32_t,
+ Entity::Player&, uint16_t, uint16_t ) > >( eventName );
fn( obj, eventId, *pPlayer, param1, param2 );
pPlayer->checkEvent( eventId );
@@ -159,7 +164,8 @@ bool Core::Scripting::ScriptManager::onEnterTerritory( Core::Entity::PlayerPtr p
return true;
}
-bool Core::Scripting::ScriptManager::onWithinRange( Entity::PlayerPtr pPlayer, uint32_t eventId, uint32_t param1, float x, float y, float z )
+bool Core::Scripting::ScriptManager::onWithinRange( Entity::PlayerPtr pPlayer, uint32_t eventId, uint32_t param1,
+ float x, float y, float z )
{
std::string eventName = "onWithinRange";
std::string objName = Event::getEventName( eventId );
@@ -173,7 +179,8 @@ bool Core::Scripting::ScriptManager::onWithinRange( Entity::PlayerPtr pPlayer, u
pPlayer->eventStart( pPlayer->getId(), eventId, Event::Event::WithinRange, 1, param1 );
- auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, uint32_t, Entity::Player&, uint32_t, float, float, float ) > >( eventName );
+ auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, uint32_t, Entity::Player&, uint32_t,
+ float, float, float ) > >( eventName );
fn( obj, eventId, *pPlayer, param1, x, y, z );
pPlayer->checkEvent( eventId );
@@ -186,7 +193,8 @@ bool Core::Scripting::ScriptManager::onWithinRange( Entity::PlayerPtr pPlayer, u
return true;
}
-bool Core::Scripting::ScriptManager::onOutsideRange( Entity::PlayerPtr pPlayer, uint32_t eventId, uint32_t param1, float x, float y, float z )
+bool Core::Scripting::ScriptManager::onOutsideRange( Entity::PlayerPtr pPlayer, uint32_t eventId, uint32_t param1,
+ float x, float y, float z )
{
std::string eventName = "onOutsideRange";
std::string objName = Event::getEventName( eventId );
@@ -200,7 +208,8 @@ bool Core::Scripting::ScriptManager::onOutsideRange( Entity::PlayerPtr pPlayer,
pPlayer->eventStart( pPlayer->getId(), eventId, Event::Event::OutsideRange, 1, param1 );
- auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, uint32_t, Entity::Player&, uint32_t, float, float, float ) > >( eventName );
+ auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, uint32_t, Entity::Player&, uint32_t,
+ float, float, float ) > >( eventName );
fn( obj, eventId, *pPlayer, param1, x, y, z );
pPlayer->checkEvent( eventId );
@@ -227,7 +236,8 @@ bool Core::Scripting::ScriptManager::onEmote( Core::Entity::PlayerPtr pPlayer, u
pPlayer->eventStart( actorId, eventId, Event::Event::Emote, 0, emoteId );
- auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, uint32_t, Entity::Player&, uint64_t, uint8_t ) > >( eventName );
+ auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, uint32_t, Entity::Player&,
+ uint64_t, uint8_t ) > >( eventName );
fn( obj, eventId, *pPlayer, actorId, emoteId );
pPlayer->checkEvent( eventId );
@@ -250,17 +260,18 @@ bool Core::Scripting::ScriptManager::onEmote( Core::Entity::PlayerPtr pPlayer, u
return true;
}
-bool Core::Scripting::ScriptManager::onEventHandlerReturn( Core::Entity::PlayerPtr pPlayer, uint32_t eventId, uint16_t subEvent,
- uint16_t param1, uint16_t param2, uint16_t param3 )
+bool Core::Scripting::ScriptManager::onEventHandlerReturn( Core::Entity::PlayerPtr pPlayer, uint32_t eventId,
+ uint16_t subEvent, uint16_t param1, uint16_t param2,
+ uint16_t param3 )
{
- pPlayer->sendDebug("eventId: " +
- std::to_string( eventId ) +
- " ( 0x" + boost::str( boost::format( "%|08X|" ) % ( uint64_t ) ( eventId & 0xFFFFFFF ) ) + " ) " +
- " scene: " + std::to_string( subEvent ) +
- " p1: " + std::to_string( param1 ) +
- " p2: " + std::to_string( param2 ) +
- " p3: " + std::to_string( param3 ) );
+ pPlayer->sendDebug( "eventId: " +
+ std::to_string( eventId ) +
+ " ( 0x" + boost::str( boost::format( "%|08X|" ) % ( uint64_t ) ( eventId & 0xFFFFFFF ) ) + " ) " +
+ " scene: " + std::to_string( subEvent ) +
+ " p1: " + std::to_string( param1 ) +
+ " p2: " + std::to_string( param2 ) +
+ " p3: " + std::to_string( param3 ) );
try
{
@@ -300,7 +311,8 @@ bool Core::Scripting::ScriptManager::onEventHandlerTradeReturn( Core::Entity::Pl
try
{
- auto fn = m_pChaiHandler->eval< std::function< void( Entity::Player&, uint32_t, uint16_t, uint16_t, uint32_t ) > >( eventName );
+ auto fn = m_pChaiHandler->eval< std::function< void( Entity::Player&, uint32_t,
+ uint16_t, uint16_t, uint32_t ) > >( eventName );
fn( *pPlayer, eventId, subEvent, param, catalogId );
}
catch( ... )
@@ -312,7 +324,7 @@ bool Core::Scripting::ScriptManager::onEventHandlerTradeReturn( Core::Entity::Pl
}
bool Core::Scripting::ScriptManager::onEventItem( Entity::PlayerPtr pPlayer, uint32_t eventItemId,
- uint32_t eventId, uint32_t castTime, uint64_t targetId )
+ uint32_t eventId, uint32_t castTime, uint64_t targetId )
{
std::string eventName = "onEventItem";
std::string objName = Event::getEventName( eventId );
@@ -325,7 +337,8 @@ bool Core::Scripting::ScriptManager::onEventItem( Entity::PlayerPtr pPlayer, uin
pPlayer->eventStart( targetId, eventId, Event::Event::Item, 0, 0 );
- auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, uint32_t, Entity::Player&, uint32_t, uint32_t, uint64_t ) > >( eventName );
+ auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, uint32_t, Entity::Player&,
+ uint32_t, uint32_t, uint64_t ) > >( eventName );
fn( obj, eventId, *pPlayer, eventItemId, castTime, targetId );
}
catch( std::exception& e )
@@ -384,7 +397,8 @@ bool Core::Scripting::ScriptManager::onCastFinish( Entity::PlayerPtr pPlayer, En
std::string objName = "skillDef_" + std::to_string( actionId );
pPlayer->sendDebug( "Calling: " + objName + "." + eventName );
- auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, Entity::Player&, Entity::Actor& ) > >( eventName );
+ auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, Entity::Player&,
+ Entity::Actor& ) > >( eventName );
fn( obj, *pPlayer, *pTarget );
}
catch( std::exception& e )
@@ -431,7 +445,8 @@ bool Core::Scripting::ScriptManager::onStatusTick( Entity::ActorPtr pActor, Core
if( pActor->isPlayer() )
pActor->getAsPlayer()->sendDebug( "Calling: " + objName + "." + eventName );
- auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, Entity::Actor&, Core::StatusEffect::StatusEffect& ) > >( eventName );
+ auto fn = m_pChaiHandler->eval< std::function< void( chaiscript::Boxed_Value &, Entity::Actor&,
+ Core::StatusEffect::StatusEffect& ) > >( eventName );
fn( obj, *pActor, effect );
}
catch( std::exception& e )
diff --git a/src/servers/Server_Zone/Script/ScriptManagerInit.cpp b/src/servers/Server_Zone/Script/ScriptManagerInit.cpp
index 06d290cb..71b891cc 100644
--- a/src/servers/Server_Zone/Script/ScriptManagerInit.cpp
+++ b/src/servers/Server_Zone/Script/ScriptManagerInit.cpp
@@ -1,8 +1,11 @@
#include
+#include
#include
#include
+#include "src/servers/Server_Zone/ServerZone.h"
+
#include "src/servers/Server_Zone/Script/ScriptManager.h"
#include "src/servers/Server_Zone/Zone/Zone.h"
@@ -17,6 +20,7 @@
#include
extern Core::Logger g_log;
+extern Core::ServerZone g_serverZone;
int Core::Scripting::ScriptManager::init()
{
@@ -169,8 +173,7 @@ int Core::Scripting::ScriptManager::init()
std::set< std::string > chaiFiles;
- g_log.info( "ScriptEngine: Loading Scripts..." );
- loadDir( "../scripts/chai", chaiFiles );
+ loadDir( g_serverZone.getConfig()->getValue< std::string >( "Settings.General.ScriptPath", "../scripts/chai" ), chaiFiles );
uint16_t scriptCount = 0;
uint16_t errorCount = 0;
diff --git a/src/servers/Server_Zone/ServerZone.cpp b/src/servers/Server_Zone/ServerZone.cpp
index d87b711b..67a47dd9 100644
--- a/src/servers/Server_Zone/ServerZone.cpp
+++ b/src/servers/Server_Zone/ServerZone.cpp
@@ -129,6 +129,10 @@ bool Core::ServerZone::loadSettings( int32_t argc, char* argv[] )
{
m_pConfig->setValue< std::string >( "Settings.General.DataPath", val );
}
+ else if( arg == "s" || arg == "scriptpath" )
+ {
+ m_pConfig->setValue< std::string >( "Settings.General.ScriptPath", val );
+ }
else if( arg == "h" || arg == "dbhost" )
{
m_pConfig->setValue< std::string >( "Settings.General.Mysql.Host", val );
@@ -288,7 +292,7 @@ void Core::ServerZone::mainLoop()
auto pPlayer = it->second->getPlayer();
// remove session of players marked for removel ( logoff / kick )
- if( pPlayer->isMarkedForRemoval() && diff > 1 )
+ if( pPlayer->isMarkedForRemoval() && diff > 5 )
{
it->second->close();
// if( it->second.unique() )
diff --git a/src/servers/Server_Zone/Zone/Zone.cpp b/src/servers/Server_Zone/Zone/Zone.cpp
index 7f905e15..c6de4ad5 100644
--- a/src/servers/Server_Zone/Zone/Zone.cpp
+++ b/src/servers/Server_Zone/Zone/Zone.cpp
@@ -46,7 +46,7 @@ Zone::Zone()
, m_layoutId( 0 )
, m_bPrivate( false )
, m_type( Common::RegionType::normal )
- , m_currentWeather( static_cast( Common::Weather::FairSkies ) )
+ , m_currentWeather( static_cast< uint8_t >( Common::Weather::FairSkies ) )
, m_weatherOverride( 0 )
, m_lastMobUpdate( 0 )
{
@@ -54,7 +54,7 @@ Zone::Zone()
Zone::Zone( uint16_t zoneId, uint32_t layoutId, std::string name, std::string interName, bool bPrivate = false )
: m_type( Common::RegionType::normal )
- , m_currentWeather( static_cast( Common::Weather::FairSkies ) )
+ , m_currentWeather( static_cast< uint8_t >( Common::Weather::FairSkies ) )
{
m_layoutId = layoutId;
@@ -197,8 +197,8 @@ void Zone::loadCellCache()
for( auto entry : cache )
{
// get cell position
- uint32_t cellX = CellHandler::getPosX( entry->getPos().x );
- uint32_t cellY = CellHandler::getPosY( entry->getPos().z );
+ uint32_t cellX = CellHandler< ZoneMgr >::getPosX( entry->getPos().x );
+ uint32_t cellY = CellHandler< ZoneMgr >::getPosY( entry->getPos().z );
// find the right cell, create it if not existing yet
if( m_pCellCache[cellX] == nullptr )
@@ -314,7 +314,6 @@ void Zone::pushActor( Entity::ActorPtr pActor )
void Zone::removeActor( Entity::ActorPtr pActor )
{
-
if( pActor->m_pCell )
{
pActor->m_pCell->removeActor( pActor );
diff --git a/src/servers/Server_Zone/Zone/ZoneMgr.cpp b/src/servers/Server_Zone/Zone/ZoneMgr.cpp
index 4c4e0894..541955f3 100644
--- a/src/servers/Server_Zone/Zone/ZoneMgr.cpp
+++ b/src/servers/Server_Zone/Zone/ZoneMgr.cpp
@@ -14,13 +14,9 @@ extern Core::Data::ExdData g_exdData;
namespace Core {
- ZoneMgr::ZoneMgr()
- {
- }
+ ZoneMgr::ZoneMgr() = default;
- ZoneMgr::~ZoneMgr()
- {
- }
+ ZoneMgr::~ZoneMgr() = default;
void ZoneMgr::loadZonePositionMap()
{
diff --git a/src/tools/exd_struct_gen/ExdData.cpp.tmpl b/src/tools/exd_struct_gen/ExdData.cpp.tmpl
index 30496879..f63e8ce0 100644
--- a/src/tools/exd_struct_gen/ExdData.cpp.tmpl
+++ b/src/tools/exd_struct_gen/ExdData.cpp.tmpl
@@ -20,6 +20,18 @@ xiv::exd::Exd Core::Data::ExdDataGenerated::setupDatAccess( const std::string& n
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();
+
+ for( auto row : pDataRows )
+ {
+ uint32_t id = row.first;
+ outIdList.insert( id );
+ }
+}
+
bool Core::Data::ExdDataGenerated::init( const std::string& path )
{
try
diff --git a/src/tools/exd_struct_gen/ExdData.h.tmpl b/src/tools/exd_struct_gen/ExdData.h.tmpl
index c1758c2e..486d04a6 100644
--- a/src/tools/exd_struct_gen/ExdData.h.tmpl
+++ b/src/tools/exd_struct_gen/ExdData.h.tmpl
@@ -10,6 +10,7 @@
#include
#include
#include
+#include
namespace Core {
namespace Data {
@@ -36,6 +37,8 @@ STRUCTS
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;
@@ -43,6 +46,10 @@ DATACCESS
DIRECTGETTERS
+IDLISTS
+
+IDLISTGETTERS
+
};
}
diff --git a/src/tools/exd_struct_gen/ex.json b/src/tools/exd_struct_gen/ex.json
index 51670dd1..e8707623 100644
--- a/src/tools/exd_struct_gen/ex.json
+++ b/src/tools/exd_struct_gen/ex.json
@@ -1,5 +1,5 @@
{
- "version": "2017.10.05.0000.0000",
+ "version": "2017.11.15.0000.0000",
"sheets": [
{
"sheet": "Achievement",
@@ -189,7 +189,7 @@
"index": 30,
"name": "Cost{Type}"
},
- {
+ {
"index": 31,
"name": "Cost"
},
@@ -2868,7 +2868,7 @@
},
{
"sheet": "DeepDungeonItem",
- "defaultcolumn": "Name",
+ "defaultColumn": "Name",
"definitions": [
{
"name": "Icon",
@@ -2877,7 +2877,7 @@
}
},
{
- "index": 2,
+ "index": 1,
"name": "Singular"
},
{
@@ -3476,6 +3476,42 @@
}
]
},
+ {
+ "sheet": "EquipRaceCategory",
+ "definitions": [
+ {
+ "name": "Hyur"
+ },
+ {
+ "index": 1,
+ "name": "Elezen"
+ },
+ {
+ "index": 2,
+ "name": "Lalafell"
+ },
+ {
+ "index": 3,
+ "name": "Miqo'te"
+ },
+ {
+ "index": 4,
+ "name": "Roegadyn"
+ },
+ {
+ "index": 5,
+ "name": "Au Ra"
+ },
+ {
+ "index": 6,
+ "name": "Male"
+ },
+ {
+ "index": 7,
+ "name": "Female"
+ }
+ ]
+ },
{
"sheet": "EquipSlotCategory",
"definitions": [
@@ -4500,6 +4536,26 @@
}
]
},
+ {
+ "sheet": "GCScripShopCategory",
+ "definitions": [
+ {
+ "name": "GrandCompany",
+ "converter": {
+ "type": "link",
+ "target": "GrandCompany"
+ }
+ },
+ {
+ "index": 1,
+ "name": "Tier"
+ },
+ {
+ "index": 2,
+ "name": "SubCategory"
+ }
+ ]
+ },
{
"sheet": "GCScripShopItem",
"defaultColumn": "Item",
@@ -4513,11 +4569,19 @@
},
{
"index": 1,
- "name": "Required{Rank}"
+ "name": "Required{GrandCompanyRank}",
+ "converter": {
+ "type": "link",
+ "target": "GrandCompanyRank"
+ }
},
{
"index": 2,
"name": "Cost{GCSeals}"
+ },
+ {
+ "index": 3,
+ "name": "SortKey"
}
]
},
@@ -6211,6 +6275,26 @@
}
]
},
+ {
+ "sheet": "MasterpieceSupplyMultiplier",
+ "definitions": [
+ {
+ "type": "repeat",
+ "count": 2,
+ "definition": {
+ "name": "XpMultiplier"
+ }
+ },
+ {
+ "index": 4,
+ "type": "repeat",
+ "count": 2,
+ "definition": {
+ "name": "CurrencyMultiplier"
+ }
+ }
+ ]
+ },
{
"sheet": "Materia",
"defaultColumn": "Item[0]",
@@ -7935,7 +8019,7 @@
]
},
{
- "sheet": "Salvage",
+ "sheet": "Salvage",
"defaultColumn": "OptimalSkill",
"definitions": [
{
diff --git a/src/tools/exd_struct_gen/main.cpp b/src/tools/exd_struct_gen/main.cpp
index 507c7329..a1e51ccd 100644
--- a/src/tools/exd_struct_gen/main.cpp
+++ b/src/tools/exd_struct_gen/main.cpp
@@ -31,8 +31,8 @@ Core::Logger g_log;
Core::Data::ExdData g_exdData;
bool skipUnmapped = true;
-const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" );
-//const std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv" );
+//const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" );
+const std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv" );
std::map< uint8_t, std::string > g_typeMap;
@@ -41,9 +41,25 @@ std::string generateDatAccessDecl( const std::string &exd )
return " xiv::exd::Exd m_" + exd + "Dat;\n";
}
+std::string generateIdListDecl( const std::string &exd )
+{
+ return " std::set< uint32_t > m_" + exd + "IdList;\n";
+}
+
std::string generateDirectGetters( const std::string& exd )
{
- return " boost::shared_ptr< " + exd + " > get" + exd + "( uint32_t " + exd + "Id );";
+ return " boost::shared_ptr< " + exd + " > get" + exd + "( uint32_t " + exd + "Id );\n";
+}
+
+std::string generateIdListGetter( const std::string &exd )
+{
+ std::string IdListGetter = "const std::set< uint32_t >& get" + exd + "IdList()\n"
+ "{\n"
+ " if( m_" + exd + "IdList.size() == 0 )\n"
+ " loadIdList( m_" + exd + "Dat, m_" + exd + "IdList );\n"
+ " return m_" + exd + "IdList;\n"
+ "}\n";
+ return IdListGetter;
}
std::string generateSetDatAccessCall( const std::string &exd )
@@ -288,14 +304,18 @@ int main()
g_log.fatal( "Error setting up EXD data " );
return 0;
}
+ g_log.info( "Generating structs, this may take several minutes..." );
+ g_log.info( "Go grab a coffee..." );
std::string structDefs;
+ std::string idListsDecl;
std::string dataDecl;
std::string getterDecl;
std::string datAccCall;
std::string getterDef;
std::string constructorDecl;
std::string forwards;
+ std::string idListGetters;
//BOOST_FOREACH( boost::property_tree::ptree::value_type &sheet, m_propTree.get_child( "sheets" ) )
//{
@@ -310,10 +330,12 @@ int main()
forwards += "struct " + name +";\n";
structDefs += generateStruct( name );
dataDecl += generateDatAccessDecl( name );
+ idListsDecl += generateIdListDecl( name );
getterDecl += generateDirectGetters( name );
datAccCall += generateSetDatAccessCall( name );
getterDef += generateDirectGetterDef( name );
constructorDecl += generateConstructorsDecl( name );
+ idListGetters += generateIdListGetter( name );
}
// for all sheets in the json i guess....
@@ -322,7 +344,10 @@ int main()
result = std::regex_replace( exdH, std::regex( "\\FORWARDS" ), forwards );
result = std::regex_replace( result, std::regex( "\\STRUCTS" ), structDefs );
result = std::regex_replace( result, std::regex( "\\DATACCESS" ), dataDecl );
+ result = std::regex_replace( result, std::regex( "\\IDLISTS" ), idListsDecl );
result = std::regex_replace( result, std::regex( "\\DIRECTGETTERS" ), getterDecl );
+ result = std::regex_replace( result, std::regex( "\\IDLISTGETTERS" ), idListGetters );
+
// g_log.info( result );
diff --git a/src/tools/exd_struct_test/ExdDataGenerated.cpp b/src/tools/exd_struct_test/ExdDataGenerated.cpp
index 0cdfe81f..f8d711b8 100644
--- a/src/tools/exd_struct_test/ExdDataGenerated.cpp
+++ b/src/tools/exd_struct_test/ExdDataGenerated.cpp
@@ -16,6 +16,15 @@
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 );
}
@@ -81,6 +90,10 @@
{
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 )
@@ -214,6 +227,11 @@
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 )
@@ -276,6 +294,20 @@
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 ) );
}
Core::Data::AquariumFish::AquariumFish( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -314,12 +346,60 @@
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 ) );
}
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 ) );
}
Core::Data::BeastReputationRank::BeastReputationRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -466,6 +546,70 @@
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 ) );
}
Core::Data::ChainBonus::ChainBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -488,6 +632,48 @@
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, 2283 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2284 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2285 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2286 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2287 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2288 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2289 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2290 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2291 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2292 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2293 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2294 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2295 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2296 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2297 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2298 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2299 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2300 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2301 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2302 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2303 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2304 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2305 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2306 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2307 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2308 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2309 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2310 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2311 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2312 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2313 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2314 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2315 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2316 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2317 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2318 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2319 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2320 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2321 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2322 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2323 ) );
+ facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 2324 ) );
}
Core::Data::ChocoboRace::ChocoboRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -688,6 +874,9 @@
{
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 )
@@ -702,6 +891,14 @@
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 )
@@ -720,6 +917,30 @@
{
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 )
@@ -835,6 +1056,66 @@
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 );
}
@@ -893,7 +1174,7 @@
{
auto row = exdData->m_DeepDungeonItemDat.get_row( row_id );
icon = exdData->getField< uint32_t >( row, 0 );
- singular = exdData->getField< int8_t >( row, 2 );
+ 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 );
@@ -911,6 +1192,12 @@
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 ) );
}
Core::Data::DeliveryQuest::DeliveryQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -954,6 +1241,31 @@
{
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 )
@@ -982,6 +1294,38 @@
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 );
@@ -1053,6 +1397,19 @@
data = exdData->getField< uint32_t >( row, 9 );
}
+ 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 );
+ }
+
Core::Data::EquipSlotCategory::EquipSlotCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_EquipSlotCategoryDat.get_row( row_id );
@@ -1082,6 +1439,22 @@
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 ) );
}
Core::Data::EventIconType::EventIconType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -1129,6 +1502,9 @@
name = exdData->getField< std::string >( row, 26 );
description = exdData->getField< std::string >( row, 27 );
objective = exdData->getField< std::string >( row, 28 );
+ statusText.push_back( exdData->getField< std::string >( row, 29 ) );
+ statusText.push_back( exdData->getField< std::string >( row, 30 ) );
+ statusText.push_back( exdData->getField< std::string >( row, 31 ) );
}
Core::Data::FCActivity::FCActivity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -1196,6 +1572,16 @@
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 );
}
@@ -1253,12 +1639,114 @@
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 ) );
}
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 );
@@ -1269,6 +1757,14 @@
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 );
}
@@ -1354,12 +1850,21 @@
description = exdData->getField< std::string >( row, 5 );
}
+ 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 );
+ }
+
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 );
- requiredRank = exdData->getField< int32_t >( row, 1 );
+ 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 )
@@ -1447,6 +1952,8 @@
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 ) );
}
Core::Data::GuildOrderGuide::GuildOrderGuide( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -1599,6 +2106,24 @@
{
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 )
@@ -1831,10 +2356,39 @@
rewardCurrency = exdData->getField< uint16_t >( row, 2 );
}
+ 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 ) );
+ }
+
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 ) );
}
Core::Data::MinionRace::MinionRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -1878,6 +2432,14 @@
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 );
}
@@ -1903,6 +2465,12 @@
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 ) );
}
Core::Data::NpcEquip::NpcEquip( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -2020,10 +2588,15 @@
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 );
@@ -2034,13 +2607,330 @@
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, 49 ) );
+ 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 ) );
+ scriptArg.push_back( exdData->getField< uint32_t >( 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 ) );
+ level.push_back( exdData->getField< uint32_t >( row, 1221 ) );
+ 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 ) );
classJobRequired = exdData->getField< uint8_t >( row, 1437 );
expFactor = exdData->getField< uint16_t >( row, 1439 );
gilReward = exdData->getField< uint32_t >( row, 1440 );
gCSeals = exdData->getField< uint16_t >( row, 1442 );
+ itemCatalyst.push_back( exdData->getField< uint8_t >( row, 1443 ) );
+ itemCatalyst.push_back( exdData->getField< uint8_t >( row, 1444 ) );
+ itemCatalyst.push_back( exdData->getField< uint8_t >( row, 1445 ) );
+ itemCountCatalyst.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 ) );
itemRewardType = exdData->getField< uint8_t >( row, 1449 );
+ itemReward0.push_back( exdData->getField< uint32_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 ) );
+ itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1457 ) );
+ 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 ) );
+ stainReward0.push_back( exdData->getField< uint8_t >( row, 1464 ) );
+ 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 ) );
+ itemReward1.push_back( exdData->getField< uint32_t >( row, 1471 ) );
+ 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 ) );
+ itemCountReward1.push_back( exdData->getField< uint8_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 ) );
+ isHQReward1.push_back( exdData->getField< bool >( 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 ) );
+ stainReward1.push_back( exdData->getField< uint8_t >( 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 ) );
emoteReward = exdData->getField< uint8_t >( row, 1491 );
actionReward = exdData->getField< uint16_t >( row, 1492 );
+ generalActionReward.push_back( exdData->getField< uint8_t >( row, 1493 ) );
+ generalActionReward.push_back( exdData->getField< uint8_t >( row, 1494 ) );
otherReward = exdData->getField< uint8_t >( row, 1496 );
instanceContentUnlock = exdData->getField< uint32_t >( row, 1499 );
tomestoneReward = exdData->getField< uint8_t >( row, 1501 );
@@ -2080,6 +2970,8 @@
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 )
@@ -2150,6 +3042,166 @@
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 ) );
}
Core::Data::Relic::Relic( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -2190,6 +3242,12 @@
{
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 )
@@ -2225,6 +3283,12 @@
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 ) );
}
Core::Data::RetainerTaskRandom::RetainerTaskRandom( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -2246,6 +3310,18 @@
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 );
}
@@ -2311,6 +3387,66 @@
{
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 );
}
@@ -2354,6 +3490,37 @@
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 ) );
}
Core::Data::TerritoryType::TerritoryType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )
@@ -2454,9 +3621,24 @@
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 );
@@ -2614,6 +3796,18 @@ xiv::exd::Exd Core::Data::ExdDataGenerated::setupDatAccess( const std::string& n
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();
+
+ for( auto row : pDataRows )
+ {
+ uint32_t id = row.first;
+ outIdList.insert( id );
+ }
+}
+
bool Core::Data::ExdDataGenerated::init( const std::string& path )
{
try
@@ -2621,7 +3815,297 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path )
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_ActionCategoryDat = setupDatAccess( "ActionCategory", xiv::exd::Language::en ); m_ActionComboRouteDat = setupDatAccess( "ActionComboRoute", xiv::exd::Language::en ); m_ActionIndirectionDat = setupDatAccess( "ActionIndirection", xiv::exd::Language::none ); m_ActionProcStatusDat = setupDatAccess( "ActionProcStatus", xiv::exd::Language::none ); m_ActionTimelineDat = setupDatAccess( "ActionTimeline", 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_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_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_ChainBonusDat = setupDatAccess( "ChainBonus", 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_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_ContentRouletteDat = setupDatAccess( "ContentRoulette", xiv::exd::Language::en ); 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_ENpcBaseDat = setupDatAccess( "ENpcBase", xiv::exd::Language::none ); m_ENpcResidentDat = setupDatAccess( "ENpcResident", xiv::exd::Language::en ); m_EObjDat = setupDatAccess( "EObj", xiv::exd::Language::none ); m_EquipSlotCategoryDat = setupDatAccess( "EquipSlotCategory", 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_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_FCReputationDat = setupDatAccess( "FCReputation", xiv::exd::Language::en ); m_FCRightsDat = setupDatAccess( "FCRights", 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_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_InstanceContentTypeDat = setupDatAccess( "InstanceContentType", xiv::exd::Language::none ); 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_MapSymbolDat = setupDatAccess( "MapSymbol", xiv::exd::Language::none ); m_MasterpieceSupplyDutyDat = setupDatAccess( "MasterpieceSupplyDuty", 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_NpcEquipDat = setupDatAccess( "NpcEquip", xiv::exd::Language::none ); m_OmenDat = setupDatAccess( "Omen", xiv::exd::Language::none ); m_OnlineStatusDat = setupDatAccess( "OnlineStatus", xiv::exd::Language::en ); m_OrchestrionDat = setupDatAccess( "Orchestrion", xiv::exd::Language::en ); m_OrchestrionPathDat = setupDatAccess( "OrchestrionPath", xiv::exd::Language::none ); m_ParamGrowDat = setupDatAccess( "ParamGrow", xiv::exd::Language::none ); 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_QuestDat = setupDatAccess( "Quest", xiv::exd::Language::en ); m_QuestRewardOtherDat = setupDatAccess( "QuestRewardOther", 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_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_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_ScreenImageDat = setupDatAccess( "ScreenImage", xiv::exd::Language::none ); m_SecretRecipeBookDat = setupDatAccess( "SecretRecipeBook", xiv::exd::Language::en ); 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_StatusDat = setupDatAccess( "Status", xiv::exd::Language::en ); m_StoryDat = setupDatAccess( "Story", 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_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_WarpDat = setupDatAccess( "Warp", xiv::exd::Language::en ); 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_WeeklyBingoOrderDataDat = setupDatAccess( "WeeklyBingoOrderData", xiv::exd::Language::none ); m_WeeklyBingoRewardDataDat = setupDatAccess( "WeeklyBingoRewardData", xiv::exd::Language::none ); m_WeeklyBingoTextDat = setupDatAccess( "WeeklyBingoText", xiv::exd::Language::en ); m_WorldDCGroupTypeDat = setupDatAccess( "WorldDCGroupType", 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_ActionCategoryDat = setupDatAccess( "ActionCategory", xiv::exd::Language::en );
+ m_ActionComboRouteDat = setupDatAccess( "ActionComboRoute", xiv::exd::Language::en );
+ m_ActionIndirectionDat = setupDatAccess( "ActionIndirection", xiv::exd::Language::none );
+ m_ActionProcStatusDat = setupDatAccess( "ActionProcStatus", xiv::exd::Language::none );
+ m_ActionTimelineDat = setupDatAccess( "ActionTimeline", 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_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_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_ChainBonusDat = setupDatAccess( "ChainBonus", 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_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_ContentRouletteDat = setupDatAccess( "ContentRoulette", xiv::exd::Language::en );
+ 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_ENpcBaseDat = setupDatAccess( "ENpcBase", xiv::exd::Language::none );
+ m_ENpcResidentDat = setupDatAccess( "ENpcResident", xiv::exd::Language::en );
+ m_EObjDat = setupDatAccess( "EObj", xiv::exd::Language::none );
+ m_EquipRaceCategoryDat = setupDatAccess( "EquipRaceCategory", xiv::exd::Language::none );
+ m_EquipSlotCategoryDat = setupDatAccess( "EquipSlotCategory", 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_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_FCReputationDat = setupDatAccess( "FCReputation", xiv::exd::Language::en );
+ m_FCRightsDat = setupDatAccess( "FCRights", 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_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_InstanceContentTypeDat = setupDatAccess( "InstanceContentType", xiv::exd::Language::none );
+ 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_MapSymbolDat = setupDatAccess( "MapSymbol", xiv::exd::Language::none );
+ 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_NpcEquipDat = setupDatAccess( "NpcEquip", xiv::exd::Language::none );
+ m_OmenDat = setupDatAccess( "Omen", xiv::exd::Language::none );
+ m_OnlineStatusDat = setupDatAccess( "OnlineStatus", xiv::exd::Language::en );
+ m_OrchestrionDat = setupDatAccess( "Orchestrion", xiv::exd::Language::en );
+ m_OrchestrionPathDat = setupDatAccess( "OrchestrionPath", xiv::exd::Language::none );
+ m_ParamGrowDat = setupDatAccess( "ParamGrow", xiv::exd::Language::none );
+ 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_QuestDat = setupDatAccess( "Quest", xiv::exd::Language::en );
+ m_QuestRewardOtherDat = setupDatAccess( "QuestRewardOther", 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_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_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_ScreenImageDat = setupDatAccess( "ScreenImage", xiv::exd::Language::none );
+ m_SecretRecipeBookDat = setupDatAccess( "SecretRecipeBook", xiv::exd::Language::en );
+ 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_StatusDat = setupDatAccess( "Status", xiv::exd::Language::en );
+ m_StoryDat = setupDatAccess( "Story", 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_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_WarpDat = setupDatAccess( "Warp", xiv::exd::Language::en );
+ 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_WeeklyBingoOrderDataDat = setupDatAccess( "WeeklyBingoOrderData", xiv::exd::Language::none );
+ m_WeeklyBingoRewardDataDat = setupDatAccess( "WeeklyBingoRewardData", xiv::exd::Language::none );
+ m_WeeklyBingoTextDat = setupDatAccess( "WeeklyBingoText", xiv::exd::Language::en );
+ m_WorldDCGroupTypeDat = setupDatAccess( "WorldDCGroupType", xiv::exd::Language::none );
+
}
catch( std::runtime_error )
{
@@ -4343,6 +5827,21 @@ boost::shared_ptr< Core::Data::EObj >
}
return nullptr;
}
+boost::shared_ptr< Core::Data::EquipRaceCategory >
+ Core::Data::ExdDataGenerated::getEquipRaceCategory( uint32_t EquipRaceCategoryId )
+{
+ try
+ {
+ auto row = m_EquipRaceCategoryDat.get_row( EquipRaceCategoryId );
+ auto info = boost::make_shared< EquipRaceCategory >( EquipRaceCategoryId, this );
+ return info;
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
+ return nullptr;
+}
boost::shared_ptr< Core::Data::EquipSlotCategory >
Core::Data::ExdDataGenerated::getEquipSlotCategory( uint32_t EquipSlotCategoryId )
{
@@ -4898,6 +6397,21 @@ boost::shared_ptr< Core::Data::GcArmyTraining >
}
return nullptr;
}
+boost::shared_ptr< Core::Data::GCScripShopCategory >
+ Core::Data::ExdDataGenerated::getGCScripShopCategory( uint32_t GCScripShopCategoryId )
+{
+ try
+ {
+ auto row = m_GCScripShopCategoryDat.get_row( GCScripShopCategoryId );
+ auto info = boost::make_shared< GCScripShopCategory >( GCScripShopCategoryId, this );
+ return info;
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
+ return nullptr;
+}
boost::shared_ptr< Core::Data::GCScripShopItem >
Core::Data::ExdDataGenerated::getGCScripShopItem( uint32_t GCScripShopItemId )
{
@@ -5663,6 +7177,21 @@ boost::shared_ptr< Core::Data::MasterpieceSupplyDuty >
}
return nullptr;
}
+boost::shared_ptr< Core::Data::MasterpieceSupplyMultiplier >
+ Core::Data::ExdDataGenerated::getMasterpieceSupplyMultiplier( uint32_t MasterpieceSupplyMultiplierId )
+{
+ try
+ {
+ auto row = m_MasterpieceSupplyMultiplierDat.get_row( MasterpieceSupplyMultiplierId );
+ auto info = boost::make_shared< MasterpieceSupplyMultiplier >( MasterpieceSupplyMultiplierId, this );
+ return info;
+ }
+ catch( ... )
+ {
+ return nullptr;
+ }
+ return nullptr;
+}
boost::shared_ptr< Core::Data::Materia >
Core::Data::ExdDataGenerated::getMateria( uint32_t MateriaId )
{
diff --git a/src/tools/exd_struct_test/ExdDataGenerated.h b/src/tools/exd_struct_test/ExdDataGenerated.h
index d4a3ff7d..24b1149d 100644
--- a/src/tools/exd_struct_test/ExdDataGenerated.h
+++ b/src/tools/exd_struct_test/ExdDataGenerated.h
@@ -10,12 +10,305 @@
#include
#include
#include
+#include
namespace Core {
namespace Data {
class ExdDataGenerated;
+struct Achievement;
+struct AchievementCategory;
+struct AchievementKind;
+struct Action;
+struct ActionCategory;
+struct ActionComboRoute;
+struct ActionIndirection;
+struct ActionProcStatus;
+struct ActionTimeline;
+struct ActionTransient;
+struct Addon;
+struct Adventure;
+struct AdventureExPhase;
+struct AetherCurrent;
+struct AetherialWheel;
+struct Aetheryte;
+struct AirshipExplorationLevel;
+struct AirshipExplorationLog;
+struct AirshipExplorationParamType;
+struct AirshipExplorationPart;
+struct AirshipExplorationPoint;
+struct AnimaWeapon5;
+struct AnimaWeapon5Param;
+struct AnimaWeapon5PatternGroup;
+struct AnimaWeapon5SpiritTalk;
+struct AnimaWeapon5SpiritTalkParam;
+struct AnimaWeapon5TradeItem;
+struct AnimaWeaponFUITalk;
+struct AnimaWeaponFUITalkParam;
+struct AnimaWeaponIcon;
+struct AnimaWeaponItem;
+struct AquariumFish;
+struct AquariumWater;
+struct AttackType;
+struct Balloon;
+struct BaseParam;
+struct BattleLeve;
+struct BeastRankBonus;
+struct BeastReputationRank;
+struct BeastTribe;
+struct Behavior;
+struct BGM;
+struct BNpcAnnounceIcon;
+struct BNpcBase;
+struct BNpcCustomize;
+struct BNpcName;
+struct BuddyAction;
+struct BuddyEquip;
+struct BuddyItem;
+struct BuddyRank;
+struct BuddySkill;
+struct Cabinet;
+struct CabinetCategory;
+struct Calendar;
+struct ChainBonus;
+struct CharaMakeCustomize;
+struct CharaMakeType;
+struct ChocoboRace;
+struct ChocoboRaceAbility;
+struct ChocoboRaceAbilityType;
+struct ChocoboRaceItem;
+struct ChocoboRaceRank;
+struct ChocoboRaceStatus;
+struct ChocoboRaceTerritory;
+struct ChocoboTaxiStand;
+struct ClassJob;
+struct ClassJobCategory;
+struct Companion;
+struct CompanionMove;
+struct CompanionTransient;
+struct CompanyAction;
+struct CompanyCraftDraft;
+struct CompanyCraftDraftCategory;
+struct CompanyCraftManufactoryState;
+struct CompanyCraftPart;
+struct CompanyCraftProcess;
+struct CompanyCraftSequence;
+struct CompanyCraftSupplyItem;
+struct CompanyCraftType;
+struct CompleteJournal;
+struct CompleteJournalCategory;
+struct ContentExAction;
+struct ContentFinderCondition;
+struct ContentFinderConditionTransient;
+struct ContentMemberType;
+struct ContentRoulette;
+struct ContentType;
+struct CraftAction;
+struct CraftLeve;
+struct CraftType;
+struct Currency;
+struct CustomTalk;
+struct Cutscene;
+struct CutScreenImage;
+struct DailySupplyItem;
+struct DeepDungeonBan;
+struct DeepDungeonDanger;
+struct DeepDungeonEquipment;
+struct DeepDungeonFloorEffectUI;
+struct DeepDungeonItem;
+struct DeepDungeonStatus;
+struct DefaultTalk;
+struct DeliveryQuest;
+struct DisposalShop;
+struct DisposalShopFilterType;
+struct DisposalShopItem;
+struct DpsChallenge;
+struct DpsChallengeOfficer;
+struct DpsChallengeTransient;
+struct Emote;
+struct EmoteCategory;
+struct ENpcBase;
+struct ENpcResident;
+struct EObj;
+struct EquipRaceCategory;
+struct EquipSlotCategory;
+struct EventAction;
+struct EventIconPriority;
+struct EventIconType;
+struct EventItem;
+struct EventItemHelp;
+struct ExVersion;
+struct Fate;
+struct FCActivity;
+struct FCAuthority;
+struct FCAuthorityCategory;
+struct FCChestName;
+struct FccShop;
+struct FCHierarchy;
+struct FCReputation;
+struct FCRights;
+struct FishingSpot;
+struct FishParameter;
+struct GardeningSeed;
+struct GatheringCondition;
+struct GatheringExp;
+struct GatheringItem;
+struct GatheringItemLevelConvertTable;
+struct GatheringItemPoint;
+struct GatheringNotebookList;
+struct GatheringPoint;
+struct GatheringPointBase;
+struct GatheringPointBonus;
+struct GatheringPointBonusType;
+struct GatheringPointName;
+struct GatheringSubCategory;
+struct GatheringType;
+struct GcArmyExpedition;
+struct GcArmyExpeditionMemberBonus;
+struct GcArmyExpeditionType;
+struct GcArmyMemberGrow;
+struct GcArmyTraining;
+struct GCScripShopCategory;
+struct GCScripShopItem;
+struct GCShop;
+struct GCShopItemCategory;
+struct GCSupplyDuty;
+struct GCSupplyDutyReward;
+struct GeneralAction;
+struct GilShop;
+struct GilShopItem;
+struct GoldSaucerTextData;
+struct GrandCompany;
+struct GrandCompanyRank;
+struct GuardianDeity;
+struct GuildleveAssignment;
+struct GuildOrderGuide;
+struct GuildOrderOfficer;
+struct HouseRetainerPose;
+struct HousingFurniture;
+struct HousingYardObject;
+struct InstanceContent;
+struct InstanceContentBuff;
+struct InstanceContentTextData;
+struct InstanceContentType;
+struct Item;
+struct ItemAction;
+struct ItemFood;
+struct ItemSearchCategory;
+struct ItemSeries;
+struct ItemSpecialBonus;
+struct ItemUICategory;
+struct JournalCategory;
+struct JournalGenre;
+struct JournalSection;
+struct Leve;
+struct LeveAssignmentType;
+struct LeveClient;
+struct Level;
+struct LeveRewardItem;
+struct LeveRewardItemGroup;
+struct LeveVfx;
+struct LogFilter;
+struct LogKind;
+struct LogKindCategoryText;
+struct LogMessage;
+struct MacroIcon;
+struct MacroIconRedirectOld;
+struct MainCommand;
+struct MainCommandCategory;
+struct Map;
+struct MapMarker;
+struct MapSymbol;
+struct MasterpieceSupplyDuty;
+struct MasterpieceSupplyMultiplier;
+struct Materia;
+struct MinionRace;
+struct MinionRules;
+struct MinionSkillType;
+struct MobHuntTarget;
+struct ModelChara;
+struct MonsterNote;
+struct MonsterNoteTarget;
+struct Mount;
+struct MountAction;
+struct NpcEquip;
+struct Omen;
+struct OnlineStatus;
+struct Orchestrion;
+struct OrchestrionPath;
+struct ParamGrow;
+struct Pet;
+struct PetAction;
+struct Picture;
+struct PlaceName;
+struct Quest;
+struct QuestRewardOther;
+struct Race;
+struct RacingChocoboItem;
+struct RacingChocoboName;
+struct RacingChocoboNameCategory;
+struct RacingChocoboNameInfo;
+struct RacingChocoboParam;
+struct Recipe;
+struct RecipeElement;
+struct RecipeLevelTable;
+struct RecipeNotebookList;
+struct Relic;
+struct Relic3;
+struct RelicItem;
+struct RelicNote;
+struct RelicNoteCategory;
+struct RetainerTask;
+struct RetainerTaskNormal;
+struct RetainerTaskParameter;
+struct RetainerTaskRandom;
+struct Salvage;
+struct SatisfactionNpc;
+struct SatisfactionSupply;
+struct SatisfactionSupplyReward;
+struct ScreenImage;
+struct SecretRecipeBook;
+struct SpearfishingItem;
+struct SpearfishingNotebook;
+struct SpecialShop;
+struct SpecialShopItemCategory;
+struct Stain;
+struct Status;
+struct Story;
+struct SwitchTalk;
+struct TerritoryType;
+struct TextCommand;
+struct Title;
+struct Tomestones;
+struct TomestonesItem;
+struct TopicSelect;
+struct Town;
+struct Trait;
+struct TraitRecast;
+struct TraitTransient;
+struct Tribe;
+struct TripleTriad;
+struct TripleTriadCard;
+struct TripleTriadCardRarity;
+struct TripleTriadCardResident;
+struct TripleTriadCardType;
+struct TripleTriadCompetition;
+struct TripleTriadRule;
+struct Tutorial;
+struct TutorialDPS;
+struct TutorialHealer;
+struct TutorialTank;
+struct Warp;
+struct Weather;
+struct WeatherGroup;
+struct WeatherRate;
+struct WeeklyBingoOrderData;
+struct WeeklyBingoRewardData;
+struct WeeklyBingoText;
+struct WorldDCGroupType;
+
+
struct Achievement
{
uint8_t achievementCategory;
@@ -26,6 +319,7 @@ struct Achievement
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 );
@@ -96,6 +390,7 @@ struct ActionCategory
struct ActionComboRoute
{
std::string name;
+ std::vector< uint16_t > action;
ActionComboRoute( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -245,6 +540,7 @@ struct AnimaWeapon5
{
int32_t item;
uint8_t secondaryStatTotal;
+ std::vector< uint8_t > parameter;
AnimaWeapon5( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -316,6 +612,7 @@ struct AnimaWeaponIcon
struct AnimaWeaponItem
{
+ std::vector< uint32_t > item;
AnimaWeaponItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -360,6 +657,11 @@ struct BaseParam
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;
BattleLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -367,6 +669,7 @@ struct BattleLeve
struct BeastRankBonus
{
uint32_t item;
+ std::vector< uint8_t > itemQuantity;
BeastRankBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -529,6 +832,8 @@ struct CabinetCategory
struct Calendar
{
+ std::vector< uint8_t > month;
+ std::vector< uint8_t > day;
Calendar( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -554,6 +859,7 @@ struct CharaMakeType
int32_t race;
int32_t tribe;
int8_t gender;
+ std::vector< int32_t > facialFeatureIcon;
CharaMakeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -772,6 +1078,7 @@ struct CompanyCraftManufactoryState
struct CompanyCraftPart
{
uint8_t companyCraftType;
+ std::vector< uint16_t > companyCraftProcess;
CompanyCraftPart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -788,6 +1095,7 @@ struct CompanyCraftSequence
int32_t companyCraftDraftCategory;
int32_t companyCraftType;
int32_t companyCraftDraft;
+ std::vector< uint16_t > companyCraftPart;
CompanyCraftSequence( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -809,6 +1117,7 @@ struct CompanyCraftType
struct CompleteJournal
{
std::string name;
+ std::vector< int32_t > cutscene;
CompleteJournal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -936,6 +1245,8 @@ struct CustomTalk
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 );
@@ -1002,7 +1313,7 @@ struct DeepDungeonFloorEffectUI
struct DeepDungeonItem
{
uint32_t icon;
- int8_t singular;
+ std::string singular;
std::string plural;
std::string name;
std::string tooltip;
@@ -1022,6 +1333,8 @@ struct DeepDungeonStatus
struct DefaultTalk
{
+ std::vector< uint16_t > actionTimelinePose;
+ std::vector< std::string > text;
DefaultTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -1071,6 +1384,7 @@ struct DpsChallenge
struct DpsChallengeOfficer
{
uint32_t unlockQuest;
+ std::vector< uint16_t > challengeName;
DpsChallengeOfficer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -1103,6 +1417,7 @@ struct EmoteCategory
struct ENpcBase
{
+ std::vector< uint32_t > eNpcData;
uint8_t race;
uint8_t gender;
uint8_t bodyType;
@@ -1178,6 +1493,20 @@ struct EObj
EObj( 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;
+
+ EquipRaceCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+};
+
struct EquipSlotCategory
{
int8_t mainHand;
@@ -1208,6 +1537,7 @@ struct EventAction
struct EventIconPriority
{
+ std::vector< uint32_t > icon;
EventIconPriority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -1260,6 +1590,7 @@ struct Fate
std::string name;
std::string description;
std::string objective;
+ std::vector< std::string > statusText;
Fate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -1336,6 +1667,7 @@ struct FishingSpot
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 );
@@ -1401,6 +1733,7 @@ struct GatheringItemPoint
struct GatheringNotebookList
{
+ std::vector< int32_t > gatheringItem;
GatheringNotebookList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -1408,6 +1741,7 @@ struct GatheringNotebookList
struct GatheringPoint
{
int32_t gatheringPointBase;
+ std::vector< uint16_t > gatheringPointBonus;
uint16_t territoryType;
uint16_t placeName;
uint16_t gatheringSubCategory;
@@ -1419,6 +1753,7 @@ struct GatheringPointBase
{
int32_t gatheringType;
uint8_t gatheringLevel;
+ std::vector< int32_t > item;
bool isLimited;
GatheringPointBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
@@ -1516,11 +1851,21 @@ struct GcArmyTraining
GcArmyTraining( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
+struct GCScripShopCategory
+{
+ int8_t grandCompany;
+ int8_t tier;
+ int8_t subCategory;
+
+ GCScripShopCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+};
+
struct GCScripShopItem
{
int32_t item;
- int32_t requiredRank;
+ int32_t requiredGrandCompanyRank;
uint32_t costGCSeals;
+ uint8_t sortKey;
GCScripShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -1620,6 +1965,7 @@ struct GuardianDeity
struct GuildleveAssignment
{
+ std::vector< uint32_t > quest;
GuildleveAssignment( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -1783,6 +2129,8 @@ struct Item
struct ItemAction
{
uint16_t type;
+ std::vector< uint16_t > data;
+ std::vector< uint16_t > dataHQ;
ItemAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -2044,9 +2392,19 @@ struct MasterpieceSupplyDuty
MasterpieceSupplyDuty( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
+struct MasterpieceSupplyMultiplier
+{
+ std::vector< uint16_t > xpMultiplier;
+ std::vector< uint16_t > currencyMultiplier;
+
+ MasterpieceSupplyMultiplier( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
+};
+
struct Materia
{
+ std::vector< int32_t > item;
uint8_t baseParam;
+ std::vector< uint8_t > value;
Materia( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -2096,6 +2454,8 @@ struct ModelChara
struct MonsterNote
{
+ std::vector< uint16_t > monsterNoteTarget;
+ std::vector< uint8_t > count;
uint32_t reward;
std::string name;
@@ -2124,6 +2484,7 @@ struct Mount
struct MountAction
{
+ std::vector< uint16_t > action;
MountAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -2252,10 +2613,12 @@ struct Quest
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;
@@ -2266,13 +2629,26 @@ struct Quest
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;
@@ -2315,6 +2691,7 @@ struct RacingChocoboItem
{
int32_t item;
uint8_t category;
+ std::vector< uint8_t > param;
RacingChocoboItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -2393,6 +2770,7 @@ struct RecipeLevelTable
struct RecipeNotebookList
{
+ std::vector< int32_t > recipe;
RecipeNotebookList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -2437,6 +2815,8 @@ struct RelicItem
struct RelicNote
{
uint32_t eventItem;
+ std::vector< uint16_t > monsterNoteTargetNM;
+ std::vector< uint16_t > leve;
RelicNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -2476,6 +2856,9 @@ struct RetainerTaskNormal
struct RetainerTaskParameter
{
+ std::vector< int16_t > itemLevelDoW;
+ std::vector< int16_t > gatheringDoL;
+ std::vector< int16_t > gatheringFSH;
RetainerTaskParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -2500,6 +2883,8 @@ struct SatisfactionNpc
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 );
@@ -2572,6 +2957,7 @@ struct SpearfishingNotebook
struct SpecialShop
{
std::string name;
+ std::vector< int32_t > questItem;
int32_t questShop;
SpecialShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
@@ -2620,6 +3006,8 @@ struct Story
struct SwitchTalk
{
+ std::vector< uint32_t > quest;
+ std::vector< uint32_t > defaultTalk;
SwitchTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );
};
@@ -2732,9 +3120,13 @@ struct Tribe
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;
@@ -2915,6 +3307,8 @@ struct WorldDCGroupType
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;
@@ -3032,6 +3426,7 @@ struct WorldDCGroupType
xiv::exd::Exd m_ENpcBaseDat;
xiv::exd::Exd m_ENpcResidentDat;
xiv::exd::Exd m_EObjDat;
+ xiv::exd::Exd m_EquipRaceCategoryDat;
xiv::exd::Exd m_EquipSlotCategoryDat;
xiv::exd::Exd m_EventActionDat;
xiv::exd::Exd m_EventIconPriorityDat;
@@ -3069,6 +3464,7 @@ struct WorldDCGroupType
xiv::exd::Exd m_GcArmyExpeditionTypeDat;
xiv::exd::Exd m_GcArmyMemberGrowDat;
xiv::exd::Exd m_GcArmyTrainingDat;
+ xiv::exd::Exd m_GCScripShopCategoryDat;
xiv::exd::Exd m_GCScripShopItemDat;
xiv::exd::Exd m_GCShopDat;
xiv::exd::Exd m_GCShopItemCategoryDat;
@@ -3120,6 +3516,7 @@ struct WorldDCGroupType
xiv::exd::Exd m_MapMarkerDat;
xiv::exd::Exd m_MapSymbolDat;
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;
@@ -3207,7 +3604,2331 @@ struct WorldDCGroupType
xiv::exd::Exd m_WorldDCGroupTypeDat;
- boost::shared_ptr< Achievement > getAchievement( uint32_t AchievementId ); boost::shared_ptr< AchievementCategory > getAchievementCategory( uint32_t AchievementCategoryId ); boost::shared_ptr< AchievementKind > getAchievementKind( uint32_t AchievementKindId ); boost::shared_ptr< Action > getAction( uint32_t ActionId ); boost::shared_ptr< ActionCategory > getActionCategory( uint32_t ActionCategoryId ); boost::shared_ptr< ActionComboRoute > getActionComboRoute( uint32_t ActionComboRouteId ); boost::shared_ptr< ActionIndirection > getActionIndirection( uint32_t ActionIndirectionId ); boost::shared_ptr< ActionProcStatus > getActionProcStatus( uint32_t ActionProcStatusId ); boost::shared_ptr< ActionTimeline > getActionTimeline( uint32_t ActionTimelineId ); boost::shared_ptr< ActionTransient > getActionTransient( uint32_t ActionTransientId ); boost::shared_ptr< Addon > getAddon( uint32_t AddonId ); boost::shared_ptr< Adventure > getAdventure( uint32_t AdventureId ); boost::shared_ptr< AdventureExPhase > getAdventureExPhase( uint32_t AdventureExPhaseId ); boost::shared_ptr< AetherCurrent > getAetherCurrent( uint32_t AetherCurrentId ); boost::shared_ptr< AetherialWheel > getAetherialWheel( uint32_t AetherialWheelId ); boost::shared_ptr< Aetheryte > getAetheryte( uint32_t AetheryteId ); boost::shared_ptr< AirshipExplorationLevel > getAirshipExplorationLevel( uint32_t AirshipExplorationLevelId ); boost::shared_ptr< AirshipExplorationLog > getAirshipExplorationLog( uint32_t AirshipExplorationLogId ); boost::shared_ptr< AirshipExplorationParamType > getAirshipExplorationParamType( uint32_t AirshipExplorationParamTypeId ); boost::shared_ptr< AirshipExplorationPart > getAirshipExplorationPart( uint32_t AirshipExplorationPartId ); boost::shared_ptr< AirshipExplorationPoint > getAirshipExplorationPoint( uint32_t AirshipExplorationPointId ); boost::shared_ptr< AnimaWeapon5 > getAnimaWeapon5( uint32_t AnimaWeapon5Id ); boost::shared_ptr< AnimaWeapon5Param > getAnimaWeapon5Param( uint32_t AnimaWeapon5ParamId ); boost::shared_ptr< AnimaWeapon5PatternGroup > getAnimaWeapon5PatternGroup( uint32_t AnimaWeapon5PatternGroupId ); boost::shared_ptr< AnimaWeapon5SpiritTalk > getAnimaWeapon5SpiritTalk( uint32_t AnimaWeapon5SpiritTalkId ); boost::shared_ptr< AnimaWeapon5SpiritTalkParam > getAnimaWeapon5SpiritTalkParam( uint32_t AnimaWeapon5SpiritTalkParamId ); boost::shared_ptr< AnimaWeapon5TradeItem > getAnimaWeapon5TradeItem( uint32_t AnimaWeapon5TradeItemId ); boost::shared_ptr< AnimaWeaponFUITalk > getAnimaWeaponFUITalk( uint32_t AnimaWeaponFUITalkId ); boost::shared_ptr< AnimaWeaponFUITalkParam > getAnimaWeaponFUITalkParam( uint32_t AnimaWeaponFUITalkParamId ); boost::shared_ptr< AnimaWeaponIcon > getAnimaWeaponIcon( uint32_t AnimaWeaponIconId ); boost::shared_ptr< AnimaWeaponItem > getAnimaWeaponItem( uint32_t AnimaWeaponItemId ); boost::shared_ptr< AquariumFish > getAquariumFish( uint32_t AquariumFishId ); boost::shared_ptr< AquariumWater > getAquariumWater( uint32_t AquariumWaterId ); boost::shared_ptr< AttackType > getAttackType( uint32_t AttackTypeId ); boost::shared_ptr< Balloon > getBalloon( uint32_t BalloonId ); boost::shared_ptr< BaseParam > getBaseParam( uint32_t BaseParamId ); boost::shared_ptr< BattleLeve > getBattleLeve( uint32_t BattleLeveId ); boost::shared_ptr< BeastRankBonus > getBeastRankBonus( uint32_t BeastRankBonusId ); boost::shared_ptr< BeastReputationRank > getBeastReputationRank( uint32_t BeastReputationRankId ); boost::shared_ptr< BeastTribe > getBeastTribe( uint32_t BeastTribeId ); boost::shared_ptr< Behavior > getBehavior( uint32_t BehaviorId ); boost::shared_ptr< BGM > getBGM( uint32_t BGMId ); boost::shared_ptr< BNpcAnnounceIcon > getBNpcAnnounceIcon( uint32_t BNpcAnnounceIconId ); boost::shared_ptr< BNpcBase > getBNpcBase( uint32_t BNpcBaseId ); boost::shared_ptr< BNpcCustomize > getBNpcCustomize( uint32_t BNpcCustomizeId ); boost::shared_ptr< BNpcName > getBNpcName( uint32_t BNpcNameId ); boost::shared_ptr< BuddyAction > getBuddyAction( uint32_t BuddyActionId ); boost::shared_ptr< BuddyEquip > getBuddyEquip( uint32_t BuddyEquipId ); boost::shared_ptr< BuddyItem > getBuddyItem( uint32_t BuddyItemId ); boost::shared_ptr< BuddyRank > getBuddyRank( uint32_t BuddyRankId ); boost::shared_ptr< BuddySkill > getBuddySkill( uint32_t BuddySkillId ); boost::shared_ptr< Cabinet > getCabinet( uint32_t CabinetId ); boost::shared_ptr< CabinetCategory > getCabinetCategory( uint32_t CabinetCategoryId ); boost::shared_ptr< Calendar > getCalendar( uint32_t CalendarId ); boost::shared_ptr< ChainBonus > getChainBonus( uint32_t ChainBonusId ); boost::shared_ptr< CharaMakeCustomize > getCharaMakeCustomize( uint32_t CharaMakeCustomizeId ); boost::shared_ptr< CharaMakeType > getCharaMakeType( uint32_t CharaMakeTypeId ); boost::shared_ptr< ChocoboRace > getChocoboRace( uint32_t ChocoboRaceId ); boost::shared_ptr< ChocoboRaceAbility > getChocoboRaceAbility( uint32_t ChocoboRaceAbilityId ); boost::shared_ptr< ChocoboRaceAbilityType > getChocoboRaceAbilityType( uint32_t ChocoboRaceAbilityTypeId ); boost::shared_ptr< ChocoboRaceItem > getChocoboRaceItem( uint32_t ChocoboRaceItemId ); boost::shared_ptr< ChocoboRaceRank > getChocoboRaceRank( uint32_t ChocoboRaceRankId ); boost::shared_ptr< ChocoboRaceStatus > getChocoboRaceStatus( uint32_t ChocoboRaceStatusId ); boost::shared_ptr< ChocoboRaceTerritory > getChocoboRaceTerritory( uint32_t ChocoboRaceTerritoryId ); boost::shared_ptr< ChocoboTaxiStand > getChocoboTaxiStand( uint32_t ChocoboTaxiStandId ); boost::shared_ptr< ClassJob > getClassJob( uint32_t ClassJobId ); boost::shared_ptr< ClassJobCategory > getClassJobCategory( uint32_t ClassJobCategoryId ); boost::shared_ptr< Companion > getCompanion( uint32_t CompanionId ); boost::shared_ptr< CompanionMove > getCompanionMove( uint32_t CompanionMoveId ); boost::shared_ptr< CompanionTransient > getCompanionTransient( uint32_t CompanionTransientId ); boost::shared_ptr< CompanyAction > getCompanyAction( uint32_t CompanyActionId ); boost::shared_ptr< CompanyCraftDraft > getCompanyCraftDraft( uint32_t CompanyCraftDraftId ); boost::shared_ptr< CompanyCraftDraftCategory > getCompanyCraftDraftCategory( uint32_t CompanyCraftDraftCategoryId ); boost::shared_ptr< CompanyCraftManufactoryState > getCompanyCraftManufactoryState( uint32_t CompanyCraftManufactoryStateId ); boost::shared_ptr< CompanyCraftPart > getCompanyCraftPart( uint32_t CompanyCraftPartId ); boost::shared_ptr< CompanyCraftProcess > getCompanyCraftProcess( uint32_t CompanyCraftProcessId ); boost::shared_ptr< CompanyCraftSequence > getCompanyCraftSequence( uint32_t CompanyCraftSequenceId ); boost::shared_ptr< CompanyCraftSupplyItem > getCompanyCraftSupplyItem( uint32_t CompanyCraftSupplyItemId ); boost::shared_ptr< CompanyCraftType > getCompanyCraftType( uint32_t CompanyCraftTypeId ); boost::shared_ptr< CompleteJournal > getCompleteJournal( uint32_t CompleteJournalId ); boost::shared_ptr< CompleteJournalCategory > getCompleteJournalCategory( uint32_t CompleteJournalCategoryId ); boost::shared_ptr< ContentExAction > getContentExAction( uint32_t ContentExActionId ); boost::shared_ptr< ContentFinderCondition > getContentFinderCondition( uint32_t ContentFinderConditionId ); boost::shared_ptr< ContentFinderConditionTransient > getContentFinderConditionTransient( uint32_t ContentFinderConditionTransientId ); boost::shared_ptr< ContentMemberType > getContentMemberType( uint32_t ContentMemberTypeId ); boost::shared_ptr< ContentRoulette > getContentRoulette( uint32_t ContentRouletteId ); boost::shared_ptr< ContentType > getContentType( uint32_t ContentTypeId ); boost::shared_ptr< CraftAction > getCraftAction( uint32_t CraftActionId ); boost::shared_ptr< CraftLeve > getCraftLeve( uint32_t CraftLeveId ); boost::shared_ptr< CraftType > getCraftType( uint32_t CraftTypeId ); boost::shared_ptr< Currency > getCurrency( uint32_t CurrencyId ); boost::shared_ptr< CustomTalk > getCustomTalk( uint32_t CustomTalkId ); boost::shared_ptr< Cutscene > getCutscene( uint32_t CutsceneId ); boost::shared_ptr< CutScreenImage > getCutScreenImage( uint32_t CutScreenImageId ); boost::shared_ptr< DailySupplyItem > getDailySupplyItem( uint32_t DailySupplyItemId ); boost::shared_ptr< DeepDungeonBan > getDeepDungeonBan( uint32_t DeepDungeonBanId ); boost::shared_ptr< DeepDungeonDanger > getDeepDungeonDanger( uint32_t DeepDungeonDangerId ); boost::shared_ptr< DeepDungeonEquipment > getDeepDungeonEquipment( uint32_t DeepDungeonEquipmentId ); boost::shared_ptr< DeepDungeonFloorEffectUI > getDeepDungeonFloorEffectUI( uint32_t DeepDungeonFloorEffectUIId ); boost::shared_ptr< DeepDungeonItem > getDeepDungeonItem( uint32_t DeepDungeonItemId ); boost::shared_ptr< DeepDungeonStatus > getDeepDungeonStatus( uint32_t DeepDungeonStatusId ); boost::shared_ptr< DefaultTalk > getDefaultTalk( uint32_t DefaultTalkId ); boost::shared_ptr< DeliveryQuest > getDeliveryQuest( uint32_t DeliveryQuestId ); boost::shared_ptr< DisposalShop > getDisposalShop( uint32_t DisposalShopId ); boost::shared_ptr< DisposalShopFilterType > getDisposalShopFilterType( uint32_t DisposalShopFilterTypeId ); boost::shared_ptr< DisposalShopItem > getDisposalShopItem( uint32_t DisposalShopItemId ); boost::shared_ptr< DpsChallenge > getDpsChallenge( uint32_t DpsChallengeId ); boost::shared_ptr< DpsChallengeOfficer > getDpsChallengeOfficer( uint32_t DpsChallengeOfficerId ); boost::shared_ptr< DpsChallengeTransient > getDpsChallengeTransient( uint32_t DpsChallengeTransientId ); boost::shared_ptr< Emote > getEmote( uint32_t EmoteId ); boost::shared_ptr< EmoteCategory > getEmoteCategory( uint32_t EmoteCategoryId ); boost::shared_ptr< ENpcBase > getENpcBase( uint32_t ENpcBaseId ); boost::shared_ptr< ENpcResident > getENpcResident( uint32_t ENpcResidentId ); boost::shared_ptr< EObj > getEObj( uint32_t EObjId ); boost::shared_ptr< EquipSlotCategory > getEquipSlotCategory( uint32_t EquipSlotCategoryId ); boost::shared_ptr< EventAction > getEventAction( uint32_t EventActionId ); boost::shared_ptr< EventIconPriority > getEventIconPriority( uint32_t EventIconPriorityId ); boost::shared_ptr< EventIconType > getEventIconType( uint32_t EventIconTypeId ); boost::shared_ptr< EventItem > getEventItem( uint32_t EventItemId ); boost::shared_ptr< EventItemHelp > getEventItemHelp( uint32_t EventItemHelpId ); boost::shared_ptr< ExVersion > getExVersion( uint32_t ExVersionId ); boost::shared_ptr< Fate > getFate( uint32_t FateId ); boost::shared_ptr< FCActivity > getFCActivity( uint32_t FCActivityId ); boost::shared_ptr< FCAuthority > getFCAuthority( uint32_t FCAuthorityId ); boost::shared_ptr< FCAuthorityCategory > getFCAuthorityCategory( uint32_t FCAuthorityCategoryId ); boost::shared_ptr< FCChestName > getFCChestName( uint32_t FCChestNameId ); boost::shared_ptr< FccShop > getFccShop( uint32_t FccShopId ); boost::shared_ptr< FCHierarchy > getFCHierarchy( uint32_t FCHierarchyId ); boost::shared_ptr< FCReputation > getFCReputation( uint32_t FCReputationId ); boost::shared_ptr< FCRights > getFCRights( uint32_t FCRightsId ); boost::shared_ptr< FishingSpot > getFishingSpot( uint32_t FishingSpotId ); boost::shared_ptr< FishParameter > getFishParameter( uint32_t FishParameterId ); boost::shared_ptr< GardeningSeed > getGardeningSeed( uint32_t GardeningSeedId ); boost::shared_ptr< GatheringCondition > getGatheringCondition( uint32_t GatheringConditionId ); boost::shared_ptr< GatheringExp > getGatheringExp( uint32_t GatheringExpId ); boost::shared_ptr< GatheringItem > getGatheringItem( uint32_t GatheringItemId ); boost::shared_ptr< GatheringItemLevelConvertTable > getGatheringItemLevelConvertTable( uint32_t GatheringItemLevelConvertTableId ); boost::shared_ptr< GatheringItemPoint > getGatheringItemPoint( uint32_t GatheringItemPointId ); boost::shared_ptr< GatheringNotebookList > getGatheringNotebookList( uint32_t GatheringNotebookListId ); boost::shared_ptr< GatheringPoint > getGatheringPoint( uint32_t GatheringPointId ); boost::shared_ptr< GatheringPointBase > getGatheringPointBase( uint32_t GatheringPointBaseId ); boost::shared_ptr< GatheringPointBonus > getGatheringPointBonus( uint32_t GatheringPointBonusId ); boost::shared_ptr< GatheringPointBonusType > getGatheringPointBonusType( uint32_t GatheringPointBonusTypeId ); boost::shared_ptr< GatheringPointName > getGatheringPointName( uint32_t GatheringPointNameId ); boost::shared_ptr< GatheringSubCategory > getGatheringSubCategory( uint32_t GatheringSubCategoryId ); boost::shared_ptr< GatheringType > getGatheringType( uint32_t GatheringTypeId ); boost::shared_ptr< GcArmyExpedition > getGcArmyExpedition( uint32_t GcArmyExpeditionId ); boost::shared_ptr< GcArmyExpeditionMemberBonus > getGcArmyExpeditionMemberBonus( uint32_t GcArmyExpeditionMemberBonusId ); boost::shared_ptr< GcArmyExpeditionType > getGcArmyExpeditionType( uint32_t GcArmyExpeditionTypeId ); boost::shared_ptr< GcArmyMemberGrow > getGcArmyMemberGrow( uint32_t GcArmyMemberGrowId ); boost::shared_ptr< GcArmyTraining > getGcArmyTraining( uint32_t GcArmyTrainingId ); boost::shared_ptr< GCScripShopItem > getGCScripShopItem( uint32_t GCScripShopItemId ); boost::shared_ptr< GCShop > getGCShop( uint32_t GCShopId ); boost::shared_ptr< GCShopItemCategory > getGCShopItemCategory( uint32_t GCShopItemCategoryId ); boost::shared_ptr< GCSupplyDuty > getGCSupplyDuty( uint32_t GCSupplyDutyId ); boost::shared_ptr< GCSupplyDutyReward > getGCSupplyDutyReward( uint32_t GCSupplyDutyRewardId ); boost::shared_ptr< GeneralAction > getGeneralAction( uint32_t GeneralActionId ); boost::shared_ptr< GilShop > getGilShop( uint32_t GilShopId ); boost::shared_ptr< GilShopItem > getGilShopItem( uint32_t GilShopItemId ); boost::shared_ptr< GoldSaucerTextData > getGoldSaucerTextData( uint32_t GoldSaucerTextDataId ); boost::shared_ptr< GrandCompany > getGrandCompany( uint32_t GrandCompanyId ); boost::shared_ptr< GrandCompanyRank > getGrandCompanyRank( uint32_t GrandCompanyRankId ); boost::shared_ptr< GuardianDeity > getGuardianDeity( uint32_t GuardianDeityId ); boost::shared_ptr< GuildleveAssignment > getGuildleveAssignment( uint32_t GuildleveAssignmentId ); boost::shared_ptr< GuildOrderGuide > getGuildOrderGuide( uint32_t GuildOrderGuideId ); boost::shared_ptr< GuildOrderOfficer > getGuildOrderOfficer( uint32_t GuildOrderOfficerId ); boost::shared_ptr< HouseRetainerPose > getHouseRetainerPose( uint32_t HouseRetainerPoseId ); boost::shared_ptr< HousingFurniture > getHousingFurniture( uint32_t HousingFurnitureId ); boost::shared_ptr< HousingYardObject > getHousingYardObject( uint32_t HousingYardObjectId ); boost::shared_ptr< InstanceContent > getInstanceContent( uint32_t InstanceContentId ); boost::shared_ptr< InstanceContentBuff > getInstanceContentBuff( uint32_t InstanceContentBuffId ); boost::shared_ptr< InstanceContentTextData > getInstanceContentTextData( uint32_t InstanceContentTextDataId ); boost::shared_ptr< InstanceContentType > getInstanceContentType( uint32_t InstanceContentTypeId ); boost::shared_ptr< Item > getItem( uint32_t ItemId ); boost::shared_ptr< ItemAction > getItemAction( uint32_t ItemActionId ); boost::shared_ptr< ItemFood > getItemFood( uint32_t ItemFoodId ); boost::shared_ptr< ItemSearchCategory > getItemSearchCategory( uint32_t ItemSearchCategoryId ); boost::shared_ptr< ItemSeries > getItemSeries( uint32_t ItemSeriesId ); boost::shared_ptr< ItemSpecialBonus > getItemSpecialBonus( uint32_t ItemSpecialBonusId ); boost::shared_ptr< ItemUICategory > getItemUICategory( uint32_t ItemUICategoryId ); boost::shared_ptr< JournalCategory > getJournalCategory( uint32_t JournalCategoryId ); boost::shared_ptr< JournalGenre > getJournalGenre( uint32_t JournalGenreId ); boost::shared_ptr< JournalSection > getJournalSection( uint32_t JournalSectionId ); boost::shared_ptr< Leve > getLeve( uint32_t LeveId ); boost::shared_ptr< LeveAssignmentType > getLeveAssignmentType( uint32_t LeveAssignmentTypeId ); boost::shared_ptr< LeveClient > getLeveClient( uint32_t LeveClientId ); boost::shared_ptr< Level > getLevel( uint32_t LevelId ); boost::shared_ptr< LeveRewardItem > getLeveRewardItem( uint32_t LeveRewardItemId ); boost::shared_ptr< LeveRewardItemGroup > getLeveRewardItemGroup( uint32_t LeveRewardItemGroupId ); boost::shared_ptr< LeveVfx > getLeveVfx( uint32_t LeveVfxId ); boost::shared_ptr< LogFilter > getLogFilter( uint32_t LogFilterId ); boost::shared_ptr< LogKind > getLogKind( uint32_t LogKindId ); boost::shared_ptr< LogKindCategoryText > getLogKindCategoryText( uint32_t LogKindCategoryTextId ); boost::shared_ptr< LogMessage > getLogMessage( uint32_t LogMessageId ); boost::shared_ptr< MacroIcon > getMacroIcon( uint32_t MacroIconId ); boost::shared_ptr< MacroIconRedirectOld > getMacroIconRedirectOld( uint32_t MacroIconRedirectOldId ); boost::shared_ptr< MainCommand > getMainCommand( uint32_t MainCommandId ); boost::shared_ptr< MainCommandCategory > getMainCommandCategory( uint32_t MainCommandCategoryId ); boost::shared_ptr< Map > getMap( uint32_t MapId ); boost::shared_ptr< MapMarker > getMapMarker( uint32_t MapMarkerId ); boost::shared_ptr< MapSymbol > getMapSymbol( uint32_t MapSymbolId ); boost::shared_ptr< MasterpieceSupplyDuty > getMasterpieceSupplyDuty( uint32_t MasterpieceSupplyDutyId ); boost::shared_ptr< Materia > getMateria( uint32_t MateriaId ); boost::shared_ptr< MinionRace > getMinionRace( uint32_t MinionRaceId ); boost::shared_ptr< MinionRules > getMinionRules( uint32_t MinionRulesId ); boost::shared_ptr< MinionSkillType > getMinionSkillType( uint32_t MinionSkillTypeId ); boost::shared_ptr< MobHuntTarget > getMobHuntTarget( uint32_t MobHuntTargetId ); boost::shared_ptr< ModelChara > getModelChara( uint32_t ModelCharaId ); boost::shared_ptr< MonsterNote > getMonsterNote( uint32_t MonsterNoteId ); boost::shared_ptr< MonsterNoteTarget > getMonsterNoteTarget( uint32_t MonsterNoteTargetId ); boost::shared_ptr< Mount > getMount( uint32_t MountId ); boost::shared_ptr< MountAction > getMountAction( uint32_t MountActionId ); boost::shared_ptr< NpcEquip > getNpcEquip( uint32_t NpcEquipId ); boost::shared_ptr< Omen > getOmen( uint32_t OmenId ); boost::shared_ptr< OnlineStatus > getOnlineStatus( uint32_t OnlineStatusId ); boost::shared_ptr< Orchestrion > getOrchestrion( uint32_t OrchestrionId ); boost::shared_ptr< OrchestrionPath > getOrchestrionPath( uint32_t OrchestrionPathId ); boost::shared_ptr< ParamGrow > getParamGrow( uint32_t ParamGrowId ); boost::shared_ptr< Pet > getPet( uint32_t PetId ); boost::shared_ptr< PetAction > getPetAction( uint32_t PetActionId ); boost::shared_ptr< Picture > getPicture( uint32_t PictureId ); boost::shared_ptr< PlaceName > getPlaceName( uint32_t PlaceNameId ); boost::shared_ptr< Quest > getQuest( uint32_t QuestId ); boost::shared_ptr< QuestRewardOther > getQuestRewardOther( uint32_t QuestRewardOtherId ); boost::shared_ptr< Race > getRace( uint32_t RaceId ); boost::shared_ptr< RacingChocoboItem > getRacingChocoboItem( uint32_t RacingChocoboItemId ); boost::shared_ptr< RacingChocoboName > getRacingChocoboName( uint32_t RacingChocoboNameId ); boost::shared_ptr< RacingChocoboNameCategory > getRacingChocoboNameCategory( uint32_t RacingChocoboNameCategoryId ); boost::shared_ptr< RacingChocoboNameInfo > getRacingChocoboNameInfo( uint32_t RacingChocoboNameInfoId ); boost::shared_ptr< RacingChocoboParam > getRacingChocoboParam( uint32_t RacingChocoboParamId ); boost::shared_ptr< Recipe > getRecipe( uint32_t RecipeId ); boost::shared_ptr< RecipeElement > getRecipeElement( uint32_t RecipeElementId ); boost::shared_ptr< RecipeLevelTable > getRecipeLevelTable( uint32_t RecipeLevelTableId ); boost::shared_ptr< RecipeNotebookList > getRecipeNotebookList( uint32_t RecipeNotebookListId ); boost::shared_ptr< Relic > getRelic( uint32_t RelicId ); boost::shared_ptr< Relic3 > getRelic3( uint32_t Relic3Id ); boost::shared_ptr< RelicItem > getRelicItem( uint32_t RelicItemId ); boost::shared_ptr< RelicNote > getRelicNote( uint32_t RelicNoteId ); boost::shared_ptr< RelicNoteCategory > getRelicNoteCategory( uint32_t RelicNoteCategoryId ); boost::shared_ptr< RetainerTask > getRetainerTask( uint32_t RetainerTaskId ); boost::shared_ptr< RetainerTaskNormal > getRetainerTaskNormal( uint32_t RetainerTaskNormalId ); boost::shared_ptr< RetainerTaskParameter > getRetainerTaskParameter( uint32_t RetainerTaskParameterId ); boost::shared_ptr< RetainerTaskRandom > getRetainerTaskRandom( uint32_t RetainerTaskRandomId ); boost::shared_ptr< Salvage > getSalvage( uint32_t SalvageId ); boost::shared_ptr< SatisfactionNpc > getSatisfactionNpc( uint32_t SatisfactionNpcId ); boost::shared_ptr< SatisfactionSupply > getSatisfactionSupply( uint32_t SatisfactionSupplyId ); boost::shared_ptr< SatisfactionSupplyReward > getSatisfactionSupplyReward( uint32_t SatisfactionSupplyRewardId ); boost::shared_ptr< ScreenImage > getScreenImage( uint32_t ScreenImageId ); boost::shared_ptr< SecretRecipeBook > getSecretRecipeBook( uint32_t SecretRecipeBookId ); boost::shared_ptr< SpearfishingItem > getSpearfishingItem( uint32_t SpearfishingItemId ); boost::shared_ptr< SpearfishingNotebook > getSpearfishingNotebook( uint32_t SpearfishingNotebookId ); boost::shared_ptr< SpecialShop > getSpecialShop( uint32_t SpecialShopId ); boost::shared_ptr< SpecialShopItemCategory > getSpecialShopItemCategory( uint32_t SpecialShopItemCategoryId ); boost::shared_ptr< Stain > getStain( uint32_t StainId ); boost::shared_ptr< Status > getStatus( uint32_t StatusId ); boost::shared_ptr< Story > getStory( uint32_t StoryId ); boost::shared_ptr< SwitchTalk > getSwitchTalk( uint32_t SwitchTalkId ); boost::shared_ptr< TerritoryType > getTerritoryType( uint32_t TerritoryTypeId ); boost::shared_ptr< TextCommand > getTextCommand( uint32_t TextCommandId ); boost::shared_ptr< Title > getTitle( uint32_t TitleId ); boost::shared_ptr< Tomestones > getTomestones( uint32_t TomestonesId ); boost::shared_ptr< TomestonesItem > getTomestonesItem( uint32_t TomestonesItemId ); boost::shared_ptr< TopicSelect > getTopicSelect( uint32_t TopicSelectId ); boost::shared_ptr< Town > getTown( uint32_t TownId ); boost::shared_ptr< Trait > getTrait( uint32_t TraitId ); boost::shared_ptr< TraitRecast > getTraitRecast( uint32_t TraitRecastId ); boost::shared_ptr< TraitTransient > getTraitTransient( uint32_t TraitTransientId ); boost::shared_ptr< Tribe > getTribe( uint32_t TribeId ); boost::shared_ptr< TripleTriad > getTripleTriad( uint32_t TripleTriadId ); boost::shared_ptr< TripleTriadCard > getTripleTriadCard( uint32_t TripleTriadCardId ); boost::shared_ptr< TripleTriadCardRarity > getTripleTriadCardRarity( uint32_t TripleTriadCardRarityId ); boost::shared_ptr< TripleTriadCardResident > getTripleTriadCardResident( uint32_t TripleTriadCardResidentId ); boost::shared_ptr< TripleTriadCardType > getTripleTriadCardType( uint32_t TripleTriadCardTypeId ); boost::shared_ptr< TripleTriadCompetition > getTripleTriadCompetition( uint32_t TripleTriadCompetitionId ); boost::shared_ptr< TripleTriadRule > getTripleTriadRule( uint32_t TripleTriadRuleId ); boost::shared_ptr< Tutorial > getTutorial( uint32_t TutorialId ); boost::shared_ptr< TutorialDPS > getTutorialDPS( uint32_t TutorialDPSId ); boost::shared_ptr< TutorialHealer > getTutorialHealer( uint32_t TutorialHealerId ); boost::shared_ptr< TutorialTank > getTutorialTank( uint32_t TutorialTankId ); boost::shared_ptr< Warp > getWarp( uint32_t WarpId ); boost::shared_ptr< Weather > getWeather( uint32_t WeatherId ); boost::shared_ptr< WeatherGroup > getWeatherGroup( uint32_t WeatherGroupId ); boost::shared_ptr< WeatherRate > getWeatherRate( uint32_t WeatherRateId ); boost::shared_ptr< WeeklyBingoOrderData > getWeeklyBingoOrderData( uint32_t WeeklyBingoOrderDataId ); boost::shared_ptr< WeeklyBingoRewardData > getWeeklyBingoRewardData( uint32_t WeeklyBingoRewardDataId ); boost::shared_ptr< WeeklyBingoText > getWeeklyBingoText( uint32_t WeeklyBingoTextId ); boost::shared_ptr< WorldDCGroupType > getWorldDCGroupType( uint32_t WorldDCGroupTypeId );
+ boost::shared_ptr< Achievement > getAchievement( uint32_t AchievementId );
+ boost::shared_ptr< AchievementCategory > getAchievementCategory( uint32_t AchievementCategoryId );
+ boost::shared_ptr< AchievementKind > getAchievementKind( uint32_t AchievementKindId );
+ boost::shared_ptr< Action > getAction( uint32_t ActionId );
+ boost::shared_ptr< ActionCategory > getActionCategory( uint32_t ActionCategoryId );
+ boost::shared_ptr< ActionComboRoute > getActionComboRoute( uint32_t ActionComboRouteId );
+ boost::shared_ptr< ActionIndirection > getActionIndirection( uint32_t ActionIndirectionId );
+ boost::shared_ptr< ActionProcStatus > getActionProcStatus( uint32_t ActionProcStatusId );
+ boost::shared_ptr< ActionTimeline > getActionTimeline( uint32_t ActionTimelineId );
+ boost::shared_ptr< ActionTransient > getActionTransient( uint32_t ActionTransientId );
+ boost::shared_ptr< Addon > getAddon( uint32_t AddonId );
+ boost::shared_ptr< Adventure > getAdventure( uint32_t AdventureId );
+ boost::shared_ptr< AdventureExPhase > getAdventureExPhase( uint32_t AdventureExPhaseId );
+ boost::shared_ptr< AetherCurrent > getAetherCurrent( uint32_t AetherCurrentId );
+ boost::shared_ptr< AetherialWheel > getAetherialWheel( uint32_t AetherialWheelId );
+ boost::shared_ptr< Aetheryte > getAetheryte( uint32_t AetheryteId );
+ boost::shared_ptr< AirshipExplorationLevel > getAirshipExplorationLevel( uint32_t AirshipExplorationLevelId );
+ boost::shared_ptr< AirshipExplorationLog > getAirshipExplorationLog( uint32_t AirshipExplorationLogId );
+ boost::shared_ptr< AirshipExplorationParamType > getAirshipExplorationParamType( uint32_t AirshipExplorationParamTypeId );
+ boost::shared_ptr< AirshipExplorationPart > getAirshipExplorationPart( uint32_t AirshipExplorationPartId );
+ boost::shared_ptr< AirshipExplorationPoint > getAirshipExplorationPoint( uint32_t AirshipExplorationPointId );
+ boost::shared_ptr< AnimaWeapon5 > getAnimaWeapon5( uint32_t AnimaWeapon5Id );
+ boost::shared_ptr< AnimaWeapon5Param > getAnimaWeapon5Param( uint32_t AnimaWeapon5ParamId );
+ boost::shared_ptr< AnimaWeapon5PatternGroup > getAnimaWeapon5PatternGroup( uint32_t AnimaWeapon5PatternGroupId );
+ boost::shared_ptr< AnimaWeapon5SpiritTalk > getAnimaWeapon5SpiritTalk( uint32_t AnimaWeapon5SpiritTalkId );
+ boost::shared_ptr< AnimaWeapon5SpiritTalkParam > getAnimaWeapon5SpiritTalkParam( uint32_t AnimaWeapon5SpiritTalkParamId );
+ boost::shared_ptr< AnimaWeapon5TradeItem > getAnimaWeapon5TradeItem( uint32_t AnimaWeapon5TradeItemId );
+ boost::shared_ptr< AnimaWeaponFUITalk > getAnimaWeaponFUITalk( uint32_t AnimaWeaponFUITalkId );
+ boost::shared_ptr< AnimaWeaponFUITalkParam > getAnimaWeaponFUITalkParam( uint32_t AnimaWeaponFUITalkParamId );
+ boost::shared_ptr< AnimaWeaponIcon > getAnimaWeaponIcon( uint32_t AnimaWeaponIconId );
+ boost::shared_ptr< AnimaWeaponItem > getAnimaWeaponItem( uint32_t AnimaWeaponItemId );
+ boost::shared_ptr< AquariumFish > getAquariumFish( uint32_t AquariumFishId );
+ boost::shared_ptr< AquariumWater > getAquariumWater( uint32_t AquariumWaterId );
+ boost::shared_ptr< AttackType > getAttackType( uint32_t AttackTypeId );
+ boost::shared_ptr< Balloon > getBalloon( uint32_t BalloonId );
+ boost::shared_ptr< BaseParam > getBaseParam( uint32_t BaseParamId );
+ boost::shared_ptr< BattleLeve > getBattleLeve( uint32_t BattleLeveId );
+ boost::shared_ptr< BeastRankBonus > getBeastRankBonus( uint32_t BeastRankBonusId );
+ boost::shared_ptr< BeastReputationRank > getBeastReputationRank( uint32_t BeastReputationRankId );
+ boost::shared_ptr< BeastTribe > getBeastTribe( uint32_t BeastTribeId );
+ boost::shared_ptr< Behavior > getBehavior( uint32_t BehaviorId );
+ boost::shared_ptr< BGM > getBGM( uint32_t BGMId );
+ boost::shared_ptr< BNpcAnnounceIcon > getBNpcAnnounceIcon( uint32_t BNpcAnnounceIconId );
+ boost::shared_ptr< BNpcBase > getBNpcBase( uint32_t BNpcBaseId );
+ boost::shared_ptr< BNpcCustomize > getBNpcCustomize( uint32_t BNpcCustomizeId );
+ boost::shared_ptr< BNpcName > getBNpcName( uint32_t BNpcNameId );
+ boost::shared_ptr< BuddyAction > getBuddyAction( uint32_t BuddyActionId );
+ boost::shared_ptr< BuddyEquip > getBuddyEquip( uint32_t BuddyEquipId );
+ boost::shared_ptr< BuddyItem > getBuddyItem( uint32_t BuddyItemId );
+ boost::shared_ptr< BuddyRank > getBuddyRank( uint32_t BuddyRankId );
+ boost::shared_ptr< BuddySkill > getBuddySkill( uint32_t BuddySkillId );
+ boost::shared_ptr< Cabinet > getCabinet( uint32_t CabinetId );
+ boost::shared_ptr< CabinetCategory > getCabinetCategory( uint32_t CabinetCategoryId );
+ boost::shared_ptr< Calendar > getCalendar( uint32_t CalendarId );
+ boost::shared_ptr< ChainBonus > getChainBonus( uint32_t ChainBonusId );
+ boost::shared_ptr< CharaMakeCustomize > getCharaMakeCustomize( uint32_t CharaMakeCustomizeId );
+ boost::shared_ptr< CharaMakeType > getCharaMakeType( uint32_t CharaMakeTypeId );
+ boost::shared_ptr< ChocoboRace > getChocoboRace( uint32_t ChocoboRaceId );
+ boost::shared_ptr< ChocoboRaceAbility > getChocoboRaceAbility( uint32_t ChocoboRaceAbilityId );
+ boost::shared_ptr< ChocoboRaceAbilityType > getChocoboRaceAbilityType( uint32_t ChocoboRaceAbilityTypeId );
+ boost::shared_ptr< ChocoboRaceItem > getChocoboRaceItem( uint32_t ChocoboRaceItemId );
+ boost::shared_ptr< ChocoboRaceRank > getChocoboRaceRank( uint32_t ChocoboRaceRankId );
+ boost::shared_ptr< ChocoboRaceStatus > getChocoboRaceStatus( uint32_t ChocoboRaceStatusId );
+ boost::shared_ptr< ChocoboRaceTerritory > getChocoboRaceTerritory( uint32_t ChocoboRaceTerritoryId );
+ boost::shared_ptr< ChocoboTaxiStand > getChocoboTaxiStand( uint32_t ChocoboTaxiStandId );
+ boost::shared_ptr< ClassJob > getClassJob( uint32_t ClassJobId );
+ boost::shared_ptr< ClassJobCategory > getClassJobCategory( uint32_t ClassJobCategoryId );
+ boost::shared_ptr< Companion > getCompanion( uint32_t CompanionId );
+ boost::shared_ptr< CompanionMove > getCompanionMove( uint32_t CompanionMoveId );
+ boost::shared_ptr< CompanionTransient > getCompanionTransient( uint32_t CompanionTransientId );
+ boost::shared_ptr< CompanyAction > getCompanyAction( uint32_t CompanyActionId );
+ boost::shared_ptr< CompanyCraftDraft > getCompanyCraftDraft( uint32_t CompanyCraftDraftId );
+ boost::shared_ptr< CompanyCraftDraftCategory > getCompanyCraftDraftCategory( uint32_t CompanyCraftDraftCategoryId );
+ boost::shared_ptr< CompanyCraftManufactoryState > getCompanyCraftManufactoryState( uint32_t CompanyCraftManufactoryStateId );
+ boost::shared_ptr< CompanyCraftPart > getCompanyCraftPart( uint32_t CompanyCraftPartId );
+ boost::shared_ptr< CompanyCraftProcess > getCompanyCraftProcess( uint32_t CompanyCraftProcessId );
+ boost::shared_ptr< CompanyCraftSequence > getCompanyCraftSequence( uint32_t CompanyCraftSequenceId );
+ boost::shared_ptr< CompanyCraftSupplyItem > getCompanyCraftSupplyItem( uint32_t CompanyCraftSupplyItemId );
+ boost::shared_ptr< CompanyCraftType > getCompanyCraftType( uint32_t CompanyCraftTypeId );
+ boost::shared_ptr< CompleteJournal > getCompleteJournal( uint32_t CompleteJournalId );
+ boost::shared_ptr< CompleteJournalCategory > getCompleteJournalCategory( uint32_t CompleteJournalCategoryId );
+ boost::shared_ptr< ContentExAction > getContentExAction( uint32_t ContentExActionId );
+ boost::shared_ptr< ContentFinderCondition > getContentFinderCondition( uint32_t ContentFinderConditionId );
+ boost::shared_ptr< ContentFinderConditionTransient > getContentFinderConditionTransient( uint32_t ContentFinderConditionTransientId );
+ boost::shared_ptr< ContentMemberType > getContentMemberType( uint32_t ContentMemberTypeId );
+ boost::shared_ptr< ContentRoulette > getContentRoulette( uint32_t ContentRouletteId );
+ boost::shared_ptr< ContentType > getContentType( uint32_t ContentTypeId );
+ boost::shared_ptr< CraftAction > getCraftAction( uint32_t CraftActionId );
+ boost::shared_ptr< CraftLeve > getCraftLeve( uint32_t CraftLeveId );
+ boost::shared_ptr< CraftType > getCraftType( uint32_t CraftTypeId );
+ boost::shared_ptr< Currency > getCurrency( uint32_t CurrencyId );
+ boost::shared_ptr< CustomTalk > getCustomTalk( uint32_t CustomTalkId );
+ boost::shared_ptr< Cutscene > getCutscene( uint32_t CutsceneId );
+ boost::shared_ptr< CutScreenImage > getCutScreenImage( uint32_t CutScreenImageId );
+ boost::shared_ptr< DailySupplyItem > getDailySupplyItem( uint32_t DailySupplyItemId );
+ boost::shared_ptr< DeepDungeonBan > getDeepDungeonBan( uint32_t DeepDungeonBanId );
+ boost::shared_ptr< DeepDungeonDanger > getDeepDungeonDanger( uint32_t DeepDungeonDangerId );
+ boost::shared_ptr< DeepDungeonEquipment > getDeepDungeonEquipment( uint32_t DeepDungeonEquipmentId );
+ boost::shared_ptr< DeepDungeonFloorEffectUI > getDeepDungeonFloorEffectUI( uint32_t DeepDungeonFloorEffectUIId );
+ boost::shared_ptr< DeepDungeonItem > getDeepDungeonItem( uint32_t DeepDungeonItemId );
+ boost::shared_ptr< DeepDungeonStatus > getDeepDungeonStatus( uint32_t DeepDungeonStatusId );
+ boost::shared_ptr< DefaultTalk > getDefaultTalk( uint32_t DefaultTalkId );
+ boost::shared_ptr< DeliveryQuest > getDeliveryQuest( uint32_t DeliveryQuestId );
+ boost::shared_ptr< DisposalShop > getDisposalShop( uint32_t DisposalShopId );
+ boost::shared_ptr< DisposalShopFilterType > getDisposalShopFilterType( uint32_t DisposalShopFilterTypeId );
+ boost::shared_ptr< DisposalShopItem > getDisposalShopItem( uint32_t DisposalShopItemId );
+ boost::shared_ptr< DpsChallenge > getDpsChallenge( uint32_t DpsChallengeId );
+ boost::shared_ptr< DpsChallengeOfficer > getDpsChallengeOfficer( uint32_t DpsChallengeOfficerId );
+ boost::shared_ptr< DpsChallengeTransient > getDpsChallengeTransient( uint32_t DpsChallengeTransientId );
+ boost::shared_ptr< Emote > getEmote( uint32_t EmoteId );
+ boost::shared_ptr< EmoteCategory > getEmoteCategory( uint32_t EmoteCategoryId );
+ boost::shared_ptr< ENpcBase > getENpcBase( uint32_t ENpcBaseId );
+ boost::shared_ptr< ENpcResident > getENpcResident( uint32_t ENpcResidentId );
+ boost::shared_ptr< EObj > getEObj( uint32_t EObjId );
+ boost::shared_ptr< EquipRaceCategory > getEquipRaceCategory( uint32_t EquipRaceCategoryId );
+ boost::shared_ptr< EquipSlotCategory > getEquipSlotCategory( uint32_t EquipSlotCategoryId );
+ boost::shared_ptr< EventAction > getEventAction( uint32_t EventActionId );
+ boost::shared_ptr< EventIconPriority > getEventIconPriority( uint32_t EventIconPriorityId );
+ boost::shared_ptr< EventIconType > getEventIconType( uint32_t EventIconTypeId );
+ boost::shared_ptr< EventItem > getEventItem( uint32_t EventItemId );
+ boost::shared_ptr< EventItemHelp > getEventItemHelp( uint32_t EventItemHelpId );
+ boost::shared_ptr< ExVersion > getExVersion( uint32_t ExVersionId );
+ boost::shared_ptr< Fate > getFate( uint32_t FateId );
+ boost::shared_ptr< FCActivity > getFCActivity( uint32_t FCActivityId );
+ boost::shared_ptr< FCAuthority > getFCAuthority( uint32_t FCAuthorityId );
+ boost::shared_ptr< FCAuthorityCategory > getFCAuthorityCategory( uint32_t FCAuthorityCategoryId );
+ boost::shared_ptr< FCChestName > getFCChestName( uint32_t FCChestNameId );
+ boost::shared_ptr< FccShop > getFccShop( uint32_t FccShopId );
+ boost::shared_ptr< FCHierarchy > getFCHierarchy( uint32_t FCHierarchyId );
+ boost::shared_ptr< FCReputation > getFCReputation( uint32_t FCReputationId );
+ boost::shared_ptr< FCRights > getFCRights( uint32_t FCRightsId );
+ boost::shared_ptr< FishingSpot > getFishingSpot( uint32_t FishingSpotId );
+ boost::shared_ptr< FishParameter > getFishParameter( uint32_t FishParameterId );
+ boost::shared_ptr< GardeningSeed > getGardeningSeed( uint32_t GardeningSeedId );
+ boost::shared_ptr< GatheringCondition > getGatheringCondition( uint32_t GatheringConditionId );
+ boost::shared_ptr< GatheringExp > getGatheringExp( uint32_t GatheringExpId );
+ boost::shared_ptr< GatheringItem > getGatheringItem( uint32_t GatheringItemId );
+ boost::shared_ptr< GatheringItemLevelConvertTable > getGatheringItemLevelConvertTable( uint32_t GatheringItemLevelConvertTableId );
+ boost::shared_ptr< GatheringItemPoint > getGatheringItemPoint( uint32_t GatheringItemPointId );
+ boost::shared_ptr< GatheringNotebookList > getGatheringNotebookList( uint32_t GatheringNotebookListId );
+ boost::shared_ptr< GatheringPoint > getGatheringPoint( uint32_t GatheringPointId );
+ boost::shared_ptr< GatheringPointBase > getGatheringPointBase( uint32_t GatheringPointBaseId );
+ boost::shared_ptr< GatheringPointBonus > getGatheringPointBonus( uint32_t GatheringPointBonusId );
+ boost::shared_ptr< GatheringPointBonusType > getGatheringPointBonusType( uint32_t GatheringPointBonusTypeId );
+ boost::shared_ptr< GatheringPointName > getGatheringPointName( uint32_t GatheringPointNameId );
+ boost::shared_ptr< GatheringSubCategory > getGatheringSubCategory( uint32_t GatheringSubCategoryId );
+ boost::shared_ptr< GatheringType > getGatheringType( uint32_t GatheringTypeId );
+ boost::shared_ptr< GcArmyExpedition > getGcArmyExpedition( uint32_t GcArmyExpeditionId );
+ boost::shared_ptr< GcArmyExpeditionMemberBonus > getGcArmyExpeditionMemberBonus( uint32_t GcArmyExpeditionMemberBonusId );
+ boost::shared_ptr< GcArmyExpeditionType > getGcArmyExpeditionType( uint32_t GcArmyExpeditionTypeId );
+ boost::shared_ptr< GcArmyMemberGrow > getGcArmyMemberGrow( uint32_t GcArmyMemberGrowId );
+ boost::shared_ptr< GcArmyTraining > getGcArmyTraining( uint32_t GcArmyTrainingId );
+ boost::shared_ptr< GCScripShopCategory > getGCScripShopCategory( uint32_t GCScripShopCategoryId );
+ boost::shared_ptr< GCScripShopItem > getGCScripShopItem( uint32_t GCScripShopItemId );
+ boost::shared_ptr< GCShop > getGCShop( uint32_t GCShopId );
+ boost::shared_ptr< GCShopItemCategory > getGCShopItemCategory( uint32_t GCShopItemCategoryId );
+ boost::shared_ptr< GCSupplyDuty > getGCSupplyDuty( uint32_t GCSupplyDutyId );
+ boost::shared_ptr< GCSupplyDutyReward > getGCSupplyDutyReward( uint32_t GCSupplyDutyRewardId );
+ boost::shared_ptr< GeneralAction > getGeneralAction( uint32_t GeneralActionId );
+ boost::shared_ptr< GilShop > getGilShop( uint32_t GilShopId );
+ boost::shared_ptr< GilShopItem > getGilShopItem( uint32_t GilShopItemId );
+ boost::shared_ptr< GoldSaucerTextData > getGoldSaucerTextData( uint32_t GoldSaucerTextDataId );
+ boost::shared_ptr< GrandCompany > getGrandCompany( uint32_t GrandCompanyId );
+ boost::shared_ptr< GrandCompanyRank > getGrandCompanyRank( uint32_t GrandCompanyRankId );
+ boost::shared_ptr< GuardianDeity > getGuardianDeity( uint32_t GuardianDeityId );
+ boost::shared_ptr< GuildleveAssignment > getGuildleveAssignment( uint32_t GuildleveAssignmentId );
+ boost::shared_ptr< GuildOrderGuide > getGuildOrderGuide( uint32_t GuildOrderGuideId );
+ boost::shared_ptr< GuildOrderOfficer > getGuildOrderOfficer( uint32_t GuildOrderOfficerId );
+ boost::shared_ptr< HouseRetainerPose > getHouseRetainerPose( uint32_t HouseRetainerPoseId );
+ boost::shared_ptr< HousingFurniture > getHousingFurniture( uint32_t HousingFurnitureId );
+ boost::shared_ptr< HousingYardObject > getHousingYardObject( uint32_t HousingYardObjectId );
+ boost::shared_ptr< InstanceContent > getInstanceContent( uint32_t InstanceContentId );
+ boost::shared_ptr< InstanceContentBuff > getInstanceContentBuff( uint32_t InstanceContentBuffId );
+ boost::shared_ptr< InstanceContentTextData > getInstanceContentTextData( uint32_t InstanceContentTextDataId );
+ boost::shared_ptr< InstanceContentType > getInstanceContentType( uint32_t InstanceContentTypeId );
+ boost::shared_ptr< Item > getItem( uint32_t ItemId );
+ boost::shared_ptr< ItemAction > getItemAction( uint32_t ItemActionId );
+ boost::shared_ptr< ItemFood > getItemFood( uint32_t ItemFoodId );
+ boost::shared_ptr< ItemSearchCategory > getItemSearchCategory( uint32_t ItemSearchCategoryId );
+ boost::shared_ptr< ItemSeries > getItemSeries( uint32_t ItemSeriesId );
+ boost::shared_ptr< ItemSpecialBonus > getItemSpecialBonus( uint32_t ItemSpecialBonusId );
+ boost::shared_ptr< ItemUICategory > getItemUICategory( uint32_t ItemUICategoryId );
+ boost::shared_ptr< JournalCategory > getJournalCategory( uint32_t JournalCategoryId );
+ boost::shared_ptr< JournalGenre > getJournalGenre( uint32_t JournalGenreId );
+ boost::shared_ptr< JournalSection > getJournalSection( uint32_t JournalSectionId );
+ boost::shared_ptr< Leve > getLeve( uint32_t LeveId );
+ boost::shared_ptr< LeveAssignmentType > getLeveAssignmentType( uint32_t LeveAssignmentTypeId );
+ boost::shared_ptr< LeveClient > getLeveClient( uint32_t LeveClientId );
+ boost::shared_ptr< Level > getLevel( uint32_t LevelId );
+ boost::shared_ptr< LeveRewardItem > getLeveRewardItem( uint32_t LeveRewardItemId );
+ boost::shared_ptr< LeveRewardItemGroup > getLeveRewardItemGroup( uint32_t LeveRewardItemGroupId );
+ boost::shared_ptr< LeveVfx > getLeveVfx( uint32_t LeveVfxId );
+ boost::shared_ptr< LogFilter > getLogFilter( uint32_t LogFilterId );
+ boost::shared_ptr< LogKind > getLogKind( uint32_t LogKindId );
+ boost::shared_ptr< LogKindCategoryText > getLogKindCategoryText( uint32_t LogKindCategoryTextId );
+ boost::shared_ptr< LogMessage > getLogMessage( uint32_t LogMessageId );
+ boost::shared_ptr< MacroIcon > getMacroIcon( uint32_t MacroIconId );
+ boost::shared_ptr< MacroIconRedirectOld > getMacroIconRedirectOld( uint32_t MacroIconRedirectOldId );
+ boost::shared_ptr< MainCommand > getMainCommand( uint32_t MainCommandId );
+ boost::shared_ptr< MainCommandCategory > getMainCommandCategory( uint32_t MainCommandCategoryId );
+ boost::shared_ptr< Map > getMap( uint32_t MapId );
+ boost::shared_ptr< MapMarker > getMapMarker( uint32_t MapMarkerId );
+ boost::shared_ptr< MapSymbol > getMapSymbol( uint32_t MapSymbolId );
+ boost::shared_ptr< MasterpieceSupplyDuty > getMasterpieceSupplyDuty( uint32_t MasterpieceSupplyDutyId );
+ boost::shared_ptr< MasterpieceSupplyMultiplier > getMasterpieceSupplyMultiplier( uint32_t MasterpieceSupplyMultiplierId );
+ boost::shared_ptr< Materia > getMateria( uint32_t MateriaId );
+ boost::shared_ptr< MinionRace > getMinionRace( uint32_t MinionRaceId );
+ boost::shared_ptr< MinionRules > getMinionRules( uint32_t MinionRulesId );
+ boost::shared_ptr< MinionSkillType > getMinionSkillType( uint32_t MinionSkillTypeId );
+ boost::shared_ptr< MobHuntTarget > getMobHuntTarget( uint32_t MobHuntTargetId );
+ boost::shared_ptr< ModelChara > getModelChara( uint32_t ModelCharaId );
+ boost::shared_ptr< MonsterNote > getMonsterNote( uint32_t MonsterNoteId );
+ boost::shared_ptr< MonsterNoteTarget > getMonsterNoteTarget( uint32_t MonsterNoteTargetId );
+ boost::shared_ptr< Mount > getMount( uint32_t MountId );
+ boost::shared_ptr< MountAction > getMountAction( uint32_t MountActionId );
+ boost::shared_ptr< NpcEquip > getNpcEquip( uint32_t NpcEquipId );
+ boost::shared_ptr< Omen > getOmen( uint32_t OmenId );
+ boost::shared_ptr< OnlineStatus > getOnlineStatus( uint32_t OnlineStatusId );
+ boost::shared_ptr< Orchestrion > getOrchestrion( uint32_t OrchestrionId );
+ boost::shared_ptr< OrchestrionPath > getOrchestrionPath( uint32_t OrchestrionPathId );
+ boost::shared_ptr< ParamGrow > getParamGrow( uint32_t ParamGrowId );
+ boost::shared_ptr< Pet > getPet( uint32_t PetId );
+ boost::shared_ptr< PetAction > getPetAction( uint32_t PetActionId );
+ boost::shared_ptr< Picture > getPicture( uint32_t PictureId );
+ boost::shared_ptr< PlaceName > getPlaceName( uint32_t PlaceNameId );
+ boost::shared_ptr< Quest > getQuest( uint32_t QuestId );
+ boost::shared_ptr< QuestRewardOther > getQuestRewardOther( uint32_t QuestRewardOtherId );
+ boost::shared_ptr< Race > getRace( uint32_t RaceId );
+ boost::shared_ptr< RacingChocoboItem > getRacingChocoboItem( uint32_t RacingChocoboItemId );
+ boost::shared_ptr< RacingChocoboName > getRacingChocoboName( uint32_t RacingChocoboNameId );
+ boost::shared_ptr< RacingChocoboNameCategory > getRacingChocoboNameCategory( uint32_t RacingChocoboNameCategoryId );
+ boost::shared_ptr< RacingChocoboNameInfo > getRacingChocoboNameInfo( uint32_t RacingChocoboNameInfoId );
+ boost::shared_ptr< RacingChocoboParam > getRacingChocoboParam( uint32_t RacingChocoboParamId );
+ boost::shared_ptr< Recipe > getRecipe( uint32_t RecipeId );
+ boost::shared_ptr< RecipeElement > getRecipeElement( uint32_t RecipeElementId );
+ boost::shared_ptr< RecipeLevelTable > getRecipeLevelTable( uint32_t RecipeLevelTableId );
+ boost::shared_ptr< RecipeNotebookList > getRecipeNotebookList( uint32_t RecipeNotebookListId );
+ boost::shared_ptr< Relic > getRelic( uint32_t RelicId );
+ boost::shared_ptr< Relic3 > getRelic3( uint32_t Relic3Id );
+ boost::shared_ptr< RelicItem > getRelicItem( uint32_t RelicItemId );
+ boost::shared_ptr< RelicNote > getRelicNote( uint32_t RelicNoteId );
+ boost::shared_ptr< RelicNoteCategory > getRelicNoteCategory( uint32_t RelicNoteCategoryId );
+ boost::shared_ptr< RetainerTask > getRetainerTask( uint32_t RetainerTaskId );
+ boost::shared_ptr< RetainerTaskNormal > getRetainerTaskNormal( uint32_t RetainerTaskNormalId );
+ boost::shared_ptr< RetainerTaskParameter > getRetainerTaskParameter( uint32_t RetainerTaskParameterId );
+ boost::shared_ptr< RetainerTaskRandom > getRetainerTaskRandom( uint32_t RetainerTaskRandomId );
+ boost::shared_ptr< Salvage > getSalvage( uint32_t SalvageId );
+ boost::shared_ptr< SatisfactionNpc > getSatisfactionNpc( uint32_t SatisfactionNpcId );
+ boost::shared_ptr< SatisfactionSupply > getSatisfactionSupply( uint32_t SatisfactionSupplyId );
+ boost::shared_ptr< SatisfactionSupplyReward > getSatisfactionSupplyReward( uint32_t SatisfactionSupplyRewardId );
+ boost::shared_ptr< ScreenImage > getScreenImage( uint32_t ScreenImageId );
+ boost::shared_ptr< SecretRecipeBook > getSecretRecipeBook( uint32_t SecretRecipeBookId );
+ boost::shared_ptr< SpearfishingItem > getSpearfishingItem( uint32_t SpearfishingItemId );
+ boost::shared_ptr< SpearfishingNotebook > getSpearfishingNotebook( uint32_t SpearfishingNotebookId );
+ boost::shared_ptr< SpecialShop > getSpecialShop( uint32_t SpecialShopId );
+ boost::shared_ptr< SpecialShopItemCategory > getSpecialShopItemCategory( uint32_t SpecialShopItemCategoryId );
+ boost::shared_ptr< Stain > getStain( uint32_t StainId );
+ boost::shared_ptr< Status > getStatus( uint32_t StatusId );
+ boost::shared_ptr< Story > getStory( uint32_t StoryId );
+ boost::shared_ptr< SwitchTalk > getSwitchTalk( uint32_t SwitchTalkId );
+ boost::shared_ptr< TerritoryType > getTerritoryType( uint32_t TerritoryTypeId );
+ boost::shared_ptr< TextCommand > getTextCommand( uint32_t TextCommandId );
+ boost::shared_ptr< Title > getTitle( uint32_t TitleId );
+ boost::shared_ptr< Tomestones > getTomestones( uint32_t TomestonesId );
+ boost::shared_ptr< TomestonesItem > getTomestonesItem( uint32_t TomestonesItemId );
+ boost::shared_ptr< TopicSelect > getTopicSelect( uint32_t TopicSelectId );
+ boost::shared_ptr< Town > getTown( uint32_t TownId );
+ boost::shared_ptr< Trait > getTrait( uint32_t TraitId );
+ boost::shared_ptr< TraitRecast > getTraitRecast( uint32_t TraitRecastId );
+ boost::shared_ptr< TraitTransient > getTraitTransient( uint32_t TraitTransientId );
+ boost::shared_ptr< Tribe > getTribe( uint32_t TribeId );
+ boost::shared_ptr< TripleTriad > getTripleTriad( uint32_t TripleTriadId );
+ boost::shared_ptr< TripleTriadCard > getTripleTriadCard( uint32_t TripleTriadCardId );
+ boost::shared_ptr< TripleTriadCardRarity > getTripleTriadCardRarity( uint32_t TripleTriadCardRarityId );
+ boost::shared_ptr< TripleTriadCardResident > getTripleTriadCardResident( uint32_t TripleTriadCardResidentId );
+ boost::shared_ptr< TripleTriadCardType > getTripleTriadCardType( uint32_t TripleTriadCardTypeId );
+ boost::shared_ptr< TripleTriadCompetition > getTripleTriadCompetition( uint32_t TripleTriadCompetitionId );
+ boost::shared_ptr< TripleTriadRule > getTripleTriadRule( uint32_t TripleTriadRuleId );
+ boost::shared_ptr< Tutorial > getTutorial( uint32_t TutorialId );
+ boost::shared_ptr< TutorialDPS > getTutorialDPS( uint32_t TutorialDPSId );
+ boost::shared_ptr< TutorialHealer > getTutorialHealer( uint32_t TutorialHealerId );
+ boost::shared_ptr< TutorialTank > getTutorialTank( uint32_t TutorialTankId );
+ boost::shared_ptr< Warp > getWarp( uint32_t WarpId );
+ boost::shared_ptr< Weather > getWeather( uint32_t WeatherId );
+ boost::shared_ptr< WeatherGroup > getWeatherGroup( uint32_t WeatherGroupId );
+ boost::shared_ptr< WeatherRate > getWeatherRate( uint32_t WeatherRateId );
+ boost::shared_ptr< WeeklyBingoOrderData > getWeeklyBingoOrderData( uint32_t WeeklyBingoOrderDataId );
+ boost::shared_ptr< WeeklyBingoRewardData > getWeeklyBingoRewardData( uint32_t WeeklyBingoRewardDataId );
+ boost::shared_ptr< WeeklyBingoText > getWeeklyBingoText( uint32_t WeeklyBingoTextId );
+ boost::shared_ptr< WorldDCGroupType > getWorldDCGroupType( uint32_t WorldDCGroupTypeId );
+
+
+ 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_ActionCategoryIdList;
+ std::set< uint32_t > m_ActionComboRouteIdList;
+ std::set< uint32_t > m_ActionIndirectionIdList;
+ std::set< uint32_t > m_ActionProcStatusIdList;
+ std::set< uint32_t > m_ActionTimelineIdList;
+ 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_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_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_ChainBonusIdList;
+ 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_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_ContentRouletteIdList;
+ 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_EmoteCategoryIdList;
+ std::set< uint32_t > m_ENpcBaseIdList;
+ std::set< uint32_t > m_ENpcResidentIdList;
+ std::set< uint32_t > m_EObjIdList;
+ std::set< uint32_t > m_EquipRaceCategoryIdList;
+ std::set< uint32_t > m_EquipSlotCategoryIdList;
+ 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_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_FCReputationIdList;
+ std::set< uint32_t > m_FCRightsIdList;
+ 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_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_InstanceContentTypeIdList;
+ 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_MapSymbolIdList;
+ 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_NpcEquipIdList;
+ std::set< uint32_t > m_OmenIdList;
+ std::set< uint32_t > m_OnlineStatusIdList;
+ std::set< uint32_t > m_OrchestrionIdList;
+ std::set< uint32_t > m_OrchestrionPathIdList;
+ std::set< uint32_t > m_ParamGrowIdList;
+ 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_QuestIdList;
+ std::set< uint32_t > m_QuestRewardOtherIdList;
+ 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_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_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_ScreenImageIdList;
+ std::set< uint32_t > m_SecretRecipeBookIdList;
+ 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_StatusIdList;
+ std::set< uint32_t > m_StoryIdList;
+ 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_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_WarpIdList;
+ std::set< uint32_t > m_WeatherIdList;
+ std::set< uint32_t > m_WeatherGroupIdList;
+ std::set< uint32_t > m_WeatherRateIdList;
+ std::set< uint32_t > m_WeeklyBingoOrderDataIdList;
+ std::set< uint32_t > m_WeeklyBingoRewardDataIdList;
+ std::set< uint32_t > m_WeeklyBingoTextIdList;
+ std::set< uint32_t > m_WorldDCGroupTypeIdList;
+
+
+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 )
+ loadIdList( m_AchievementCategoryDat, m_AchievementCategoryIdList );
+ 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 )
+ loadIdList( m_ActionDat, m_ActionIdList );
+ return m_ActionIdList;
+}
+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 )
+ loadIdList( m_ActionComboRouteDat, m_ActionComboRouteIdList );
+ 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 >& 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 )
+ loadIdList( m_ActionTimelineDat, m_ActionTimelineIdList );
+ return m_ActionTimelineIdList;
+}
+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 )
+ loadIdList( m_AddonDat, m_AddonIdList );
+ 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 )
+ loadIdList( m_AdventureExPhaseDat, m_AdventureExPhaseIdList );
+ 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 >& 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 )
+ loadIdList( m_AetheryteDat, m_AetheryteIdList );
+ 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 )
+ loadIdList( m_AirshipExplorationLogDat, m_AirshipExplorationLogIdList );
+ 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 )
+ loadIdList( m_AirshipExplorationPartDat, m_AirshipExplorationPartIdList );
+ 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 )
+ loadIdList( m_AnimaWeapon5Dat, m_AnimaWeapon5IdList );
+ 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 )
+ loadIdList( m_AnimaWeapon5PatternGroupDat, m_AnimaWeapon5PatternGroupIdList );
+ 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 )
+ loadIdList( m_AnimaWeapon5SpiritTalkParamDat, m_AnimaWeapon5SpiritTalkParamIdList );
+ 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 )
+ loadIdList( m_AnimaWeaponFUITalkDat, m_AnimaWeaponFUITalkIdList );
+ 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 )
+ loadIdList( m_AnimaWeaponIconDat, m_AnimaWeaponIconIdList );
+ 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 )
+ loadIdList( m_AquariumFishDat, m_AquariumFishIdList );
+ 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 )
+ loadIdList( m_AttackTypeDat, m_AttackTypeIdList );
+ 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 )
+ loadIdList( m_BaseParamDat, m_BaseParamIdList );
+ 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 )
+ loadIdList( m_BeastRankBonusDat, m_BeastRankBonusIdList );
+ 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 )
+ loadIdList( m_BeastTribeDat, m_BeastTribeIdList );
+ 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 )
+ loadIdList( m_BGMDat, m_BGMIdList );
+ 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 )
+ loadIdList( m_BNpcBaseDat, m_BNpcBaseIdList );
+ 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 )
+ loadIdList( m_BNpcNameDat, m_BNpcNameIdList );
+ return m_BNpcNameIdList;
+}
+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 )
+ loadIdList( m_BuddyEquipDat, m_BuddyEquipIdList );
+ 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 )
+ loadIdList( m_BuddyRankDat, m_BuddyRankIdList );
+ 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 )
+ loadIdList( m_CabinetDat, m_CabinetIdList );
+ 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 )
+ loadIdList( m_CalendarDat, m_CalendarIdList );
+ return m_CalendarIdList;
+}
+const std::set< uint32_t >& getChainBonusIdList()
+{
+ if( m_ChainBonusIdList.size() == 0 )
+ loadIdList( m_ChainBonusDat, m_ChainBonusIdList );
+ return m_ChainBonusIdList;
+}
+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 )
+ loadIdList( m_CharaMakeTypeDat, m_CharaMakeTypeIdList );
+ 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 )
+ loadIdList( m_ChocoboRaceAbilityDat, m_ChocoboRaceAbilityIdList );
+ 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 )
+ loadIdList( m_ChocoboRaceItemDat, m_ChocoboRaceItemIdList );
+ 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 )
+ loadIdList( m_ChocoboRaceStatusDat, m_ChocoboRaceStatusIdList );
+ 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 >& 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 )
+ loadIdList( m_ClassJobDat, m_ClassJobIdList );
+ 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 )
+ loadIdList( m_CompanionDat, m_CompanionIdList );
+ 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 )
+ loadIdList( m_CompanionTransientDat, m_CompanionTransientIdList );
+ 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 )
+ loadIdList( m_CompanyCraftDraftDat, m_CompanyCraftDraftIdList );
+ 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 )
+ loadIdList( m_CompanyCraftManufactoryStateDat, m_CompanyCraftManufactoryStateIdList );
+ 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 )
+ loadIdList( m_CompanyCraftProcessDat, m_CompanyCraftProcessIdList );
+ 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 )
+ loadIdList( m_CompanyCraftSupplyItemDat, m_CompanyCraftSupplyItemIdList );
+ 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 )
+ loadIdList( m_CompleteJournalDat, m_CompleteJournalIdList );
+ 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 )
+ loadIdList( m_ContentExActionDat, m_ContentExActionIdList );
+ 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 )
+ loadIdList( m_ContentFinderConditionTransientDat, m_ContentFinderConditionTransientIdList );
+ 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 >& getContentRouletteIdList()
+{
+ if( m_ContentRouletteIdList.size() == 0 )
+ loadIdList( m_ContentRouletteDat, m_ContentRouletteIdList );
+ return m_ContentRouletteIdList;
+}
+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 )
+ loadIdList( m_CraftActionDat, m_CraftActionIdList );
+ 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 )
+ loadIdList( m_CraftTypeDat, m_CraftTypeIdList );
+ 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 )
+ loadIdList( m_CustomTalkDat, m_CustomTalkIdList );
+ 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 )
+ loadIdList( m_CutScreenImageDat, m_CutScreenImageIdList );
+ 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 )
+ loadIdList( m_DeepDungeonBanDat, m_DeepDungeonBanIdList );
+ 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 )
+ loadIdList( m_DeepDungeonEquipmentDat, m_DeepDungeonEquipmentIdList );
+ 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 )
+ loadIdList( m_DeepDungeonItemDat, m_DeepDungeonItemIdList );
+ 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 )
+ loadIdList( m_DefaultTalkDat, m_DefaultTalkIdList );
+ 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 )
+ loadIdList( m_DisposalShopDat, m_DisposalShopIdList );
+ 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 )
+ loadIdList( m_DisposalShopItemDat, m_DisposalShopItemIdList );
+ 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 )
+ loadIdList( m_DpsChallengeOfficerDat, m_DpsChallengeOfficerIdList );
+ 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 )
+ loadIdList( m_EmoteDat, m_EmoteIdList );
+ return m_EmoteIdList;
+}
+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 )
+ loadIdList( m_ENpcBaseDat, m_ENpcBaseIdList );
+ 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 )
+ loadIdList( m_EObjDat, m_EObjIdList );
+ return m_EObjIdList;
+}
+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 )
+ loadIdList( m_EquipSlotCategoryDat, m_EquipSlotCategoryIdList );
+ return m_EquipSlotCategoryIdList;
+}
+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 )
+ loadIdList( m_EventIconPriorityDat, m_EventIconPriorityIdList );
+ 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 )
+ loadIdList( m_EventItemDat, m_EventItemIdList );
+ 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 )
+ loadIdList( m_ExVersionDat, m_ExVersionIdList );
+ 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 )
+ loadIdList( m_FCActivityDat, m_FCActivityIdList );
+ return m_FCActivityIdList;
+}
+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 )
+ loadIdList( m_FCAuthorityCategoryDat, m_FCAuthorityCategoryIdList );
+ 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 )
+ loadIdList( m_FccShopDat, m_FccShopIdList );
+ 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 >& 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 )
+ loadIdList( m_FCRightsDat, m_FCRightsIdList );
+ return m_FCRightsIdList;
+}
+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 )
+ loadIdList( m_FishParameterDat, m_FishParameterIdList );
+ 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 )
+ loadIdList( m_GatheringConditionDat, m_GatheringConditionIdList );
+ 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 )
+ loadIdList( m_GatheringItemDat, m_GatheringItemIdList );
+ 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 )
+ loadIdList( m_GatheringItemPointDat, m_GatheringItemPointIdList );
+ 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 )
+ loadIdList( m_GatheringPointDat, m_GatheringPointIdList );
+ 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 )
+ loadIdList( m_GatheringPointBonusDat, m_GatheringPointBonusIdList );
+ 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 )
+ loadIdList( m_GatheringPointNameDat, m_GatheringPointNameIdList );
+ 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 )
+ loadIdList( m_GatheringTypeDat, m_GatheringTypeIdList );
+ 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 )
+ loadIdList( m_GcArmyExpeditionMemberBonusDat, m_GcArmyExpeditionMemberBonusIdList );
+ 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 )
+ loadIdList( m_GcArmyMemberGrowDat, m_GcArmyMemberGrowIdList );
+ 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 >& 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 )
+ loadIdList( m_GCScripShopItemDat, m_GCScripShopItemIdList );
+ 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 )
+ loadIdList( m_GCShopItemCategoryDat, m_GCShopItemCategoryIdList );
+ 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 )
+ loadIdList( m_GCSupplyDutyRewardDat, m_GCSupplyDutyRewardIdList );
+ 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 )
+ loadIdList( m_GilShopDat, m_GilShopIdList );
+ 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 )
+ loadIdList( m_GoldSaucerTextDataDat, m_GoldSaucerTextDataIdList );
+ 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 )
+ loadIdList( m_GrandCompanyRankDat, m_GrandCompanyRankIdList );
+ 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 )
+ loadIdList( m_GuildleveAssignmentDat, m_GuildleveAssignmentIdList );
+ 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 )
+ loadIdList( m_GuildOrderOfficerDat, m_GuildOrderOfficerIdList );
+ 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 )
+ loadIdList( m_HousingFurnitureDat, m_HousingFurnitureIdList );
+ 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 )
+ loadIdList( m_InstanceContentDat, m_InstanceContentIdList );
+ 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 )
+ loadIdList( m_InstanceContentTextDataDat, m_InstanceContentTextDataIdList );
+ return m_InstanceContentTextDataIdList;
+}
+const std::set< uint32_t >& getInstanceContentTypeIdList()
+{
+ if( m_InstanceContentTypeIdList.size() == 0 )
+ loadIdList( m_InstanceContentTypeDat, m_InstanceContentTypeIdList );
+ return m_InstanceContentTypeIdList;
+}
+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 )
+ loadIdList( m_ItemActionDat, m_ItemActionIdList );
+ 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 )
+ loadIdList( m_ItemSearchCategoryDat, m_ItemSearchCategoryIdList );
+ 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 )
+ loadIdList( m_ItemSpecialBonusDat, m_ItemSpecialBonusIdList );
+ 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 )
+ loadIdList( m_JournalCategoryDat, m_JournalCategoryIdList );
+ 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 )
+ loadIdList( m_JournalSectionDat, m_JournalSectionIdList );
+ 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 )
+ loadIdList( m_LeveAssignmentTypeDat, m_LeveAssignmentTypeIdList );
+ 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 )
+ loadIdList( m_LevelDat, m_LevelIdList );
+ 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 )
+ loadIdList( m_LeveRewardItemGroupDat, m_LeveRewardItemGroupIdList );
+ 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 )
+ loadIdList( m_LogFilterDat, m_LogFilterIdList );
+ 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 )
+ loadIdList( m_LogKindCategoryTextDat, m_LogKindCategoryTextIdList );
+ 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 )
+ loadIdList( m_MacroIconDat, m_MacroIconIdList );
+ 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 )
+ loadIdList( m_MainCommandDat, m_MainCommandIdList );
+ 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 )
+ loadIdList( m_MapDat, m_MapIdList );
+ 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 >& getMapSymbolIdList()
+{
+ if( m_MapSymbolIdList.size() == 0 )
+ loadIdList( m_MapSymbolDat, m_MapSymbolIdList );
+ return m_MapSymbolIdList;
+}
+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 )
+ loadIdList( m_MasterpieceSupplyMultiplierDat, m_MasterpieceSupplyMultiplierIdList );
+ 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 )
+ loadIdList( m_MinionRaceDat, m_MinionRaceIdList );
+ 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 )
+ loadIdList( m_MinionSkillTypeDat, m_MinionSkillTypeIdList );
+ 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 )
+ loadIdList( m_ModelCharaDat, m_ModelCharaIdList );
+ 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 )
+ loadIdList( m_MonsterNoteTargetDat, m_MonsterNoteTargetIdList );
+ 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 )
+ loadIdList( m_MountActionDat, m_MountActionIdList );
+ return m_MountActionIdList;
+}
+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 )
+ loadIdList( m_OmenDat, m_OmenIdList );
+ 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 >& getOrchestrionIdList()
+{
+ if( m_OrchestrionIdList.size() == 0 )
+ loadIdList( m_OrchestrionDat, m_OrchestrionIdList );
+ return m_OrchestrionIdList;
+}
+const std::set< uint32_t >& getOrchestrionPathIdList()
+{
+ if( m_OrchestrionPathIdList.size() == 0 )
+ loadIdList( m_OrchestrionPathDat, m_OrchestrionPathIdList );
+ return m_OrchestrionPathIdList;
+}
+const std::set< uint32_t >& getParamGrowIdList()
+{
+ if( m_ParamGrowIdList.size() == 0 )
+ loadIdList( m_ParamGrowDat, m_ParamGrowIdList );
+ return m_ParamGrowIdList;
+}
+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 )
+ loadIdList( m_PetActionDat, m_PetActionIdList );
+ 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 )
+ loadIdList( m_PlaceNameDat, m_PlaceNameIdList );
+ return m_PlaceNameIdList;
+}
+const std::set< uint32_t >& getQuestIdList()
+{
+ if( m_QuestIdList.size() == 0 )
+ loadIdList( m_QuestDat, m_QuestIdList );
+ return m_QuestIdList;
+}
+const std::set< uint32_t >& getQuestRewardOtherIdList()
+{
+ if( m_QuestRewardOtherIdList.size() == 0 )
+ loadIdList( m_QuestRewardOtherDat, m_QuestRewardOtherIdList );
+ return m_QuestRewardOtherIdList;
+}
+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 )
+ loadIdList( m_RacingChocoboItemDat, m_RacingChocoboItemIdList );
+ 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 )
+ loadIdList( m_RacingChocoboNameCategoryDat, m_RacingChocoboNameCategoryIdList );
+ 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 )
+ loadIdList( m_RacingChocoboParamDat, m_RacingChocoboParamIdList );
+ 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 )
+ loadIdList( m_RecipeElementDat, m_RecipeElementIdList );
+ 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 )
+ loadIdList( m_RecipeNotebookListDat, m_RecipeNotebookListIdList );
+ return m_RecipeNotebookListIdList;
+}
+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 )
+ loadIdList( m_Relic3Dat, m_Relic3IdList );
+ 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 )
+ loadIdList( m_RelicNoteDat, m_RelicNoteIdList );
+ 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 )
+ loadIdList( m_RetainerTaskDat, m_RetainerTaskIdList );
+ return m_RetainerTaskIdList;
+}
+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 )
+ loadIdList( m_RetainerTaskParameterDat, m_RetainerTaskParameterIdList );
+ 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 )
+ loadIdList( m_SalvageDat, m_SalvageIdList );
+ 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 )
+ loadIdList( m_SatisfactionSupplyDat, m_SatisfactionSupplyIdList );
+ 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 >& 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 )
+ loadIdList( m_SecretRecipeBookDat, m_SecretRecipeBookIdList );
+ return m_SecretRecipeBookIdList;
+}
+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 )
+ loadIdList( m_SpearfishingNotebookDat, m_SpearfishingNotebookIdList );
+ 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 )
+ loadIdList( m_SpecialShopItemCategoryDat, m_SpecialShopItemCategoryIdList );
+ 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 >& getStatusIdList()
+{
+ if( m_StatusIdList.size() == 0 )
+ loadIdList( m_StatusDat, m_StatusIdList );
+ return m_StatusIdList;
+}
+const std::set< uint32_t >& getStoryIdList()
+{
+ if( m_StoryIdList.size() == 0 )
+ loadIdList( m_StoryDat, m_StoryIdList );
+ return m_StoryIdList;
+}
+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 )
+ loadIdList( m_TerritoryTypeDat, m_TerritoryTypeIdList );
+ 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 )
+ loadIdList( m_TitleDat, m_TitleIdList );
+ 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 )
+ loadIdList( m_TomestonesItemDat, m_TomestonesItemIdList );
+ 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 )
+ loadIdList( m_TownDat, m_TownIdList );
+ 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 )
+ loadIdList( m_TraitRecastDat, m_TraitRecastIdList );
+ 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 >& 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 )
+ loadIdList( m_TripleTriadDat, m_TripleTriadIdList );
+ 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 )
+ loadIdList( m_TripleTriadCardRarityDat, m_TripleTriadCardRarityIdList );
+ 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 )
+ loadIdList( m_TripleTriadCardTypeDat, m_TripleTriadCardTypeIdList );
+ 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 )
+ loadIdList( m_TripleTriadRuleDat, m_TripleTriadRuleIdList );
+ 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 )
+ loadIdList( m_TutorialDPSDat, m_TutorialDPSIdList );
+ 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 )
+ loadIdList( m_TutorialTankDat, m_TutorialTankIdList );
+ return m_TutorialTankIdList;
+}
+const std::set< uint32_t >& getWarpIdList()
+{
+ if( m_WarpIdList.size() == 0 )
+ loadIdList( m_WarpDat, m_WarpIdList );
+ return m_WarpIdList;
+}
+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 )
+ loadIdList( m_WeatherGroupDat, m_WeatherGroupIdList );
+ 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 >& 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 )
+ loadIdList( m_WeeklyBingoRewardDataDat, m_WeeklyBingoRewardDataIdList );
+ 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 >& getWorldDCGroupTypeIdList()
+{
+ if( m_WorldDCGroupTypeIdList.size() == 0 )
+ loadIdList( m_WorldDCGroupTypeDat, m_WorldDCGroupTypeIdList );
+ return m_WorldDCGroupTypeIdList;
+}
+
};
diff --git a/src/tools/exd_struct_test/main.cpp b/src/tools/exd_struct_test/main.cpp
index ca49ffe6..0ba59997 100644
--- a/src/tools/exd_struct_test/main.cpp
+++ b/src/tools/exd_struct_test/main.cpp
@@ -25,8 +25,8 @@ Core::Logger g_log;
Core::Data::ExdDataGenerated g_exdData;
-const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" );
-//const std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv" );
+//const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" );
+const std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv" );
int main()
@@ -41,10 +41,15 @@ int main()
return 0;
}
- auto teri = g_exdData.getTerritoryType( 132 );
-
- g_log.info( teri->name );
- g_log.info( teri->bg );
+ auto idList = g_exdData.getTerritoryTypeIdList();
+
+ for( auto id : idList )
+ {
+ auto teri1 = g_exdData.getTerritoryType( id );
+
+ g_log.info( teri1->name );
+ g_log.info( teri1->bg );
+ }
return 0;
}