<?php
/**
 * Центральная площадь
 */
session_start();
if ($_SESSION['uid'] == null) {
    header("Location: index.php");
}
include("config.php");
//$user = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '{$_SESSION['uid']}' LIMIT 1"));
//$klan = mysql_fetch_array(mysql_query("SELECT * FROM `clans` WHERE `id` = '{$user['klan']}' LIMIT 1"));
//$digger = mysql_fetch_array(mysql_query("SELECT * FROM `digger` WHERE `id` = '{$_SESSION['uid']}' LIMIT 1"));
include("functions.php");
$tm = time();

if ($user['battle'] != 0) {
    header('location: fbattle.php');
    die();
}
if ($user['in_tower'] == 1) {
    header('Location: towerin.php');
    die();
}
if ($user['zayavka'] != 0) {
    die();
}

/**
 * Проверяем можем ли мы двигаться.
 */
function can_i_move()
{
    global $user;
    $d = db::c()->query('SELECT SUM(`massa`) AS `mass` FROM `inventory` WHERE `owner` = ?i AND `setsale` = 0', $user['id'])->fetch_assoc();
    $eff = db::c()->query('SELECT `type` FROM `effects` WHERE `owner` = ?i AND (`type` = 10 OR `type` = 13 OR `type` = 14)', $user['id'])->fetch_assoc();
    if ($d['mass'] > get_meshok()) {
        err('У вас переполнен рюкзак, вы не можете передвигаться...');
        return false;
    }

    if ($eff['type'] == 10) {
        err('Вы парализованы и не можете передвигаться...');
        return false;
    }

    if ($eff['type'] == 13 OR $eff['type'] == 14) {
        err('У вас тяжелая травма, вы не можете передвигаться...');
        return false;
    }
    return true;
}

function move($room, $redirect = false)
{
    if (can_i_move()) {
        db::c()->query('UPDATE `users`,`online` SET `users`.`room` = ?i,`online`.`room` = ?i WHERE `online`.`id` = `users`.`id` AND `online`.`id` = ?i', $room, $room, $_SESSION['uid']);
        if ($redirect) {
            header('location: ' . $redirect);}
            die();
    }
}

$dig_raw = db::c()->query('SELECT `finish_dig`, `finish_guard` FROM `digger` WHERE `id` = ?i', $user['id'])->fetch_assoc();
if ($dig_raw["finish_dig"] > $tm || $dig_raw["finish_guard"] > $tm) {
    header('location: wall_build.php');
    die();
}

header("Cache-Control: no-cache");
$location = explode('/', filter_input(INPUT_SERVER, 'QUERY_STRING'));
can_i_move();
switch ($location[0]) {
    case 'cp':
        move(20, 'city.php');
        break;
    case 'strah':
        move(21, 'city.php');
        break;
    case 'bps':
        move(26, 'city.php');
        break;
    case 'ps':
        move(51, 'city.php');
        break;
    case 'zaliv':
        move(2111, 'city.php');
        break;
    case 'zamk':
        move(2601, 'city.php');
        break;
    case 'abog':
        move(2655, 'city.php');
        break;
    case 'torg':
        move(2702, 'city.php');
        break;
    case 'got':
        if ($user['room'] == 20) {
            switch ($location[1]) {
                case 'level1':
                    header('location: main.php?goto=arena');
                    die();
                    break;
                case 'level7':
                    header('location: city.php?strah');
                    break;
                case 'level8':
                    header('location: city.php?bps');
                    break;
                case 'level13':
                    header('location: quest_room.php');
                    break;
                case 'level222':
                    header('location: city.php?torg');
                    break;
                case 'level17':
                    move(50, 'ashop.php');
                    break;
                case 'level2':
                    move(22, 'shop.php');
                    break;
                case 'level4':
                    move(23, 'repair.php');
                    break;
                case 'level9':
                    move(24, 'new_year.php');
                    break;
                case 'level6':
                    move(27, 'post.php');
                    break;
                case 'level3':
                    move(25, 'comission.php');
                    break;
            }
        } elseif ($user['room'] == 21) {
            switch ($location[1]) {
                case 'level4':
                    header('location: city.php?cp');
                    break;
                case 'level3':
                    header('location: city.php?zaliv');
                    break;
                case 'level13':
                    move(34, 'fshop.php');
                    break;
                case 'level5':
                    move(29, 'bank.php');
                    break;
                case 'level16':
                    move(31, 'tower.php');
                    break;
                case 'level14':
                    move(30, 'clan_create.php');
                    break;
                case 'level650':
                    move(650, 'ul_clans.php');
                    break;
            }
        } elseif ($user['room'] == 2111) {
            switch ($location[1]) {
                case 'level1':
                    header('location: city.php?strah');
                    break;
                case 'level2':
                    header('location: city.php?haos');
                    break;
                case 'level203':
                    move(1055, 'group_arena.php');
                    break;
                case 'level1000':
                    move(620, 'enter_cave.php');
                    break;
                case 'room666':
                    move(666, 'jail.php');
                    break;
                case 'level5':
                    move(203, 'church.php');
                    break;
            }
        } elseif ($user['room'] == 2601) {
            switch ($location[1]) {
                case 'level4':
                    header('location: city.php?bps');
                    break;
                case 'level55':
                    header('location: city.php?abog');
                    break;
                case 'level44':
                    move(203, 'church.php');
                    break; /*FIXME Второй вход в церковь?*/
                case 'level1':
                    move(37, 'gotzamok.php');
                    break;
                case 'level1051':
                    move(1051, 'lab_enter.php');
                    break;
                case 'level5':
                    move(404, 'vxod.php');
                    break;
            }
        } elseif ($user['room'] == 2701) {
            switch ($location[1]) {
                case 'level1':
                    header('location: city.php?zaliv');
                    break;
                case 'level2':
                    move(402, 'lab_chaos_enter.php');
                    break;
            }
        } elseif ($user['room'] == 2702) {
            switch ($location[1]) {
                case 'level10':
                    header('location: city.php?cp');
                    break;
                case 'level5':
                    move(1054, 'fontan_luck.php');
                    break;
                case 'level202':
                    move(1054, 'fontan_luck.php');
                    break;
                case 'level6':
                    move(61, 'akadem.php');
                    break;
            }
        } elseif ($user['room'] == 2655) {
            switch ($location[1]) {
                case 'level10':
                    header('location: city.php?zamk');
                    break;
                case 'level2055':
                    move(603, 'aren_of_angels.php');
                    break;
            }
        } elseif ($user['room'] == 26) {
            switch ($location[1]) {
                case 'level4':
                    header('location: city.php?cp');
                    break;
                case 'level3':
                    header('location: city.php?zamk');
                    break;
                case 'level5':
                    move(43, 'znahar.php');
                    break;
                case 'level660':
                    move(660, 'hostel.php');
                    break;
                case 'level7':
                    move(777, 'obshaga.php');
                    break;
                case 'level11':
                    move(42, 'lotery.php');
                    break;
                case 'level56':
                    move(401, 'hell.php');
                    break;
            }
        }
        break;
}

