Mercurial > touhou-doc
diff 07/sht.xhtml @ 13:2925b0e246c6 default tip
Fix a lot of things, and add a TODO.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Fri, 17 Feb 2012 12:54:08 +0100 |
parents | |
children |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/07/sht.xhtml @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="utf-8"?> +<?xml-stylesheet type="text/css" href="../style.css"?> +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> + <head> + <title>SHT format</title> + </head> + <body> + <h1>SHT format</h1> + <p>The SHT format defines a character and its shots in PCB.</p> + + + <h2>Header</h2> +<pre> +typedef struct { + uint16_t unknown1; // Seems ignored + uint16_t level_count; + + // All hitboxes have only one value, the same for the width and the height. + float bombs; // Why is it a float? + float unknown2; //TODO + float hitbox; + float graze_hitbox; + float autocollected_item_speed; // Applies to all items going towards us + float item_hitbox; + float percentage_of_cherry_loss_on_die; //TODO: verify the formula + float point_of_collection; + float horizontal_vertical_speed; + float horizontal_vertical_focused_speed; + float diagonal_speed; + float diagonal_focused_speed; + + thsht_offset_t offsets[level_count]; + + thsht_shot_type_t shots[]; +} thsht_header_t; +</pre> + +<pre> +typedef struct { + uint32_t offset; + uint32_t power; +} thsht_offset_t; +</pre> + + <h2>Shot type</h2> +<pre> +typedef struct { + // If these 2 are 0xffff, then end the parsing. + uint16_t interval; + uint16_t unknown1; + + float x; + float y; + float hitbox_x; + float hitbox_y; + float angle; + float speed; + uint16_t damage; + uint8_t orb; // 0 = character, 1 = left orb, 2 = right orb + uint8_t unknown2; + uint16_t sprite; + uint16_t unknown3; + + // These 4 are actually booleans. + uint32_t unknown4; + uint32_t homing; // accelerates too + uint32_t unknown5; + uint32_t unknown6; +} thsht_shot_type_t; +</pre> + </body> +</html>