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(); FREE.slot_2C(vel, ref); if retval goto block_0255; block_024F: goto block_0626; block_0255: if (Item.getMapArray(arg_06) != 0) goto block_05FF; block_026A: item = ref; if Item.getTypeFlag(0, item) goto block_0288; block_0282: goto block_0626; block_0288: if (Item.getShape(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 (Item.getQHi(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 (Item.getNPCNum(arg_06) != 0x00FF) goto block_0324; block_0300: if (!Actor.isNPC(item)) goto block_031E; block_0313: block_031E: goto block_0626; block_0324: if (speed == 0) { speed = 3; } else if (speed == 15) { speed = (3 + (Game.getDifficultyLevel() * 2)); } block_038A: if (dir == 0) { yoff = -1; } else if (dir == 1) { yoff = -2; xoff = 1; } else if (dir == 2) { yoff = -1; xoff = 1; } else if (dir == 3) { yoff = -1; xoff = 2; } else if (dir == 4) { xoff = 1; } else if (dir == 5) { xoff = 2; yoff = 1; } else if (dir == 6) { xoff = 1; yoff = 1; } else if (dir == 7) { xoff = 1; yoff = 2; } else if (dir == 8) { yoff = 1; } else if (dir == 9) { yoff = 2; xoff = -1; } else if (dir == 10) { yoff = 1; xoff = -1; } else if (dir == 11) { yoff = 1; xoff = -2; } else if (dir == 12) { xoff = -1; } else if (dir == 13) { xoff = -2; yoff = -1; } else if (dir == 14) { xoff = -1; yoff = -1; } else if (dir == 15) { xoff = -1; yoff = -2; } block_04FE: xoff = (xoff * speed); yoff = (yoff * speed); spawn FREE.waitNTimerTicks(pid, 2, 0x00000000); suspend; block_0538: if 1 goto block_05C4; block_0540: wp = (Item.getX(item) + xoff); local_0D = (Item.getY(item) + yoff); local_0B = Item.getZ(item); spawn FREE.waitNTimerTicks(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 TRIGGER.slot_20(pid, 0, *(arg_06), arg_06); suspend; block_0626: return; }