#!/bin/bash
## ponglock.sh
##
## Made by spycAm
## Login   <raud_c@epitech.net>
##
## Started on  Fri Feb 27 23:30:20 2009 spycAm
## Last update Sat Feb 28 01:27:03 2009 spycAm
##


# Init screen
screenx=1280
screeny=1024

# Init Left Right
pwidth=30
pheight=300
padding=10
path=/u/epita_2010/raud_c/public/


# Init Ball

init()
{
    zlock&
    sleep 0.5
    $path/wmctrl -r zlock -N left
    $path/wmctrl -r left  -e 0,$padding,$(((screeny-$pheight)/2)),$pwidth,$pheight

    zlock&
    sleep 0.5
    $path/wmctrl -r zlock -N right
    $path/wmctrl -r right  -e 0,$(($screenx-$pwidth-$padding)),$(((screeny-$pheight)/2)),$pwidth,$pheight
}


showscore()
{
echo "$sleft - $sright" | $path/osd_cat -p middle -A center -s 1 -c green -S red -f '-misc-fixed-medium-r-semicondensed--200-*-*-*-c-*-*-*' &
}

theend()
{
echo "THE END" | $path/osd_cat -o -450 -p bottom -A center -s 1 -c green -S red -f '-misc-fixed-medium-r-semicondensed--200-*-*-*-c-*-*-*' &

}

minimize(){
    for i in `${path}wmctrl -l | grep " 0 " | cut -d' ' -f1`; do
        ${path}wmctrl -i -r $i -b add,hidden
    done
}

maximize(){
    for i in `${path}wmctrl -l | grep " 0 " | cut -d' ' -f1`; do
	${path}wmctrl -i -r $i -b toggle,hidden
    done
}


run()
{
width=425
height=90

x=$((($screenx - $width) / 2))
y=$((($screeny - $height) / 2))

lefty=$(((screeny-$pheight)/2))
righty=$(((screeny-$pheight)/2))

a=10
b=7

sleft=0
sright=0

pa=7
sleep 1
while true; do
    # Ball
    $path/wmctrl -r zlock -e 0,$x,$y,$width,$height
    x=$(($x + $a))
    if [ $(($x + $width)) -gt $(($screenx - $pwidth - $padding)) ]; then
	a=$((-$a))
	x=$(($screenx - $width - $pwidth - $padding))
	if [ $(($y + $height)) -lt $righty -o $y -gt $(($righty + $pheight)) ]; then
	    sleft=$(($sleft + 1))
	    showscore
	fi
    else
	if [ $x -lt $(($padding + $pwidth)) ]; then
	    a=$((-$a))
	    x=$(($padding + $pwidth))
	    if [ $(($y + $height)) -lt $lefty -o $(($y)) -gt $(($lefty + $pheight)) ]; then
		sright=$(($sright + 1))
		showscore
	    fi
	fi
    fi
    y=$(($y + $b))
    if [ $(($y + $height)) -gt $screeny ]; then
	b=$((-$b))
	y=$(($screeny - $height))
    else
	if [ $y -lt 0 ]; then
	    b=$((-$b))
	    y=0
	fi
    fi
    # Left
    if [ $(($x + $width / 2)) -lt $(($screenx * 2 / 3)) -a $a -lt 0 ]; then
	if [ $(($lefty + $pheight / 2)) -lt $y ]; then
	    lefty=$(($lefty + $pa ))
	else
	    if [ $(($lefty + $pheight / 2)) -gt $(($y + $height)) ]; then
		lefty=$(($lefty - $pa ))
	    fi
	fi
	$path/wmctrl -r left -e 0,-1,$lefty,$pwidth,$pheight
    fi

    # Right
    if [ $(($x + $width / 2)) -gt $(($screenx / 3)) -a $a -gt 0  ]; then
	if [ $(($righty + $pheight / 2)) -lt $y ]; then
	    righty=$(($righty + $pa ))
	else
	    if [ $(($righty + $pheight / 2)) -gt $(($y + $height)) ]; then
		righty=$(($righty - $pa ))
	    fi
	fi
	$path/wmctrl -r right -e 0,-1,$righty,$pwidth,$pheight
    fi

    sleep 0.01
done
}

minimize && sleep 1 && init && sleep 1 && run & zlock -immed 2> /dev/null; sleep 0.5; theend; maximize ; killall bash zlock