# HG changeset patch # User Thibaut Girka # Date 1314093483 -7200 # Node ID 2a7b9d62c0c4fe1d1e75978088bf8d4aece4cbd9 # Parent 578e67aa3c0363e5297c81b0093e7175580209fa Fix details, and details and documentation for a few instructions diff --git a/06/anm.xml b/06/anm.xml --- a/06/anm.xml +++ b/06/anm.xml @@ -30,8 +30,9 @@ 3 + set_alpha - + alpha (0 to 255) @@ -44,9 +45,11 @@ 5 + jump - + relative offset of the instruction to jump to + Jump to the given instruction and reset the frame counter to the instruction's frame. @@ -68,10 +71,11 @@ 10 + set_3d_rotation_speed - - - + -x + y + -z @@ -101,7 +105,8 @@ 15 - A kind of return + keep_still + When this instruction is called, the sprite is a still image: the script stops without the sprite disappearing. @@ -189,16 +194,20 @@ 27 + shift_texture_x - + dx + Add dx to the x coordinates of the texture, causing the texture to "move". 28 + shift_texture_y - + dy + Add dy to the y coordinates of the texture, causing the texture to "move". diff --git a/06/ecl.xhtml b/06/ecl.xhtml --- a/06/ecl.xhtml +++ b/06/ecl.xhtml @@ -29,7 +29,7 @@ typedef struct { uint16_t opcode; uint16_t size; // Never less than 0xc. uint16_t rank_mask; // the first byte is always 0xff, and the second the mask of the ranks to which the instruction applies, 1 for easy, 8 for lunatic. - uint16_t param_mask; // If the last param is a stack, the number of bits at 0 indicates the number of items in the stack. + uint16_t param_mask; // Unused in EoSD, always 255. It is used in other Touhou games to indicate whether an argument is an "address" or not, though. unsigned char params[size-0xc]; } thecl06_sub_t; @@ -92,7 +92,7 @@ typedef struct {

Type

-

Used in the game are: 0, 2, 4, 6 for the enemies (0x1c-long), 0xa for the 0x10-long instruction, and 8, 9 and 0xc for the 8-long one.

+

Used in the game are: 0, 2, 4, 6 for the enemies (0x1c-long), 0xa for the 0x10-long instruction, and 8, 9 and 0xc for the 8-long one. Type might be quite a misnomer since those are pretty much flags.