User Tools

Site Tools


kirby64_the_crystal_shards:level_settings_blocks

This is an old revision of the document!


Level Settings Block

Every Area has its own Level Settings Block defined inside the Main Stage Table (see: Levels). The level settings block defines the camera, collision, and entities spawned inside the stage. The Basic Structure of the Level Settings Block is as follows.

Level Settings Layout

  1. Main Header
  2. Vertices (s16 triplets)
  3. Triangles (20 bytes each)
  4. Surface Normals
  5. Triangle Groups/Cells
  6. Surface Normals Groups/Cells
  7. Unkown Floats (possibly for star blocks/breakable geo)
  8. Unk halfs (possibly for star blocks/breakable geo)
  9. Unk halfs 2 (mostly zeroes, ends with 9999)
  10. Unk halfs 3 (Breaking star blocks?)
  11. Collision Header (referred to by Header[0])
  12. Camera Defines of some sort (referred to by Header[1])
  13. Entity List (referred to by Header[2])

Collision

Collision is handled by several different lists that combine to create the level geometry.

Vertices

Vertices are made up of unsorted s16 tripets of x, y and z position.

Triangles

Triangles are made by connecting 3 vertices referenced by their index. (e.g. 0,1,2 is made up of vertices 0,1 and 2 in the list). Every Triangle has a struct that has additional parameters telling the game how to handle collision.

0x0:	u16	Vertex[2]
0x6:	u16	Quads #not sure
0x8:	u16	Collision_Type_1 #(1 forward norm, 2 back norm, 4 no shadow, 8 non solid/warp related?)
0xA:	u16	Break_flag #(game crashes if not 0xB on hammer geo, has some other numbers for star blocks)
0xC:	u16	Break_Particle #(seen in DEDEDE hammer break)
0xE:	u16	Halt_Movement #warp related? Maybe dest (kirby cant move while on top of this if 1)
0x10:	s16	Col_Param1 #Amount to move kirby while on certain col types or Break Condition
0x12:	u16	Collision_Type_2 #see col type list

The following is a list of Collision_Type_2 values known.

  • 0x1 - wall ladder
  • 0x2 - rope
  • 0x3 - death floor
  • 0x4 - Platform you can jump through/Fall Through
  • 0x8 - warp
  • 0x9 - STAR BLOCK/Breakable Blocks
  • 0xD - Breakable Ceiling/Breaks when launched through
  • 0x10 - DEDEDE hammer break
  • 0x12 - move kirby backwards while on top
  • 0x13 - move kirby forwards while on top
  • 0x14 - Platform with custom movement (seems to be in some sort of object list separate from normal level geometry)

Triangle Normals

kirby64_the_crystal_shards/level_settings_blocks.1580069496.txt.gz · Last modified: 2020/01/26 20:11 by jesusyoshi54