Flag Meanings (in materials, shaders, textures, meshes...)

Users who are viewing this thread

xenoargh

Grandmaster Knight
There are a few specific flags set for skin shader items.  30020 IIRC, but I'm really not sure what that means; probably a flag that directs the engine to use the skin vertex color on that object (maybe?). 

If yes (needs confirmation) that could be rather handy, as then we could finally build armors that show skin and have them work, although they would probably have to be multimesh.

I am also a bit concerned about that becoming black-box, personally.  I know that it's confusing as hell for newbies, but until we're sure what they do... I'd be a bit worried about it not getting set right.

Ooh, I like the tangent stripper, though- that should remove a bunch of useless data from my plants!  Nice.
 
Good the have this thread. Hopefully some useful info will get accumulated here.

xenoargh said:
I am also a bit concerned about that becoming black-box, personally.  I know that it's confusing as hell for newbies, but until we're sure what they do... I'd be a bit worried about it not getting set right.

You can still view the flags: click on the "..." button next to flags, which lets you set and view each bit of the flags individually; there's a "show-all" button which will reveal the automatically set bits (which are normally hidden).
 
To investigate this matter, here is the list of meshes in WB native using various flags
("..." stands for "10 more meshes here").

If you know or can guess what they are for, shoot!

Flag are numbered from 0 to 31.
Flag number i stands for bit 1<<i


MESH FLAGS:

Most meshes have no flags.

Flag 16: all native meshes in WB have this -- and no M&B 1.011 mesh have this.

Flag 17: "tangent directions per vertex are present" (WB only)

Flag 24: "exponentiate per-vertex colors (for gamma correction)" 
thanks [cmpxchg8b]

all other flags unknown



In Warband native:

