222 lines
4.4 KiB
Text
222 lines
4.4 KiB
Text
|
|
/* synthesized appendix for WINDSURF */
|
|
/* sparse lines above preserve recovered debugger line numbers where available */
|
|
|
|
/* ===== slot 0x06 gotHit ===== */
|
|
function windsurf_gotHit() /* entry=179 class_id=0x0337 slot=0x06 */
|
|
{
|
|
entry:
|
|
set_info(0x020C, *(arg_06));
|
|
process_exclude();
|
|
FREE.slot_35(arg_0C, arg_0A);
|
|
if retval goto block_01B1;
|
|
|
|
block_01AE:
|
|
goto block_0483;
|
|
|
|
block_01B1:
|
|
if (Item.getMapNum(arg_06) != 0) goto block_046B;
|
|
|
|
block_01C0:
|
|
local_02 = arg_0A;
|
|
if Item.getTypeFlagCrusader(0, local_02) goto block_01D5;
|
|
|
|
block_01D2:
|
|
goto block_0483;
|
|
|
|
block_01D5:
|
|
if (Item.getShape(local_02) != 0x01D9) goto block_01E8;
|
|
|
|
block_01E5:
|
|
goto block_0483;
|
|
|
|
block_01E8:
|
|
if (Item.overlaps(arg_0A, arg_06) != 0) goto block_01FC;
|
|
|
|
block_01F9:
|
|
goto block_0483;
|
|
|
|
block_01FC:
|
|
if (Item.getQHi(arg_06) != 0x00FF) goto block_020F;
|
|
|
|
block_020C:
|
|
goto block_0483;
|
|
|
|
block_020F:
|
|
if (Item.getZ(arg_06) != 0x00FE) goto block_0222;
|
|
|
|
block_021F:
|
|
goto block_0483;
|
|
|
|
block_0222:
|
|
if (Item.getNpcNum(arg_06) != 0x00FF) goto block_024A;
|
|
|
|
block_0232:
|
|
if (!Item.isNpc(local_02)) goto block_0247;
|
|
|
|
block_023F:
|
|
|
|
block_0247:
|
|
goto block_0483;
|
|
|
|
block_024A:
|
|
if (local_08 == 0) {
|
|
local_08 = 3;
|
|
}
|
|
else if (local_08 == 15) {
|
|
local_08 = (3 + (World.gameDifficulty() * 2));
|
|
}
|
|
|
|
block_0295:
|
|
if (local_0A == 0) {
|
|
local_06 = -1;
|
|
}
|
|
else if (local_0A == 1) {
|
|
local_06 = -2;
|
|
local_04 = 1;
|
|
}
|
|
else if (local_0A == 2) {
|
|
local_06 = -1;
|
|
local_04 = 1;
|
|
}
|
|
else if (local_0A == 3) {
|
|
local_06 = -1;
|
|
local_04 = 2;
|
|
}
|
|
else if (local_0A == 4) {
|
|
local_04 = 1;
|
|
}
|
|
else if (local_0A == 5) {
|
|
local_04 = 2;
|
|
local_06 = 1;
|
|
}
|
|
else if (local_0A == 6) {
|
|
local_04 = 1;
|
|
local_06 = 1;
|
|
}
|
|
else if (local_0A == 7) {
|
|
local_04 = 1;
|
|
local_06 = 2;
|
|
}
|
|
else if (local_0A == 8) {
|
|
local_06 = 1;
|
|
}
|
|
else if (local_0A == 9) {
|
|
local_06 = 2;
|
|
local_04 = -1;
|
|
}
|
|
else if (local_0A == 10) {
|
|
local_06 = 1;
|
|
local_04 = -1;
|
|
}
|
|
else if (local_0A == 11) {
|
|
local_06 = 1;
|
|
local_04 = -2;
|
|
}
|
|
else if (local_0A == 12) {
|
|
local_04 = -1;
|
|
}
|
|
else if (local_0A == 13) {
|
|
local_04 = -2;
|
|
local_06 = -1;
|
|
}
|
|
else if (local_0A == 14) {
|
|
local_04 = -1;
|
|
local_06 = -1;
|
|
}
|
|
else if (local_0A == 15) {
|
|
local_04 = -1;
|
|
local_06 = -2;
|
|
}
|
|
|
|
block_03B5:
|
|
local_04 = (local_04 * local_08);
|
|
local_06 = (local_06 * local_08);
|
|
spawn FREE.slot_3B(pid, 2, 0x00000000);
|
|
suspend;
|
|
|
|
block_03DA:
|
|
if 1 goto block_0442;
|
|
|
|
block_03DF:
|
|
local_0F = (Item.getX(local_02) + local_04);
|
|
local_0D = (Item.getY(local_02) + local_06);
|
|
local_0B = Item.getZ(local_02);
|
|
spawn FREE.slot_3B(pid, 5, 0x00000000);
|
|
suspend;
|
|
if (Item.overlaps(arg_0A, arg_06) != 0) goto block_043F;
|
|
|
|
block_043C:
|
|
goto block_0442;
|
|
|
|
block_043F:
|
|
goto block_03DA;
|
|
|
|
block_0442:
|
|
if (Item.getZ(local_02) > 1) goto block_0468;
|
|
|
|
block_0451:
|
|
suspend;
|
|
|
|
block_0468:
|
|
goto block_0483;
|
|
|
|
block_046B:
|
|
spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
|
|
suspend;
|
|
|
|
block_0483:
|
|
return;
|
|
|
|
}
|
|
|
|
/* ===== slot 0x0A equip ===== */
|
|
function windsurf_equip() /* entry=179 class_id=0x0337 slot=0x0A */
|
|
{
|
|
set_info(0x0211, *(arg_06));
|
|
process_exclude();
|
|
FREE.slot_3C(0x020C, *(arg_06));
|
|
if (arg_0A == 0x00FF) {
|
|
return;
|
|
}
|
|
else {
|
|
/* loopscr value_u8=0x24 */
|
|
/* loop current_var=0xFE string_bytes=0x1 loop_type=0x2 */
|
|
while (!condition) {
|
|
if (local_02 == *(arg_06)) {
|
|
if (!Item.overlaps(local_02, arg_06)) {
|
|
spawn WINDSURF.gotHit(0, local_02, arg_06);
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x0B unequip ===== */
|
|
function windsurf_unequip() /* entry=179 class_id=0x0337 slot=0x0B */
|
|
{
|
|
set_info(0x0212, *(arg_06));
|
|
process_exclude();
|
|
/* loopscr value_u8=0x24 */
|
|
/* loop current_var=0xFE string_bytes=0x1 loop_type=0x2 */
|
|
while (!condition) {
|
|
if (local_02 == *(arg_06)) {
|
|
if (!Item.overlaps(local_02, arg_06)) {
|
|
spawn WINDSURF.gotHit(0, local_02, arg_06);
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x10 leaveFastArea ===== */
|
|
function windsurf_leaveFastArea() /* entry=179 class_id=0x0337 slot=0x10 */
|
|
{
|
|
set_info(0x021C, *(arg_06));
|
|
process_exclude();
|
|
FREE.slot_3C(0x020C, *(arg_06));
|
|
return;
|
|
}
|