<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<object>
  <spriteName>sprProtag_f_d</spriteName>
  <solid>0</solid>
  <visible>-1</visible>
  <depth>0</depth>
  <persistent>0</persistent>
  <parentName>&lt;undefined&gt;</parentName>
  <maskName>sprPlayerMask</maskName>
  <events>
    <event eventtype="0" enumb="0">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if instance_number(objPlayer) &gt; 1 { instance_destroy(); exit }

dir = 270;
direction = dir

walk_speed = 2;
water_speed = 1;
run_speed = walk_speed;
canmove = 1;
running = 0;
water = 0;
ladder = 0;
can_splash = true;
stairs_ang = 0;
invincible = 0;
invertedcontrols = 0;
shadow = 1
player = 1
dx = 0
dy = 0
key_direction = 270;

for(var c = 0;c &lt;= 5*100;c++){
    prevx[c] = x
    prevy[c] = y
    prevd[c] = direction
}


//Sprites
//Alive
spr_walking[0,0] =    sprProtag_f_r
spr_walking[45,0] =   sprProtag_f_ur
spr_walking[90,0] =   sprProtag_f_u
spr_walking[135,0] =  sprProtag_f_ul
spr_walking[180,0] =  sprProtag_f_l
spr_walking[225,0] =  sprProtag_f_dl
spr_walking[270,0] =  sprProtag_f_d
spr_walking[315,0] =  sprProtag_f_dr
//Dead
spr_walking[0,1] =    sprProtag_f_r_d
spr_walking[45,1] =   sprProtag_f_ur_d
spr_walking[90,1] =   sprProtag_f_u_d
spr_walking[135,1] =  sprProtag_f_ul_d
spr_walking[180,1] =  sprProtag_f_l_d
spr_walking[225,1] =  sprProtag_f_dl_d
spr_walking[270,1] =  sprProtag_f_d_d
spr_walking[315,1] =  sprProtag_f_dr_d
//Climbing
spr_climbing[0] =   sprProtag_f_c
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="2" enumb="11">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>speed = 0
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="2" enumb="4">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Invincibility blinking