map_tree_a(0x1) map_tree_b(0x1) map_tree_c(0x1) map_tree_d(0x1) map_tree_e(0x1) map_tree_f(0x1) map_tree_g(0x1) map_tree_h(0x1) map_tree_i(0x1) map_tree_j(0x1) map_tree_k(0x1) map_tree_l(0x1) map_tree_m(0x1) map_tree_o(0x1) map_tree_p(0x1) map_tree_q(0x1) snow_tree_a(0x1) snow_tree_b(0x1) snow_tree_c(0x1) steppe_tree_a(0x1) steppe_tree_b(0x1) steppe_tree_c(0x1) steppe_tree_d(0x1) steppe_tree_e(0x1) desert_tree_a(0x1) desert_tree_b(0x1) desert_tree_c(0x1) desert_tree_d(0x1) map_tree_n(0x1) horse_a(0x1) horse_b(0x1) horse_a.lod1(0x1) horse_a.lod2(0x1) horse_a.lod3(0x1) horse_b.lod1(0x1) horse_b.lod2(0x1) horse_b.lod3(0x1) village_house_e.5(0x1) village_house_e.7(0x1) village_house_e.21(0x1) village_house_e.40(0x1) village_straw_house_a.5(0x1) village_straw_house_a.7(0x1) village_straw_house_a.40(0x1) village_house_f.5(0x1) village_house_f.7(0x1) village_house_f.28(0x1) village_house_f.40(0x1) village_stable_a.5(0x1) village_stable_a.7(0x1) village_stable_a.28(0x1) village_stable_a.40(0x1) village_shed_a.5(0x1) village_shed_a.7(0x1) village_shed_a.40(0x1) village_house_g.3(0x1) village_house_g.6(0x1) village_house_g.18(0x1) village_house_g.21(0x1) village_house_g.28(0x1) village_house_h.3(0x1) village_house_h.5(0x1) village_house_h.6(0x1) village_house_h.18(0x1) village_house_h.21(0x1) village_house_h.28(0x1) village_house_i.3(0x1) village_house_i.6(0x1) village_house_i.18(0x1) village_house_i.28(0x1) village_shed_b.3(0x1) village_shed_b.6(0x1) village_shed_b.18(0x1) village_shed_b.24(0x1) village_shed_b.28(0x1) village_house_j(0x1) village_house_j.3(0x1) village_house_j.6(0x1) village_house_j.18(0x1) village_house_j.28(0x1) village_snowy_house_a.21(0x1) village_snowy_house_a.26(0x1) village_snowy_house_a.31(0x1) village_snowy_house_a.43(0x1) village_snowy_house_a.44(0x1) village_snowy_house_b.21(0x1) village_snowy_house_b.26(0x1) village_snowy_house_b.31(0x1) village_snowy_house_b.43(0x1) village_snowy_house_b.44(0x1) village_snowy_house_c.21(0x1) village_snowy_house_c.26(0x1) village_snowy_house_c.31(0x1) village_snowy_house_c.40(0x1) village_snowy_house_c.43(0x1) village_snowy_house_c.44(0x1) village_snowy_stable_a.31(0x1) village_snowy_stable_a.43(0x1) village_snowy_stable_a.44(0x1) village_snowy_house_d.22(0x1) village_snowy_house_d.26(0x1)  ...
village_snowy_house_f.26(0x1)  ...
full_stable_b.5(0x1)  ...
granary_a.21(0x1)  ...
full_stable_c.24(0x1)  ...
full_stable_d.31(0x1)  ...
flag_rhodok(0x1)  ...
village_steppe_a(0x1)  ...
village_steppe_b.5(0x1)  ...
village_steppe_c.5(0x1)  ...
village_steppe_f.2(0x1)  ...
village_wall_b.9(0x1)  ...
city_swad_01.23(0x1)  ...
city_swad_03.13(0x1)  ...
city_swad_04.3(0x1)  ...
city_swad_04.24(0x1)  ...
city_swad_passage_01.24(0x1)  ...
map_castle_a(0x1)  ...
map_village_snow_burnt_a(0x1)  ...
map_village_c(0x1)  ...
castle_battlement_b.4(0x1)  ...
castle_gate_house_a.3(0x1)  ...
castle_drawbridges_open.22(0x1)  ...
belfry_platform_b.3(0x1)  ...
castle_battlement_c.14(0x1)  ...
snowy_castle_battlement_b.39(0x1)  ...
snowy_castle_gate_house_a.38(0x1)  ...
pic_siege_sighted(0x1)  ...
pic_sea_raiders(0x1)  ...
pic_recruits(0x1)  ...
pic_castledes(0x1)  ...
pic_townriot(0x1)  ...
status_shield_80(0x1)  ...
white_plane(0x1)  ...
party_member_button_pressed(0x1)  ...
left_arrow_hl(0x1)  ...
button_drop_child_clicked(0x1)  ...
text_box_cursor(0x1)  ...
ico_axeone(0x1)  ...
ico_musket(0x1)  ...
mp_inventory_right(0x1)  ...
mp_inventory_left_arrow(0x1)  ...
mp_ui_profile(0x1)  ...
slidebar_new_dark(0x1)  ...
ico_morningstar(0x1)  ...
flag_project_rh_miss(0x1)  ...
mp_ui_host_maps_fieldby(0x1)  ...
flag_project_rb_miss(0x1)  ...
cb_ui_comp_arrow_l_d(0x1)  ...
cb_ui_maps_scene_03(0x1)  ...
mouse_arrow_down(0x1)  ...
ui_general_op_off(0x1)  ...
small_round_tower_a.3(0x1)  ...
interior_square_keep_b.14(0x1)  ...
ramp_12m.3(0x1)  ...
battlement_a_destroyed.14(0x1)  ...
town_house_c.lod3.14(0x1)  ...
town_house_e.1(0x1)  ...
town_house_f.9(0x1)  ...
town_house_g.22(0x1)  ...
town_house_j.4(0x1)  ...
passage_house_a.22(0x1)  ...
house_extension_a.6(0x1)  ...
house_extension_c.6(0x1)  ...
town_house_l.4(0x1)  ...
door_extension_a.21(0x1)  ...
house_door_b.22(0x1)  ...
interior_tavern_a.14(0x1)  ...
interior_town_house_a.14(0x1)  ...
interior_town_house_e.21(0x1)  ...
interior_town_house_c.4(0x1)  ...
town_house_b.lod4.14(0x1)  ...
town_house_c.6(0x1)  ...
town_house_c.lod4.22(0x1)  ...
town_house_a.lod4.9(0x1)  ...
town_house_d.lod4.4(0x1)  ...
town_house_e.lod4.1(0x1)  ...
town_house_f.lod3.13(0x1)  ...
town_house_b.lod3.5(0x1)  ...
town_house_f.lod4.13(0x1)  ...
town_house_g.lod3.13(0x1)  ...
town_house_h.lod4.3(0x1)  ...
town_house_i.lod3.21(0x1)  ...
town_house_i.lod4(0x1)  ...
town_house_j.lod3.4(0x1)  ...
town_house_j.lod4.14(0x1)  ...
town_house_l.lod4.4(0x1)  ...
passage_house_b.lod3.3(0x1)  ...
earth_wall_b(0x1)  ...
earth_wall_b2.1(0x1)  ...
earth_square_keep_a(0x1)  ...
earth_house_b.4(0x1)  ...
wood_heap_b(0x1)  ...
earth_gate_house_b.1(0x1)  ...
earth_sally_gate_left(0x1)  ...
castle_e_tower(0x1)  ...
castle_e_keep_a(0x1)  ...
castle_e_house_a.9(0x1)  ...
castle_e_corner_b(0x1)  ...
castle_f_keep_a.6(0x1)  ...
castle_f_battlement_a_destroyed.3(0x1)  ...
castle_f_tower_a.3(0x1)  ...
castle_f_gatehouse_a.4(0x1)  ...
castle_f_battlement_c.26(0x1)  ...
full_keep_b.3(0x1)  ...
castle_f_doors_top_a.14(0x1)  ...
castle_g_corner_a.1(0x1)  ...
castle_g_gate_house.8(0x1)  ...
castle_g_square_keep_a.6(0x1)  ...
castle_g_battlement_c.1(0x1)  ...
castle_g_battlement_b(0x1)  ...
castle_h_corner_a.3(0x1)  ...
castle_h_battlement_a2.3(0x1)  ...
castle_h_gatehouse_a(0x1)  ...
castle_h_keep_a.5(0x1)  ...
castle_h_house_b.5(0x1)  ...
small_wall_d(0x1)  ...
castle_h_keep_b.8(0x1)  ...
castle_h_battlement_c.3(0x1)  ...
castle_i_corner_a(0x1)  ...
castle_i_gate_house.8(0x1)  ...
castle_i_square_keep_a.5(0x1)  ...
castle_i_battlement_c.1(0x1)  ...
winch.2(0x1)  ...
gatehouse_new_b.3(0x1)  ...
gatehouse_new_snowy_a.5(0x1)  ...
drawbridge.16(0x1)  ...
map_flag_20(0x1)  ...
map_flag_39(0x1)  ...
map_flag_53(0x1)  ...
map_flag_15(0x1)  ...
map_flag_60(0x1)  ...
map_flag_42(0x1)  ...
map_flag_d05(0x1)  ...
map_flag_d15(0x1)  ...
map_flag_e04(0x1)  ...
map_flag_e14(0x1)  ...
map_flag_f02(0x1)  ...
map_flag_f12(0x1)  ...
sun_core(0x1)  ...
prt_mesh_snow_dust_1(0x1)  ...
prt_mesh_smoke_1(0x1)  ...
shadow_circle_1(0x1)  ...
siege_ladder_12m.3(0x1)  ...
siege_large_shield_a.1(0x1)  ...
physics_capsule(0x1)  ...
siege_ladder_move_12m.3(0x1)  ...
ch_meet_snow_a.2(0x1)  ...
prt_foam_a(0x1)  ...
town_house_steppe_b(0x1)  ...
town_house_steppe_c.2(0x1)  ...
town_house_steppe_d.6(0x1)  ...
town_house_steppe_e.13(0x1)  ...
town_house_steppe_g.1(0x1)  ...
town_house_steppe_h.6(0x1)  ...
town_house_steppe_i.9(0x1)  ...
awning_b.5(0x1)  ...
house_extension_f.1(0x1)  ...
house_roof_door.1(0x1)  ...
house_extension_g2.11(0x1)  ...
stone_step_b.17(0x1)  ...
small_wall_c_destroy.17(0x1)  ...
arena_block_j_a.5(0x1)  ...
arena_circle_a.21(0x1)  ...
scimitar_a(0x1)  ...
scimitar_b.lod1(0x1)  ...
arabian_sword_c.1(0x1)  ...
arabian_sword_b.lod3.1(0x1)  ...
scab_arabian_sword_a.1(0x1)  ...
scab_arabian_sword_c.lod2.1(0x1)  ...
bec_de_corbin_a.lod4(0x1)  ...
two_handed_battle_axe_h.lod1(0x1)  ...
one_handed_battle_axe_h.lod2(0x1)  ...
rock1(0x1)  ...
rock2_snowy.1(0x1)  ...
tuareg(0x1)  ...
sar_helmet2.lod4(0x1)  ...
tuareg_helmet.lod2(0x1)  ...
tuareg.lod4(0x1)  ...
prtcl_rain(0x500010A) prtcl_snow(0x500010A) prtcl_dust_a(0x500010A) prtcl_dust_b(0x500010A) prtcl_ground_a(0x500010A) prtcl_wave(0x500010A) prtcl_splash(0x500010A) prtcl_splash_b(0x500010A) prtcl_drop(0x500010A)
small_plant(0x104) small_plant_b(0x104) small_plant_c(0x104) buddy_plant(0x104) buddy_plant_b(0x104) yellow_flower(0x104) yellow_flower_b(0x104) seedy_plant_a(0x104) ground_bush(0x104) beech(0x104) beech.1(0x104) beech_b(0x104) beech_b.1(0x104) beech_c(0x104) beech_c.1(0x104) chestnut(0x104) chestnut.1(0x104) oak_a(0x104) oak_a.1(0x104) oak_b(0x104) oak_b.1(0x104) plane_tree_a(0x104) plane_tree_a.1(0x104) plane_tree_b(0x104) plane_tree_b.1(0x104) plane_tree_c(0x104) plane_tree_c.1(0x104) pine(0x104) pine_b(0x104) fir(0x104)
prtcl_rain(0x500010A) prtcl_snow(0x500010A) prtcl_dust_a(0x500010A) prtcl_dust_b(0x500010A) prtcl_ground_a(0x500010A) prtcl_wave(0x500010A) prtcl_splash(0x500010A) prtcl_splash_b(0x500010A) prtcl_drop(0x500010A)
male_head.lod1(0x20) male_head.lod2(0x20) male_head.lod3(0x20) female_head.lod1(0x20) undead_head.lod1(0x20) male_beard_a(0x20) male_beard_b(0x20) male_beard_c(0x20) male_beard_d(0x20) male_beard_e(0x20) male_beard_f(0x20) man_body(0x20) man_body.lod2(0x20) woman_body(0x20) woman_body.lod2(0x20) undead_body(0x20) man_calf_l(0x20) man_calf_l.lod1(0x20) man_calf_l.lod2(0x20) man_calf_l.lod3(0x20) man_calf_r(0x20) man_calf_r.lod1(0x20) man_calf_r.lod2(0x20) man_calf_r.lod3(0x20) woman_calf_l(0x20) woman_calf_l.lod1(0x20) woman_calf_l.lod2(0x20) woman_calf_l.lod3(0x20) woman_calf_r(0x20) woman_calf_r.lod1(0x20) woman_calf_r.lod2(0x20) woman_calf_r.lod3(0x20) undead_calf_l(0x20) undead_calf_r(0x20)
slider_handle(0x100) prtcl_rain(0x500010A) prtcl_snow(0x500010A) prtcl_dust_a(0x500010A) prtcl_dust_b(0x500010A) prtcl_ground_a(0x500010A) prtcl_wave(0x500010A) prtcl_splash(0x500010A) prtcl_splash_b(0x500010A) prtcl_drop(0x500010A) small_plant(0x104) small_plant_b(0x104) small_plant_c(0x104) buddy_plant(0x104) buddy_plant_b(0x104) yellow_flower(0x104) yellow_flower_b(0x104) seedy_plant_a(0x104) ground_bush(0x104) beech(0x104) beech.1(0x104) beech_b(0x104) beech_b.1(0x104) beech_c(0x104) beech_c.1(0x104) chestnut(0x104) chestnut.1(0x104) oak_a(0x104) oak_a.1(0x104) oak_b(0x104) oak_b.1(0x104) plane_tree_a(0x104) plane_tree_a.1(0x104) plane_tree_b(0x104) plane_tree_b.1(0x104) plane_tree_c(0x104) plane_tree_c.1(0x104) pine(0x104) pine_b(0x104) fir(0x104)
crosshair(0x200)
prtcl_rain(0x500010A) prtcl_snow(0x500010A) prtcl_dust_a(0x500010A) prtcl_dust_b(0x500010A) prtcl_ground_a(0x500010A) prtcl_wave(0x500010A) prtcl_splash(0x500010A) prtcl_splash_b(0x500010A) prtcl_drop(0x500010A)
prtcl_rain(0x500010A) prtcl_snow(0x500010A) prtcl_dust_a(0x500010A) prtcl_dust_b(0x500010A) prtcl_ground_a(0x500010A) prtcl_wave(0x500010A) prtcl_splash(0x500010A) prtcl_splash_b(0x500010A) prtcl_drop(0x500010A)

