From 5ade870f842c7be518f6d9112b2592c25072ee2c Mon Sep 17 00:00:00 2001 From: RubenatorX Date: Thu, 11 Nov 2021 07:51:27 -0700 Subject: [PATCH 1/4] Update Master Level 2 Changed to use boolbits and added Master Levels menu display data --- addons/libs/packets/fields.lua | 47 +++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/addons/libs/packets/fields.lua b/addons/libs/packets/fields.lua index 5133d0255..36b4f6676 100644 --- a/addons/libs/packets/fields.lua +++ b/addons/libs/packets/fields.lua @@ -1519,6 +1519,45 @@ fields.incoming[0x01B] = L{ {ctype='unsigned char', label='Mentor Icon', fn=e+{'mentor icon'}},-- 65 {ctype='unsigned char', label='Mastery Rank'}, -- 66 {ctype='unsigned char', label='_unknown8'}, -- 67 + {ctype='bit[1]', label='_junk1'}, -- 68 + {ctype='boolbit', label='Warrior Master'}, -- 68 Indicates if the job is mastered, but only after receiving "Master Breaker" KI. Used to populate "Master Levels" Menu + {ctype='boolbit', label='Monk Master'}, -- 68 + {ctype='boolbit', label='White Mage Master'}, -- 68 + {ctype='boolbit', label='Black Mage Master'}, -- 68 + {ctype='boolbit', label='Red Mage Master'}, -- 68 + {ctype='boolbit', label='Thief Master'}, -- 68 + {ctype='boolbit', label='Paladin Master'}, -- 68 + {ctype='boolbit', label='Dark Knight Master'}, -- 69 + {ctype='boolbit', label='Beastmaster Master'}, -- 69 + {ctype='boolbit', label='Bard Master'}, -- 69 + {ctype='boolbit', label='Ranger Master'}, -- 69 + {ctype='boolbit', label='Samurai Master'}, -- 69 + {ctype='boolbit', label='Ninja Master'}, -- 69 + {ctype='boolbit', label='Dragoon Master'}, -- 69 + {ctype='boolbit', label='Summoner Master'}, -- 69 + {ctype='boolbit', label='Blue Mage Master'}, -- 6A + {ctype='boolbit', label='Corsair Master'}, -- 6A + {ctype='boolbit', label='Puppetmaster Master'}, -- 6A + {ctype='boolbit', label='Dancer Master'}, -- 6A + {ctype='boolbit', label='Scholar Master'}, -- 6A + {ctype='boolbit', label='Geomancer Master'}, -- 6A + {ctype='boolbit', label='Rune Fencer Master'}, -- 6A + {ctype='bit[1]', label='_junk2'}, -- 6A + {ctype='unsigned short', label='_junk3'}, -- 6B + {ctype='unsigned char', label='Warrior Master Level'}, -- 6D + {ctype='unsigned char', label='Monk Master Level'}, -- 6E + {ctype='unsigned char', label='White Mage Master Level'}, -- 6F + {ctype='unsigned char', label='Black Mage Master Level'}, -- 70 + {ctype='unsigned char', label='Red Mage Master Level'}, -- 71 + {ctype='unsigned char', label='Thief Master Level'}, -- 72 + {ctype='unsigned char', label='Paladin Master Level'}, -- 73 + {ctype='unsigned char', label='Dark Knight Master Level'}, -- 74 + {ctype='unsigned char', label='Beastmaster Master Level'}, -- 75 + {ctype='unsigned char', label='Bard Master Level'}, -- 76 + {ctype='unsigned char', label='Dancer Master Level'}, -- 77 + {ctype='unsigned char', label='Scholar Master Level'}, -- 78 + {ctype='unsigned char', label='Geomancer Master Level'}, -- 79 + {ctype='unsigned char', label='Rune Fencer Master Level'}, -- 7A } -- Inventory Count @@ -2993,7 +3032,7 @@ fields.incoming[0x061] = L{ {ctype='unsigned int', label='_junk2'}, -- 60 {ctype='unsigned char', label='_unknown7'}, -- 64 {ctype='unsigned char', label='Master Level'}, -- 65 - {ctype='bit[1]', label='Master Breaker'}, -- 66 + {ctype='boolbit', label='Master Breaker'}, -- 66 {ctype='bit[15]', label='_junk3'}, -- 66 {ctype='unsigned int', label='Current Exemplar Points'}, -- 68 {ctype='unsigned int', label='Required Exemplar Points'}, -- 6C @@ -3382,7 +3421,7 @@ func.incoming[0x0C9][0x01] = L{ {ctype='unsigned char', label='Sub Job Level'}, -- 25 {ctype='unsigned char', label='Main Job', fn=job}, -- 26 {ctype='unsigned char', label='Master Level'}, -- 27 - {ctype='bit[1]', label='Master Breaker'}, -- 28 + {ctype='boolbit', label='Master Breaker'}, -- 28 {ctype='bit[7]', label='_junk2'}, -- 28 {ctype='data[43]', label='_unknown5'}, -- 29 At least the first two bytes and the last twelve bytes are junk, possibly more } @@ -3467,7 +3506,7 @@ fields.incoming[0x0DD] = L{ {ctype='unsigned char', label='Sub job', fn=job}, -- 24 {ctype='unsigned char', label='Sub job level'}, -- 25 {ctype='unsigned char', label='Master Level'}, -- 26 - {ctype='bit[1]', label='Master Breaker'}, -- 27 + {ctype='boolbit', label='Master Breaker'}, -- 27 {ctype='bit[7]', label='_junk2'}, -- 27 {ctype='char*', label='Name'}, -- 28 } @@ -3499,7 +3538,7 @@ fields.incoming[0x0DF] = L{ {ctype='unsigned char', label='Sub job', fn=job}, -- 22 {ctype='unsigned char', label='Sub job level'}, -- 23 {ctype='unsigned char', label='Master Level'}, -- 24 - {ctype='bit[1]', label='Master Breaker'}, -- 25 + {ctype='boolbit', label='Master Breaker'}, -- 25 {ctype='bit[7]', label='_junk2'}, -- 25 } From 22b865b5a08d919688a2a2182745056377596166 Mon Sep 17 00:00:00 2001 From: RubenatorX Date: Thu, 11 Nov 2021 08:44:12 -0700 Subject: [PATCH 2/4] Master Levels Update 2 Change to use Refs --- addons/libs/packets/fields.lua | 45 +++++++--------------------------- 1 file changed, 9 insertions(+), 36 deletions(-) diff --git a/addons/libs/packets/fields.lua b/addons/libs/packets/fields.lua index 36b4f6676..e4baefcdc 100644 --- a/addons/libs/packets/fields.lua +++ b/addons/libs/packets/fields.lua @@ -1490,6 +1490,13 @@ fields.incoming[0x017] = function() end end() +types.job_master= L{ + {ctype='boolbit', label='Master'} +} +types.job_master_level= L{ + {ctype='unsigned char', label='Master Level'} +} + -- Job Info fields.incoming[0x01B] = L{ {ctype='unsigned int', label='_unknown1'}, -- 04 Observed value of 05 @@ -1520,44 +1527,10 @@ fields.incoming[0x01B] = L{ {ctype='unsigned char', label='Mastery Rank'}, -- 66 {ctype='unsigned char', label='_unknown8'}, -- 67 {ctype='bit[1]', label='_junk1'}, -- 68 - {ctype='boolbit', label='Warrior Master'}, -- 68 Indicates if the job is mastered, but only after receiving "Master Breaker" KI. Used to populate "Master Levels" Menu - {ctype='boolbit', label='Monk Master'}, -- 68 - {ctype='boolbit', label='White Mage Master'}, -- 68 - {ctype='boolbit', label='Black Mage Master'}, -- 68 - {ctype='boolbit', label='Red Mage Master'}, -- 68 - {ctype='boolbit', label='Thief Master'}, -- 68 - {ctype='boolbit', label='Paladin Master'}, -- 68 - {ctype='boolbit', label='Dark Knight Master'}, -- 69 - {ctype='boolbit', label='Beastmaster Master'}, -- 69 - {ctype='boolbit', label='Bard Master'}, -- 69 - {ctype='boolbit', label='Ranger Master'}, -- 69 - {ctype='boolbit', label='Samurai Master'}, -- 69 - {ctype='boolbit', label='Ninja Master'}, -- 69 - {ctype='boolbit', label='Dragoon Master'}, -- 69 - {ctype='boolbit', label='Summoner Master'}, -- 69 - {ctype='boolbit', label='Blue Mage Master'}, -- 6A - {ctype='boolbit', label='Corsair Master'}, -- 6A - {ctype='boolbit', label='Puppetmaster Master'}, -- 6A - {ctype='boolbit', label='Dancer Master'}, -- 6A - {ctype='boolbit', label='Scholar Master'}, -- 6A - {ctype='boolbit', label='Geomancer Master'}, -- 6A - {ctype='boolbit', label='Rune Fencer Master'}, -- 6A + {ref=types.job_master, lookup={res.jobs, 0x01}, count=0x16}, -- 68 {ctype='bit[1]', label='_junk2'}, -- 6A {ctype='unsigned short', label='_junk3'}, -- 6B - {ctype='unsigned char', label='Warrior Master Level'}, -- 6D - {ctype='unsigned char', label='Monk Master Level'}, -- 6E - {ctype='unsigned char', label='White Mage Master Level'}, -- 6F - {ctype='unsigned char', label='Black Mage Master Level'}, -- 70 - {ctype='unsigned char', label='Red Mage Master Level'}, -- 71 - {ctype='unsigned char', label='Thief Master Level'}, -- 72 - {ctype='unsigned char', label='Paladin Master Level'}, -- 73 - {ctype='unsigned char', label='Dark Knight Master Level'}, -- 74 - {ctype='unsigned char', label='Beastmaster Master Level'}, -- 75 - {ctype='unsigned char', label='Bard Master Level'}, -- 76 - {ctype='unsigned char', label='Dancer Master Level'}, -- 77 - {ctype='unsigned char', label='Scholar Master Level'}, -- 78 - {ctype='unsigned char', label='Geomancer Master Level'}, -- 79 - {ctype='unsigned char', label='Rune Fencer Master Level'}, -- 7A + {ref=types.job_master_level,lookup={res.jobs, 0x01}, count=0x16}, -- 6D } -- Inventory Count From ffa2cce145973ae61bbb5f3ba88804108ce70e5a Mon Sep 17 00:00:00 2001 From: RubenatorX Date: Thu, 11 Nov 2021 08:47:11 -0700 Subject: [PATCH 3/4] Master Level Update 2 Re-add Master flags comment --- addons/libs/packets/fields.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/libs/packets/fields.lua b/addons/libs/packets/fields.lua index e4baefcdc..77f3f4406 100644 --- a/addons/libs/packets/fields.lua +++ b/addons/libs/packets/fields.lua @@ -1527,7 +1527,7 @@ fields.incoming[0x01B] = L{ {ctype='unsigned char', label='Mastery Rank'}, -- 66 {ctype='unsigned char', label='_unknown8'}, -- 67 {ctype='bit[1]', label='_junk1'}, -- 68 - {ref=types.job_master, lookup={res.jobs, 0x01}, count=0x16}, -- 68 + {ref=types.job_master, lookup={res.jobs, 0x01}, count=0x16}, -- 68 Indicates if the job is mastered, but only after receiving "Master Breaker" KI. Used to populate "Master Levels" Menu {ctype='bit[1]', label='_junk2'}, -- 6A {ctype='unsigned short', label='_junk3'}, -- 6B {ref=types.job_master_level,lookup={res.jobs, 0x01}, count=0x16}, -- 6D From cf18fa94f889d2c5174d1d4bbc1d436d5fb53393 Mon Sep 17 00:00:00 2001 From: RubenatorX Date: Thu, 11 Nov 2021 08:48:25 -0700 Subject: [PATCH 4/4] Master Level Update 2 spacing fix --- addons/libs/packets/fields.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/libs/packets/fields.lua b/addons/libs/packets/fields.lua index 77f3f4406..769a43ed6 100644 --- a/addons/libs/packets/fields.lua +++ b/addons/libs/packets/fields.lua @@ -3394,7 +3394,7 @@ func.incoming[0x0C9][0x01] = L{ {ctype='unsigned char', label='Sub Job Level'}, -- 25 {ctype='unsigned char', label='Main Job', fn=job}, -- 26 {ctype='unsigned char', label='Master Level'}, -- 27 - {ctype='boolbit', label='Master Breaker'}, -- 28 + {ctype='boolbit', label='Master Breaker'}, -- 28 {ctype='bit[7]', label='_junk2'}, -- 28 {ctype='data[43]', label='_unknown5'}, -- 29 At least the first two bytes and the last twelve bytes are junk, possibly more }