Texture work

This commit is contained in:
Akkadius
2018-12-31 03:18:59 -06:00
parent a24dfd35e8
commit 11a43cd320
34 changed files with 1229 additions and 756 deletions
+8 -8
View File
@@ -1184,15 +1184,15 @@ struct SpecialMesg_Struct
** When somebody changes what they're wearing or give a pet a weapon (model changes)
** Length: 19 Bytes
*/
struct WearChange_Struct{
/*000*/ uint16 spawn_id;
/*002*/ uint32 material;
/*006*/ uint32 unknown06;
/*010*/ uint32 elite_material; // 1 for Drakkin Elite Material
/*014*/ uint32 hero_forge_model; // New to VoA
/*018*/ uint32 unknown18; // New to RoF
struct WearChange_Struct {
/*000*/ uint16 spawn_id;
/*002*/ uint32 material;
/*006*/ uint32 unknown06;
/*010*/ uint32 elite_material; // 1 for Drakkin Elite Material
/*014*/ uint32 hero_forge_model; // New to VoA
/*018*/ uint32 unknown18; // New to RoF
/*022*/ EQEmu::textures::Tint_Struct color;
/*026*/ uint8 wear_slot_id;
/*026*/ uint8 wear_slot_id;
/*027*/
};
+3 -1
View File
@@ -93,6 +93,7 @@ namespace Logs {
Traps,
NPCRoamBox,
NPCScaling,
MobAppearance,
MaxCategoryID /* Don't Remove this */
};
@@ -151,7 +152,8 @@ namespace Logs {
"Food",
"Traps",
"NPC Roam Box",
"NPC Scaling"
"NPC Scaling",
"Mob Appearance"
};
}
+4
View File
@@ -84,6 +84,7 @@ EQEmu::ItemInstance::ItemInstance(const ItemData* item, int16 charges) {
m_ornamentidfile = 0;
m_ornament_hero_model = 0;
m_recast_timestamp = 0;
m_new_id_file = 0;
}
EQEmu::ItemInstance::ItemInstance(SharedDatabase *db, uint32 item_id, int16 charges) {
@@ -117,6 +118,7 @@ EQEmu::ItemInstance::ItemInstance(SharedDatabase *db, uint32 item_id, int16 char
m_ornamentidfile = 0;
m_ornament_hero_model = 0;
m_recast_timestamp = 0;
m_new_id_file = 0;
}
EQEmu::ItemInstance::ItemInstance(ItemInstTypes use_type) {
@@ -138,6 +140,7 @@ EQEmu::ItemInstance::ItemInstance(ItemInstTypes use_type) {
m_ornamentidfile = 0;
m_ornament_hero_model = 0;
m_recast_timestamp = 0;
m_new_id_file = 0;
}
// Make a copy of an EQEmu::ItemInstance object
@@ -195,6 +198,7 @@ EQEmu::ItemInstance::ItemInstance(const ItemInstance& copy)
m_ornamentidfile = copy.m_ornamentidfile;
m_ornament_hero_model = copy.m_ornament_hero_model;
m_recast_timestamp = copy.m_recast_timestamp;
m_new_id_file = copy.m_new_id_file;
}
// Clean up container contents
+3
View File
@@ -203,6 +203,8 @@ namespace EQEmu
void SetOrnamentIcon(uint32 ornament_icon) { m_ornamenticon = ornament_icon; }
uint32 GetOrnamentationIDFile() const { return m_ornamentidfile; }
void SetOrnamentationIDFile(uint32 ornament_idfile) { m_ornamentidfile = ornament_idfile; }
uint32 GetNewIDFile() const { return m_new_id_file; }
void SetNewIDFile(uint32 new_id_file) { m_new_id_file = new_id_file; }
uint32 GetOrnamentHeroModel(int32 material_slot = -1) const;
void SetOrnamentHeroModel(uint32 ornament_hero_model) { m_ornament_hero_model = ornament_hero_model; }
uint32 GetRecastTimestamp() const { return m_recast_timestamp; }
@@ -306,6 +308,7 @@ namespace EQEmu
bool m_scaling;
uint32 m_ornamenticon;
uint32 m_ornamentidfile;
uint32 m_new_id_file;
uint32 m_ornament_hero_model;
uint32 m_recast_timestamp;
+9 -1
View File
@@ -5488,8 +5488,16 @@ namespace RoF2
ob.write(item->Lore, strlen(item->Lore));
ob.write("\0", 1);
if (strlen(item->IDFile) > 0)
if (inst->GetNewIDFile() > 0) {
char new_id_file[30];
memset(new_id_file, 0x0, 30);
sprintf(new_id_file, "IT%d", inst->GetNewIDFile());
ob.write(new_id_file, strlen(new_id_file));
}
else if (strlen(item->IDFile) > 0) {
ob.write(item->IDFile, strlen(item->IDFile));
}
ob.write("\0", 1);
ob.write("\0", 1);
+23
View File
@@ -65,6 +65,12 @@ namespace EQEmu
uint32 Unknown2; // same as material?
};
struct InternalTexture_Struct {
uint32 HerosForgeModel;
uint32 Material;
uint32 Color;
};
struct TextureMaterial_Struct {
uint32 Material;
};
@@ -100,6 +106,23 @@ namespace EQEmu
};
};
struct InternalTextureProfile {
union {
struct {
textures::InternalTexture_Struct Head;
textures::InternalTexture_Struct Chest;
textures::InternalTexture_Struct Arms;
textures::InternalTexture_Struct Wrist;
textures::InternalTexture_Struct Hands;
textures::InternalTexture_Struct Legs;
textures::InternalTexture_Struct Feet;
textures::InternalTexture_Struct Primary;
textures::InternalTexture_Struct Secondary;
};
textures::InternalTexture_Struct Slot[textures::materialCount];
};
};
struct TextureMaterialProfile {
union {
struct {