In M&B 1.011 native:

prtcl_rain(0x500010A) prtcl_snow(0x500010A) prtcl_dust_a(0x500010A) prtcl_dust_b(0x500010A) prtcl_ground_a(0x500010A) prtcl_wave(0x500010A) prtcl_splash(0x500010A) prtcl_splash_b(0x500010A) prtcl_drop(0x500010A)
small_plant(0x104) small_plant_b(0x104) small_plant_c(0x104) buddy_plant(0x104) buddy_plant_b(0x104) yellow_flower(0x104) yellow_flower_b(0x104) seedy_plant_a(0x104) ground_bush(0x104) beech(0x104) beech.1(0x104) beech_b(0x104) beech_b.1(0x104) beech_c(0x104) beech_c.1(0x104) chestnut(0x104) chestnut.1(0x104) oak_a(0x104) oak_a.1(0x104) oak_b(0x104) oak_b.1(0x104) plane_tree_a(0x104) plane_tree_a.1(0x104) plane_tree_b(0x104) plane_tree_b.1(0x104) plane_tree_c(0x104) plane_tree_c.1(0x104) pine(0x104) pine_b(0x104) fir(0x104)
prtcl_rain(0x500010A) prtcl_snow(0x500010A) prtcl_dust_a(0x500010A) prtcl_dust_b(0x500010A) prtcl_ground_a(0x500010A) prtcl_wave(0x500010A) prtcl_splash(0x500010A) prtcl_splash_b(0x500010A) prtcl_drop(0x500010A)
male_head.lod1(0x20) male_head.lod2(0x20) male_head.lod3(0x20) female_head.lod1(0x20) undead_head.lod1(0x20) male_beard_a(0x20) male_beard_b(0x20) male_beard_c(0x20) male_beard_d(0x20) male_beard_e(0x20) male_beard_f(0x20) man_body(0x20) man_body.lod2(0x20) woman_body(0x20) woman_body.lod2(0x20) undead_body(0x20) man_calf_l(0x20) man_calf_l.lod1(0x20) man_calf_l.lod2(0x20) man_calf_l.lod3(0x20) man_calf_r(0x20) man_calf_r.lod1(0x20) man_calf_r.lod2(0x20) man_calf_r.lod3(0x20) woman_calf_l(0x20) woman_calf_l.lod1(0x20) woman_calf_l.lod2(0x20) woman_calf_l.lod3(0x20) woman_calf_r(0x20) woman_calf_r.lod1(0x20) woman_calf_r.lod2(0x20) woman_calf_r.lod3(0x20) undead_calf_l(0x20) undead_calf_r(0x20)
slider_handle(0x100) prtcl_rain(0x500010A) prtcl_snow(0x500010A) prtcl_dust_a(0x500010A) prtcl_dust_b(0x500010A) prtcl_ground_a(0x500010A) prtcl_wave(0x500010A) prtcl_splash(0x500010A) prtcl_splash_b(0x500010A) prtcl_drop(0x500010A) small_plant(0x104) small_plant_b(0x104) small_plant_c(0x104) buddy_plant(0x104) buddy_plant_b(0x104) yellow_flower(0x104) yellow_flower_b(0x104) seedy_plant_a(0x104) ground_bush(0x104) beech(0x104) beech.1(0x104) beech_b(0x104) beech_b.1(0x104) beech_c(0x104) beech_c.1(0x104) chestnut(0x104) chestnut.1(0x104) oak_a(0x104) oak_a.1(0x104) oak_b(0x104) oak_b.1(0x104) plane_tree_a(0x104) plane_tree_a.1(0x104) plane_tree_b(0x104) plane_tree_b.1(0x104) plane_tree_c(0x104) plane_tree_c.1(0x104) pine(0x104) pine_b(0x104) fir(0x104)
crosshair(0x200)
prtcl_rain(0x500010A) prtcl_snow(0x500010A) prtcl_dust_a(0x500010A) prtcl_dust_b(0x500010A) prtcl_ground_a(0x500010A) prtcl_wave(0x500010A) prtcl_splash(0x500010A) prtcl_splash_b(0x500010A) prtcl_drop(0x500010A)
prtcl_rain(0x500010A) prtcl_snow(0x500010A) prtcl_dust_a(0x500010A) prtcl_dust_b(0x500010A) prtcl_ground_a(0x500010A) prtcl_wave(0x500010A) prtcl_splash(0x500010A) prtcl_splash_b(0x500010A) prtcl_drop(0x500010A)



TEXTURE FLAGS:

Meanings:

Flag 0:   no idea.

Flag 1: force loading of highest res mipmap (independently of game settings) thanks [cmpxchg8b]

Flag 2:   no idea.

Flag 3: "Languange dependent"  thanks [cmpxchg8b]
  (depending on the language settings, game will look for this texture in language texture folder -- WB only)

Flags 4-5: HDR only / no HDR textures (high dynamic range) thanks [cmpxchg8b]

Flag 7:   no idea.

Flags 12-15 and 16-19: no idea.
They are used in all base face texture (not the aged versions) except one, plus the hair texture.
They look like a pair of 4 bits fields (for U and V?)
Value (when not 0): all 9  (note that all textures being sized 2^9 = 512... -- with another exception).

Flags 20-21: U-V coord clamping (instead of: wrapping) in texture fetch mechanism   thanks [cmpxchg8b]

Flags 24-27: 4-bits int: texture animations (number of frames /4)   thanks [cmpxchg8b]

In Warband native:

