function windsurf_gotHit() /* entry=180 class_id=0x0337 slot=0x06 */ { var referent, /* [BP+00h] type=0x69 */ ref, /* [BP+0Ah] type=0x69 */ vel, /* [BP+0Ch] type=0x69 */ item, /* [BP-02h] type=0x24 */ xoff, /* [BP-04h] type=0x69 */ yoff, /* [BP-06h] type=0x69 */ speed, /* [BP-08h] type=0x69 */ dir, /* [BP-0Ah] type=0x69 */ wp, /* [BP-0Fh] type=0x24 */ param; /* [BP-11h] type=0x69 */ entry: set_info(0x020C, *(arg_06)); process_exclude(); class_0A0C_slot_2C(vel, ref); if retval goto block_0255; block_024F: goto block_0626; block_0255: if (Item.getMapNum(arg_06) != 0) goto block_05FF; block_026A: item = ref; if Item.getNpcNum(0, item) goto block_0288; block_0282: goto block_0626; block_0288: if (Intrinsic0016(item) != 0x01D9) goto block_02A1; block_029B: goto block_0626; block_02A1: if (Item.overlaps(ref, arg_06) != 0) goto block_02BB; block_02B5: goto block_0626; block_02BB: if (Intrinsic00FB(arg_06) != 0x00FF) goto block_02D4; block_02CE: goto block_0626; block_02D4: if (Item.getZ(arg_06) != 0x00FE) goto block_02ED; block_02E7: goto block_0626; block_02ED: if (Intrinsic011C(arg_06) != 0x00FF) goto block_0324; block_0300: if (!Item.isNpc(item)) goto block_031E; block_0313: block_031E: goto block_0626; block_0324: xoff = 0; yoff = 0; param = Intrinsic00FB(arg_06); dir = (param & 15); speed = ((param / 16) & 15); if (speed != 0) goto block_036C; block_0362: speed = 3; goto block_038A; block_036C: if (speed != 15) goto block_038A; block_0377: speed = (3 + (Intrinsic0029() * 2)); goto block_038A; block_038A: if (dir != 0) goto block_039C; block_0392: yoff = -1; goto block_04FE; block_039C: if (dir != 1) goto block_03B5; block_03A4: yoff = -2; xoff = 1; goto block_04FE; block_03B5: if (dir != 2) goto block_03CE; block_03BD: yoff = -1; xoff = 1; goto block_04FE; block_03CE: if (dir != 3) goto block_03E7; block_03D6: yoff = -1; xoff = 2; goto block_04FE; block_03E7: if (dir != 4) goto block_03F9; block_03EF: xoff = 1; goto block_04FE; block_03F9: if (dir != 5) goto block_0412; block_0401: xoff = 2; yoff = 1; goto block_04FE; block_0412: if (dir != 6) goto block_042B; block_041A: xoff = 1; yoff = 1; goto block_04FE; block_042B: if (dir != 7) goto block_0444; block_0433: xoff = 1; yoff = 2; goto block_04FE; block_0444: if (dir != 8) goto block_0456; block_044C: yoff = 1; goto block_04FE; block_0456: if (dir != 9) goto block_046F; block_045E: yoff = 2; xoff = -1; goto block_04FE; block_046F: if (dir != 10) goto block_0488; block_0477: yoff = 1; xoff = -1; goto block_04FE; block_0488: if (dir != 11) goto block_04A1; block_0490: yoff = 1; xoff = -2; goto block_04FE; block_04A1: if (dir != 12) goto block_04B3; block_04A9: xoff = -1; goto block_04FE; block_04B3: if (dir != 13) goto block_04CC; block_04BB: xoff = -2; yoff = -1; goto block_04FE; block_04CC: if (dir != 14) goto block_04E5; block_04D4: xoff = -1; yoff = -1; goto block_04FE; block_04E5: if (dir != 15) goto block_04FE; block_04ED: xoff = -1; yoff = -2; goto block_04FE; block_04FE: xoff = (xoff * speed); yoff = (yoff * speed); spawn class_0A0C_slot_32(pid, 2, 0x00000000); suspend; block_0538: if 1 goto block_05C4; block_0540: wp = (Intrinsic0013(item) + xoff); local_0D = (Item.legal_create(item) + yoff); local_0B = Item.getZ(item); spawn class_0A0C_slot_32(pid, 5, 0x00000000); suspend; if (Item.overlaps(ref, arg_06) != 0) goto block_05C1; block_05BB: goto block_05C4; block_05C1: goto block_0538; block_05C4: if (Item.getZ(item) > 1) goto block_05FC; block_05D6: suspend; block_05FC: goto block_0626; block_05FF: spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); suspend; block_0626: return; }