User Tools

Site Tools


kirby64_the_crystal_shards:level_settings_blocks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
kirby64_the_crystal_shards:level_settings_blocks [2020/05/27 12:19]
jesusyoshi54
kirby64_the_crystal_shards:level_settings_blocks [2020/08/18 16:11]
jesusyoshi54 [Camera&Kirby Nodes]
Line 110: Line 110:
 ==== Normal Groups ==== ==== Normal Groups ====
  
-The normal groups ​is list that matches each normal ​to triangle. It is formed ​in pairs with the first item being the index of the normal, and the second item being the index of the triangle.+The normal groups ​are binary space partition tree of the level normals and corresponding triangles associated with those normals. Each normal ​group represents ​node in the tree, and has a right and left child based on whether ​the ensemble ​of triangles is in front or behind ​the parent node.
  
-Normal groups are sorted by polygon index. Only floors & ceilings are referenced by the normal groups, walls are given the first index of the normals list (-1,​-2,​-3,​-4).+The first index of the normal group is (-1,​-2,​-3,​-4), the search through the tree starts at the last member in the array, indices of zero refer to leaf nodes.
  
 <code c> <code c>
Line 118: Line 118:
 { {
 /​*0x0*/ ​ u16  Normal_Index;​ /​*0x0*/ ​ u16  Normal_Index;​
-/​*0x2*/ ​ u16  ​Next_Norm_Group+/​*0x2*/ ​ u16  ​Left_Child
-/​*0x4*/ ​ u16  ​Unk;+/​*0x4*/ ​ u16  ​Right_Child;
 /​*0x6*/ ​ u16  Tri_Cell_Index /​*0x6*/ ​ u16  Tri_Cell_Index
 }; };
Line 314: Line 314:
 </​code>​ </​code>​
  
 +For any of the camera values, 9999 can be used to disable reading that value. For a pair, -9999 is used in the first member and 9999 in the second member to disable them.
 +
 +Certain values are only used if the bool enables them. For example a focus pos is only used if that axis is locked.
 +
 +The bounds variables basically set limits on how far the camera moves before panning to face kirby instead of scrolling.
 <code c> <code c>
 struct Camera_Node struct Camera_Node
 { {
-/​*0x00*/ ​  u16    Camera_Type;+/​*0x00*/ ​  u8     ​Profile_View/* Set position to be in line with kirbys side*/ 
 +/​*0x01*/ ​  ​u8 ​    Pad; /*Unused*/
 /​*0x02*/ ​  ​u8 ​    ​Lock_X_pos;​ /​*0x02*/ ​  ​u8 ​    ​Lock_X_pos;​
 /​*0x03*/ ​  ​u8 ​    ​Lock_Y_pos;​ /​*0x03*/ ​  ​u8 ​    ​Lock_Y_pos;​
 /​*0x04*/ ​  ​u8 ​    ​Lock_Z_pos;​ /​*0x04*/ ​  ​u8 ​    ​Lock_Z_pos;​
 /​*0x05*/ ​  ​u8 ​    ​unused;​ /​*0x05*/ ​  ​u8 ​    ​unused;​
-/​*0x06*/ ​  ​u8 ​    unk1+/​*0x06*/ ​  ​u8 ​    DisableCamPhi
-/​*0x07*/ ​  ​u8 ​    unk2+/​*0x07*/ ​  ​u8 ​    DisableCamPhiDown
-/​*0x08*/ ​  ​u8 ​    Follow_X_Angle+/​*0x08*/ ​  ​u8 ​    EnableCamTheta
-/​*0x09*/ ​  ​u8 ​    unk4+/​*0x09*/ ​  ​u8 ​    pad2
-/​*0x0A*/ ​  u8     unk5;+/​*0x0A*/ ​  u16    pad3;
 /​*0x0C*/ ​  ​f32 ​   X_Focus_Pos;​ /​*0x0C*/ ​  ​f32 ​   X_Focus_Pos;​
 /​*0x10*/ ​  ​f32 ​   Y_Focus_Pos;​ /​*0x10*/ ​  ​f32 ​   Y_Focus_Pos;​
-/​*0x14*/ ​  ​f32 ​   ​Flag//usually 9999+/​*0x14*/ ​  ​f32 ​   ​Z_Focus_Pos;
 /​*0x18*/ ​  ​f32 ​   Near_Clip_Plane;​ /​*0x18*/ ​  ​f32 ​   Near_Clip_Plane;​
 /​*0x1C*/ ​  ​f32 ​   Far_Clip_Plane;​ /​*0x1C*/ ​  ​f32 ​   Far_Clip_Plane;​
-/​*0x20*/ ​  ​f32[2] ​Cam_Y_Pos+/​*0x20*/ ​  ​f32[2] ​CamRadiusScale
-/​*0x28*/ ​  ​f32[2] ​Cam_X_Pos+/​*0x28*/ ​  ​f32[2] ​CamTheta
-/​*0x30*/ ​  ​f32[2] ​Cam_Z_Pos;+/​*0x30*/ ​  ​f32[2] ​CamRadius;
 /​*0x38*/ ​  ​f32[2] FOV_Pair; /​*0x38*/ ​  ​f32[2] FOV_Pair;
-/​*0x40*/ ​  ​f32[2] ​Lateral_Y_Pos+/​*0x40*/ ​  ​f32[2] ​CamPhi
-/​*0x48*/ ​  ​f32 ​   ​Unk6;​ +/​*0x48*/ ​  f32[2] Cam_X_LockBounds
-/​*0x4C*/ ​  ​f32 ​   Cam_X_Offset_Locked+/​*0x50*/ ​  f32[2] Cam_Y_LockBounds
-/​*0x50*/ ​  ​f32 ​   ​Unk7;​ +/​*0x58*/ ​  ​f32[2] ​Cam_Z_LockBounds
-/​*0x54*/ ​  ​f32 ​   Cam_Y_Pos_Locked+/​*0x60*/ ​  f32[2] Cam_Yaw_LockBounds
-/​*0x58*/ ​  ​f32[2] ​Flag2//mostly a 9999 pair +/​*0x68*/ ​  f32[2] Cam_Pitch_LockBounds;
-/​*0x60*/ ​  ​f32 ​   ​Focus_Y_Above//while 0x6 is true +
-/​*0x64*/ ​  ​f32 ​   Focus_Y_Below;​ //while 0x6 is true +
-/​*0x68*/ ​  ​f32 ​   ​Focus_X_Left//while 0x6 is true +
-/​*0x6C*/ ​  ​f32 ​   Focus_X_Right;​ //while 0x6 is true+
 }; };
 </​code>​ </​code>​
kirby64_the_crystal_shards/level_settings_blocks.txt · Last modified: 2021/04/09 18:18 by someone2639