bg2.dds(0x3) ui.dds(0x3) user_interface_b.dds(0x3) ui_gadgets.dds(0x83) interface.dds(0x3) inventory_window.dds(0x3) party_window.dds(0x3) note_window.dds(0x3) dialogue_window.dds(0x3) character_window.dds(0x3) face_gen_window.dds(0x3) button_drop.dds(0x3) quests_window.dds(0x3) chr_win_shadow.tga(0x83) cursor.dds(0x83) mp_ui_edge.dds(0x3) mp_icon_fight.dds(0x83) mp_ui_host.dds(0x3) mp_ui_maps_a.dds(0x3) mp_ui_maps_b.dds(0x3) mp_ui_maps_c.dds(0x3) mp_ui_maps_d.dds(0x3) cb_ui_comp.dds(0x3) cb_ui_maps_a.dds(0x3) pic_mb_warrior_1.dds(0x3) pic_mb_warrior_2.dds(0x3) pic_mb_warrior_3.dds(0x3) pic_horse_archers.dds(0x3) pic_mercenary.dds(0x3) portrait_blend_out.dds(0x81) mp_ui_inventory.dds(0x83) mp_ui_profile.dds(0x83) mp_ui_bg.dds(0x83) ui_options.dds(0x83) main_menu_nord.dds(0x83) loadscreen.dds(0x83) loadscreen2.dds(0x83) mouse_icon.dds(0x83) escape_menu.dds(0x83) quit_adv.dds(0x83) quit_adv_b.dds(0x83) grass_mask.dds(0x300081) storm1.dds(0x1) gece1.dds(0x1) skybox.dds(0x1) skybox_night_1.dds(0x1) skybox_night_2.dds(0x1) skybox_cloud_1.dds(0x11) skybox_cloud_1_rgb.dds(0x25) skybox_cloud_1_exp.dds(0x25) skybox_cloud_2.dds(0x11) skybox_cloud_2_rgb.dds(0x25) skybox_cloud_2_exp.dds(0x25) skybox_sunset_1.dds(0x11) skybox_sunset_1_rgb.dds(0x25) skybox_sunset_1_exp.dds(0x25) skybox_clearday.dds(0x11) skybox_clearday_rgb.dds(0x25) skybox_clearday_exp.dds(0x25) color_picker.dds(0x81) pic_messenger.dds(0x3) pic_prisoner_man.dds(0x3) pic_prisoner_fem.dds(0x3) pic_prisoner_wilderness.dds(0x3) pic_siege_sighted.dds(0x3) pic_siege_sighted_fem.dds(0x3) pic_camp.dds(0x3) pic_payment.dds(0x3) pic_escape_1.dds(0x3) pic_escape_1_fem.dds(0x3) pic_victory.dds(0x3) pic_defeat.dds(0x3) pic_wounded.dds(0x3) pic_wounded_fem.dds(0x3) pic_looters.dds(0x3) pic_steppe_bandits.dds(0x3) pic_mountain_bandits.dds(0x3) pic_forest_bandits.dds(0x3) pic_sea_raiders.dds(0x3) pic_deserters.dds(0x3) pic_cattle.dds(0x3) pic_looted_village.dds(0x3) pic_village_w.dds(0x3) pic_village_s.dds(0x3) pic_village_p.dds(0x3) pic_recruits.dds(0x3) pic_arms_swadian.dds(0x3) pic_arms_vaegir.dds(0x3) pic_arms_khergit.dds(0x3) pic_arms_nord.dds(0x3) pic_arms_rhodok.dds(0x3) pic_castle1.dds(0x3) pic_castledes.dds(0x3) pic_castlesnow.dds(0x3) pic_charge.dds(0x3) pic_khergit.dds(0x3) pic_nord.dds(0x3) pic_rhodock.dds(0x3) pic_sally_out.dds(0x3) pic_siege_attack.dds(0x3) pic_swad.dds(0x3)  ...
bg2.dds(0x3) ui.dds(0x3) user_interface_b.dds(0x3) ui_gadgets.dds(0x83) interface.dds(0x3) inventory_window.dds(0x3) party_window.dds(0x3) note_window.dds(0x3) dialogue_window.dds(0x3) character_window.dds(0x3) face_gen_window.dds(0x3) button_drop.dds(0x3) warrider_logo.dds(0x2) quests_window.dds(0x3) shadow_default.tga(0x300082) chr_win_shadow.tga(0x83) cursor.dds(0x83) mp_ui_edge.dds(0x3) mp_icon_fight.dds(0x83) mp_ui_host.dds(0x3) mp_ui_maps_a.dds(0x3) mp_ui_maps_b.dds(0x3) mp_ui_maps_c.dds(0x3) mp_ui_maps_d.dds(0x3) cb_ui_main.dds(0x2) cb_ui_comp.dds(0x3) cb_ui_maps_a.dds(0x3) pic_mb_warrior_1.dds(0x3) pic_mb_warrior_2.dds(0x3) pic_mb_warrior_3.dds(0x3) pic_horse_archers.dds(0x3) pic_mercenary.dds(0x3) mp_ui_inventory.dds(0x83) mp_ui_profile.dds(0x83) mp_ui_bg.dds(0x83) ui_options.dds(0x83) main_menu_nord.dds(0x83) loadscreen.dds(0x83) loadscreen2.dds(0x83) mouse_icon.dds(0x83) escape_menu.dds(0x83) quit_adv.dds(0x83) quit_adv_b.dds(0x83) ui_quick_battle.dds(0x82) pic_messenger.dds(0x3) pic_prisoner_man.dds(0x3) pic_prisoner_fem.dds(0x3) pic_prisoner_wilderness.dds(0x3) pic_siege_sighted.dds(0x3) pic_siege_sighted_fem.dds(0x3) pic_camp.dds(0x3) pic_payment.dds(0x3) pic_escape_1.dds(0x3) pic_escape_1_fem.dds(0x3) pic_victory.dds(0x3) pic_defeat.dds(0x3) pic_wounded.dds(0x3) pic_wounded_fem.dds(0x3) pic_looters.dds(0x3) pic_steppe_bandits.dds(0x3) pic_mountain_bandits.dds(0x3) pic_forest_bandits.dds(0x3) pic_sea_raiders.dds(0x3) pic_deserters.dds(0x3) pic_cattle.dds(0x3) pic_looted_village.dds(0x3) pic_village_w.dds(0x3) pic_village_s.dds(0x3) pic_village_p.dds(0x3) pic_recruits.dds(0x3) pic_arms_swadian.dds(0x3) pic_arms_vaegir.dds(0x3) pic_arms_khergit.dds(0x3) pic_arms_nord.dds(0x3) pic_arms_rhodok.dds(0x3) pic_castle1.dds(0x3) pic_castledes.dds(0x3) pic_castlesnow.dds(0x3) pic_charge.dds(0x3) pic_khergit.dds(0x3) pic_nord.dds(0x3) pic_rhodock.dds(0x3) pic_sally_out.dds(0x3) pic_siege_attack.dds(0x3) pic_swad.dds(0x3) pic_town1.dds(0x3) pic_towndes.dds(0x3) pic_townriot.dds(0x3) pic_townsnow.dds(0x3) pic_vaegir.dds(0x3) pic_villageriot.dds(0x3) pic_sarranid_arms.dds(0x3) pic_sarranid_encounter.dds(0x3)
woman_normalmap.dds(0x84) woman_old_normalmap.dds(0x84) man_normalmap.dds(0x84) man_old_normalmap.dds(0x84) skybox_cloud_1_rgb.dds(0x25) skybox_cloud_1_exp.dds(0x25) skybox_cloud_2_rgb.dds(0x25) skybox_cloud_2_exp.dds(0x25) skybox_sunset_1_rgb.dds(0x25) skybox_sunset_1_exp.dds(0x25) skybox_clearday_rgb.dds(0x25) skybox_clearday_exp.dds(0x25) bark_normalmap.dds(0x4) bark_b_normalmap.dds(0x4) bark_c_normalmap.dds(0x84) roof_a_n.dds(0x4) building_details_5_n.dds(0x4) building_details_6_n.dds(0x4) planks_5_n.dds(0x4) planks_6_n.dds(0x4) stucco_5_n.dds(0x4) stucco_6_n.dds(0x4) stucco_7_n.dds(0x4) building_details_7_n.dds(0x4) arabian_horse_a_n.dds(0x4) arabian_horse_a_s.dds(0x4) body_normalmap.dds(0x4) player_chest_normal.dds(0x84) fur_coat_normalmap.dds(0x4) lamellar_leather_normalmap.dds(0x4) lamellar_armor_b_specular.dds(0x4) lamellar_armor_b_normalmap.dds(0x4) lamellar_armor_e_specular.dds(0x4) lamellar_armor_e_normalmap.dds(0x4) head_wrapping_normalmap.dds(0x84) raw_materials_specular.dds(0x4) raw_materials_normalmap.dds(0x4) arena_armor_normalmap.dds(0x4) arena_tunic_normalmap.dds(0x4) arena_armor_specular.dds(0x4) helmets_normalmap.dds(0x4) helmets_specular.dds(0x4) helmets_new_a_normalmap.dds(0x4) helmets_new_a_specular.dds(0x4) helmets_new_b_normalmap.dds(0x4) helmets_new_c_normalmap.dds(0x4) helmets_new_c_specular.dds(0x4) helmets_new_d_normalmap.dds(0x4) helmets_new_e_normalmap.dds(0x4) helmets_new_f_normalmap.dds(0x4) helmets_new_f_specular.dds(0x4) helmets_new_g_normalmap.dds(0x4) helmets_new_g_specular.dds(0x4) helmets_new_h_normalmap.dds(0x4) helmets_new_h_specular.dds(0x4) crossbow_a_specular.dds(0x4) crossbow_a_normalmap.dds(0x4) nordic_helmets_Bump.dds(0x4) nordic_helmets_Spec.dds(0x4) arena_helmets_specular.dds(0x4) arena_helmets_normalmap.dds(0x4) weapons1_specular.dds(0x4) weapons2_specular.dds(0x4) weapons3_specular.dds(0x4) weapons3_normalmap.dds(0x4) missiles_specular.dds(0x4) missiles_normalmap.dds(0x4) hunting_horse_normalmap.dds(0x4) steppe_horse_normalmap.dds(0x4) sumpter_horse_normalmap.dds(0x4) saddle_horse_normalmap.dds(0x4) charger_normalmap.dds(0x4) charger_specular.dds(0x4) war_horse_normalmap.dds(0x4) war_horse_specular.dds(0x4) horse_a_normalmap.dds(0x4) horse_b_normalmap.dds(0x4) desert_bump.dds(0x4) synth_patch_rock_a_height.dds(0x4) dry_grass_bump.dds(0x4) rock_b_normalmap.dds(0x4) rock_c_normalmap.dds(0x4) ground_earth_bump.dds(0x4) ground_forest_bump.dds(0x4) ground1_bump.dds(0x4) snow_bump.dds(0x4) pebbles_normal.dds(0x4) ground_village_bump.dds(0x4) ground_path_bump.dds(0x4) stucco_2_height.dds(0x4) stucco_4_height.dds(0x4) planks_height.dds(0x4) planks_2_height.dds(0x4) planks_4_height.dds(0x4) trunks_height.dds(0x4) wall3_height.dds(0x4) wall4_height.dds(0x4) wall5_height.dds(0x4) stone_wall_2_height.dds(0x4) stone_wall_3_height.dds(0x4) stone_wall_5_height.dds(0x4)  ...
floor_1_height.dds(0x4)  ...
heraldic_armor_c_specular.dds(0x4)  ...
ragged_outfit_a_normalmap.dds(0x4)  ...
arabian_armor_a_normalmap.dds(0x4)  ...
leather_armor_b_specular.dds(0x4)  ...
lamellar_vest_a_normalmap.dds(0x4)  ...
banded_armor_a_normalmap.dds(0x4)  ...
coarse_tunic_a_normalmap.dds(0x4)  ...
sarranid_cloth_robe_normalmap.dds(0x4)  ...
vaegir_helmets_normalmap.dds(0x4)  ...
leather_jacket_specular.dds(0x4)  ...
iron_greaves_a_normalmap.dds(0x84)  ...
brown_dress_normal.dds(0x4)  ...
warhorse_sarranid_normalmap.dds(0x4)  ...
font.dds(0x8:cool:
skybox_cloud_1.dds(0x11) skybox_cloud_2.dds(0x11) skybox_sunset_1.dds(0x11) skybox_clearday.dds(0x11)
skybox_cloud_1_rgb.dds(0x25) skybox_cloud_1_exp.dds(0x25) skybox_cloud_2_rgb.dds(0x25) skybox_cloud_2_exp.dds(0x25) skybox_sunset_1_rgb.dds(0x25) skybox_sunset_1_exp.dds(0x25) skybox_clearday_rgb.dds(0x25) skybox_clearday_exp.dds(0x25)
font.dds(0x8:cool: ui_gadgets.dds(0x83) shadow_default.tga(0x300082) chr_win_shadow.tga(0x83) cursor.dds(0x83) mp_icon_fight.dds(0x83) portrait_blend_out.dds(0x81) troop_label_banner.dds(0x80) troop_label_banner_hl.dds(0x80) mp_ctf_flags.dds(0x80) mp_ui_inventory.dds(0x83) mp_ui_profile.dds(0x83) mp_ui_bg.dds(0x83) ui_options.dds(0x83) main_menu_nord.dds(0x83) loadscreen.dds(0x83) loadscreen2.dds(0x83) mouse_icon.dds(0x83) escape_menu.dds(0x83) quit_adv.dds(0x83) quit_adv_b.dds(0x83) ui_quick_battle.dds(0x82) manface_young.dds(0x99080) manface_young_2.dds(0x99080) manface_young_3.dds(0x99080) manface_7.dds(0x80) manface_midage.dds(0x99080) manface_midage_2.dds(0x99080) manface_rugged.dds(0x99080) manface_african.dds(0x99080) manface_african_old.dds(0x80) manface_1_aged.dds(0x80) manface_2_aged.dds(0x80) manface_3_aged.dds(0x80) manface_4_aged.dds(0x80) manface_5_aged.dds(0x80) manface_6_aged.dds(0x80) manface_7_aged.dds(0x80) womanface_young.dds(0x99080) womanface_a.dds(0x99080) womanface_b.dds(0x99080) womanface_brown.dds(0x99080) womanface_african.dds(0x99080) womanface_1_aged.dds(0x80) womanface_2_aged.dds(0x80) womanface_3_aged.dds(0x80) womanface_4_aged.dds(0x80) womanface_african_aged.dds(0x80) hair_blonde.dds(0x99080) woman_normalmap.dds(0x84) woman_old_normalmap.dds(0x84) man_normalmap.dds(0x84) man_old_normalmap.dds(0x84) grass_mask.dds(0x300081) bark_c.dds(0x80) bark_c_normalmap.dds(0x84) bush_b.dds(0x80) bush_c.dds(0x80) gray.dds(0x80) player_chest.dds(0x80) player_chest_normal.dds(0x84) head_wrapping.dds(0x80) head_wrapping_normalmap.dds(0x84) earthenvmap.dds(0x80) envmap_medium.dds(0x80) map_misc.dds(0x80) mp_flag_project.dds(0x80) particles.dds(0x80) bogus.dds(0x80) roof_plates.dds(0x80) net.dds(0x80) banners_default.dds(0x80) banners_a.dds(0x80) banners_b.dds(0x80) banners_c.dds(0x80) banners_d.dds(0x80) banners_e.dds(0x80) banners_f.dds(0x80) banners_g.dds(0x80) banners_kingdoms.dds(0x80) custom_banner.dds(0x80) custom_banner_tall.dds(0x80) custom_banner_square.dds(0x80) custom_banner_short.dds(0x80) custom_banner_charges.dds(0x80) color_picker.dds(0x81) beard_blonde.dds(0x80) noise_mask_1.dds(0x200080) reverse_foam.dds(0x80) carpet_a.dds(0x80) carpet_b.dds(0x80) carpet_c.dds(0x80) tableau_shield_round_1_specular.dds(0x84) tableau_shield_small_round_1_specular.dds(0x84) tableau_shield_small_round_2_specular.dds(0x84) heraldic_armor_bg.dds(0x80) glow.dds(0x80) sun_bloom.tga(0x80) sun_core.dds(0x80) prt_text_steam_1.dds(0x80) prt_text_rain_mud_1.dds(0x80)  ...
prt_text_sparks_1.dds(0x80)  ...
blue_hose_a_normalmap.dds(0x84)  ...
woolen_hose_a.dds(0x80)  ...
mail_boots_a_normalmap.dds(0x84)  ...
plant.dds(0x80)  ...
manface_young.dds(0x99080) manface_young_2.dds(0x99080) manface_young_3.dds(0x99080) manface_midage.dds(0x99080) manface_midage_2.dds(0x99080) manface_rugged.dds(0x99080) manface_african.dds(0x99080) womanface_young.dds(0x99080) womanface_a.dds(0x99080) womanface_b.dds(0x99080) womanface_brown.dds(0x99080) womanface_african.dds(0x99080) hair_blonde.dds(0x99080)
manface_young.dds(0x99080) manface_young_2.dds(0x99080) manface_young_3.dds(0x99080) manface_midage.dds(0x99080) manface_midage_2.dds(0x99080) manface_rugged.dds(0x99080) manface_african.dds(0x99080) womanface_young.dds(0x99080) womanface_a.dds(0x99080) womanface_b.dds(0x99080) womanface_brown.dds(0x99080) womanface_african.dds(0x99080) hair_blonde.dds(0x99080)
manface_young.dds(0x99080) manface_young_2.dds(0x99080) manface_young_3.dds(0x99080) manface_midage.dds(0x99080) manface_midage_2.dds(0x99080) manface_rugged.dds(0x99080) manface_african.dds(0x99080) womanface_young.dds(0x99080) womanface_a.dds(0x99080) womanface_b.dds(0x99080) womanface_brown.dds(0x99080) womanface_african.dds(0x99080) hair_blonde.dds(0x99080)
manface_young.dds(0x99080) manface_young_2.dds(0x99080) manface_young_3.dds(0x99080) manface_midage.dds(0x99080) manface_midage_2.dds(0x99080) manface_rugged.dds(0x99080) manface_african.dds(0x99080) womanface_young.dds(0x99080) womanface_a.dds(0x99080) womanface_b.dds(0x99080) womanface_brown.dds(0x99080) womanface_african.dds(0x99080) hair_blonde.dds(0x99080)
shadow_default.tga(0x300082) grass_mask.dds(0x300081) grass.dds(0x300000)
shadow_default.tga(0x300082) grass_mask.dds(0x300081) grass.dds(0x300000) noise_mask_1.dds(0x200080)
waterbump(0x5000004)
waterbump(0x5000004)


In M&B 1.011 native:

bg2.dds(0x3) ui.dds(0x3) user_interface_b.dds(0x3) ui_gadgets.dds(0x3) interface.dds(0x3) inventory_window.dds(0x3) party_window.dds(0x3) note_window.dds(0x3) dialogue_window.dds(0x3) character_window.dds(0x3) face_gen_window.dds(0x3) button_drop.dds(0x3) quests_window.dds(0x3) chr_win_shadow.tga(0x3) cursor.dds(0x3) pic_mb_warrior_1.dds(0x3) pic_mb_warrior_2.dds(0x3) pic_mb_warrior_3.dds(0x3) pic_horse_archers.dds(0x3) pic_mercenary.dds(0x3) portrait_blend_out.dds(0x1) grass_mask.dds(0x300001) storm1.dds(0x1) gece1.dds(0x1) skybox.dds(0x1) skybox_cloud_1.dds(0x1) skybox_cloud_2.dds(0x1) skybox_night_1.dds(0x1) skybox_sunset_1.dds(0x1) color_picker.dds(0x1) pic_messenger.dds(0x3) pic_prisoner_man.dds(0x3) pic_prisoner_fem.dds(0x3) pic_prisoner_wilderness.dds(0x3) pic_siege_sighted.dds(0x3) pic_siege_sighted_fem.dds(0x3) pic_camp.dds(0x3) pic_payment.dds(0x3) pic_escape_1.dds(0x3) pic_escape_1_fem.dds(0x3) pic_victory.dds(0x3) pic_defeat.dds(0x3) pic_wounded.dds(0x3) pic_wounded_fem.dds(0x3) pic_looters.dds(0x3) pic_steppe_bandits.dds(0x3) pic_mountain_bandits.dds(0x3) pic_forest_bandits.dds(0x3) pic_sea_raiders.dds(0x3) pic_deserters.dds(0x3) pic_cattle.dds(0x3) pic_looted_village.dds(0x3) pic_village_w.dds(0x3) pic_village_s.dds(0x3) pic_village_p.dds(0x3) pic_recruits.dds(0x3) pic_arms_swadian.dds(0x3) pic_arms_vaegir.dds(0x3) pic_arms_khergit.dds(0x3) pic_arms_nord.dds(0x3) pic_arms_rhodok.dds(0x3)
bg2.dds(0x3) ui.dds(0x3) user_interface_b.dds(0x3) ui_gadgets.dds(0x3) interface.dds(0x3) inventory_window.dds(0x3) party_window.dds(0x3) note_window.dds(0x3) dialogue_window.dds(0x3) character_window.dds(0x3) face_gen_window.dds(0x3) button_drop.dds(0x3) warrider_logo.dds(0x2) quests_window.dds(0x3) shadow_default.tga(0x300002) chr_win_shadow.tga(0x3) cursor.dds(0x3) pic_mb_warrior_1.dds(0x3) pic_mb_warrior_2.dds(0x3) pic_mb_warrior_3.dds(0x3) pic_horse_archers.dds(0x3) pic_mercenary.dds(0x3) pic_messenger.dds(0x3) pic_prisoner_man.dds(0x3) pic_prisoner_fem.dds(0x3) pic_prisoner_wilderness.dds(0x3) pic_siege_sighted.dds(0x3) pic_siege_sighted_fem.dds(0x3) pic_camp.dds(0x3) pic_payment.dds(0x3) pic_escape_1.dds(0x3) pic_escape_1_fem.dds(0x3) pic_victory.dds(0x3) pic_defeat.dds(0x3) pic_wounded.dds(0x3) pic_wounded_fem.dds(0x3) pic_looters.dds(0x3) pic_steppe_bandits.dds(0x3) pic_mountain_bandits.dds(0x3) pic_forest_bandits.dds(0x3) pic_sea_raiders.dds(0x3) pic_deserters.dds(0x3) pic_cattle.dds(0x3) pic_looted_village.dds(0x3) pic_village_w.dds(0x3) pic_village_s.dds(0x3) pic_village_p.dds(0x3) pic_recruits.dds(0x3) pic_arms_swadian.dds(0x3) pic_arms_vaegir.dds(0x3) pic_arms_khergit.dds(0x3) pic_arms_nord.dds(0x3) pic_arms_rhodok.dds(0x3)
bark_normalmap.dds(0x4) bark_b_normalmap.dds(0x4) bark_c_normalmap.dds(0x4) player_chest_normal.dds(0x4) weapons1_specular.dds(0x4) weapons2_specular.dds(0x4) weapons3_specular.dds(0x4) synth_patch_rock_a_height.dds(0x4) dry_grass_bump.dds(0x4) rock_b_normalmap.dds(0x4) rock_c_normalmap.dds(0x4) ground_earth_bump.dds(0x4) ground_forest_bump.dds(0x4) ground1_bump.dds(0x4) snow_bump.dds(0x4) ground_village_bump.dds(0x4) ground_path_bump.dds(0x4) stucco_2_height.dds(0x4) stucco_4_height.dds(0x4) planks_height.dds(0x4) planks_2_height.dds(0x4) planks_4_height.dds(0x4) trunks_height.dds(0x4) wall3_height.dds(0x4) wall4_height.dds(0x4) wall5_height.dds(0x4) stone_wall_2_height.dds(0x4) stone_wall_3_height.dds(0x4) stone_wall_5_height.dds(0x4) stone_wall_7_height.dds(0x4) waterbump(0x5000004) floor_1_height.dds(0x4) tableau_shield_round_1_specular.dds(0x4) tableau_shield_small_round_1_specular.dds(0x4) tableau_shield_small_round_2_specular.dds(0x4)
manface_young.dds(0x99000) manface_young_2.dds(0x99000) manface_young_3.dds(0x99000) manface_midage.dds(0x99000) manface_midage_2.dds(0x99000) manface_rugged.dds(0x99000) manface_african.dds(0x99000) womanface_young.dds(0x99000) womanface_a.dds(0x99000) womanface_b.dds(0x99000) womanface_brown.dds(0x99000) womanface_african.dds(0x99000) hair_blonde.dds(0x99000)
manface_young.dds(0x99000) manface_young_2.dds(0x99000) manface_young_3.dds(0x99000) manface_midage.dds(0x99000) manface_midage_2.dds(0x99000) manface_rugged.dds(0x99000) manface_african.dds(0x99000) womanface_young.dds(0x99000) womanface_a.dds(0x99000) womanface_b.dds(0x99000) womanface_brown.dds(0x99000) womanface_african.dds(0x99000) hair_blonde.dds(0x99000)
manface_young.dds(0x99000) manface_young_2.dds(0x99000) manface_young_3.dds(0x99000) manface_midage.dds(0x99000) manface_midage_2.dds(0x99000) manface_rugged.dds(0x99000) manface_african.dds(0x99000) womanface_young.dds(0x99000) womanface_a.dds(0x99000) womanface_b.dds(0x99000) womanface_brown.dds(0x99000) womanface_african.dds(0x99000) hair_blonde.dds(0x99000)
manface_young.dds(0x99000) manface_young_2.dds(0x99000) manface_young_3.dds(0x99000) manface_midage.dds(0x99000) manface_midage_2.dds(0x99000) manface_rugged.dds(0x99000) manface_african.dds(0x99000) womanface_young.dds(0x99000) womanface_a.dds(0x99000) womanface_b.dds(0x99000) womanface_brown.dds(0x99000) womanface_african.dds(0x99000) hair_blonde.dds(0x99000)
shadow_default.tga(0x300002) grass_mask.dds(0x300001) grass.dds(0x300000)
shadow_default.tga(0x300002) grass_mask.dds(0x300001) grass.dds(0x300000) noise_mask_1.dds(0x200000)
waterbump(0x5000004)
waterbump(0x5000004)
 
As our assembled friend posted some time ago. Have we everything well interpreted for those flags?
I think that's the only real non-reversed official documentation we have. Apart from the Yoshiboy's skybox values (from Armagan) we had before they released the Module Data.

Marco. Can't you simply post an entry in the Bugtracker looking for some fast documentation, or copy-paste header files?
They seems more collaborative lastly. And I'm 100% sure that they know who your are.

Code:
#Blender.NMface mode flags:

#@> Face flags?
f_collision   = 0x0001
f_tex         = 0x0004
f_light       = 0x0010
f_shared      = 0x0040
f_tiles       = 0x0080
f_halo        = 0x0100
f_two_sided   = 0x0200
f_invisible   = 0x0400
f_obcolor     = 0x0800
f_billboard   = 0x1000
f_shadow      = 0x2000
f_text        = 0x4000

#@> Material flags?
no_fog             = 0x000001
no_lighting        = 0x000002
alpha_test         = 0x000004
no_modify_z_buffer = 0x000008
no_depth_test      = 0x000010
specular_enable    = 0x000020
alpha_blend        = 0x000100
alpha_blend_add    = 0x000200
render_first       = 0x001000
origin_at_camera   = 0x002000
position_map       = 0x010000
normal_map         = 0x020000
reflection_map     = 0x030000
sphere_map         = 0x040000

render_order_default   = 0x00000000
render_order_plus_1    = 0x01000000
render_order_plus_2    = 0x02000000
render_order_plus_3    = 0x03000000
render_order_plus_4    = 0x04000000
render_order_plus_5    = 0x05000000
render_order_plus_6    = 0x06000000
render_order_plus_7    = 0x07000000
render_order_minus_8   = 0x08000000
render_order_minus_7   = 0x09000000
render_order_minus_6   = 0x0a000000
render_order_minus_5   = 0x0b000000
render_order_minus_4   = 0x0c000000
render_order_minus_3   = 0x0d000000
render_order_minus_2   = 0x0e000000
render_order_minus_1   = 0x0f000000

------------------------------------------------------------------------

#@> No idea about this ones, meshes?
top_disable = 1
top_selectarg1 = 2
top_selectarg2 = 3
top_modulate = 4
top_modulate2x = 5
top_modulate4x = 6
top_add = 7
top_addsigned = 8
top_addsigned2x = 9
top_subtract = 10
top_addsmooth = 11
top_blenddiffusealpha = 12
top_blendtexturealpha = 13
top_blendfactoralpha = 14
top_blendtexturealphapm = 15
top_blendcurrentalpha = 16
top_premodulate = 17
top_modulatealpha_addcolor = 18
top_modulatecolor_addalpha = 19
top_modulateinvalpha_addcolor = 20
top_modulateinvcolor_addalpha = 21
top_bumpenvmap = 22
top_bumpenvmapluminance = 23
top_dotproduct3 = 24
top_multiplyadd = 25
top_lerp = 26

#also in graphics_context.h

#@> Texture Slots?
ta_current  = 0
ta_diffuse  = 1
ta_specular = 2
ta_temp     = 3
ta_texture  = 4
ta_factor   = 5

arg1_current  = ta_current   << 5
arg1_diffuse  = ta_diffuse   << 5
arg1_specular = ta_specular  << 5
arg1_temp     = ta_temp      << 5
arg1_texture  = ta_texture   << 5
arg1_factor   = ta_factor    << 5

arg2_current  = ta_current   << 8
arg2_diffuse  = ta_diffuse   << 8
arg2_specular = ta_specular  << 8
arg2_temp     = ta_temp      << 8
arg2_texture  = ta_texture   << 8
arg2_factor   = ta_factor    << 8
 
mmm, interesting, but none of them seem to be mesh flags...
(Face flags seem to be for collision objects)

Questions that will make me look silly: what do you mean by "As our assembled friend posted some time ago."? And what is "TRF"? And what are these Yoshiboy's "skybox values"?

Bugtruaker: good idea.

That said, I think some module (star wars, among others) have some 3D mesh like helmets / goggle-glasses seen from player's PoV, an effect which they achieve (unless I'm wrong) by setting some "screen space" flags on the corresponding mesh. So at least that flag should be easy to know. I wonder which one it is. Judging by the native meshes lists above, it might be N. 9 (used only by the cross hair in native).
 
mtarini said:
mmm, interesting, but none of them seem to be mesh flags...
(Face flags seem to be for collision objects)
Neat! That's what you call sign in the manifold?. I saw it when translating.


mtarini said:
And what is "TRF"??
Text Resource Files. The format they use internally when working with Blender.
The game can use it seamlessly and convert them automatically to Binary Resource Files. It's all here:
Code:
--------------------------------------------------------------------
INFORMATION ABOUT TRF FILES

Mount&Blade can use two types of files: .trf and .brf
And these two files being used in the same way.
M&B looks to creation time of trf and brf files. 
If you have two files with names X.trf and X.brf, trf file only being used if it's creation time more closer to current time.
If you put a .trf file to resource folders of M&B, it will be converted to .brf files while game in loading stage.

And of course you need to add file's name to "module.ini".
If you have X.trf, you must add "load_resource = X" to "module.ini". Than game can search for X.trf or X.brf in resource folder.

So step by step explanation is here:
1-) Create your "NAME.trf" file
2-) Copy it to CommonRes folder of Mount&Blade or Resource folder of your Module.
3-) Open module.ini of your module.
4-) If you copied trf file to CommonRes, add "load_resource = NAME" to file "module.ini"
5-) If you copied trf file to Resource folder of module, add "load_mod_resource = NAME" to file "module.ini"
6-) When you start game, file "NAME.trf" will be converted to "NAME.brf" in loading stage, and available to use immediately.

