Difference between revisions of "User:Viader"
From VCMI Project Wiki
Line 1: | Line 1: | ||
Najpierw pozbierajmy informacje znalezione w internecie :) | Najpierw pozbierajmy informacje znalezione w internecie :) | ||
+ | <pre> | ||
<b>Text formats<b> | <b>Text formats<b> | ||
Line 9: | Line 10: | ||
Describe soon... | Describe soon... | ||
− | <b>Image formats<b> | + | <b>Image formats</b> |
<b>Format BMP</b> | <b>Format BMP</b> | ||
Line 25: | Line 26: | ||
<b> Format PCX </b> | <b> Format PCX </b> | ||
− | + | ||
struct h3pcx_color_indexed { | struct h3pcx_color_indexed { | ||
uint8_t r; | uint8_t r; | ||
Line 52: | Line 53: | ||
h3pcx_color_bgr bitmap[width*height]; | h3pcx_color_bgr bitmap[width*height]; | ||
}; | }; | ||
− | + | ||
Source: | Source: | ||
Line 59: | Line 60: | ||
<b>Format DEF</b> | <b>Format DEF</b> | ||
− | |||
struct h3def_color_indexed { | struct h3def_color_indexed { | ||
uint8_t r; | uint8_t r; | ||
Line 93: | Line 93: | ||
uint32_t y; | uint32_t y; | ||
}; | }; | ||
− | |||
Source: | Source: | ||
Line 138: | Line 137: | ||
<b> Format LOD </b> | <b> Format LOD </b> | ||
− | + | struct h3lod { | |
uint32_t magic; // always 0x00444f4c, that is, a null-terminated "LOD" string | uint32_t magic; // always 0x00444f4c, that is, a null-terminated "LOD" string | ||
uint32_t type; // 200 for base archives, 500 for expansion pack archives, probably completely arbitrary numbers | uint32_t type; // 200 for base archives, 500 for expansion pack archives, probably completely arbitrary numbers | ||
Line 152: | Line 151: | ||
uint32_t type; // what's in the file - probably not used by the game directly, more on that below | uint32_t type; // what's in the file - probably not used by the game directly, more on that below | ||
uint32_t size_compressed; // how many bytes to read, starting from offset - can be zero for stored files, use size_original in such case | uint32_t size_compressed; // how many bytes to read, starting from offset - can be zero for stored files, use size_original in such case | ||
− | } | + | } |
Line 161: | Line 160: | ||
Source: | Source: | ||
http://corexii.com/h3m_description.english.txt | http://corexii.com/h3m_description.english.txt | ||
+ | </pre> |
Revision as of 11:39, 22 July 2013
Najpierw pozbierajmy informacje znalezione w internecie :)
<b>Text formats<b> <b>Format TXT</b> http://en.wikipedia.org/wiki/Text_file //NOTE: check encoding - probably ASCII <b>Format JSON</b> Describe soon... <b>Image formats</b> <b>Format BMP</b> http://en.wikipedia.org/wiki/BMP_file_format <b>Format JPG</b> https://en.wikipedia.org/wiki/JPEG <b>Format PNG</b> http://en.wikipedia.org/wiki/Portable_Network_Graphics <b>Format TGA</b> https://en.wikipedia.org/wiki/Truevision_TGA <b> Format PCX </b> struct h3pcx_color_indexed { uint8_t r; uint8_t g; uint8_t b; }; struct h3pcx_indexed { uint32_t bitmap_size; // equals to width*height - 1 byte per pixel uint32_t width; uint32_t height; uint8_t bitmap[width*height]; h3pcx_color_indexed palette[256]; }; struct h3pcx_color_bgr { uint8_t b; uint8_t g; uint8_t r; }; struct h3pcx_bgr { uint32_t bitmap_size; // equals to 3*width*height - 3 bytes per pixel uint32_t width; uint32_t height; h3pcx_color_bgr bitmap[width*height]; }; Source: http://wiki.enleth.com/homm:homm3-pcx-graphics <b>Format DEF</b> struct h3def_color_indexed { uint8_t r; uint8_t g; uint8_t b; }; struct h3def_header { uint32_t type; uint32_t width; uint32_t height; uint32_t sequences_count; h3def_color_indexed palette[256]; }; struct h3def_sequence { uint32_t type; uint32_t length; uint32_t unknown1; uint32_t unknown2; char *names[length]; uint32_t offsets[length]; }; struct h3def_frame_header { uint32_t data_size; uint32_t type; uint32_t width; uint32_t height; uint32_t img_width; uint32_t img_height; uint32_t x; uint32_t y; }; Source: http://wiki.enleth.com/homm:homm3-def-animations <b>Music formats<b> <b>Format MP3</b> http://en.wikipedia.org/wiki/MP3 <b>Format OGG</b> https://en.wikipedia.org/wiki/Ogg <b>Format 82M</b> Renamed WAVE format https://ccrma.stanford.edu/courses/422/projects/WaveFormat/ <b>Video formats<b> <b>Format AVI</b> http://en.wikipedia.org/wiki/Audio_Video_Interleave <b>Format SMK</b> http://en.wikipedia.org/wiki/Smacker_video <b>Format BIK</b> http://en.wikipedia.org/wiki/Bink_Video <b>Format MJPG</b> //better link needed http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml#notes <b>Format MPQ</b> rather not Blizzard format... <b>Palette formats<b> <b>FORMAT PAL</b> http://worms2d.info/Palette_file <b>Palette formats<b> <b> Format LOD </b> struct h3lod { uint32_t magic; // always 0x00444f4c, that is, a null-terminated "LOD" string uint32_t type; // 200 for base archives, 500 for expansion pack archives, probably completely arbitrary numbers uint32_t files_count; // obvious uint8_t unknown[80]; // 80 bytes of hell knows what - in most cases that's all zeros, but in H3sprite.lod there's a bunch of seemingly irrelevant numbers here, any information is welcome struct h3lod_file[10000]; // file list } struct h3lod_file { char name[16]; // null-terminated, sometimes null-padded too, sometimes padded with, well, something after the null uint32_t offset; // includes the header size, no preprocessing required uint32_t size_original; // before compression, that is uint32_t type; // what's in the file - probably not used by the game directly, more on that below uint32_t size_compressed; // how many bytes to read, starting from offset - can be zero for stored files, use size_original in such case } <b>Map formats<b> <b>Format H3M</b> Source: http://corexii.com/h3m_description.english.txt