Hack64 Wiki
Other Titles
Hack64 Wiki
Other Titles
This is an old revision of the document!
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.
Collision is handled by several different lists that combine to create the level geometry.
Vertices are made up of unsorted s16 tripets of x, y and z position.
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.