OBD:PSpc: Difference between revisions
Jump to navigation
Jump to search
m (design) |
(added explanation) |
||
Line 19: | Line 19: | ||
It's something like a texture coordinate array. But it's a bit strange, because there are a lot of [0, 0] points in it. So I've no idea how Oni reads this data. | It's something like a texture coordinate array. But it's a bit strange, because there are a lot of [0, 0] points in it. So I've no idea how Oni reads this data. | ||
;What's stored | |||
:There are 9 rectangles stored in PSpc: 4 corners, 4 sides and one interior rectangle. Typically all 9 are used (to draw buttons for example) or only one is used (the top left corner, to draw checkboxes for example). There are cases where the top left corner and the interior rectangle are present which indicates that the code can choose what part to draw. | |||
:The reason for using 9 rectangles is to allow drawing of buttons (and anything else that has a border) in various sizes without distorting the image. | |||
:*the corners are never rescaled | |||
:*horizontal sides can be stretched horizontally | |||
:*vertical sides can be stretched vertically | |||
:*the interior can be stretched both ways | |||
:Of course that means that the sides and the interior must be "special" images that can be stretched without visible distortion. | |||
;How it is stored | |||
:Each 2 int16 fields makes a texture coordinate. The first 9 texture are coordinates are the top left coordinate of each of the 9 rectangles and the next 9 coordinates are the bottom right coordinate of each of the 9 rectangles. When both coordinates are 0 then the rectangle is not used. The order of the coordinates is top bottom and left to right. | |||
{{OBD_File_Footer | type=PSpc | prev=PNTA | next=PSpL | name=Part Specification | family=Message}} | {{OBD_File_Footer | type=PSpc | prev=PNTA | next=PSpL | name=Part Specification | family=Message}} |
Revision as of 22:32, 13 September 2007
|
Offset | Type | Raw Hex | Value | Description |
---|---|---|---|---|
0x00 | res_id | 01 39 00 00 | 57 | 00057-level_3_part.PSpc |
0x04 | lev_id | 01 00 00 06 | 3 | level 3 |
0x08 | int16 | 00 00 | 0 | x-coordinate of the first point on the texture |
... | ... | ... | ... | ... |
0x4E | int16 | 00 00 | 0 | y-coordinate of the last point on the texture |
0x50 | link | 01 38 00 00 | 0 | link to 00056-h_03.TXMP |
0x54 | char[12] | AD DE | dead | unused |
It's something like a texture coordinate array. But it's a bit strange, because there are a lot of [0, 0] points in it. So I've no idea how Oni reads this data.
- What's stored
- There are 9 rectangles stored in PSpc: 4 corners, 4 sides and one interior rectangle. Typically all 9 are used (to draw buttons for example) or only one is used (the top left corner, to draw checkboxes for example). There are cases where the top left corner and the interior rectangle are present which indicates that the code can choose what part to draw.
- The reason for using 9 rectangles is to allow drawing of buttons (and anything else that has a border) in various sizes without distorting the image.
- the corners are never rescaled
- horizontal sides can be stretched horizontally
- vertical sides can be stretched vertically
- the interior can be stretched both ways
- Of course that means that the sides and the interior must be "special" images that can be stretched without visible distortion.
- How it is stored
- Each 2 int16 fields makes a texture coordinate. The first 9 texture are coordinates are the top left coordinate of each of the 9 rectangles and the next 9 coordinates are the bottom right coordinate of each of the 9 rectangles. When both coordinates are 0 then the rectangle is not used. The order of the coordinates is top bottom and left to right.
ONI BINARY DATA |
---|
PNTA << Other file types >> PSpL |
PSpc : Part Specification |
Message file |