qtScribe, Визуальный редактор |
Здравствуйте, гость ( Вход | Регистрация )
qtScribe, Визуальный редактор |
Crypton |
31.5.2009, 4:07
Сообщение
#51
|
Диггер
Группа: ЗавсегдатаиСообщений: 162 Регистрация: 18.11.2008 Из: Czech Republic Пользователь №: 2 939 |
Sweet tool, I see that you've added a ART support, nice!
It was not working for me, but after I checked your topic again I found a link for missing dlls PS: What about shell integration and file extension association? like for .src and .art... Сообщение отредактировал Crypton - 31.5.2009, 12:11 -------------------- |
radzh |
31.5.2009, 7:52
Сообщение
#52
|
Исследователь
Группа: СвоиСообщений: 518 Регистрация: 12.5.2009 Пользователь №: 3 512 |
Sweet tool, I see that you've added a ART support, nice! Yep, doin' what i can Pity i can't debug as you do, so it's mostly tinkering on the outside bits. Won't be able to create an .art from the scratch probably. Цитата PS: What about shell integration and file extension association? like for .src and .art... Doubtly. qtScribe is supposed to be a deeply integrated tool, kinda like WorldEd studio, working on a bunch of different files at once. Besides, there is no even registry in Linux Thanks for the snippet though, nice to see your progress Those shots with 3d lights are great. Сообщение отредактировал radzh - 1.6.2009, 0:40 |
san |
31.5.2009, 8:56
Сообщение
#53
|
Некромант форума Arcanum
Группа: Гл. администраторыСообщений: 2 876 Регистрация: 17.10.2006 Из: Москва Пользователь №: 2 |
Цитата Чтобы изменить кодировку, мне нужно узнать, в какой кодировке файл. А чтобы это узнать, мне нужен сам файл. С моими файлами всё работает штатно, поэтому мне нужен один из файлов, которые глючат. Можешь мне скинуть один из твоих файлов? У кого чего болит, тот о том и... description.zip ( 12.75 килобайт ) Кол-во скачиваний: 106 |
radzh |
31.5.2009, 9:17
Сообщение
#54
|
Исследователь
Группа: СвоиСообщений: 518 Регистрация: 12.5.2009 Пользователь №: 3 512 |
Цитата Опоздал, теперь жди 0.6 |
Crypton |
31.5.2009, 12:18
Сообщение
#55
|
Диггер
Группа: ЗавсегдатаиСообщений: 162 Регистрация: 18.11.2008 Из: Czech Republic Пользователь №: 2 939 |
If you want to help with something to find, just ask
Do you need to find something about ART file header ? Because I was researching ART format a year ago, so I think that I could find a notes about that (if not, I'm able to do it again). PS: Цитата Those shots with 3d lights are great. Yeah they are pretty nice, but its original arcanum lights just bitmaps. Not D3D lights :P I've tried to use 3D lights aswell (also with fog), but I'll try to keep that project as much "Arcanumish" as possible :P Сообщение отредактировал Crypton - 31.5.2009, 12:32 -------------------- |
radzh |
31.5.2009, 15:08
Сообщение
#56
|
Исследователь
Группа: СвоиСообщений: 518 Регистрация: 12.5.2009 Пользователь №: 3 512 |
If you want to help with something to find, just ask Do you need to find something about ART file header ? Because I was researching ART format a year ago, so I think that I could find a notes about that (if not, I'm able to do it again). Hell yeah, i do! What i want to know: 1. The exact meaning of DWORD[0] of header. 5 is font, what about others? 2. DWORDs [1] and [2] - what are they? 3. How are DWORDs [3] to [6] coded? Them stands for palettes count, but what's their values meaning? 4. How is image count coded exactly in DWORDs [7] and [8]? Is it even possible to build non-8 imaged animations? 5. DWORDs [9] to [16] and [17] to [24] are mistery to me as well. 6. Is there a way to control compressed/noncompressed state of frames individually? Font .arts seem to have only first image uncompressed. 7. Is there a way to have more than 4 palettes? Pretty much everything i do know is located in artfile.* and artfileHeader.h files. You may look at those to check my knowledge limits. Would be grateful a lot if you'd widen those limits Btw, how's you proto research is going? Have you progressed any further than Krupp and eml78? Цитата I'll try to keep that project as much "Arcanumish" as possible :P 'Xactly what i mean |
Crypton |
31.5.2009, 18:01
Сообщение
#57
|
Диггер
Группа: ЗавсегдатаиСообщений: 162 Регистрация: 18.11.2008 Из: Czech Republic Пользователь №: 2 939 |
Цитата Hell yeah, i do! What i want to know: 1. The exact meaning of DWORD[0] of header. 5 is font, what about others? 2. DWORDs [1] and [2] - what are they? 3. How are DWORDs [3] to [6] coded? Them stands for palettes count, but what's their values meaning? 4. How is image count coded exactly in DWORDs [7] and [8]? Is it even possible to build non-8 imaged animations? 5. DWORDs [9] to [16] and [17] to [24] are mistery to me as well. 6. Is there a way to control compressed/noncompressed state of frames individually? Font .arts seem to have only first image uncompressed. 7. Is there a way to have more than 4 palettes? Pretty much everything i do know is located in artfile.* and artfileHeader.h files. You may look at those to check my knowledge limits. Would be grateful a lot if you'd widen those limits Okey, I see thats a lot info you want, so I'll look header of your art loader and then I'll try to find all unknown bytes and bits, to complete header struct Цитата Btw, how's you proto research is going? Have you progressed any further than Krupp and eml78? I told you that I've found everything whats in proto docs is about 5 from 100% what I found, but I need to complete and translate it to one doc, then I'll release it :P Сообщение отредактировал Crypton - 31.5.2009, 18:12 -------------------- |
radzh |
31.5.2009, 19:16
Сообщение
#58
|
Исследователь
Группа: СвоиСообщений: 518 Регистрация: 12.5.2009 Пользователь №: 3 512 |
Okey, I see thats a lot info you want I want it ALL Actually i don't think all the data in Arcanum file formats are relevant or used by the engine. Looks like lots of fields are just legacy. Цитата I told you that I've found everything That's unbelievably cool so i just needed to hear it once again Сообщение отредактировал radzh - 31.5.2009, 19:30 |
radzh |
1.6.2009, 0:38
Сообщение
#59
|
Исследователь
Группа: СвоиСообщений: 518 Регистрация: 12.5.2009 Пользователь №: 3 512 |
|
Crypton |
1.6.2009, 6:57
Сообщение
#60
|
Диггер
Группа: ЗавсегдатаиСообщений: 162 Регистрация: 18.11.2008 Из: Czech Republic Пользователь №: 2 939 |
I see that you've added a proto tab to your qtScribe :P so you are really going to make a universal modding tool for arcanum ? Anyway, I was researching a ART format today, because I was unable to find any notes I've found most of unknown values, but some of them are still a unknown to me... they are not compared anywhere, and doesnt change anything in game.... This is what I found so far: Код --------------------- -> Structures <- --------------------- Header: TArtFileHeader = Packed Record Frags: DWORD; Unknown: DWORD; StageCount: DWORD; PaletteTable: Array[0..3] of Pointer; FrameEnd: DWORD; FrameCount: DWORD; StageInfoTable: Array[0..7] of Pointer; StageSizeTable: Array[0..7] of DWORD; StageDataTable Array[0..7] of Pointer; End; Frame info: TArtFrameInfo = packed record Width: DWORD; Height: DWORD; Size: DWORD; Left, Top: Integer; DeltaX, DeltaY: Integer; end; --------------------- ->Description<- --------------------- You see that I've named something a "Stage", in ArtView its "Picture" but I call that Stage because its grouped set of frames. ************************ -Flags: 00000001 = IsCompact, 1 means that there is only one Stage that contains all frames, and this stage is duplicated to next 7 slots. 0 means that all 8 stages are saved. 00000002 = *HasDelta, it says that DeltaX and DeltaY is non zero in TArtFrameInfo. 00000004 = *Unknown, used only in Fonts. 00000008 = *Unknown, used only in Facades. *This flags seems to be ignored by game. ************************ -Unknown: This value is pretty strange to me, sometimes it equals to number of frames, sometimes its greater or less. I though that its some kind of flags or framerate, but I was unable to find its usage... This value must be nonzero, or game crashes. So just put there 1 and it will work. ************************ -StageCount: Number of stages saved in header, this value is always 8 and cant be different, game checks if this value is 8, if not it will crash or load badart.art. ************************ -PaletteTable: Its array of memory pointers, when loading Art file, you check if element is nonzezo, and if its, you allocate memory and read palette. Example: for (i = 0; i < 4; i++) { if (PaletteTable[i] != NULL) { PaletteTable[i] = malloc(256 * 4); fread... } } ************************ -FrameEnd: This is a bit unknow too, it doesnt changes anything in game and also its not checked by art loader, it seems that its ignored at all... This value usually(?) equal to FrameCount - 1, but could be also zero. ************************ -FrameCount: Number of frames per stage. ************************ -StageInfoTable: As I said, Art can contains up to 8 stages, its 8 because of critters, because they could move in 8 directions. This table is array of memory pointers, every pointer points to array of TArtFrameInfo. You know that you can find TArtFrameInfo after palettes, number of TArtFrameInfo per stage is saved in FrameCount in TArtFileHeader. When flag IsCompact is set, you set first member of StageInfoTable to remaining 7 members, in other words just duplicate :) Values in this table are not checked anywhere, so when saving new art, you can set them to zero. ************************ -StageSizeTable: Size of every stage in bytes, size of all frames when rle compressed. When flag IsCompact is set, you set first member of StageInfoTable to remaining 7 members, in other words just duplicate :) Values in this table are not checked anywhere, so when saving new art, you can set them to zero. ************************ -StageSizeTable: Size of every stage in bytes, size of all frames when rle compressed. When flag IsCompact is set, you set first member of StageInfoTable to remaining 7 members, in other words just duplicate :) Values in this table are not checked anywhere, so when saving new art, you can set them to zero. ************************ -StageDataTable: Table of Memory pointers, every pointer points set of decompressed bitmaps (set = stage, bitmap = frame). When flag IsCompact is set, you set first member of StageInfoTable to remaining 7 members, in other words just duplicate :) Values in this table are not checked anywhere, so when saving new art, you can set them to zero. ************************ I also found that RLE compression detection is done in correct way in ArtView, game does it in this way: IsCompressed:= FrameInfo.Size <> (FrameInfo.Width * FrameInfo.Height); Thats all what I found today :P I hope it helps a bit... Сообщение отредактировал Crypton - 1.6.2009, 15:57 -------------------- |
Текстовая версия | Сейчас: 22.12.2024, 15:45 |