Crusader_Decomp/USECODE/REGRET/WINDSURF.unk

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;
}