123 lines
2.9 KiB
Text
123 lines
2.9 KiB
Text
|
|
/* synthesized appendix for BASEGUN */
|
|
/* sparse lines above preserve recovered debugger line numbers where available */
|
|
|
|
/* ===== slot 0x06 gotHit ===== */
|
|
function basegun_gotHit() /* entry=274 class_id=0x04C8 slot=0x06 */
|
|
{
|
|
set_info(0x020C, *(arg_06));
|
|
process_exclude();
|
|
spawn WALLGUN2.slot_21(arg_0C, arg_0A, arg_06);
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x0A equip ===== */
|
|
function basegun_equip() /* entry=274 class_id=0x04C8 slot=0x0A */
|
|
{
|
|
set_info(0x0211, *(arg_06));
|
|
process_exclude();
|
|
if (World.getControlledNPCNum() == 0) {
|
|
spawn WALLGUN.slot_24(pid, arg_0A, World.getControlledNPCNum(), arg_06);
|
|
suspend;
|
|
return;
|
|
}
|
|
else {
|
|
spawn WALLGUN.slot_24(pid, arg_0A, global[0x001E], arg_06);
|
|
suspend;
|
|
}
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x0B unequip ===== */
|
|
function basegun_unequip() /* entry=274 class_id=0x04C8 slot=0x0B */
|
|
{
|
|
set_info(0x0212, *(arg_06));
|
|
process_exclude();
|
|
if (!(Item.getStatus(arg_06) & 4)) {
|
|
return;
|
|
}
|
|
else {
|
|
spawn WALLGUN.slot_27(arg_06);
|
|
}
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x0E calledFromAnim ===== */
|
|
function basegun_calledFromAnim() /* entry=274 class_id=0x04C8 slot=0x0E */
|
|
{
|
|
entry:
|
|
set_info(0x021A, *(arg_06));
|
|
process_exclude();
|
|
local_02 = *(arg_06);
|
|
local_04 = Actor.getDir(local_02);
|
|
local_06 = Actor.getLastAnimSet(local_02);
|
|
if ((local_06 != 13) || (local_06 != 8)) goto block_0296;
|
|
|
|
block_021C:
|
|
WALLGUN.slot_40(0, 3, local_04, local_04, arg_06);
|
|
WALLGUN.slot_3F(retval, local_04, arg_06);
|
|
WALLGUN.slot_3E(retval, local_04, arg_06);
|
|
WALLGUN.slot_43(pid, 0, 3, local_04, local_04, arg_06);
|
|
WALLGUN.slot_42(retval, local_04, arg_06);
|
|
WALLGUN.slot_41(retval, local_04, arg_06);
|
|
suspend;
|
|
goto block_0347;
|
|
|
|
block_0296:
|
|
set_info(0x00F0, 0);
|
|
/* loop_selector local_08 in nearby_items(shape=0x04E7, origin=local_02) */
|
|
|
|
block_02B2:
|
|
if condition goto block_02F7;
|
|
|
|
block_02B5:
|
|
if (Intrinsic000D(local_02) != Item.getQLo(local_08)) goto block_02F3;
|
|
|
|
block_02CB:
|
|
if (Item.getMapNum(local_08) != 0) goto block_02F3;
|
|
|
|
block_02DA:
|
|
spawn TRIGGER.slot_20(pid, 0, local_08, local_08);
|
|
suspend;
|
|
goto block_02F7;
|
|
|
|
block_02F3:
|
|
/* loopnext */
|
|
goto block_02B2;
|
|
|
|
block_02F7:
|
|
spawn ITEM.slot_2A(pid, 1, 2, local_02);
|
|
suspend;
|
|
|
|
block_0347:
|
|
return;
|
|
|
|
}
|
|
|
|
/* ===== slot 0x0F enterFastArea ===== */
|
|
function basegun_enterFastArea() /* entry=274 class_id=0x04C8 slot=0x0F */
|
|
{
|
|
set_info(0x021B, *(arg_06));
|
|
process_exclude();
|
|
if (*(arg_06) >= 0x0100) {
|
|
return;
|
|
}
|
|
else if (!(Item.getStatus(arg_06) & 4)) {
|
|
return;
|
|
}
|
|
else {
|
|
spawn WALLGUN.slot_27(arg_06);
|
|
}
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x10 leaveFastArea ===== */
|
|
function basegun_leaveFastArea() /* entry=274 class_id=0x04C8 slot=0x10 */
|
|
{
|
|
set_info(0x021C, *(arg_06));
|
|
process_exclude();
|
|
/* bit_not */
|
|
FREE.slot_3C(1, *(arg_06));
|
|
FREE.slot_3C(0x020A, *(arg_06));
|
|
return;
|
|
}
|