202 lines
4.3 KiB
Text
202 lines
4.3 KiB
Text
function blastpac_use() /* entry=207 class_id=0x039B slot=0x01 */
|
|
{
|
|
var
|
|
referent, /* [BP+00h] type=0x69 */
|
|
InCrouch, /* [BP-01h] type=0x62 */
|
|
Blastpac, /* [BP-03h] type=0x24 */
|
|
target, /* [BP-05h] type=0x24 */
|
|
item, /* [BP-07h] type=0x24 */
|
|
counter, /* [BP-09h] type=0x69 */
|
|
lastAnim, /* [BP-0Bh] type=0x69 */
|
|
xOff, /* [BP-0Dh] type=0x69 */
|
|
yOff, /* [BP-0Fh] type=0x69 */
|
|
mine; /* [BP-11h] type=0x24 */
|
|
|
|
entry:
|
|
set_info(0x0207, *(arg_06));
|
|
process_exclude();
|
|
Blastpac = *(arg_06);
|
|
set_info(0x00F0, 0);
|
|
/* global_address global_id=0x3C */
|
|
lastAnim = Actor.getLastAnimSet();
|
|
|
|
block_011D:
|
|
/* global_address global_id=0x3C */
|
|
if Actor.isBusy() goto block_0153;
|
|
|
|
block_012D:
|
|
spawn class_0A0C_slot_32(pid, 2, 0x00000000);
|
|
suspend;
|
|
goto block_011D;
|
|
|
|
block_0153:
|
|
/* loopscr value_u8=0x24 */
|
|
/* loopscr value_u8=0x3D */
|
|
/* loopscr value_u8=0x40 */
|
|
/* loopscr value_u8=0x25 */
|
|
/* loop current_var=0xF9 string_bytes=0x6 loop_type=0x2 */
|
|
|
|
block_0171:
|
|
if condition goto block_0233;
|
|
|
|
block_0174:
|
|
target = item;
|
|
|
|
block_017B:
|
|
class_0A0C_slot_29(target, global[0x003C]);
|
|
if ((retval > 3) && (counter != 6)) goto block_01FC;
|
|
|
|
block_019E:
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
spawn class_0A11_slot_22(Item.getDirFromTo16(Item.getX(pid, 1, Item.getY(Item.getY(target), Item.getX(target)))));
|
|
suspend;
|
|
counter = (1 + counter);
|
|
goto block_017B;
|
|
|
|
block_01FC:
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
suspend;
|
|
goto block_0233;
|
|
|
|
block_022F:
|
|
/* loopnext */
|
|
goto block_0171;
|
|
|
|
block_0233:
|
|
if (Actor.getDir() == 0) {
|
|
xOff = -1;
|
|
yOff = -3;
|
|
}
|
|
else if (Actor.getDir() == 1) {
|
|
xOff = 0;
|
|
yOff = -3;
|
|
}
|
|
else if (Actor.getDir() == 2) {
|
|
xOff = 1;
|
|
yOff = -3;
|
|
}
|
|
else if (Actor.getDir() == 3) {
|
|
xOff = 2;
|
|
yOff = -2;
|
|
}
|
|
else if (Actor.getDir() == 4) {
|
|
xOff = 2;
|
|
yOff = -1;
|
|
}
|
|
else if (Actor.getDir() == 5) {
|
|
xOff = 2;
|
|
yOff = 0;
|
|
}
|
|
else if (Actor.getDir() == 6) {
|
|
xOff = 2;
|
|
yOff = 2;
|
|
}
|
|
else if (Actor.getDir() == 7) {
|
|
xOff = 0;
|
|
yOff = 2;
|
|
}
|
|
else if (Actor.getDir() == 8) {
|
|
xOff = -1;
|
|
yOff = 2;
|
|
}
|
|
else if (Actor.getDir() == 9) {
|
|
xOff = -2;
|
|
yOff = 2;
|
|
}
|
|
else if (Actor.getDir() == 10) {
|
|
xOff = -3;
|
|
yOff = 2;
|
|
}
|
|
else if (Actor.getDir() == 11) {
|
|
xOff = -3;
|
|
yOff = 1;
|
|
}
|
|
else if (Actor.getDir() == 12) {
|
|
xOff = -3;
|
|
yOff = 0;
|
|
}
|
|
else if (Actor.getDir() == 13) {
|
|
xOff = -3;
|
|
yOff = -1;
|
|
}
|
|
else if (Actor.getDir() == 14) {
|
|
xOff = -3;
|
|
yOff = -2;
|
|
}
|
|
else if (Actor.getDir() == 15) {
|
|
xOff = -3;
|
|
yOff = -3;
|
|
}
|
|
|
|
block_0415:
|
|
if target goto block_061D;
|
|
|
|
block_041D:
|
|
/* global_address global_id=0x3C */
|
|
if Actor.getSomeFlagProbablyCrouch() goto block_0437;
|
|
|
|
block_042D:
|
|
InCrouch = 1;
|
|
goto block_046E;
|
|
|
|
block_0437:
|
|
InCrouch = 0;
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
suspend;
|
|
|
|
block_046E:
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
spawn class_039B_slot_20(mine, arg_06);
|
|
|
|
block_04C5:
|
|
/* global_address global_id=0x3C */
|
|
if Actor.isBusy() goto block_04FB;
|
|
|
|
block_04D5:
|
|
spawn class_0A0C_slot_32(pid, 2, 0x00000000);
|
|
suspend;
|
|
goto block_04C5;
|
|
|
|
block_04FB:
|
|
spawn class_0A0C_slot_21(pid, 13, 0x00000000);
|
|
suspend;
|
|
if (!InCrouch) goto block_05C5;
|
|
|
|
block_052A:
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
suspend;
|
|
if target goto block_05C2;
|
|
|
|
block_0562:
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
suspend;
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
suspend;
|
|
|
|
block_05C2:
|
|
goto block_061A;
|
|
|
|
block_05C5:
|
|
spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000);
|
|
suspend;
|
|
|
|
block_061A:
|
|
goto block_0672;
|
|
|
|
block_061D:
|
|
spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000);
|
|
suspend;
|
|
|
|
block_0672:
|
|
return;
|
|
|
|
}
|