This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
kirby64_the_crystal_shards:level_settings_blocks [2020/03/05 18:16] jesusyoshi54 [Node_Header] |
kirby64_the_crystal_shards:level_settings_blocks [2020/03/05 18:49] jesusyoshi54 |
||
---|---|---|---|
Line 30: | Line 30: | ||
struct Main_Header | struct Main_Header | ||
{ | { | ||
- | /*0x00*/ ptr *Collision_Header; | + | /*0x00*/ struct Collision_Header *Collision_Header; |
- | /*0x04*/ ptr *Node_Header; | + | /*0x04*/ struct Node_Header *Node_Header; |
- | /*0x08*/ ptr *Entity_IDs; | + | /*0x08*/ struct Entities (*Entity_IDs)[]; |
}; | }; | ||
</code> | </code> | ||
Line 55: | Line 55: | ||
/*0x0*/ u16 Vertex[3]; | /*0x0*/ u16 Vertex[3]; | ||
/*0x6*/ u16 Polygon_Number; | /*0x6*/ u16 Polygon_Number; | ||
- | /*0x8*/ u16 Solidty_Type; //(1 forward norm, 2 back norm, 4 no shadow, 8 non solid) | + | /*0x8*/ u16 Solidity_Type; //(1 forward norm, 2 back norm, 4 no shadow, 8 non solid) |
/*0xA*/ u16 Destructable_Group_Index; | /*0xA*/ u16 Destructable_Group_Index; | ||
/*0xC*/ u16 Break_Particle; //(seen in DEDEDE hammer break) | /*0xC*/ u16 Break_Particle; //(seen in DEDEDE hammer break) | ||
Line 87: | Line 87: | ||
struct Normal | struct Normal | ||
{ | { | ||
- | /*0x0*/ Vec3f Surface_Normals | + | /*0x0*/ Vec3f Surface_Normals; |
- | /*0xC*/ f32 Origin_Offset | + | /*0xC*/ f32 Origin_Offset; |
- | } | + | }; |
</code> | </code> | ||
Line 228: | Line 228: | ||
/*0x8*/ struct Node_Connecters (*Node_Connections)[]; | /*0x8*/ struct Node_Connecters (*Node_Connections)[]; | ||
/*0xC*/ u16 Num_Connections; | /*0xC*/ u16 Num_Connections; | ||
- | /*0xE*/ u16 unk; | + | /*0xE*/ u16 Self_Connected; |
}; | }; | ||
</code> | </code> | ||
Line 255: | Line 255: | ||
/*0x0C*/ f32 Inverse_H_Speed; | /*0x0C*/ f32 Inverse_H_Speed; | ||
/*0x10*/ f32 (*Boundary_Matrix)[]; | /*0x10*/ f32 (*Boundary_Matrix)[]; | ||
- | /*0x14*/ f32 *Unk; | + | /*0x14*/ f32 (*Unk)[][5]; |
}; | }; | ||
</code> | </code> | ||
- | The unknown section is almost always null. All that is known is that it follows the boundary matrix and is 4 sets if 5 floats. | + | The unknown section is almost always null. All that is known is that it follows the boundary matrix and is an areay of 5 floats, with length of Num_Node_Sections-1. |
==== Camera&Kirby Nodes ==== | ==== Camera&Kirby Nodes ==== | ||
Line 265: | Line 265: | ||
These nodes tell the game how to move the camera with respect to the path nodes. | These nodes tell the game how to move the camera with respect to the path nodes. | ||
There are settings for kirby's graphics (possibly lots of other things aswell) as he progresses through the level, as well as camera movement. | There are settings for kirby's graphics (possibly lots of other things aswell) as he progresses through the level, as well as camera movement. | ||
+ | |||
+ | Thr flag in 0xE of Kirby_Node determines if 0x10 or 0x4 is read. A value of 0x10 reads unused3, and a value of 0x1 reads the warp. | ||
+ | |||
+ | The unused3 and unused4 code is read by the game, but seems to do nothing. Its possibly code that was removed after a beta. | ||
+ | Opt_1 and opt_2 are used only in 5-5-1. | ||
<code c> | <code c> | ||
struct Kirby_Node | struct Kirby_Node | ||
{ | { | ||
- | /*0x00*/ u32 unk; | + | /*0x00*/ u8 Node_Number; |
+ | /*0x01*/ u8 Padding; | ||
/*0x02*/ u16 unk2; | /*0x02*/ u16 unk2; | ||
- | /*0x04*/ u32 unk3; | + | /*0x04*/ struct Level Warps; |
/*0x08*/ u8 unused; | /*0x08*/ u8 unused; | ||
/*0x09*/ u8 Shade_Left; | /*0x09*/ u8 Shade_Left; | ||
/*0x0A*/ u8 Shade_Center; | /*0x0A*/ u8 Shade_Center; | ||
/*0x0B*/ u8 Shade_Right; | /*0x0B*/ u8 Shade_Right; | ||
- | /*0x0C*/ u16 unk4; | + | /*0x0C*/ u16 unused2; |
/*0x0E*/ u16 Unkflag; | /*0x0E*/ u16 Unkflag; | ||
- | /*0x10*/ u32 opt_1; | + | /*0x10*/ s16 unused3; |
- | /*0x14*/ u32 opt_2; | + | /*0x12*/ s16 unused4; |
- | /*0x18*/ u32 opt_3; | + | /*0x14*/ f32 opt_1; |
- | /*0x1C*/ u32 opt_4; | + | /*0x18*/ f32 opt_2; |
- | /*0x20*/ struct Camera_Node Camera; | + | /*0x1C*/ u32 unused5; |
+ | /*0x20*/ struct Camera_Node Camera; | ||
}; | }; | ||
</code> | </code> |