function getSeason()
{
    $todayMonth = date('n');
    if ($todayMonth >= 3 && $todayMonth <= 5) return 'spring_';
    if ($todayMonth >= 6 && $todayMonth <= 8) return 'summer_';
    if ($todayMonth >= 9 && $todayMonth <= 11) return 'autumn_';
    return 'winter_';
}

function buildset($id, $img, $top, $left, $des, $noSeason = 0)
{
    if (!$noSeason) $img = getSeason() . $img;
    ?>
    <div style="position:absolute; left:<?= $left ?>px; top:<?= $top ?>px; z-index:90; cursor: pointer;">
        <img src="i/city/sub/<?= $img ?>.png" alt="<?= $des ?>" title="<?= $des ?>" class="building"
             id="<?= $id ?>" onclick="solo(<?= $id ?>)"/>
    </div>
    <?php
}

function bgset($img)
{
    $daytime = date('H');
    if ($daytime >= 6 && $daytime <= 21) $background = getSeason() . $img . '_day';
    else $background = getSeason() . $img . '_night';
    echo sprintf('<div style="position:relative; display: inline-block;" id="ione"><img alt="background" src="i/city/%s.jpg">', $background);
}

$online = db::c()->query('SELECT 1 FROM `online` WHERE `real_time` >= ?i', (time() - 60));
?>
<!doctype html>
<html lang="ru">
<HEAD>
    <link rel=stylesheet href="css/main.css">
    <meta charset="utf-8">
    <style>
        img.building:hover {
            filter: drop-shadow(2px 2px 2px white) sepia(15%);
        }
    </style>
    <script type="text/javascript">
        function solo(n) {
            top.changeroom = n;
            window.location.href = 'city.php?got/level' + n;
        }

        function Down() {
            top.CtrlPress = window.event.ctrlKey
        }

        document.onmousedown = Down;
    </script>
    <title></title>
