Go Back   EQEmulator Home > EQEmulator Forums > Archives > Archive::Development > Archive::Tools

Archive::Tools Archive area for Tools's posts that were moved here after an inactivity period of 90 days.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 09-15-2004, 03:47 AM
daeken_bb
Discordant
 
Join Date: Mar 2003
Location: Chambersburg, PA
Posts: 469
Default Omens Of War .TER File Format

I've started reverse-engineering the .TER file format that's used in OoW zones and what follows is my progress thus far.

The header is as follows:

Code:
struct Header {
  char magic[4]; // Constant at EQGT
  uint32 unk1; // Seems constant at 2... version?
  uint32 list_length; // This is the size of the object/property list that follows
  uint32 object_count; // This is the number of objects in the list (NOT the number of elements total)
  uint32 vertex_count; // This seems to be the count of vertices in the mesh.
  uint32 poly_count; // Seems to be the count of polygons in the mesh.
};
After the header comes a list of objects and their properties.
Each element is a null-terminated name followed by a null-terminated value.
If the name starts with 'e_' it is a property of the previous object named, otherwise it's naming a new object and its associated base texture.

For example, the list for wall of slaughter is:

colmap01 colmap01.dds
e_TextureDiffuse0 palmap01a.bmp
e_TexturePalette0 HW_rd01_c.dds
e_TextureDetail0 e_fScale0
e_fGrassDensity0 FT_RD2_c.dds
e_TextureDetail1 e_fScale1
e_fGrassDensity1 FT_path01.dds
e_TextureDetail2 e_fScale2
e_fGrassDensity2 FT_plateau01.dds
e_TextureDetail3 e_fScale3
e_fGrassDensity3 FT_grass01.dds
e_TextureDetail4 e_fScale4
e_fGrassDensity4 FT_plateau02.dds
e_TextureDetail5 e_fScale5
e_fGrassDensity5 None
e_TextureDetail6 e_fScale6
e_fGrassDensity6 None
e_TextureDetail7 e_fScale7
e_fGrassDensity7 None
e_TextureDetail8 e_fScale8
e_fGrassDensity8 None
e_TextureDetail9 e_fScale9
e_fGrassDensity9 Opaque_MaxC1DTP.fx
colmap02 colmap02.dds
e_TextureDiffuse0 palmap02a.bmp
e_TexturePalette0 HW_rd01_c.dds
e_TextureDetail0 e_fScale0
e_fGrassDensity0 FT_RD2_c.dds
e_TextureDetail1 e_fScale1
e_fGrassDensity1 FT_path01.dds
e_TextureDetail2 e_fScale2
e_fGrassDensity2 FT_plateau01.dds
e_TextureDetail3 e_fScale3
e_fGrassDensity3 FT_grass01.dds
e_TextureDetail4 e_fScale4
e_fGrassDensity4 FT_plateau02.dds
e_TextureDetail5 e_fScale5
e_fGrassDensity5 None
e_TextureDetail6 e_fScale6
e_fGrassDensity6 None
e_TextureDetail7 e_fScale7
e_fGrassDensity7 None
e_TextureDetail8 e_fScale8
e_fGrassDensity8 None
e_TextureDetail9 e_fScale9
e_fGrassDensity9 Opaque_MaxC1DTP.fx
colmap03 colmap03.dds
e_TextureDiffuse0 palmap03a.bmp
e_TexturePalette0 HW_rd01_c.dds
e_TextureDetail0 e_fScale0
e_fGrassDensity0 FT_RD2_c.dds
e_TextureDetail1 e_fScale1
e_fGrassDensity1 FT_path01.dds
e_TextureDetail2 e_fScale2
e_fGrassDensity2 FT_plateau01.dds
e_TextureDetail3 e_fScale3
e_fGrassDensity3 FT_DRD2_c.dds
e_TextureDetail4 e_fScale4
e_fGrassDensity4 FT_plateau02.dds
e_TextureDetail5 e_fScale5
e_fGrassDensity5 None
e_TextureDetail6 e_fScale6
e_fGrassDensity6 None
e_TextureDetail7 e_fScale7
e_fGrassDensity7 None
e_TextureDetail8 e_fScale8
e_fGrassDensity8 None
e_TextureDetail9 e_fScale9
e_fGrassDensity9 Opaque_MaxC1DTP.fx
colmap04 colmap04.dds
e_TextureDiffuse0 palmap04a.bmp
e_TexturePalette0 HW_rd01_c.dds
e_TextureDetail0 e_fScale0
e_fGrassDensity0 FT_RD2_c.dds
e_TextureDetail1 e_fScale1
e_fGrassDensity1 FT_path01.dds
e_TextureDetail2 e_fScale2
e_fGrassDensity2 FT_plateau01.dds
e_TextureDetail3 e_fScale3
e_fGrassDensity3 FT_DRD2_c.dds
e_TextureDetail4 e_fScale4
e_fGrassDensity4 FT_plateau02.dds
e_TextureDetail5 e_fScale5
e_fGrassDensity5 None
e_TextureDetail6 e_fScale6
e_fGrassDensity6 None
e_TextureDetail7 e_fScale7
e_fGrassDensity7 None
e_TextureDetail8 e_fScale8
e_fGrassDensity8 None
e_TextureDetail9 e_fScale9
e_fGrassDensity9 Opaque_MaxC1DTP.fx
tunn04 sp_tunn04.dds
e_TextureDiffuse0 sp_tunn04_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
tunn05 sp_tunn05.dds
e_TextureDiffuse0 sp_tunn05_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
tunn06 sp_tunn06.dds
e_TextureDiffuse0 sp_tunn06_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
tunn07 tunn07.dds
e_TextureDiffuse0 tunn07_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
ab_wall_T01 sp_ft_wall_high.dds
e_TextureDiffuse0 Di_ent_cinderblock01_mid_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
ab_wall_M01 sp_ft_wall_mid.dds
e_TextureDiffuse0 Di_ent_cinderblock01_mid_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
ab_wall_B01 sp_ft_wall_low.dds
e_TextureDiffuse0 Di_ent_cinderblock01_low_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
ab_arch_T01 ab_arch_T01.dds
e_TextureDiffuse0 Di_ent_metal02_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
ab_arch_M01 ab_arch_M01.dds
e_TextureDiffuse0 Di_ent_metal02_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
ab_arch_B01 ab_arch_B01.dds
e_TextureDiffuse0 Di_ent_metal02_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
ab_floor_01 ab_floor_01.dds
e_TextureDiffuse0 sp_ft_floor_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
rock18 av_rock18_c.dds
e_TextureDiffuse0 av_rock18_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
rock10 av_rock10_c.dds
e_TextureDiffuse0 av_rock10_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
rock16 av_rock16_c.dds
e_TextureDiffuse0 Di_ent_wall_crumble01_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
maze01 av_rock12_c.dds
e_TextureDiffuse0 av_rock12_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
maze02 Di_rune_plain_bkg_c.dds
e_TextureDiffuse0 Di_rune_plain_bkg_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
maze03 ab_maze01_c.dds
e_TextureDiffuse0 ab_maze01_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
maze04 Di_floor01_c.dds
e_TextureDiffuse0 Di_floor01_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
maze05 Di_Maze01_Power_c.dds
e_TextureDiffuse0 Di_Maze01_Main_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
ra_pris19 ra_prison19_c.dds
e_TextureDiffuse0 ra_prison19_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
av_pris14high av_prison14_c.dds
e_TextureDiffuse0 av_prison13a_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
av_pris22mid av_prison22_c.dds
e_TextureDiffuse0 av_prison22_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
av_pris15low av_prison15_c.dds
e_TextureDiffuse0 av_prison15_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
av_pris18flr av_prison18_c.dds
e_TextureDiffuse0 av_prison18a_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx
dn_path HW_rd01_c.dds
e_TextureDiffuse0 HW_rd01_n.dds
e_TextureNormal0 Opaque_MaxCB1.fx



I'll post more as I figure it out.

Happy Hacking,
Lord Daeken M. BlackBlade
(Cody Brocious)


Edit #1: Added the object_count element to the struct.
Edit #2: Replaced uint32 unk[2]; with the vertex_count and poly_count fields. Put the struct in code brackets.
__________________
Keep me unemployed and working on OpenEQ, PM me about donating

Check out my deviantART page at http://daeken.deviantart.com/
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 09:28 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3