Mercurial > touhou-doc
view 10/ecl.xml @ 5:b3644dff344c
Way too much changes. :/
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Mon, 22 Aug 2011 20:30:51 +0200 |
parents | f82309a9465e |
children | 2925b0e246c6 |
line wrap: on
line source
<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="../html.xsl"?> <?xml-stylesheet type="text/css" href="../style.css"?> <!DOCTYPE html> <opcodes xmlns="urn:opcodes:description"> <title>ECL opcodes</title> <op> <num>0</num> </op> <op> <num>1</num> <name>return</name> <desc>A return instruction.</desc> </op> <op> <num>10</num> <name>return</name> <desc>A return instruction.</desc> </op> <op> <num>11</num> <params> <param type="z">Subroutine name.</param> <param type="...">Optional parameters.</param> </params> <desc> <p>Calls a subroutine and passes it a number of parameters.</p> <p>The parameters have a special representation in the data files: a type indicator, and then the data value. The data value can be either an integer or a float. The type indicator can indicate three things,</p> <ol> <li>That the data is of float type. (0x6666)</li> <li>That the data is of integer type, but is used as a float type. (0x6669)</li> <li>That the data is of integer type. (0x6969)</li> </ol> <p>In the current syntax this is represented by prefixing the data with either (int) or (float).</p> <p>The parameters seem to end up on the stack of the called subroutine.</p> </desc> </op> <op> <num>12</num> <params> <param type="S">Relative jump offset.</param> <param type="time">New time value.</param> </params> <desc> <p>Jumps to another instruction. The offset is calculated by subtracting the location of the current instruction from the location of the target instruction. Labels can be used to calculate this automatically.</p> <p>The current time is also changed.</p> </desc> </op> <op> <num>13</num> <params> <param type="S">Relative jump offset.</param> <param type="time">New time value.</param> </params> <desc>Jumps when the top of the arithmetic stack is equal to 0. Refer to <ref>12</ref>.</desc> </op> <op> <num>14</num> <params> <param type="S">Relative jump offset.</param> <param type="time">New time value.</param> </params> <desc> <p>Jumps when the top of the arithmetic stack is not equal to 0.</p> <p>Refer to <ref>12</ref>.</p> </desc> </op> <op> <num>15</num> <params> <param type="z"></param> <param type="..."></param> </params> <desc>Refer to <ref>11</ref>.</desc> </op> <op> <num>16</num> <params> <param type="z">Subroutine name.</param> <param type="S">Index.</param> </params> <desc>Runs a subroutine in the background and assigns it the given slot.</desc> </op> <op> <num>17</num> <params> <param type="S">Index.</param> </params> <desc>Terminates a subroutine launched with <ref>16</ref>.</desc> </op> <op> <num>21</num> </op> <op> <num>40</num> <params> <param type="S">Stack size.</param> </params> <desc>Sets up the stack which is used for local variables and passed parameters. The stack size should be a multiple of four.</desc> </op> <op> <num>42</num> <params> <param type="S">Value.</param> </params> <desc>Pushes a value onto the arithmetic stack.</desc> </op> <op> <num>43</num> <params> <param type="S">Stack offset.</param> </params> <desc>Stores the value at the top of the arithmetic stack at the given stack offset.</desc> </op> <op> <num>44</num> <params> <param type="f"></param> </params> <desc>Pushes a value onto the arithmetic stack. Might be intended for floats.</desc> </op> <op> <num>45</num> <params> <param type="f"></param> </params> <desc>Stores the value at the top of the arithmetic stack at the given stack offset. Might be intended for floats.</desc> </op> <op> <num>50</num> <desc>Addition operator.</desc> </op> <op> <num>51</num> <desc>Addition operator. Might be intended for floats.</desc> </op> <op> <num>52</num> <desc>Subtraction operator.</desc> </op> <op> <num>53</num> <desc>Subtraction operator. Might be intended for floats.</desc> </op> <op> <num>54</num> <desc>Multiplication operator.</desc> </op> <op> <num>55</num> <desc>Multiplication operator. Might be intended for floats.</desc> </op> <op> <num>56</num> <desc>Division operator.</desc> </op> <op> <num>57</num> <desc>Division operator. Might be intended for floats.</desc> </op> <op> <num>58</num> <desc>Modulo operator.</desc> </op> <op> <num>59</num> <desc>Equality operator.</desc> </op> <op> <num>61</num> <desc>Inequality operator.</desc> </op> <op> <num>63</num> <desc>Less-than operator.</desc> </op> <op> <num>64</num> <desc>Less-than operator. Might be intended for floats.</desc> </op> <op> <num>65</num> <desc>Less-than-or-equal-to operator.</desc> </op> <op> <num>67</num> <desc>Greater-than operator.</desc> </op> <op> <num>68</num> <desc>Greater-than operator. Might be intended for floats.</desc> </op> <op> <num>69</num> <desc>Greater-than-or-equal-to operator.</desc> </op> <op> <num>70</num> <desc>Greater-than-or-equal-to operator. Might be intended for floats.</desc> </op> <op> <num>71</num> <desc>Boolean not operator.</desc> </op> <op> <num>73</num> <desc>Boolean or operator.</desc> </op> <op> <num>74</num> <desc>Boolean and operator.</desc> </op> <op> <num>78</num> <params> <param type="S">Stack offset.</param> </params> <desc>Decrements the value passed and pushes its old value onto the arithmetic stack.</desc> </op> <op> <num>79</num> </op> <op> <num>81</num> <params> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>82</num> <params> <param type="f"></param> </params> </op> <op> <num>83</num> <params> <param type="time">Time to wait.</param> </params> <desc>Wait the the specified time before continuing.</desc> </op> <op> <num>85</num> </op> <op> <num>256</num> <params> <param type="z">Subroutine name.</param> <param type="coordinate">Starting x position.</param> <param type="coordinate">Starting y position.</param> <param type="S">Hit points.</param> <param type="S">Score reward.</param> <param type="S">Item dropped when destroyed.</param> </params> <desc> <p>Create an "object", i.e. an enemy or something that can move around. The subroutine is called to set up and control the object.</p> <p>Items dropped (0 for nothing):</p> <ol> <li>Small powerup.</li> <li>Point item.</li> <li>Large green star.</li> <li>Large powerup.</li> <li>Full-score point item.</li> <li>Full-power powerup.</li> <li>1-up.</li> <li>An autocollecting yellow orb.</li> <li>Small green star.</li> </ol> </desc> </op> <op> <num>257</num> <params> <param type="z"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> <desc>No differences from <ref>256</ref> have been observed.</desc> </op> <op> <num>258</num> <params> <param type="S">ANM include index.</param> </params> <desc>Selects which ANM file to use for further animation operations. 1 refers to the first file listed, and 2 to the second. 0 appears to have some special meaning.</desc> </op> <op> <num>259</num> <params> <param type="S">?</param> <param type="S">Animation index.</param> </params> <desc> <p>Selects an animation for an object. The animation indices are listed in the ANM files, and contain their own animation script.</p> <p>The first parameter might allow for attaching several sprites to an object.</p> </desc> </op> <op> <num>260</num> <params> <param type="z"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> <desc>No differences from <ref>256</ref> have been observed.</desc> </op> <op> <num>261</num> <params> <param type="z"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> <desc>No differences from <ref>256</ref> have been observed.</desc> </op> <op> <num>262</num> <params> <param type="S"></param> <param type="S"></param> </params> <desc>Similar to <ref>257</ref>.</desc> </op> <op> <num>263</num> <params> <param type="S"></param> <param type="S"></param> </params> </op> <op> <num>264</num> <params> <param type="S"></param> <param type="S"></param> </params> </op> <op> <num>265</num> <params> <param type="z"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> <desc>No differences from <ref>256</ref> have been observed.</desc> </op> <op> <num>266</num> <params> <param type="z"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> <desc>No differences from <ref>256</ref> have been observed.</desc> </op> <op> <num>267</num> <params> <param type="z"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> <desc>No differences from <ref>256</ref> have been observed.</desc> </op> <op> <num>268</num> <params> <param type="z"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> <desc>No differences from <ref>256</ref> have been observed.</desc> </op> <op> <num>269</num> <params> <param type="S"></param> </params> <desc>Related to animation.</desc> </op> <op> <num>270</num> <params> <param type="z"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> <desc>Similar to <ref>256</ref>. Adds a third float parameter.</desc> </op> <op> <num>272</num> <params> <param type="S"></param> <param type="S"></param> </params> </op> <op> <num>273</num> <params> <param type="S"></param> <param type="S"></param> <param type="f"></param> </params> </op> <op> <num>280</num> <params> <param type="coordinate">Target x position.</param> <param type="coordinate">Target y position.</param> </params> <desc>Instantly moves an object to the specified position.</desc> </op> <op> <num>281</num> <params> <param type="time">Move duration.</param> <param type="S">Movement mode.</param> <param type="coordinate">Target x position.</param> <param type="coordinate">Target y position.</param> </params> <desc> <p>Moves the object to the specified position in the specified time.</p> <p>The movement mode controls how the object moves to the target position, but the time it takes is the same. 0 is normal movement, 1 accelerates and stops suddenly, 4 moves in an interpolated manner.</p> </desc> </op> <op> <num>282</num> <params> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>283</num> <params> <param type="S"></param> <param type="S"></param> <param type="f"></param> <param type="S"></param> </params> </op> <op> <num>284</num> <params> <param type="angle">Direction.</param> <param type="f">Speed.</param> </params> <desc>Sets movement direction and speed for an object. The speed might be pixels per frame.</desc> </op> <op> <num>285</num> <params> <param type="S"></param> <param type="S"></param> <param type="f"></param> <param type="f"></param> </params> <desc>Similar to <ref>285</ref>. Maybe it is used to change from one movement to another.</desc> </op> <op> <num>286</num> <params> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>287</num> <params> <param type="S"></param> <param type="S"></param> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>288</num> <params> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>290</num> <params> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>291</num> <params> <param type="S"></param> <param type="S"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> </params> </op> <op> <num>292</num> <params> <param type="S"></param> <param type="S"></param> <param type="f"></param> </params> </op> <op> <num>294</num> </op> <op> <num>296</num> <params> <param type="S"></param> <param type="S"></param> <param type="f"></param> </params> </op> <op> <num>298</num> <params> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>299</num> <params> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>320</num> <params> <param type="f">Hitbox width.</param> <param type="f">Hidbox height.</param> </params> <desc>Sets up a hitbox for an object. It is not disabled by setting both parameters to 0.0f.</desc> </op> <op> <num>321</num> <params> <param type="f">Killbox width.</param> <param type="f">Killbox height.</param> </params> <desc>Sets up a killbox (the area which kills the player) for an object. It can be disabled by setting both parameters to 0.0f.</desc> </op> <op> <num>322</num> <params> <param type="S"></param> </params> <desc>Appears to set flags for objects, such as if it has a hitbox or not.</desc> </op> <op> <num>323</num> <params> <param type="S"></param> </params> </op> <op> <num>324</num> <params> <param type="S"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>325</num> <desc>Related to item drops.</desc> </op> <op> <num>326</num> <desc>Clears the list of items to be dropped.</desc> </op> <op> <num>327</num> <params> <param type="S">Item.</param> <param type="S">Count.</param> </params> <desc>Sets up which items (<ref>256</ref>) are dropped when this object is defeated (in addition to the one specified by the creation instruction). Can be called several times for more items.</desc> </op> <op> <num>328</num> <params> <param type="f">Width.</param> <param type="f">Height.</param> </params> <desc>Sets up an area in which items are dropped.</desc> </op> <op> <num>329</num> <desc>Drops all loaded items.</desc> </op> <op> <num>330</num> <params> <param type="S"></param> </params> </op> <op> <num>331</num> <params> <param type="S">Hit points.</param> </params> <desc>Changes the hit points of an object.</desc> </op> <op> <num>332</num> <params> <param type="S">Flag.</param> </params> <desc>Enables or disables "boss mode" (hit point bar, and name display). Enabled with 0 and disabled with -1.</desc> </op> <op> <num>333</num> </op> <op> <num>334</num> <params> <param type="S"></param> <param type="S"></param> <param type="time">Time.</param> <param type="z">Subroutine name.</param> </params> <desc>Sets up a condition for a boss. For example the specified subroutine can be called after a period of time has passed. It can also be used for hit points.</desc> </op> <op> <num>335</num> <params> <param type="time">Invulnerability duration.</param> </params> <desc>Makes the object invulnerable for the specified period of time.</desc> </op> <op> <num>336</num> <params> <param type="S"></param> </params> </op> <op> <num>337</num> <params> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> </op> <op> <num>338</num> <params> <param type="S">Dialogue index.</param> </params> <desc>Initiates dialogue. The first dialogue has index 0.</desc> </op> <op> <num>339</num> </op> <op> <num>340</num> </op> <op> <num>341</num> <params> <param type="S"></param> <param type="z"></param> </params> </op> <op> <num>342</num> <params> <param type="S">Spell card number.</param> <param type="time">Spell card bonus timer.</param> <param type="S"></param> <param type="cstring">Spell card name.</param> </params> <desc>Set up a spell card. One is added to the spell card number to get the number displayed in-game.</desc> </op> <op> <num>343</num> </op> <op> <num>344</num> <params> <param type="S"></param> </params> </op> <op> <num>345</num> </op> <op> <num>346</num> <params> <param type="f"></param> </params> </op> <op> <num>347</num> <params> <param type="S"></param> <param type="f"></param> <param type="S"></param> </params> </op> <op> <num>355</num> <params> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> </op> <op> <num>356</num> <params> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>357</num> <params> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="cstring"></param> </params> <desc>No differences from <ref>342</ref> have been observed.</desc> </op> <op> <num>359</num> <params> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="cstring"></param> </params> <desc>No differences from <ref>342</ref> have been observed.</desc> </op> <op> <num>360</num> <params> <param type="S">Number of spell card stars.</param> </params> <desc>Sets the number of spell cards remaining, as indicated by a series of stars. Requires boss mode (<ref>332</ref>) for the stars to show up.</desc> </op> <op> <num>361</num> <params> <param type="S"></param> </params> </op> <op> <num>362</num> </op> <op> <num>363</num> </op> <op> <num>364</num> <params> <param type="S"></param> </params> </op> <op> <num>365</num> </op> <op> <num>366</num> <params> <param type="S">Flag.</param> <param type="S">Animation index.</param> </params> <desc>Enables or disables bomb-invulnerability for an object. Set the flag to 1 to enable or 0 to disable it. The object's animation is changed as specified for the duration of the bomb.</desc> </op> <op> <num>367</num> <params> <param type="f"></param> </params> </op> <op> <num>368</num> <params> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> </op> <op> <num>400</num> <params> <param type="S">Bullet type.</param> </params> <desc>Might initialize a new bullet type. Eight different bullet types have been observed.</desc> </op> <op> <num>401</num> <params> <param type="S">Bullet type.</param> </params> <desc>Fires a bullet of the specified type.</desc> </op> <op> <num>402</num> <params> <param type="S">Bullet type.</param> <param type="S"></param> <param type="S"></param> </params> <desc>Sets the bullet type appearance.</desc> </op> <op> <num>403</num> <params> <param type="S">Bullet type.</param> <param type="f">x offset.</param> <param type="f">y offset.</param> </params> <desc>Makes bullets spawn in a position offset from the object which fires them.</desc> </op> <op> <num>404</num> <params> <param type="S"></param> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>405</num> <params> <param type="S"></param> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>406</num> <params> <param type="S">Bullet type.</param> <param type="S">Bullet count.</param> <param type="S">Extra bullets.</param> </params> <desc>The bullet count parameter can be used to fire walls or circles of bullets The extra parameter fires additional bullets, each at half the speed of the previous.</desc> </op> <op> <num>407</num> <params> <param type="S"></param> <param type="S"></param> </params> </op> <op> <num>409</num> <params> <param type="S">Bullet type.</param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="f"></param> <param type="f"></param> </params> <desc>Might set up random bullet attributes.</desc> </op> <op> <num>410</num> </op> <op> <num>411</num> <params> <param type="S"></param> <param type="S"></param> </params> </op> <op> <num>412</num> <params> <param type="S"></param> <param type="S"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="f"></param> </params> </op> <op> <num>413</num> <params> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="f"></param> <param type="S"></param> </params> </op> <op> <num>420</num> <params> <param type="f"></param> </params> </op> <op> <num>421</num> <params> <param type="f"></param> </params> </op> <op> <num>425</num> <params> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> </op> <op> <num>428</num> <params> <param type="S"></param> <param type="S"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="f"></param> <param type="S"></param> <param type="f"></param> </params> </op> <op> <num>431</num> <params> <param type="S"></param> <param type="S"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>433</num> <params> <param type="S"></param> <param type="S"></param> <param type="f"></param> <param type="f"></param> <param type="S"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>435</num> <params> <param type="S"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> <param type="f"></param> </params> </op> <op> <num>436</num> <params> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> <param type="S"></param> </params> </op> </opcodes>