Note: If you have two files with names "NAME.trf" and "NAME.brf", game can overwrite to "NAME.brf". So copy your brf files if you need them.

The entire Readme file is here. Nothing groundbreaking.

mtarini said:
And what are these Yoshiboy's "skybox values"?
Here you have them. Nothing brf related. but was somewhat an epic moment of exchange. We hope we can repeat it again.
http://mbx.streetofeyes.com/index.php/topic,143.msg676.html#msg676


mtarini said:
"As our assembled friend posted some time ago."
cmpxchng8b  :smile:


mtarini said:
That said, I think some module (star wars, among others) have some 3D mesh like helmets / goggle-glasses seen from player's PoV, an effect which they achieve (unless I'm wrong) by setting some "screen space" flags on the corresponding mesh. So at least that flag should be easy to know. I wonder which one it is. Judging by the native meshes lists above, it might be N. 9 (used only by the cross hair in native).
Aha, you're right. We modify the z-order.
 
Be careful with material flags listed in the Exporter, because most of them seem to be wrong.
For example the exporter lists
Code:
render_first       = 0x001000
origin_at_camera   = 0x002000
while OpenBRF says
Code:
alpha_test_1      = 0x001000
alpha_test_128    = 0x002000
OpenBRF is definitely correct, even if that's not a flag, but actually a value from 0 to 3 ((material_flags >> 12) & 0x3). And I guess it should be called alpha_test_8, alpha_test_136 and alpha_test_251. :razz:

