RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

UOP format

joshw

Sorceror
format ? you mean what are uop files? you create them with michelagelo or some other animation programs

or are you looking for a site which hosts uop files?
 

aveSatanas

Wanderer
That time i develop program for creating animation for UO. And i'm need to place animation in uop format for patching verdata.
 

salabar

Wanderer
For the UOP export of my tool ( UOAnimTool ) i've doing some test and this is the structure :

Code:
int header; // Michelangelo set 72372053
long nPatch;
patch[nPatch] uopPatches;

patch : 

byte file;
int id;
int lenght;
int extra;
byte[lenght] data;
 

aveSatanas

Wanderer
OOO It's very cool tool!!! I'm use it:)
Can you explain what parameters <file> and <extra> mean?
And one more question: animation stored in avi format or frames of bmp?
 

salabar

Wanderer
Code:
public struct Entry5D
{
	public int file;
	public int index; // id of my struct
	public int lookup;
	public int length;
	public int extra;
}
This is the verdata's struct (from Ultima Sdk)

File is the number of owritten file... for the anim it is 6 (find on Ultima Sdk or in other mul's format site)

Extra it's an extra value used in some file (for examples in extra are saved width and height of gump image). for anim this value is -1.

The anim is saved as bmp frames. Take the source of my program if you want see how it work
 

aveSatanas

Wanderer
For your souces i'm not exactly unederstand how calculate lenght:
Struct in uop like this(probably i have done mistake) :
byte = 6
int BlockID
int BlockLenght
int Extra = -1
short[255] palette
int Framecount
int lookupTable[Framecount]
//-------------------Frame1--------------------
short ImageCenterX
short ImageCenterY
short Widht
short Height
//------------Bitmap------------------------

//------------EndOfBitmap-----------------
//-------------------EndOfFrame1------------

Is lenght size of patch after Extra or not?

And one more question: can i simple read bmp from disk and write it in Bitmap zone without any changes?
 

salabar

Wanderer
yes, after extra you must write the anim data.
i think you can't read the bmp and write in the patch, because you must convert (for examples the color)
 

aveSatanas

Wanderer
Great sorry for my stupidity :) but can you explain me some things:
1) As i understand struct of RowHeader is : first 4 bits is line number other is line lenght. how to generate line number for my image ?
2) What is the struct of RowOffset? And how can i generate it for my image?
Or maybe SDK has class or method to generate frame from image?
 
Top