#pragma mapfile "utils/th11.eclm" meta {} void MBoss() { stackAlloc(@nargs=1, @blob="10000000"); setBoss(@nargs=1, @blob="00000000"); anmSelect(@nargs=1, @blob="00000000"); anmSetSprite(@nargs=2, @blob="02000000 aa000000"); anmSelect(@nargs=1, @blob="02000000"); anmSetMain(@nargs=2, @blob="00000000 07000000"); flagSet(@nargs=1, @blob="40000000"); setHurtbox(@nargs=2, @blob="00004042 00004042"); setHitbox(@nargs=2, @blob="00002042 00002042"); lifeSet(@nargs=1, @blob="d0070000"); lifeMarker(@nargs=3, @blob="00000000 0000fa44 80a0ffff"); pushi(@nargs=1, @blob="01000000"); seti(@mask=0b1, @nargs=1, @blob="25d9ffff"); setChapter(@nargs=1, @blob="06000000"); movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043"); wait(@nargs=1, @blob="46000000"); playSound(@nargs=1, @blob="29000000"); anmSetSprite(@nargs=2, @blob="00000000 23000000"); +60: // 60 dialogWait(@blob=""); anmSetMain(@nargs=2, @blob="00000000 1b000000"); moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00008041"); playSound(@nargs=1, @blob="29000000"); fog(@nargs=2, @blob="00002043 00808000"); anmSelect(@nargs=1, @blob="00000000"); anmSetSprite(@nargs=2, @blob="01000000 5c000000"); anmSelect(@nargs=1, @blob="02000000"); call(@nargs=1, @blob="0c000000 4d426f73 73436172 64310000"); jmp(@nargs=2, @blob="2c000000 3c000000"); wait(@nargs=1, @blob="e8030000"); pushi(@nargs=1, @blob="01000000"); jmpNeq(@nargs=2, @blob="d8ffffff 3c000000"); delete(@blob=""); } void MBossCard1() { stackAlloc(@nargs=1, @blob="14000000"); setInterrupt( @nargs=4, @blob="00000000 00000000 ac080000 08000000 426f7373 32000000", ); spell( @nargs=4, @blob="8a000000 ac080000 00000000 14000000 e01a1c4a 724f1836 e67d0ff8 65661ea6 e61885ac", ); setChapter(@nargs=1, @blob="0f000000"); lifeSet(@nargs=1, @blob="d0070000"); lifeMarker(@nargs=3, @blob="00000000 0000fa44 80a0ffff"); setInterrupt( @nargs=4, @blob="00000000 00000000 ac080000 0c000000 4d426f73 73446561 64000000", ); killAllAsync(@blob=""); setInvuln(@nargs=1, @blob="3c000000"); enmCreate( @nargs=6, @blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000", ); enmKillAll(@blob=""); pushi(@nargs=1, @blob="01000000"); seti(@mask=0b1, @nargs=1, @blob="25d9ffff"); moveLimitReset(@blob=""); +30: // 30 anmPlay(@nargs=2, @blob="00000000 83000000"); +60: // 90 nop(@blob=""); flagSet(@nargs=1, @blob="0c000000"); pushi(@nargs=1, @blob="32000000"); seti(@mask=0b1, @nargs=1, @blob="10000000"); jmp(@nargs=2, @blob="64020000 5a000000"); pushf(@nargs=1, @blob="7077d63c"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); pushf(@nargs=1, @blob="7077d63b"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushi(@nargs=1, @blob="19000000"); seti(@mask=0b1, @nargs=1, @blob="ffd8ffff"); pushi(@nargs=1, @blob="00000000"); seti(@mask=0b1, @nargs=1, @blob="00d9ffff"); callAsync(@nargs=1, @blob="10000000 4d426f73 73436172 64315f61 74000000"); wait(@mask=0b1, @nargs=1, @blob="10000000"); pushf(@nargs=1, @blob="7077d6bc"); setf(@mask=0b1, @nargs=1, @blob="00f41bc6"); pushf(@nargs=1, @blob="7077d6bb"); setf(@mask=0b1, @nargs=1, @blob="00f01bc6"); pushi(@nargs=1, @blob="12000000"); seti(@mask=0b1, @nargs=1, @blob="ffd8ffff"); pushi(@nargs=1, @blob="01000000"); seti(@mask=0b1, @nargs=1, @blob="00d9ffff"); callAsync(@nargs=1, @blob="10000000 4d426f73 73436172 64315f61 74000000"); wait(@mask=0b1, @nargs=1, @blob="10000000"); pushi(@mask=0b1, @nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="1e000000"); greateri(@blob=""); jmpEq(@nargs=2, @blob="64000000 5a000000"); pushi(@mask=0b1, @nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="04000000"); subi(@blob=""); seti(@mask=0b1, @nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="01000000"); jmpNeq(@nargs=2, @blob="a0fdffff 5a000000"); ret(@blob=""); } void MBossCard1_at() { stackAlloc(@nargs=1, @blob="18000000"); etNew(@mask=0b1, @nargs=1, @blob="00d9ffff"); etAim(@mask=0b1, @nargs=2, @blob="00d9ffff 03000000"); etSprite(@mask=0b11, @nargs=3, @blob="00d9ffff ffd8ffff 00000000"); etCountD( @mask=0b1, @nargs=9, @blob="00d9ffff 0c000000 18000000 1a000000 1c000000 01000000 01000000 01000000 01000000", ); etAngle(@mask=0b1, @nargs=3, @blob="00d9ffff 00000000 00000000"); etSpeedD( @mask=0b1, @nargs=9, @blob="00d9ffff 0000e03f 0000e03f 0000e03f 0000e03f 0000c03f 0000c03f 0000c03f 0000c03f", ); etEx( @mask=0b1, @nargs=8, @blob="00d9ffff 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9", ); etEx( @mask=0b1, @nargs=8, @blob="00d9ffff 02000000 00000000 04000000 3c000000 c1bdf0ff 8988883c f02374c9", ); pushi(@nargs=1, @blob="0c000000"); seti(@mask=0b1, @nargs=1, @blob="0c000000"); pushi(@nargs=1, @blob="0c000000"); setf(@mask=0b1, @nargs=1, @blob="00000000"); pushi(@nargs=1, @blob="64000000"); seti(@mask=0b1, @nargs=1, @blob="10000000"); pushf(@nargs=1, @blob="d80fc93f"); setf(@mask=0b1, @nargs=1, @blob="00008040"); pushf(@mask=0b1, @nargs=1, @blob="00f41bc6"); setf(@mask=0b1, @nargs=1, @blob="00000041"); pushi(@mask=0b1, @nargs=1, @blob="00d9ffff"); seti(@mask=0b1, @nargs=1, @blob="14000000"); jmp(@nargs=2, @blob="88010000 00000000"); etEx( @mask=0b1, @nargs=8, @blob="14000000 01000000 00000000 00100000 1e000000 c1bdf0ff f02374c9 f02374c9", ); etDist(@mask=0b11, @nargs=2, @blob="14000000 00000000"); etAngle(@mask=0b11, @nargs=3, @blob="14000000 00008040 00000000"); etOn(@mask=0b1, @nargs=1, @blob="14000000"); pushf(@mask=0b1, @nargs=1, @blob="00000000"); pushi(@nargs=1, @blob="0e000000"); addf(@blob=""); setf(@mask=0b1, @nargs=1, @blob="00000000"); pushi(@mask=0b1, @nargs=1, @blob="10000000"); pushi(@nargs=1, @blob="07000000"); subi(@blob=""); seti(@mask=0b1, @nargs=1, @blob="10000000"); pushf(@mask=0b1, @nargs=1, @blob="00008040"); pushf(@mask=0b1, @nargs=1, @blob="00000041"); subf(@blob=""); setf(@mask=0b1, @nargs=1, @blob="00008040"); wait(@nargs=1, @blob="08000000"); deci(@mask=0b1, @nargs=1, @blob="0c000000"); jmpNeq(@nargs=2, @blob="7cfeffff 00000000"); ret(@blob=""); } void MBossDead() { stackAlloc(@nargs=1, @blob="04000000"); flagSet(@nargs=1, @blob="8c000000"); anmPlay(@nargs=2, @blob="00000000 4c000000"); playSound(@nargs=1, @blob="12000000"); anmPlay(@nargs=2, @blob="00000000 8d000000"); moveVel(@mask=0b1, @nargs=2, @blob="00381cc6 cdcccc3e"); pushi(@mask=0b1, @nargs=1, @blob="fed8ffff"); pushi(@nargs=1, @blob="00000000"); eqi(@blob=""); jmpEq(@nargs=2, @blob="68000000 00000000"); enmCreate( @nargs=6, @blob="10000000 45636c5f 45744272 65616b32 00000000 00000000 00000000 0f270000 00000000 00000000", ); jmp(@nargs=2, @blob="50000000 00000000"); enmCreate( @nargs=6, @blob="10000000 45636c5f 45744272 65616b32 5f6e6900 00000000 00000000 0f270000 00000000 00000000", ); +60: // 60 etClearAll(@blob=""); spellEnd(@blob=""); enmKillAll(@blob=""); dropMain(@nargs=1, @blob="00000000"); pushi(@mask=0b1, @nargs=1, @blob="fed8ffff"); pushi(@nargs=1, @blob="00000000"); eqi(@blob=""); jmpEq(@nargs=2, @blob="0c010000 3c000000"); dropClear(@blob=""); pushi(@mask=0b1, @nargs=1, @blob="25d9ffff"); pushi(@nargs=1, @blob="01000000"); eqi(@blob=""); jmpEq(@nargs=2, @blob="2c000000 3c000000"); dropMain(@nargs=1, @blob="05000000"); pushi(@nargs=1, @blob="01000000"); seti(@mask=0b1, @nargs=1, @blob="25d9ffff"); dropExtra(@nargs=2, @blob="04000000 02000000"); dropExtra(@nargs=2, @blob="02000000 0a000000"); dropArea(@nargs=2, @blob="00004042 00004042"); dropItems(@blob=""); setScreenShake(@nargs=3, @blob="1e000000 0c000000 00000000"); anmPlay(@nargs=2, @blob="00000000 4c000000"); anmPlay(@nargs=2, @blob="00000000 8e000000"); playSound(@nargs=1, @blob="12000000"); setBoss(@nargs=1, @blob="ffffffff"); delete(@blob=""); delete(@blob=""); }