As for mesh flags, the only unknown one i have encountered in the code yet is 0x1000000: if the flag is not set when the mesh is loaded, it takes r, g and b from vertex color and does x = pow(2.2, x), then proceeds to set the flag. No idea what's the purpose of that.
I've also seen the "Warband format" and "tangent field is present" ones, although I don't think the first one actually means Warband format. When Warband converts TRF files to BRF, it sets that flag only if the graphics card supports some features (vertex shader 2.0, pixel shader 2.0, max streams >= 16 and D3DDEVCAPS2_STREAMOFFSET).
 
My best guess for most of these flags would be for fixed pipeline functionality on the vertex transform behaviour. This is the only thing I think might be sensible to store in the mesh rather than the material (even then seems weird). Perhaps this could include things such as billboarding, not being included in the depth pass for shadow maps, being located in screenspace, or other things.

If they are only used for fixed pipeline or/and DX7 then perhaps this would explain potential duplicates in the material flags. I don't know *shrug*.

Still - perhaps much the functionality is now redundant. The only way to really tell is enable and disable the flags and see what happens if anything to your model.
 
cmpxchg8b: thanks for the info on flag 0. Makes sense... Updated in the list above.

Yoshi: you are right, it is difficult to imagine flags that are appropriate for meshes.

Wild guesswork follows...