</HEAD>
<body>
<table class="allzeroes">
    <TR>
        <TD align=center></TD>
        <TD align=right>Сейчас в игре : <?= $online->getNumRows() ?> игроков.</TD>
    </TR>
    <TR>
        <TD align=center colspan=2>
            <?php
            if ($user['room'] == 20) {
                bgset('cap_cp');
                buildset(1, "cap_club", 30, 235, "Бойцовский Клуб");
                buildset(2, "cap_shop", 202, 171, "Магазин");
                buildset(3, "cap_kom", 205, 105, "Комиссионный магазин");
                buildset(4, "cap_rem", 202, 290, "Ремонтная мастерская");;
                buildset(13, "cap_statue", 222, 365, "Памятник Мэру Города");
                buildset(6, "cap_po4ta", 180, 540, "Почта");
                buildset(7, "cap_arr_right", 260, 710, "Страшилкина Улица", 1);
                buildset(222, "cap_arr_top", 180, 650, "Торговая улица", 1);
                buildset(8, "cap_arr_left", 258, 21, "Большая парковая улица", 1);
                buildset(17, "cap_berezka", 205, 435, "Березка");
                buildset(11, "cap_loto", 230, 615, "Лотерея");
                buildset(9, "cap_tree2", 260, 530, "Новогодняя елка");
                buildset(14, "cap_sneg_3", 210, 390, "Снеговик");
                echo "</div>";
            } elseif ($user['room'] == 21) {
                bgset('cap_strash');
                buildset(5, "cap_bank", 180, 485, "Банк");;
                buildset(14, "cap_registratura", 170, 113, "Регистратура кланов");
                buildset(16, "cap_tower", 5, 315, "Башня смерти");
                buildset(16555, "cap_tree", 165, 20, "Дерево");
                buildset(3, "cap_arr_right", 255, 708, "Ристалище", 1);
                buildset(13, "cap_flowershop", 220, 613, "Цветочный магазин");
                buildset(4, "cap_arr_left", 258, 21, "Центральная площадь", 1);
                echo "</div>";
            } elseif ($user['room'] == 26) {
                bgset('cap_park');
                buildset(6, "cap_gate", 170, 340, "Городские ворота", 1);
                buildset(660, "cap_vokzal", 163, 43, "Общежитие");
                buildset(5, "cap_znah", 195, 538, "Хижина Знахаря");
                buildset(3, "cap_arr_left", 259, 27, "Замковая площадь", 1);
                buildset(4, "cap_arr_right", 259, 715, "Центральная площадь", 1);
                echo "</div>";
            } elseif ($user['room'] == 2601) {
                bgset('cap_zamk');
                buildset(1052, "cap_lavka", 240, 425, "Храмовая лавка");
                buildset(10, "ava_post", 240, 300, "Сувенирный магазинчик", 1);
                buildset(1, "cap_ruins", 166, 48, "Руины Старого замка");
                buildset(1051, "cap_lab", 130, 327, "Вход в Лабиринт Хаоса");
                buildset(44, "cap_hram", 173, 550, "Храм Древних");
                buildset(55, "cap_arr_left", 258, 21, "Арена Богов", 1);
                buildset(4, "cap_arr_right", 260, 710, "Большая парковая улица", 1);
                echo "</div>";
            } elseif ($user['room'] == 2655) {
                bgset('ar_e_n');
                buildset(2055, "cap_altr_g", 230, 340, "Арена Ангелов");
                buildset(2222, "cap_stop", 258, 21, "Проход закрыт", 1);
                buildset(10, "arr_right_png", 260, 710, "Замковая площадь", 1);
                echo "</div>";
            } elseif ($user['room'] == 2111) {
                bgset('rist_bg');
                buildset(1, "cap_arr_uleft", 240, 30, "Страшилкина Улица", 1);
                buildset(2, "cap_arr_right", 245, 708, "Секретный Лабиринт", 1);
                buildset(14, "cap_rist_solo", 210, 160, "Вход в Одиночные сражения");
                buildset(14, "cap_rist_group", 243, 340, "Вход в Сражение отрядов");
                buildset(1000, "av_zamk_rud", 80, 310, "Рудник");
                buildset(203, "cap_rist_monstr", 145, 570, "Вход в Груповые сражения");
                buildset(21, "angelscastle", 131, 628, "Замок Мэра Города");
                echo "</div>";
            } elseif ($user['room'] == 2701) {
                bgset('arena_bg1');
                buildset(1, "cap_3strelka", 260, 30, "Берег Залива");
                buildset(2, "cap_shar_dark", 234, 356, "Лабиринт Хаоса");
                buildset(3, "cap_stop_png", 260, 720, "Проход закрыт");
                echo "</div>";
            } elseif ($user['room'] == 2702) {
                bgset('cap_torg');
                buildset(6, "cap_arenda", 175, 70, "Академия");
                buildset(202, "cap_fontan", 210, 350, "Фонтан удачи");
                buildset(16, "cap_t_build42", 120, 300, "Аукцион");
                buildset(16555, "cap_prokat", 155, 480, "Прокатная лавка");
                buildset(21, "cap_lombard", 150, 565, "Ломбард");
                buildset(10, "cap_arr_uleft", 259, 25, "Центральная площадь", 1);
                buildset(3, "cap_stop", 259, 720, "Проход закрыт", 1);
                echo "</div>";
            }
            ?>
        </td>
    </tr>
</table>
</body>
</html>