summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml16
-rw-r--r--conf/map/help.txt2
-rw-r--r--conf/messages.conf5
-rw-r--r--db/pre-re/item_chain.conf4
-rw-r--r--db/pre-re/item_db.conf7
-rw-r--r--db/re/item_chain.conf4
-rw-r--r--doc/atcommands.txt6
-rw-r--r--doc/constants.md1
-rw-r--r--doc/script_commands.txt38
-rw-r--r--sql-files/item_db.sql3
-rw-r--r--sql-files/item_db2.sql2
-rw-r--r--sql-files/item_db_re.sql2
-rw-r--r--sql-files/mob_db.sql2
-rw-r--r--sql-files/mob_db2.sql2
-rw-r--r--sql-files/mob_db_re.sql2
-rw-r--r--sql-files/mob_skill_db.sql2
-rw-r--r--sql-files/mob_skill_db2.sql2
-rw-r--r--sql-files/mob_skill_db_re.sql2
-rw-r--r--src/common/HPMDataCheck.h3
-rw-r--r--src/common/HPMSymbols.inc.h2
-rw-r--r--src/common/packets/packets2003_len_main.h4
-rw-r--r--src/common/packets/packets2003_len_sak.h4
-rw-r--r--src/common/packets/packets2004_len_ad.h4
-rw-r--r--src/common/packets/packets2004_len_main.h4
-rw-r--r--src/common/packets/packets2004_len_sak.h4
-rw-r--r--src/common/packets/packets2005_len_ad.h4
-rw-r--r--src/common/packets/packets2005_len_main.h4
-rw-r--r--src/common/packets/packets2005_len_sak.h4
-rw-r--r--src/common/packets/packets2006_len_ad.h4
-rw-r--r--src/common/packets/packets2006_len_main.h4
-rw-r--r--src/common/packets/packets2006_len_sak.h4
-rw-r--r--src/common/packets/packets2007_len_ad.h4
-rw-r--r--src/common/packets/packets2007_len_main.h4
-rw-r--r--src/common/packets/packets2007_len_sak.h4
-rw-r--r--src/common/packets/packets2008_len_ad.h4
-rw-r--r--src/common/packets/packets2008_len_main.h4
-rw-r--r--src/common/packets/packets2008_len_re.h4
-rw-r--r--src/common/packets/packets2008_len_sak.h4
-rw-r--r--src/common/packets/packets2009_len_main.h4
-rw-r--r--src/common/packets/packets2009_len_re.h4
-rw-r--r--src/common/packets/packets2009_len_sak.h4
-rw-r--r--src/common/packets/packets2010_len_main.h4
-rw-r--r--src/common/packets/packets2010_len_re.h4
-rw-r--r--src/common/packets/packets2011_len_main.h4
-rw-r--r--src/common/packets/packets2011_len_re.h4
-rw-r--r--src/common/packets/packets2012_len_main.h4
-rw-r--r--src/common/packets/packets2012_len_re.h4
-rw-r--r--src/common/packets/packets2013_len_main.h4
-rw-r--r--src/common/packets/packets2013_len_re.h4
-rw-r--r--src/common/packets/packets2014_len_main.h4
-rw-r--r--src/common/packets/packets2014_len_re.h4
-rw-r--r--src/common/packets/packets2015_len_main.h4
-rw-r--r--src/common/packets/packets2015_len_re.h4
-rw-r--r--src/common/packets/packets2016_len_main.h4
-rw-r--r--src/common/packets/packets2016_len_re.h4
-rw-r--r--src/common/packets/packets2017_len_main.h4
-rw-r--r--src/common/packets/packets2017_len_re.h4
-rw-r--r--src/common/packets/packets2017_len_zero.h4
-rw-r--r--src/common/packets/packets2018_len_main.h4
-rw-r--r--src/common/packets/packets2018_len_re.h4
-rw-r--r--src/common/packets/packets2018_len_zero.h4
-rw-r--r--src/common/packets/packets2019_len_main.h56
-rw-r--r--src/common/packets/packets2019_len_re.h56
-rw-r--r--src/common/packets/packets2019_len_zero.h56
-rw-r--r--src/common/packets/packets2020_len_main.h4615
-rw-r--r--src/common/packets/packets2020_len_re.h4621
-rw-r--r--src/common/packets/packets_len_ad.h4
-rw-r--r--src/common/packets/packets_len_main.h8
-rw-r--r--src/common/packets/packets_len_re.h8
-rw-r--r--src/common/packets/packets_len_sak.h4
-rw-r--r--src/common/packets/packets_len_zero.h4
-rw-r--r--src/map/atcommand.c10
-rw-r--r--src/map/clif.c99
-rw-r--r--src/map/clif.h5
-rw-r--r--src/map/itemdb.c5
-rw-r--r--src/map/itemdb.h1
-rw-r--r--src/map/map.c23
-rw-r--r--src/map/messages.h2
-rw-r--r--src/map/messages_ad.h4
-rw-r--r--src/map/messages_main.h43
-rw-r--r--src/map/messages_re.h39
-rw-r--r--src/map/messages_sak.h4
-rw-r--r--src/map/messages_zero.h20
-rw-r--r--src/map/packets.h8
-rw-r--r--src/map/packets_keys_main.h11
-rw-r--r--src/map/packets_keys_zero.h9
-rw-r--r--src/map/packets_shuffle_main.h11
-rw-r--r--src/map/packets_shuffle_re.h11
-rw-r--r--src/map/packets_shuffle_zero.h9
-rw-r--r--src/map/packets_struct.h39
-rw-r--r--src/map/pc.c29
-rw-r--r--src/map/pc.h4
-rw-r--r--src/map/script.c323
-rw-r--r--src/map/script.h21
-rw-r--r--src/map/unit.c6
-rw-r--r--src/plugins/HPMHooking/HPMHooking.Defs.inc18
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.Hooks.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.sources.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.Hooks.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.sources.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc26
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc8
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.Hooks.inc135
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.sources.inc2
-rw-r--r--src/plugins/mapcache.c23
109 files changed, 10255 insertions, 412 deletions
diff --git a/.travis.yml b/.travis.yml
index cb0f4b582..cb4139c38 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -47,7 +47,7 @@ matrix:
- cd ../..
- ./tools/checksql.sh
- compiler: gcc
- env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug CC=gcc-6 --disable-manager --enable-Werror --enable-packetver=20191211 --enable-packetver-re --enable-buildbot" HPM="1"
+ env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug CC=gcc-6 --disable-manager --enable-Werror --enable-packetver=20200108 --enable-packetver-re --enable-buildbot" HPM="1"
addons:
apt:
sources:
@@ -60,7 +60,7 @@ matrix:
- libxml-sax-perl
- libxml-parser-perl
- compiler: clang
- env: CONFIGURE_FLAGS="--enable-debug CC=clang-5.0 --enable-Werror --enable-packetver=20191211 --enable-packetver-re --enable-buildbot"
+ env: CONFIGURE_FLAGS="--enable-debug CC=clang-5.0 --enable-Werror --enable-packetver=20200108 --enable-packetver-re --enable-buildbot"
addons:
apt:
sources:
@@ -80,7 +80,7 @@ matrix:
- gdb
- clang-5.0
- compiler: clang
- env: CONFIGURE_FLAGS="--enable-debug CC=clang-4.0 --enable-Werror --enable-packetver=20191211 --enable-packetver-re --enable-buildbot"
+ env: CONFIGURE_FLAGS="--enable-debug CC=clang-4.0 --enable-Werror --enable-packetver=20200108 --enable-packetver-re --enable-buildbot"
addons:
apt:
sources:
@@ -114,11 +114,11 @@ matrix:
- compiler: clang
env: CONFIGURE_FLAGS="--enable-debug --disable-renewal --enable-Werror --enable-buildbot"
- compiler: gcc
- env: CONFIGURE_FLAGS="--enable-debug --enable-Werror --enable-packetver=20191211 --enable-packetver-re --enable-buildbot"
+ env: CONFIGURE_FLAGS="--enable-debug --enable-Werror --enable-packetver=20200108 --enable-packetver-re --enable-buildbot"
- compiler: gcc
env: CONFIGURE_FLAGS="--enable-debug --disable-renewal --enable-Werror --enable-buildbot"
- compiler: gcc
- env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-5 --disable-manager --enable-Werror --enable-packetver=20191211 --enable-packetver-re --enable-buildbot"
+ env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-5 --disable-manager --enable-Werror --enable-packetver=20200108 --enable-packetver-re --enable-buildbot"
addons:
apt:
sources:
@@ -136,7 +136,7 @@ matrix:
- gdb
- gcc-5
- compiler: gcc
- env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-6 --disable-manager --enable-Werror --enable-packetver=20191211 --enable-packetver-re --enable-buildbot"
+ env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-6 --disable-manager --enable-Werror --enable-packetver=20200108 --enable-packetver-re --enable-buildbot"
addons:
apt:
sources:
@@ -154,7 +154,7 @@ matrix:
- gdb
- gcc-6
- compiler: gcc
- env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug CC=gcc-7 --disable-manager --enable-Werror --enable-packetver=20191211 --enable-packetver-re --enable-buildbot"
+ env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug CC=gcc-7 --disable-manager --enable-Werror --enable-packetver=20200108 --enable-packetver-re --enable-buildbot"
addons:
apt:
sources:
@@ -172,7 +172,7 @@ matrix:
- gdb
- gcc-7
- compiler: gcc
- env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-8 --disable-manager --enable-Werror --enable-packetver=20191211 --enable-packetver-re --enable-buildbot"
+ env: LDFLAGS="-fuse-ld=gold" CONFIGURE_FLAGS="--enable-debug --enable-sanitize=full CC=gcc-8 --disable-manager --enable-Werror --enable-packetver=20200108 --enable-packetver-re --enable-buildbot"
addons:
apt:
sources:
diff --git a/conf/map/help.txt b/conf/map/help.txt
index 846c16276..17dd829fd 100644
--- a/conf/map/help.txt
+++ b/conf/map/help.txt
@@ -305,3 +305,5 @@ autoloottype: "Manage a list of autolooting item types.\n"
" To remove an item type, use \"@autoloottype -<type name>\".\n"
" Type List: healing, usable, etc, weapon, armor, card, petegg, petarmor, ammo.\n"
" \"@autoloottype reset\" will clear your autoloottype list."
+feelreset: "Reset 'Feeling' maps."
+hatereset: "Reset 'Hatred' targets."
diff --git a/conf/messages.conf b/conf/messages.conf
index 42214167a..b91b03921 100644
--- a/conf/messages.conf
+++ b/conf/messages.conf
@@ -763,7 +763,10 @@
926: Zone not found. Keep in mind that the names are CaSe SenSitiVe.
927: Zone successfully changed from '%s' to '%s'.
-//928-979 FREE
+//928-978 FREE
+
+// @hatereset
+979: Reset 'Hatred' targets.
// @kami
980: Please enter a message (usage: @kami <message>).
diff --git a/db/pre-re/item_chain.conf b/db/pre-re/item_chain.conf
index cdc92d92c..b00447bb2 100644
--- a/db/pre-re/item_chain.conf
+++ b/db/pre-re/item_chain.conf
@@ -125,3 +125,7 @@ ITMCHAIN_FOOD: {
Banana: 100
Apple: 600
}
+
+ITMCHAIN_NEO_INSURANCE: {
+ New_Insurance: 1
+}
diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf
index 199416825..8be95353c 100644
--- a/db/pre-re/item_db.conf
+++ b/db/pre-re/item_db.conf
@@ -55846,6 +55846,13 @@ item_db: (
Weight: 10
},
{
+ Id: 6413
+ AegisName: "New_Insurance"
+ Name: "New Insurance"
+ Buy: 2
+ Weight: 10
+},
+{
Id: 6415
AegisName: "Strange_Embryo"
Name: "Strange Embryo"
diff --git a/db/re/item_chain.conf b/db/re/item_chain.conf
index cdc92d92c..b00447bb2 100644
--- a/db/re/item_chain.conf
+++ b/db/re/item_chain.conf
@@ -125,3 +125,7 @@ ITMCHAIN_FOOD: {
Banana: 100
Apple: 600
}
+
+ITMCHAIN_NEO_INSURANCE: {
+ New_Insurance: 1
+}
diff --git a/doc/atcommands.txt b/doc/atcommands.txt
index 0b4dce579..419cb0acd 100644
--- a/doc/atcommands.txt
+++ b/doc/atcommands.txt
@@ -892,6 +892,12 @@ Resets a Star Gladiator's marked maps.
---------------------------------------
+@hatereset
+
+Resets a Star Gladiator's hatred targets.
+
+---------------------------------------
+
@jobchange <job name/ID>
Changes your job.
diff --git a/doc/constants.md b/doc/constants.md
index bc2a16f52..257696c4e 100644
--- a/doc/constants.md
+++ b/doc/constants.md
@@ -5085,6 +5085,7 @@
- `PCBLOCK_IMMUNE`: 32
- `PCBLOCK_SITSTAND`: 64
- `PCBLOCK_COMMANDS`: 128
+- `PCBLOCK_NPC`: 256
### private airship responds
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index b55afb0f2..1d8ed786b 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -4684,13 +4684,13 @@ See also warp().
---------------------------------------
-*warpparty("<to_mapname>", <x>, <y>, <party_id>, "<from_mapname>", <include_leader>)
+*warpparty("<to map name>", <x>, <y>, <party id>{{, <ignore mapflags>}, "<from map name>"{, <include leader>}})
Warps a party to specified map and coordinate given the party ID, which
you can get with getcharid(CHAR_ID_PARTY). You can also request another party id given
a member's name with getcharid(CHAR_ID_PARTY, <player_name>).
-You can use the following "map names" for special warping behavior:
+You can use the following <to map name> for special warping behavior:
Random: All party members are randomly warped in their current map
(as if they all used a fly wing).
SavePointAll: All party members are warped to their respective save point.
@@ -4701,8 +4701,10 @@ Leader: All party members are warped to the leader's position. The
leader must be online and in the current map-server for
this to work.
-If you specify a from_mapname, warpparty() will only affect those on
-that map.
+If <ignore mapflags> is not 0, warpparty() ignores nowarp/noreturn restrictions
+of the warped character's current map. <ignore mapflags> defaults to 0.
+
+If you specify a <from map name>, warpparty() will only affect those on that map.
You can exclude Party leader from warping, by keeping include_leader option as false.
@@ -4730,13 +4732,13 @@ Example:
---------------------------------------
-*warpguild("<mapname>", <x>, <y>, <guild_id>, {"<from_mapname>"})
+*warpguild("<to map name>", <x>, <y>, <guild id>{{, <ignore mapflags>}, "<from map name>"})
Warps a guild to specified map and coordinate given the guild id, which
you can get with getcharid(CHAR_ID_GUILD). You can also request another guild id given
the member's name with getcharid(CHAR_ID_GUILD, <player_name>).
-You can use the following "map names" for special warping behavior:
+You can use the following <to map name> for special warping behavior:
Random: All guild members are randomly warped in their current map
(as if they all used a fly wing)
SavePointAll: All guild members are warped to their respective save point.
@@ -4744,12 +4746,19 @@ SavePoint: All guild members are warped to the save point of the
currently attached player (will fail if there's no player
attached).
-If you specify a from_mapname, warpguild() will only affect those on that map.
+If <ignore mapflags> is not 0, warpguild() ignores nowarp/noreturn restrictions
+of the warped character's current map. <ignore mapflags> defaults to 0.
+
+If you specify a <from map name>, warpguild() will only affect those on that map.
Example:
- warpguild("prontera", x, y, Guild_ID);
- warpguild("prontera", x, y, Guild_ID, "payon"); // warp member from Payon map only.
+ warpguild("prontera", x, y, Guild_ID); // Warp all guild members to Prontera,
+ // but check nowarp/noreturn restriction of their current map.
+ warpguild("prontera", x, y, Guild_ID, 1); // Warp all guild members to Prontera.
+ warpguild("prontera", x, y, Guild_ID, "payon"); // Warp guild members from Payon to Prontera,
+ // but check nowarp/noreturn restriction of Payon.
+ warpguild("prontera", x, y, Guild_ID, 1, "payon"); // Warp guild members from Payon to Prontera.
---------------------------------------
@@ -6081,6 +6090,16 @@ Used in reset NPC's (duh!).
---------------------------------------
+*resetfeel({<account id>})
+*resethate({<account id>})
+
+The first resets a character's 'Feeling' maps.
+The second resets a character's 'Hatred' targets.
+
+If no RID is given, will run with the current attached player.
+
+---------------------------------------
+
*sc_start(<effect type>, <ticks>, <value 1>{, <rate>, <flag>{, <GID>}})
*sc_start2(<effect type>, <ticks>, <value 1>, <value 2>{, <rate>, <flag>{, <GID>}})
*sc_start4(<effect type>, <ticks>, <value 1>, <value 2>, <value 3>, <value 4>{, <rate>, <flag>{, <GID>}})
@@ -6541,6 +6560,7 @@ The <type> listed are a bit mask of the following:
PCBLOCK_IMMUNE
PCBLOCK_SITSTAND
PCBLOCK_COMMANDS
+ PCBLOCK_NPC
Examples:
diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql
index 01f02a091..97fdb654d 100644
--- a/sql-files/item_db.sql
+++ b/sql-files/item_db.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2019 Hercules Dev Team
+-- Copyright (C) 2013-2020 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
@@ -3234,6 +3234,7 @@ REPLACE INTO `item_db` VALUES ('6393','Round_Feather','Round Feather','3','0','7
REPLACE INTO `item_db` VALUES ('6394','Golden_Feather','Golden Feather','3','0','650','325','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6395','Angel_Magic_Power','Angel Magic Power','3','0','820','410','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','1','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6396','Auger_Of_Spirit','Auger Of Spirit','3','0','0','0','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
+REPLACE INTO `item_db` VALUES ('6413','New_Insurance','New Insurance','3','0','2','1','10','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6415','Strange_Embryo','Strange Embryo','3','0','0','0','0','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','507',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6493','Makibishi','Makibishi','3','0','30','15','1','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
REPLACE INTO `item_db` VALUES ('6512','Charm_Fire','Charm Fire','3','0','100','50','1','0','0','0','0','0','18446744073709551615','63','2','0','0','0',NULL,'0','1','0','0','0','0','0','0',NULL,'0',NULL,'0',NULL,'0','','','');
diff --git a/sql-files/item_db2.sql b/sql-files/item_db2.sql
index 3b4f58219..25ef1478d 100644
--- a/sql-files/item_db2.sql
+++ b/sql-files/item_db2.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2019 Hercules Dev Team
+-- Copyright (C) 2013-2020 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql
index 3f4654324..8241b81ef 100644
--- a/sql-files/item_db_re.sql
+++ b/sql-files/item_db_re.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2019 Hercules Dev Team
+-- Copyright (C) 2013-2020 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql
index 349a84272..a5ceb0c10 100644
--- a/sql-files/mob_db.sql
+++ b/sql-files/mob_db.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2019 Hercules Dev Team
+-- Copyright (C) 2013-2020 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/mob_db2.sql b/sql-files/mob_db2.sql
index e602db599..53e3c658b 100644
--- a/sql-files/mob_db2.sql
+++ b/sql-files/mob_db2.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2019 Hercules Dev Team
+-- Copyright (C) 2013-2020 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/mob_db_re.sql b/sql-files/mob_db_re.sql
index dc1e3e18c..739fc3df0 100644
--- a/sql-files/mob_db_re.sql
+++ b/sql-files/mob_db_re.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2019 Hercules Dev Team
+-- Copyright (C) 2013-2020 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/mob_skill_db.sql b/sql-files/mob_skill_db.sql
index 1e3ab9b90..e7096b17f 100644
--- a/sql-files/mob_skill_db.sql
+++ b/sql-files/mob_skill_db.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2019 Hercules Dev Team
+-- Copyright (C) 2013-2020 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/mob_skill_db2.sql b/sql-files/mob_skill_db2.sql
index e55be9d6d..8661fb90a 100644
--- a/sql-files/mob_skill_db2.sql
+++ b/sql-files/mob_skill_db2.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2019 Hercules Dev Team
+-- Copyright (C) 2013-2020 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/mob_skill_db_re.sql b/sql-files/mob_skill_db_re.sql
index b44ee4979..ef16e2949 100644
--- a/sql-files/mob_skill_db_re.sql
+++ b/sql-files/mob_skill_db_re.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2019 Hercules Dev Team
+-- Copyright (C) 2013-2020 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/src/common/HPMDataCheck.h b/src/common/HPMDataCheck.h
index 3ef917a88..75dac2071 100644
--- a/src/common/HPMDataCheck.h
+++ b/src/common/HPMDataCheck.h
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2014-2019 Hercules Dev Team
+ * Copyright (C) 2014-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -736,6 +736,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
{ "PACKET_ZC_REPAIRITEMLIST", sizeof(struct PACKET_ZC_REPAIRITEMLIST), SERVER_TYPE_MAP },
{ "PACKET_ZC_REPAIRITEMLIST_sub", sizeof(struct PACKET_ZC_REPAIRITEMLIST_sub), SERVER_TYPE_MAP },
{ "PACKET_ZC_ROLE_CHANGE", sizeof(struct PACKET_ZC_ROLE_CHANGE), SERVER_TYPE_MAP },
+ { "PACKET_ZC_SE_CASHSHOP_OPEN", sizeof(struct PACKET_ZC_SE_CASHSHOP_OPEN), SERVER_TYPE_MAP },
{ "PACKET_ZC_SEARCH_STORE_INFO_ACK", sizeof(struct PACKET_ZC_SEARCH_STORE_INFO_ACK), SERVER_TYPE_MAP },
{ "PACKET_ZC_SEARCH_STORE_INFO_ACK_sub", sizeof(struct PACKET_ZC_SEARCH_STORE_INFO_ACK_sub), SERVER_TYPE_MAP },
{ "PACKET_ZC_SKILL_SCALE", sizeof(struct PACKET_ZC_SKILL_SCALE), SERVER_TYPE_MAP },
diff --git a/src/common/HPMSymbols.inc.h b/src/common/HPMSymbols.inc.h
index f92899114..3a6bd3c57 100644
--- a/src/common/HPMSymbols.inc.h
+++ b/src/common/HPMSymbols.inc.h
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2003_len_main.h b/src/common/packets/packets2003_len_main.h
index b78f4df3d..beed1fb67 100644
--- a/src/common/packets/packets2003_len_main.h
+++ b/src/common/packets/packets2003_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2003_len_sak.h b/src/common/packets/packets2003_len_sak.h
index b90a354a7..0da973bf4 100644
--- a/src/common/packets/packets2003_len_sak.h
+++ b/src/common/packets/packets2003_len_sak.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2004_len_ad.h b/src/common/packets/packets2004_len_ad.h
index 19b5a742e..05f741dee 100644
--- a/src/common/packets/packets2004_len_ad.h
+++ b/src/common/packets/packets2004_len_ad.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2004_len_main.h b/src/common/packets/packets2004_len_main.h
index 814788824..72b2329a3 100644
--- a/src/common/packets/packets2004_len_main.h
+++ b/src/common/packets/packets2004_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2004_len_sak.h b/src/common/packets/packets2004_len_sak.h
index 7caffffc3..1f4b3d3ea 100644
--- a/src/common/packets/packets2004_len_sak.h
+++ b/src/common/packets/packets2004_len_sak.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2005_len_ad.h b/src/common/packets/packets2005_len_ad.h
index 468291f36..4113d7b91 100644
--- a/src/common/packets/packets2005_len_ad.h
+++ b/src/common/packets/packets2005_len_ad.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2005_len_main.h b/src/common/packets/packets2005_len_main.h
index 91b274ab4..c57b65693 100644
--- a/src/common/packets/packets2005_len_main.h
+++ b/src/common/packets/packets2005_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2005_len_sak.h b/src/common/packets/packets2005_len_sak.h
index e9331eca5..bf744b3d0 100644
--- a/src/common/packets/packets2005_len_sak.h
+++ b/src/common/packets/packets2005_len_sak.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2006_len_ad.h b/src/common/packets/packets2006_len_ad.h
index 981cbb4cb..dc5cfe25e 100644
--- a/src/common/packets/packets2006_len_ad.h
+++ b/src/common/packets/packets2006_len_ad.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2006_len_main.h b/src/common/packets/packets2006_len_main.h
index 0eaa9f36c..ed15984cf 100644
--- a/src/common/packets/packets2006_len_main.h
+++ b/src/common/packets/packets2006_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2006_len_sak.h b/src/common/packets/packets2006_len_sak.h
index 6e39dcc3b..1c3243cac 100644
--- a/src/common/packets/packets2006_len_sak.h
+++ b/src/common/packets/packets2006_len_sak.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2007_len_ad.h b/src/common/packets/packets2007_len_ad.h
index 1a1160786..2eb90e88f 100644
--- a/src/common/packets/packets2007_len_ad.h
+++ b/src/common/packets/packets2007_len_ad.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2007_len_main.h b/src/common/packets/packets2007_len_main.h
index 374d5913e..5ddb540da 100644
--- a/src/common/packets/packets2007_len_main.h
+++ b/src/common/packets/packets2007_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2007_len_sak.h b/src/common/packets/packets2007_len_sak.h
index 747335a23..38d339306 100644
--- a/src/common/packets/packets2007_len_sak.h
+++ b/src/common/packets/packets2007_len_sak.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2008_len_ad.h b/src/common/packets/packets2008_len_ad.h
index 6b3d7e25a..ceb4181eb 100644
--- a/src/common/packets/packets2008_len_ad.h
+++ b/src/common/packets/packets2008_len_ad.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2008_len_main.h b/src/common/packets/packets2008_len_main.h
index d73b1c77d..795582ec0 100644
--- a/src/common/packets/packets2008_len_main.h
+++ b/src/common/packets/packets2008_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2008_len_re.h b/src/common/packets/packets2008_len_re.h
index 7dfd991ba..81d615190 100644
--- a/src/common/packets/packets2008_len_re.h
+++ b/src/common/packets/packets2008_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2008_len_sak.h b/src/common/packets/packets2008_len_sak.h
index 0bb6b3251..38ee488ed 100644
--- a/src/common/packets/packets2008_len_sak.h
+++ b/src/common/packets/packets2008_len_sak.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2009_len_main.h b/src/common/packets/packets2009_len_main.h
index 0917b89cb..eb645b1b0 100644
--- a/src/common/packets/packets2009_len_main.h
+++ b/src/common/packets/packets2009_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2009_len_re.h b/src/common/packets/packets2009_len_re.h
index 37d5efa47..deab0c497 100644
--- a/src/common/packets/packets2009_len_re.h
+++ b/src/common/packets/packets2009_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2009_len_sak.h b/src/common/packets/packets2009_len_sak.h
index 08ae6eca9..e90bd59f0 100644
--- a/src/common/packets/packets2009_len_sak.h
+++ b/src/common/packets/packets2009_len_sak.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2010_len_main.h b/src/common/packets/packets2010_len_main.h
index e21fd53ac..887545b26 100644
--- a/src/common/packets/packets2010_len_main.h
+++ b/src/common/packets/packets2010_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2010_len_re.h b/src/common/packets/packets2010_len_re.h
index c1adcfd47..5e53e0b57 100644
--- a/src/common/packets/packets2010_len_re.h
+++ b/src/common/packets/packets2010_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2011_len_main.h b/src/common/packets/packets2011_len_main.h
index 3a22085c9..907dfcb5b 100644
--- a/src/common/packets/packets2011_len_main.h
+++ b/src/common/packets/packets2011_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2011_len_re.h b/src/common/packets/packets2011_len_re.h
index d4e51782d..b1fc84270 100644
--- a/src/common/packets/packets2011_len_re.h
+++ b/src/common/packets/packets2011_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2012_len_main.h b/src/common/packets/packets2012_len_main.h
index 116526aa5..0720e97b1 100644
--- a/src/common/packets/packets2012_len_main.h
+++ b/src/common/packets/packets2012_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2012_len_re.h b/src/common/packets/packets2012_len_re.h
index a3399a942..131c29276 100644
--- a/src/common/packets/packets2012_len_re.h
+++ b/src/common/packets/packets2012_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2013_len_main.h b/src/common/packets/packets2013_len_main.h
index 3845b73a8..673d36815 100644
--- a/src/common/packets/packets2013_len_main.h
+++ b/src/common/packets/packets2013_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2013_len_re.h b/src/common/packets/packets2013_len_re.h
index c5cc6a6c7..21a159b4d 100644
--- a/src/common/packets/packets2013_len_re.h
+++ b/src/common/packets/packets2013_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2014_len_main.h b/src/common/packets/packets2014_len_main.h
index e927738c1..4246dad81 100644
--- a/src/common/packets/packets2014_len_main.h
+++ b/src/common/packets/packets2014_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2014_len_re.h b/src/common/packets/packets2014_len_re.h
index 2cfecae19..725aa3c9f 100644
--- a/src/common/packets/packets2014_len_re.h
+++ b/src/common/packets/packets2014_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2015_len_main.h b/src/common/packets/packets2015_len_main.h
index c8afa76f3..6aa9098c4 100644
--- a/src/common/packets/packets2015_len_main.h
+++ b/src/common/packets/packets2015_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2015_len_re.h b/src/common/packets/packets2015_len_re.h
index b8d5e44f0..2e343a1ea 100644
--- a/src/common/packets/packets2015_len_re.h
+++ b/src/common/packets/packets2015_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2016_len_main.h b/src/common/packets/packets2016_len_main.h
index 116cd4c34..daae397de 100644
--- a/src/common/packets/packets2016_len_main.h
+++ b/src/common/packets/packets2016_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2016_len_re.h b/src/common/packets/packets2016_len_re.h
index 7e59eaec1..6f8574edf 100644
--- a/src/common/packets/packets2016_len_re.h
+++ b/src/common/packets/packets2016_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2017_len_main.h b/src/common/packets/packets2017_len_main.h
index 1ce3bfbcc..9c9379270 100644
--- a/src/common/packets/packets2017_len_main.h
+++ b/src/common/packets/packets2017_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2017_len_re.h b/src/common/packets/packets2017_len_re.h
index 7ed294a4a..626876785 100644
--- a/src/common/packets/packets2017_len_re.h
+++ b/src/common/packets/packets2017_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2017_len_zero.h b/src/common/packets/packets2017_len_zero.h
index 4dbaac29f..2d4befaaa 100644
--- a/src/common/packets/packets2017_len_zero.h
+++ b/src/common/packets/packets2017_len_zero.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2018_len_main.h b/src/common/packets/packets2018_len_main.h
index 12563846d..42e34e731 100644
--- a/src/common/packets/packets2018_len_main.h
+++ b/src/common/packets/packets2018_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2018_len_re.h b/src/common/packets/packets2018_len_re.h
index ddfa67664..3cd8e662b 100644
--- a/src/common/packets/packets2018_len_re.h
+++ b/src/common/packets/packets2018_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2018_len_zero.h b/src/common/packets/packets2018_len_zero.h
index 8e973ebbf..3f4ec4b60 100644
--- a/src/common/packets/packets2018_len_zero.h
+++ b/src/common/packets/packets2018_len_zero.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets2019_len_main.h b/src/common/packets/packets2019_len_main.h
index 9e333ff87..f3e025c85 100644
--- a/src/common/packets/packets2019_len_main.h
+++ b/src/common/packets/packets2019_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -4616,7 +4616,9 @@ packetLen(0x0b3e, -1)
#endif
// Packet: 0x0b3f
-#if PACKETVER >= 20191016
+#if PACKETVER >= 20191224
+packetLen(0x0b3f, 64)
+#elif PACKETVER >= 20191016
packetLen(0x0b3f, 63)
#elif PACKETVER >= 20190724
packetLen(0x0b3f, 64)
@@ -4628,33 +4630,43 @@ packetLen(0x0b40, -1)
#endif
// Packet: 0x0b41
-#if PACKETVER >= 20191016
+#if PACKETVER >= 20191224
+packetLen(0x0b41, 70)
+#elif PACKETVER >= 20191016
packetLen(0x0b41, 69)
#elif PACKETVER >= 20190724
packetLen(0x0b41, 41)
#endif
// Packet: 0x0b42
-#if PACKETVER >= 20191016
+#if PACKETVER >= 20191224
+packetLen(0x0b42, 62)
+#elif PACKETVER >= 20191016
packetLen(0x0b42, 61)
#elif PACKETVER >= 20190724
packetLen(0x0b42, 30)
#endif
// Packet: 0x0b43
-#if PACKETVER >= 20190724
+#if PACKETVER >= 20191224
+packetLen(0x0b43, 48)
+#elif PACKETVER >= 20190724
packetLen(0x0b43, 47)
#endif
// Packet: 0x0b44
-#if PACKETVER >= 20191016
+#if PACKETVER >= 20191224
+packetLen(0x0b44, 58)
+#elif PACKETVER >= 20191016
packetLen(0x0b44, 57)
#elif PACKETVER >= 20190724
packetLen(0x0b44, 32)
#endif
// Packet: 0x0b45
-#if PACKETVER >= 20191016
+#if PACKETVER >= 20191224
+packetLen(0x0b45, 58)
+#elif PACKETVER >= 20191016
packetLen(0x0b45, 57)
#elif PACKETVER >= 20190724
packetLen(0x0b45, 32)
@@ -4841,12 +4853,16 @@ packetLen(0x0b65, -1)
#endif
// Packet: 0x0b66
-#if PACKETVER >= 20191106
+#if PACKETVER >= 20191224
+packetLen(0x0b66, 26)
+#elif PACKETVER >= 20191106
packetLen(0x0b66, 25)
#endif
// Packet: 0x0b67
-#if PACKETVER >= 20191106
+#if PACKETVER >= 20191224
+packetLen(0x0b67, 33)
+#elif PACKETVER >= 20191106
packetLen(0x0b67, 32)
#endif
@@ -4865,5 +4881,25 @@ packetLen(0x0b69, 18)
packetLen(0x0b6a, -1)
#endif
+// Packet: 0x0b6b
+#if PACKETVER >= 20191218
+packetLen(0x0b6b, 14)
+#endif
+
+// Packet: 0x0b6c
+#if PACKETVER >= 20191218
+packetLen(0x0b6c, 12)
+#endif
+
+// Packet: 0x0b6d
+#if PACKETVER >= 20191224
+packetLen(0x0b6d, 6)
+#endif
+
+// Packet: 0x0b6e
+#if PACKETVER >= 20191224
+packetLen(0x0b6e, 14)
+#endif
+
#endif /* COMMON_PACKETS2019_LEN_MAIN_H */
diff --git a/src/common/packets/packets2019_len_re.h b/src/common/packets/packets2019_len_re.h
index 0f487af37..713f15a61 100644
--- a/src/common/packets/packets2019_len_re.h
+++ b/src/common/packets/packets2019_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -4628,7 +4628,9 @@ packetLen(0x0b3e, -1)
#endif
// Packet: 0x0b3f
-#if PACKETVER >= 20191016
+#if PACKETVER >= 20191224
+packetLen(0x0b3f, 64)
+#elif PACKETVER >= 20191016
packetLen(0x0b3f, 63)
#elif PACKETVER >= 20190724
packetLen(0x0b3f, 64)
@@ -4640,33 +4642,43 @@ packetLen(0x0b40, -1)
#endif
// Packet: 0x0b41
-#if PACKETVER >= 20191016
+#if PACKETVER >= 20191224
+packetLen(0x0b41, 70)
+#elif PACKETVER >= 20191016
packetLen(0x0b41, 69)
#elif PACKETVER >= 20190724
packetLen(0x0b41, 41)
#endif
// Packet: 0x0b42
-#if PACKETVER >= 20191016
+#if PACKETVER >= 20191224
+packetLen(0x0b42, 62)
+#elif PACKETVER >= 20191016
packetLen(0x0b42, 61)
#elif PACKETVER >= 20190724
packetLen(0x0b42, 30)
#endif
// Packet: 0x0b43
-#if PACKETVER >= 20190724
+#if PACKETVER >= 20191224
+packetLen(0x0b43, 48)
+#elif PACKETVER >= 20190724
packetLen(0x0b43, 47)
#endif
// Packet: 0x0b44
-#if PACKETVER >= 20191016
+#if PACKETVER >= 20191224
+packetLen(0x0b44, 58)
+#elif PACKETVER >= 20191016
packetLen(0x0b44, 57)
#elif PACKETVER >= 20190724
packetLen(0x0b44, 32)
#endif
// Packet: 0x0b45
-#if PACKETVER >= 20191016
+#if PACKETVER >= 20191224
+packetLen(0x0b45, 58)
+#elif PACKETVER >= 20191016
packetLen(0x0b45, 57)
#elif PACKETVER >= 20190724
packetLen(0x0b45, 32)
@@ -4853,12 +4865,16 @@ packetLen(0x0b65, -1)
#endif
// Packet: 0x0b66
-#if PACKETVER >= 20191106
+#if PACKETVER >= 20191224
+packetLen(0x0b66, 26)
+#elif PACKETVER >= 20191106
packetLen(0x0b66, 25)
#endif
// Packet: 0x0b67
-#if PACKETVER >= 20191106
+#if PACKETVER >= 20191224
+packetLen(0x0b67, 33)
+#elif PACKETVER >= 20191106
packetLen(0x0b67, 32)
#endif
@@ -4877,5 +4893,25 @@ packetLen(0x0b69, 18)
packetLen(0x0b6a, -1)
#endif
+// Packet: 0x0b6b
+#if PACKETVER >= 20191218
+packetLen(0x0b6b, 14)
+#endif
+
+// Packet: 0x0b6c
+#if PACKETVER >= 20191218
+packetLen(0x0b6c, 12)
+#endif
+
+// Packet: 0x0b6d
+#if PACKETVER >= 20191224
+packetLen(0x0b6d, 6)
+#endif
+
+// Packet: 0x0b6e
+#if PACKETVER >= 20191224
+packetLen(0x0b6e, 14)
+#endif
+
#endif /* COMMON_PACKETS2019_LEN_RE_H */
diff --git a/src/common/packets/packets2019_len_zero.h b/src/common/packets/packets2019_len_zero.h
index da0bf6976..3c1f393ac 100644
--- a/src/common/packets/packets2019_len_zero.h
+++ b/src/common/packets/packets2019_len_zero.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -4608,7 +4608,9 @@ packetLen(0x0b3e, -1)
#endif
// Packet: 0x0b3f
-#if PACKETVER >= 20191008
+#if PACKETVER >= 20191224
+packetLen(0x0b3f, 64)
+#elif PACKETVER >= 20191008
packetLen(0x0b3f, 63)
#elif PACKETVER >= 20190724
packetLen(0x0b3f, 64)
@@ -4620,33 +4622,43 @@ packetLen(0x0b40, -1)
#endif
// Packet: 0x0b41
-#if PACKETVER >= 20191008
+#if PACKETVER >= 20191224
+packetLen(0x0b41, 70)
+#elif PACKETVER >= 20191008
packetLen(0x0b41, 69)
#elif PACKETVER >= 20190724
packetLen(0x0b41, 41)
#endif
// Packet: 0x0b42
-#if PACKETVER >= 20191008
+#if PACKETVER >= 20191224
+packetLen(0x0b42, 62)
+#elif PACKETVER >= 20191008
packetLen(0x0b42, 61)
#elif PACKETVER >= 20190724
packetLen(0x0b42, 30)
#endif
// Packet: 0x0b43
-#if PACKETVER >= 20190724
+#if PACKETVER >= 20191224
+packetLen(0x0b43, 48)
+#elif PACKETVER >= 20190724
packetLen(0x0b43, 47)
#endif
// Packet: 0x0b44
-#if PACKETVER >= 20191008
+#if PACKETVER >= 20191224
+packetLen(0x0b44, 58)
+#elif PACKETVER >= 20191008
packetLen(0x0b44, 57)
#elif PACKETVER >= 20190724
packetLen(0x0b44, 32)
#endif
// Packet: 0x0b45
-#if PACKETVER >= 20191008
+#if PACKETVER >= 20191224
+packetLen(0x0b45, 58)
+#elif PACKETVER >= 20191008
packetLen(0x0b45, 57)
#elif PACKETVER >= 20190724
packetLen(0x0b45, 32)
@@ -4825,12 +4837,16 @@ packetLen(0x0b65, -1)
#endif
// Packet: 0x0b66
-#if PACKETVER >= 20191106
+#if PACKETVER >= 20191224
+packetLen(0x0b66, 26)
+#elif PACKETVER >= 20191106
packetLen(0x0b66, 25)
#endif
// Packet: 0x0b67
-#if PACKETVER >= 20191106
+#if PACKETVER >= 20191224
+packetLen(0x0b67, 33)
+#elif PACKETVER >= 20191106
packetLen(0x0b67, 32)
#endif
@@ -4849,5 +4865,25 @@ packetLen(0x0b69, 18)
packetLen(0x0b6a, -1)
#endif
+// Packet: 0x0b6b
+#if PACKETVER >= 20191224
+packetLen(0x0b6b, 14)
+#endif
+
+// Packet: 0x0b6c
+#if PACKETVER >= 20191224
+packetLen(0x0b6c, 12)
+#endif
+
+// Packet: 0x0b6d
+#if PACKETVER >= 20191224
+packetLen(0x0b6d, 6)
+#endif
+
+// Packet: 0x0b6e
+#if PACKETVER >= 20191224
+packetLen(0x0b6e, 14)
+#endif
+
#endif /* COMMON_PACKETS2019_LEN_ZERO_H */
diff --git a/src/common/packets/packets2020_len_main.h b/src/common/packets/packets2020_len_main.h
new file mode 100644
index 000000000..fe06bb7d1
--- /dev/null
+++ b/src/common/packets/packets2020_len_main.h
@@ -0,0 +1,4615 @@
+/**
+ * This file is part of Hercules.
+ * http://herc.ws - http://github.com/HerculesWS/Hercules
+ *
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
+ *
+ * Hercules is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef COMMON_PACKETS2020_LEN_MAIN_H
+#define COMMON_PACKETS2020_LEN_MAIN_H
+
+/* This file is autogenerated, please do not commit manual changes */
+
+// Packet: 0x0064
+packetLen(0x0064, 55)
+
+// Packet: 0x0065
+packetLen(0x0065, 17)
+
+// Packet: 0x0066
+packetLen(0x0066, 3)
+
+// Packet: 0x0067
+packetLen(0x0067, 37)
+
+// Packet: 0x0068
+packetLen(0x0068, 46)
+
+// Packet: 0x0069
+packetLen(0x0069, -1)
+
+// Packet: 0x006a
+packetLen(0x006a, 23)
+
+// Packet: 0x006b
+packetLen(0x006b, -1)
+
+// Packet: 0x006c
+packetLen(0x006c, 3)
+
+// Packet: 0x006d
+packetLen(0x006d, 157)
+
+// Packet: 0x006e
+packetLen(0x006e, 3)
+
+// Packet: 0x006f
+packetLen(0x006f, 2)
+
+// Packet: 0x0070
+packetLen(0x0070, 3)
+
+// Packet: 0x0071
+packetLen(0x0071, 28)
+
+// Packet: 0x0072
+packetLen(0x0072, 22)
+
+// Packet: 0x0073
+packetLen(0x0073, 11)
+
+// Packet: 0x0074
+packetLen(0x0074, 3)
+
+// Packet: 0x0075
+packetLen(0x0075, -1)
+
+// Packet: 0x0076
+packetLen(0x0076, 9)
+
+// Packet: 0x0077
+packetLen(0x0077, 5)
+
+// Packet: 0x0078
+packetLen(0x0078, 55)
+
+// Packet: 0x0079
+packetLen(0x0079, 53)
+
+// Packet: 0x007a
+packetLen(0x007a, 58)
+
+// Packet: 0x007b
+packetLen(0x007b, 60)
+
+// Packet: 0x007c
+packetLen(0x007c, 44)
+
+// Packet: 0x007d
+packetLen(0x007d, 2)
+
+// Packet: 0x007e
+packetLen(0x007e, 46)
+
+// Packet: 0x007f
+packetLen(0x007f, 6)
+
+// Packet: 0x0080
+packetLen(0x0080, 7)
+
+// Packet: 0x0081
+packetLen(0x0081, 3)
+
+// Packet: 0x0082
+packetLen(0x0082, 2)
+
+// Packet: 0x0083
+packetLen(0x0083, 2)
+
+// Packet: 0x0084
+packetLen(0x0084, 2)
+
+// Packet: 0x0085
+packetLen(0x0085, 10)
+
+// Packet: 0x0086
+packetLen(0x0086, 16)
+
+// Packet: 0x0087
+packetLen(0x0087, 12)
+
+// Packet: 0x0088
+packetLen(0x0088, 10)
+
+// Packet: 0x0089
+packetLen(0x0089, 11)
+
+// Packet: 0x008a
+packetLen(0x008a, 29)
+
+// Packet: 0x008b
+packetLen(0x008b, 23)
+
+// Packet: 0x008c
+packetLen(0x008c, 14)
+
+// Packet: 0x008d
+packetLen(0x008d, -1)
+
+// Packet: 0x008e
+packetLen(0x008e, -1)
+
+// Packet: 0x0090
+packetLen(0x0090, 7)
+
+// Packet: 0x0091
+packetLen(0x0091, 22)
+
+// Packet: 0x0092
+packetLen(0x0092, 28)
+
+// Packet: 0x0093
+packetLen(0x0093, 2)
+
+// Packet: 0x0094
+packetLen(0x0094, 19)
+
+// Packet: 0x0095
+packetLen(0x0095, 30)
+
+// Packet: 0x0096
+packetLen(0x0096, -1)
+
+// Packet: 0x0097
+packetLen(0x0097, -1)
+
+// Packet: 0x0098
+packetLen(0x0098, 3)
+
+// Packet: 0x0099
+packetLen(0x0099, -1)
+
+// Packet: 0x009a
+packetLen(0x009a, -1)
+
+// Packet: 0x009b
+packetLen(0x009b, 34)
+
+// Packet: 0x009c
+packetLen(0x009c, 9)
+
+// Packet: 0x009d
+packetLen(0x009d, 19)
+
+// Packet: 0x009e
+packetLen(0x009e, 19)
+
+// Packet: 0x009f
+packetLen(0x009f, 20)
+
+// Packet: 0x00a0
+packetLen(0x00a0, 33)
+
+// Packet: 0x00a1
+packetLen(0x00a1, 6)
+
+// Packet: 0x00a2
+packetLen(0x00a2, 14)
+
+// Packet: 0x00a3
+packetLen(0x00a3, -1)
+
+// Packet: 0x00a4
+packetLen(0x00a4, -1)
+
+// Packet: 0x00a5
+packetLen(0x00a5, -1)
+
+// Packet: 0x00a6
+packetLen(0x00a6, -1)
+
+// Packet: 0x00a7
+packetLen(0x00a7, 9)
+
+// Packet: 0x00a8
+packetLen(0x00a8, 7)
+
+// Packet: 0x00a9
+packetLen(0x00a9, 6)
+
+// Packet: 0x00aa
+packetLen(0x00aa, 9)
+
+// Packet: 0x00ab
+packetLen(0x00ab, 4)
+
+// Packet: 0x00ac
+packetLen(0x00ac, 7)
+
+// Packet: 0x00ae
+packetLen(0x00ae, -1)
+
+// Packet: 0x00af
+packetLen(0x00af, 6)
+
+// Packet: 0x00b0
+packetLen(0x00b0, 8)
+
+// Packet: 0x00b1
+packetLen(0x00b1, 8)
+
+// Packet: 0x00b2
+packetLen(0x00b2, 3)
+
+// Packet: 0x00b3
+packetLen(0x00b3, 3)
+
+// Packet: 0x00b4
+packetLen(0x00b4, -1)
+
+// Packet: 0x00b5
+packetLen(0x00b5, 6)
+
+// Packet: 0x00b6
+packetLen(0x00b6, 6)
+
+// Packet: 0x00b7
+packetLen(0x00b7, -1)
+
+// Packet: 0x00b8
+packetLen(0x00b8, 7)
+
+// Packet: 0x00b9
+packetLen(0x00b9, 6)
+
+// Packet: 0x00ba
+packetLen(0x00ba, 2)
+
+// Packet: 0x00bb
+packetLen(0x00bb, 5)
+
+// Packet: 0x00bc
+packetLen(0x00bc, 6)
+
+// Packet: 0x00bd
+packetLen(0x00bd, 44)
+
+// Packet: 0x00be
+packetLen(0x00be, 5)
+
+// Packet: 0x00bf
+packetLen(0x00bf, 3)
+
+// Packet: 0x00c0
+packetLen(0x00c0, 7)
+
+// Packet: 0x00c1
+packetLen(0x00c1, 2)
+
+// Packet: 0x00c2
+packetLen(0x00c2, 6)
+
+// Packet: 0x00c3
+packetLen(0x00c3, 8)
+
+// Packet: 0x00c4
+packetLen(0x00c4, 6)
+
+// Packet: 0x00c5
+packetLen(0x00c5, 7)
+
+// Packet: 0x00c6
+packetLen(0x00c6, -1)
+
+// Packet: 0x00c7
+packetLen(0x00c7, -1)
+
+// Packet: 0x00c8
+packetLen(0x00c8, -1)
+
+// Packet: 0x00c9
+packetLen(0x00c9, -1)
+
+// Packet: 0x00ca
+packetLen(0x00ca, 3)
+
+// Packet: 0x00cb
+packetLen(0x00cb, 3)
+
+// Packet: 0x00cc
+packetLen(0x00cc, 6)
+
+// Packet: 0x00cd
+packetLen(0x00cd, 3)
+
+// Packet: 0x00ce
+packetLen(0x00ce, 2)
+
+// Packet: 0x00cf
+packetLen(0x00cf, 27)
+
+// Packet: 0x00d0
+packetLen(0x00d0, 3)
+
+// Packet: 0x00d1
+packetLen(0x00d1, 4)
+
+// Packet: 0x00d2
+packetLen(0x00d2, 4)
+
+// Packet: 0x00d3
+packetLen(0x00d3, 2)
+
+// Packet: 0x00d4
+packetLen(0x00d4, -1)
+
+// Packet: 0x00d5
+packetLen(0x00d5, -1)
+
+// Packet: 0x00d6
+packetLen(0x00d6, 3)
+
+// Packet: 0x00d7
+packetLen(0x00d7, -1)
+
+// Packet: 0x00d8
+packetLen(0x00d8, 6)
+
+// Packet: 0x00d9
+packetLen(0x00d9, 14)
+
+// Packet: 0x00da
+packetLen(0x00da, 3)
+
+// Packet: 0x00db
+packetLen(0x00db, -1)
+
+// Packet: 0x00dc
+packetLen(0x00dc, 28)
+
+// Packet: 0x00dd
+packetLen(0x00dd, 29)
+
+// Packet: 0x00de
+packetLen(0x00de, -1)
+
+// Packet: 0x00df
+packetLen(0x00df, -1)
+
+// Packet: 0x00e0
+packetLen(0x00e0, 30)
+
+// Packet: 0x00e1
+packetLen(0x00e1, 30)
+
+// Packet: 0x00e2
+packetLen(0x00e2, 26)
+
+// Packet: 0x00e3
+packetLen(0x00e3, 2)
+
+// Packet: 0x00e4
+packetLen(0x00e4, 6)
+
+// Packet: 0x00e5
+packetLen(0x00e5, 26)
+
+// Packet: 0x00e6
+packetLen(0x00e6, 3)
+
+// Packet: 0x00e7
+packetLen(0x00e7, 3)
+
+// Packet: 0x00e8
+packetLen(0x00e8, 8)
+
+// Packet: 0x00e9
+packetLen(0x00e9, 29)
+
+// Packet: 0x00ea
+packetLen(0x00ea, 5)
+
+// Packet: 0x00eb
+packetLen(0x00eb, 2)
+
+// Packet: 0x00ec
+packetLen(0x00ec, 3)
+
+// Packet: 0x00ed
+packetLen(0x00ed, 2)
+
+// Packet: 0x00ee
+packetLen(0x00ee, 2)
+
+// Packet: 0x00ef
+packetLen(0x00ef, 2)
+
+// Packet: 0x00f0
+packetLen(0x00f0, 3)
+
+// Packet: 0x00f1
+packetLen(0x00f1, 2)
+
+// Packet: 0x00f2
+packetLen(0x00f2, 6)
+
+// Packet: 0x00f3
+packetLen(0x00f3, -1)
+
+// Packet: 0x00f4
+packetLen(0x00f4, 31)
+
+// Packet: 0x00f5
+packetLen(0x00f5, 11)
+
+// Packet: 0x00f6
+packetLen(0x00f6, 8)
+
+// Packet: 0x00f7
+packetLen(0x00f7, 17)
+
+// Packet: 0x00f8
+packetLen(0x00f8, 2)
+
+// Packet: 0x00f9
+packetLen(0x00f9, 26)
+
+// Packet: 0x00fa
+packetLen(0x00fa, 3)
+
+// Packet: 0x00fb
+packetLen(0x00fb, -1)
+
+// Packet: 0x00fc
+packetLen(0x00fc, 6)
+
+// Packet: 0x00fd
+packetLen(0x00fd, 27)
+
+// Packet: 0x00fe
+packetLen(0x00fe, 30)
+
+// Packet: 0x00ff
+packetLen(0x00ff, 10)
+
+// Packet: 0x0100
+packetLen(0x0100, 2)
+
+// Packet: 0x0101
+packetLen(0x0101, 6)
+
+// Packet: 0x0102
+packetLen(0x0102, 6)
+
+// Packet: 0x0103
+packetLen(0x0103, 30)
+
+// Packet: 0x0104
+packetLen(0x0104, 79)
+
+// Packet: 0x0105
+packetLen(0x0105, 31)
+
+// Packet: 0x0106
+packetLen(0x0106, 10)
+
+// Packet: 0x0107
+packetLen(0x0107, 10)
+
+// Packet: 0x0108
+packetLen(0x0108, -1)
+
+// Packet: 0x0109
+packetLen(0x0109, -1)
+
+// Packet: 0x010a
+packetLen(0x010a, 6)
+
+// Packet: 0x010b
+packetLen(0x010b, 6)
+
+// Packet: 0x010c
+packetLen(0x010c, 6)
+
+// Packet: 0x010d
+packetLen(0x010d, 2)
+
+// Packet: 0x010e
+packetLen(0x010e, 11)
+
+// Packet: 0x010f
+packetLen(0x010f, -1)
+
+// Packet: 0x0110
+packetLen(0x0110, 14)
+
+// Packet: 0x0111
+packetLen(0x0111, 39)
+
+// Packet: 0x0112
+packetLen(0x0112, 4)
+
+// Packet: 0x0113
+packetLen(0x0113, 25)
+
+// Packet: 0x0114
+packetLen(0x0114, 31)
+
+// Packet: 0x0115
+packetLen(0x0115, 35)
+
+// Packet: 0x0116
+packetLen(0x0116, 17)
+
+// Packet: 0x0117
+packetLen(0x0117, 18)
+
+// Packet: 0x0118
+packetLen(0x0118, 2)
+
+// Packet: 0x0119
+packetLen(0x0119, 13)
+
+// Packet: 0x011a
+packetLen(0x011a, 15)
+
+// Packet: 0x011b
+packetLen(0x011b, 20)
+
+// Packet: 0x011c
+packetLen(0x011c, 68)
+
+// Packet: 0x011d
+packetLen(0x011d, 2)
+
+// Packet: 0x011e
+packetLen(0x011e, 3)
+
+// Packet: 0x011f
+packetLen(0x011f, 16)
+
+// Packet: 0x0120
+packetLen(0x0120, 6)
+
+// Packet: 0x0121
+packetLen(0x0121, 14)
+
+// Packet: 0x0122
+packetLen(0x0122, -1)
+
+// Packet: 0x0123
+packetLen(0x0123, -1)
+
+// Packet: 0x0124
+packetLen(0x0124, 31)
+
+// Packet: 0x0125
+packetLen(0x0125, 8)
+
+// Packet: 0x0126
+packetLen(0x0126, 8)
+
+// Packet: 0x0127
+packetLen(0x0127, 8)
+
+// Packet: 0x0128
+packetLen(0x0128, 8)
+
+// Packet: 0x0129
+packetLen(0x0129, 8)
+
+// Packet: 0x012a
+packetLen(0x012a, 2)
+
+// Packet: 0x012b
+packetLen(0x012b, 2)
+
+// Packet: 0x012c
+packetLen(0x012c, 3)
+
+// Packet: 0x012d
+packetLen(0x012d, 4)
+
+// Packet: 0x012e
+packetLen(0x012e, 2)
+
+// Packet: 0x012f
+packetLen(0x012f, -1)
+
+// Packet: 0x0130
+packetLen(0x0130, 6)
+
+// Packet: 0x0131
+packetLen(0x0131, 86)
+
+// Packet: 0x0132
+packetLen(0x0132, 6)
+
+// Packet: 0x0133
+packetLen(0x0133, -1)
+
+// Packet: 0x0134
+packetLen(0x0134, -1)
+
+// Packet: 0x0135
+packetLen(0x0135, 7)
+
+// Packet: 0x0136
+packetLen(0x0136, -1)
+
+// Packet: 0x0137
+packetLen(0x0137, 6)
+
+// Packet: 0x0138
+packetLen(0x0138, 3)
+
+// Packet: 0x0139
+packetLen(0x0139, 16)
+
+// Packet: 0x013a
+packetLen(0x013a, 4)
+
+// Packet: 0x013b
+packetLen(0x013b, 4)
+
+// Packet: 0x013c
+packetLen(0x013c, 4)
+
+// Packet: 0x013d
+packetLen(0x013d, 6)
+
+// Packet: 0x013e
+packetLen(0x013e, 24)
+
+// Packet: 0x013f
+packetLen(0x013f, 26)
+
+// Packet: 0x0140
+packetLen(0x0140, 22)
+
+// Packet: 0x0141
+packetLen(0x0141, 14)
+
+// Packet: 0x0142
+packetLen(0x0142, 6)
+
+// Packet: 0x0143
+packetLen(0x0143, 10)
+
+// Packet: 0x0144
+packetLen(0x0144, 23)
+
+// Packet: 0x0145
+packetLen(0x0145, 19)
+
+// Packet: 0x0146
+packetLen(0x0146, 6)
+
+// Packet: 0x0147
+packetLen(0x0147, 39)
+
+// Packet: 0x0148
+packetLen(0x0148, 8)
+
+// Packet: 0x0149
+packetLen(0x0149, 9)
+
+// Packet: 0x014a
+packetLen(0x014a, 6)
+
+// Packet: 0x014b
+packetLen(0x014b, 27)
+
+// Packet: 0x014c
+packetLen(0x014c, -1)
+
+// Packet: 0x014d
+packetLen(0x014d, 2)
+
+// Packet: 0x014e
+packetLen(0x014e, 6)
+
+// Packet: 0x014f
+packetLen(0x014f, 6)
+
+// Packet: 0x0150
+packetLen(0x0150, 110)
+
+// Packet: 0x0151
+packetLen(0x0151, 6)
+
+// Packet: 0x0152
+packetLen(0x0152, -1)
+
+// Packet: 0x0153
+packetLen(0x0153, -1)
+
+// Packet: 0x0154
+packetLen(0x0154, -1)
+
+// Packet: 0x0155
+packetLen(0x0155, -1)
+
+// Packet: 0x0156
+packetLen(0x0156, -1)
+
+// Packet: 0x0157
+packetLen(0x0157, 6)
+
+// Packet: 0x0159
+packetLen(0x0159, 54)
+
+// Packet: 0x015a
+packetLen(0x015a, 66)
+
+// Packet: 0x015b
+packetLen(0x015b, 54)
+
+// Packet: 0x015c
+packetLen(0x015c, 90)
+
+// Packet: 0x015d
+packetLen(0x015d, 42)
+
+// Packet: 0x015e
+packetLen(0x015e, 6)
+
+// Packet: 0x015f
+packetLen(0x015f, 42)
+
+// Packet: 0x0160
+packetLen(0x0160, -1)
+
+// Packet: 0x0161
+packetLen(0x0161, -1)
+
+// Packet: 0x0162
+packetLen(0x0162, -1)
+
+// Packet: 0x0163
+packetLen(0x0163, -1)
+
+// Packet: 0x0164
+packetLen(0x0164, -1)
+
+// Packet: 0x0165
+packetLen(0x0165, 30)
+
+// Packet: 0x0166
+packetLen(0x0166, -1)
+
+// Packet: 0x0167
+packetLen(0x0167, 3)
+
+// Packet: 0x0168
+packetLen(0x0168, 14)
+
+// Packet: 0x0169
+packetLen(0x0169, 3)
+
+// Packet: 0x016a
+packetLen(0x016a, 30)
+
+// Packet: 0x016b
+packetLen(0x016b, 10)
+
+// Packet: 0x016c
+packetLen(0x016c, 43)
+
+// Packet: 0x016d
+packetLen(0x016d, 14)
+
+// Packet: 0x016e
+packetLen(0x016e, 186)
+
+// Packet: 0x016f
+packetLen(0x016f, 182)
+
+// Packet: 0x0170
+packetLen(0x0170, 14)
+
+// Packet: 0x0171
+packetLen(0x0171, 30)
+
+// Packet: 0x0172
+packetLen(0x0172, 10)
+
+// Packet: 0x0173
+packetLen(0x0173, 3)
+
+// Packet: 0x0174
+packetLen(0x0174, -1)
+
+// Packet: 0x0175
+packetLen(0x0175, 6)
+
+// Packet: 0x0176
+packetLen(0x0176, 106)
+
+// Packet: 0x0177
+packetLen(0x0177, -1)
+
+// Packet: 0x0178
+packetLen(0x0178, 4)
+
+// Packet: 0x0179
+packetLen(0x0179, 5)
+
+// Packet: 0x017a
+packetLen(0x017a, 4)
+
+// Packet: 0x017b
+packetLen(0x017b, -1)
+
+// Packet: 0x017c
+packetLen(0x017c, 6)
+
+// Packet: 0x017d
+packetLen(0x017d, 7)
+
+// Packet: 0x017e
+packetLen(0x017e, -1)
+
+// Packet: 0x017f
+packetLen(0x017f, -1)
+
+// Packet: 0x0180
+packetLen(0x0180, 6)
+
+// Packet: 0x0181
+packetLen(0x0181, 3)
+
+// Packet: 0x0182
+packetLen(0x0182, 106)
+
+// Packet: 0x0183
+packetLen(0x0183, 10)
+
+// Packet: 0x0184
+packetLen(0x0184, 10)
+
+// Packet: 0x0185
+packetLen(0x0185, 34)
+
+// Packet: 0x0187
+packetLen(0x0187, 6)
+
+// Packet: 0x0188
+packetLen(0x0188, 8)
+
+// Packet: 0x0189
+packetLen(0x0189, 4)
+
+// Packet: 0x018a
+packetLen(0x018a, 4)
+
+// Packet: 0x018b
+packetLen(0x018b, 4)
+
+// Packet: 0x018c
+packetLen(0x018c, 29)
+
+// Packet: 0x018d
+packetLen(0x018d, -1)
+
+// Packet: 0x018e
+packetLen(0x018e, 18)
+
+// Packet: 0x018f
+packetLen(0x018f, 8)
+
+// Packet: 0x0190
+packetLen(0x0190, 23)
+
+// Packet: 0x0191
+packetLen(0x0191, 27)
+
+// Packet: 0x0192
+packetLen(0x0192, 24)
+
+// Packet: 0x0193
+packetLen(0x0193, 2)
+
+// Packet: 0x0194
+packetLen(0x0194, 30)
+
+// Packet: 0x0195
+packetLen(0x0195, 102)
+
+// Packet: 0x0196
+packetLen(0x0196, 9)
+
+// Packet: 0x0197
+packetLen(0x0197, 4)
+
+// Packet: 0x0198
+packetLen(0x0198, 8)
+
+// Packet: 0x0199
+packetLen(0x0199, 4)
+
+// Packet: 0x019a
+packetLen(0x019a, 14)
+
+// Packet: 0x019b
+packetLen(0x019b, 10)
+
+// Packet: 0x019c
+packetLen(0x019c, -1)
+
+// Packet: 0x019d
+packetLen(0x019d, 6)
+
+// Packet: 0x019e
+packetLen(0x019e, 2)
+
+// Packet: 0x019f
+packetLen(0x019f, 6)
+
+// Packet: 0x01a0
+packetLen(0x01a0, 3)
+
+// Packet: 0x01a1
+packetLen(0x01a1, 3)
+
+// Packet: 0x01a2
+packetLen(0x01a2, 37)
+
+// Packet: 0x01a3
+packetLen(0x01a3, 7)
+
+// Packet: 0x01a4
+packetLen(0x01a4, 11)
+
+// Packet: 0x01a5
+packetLen(0x01a5, 26)
+
+// Packet: 0x01a6
+packetLen(0x01a6, -1)
+
+// Packet: 0x01a7
+packetLen(0x01a7, 4)
+
+// Packet: 0x01a8
+packetLen(0x01a8, 4)
+
+// Packet: 0x01a9
+packetLen(0x01a9, 6)
+
+// Packet: 0x01aa
+packetLen(0x01aa, 10)
+
+// Packet: 0x01ab
+packetLen(0x01ab, 12)
+
+// Packet: 0x01ac
+packetLen(0x01ac, 6)
+
+// Packet: 0x01ad
+packetLen(0x01ad, -1)
+
+// Packet: 0x01ae
+packetLen(0x01ae, 6)
+
+// Packet: 0x01af
+packetLen(0x01af, 4)
+
+// Packet: 0x01b0
+packetLen(0x01b0, 11)
+
+// Packet: 0x01b1
+packetLen(0x01b1, 7)
+
+// Packet: 0x01b2
+packetLen(0x01b2, -1)
+
+// Packet: 0x01b3
+packetLen(0x01b3, 67)
+
+// Packet: 0x01b4
+packetLen(0x01b4, 12)
+
+// Packet: 0x01b5
+packetLen(0x01b5, 18)
+
+// Packet: 0x01b6
+packetLen(0x01b6, 114)
+
+// Packet: 0x01b7
+packetLen(0x01b7, 6)
+
+// Packet: 0x01b8
+packetLen(0x01b8, 3)
+
+// Packet: 0x01b9
+packetLen(0x01b9, 6)
+
+// Packet: 0x01ba
+packetLen(0x01ba, 26)
+
+// Packet: 0x01bb
+packetLen(0x01bb, 26)
+
+// Packet: 0x01bc
+packetLen(0x01bc, 26)
+
+// Packet: 0x01bd
+packetLen(0x01bd, 26)
+
+// Packet: 0x01be
+packetLen(0x01be, 2)
+
+// Packet: 0x01bf
+packetLen(0x01bf, 3)
+
+// Packet: 0x01c0
+packetLen(0x01c0, 2)
+
+// Packet: 0x01c1
+packetLen(0x01c1, 14)
+
+// Packet: 0x01c2
+packetLen(0x01c2, 10)
+
+// Packet: 0x01c3
+packetLen(0x01c3, -1)
+
+// Packet: 0x01c4
+packetLen(0x01c4, 32)
+
+// Packet: 0x01c5
+packetLen(0x01c5, 32)
+
+// Packet: 0x01c6
+packetLen(0x01c6, 4)
+
+// Packet: 0x01c7
+packetLen(0x01c7, 2)
+
+// Packet: 0x01c8
+packetLen(0x01c8, 15)
+
+// Packet: 0x01c9
+packetLen(0x01c9, 97)
+
+// Packet: 0x01ca
+packetLen(0x01ca, 3)
+
+// Packet: 0x01cb
+packetLen(0x01cb, 9)
+
+// Packet: 0x01cc
+packetLen(0x01cc, 9)
+
+// Packet: 0x01cd
+packetLen(0x01cd, 30)
+
+// Packet: 0x01ce
+packetLen(0x01ce, 6)
+
+// Packet: 0x01cf
+packetLen(0x01cf, 28)
+
+// Packet: 0x01d0
+packetLen(0x01d0, 8)
+
+// Packet: 0x01d1
+packetLen(0x01d1, 14)
+
+// Packet: 0x01d2
+packetLen(0x01d2, 10)
+
+// Packet: 0x01d3
+packetLen(0x01d3, 35)
+
+// Packet: 0x01d4
+packetLen(0x01d4, 6)
+
+// Packet: 0x01d5
+packetLen(0x01d5, -1)
+
+// Packet: 0x01d6
+packetLen(0x01d6, 4)
+
+// Packet: 0x01d7
+packetLen(0x01d7, 15)
+
+// Packet: 0x01d8
+packetLen(0x01d8, 58)
+
+// Packet: 0x01d9
+packetLen(0x01d9, 57)
+
+// Packet: 0x01da
+packetLen(0x01da, 64)
+
+// Packet: 0x01db
+packetLen(0x01db, 2)
+
+// Packet: 0x01dc
+packetLen(0x01dc, -1)
+
+// Packet: 0x01dd
+packetLen(0x01dd, 47)
+
+// Packet: 0x01de
+packetLen(0x01de, 33)
+
+// Packet: 0x01df
+packetLen(0x01df, 6)
+
+// Packet: 0x01e0
+packetLen(0x01e0, 30)
+
+// Packet: 0x01e1
+packetLen(0x01e1, 8)
+
+// Packet: 0x01e2
+packetLen(0x01e2, 34)
+
+// Packet: 0x01e3
+packetLen(0x01e3, 14)
+
+// Packet: 0x01e4
+packetLen(0x01e4, 2)
+
+// Packet: 0x01e5
+packetLen(0x01e5, 6)
+
+// Packet: 0x01e6
+packetLen(0x01e6, 26)
+
+// Packet: 0x01e7
+packetLen(0x01e7, 2)
+
+// Packet: 0x01e8
+packetLen(0x01e8, 28)
+
+// Packet: 0x01e9
+packetLen(0x01e9, 81)
+
+// Packet: 0x01ea
+packetLen(0x01ea, 6)
+
+// Packet: 0x01eb
+packetLen(0x01eb, 10)
+
+// Packet: 0x01ec
+packetLen(0x01ec, 26)
+
+// Packet: 0x01ed
+packetLen(0x01ed, 2)
+
+// Packet: 0x01ee
+packetLen(0x01ee, -1)
+
+// Packet: 0x01ef
+packetLen(0x01ef, -1)
+
+// Packet: 0x01f0
+packetLen(0x01f0, -1)
+
+// Packet: 0x01f1
+packetLen(0x01f1, -1)
+
+// Packet: 0x01f2
+packetLen(0x01f2, 20)
+
+// Packet: 0x01f3
+packetLen(0x01f3, 10)
+
+// Packet: 0x01f4
+packetLen(0x01f4, 32)
+
+// Packet: 0x01f5
+packetLen(0x01f5, 9)
+
+// Packet: 0x01f6
+packetLen(0x01f6, 34)
+
+// Packet: 0x01f7
+packetLen(0x01f7, 14)
+
+// Packet: 0x01f8
+packetLen(0x01f8, 2)
+
+// Packet: 0x01f9
+packetLen(0x01f9, 6)
+
+// Packet: 0x01fa
+packetLen(0x01fa, 48)
+
+// Packet: 0x01fb
+packetLen(0x01fb, 56)
+
+// Packet: 0x01fc
+packetLen(0x01fc, -1)
+
+// Packet: 0x01fd
+packetLen(0x01fd, 25)
+
+// Packet: 0x01fe
+packetLen(0x01fe, 5)
+
+// Packet: 0x01ff
+packetLen(0x01ff, 10)
+
+// Packet: 0x0200
+packetLen(0x0200, 26)
+
+// Packet: 0x0201
+packetLen(0x0201, -1)
+
+// Packet: 0x0202
+packetLen(0x0202, 26)
+
+// Packet: 0x0203
+packetLen(0x0203, 10)
+
+// Packet: 0x0204
+packetLen(0x0204, 18)
+
+// Packet: 0x0205
+packetLen(0x0205, 26)
+
+// Packet: 0x0206
+packetLen(0x0206, 35)
+
+// Packet: 0x0207
+packetLen(0x0207, 34)
+
+// Packet: 0x0208
+packetLen(0x0208, 14)
+
+// Packet: 0x0209
+packetLen(0x0209, 36)
+
+// Packet: 0x020a
+packetLen(0x020a, 10)
+
+// Packet: 0x020d
+packetLen(0x020d, -1)
+
+// Packet: 0x020e
+packetLen(0x020e, 32)
+
+// Packet: 0x0212
+packetLen(0x0212, 26)
+
+// Packet: 0x0213
+packetLen(0x0213, 26)
+
+// Packet: 0x0214
+packetLen(0x0214, 42)
+
+// Packet: 0x0215
+packetLen(0x0215, 6)
+
+// Packet: 0x0216
+packetLen(0x0216, 6)
+
+// Packet: 0x0217
+packetLen(0x0217, 2)
+
+// Packet: 0x0218
+packetLen(0x0218, 2)
+
+// Packet: 0x0219
+packetLen(0x0219, 282)
+
+// Packet: 0x021a
+packetLen(0x021a, 282)
+
+// Packet: 0x021b
+packetLen(0x021b, 10)
+
+// Packet: 0x021c
+packetLen(0x021c, 10)
+
+// Packet: 0x021d
+packetLen(0x021d, 6)
+
+// Packet: 0x021e
+packetLen(0x021e, 6)
+
+// Packet: 0x021f
+packetLen(0x021f, 66)
+
+// Packet: 0x0220
+packetLen(0x0220, 10)
+
+// Packet: 0x0221
+packetLen(0x0221, -1)
+
+// Packet: 0x0222
+packetLen(0x0222, 6)
+
+// Packet: 0x0223
+packetLen(0x0223, 10)
+
+// Packet: 0x0224
+packetLen(0x0224, 10)
+
+// Packet: 0x0225
+packetLen(0x0225, 2)
+
+// Packet: 0x0226
+packetLen(0x0226, 282)
+
+// Packet: 0x0227
+packetLen(0x0227, 18)
+
+// Packet: 0x0228
+packetLen(0x0228, 18)
+
+// Packet: 0x0229
+packetLen(0x0229, 15)
+
+// Packet: 0x022a
+packetLen(0x022a, 62)
+
+// Packet: 0x022b
+packetLen(0x022b, 61)
+
+// Packet: 0x022c
+packetLen(0x022c, 69)
+
+// Packet: 0x022d
+packetLen(0x022d, 5)
+
+// Packet: 0x022e
+packetLen(0x022e, 73)
+
+// Packet: 0x022f
+packetLen(0x022f, 7)
+
+// Packet: 0x0230
+packetLen(0x0230, 12)
+
+// Packet: 0x0231
+packetLen(0x0231, 26)
+
+// Packet: 0x0232
+packetLen(0x0232, 9)
+
+// Packet: 0x0233
+packetLen(0x0233, 11)
+
+// Packet: 0x0234
+packetLen(0x0234, 6)
+
+// Packet: 0x0235
+packetLen(0x0235, -1)
+
+// Packet: 0x0236
+packetLen(0x0236, 10)
+
+// Packet: 0x0237
+packetLen(0x0237, 2)
+
+// Packet: 0x0238
+packetLen(0x0238, 282)
+
+// Packet: 0x0239
+packetLen(0x0239, 11)
+
+// Packet: 0x023a
+packetLen(0x023a, 4)
+
+// Packet: 0x023b
+packetLen(0x023b, 36)
+
+// Packet: 0x023c
+packetLen(0x023c, 6)
+
+// Packet: 0x023d
+packetLen(0x023d, 6)
+
+// Packet: 0x023e
+packetLen(0x023e, 8)
+
+// Packet: 0x023f
+packetLen(0x023f, 2)
+
+// Packet: 0x0240
+packetLen(0x0240, -1)
+
+// Packet: 0x0241
+packetLen(0x0241, 6)
+
+// Packet: 0x0242
+packetLen(0x0242, -1)
+
+// Packet: 0x0243
+packetLen(0x0243, 6)
+
+// Packet: 0x0244
+packetLen(0x0244, 6)
+
+// Packet: 0x0245
+packetLen(0x0245, 3)
+
+// Packet: 0x0246
+packetLen(0x0246, 4)
+
+// Packet: 0x0247
+packetLen(0x0247, 8)
+
+// Packet: 0x0248
+packetLen(0x0248, -1)
+
+// Packet: 0x0249
+packetLen(0x0249, 3)
+
+// Packet: 0x024a
+packetLen(0x024a, 70)
+
+// Packet: 0x024b
+packetLen(0x024b, 4)
+
+// Packet: 0x024c
+packetLen(0x024c, 8)
+
+// Packet: 0x024d
+packetLen(0x024d, 12)
+
+// Packet: 0x024e
+packetLen(0x024e, 6)
+
+// Packet: 0x024f
+packetLen(0x024f, 10)
+
+// Packet: 0x0250
+packetLen(0x0250, 3)
+
+// Packet: 0x0251
+packetLen(0x0251, 34)
+
+// Packet: 0x0252
+packetLen(0x0252, -1)
+
+// Packet: 0x0253
+packetLen(0x0253, 3)
+
+// Packet: 0x0254
+packetLen(0x0254, 3)
+
+// Packet: 0x0255
+packetLen(0x0255, 5)
+
+// Packet: 0x0256
+packetLen(0x0256, 5)
+
+// Packet: 0x0257
+packetLen(0x0257, 8)
+
+// Packet: 0x0258
+packetLen(0x0258, 2)
+
+// Packet: 0x0259
+packetLen(0x0259, 3)
+
+// Packet: 0x025a
+packetLen(0x025a, -1)
+
+// Packet: 0x025b
+packetLen(0x025b, 8)
+
+// Packet: 0x025c
+packetLen(0x025c, 4)
+
+// Packet: 0x025d
+packetLen(0x025d, 6)
+
+// Packet: 0x025e
+packetLen(0x025e, 4)
+
+// Packet: 0x025f
+packetLen(0x025f, 6)
+
+// Packet: 0x0260
+packetLen(0x0260, 6)
+
+// Packet: 0x0261
+packetLen(0x0261, 11)
+
+// Packet: 0x0262
+packetLen(0x0262, 11)
+
+// Packet: 0x0263
+packetLen(0x0263, 11)
+
+// Packet: 0x0264
+packetLen(0x0264, 20)
+
+// Packet: 0x0265
+packetLen(0x0265, 20)
+
+// Packet: 0x0266
+packetLen(0x0266, 30)
+
+// Packet: 0x0267
+packetLen(0x0267, 4)
+
+// Packet: 0x0268
+packetLen(0x0268, 4)
+
+// Packet: 0x0269
+packetLen(0x0269, 4)
+
+// Packet: 0x026a
+packetLen(0x026a, 4)
+
+// Packet: 0x026b
+packetLen(0x026b, 4)
+
+// Packet: 0x026c
+packetLen(0x026c, 4)
+
+// Packet: 0x026d
+packetLen(0x026d, 4)
+
+// Packet: 0x026f
+packetLen(0x026f, 2)
+
+// Packet: 0x0270
+packetLen(0x0270, 2)
+
+// Packet: 0x0271
+packetLen(0x0271, 40)
+
+// Packet: 0x0272
+packetLen(0x0272, 44)
+
+// Packet: 0x0273
+packetLen(0x0273, 30)
+
+// Packet: 0x0274
+packetLen(0x0274, 8)
+
+// Packet: 0x0275
+packetLen(0x0275, 37)
+
+// Packet: 0x0276
+packetLen(0x0276, -1)
+
+// Packet: 0x0277
+packetLen(0x0277, 84)
+
+// Packet: 0x0278
+packetLen(0x0278, 2)
+
+// Packet: 0x0279
+packetLen(0x0279, 2)
+
+// Packet: 0x027a
+packetLen(0x027a, -1)
+
+// Packet: 0x027b
+packetLen(0x027b, 14)
+
+// Packet: 0x027c
+packetLen(0x027c, 60)
+
+// Packet: 0x027d
+packetLen(0x027d, 62)
+
+// Packet: 0x027e
+packetLen(0x027e, -1)
+
+// Packet: 0x027f
+packetLen(0x027f, 8)
+
+// Packet: 0x0280
+packetLen(0x0280, 12)
+
+// Packet: 0x0281
+packetLen(0x0281, 4)
+
+// Packet: 0x0282
+packetLen(0x0282, 284)
+
+// Packet: 0x0283
+packetLen(0x0283, 6)
+
+// Packet: 0x0284
+packetLen(0x0284, 14)
+
+// Packet: 0x0285
+packetLen(0x0285, 6)
+
+// Packet: 0x0286
+packetLen(0x0286, 4)
+
+// Packet: 0x0287
+packetLen(0x0287, -1)
+
+// Packet: 0x0288
+packetLen(0x0288, -1)
+
+// Packet: 0x0289
+packetLen(0x0289, 12)
+
+// Packet: 0x028a
+packetLen(0x028a, 18)
+
+// Packet: 0x028b
+packetLen(0x028b, -1)
+
+// Packet: 0x028c
+packetLen(0x028c, 46)
+
+// Packet: 0x028d
+packetLen(0x028d, 34)
+
+// Packet: 0x028e
+packetLen(0x028e, 4)
+
+// Packet: 0x028f
+packetLen(0x028f, 6)
+
+// Packet: 0x0290
+packetLen(0x0290, 4)
+
+// Packet: 0x0291
+packetLen(0x0291, 4)
+
+// Packet: 0x0292
+packetLen(0x0292, 2)
+
+// Packet: 0x0293
+packetLen(0x0293, 70)
+
+// Packet: 0x0294
+packetLen(0x0294, 10)
+
+// Packet: 0x0295
+packetLen(0x0295, -1)
+
+// Packet: 0x0296
+packetLen(0x0296, -1)
+
+// Packet: 0x0297
+packetLen(0x0297, -1)
+
+// Packet: 0x0298
+packetLen(0x0298, 10)
+
+// Packet: 0x0299
+packetLen(0x0299, 8)
+
+// Packet: 0x029a
+packetLen(0x029a, 37)
+
+// Packet: 0x029b
+packetLen(0x029b, 80)
+
+// Packet: 0x029c
+packetLen(0x029c, 66)
+
+// Packet: 0x029d
+packetLen(0x029d, -1)
+
+// Packet: 0x029e
+packetLen(0x029e, 11)
+
+// Packet: 0x029f
+packetLen(0x029f, 3)
+
+// Packet: 0x02a2
+packetLen(0x02a2, 8)
+
+// Packet: 0x02a5
+packetLen(0x02a5, 8)
+
+// Packet: 0x02a6
+packetLen(0x02a6, -1)
+
+// Packet: 0x02a7
+packetLen(0x02a7, -1)
+
+// Packet: 0x02aa
+packetLen(0x02aa, 4)
+
+// Packet: 0x02ab
+packetLen(0x02ab, 36)
+
+// Packet: 0x02ac
+packetLen(0x02ac, 6)
+
+// Packet: 0x02ad
+packetLen(0x02ad, 8)
+
+// Packet: 0x02b0
+packetLen(0x02b0, 85)
+
+// Packet: 0x02b1
+packetLen(0x02b1, -1)
+
+// Packet: 0x02b2
+packetLen(0x02b2, -1)
+
+// Packet: 0x02b3
+packetLen(0x02b3, 107)
+
+// Packet: 0x02b4
+packetLen(0x02b4, 6)
+
+// Packet: 0x02b5
+packetLen(0x02b5, -1)
+
+// Packet: 0x02b6
+packetLen(0x02b6, 7)
+
+// Packet: 0x02b7
+packetLen(0x02b7, 7)
+
+// Packet: 0x02b8
+packetLen(0x02b8, 32)
+
+// Packet: 0x02b9
+packetLen(0x02b9, 191)
+
+// Packet: 0x02ba
+packetLen(0x02ba, 11)
+
+// Packet: 0x02bb
+packetLen(0x02bb, 8)
+
+// Packet: 0x02bc
+packetLen(0x02bc, 6)
+
+// Packet: 0x02c1
+packetLen(0x02c1, -1)
+
+// Packet: 0x02c2
+packetLen(0x02c2, -1)
+
+// Packet: 0x02c4
+packetLen(0x02c4, 26)
+
+// Packet: 0x02c5
+packetLen(0x02c5, 30)
+
+// Packet: 0x02c6
+packetLen(0x02c6, 30)
+
+// Packet: 0x02c7
+packetLen(0x02c7, 7)
+
+// Packet: 0x02c8
+packetLen(0x02c8, 3)
+
+// Packet: 0x02c9
+packetLen(0x02c9, 3)
+
+// Packet: 0x02ca
+packetLen(0x02ca, 3)
+
+// Packet: 0x02cb
+packetLen(0x02cb, 65)
+
+// Packet: 0x02cc
+packetLen(0x02cc, 4)
+
+// Packet: 0x02cd
+packetLen(0x02cd, 71)
+
+// Packet: 0x02ce
+packetLen(0x02ce, 10)
+
+// Packet: 0x02cf
+packetLen(0x02cf, 6)
+
+// Packet: 0x02d0
+packetLen(0x02d0, -1)
+
+// Packet: 0x02d1
+packetLen(0x02d1, -1)
+
+// Packet: 0x02d2
+packetLen(0x02d2, -1)
+
+// Packet: 0x02d3
+packetLen(0x02d3, 4)
+
+// Packet: 0x02d4
+packetLen(0x02d4, 39)
+
+// Packet: 0x02d5
+packetLen(0x02d5, 2)
+
+// Packet: 0x02d6
+packetLen(0x02d6, 6)
+
+// Packet: 0x02d7
+packetLen(0x02d7, -1)
+
+// Packet: 0x02d8
+packetLen(0x02d8, 10)
+
+// Packet: 0x02d9
+packetLen(0x02d9, 10)
+
+// Packet: 0x02da
+packetLen(0x02da, 3)
+
+// Packet: 0x02db
+packetLen(0x02db, -1)
+
+// Packet: 0x02dc
+packetLen(0x02dc, -1)
+
+// Packet: 0x02dd
+packetLen(0x02dd, 32)
+
+// Packet: 0x02de
+packetLen(0x02de, 6)
+
+// Packet: 0x02df
+packetLen(0x02df, 36)
+
+// Packet: 0x02e0
+packetLen(0x02e0, 34)
+
+// Packet: 0x02e1
+packetLen(0x02e1, 33)
+
+// Packet: 0x02e2
+packetLen(0x02e2, 20)
+
+// Packet: 0x02e3
+packetLen(0x02e3, 22)
+
+// Packet: 0x02e4
+packetLen(0x02e4, 11)
+
+// Packet: 0x02e5
+packetLen(0x02e5, 9)
+
+// Packet: 0x02e6
+packetLen(0x02e6, 6)
+
+// Packet: 0x02e7
+packetLen(0x02e7, -1)
+
+// Packet: 0x02e8
+packetLen(0x02e8, -1)
+
+// Packet: 0x02e9
+packetLen(0x02e9, -1)
+
+// Packet: 0x02ea
+packetLen(0x02ea, -1)
+
+// Packet: 0x02eb
+packetLen(0x02eb, 13)
+
+// Packet: 0x02ec
+packetLen(0x02ec, 71)
+
+// Packet: 0x02ed
+packetLen(0x02ed, 63)
+
+// Packet: 0x02ee
+packetLen(0x02ee, 64)
+
+// Packet: 0x02ef
+packetLen(0x02ef, 8)
+
+// Packet: 0x02f0
+packetLen(0x02f0, 10)
+
+// Packet: 0x02f1
+packetLen(0x02f1, 2)
+
+// Packet: 0x02f2
+packetLen(0x02f2, 2)
+
+// Packet: 0x02f3
+packetLen(0x02f3, -1)
+
+// Packet: 0x02f4
+packetLen(0x02f4, 3)
+
+// Packet: 0x02f5
+packetLen(0x02f5, 7)
+
+// Packet: 0x02f6
+packetLen(0x02f6, 7)
+
+// Packet: 0x035c
+packetLen(0x035c, 2)
+
+// Packet: 0x035d
+packetLen(0x035d, -1)
+
+// Packet: 0x035e
+packetLen(0x035e, 2)
+
+// Packet: 0x035f
+packetLen(0x035f, 5)
+
+// Packet: 0x0360
+packetLen(0x0360, 6)
+
+// Packet: 0x0361
+packetLen(0x0361, 5)
+
+// Packet: 0x0362
+packetLen(0x0362, 6)
+
+// Packet: 0x0363
+packetLen(0x0363, 6)
+
+// Packet: 0x0364
+packetLen(0x0364, 8)
+
+// Packet: 0x0365
+packetLen(0x0365, 8)
+
+// Packet: 0x0366
+packetLen(0x0366, 10)
+
+// Packet: 0x0367
+packetLen(0x0367, 31)
+
+// Packet: 0x0368
+packetLen(0x0368, 6)
+
+// Packet: 0x0369
+packetLen(0x0369, 6)
+
+// Packet: 0x03dd
+packetLen(0x03dd, 18)
+
+// Packet: 0x03de
+packetLen(0x03de, 18)
+
+// Packet: 0x0436
+packetLen(0x0436, 19)
+
+// Packet: 0x0437
+packetLen(0x0437, 7)
+
+// Packet: 0x0438
+packetLen(0x0438, 10)
+
+// Packet: 0x0439
+packetLen(0x0439, 8)
+
+// Packet: 0x043d
+packetLen(0x043d, 8)
+
+// Packet: 0x043e
+packetLen(0x043e, -1)
+
+// Packet: 0x043f
+packetLen(0x043f, 25)
+
+// Packet: 0x0440
+packetLen(0x0440, 10)
+
+// Packet: 0x0441
+packetLen(0x0441, 4)
+
+// Packet: 0x0442
+packetLen(0x0442, -1)
+
+// Packet: 0x0443
+packetLen(0x0443, 8)
+
+// Packet: 0x0444
+packetLen(0x0444, -1)
+
+// Packet: 0x0445
+packetLen(0x0445, 12)
+
+// Packet: 0x0446
+packetLen(0x0446, 14)
+
+// Packet: 0x0447
+packetLen(0x0447, 2)
+
+// Packet: 0x0448
+packetLen(0x0448, -1)
+
+// Packet: 0x0449
+packetLen(0x0449, 4)
+
+// Packet: 0x044a
+packetLen(0x044a, 6)
+
+// Packet: 0x044b
+packetLen(0x044b, 2)
+
+// Packet: 0x07d7
+packetLen(0x07d7, 8)
+
+// Packet: 0x07d8
+packetLen(0x07d8, 8)
+
+// Packet: 0x07d9
+packetLen(0x07d9, 268)
+
+// Packet: 0x07da
+packetLen(0x07da, 6)
+
+// Packet: 0x07db
+packetLen(0x07db, 8)
+
+// Packet: 0x07dc
+packetLen(0x07dc, 6)
+
+// Packet: 0x07dd
+packetLen(0x07dd, 54)
+
+// Packet: 0x07de
+packetLen(0x07de, 30)
+
+// Packet: 0x07df
+packetLen(0x07df, 54)
+
+// Packet: 0x07e0
+packetLen(0x07e0, 58)
+
+// Packet: 0x07e1
+packetLen(0x07e1, 15)
+
+// Packet: 0x07e2
+packetLen(0x07e2, 8)
+
+// Packet: 0x07e3
+packetLen(0x07e3, 6)
+
+// Packet: 0x07e4
+packetLen(0x07e4, -1)
+
+// Packet: 0x07e5
+packetLen(0x07e5, 4)
+
+// Packet: 0x07e6
+packetLen(0x07e6, 8)
+
+// Packet: 0x07e7
+packetLen(0x07e7, 32)
+
+// Packet: 0x07e8
+packetLen(0x07e8, -1)
+
+// Packet: 0x07e9
+packetLen(0x07e9, 5)
+
+// Packet: 0x07ea
+packetLen(0x07ea, 2)
+
+// Packet: 0x07eb
+packetLen(0x07eb, -1)
+
+// Packet: 0x07ec
+packetLen(0x07ec, 8)
+
+// Packet: 0x07ed
+packetLen(0x07ed, 10)
+
+// Packet: 0x07ee
+packetLen(0x07ee, 6)
+
+// Packet: 0x07ef
+packetLen(0x07ef, 8)
+
+// Packet: 0x07f0
+packetLen(0x07f0, 6)
+
+// Packet: 0x07f1
+packetLen(0x07f1, 18)
+
+// Packet: 0x07f2
+packetLen(0x07f2, 8)
+
+// Packet: 0x07f3
+packetLen(0x07f3, 6)
+
+// Packet: 0x07f4
+packetLen(0x07f4, 3)
+
+// Packet: 0x07f5
+packetLen(0x07f5, 6)
+
+// Packet: 0x07f6
+packetLen(0x07f6, 14)
+
+// Packet: 0x07f7
+packetLen(0x07f7, -1)
+
+// Packet: 0x07f8
+packetLen(0x07f8, -1)
+
+// Packet: 0x07f9
+packetLen(0x07f9, -1)
+
+// Packet: 0x07fa
+packetLen(0x07fa, 8)
+
+// Packet: 0x07fb
+packetLen(0x07fb, 25)
+
+// Packet: 0x07fc
+packetLen(0x07fc, 10)
+
+// Packet: 0x07fd
+packetLen(0x07fd, -1)
+
+// Packet: 0x07fe
+packetLen(0x07fe, 26)
+
+// Packet: 0x0800
+packetLen(0x0800, -1)
+
+// Packet: 0x0801
+packetLen(0x0801, -1)
+
+// Packet: 0x0802
+packetLen(0x0802, 18)
+
+// Packet: 0x0803
+packetLen(0x0803, 4)
+
+// Packet: 0x0804
+packetLen(0x0804, 14)
+
+// Packet: 0x0805
+packetLen(0x0805, -1)
+
+// Packet: 0x0806
+packetLen(0x0806, 2)
+
+// Packet: 0x0807
+packetLen(0x0807, 4)
+
+// Packet: 0x0808
+packetLen(0x0808, 14)
+
+// Packet: 0x0809
+packetLen(0x0809, 50)
+
+// Packet: 0x080a
+packetLen(0x080a, 18)
+
+// Packet: 0x080b
+packetLen(0x080b, 6)
+
+// Packet: 0x080c
+packetLen(0x080c, 2)
+
+// Packet: 0x080d
+packetLen(0x080d, 3)
+
+// Packet: 0x080e
+packetLen(0x080e, 14)
+
+// Packet: 0x080f
+packetLen(0x080f, 30)
+
+// Packet: 0x0810
+packetLen(0x0810, 3)
+
+// Packet: 0x0811
+packetLen(0x0811, -1)
+
+// Packet: 0x0812
+packetLen(0x0812, 8)
+
+// Packet: 0x0813
+packetLen(0x0813, -1)
+
+// Packet: 0x0814
+packetLen(0x0814, 86)
+
+// Packet: 0x0815
+packetLen(0x0815, 2)
+
+// Packet: 0x0816
+packetLen(0x0816, 6)
+
+// Packet: 0x0817
+packetLen(0x0817, 6)
+
+// Packet: 0x0818
+packetLen(0x0818, -1)
+
+// Packet: 0x0819
+packetLen(0x0819, -1)
+
+// Packet: 0x081a
+packetLen(0x081a, 4)
+
+// Packet: 0x081b
+packetLen(0x081b, 12)
+
+// Packet: 0x081c
+packetLen(0x081c, 10)
+
+// Packet: 0x081d
+packetLen(0x081d, 22)
+
+// Packet: 0x081e
+packetLen(0x081e, 8)
+
+// Packet: 0x081f
+packetLen(0x081f, -1)
+
+// Packet: 0x0820
+packetLen(0x0820, 11)
+
+// Packet: 0x0821
+packetLen(0x0821, 2)
+
+// Packet: 0x0822
+packetLen(0x0822, 9)
+
+// Packet: 0x0823
+packetLen(0x0823, -1)
+
+// Packet: 0x0824
+packetLen(0x0824, 8)
+
+// Packet: 0x0825
+packetLen(0x0825, -1)
+
+// Packet: 0x0827
+packetLen(0x0827, 6)
+
+// Packet: 0x0828
+packetLen(0x0828, 14)
+
+// Packet: 0x0829
+packetLen(0x0829, 12)
+
+// Packet: 0x082a
+packetLen(0x082a, 10)
+
+// Packet: 0x082b
+packetLen(0x082b, 6)
+
+// Packet: 0x082c
+packetLen(0x082c, 10)
+
+// Packet: 0x082d
+packetLen(0x082d, -1)
+
+// Packet: 0x0835
+packetLen(0x0835, -1)
+
+// Packet: 0x0836
+packetLen(0x0836, -1)
+
+// Packet: 0x0837
+packetLen(0x0837, 3)
+
+// Packet: 0x0838
+packetLen(0x0838, 2)
+
+// Packet: 0x0839
+packetLen(0x0839, 66)
+
+// Packet: 0x083a
+packetLen(0x083a, 5)
+
+// Packet: 0x083b
+packetLen(0x083b, 2)
+
+// Packet: 0x083c
+packetLen(0x083c, 14)
+
+// Packet: 0x083d
+packetLen(0x083d, 6)
+
+// Packet: 0x083e
+packetLen(0x083e, 26)
+
+// Packet: 0x0840
+packetLen(0x0840, -1)
+
+// Packet: 0x0841
+packetLen(0x0841, 4)
+
+// Packet: 0x0842
+packetLen(0x0842, 6)
+
+// Packet: 0x0843
+packetLen(0x0843, 6)
+
+// Packet: 0x0844
+packetLen(0x0844, 2)
+
+// Packet: 0x0845
+packetLen(0x0845, 10)
+
+// Packet: 0x0846
+packetLen(0x0846, 4)
+
+// Packet: 0x0847
+packetLen(0x0847, -1)
+
+// Packet: 0x0848
+packetLen(0x0848, -1)
+
+// Packet: 0x0849
+packetLen(0x0849, 16)
+
+// Packet: 0x084a
+packetLen(0x084a, 2)
+
+// Packet: 0x084b
+packetLen(0x084b, 21)
+
+// Packet: 0x084c
+packetLen(0x084c, 10)
+
+// Packet: 0x084d
+packetLen(0x084d, 10)
+
+// Packet: 0x084e
+packetLen(0x084e, 5)
+
+// Packet: 0x084f
+packetLen(0x084f, 6)
+
+// Packet: 0x0850
+packetLen(0x0850, 7)
+
+// Packet: 0x0851
+packetLen(0x0851, -1)
+
+// Packet: 0x0852
+packetLen(0x0852, 2)
+
+// Packet: 0x0853
+packetLen(0x0853, -1)
+
+// Packet: 0x0854
+packetLen(0x0854, -1)
+
+// Packet: 0x0855
+packetLen(0x0855, 6)
+
+// Packet: 0x0856
+packetLen(0x0856, -1)
+
+// Packet: 0x0857
+packetLen(0x0857, -1)
+
+// Packet: 0x0858
+packetLen(0x0858, -1)
+
+// Packet: 0x0859
+packetLen(0x0859, -1)
+
+// Packet: 0x085a
+packetLen(0x085a, 2)
+
+// Packet: 0x085b
+packetLen(0x085b, 2)
+
+// Packet: 0x085c
+packetLen(0x085c, 2)
+
+// Packet: 0x085d
+packetLen(0x085d, 2)
+
+// Packet: 0x085e
+packetLen(0x085e, 2)
+
+// Packet: 0x085f
+packetLen(0x085f, 2)
+
+// Packet: 0x0860
+packetLen(0x0860, 2)
+
+// Packet: 0x0861
+packetLen(0x0861, 2)
+
+// Packet: 0x0862
+packetLen(0x0862, 2)
+
+// Packet: 0x0863
+packetLen(0x0863, 2)
+
+// Packet: 0x0864
+packetLen(0x0864, 2)
+
+// Packet: 0x0865
+packetLen(0x0865, 2)
+
+// Packet: 0x0866
+packetLen(0x0866, 2)
+
+// Packet: 0x0867
+packetLen(0x0867, 2)
+
+// Packet: 0x0868
+packetLen(0x0868, 2)
+
+// Packet: 0x0869
+packetLen(0x0869, 2)
+
+// Packet: 0x086a
+packetLen(0x086a, 2)
+
+// Packet: 0x086b
+packetLen(0x086b, 2)
+
+// Packet: 0x086c
+packetLen(0x086c, 2)
+
+// Packet: 0x086d
+packetLen(0x086d, 2)
+
+// Packet: 0x086e
+packetLen(0x086e, 2)
+
+// Packet: 0x086f
+packetLen(0x086f, 2)
+
+// Packet: 0x0870
+packetLen(0x0870, 2)
+
+// Packet: 0x0871
+packetLen(0x0871, 2)
+
+// Packet: 0x0872
+packetLen(0x0872, 2)
+
+// Packet: 0x0873
+packetLen(0x0873, 2)
+
+// Packet: 0x0874
+packetLen(0x0874, 2)
+
+// Packet: 0x0875
+packetLen(0x0875, 2)
+
+// Packet: 0x0876
+packetLen(0x0876, 2)
+
+// Packet: 0x0877
+packetLen(0x0877, 2)
+
+// Packet: 0x0878
+packetLen(0x0878, 2)
+
+// Packet: 0x0879
+packetLen(0x0879, 2)
+
+// Packet: 0x087a
+packetLen(0x087a, 2)
+
+// Packet: 0x087b
+packetLen(0x087b, 2)
+
+// Packet: 0x087c
+packetLen(0x087c, 2)
+
+// Packet: 0x087d
+packetLen(0x087d, 2)
+
+// Packet: 0x087e
+packetLen(0x087e, 2)
+
+// Packet: 0x087f
+packetLen(0x087f, 2)
+
+// Packet: 0x0880
+packetLen(0x0880, 2)
+
+// Packet: 0x0881
+packetLen(0x0881, 2)
+
+// Packet: 0x0882
+packetLen(0x0882, 2)
+
+// Packet: 0x0883
+packetLen(0x0883, 2)
+
+// Packet: 0x0884
+packetLen(0x0884, 2)
+
+// Packet: 0x0885
+packetLen(0x0885, 2)
+
+// Packet: 0x0886
+packetLen(0x0886, 2)
+
+// Packet: 0x0887
+packetLen(0x0887, 2)
+
+// Packet: 0x0888
+packetLen(0x0888, 2)
+
+// Packet: 0x0889
+packetLen(0x0889, 2)
+
+// Packet: 0x088a
+packetLen(0x088a, 2)
+
+// Packet: 0x088b
+packetLen(0x088b, 2)
+
+// Packet: 0x088c
+packetLen(0x088c, 2)
+
+// Packet: 0x088d
+packetLen(0x088d, 2)
+
+// Packet: 0x088e
+packetLen(0x088e, 2)
+
+// Packet: 0x088f
+packetLen(0x088f, 2)
+
+// Packet: 0x0890
+packetLen(0x0890, 2)
+
+// Packet: 0x0891
+packetLen(0x0891, 2)
+
+// Packet: 0x0892
+packetLen(0x0892, 2)
+
+// Packet: 0x0893
+packetLen(0x0893, 2)
+
+// Packet: 0x0894
+packetLen(0x0894, 2)
+
+// Packet: 0x0895
+packetLen(0x0895, 2)
+
+// Packet: 0x0896
+packetLen(0x0896, 2)
+
+// Packet: 0x0897
+packetLen(0x0897, 2)
+
+// Packet: 0x0898
+packetLen(0x0898, 2)
+
+// Packet: 0x0899
+packetLen(0x0899, 2)
+
+// Packet: 0x089a
+packetLen(0x089a, 2)
+
+// Packet: 0x089b
+packetLen(0x089b, 2)
+
+// Packet: 0x089c
+packetLen(0x089c, 2)
+
+// Packet: 0x089d
+packetLen(0x089d, 2)
+
+// Packet: 0x089e
+packetLen(0x089e, 2)
+
+// Packet: 0x089f
+packetLen(0x089f, 2)
+
+// Packet: 0x08a0
+packetLen(0x08a0, 2)
+
+// Packet: 0x08a1
+packetLen(0x08a1, 2)
+
+// Packet: 0x08a2
+packetLen(0x08a2, 2)
+
+// Packet: 0x08a3
+packetLen(0x08a3, 2)
+
+// Packet: 0x08a4
+packetLen(0x08a4, 2)
+
+// Packet: 0x08a5
+packetLen(0x08a5, 2)
+
+// Packet: 0x08a6
+packetLen(0x08a6, 2)
+
+// Packet: 0x08a7
+packetLen(0x08a7, 2)
+
+// Packet: 0x08a8
+packetLen(0x08a8, 2)
+
+// Packet: 0x08a9
+packetLen(0x08a9, 2)
+
+// Packet: 0x08aa
+packetLen(0x08aa, 2)
+
+// Packet: 0x08ab
+packetLen(0x08ab, 2)
+
+// Packet: 0x08ac
+packetLen(0x08ac, 2)
+
+// Packet: 0x08ad
+packetLen(0x08ad, 2)
+
+// Packet: 0x08af
+packetLen(0x08af, 10)
+
+// Packet: 0x08b0
+packetLen(0x08b0, 17)
+
+// Packet: 0x08b1
+packetLen(0x08b1, -1)
+
+// Packet: 0x08b2
+packetLen(0x08b2, -1)
+
+// Packet: 0x08b3
+packetLen(0x08b3, -1)
+
+// Packet: 0x08b4
+packetLen(0x08b4, 2)
+
+// Packet: 0x08b5
+packetLen(0x08b5, 6)
+
+// Packet: 0x08b6
+packetLen(0x08b6, 3)
+
+// Packet: 0x08b8
+packetLen(0x08b8, 10)
+
+// Packet: 0x08b9
+packetLen(0x08b9, 12)
+
+// Packet: 0x08ba
+packetLen(0x08ba, 10)
+
+// Packet: 0x08bb
+packetLen(0x08bb, 8)
+
+// Packet: 0x08bc
+packetLen(0x08bc, 10)
+
+// Packet: 0x08bd
+packetLen(0x08bd, 8)
+
+// Packet: 0x08be
+packetLen(0x08be, 14)
+
+// Packet: 0x08bf
+packetLen(0x08bf, 8)
+
+// Packet: 0x08c0
+packetLen(0x08c0, -1)
+
+// Packet: 0x08c1
+packetLen(0x08c1, 2)
+
+// Packet: 0x08c2
+packetLen(0x08c2, 2)
+
+// Packet: 0x08c3
+packetLen(0x08c3, 10)
+
+// Packet: 0x08c4
+packetLen(0x08c4, 8)
+
+// Packet: 0x08c5
+packetLen(0x08c5, 6)
+
+// Packet: 0x08c6
+packetLen(0x08c6, 4)
+
+// Packet: 0x08c7
+packetLen(0x08c7, -1)
+
+// Packet: 0x08c8
+packetLen(0x08c8, 34)
+
+// Packet: 0x08c9
+packetLen(0x08c9, 2)
+
+// Packet: 0x08ca
+packetLen(0x08ca, -1)
+
+// Packet: 0x08cb
+packetLen(0x08cb, -1)
+
+// Packet: 0x08cc
+packetLen(0x08cc, 109)
+
+// Packet: 0x08cd
+packetLen(0x08cd, 10)
+
+// Packet: 0x08ce
+packetLen(0x08ce, 2)
+
+// Packet: 0x08cf
+packetLen(0x08cf, 10)
+
+// Packet: 0x08d0
+packetLen(0x08d0, 9)
+
+// Packet: 0x08d1
+packetLen(0x08d1, 7)
+
+// Packet: 0x08d2
+packetLen(0x08d2, 10)
+
+// Packet: 0x08d3
+packetLen(0x08d3, 10)
+
+// Packet: 0x08d4
+packetLen(0x08d4, 8)
+
+// Packet: 0x08d5
+packetLen(0x08d5, -1)
+
+// Packet: 0x08d6
+packetLen(0x08d6, 6)
+
+// Packet: 0x08d7
+packetLen(0x08d7, 28)
+
+// Packet: 0x08d8
+packetLen(0x08d8, 27)
+
+// Packet: 0x08d9
+packetLen(0x08d9, 30)
+
+// Packet: 0x08da
+packetLen(0x08da, 26)
+
+// Packet: 0x08db
+packetLen(0x08db, 27)
+
+// Packet: 0x08dc
+packetLen(0x08dc, 26)
+
+// Packet: 0x08dd
+packetLen(0x08dd, 27)
+
+// Packet: 0x08de
+packetLen(0x08de, 27)
+
+// Packet: 0x08df
+packetLen(0x08df, 50)
+
+// Packet: 0x08e0
+packetLen(0x08e0, 51)
+
+// Packet: 0x08e1
+packetLen(0x08e1, 51)
+
+// Packet: 0x08e2
+packetLen(0x08e2, 27)
+
+// Packet: 0x08e3
+packetLen(0x08e3, 157)
+
+// Packet: 0x08e4
+packetLen(0x08e4, 6)
+
+// Packet: 0x08fc
+packetLen(0x08fc, 30)
+
+// Packet: 0x08fd
+packetLen(0x08fd, 6)
+
+// Packet: 0x08fe
+packetLen(0x08fe, -1)
+
+// Packet: 0x08ff
+packetLen(0x08ff, 24)
+
+// Packet: 0x0900
+packetLen(0x0900, -1)
+
+// Packet: 0x0901
+packetLen(0x0901, -1)
+
+// Packet: 0x0902
+packetLen(0x0902, -1)
+
+// Packet: 0x0903
+packetLen(0x0903, -1)
+
+// Packet: 0x0904
+packetLen(0x0904, -1)
+
+// Packet: 0x0905
+packetLen(0x0905, -1)
+
+// Packet: 0x0906
+packetLen(0x0906, -1)
+
+// Packet: 0x0907
+packetLen(0x0907, 5)
+
+// Packet: 0x0908
+packetLen(0x0908, 5)
+
+// Packet: 0x090a
+packetLen(0x090a, 26)
+
+// Packet: 0x090d
+packetLen(0x090d, -1)
+
+// Packet: 0x090e
+packetLen(0x090e, 2)
+
+// Packet: 0x090f
+packetLen(0x090f, -1)
+
+// Packet: 0x0910
+packetLen(0x0910, 10)
+
+// Packet: 0x0911
+packetLen(0x0911, 30)
+
+// Packet: 0x0912
+packetLen(0x0912, 10)
+
+// Packet: 0x0913
+packetLen(0x0913, 30)
+
+// Packet: 0x0914
+packetLen(0x0914, -1)
+
+// Packet: 0x0915
+packetLen(0x0915, -1)
+
+// Packet: 0x0916
+packetLen(0x0916, 26)
+
+// Packet: 0x0917
+packetLen(0x0917, 2)
+
+// Packet: 0x0918
+packetLen(0x0918, 2)
+
+// Packet: 0x0919
+packetLen(0x0919, 2)
+
+// Packet: 0x091a
+packetLen(0x091a, 2)
+
+// Packet: 0x091b
+packetLen(0x091b, 2)
+
+// Packet: 0x091c
+packetLen(0x091c, 2)
+
+// Packet: 0x091d
+packetLen(0x091d, 2)
+
+// Packet: 0x091e
+packetLen(0x091e, 2)
+
+// Packet: 0x091f
+packetLen(0x091f, 2)
+
+// Packet: 0x0920
+packetLen(0x0920, 2)
+
+// Packet: 0x0921
+packetLen(0x0921, 2)
+
+// Packet: 0x0922
+packetLen(0x0922, 2)
+
+// Packet: 0x0923
+packetLen(0x0923, 2)
+
+// Packet: 0x0924
+packetLen(0x0924, 2)
+
+// Packet: 0x0925
+packetLen(0x0925, 2)
+
+// Packet: 0x0926
+packetLen(0x0926, 2)
+
+// Packet: 0x0927
+packetLen(0x0927, 2)
+
+// Packet: 0x0928
+packetLen(0x0928, 2)
+
+// Packet: 0x0929
+packetLen(0x0929, 2)
+
+// Packet: 0x092a
+packetLen(0x092a, 2)
+
+// Packet: 0x092b
+packetLen(0x092b, 2)
+
+// Packet: 0x092c
+packetLen(0x092c, 2)
+
+// Packet: 0x092d
+packetLen(0x092d, 2)
+
+// Packet: 0x092e
+packetLen(0x092e, 2)
+
+// Packet: 0x092f
+packetLen(0x092f, 2)
+
+// Packet: 0x0930
+packetLen(0x0930, 2)
+
+// Packet: 0x0931
+packetLen(0x0931, 2)
+
+// Packet: 0x0932
+packetLen(0x0932, 2)
+
+// Packet: 0x0933
+packetLen(0x0933, 2)
+
+// Packet: 0x0934
+packetLen(0x0934, 2)
+
+// Packet: 0x0935
+packetLen(0x0935, 2)
+
+// Packet: 0x0936
+packetLen(0x0936, 2)
+
+// Packet: 0x0937
+packetLen(0x0937, 2)
+
+// Packet: 0x0938
+packetLen(0x0938, 2)
+
+// Packet: 0x0939
+packetLen(0x0939, 2)
+
+// Packet: 0x093a
+packetLen(0x093a, 2)
+
+// Packet: 0x093b
+packetLen(0x093b, 2)
+
+// Packet: 0x093c
+packetLen(0x093c, 2)
+
+// Packet: 0x093d
+packetLen(0x093d, 2)
+
+// Packet: 0x093e
+packetLen(0x093e, 2)
+
+// Packet: 0x093f
+packetLen(0x093f, 2)
+
+// Packet: 0x0940
+packetLen(0x0940, 2)
+
+// Packet: 0x0941
+packetLen(0x0941, 2)
+
+// Packet: 0x0942
+packetLen(0x0942, 2)
+
+// Packet: 0x0943
+packetLen(0x0943, 2)
+
+// Packet: 0x0944
+packetLen(0x0944, 2)
+
+// Packet: 0x0945
+packetLen(0x0945, 2)
+
+// Packet: 0x0946
+packetLen(0x0946, 2)
+
+// Packet: 0x0947
+packetLen(0x0947, 2)
+
+// Packet: 0x0948
+packetLen(0x0948, 2)
+
+// Packet: 0x0949
+packetLen(0x0949, 2)
+
+// Packet: 0x094a
+packetLen(0x094a, 2)
+
+// Packet: 0x094b
+packetLen(0x094b, 2)
+
+// Packet: 0x094c
+packetLen(0x094c, 2)
+
+// Packet: 0x094d
+packetLen(0x094d, 2)
+
+// Packet: 0x094e
+packetLen(0x094e, 2)
+
+// Packet: 0x094f
+packetLen(0x094f, 2)
+
+// Packet: 0x0950
+packetLen(0x0950, 2)
+
+// Packet: 0x0951
+packetLen(0x0951, 2)
+
+// Packet: 0x0952
+packetLen(0x0952, 2)
+
+// Packet: 0x0953
+packetLen(0x0953, 2)
+
+// Packet: 0x0954
+packetLen(0x0954, 2)
+
+// Packet: 0x0955
+packetLen(0x0955, 2)
+
+// Packet: 0x0956
+packetLen(0x0956, 2)
+
+// Packet: 0x0957
+packetLen(0x0957, 2)
+
+// Packet: 0x0958
+packetLen(0x0958, 2)
+
+// Packet: 0x0959
+packetLen(0x0959, 2)
+
+// Packet: 0x095a
+packetLen(0x095a, 2)
+
+// Packet: 0x095b
+packetLen(0x095b, 2)
+
+// Packet: 0x095c
+packetLen(0x095c, 2)
+
+// Packet: 0x095d
+packetLen(0x095d, 2)
+
+// Packet: 0x095e
+packetLen(0x095e, 2)
+
+// Packet: 0x095f
+packetLen(0x095f, 2)
+
+// Packet: 0x0960
+packetLen(0x0960, 2)
+
+// Packet: 0x0961
+packetLen(0x0961, 2)
+
+// Packet: 0x0962
+packetLen(0x0962, 2)
+
+// Packet: 0x0963
+packetLen(0x0963, 2)
+
+// Packet: 0x0964
+packetLen(0x0964, 2)
+
+// Packet: 0x0965
+packetLen(0x0965, 2)
+
+// Packet: 0x0966
+packetLen(0x0966, 2)
+
+// Packet: 0x0967
+packetLen(0x0967, 2)
+
+// Packet: 0x0968
+packetLen(0x0968, 2)
+
+// Packet: 0x0969
+packetLen(0x0969, 2)
+
+// Packet: 0x096a
+packetLen(0x096a, 2)
+
+// Packet: 0x096b
+packetLen(0x096b, 4)
+
+// Packet: 0x096c
+packetLen(0x096c, 6)
+
+// Packet: 0x096d
+packetLen(0x096d, -1)
+
+// Packet: 0x096e
+packetLen(0x096e, -1)
+
+// Packet: 0x096f
+packetLen(0x096f, 7)
+
+// Packet: 0x0970
+packetLen(0x0970, 31)
+
+// Packet: 0x0971
+packetLen(0x0971, 6)
+
+// Packet: 0x0972
+packetLen(0x0972, -1)
+
+// Packet: 0x0973
+packetLen(0x0973, 7)
+
+// Packet: 0x0974
+packetLen(0x0974, 2)
+
+// Packet: 0x0975
+packetLen(0x0975, -1)
+
+// Packet: 0x0976
+packetLen(0x0976, -1)
+
+// Packet: 0x0977
+packetLen(0x0977, 14)
+
+// Packet: 0x0978
+packetLen(0x0978, 6)
+
+// Packet: 0x0979
+packetLen(0x0979, 50)
+
+// Packet: 0x097a
+packetLen(0x097a, -1)
+
+// Packet: 0x097b
+packetLen(0x097b, -1)
+
+// Packet: 0x097c
+packetLen(0x097c, 4)
+
+// Packet: 0x097d
+packetLen(0x097d, 288)
+
+// Packet: 0x097e
+packetLen(0x097e, 12)
+
+// Packet: 0x097f
+packetLen(0x097f, -1)
+
+// Packet: 0x0980
+packetLen(0x0980, 7)
+
+// Packet: 0x0981
+packetLen(0x0981, -1)
+
+// Packet: 0x0982
+packetLen(0x0982, 7)
+
+// Packet: 0x0983
+packetLen(0x0983, 29)
+
+// Packet: 0x0984
+packetLen(0x0984, 28)
+
+// Packet: 0x0985
+packetLen(0x0985, -1)
+
+// Packet: 0x0986
+packetLen(0x0986, 10)
+
+// Packet: 0x0987
+packetLen(0x0987, -1)
+
+// Packet: 0x0988
+packetLen(0x0988, 6)
+
+// Packet: 0x0989
+packetLen(0x0989, 2)
+
+// Packet: 0x098a
+packetLen(0x098a, -1)
+
+// Packet: 0x098b
+packetLen(0x098b, 2)
+
+// Packet: 0x098c
+packetLen(0x098c, 4)
+
+// Packet: 0x098d
+packetLen(0x098d, -1)
+
+// Packet: 0x098e
+packetLen(0x098e, -1)
+
+// Packet: 0x098f
+packetLen(0x098f, -1)
+
+// Packet: 0x0990
+packetLen(0x0990, 41)
+
+// Packet: 0x0991
+packetLen(0x0991, -1)
+
+// Packet: 0x0992
+packetLen(0x0992, -1)
+
+// Packet: 0x0993
+packetLen(0x0993, -1)
+
+// Packet: 0x0994
+packetLen(0x0994, -1)
+
+// Packet: 0x0995
+packetLen(0x0995, -1)
+
+// Packet: 0x0996
+packetLen(0x0996, -1)
+
+// Packet: 0x0997
+packetLen(0x0997, -1)
+
+// Packet: 0x0998
+packetLen(0x0998, 8)
+
+// Packet: 0x0999
+packetLen(0x0999, 11)
+
+// Packet: 0x099a
+packetLen(0x099a, 9)
+
+// Packet: 0x099b
+packetLen(0x099b, 8)
+
+// Packet: 0x099c
+packetLen(0x099c, 6)
+
+// Packet: 0x099d
+packetLen(0x099d, -1)
+
+// Packet: 0x099e
+packetLen(0x099e, 12)
+
+// Packet: 0x099f
+packetLen(0x099f, -1)
+
+// Packet: 0x09a0
+packetLen(0x09a0, 6)
+
+// Packet: 0x09a1
+packetLen(0x09a1, 2)
+
+// Packet: 0x09a2
+packetLen(0x09a2, 6)
+
+// Packet: 0x09a3
+packetLen(0x09a3, -1)
+
+// Packet: 0x09a4
+packetLen(0x09a4, 18)
+
+// Packet: 0x09a5
+packetLen(0x09a5, 7)
+
+// Packet: 0x09a6
+packetLen(0x09a6, 12)
+
+// Packet: 0x09a7
+packetLen(0x09a7, 10)
+
+// Packet: 0x09a8
+packetLen(0x09a8, 16)
+
+// Packet: 0x09a9
+packetLen(0x09a9, 10)
+
+// Packet: 0x09aa
+packetLen(0x09aa, 16)
+
+// Packet: 0x09ab
+packetLen(0x09ab, 6)
+
+// Packet: 0x09ac
+packetLen(0x09ac, -1)
+
+// Packet: 0x09ad
+packetLen(0x09ad, 12)
+
+// Packet: 0x09ae
+packetLen(0x09ae, 19)
+
+// Packet: 0x09af
+packetLen(0x09af, 4)
+
+// Packet: 0x09b0
+packetLen(0x09b0, 10)
+
+// Packet: 0x09b1
+packetLen(0x09b1, 4)
+
+// Packet: 0x09b2
+packetLen(0x09b2, 10)
+
+// Packet: 0x09b3
+packetLen(0x09b3, 6)
+
+// Packet: 0x09b4
+packetLen(0x09b4, 6)
+
+// Packet: 0x09b5
+packetLen(0x09b5, 2)
+
+// Packet: 0x09b6
+packetLen(0x09b6, 6)
+
+// Packet: 0x09b7
+packetLen(0x09b7, 4)
+
+// Packet: 0x09b8
+packetLen(0x09b8, 6)
+
+// Packet: 0x09b9
+packetLen(0x09b9, 4)
+
+// Packet: 0x09ba
+packetLen(0x09ba, 2)
+
+// Packet: 0x09bb
+packetLen(0x09bb, 6)
+
+// Packet: 0x09bc
+packetLen(0x09bc, 6)
+
+// Packet: 0x09bd
+packetLen(0x09bd, 2)
+
+// Packet: 0x09be
+packetLen(0x09be, 2)
+
+// Packet: 0x09bf
+packetLen(0x09bf, 4)
+
+// Packet: 0x09c1
+packetLen(0x09c1, 10)
+
+// Packet: 0x09c2
+packetLen(0x09c2, -1)
+
+// Packet: 0x09c3
+packetLen(0x09c3, 10)
+
+// Packet: 0x09c4
+packetLen(0x09c4, 10)
+
+// Packet: 0x09c5
+packetLen(0x09c5, 1042)
+
+// Packet: 0x09c6
+packetLen(0x09c6, -1)
+
+// Packet: 0x09c7
+packetLen(0x09c7, 18)
+
+// Packet: 0x09c8
+packetLen(0x09c8, -1)
+
+// Packet: 0x09c9
+packetLen(0x09c9, -1)
+
+// Packet: 0x09ca
+packetLen(0x09ca, -1)
+
+// Packet: 0x09cb
+packetLen(0x09cb, 17)
+
+// Packet: 0x09cc
+packetLen(0x09cc, -1)
+
+// Packet: 0x09cd
+packetLen(0x09cd, 8)
+
+// Packet: 0x09ce
+packetLen(0x09ce, 102)
+
+// Packet: 0x09cf
+packetLen(0x09cf, -1)
+
+// Packet: 0x09d0
+packetLen(0x09d0, -1)
+
+// Packet: 0x09d1
+packetLen(0x09d1, 14)
+
+// Packet: 0x09d2
+packetLen(0x09d2, -1)
+
+// Packet: 0x09d3
+packetLen(0x09d3, -1)
+
+// Packet: 0x09d4
+packetLen(0x09d4, 2)
+
+// Packet: 0x09d5
+packetLen(0x09d5, -1)
+
+// Packet: 0x09d6
+packetLen(0x09d6, -1)
+
+// Packet: 0x09d7
+packetLen(0x09d7, -1)
+
+// Packet: 0x09d8
+packetLen(0x09d8, 2)
+
+// Packet: 0x09d9
+packetLen(0x09d9, 4)
+
+// Packet: 0x09da
+packetLen(0x09da, -1)
+
+// Packet: 0x09db
+packetLen(0x09db, -1)
+
+// Packet: 0x09dc
+packetLen(0x09dc, -1)
+
+// Packet: 0x09dd
+packetLen(0x09dd, -1)
+
+// Packet: 0x09de
+packetLen(0x09de, -1)
+
+// Packet: 0x09df
+packetLen(0x09df, 7)
+
+// Packet: 0x09e0
+packetLen(0x09e0, -1)
+
+// Packet: 0x09e1
+packetLen(0x09e1, 8)
+
+// Packet: 0x09e2
+packetLen(0x09e2, 8)
+
+// Packet: 0x09e3
+packetLen(0x09e3, 8)
+
+// Packet: 0x09e4
+packetLen(0x09e4, 8)
+
+// Packet: 0x09e5
+packetLen(0x09e5, 18)
+
+// Packet: 0x09e6
+packetLen(0x09e6, 24)
+
+// Packet: 0x09e7
+packetLen(0x09e7, 3)
+
+// Packet: 0x09e8
+packetLen(0x09e8, 11)
+
+// Packet: 0x09e9
+packetLen(0x09e9, 2)
+
+// Packet: 0x09ea
+packetLen(0x09ea, 11)
+
+// Packet: 0x09eb
+packetLen(0x09eb, -1)
+
+// Packet: 0x09ec
+packetLen(0x09ec, -1)
+
+// Packet: 0x09ed
+packetLen(0x09ed, 3)
+
+// Packet: 0x09ee
+packetLen(0x09ee, 11)
+
+// Packet: 0x09ef
+packetLen(0x09ef, 11)
+
+// Packet: 0x09f0
+packetLen(0x09f0, -1)
+
+// Packet: 0x09f1
+packetLen(0x09f1, 11)
+
+// Packet: 0x09f2
+packetLen(0x09f2, 12)
+
+// Packet: 0x09f3
+packetLen(0x09f3, 11)
+
+// Packet: 0x09f4
+packetLen(0x09f4, 12)
+
+// Packet: 0x09f5
+packetLen(0x09f5, 11)
+
+// Packet: 0x09f6
+packetLen(0x09f6, 11)
+
+// Packet: 0x09f7
+packetLen(0x09f7, 77)
+
+// Packet: 0x09f8
+packetLen(0x09f8, -1)
+
+// Packet: 0x09f9
+packetLen(0x09f9, 143)
+
+// Packet: 0x09fa
+packetLen(0x09fa, -1)
+
+// Packet: 0x09fb
+packetLen(0x09fb, -1)
+
+// Packet: 0x09fc
+packetLen(0x09fc, 6)
+
+// Packet: 0x09fd
+packetLen(0x09fd, -1)
+
+// Packet: 0x09fe
+packetLen(0x09fe, -1)
+
+// Packet: 0x09ff
+packetLen(0x09ff, -1)
+
+// Packet: 0x0a00
+packetLen(0x0a00, 269)
+
+// Packet: 0x0a01
+packetLen(0x0a01, 3)
+
+// Packet: 0x0a02
+packetLen(0x0a02, 4)
+
+// Packet: 0x0a03
+packetLen(0x0a03, 2)
+
+// Packet: 0x0a04
+packetLen(0x0a04, 6)
+
+// Packet: 0x0a05
+packetLen(0x0a05, 63)
+
+// Packet: 0x0a06
+packetLen(0x0a06, 6)
+
+// Packet: 0x0a07
+packetLen(0x0a07, 9)
+
+// Packet: 0x0a08
+packetLen(0x0a08, 26)
+
+// Packet: 0x0a09
+packetLen(0x0a09, 55)
+
+// Packet: 0x0a0a
+packetLen(0x0a0a, 57)
+
+// Packet: 0x0a0b
+packetLen(0x0a0b, 57)
+
+// Packet: 0x0a0c
+packetLen(0x0a0c, 66)
+
+// Packet: 0x0a0d
+packetLen(0x0a0d, -1)
+
+// Packet: 0x0a0e
+packetLen(0x0a0e, 14)
+
+// Packet: 0x0a0f
+packetLen(0x0a0f, -1)
+
+// Packet: 0x0a10
+packetLen(0x0a10, -1)
+
+// Packet: 0x0a11
+packetLen(0x0a11, -1)
+
+// Packet: 0x0a12
+packetLen(0x0a12, 27)
+
+// Packet: 0x0a13
+packetLen(0x0a13, 26)
+
+// Packet: 0x0a14
+packetLen(0x0a14, 10)
+
+// Packet: 0x0a15
+packetLen(0x0a15, 12)
+
+// Packet: 0x0a16
+packetLen(0x0a16, 26)
+
+// Packet: 0x0a17
+packetLen(0x0a17, 6)
+
+// Packet: 0x0a18
+packetLen(0x0a18, 14)
+
+// Packet: 0x0a19
+packetLen(0x0a19, 2)
+
+// Packet: 0x0a1a
+packetLen(0x0a1a, 25)
+
+// Packet: 0x0a1b
+packetLen(0x0a1b, 2)
+
+// Packet: 0x0a1c
+packetLen(0x0a1c, -1)
+
+// Packet: 0x0a1d
+packetLen(0x0a1d, 2)
+
+// Packet: 0x0a1e
+packetLen(0x0a1e, 3)
+
+// Packet: 0x0a1f
+packetLen(0x0a1f, 2)
+
+// Packet: 0x0a20
+packetLen(0x0a20, 23)
+
+// Packet: 0x0a21
+packetLen(0x0a21, 3)
+
+// Packet: 0x0a22
+packetLen(0x0a22, 7)
+
+// Packet: 0x0a23
+packetLen(0x0a23, -1)
+
+// Packet: 0x0a24
+packetLen(0x0a24, 66)
+
+// Packet: 0x0a25
+packetLen(0x0a25, 6)
+
+// Packet: 0x0a26
+packetLen(0x0a26, 7)
+
+// Packet: 0x0a27
+packetLen(0x0a27, 8)
+
+// Packet: 0x0a28
+packetLen(0x0a28, 3)
+
+// Packet: 0x0a29
+packetLen(0x0a29, 6)
+
+// Packet: 0x0a2a
+packetLen(0x0a2a, 6)
+
+// Packet: 0x0a2b
+packetLen(0x0a2b, 14)
+
+// Packet: 0x0a2c
+packetLen(0x0a2c, 12)
+
+// Packet: 0x0a2d
+packetLen(0x0a2d, -1)
+
+// Packet: 0x0a2e
+packetLen(0x0a2e, 6)
+
+// Packet: 0x0a2f
+packetLen(0x0a2f, 7)
+
+// Packet: 0x0a30
+packetLen(0x0a30, 106)
+
+// Packet: 0x0a31
+packetLen(0x0a31, -1)
+
+// Packet: 0x0a32
+packetLen(0x0a32, 2)
+
+// Packet: 0x0a33
+packetLen(0x0a33, 7)
+
+// Packet: 0x0a34
+packetLen(0x0a34, 6)
+
+// Packet: 0x0a35
+packetLen(0x0a35, 4)
+
+// Packet: 0x0a36
+packetLen(0x0a36, 7)
+
+// Packet: 0x0a37
+packetLen(0x0a37, 69)
+
+// Packet: 0x0a38
+packetLen(0x0a38, 3)
+
+// Packet: 0x0a39
+packetLen(0x0a39, 36)
+
+// Packet: 0x0a3a
+packetLen(0x0a3a, 12)
+
+// Packet: 0x0a3b
+packetLen(0x0a3b, -1)
+
+// Packet: 0x0a3c
+packetLen(0x0a3c, -1)
+
+// Packet: 0x0a3d
+packetLen(0x0a3d, 20)
+
+// Packet: 0x0a3e
+packetLen(0x0a3e, -1)
+
+// Packet: 0x0a3f
+packetLen(0x0a3f, 11)
+
+// Packet: 0x0a40
+packetLen(0x0a40, 11)
+
+// Packet: 0x0a41
+packetLen(0x0a41, 18)
+
+// Packet: 0x0a42
+packetLen(0x0a42, 43)
+
+// Packet: 0x0a43
+packetLen(0x0a43, 85)
+
+// Packet: 0x0a44
+packetLen(0x0a44, -1)
+
+// Packet: 0x0a46
+packetLen(0x0a46, 14)
+
+// Packet: 0x0a47
+packetLen(0x0a47, 3)
+
+// Packet: 0x0a48
+packetLen(0x0a48, 2)
+
+// Packet: 0x0a49
+packetLen(0x0a49, 22)
+
+// Packet: 0x0a4a
+packetLen(0x0a4a, 6)
+
+// Packet: 0x0a4b
+packetLen(0x0a4b, 22)
+
+// Packet: 0x0a4c
+packetLen(0x0a4c, 28)
+
+// Packet: 0x0a4d
+packetLen(0x0a4d, -1)
+
+// Packet: 0x0a4e
+packetLen(0x0a4e, 6)
+
+// Packet: 0x0a4f
+packetLen(0x0a4f, -1)
+
+// Packet: 0x0a50
+packetLen(0x0a50, 4)
+
+// Packet: 0x0a51
+packetLen(0x0a51, 34)
+
+// Packet: 0x0a52
+packetLen(0x0a52, 20)
+
+// Packet: 0x0a53
+packetLen(0x0a53, 10)
+
+// Packet: 0x0a54
+packetLen(0x0a54, -1)
+
+// Packet: 0x0a55
+packetLen(0x0a55, 2)
+
+// Packet: 0x0a56
+packetLen(0x0a56, 6)
+
+// Packet: 0x0a57
+packetLen(0x0a57, 6)
+
+// Packet: 0x0a58
+packetLen(0x0a58, 8)
+
+// Packet: 0x0a59
+packetLen(0x0a59, -1)
+
+// Packet: 0x0a5a
+packetLen(0x0a5a, 2)
+
+// Packet: 0x0a5b
+packetLen(0x0a5b, 7)
+
+// Packet: 0x0a5c
+packetLen(0x0a5c, 18)
+
+// Packet: 0x0a5d
+packetLen(0x0a5d, 6)
+
+// Packet: 0x0a68
+packetLen(0x0a68, 3)
+
+// Packet: 0x0a69
+packetLen(0x0a69, 6)
+
+// Packet: 0x0a6a
+packetLen(0x0a6a, 12)
+
+// Packet: 0x0a6b
+packetLen(0x0a6b, -1)
+
+// Packet: 0x0a6c
+packetLen(0x0a6c, 7)
+
+// Packet: 0x0a6d
+packetLen(0x0a6d, -1)
+
+// Packet: 0x0a6e
+packetLen(0x0a6e, -1)
+
+// Packet: 0x0a6f
+packetLen(0x0a6f, -1)
+
+// Packet: 0x0a70
+packetLen(0x0a70, 2)
+
+// Packet: 0x0a71
+packetLen(0x0a71, -1)
+
+// Packet: 0x0a72
+packetLen(0x0a72, 61)
+
+// Packet: 0x0a73
+packetLen(0x0a73, 2)
+
+// Packet: 0x0a74
+packetLen(0x0a74, 8)
+
+// Packet: 0x0a76
+packetLen(0x0a76, 80)
+
+// Packet: 0x0a77
+packetLen(0x0a77, 15)
+
+// Packet: 0x0a78
+packetLen(0x0a78, 15)
+
+// Packet: 0x0a79
+packetLen(0x0a79, -1)
+
+// Packet: 0x0a7b
+packetLen(0x0a7b, -1)
+
+// Packet: 0x0a7c
+packetLen(0x0a7c, -1)
+
+// Packet: 0x0a7d
+packetLen(0x0a7d, -1)
+
+// Packet: 0x0a7e
+packetLen(0x0a7e, -1)
+
+// Packet: 0x0a7f
+packetLen(0x0a7f, -1)
+
+// Packet: 0x0a80
+packetLen(0x0a80, 6)
+
+// Packet: 0x0a81
+packetLen(0x0a81, 4)
+
+// Packet: 0x0a82
+packetLen(0x0a82, 46)
+
+// Packet: 0x0a83
+packetLen(0x0a83, 46)
+
+// Packet: 0x0a84
+packetLen(0x0a84, 94)
+
+// Packet: 0x0a85
+packetLen(0x0a85, 82)
+
+// Packet: 0x0a86
+packetLen(0x0a86, -1)
+
+// Packet: 0x0a87
+packetLen(0x0a87, -1)
+
+// Packet: 0x0a88
+packetLen(0x0a88, 2)
+
+// Packet: 0x0a89
+packetLen(0x0a89, 61)
+
+// Packet: 0x0a8a
+packetLen(0x0a8a, 6)
+
+// Packet: 0x0a8b
+packetLen(0x0a8b, 2)
+
+// Packet: 0x0a8c
+packetLen(0x0a8c, 2)
+
+// Packet: 0x0a8d
+packetLen(0x0a8d, -1)
+
+// Packet: 0x0a8e
+packetLen(0x0a8e, 2)
+
+// Packet: 0x0a8f
+packetLen(0x0a8f, 2)
+
+// Packet: 0x0a90
+packetLen(0x0a90, 3)
+
+// Packet: 0x0a91
+packetLen(0x0a91, -1)
+
+// Packet: 0x0a92
+packetLen(0x0a92, -1)
+
+// Packet: 0x0a93
+packetLen(0x0a93, 3)
+
+// Packet: 0x0a94
+packetLen(0x0a94, 2)
+
+// Packet: 0x0a95
+packetLen(0x0a95, 4)
+
+// Packet: 0x0a96
+packetLen(0x0a96, 61)
+
+// Packet: 0x0a97
+packetLen(0x0a97, 8)
+
+// Packet: 0x0a98
+packetLen(0x0a98, 10)
+
+// Packet: 0x0a99
+packetLen(0x0a99, 4)
+
+// Packet: 0x0a9a
+packetLen(0x0a9a, 10)
+
+// Packet: 0x0a9b
+packetLen(0x0a9b, -1)
+
+// Packet: 0x0a9c
+packetLen(0x0a9c, 2)
+
+// Packet: 0x0a9d
+packetLen(0x0a9d, 4)
+
+// Packet: 0x0a9e
+packetLen(0x0a9e, 2)
+
+// Packet: 0x0a9f
+packetLen(0x0a9f, 2)
+
+// Packet: 0x0aa0
+packetLen(0x0aa0, 2)
+
+// Packet: 0x0aa1
+packetLen(0x0aa1, 4)
+
+// Packet: 0x0aa2
+packetLen(0x0aa2, -1)
+
+// Packet: 0x0aa3
+packetLen(0x0aa3, 9)
+
+// Packet: 0x0aa4
+packetLen(0x0aa4, 2)
+
+// Packet: 0x0aa5
+packetLen(0x0aa5, -1)
+
+// Packet: 0x0aa6
+packetLen(0x0aa6, 36)
+
+// Packet: 0x0aa7
+packetLen(0x0aa7, 6)
+
+// Packet: 0x0aa8
+packetLen(0x0aa8, 5)
+
+// Packet: 0x0aa9
+packetLen(0x0aa9, -1)
+
+// Packet: 0x0aaa
+packetLen(0x0aaa, -1)
+
+// Packet: 0x0aab
+packetLen(0x0aab, -1)
+
+// Packet: 0x0aac
+packetLen(0x0aac, 69)
+
+// Packet: 0x0aad
+packetLen(0x0aad, 51)
+
+// Packet: 0x0aae
+packetLen(0x0aae, 2)
+
+// Packet: 0x0aaf
+packetLen(0x0aaf, 6)
+
+// Packet: 0x0ab0
+packetLen(0x0ab0, 6)
+
+// Packet: 0x0ab1
+packetLen(0x0ab1, 14)
+
+// Packet: 0x0ab2
+packetLen(0x0ab2, 7)
+
+// Packet: 0x0ab3
+packetLen(0x0ab3, 19)
+
+// Packet: 0x0ab4
+packetLen(0x0ab4, 6)
+
+// Packet: 0x0ab5
+packetLen(0x0ab5, 2)
+
+// Packet: 0x0ab6
+packetLen(0x0ab6, 8)
+
+// Packet: 0x0ab7
+packetLen(0x0ab7, 4)
+
+// Packet: 0x0ab8
+packetLen(0x0ab8, 2)
+
+// Packet: 0x0ab9
+packetLen(0x0ab9, 47)
+
+// Packet: 0x0aba
+packetLen(0x0aba, 2)
+
+// Packet: 0x0abb
+packetLen(0x0abb, 2)
+
+// Packet: 0x0abc
+packetLen(0x0abc, -1)
+
+// Packet: 0x0abd
+packetLen(0x0abd, 10)
+
+// Packet: 0x0abe
+packetLen(0x0abe, -1)
+
+// Packet: 0x0abf
+packetLen(0x0abf, -1)
+
+// Packet: 0x0ac0
+packetLen(0x0ac0, 26)
+
+// Packet: 0x0ac1
+packetLen(0x0ac1, 26)
+
+// Packet: 0x0ac2
+packetLen(0x0ac2, -1)
+
+// Packet: 0x0ac3
+packetLen(0x0ac3, 2)
+
+// Packet: 0x0ac4
+packetLen(0x0ac4, -1)
+
+// Packet: 0x0ac5
+packetLen(0x0ac5, 156)
+
+// Packet: 0x0ac6
+packetLen(0x0ac6, 156)
+
+// Packet: 0x0ac7
+packetLen(0x0ac7, 156)
+
+// Packet: 0x0ac8
+packetLen(0x0ac8, 2)
+
+// Packet: 0x0ac9
+packetLen(0x0ac9, -1)
+
+// Packet: 0x0aca
+packetLen(0x0aca, 3)
+
+// Packet: 0x0acb
+packetLen(0x0acb, 12)
+
+// Packet: 0x0acc
+packetLen(0x0acc, 18)
+
+// Packet: 0x0acd
+packetLen(0x0acd, 23)
+
+// Packet: 0x0ace
+packetLen(0x0ace, 4)
+
+// Packet: 0x0acf
+packetLen(0x0acf, 68)
+
+// Packet: 0x0ad0
+packetLen(0x0ad0, 11)
+
+// Packet: 0x0ad1
+packetLen(0x0ad1, -1)
+
+// Packet: 0x0ad2
+packetLen(0x0ad2, 30)
+
+// Packet: 0x0ad3
+packetLen(0x0ad3, -1)
+
+// Packet: 0x0ad4
+packetLen(0x0ad4, -1)
+
+// Packet: 0x0ad5
+packetLen(0x0ad5, 2)
+
+// Packet: 0x0ad6
+packetLen(0x0ad6, 2)
+
+// Packet: 0x0ad7
+packetLen(0x0ad7, 8)
+
+// Packet: 0x0ad8
+packetLen(0x0ad8, 8)
+
+// Packet: 0x0ad9
+packetLen(0x0ad9, -1)
+
+// Packet: 0x0ada
+packetLen(0x0ada, 32)
+
+// Packet: 0x0adb
+packetLen(0x0adb, -1)
+
+// Packet: 0x0adc
+packetLen(0x0adc, 6)
+
+// Packet: 0x0add
+packetLen(0x0add, 24)
+
+// Packet: 0x0ade
+packetLen(0x0ade, 6)
+
+// Packet: 0x0adf
+packetLen(0x0adf, 58)
+
+// Packet: 0x0ae0
+packetLen(0x0ae0, 30)
+
+// Packet: 0x0ae1
+packetLen(0x0ae1, 28)
+
+// Packet: 0x0ae2
+packetLen(0x0ae2, 7)
+
+// Packet: 0x0ae3
+packetLen(0x0ae3, -1)
+
+// Packet: 0x0ae4
+packetLen(0x0ae4, 89)
+
+// Packet: 0x0ae5
+packetLen(0x0ae5, -1)
+
+// Packet: 0x0ae6
+packetLen(0x0ae6, 10)
+
+// Packet: 0x0ae7
+packetLen(0x0ae7, 38)
+
+// Packet: 0x0ae8
+packetLen(0x0ae8, 2)
+
+// Packet: 0x0ae9
+packetLen(0x0ae9, 13)
+
+// Packet: 0x0aec
+packetLen(0x0aec, 2)
+
+// Packet: 0x0aed
+packetLen(0x0aed, 2)
+
+// Packet: 0x0aee
+packetLen(0x0aee, 2)
+
+// Packet: 0x0aef
+packetLen(0x0aef, 2)
+
+// Packet: 0x0af0
+packetLen(0x0af0, 10)
+
+// Packet: 0x0af2
+packetLen(0x0af2, 40)
+
+// Packet: 0x0af3
+packetLen(0x0af3, -1)
+
+// Packet: 0x0af4
+packetLen(0x0af4, 11)
+
+// Packet: 0x0af5
+packetLen(0x0af5, 3)
+
+// Packet: 0x0af6
+packetLen(0x0af6, 88)
+
+// Packet: 0x0af7
+packetLen(0x0af7, 32)
+
+// Packet: 0x0af8
+packetLen(0x0af8, 11)
+
+// Packet: 0x0af9
+packetLen(0x0af9, 6)
+
+// Packet: 0x0afa
+packetLen(0x0afa, 58)
+
+// Packet: 0x0afb
+packetLen(0x0afb, -1)
+
+// Packet: 0x0afc
+packetLen(0x0afc, 16)
+
+// Packet: 0x0afd
+packetLen(0x0afd, -1)
+
+// Packet: 0x0afe
+packetLen(0x0afe, -1)
+
+// Packet: 0x0aff
+packetLen(0x0aff, -1)
+
+// Packet: 0x0b00
+packetLen(0x0b00, 8)
+
+// Packet: 0x0b01
+packetLen(0x0b01, 56)
+
+// Packet: 0x0b02
+packetLen(0x0b02, 26)
+
+// Packet: 0x0b03
+packetLen(0x0b03, -1)
+
+// Packet: 0x0b04
+packetLen(0x0b04, 90)
+
+// Packet: 0x0b05
+packetLen(0x0b05, 63)
+
+// Packet: 0x0b07
+packetLen(0x0b07, -1)
+
+// Packet: 0x0b08
+packetLen(0x0b08, -1)
+
+// Packet: 0x0b09
+packetLen(0x0b09, -1)
+
+// Packet: 0x0b0a
+packetLen(0x0b0a, -1)
+
+// Packet: 0x0b0b
+packetLen(0x0b0b, 4)
+
+// Packet: 0x0b0c
+packetLen(0x0b0c, 155)
+
+// Packet: 0x0b0d
+packetLen(0x0b0d, 10)
+
+// Packet: 0x0b0e
+packetLen(0x0b0e, -1)
+
+// Packet: 0x0b0f
+packetLen(0x0b0f, -1)
+
+// Packet: 0x0b10
+packetLen(0x0b10, 10)
+
+// Packet: 0x0b11
+packetLen(0x0b11, 4)
+
+// Packet: 0x0b12
+packetLen(0x0b12, 2)
+
+// Packet: 0x0b13
+packetLen(0x0b13, 48)
+
+// Packet: 0x0b14
+packetLen(0x0b14, 2)
+
+// Packet: 0x0b15
+packetLen(0x0b15, 7)
+
+// Packet: 0x0b16
+packetLen(0x0b16, 2)
+
+// Packet: 0x0b17
+packetLen(0x0b17, 3)
+
+// Packet: 0x0b18
+packetLen(0x0b18, 4)
+
+// Packet: 0x0b19
+packetLen(0x0b19, 2)
+
+// Packet: 0x0b1a
+packetLen(0x0b1a, 29)
+
+// Packet: 0x0b1b
+packetLen(0x0b1b, 2)
+
+// Packet: 0x0b1c
+packetLen(0x0b1c, 2)
+
+// Packet: 0x0b1d
+packetLen(0x0b1d, 2)
+
+// Packet: 0x0b1e
+packetLen(0x0b1e, 14)
+
+// Packet: 0x0b1f
+packetLen(0x0b1f, 14)
+
+// Packet: 0x0b20
+packetLen(0x0b20, 271)
+
+// Packet: 0x0b21
+packetLen(0x0b21, 13)
+
+// Packet: 0x0b22
+packetLen(0x0b22, 5)
+
+// Packet: 0x0b23
+packetLen(0x0b23, 6)
+
+// Packet: 0x0b24
+packetLen(0x0b24, 6)
+
+// Packet: 0x0b25
+packetLen(0x0b25, 6)
+
+// Packet: 0x0b27
+packetLen(0x0b27, -1)
+
+// Packet: 0x0b28
+packetLen(0x0b28, 3)
+
+// Packet: 0x0b2b
+packetLen(0x0b2b, 11)
+
+// Packet: 0x0b2c
+packetLen(0x0b2c, 3)
+
+// Packet: 0x0b2d
+packetLen(0x0b2d, 11)
+
+// Packet: 0x0b2e
+packetLen(0x0b2e, 4)
+
+// Packet: 0x0b2f
+packetLen(0x0b2f, 73)
+
+// Packet: 0x0b30
+packetLen(0x0b30, -1)
+
+// Packet: 0x0b31
+packetLen(0x0b31, 17)
+
+// Packet: 0x0b32
+packetLen(0x0b32, -1)
+
+// Packet: 0x0b33
+packetLen(0x0b33, 17)
+
+// Packet: 0x0b34
+packetLen(0x0b34, 50)
+
+// Packet: 0x0b35
+packetLen(0x0b35, 3)
+
+// Packet: 0x0b36
+packetLen(0x0b36, -1)
+
+// Packet: 0x0b37
+packetLen(0x0b37, -1)
+
+// Packet: 0x0b39
+packetLen(0x0b39, -1)
+
+// Packet: 0x0b3c
+packetLen(0x0b3c, 4)
+
+// Packet: 0x0b3d
+packetLen(0x0b3d, -1)
+
+// Packet: 0x0b3e
+packetLen(0x0b3e, -1)
+
+// Packet: 0x0b3f
+packetLen(0x0b3f, 64)
+
+// Packet: 0x0b40
+packetLen(0x0b40, -1)
+
+// Packet: 0x0b41
+packetLen(0x0b41, 70)
+
+// Packet: 0x0b42
+packetLen(0x0b42, 62)
+
+// Packet: 0x0b43
+packetLen(0x0b43, 48)
+
+// Packet: 0x0b44
+packetLen(0x0b44, 58)
+
+// Packet: 0x0b45
+packetLen(0x0b45, 58)
+
+// Packet: 0x0b46
+packetLen(0x0b46, 10)
+
+// Packet: 0x0b47
+packetLen(0x0b47, 14)
+
+// Packet: 0x0b48
+packetLen(0x0b48, 18)
+
+// Packet: 0x0b49
+packetLen(0x0b49, 4)
+
+// Packet: 0x0b4a
+packetLen(0x0b4a, 6)
+
+// Packet: 0x0b4b
+packetLen(0x0b4b, 4)
+
+// Packet: 0x0b4c
+packetLen(0x0b4c, 2)
+
+// Packet: 0x0b4d
+packetLen(0x0b4d, -1)
+
+// Packet: 0x0b4e
+packetLen(0x0b4e, -1)
+
+// Packet: 0x0b4f
+packetLen(0x0b4f, 2)
+
+// Packet: 0x0b50
+packetLen(0x0b50, 2)
+
+// Packet: 0x0b51
+packetLen(0x0b51, 2)
+
+// Packet: 0x0b52
+packetLen(0x0b52, 2)
+
+// Packet: 0x0b53
+packetLen(0x0b53, 52)
+
+// Packet: 0x0b54
+packetLen(0x0b54, 8)
+
+// Packet: 0x0b55
+packetLen(0x0b55, -1)
+
+// Packet: 0x0b56
+packetLen(0x0b56, -1)
+
+// Packet: 0x0b57
+packetLen(0x0b57, -1)
+
+// Packet: 0x0b58
+packetLen(0x0b58, 2)
+
+// Packet: 0x0b59
+packetLen(0x0b59, 4)
+
+// Packet: 0x0b5a
+packetLen(0x0b5a, -1)
+
+// Packet: 0x0b5b
+packetLen(0x0b5b, 14)
+
+// Packet: 0x0b5c
+packetLen(0x0b5c, 2)
+
+// Packet: 0x0b5d
+packetLen(0x0b5d, 10)
+
+// Packet: 0x0b5e
+packetLen(0x0b5e, 33)
+
+// Packet: 0x0b5f
+packetLen(0x0b5f, -1)
+
+// Packet: 0x0b60
+packetLen(0x0b60, -1)
+
+// Packet: 0x0b61
+packetLen(0x0b61, -1)
+
+// Packet: 0x0b62
+packetLen(0x0b62, -1)
+
+// Packet: 0x0b63
+packetLen(0x0b63, -1)
+
+// Packet: 0x0b64
+packetLen(0x0b64, -1)
+
+// Packet: 0x0b65
+packetLen(0x0b65, -1)
+
+// Packet: 0x0b66
+packetLen(0x0b66, 26)
+
+// Packet: 0x0b67
+packetLen(0x0b67, 33)
+
+// Packet: 0x0b68
+packetLen(0x0b68, 12)
+
+// Packet: 0x0b69
+packetLen(0x0b69, 18)
+
+// Packet: 0x0b6a
+packetLen(0x0b6a, -1)
+
+// Packet: 0x0b6b
+packetLen(0x0b6b, 14)
+
+// Packet: 0x0b6c
+packetLen(0x0b6c, 12)
+
+// Packet: 0x0b6d
+packetLen(0x0b6d, 6)
+
+// Packet: 0x0b6e
+packetLen(0x0b6e, 14)
+
+
+#endif /* COMMON_PACKETS2020_LEN_MAIN_H */
diff --git a/src/common/packets/packets2020_len_re.h b/src/common/packets/packets2020_len_re.h
new file mode 100644
index 000000000..a77dce7be
--- /dev/null
+++ b/src/common/packets/packets2020_len_re.h
@@ -0,0 +1,4621 @@
+/**
+ * This file is part of Hercules.
+ * http://herc.ws - http://github.com/HerculesWS/Hercules
+ *
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
+ *
+ * Hercules is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef COMMON_PACKETS2020_LEN_RE_H
+#define COMMON_PACKETS2020_LEN_RE_H
+
+/* This file is autogenerated, please do not commit manual changes */
+
+// Packet: 0x0064
+packetLen(0x0064, 55)
+
+// Packet: 0x0065
+packetLen(0x0065, 17)
+
+// Packet: 0x0066
+packetLen(0x0066, 3)
+
+// Packet: 0x0067
+packetLen(0x0067, 37)
+
+// Packet: 0x0068
+packetLen(0x0068, 46)
+
+// Packet: 0x0069
+packetLen(0x0069, -1)
+
+// Packet: 0x006a
+packetLen(0x006a, 23)
+
+// Packet: 0x006b
+packetLen(0x006b, -1)
+
+// Packet: 0x006c
+packetLen(0x006c, 3)
+
+// Packet: 0x006d
+packetLen(0x006d, 157)
+
+// Packet: 0x006e
+packetLen(0x006e, 3)
+
+// Packet: 0x006f
+packetLen(0x006f, 2)
+
+// Packet: 0x0070
+packetLen(0x0070, 3)
+
+// Packet: 0x0071
+packetLen(0x0071, 28)
+
+// Packet: 0x0072
+packetLen(0x0072, 22)
+
+// Packet: 0x0073
+packetLen(0x0073, 11)
+
+// Packet: 0x0074
+packetLen(0x0074, 3)
+
+// Packet: 0x0075
+packetLen(0x0075, -1)
+
+// Packet: 0x0076
+packetLen(0x0076, 9)
+
+// Packet: 0x0077
+packetLen(0x0077, 5)
+
+// Packet: 0x0078
+packetLen(0x0078, 55)
+
+// Packet: 0x0079
+packetLen(0x0079, 53)
+
+// Packet: 0x007a
+packetLen(0x007a, 58)
+
+// Packet: 0x007b
+packetLen(0x007b, 60)
+
+// Packet: 0x007c
+packetLen(0x007c, 44)
+
+// Packet: 0x007d
+packetLen(0x007d, 2)
+
+// Packet: 0x007e
+packetLen(0x007e, 46)
+
+// Packet: 0x007f
+packetLen(0x007f, 6)
+
+// Packet: 0x0080
+packetLen(0x0080, 7)
+
+// Packet: 0x0081
+packetLen(0x0081, 3)
+
+// Packet: 0x0082
+packetLen(0x0082, 2)
+
+// Packet: 0x0083
+packetLen(0x0083, 2)
+
+// Packet: 0x0084
+packetLen(0x0084, 2)
+
+// Packet: 0x0085
+packetLen(0x0085, 10)
+
+// Packet: 0x0086
+packetLen(0x0086, 16)
+
+// Packet: 0x0087
+packetLen(0x0087, 12)
+
+// Packet: 0x0088
+packetLen(0x0088, 10)
+
+// Packet: 0x0089
+packetLen(0x0089, 11)
+
+// Packet: 0x008a
+packetLen(0x008a, 29)
+
+// Packet: 0x008b
+packetLen(0x008b, 23)
+
+// Packet: 0x008c
+packetLen(0x008c, 14)
+
+// Packet: 0x008d
+packetLen(0x008d, -1)
+
+// Packet: 0x008e
+packetLen(0x008e, -1)
+
+// Packet: 0x0090
+packetLen(0x0090, 7)
+
+// Packet: 0x0091
+packetLen(0x0091, 22)
+
+// Packet: 0x0092
+packetLen(0x0092, 28)
+
+// Packet: 0x0093
+packetLen(0x0093, 2)
+
+// Packet: 0x0094
+packetLen(0x0094, 19)
+
+// Packet: 0x0095
+packetLen(0x0095, 30)
+
+// Packet: 0x0096
+packetLen(0x0096, -1)
+
+// Packet: 0x0097
+packetLen(0x0097, -1)
+
+// Packet: 0x0098
+packetLen(0x0098, 3)
+
+// Packet: 0x0099
+packetLen(0x0099, -1)
+
+// Packet: 0x009a
+packetLen(0x009a, -1)
+
+// Packet: 0x009b
+packetLen(0x009b, 34)
+
+// Packet: 0x009c
+packetLen(0x009c, 9)
+
+// Packet: 0x009d
+packetLen(0x009d, 19)
+
+// Packet: 0x009e
+packetLen(0x009e, 19)
+
+// Packet: 0x009f
+packetLen(0x009f, 20)
+
+// Packet: 0x00a0
+packetLen(0x00a0, 33)
+
+// Packet: 0x00a1
+packetLen(0x00a1, 6)
+
+// Packet: 0x00a2
+packetLen(0x00a2, 14)
+
+// Packet: 0x00a3
+packetLen(0x00a3, -1)
+
+// Packet: 0x00a4
+packetLen(0x00a4, -1)
+
+// Packet: 0x00a5
+packetLen(0x00a5, -1)
+
+// Packet: 0x00a6
+packetLen(0x00a6, -1)
+
+// Packet: 0x00a7
+packetLen(0x00a7, 9)
+
+// Packet: 0x00a8
+packetLen(0x00a8, 7)
+
+// Packet: 0x00a9
+packetLen(0x00a9, 6)
+
+// Packet: 0x00aa
+packetLen(0x00aa, 9)
+
+// Packet: 0x00ab
+packetLen(0x00ab, 4)
+
+// Packet: 0x00ac
+packetLen(0x00ac, 7)
+
+// Packet: 0x00ae
+packetLen(0x00ae, -1)
+
+// Packet: 0x00af
+packetLen(0x00af, 6)
+
+// Packet: 0x00b0
+packetLen(0x00b0, 8)
+
+// Packet: 0x00b1
+packetLen(0x00b1, 8)
+
+// Packet: 0x00b2
+packetLen(0x00b2, 3)
+
+// Packet: 0x00b3
+packetLen(0x00b3, 3)
+
+// Packet: 0x00b4
+packetLen(0x00b4, -1)
+
+// Packet: 0x00b5
+packetLen(0x00b5, 6)
+
+// Packet: 0x00b6
+packetLen(0x00b6, 6)
+
+// Packet: 0x00b7
+packetLen(0x00b7, -1)
+
+// Packet: 0x00b8
+packetLen(0x00b8, 7)
+
+// Packet: 0x00b9
+packetLen(0x00b9, 6)
+
+// Packet: 0x00ba
+packetLen(0x00ba, 2)
+
+// Packet: 0x00bb
+packetLen(0x00bb, 5)
+
+// Packet: 0x00bc
+packetLen(0x00bc, 6)
+
+// Packet: 0x00bd
+packetLen(0x00bd, 44)
+
+// Packet: 0x00be
+packetLen(0x00be, 5)
+
+// Packet: 0x00bf
+packetLen(0x00bf, 3)
+
+// Packet: 0x00c0
+packetLen(0x00c0, 7)
+
+// Packet: 0x00c1
+packetLen(0x00c1, 2)
+
+// Packet: 0x00c2
+packetLen(0x00c2, 6)
+
+// Packet: 0x00c3
+packetLen(0x00c3, 8)
+
+// Packet: 0x00c4
+packetLen(0x00c4, 6)
+
+// Packet: 0x00c5
+packetLen(0x00c5, 7)
+
+// Packet: 0x00c6
+packetLen(0x00c6, -1)
+
+// Packet: 0x00c7
+packetLen(0x00c7, -1)
+
+// Packet: 0x00c8
+packetLen(0x00c8, -1)
+
+// Packet: 0x00c9
+packetLen(0x00c9, -1)
+
+// Packet: 0x00ca
+packetLen(0x00ca, 3)
+
+// Packet: 0x00cb
+packetLen(0x00cb, 3)
+
+// Packet: 0x00cc
+packetLen(0x00cc, 6)
+
+// Packet: 0x00cd
+packetLen(0x00cd, 3)
+
+// Packet: 0x00ce
+packetLen(0x00ce, 2)
+
+// Packet: 0x00cf
+packetLen(0x00cf, 27)
+
+// Packet: 0x00d0
+packetLen(0x00d0, 3)
+
+// Packet: 0x00d1
+packetLen(0x00d1, 4)
+
+// Packet: 0x00d2
+packetLen(0x00d2, 4)
+
+// Packet: 0x00d3
+packetLen(0x00d3, 2)
+
+// Packet: 0x00d4
+packetLen(0x00d4, -1)
+
+// Packet: 0x00d5
+packetLen(0x00d5, -1)
+
+// Packet: 0x00d6
+packetLen(0x00d6, 3)
+
+// Packet: 0x00d7
+packetLen(0x00d7, -1)
+
+// Packet: 0x00d8
+packetLen(0x00d8, 6)
+
+// Packet: 0x00d9
+packetLen(0x00d9, 14)
+
+// Packet: 0x00da
+packetLen(0x00da, 3)
+
+// Packet: 0x00db
+packetLen(0x00db, -1)
+
+// Packet: 0x00dc
+packetLen(0x00dc, 28)
+
+// Packet: 0x00dd
+packetLen(0x00dd, 29)
+
+// Packet: 0x00de
+packetLen(0x00de, -1)
+
+// Packet: 0x00df
+packetLen(0x00df, -1)
+
+// Packet: 0x00e0
+packetLen(0x00e0, 30)
+
+// Packet: 0x00e1
+packetLen(0x00e1, 30)
+
+// Packet: 0x00e2
+packetLen(0x00e2, 26)
+
+// Packet: 0x00e3
+packetLen(0x00e3, 2)
+
+// Packet: 0x00e4
+packetLen(0x00e4, 6)
+
+// Packet: 0x00e5
+packetLen(0x00e5, 26)
+
+// Packet: 0x00e6
+packetLen(0x00e6, 3)
+
+// Packet: 0x00e7
+packetLen(0x00e7, 3)
+
+// Packet: 0x00e8
+packetLen(0x00e8, 8)
+
+// Packet: 0x00e9
+packetLen(0x00e9, 29)
+
+// Packet: 0x00ea
+packetLen(0x00ea, 5)
+
+// Packet: 0x00eb
+packetLen(0x00eb, 2)
+
+// Packet: 0x00ec
+packetLen(0x00ec, 3)
+
+// Packet: 0x00ed
+packetLen(0x00ed, 2)
+
+// Packet: 0x00ee
+packetLen(0x00ee, 2)
+
+// Packet: 0x00ef
+packetLen(0x00ef, 2)
+
+// Packet: 0x00f0
+packetLen(0x00f0, 3)
+
+// Packet: 0x00f1
+packetLen(0x00f1, 2)
+
+// Packet: 0x00f2
+packetLen(0x00f2, 6)
+
+// Packet: 0x00f3
+packetLen(0x00f3, -1)
+
+// Packet: 0x00f4
+packetLen(0x00f4, 31)
+
+// Packet: 0x00f5
+packetLen(0x00f5, 11)
+
+// Packet: 0x00f6
+packetLen(0x00f6, 8)
+
+// Packet: 0x00f7
+packetLen(0x00f7, 17)
+
+// Packet: 0x00f8
+packetLen(0x00f8, 2)
+
+// Packet: 0x00f9
+packetLen(0x00f9, 26)
+
+// Packet: 0x00fa
+packetLen(0x00fa, 3)
+
+// Packet: 0x00fb
+packetLen(0x00fb, -1)
+
+// Packet: 0x00fc
+packetLen(0x00fc, 6)
+
+// Packet: 0x00fd
+packetLen(0x00fd, 27)
+
+// Packet: 0x00fe
+packetLen(0x00fe, 30)
+
+// Packet: 0x00ff
+packetLen(0x00ff, 10)
+
+// Packet: 0x0100
+packetLen(0x0100, 2)
+
+// Packet: 0x0101
+packetLen(0x0101, 6)
+
+// Packet: 0x0102
+packetLen(0x0102, 6)
+
+// Packet: 0x0103
+packetLen(0x0103, 30)
+
+// Packet: 0x0104
+packetLen(0x0104, 79)
+
+// Packet: 0x0105
+packetLen(0x0105, 31)
+
+// Packet: 0x0106
+packetLen(0x0106, 10)
+
+// Packet: 0x0107
+packetLen(0x0107, 10)
+
+// Packet: 0x0108
+packetLen(0x0108, -1)
+
+// Packet: 0x0109
+packetLen(0x0109, -1)
+
+// Packet: 0x010a
+packetLen(0x010a, 6)
+
+// Packet: 0x010b
+packetLen(0x010b, 6)
+
+// Packet: 0x010c
+packetLen(0x010c, 6)
+
+// Packet: 0x010d
+packetLen(0x010d, 2)
+
+// Packet: 0x010e
+packetLen(0x010e, 11)
+
+// Packet: 0x010f
+packetLen(0x010f, -1)
+
+// Packet: 0x0110
+packetLen(0x0110, 14)
+
+// Packet: 0x0111
+packetLen(0x0111, 39)
+
+// Packet: 0x0112
+packetLen(0x0112, 4)
+
+// Packet: 0x0113
+packetLen(0x0113, 25)
+
+// Packet: 0x0114
+packetLen(0x0114, 31)
+
+// Packet: 0x0115
+packetLen(0x0115, 35)
+
+// Packet: 0x0116
+packetLen(0x0116, 17)
+
+// Packet: 0x0117
+packetLen(0x0117, 18)
+
+// Packet: 0x0118
+packetLen(0x0118, 2)
+
+// Packet: 0x0119
+packetLen(0x0119, 13)
+
+// Packet: 0x011a
+packetLen(0x011a, 15)
+
+// Packet: 0x011b
+packetLen(0x011b, 20)
+
+// Packet: 0x011c
+packetLen(0x011c, 68)
+
+// Packet: 0x011d
+packetLen(0x011d, 2)
+
+// Packet: 0x011e
+packetLen(0x011e, 3)
+
+// Packet: 0x011f
+packetLen(0x011f, 16)
+
+// Packet: 0x0120
+packetLen(0x0120, 6)
+
+// Packet: 0x0121
+packetLen(0x0121, 14)
+
+// Packet: 0x0122
+packetLen(0x0122, -1)
+
+// Packet: 0x0123
+packetLen(0x0123, -1)
+
+// Packet: 0x0124
+packetLen(0x0124, 31)
+
+// Packet: 0x0125
+packetLen(0x0125, 8)
+
+// Packet: 0x0126
+packetLen(0x0126, 8)
+
+// Packet: 0x0127
+packetLen(0x0127, 8)
+
+// Packet: 0x0128
+packetLen(0x0128, 8)
+
+// Packet: 0x0129
+packetLen(0x0129, 8)
+
+// Packet: 0x012a
+packetLen(0x012a, 2)
+
+// Packet: 0x012b
+packetLen(0x012b, 2)
+
+// Packet: 0x012c
+packetLen(0x012c, 3)
+
+// Packet: 0x012d
+packetLen(0x012d, 4)
+
+// Packet: 0x012e
+packetLen(0x012e, 2)
+
+// Packet: 0x012f
+packetLen(0x012f, -1)
+
+// Packet: 0x0130
+packetLen(0x0130, 6)
+
+// Packet: 0x0131
+packetLen(0x0131, 86)
+
+// Packet: 0x0132
+packetLen(0x0132, 6)
+
+// Packet: 0x0133
+packetLen(0x0133, -1)
+
+// Packet: 0x0134
+packetLen(0x0134, -1)
+
+// Packet: 0x0135
+packetLen(0x0135, 7)
+
+// Packet: 0x0136
+packetLen(0x0136, -1)
+
+// Packet: 0x0137
+packetLen(0x0137, 6)
+
+// Packet: 0x0138
+packetLen(0x0138, 3)
+
+// Packet: 0x0139
+packetLen(0x0139, 16)
+
+// Packet: 0x013a
+packetLen(0x013a, 4)
+
+// Packet: 0x013b
+packetLen(0x013b, 4)
+
+// Packet: 0x013c
+packetLen(0x013c, 4)
+
+// Packet: 0x013d
+packetLen(0x013d, 6)
+
+// Packet: 0x013e
+packetLen(0x013e, 24)
+
+// Packet: 0x013f
+packetLen(0x013f, 26)
+
+// Packet: 0x0140
+packetLen(0x0140, 22)
+
+// Packet: 0x0141
+packetLen(0x0141, 14)
+
+// Packet: 0x0142
+packetLen(0x0142, 6)
+
+// Packet: 0x0143
+packetLen(0x0143, 10)
+
+// Packet: 0x0144
+packetLen(0x0144, 23)
+
+// Packet: 0x0145
+packetLen(0x0145, 19)
+
+// Packet: 0x0146
+packetLen(0x0146, 6)
+
+// Packet: 0x0147
+packetLen(0x0147, 39)
+
+// Packet: 0x0148
+packetLen(0x0148, 8)
+
+// Packet: 0x0149
+packetLen(0x0149, 9)
+
+// Packet: 0x014a
+packetLen(0x014a, 6)
+
+// Packet: 0x014b
+packetLen(0x014b, 27)
+
+// Packet: 0x014c
+packetLen(0x014c, -1)
+
+// Packet: 0x014d
+packetLen(0x014d, 2)
+
+// Packet: 0x014e
+packetLen(0x014e, 6)
+
+// Packet: 0x014f
+packetLen(0x014f, 6)
+
+// Packet: 0x0150
+packetLen(0x0150, 110)
+
+// Packet: 0x0151
+packetLen(0x0151, 6)
+
+// Packet: 0x0152
+packetLen(0x0152, -1)
+
+// Packet: 0x0153
+packetLen(0x0153, -1)
+
+// Packet: 0x0154
+packetLen(0x0154, -1)
+
+// Packet: 0x0155
+packetLen(0x0155, -1)
+
+// Packet: 0x0156
+packetLen(0x0156, -1)
+
+// Packet: 0x0157
+packetLen(0x0157, 6)
+
+// Packet: 0x0159
+packetLen(0x0159, 54)
+
+// Packet: 0x015a
+packetLen(0x015a, 66)
+
+// Packet: 0x015b
+packetLen(0x015b, 54)
+
+// Packet: 0x015c
+packetLen(0x015c, 90)
+
+// Packet: 0x015d
+packetLen(0x015d, 42)
+
+// Packet: 0x015e
+packetLen(0x015e, 6)
+
+// Packet: 0x015f
+packetLen(0x015f, 42)
+
+// Packet: 0x0160
+packetLen(0x0160, -1)
+
+// Packet: 0x0161
+packetLen(0x0161, -1)
+
+// Packet: 0x0162
+packetLen(0x0162, -1)
+
+// Packet: 0x0163
+packetLen(0x0163, -1)
+
+// Packet: 0x0164
+packetLen(0x0164, -1)
+
+// Packet: 0x0165
+packetLen(0x0165, 30)
+
+// Packet: 0x0166
+packetLen(0x0166, -1)
+
+// Packet: 0x0167
+packetLen(0x0167, 3)
+
+// Packet: 0x0168
+packetLen(0x0168, 14)
+
+// Packet: 0x0169
+packetLen(0x0169, 3)
+
+// Packet: 0x016a
+packetLen(0x016a, 30)
+
+// Packet: 0x016b
+packetLen(0x016b, 10)
+
+// Packet: 0x016c
+packetLen(0x016c, 43)
+
+// Packet: 0x016d
+packetLen(0x016d, 14)
+
+// Packet: 0x016e
+packetLen(0x016e, 186)
+
+// Packet: 0x016f
+packetLen(0x016f, 182)
+
+// Packet: 0x0170
+packetLen(0x0170, 14)
+
+// Packet: 0x0171
+packetLen(0x0171, 30)
+
+// Packet: 0x0172
+packetLen(0x0172, 10)
+
+// Packet: 0x0173
+packetLen(0x0173, 3)
+
+// Packet: 0x0174
+packetLen(0x0174, -1)
+
+// Packet: 0x0175
+packetLen(0x0175, 6)
+
+// Packet: 0x0176
+packetLen(0x0176, 106)
+
+// Packet: 0x0177
+packetLen(0x0177, -1)
+
+// Packet: 0x0178
+packetLen(0x0178, 4)
+
+// Packet: 0x0179
+packetLen(0x0179, 5)
+
+// Packet: 0x017a
+packetLen(0x017a, 4)
+
+// Packet: 0x017b
+packetLen(0x017b, -1)
+
+// Packet: 0x017c
+packetLen(0x017c, 6)
+
+// Packet: 0x017d
+packetLen(0x017d, 7)
+
+// Packet: 0x017e
+packetLen(0x017e, -1)
+
+// Packet: 0x017f
+packetLen(0x017f, -1)
+
+// Packet: 0x0180
+packetLen(0x0180, 6)
+
+// Packet: 0x0181
+packetLen(0x0181, 3)
+
+// Packet: 0x0182
+packetLen(0x0182, 106)
+
+// Packet: 0x0183
+packetLen(0x0183, 10)
+
+// Packet: 0x0184
+packetLen(0x0184, 10)
+
+// Packet: 0x0185
+packetLen(0x0185, 34)
+
+// Packet: 0x0187
+packetLen(0x0187, 6)
+
+// Packet: 0x0188
+packetLen(0x0188, 8)
+
+// Packet: 0x0189
+packetLen(0x0189, 4)
+
+// Packet: 0x018a
+packetLen(0x018a, 4)
+
+// Packet: 0x018b
+packetLen(0x018b, 4)
+
+// Packet: 0x018c
+packetLen(0x018c, 29)
+
+// Packet: 0x018d
+packetLen(0x018d, -1)
+
+// Packet: 0x018e
+packetLen(0x018e, 18)
+
+// Packet: 0x018f
+packetLen(0x018f, 8)
+
+// Packet: 0x0190
+packetLen(0x0190, 23)
+
+// Packet: 0x0191
+packetLen(0x0191, 27)
+
+// Packet: 0x0192
+packetLen(0x0192, 24)
+
+// Packet: 0x0193
+packetLen(0x0193, 2)
+
+// Packet: 0x0194
+packetLen(0x0194, 30)
+
+// Packet: 0x0195
+packetLen(0x0195, 102)
+
+// Packet: 0x0196
+packetLen(0x0196, 9)
+
+// Packet: 0x0197
+packetLen(0x0197, 4)
+
+// Packet: 0x0198
+packetLen(0x0198, 8)
+
+// Packet: 0x0199
+packetLen(0x0199, 4)
+
+// Packet: 0x019a
+packetLen(0x019a, 14)
+
+// Packet: 0x019b
+packetLen(0x019b, 10)
+
+// Packet: 0x019c
+packetLen(0x019c, -1)
+
+// Packet: 0x019d
+packetLen(0x019d, 6)
+
+// Packet: 0x019e
+packetLen(0x019e, 2)
+
+// Packet: 0x019f
+packetLen(0x019f, 6)
+
+// Packet: 0x01a0
+packetLen(0x01a0, 3)
+
+// Packet: 0x01a1
+packetLen(0x01a1, 3)
+
+// Packet: 0x01a2
+packetLen(0x01a2, 37)
+
+// Packet: 0x01a3
+packetLen(0x01a3, 7)
+
+// Packet: 0x01a4
+packetLen(0x01a4, 11)
+
+// Packet: 0x01a5
+packetLen(0x01a5, 26)
+
+// Packet: 0x01a6
+packetLen(0x01a6, -1)
+
+// Packet: 0x01a7
+packetLen(0x01a7, 4)
+
+// Packet: 0x01a8
+packetLen(0x01a8, 4)
+
+// Packet: 0x01a9
+packetLen(0x01a9, 6)
+
+// Packet: 0x01aa
+packetLen(0x01aa, 10)
+
+// Packet: 0x01ab
+packetLen(0x01ab, 12)
+
+// Packet: 0x01ac
+packetLen(0x01ac, 6)
+
+// Packet: 0x01ad
+packetLen(0x01ad, -1)
+
+// Packet: 0x01ae
+packetLen(0x01ae, 6)
+
+// Packet: 0x01af
+packetLen(0x01af, 4)
+
+// Packet: 0x01b0
+packetLen(0x01b0, 11)
+
+// Packet: 0x01b1
+packetLen(0x01b1, 7)
+
+// Packet: 0x01b2
+packetLen(0x01b2, -1)
+
+// Packet: 0x01b3
+packetLen(0x01b3, 67)
+
+// Packet: 0x01b4
+packetLen(0x01b4, 12)
+
+// Packet: 0x01b5
+packetLen(0x01b5, 18)
+
+// Packet: 0x01b6
+packetLen(0x01b6, 114)
+
+// Packet: 0x01b7
+packetLen(0x01b7, 6)
+
+// Packet: 0x01b8
+packetLen(0x01b8, 3)
+
+// Packet: 0x01b9
+packetLen(0x01b9, 6)
+
+// Packet: 0x01ba
+packetLen(0x01ba, 26)
+
+// Packet: 0x01bb
+packetLen(0x01bb, 26)
+
+// Packet: 0x01bc
+packetLen(0x01bc, 26)
+
+// Packet: 0x01bd
+packetLen(0x01bd, 26)
+
+// Packet: 0x01be
+packetLen(0x01be, 2)
+
+// Packet: 0x01bf
+packetLen(0x01bf, 3)
+
+// Packet: 0x01c0
+packetLen(0x01c0, 2)
+
+// Packet: 0x01c1
+packetLen(0x01c1, 14)
+
+// Packet: 0x01c2
+packetLen(0x01c2, 10)
+
+// Packet: 0x01c3
+packetLen(0x01c3, -1)
+
+// Packet: 0x01c4
+packetLen(0x01c4, 32)
+
+// Packet: 0x01c5
+packetLen(0x01c5, 32)
+
+// Packet: 0x01c6
+packetLen(0x01c6, 4)
+
+// Packet: 0x01c7
+packetLen(0x01c7, 2)
+
+// Packet: 0x01c8
+packetLen(0x01c8, 15)
+
+// Packet: 0x01c9
+packetLen(0x01c9, 97)
+
+// Packet: 0x01ca
+packetLen(0x01ca, 3)
+
+// Packet: 0x01cb
+packetLen(0x01cb, 9)
+
+// Packet: 0x01cc
+packetLen(0x01cc, 9)
+
+// Packet: 0x01cd
+packetLen(0x01cd, 30)
+
+// Packet: 0x01ce
+packetLen(0x01ce, 6)
+
+// Packet: 0x01cf
+packetLen(0x01cf, 28)
+
+// Packet: 0x01d0
+packetLen(0x01d0, 8)
+
+// Packet: 0x01d1
+packetLen(0x01d1, 14)
+
+// Packet: 0x01d2
+packetLen(0x01d2, 10)
+
+// Packet: 0x01d3
+packetLen(0x01d3, 35)
+
+// Packet: 0x01d4
+packetLen(0x01d4, 6)
+
+// Packet: 0x01d5
+packetLen(0x01d5, -1)
+
+// Packet: 0x01d6
+packetLen(0x01d6, 4)
+
+// Packet: 0x01d7
+packetLen(0x01d7, 15)
+
+// Packet: 0x01d8
+packetLen(0x01d8, 58)
+
+// Packet: 0x01d9
+packetLen(0x01d9, 57)
+
+// Packet: 0x01da
+packetLen(0x01da, 64)
+
+// Packet: 0x01db
+packetLen(0x01db, 2)
+
+// Packet: 0x01dc
+packetLen(0x01dc, -1)
+
+// Packet: 0x01dd
+packetLen(0x01dd, 47)
+
+// Packet: 0x01de
+packetLen(0x01de, 33)
+
+// Packet: 0x01df
+packetLen(0x01df, 6)
+
+// Packet: 0x01e0
+packetLen(0x01e0, 30)
+
+// Packet: 0x01e1
+packetLen(0x01e1, 8)
+
+// Packet: 0x01e2
+packetLen(0x01e2, 34)
+
+// Packet: 0x01e3
+packetLen(0x01e3, 14)
+
+// Packet: 0x01e4
+packetLen(0x01e4, 2)
+
+// Packet: 0x01e5
+packetLen(0x01e5, 6)
+
+// Packet: 0x01e6
+packetLen(0x01e6, 26)
+
+// Packet: 0x01e7
+packetLen(0x01e7, 2)
+
+// Packet: 0x01e8
+packetLen(0x01e8, 28)
+
+// Packet: 0x01e9
+packetLen(0x01e9, 81)
+
+// Packet: 0x01ea
+packetLen(0x01ea, 6)
+
+// Packet: 0x01eb
+packetLen(0x01eb, 10)
+
+// Packet: 0x01ec
+packetLen(0x01ec, 26)
+
+// Packet: 0x01ed
+packetLen(0x01ed, 2)
+
+// Packet: 0x01ee
+packetLen(0x01ee, -1)
+
+// Packet: 0x01ef
+packetLen(0x01ef, -1)
+
+// Packet: 0x01f0
+packetLen(0x01f0, -1)
+
+// Packet: 0x01f1
+packetLen(0x01f1, -1)
+
+// Packet: 0x01f2
+packetLen(0x01f2, 20)
+
+// Packet: 0x01f3
+packetLen(0x01f3, 10)
+
+// Packet: 0x01f4
+packetLen(0x01f4, 32)
+
+// Packet: 0x01f5
+packetLen(0x01f5, 9)
+
+// Packet: 0x01f6
+packetLen(0x01f6, 34)
+
+// Packet: 0x01f7
+packetLen(0x01f7, 14)
+
+// Packet: 0x01f8
+packetLen(0x01f8, 2)
+
+// Packet: 0x01f9
+packetLen(0x01f9, 6)
+
+// Packet: 0x01fa
+packetLen(0x01fa, 48)
+
+// Packet: 0x01fb
+packetLen(0x01fb, 56)
+
+// Packet: 0x01fc
+packetLen(0x01fc, -1)
+
+// Packet: 0x01fd
+packetLen(0x01fd, 25)
+
+// Packet: 0x01fe
+packetLen(0x01fe, 5)
+
+// Packet: 0x01ff
+packetLen(0x01ff, 10)
+
+// Packet: 0x0200
+packetLen(0x0200, 26)
+
+// Packet: 0x0201
+packetLen(0x0201, -1)
+
+// Packet: 0x0202
+packetLen(0x0202, 26)
+
+// Packet: 0x0203
+packetLen(0x0203, 10)
+
+// Packet: 0x0204
+packetLen(0x0204, 18)
+
+// Packet: 0x0205
+packetLen(0x0205, 26)
+
+// Packet: 0x0206
+packetLen(0x0206, 35)
+
+// Packet: 0x0207
+packetLen(0x0207, 34)
+
+// Packet: 0x0208
+packetLen(0x0208, 14)
+
+// Packet: 0x0209
+packetLen(0x0209, 36)
+
+// Packet: 0x020a
+packetLen(0x020a, 10)
+
+// Packet: 0x020d
+packetLen(0x020d, -1)
+
+// Packet: 0x020e
+packetLen(0x020e, 32)
+
+// Packet: 0x020f
+packetLen(0x020f, 10)
+
+// Packet: 0x0210
+packetLen(0x0210, 22)
+
+// Packet: 0x0212
+packetLen(0x0212, 26)
+
+// Packet: 0x0213
+packetLen(0x0213, 26)
+
+// Packet: 0x0214
+packetLen(0x0214, 42)
+
+// Packet: 0x0215
+packetLen(0x0215, 6)
+
+// Packet: 0x0216
+packetLen(0x0216, 6)
+
+// Packet: 0x0217
+packetLen(0x0217, 2)
+
+// Packet: 0x0218
+packetLen(0x0218, 2)
+
+// Packet: 0x0219
+packetLen(0x0219, 282)
+
+// Packet: 0x021a
+packetLen(0x021a, 282)
+
+// Packet: 0x021b
+packetLen(0x021b, 10)
+
+// Packet: 0x021c
+packetLen(0x021c, 10)
+
+// Packet: 0x021d
+packetLen(0x021d, 6)
+
+// Packet: 0x021e
+packetLen(0x021e, 6)
+
+// Packet: 0x021f
+packetLen(0x021f, 66)
+
+// Packet: 0x0220
+packetLen(0x0220, 10)
+
+// Packet: 0x0221
+packetLen(0x0221, -1)
+
+// Packet: 0x0222
+packetLen(0x0222, 6)
+
+// Packet: 0x0223
+packetLen(0x0223, 10)
+
+// Packet: 0x0224
+packetLen(0x0224, 10)
+
+// Packet: 0x0225
+packetLen(0x0225, 2)
+
+// Packet: 0x0226
+packetLen(0x0226, 282)
+
+// Packet: 0x0227
+packetLen(0x0227, 18)
+
+// Packet: 0x0228
+packetLen(0x0228, 18)
+
+// Packet: 0x0229
+packetLen(0x0229, 15)
+
+// Packet: 0x022a
+packetLen(0x022a, 62)
+
+// Packet: 0x022b
+packetLen(0x022b, 61)
+
+// Packet: 0x022c
+packetLen(0x022c, 69)
+
+// Packet: 0x022d
+packetLen(0x022d, 5)
+
+// Packet: 0x022e
+packetLen(0x022e, 73)
+
+// Packet: 0x022f
+packetLen(0x022f, 7)
+
+// Packet: 0x0230
+packetLen(0x0230, 12)
+
+// Packet: 0x0231
+packetLen(0x0231, 26)
+
+// Packet: 0x0232
+packetLen(0x0232, 9)
+
+// Packet: 0x0233
+packetLen(0x0233, 11)
+
+// Packet: 0x0234
+packetLen(0x0234, 6)
+
+// Packet: 0x0235
+packetLen(0x0235, -1)
+
+// Packet: 0x0236
+packetLen(0x0236, 10)
+
+// Packet: 0x0237
+packetLen(0x0237, 2)
+
+// Packet: 0x0238
+packetLen(0x0238, 282)
+
+// Packet: 0x0239
+packetLen(0x0239, 11)
+
+// Packet: 0x023a
+packetLen(0x023a, 4)
+
+// Packet: 0x023b
+packetLen(0x023b, 36)
+
+// Packet: 0x023c
+packetLen(0x023c, 6)
+
+// Packet: 0x023d
+packetLen(0x023d, 6)
+
+// Packet: 0x023e
+packetLen(0x023e, 8)
+
+// Packet: 0x023f
+packetLen(0x023f, 2)
+
+// Packet: 0x0240
+packetLen(0x0240, -1)
+
+// Packet: 0x0241
+packetLen(0x0241, 6)
+
+// Packet: 0x0242
+packetLen(0x0242, -1)
+
+// Packet: 0x0243
+packetLen(0x0243, 6)
+
+// Packet: 0x0244
+packetLen(0x0244, 6)
+
+// Packet: 0x0245
+packetLen(0x0245, 3)
+
+// Packet: 0x0246
+packetLen(0x0246, 4)
+
+// Packet: 0x0247
+packetLen(0x0247, 8)
+
+// Packet: 0x0248
+packetLen(0x0248, -1)
+
+// Packet: 0x0249
+packetLen(0x0249, 3)
+
+// Packet: 0x024a
+packetLen(0x024a, 70)
+
+// Packet: 0x024b
+packetLen(0x024b, 4)
+
+// Packet: 0x024c
+packetLen(0x024c, 8)
+
+// Packet: 0x024d
+packetLen(0x024d, 12)
+
+// Packet: 0x024e
+packetLen(0x024e, 6)
+
+// Packet: 0x024f
+packetLen(0x024f, 10)
+
+// Packet: 0x0250
+packetLen(0x0250, 3)
+
+// Packet: 0x0251
+packetLen(0x0251, 34)
+
+// Packet: 0x0252
+packetLen(0x0252, -1)
+
+// Packet: 0x0253
+packetLen(0x0253, 3)
+
+// Packet: 0x0254
+packetLen(0x0254, 3)
+
+// Packet: 0x0255
+packetLen(0x0255, 5)
+
+// Packet: 0x0256
+packetLen(0x0256, 5)
+
+// Packet: 0x0257
+packetLen(0x0257, 8)
+
+// Packet: 0x0258
+packetLen(0x0258, 2)
+
+// Packet: 0x0259
+packetLen(0x0259, 3)
+
+// Packet: 0x025a
+packetLen(0x025a, -1)
+
+// Packet: 0x025b
+packetLen(0x025b, 8)
+
+// Packet: 0x025c
+packetLen(0x025c, 4)
+
+// Packet: 0x025d
+packetLen(0x025d, 6)
+
+// Packet: 0x025e
+packetLen(0x025e, 4)
+
+// Packet: 0x025f
+packetLen(0x025f, 6)
+
+// Packet: 0x0260
+packetLen(0x0260, 6)
+
+// Packet: 0x0261
+packetLen(0x0261, 11)
+
+// Packet: 0x0262
+packetLen(0x0262, 11)
+
+// Packet: 0x0263
+packetLen(0x0263, 11)
+
+// Packet: 0x0264
+packetLen(0x0264, 20)
+
+// Packet: 0x0265
+packetLen(0x0265, 20)
+
+// Packet: 0x0266
+packetLen(0x0266, 30)
+
+// Packet: 0x0267
+packetLen(0x0267, 4)
+
+// Packet: 0x0268
+packetLen(0x0268, 4)
+
+// Packet: 0x0269
+packetLen(0x0269, 4)
+
+// Packet: 0x026a
+packetLen(0x026a, 4)
+
+// Packet: 0x026b
+packetLen(0x026b, 4)
+
+// Packet: 0x026c
+packetLen(0x026c, 4)
+
+// Packet: 0x026d
+packetLen(0x026d, 4)
+
+// Packet: 0x026f
+packetLen(0x026f, 2)
+
+// Packet: 0x0270
+packetLen(0x0270, 2)
+
+// Packet: 0x0271
+packetLen(0x0271, 40)
+
+// Packet: 0x0272
+packetLen(0x0272, 44)
+
+// Packet: 0x0273
+packetLen(0x0273, 30)
+
+// Packet: 0x0274
+packetLen(0x0274, 8)
+
+// Packet: 0x0275
+packetLen(0x0275, 37)
+
+// Packet: 0x0276
+packetLen(0x0276, -1)
+
+// Packet: 0x0277
+packetLen(0x0277, 84)
+
+// Packet: 0x0278
+packetLen(0x0278, 2)
+
+// Packet: 0x0279
+packetLen(0x0279, 2)
+
+// Packet: 0x027a
+packetLen(0x027a, -1)
+
+// Packet: 0x027b
+packetLen(0x027b, 14)
+
+// Packet: 0x027c
+packetLen(0x027c, 60)
+
+// Packet: 0x027d
+packetLen(0x027d, 62)
+
+// Packet: 0x027e
+packetLen(0x027e, -1)
+
+// Packet: 0x027f
+packetLen(0x027f, 8)
+
+// Packet: 0x0280
+packetLen(0x0280, 12)
+
+// Packet: 0x0281
+packetLen(0x0281, 4)
+
+// Packet: 0x0282
+packetLen(0x0282, 284)
+
+// Packet: 0x0283
+packetLen(0x0283, 6)
+
+// Packet: 0x0284
+packetLen(0x0284, 14)
+
+// Packet: 0x0285
+packetLen(0x0285, 6)
+
+// Packet: 0x0286
+packetLen(0x0286, 4)
+
+// Packet: 0x0287
+packetLen(0x0287, -1)
+
+// Packet: 0x0288
+packetLen(0x0288, -1)
+
+// Packet: 0x0289
+packetLen(0x0289, 12)
+
+// Packet: 0x028a
+packetLen(0x028a, 18)
+
+// Packet: 0x028b
+packetLen(0x028b, -1)
+
+// Packet: 0x028c
+packetLen(0x028c, 46)
+
+// Packet: 0x028d
+packetLen(0x028d, 34)
+
+// Packet: 0x028e
+packetLen(0x028e, 4)
+
+// Packet: 0x028f
+packetLen(0x028f, 6)
+
+// Packet: 0x0290
+packetLen(0x0290, 4)
+
+// Packet: 0x0291
+packetLen(0x0291, 4)
+
+// Packet: 0x0292
+packetLen(0x0292, 2)
+
+// Packet: 0x0293
+packetLen(0x0293, 70)
+
+// Packet: 0x0294
+packetLen(0x0294, 10)
+
+// Packet: 0x0295
+packetLen(0x0295, -1)
+
+// Packet: 0x0296
+packetLen(0x0296, -1)
+
+// Packet: 0x0297
+packetLen(0x0297, -1)
+
+// Packet: 0x0298
+packetLen(0x0298, 10)
+
+// Packet: 0x0299
+packetLen(0x0299, 8)
+
+// Packet: 0x029a
+packetLen(0x029a, 37)
+
+// Packet: 0x029b
+packetLen(0x029b, 80)
+
+// Packet: 0x029c
+packetLen(0x029c, 66)
+
+// Packet: 0x029d
+packetLen(0x029d, -1)
+
+// Packet: 0x029e
+packetLen(0x029e, 11)
+
+// Packet: 0x029f
+packetLen(0x029f, 3)
+
+// Packet: 0x02a2
+packetLen(0x02a2, 8)
+
+// Packet: 0x02a5
+packetLen(0x02a5, 8)
+
+// Packet: 0x02a6
+packetLen(0x02a6, -1)
+
+// Packet: 0x02a7
+packetLen(0x02a7, -1)
+
+// Packet: 0x02aa
+packetLen(0x02aa, 4)
+
+// Packet: 0x02ab
+packetLen(0x02ab, 36)
+
+// Packet: 0x02ac
+packetLen(0x02ac, 6)
+
+// Packet: 0x02ad
+packetLen(0x02ad, 8)
+
+// Packet: 0x02b0
+packetLen(0x02b0, 85)
+
+// Packet: 0x02b1
+packetLen(0x02b1, -1)
+
+// Packet: 0x02b2
+packetLen(0x02b2, -1)
+
+// Packet: 0x02b3
+packetLen(0x02b3, 107)
+
+// Packet: 0x02b4
+packetLen(0x02b4, 6)
+
+// Packet: 0x02b5
+packetLen(0x02b5, -1)
+
+// Packet: 0x02b6
+packetLen(0x02b6, 7)
+
+// Packet: 0x02b7
+packetLen(0x02b7, 7)
+
+// Packet: 0x02b8
+packetLen(0x02b8, 32)
+
+// Packet: 0x02b9
+packetLen(0x02b9, 191)
+
+// Packet: 0x02ba
+packetLen(0x02ba, 11)
+
+// Packet: 0x02bb
+packetLen(0x02bb, 8)
+
+// Packet: 0x02bc
+packetLen(0x02bc, 6)
+
+// Packet: 0x02c1
+packetLen(0x02c1, -1)
+
+// Packet: 0x02c2
+packetLen(0x02c2, -1)
+
+// Packet: 0x02c4
+packetLen(0x02c4, 26)
+
+// Packet: 0x02c5
+packetLen(0x02c5, 30)
+
+// Packet: 0x02c6
+packetLen(0x02c6, 30)
+
+// Packet: 0x02c7
+packetLen(0x02c7, 7)
+
+// Packet: 0x02c8
+packetLen(0x02c8, 3)
+
+// Packet: 0x02c9
+packetLen(0x02c9, 3)
+
+// Packet: 0x02ca
+packetLen(0x02ca, 3)
+
+// Packet: 0x02cb
+packetLen(0x02cb, 65)
+
+// Packet: 0x02cc
+packetLen(0x02cc, 4)
+
+// Packet: 0x02cd
+packetLen(0x02cd, 71)
+
+// Packet: 0x02ce
+packetLen(0x02ce, 10)
+
+// Packet: 0x02cf
+packetLen(0x02cf, 6)
+
+// Packet: 0x02d0
+packetLen(0x02d0, -1)
+
+// Packet: 0x02d1
+packetLen(0x02d1, -1)
+
+// Packet: 0x02d2
+packetLen(0x02d2, -1)
+
+// Packet: 0x02d3
+packetLen(0x02d3, 4)
+
+// Packet: 0x02d4
+packetLen(0x02d4, 39)
+
+// Packet: 0x02d5
+packetLen(0x02d5, 2)
+
+// Packet: 0x02d6
+packetLen(0x02d6, 6)
+
+// Packet: 0x02d7
+packetLen(0x02d7, -1)
+
+// Packet: 0x02d8
+packetLen(0x02d8, 10)
+
+// Packet: 0x02d9
+packetLen(0x02d9, 10)
+
+// Packet: 0x02da
+packetLen(0x02da, 3)
+
+// Packet: 0x02db
+packetLen(0x02db, -1)
+
+// Packet: 0x02dc
+packetLen(0x02dc, -1)
+
+// Packet: 0x02dd
+packetLen(0x02dd, 32)
+
+// Packet: 0x02de
+packetLen(0x02de, 6)
+
+// Packet: 0x02df
+packetLen(0x02df, 36)
+
+// Packet: 0x02e0
+packetLen(0x02e0, 34)
+
+// Packet: 0x02e1
+packetLen(0x02e1, 33)
+
+// Packet: 0x02e2
+packetLen(0x02e2, 20)
+
+// Packet: 0x02e3
+packetLen(0x02e3, 22)
+
+// Packet: 0x02e4
+packetLen(0x02e4, 11)
+
+// Packet: 0x02e5
+packetLen(0x02e5, 9)
+
+// Packet: 0x02e6
+packetLen(0x02e6, 6)
+
+// Packet: 0x02e7
+packetLen(0x02e7, -1)
+
+// Packet: 0x02e8
+packetLen(0x02e8, -1)
+
+// Packet: 0x02e9
+packetLen(0x02e9, -1)
+
+// Packet: 0x02ea
+packetLen(0x02ea, -1)
+
+// Packet: 0x02eb
+packetLen(0x02eb, 13)
+
+// Packet: 0x02ec
+packetLen(0x02ec, 71)
+
+// Packet: 0x02ed
+packetLen(0x02ed, 63)
+
+// Packet: 0x02ee
+packetLen(0x02ee, 64)
+
+// Packet: 0x02ef
+packetLen(0x02ef, 8)
+
+// Packet: 0x02f0
+packetLen(0x02f0, 10)
+
+// Packet: 0x02f1
+packetLen(0x02f1, 2)
+
+// Packet: 0x02f2
+packetLen(0x02f2, 2)
+
+// Packet: 0x02f3
+packetLen(0x02f3, -1)
+
+// Packet: 0x02f4
+packetLen(0x02f4, 3)
+
+// Packet: 0x02f5
+packetLen(0x02f5, 7)
+
+// Packet: 0x02f6
+packetLen(0x02f6, 7)
+
+// Packet: 0x035c
+packetLen(0x035c, 2)
+
+// Packet: 0x035d
+packetLen(0x035d, -1)
+
+// Packet: 0x035e
+packetLen(0x035e, 2)
+
+// Packet: 0x035f
+packetLen(0x035f, 5)
+
+// Packet: 0x0360
+packetLen(0x0360, 6)
+
+// Packet: 0x0361
+packetLen(0x0361, 5)
+
+// Packet: 0x0362
+packetLen(0x0362, 6)
+
+// Packet: 0x0363
+packetLen(0x0363, 6)
+
+// Packet: 0x0364
+packetLen(0x0364, 8)
+
+// Packet: 0x0365
+packetLen(0x0365, 8)
+
+// Packet: 0x0366
+packetLen(0x0366, 10)
+
+// Packet: 0x0367
+packetLen(0x0367, 31)
+
+// Packet: 0x0368
+packetLen(0x0368, 6)
+
+// Packet: 0x0369
+packetLen(0x0369, 6)
+
+// Packet: 0x03dd
+packetLen(0x03dd, 18)
+
+// Packet: 0x03de
+packetLen(0x03de, 18)
+
+// Packet: 0x0436
+packetLen(0x0436, 19)
+
+// Packet: 0x0437
+packetLen(0x0437, 7)
+
+// Packet: 0x0438
+packetLen(0x0438, 10)
+
+// Packet: 0x0439
+packetLen(0x0439, 8)
+
+// Packet: 0x043d
+packetLen(0x043d, 8)
+
+// Packet: 0x043e
+packetLen(0x043e, -1)
+
+// Packet: 0x043f
+packetLen(0x043f, 25)
+
+// Packet: 0x0440
+packetLen(0x0440, 10)
+
+// Packet: 0x0441
+packetLen(0x0441, 4)
+
+// Packet: 0x0442
+packetLen(0x0442, -1)
+
+// Packet: 0x0443
+packetLen(0x0443, 8)
+
+// Packet: 0x0444
+packetLen(0x0444, -1)
+
+// Packet: 0x0445
+packetLen(0x0445, 12)
+
+// Packet: 0x0446
+packetLen(0x0446, 14)
+
+// Packet: 0x0447
+packetLen(0x0447, 2)
+
+// Packet: 0x0448
+packetLen(0x0448, -1)
+
+// Packet: 0x0449
+packetLen(0x0449, 4)
+
+// Packet: 0x044a
+packetLen(0x044a, 6)
+
+// Packet: 0x044b
+packetLen(0x044b, 2)
+
+// Packet: 0x07d7
+packetLen(0x07d7, 8)
+
+// Packet: 0x07d8
+packetLen(0x07d8, 8)
+
+// Packet: 0x07d9
+packetLen(0x07d9, 268)
+
+// Packet: 0x07da
+packetLen(0x07da, 6)
+
+// Packet: 0x07db
+packetLen(0x07db, 8)
+
+// Packet: 0x07dc
+packetLen(0x07dc, 6)
+
+// Packet: 0x07dd
+packetLen(0x07dd, 54)
+
+// Packet: 0x07de
+packetLen(0x07de, 30)
+
+// Packet: 0x07df
+packetLen(0x07df, 54)
+
+// Packet: 0x07e0
+packetLen(0x07e0, 58)
+
+// Packet: 0x07e1
+packetLen(0x07e1, 15)
+
+// Packet: 0x07e2
+packetLen(0x07e2, 8)
+
+// Packet: 0x07e3
+packetLen(0x07e3, 6)
+
+// Packet: 0x07e4
+packetLen(0x07e4, -1)
+
+// Packet: 0x07e5
+packetLen(0x07e5, 4)
+
+// Packet: 0x07e6
+packetLen(0x07e6, 8)
+
+// Packet: 0x07e7
+packetLen(0x07e7, 32)
+
+// Packet: 0x07e8
+packetLen(0x07e8, -1)
+
+// Packet: 0x07e9
+packetLen(0x07e9, 5)
+
+// Packet: 0x07ea
+packetLen(0x07ea, 2)
+
+// Packet: 0x07eb
+packetLen(0x07eb, -1)
+
+// Packet: 0x07ec
+packetLen(0x07ec, 8)
+
+// Packet: 0x07ed
+packetLen(0x07ed, 10)
+
+// Packet: 0x07ee
+packetLen(0x07ee, 6)
+
+// Packet: 0x07ef
+packetLen(0x07ef, 8)
+
+// Packet: 0x07f0
+packetLen(0x07f0, 6)
+
+// Packet: 0x07f1
+packetLen(0x07f1, 18)
+
+// Packet: 0x07f2
+packetLen(0x07f2, 8)
+
+// Packet: 0x07f3
+packetLen(0x07f3, 6)
+
+// Packet: 0x07f4
+packetLen(0x07f4, 3)
+
+// Packet: 0x07f5
+packetLen(0x07f5, 6)
+
+// Packet: 0x07f6
+packetLen(0x07f6, 14)
+
+// Packet: 0x07f7
+packetLen(0x07f7, -1)
+
+// Packet: 0x07f8
+packetLen(0x07f8, -1)
+
+// Packet: 0x07f9
+packetLen(0x07f9, -1)
+
+// Packet: 0x07fa
+packetLen(0x07fa, 8)
+
+// Packet: 0x07fb
+packetLen(0x07fb, 25)
+
+// Packet: 0x07fc
+packetLen(0x07fc, 10)
+
+// Packet: 0x07fd
+packetLen(0x07fd, -1)
+
+// Packet: 0x07fe
+packetLen(0x07fe, 26)
+
+// Packet: 0x0800
+packetLen(0x0800, -1)
+
+// Packet: 0x0801
+packetLen(0x0801, -1)
+
+// Packet: 0x0802
+packetLen(0x0802, 18)
+
+// Packet: 0x0803
+packetLen(0x0803, 4)
+
+// Packet: 0x0804
+packetLen(0x0804, 14)
+
+// Packet: 0x0805
+packetLen(0x0805, -1)
+
+// Packet: 0x0806
+packetLen(0x0806, 2)
+
+// Packet: 0x0807
+packetLen(0x0807, 4)
+
+// Packet: 0x0808
+packetLen(0x0808, 14)
+
+// Packet: 0x0809
+packetLen(0x0809, 50)
+
+// Packet: 0x080a
+packetLen(0x080a, 18)
+
+// Packet: 0x080b
+packetLen(0x080b, 6)
+
+// Packet: 0x080c
+packetLen(0x080c, 2)
+
+// Packet: 0x080d
+packetLen(0x080d, 3)
+
+// Packet: 0x080e
+packetLen(0x080e, 14)
+
+// Packet: 0x080f
+packetLen(0x080f, 30)
+
+// Packet: 0x0810
+packetLen(0x0810, 3)
+
+// Packet: 0x0811
+packetLen(0x0811, -1)
+
+// Packet: 0x0812
+packetLen(0x0812, 8)
+
+// Packet: 0x0813
+packetLen(0x0813, -1)
+
+// Packet: 0x0814
+packetLen(0x0814, 86)
+
+// Packet: 0x0815
+packetLen(0x0815, 2)
+
+// Packet: 0x0816
+packetLen(0x0816, 6)
+
+// Packet: 0x0817
+packetLen(0x0817, 6)
+
+// Packet: 0x0818
+packetLen(0x0818, -1)
+
+// Packet: 0x0819
+packetLen(0x0819, -1)
+
+// Packet: 0x081a
+packetLen(0x081a, 4)
+
+// Packet: 0x081b
+packetLen(0x081b, 12)
+
+// Packet: 0x081c
+packetLen(0x081c, 10)
+
+// Packet: 0x081d
+packetLen(0x081d, 22)
+
+// Packet: 0x081e
+packetLen(0x081e, 8)
+
+// Packet: 0x081f
+packetLen(0x081f, -1)
+
+// Packet: 0x0820
+packetLen(0x0820, 11)
+
+// Packet: 0x0821
+packetLen(0x0821, 2)
+
+// Packet: 0x0822
+packetLen(0x0822, 9)
+
+// Packet: 0x0823
+packetLen(0x0823, -1)
+
+// Packet: 0x0824
+packetLen(0x0824, 8)
+
+// Packet: 0x0825
+packetLen(0x0825, -1)
+
+// Packet: 0x0827
+packetLen(0x0827, 6)
+
+// Packet: 0x0828
+packetLen(0x0828, 14)
+
+// Packet: 0x0829
+packetLen(0x0829, 12)
+
+// Packet: 0x082a
+packetLen(0x082a, 10)
+
+// Packet: 0x082b
+packetLen(0x082b, 6)
+
+// Packet: 0x082c
+packetLen(0x082c, 10)
+
+// Packet: 0x082d
+packetLen(0x082d, -1)
+
+// Packet: 0x0835
+packetLen(0x0835, -1)
+
+// Packet: 0x0836
+packetLen(0x0836, -1)
+
+// Packet: 0x0837
+packetLen(0x0837, 3)
+
+// Packet: 0x0838
+packetLen(0x0838, 2)
+
+// Packet: 0x0839
+packetLen(0x0839, 66)
+
+// Packet: 0x083a
+packetLen(0x083a, 5)
+
+// Packet: 0x083b
+packetLen(0x083b, 2)
+
+// Packet: 0x083c
+packetLen(0x083c, 14)
+
+// Packet: 0x083d
+packetLen(0x083d, 6)
+
+// Packet: 0x083e
+packetLen(0x083e, 26)
+
+// Packet: 0x0840
+packetLen(0x0840, -1)
+
+// Packet: 0x0841
+packetLen(0x0841, 4)
+
+// Packet: 0x0842
+packetLen(0x0842, 6)
+
+// Packet: 0x0843
+packetLen(0x0843, 6)
+
+// Packet: 0x0844
+packetLen(0x0844, 2)
+
+// Packet: 0x0845
+packetLen(0x0845, 10)
+
+// Packet: 0x0846
+packetLen(0x0846, 4)
+
+// Packet: 0x0847
+packetLen(0x0847, -1)
+
+// Packet: 0x0848
+packetLen(0x0848, -1)
+
+// Packet: 0x0849
+packetLen(0x0849, 16)
+
+// Packet: 0x084a
+packetLen(0x084a, 2)
+
+// Packet: 0x084b
+packetLen(0x084b, 21)
+
+// Packet: 0x084c
+packetLen(0x084c, 10)
+
+// Packet: 0x084d
+packetLen(0x084d, 10)
+
+// Packet: 0x084e
+packetLen(0x084e, 5)
+
+// Packet: 0x084f
+packetLen(0x084f, 6)
+
+// Packet: 0x0850
+packetLen(0x0850, 7)
+
+// Packet: 0x0851
+packetLen(0x0851, -1)
+
+// Packet: 0x0852
+packetLen(0x0852, 2)
+
+// Packet: 0x0853
+packetLen(0x0853, -1)
+
+// Packet: 0x0854
+packetLen(0x0854, -1)
+
+// Packet: 0x0855
+packetLen(0x0855, 6)
+
+// Packet: 0x0856
+packetLen(0x0856, -1)
+
+// Packet: 0x0857
+packetLen(0x0857, -1)
+
+// Packet: 0x0858
+packetLen(0x0858, -1)
+
+// Packet: 0x0859
+packetLen(0x0859, -1)
+
+// Packet: 0x085a
+packetLen(0x085a, 2)
+
+// Packet: 0x085b
+packetLen(0x085b, 2)
+
+// Packet: 0x085c
+packetLen(0x085c, 2)
+
+// Packet: 0x085d
+packetLen(0x085d, 2)
+
+// Packet: 0x085e
+packetLen(0x085e, 2)
+
+// Packet: 0x085f
+packetLen(0x085f, 2)
+
+// Packet: 0x0860
+packetLen(0x0860, 2)
+
+// Packet: 0x0861
+packetLen(0x0861, 2)
+
+// Packet: 0x0862
+packetLen(0x0862, 2)
+
+// Packet: 0x0863
+packetLen(0x0863, 2)
+
+// Packet: 0x0864
+packetLen(0x0864, 2)
+
+// Packet: 0x0865
+packetLen(0x0865, 2)
+
+// Packet: 0x0866
+packetLen(0x0866, 2)
+
+// Packet: 0x0867
+packetLen(0x0867, 2)
+
+// Packet: 0x0868
+packetLen(0x0868, 2)
+
+// Packet: 0x0869
+packetLen(0x0869, 2)
+
+// Packet: 0x086a
+packetLen(0x086a, 2)
+
+// Packet: 0x086b
+packetLen(0x086b, 2)
+
+// Packet: 0x086c
+packetLen(0x086c, 2)
+
+// Packet: 0x086d
+packetLen(0x086d, 2)
+
+// Packet: 0x086e
+packetLen(0x086e, 2)
+
+// Packet: 0x086f
+packetLen(0x086f, 2)
+
+// Packet: 0x0870
+packetLen(0x0870, 2)
+
+// Packet: 0x0871
+packetLen(0x0871, 2)
+
+// Packet: 0x0872
+packetLen(0x0872, 2)
+
+// Packet: 0x0873
+packetLen(0x0873, 2)
+
+// Packet: 0x0874
+packetLen(0x0874, 2)
+
+// Packet: 0x0875
+packetLen(0x0875, 2)
+
+// Packet: 0x0876
+packetLen(0x0876, 2)
+
+// Packet: 0x0877
+packetLen(0x0877, 2)
+
+// Packet: 0x0878
+packetLen(0x0878, 2)
+
+// Packet: 0x0879
+packetLen(0x0879, 2)
+
+// Packet: 0x087a
+packetLen(0x087a, 2)
+
+// Packet: 0x087b
+packetLen(0x087b, 2)
+
+// Packet: 0x087c
+packetLen(0x087c, 2)
+
+// Packet: 0x087d
+packetLen(0x087d, 2)
+
+// Packet: 0x087e
+packetLen(0x087e, 2)
+
+// Packet: 0x087f
+packetLen(0x087f, 2)
+
+// Packet: 0x0880
+packetLen(0x0880, 2)
+
+// Packet: 0x0881
+packetLen(0x0881, 2)
+
+// Packet: 0x0882
+packetLen(0x0882, 2)
+
+// Packet: 0x0883
+packetLen(0x0883, 2)
+
+// Packet: 0x0884
+packetLen(0x0884, 2)
+
+// Packet: 0x0885
+packetLen(0x0885, 2)
+
+// Packet: 0x0886
+packetLen(0x0886, 2)
+
+// Packet: 0x0887
+packetLen(0x0887, 2)
+
+// Packet: 0x0888
+packetLen(0x0888, 2)
+
+// Packet: 0x0889
+packetLen(0x0889, 2)
+
+// Packet: 0x088a
+packetLen(0x088a, 2)
+
+// Packet: 0x088b
+packetLen(0x088b, 2)
+
+// Packet: 0x088c
+packetLen(0x088c, 2)
+
+// Packet: 0x088d
+packetLen(0x088d, 2)
+
+// Packet: 0x088e
+packetLen(0x088e, 2)
+
+// Packet: 0x088f
+packetLen(0x088f, 2)
+
+// Packet: 0x0890
+packetLen(0x0890, 2)
+
+// Packet: 0x0891
+packetLen(0x0891, 2)
+
+// Packet: 0x0892
+packetLen(0x0892, 2)
+
+// Packet: 0x0893
+packetLen(0x0893, 2)
+
+// Packet: 0x0894
+packetLen(0x0894, 2)
+
+// Packet: 0x0895
+packetLen(0x0895, 2)
+
+// Packet: 0x0896
+packetLen(0x0896, 2)
+
+// Packet: 0x0897
+packetLen(0x0897, 2)
+
+// Packet: 0x0898
+packetLen(0x0898, 2)
+
+// Packet: 0x0899
+packetLen(0x0899, 2)
+
+// Packet: 0x089a
+packetLen(0x089a, 2)
+
+// Packet: 0x089b
+packetLen(0x089b, 2)
+
+// Packet: 0x089c
+packetLen(0x089c, 2)
+
+// Packet: 0x089d
+packetLen(0x089d, 2)
+
+// Packet: 0x089e
+packetLen(0x089e, 2)
+
+// Packet: 0x089f
+packetLen(0x089f, 2)
+
+// Packet: 0x08a0
+packetLen(0x08a0, 2)
+
+// Packet: 0x08a1
+packetLen(0x08a1, 2)
+
+// Packet: 0x08a2
+packetLen(0x08a2, 2)
+
+// Packet: 0x08a3
+packetLen(0x08a3, 2)
+
+// Packet: 0x08a4
+packetLen(0x08a4, 2)
+
+// Packet: 0x08a5
+packetLen(0x08a5, 2)
+
+// Packet: 0x08a6
+packetLen(0x08a6, 2)
+
+// Packet: 0x08a7
+packetLen(0x08a7, 2)
+
+// Packet: 0x08a8
+packetLen(0x08a8, 2)
+
+// Packet: 0x08a9
+packetLen(0x08a9, 2)
+
+// Packet: 0x08aa
+packetLen(0x08aa, 2)
+
+// Packet: 0x08ab
+packetLen(0x08ab, 2)
+
+// Packet: 0x08ac
+packetLen(0x08ac, 2)
+
+// Packet: 0x08ad
+packetLen(0x08ad, 2)
+
+// Packet: 0x08af
+packetLen(0x08af, 10)
+
+// Packet: 0x08b0
+packetLen(0x08b0, 17)
+
+// Packet: 0x08b1
+packetLen(0x08b1, -1)
+
+// Packet: 0x08b2
+packetLen(0x08b2, -1)
+
+// Packet: 0x08b3
+packetLen(0x08b3, -1)
+
+// Packet: 0x08b4
+packetLen(0x08b4, 2)
+
+// Packet: 0x08b5
+packetLen(0x08b5, 6)
+
+// Packet: 0x08b6
+packetLen(0x08b6, 3)
+
+// Packet: 0x08b8
+packetLen(0x08b8, 10)
+
+// Packet: 0x08b9
+packetLen(0x08b9, 12)
+
+// Packet: 0x08ba
+packetLen(0x08ba, 10)
+
+// Packet: 0x08bb
+packetLen(0x08bb, 8)
+
+// Packet: 0x08bc
+packetLen(0x08bc, 10)
+
+// Packet: 0x08bd
+packetLen(0x08bd, 8)
+
+// Packet: 0x08be
+packetLen(0x08be, 14)
+
+// Packet: 0x08bf
+packetLen(0x08bf, 8)
+
+// Packet: 0x08c0
+packetLen(0x08c0, -1)
+
+// Packet: 0x08c1
+packetLen(0x08c1, 2)
+
+// Packet: 0x08c2
+packetLen(0x08c2, 2)
+
+// Packet: 0x08c3
+packetLen(0x08c3, 10)
+
+// Packet: 0x08c4
+packetLen(0x08c4, 8)
+
+// Packet: 0x08c5
+packetLen(0x08c5, 6)
+
+// Packet: 0x08c6
+packetLen(0x08c6, 4)
+
+// Packet: 0x08c7
+packetLen(0x08c7, -1)
+
+// Packet: 0x08c8
+packetLen(0x08c8, 34)
+
+// Packet: 0x08c9
+packetLen(0x08c9, 2)
+
+// Packet: 0x08ca
+packetLen(0x08ca, -1)
+
+// Packet: 0x08cb
+packetLen(0x08cb, -1)
+
+// Packet: 0x08cc
+packetLen(0x08cc, 109)
+
+// Packet: 0x08cd
+packetLen(0x08cd, 10)
+
+// Packet: 0x08ce
+packetLen(0x08ce, 2)
+
+// Packet: 0x08cf
+packetLen(0x08cf, 10)
+
+// Packet: 0x08d0
+packetLen(0x08d0, 9)
+
+// Packet: 0x08d1
+packetLen(0x08d1, 7)
+
+// Packet: 0x08d2
+packetLen(0x08d2, 10)
+
+// Packet: 0x08d3
+packetLen(0x08d3, 10)
+
+// Packet: 0x08d4
+packetLen(0x08d4, 8)
+
+// Packet: 0x08d5
+packetLen(0x08d5, -1)
+
+// Packet: 0x08d6
+packetLen(0x08d6, 6)
+
+// Packet: 0x08d7
+packetLen(0x08d7, 28)
+
+// Packet: 0x08d8
+packetLen(0x08d8, 27)
+
+// Packet: 0x08d9
+packetLen(0x08d9, 30)
+
+// Packet: 0x08da
+packetLen(0x08da, 26)
+
+// Packet: 0x08db
+packetLen(0x08db, 27)
+
+// Packet: 0x08dc
+packetLen(0x08dc, 26)
+
+// Packet: 0x08dd
+packetLen(0x08dd, 27)
+
+// Packet: 0x08de
+packetLen(0x08de, 27)
+
+// Packet: 0x08df
+packetLen(0x08df, 50)
+
+// Packet: 0x08e0
+packetLen(0x08e0, 51)
+
+// Packet: 0x08e1
+packetLen(0x08e1, 51)
+
+// Packet: 0x08e2
+packetLen(0x08e2, 27)
+
+// Packet: 0x08e3
+packetLen(0x08e3, 157)
+
+// Packet: 0x08e4
+packetLen(0x08e4, 6)
+
+// Packet: 0x08fc
+packetLen(0x08fc, 30)
+
+// Packet: 0x08fd
+packetLen(0x08fd, 6)
+
+// Packet: 0x08fe
+packetLen(0x08fe, -1)
+
+// Packet: 0x08ff
+packetLen(0x08ff, 24)
+
+// Packet: 0x0900
+packetLen(0x0900, -1)
+
+// Packet: 0x0901
+packetLen(0x0901, -1)
+
+// Packet: 0x0902
+packetLen(0x0902, -1)
+
+// Packet: 0x0903
+packetLen(0x0903, -1)
+
+// Packet: 0x0904
+packetLen(0x0904, -1)
+
+// Packet: 0x0905
+packetLen(0x0905, -1)
+
+// Packet: 0x0906
+packetLen(0x0906, -1)
+
+// Packet: 0x0907
+packetLen(0x0907, 5)
+
+// Packet: 0x0908
+packetLen(0x0908, 5)
+
+// Packet: 0x090a
+packetLen(0x090a, 26)
+
+// Packet: 0x090d
+packetLen(0x090d, -1)
+
+// Packet: 0x090e
+packetLen(0x090e, 2)
+
+// Packet: 0x090f
+packetLen(0x090f, -1)
+
+// Packet: 0x0910
+packetLen(0x0910, 10)
+
+// Packet: 0x0911
+packetLen(0x0911, 30)
+
+// Packet: 0x0912
+packetLen(0x0912, 10)
+
+// Packet: 0x0913
+packetLen(0x0913, 30)
+
+// Packet: 0x0914
+packetLen(0x0914, -1)
+
+// Packet: 0x0915
+packetLen(0x0915, -1)
+
+// Packet: 0x0916
+packetLen(0x0916, 26)
+
+// Packet: 0x0917
+packetLen(0x0917, 2)
+
+// Packet: 0x0918
+packetLen(0x0918, 2)
+
+// Packet: 0x0919
+packetLen(0x0919, 2)
+
+// Packet: 0x091a
+packetLen(0x091a, 2)
+
+// Packet: 0x091b
+packetLen(0x091b, 2)
+
+// Packet: 0x091c
+packetLen(0x091c, 2)
+
+// Packet: 0x091d
+packetLen(0x091d, 2)
+
+// Packet: 0x091e
+packetLen(0x091e, 2)
+
+// Packet: 0x091f
+packetLen(0x091f, 2)
+
+// Packet: 0x0920
+packetLen(0x0920, 2)
+
+// Packet: 0x0921
+packetLen(0x0921, 2)
+
+// Packet: 0x0922
+packetLen(0x0922, 2)
+
+// Packet: 0x0923
+packetLen(0x0923, 2)
+
+// Packet: 0x0924
+packetLen(0x0924, 2)
+
+// Packet: 0x0925
+packetLen(0x0925, 2)
+
+// Packet: 0x0926
+packetLen(0x0926, 2)
+
+// Packet: 0x0927
+packetLen(0x0927, 2)
+
+// Packet: 0x0928
+packetLen(0x0928, 2)
+
+// Packet: 0x0929
+packetLen(0x0929, 2)
+
+// Packet: 0x092a
+packetLen(0x092a, 2)
+
+// Packet: 0x092b
+packetLen(0x092b, 2)
+
+// Packet: 0x092c
+packetLen(0x092c, 2)
+
+// Packet: 0x092d
+packetLen(0x092d, 2)
+
+// Packet: 0x092e
+packetLen(0x092e, 2)
+
+// Packet: 0x092f
+packetLen(0x092f, 2)
+
+// Packet: 0x0930
+packetLen(0x0930, 2)
+
+// Packet: 0x0931
+packetLen(0x0931, 2)
+
+// Packet: 0x0932
+packetLen(0x0932, 2)
+
+// Packet: 0x0933
+packetLen(0x0933, 2)
+
+// Packet: 0x0934
+packetLen(0x0934, 2)
+
+// Packet: 0x0935
+packetLen(0x0935, 2)
+
+// Packet: 0x0936
+packetLen(0x0936, 2)
+
+// Packet: 0x0937
+packetLen(0x0937, 2)
+
+// Packet: 0x0938
+packetLen(0x0938, 2)
+
+// Packet: 0x0939
+packetLen(0x0939, 2)
+
+// Packet: 0x093a
+packetLen(0x093a, 2)
+
+// Packet: 0x093b
+packetLen(0x093b, 2)
+
+// Packet: 0x093c
+packetLen(0x093c, 2)
+
+// Packet: 0x093d
+packetLen(0x093d, 2)
+
+// Packet: 0x093e
+packetLen(0x093e, 2)
+
+// Packet: 0x093f
+packetLen(0x093f, 2)
+
+// Packet: 0x0940
+packetLen(0x0940, 2)
+
+// Packet: 0x0941
+packetLen(0x0941, 2)
+
+// Packet: 0x0942
+packetLen(0x0942, 2)
+
+// Packet: 0x0943
+packetLen(0x0943, 2)
+
+// Packet: 0x0944
+packetLen(0x0944, 2)
+
+// Packet: 0x0945
+packetLen(0x0945, 2)
+
+// Packet: 0x0946
+packetLen(0x0946, 2)
+
+// Packet: 0x0947
+packetLen(0x0947, 2)
+
+// Packet: 0x0948
+packetLen(0x0948, 2)
+
+// Packet: 0x0949
+packetLen(0x0949, 2)
+
+// Packet: 0x094a
+packetLen(0x094a, 2)
+
+// Packet: 0x094b
+packetLen(0x094b, 2)
+
+// Packet: 0x094c
+packetLen(0x094c, 2)
+
+// Packet: 0x094d
+packetLen(0x094d, 2)
+
+// Packet: 0x094e
+packetLen(0x094e, 2)
+
+// Packet: 0x094f
+packetLen(0x094f, 2)
+
+// Packet: 0x0950
+packetLen(0x0950, 2)
+
+// Packet: 0x0951
+packetLen(0x0951, 2)
+
+// Packet: 0x0952
+packetLen(0x0952, 2)
+
+// Packet: 0x0953
+packetLen(0x0953, 2)
+
+// Packet: 0x0954
+packetLen(0x0954, 2)
+
+// Packet: 0x0955
+packetLen(0x0955, 2)
+
+// Packet: 0x0956
+packetLen(0x0956, 2)
+
+// Packet: 0x0957
+packetLen(0x0957, 2)
+
+// Packet: 0x0958
+packetLen(0x0958, 2)
+
+// Packet: 0x0959
+packetLen(0x0959, 2)
+
+// Packet: 0x095a
+packetLen(0x095a, 2)
+
+// Packet: 0x095b
+packetLen(0x095b, 2)
+
+// Packet: 0x095c
+packetLen(0x095c, 2)
+
+// Packet: 0x095d
+packetLen(0x095d, 2)
+
+// Packet: 0x095e
+packetLen(0x095e, 2)
+
+// Packet: 0x095f
+packetLen(0x095f, 2)
+
+// Packet: 0x0960
+packetLen(0x0960, 2)
+
+// Packet: 0x0961
+packetLen(0x0961, 2)
+
+// Packet: 0x0962
+packetLen(0x0962, 2)
+
+// Packet: 0x0963
+packetLen(0x0963, 2)
+
+// Packet: 0x0964
+packetLen(0x0964, 2)
+
+// Packet: 0x0965
+packetLen(0x0965, 2)
+
+// Packet: 0x0966
+packetLen(0x0966, 2)
+
+// Packet: 0x0967
+packetLen(0x0967, 2)
+
+// Packet: 0x0968
+packetLen(0x0968, 2)
+
+// Packet: 0x0969
+packetLen(0x0969, 2)
+
+// Packet: 0x096a
+packetLen(0x096a, 2)
+
+// Packet: 0x096b
+packetLen(0x096b, 4)
+
+// Packet: 0x096c
+packetLen(0x096c, 6)
+
+// Packet: 0x096d
+packetLen(0x096d, -1)
+
+// Packet: 0x096e
+packetLen(0x096e, -1)
+
+// Packet: 0x096f
+packetLen(0x096f, 7)
+
+// Packet: 0x0970
+packetLen(0x0970, 31)
+
+// Packet: 0x0971
+packetLen(0x0971, 6)
+
+// Packet: 0x0972
+packetLen(0x0972, -1)
+
+// Packet: 0x0973
+packetLen(0x0973, 7)
+
+// Packet: 0x0974
+packetLen(0x0974, 2)
+
+// Packet: 0x0975
+packetLen(0x0975, -1)
+
+// Packet: 0x0976
+packetLen(0x0976, -1)
+
+// Packet: 0x0977
+packetLen(0x0977, 14)
+
+// Packet: 0x0978
+packetLen(0x0978, 6)
+
+// Packet: 0x0979
+packetLen(0x0979, 50)
+
+// Packet: 0x097a
+packetLen(0x097a, -1)
+
+// Packet: 0x097b
+packetLen(0x097b, -1)
+
+// Packet: 0x097c
+packetLen(0x097c, 4)
+
+// Packet: 0x097d
+packetLen(0x097d, 288)
+
+// Packet: 0x097e
+packetLen(0x097e, 12)
+
+// Packet: 0x097f
+packetLen(0x097f, -1)
+
+// Packet: 0x0980
+packetLen(0x0980, 7)
+
+// Packet: 0x0981
+packetLen(0x0981, -1)
+
+// Packet: 0x0982
+packetLen(0x0982, 7)
+
+// Packet: 0x0983
+packetLen(0x0983, 29)
+
+// Packet: 0x0984
+packetLen(0x0984, 28)
+
+// Packet: 0x0985
+packetLen(0x0985, -1)
+
+// Packet: 0x0986
+packetLen(0x0986, 10)
+
+// Packet: 0x0987
+packetLen(0x0987, -1)
+
+// Packet: 0x0988
+packetLen(0x0988, 6)
+
+// Packet: 0x0989
+packetLen(0x0989, 2)
+
+// Packet: 0x098a
+packetLen(0x098a, -1)
+
+// Packet: 0x098b
+packetLen(0x098b, 2)
+
+// Packet: 0x098c
+packetLen(0x098c, 4)
+
+// Packet: 0x098d
+packetLen(0x098d, -1)
+
+// Packet: 0x098e
+packetLen(0x098e, -1)
+
+// Packet: 0x098f
+packetLen(0x098f, -1)
+
+// Packet: 0x0990
+packetLen(0x0990, 41)
+
+// Packet: 0x0991
+packetLen(0x0991, -1)
+
+// Packet: 0x0992
+packetLen(0x0992, -1)
+
+// Packet: 0x0993
+packetLen(0x0993, -1)
+
+// Packet: 0x0994
+packetLen(0x0994, -1)
+
+// Packet: 0x0995
+packetLen(0x0995, -1)
+
+// Packet: 0x0996
+packetLen(0x0996, -1)
+
+// Packet: 0x0997
+packetLen(0x0997, -1)
+
+// Packet: 0x0998
+packetLen(0x0998, 8)
+
+// Packet: 0x0999
+packetLen(0x0999, 11)
+
+// Packet: 0x099a
+packetLen(0x099a, 9)
+
+// Packet: 0x099b
+packetLen(0x099b, 8)
+
+// Packet: 0x099c
+packetLen(0x099c, 6)
+
+// Packet: 0x099d
+packetLen(0x099d, -1)
+
+// Packet: 0x099e
+packetLen(0x099e, 12)
+
+// Packet: 0x099f
+packetLen(0x099f, -1)
+
+// Packet: 0x09a0
+packetLen(0x09a0, 6)
+
+// Packet: 0x09a1
+packetLen(0x09a1, 2)
+
+// Packet: 0x09a2
+packetLen(0x09a2, 6)
+
+// Packet: 0x09a3
+packetLen(0x09a3, -1)
+
+// Packet: 0x09a4
+packetLen(0x09a4, 18)
+
+// Packet: 0x09a5
+packetLen(0x09a5, 7)
+
+// Packet: 0x09a6
+packetLen(0x09a6, 12)
+
+// Packet: 0x09a7
+packetLen(0x09a7, 10)
+
+// Packet: 0x09a8
+packetLen(0x09a8, 16)
+
+// Packet: 0x09a9
+packetLen(0x09a9, 10)
+
+// Packet: 0x09aa
+packetLen(0x09aa, 16)
+
+// Packet: 0x09ab
+packetLen(0x09ab, 6)
+
+// Packet: 0x09ac
+packetLen(0x09ac, -1)
+
+// Packet: 0x09ad
+packetLen(0x09ad, 12)
+
+// Packet: 0x09ae
+packetLen(0x09ae, 19)
+
+// Packet: 0x09af
+packetLen(0x09af, 4)
+
+// Packet: 0x09b0
+packetLen(0x09b0, 10)
+
+// Packet: 0x09b1
+packetLen(0x09b1, 4)
+
+// Packet: 0x09b2
+packetLen(0x09b2, 10)
+
+// Packet: 0x09b3
+packetLen(0x09b3, 6)
+
+// Packet: 0x09b4
+packetLen(0x09b4, 6)
+
+// Packet: 0x09b5
+packetLen(0x09b5, 2)
+
+// Packet: 0x09b6
+packetLen(0x09b6, 6)
+
+// Packet: 0x09b7
+packetLen(0x09b7, 4)
+
+// Packet: 0x09b8
+packetLen(0x09b8, 6)
+
+// Packet: 0x09b9
+packetLen(0x09b9, 4)
+
+// Packet: 0x09ba
+packetLen(0x09ba, 2)
+
+// Packet: 0x09bb
+packetLen(0x09bb, 6)
+
+// Packet: 0x09bc
+packetLen(0x09bc, 6)
+
+// Packet: 0x09bd
+packetLen(0x09bd, 2)
+
+// Packet: 0x09be
+packetLen(0x09be, 2)
+
+// Packet: 0x09bf
+packetLen(0x09bf, 4)
+
+// Packet: 0x09c1
+packetLen(0x09c1, 10)
+
+// Packet: 0x09c2
+packetLen(0x09c2, -1)
+
+// Packet: 0x09c3
+packetLen(0x09c3, 10)
+
+// Packet: 0x09c4
+packetLen(0x09c4, 10)
+
+// Packet: 0x09c5
+packetLen(0x09c5, 1042)
+
+// Packet: 0x09c6
+packetLen(0x09c6, -1)
+
+// Packet: 0x09c7
+packetLen(0x09c7, 18)
+
+// Packet: 0x09c8
+packetLen(0x09c8, -1)
+
+// Packet: 0x09c9
+packetLen(0x09c9, -1)
+
+// Packet: 0x09ca
+packetLen(0x09ca, -1)
+
+// Packet: 0x09cb
+packetLen(0x09cb, 17)
+
+// Packet: 0x09cc
+packetLen(0x09cc, -1)
+
+// Packet: 0x09cd
+packetLen(0x09cd, 8)
+
+// Packet: 0x09ce
+packetLen(0x09ce, 102)
+
+// Packet: 0x09cf
+packetLen(0x09cf, -1)
+
+// Packet: 0x09d0
+packetLen(0x09d0, -1)
+
+// Packet: 0x09d1
+packetLen(0x09d1, 14)
+
+// Packet: 0x09d2
+packetLen(0x09d2, -1)
+
+// Packet: 0x09d3
+packetLen(0x09d3, -1)
+
+// Packet: 0x09d4
+packetLen(0x09d4, 2)
+
+// Packet: 0x09d5
+packetLen(0x09d5, -1)
+
+// Packet: 0x09d6
+packetLen(0x09d6, -1)
+
+// Packet: 0x09d7
+packetLen(0x09d7, -1)
+
+// Packet: 0x09d8
+packetLen(0x09d8, 2)
+
+// Packet: 0x09d9
+packetLen(0x09d9, 4)
+
+// Packet: 0x09da
+packetLen(0x09da, -1)
+
+// Packet: 0x09db
+packetLen(0x09db, -1)
+
+// Packet: 0x09dc
+packetLen(0x09dc, -1)
+
+// Packet: 0x09dd
+packetLen(0x09dd, -1)
+
+// Packet: 0x09de
+packetLen(0x09de, -1)
+
+// Packet: 0x09df
+packetLen(0x09df, 7)
+
+// Packet: 0x09e0
+packetLen(0x09e0, -1)
+
+// Packet: 0x09e1
+packetLen(0x09e1, 8)
+
+// Packet: 0x09e2
+packetLen(0x09e2, 8)
+
+// Packet: 0x09e3
+packetLen(0x09e3, 8)
+
+// Packet: 0x09e4
+packetLen(0x09e4, 8)
+
+// Packet: 0x09e5
+packetLen(0x09e5, 18)
+
+// Packet: 0x09e6
+packetLen(0x09e6, 24)
+
+// Packet: 0x09e7
+packetLen(0x09e7, 3)
+
+// Packet: 0x09e8
+packetLen(0x09e8, 11)
+
+// Packet: 0x09e9
+packetLen(0x09e9, 2)
+
+// Packet: 0x09ea
+packetLen(0x09ea, 11)
+
+// Packet: 0x09eb
+packetLen(0x09eb, -1)
+
+// Packet: 0x09ec
+packetLen(0x09ec, -1)
+
+// Packet: 0x09ed
+packetLen(0x09ed, 3)
+
+// Packet: 0x09ee
+packetLen(0x09ee, 11)
+
+// Packet: 0x09ef
+packetLen(0x09ef, 11)
+
+// Packet: 0x09f0
+packetLen(0x09f0, -1)
+
+// Packet: 0x09f1
+packetLen(0x09f1, 11)
+
+// Packet: 0x09f2
+packetLen(0x09f2, 12)
+
+// Packet: 0x09f3
+packetLen(0x09f3, 11)
+
+// Packet: 0x09f4
+packetLen(0x09f4, 12)
+
+// Packet: 0x09f5
+packetLen(0x09f5, 11)
+
+// Packet: 0x09f6
+packetLen(0x09f6, 11)
+
+// Packet: 0x09f7
+packetLen(0x09f7, 77)
+
+// Packet: 0x09f8
+packetLen(0x09f8, -1)
+
+// Packet: 0x09f9
+packetLen(0x09f9, 143)
+
+// Packet: 0x09fa
+packetLen(0x09fa, -1)
+
+// Packet: 0x09fb
+packetLen(0x09fb, -1)
+
+// Packet: 0x09fc
+packetLen(0x09fc, 6)
+
+// Packet: 0x09fd
+packetLen(0x09fd, -1)
+
+// Packet: 0x09fe
+packetLen(0x09fe, -1)
+
+// Packet: 0x09ff
+packetLen(0x09ff, -1)
+
+// Packet: 0x0a00
+packetLen(0x0a00, 269)
+
+// Packet: 0x0a01
+packetLen(0x0a01, 3)
+
+// Packet: 0x0a02
+packetLen(0x0a02, 4)
+
+// Packet: 0x0a03
+packetLen(0x0a03, 2)
+
+// Packet: 0x0a04
+packetLen(0x0a04, 6)
+
+// Packet: 0x0a05
+packetLen(0x0a05, 63)
+
+// Packet: 0x0a06
+packetLen(0x0a06, 6)
+
+// Packet: 0x0a07
+packetLen(0x0a07, 9)
+
+// Packet: 0x0a08
+packetLen(0x0a08, 26)
+
+// Packet: 0x0a09
+packetLen(0x0a09, 55)
+
+// Packet: 0x0a0a
+packetLen(0x0a0a, 57)
+
+// Packet: 0x0a0b
+packetLen(0x0a0b, 57)
+
+// Packet: 0x0a0c
+packetLen(0x0a0c, 66)
+
+// Packet: 0x0a0d
+packetLen(0x0a0d, -1)
+
+// Packet: 0x0a0e
+packetLen(0x0a0e, 14)
+
+// Packet: 0x0a0f
+packetLen(0x0a0f, -1)
+
+// Packet: 0x0a10
+packetLen(0x0a10, -1)
+
+// Packet: 0x0a11
+packetLen(0x0a11, -1)
+
+// Packet: 0x0a12
+packetLen(0x0a12, 27)
+
+// Packet: 0x0a13
+packetLen(0x0a13, 26)
+
+// Packet: 0x0a14
+packetLen(0x0a14, 10)
+
+// Packet: 0x0a15
+packetLen(0x0a15, 12)
+
+// Packet: 0x0a16
+packetLen(0x0a16, 26)
+
+// Packet: 0x0a17
+packetLen(0x0a17, 6)
+
+// Packet: 0x0a18
+packetLen(0x0a18, 14)
+
+// Packet: 0x0a19
+packetLen(0x0a19, 2)
+
+// Packet: 0x0a1a
+packetLen(0x0a1a, 25)
+
+// Packet: 0x0a1b
+packetLen(0x0a1b, 2)
+
+// Packet: 0x0a1c
+packetLen(0x0a1c, -1)
+
+// Packet: 0x0a1d
+packetLen(0x0a1d, 2)
+
+// Packet: 0x0a1e
+packetLen(0x0a1e, 3)
+
+// Packet: 0x0a1f
+packetLen(0x0a1f, 2)
+
+// Packet: 0x0a20
+packetLen(0x0a20, 23)
+
+// Packet: 0x0a21
+packetLen(0x0a21, 3)
+
+// Packet: 0x0a22
+packetLen(0x0a22, 7)
+
+// Packet: 0x0a23
+packetLen(0x0a23, -1)
+
+// Packet: 0x0a24
+packetLen(0x0a24, 66)
+
+// Packet: 0x0a25
+packetLen(0x0a25, 6)
+
+// Packet: 0x0a26
+packetLen(0x0a26, 7)
+
+// Packet: 0x0a27
+packetLen(0x0a27, 8)
+
+// Packet: 0x0a28
+packetLen(0x0a28, 3)
+
+// Packet: 0x0a29
+packetLen(0x0a29, 6)
+
+// Packet: 0x0a2a
+packetLen(0x0a2a, 6)
+
+// Packet: 0x0a2b
+packetLen(0x0a2b, 14)
+
+// Packet: 0x0a2c
+packetLen(0x0a2c, 12)
+
+// Packet: 0x0a2d
+packetLen(0x0a2d, -1)
+
+// Packet: 0x0a2e
+packetLen(0x0a2e, 6)
+
+// Packet: 0x0a2f
+packetLen(0x0a2f, 7)
+
+// Packet: 0x0a30
+packetLen(0x0a30, 106)
+
+// Packet: 0x0a31
+packetLen(0x0a31, -1)
+
+// Packet: 0x0a32
+packetLen(0x0a32, 2)
+
+// Packet: 0x0a33
+packetLen(0x0a33, 7)
+
+// Packet: 0x0a34
+packetLen(0x0a34, 6)
+
+// Packet: 0x0a35
+packetLen(0x0a35, 4)
+
+// Packet: 0x0a36
+packetLen(0x0a36, 7)
+
+// Packet: 0x0a37
+packetLen(0x0a37, 69)
+
+// Packet: 0x0a38
+packetLen(0x0a38, 3)
+
+// Packet: 0x0a39
+packetLen(0x0a39, 36)
+
+// Packet: 0x0a3a
+packetLen(0x0a3a, 12)
+
+// Packet: 0x0a3b
+packetLen(0x0a3b, -1)
+
+// Packet: 0x0a3c
+packetLen(0x0a3c, -1)
+
+// Packet: 0x0a3d
+packetLen(0x0a3d, 20)
+
+// Packet: 0x0a3e
+packetLen(0x0a3e, -1)
+
+// Packet: 0x0a3f
+packetLen(0x0a3f, 11)
+
+// Packet: 0x0a40
+packetLen(0x0a40, 11)
+
+// Packet: 0x0a41
+packetLen(0x0a41, 18)
+
+// Packet: 0x0a42
+packetLen(0x0a42, 43)
+
+// Packet: 0x0a43
+packetLen(0x0a43, 85)
+
+// Packet: 0x0a44
+packetLen(0x0a44, -1)
+
+// Packet: 0x0a46
+packetLen(0x0a46, 14)
+
+// Packet: 0x0a47
+packetLen(0x0a47, 3)
+
+// Packet: 0x0a48
+packetLen(0x0a48, 2)
+
+// Packet: 0x0a49
+packetLen(0x0a49, 22)
+
+// Packet: 0x0a4a
+packetLen(0x0a4a, 6)
+
+// Packet: 0x0a4b
+packetLen(0x0a4b, 22)
+
+// Packet: 0x0a4c
+packetLen(0x0a4c, 28)
+
+// Packet: 0x0a4d
+packetLen(0x0a4d, -1)
+
+// Packet: 0x0a4e
+packetLen(0x0a4e, 6)
+
+// Packet: 0x0a4f
+packetLen(0x0a4f, -1)
+
+// Packet: 0x0a50
+packetLen(0x0a50, 4)
+
+// Packet: 0x0a51
+packetLen(0x0a51, 34)
+
+// Packet: 0x0a52
+packetLen(0x0a52, 20)
+
+// Packet: 0x0a53
+packetLen(0x0a53, 10)
+
+// Packet: 0x0a54
+packetLen(0x0a54, -1)
+
+// Packet: 0x0a55
+packetLen(0x0a55, 2)
+
+// Packet: 0x0a56
+packetLen(0x0a56, 6)
+
+// Packet: 0x0a57
+packetLen(0x0a57, 6)
+
+// Packet: 0x0a58
+packetLen(0x0a58, 8)
+
+// Packet: 0x0a59
+packetLen(0x0a59, -1)
+
+// Packet: 0x0a5a
+packetLen(0x0a5a, 2)
+
+// Packet: 0x0a5b
+packetLen(0x0a5b, 7)
+
+// Packet: 0x0a5c
+packetLen(0x0a5c, 18)
+
+// Packet: 0x0a5d
+packetLen(0x0a5d, 6)
+
+// Packet: 0x0a68
+packetLen(0x0a68, 3)
+
+// Packet: 0x0a69
+packetLen(0x0a69, 6)
+
+// Packet: 0x0a6a
+packetLen(0x0a6a, 12)
+
+// Packet: 0x0a6b
+packetLen(0x0a6b, -1)
+
+// Packet: 0x0a6c
+packetLen(0x0a6c, 7)
+
+// Packet: 0x0a6d
+packetLen(0x0a6d, -1)
+
+// Packet: 0x0a6e
+packetLen(0x0a6e, -1)
+
+// Packet: 0x0a6f
+packetLen(0x0a6f, -1)
+
+// Packet: 0x0a70
+packetLen(0x0a70, 2)
+
+// Packet: 0x0a71
+packetLen(0x0a71, -1)
+
+// Packet: 0x0a72
+packetLen(0x0a72, 61)
+
+// Packet: 0x0a73
+packetLen(0x0a73, 2)
+
+// Packet: 0x0a74
+packetLen(0x0a74, 8)
+
+// Packet: 0x0a76
+packetLen(0x0a76, 80)
+
+// Packet: 0x0a77
+packetLen(0x0a77, 15)
+
+// Packet: 0x0a78
+packetLen(0x0a78, 15)
+
+// Packet: 0x0a79
+packetLen(0x0a79, -1)
+
+// Packet: 0x0a7b
+packetLen(0x0a7b, -1)
+
+// Packet: 0x0a7c
+packetLen(0x0a7c, -1)
+
+// Packet: 0x0a7d
+packetLen(0x0a7d, -1)
+
+// Packet: 0x0a7e
+packetLen(0x0a7e, -1)
+
+// Packet: 0x0a7f
+packetLen(0x0a7f, -1)
+
+// Packet: 0x0a80
+packetLen(0x0a80, 6)
+
+// Packet: 0x0a81
+packetLen(0x0a81, 4)
+
+// Packet: 0x0a82
+packetLen(0x0a82, 46)
+
+// Packet: 0x0a83
+packetLen(0x0a83, 46)
+
+// Packet: 0x0a84
+packetLen(0x0a84, 94)
+
+// Packet: 0x0a85
+packetLen(0x0a85, 82)
+
+// Packet: 0x0a86
+packetLen(0x0a86, -1)
+
+// Packet: 0x0a87
+packetLen(0x0a87, -1)
+
+// Packet: 0x0a88
+packetLen(0x0a88, 2)
+
+// Packet: 0x0a89
+packetLen(0x0a89, 61)
+
+// Packet: 0x0a8a
+packetLen(0x0a8a, 6)
+
+// Packet: 0x0a8b
+packetLen(0x0a8b, 2)
+
+// Packet: 0x0a8c
+packetLen(0x0a8c, 2)
+
+// Packet: 0x0a8d
+packetLen(0x0a8d, -1)
+
+// Packet: 0x0a8e
+packetLen(0x0a8e, 2)
+
+// Packet: 0x0a8f
+packetLen(0x0a8f, 2)
+
+// Packet: 0x0a90
+packetLen(0x0a90, 3)
+
+// Packet: 0x0a91
+packetLen(0x0a91, -1)
+
+// Packet: 0x0a92
+packetLen(0x0a92, -1)
+
+// Packet: 0x0a93
+packetLen(0x0a93, 3)
+
+// Packet: 0x0a94
+packetLen(0x0a94, 2)
+
+// Packet: 0x0a95
+packetLen(0x0a95, 4)
+
+// Packet: 0x0a96
+packetLen(0x0a96, 61)
+
+// Packet: 0x0a97
+packetLen(0x0a97, 8)
+
+// Packet: 0x0a98
+packetLen(0x0a98, 10)
+
+// Packet: 0x0a99
+packetLen(0x0a99, 4)
+
+// Packet: 0x0a9a
+packetLen(0x0a9a, 10)
+
+// Packet: 0x0a9b
+packetLen(0x0a9b, -1)
+
+// Packet: 0x0a9c
+packetLen(0x0a9c, 2)
+
+// Packet: 0x0a9d
+packetLen(0x0a9d, 4)
+
+// Packet: 0x0a9e
+packetLen(0x0a9e, 2)
+
+// Packet: 0x0a9f
+packetLen(0x0a9f, 2)
+
+// Packet: 0x0aa0
+packetLen(0x0aa0, 2)
+
+// Packet: 0x0aa1
+packetLen(0x0aa1, 4)
+
+// Packet: 0x0aa2
+packetLen(0x0aa2, -1)
+
+// Packet: 0x0aa3
+packetLen(0x0aa3, 9)
+
+// Packet: 0x0aa4
+packetLen(0x0aa4, 2)
+
+// Packet: 0x0aa5
+packetLen(0x0aa5, -1)
+
+// Packet: 0x0aa6
+packetLen(0x0aa6, 36)
+
+// Packet: 0x0aa7
+packetLen(0x0aa7, 6)
+
+// Packet: 0x0aa8
+packetLen(0x0aa8, 5)
+
+// Packet: 0x0aa9
+packetLen(0x0aa9, -1)
+
+// Packet: 0x0aaa
+packetLen(0x0aaa, -1)
+
+// Packet: 0x0aab
+packetLen(0x0aab, -1)
+
+// Packet: 0x0aac
+packetLen(0x0aac, 69)
+
+// Packet: 0x0aad
+packetLen(0x0aad, 51)
+
+// Packet: 0x0aae
+packetLen(0x0aae, 2)
+
+// Packet: 0x0aaf
+packetLen(0x0aaf, 6)
+
+// Packet: 0x0ab0
+packetLen(0x0ab0, 6)
+
+// Packet: 0x0ab1
+packetLen(0x0ab1, 14)
+
+// Packet: 0x0ab2
+packetLen(0x0ab2, 7)
+
+// Packet: 0x0ab3
+packetLen(0x0ab3, 19)
+
+// Packet: 0x0ab4
+packetLen(0x0ab4, 6)
+
+// Packet: 0x0ab5
+packetLen(0x0ab5, 2)
+
+// Packet: 0x0ab6
+packetLen(0x0ab6, 8)
+
+// Packet: 0x0ab7
+packetLen(0x0ab7, 4)
+
+// Packet: 0x0ab8
+packetLen(0x0ab8, 2)
+
+// Packet: 0x0ab9
+packetLen(0x0ab9, 47)
+
+// Packet: 0x0aba
+packetLen(0x0aba, 2)
+
+// Packet: 0x0abb
+packetLen(0x0abb, 2)
+
+// Packet: 0x0abc
+packetLen(0x0abc, -1)
+
+// Packet: 0x0abd
+packetLen(0x0abd, 10)
+
+// Packet: 0x0abe
+packetLen(0x0abe, -1)
+
+// Packet: 0x0abf
+packetLen(0x0abf, -1)
+
+// Packet: 0x0ac0
+packetLen(0x0ac0, 26)
+
+// Packet: 0x0ac1
+packetLen(0x0ac1, 26)
+
+// Packet: 0x0ac2
+packetLen(0x0ac2, -1)
+
+// Packet: 0x0ac3
+packetLen(0x0ac3, 2)
+
+// Packet: 0x0ac4
+packetLen(0x0ac4, -1)
+
+// Packet: 0x0ac5
+packetLen(0x0ac5, 156)
+
+// Packet: 0x0ac6
+packetLen(0x0ac6, 156)
+
+// Packet: 0x0ac7
+packetLen(0x0ac7, 156)
+
+// Packet: 0x0ac8
+packetLen(0x0ac8, 2)
+
+// Packet: 0x0ac9
+packetLen(0x0ac9, -1)
+
+// Packet: 0x0aca
+packetLen(0x0aca, 3)
+
+// Packet: 0x0acb
+packetLen(0x0acb, 12)
+
+// Packet: 0x0acc
+packetLen(0x0acc, 18)
+
+// Packet: 0x0acd
+packetLen(0x0acd, 23)
+
+// Packet: 0x0ace
+packetLen(0x0ace, 4)
+
+// Packet: 0x0acf
+packetLen(0x0acf, 68)
+
+// Packet: 0x0ad0
+packetLen(0x0ad0, 11)
+
+// Packet: 0x0ad1
+packetLen(0x0ad1, -1)
+
+// Packet: 0x0ad2
+packetLen(0x0ad2, 30)
+
+// Packet: 0x0ad3
+packetLen(0x0ad3, -1)
+
+// Packet: 0x0ad4
+packetLen(0x0ad4, -1)
+
+// Packet: 0x0ad5
+packetLen(0x0ad5, 2)
+
+// Packet: 0x0ad6
+packetLen(0x0ad6, 2)
+
+// Packet: 0x0ad7
+packetLen(0x0ad7, 8)
+
+// Packet: 0x0ad8
+packetLen(0x0ad8, 8)
+
+// Packet: 0x0ad9
+packetLen(0x0ad9, -1)
+
+// Packet: 0x0ada
+packetLen(0x0ada, 32)
+
+// Packet: 0x0adb
+packetLen(0x0adb, -1)
+
+// Packet: 0x0adc
+packetLen(0x0adc, 6)
+
+// Packet: 0x0add
+packetLen(0x0add, 24)
+
+// Packet: 0x0ade
+packetLen(0x0ade, 6)
+
+// Packet: 0x0adf
+packetLen(0x0adf, 58)
+
+// Packet: 0x0ae0
+packetLen(0x0ae0, 30)
+
+// Packet: 0x0ae1
+packetLen(0x0ae1, 28)
+
+// Packet: 0x0ae2
+packetLen(0x0ae2, 7)
+
+// Packet: 0x0ae3
+packetLen(0x0ae3, -1)
+
+// Packet: 0x0ae4
+packetLen(0x0ae4, 89)
+
+// Packet: 0x0ae5
+packetLen(0x0ae5, -1)
+
+// Packet: 0x0ae6
+packetLen(0x0ae6, 10)
+
+// Packet: 0x0ae7
+packetLen(0x0ae7, 38)
+
+// Packet: 0x0ae8
+packetLen(0x0ae8, 2)
+
+// Packet: 0x0ae9
+packetLen(0x0ae9, 13)
+
+// Packet: 0x0aec
+packetLen(0x0aec, 2)
+
+// Packet: 0x0aed
+packetLen(0x0aed, 2)
+
+// Packet: 0x0aee
+packetLen(0x0aee, 2)
+
+// Packet: 0x0aef
+packetLen(0x0aef, 2)
+
+// Packet: 0x0af0
+packetLen(0x0af0, 10)
+
+// Packet: 0x0af2
+packetLen(0x0af2, 40)
+
+// Packet: 0x0af3
+packetLen(0x0af3, -1)
+
+// Packet: 0x0af4
+packetLen(0x0af4, 11)
+
+// Packet: 0x0af5
+packetLen(0x0af5, 3)
+
+// Packet: 0x0af6
+packetLen(0x0af6, 88)
+
+// Packet: 0x0af7
+packetLen(0x0af7, 32)
+
+// Packet: 0x0af8
+packetLen(0x0af8, 11)
+
+// Packet: 0x0af9
+packetLen(0x0af9, 6)
+
+// Packet: 0x0afa
+packetLen(0x0afa, 58)
+
+// Packet: 0x0afb
+packetLen(0x0afb, -1)
+
+// Packet: 0x0afc
+packetLen(0x0afc, 16)
+
+// Packet: 0x0afd
+packetLen(0x0afd, -1)
+
+// Packet: 0x0afe
+packetLen(0x0afe, -1)
+
+// Packet: 0x0aff
+packetLen(0x0aff, -1)
+
+// Packet: 0x0b00
+packetLen(0x0b00, 8)
+
+// Packet: 0x0b01
+packetLen(0x0b01, 56)
+
+// Packet: 0x0b02
+packetLen(0x0b02, 26)
+
+// Packet: 0x0b03
+packetLen(0x0b03, -1)
+
+// Packet: 0x0b04
+packetLen(0x0b04, 90)
+
+// Packet: 0x0b05
+packetLen(0x0b05, 63)
+
+// Packet: 0x0b07
+packetLen(0x0b07, -1)
+
+// Packet: 0x0b08
+packetLen(0x0b08, -1)
+
+// Packet: 0x0b09
+packetLen(0x0b09, -1)
+
+// Packet: 0x0b0a
+packetLen(0x0b0a, -1)
+
+// Packet: 0x0b0b
+packetLen(0x0b0b, 4)
+
+// Packet: 0x0b0c
+packetLen(0x0b0c, 155)
+
+// Packet: 0x0b0d
+packetLen(0x0b0d, 10)
+
+// Packet: 0x0b0e
+packetLen(0x0b0e, -1)
+
+// Packet: 0x0b0f
+packetLen(0x0b0f, -1)
+
+// Packet: 0x0b10
+packetLen(0x0b10, 10)
+
+// Packet: 0x0b11
+packetLen(0x0b11, 4)
+
+// Packet: 0x0b12
+packetLen(0x0b12, 2)
+
+// Packet: 0x0b13
+packetLen(0x0b13, 48)
+
+// Packet: 0x0b14
+packetLen(0x0b14, 2)
+
+// Packet: 0x0b15
+packetLen(0x0b15, 7)
+
+// Packet: 0x0b16
+packetLen(0x0b16, 2)
+
+// Packet: 0x0b17
+packetLen(0x0b17, 3)
+
+// Packet: 0x0b18
+packetLen(0x0b18, 4)
+
+// Packet: 0x0b19
+packetLen(0x0b19, 2)
+
+// Packet: 0x0b1a
+packetLen(0x0b1a, 29)
+
+// Packet: 0x0b1b
+packetLen(0x0b1b, 2)
+
+// Packet: 0x0b1c
+packetLen(0x0b1c, 2)
+
+// Packet: 0x0b1d
+packetLen(0x0b1d, 2)
+
+// Packet: 0x0b1e
+packetLen(0x0b1e, 14)
+
+// Packet: 0x0b1f
+packetLen(0x0b1f, 14)
+
+// Packet: 0x0b20
+packetLen(0x0b20, 271)
+
+// Packet: 0x0b21
+packetLen(0x0b21, 13)
+
+// Packet: 0x0b22
+packetLen(0x0b22, 5)
+
+// Packet: 0x0b23
+packetLen(0x0b23, 6)
+
+// Packet: 0x0b24
+packetLen(0x0b24, 6)
+
+// Packet: 0x0b25
+packetLen(0x0b25, 6)
+
+// Packet: 0x0b27
+packetLen(0x0b27, -1)
+
+// Packet: 0x0b28
+packetLen(0x0b28, 3)
+
+// Packet: 0x0b2b
+packetLen(0x0b2b, 11)
+
+// Packet: 0x0b2c
+packetLen(0x0b2c, 3)
+
+// Packet: 0x0b2d
+packetLen(0x0b2d, 11)
+
+// Packet: 0x0b2e
+packetLen(0x0b2e, 4)
+
+// Packet: 0x0b2f
+packetLen(0x0b2f, 73)
+
+// Packet: 0x0b30
+packetLen(0x0b30, -1)
+
+// Packet: 0x0b31
+packetLen(0x0b31, 17)
+
+// Packet: 0x0b32
+packetLen(0x0b32, -1)
+
+// Packet: 0x0b33
+packetLen(0x0b33, 17)
+
+// Packet: 0x0b34
+packetLen(0x0b34, 50)
+
+// Packet: 0x0b35
+packetLen(0x0b35, 3)
+
+// Packet: 0x0b36
+packetLen(0x0b36, -1)
+
+// Packet: 0x0b37
+packetLen(0x0b37, -1)
+
+// Packet: 0x0b39
+packetLen(0x0b39, -1)
+
+// Packet: 0x0b3c
+packetLen(0x0b3c, 4)
+
+// Packet: 0x0b3d
+packetLen(0x0b3d, -1)
+
+// Packet: 0x0b3e
+packetLen(0x0b3e, -1)
+
+// Packet: 0x0b3f
+packetLen(0x0b3f, 64)
+
+// Packet: 0x0b40
+packetLen(0x0b40, -1)
+
+// Packet: 0x0b41
+packetLen(0x0b41, 70)
+
+// Packet: 0x0b42
+packetLen(0x0b42, 62)
+
+// Packet: 0x0b43
+packetLen(0x0b43, 48)
+
+// Packet: 0x0b44
+packetLen(0x0b44, 58)
+
+// Packet: 0x0b45
+packetLen(0x0b45, 58)
+
+// Packet: 0x0b46
+packetLen(0x0b46, 10)
+
+// Packet: 0x0b47
+packetLen(0x0b47, 14)
+
+// Packet: 0x0b48
+packetLen(0x0b48, 18)
+
+// Packet: 0x0b49
+packetLen(0x0b49, 4)
+
+// Packet: 0x0b4a
+packetLen(0x0b4a, 6)
+
+// Packet: 0x0b4b
+packetLen(0x0b4b, 4)
+
+// Packet: 0x0b4c
+packetLen(0x0b4c, 2)
+
+// Packet: 0x0b4d
+packetLen(0x0b4d, -1)
+
+// Packet: 0x0b4e
+packetLen(0x0b4e, -1)
+
+// Packet: 0x0b4f
+packetLen(0x0b4f, 2)
+
+// Packet: 0x0b50
+packetLen(0x0b50, 2)
+
+// Packet: 0x0b51
+packetLen(0x0b51, 2)
+
+// Packet: 0x0b52
+packetLen(0x0b52, 2)
+
+// Packet: 0x0b53
+packetLen(0x0b53, 52)
+
+// Packet: 0x0b54
+packetLen(0x0b54, 8)
+
+// Packet: 0x0b55
+packetLen(0x0b55, -1)
+
+// Packet: 0x0b56
+packetLen(0x0b56, -1)
+
+// Packet: 0x0b57
+packetLen(0x0b57, -1)
+
+// Packet: 0x0b58
+packetLen(0x0b58, 2)
+
+// Packet: 0x0b59
+packetLen(0x0b59, 4)
+
+// Packet: 0x0b5a
+packetLen(0x0b5a, -1)
+
+// Packet: 0x0b5b
+packetLen(0x0b5b, 14)
+
+// Packet: 0x0b5c
+packetLen(0x0b5c, 2)
+
+// Packet: 0x0b5d
+packetLen(0x0b5d, 10)
+
+// Packet: 0x0b5e
+packetLen(0x0b5e, 33)
+
+// Packet: 0x0b5f
+packetLen(0x0b5f, -1)
+
+// Packet: 0x0b60
+packetLen(0x0b60, -1)
+
+// Packet: 0x0b61
+packetLen(0x0b61, -1)
+
+// Packet: 0x0b62
+packetLen(0x0b62, -1)
+
+// Packet: 0x0b63
+packetLen(0x0b63, -1)
+
+// Packet: 0x0b64
+packetLen(0x0b64, -1)
+
+// Packet: 0x0b65
+packetLen(0x0b65, -1)
+
+// Packet: 0x0b66
+packetLen(0x0b66, 26)
+
+// Packet: 0x0b67
+packetLen(0x0b67, 33)
+
+// Packet: 0x0b68
+packetLen(0x0b68, 12)
+
+// Packet: 0x0b69
+packetLen(0x0b69, 18)
+
+// Packet: 0x0b6a
+packetLen(0x0b6a, -1)
+
+// Packet: 0x0b6b
+packetLen(0x0b6b, 14)
+
+// Packet: 0x0b6c
+packetLen(0x0b6c, 12)
+
+// Packet: 0x0b6d
+packetLen(0x0b6d, 6)
+
+// Packet: 0x0b6e
+packetLen(0x0b6e, 14)
+
+
+#endif /* COMMON_PACKETS2020_LEN_RE_H */
diff --git a/src/common/packets/packets_len_ad.h b/src/common/packets/packets_len_ad.h
index adfe65a76..2c5341f3c 100644
--- a/src/common/packets/packets_len_ad.h
+++ b/src/common/packets/packets_len_ad.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2019 Hercules Dev Team
- * Copyright (C) 2019 Andrei Karas (4144)
+ * Copyright (C) 2019-2020 Hercules Dev Team
+ * Copyright (C) 2019-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets_len_main.h b/src/common/packets/packets_len_main.h
index 49711994d..7b93b35b0 100644
--- a/src/common/packets/packets_len_main.h
+++ b/src/common/packets/packets_len_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2019 Hercules Dev Team
- * Copyright (C) 2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -24,7 +24,9 @@
/* This file is autogenerated, please do not commit manual changes */
-#if PACKETVER >= 20190000
+#if PACKETVER >= 20200000
+#include "common/packets/packets2020_len_main.h"
+#elif PACKETVER >= 20190000
#include "common/packets/packets2019_len_main.h"
#elif PACKETVER >= 20180000
#include "common/packets/packets2018_len_main.h"
diff --git a/src/common/packets/packets_len_re.h b/src/common/packets/packets_len_re.h
index 506a1ef80..23a507886 100644
--- a/src/common/packets/packets_len_re.h
+++ b/src/common/packets/packets_len_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2019 Hercules Dev Team
- * Copyright (C) 2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -24,7 +24,9 @@
/* This file is autogenerated, please do not commit manual changes */
-#if PACKETVER >= 20190000
+#if PACKETVER >= 20200000
+#include "common/packets/packets2020_len_re.h"
+#elif PACKETVER >= 20190000
#include "common/packets/packets2019_len_re.h"
#elif PACKETVER >= 20180000
#include "common/packets/packets2018_len_re.h"
diff --git a/src/common/packets/packets_len_sak.h b/src/common/packets/packets_len_sak.h
index e359ae1d2..324445cfe 100644
--- a/src/common/packets/packets_len_sak.h
+++ b/src/common/packets/packets_len_sak.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2019 Hercules Dev Team
- * Copyright (C) 2019 Andrei Karas (4144)
+ * Copyright (C) 2019-2020 Hercules Dev Team
+ * Copyright (C) 2019-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/packets/packets_len_zero.h b/src/common/packets/packets_len_zero.h
index 10295cac2..8e933e3d3 100644
--- a/src/common/packets/packets_len_zero.h
+++ b/src/common/packets/packets_len_zero.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2018-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2018-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 3684c1d9f..b82224206 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -8300,6 +8300,15 @@ ACMD(feelreset)
return true;
}
+// Reset hatred targets [Wolfie]
+ACMD(hatereset)
+{
+ pc->resethate(sd);
+ clif->message(fd, msg_fd(fd, 979)); // Reset 'Hatred' targets.
+
+ return true;
+}
+
/*==========================================
* AUCTION SYSTEM
*------------------------------------------*/
@@ -10201,6 +10210,7 @@ static void atcommand_basecommands(void)
ACMD_DEF(homshuffle),
ACMD_DEF(showmobs),
ACMD_DEF(feelreset),
+ ACMD_DEF(hatereset),
ACMD_DEF(auction),
ACMD_DEF(mail),
ACMD_DEF2("noks", ksprotection),
diff --git a/src/map/clif.c b/src/map/clif.c
index 31fb00c37..9da6a592e 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -11467,7 +11467,9 @@ static void clif_parse_ActionRequest_sub(struct map_session_data *sd, int action
{
struct npc_data *nd = map->id2nd(target_id);
if (nd != NULL) {
- npc->click(sd, nd);
+ if (sd->block_action.npc == 0) { // *pcblock script command
+ npc->click(sd, nd);
+ }
return;
}
@@ -11942,7 +11944,7 @@ static void clif_parse_NpcClicked(int fd, struct map_session_data *sd)
clif->clearunit_area(&sd->bl,CLR_DEAD);
return;
}
- if (sd->npc_id || sd->state.workinprogress & 2) {
+ if (sd->npc_id > 0 || (sd->state.workinprogress & 2) == 2 || sd->block_action.npc == 1) { // *pcblock script command
#if PACKETVER >= 20110308
clif->msgtable(sd, MSG_BUSY);
#else
@@ -16889,7 +16891,7 @@ static void clif_parse_Mail_getattach(int fd, struct map_session_data *sd)
if( sd->mail.inbox.msg[i].zeny < 1 && (sd->mail.inbox.msg[i].item.nameid < 1 || sd->mail.inbox.msg[i].item.amount < 1) )
return;
- if( sd->mail.inbox.msg[i].zeny + sd->status.zeny > MAX_ZENY ) {
+ if( sd->mail.inbox.msg[i].zeny > MAX_ZENY - sd->status.zeny ) {
clif->mail_getattachment(fd, 1);
return;
}
@@ -19982,34 +19984,65 @@ static void clif_parse_dull(int fd, struct map_session_data *sd)
return;
}
-static void clif_parse_CashShopOpen(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-static void clif_parse_CashShopOpen(int fd, struct map_session_data *sd)
+static void clif_parse_cashShopOpen1(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
+static void clif_parse_cashShopOpen1(int fd, struct map_session_data *sd)
{
-#if PACKETVER >= 20100824
if (sd->state.trading || pc_isdead(sd) || pc_isvending(sd))
return;
if (map->list[sd->bl.m].flag.nocashshop) {
- clif->messagecolor_self(fd, COLOR_RED, msg_fd(fd,1489)); //Cash Shop is disabled in this map
+ clif->messagecolor_self(fd, COLOR_RED, msg_fd(fd, 1489)); //Cash Shop is disabled in this map
+ return;
+ }
+
+ clif->cashShopOpen(fd, sd, 0);
+}
+
+static void clif_parse_cashShopLimitedReq(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
+static void clif_parse_cashShopLimitedReq(int fd, struct map_session_data *sd)
+{
+}
+
+static void clif_parse_cashShopOpen2(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
+static void clif_parse_cashShopOpen2(int fd, struct map_session_data *sd)
+{
+ if (sd->state.trading != 0 || pc_isdead(sd) || pc_isvending(sd))
+ return;
+
+ if (map->list[sd->bl.m].flag.nocashshop != 0) {
+ clif->messagecolor_self(fd, COLOR_RED, msg_fd(fd, 1489)); //Cash Shop is disabled in this map
return;
}
- WFIFOHEAD(fd, 10);
- WFIFOW(fd, 0) = 0x845;
- WFIFOL(fd, 2) = sd->cashPoints; //[Ryuuzaki] - switched positions to reflect proper values
- WFIFOL(fd, 6) = sd->kafraPoints;
- WFIFOSET(fd, 10);
+#if PACKETVER >= 20191224
+ const struct PACKET_CZ_SE_CASHSHOP_OPEN2 *p = RFIFOP(fd, 0);
+ clif->cashShopOpen(fd, sd, p->tab);
#endif
}
-static void clif_parse_CashShopClose(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-static void clif_parse_CashShopClose(int fd, struct map_session_data *sd)
+static void clif_cashShopOpen(int fd, struct map_session_data *sd, int tab)
+{
+#if PACKETVER_MAIN_NUM >= 20101123 || PACKETVER_RE_NUM >= 20120328 || PACKETVER_ZERO_NUM >= defined(PACKETVER_ZERO)
+ WFIFOHEAD(fd, sizeof(struct PACKET_ZC_SE_CASHSHOP_OPEN));
+ struct PACKET_ZC_SE_CASHSHOP_OPEN *p = WFIFOP(fd, 0);
+ p->packetType = HEADER_ZC_SE_CASHSHOP_OPEN;
+ p->cashPoints = sd->cashPoints; //[Ryuuzaki] - switched positions to reflect proper values
+ p->kafraPoints = sd->kafraPoints;
+#if PACKETVER_ZERO_NUM >= 20191224
+ p->tab = tab;
+#endif
+ WFIFOSET(fd, sizeof(struct PACKET_ZC_SE_CASHSHOP_OPEN));
+#endif
+}
+
+static void clif_parse_cashShopClose(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
+static void clif_parse_cashShopClose(int fd, struct map_session_data *sd)
{
/* TODO apply some state tracking */
}
-static void clif_parse_CashShopSchedule(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-static void clif_parse_CashShopSchedule(int fd, struct map_session_data *sd)
+static void clif_parse_cashShopSchedule(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
+static void clif_parse_cashShopSchedule(int fd, struct map_session_data *sd)
{
if (sd->state.trading || pc_isdead(sd) || pc_isvending(sd))
return;
@@ -20048,8 +20081,8 @@ void clif_cashShopSchedule(int fd, struct map_session_data *sd)
}
/// R 0848 <len>.W <limit>.W <kafra pay>.L (<item id>.L <amount>.L <tab>.W)*
-static void clif_parse_CashShopBuy(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
-static void clif_parse_CashShopBuy(int fd, struct map_session_data *sd)
+static void clif_parse_cashShopBuy(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
+static void clif_parse_cashShopBuy(int fd, struct map_session_data *sd)
{
if (sd->state.trading || pc_isdead(sd) || pc_isvending(sd))
return;
@@ -20108,7 +20141,7 @@ static void clif_parse_CashShopBuy(int fd, struct map_session_data *sd)
ret = pc->paycash(sd, clif->cs.data[tab][j]->price * qty, kafra_pay);// [Ryuuzaki] //changed Kafrapoints calculation. [Normynator]
if (ret < 0) {
- ShowError("clif_parse_CashShopBuy: The return from pc->paycash was negative which is not allowed.\n");
+ ShowError("clif_parse_cashShopBuy: The return from pc->paycash was negative which is not allowed.\n");
break; //This should never happen.
}
kafra_pay = ret;
@@ -20168,9 +20201,9 @@ static void clif_cashShopBuyAck(int fd, struct map_session_data *sd, int itemId,
#endif
}
-static void clif_parse_CashShopReqTab(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
+static void clif_parse_cashShopReqTab(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
/* [Ind/Hercules] */
-static void clif_parse_CashShopReqTab(int fd, struct map_session_data *sd)
+static void clif_parse_cashShopReqTab(int fd, struct map_session_data *sd)
{
// [4144] packet exists only in 2011 and was dropped after
#if PACKETVER >= 20110222 && PACKETVER < 20120000
@@ -20245,12 +20278,15 @@ static void clif_status_change2(struct block_list *bl, int tid, enum send_target
static void clif_partytickack(struct map_session_data *sd, bool flag)
{
+#if PACKETVER_MAIN_NUM >= 20070911 || defined(PACKETVER_RE) || PACKETVER_AD_NUM >= 20070911 || PACKETVER_SAK_NUM >= 20070904 || defined(PACKETVER_ZERO)
nullpo_retv(sd);
- WFIFOHEAD(sd->fd, packet_len(0x2c9));
- WFIFOW(sd->fd, 0) = 0x2c9;
- WFIFOB(sd->fd, 2) = flag;
- WFIFOSET(sd->fd, packet_len(0x2c9));
+ WFIFOHEAD(sd->fd, sizeof(struct PACKET_ZC_PARTY_CONFIG));
+ struct PACKET_ZC_PARTY_CONFIG *p = WFIFOP(sd->fd, 0);
+ p->packetType = HEADER_ZC_PARTY_CONFIG;
+ p->denyPartyInvites = flag;
+ WFIFOSET(sd->fd, sizeof(struct PACKET_ZC_PARTY_CONFIG));
+#endif
}
static void clif_ShowScript(struct block_list *bl, const char *message, enum send_target target)
@@ -24615,12 +24651,15 @@ void clif_defaults(void)
clif->pBGQueueRevokeReq = clif_parse_bgqueue_revoke_req;
clif->pBGQueueBattleBeginAck = clif_parse_bgqueue_battlebegin_ack;
/* RagExe Cash Shop [Ind/Hercules] */
- clif->pCashShopOpen = clif_parse_CashShopOpen;
- clif->pCashShopClose = clif_parse_CashShopClose;
- clif->pCashShopReqTab = clif_parse_CashShopReqTab;
- clif->pCashShopSchedule = clif_parse_CashShopSchedule;
- clif->pCashShopBuy = clif_parse_CashShopBuy;
+ clif->pCashShopOpen1 = clif_parse_cashShopOpen1;
+ clif->pCashShopOpen2 = clif_parse_cashShopOpen2;
+ clif->pCashShopLimitedReq = clif_parse_cashShopLimitedReq;
+ clif->pCashShopClose = clif_parse_cashShopClose;
+ clif->pCashShopReqTab = clif_parse_cashShopReqTab;
+ clif->pCashShopSchedule = clif_parse_cashShopSchedule;
+ clif->pCashShopBuy = clif_parse_cashShopBuy;
clif->cashShopBuyAck = clif_cashShopBuyAck;
+ clif->cashShopOpen = clif_cashShopOpen;
/* */
clif->pPartyTick = clif_parse_PartyTick;
clif->pGuildInvite2 = clif_parse_GuildInvite2;
diff --git a/src/map/clif.h b/src/map/clif.h
index 14a7997a1..99560f52e 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -1548,7 +1548,9 @@ struct clif_interface {
void (*pBGQueueRevokeReq) (int fd, struct map_session_data *sd);
void (*pBGQueueBattleBeginAck) (int fd, struct map_session_data *sd);
/* RagExe Cash Shop [Ind/Hercules] */
- void (*pCashShopOpen) (int fd, struct map_session_data *sd);
+ void (*pCashShopOpen1) (int fd, struct map_session_data *sd);
+ void (*pCashShopOpen2) (int fd, struct map_session_data *sd);
+ void (*pCashShopLimitedReq) (int fd, struct map_session_data *sd);
void (*pCashShopClose) (int fd, struct map_session_data *sd);
void (*pCashShopReqTab) (int fd, struct map_session_data *sd);
void (*pCashShopSchedule) (int fd, struct map_session_data *sd);
@@ -1556,6 +1558,7 @@ struct clif_interface {
void (*pPartyTick) (int fd, struct map_session_data *sd);
void (*pGuildInvite2) (int fd, struct map_session_data *sd);
void (*cashShopBuyAck) (int fd, struct map_session_data *sd, int itemId, enum CASH_SHOP_BUY_RESULT result);
+ void (*cashShopOpen) (int fd, struct map_session_data *sd, int tab);
/* Group Search System Update */
void (*pPartyBookingAddFilter) (int fd, struct map_session_data *sd);
void (*pPartyBookingSubFilter) (int fd, struct map_session_data *sd);
diff --git a/src/map/itemdb.c b/src/map/itemdb.c
index 5dc3d9317..b016af1c9 100644
--- a/src/map/itemdb.c
+++ b/src/map/itemdb.c
@@ -1552,6 +1552,11 @@ static void itemdb_read_chains(void)
else
itemdb->chain_cache[ECC_SIEGFRIED] = i;
+ if (!script->get_constant("ITMCHAIN_NEO_INSURANCE", &i))
+ ShowWarning("itemdb_read_chains: failed to find 'ITMCHAIN_NEO_INSURANCE' chain to link to cache!\n");
+ else
+ itemdb->chain_cache[ECC_NEO_INSURANCE] = i;
+
ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", count, config_filename);
}
diff --git a/src/map/itemdb.h b/src/map/itemdb.h
index 14ead7707..ecdcbcafc 100644
--- a/src/map/itemdb.h
+++ b/src/map/itemdb.h
@@ -359,6 +359,7 @@ enum geneticist_item_list {
enum e_chain_cache {
ECC_ORE,
ECC_SIEGFRIED,
+ ECC_NEO_INSURANCE,
/* */
ECC_MAX,
};
diff --git a/src/map/map.c b/src/map/map.c
index 8d60d1672..9db868329 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -3769,8 +3769,29 @@ static int map_waterheight(char *mapname)
// read & convert fn
rsw = grfio_read(fn);
if (rsw) {
+ if (memcmp(rsw, "GRSW", 4) != 0) {
+ ShowWarning("Failed to find water level for %s (%s)\n", mapname, fn);
+ aFree(rsw);
+ return NO_WATER;
+ }
+ int major_version = rsw[4];
+ int minor_version = rsw[5];
+ if (major_version > 2 || (major_version == 2 && minor_version > 2)) {
+ ShowWarning("Failed to find water level for %s (%s)\n", mapname, fn);
+ aFree(rsw);
+ return NO_WATER;
+ }
+ if (major_version < 1 || (major_version == 1 && minor_version <= 4)) {
+ ShowWarning("Failed to find water level for %s (%s)\n", mapname, fn);
+ aFree(rsw);
+ return NO_WATER;
+ }
+ int offset = 166;
+ if (major_version == 2 && minor_version >= 2) {
+ offset = 167;
+ }
//Load water height from file
- int wh = (int) *(float*)(rsw+166);
+ int wh = (int)*(float*)(rsw + offset);
aFree(rsw);
return wh;
}
diff --git a/src/map/messages.h b/src/map/messages.h
index 5bfd476a2..a46905a76 100644
--- a/src/map/messages.h
+++ b/src/map/messages.h
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2012-2016 Hercules Dev Team
+ * Copyright (C) 2012-2020 Hercules Dev Team
* Copyright (C) Athena Dev Teams
*
* Hercules is free software: you can redistribute it and/or modify
diff --git a/src/map/messages_ad.h b/src/map/messages_ad.h
index e0a4e5c98..016858496 100644
--- a/src/map/messages_ad.h
+++ b/src/map/messages_ad.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2013-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/map/messages_main.h b/src/map/messages_main.h
index e369d6c56..5dce0b1ce 100644
--- a/src/map/messages_main.h
+++ b/src/map/messages_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2013-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20191211
+Latest version: 20200108
*/
enum clif_messages {
@@ -7263,9 +7263,11 @@ The Memorial Dungeon's entry time limit expired; it has been destroyed.
The Memorial Dungeon has been removed.
*/
MSG_MEMORIAL_DUN_DESTROY_REQUEST = 0x544,
-/*20070918 to latest
+/*20070918 to 20191218
메모리얼 던전에 시스템 오류가 발생하였습니다. 정상적인 게임 진행을 위해 재접속을 해주십시오.
A system error has occurred in the Memorial Dungeon. Please relog in to the game to continue playing.
+20191224 to latest
+메모리얼 던전에 통신 장애가 발생하였습니다. 정상적인 게임 진행을 위해 잠시 후, 재접속을 해주십시오.
*/
MSG_MEMORIAL_DUN_ERROR = 0x545,
/*20070918 to latest
@@ -21243,8 +21245,10 @@ Zoom Out 기능을 해제합니다 (Off)
파티장인 경우, 가입 요청을 할 수 없습니다.
*/
MSG_ID_DBB = 0xdbb,
-/*20180418 to latest
+/*20180418 to 20191211
모험가 중개소에 등록 중입니다. 잠시만 기다려 주세요.
+20191218 to latest
+파티 가입 최대 레벨은 최소 레벨 설정보다 높아야 합니다.
*/
MSG_ID_DBC = 0xdbc,
/*20180418 to latest
@@ -22226,8 +22230,10 @@ VTC 인증에 실패하였습니다.
가나다 정렬
*/
MSG_ID_E8A = 0xe8a,
-/*20191113 to latest
+/*20191113 to 20191224
기본 결과물은 %s %d개 이나, 낮은 확률로 최대 %d개까지 생성될 수 있습니다.
+20200108 to latest
+※[%s] %d~%d개 제작
*/
MSG_ID_E8B = 0xe8b,
/*20191113 to latest
@@ -22433,6 +22439,31 @@ Num: %d/%d Weight: %d/%d
*/
MSG_ID_EBC = 0xebc,
#endif
+#if PACKETVER >= 20191218
+/*20191218 to latest
+서번트 웨폰 %d개가 필요합니다.
+*/
+ MSG_ID_EBD = 0xebd,
+/*20191218 to latest
+https://member.gnjoy.com.tw/billing.aspx
+*/
+ MSG_ID_EBE = 0xebe,
+#endif
+#if PACKETVER >= 20200108
+/*20200108 to latest
+역순 정렬
+*/
+ MSG_ID_EBF = 0xebf,
+/*20200108 to latest
+검색 내용 입력
+*/
+ MSG_ID_EC0 = 0xec0,
+/*20200108 to latest
+검색
+Search
+*/
+ MSG_ID_EC1 = 0xec1,
+#endif
};
#endif /* MAP_MESSAGES_MAIN_H */
diff --git a/src/map/messages_re.h b/src/map/messages_re.h
index d9f279bfd..294084c65 100644
--- a/src/map/messages_re.h
+++ b/src/map/messages_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2013-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20191211
+Latest version: 20200108
*/
enum clif_messages {
@@ -6780,9 +6780,11 @@ The Memorial Dungeon's entry time limit expired; it has been destroyed.
The Memorial Dungeon has been removed.
*/
MSG_MEMORIAL_DUN_DESTROY_REQUEST = 0x544,
-/*20080827 to latest
+/*20080827 to 20191218
메모리얼 던전에 시스템 오류가 발생하였습니다. 정상적인 게임 진행을 위해 재접속을 해주십시오.
A system error has occurred in the Memorial Dungeon. Please relog in to the game to continue playing.
+20191224 to latest
+메모리얼 던전에 통신 장애가 발생하였습니다. 정상적인 게임 진행을 위해 잠시 후, 재접속을 해주십시오.
*/
MSG_MEMORIAL_DUN_ERROR = 0x545,
/*20080827 to latest
@@ -21705,8 +21707,10 @@ VTC 인증에 실패하였습니다.
가나다 정렬
*/
MSG_ID_E8A = 0xe8a,
-/*20191113 to latest
+/*20191113 to 20191224
기본 결과물은 %s %d개 이나, 낮은 확률로 최대 %d개까지 생성될 수 있습니다.
+20200108 to latest
+※[%s] %d~%d개 제작
*/
MSG_ID_E8B = 0xe8b,
/*20191113 to latest
@@ -21912,6 +21916,31 @@ Num: %d/%d Weight: %d/%d
*/
MSG_ID_EBC = 0xebc,
#endif
+#if PACKETVER >= 20191218
+/*20191218 to latest
+서번트 웨폰 %d개가 필요합니다.
+*/
+ MSG_ID_EBD = 0xebd,
+/*20191218 to latest
+https://member.gnjoy.com.tw/billing.aspx
+*/
+ MSG_ID_EBE = 0xebe,
+#endif
+#if PACKETVER >= 20200108
+/*20200108 to latest
+역순 정렬
+*/
+ MSG_ID_EBF = 0xebf,
+/*20200108 to latest
+검색 내용 입력
+*/
+ MSG_ID_EC0 = 0xec0,
+/*20200108 to latest
+검색
+Search
+*/
+ MSG_ID_EC1 = 0xec1,
+#endif
};
#endif /* MAP_MESSAGES_RE_H */
diff --git a/src/map/messages_sak.h b/src/map/messages_sak.h
index 2c7bfd661..00e414b22 100644
--- a/src/map/messages_sak.h
+++ b/src/map/messages_sak.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2013-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/map/messages_zero.h b/src/map/messages_zero.h
index 2c0c6203b..305f76911 100644
--- a/src/map/messages_zero.h
+++ b/src/map/messages_zero.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2013-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20191211
+Latest version: 20191224
*/
enum clif_messages {
@@ -17343,8 +17343,10 @@ Zoom Out 기능을 해제합니다 (Off)
파티장인 경우, 가입 요청을 할 수 없습니다.
*/
MSG_ID_DBB = 0xdbb,
-/*20180425 to latest
+/*20180425 to 20191211
모험가 중개소에 등록 중입니다. 잠시만 기다려 주세요.
+20191224 to latest
+파티 가입 최대 레벨은 최소 레벨 설정보다 높아야 합니다.
*/
MSG_ID_DBC = 0xdbc,
/*20180425 to latest
@@ -18524,6 +18526,16 @@ Num: %d/%d Weight: %d/%d
*/
MSG_ID_EBC = 0xebc,
#endif
+#if PACKETVER >= 20191224
+/*20191224 to latest
+서번트 웨폰 %d개가 필요합니다.
+*/
+ MSG_ID_EBD = 0xebd,
+/*20191224 to latest
+https://member.gnjoy.com.tw/billing.aspx
+*/
+ MSG_ID_EBE = 0xebe,
+#endif
};
#endif /* MAP_MESSAGES_ZERO_H */
diff --git a/src/map/packets.h b/src/map/packets.h
index 48d937957..abcbddadb 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -728,7 +728,7 @@ packet(0x96e,clif->ackmergeitems);
// all versions
#if PACKETVER >= 20100824
- packet(0x0844,clif->pCashShopOpen,2);
+ packet(0x0844,clif->pCashShopOpen1);
#endif
//2010-11-24aRagexeRE
@@ -1980,7 +1980,11 @@ packet(0x96e,clif->ackmergeitems);
#endif
#if PACKETVER >= 20190724
- packet(0x0b4c,clif->pCashShopOpen,2);
+ packet(0x0b4c,clif->pCashShopLimitedReq);
+#endif
+
+#if PACKETVER >= 20191224
+ packet(0x0b6d,clif->pCashShopOpen2);
#endif
#endif /* MAP_PACKETS_H */
diff --git a/src/map/packets_keys_main.h b/src/map/packets_keys_main.h
index 39186039d..adfefe5dc 100644
--- a/src/map/packets_keys_main.h
+++ b/src/map/packets_keys_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2013-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -37,7 +37,7 @@
packetKeys(0x49357d72,0x22c370a1,0x5f836591);
#endif
-// 2010-11-23aRagexeRE, 2010-11-24aRagexeRE, 2010-11-24bRagexeRE, 2010-11-25aRagexeRE, 2010-11-26aRagexeRE, 2010-11-30aRagexeRE, 2010-12-07aRagexeRE, 2010-12-14aRagexeRE, 2010-12-21aRagexeRE, 2010-12-23aRagexeRE, 2010-12-28aRagexeRE, 2011-01-04aRagexeRE, 2011-01-05aRagexeRE, 2011-01-11aRagexeRE, 2011-01-18aRagexeRE, 2011-01-25aRagexeRE, 2011-01-26aRagexeRE, 2011-01-26bRagexeRE, 2011-01-31aRagexeRE, 2011-01-31bRagexeRE, 2011-01-31cRagexeRE, 2011-02-08aRagexeRE, 2011-02-15aRagexeRE, 2011-02-22aRagexeRE, 2011-02-23aRagexeRE, 2011-02-23bRagexeRE, 2011-02-24aRagexeRE, 2011-02-25aRagexeRE, 2011-02-28aRagexeRE, 2011-03-08aRagexeRE, 2011-03-09aRagexeRE, 2011-03-09bRagexeRE, 2011-03-09cRagexeRE, 2011-03-09dRagexeRE, 2011-03-15aRagexeRE, 2011-03-22aRagexeRE, 2011-03-29aRagexeRE, 2011-03-30aRagexeRE, 2011-03-30cRagexeRE, 2011-04-05aRagexeRE, 2011-04-12aRagexeRE, 2011-04-19aRagexeRE, 2011-04-20aRagexeRE, 2011-04-26aRagexeRE, 2011-04-27aRagexeRE, 2011-05-03aRagexeRE, 2011-05-11aRagexeRE, 2011-05-17bRagexeRE, 2011-05-24aRagexeRE, 2011-05-26aRagexeRE, 2011-05-31aRagexeRE, 2011-06-07aRagexeRE, 2011-06-08aRagexeRE, 2011-06-08bRagexeRE, 2011-06-08cRagexeRE, 2011-06-09aRagexeRE, 2011-06-14bRagexeRE, 2011-06-22aRagexeRE, 2011-06-28aRagexeRE, 2011-07-06aRagexeRE, 2011-07-13aRagexeRE, 2011-07-13bRagexeRE, 2011-07-13cRagexeRE, 2011-07-19aRagexeRE, 2011-07-26aRagexeRE, 2011-08-03aRagexeRE, 2011-08-03bRagexeRE, 2011-08-10aRagexeRE, 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-21aRagexeRE, 2018-03-28bRagexe, 2018-03-28bRagexeRE, 2018-04-04bRagexe, 2018-04-04cRagexeRE, 2018-04-18aRagexe, 2018-04-18bRagexeRE, 2018-04-25cRagexe, 2018-04-25cRagexeRE, 2018-05-02bRagexe, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-16cRagexeRE, 2018-05-23aRagexe, 2018-05-23aRagexeRE, 2018-05-30aRagexe, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20cRagexe, 2018-06-20dRagexeRE, 2018-06-20eRagexe, 2018-06-20eRagexeRE, 2018-06-21aRagexe, 2018-06-21aRagexeRE, 2018-07-04aRagexe, 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexe, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexe, 2018-07-18cRagexeRE, 2018-08-01cRagexe, 2018-08-01cRagexeRE, 2018-08-08bRagexe, 2018-08-08bRagexeRE, 2018-08-22cRagexe, 2018-08-22cRagexeRE, 2018-08-29aRagexe, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-12dRagexeRE, 2018-09-19aRagexe, 2018-09-19aRagexeRE, 2018-10-02aRagexe, 2018-10-02aRagexeRE, 2018-10-02bRagexe, 2018-10-02bRagexeRE, 2018-10-17_02aRagexe, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexe, 2018-10-17_03aRagexeRE, 2018-10-17bRagexe, 2018-10-17bRagexeRE, 2018-10-24bRagexe, 2018-10-31aRagexe, 2018-10-31bRagexe, 2018-10-31cRagexeRE, 2018-11-07aRagexe, 2018-11-07aRagexeRE, 2018-11-14cRagexe, 2018-11-14cRagexeRE, 2018-11-14dRagexe, 2018-11-14dRagexeRE, 2018-11-21bRagexe, 2018-11-21cRagexeRE, 2018-11-28aRagexe, 2018-11-28aRagexeRE, 2018-11-28bRagexe, 2018-11-28cRagexe, 2018-12-05aRagexe, 2018-12-05bRagexeRE, 2018-12-12aRagexe, 2018-12-12aRagexeRE, 2018-12-12bRagexe, 2018-12-12bRagexeRE, 2018-12-19bRagexe, 2018-12-19bRagexeRE, 2018-12-26aRagexe, 2018-12-26aRagexeRE, 2019-01-09aRagexe, 2019-01-09bRagexeRE, 2019-01-16bRagexe, 2019-01-16bRagexeRE, 2019-01-16cRagexe, 2019-01-16cRagexeRE, 2019-01-23dRagexe, 2019-01-23dRagexeRE, 2019-02-13IRagexeRE, 2019-02-13bRagexe, 2019-02-13eRagexe, 2019-02-20aRagexeRE, 2019-02-27aRagexe, 2019-02-27bRagexeRE, 2019-02-28aRagexe, 2019-02-28aRagexeRE, 2019-03-06bRagexe, 2019-03-06bRagexeRE, 2019-03-06cRagexe, 2019-03-06cRagexeRE, 2019-03-13aRagexe, 2019-03-20aRagexe, 2019-03-20aRagexeRE, 2019-03-22aRagexe, 2019-03-22aRagexeRE, 2019-03-27bRagexe, 2019-03-27bRagexeRE, 2019-04-03aRagexe, 2019-04-03bRagexeRE, 2019-04-03cRagexeRE, 2019-04-17aRagexe, 2019-04-17cRagexeRE, 2019-04-18aRagexe, 2019-04-18aRagexeRE, 2019-05-08cRagexe, 2019-05-08dRagexeRE, 2019-05-08eRagexeRE, 2019-05-22bRagexe, 2019-05-22bRagexeRE, 2019-05-22cRagexe, 2019-05-22cRagexeRE, 2019-05-23aRagexe, 2019-05-29aRagexe, 2019-05-29bRagexeRE, 2019-05-29cRagexe, 2019-05-29cRagexeRE, 2019-05-30aRagexe, 2019-05-30aRagexeRE, 2019-06-05JRagexeRE, 2019-06-05KRagexe, 2019-06-05LRagexeRE, 2019-06-05fRagexe, 2019-06-05hRagexeRE, 2019-06-19bRagexe, 2019-06-19cRagexeRE, 2019-06-19eRagexe, 2019-06-19hRagexe, 2019-06-26bRagexeRE, 2019-07-03aRagexe, 2019-07-03bRagexeRE, 2019-07-17aRagexe, 2019-07-17cRagexeRE, 2019-07-17dRagexe, 2019-07-17dRagexeRE, 2019-07-24aRagexe, 2019-07-24bRagexeRE, 2019-07-31bRagexe, 2019-07-31bRagexeRE, 2019-08-02aRagexe, 2019-08-02aRagexeRE, 2019-08-07aRagexe, 2019-08-07dRagexeRE, 2019-08-21aRagexe, 2019-08-21cRagexeRE, 2019-08-21dRagexeRE, 2019-08-28aRagexe, 2019-08-28aRagexeRE, 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-04bRagexeRE, 2019-09-18bRagexe, 2019-09-18cRagexeRE, 2019-09-25aRagexe, 2019-09-25aRagexeRE, 2019-09-25bRagexe, 2019-09-25bRagexeRE, 2019-10-02bRagexeRE, 2019-10-02cRagexe, 2019-10-02dRagexe, 2019-10-02dRagexeRE, 2019-10-02dRagexeRE_2, 2019-10-16fRagexe, 2019-10-16fRagexeRE, 2019-10-16gRagexe, 2019-10-16gRagexeRE, 2019-10-18aRagexe, 2019-10-23aRagexe, 2019-10-23aRagexeRE, 2019-10-30bRagexeRE, 2019-10-30cRagexe, 2019-11-06aRagexe, 2019-11-06bRagexeRE, 2019-11-07aRagexe, 2019-11-07aRagexeRE, 2019-11-13cRagexe, 2019-11-13eRagexe, 2019-11-13eRagexeRE, 2019-11-20aRagexe, 2019-11-20cRagexeRE, 2019-11-20dRagexe, 2019-11-27aRagexe, 2019-11-27aRagexeRE, 2019-11-27bRagexe, 2019-12-04aRagexe, 2019-12-04aRagexeRE, 2019-12-04bRagexe, 2019-12-04bRagexeRE, 2019-12-04cRagexeRE, 2019-12-11aRagexe, 2019-12-11fRagexeRE
+// 2010-11-23aRagexeRE, 2010-11-24aRagexeRE, 2010-11-24bRagexeRE, 2010-11-25aRagexeRE, 2010-11-26aRagexeRE, 2010-11-30aRagexeRE, 2010-12-07aRagexeRE, 2010-12-14aRagexeRE, 2010-12-21aRagexeRE, 2010-12-23aRagexeRE, 2010-12-28aRagexeRE, 2011-01-04aRagexeRE, 2011-01-05aRagexeRE, 2011-01-11aRagexeRE, 2011-01-18aRagexeRE, 2011-01-25aRagexeRE, 2011-01-26aRagexeRE, 2011-01-26bRagexeRE, 2011-01-31aRagexeRE, 2011-01-31bRagexeRE, 2011-01-31cRagexeRE, 2011-02-08aRagexeRE, 2011-02-15aRagexeRE, 2011-02-22aRagexeRE, 2011-02-23aRagexeRE, 2011-02-23bRagexeRE, 2011-02-24aRagexeRE, 2011-02-25aRagexeRE, 2011-02-28aRagexeRE, 2011-03-08aRagexeRE, 2011-03-09aRagexeRE, 2011-03-09bRagexeRE, 2011-03-09cRagexeRE, 2011-03-09dRagexeRE, 2011-03-15aRagexeRE, 2011-03-22aRagexeRE, 2011-03-29aRagexeRE, 2011-03-30aRagexeRE, 2011-03-30cRagexeRE, 2011-04-05aRagexeRE, 2011-04-12aRagexeRE, 2011-04-19aRagexeRE, 2011-04-20aRagexeRE, 2011-04-26aRagexeRE, 2011-04-27aRagexeRE, 2011-05-03aRagexeRE, 2011-05-11aRagexeRE, 2011-05-17bRagexeRE, 2011-05-24aRagexeRE, 2011-05-26aRagexeRE, 2011-05-31aRagexeRE, 2011-06-07aRagexeRE, 2011-06-08aRagexeRE, 2011-06-08bRagexeRE, 2011-06-08cRagexeRE, 2011-06-09aRagexeRE, 2011-06-14bRagexeRE, 2011-06-22aRagexeRE, 2011-06-28aRagexeRE, 2011-07-06aRagexeRE, 2011-07-13aRagexeRE, 2011-07-13bRagexeRE, 2011-07-13cRagexeRE, 2011-07-19aRagexeRE, 2011-07-26aRagexeRE, 2011-08-03aRagexeRE, 2011-08-03bRagexeRE, 2011-08-10aRagexeRE, 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-21aRagexeRE, 2018-03-28bRagexe, 2018-03-28bRagexeRE, 2018-04-04bRagexe, 2018-04-04cRagexeRE, 2018-04-18aRagexe, 2018-04-18bRagexeRE, 2018-04-25cRagexe, 2018-04-25cRagexeRE, 2018-05-02bRagexe, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-16cRagexeRE, 2018-05-23aRagexe, 2018-05-23aRagexeRE, 2018-05-30aRagexe, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20cRagexe, 2018-06-20dRagexeRE, 2018-06-20eRagexe, 2018-06-20eRagexeRE, 2018-06-21aRagexe, 2018-06-21aRagexeRE, 2018-07-04aRagexe, 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexe, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexe, 2018-07-18cRagexeRE, 2018-08-01cRagexe, 2018-08-01cRagexeRE, 2018-08-08bRagexe, 2018-08-08bRagexeRE, 2018-08-22cRagexe, 2018-08-22cRagexeRE, 2018-08-29aRagexe, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-12dRagexeRE, 2018-09-19aRagexe, 2018-09-19aRagexeRE, 2018-10-02aRagexe, 2018-10-02aRagexeRE, 2018-10-02bRagexe, 2018-10-02bRagexeRE, 2018-10-17_02aRagexe, 2018-10-17_02aRagexeRE, 2018-10-17_03aRagexe, 2018-10-17_03aRagexeRE, 2018-10-17bRagexe, 2018-10-17bRagexeRE, 2018-10-24bRagexe, 2018-10-31aRagexe, 2018-10-31bRagexe, 2018-10-31cRagexeRE, 2018-11-07aRagexe, 2018-11-07aRagexeRE, 2018-11-14cRagexe, 2018-11-14cRagexeRE, 2018-11-14dRagexe, 2018-11-14dRagexeRE, 2018-11-21bRagexe, 2018-11-21cRagexeRE, 2018-11-28aRagexe, 2018-11-28aRagexeRE, 2018-11-28bRagexe, 2018-11-28cRagexe, 2018-12-05aRagexe, 2018-12-05bRagexeRE, 2018-12-12aRagexe, 2018-12-12aRagexeRE, 2018-12-12bRagexe, 2018-12-12bRagexeRE, 2018-12-19bRagexe, 2018-12-19bRagexeRE, 2018-12-26aRagexe, 2018-12-26aRagexeRE, 2019-01-09aRagexe, 2019-01-09bRagexeRE, 2019-01-16bRagexe, 2019-01-16bRagexeRE, 2019-01-16cRagexe, 2019-01-16cRagexeRE, 2019-01-23dRagexe, 2019-01-23dRagexeRE, 2019-02-13IRagexeRE, 2019-02-13bRagexe, 2019-02-13eRagexe, 2019-02-20aRagexeRE, 2019-02-27aRagexe, 2019-02-27bRagexeRE, 2019-02-28aRagexe, 2019-02-28aRagexeRE, 2019-03-06bRagexe, 2019-03-06bRagexeRE, 2019-03-06cRagexe, 2019-03-06cRagexeRE, 2019-03-13aRagexe, 2019-03-20aRagexe, 2019-03-20aRagexeRE, 2019-03-22aRagexe, 2019-03-22aRagexeRE, 2019-03-27bRagexe, 2019-03-27bRagexeRE, 2019-04-03aRagexe, 2019-04-03bRagexeRE, 2019-04-03cRagexeRE, 2019-04-17aRagexe, 2019-04-17cRagexeRE, 2019-04-18aRagexe, 2019-04-18aRagexeRE, 2019-05-08cRagexe, 2019-05-08dRagexeRE, 2019-05-08eRagexeRE, 2019-05-22bRagexe, 2019-05-22bRagexeRE, 2019-05-22cRagexe, 2019-05-22cRagexeRE, 2019-05-23aRagexe, 2019-05-29aRagexe, 2019-05-29bRagexeRE, 2019-05-29cRagexe, 2019-05-29cRagexeRE, 2019-05-30aRagexe, 2019-05-30aRagexeRE, 2019-06-05JRagexeRE, 2019-06-05KRagexe, 2019-06-05LRagexeRE, 2019-06-05fRagexe, 2019-06-05hRagexeRE, 2019-06-19bRagexe, 2019-06-19cRagexeRE, 2019-06-19eRagexe, 2019-06-19hRagexe, 2019-06-26bRagexeRE, 2019-07-03aRagexe, 2019-07-03bRagexeRE, 2019-07-17aRagexe, 2019-07-17cRagexeRE, 2019-07-17dRagexe, 2019-07-17dRagexeRE, 2019-07-24aRagexe, 2019-07-24bRagexeRE, 2019-07-31bRagexe, 2019-07-31bRagexeRE, 2019-08-02aRagexe, 2019-08-02aRagexeRE, 2019-08-07aRagexe, 2019-08-07dRagexeRE, 2019-08-21aRagexe, 2019-08-21cRagexeRE, 2019-08-21dRagexeRE, 2019-08-28aRagexe, 2019-08-28aRagexeRE, 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-04bRagexeRE, 2019-09-18bRagexe, 2019-09-18cRagexeRE, 2019-09-25aRagexe, 2019-09-25aRagexeRE, 2019-09-25bRagexe, 2019-09-25bRagexeRE, 2019-10-02bRagexeRE, 2019-10-02cRagexe, 2019-10-02dRagexe, 2019-10-02dRagexeRE, 2019-10-02dRagexeRE_2, 2019-10-16fRagexe, 2019-10-16fRagexeRE, 2019-10-16gRagexe, 2019-10-16gRagexeRE, 2019-10-18aRagexe, 2019-10-23aRagexe, 2019-10-23aRagexeRE, 2019-10-30bRagexeRE, 2019-10-30cRagexe, 2019-11-06aRagexe, 2019-11-06bRagexeRE, 2019-11-07aRagexe, 2019-11-07aRagexeRE, 2019-11-13cRagexe, 2019-11-13eRagexe, 2019-11-13eRagexeRE, 2019-11-20aRagexe, 2019-11-20cRagexeRE, 2019-11-20dRagexe, 2019-11-27aRagexe, 2019-11-27aRagexeRE, 2019-11-27bRagexe, 2019-12-04aRagexe, 2019-12-04aRagexeRE, 2019-12-04bRagexe, 2019-12-04bRagexeRE, 2019-12-04cRagexeRE, 2019-12-11aRagexe, 2019-12-11fRagexeRE, 2019-12-18bRagexe, 2019-12-18bRagexeRE, 2019-12-24aRagexe, 2019-12-24aRagexeRE, 2019-12-24bRagexe, 2019-12-24bRagexeRE, 2020-01-08aRagexe, 2020-01-08bRagexeRE
#if PACKETVER == 20101123 || \
PACKETVER == 20101124 || \
PACKETVER == 20101125 || \
@@ -178,7 +178,10 @@
PACKETVER == 20191120 || \
PACKETVER == 20191127 || \
PACKETVER == 20191204 || \
- PACKETVER >= 20191211
+ PACKETVER == 20191211 || \
+ PACKETVER == 20191218 || \
+ PACKETVER == 20191224 || \
+ PACKETVER >= 20200108
packetKeys(0x00000000,0x00000000,0x00000000);
#endif
diff --git a/src/map/packets_keys_zero.h b/src/map/packets_keys_zero.h
index 3faefb3cf..6be572964 100644
--- a/src/map/packets_keys_zero.h
+++ b/src/map/packets_keys_zero.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2013-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -30,7 +30,7 @@
/* This file is autogenerated, please do not commit manual changes */
-// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero, 2018-09-28aRagexe_zero, 2018-10-10_2aRagexe_zero, 2018-10-24_2aRagexe_zero, 2018-11-14aRagexe_zero, 2018-11-20aRagexe_zero, 2018-11-28aRagexe_zero, 2018-12-12aRagexe_zero, 2018-12-19aRagexe_zero, 2018-12-26_2aRagexe_zero, 2019-01-16_2aRagexe_zero, 2019-01-17_1aRagexe_zero, 2019-01-30_2aRagexe_zero, 2019-02-13aRagexe_zero, 2019-02-20aRagexe_zero, 2019-02-27aRagexe_zero, 2019-03-13aRagexe_zero, 2019-03-27_2aRagexe_zero, 2019-03-27_3aRagexe_zero, 2019-04-03aRagexe_zero, 2019-04-10bRagexe_zero, 2019-04-24aRagexe_zero, 2019-05-02aRagexe_zero, 2019-05-08_2aRagexe_zero, 2019-05-08aRagexe_zero, 2019-05-15aRagexe_zero, 2019-05-29aRagexe_zero, 2019-05-30aRagexe_zero, 2019-06-05_2aRagexe_zero, 2019-06-26_2aRagexe_zero, 2019-06-26_3aRagexe_zero, 2019-07-09aRagexe_zero, 2019-07-10_3aRagexe_zero, 2019-07-17aRagexe_zero, 2019-07-24aRagexe_zero, 2019-08-14_3aRagexe_zero, 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero, 2019-09-25_3aRagexe_zero, 2019-09-25_5aRagexe_zero, 2019-10-08_2aRagexe_zero, 2019-10-23_2aRagexe_zero, 2019-11-06aRagexe_zero, 2019-11-13aRagexe_zero, 2019-11-27_2aRagexe_zero, 2019-11-27aRagexe_zero, 2019-12-04aRagexe_zero, 2019-12-11_2aRagexe_zero
+// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero, 2018-09-28aRagexe_zero, 2018-10-10_2aRagexe_zero, 2018-10-24_2aRagexe_zero, 2018-11-14aRagexe_zero, 2018-11-20aRagexe_zero, 2018-11-28aRagexe_zero, 2018-12-12aRagexe_zero, 2018-12-19aRagexe_zero, 2018-12-26_2aRagexe_zero, 2019-01-16_2aRagexe_zero, 2019-01-17_1aRagexe_zero, 2019-01-30_2aRagexe_zero, 2019-02-13aRagexe_zero, 2019-02-20aRagexe_zero, 2019-02-27aRagexe_zero, 2019-03-13aRagexe_zero, 2019-03-27_2aRagexe_zero, 2019-03-27_3aRagexe_zero, 2019-04-03aRagexe_zero, 2019-04-10bRagexe_zero, 2019-04-24aRagexe_zero, 2019-05-02aRagexe_zero, 2019-05-08_2aRagexe_zero, 2019-05-08aRagexe_zero, 2019-05-15aRagexe_zero, 2019-05-29aRagexe_zero, 2019-05-30aRagexe_zero, 2019-06-05_2aRagexe_zero, 2019-06-26_2aRagexe_zero, 2019-06-26_3aRagexe_zero, 2019-07-09aRagexe_zero, 2019-07-10_3aRagexe_zero, 2019-07-17aRagexe_zero, 2019-07-24aRagexe_zero, 2019-08-14_3aRagexe_zero, 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero, 2019-09-25_3aRagexe_zero, 2019-09-25_5aRagexe_zero, 2019-10-08_2aRagexe_zero, 2019-10-23_2aRagexe_zero, 2019-11-06aRagexe_zero, 2019-11-13aRagexe_zero, 2019-11-27_2aRagexe_zero, 2019-11-27aRagexe_zero, 2019-12-04aRagexe_zero, 2019-12-11_2aRagexe_zero, 2019-12-24_4aRagexe_zero, 2019-12-24_5aRagexe_zero
#if PACKETVER == 20171018 || \
PACKETVER == 20171019 || \
PACKETVER == 20171023 || \
@@ -102,7 +102,8 @@
PACKETVER == 20191113 || \
PACKETVER == 20191127 || \
PACKETVER == 20191204 || \
- PACKETVER >= 20191211
+ PACKETVER == 20191211 || \
+ PACKETVER >= 20191224
packetKeys(0x00000000,0x00000000,0x00000000);
#endif
diff --git a/src/map/packets_shuffle_main.h b/src/map/packets_shuffle_main.h
index 8e0eb63d5..0e7ca8609 100644
--- a/src/map/packets_shuffle_main.h
+++ b/src/map/packets_shuffle_main.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2013-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -9794,7 +9794,7 @@
packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 14
#endif
-// 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-18bRagexe, 2019-09-25aRagexe, 2019-09-25bRagexe, 2019-10-02cRagexe, 2019-10-02dRagexe, 2019-10-16fRagexe, 2019-10-16gRagexe, 2019-10-18aRagexe, 2019-10-23aRagexe, 2019-10-30cRagexe, 2019-11-06aRagexe, 2019-11-07aRagexe, 2019-11-13cRagexe, 2019-11-13eRagexe, 2019-11-20aRagexe, 2019-11-20dRagexe, 2019-11-27aRagexe, 2019-11-27bRagexe, 2019-12-04aRagexe, 2019-12-04bRagexe, 2019-12-11aRagexe
+// 2019-09-04aRagexe, 2019-09-04bRagexe, 2019-09-18bRagexe, 2019-09-25aRagexe, 2019-09-25bRagexe, 2019-10-02cRagexe, 2019-10-02dRagexe, 2019-10-16fRagexe, 2019-10-16gRagexe, 2019-10-18aRagexe, 2019-10-23aRagexe, 2019-10-30cRagexe, 2019-11-06aRagexe, 2019-11-07aRagexe, 2019-11-13cRagexe, 2019-11-13eRagexe, 2019-11-20aRagexe, 2019-11-20dRagexe, 2019-11-27aRagexe, 2019-11-27bRagexe, 2019-12-04aRagexe, 2019-12-04bRagexe, 2019-12-11aRagexe, 2019-12-18bRagexe, 2019-12-24aRagexe, 2019-12-24bRagexe, 2020-01-08aRagexe
#if PACKETVER == 20190904 || \
PACKETVER == 20190918 || \
PACKETVER == 20190925 || \
@@ -9809,7 +9809,10 @@
PACKETVER == 20191120 || \
PACKETVER == 20191127 || \
PACKETVER == 20191204 || \
- PACKETVER == 20191211
+ PACKETVER == 20191211 || \
+ PACKETVER == 20191218 || \
+ PACKETVER == 20191224 || \
+ PACKETVER == 20200108
packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26
packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5
packet(0x023b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36
diff --git a/src/map/packets_shuffle_re.h b/src/map/packets_shuffle_re.h
index 891afde57..37b50c863 100644
--- a/src/map/packets_shuffle_re.h
+++ b/src/map/packets_shuffle_re.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2013-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -9744,7 +9744,7 @@
packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 14
#endif
-// 2019-09-04bRagexeRE, 2019-09-18cRagexeRE, 2019-09-25aRagexeRE, 2019-09-25bRagexeRE, 2019-10-02bRagexeRE, 2019-10-02dRagexeRE, 2019-10-02dRagexeRE_2, 2019-10-16fRagexeRE, 2019-10-16gRagexeRE, 2019-10-23aRagexeRE, 2019-10-30bRagexeRE, 2019-11-06bRagexeRE, 2019-11-07aRagexeRE, 2019-11-13eRagexeRE, 2019-11-20cRagexeRE, 2019-11-27aRagexeRE, 2019-12-04aRagexeRE, 2019-12-04bRagexeRE, 2019-12-04cRagexeRE, 2019-12-11fRagexeRE
+// 2019-09-04bRagexeRE, 2019-09-18cRagexeRE, 2019-09-25aRagexeRE, 2019-09-25bRagexeRE, 2019-10-02bRagexeRE, 2019-10-02dRagexeRE, 2019-10-02dRagexeRE_2, 2019-10-16fRagexeRE, 2019-10-16gRagexeRE, 2019-10-23aRagexeRE, 2019-10-30bRagexeRE, 2019-11-06bRagexeRE, 2019-11-07aRagexeRE, 2019-11-13eRagexeRE, 2019-11-20cRagexeRE, 2019-11-27aRagexeRE, 2019-12-04aRagexeRE, 2019-12-04bRagexeRE, 2019-12-04cRagexeRE, 2019-12-11fRagexeRE, 2019-12-18bRagexeRE, 2019-12-24aRagexeRE, 2019-12-24bRagexeRE, 2020-01-08bRagexeRE
#if PACKETVER == 20190904 || \
PACKETVER == 20190918 || \
PACKETVER == 20190925 || \
@@ -9758,7 +9758,10 @@
PACKETVER == 20191120 || \
PACKETVER == 20191127 || \
PACKETVER == 20191204 || \
- PACKETVER == 20191211
+ PACKETVER == 20191211 || \
+ PACKETVER == 20191218 || \
+ PACKETVER == 20191224 || \
+ PACKETVER == 20200108
packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26
packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5
packet(0x023b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36
diff --git a/src/map/packets_shuffle_zero.h b/src/map/packets_shuffle_zero.h
index 8ea474bd5..eaac59a12 100644
--- a/src/map/packets_shuffle_zero.h
+++ b/src/map/packets_shuffle_zero.h
@@ -2,8 +2,8 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
- * Copyright (C) 2018-2019 Andrei Karas (4144)
+ * Copyright (C) 2013-2020 Hercules Dev Team
+ * Copyright (C) 2018-2020 Andrei Karas (4144)
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -803,7 +803,7 @@
packet(0x083c,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK // 14
#endif
-// 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero, 2019-09-25_3aRagexe_zero, 2019-09-25_5aRagexe_zero, 2019-10-08_2aRagexe_zero, 2019-10-23_2aRagexe_zero, 2019-11-06aRagexe_zero, 2019-11-13aRagexe_zero, 2019-11-27_2aRagexe_zero, 2019-11-27aRagexe_zero, 2019-12-04aRagexe_zero, 2019-12-11_2aRagexe_zero
+// 2019-08-28_2aRagexe_zero, 2019-08-28_3aRagexe_zero, 2019-09-11aRagexe_zero, 2019-09-18_2aRagexe_zero, 2019-09-18aRagexe_zero, 2019-09-25_3aRagexe_zero, 2019-09-25_5aRagexe_zero, 2019-10-08_2aRagexe_zero, 2019-10-23_2aRagexe_zero, 2019-11-06aRagexe_zero, 2019-11-13aRagexe_zero, 2019-11-27_2aRagexe_zero, 2019-11-27aRagexe_zero, 2019-12-04aRagexe_zero, 2019-12-11_2aRagexe_zero, 2019-12-24_4aRagexe_zero, 2019-12-24_5aRagexe_zero
#if PACKETVER == 20190828 || \
PACKETVER == 20190911 || \
PACKETVER == 20190918 || \
@@ -814,7 +814,8 @@
PACKETVER == 20191113 || \
PACKETVER == 20191127 || \
PACKETVER == 20191204 || \
- PACKETVER == 20191211
+ PACKETVER == 20191211 || \
+ PACKETVER == 20191224
packet(0x0202,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS // 26
packet(0x022d,clif->pHomMenu,2,4); // CZ_COMMAND_MER // 5
packet(0x023b,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD // 36
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index a98317364..7b1d91004 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -3748,17 +3748,44 @@ struct PACKET_ZC_NOTIFY_EFFECT3 {
DEFINE_PACKET_HEADER(ZC_NOTIFY_EFFECT3, 0x0284);
#endif
+#if PACKETVER >= 20100824
+struct PACKET_CZ_SE_CASHSHOP_OPEN1 {
+ int16 packetType;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_SE_CASHSHOP_OPEN1, 0x0844);
+#endif
+
+#if PACKETVER >= 20191224
+struct PACKET_CZ_SE_CASHSHOP_OPEN2 {
+ int16 packetType;
+ uint32 tab;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_SE_CASHSHOP_OPEN2, 0x0b6d);
+#endif
+
#if PACKETVER >= 20190724
-struct PACKET_CZ_SE_CASHSHOP_OPEN {
+struct PACKET_CZ_SE_CASHSHOP_LIMITED_REQ {
int16 packetType;
} __attribute__((packed));
-DEFINE_PACKET_HEADER(CZ_SE_CASHSHOP_OPEN, 0x0b4c);
-CHECK_PACKET_HEADER(CZ_SE_CASHSHOP_OPEN, 0x0844);
-#elif PACKETVER >= 20100824
-struct PACKET_CZ_SE_CASHSHOP_OPEN {
+DEFINE_PACKET_HEADER(CZ_SE_CASHSHOP_LIMITED_REQ, 0x0b4c);
+#endif
+
+#if PACKETVER_ZERO_NUM >= 20191224
+struct PACKET_ZC_SE_CASHSHOP_OPEN {
+ int16 packetType;
+ uint32 cashPoints;
+ uint32 kafraPoints;
+ uint32 tab;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_SE_CASHSHOP_OPEN, 0x0b6e);
+// for ragexeRE in some version this packet unused [4144]
+#elif PACKETVER_MAIN_NUM >= 20101123 || PACKETVER_RE_NUM >= 20120328 || PACKETVER_ZERO_NUM >= defined(PACKETVER_ZERO)
+struct PACKET_ZC_SE_CASHSHOP_OPEN {
int16 packetType;
+ uint32 cashPoints;
+ uint32 kafraPoints;
} __attribute__((packed));
-DEFINE_PACKET_HEADER(CZ_SE_CASHSHOP_OPEN, 0x0844);
+DEFINE_PACKET_HEADER(ZC_SE_CASHSHOP_OPEN, 0x0845);
#endif
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
diff --git a/src/map/pc.c b/src/map/pc.c
index 179a4b78a..6ea3b3393 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -8189,6 +8189,7 @@ static int pc_dead(struct map_session_data *sd, struct block_list *src)
&& pc->isDeathPenaltyJob(sd->job)
&& !map->list[sd->bl.m].flag.noexppenalty && !map_flag_gvg2(sd->bl.m)
&& !sd->sc.data[SC_BABY] && !sd->sc.data[SC_CASH_DEATHPENALTY]
+ && !pc->auto_exp_insurance(sd)
) {
if (battle_config.death_penalty_base > 0) {
unsigned int base_penalty = 0;
@@ -12162,15 +12163,15 @@ static int pc_have_magnifier(struct map_session_data *sd)
/**
* checks if player have any item that listed in item chain
* @param sd map_session_data of Player
- * @param chain_id unsigned short of item chain id
+ * @param chain_cache_id cache id of item chain
* @return index of inventory, INDEX_NOT_FOUND if it is not found
*/
-static int pc_have_item_chain(struct map_session_data *sd, unsigned short chain_id)
+static int pc_have_item_chain(struct map_session_data *sd, enum e_chain_cache chain_cache_id)
{
- if (chain_id >= itemdb->chain_count) {
- ShowError("itemdb_chain_item: unknown chain id %d\n", chain_id);
- return INDEX_NOT_FOUND;
- }
+ nullpo_retr(INDEX_NOT_FOUND, sd);
+ Assert_retr(INDEX_NOT_FOUND, chain_cache_id >= ECC_ORE && chain_cache_id < ECC_MAX);
+
+ int chain_id = itemdb->chain_cache[chain_cache_id];
for (int n = 0; n < itemdb->chains[chain_id].qty; n++) {
struct item_chain_entry *entry = &itemdb->chains[chain_id].items[n];
@@ -12392,6 +12393,21 @@ static bool pc_expandInventory(struct map_session_data *sd, int adjustSize)
return true;
}
+static bool pc_auto_exp_insurance(struct map_session_data *sd)
+{
+ nullpo_retr(false, sd);
+
+ int item_position = pc->have_item_chain(sd, ECC_NEO_INSURANCE);
+ if (item_position == INDEX_NOT_FOUND)
+ return false;
+
+ pc->delitem(sd, item_position, 1, 0, DELITEM_SKILLUSE, LOG_TYPE_CONSUME);
+#if PACKETVER >= 20100914
+ clif->msgtable(sd, MSG_NOTIFY_NEO_INSURANCE_ITEM_USE);
+#endif
+ return true;
+}
+
static void do_final_pc(void)
{
@@ -12798,4 +12814,5 @@ void pc_defaults(void)
pc->isDeathPenaltyJob = pc_isDeathPenaltyJob;
pc->has_second_costume = pc_has_second_costume;
pc->expandInventory = pc_expandInventory;
+ pc->auto_exp_insurance = pc_auto_exp_insurance;
}
diff --git a/src/map/pc.h b/src/map/pc.h
index 7a42be5be..e44b9cdda 100644
--- a/src/map/pc.h
+++ b/src/map/pc.h
@@ -635,6 +635,7 @@ END_ZEROED_BLOCK;
unsigned immune : 1;
unsigned sitstand : 1;
unsigned commands : 1;
+ unsigned npc : 1;
} block_action;
/* Achievement System */
@@ -1186,7 +1187,7 @@ END_ZEROED_BLOCK; /* End */
void (*update_idle_time) (struct map_session_data* sd, enum e_battle_config_idletime type);
int (*have_magnifier) (struct map_session_data *sd);
- int (*have_item_chain) (struct map_session_data *sd, unsigned short chain_id);
+ int (*have_item_chain) (struct map_session_data *sd, enum e_chain_cache chain_cache_id);
bool (*process_chat_message) (struct map_session_data *sd, const char *message);
int (*wis_message_to_gm) (const char *sender_name, int permission, const char *message);
@@ -1196,6 +1197,7 @@ END_ZEROED_BLOCK; /* End */
bool (*isDeathPenaltyJob) (uint16 job);
bool (*has_second_costume) (struct map_session_data *sd);
bool (*expandInventory) (struct map_session_data *sd, int adjustSize);
+ bool (*auto_exp_insurance) (struct map_session_data *sd);
};
#ifdef HERCULES_CORE
diff --git a/src/map/script.c b/src/map/script.c
index 396d084a3..f8a12f2a4 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -6752,169 +6752,205 @@ static BUILDIN(warpchar)
return true;
}
-/*==========================================
- * Warpparty - [Fredzilla] [Paradox924X] [Jedzkie] [Dastgir]
- * Syntax: warpparty("<to_mapname>", <x>, <y>, <party_id>, "<from_mapname>", <include_leader>)
- * If 'from_mapname' is specified, only the party members on that map will be warped
- * If 'include_leader' option is set to false, the leader will be warped too.
- *------------------------------------------*/
+
+/**
+ * Warps a party to a specific/random map or save point.
+ *
+ * @code{.herc}
+ * warpparty("<to map name>", <x>, <y>, <party id>{{, <ignore mapflags>}, "<from map name>"{, <include leader>}});
+ * @endcode
+ *
+ **/
static BUILDIN(warpparty)
{
- struct map_session_data *sd = NULL;
- struct map_session_data *pl_sd;
- struct party_data* p;
- int type;
- int map_index;
- int i;
- bool include_leader = true;
+ const int p_id = script_getnum(st, 5);
+ struct party_data *p = party->search(p_id);
+
+ if (p == NULL) {
+ ShowError("script:%s: Party not found! (%d)\n", script->getfuncname(st), p_id);
+ script_pushint(st, 0);
+ return false;
+ }
+
+ const char *m_name_to = script_getstr(st, 2);
+ const int type = (strcmp(m_name_to, "Random") == 0) ? 0 :
+ (strcmp(m_name_to, "SavePointAll") == 0) ? 1 :
+ (strcmp(m_name_to, "SavePoint") == 0) ? 2 :
+ (strcmp(m_name_to, "Leader") == 0) ? 3 : 4;
+ int map_index = 0;
+
+ if (type == 4 && (map_index = script->mapindexname2id(st, m_name_to)) == 0) {
+ ShowError("script:%s: Target map not found! (%s)\n", script->getfuncname(st), m_name_to);
+ script_pushint(st, 0);
+ return false;
+ }
- const char* str = script_getstr(st, 2);
int x = script_getnum(st, 3);
int y = script_getnum(st, 4);
- int p_id = script_getnum(st, 5);
- const char* str2 = NULL;
+ struct map_session_data *p_sd;
- if (script_hasdata(st, 6))
- str2 = script_getstr(st, 6);
- if (script_hasdata(st, 7))
- include_leader = script_getnum(st, 7);
+ if (type == 3) {
+ int idx;
- p = party->search(p_id);
+ ARR_FIND(0, MAX_PARTY, idx, p->party.member[idx].leader == 1);
- if (p == NULL)
- return true;
+ if (idx == MAX_PARTY || (p_sd = p->data[idx].sd) == NULL) {
+ ShowError("script:%s: Party leader not found!\n", script->getfuncname(st));
+ script_pushint(st, 0);
+ return false;
+ }
- type = (strcmp(str, "Random") == 0) ? 0
- : (strcmp(str, "SavePointAll") == 0) ? 1
- : (strcmp(str, "SavePoint") == 0) ? 2
- : (strcmp(str, "Leader") == 0) ? 3
- : 4;
+ map_index = p_sd->mapindex;
+ x = p_sd->bl.x;
+ y = p_sd->bl.y;
+ } else if (type == 2) {
+ struct map_session_data *sd = script->rid2sd(st);
- switch (type) {
- case 3:
- ARR_FIND(0, MAX_PARTY, i, p->party.member[i].leader);
- if (i == MAX_PARTY || !p->data[i].sd) // Leader not found / not online
- return true;
- pl_sd = p->data[i].sd;
- map_index = pl_sd->mapindex;
- x = pl_sd->bl.x;
- y = pl_sd->bl.y;
- break;
- case 4:
- map_index = script->mapindexname2id(st, str);
- break;
- case 2:
- // "SavePoint" uses save point of the currently attached player
- if ((sd = script->rid2sd(st)) == NULL)
- return true;
- /* Fall through */
- default:
- map_index = 0;
- break;
+ if (sd == NULL) {
+ ShowError("script:%s: No character attached for warp to save point!\n",
+ script->getfuncname(st));
+ script_pushint(st, 0);
+ return false;
+ }
+
+ map_index = sd->status.save_point.map;
+ x = sd->status.save_point.x;
+ y = sd->status.save_point.y;
}
- for (i = 0; i < MAX_PARTY; i++) {
- if (!(pl_sd = p->data[i].sd) || pl_sd->status.party_id != p_id)
- continue;
+ const int offset = (script_hasdata(st, 6) && script_isinttype(st, 6)) ? 1 : 0;
+ const bool ignore_mapflags = (offset == 1 && script_getnum(st, 6) != 0);
+ const char *m_name_from = script_hasdata(st, 6 + offset) ? script_getstr(st, 6 + offset) : NULL;
+ const bool include_leader = script_hasdata(st, 7 + offset) ? script_getnum(st, 7 + offset) : true;
- if (str2 && strcmp(str2, map->list[pl_sd->bl.m].name) != 0)
+ if (m_name_from != NULL && script->mapindexname2id(st, m_name_from) == 0) {
+ ShowError("script:%s: Source map not found! (%s)\n", script->getfuncname(st), m_name_from);
+ script_pushint(st, 0);
+ return false;
+ }
+
+ for (int i = 0; i < MAX_PARTY; i++) {
+ if ((p_sd = p->data[i].sd) == NULL || p_sd->status.party_id != p_id || pc_isdead(p_sd))
continue;
- if (pc_isdead(pl_sd))
+ if (p->party.member[i].online == 0 || (!include_leader && p->party.member[i].leader == 1))
continue;
- if (include_leader == false && p->party.member[i].leader)
+ if (m_name_from != NULL && strcmp(m_name_from, map->list[p_sd->bl.m].name) != 0)
continue;
- switch( type ) {
- case 0: // Random
- if (!map->list[pl_sd->bl.m].flag.nowarp)
- pc->randomwarp(pl_sd, CLR_TELEPORT);
- break;
- case 1: // SavePointAll
- if (!map->list[pl_sd->bl.m].flag.noreturn)
- pc->setpos(pl_sd, pl_sd->status.save_point.map, pl_sd->status.save_point.x, pl_sd->status.save_point.y, CLR_TELEPORT);
- break;
- case 2: // SavePoint
- if (!map->list[pl_sd->bl.m].flag.noreturn)
- pc->setpos(pl_sd, sd->status.save_point.map, sd->status.save_point.x, sd->status.save_point.y, CLR_TELEPORT);
- break;
- case 3: // Leader
- case 4: // m,x,y
- if (!map->list[pl_sd->bl.m].flag.noreturn && !map->list[pl_sd->bl.m].flag.nowarp)
- pc->setpos(pl_sd, map_index, x, y, CLR_TELEPORT);
- break;
+ if (!ignore_mapflags) {
+ if (((type == 0 || type > 2) && map->list[p_sd->bl.m].flag.nowarp == 1) ||
+ (type > 0 && map->list[p_sd->bl.m].flag.noreturn == 1))
+ continue;
+ }
+
+ if (type == 1) {
+ map_index = p_sd->status.save_point.map;
+ x = p_sd->status.save_point.x;
+ y = p_sd->status.save_point.y;
}
+
+ if (type > 0)
+ pc->setpos(p_sd, map_index, x, y, CLR_TELEPORT);
+ else
+ pc->randomwarp(p_sd, CLR_TELEPORT);
}
+ script_pushint(st, 1);
return true;
}
-/*==========================================
- * Warpguild - [Fredzilla]
- * Syntax: warpguild "mapname",x,y,Guild_ID,{"from_mapname"};
- *------------------------------------------*/
+
+/**
+ * Warps a guild to a specific/random map or save point.
+ *
+ * @code{.herc}
+ * warpguild("<to map name>", <x>, <y>, <guild id>{{, <ignore mapflags>}, "<from map name>"});
+ * @endcode
+ *
+ **/
static BUILDIN(warpguild)
{
- struct map_session_data *sd = NULL;
- struct guild* g;
- int type;
- int i;
- int16 map_id = -1;
+ const int g_id = script_getnum(st, 5);
+ struct guild *g = guild->search(g_id);
- const char *str = script_getstr(st, 2);
- int x = script_getnum(st, 3);
- int y = script_getnum(st, 4);
- int gid = script_getnum(st, 5);
+ if (g == NULL) {
+ ShowError("script:%s: Guild not found! (%d)\n", script->getfuncname(st), g_id);
+ script_pushint(st, 0);
+ return false;
+ }
- if (script_hasdata(st, 6)) {
- map_id = map->mapname2mapid(script_getstr(st, 6));
+ const char *m_name_to = script_getstr(st, 2);
+ const int type = (strcmp(m_name_to, "Random") == 0) ? 0 :
+ (strcmp(m_name_to, "SavePointAll") == 0) ? 1 :
+ (strcmp(m_name_to, "SavePoint") == 0) ? 2 : 3;
+ int map_index = 0;
+
+ if (type == 3 && (map_index = script->mapindexname2id(st, m_name_to)) == 0) {
+ ShowError("script:%s: Target map not found! (%s)\n", script->getfuncname(st), m_name_to);
+ script_pushint(st, 0);
+ return false;
}
- g = guild->search(gid);
- if (g == NULL)
- return true;
+ int x = script_getnum(st, 3);
+ int y = script_getnum(st, 4);
- type = (strcmp(str, "Random") == 0) ? 0
- : (strcmp(str, "SavePointAll") == 0) ? 1
- : (strcmp(str, "SavePoint") == 0) ? 2
- : 3;
+ if (type == 2) {
+ struct map_session_data *sd = script->rid2sd(st);
- if (type == 2 && (sd = script->rid2sd(st)) == NULL)
- {// "SavePoint" uses save point of the currently attached player
- return true;
+ if (sd == NULL) {
+ ShowError("script:%s: No character attached for warp to save point!\n",
+ script->getfuncname(st));
+ script_pushint(st, 0);
+ return false;
+ }
+
+ map_index = sd->status.save_point.map;
+ x = sd->status.save_point.x;
+ y = sd->status.save_point.y;
}
- for (i = 0; i < MAX_GUILD; i++) {
- if (g->member[i].online && g->member[i].sd != NULL) {
- struct map_session_data *pl_sd = g->member[i].sd;
+ const int offset = (script_hasdata(st, 6) && script_isinttype(st, 6)) ? 1 : 0;
+ const bool ignore_mapflags = (offset == 1 && script_getnum(st, 6) != 0);
+ const char *m_name_from = script_hasdata(st, 6 + offset) ? script_getstr(st, 6 + offset) : NULL;
+
+ if (m_name_from != NULL && script->mapindexname2id(st, m_name_from) == 0) {
+ ShowError("script:%s: Source map not found! (%s)\n", script->getfuncname(st), m_name_from);
+ script_pushint(st, 0);
+ return false;
+ }
- if (map_id >= 0 && map_id != pl_sd->bl.m)
+ for (int i = 0; i < MAX_GUILD; i++) {
+ struct map_session_data *g_sd = g->member[i].sd;
+
+ if (g->member[i].online == 0 || g_sd == NULL || g_sd->status.guild_id != g_id || pc_isdead(g_sd))
+ continue;
+
+ if (m_name_from != NULL && strcmp(m_name_from, map->list[g_sd->bl.m].name) != 0)
+ continue;
+
+ if (!ignore_mapflags) {
+ if (((type == 0 || type > 2) && map->list[g_sd->bl.m].flag.nowarp == 1) ||
+ (type > 0 && map->list[g_sd->bl.m].flag.noreturn == 1))
continue;
+ }
- switch (type)
- {
- case 0: // Random
- if (!map->list[pl_sd->bl.m].flag.nowarp)
- pc->randomwarp(pl_sd, CLR_TELEPORT);
- break;
- case 1: // SavePointAll
- if (!map->list[pl_sd->bl.m].flag.noreturn)
- pc->setpos(pl_sd, pl_sd->status.save_point.map, pl_sd->status.save_point.x, pl_sd->status.save_point.y, CLR_TELEPORT);
- break;
- case 2: // SavePoint
- if (!map->list[pl_sd->bl.m].flag.noreturn)
- pc->setpos(pl_sd, sd->status.save_point.map, sd->status.save_point.x, sd->status.save_point.y, CLR_TELEPORT);
- break;
- case 3: // m,x,y
- if (!map->list[pl_sd->bl.m].flag.noreturn && !map->list[pl_sd->bl.m].flag.nowarp)
- pc->setpos(pl_sd, script->mapindexname2id(st, str), x, y, CLR_TELEPORT);
- break;
- }
+ if (type == 1) {
+ map_index = g_sd->status.save_point.map;
+ x = g_sd->status.save_point.x;
+ y = g_sd->status.save_point.y;
}
+
+ if (type > 0)
+ pc->setpos(g_sd, map_index, x, y, CLR_TELEPORT);
+ else
+ pc->randomwarp(g_sd, CLR_TELEPORT);
}
+ script_pushint(st, 1);
return true;
}
+
/*==========================================
* Force Heal a player (hp and sp)
*------------------------------------------*/
@@ -19126,6 +19162,9 @@ static BUILDIN(setpcblock)
if ((type & PCBLOCK_COMMANDS) != 0)
sd->block_action.commands = state;
+ if ((type & PCBLOCK_NPC) != 0)
+ sd->block_action.npc = state;
+
return true;
}
@@ -19163,6 +19202,9 @@ static BUILDIN(checkpcblock)
if (sd->block_action.commands != 0)
retval |= PCBLOCK_COMMANDS;
+ if (sd->block_action.npc != 0)
+ retval |= PCBLOCK_NPC;
+
script_pushint(st, retval);
return true;
}
@@ -25968,6 +26010,38 @@ static BUILDIN(openlapineddukddakboxui)
return true;
}
+// Reset 'Feeling' maps.
+BUILDIN(resetfeel)
+{
+ struct map_session_data *sd;
+
+ if (script_hasdata(st, 2))
+ sd = script->id2sd(st, script_getnum(st, 2));
+ else
+ sd = script->rid2sd(st);
+
+ if (sd != NULL)
+ pc->resetfeel(sd);
+
+ return true;
+}
+
+// Reset hatred target marks.
+BUILDIN(resethate)
+{
+ struct map_session_data *sd;
+
+ if (script_hasdata(st, 2))
+ sd = script->id2sd(st, script_getnum(st, 2));
+ else
+ sd = script->rid2sd(st);
+
+ if (sd != NULL)
+ pc->resethate(sd);
+
+ return true;
+}
+
/**
* Adds a built-in script function.
*
@@ -26196,8 +26270,8 @@ static void script_parse_builtin(void)
BUILDIN_DEF(warp,"sii?"),
BUILDIN_DEF(areawarp,"siiiisii??"),
BUILDIN_DEF(warpchar,"siii"), // [LuzZza]
- BUILDIN_DEF(warpparty,"siii??"), // [Fredzilla] [Paradox924X] [Jedzkie] [Dastgir]
- BUILDIN_DEF(warpguild,"siii?"), // [Fredzilla]
+ BUILDIN_DEF(warpparty,"siii???"), // [Fredzilla] [Paradox924X] [Jedzkie] [Dastgir]
+ BUILDIN_DEF(warpguild,"siii??"), // [Fredzilla]
BUILDIN_DEF(setlook,"ii"),
BUILDIN_DEF(changelook,"ii"), // Simulates but don't Store it
BUILDIN_DEF2(__setr,"set","rv"),
@@ -26349,6 +26423,8 @@ static void script_parse_builtin(void)
BUILDIN_DEF(resetlvl,"i"),
BUILDIN_DEF(resetstatus,""),
BUILDIN_DEF(resetskill,""),
+ BUILDIN_DEF(resetfeel, "?"),
+ BUILDIN_DEF(resethate, "?"),
BUILDIN_DEF(skillpointcount,""),
BUILDIN_DEF(changebase,"i?"),
BUILDIN_DEF(changesex,""),
@@ -27228,6 +27304,7 @@ static void script_hardcoded_constants(void)
script->set_constant("PCBLOCK_IMMUNE", PCBLOCK_IMMUNE, false, false);
script->set_constant("PCBLOCK_SITSTAND", PCBLOCK_SITSTAND, false, false);
script->set_constant("PCBLOCK_COMMANDS", PCBLOCK_COMMANDS, false, false);
+ script->set_constant("PCBLOCK_NPC", PCBLOCK_NPC, false, false);
script->constdb_comment("private airship responds");
script->set_constant("P_AIRSHIP_NONE", P_AIRSHIP_NONE, false, false);
diff --git a/src/map/script.h b/src/map/script.h
index 1cec02b97..7bcb5298c 100644
--- a/src/map/script.h
+++ b/src/map/script.h
@@ -529,16 +529,17 @@ enum script_petinfo_types {
* Player blocking actions related flags.
*/
enum pcblock_action_flag {
- PCBLOCK_NONE = 0x00,
- PCBLOCK_MOVE = 0x01,
- PCBLOCK_ATTACK = 0x02,
- PCBLOCK_SKILL = 0x04,
- PCBLOCK_USEITEM = 0x08,
- PCBLOCK_CHAT = 0x10,
- PCBLOCK_IMMUNE = 0x20,
- PCBLOCK_SITSTAND = 0x40,
- PCBLOCK_COMMANDS = 0x80,
- PCBLOCK_ALL = 0xFF,
+ PCBLOCK_NONE = 0x000,
+ PCBLOCK_MOVE = 0x001,
+ PCBLOCK_ATTACK = 0x002,
+ PCBLOCK_SKILL = 0x004,
+ PCBLOCK_USEITEM = 0x008,
+ PCBLOCK_CHAT = 0x010,
+ PCBLOCK_IMMUNE = 0x020,
+ PCBLOCK_SITSTAND = 0x040,
+ PCBLOCK_COMMANDS = 0x080,
+ PCBLOCK_NPC = 0x100,
+ PCBLOCK_ALL = 0x1FF,
};
/**
diff --git a/src/map/unit.c b/src/map/unit.c
index b9176fa69..d7d95c57b 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -1932,8 +1932,10 @@ static int unit_attack(struct block_list *src, int target_id, int continuous)
if (src->type == BL_PC) {
struct map_session_data *sd = BL_UCAST(BL_PC, src);
- if( target->type == BL_NPC ) { // monster npcs [Valaris]
- npc->click(sd, BL_UCAST(BL_NPC, target)); // submitted by leinsirk10 [Celest]
+ if (target->type == BL_NPC) { // monster npcs [Valaris]
+ if (sd->block_action.npc == 0) { // *pcblock script command
+ npc->click(sd, BL_UCAST(BL_NPC, target)); // submitted by leinsirk10 [Celest]
+ }
return 0;
}
if( pc_is90overweight(sd) || pc_isridingwug(sd) ) { // overweight or mounted on warg - stop attacking
diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc
index 89c9024cc..b2c3e80ac 100644
--- a/src/plugins/HPMHooking/HPMHooking.Defs.inc
+++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -2510,8 +2510,12 @@ typedef void (*HPMHOOK_pre_clif_pBGQueueRevokeReq) (int *fd, struct map_session_
typedef void (*HPMHOOK_post_clif_pBGQueueRevokeReq) (int fd, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_pBGQueueBattleBeginAck) (int *fd, struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_pBGQueueBattleBeginAck) (int fd, struct map_session_data *sd);
-typedef void (*HPMHOOK_pre_clif_pCashShopOpen) (int *fd, struct map_session_data **sd);
-typedef void (*HPMHOOK_post_clif_pCashShopOpen) (int fd, struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_pCashShopOpen1) (int *fd, struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_pCashShopOpen1) (int fd, struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_pCashShopOpen2) (int *fd, struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_pCashShopOpen2) (int fd, struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_pCashShopLimitedReq) (int *fd, struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_pCashShopLimitedReq) (int fd, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_pCashShopClose) (int *fd, struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_pCashShopClose) (int fd, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_pCashShopReqTab) (int *fd, struct map_session_data **sd);
@@ -2526,6 +2530,8 @@ typedef void (*HPMHOOK_pre_clif_pGuildInvite2) (int *fd, struct map_session_data
typedef void (*HPMHOOK_post_clif_pGuildInvite2) (int fd, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_cashShopBuyAck) (int *fd, struct map_session_data **sd, int *itemId, enum CASH_SHOP_BUY_RESULT *result);
typedef void (*HPMHOOK_post_clif_cashShopBuyAck) (int fd, struct map_session_data *sd, int itemId, enum CASH_SHOP_BUY_RESULT result);
+typedef void (*HPMHOOK_pre_clif_cashShopOpen) (int *fd, struct map_session_data **sd, int *tab);
+typedef void (*HPMHOOK_post_clif_cashShopOpen) (int fd, struct map_session_data *sd, int tab);
typedef void (*HPMHOOK_pre_clif_pPartyBookingAddFilter) (int *fd, struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_pPartyBookingAddFilter) (int fd, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_pPartyBookingSubFilter) (int *fd, struct map_session_data **sd);
@@ -6418,8 +6424,8 @@ typedef void (*HPMHOOK_pre_pc_update_idle_time) (struct map_session_data **sd, e
typedef void (*HPMHOOK_post_pc_update_idle_time) (struct map_session_data *sd, enum e_battle_config_idletime type);
typedef int (*HPMHOOK_pre_pc_have_magnifier) (struct map_session_data **sd);
typedef int (*HPMHOOK_post_pc_have_magnifier) (int retVal___, struct map_session_data *sd);
-typedef int (*HPMHOOK_pre_pc_have_item_chain) (struct map_session_data **sd, unsigned short *chain_id);
-typedef int (*HPMHOOK_post_pc_have_item_chain) (int retVal___, struct map_session_data *sd, unsigned short chain_id);
+typedef int (*HPMHOOK_pre_pc_have_item_chain) (struct map_session_data **sd, enum e_chain_cache *chain_cache_id);
+typedef int (*HPMHOOK_post_pc_have_item_chain) (int retVal___, struct map_session_data *sd, enum e_chain_cache chain_cache_id);
typedef bool (*HPMHOOK_pre_pc_process_chat_message) (struct map_session_data **sd, const char **message);
typedef bool (*HPMHOOK_post_pc_process_chat_message) (bool retVal___, struct map_session_data *sd, const char *message);
typedef int (*HPMHOOK_pre_pc_wis_message_to_gm) (const char **sender_name, int *permission, const char **message);
@@ -6436,6 +6442,8 @@ typedef bool (*HPMHOOK_pre_pc_has_second_costume) (struct map_session_data **sd)
typedef bool (*HPMHOOK_post_pc_has_second_costume) (bool retVal___, struct map_session_data *sd);
typedef bool (*HPMHOOK_pre_pc_expandInventory) (struct map_session_data **sd, int *adjustSize);
typedef bool (*HPMHOOK_post_pc_expandInventory) (bool retVal___, struct map_session_data *sd, int adjustSize);
+typedef bool (*HPMHOOK_pre_pc_auto_exp_insurance) (struct map_session_data **sd);
+typedef bool (*HPMHOOK_post_pc_auto_exp_insurance) (bool retVal___, struct map_session_data *sd);
#endif // MAP_PC_H
#ifdef MAP_NPC_H /* libpcre */
typedef pcre* (*HPMHOOK_pre_libpcre_compile) (const char **pattern, int *options, const char ***errptr, int **erroffset, const unsigned char **tableptr);
diff --git a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
index cdba77e09..570e20968 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
index a6043756d..48f24fcab 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
index b25025b1d..49fe48aac 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_char.sources.inc b/src/plugins/HPMHooking/HPMHooking_char.sources.inc
index 973f8aff3..9e723d83b 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.sources.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.sources.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc
index 556757d76..c81d42da8 100644
--- a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc
index 65680e072..790c8a3a5 100644
--- a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc
index 8f6076e2a..7eab86a08 100644
--- a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_login.sources.inc b/src/plugins/HPMHooking/HPMHooking_login.sources.inc
index 510cb8bc4..576796779 100644
--- a/src/plugins/HPMHooking/HPMHooking_login.sources.inc
+++ b/src/plugins/HPMHooking/HPMHooking_login.sources.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
index 9c4fe9b6f..16de79ecb 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -2100,8 +2100,12 @@ struct {
struct HPMHookPoint *HP_clif_pBGQueueRevokeReq_post;
struct HPMHookPoint *HP_clif_pBGQueueBattleBeginAck_pre;
struct HPMHookPoint *HP_clif_pBGQueueBattleBeginAck_post;
- struct HPMHookPoint *HP_clif_pCashShopOpen_pre;
- struct HPMHookPoint *HP_clif_pCashShopOpen_post;
+ struct HPMHookPoint *HP_clif_pCashShopOpen1_pre;
+ struct HPMHookPoint *HP_clif_pCashShopOpen1_post;
+ struct HPMHookPoint *HP_clif_pCashShopOpen2_pre;
+ struct HPMHookPoint *HP_clif_pCashShopOpen2_post;
+ struct HPMHookPoint *HP_clif_pCashShopLimitedReq_pre;
+ struct HPMHookPoint *HP_clif_pCashShopLimitedReq_post;
struct HPMHookPoint *HP_clif_pCashShopClose_pre;
struct HPMHookPoint *HP_clif_pCashShopClose_post;
struct HPMHookPoint *HP_clif_pCashShopReqTab_pre;
@@ -2116,6 +2120,8 @@ struct {
struct HPMHookPoint *HP_clif_pGuildInvite2_post;
struct HPMHookPoint *HP_clif_cashShopBuyAck_pre;
struct HPMHookPoint *HP_clif_cashShopBuyAck_post;
+ struct HPMHookPoint *HP_clif_cashShopOpen_pre;
+ struct HPMHookPoint *HP_clif_cashShopOpen_post;
struct HPMHookPoint *HP_clif_pPartyBookingAddFilter_pre;
struct HPMHookPoint *HP_clif_pPartyBookingAddFilter_post;
struct HPMHookPoint *HP_clif_pPartyBookingSubFilter_pre;
@@ -5020,6 +5026,8 @@ struct {
struct HPMHookPoint *HP_pc_has_second_costume_post;
struct HPMHookPoint *HP_pc_expandInventory_pre;
struct HPMHookPoint *HP_pc_expandInventory_post;
+ struct HPMHookPoint *HP_pc_auto_exp_insurance_pre;
+ struct HPMHookPoint *HP_pc_auto_exp_insurance_post;
struct HPMHookPoint *HP_libpcre_compile_pre;
struct HPMHookPoint *HP_libpcre_compile_post;
struct HPMHookPoint *HP_libpcre_study_pre;
@@ -8937,8 +8945,12 @@ struct {
int HP_clif_pBGQueueRevokeReq_post;
int HP_clif_pBGQueueBattleBeginAck_pre;
int HP_clif_pBGQueueBattleBeginAck_post;
- int HP_clif_pCashShopOpen_pre;
- int HP_clif_pCashShopOpen_post;
+ int HP_clif_pCashShopOpen1_pre;
+ int HP_clif_pCashShopOpen1_post;
+ int HP_clif_pCashShopOpen2_pre;
+ int HP_clif_pCashShopOpen2_post;
+ int HP_clif_pCashShopLimitedReq_pre;
+ int HP_clif_pCashShopLimitedReq_post;
int HP_clif_pCashShopClose_pre;
int HP_clif_pCashShopClose_post;
int HP_clif_pCashShopReqTab_pre;
@@ -8953,6 +8965,8 @@ struct {
int HP_clif_pGuildInvite2_post;
int HP_clif_cashShopBuyAck_pre;
int HP_clif_cashShopBuyAck_post;
+ int HP_clif_cashShopOpen_pre;
+ int HP_clif_cashShopOpen_post;
int HP_clif_pPartyBookingAddFilter_pre;
int HP_clif_pPartyBookingAddFilter_post;
int HP_clif_pPartyBookingSubFilter_pre;
@@ -11857,6 +11871,8 @@ struct {
int HP_pc_has_second_costume_post;
int HP_pc_expandInventory_pre;
int HP_pc_expandInventory_post;
+ int HP_pc_auto_exp_insurance_pre;
+ int HP_pc_auto_exp_insurance_post;
int HP_libpcre_compile_pre;
int HP_libpcre_compile_post;
int HP_libpcre_study_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
index 99e3fd5a1..7b81bac49 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1074,7 +1074,9 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->pBGQueueCheckState, HP_clif_pBGQueueCheckState) },
{ HP_POP(clif->pBGQueueRevokeReq, HP_clif_pBGQueueRevokeReq) },
{ HP_POP(clif->pBGQueueBattleBeginAck, HP_clif_pBGQueueBattleBeginAck) },
- { HP_POP(clif->pCashShopOpen, HP_clif_pCashShopOpen) },
+ { HP_POP(clif->pCashShopOpen1, HP_clif_pCashShopOpen1) },
+ { HP_POP(clif->pCashShopOpen2, HP_clif_pCashShopOpen2) },
+ { HP_POP(clif->pCashShopLimitedReq, HP_clif_pCashShopLimitedReq) },
{ HP_POP(clif->pCashShopClose, HP_clif_pCashShopClose) },
{ HP_POP(clif->pCashShopReqTab, HP_clif_pCashShopReqTab) },
{ HP_POP(clif->pCashShopSchedule, HP_clif_pCashShopSchedule) },
@@ -1082,6 +1084,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->pPartyTick, HP_clif_pPartyTick) },
{ HP_POP(clif->pGuildInvite2, HP_clif_pGuildInvite2) },
{ HP_POP(clif->cashShopBuyAck, HP_clif_cashShopBuyAck) },
+ { HP_POP(clif->cashShopOpen, HP_clif_cashShopOpen) },
{ HP_POP(clif->pPartyBookingAddFilter, HP_clif_pPartyBookingAddFilter) },
{ HP_POP(clif->pPartyBookingSubFilter, HP_clif_pPartyBookingSubFilter) },
{ HP_POP(clif->pPartyBookingReqVolunteer, HP_clif_pPartyBookingReqVolunteer) },
@@ -2568,6 +2571,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(pc->isDeathPenaltyJob, HP_pc_isDeathPenaltyJob) },
{ HP_POP(pc->has_second_costume, HP_pc_has_second_costume) },
{ HP_POP(pc->expandInventory, HP_pc_expandInventory) },
+ { HP_POP(pc->auto_exp_insurance, HP_pc_auto_exp_insurance) },
/* pcre_interface */
{ HP_POP(libpcre->compile, HP_libpcre_compile) },
{ HP_POP(libpcre->study, HP_libpcre_study) },
diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
index 147458d09..7873e544a 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -27370,13 +27370,13 @@ void HP_clif_pBGQueueBattleBeginAck(int fd, struct map_session_data *sd) {
}
return;
}
-void HP_clif_pCashShopOpen(int fd, struct map_session_data *sd) {
+void HP_clif_pCashShopOpen1(int fd, struct map_session_data *sd) {
int hIndex = 0;
- if (HPMHooks.count.HP_clif_pCashShopOpen_pre > 0) {
+ if (HPMHooks.count.HP_clif_pCashShopOpen1_pre > 0) {
void (*preHookFunc) (int *fd, struct map_session_data **sd);
*HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_clif_pCashShopOpen_pre[hIndex].func;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen1_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_pCashShopOpen1_pre[hIndex].func;
preHookFunc(&fd, &sd);
}
if (*HPMforce_return) {
@@ -27385,12 +27385,64 @@ void HP_clif_pCashShopOpen(int fd, struct map_session_data *sd) {
}
}
{
- HPMHooks.source.clif.pCashShopOpen(fd, sd);
+ HPMHooks.source.clif.pCashShopOpen1(fd, sd);
}
- if (HPMHooks.count.HP_clif_pCashShopOpen_post > 0) {
+ if (HPMHooks.count.HP_clif_pCashShopOpen1_post > 0) {
void (*postHookFunc) (int fd, struct map_session_data *sd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_clif_pCashShopOpen_post[hIndex].func;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen1_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_pCashShopOpen1_post[hIndex].func;
+ postHookFunc(fd, sd);
+ }
+ }
+ return;
+}
+void HP_clif_pCashShopOpen2(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_pCashShopOpen2_pre > 0) {
+ void (*preHookFunc) (int *fd, struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen2_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_pCashShopOpen2_pre[hIndex].func;
+ preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pCashShopOpen2(fd, sd);
+ }
+ if (HPMHooks.count.HP_clif_pCashShopOpen2_post > 0) {
+ void (*postHookFunc) (int fd, struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen2_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_pCashShopOpen2_post[hIndex].func;
+ postHookFunc(fd, sd);
+ }
+ }
+ return;
+}
+void HP_clif_pCashShopLimitedReq(int fd, struct map_session_data *sd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_pCashShopLimitedReq_pre > 0) {
+ void (*preHookFunc) (int *fd, struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopLimitedReq_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_pCashShopLimitedReq_pre[hIndex].func;
+ preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.pCashShopLimitedReq(fd, sd);
+ }
+ if (HPMHooks.count.HP_clif_pCashShopLimitedReq_post > 0) {
+ void (*postHookFunc) (int fd, struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopLimitedReq_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_pCashShopLimitedReq_post[hIndex].func;
postHookFunc(fd, sd);
}
}
@@ -27578,6 +27630,32 @@ void HP_clif_cashShopBuyAck(int fd, struct map_session_data *sd, int itemId, enu
}
return;
}
+void HP_clif_cashShopOpen(int fd, struct map_session_data *sd, int tab) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_cashShopOpen_pre > 0) {
+ void (*preHookFunc) (int *fd, struct map_session_data **sd, int *tab);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_cashShopOpen_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_cashShopOpen_pre[hIndex].func;
+ preHookFunc(&fd, &sd, &tab);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.cashShopOpen(fd, sd, tab);
+ }
+ if (HPMHooks.count.HP_clif_cashShopOpen_post > 0) {
+ void (*postHookFunc) (int fd, struct map_session_data *sd, int tab);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_cashShopOpen_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_cashShopOpen_post[hIndex].func;
+ postHookFunc(fd, sd, tab);
+ }
+ }
+ return;
+}
void HP_clif_pPartyBookingAddFilter(int fd, struct map_session_data *sd) {
int hIndex = 0;
if (HPMHooks.count.HP_clif_pPartyBookingAddFilter_pre > 0) {
@@ -66565,15 +66643,15 @@ int HP_pc_have_magnifier(struct map_session_data *sd) {
}
return retVal___;
}
-int HP_pc_have_item_chain(struct map_session_data *sd, unsigned short chain_id) {
+int HP_pc_have_item_chain(struct map_session_data *sd, enum e_chain_cache chain_cache_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_pc_have_item_chain_pre > 0) {
- int (*preHookFunc) (struct map_session_data **sd, unsigned short *chain_id);
+ int (*preHookFunc) (struct map_session_data **sd, enum e_chain_cache *chain_cache_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_have_item_chain_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_pc_have_item_chain_pre[hIndex].func;
- retVal___ = preHookFunc(&sd, &chain_id);
+ retVal___ = preHookFunc(&sd, &chain_cache_id);
}
if (*HPMforce_return) {
*HPMforce_return = false;
@@ -66581,13 +66659,13 @@ int HP_pc_have_item_chain(struct map_session_data *sd, unsigned short chain_id)
}
}
{
- retVal___ = HPMHooks.source.pc.have_item_chain(sd, chain_id);
+ retVal___ = HPMHooks.source.pc.have_item_chain(sd, chain_cache_id);
}
if (HPMHooks.count.HP_pc_have_item_chain_post > 0) {
- int (*postHookFunc) (int retVal___, struct map_session_data *sd, unsigned short chain_id);
+ int (*postHookFunc) (int retVal___, struct map_session_data *sd, enum e_chain_cache chain_cache_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_have_item_chain_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_pc_have_item_chain_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, sd, chain_id);
+ retVal___ = postHookFunc(retVal___, sd, chain_cache_id);
}
}
return retVal___;
@@ -66813,6 +66891,33 @@ bool HP_pc_expandInventory(struct map_session_data *sd, int adjustSize) {
}
return retVal___;
}
+bool HP_pc_auto_exp_insurance(struct map_session_data *sd) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_pc_auto_exp_insurance_pre > 0) {
+ bool (*preHookFunc) (struct map_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_auto_exp_insurance_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_pc_auto_exp_insurance_pre[hIndex].func;
+ retVal___ = preHookFunc(&sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.pc.auto_exp_insurance(sd);
+ }
+ if (HPMHooks.count.HP_pc_auto_exp_insurance_post > 0) {
+ bool (*postHookFunc) (bool retVal___, struct map_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_pc_auto_exp_insurance_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_pc_auto_exp_insurance_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, sd);
+ }
+ }
+ return retVal___;
+}
/* pcre_interface */
pcre* HP_libpcre_compile(const char *pattern, int options, const char **errptr, int *erroffset, const unsigned char *tableptr) {
int hIndex = 0;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.sources.inc b/src/plugins/HPMHooking/HPMHooking_map.sources.inc
index 786b60288..53ee71a03 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.sources.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.sources.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2019 Hercules Dev Team
+ * Copyright (C) 2013-2020 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/mapcache.c b/src/plugins/mapcache.c
index 5e44492f6..208f39abb 100644
--- a/src/plugins/mapcache.c
+++ b/src/plugins/mapcache.c
@@ -281,7 +281,28 @@ bool mapcache_cache_map(const char *mapname)
if (rsw == NULL) {
water_height = NO_WATER;
} else {
- water_height = (int)GetFloat(rsw + 166);
+ if (memcmp(rsw, "GRSW", 4) != 0) {
+ ShowError("mapcache_cache_map: file %s is not in rsw format\n", filepath);
+ aFree(rsw);
+ return false;
+ }
+ int major_version = rsw[4];
+ int minor_version = rsw[5];
+ if (major_version > 2 || (major_version == 2 && minor_version > 2)) {
+ ShowError("mapcache_cache_map: Unsupported version %d.%d for rsw file %s\n", major_version, minor_version, filepath);
+ aFree(rsw);
+ return false;
+ }
+ if (major_version < 1 || (major_version == 1 && minor_version <= 4)) {
+ ShowError("mapcache_cache_map: Unsupported version %d.%d for rsw file %s\n", major_version, minor_version, filepath);
+ aFree(rsw);
+ return false;
+ }
+ int offset = 166;
+ if (major_version == 2 && minor_version >= 2) {
+ offset = 167;
+ }
+ water_height = (int)GetFloat(rsw + offset);
aFree(rsw);
}