Flag 2 seems to be for plants, some dust particle, and mysteriously enough, for the slider handle too.
Maybe it means "rotate around Y randomly when placing this as a prop" (plants should be randomly rotated).
Or, "change per-vertex color according to season" (like yellowish at summer?).
Or... I think there's a setting in game called "simplified lighting on plants". Maybe it affects the meshes with this flag set.

Flag 5 seems to be used in naked body parts. Maybe it means: change vert colors according to skin color of character. But, it is used also in beards....

Flag 9 is for the crosshair only... among many other things, it could mean "auto-orient toward camera".

Most other flags and for particles. There's clearly a lot of possible meanings, including "depth-sort before rendering", "auto-orient toward camera", "keep track of velocity", and many others.

 
Thank you! Keep them flowing.

I added the listing all two used texture flags in my post above (third post of this thread).
Also added your explanation there.

And in OpenBRF too (for next version).


Edit: added to that post the info I could put it by reasonable guesses about texture flags:
Meanings:

Flags 0-2:   no idea.

Flag 3: "Languange dependent"  thanks [cmpxchg8b]
  (depending on the language settings, game will look for this texture in language texture folder -- WB only)

Flags 4-5: probably related to HDR textures (high dynamic range)

Flags 6-7:   no idea.

Flags 12-15: probably a 4-bits int related to MipMap in X directon

