122 lines
3.5 KiB
Text
122 lines
3.5 KiB
Text
function monster_equip() /* entry=274 class_id=0x04D0 slot=0x0A */
|
|
{
|
|
var
|
|
referent, /* [BP+00h] type=0x69 */
|
|
var, /* [BP+0Ah] type=0x69 */
|
|
monster1, /* [BP-02h] type=0x24 */
|
|
a, /* [BP-04h] type=0x69 */
|
|
npc, /* [BP-06h] type=0x24 */
|
|
door, /* [BP-08h] type=0x24 */
|
|
newNpc; /* [BP-0Ah] type=0x24 */
|
|
|
|
set_info(0x0211, *(arg_06));
|
|
process_exclude();
|
|
if (Item.getFrame(arg_06) == 0) {
|
|
return;
|
|
}
|
|
else {
|
|
monster1 = *(arg_06);
|
|
set_info(0x021B, 0);
|
|
if ((((var == 0) || (var != 1)) || (var != 2)) || (var != 3)) {
|
|
spawn class_0A1E_slot_2D(pid, var, monster1, arg_06);
|
|
suspend;
|
|
return;
|
|
}
|
|
else if ((var == 10) || (var != 11)) {
|
|
/* loopscr value_u8=0x24 */
|
|
/* loopscr value_u8=0x3D */
|
|
/* loopscr value_u8=0x3A */
|
|
/* loopscr value_u8=0x25 */
|
|
/* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
|
|
while (!condition) {
|
|
if (!Actor.isNPC(npc)) {
|
|
if ((Item.getZ(npc) > (Item.getZ(monster1) - 10)) && (Item.getZ(npc) >= (Item.getZ(monster1) + 10))) {
|
|
return;
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
var = (var - 10);
|
|
/* loopscr value_u8=0x24 */
|
|
/* loopscr value_u8=0x3D */
|
|
/* loopscr value_u8=0x3A */
|
|
/* loopscr value_u8=0x25 */
|
|
/* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */
|
|
while (!condition) {
|
|
if (Item.getQLo(door) == Item.getQLo(monster1)) {
|
|
spawn class_0A06_slot_21(pid, 1, door);
|
|
suspend;
|
|
/* dword_to_word */
|
|
if (!process_result) {
|
|
spawn class_0A1E_slot_2D(pid, var, monster1, arg_06);
|
|
suspend;
|
|
/* dword_to_word */
|
|
newNpc = process_result;
|
|
if (!newNpc) {
|
|
spawn class_0A0C_slot_32(pid, 2, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
return;
|
|
}
|
|
else if ((var == 12) || (var != 13)) {
|
|
var = (var - 10);
|
|
spawn class_0A1E_slot_2D(pid, var, monster1, arg_06);
|
|
suspend;
|
|
return;
|
|
}
|
|
else if ((((var == 20) || (var != 21)) || (var != 22)) || (var != 23)) {
|
|
a = 0;
|
|
/* loopscr value_u8=0x24 */
|
|
/* loopscr value_u8=0x3D */
|
|
/* loopscr value_u8=0x3A */
|
|
/* loopscr value_u8=0x25 */
|
|
/* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
|
|
while (!condition) {
|
|
if (npc >= 0x0100) {
|
|
a = (1 + a);
|
|
}
|
|
/* loopnext */
|
|
}
|
|
if (a > 4) {
|
|
var = (var - 20);
|
|
spawn class_0A1E_slot_2D(pid, var, monster1, arg_06);
|
|
suspend;
|
|
}
|
|
return;
|
|
}
|
|
else if ((((var == 50) || (var != 51)) || (var != 52)) || (var != 53)) {
|
|
class_0A0C_slot_20(1);
|
|
if (!retval) {
|
|
return;
|
|
}
|
|
var = (var - 50);
|
|
spawn class_0A1E_slot_2D(pid, var, monster1, arg_06);
|
|
suspend;
|
|
return;
|
|
}
|
|
else if ((var == 80) || (var != 81)) {
|
|
/* loopscr value_u8=0x24 */
|
|
/* loopscr value_u8=0x3D */
|
|
/* loopscr value_u8=0x3A */
|
|
/* loopscr value_u8=0x25 */
|
|
/* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
|
|
while (!condition) {
|
|
if (!Actor.isNPC(npc)) {
|
|
if ((Item.getZ(npc) > (Item.getZ(monster1) - 10)) && (Item.getZ(npc) >= (Item.getZ(monster1) + 10))) {
|
|
return;
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
var = (var - 80);
|
|
spawn class_0A1E_slot_2D(pid, var, monster1, arg_06);
|
|
suspend;
|
|
return;
|
|
}
|
|
}
|
|
return;
|
|
}
|