if invincible {
    visible = !visible
    if ie(objPartyCharacter) { with objPartyCharacter { visible = !visible } }
    alarm[4] = 5
} else {
    visible = 1
    if ie(objPartyCharacter) { with objPartyCharacter { visible = 1 } }
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="2" enumb="3">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Invincibility reset
invincible = 0
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="2" enumb="2">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Splashing sound
can_splash = 1
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="2" enumb="1">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Invincibility
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="2" enumb="0">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Wonky controls
if global.s_strange[1] {
    invertedcontrols = choose(0,1,2,3)
    alarm[0] = choose(1,2,3)*room_speed
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="3" enumb="2">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Bouncing off solids
if speed &gt; 0 { image_speed = 0.15/(2*global.s_numb[1]+1)} else { image_speed = 0 } 

collision_handle();
</string>
          </argument>
        </arguments>
      </action>
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Handling party movement
var more;
more = 1 // This adds an additional gap between party members. 1 by default, don't set it to zero! 

if(hspeed != 0 or vspeed != 0){
    for(var c = 5*10*more;c &gt; 0;c -= 1){
        prevx[c] = prevx[c - 1]
        prevy[c] = prevy[c - 1]
        prevd[c] = prevd[c - 1]
    }
    prevx[0] = x
    prevy[0] = y
    prevd[0] = direction
}

//Party members' direction handle and position update
with(objPartyCharacter){
    x = other.prevx[player_index*10*more]
    y = other.prevy[player_index*10*more]
    direction = other.prevd[player_index*10*more]
    if !(direction = 0 or direction = 90 or direction = 180 or direction = 270) and player_index &gt; 1 {
        x = floor(x)
        y = floor(y)
    }
}
</string>
          </argument>
        </arguments>
      </action>
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Views
if !global.cutscene or get_flag(28) {
    view_xview = min(max(x-view_wview/2,0),room_width-view_wview);
    view_yview = min(max(y-view_hview/2,0),room_height-view_hview);
    view_xview = round(view_xview)
    view_yview = round(view_yview)
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="3" enumb="0">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Movement
depth = -y

// Handle keyboard input
dx = 0
dy = 0

if !global.s_strange[1] {
    dx = (keyboard_check(vk_right) xor round(joy_axis(objPersistent.device,0)) == 1) - (keyboard_check(vk_left) xor round(joy_axis(objPersistent.device,0)) == -1);
    dy = (keyboard_check(vk_down) xor round(joy_axis(objPersistent.device,1)) == 1) - (keyboard_check(vk_up) xor round(joy_axis(objPersistent.device,1)) == -1);
} else {
    switch invertedcontrols {
        case 0:
            dx = -(keyboard_check(vk_right) or round(joy_axis(objPersistent.device,0)) == 1) + (keyboard_check(vk_left) or round(joy_axis(objPersistent.device,0)) == -1);
            dy = -(keyboard_check(vk_down) or round(joy_axis(objPersistent.device,1)) == 1) + (keyboard_check(vk_up) or round(joy_axis(objPersistent.device,1)) == -1);
            break;
        case 1:
            dx = (keyboard_check(vk_right) or round(joy_axis(objPersistent.device,0)) == 1) - (keyboard_check(vk_left) or round(joy_axis(objPersistent.device,0)) == -1);
            dy = (keyboard_check(vk_down) or round(joy_axis(objPersistent.device,1)) == 1) - (keyboard_check(vk_up) or round(joy_axis(objPersistent.device,1)) == -1);
            break;
        case 2:
            dx = (keyboard_check(vk_down) or round(joy_axis(objPersistent.device,1)) == 1) - (keyboard_check(vk_up) or round(joy_axis(objPersistent.device,1)) == -1);
            dy = (keyboard_check(vk_right) or round(joy_axis(objPersistent.device,0)) == 1) - (keyboard_check(vk_left) or round(joy_axis(objPersistent.device,0)) == -1);
            break;
        case 3:
            dx = -(keyboard_check(vk_down) or round(joy_axis(objPersistent.device,1)) == 1) + (keyboard_check(vk_up) or round(joy_axis(objPersistent.device,1)) == -1);
            dy = -(keyboard_check(vk_right) or round(joy_axis(objPersistent.device,0)) == 1) + (keyboard_check(vk_left) or round(joy_axis(objPersistent.device,0)) == -1);
            break;
    }
}

if global.debug {
    objDebug.dx = dx
    objDebug.dy = dy
}

water = position_meeting(x,y,objWater)
ladder = position_meeting(x,y,objLadder)

if canmove = 1 {
    //if (dx &gt; 0.5 or dx &lt; -0.5) || (dy &gt; 0.5 or dy &lt; -0.5) {
    if (abs(dx) &gt; 0.5) || (abs(dy) &gt; 0.5) {
        // Walk
            key_direction = point_direction(0, 0, dx, dy);
            speed = (walk_speed-0.5*(water||ladder)-0.75*(global.s_numb[1] or global.s_numb[2] or global.s_numb[3] or global.s_numb[4]))
            
            if speed &gt; 0 {
                if position_meeting(x,y,objStairs){
                    stairs_ang = -45*(abs(dx) &gt; 0 and abs(dy) &lt; 0.5 )
                } else if position_meeting(x,y,objStairs2) {
                    stairs_ang = 45*(abs(dx) &gt; 0 and abs(dy) &lt; 0.5 )
                } else {
                    stairs_ang = 0
                }
            } else {
                stairs_ang = 0
            }
            
            direction = key_direction+stairs_ang
            
            if water {
                if can_splash {
                    audio_play_sound(sndsplash,0,0)
                    alarm[2] = 30
                    can_splash = false
                }
            }
    } else {
        // Idle
        speed = 0
        image_index = 0
    }
}


if (direction &gt;= 0 and direction &lt; 45/2) or (direction &gt;= 315+45/2 and direction &lt; 360) {
    dir = 0-stairs_ang
} else if (direction &gt;= 45/2 and direction &lt; 45+45/2) {
    dir = 45-stairs_ang
} else if (direction &gt;= 45+45/2 and direction &lt; 90+45/2) {
    dir = 90-stairs_ang
} else if (direction &gt;= 90+45/2 and direction &lt; 135+45/2) {
    dir = 135-stairs_ang
} else if (direction &gt;= 135+45/2 and direction &lt; 180+45/2) {
    dir = 180-stairs_ang
} else if (direction &gt;= 180+45/2 and direction &lt; 225+45/2) {
    dir = 225-stairs_ang
} else if (direction &gt;= 225+45/2 and direction &lt; 270+45/2) {
    dir = 270-stairs_ang
} else if (direction &gt;= 270+45/2 and direction &lt; 315+45/2) {
    dir = 315-stairs_ang
}

if dir &lt; 0 {
    dir = 360+dir
} else if dir = 360 {
    dir = 0
}

if !ladder {
    sprite_index = spr_walking[dir,global.dead[player]]
} else {
    sprite_index = spr_climbing[0]
}


</string>
          </argument>
        </arguments>
      </action>
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>/// Interaction with objects

audio_listener_position(x, y, 0);

if keyboard_check_pressed(global.kb_choose) and canmove and !instance_exists(obj_inv) and !instance_exists(objStorage)  {
    var npc, angle, box;
    if distance_to_object(objNPCExtender) &lt; 12 {
        npc = instance_nearest(x,y,objNPCExtender).link
        angle = point_direction(x,y,npc.x,npc.y)
        if (angle &lt; 360+(45/2)) and (angle &gt; 360-(45/2)) 
        or (angle &lt; 0+(45/2)) and (angle &gt; 0-(45/2))  { direction = 0 }
        else if (angle &lt; 45+(45/2)) and (angle &gt; 45-(45/2)) { direction = 45  }
        else if (angle &lt; 90+(45/2)) and (angle &gt; 90-(45/2)) { direction = 90  }
        else if (angle &lt; 135+(45/2)) and (angle &gt; 135-(45/2)) { direction = 135  }
        else if (angle &lt; 180+(45/2)) and (angle &gt; 180-(45/2)) { direction = 180  }
        else if (angle &lt; 225+(45/2)) and (angle &gt; 225-(45/2)) { direction = 225  }
        else if (angle &lt; 270+(45/2)) and (angle &gt; 270-(45/2)) { direction = 270  }
        else if (angle &lt; 315+(45/2)) and (angle &gt; 315-(45/2)) { direction = 315  }
        speed = 0
        image_index = 0
        with npc { alarm[11] = 1 }
        exit
    }
    
    if distance_to_object(parDoor) &lt; 8 {
        npc = instance_nearest(x,y,parDoor)
        if npc.visible { 
            angle = point_direction(x,y,npc.x,npc.y)
            if (angle &lt; 360+(45/2)) and (angle &gt; 360-(45/2)) 
            or (angle &lt; 0+(45/2)) and (angle &gt; 0-(45/2))  { direction = 0 ; with npc { direction = 180 } }
            else if (angle &lt; 45+(45/2)) and (angle &gt; 45-(45/2)) { direction = 45 ; with npc { direction = 225 } }
            else if (angle &lt; 90+(45/2)) and (angle &gt; 90-(45/2)) { direction = 90 ; with npc { direction = 270 } }
            else if (angle &lt; 135+(45/2)) and (angle &gt; 135-(45/2)) { direction = 135 ; with npc { direction = 315 } }
            else if (angle &lt; 180+(45/2)) and (angle &gt; 180-(45/2)) { direction = 180 ; with npc { direction = 0 } }
            else if (angle &lt; 225+(45/2)) and (angle &gt; 225-(45/2)) { direction = 225 ; with npc { direction = 45 } }
            else if (angle &lt; 270+(45/2)) and (angle &gt; 270-(45/2)) { direction = 270 ; with npc { direction = 90 } }
            else if (angle &lt; 315+(45/2)) and (angle &gt; 315-(45/2)) { direction = 315 ; with npc { direction = 135 } }  
        }
        with npc { alarm[11] = 1 } 
        speed = 0
        image_index = 0
        exit
    }
    
    
    if distance_to_object(parNpc) &lt; 8 {
        npc = instance_nearest(x,y,parNpc)
        if npc.visible { 
            angle = point_direction(x,y,npc.x,npc.y)
            if (angle &lt; 360+(45/2)) and (angle &gt; 360-(45/2)) 
            or (angle &lt; 0+(45/2)) and (angle &gt; 0-(45/2))  { direction = 0 ; with npc { direction = 180 } }
            else if (angle &lt; 45+(45/2)) and (angle &gt; 45-(45/2)) { direction = 45 ; with npc { direction = 225 } }
            else if (angle &lt; 90+(45/2)) and (angle &gt; 90-(45/2)) { direction = 90 ; with npc { direction = 270 } }
            else if (angle &lt; 135+(45/2)) and (angle &gt; 135-(45/2)) { direction = 135 ; with npc { direction = 315 } }
            else if (angle &lt; 180+(45/2)) and (angle &gt; 180-(45/2)) { direction = 180 ; with npc { direction = 0 } }
            else if (angle &lt; 225+(45/2)) and (angle &gt; 225-(45/2)) { direction = 225 ; with npc { direction = 45 } }
            else if (angle &lt; 270+(45/2)) and (angle &gt; 270-(45/2)) { direction = 270 ; with npc { direction = 90 } }
            else if (angle &lt; 315+(45/2)) and (angle &gt; 315-(45/2)) { direction = 315 ; with npc { direction = 135 } }  
        }
        with npc { alarm[11] = 1 } 
        speed = 0
        image_index = 0
        exit
    }
}
</string>
          </argument>
        </arguments>
      </action>
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Prolong invincibility if menu exists

if ie(parDeactivator) and invincible {
    alarm[3]++;
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="7" enumb="10">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Check whether to trigger invincibility
if ie(objOwEnemyBlink) and !invincible {
    invincible = 1
    alarm[3] = 120 // 2 seconds
    alarm[4] = 10
}
</string>
          </argument>
        </arguments>
      </action>
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Make allies that follow you around
for(var c = 0;c &lt;= 5*14;c++){
    prevx[c] = x
    prevy[c] = y
    prevd[c] = direction
}

if room != rmGameOver {
    if(!instance_exists(objPartyCharacter)){
        for(c = 1;c &lt; global.pl_count;c += 1){
            var partyCharacter = instance_create(x,y,objPartyCharacter);
            partyCharacter.player_index = c
            with(partyCharacter){
                x = objPlayer.prevx[0]; y = objPlayer.prevy[0];
                switch player_index {
                    default:
                        //Alive
                        spr_walking[0,0] =    sprProtag_f_r
                        spr_walking[45,0] =   sprProtag_f_ur
                        spr_walking[90,0] =   sprProtag_f_u
                        spr_walking[135,0] =  sprProtag_f_ul
                        spr_walking[180,0] =  sprProtag_f_l
                        spr_walking[225,0] =  sprProtag_f_dl
                        spr_walking[270,0] =  sprProtag_f_d
                        spr_walking[315,0] =  sprProtag_f_dr
                        //Dead
                        spr_walking[0,1] =    sprProtag_f_r_d
                        spr_walking[45,1] =   sprProtag_f_ur_d
                        spr_walking[90,1] =   sprProtag_f_u_d
                        spr_walking[135,1] =  sprProtag_f_ul_d 
                        spr_walking[180,1] =  sprProtag_f_l_d
                        spr_walking[225,1] =  sprProtag_f_dl_d
                        spr_walking[270,1] =  sprProtag_f_d_d
                        spr_walking[315,1] =  sprProtag_f_dr_d
                        //Climbing
                        spr_climbing[0] =   sprProtag_f_c
                        break;
                }
            }
        }
    }
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="7" enumb="4">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>/// Move the player to saved position
if global.thex &gt; 0 and global.they &gt; 0 and room != rmGameOver {
    x = global.thex
    y = global.they
    direction = global.thedir
}

event_user(0)
</string>
          </argument>
        </arguments>
      </action>
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Event stuff
</string>
          </argument>
        </arguments>
      </action>
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>///Views

view_xview = round(view_xview)
view_yview = round(view_yview)

if !global.cutscene or get_flag(28) {
    view_xview = min(max(x-view_wview/2,0),room_width-view_wview);
    view_yview = min(max(y-view_hview/2,0),room_height-view_hview);
    view_xview = round(view_xview)
    view_yview = round(view_yview)
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="8" enumb="0">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if !water {
    if shadow { draw_sprite(sprShadow,0,x,y) } 
    draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
} else {
    draw_sprite_part_ext(sprite_index,image_index,0,0,sprite_width,2*sprite_height/3,x-sprite_width/2,y-16,image_xscale,image_yscale,image_blend,image_alpha)
    draw_sprite(sprWaterRipple,image_index,x,y)
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
  </events>
  <PhysicsObject>0</PhysicsObject>
  <PhysicsObjectSensor>0</PhysicsObjectSensor>
  <PhysicsObjectShape>0</PhysicsObjectShape>
  <PhysicsObjectDensity>0.5</PhysicsObjectDensity>
  <PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
  <PhysicsObjectGroup>0</PhysicsObjectGroup>
  <PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
  <PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
  <PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
  <PhysicsObjectAwake>-1</PhysicsObjectAwake>
  <PhysicsObjectKinematic>0</PhysicsObjectKinematic>
  <PhysicsShapePoints>
    <point>8,12</point>
    <point>8,8</point>
  </PhysicsShapePoints>
</object>