Flags 16-19: probably a 4-bits int related to MipMap in Y directon

Flags 20-21:   no idea.

Flags 22-26: probably a 5-bits int related to texture animations (number of frames)
 
More!

0x10 (4): if HDR is on the texture will not load
0x20 (5): if HDR is off the texture will not load
0x40 (6): texture is a cubemap (internal use only?)
0xF000000 (24-27): number of frames (divided by 4, I think)
0x2 (1): affects a value that is passed to DirectX ("the number of mip levels to be skipped (from the top of the mipmap chain)"). Normally the value is selected using texture detail settings, but if 0x2 is set the value will be forced to 0.
0x10000000 (2:cool:: it affects the value above too (forces 6), but I think it's also related to on-demand loading, perhaps to force loading a texture on-demand.
 
0x2 (1): affects a value that is passed to DirectX ("the number of mip levels to be skipped (from the top of the mipmap chain)"). Normally the value is selected using texture detail settings, but if 0x2 is set the value will be forced to 0.
That's probably a must for certain foliage shaders.

0x10000000 (2:cool:: it affects the value above too (forces 6), but I think it's also related to on-demand loading, perhaps to force loading a texture on-demand.
When texture on-demand is loaded, the initial scene is loaded at maximum mip level; then only after the textures are loaded it reloads with all the mips.  Totally bizarre system; I guess they do it that way so that if the engine nears the VRAM wall, it can stop but not halt, with ugly-looking textures for things that haven't gotten loaded yet.  Or something.  You'd think that instead an inventory would be performed of what would be in the scene, determining all of this before any objects were loaded, but that's not what happens.
 
xenoargh said:
When texture on-demand is loaded, the initial scene is loaded at maximum mip level;
Minimum?
xenoargh said:
then only after the textures are loaded it reloads with all the mips.  Totally bizarre system; I guess they do it that way so that if the engine nears the VRAM wall, it can stop but not halt, with ugly-looking textures for things that haven't gotten loaded yet.  Or something.  You'd think that instead an inventory would be performed of what would be in the scene, determining all of this before any objects were loaded, but that's not what happens.
That makes sense, actually. They don't really have a way of easily iterating through textures in use, so with this they spare a lot of work... besides, new textures are gonna be loaded all the time (mostly items).
 
Thank you a lot, cmpxchg8b and xenoarg!

Clarifications...

Flag number 1 (0x2) could be described as:
"Force loading of highest res mipmap level (regardless of texture detail settings)"

Right?


cmpxchg8b said:
0x40 (6): texture is a cubemap (internal use only?)
...
0x10000000 (2:cool:: it affects the value above too (forces 6), but I think it's also related to on-demand loading, perhaps to force loading a texture on-demand.

Judging by the fact that no native texture set those, I assume that these two are internal use only. 
Right?
OpenBRF will consider them "unused" (for the purpose of what you save in a brf file).


cmpxchg8b said:
0xF000000 (24-27): number of frames (divided by 4, I think)

Isn't it more linear (and likely) to interpret bit interval 22-27 (two more bits) as an int storing the number of frames directly (not divided by 4)?

The two bits 22 and 23 are set to 0 in all native textures, compatibly with this interpretation...

Actually the only example of this in native is the texture animation in water bump, with 20 frames -- numbered from "_0" to "_19" in the filenames (in the flag you read a value of 5, if you consider the 24-27 bit interval, but of 20, if you consider the 22-27 bit interval).

Naturally it is not a matter how what interpretation is more linear, but what the interpretation the game uses.
Did anyone try a custom texture animation for something else?
 
mtarini said:
Judging by the fact that no native texture set those, I assume that these two are internal use only. 
Right?
OpenBRF will consider them "unused" (for the purpose of what you save in a brf file).
Very likely, yes.
mtarini said:
Isn't it more linear (and likely) to interpret bit interval 22-27 (two more bits) as an int storing the number of frames directly (not divided by 4)?
I agree, but the game reads it like this:
Code:
num_frames = 4 * ((flags >> 24) & 0xF);
Maybe the lower 2 bits were ignored by the engine, the compiler realized it and optimized it that way... in any case changing their value won't do anything.

Also, more stuff:
0x100000 (20) and 0x200000 (21): if they are set, the texture-address mode for u and v respectively will be set to clamp instead of wrap. I have no idea what that means :grin:, so I can't really say if it's internal stuff or if setting it in BRFs might have an use.
 
Back
Top Bottom