50 lines
1.2 KiB
Text
50 lines
1.2 KiB
Text
function laseri_gotHit() /* entry=108 class_id=0x01D5 slot=0x06 */
|
|
{
|
|
var
|
|
referent, /* [BP+00h] type=0x69 */
|
|
ref, /* [BP+0Ah] type=0x69 */
|
|
vel, /* [BP+0Ch] type=0x69 */
|
|
laser, /* [BP-02h] type=0x24 */
|
|
hType, /* [BP-04h] type=0x69 */
|
|
QLo, /* [BP-06h] type=0x69 */
|
|
p; /* [BP-08h] type=0x69 */
|
|
|
|
set_info(0x020C, *(arg_06));
|
|
process_exclude();
|
|
FREE.slot_2C(vel, ref);
|
|
hType = retval;
|
|
QLo = Item.getQLo(arg_06);
|
|
FREE.slot_2C(vel, ref);
|
|
if (retval) {
|
|
return;
|
|
}
|
|
else {
|
|
spawn ITEM.slot_27(pid, 50, vel, ref, arg_06);
|
|
suspend;
|
|
/* dword_to_word */
|
|
p = process_result;
|
|
if ((hType == 4) && (!p)) {
|
|
return;
|
|
}
|
|
else if ((hType > 0) && (Item.getFrame(arg_06) == 0)) {
|
|
/* loopscr value_u8=0x24 */
|
|
/* loopscr value_u8=0x48 */
|
|
/* loop current_var=0xFE string_bytes=0x12 loop_type=0x2 */
|
|
while (!condition) {
|
|
/* loopnext */
|
|
}
|
|
spawn ITEM.slot_28(pid, 0, 0, arg_06);
|
|
suspend;
|
|
if (Item.getMapArray(arg_06) == 0) {
|
|
spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
|
|
suspend;
|
|
return;
|
|
}
|
|
else {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|